From 57508cf6bd41fecc286762723f1d9b130a9866b8 Mon Sep 17 00:00:00 2001 From: roberto Date: Wed, 28 Nov 2007 17:40:31 +0000 Subject: [PATCH] Version 1.0.0 Acana Home git-svn-id: https://192.168.0.254/svn/Proyectos.Acana_FactuGES2/trunk@4 f4e31baf-9722-1c47-927c-6f952f962d4b --- Build/Build.fbl5 | Bin 0 -> 2752512 bytes Build/Build.fbp5 | 18201 ++++++++++++++++ Build/Build.fbv | 1 + Build/Build.fbw | 0 Build/Build.lck | Bin 0 -> 8 bytes Build/Build.log | 456 + Database/ACANA.FDB | Bin 0 -> 2052096 bytes Database/Anterior/VISTAS.SQL | 1947 ++ Database/RodaxSoftware.FactuGES.Database.proj | 61 + Database/_db_enviroment.bat | 14 + Database/db_execute.bat | 67 + Database/scripts/SCRIPT_CONTABILIDAD.SQL | 83 + .../SCRIPT_DATOS_PLAN_GENERAL_CONTABLE.SQL | 1585 ++ Database/scripts/factuges.sql | 2488 +++ Database/scripts/factuges_sysdata.sql | 50 + Database/udfs/funciones.pas | 40 + Database/udfs/udf_RtfToText.bdsproj | 498 + Database/udfs/udf_RtfToText.dll | Bin 0 -> 379392 bytes Database/udfs/udf_RtfToText.dpr | 18 + Database/udfs/udf_RtfToText.drc | 252 + Database/udfs/udf_RtfToText.res | Bin 0 -> 4396 bytes Database/udfs/udf_RtfToText.sql | 4 + Enviroment.config | 27 + Installer/Actualizacion/Actualización.iss | 99 + Installer/Actualizacion/Files/FactuGES.exe | Bin 0 -> 354816 bytes Installer/Actualizacion/Output/instalar.exe | Bin 0 -> 2200795 bytes Resources/Iconos/Agenda/16x16/Date-Time.png | Bin 0 -> 674 bytes Resources/Iconos/Agenda/16x16/Thumbs.db | Bin 0 -> 6656 bytes Resources/Iconos/Agenda/24x24/Date-Time.png | Bin 0 -> 1141 bytes Resources/Iconos/Agenda/24x24/Thumbs.db | Bin 0 -> 5632 bytes Resources/Iconos/Agenda/28x28/Date-Time.png | Bin 0 -> 1334 bytes Resources/Iconos/Agenda/28x28/Thumbs.db | Bin 0 -> 6144 bytes Resources/Iconos/Agenda/Thumbs.db | Bin 0 -> 57856 bytes .../Iconos/Albaranes/16x16/Letters patent.png | Bin 0 -> 445 bytes Resources/Iconos/Albaranes/16x16/Thumbs.db | Bin 0 -> 9216 bytes Resources/Iconos/Albaranes/16x16/pagado.png | Bin 0 -> 561 bytes .../Iconos/Albaranes/24x24/Letters patent.png | Bin 0 -> 507 bytes Resources/Iconos/Albaranes/24x24/Thumbs.db | Bin 0 -> 5632 bytes .../Iconos/Albaranes/28x28/Letters patent.png | Bin 0 -> 557 bytes Resources/Iconos/Albaranes/28x28/Thumbs.db | Bin 0 -> 8704 bytes .../Iconos/Almacenes/16x16/Box-Closed-2.png | Bin 0 -> 628 bytes Resources/Iconos/Almacenes/16x16/Thumbs.db | Bin 0 -> 46080 bytes .../Iconos/Almacenes/16x16/nuevoalmacen.png | Bin 0 -> 714 bytes .../Iconos/Almacenes/24x24/Box-Closed-2.png | Bin 0 -> 515 bytes Resources/Iconos/Almacenes/24x24/Thumbs.db | Bin 0 -> 47616 bytes .../Iconos/Almacenes/24x24/nuevoalmacen.png | Bin 0 -> 685 bytes .../Iconos/Almacenes/28x28/Box-Closed-2.png | Bin 0 -> 575 bytes Resources/Iconos/Almacenes/28x28/Thumbs.db | Bin 0 -> 17408 bytes Resources/Iconos/Artículos/16x16/Image.png | Bin 0 -> 594 bytes Resources/Iconos/Artículos/16x16/Insert.png | Bin 0 -> 404 bytes .../Iconos/Artículos/16x16/Note-Edit.png | Bin 0 -> 517 bytes Resources/Iconos/Artículos/16x16/Remove.png | Bin 0 -> 420 bytes Resources/Iconos/Artículos/16x16/Swap.png | Bin 0 -> 476 bytes Resources/Iconos/Artículos/16x16/Thumbs.db | Bin 0 -> 56832 bytes .../Iconos/Artículos/16x16/articulos.png | Bin 0 -> 409 bytes .../Iconos/Artículos/16x16/comisionable.png | Bin 0 -> 230 bytes Resources/Iconos/Artículos/16x16/liberar.png | Bin 0 -> 568 bytes .../Artículos/16x16/no_comisionable.png | Bin 0 -> 290 bytes .../Iconos/Artículos/16x16/recibirpedido.png | Bin 0 -> 594 bytes Resources/Iconos/Artículos/16x16/reservar.png | Bin 0 -> 561 bytes Resources/Iconos/Artículos/24x24/Image.png | Bin 0 -> 974 bytes Resources/Iconos/Artículos/24x24/Insert.png | Bin 0 -> 529 bytes .../Iconos/Artículos/24x24/Note-Edit.png | Bin 0 -> 671 bytes Resources/Iconos/Artículos/24x24/Remove.png | Bin 0 -> 544 bytes Resources/Iconos/Artículos/24x24/Swap.png | Bin 0 -> 584 bytes Resources/Iconos/Artículos/24x24/Thumbs.db | Bin 0 -> 60416 bytes .../Iconos/Artículos/24x24/articulos.png | Bin 0 -> 467 bytes Resources/Iconos/Artículos/24x24/liberar.png | Bin 0 -> 654 bytes .../Iconos/Artículos/24x24/recibirpedido.png | Bin 0 -> 892 bytes Resources/Iconos/Artículos/24x24/reservar.png | Bin 0 -> 663 bytes Resources/Iconos/Artículos/28x28/Image.png | Bin 0 -> 1149 bytes Resources/Iconos/Artículos/28x28/Insert.png | Bin 0 -> 620 bytes .../Iconos/Artículos/28x28/Note-Edit.png | Bin 0 -> 848 bytes Resources/Iconos/Artículos/28x28/Remove.png | Bin 0 -> 605 bytes Resources/Iconos/Artículos/28x28/Swap.png | Bin 0 -> 586 bytes Resources/Iconos/Artículos/28x28/Thumbs.db | Bin 0 -> 30720 bytes .../Iconos/Artículos/28x28/articulos.png | Bin 0 -> 452 bytes Resources/Iconos/Artículos/28x28/liberar.png | Bin 0 -> 652 bytes .../Iconos/Artículos/28x28/recibirpedido.png | Bin 0 -> 1042 bytes Resources/Iconos/Artículos/28x28/reservar.png | Bin 0 -> 661 bytes Resources/Iconos/Asientos/16x16/Cerrar.png | Bin 0 -> 580 bytes Resources/Iconos/Asientos/16x16/Thumbs.db | Bin 0 -> 8704 bytes Resources/Iconos/Asientos/16x16/Tick.png | Bin 0 -> 351 bytes Resources/Iconos/Asientos/24x24/Cerrar.png | Bin 0 -> 1168 bytes Resources/Iconos/Asientos/24x24/Thumbs.db | Bin 0 -> 9216 bytes Resources/Iconos/Asientos/24x24/Tick.png | Bin 0 -> 1000 bytes Resources/Iconos/Asientos/28x28/Cerrar.png | Bin 0 -> 1378 bytes Resources/Iconos/Asientos/28x28/Thumbs.db | Bin 0 -> 9216 bytes Resources/Iconos/Asientos/28x28/Tick.png | Bin 0 -> 1118 bytes .../Iconos/Contactos/16x16/Box-Open-2.png | Bin 0 -> 640 bytes .../Iconos/Contactos/16x16/Comisiones.png | Bin 0 -> 734 bytes .../Iconos/Contactos/16x16/Contact-Add.png | Bin 0 -> 682 bytes .../Iconos/Contactos/16x16/Contact-Edit.png | Bin 0 -> 676 bytes Resources/Iconos/Contactos/16x16/Contact.png | Bin 0 -> 625 bytes Resources/Iconos/Contactos/16x16/Contact2.png | Bin 0 -> 627 bytes Resources/Iconos/Contactos/16x16/Contact3.png | Bin 0 -> 641 bytes Resources/Iconos/Contactos/16x16/Contact4.png | Bin 0 -> 674 bytes Resources/Iconos/Contactos/16x16/Currency.png | Bin 0 -> 477 bytes Resources/Iconos/Contactos/16x16/Internet.png | Bin 0 -> 969 bytes Resources/Iconos/Contactos/16x16/Lock.png | Bin 0 -> 497 bytes Resources/Iconos/Contactos/16x16/Mail.png | Bin 0 -> 592 bytes .../Iconos/Contactos/16x16/Proveedor-Add.png | Bin 0 -> 3329 bytes Resources/Iconos/Contactos/16x16/Thumbs.db | Bin 0 -> 46080 bytes Resources/Iconos/Contactos/16x16/Unlock.png | Bin 0 -> 515 bytes Resources/Iconos/Contactos/16x16/User.png | Bin 0 -> 768 bytes Resources/Iconos/Contactos/16x16/User2.png | Bin 0 -> 3419 bytes Resources/Iconos/Contactos/16x16/User3.png | Bin 0 -> 784 bytes Resources/Iconos/Contactos/16x16/User4.png | Bin 0 -> 660 bytes Resources/Iconos/Contactos/16x16/grupos.png | Bin 0 -> 466 bytes .../Iconos/Contactos/24x24/Box-Open-2.png | Bin 0 -> 700 bytes .../Iconos/Contactos/24x24/Comisiones.png | Bin 0 -> 1097 bytes .../Iconos/Contactos/24x24/Contact-Add.png | Bin 0 -> 1009 bytes .../Iconos/Contactos/24x24/Contact-Edit.png | Bin 0 -> 1022 bytes Resources/Iconos/Contactos/24x24/Contact.png | Bin 0 -> 922 bytes Resources/Iconos/Contactos/24x24/Contact2.png | Bin 0 -> 924 bytes Resources/Iconos/Contactos/24x24/Contact3.png | Bin 0 -> 923 bytes Resources/Iconos/Contactos/24x24/Contact4.png | Bin 0 -> 1009 bytes Resources/Iconos/Contactos/24x24/Currency.png | Bin 0 -> 777 bytes Resources/Iconos/Contactos/24x24/Lock.png | Bin 0 -> 824 bytes Resources/Iconos/Contactos/24x24/Thumbs.db | Bin 0 -> 41984 bytes Resources/Iconos/Contactos/24x24/Unlock.png | Bin 0 -> 856 bytes Resources/Iconos/Contactos/24x24/grupos.png | Bin 0 -> 597 bytes .../Iconos/Contactos/28x28/Box-Open-2.png | Bin 0 -> 804 bytes Resources/Iconos/Contactos/28x28/Currency.png | Bin 0 -> 887 bytes Resources/Iconos/Contactos/28x28/Lock.png | Bin 0 -> 977 bytes Resources/Iconos/Contactos/28x28/Thumbs.db | Bin 0 -> 19456 bytes Resources/Iconos/Contactos/28x28/Unlock.png | Bin 0 -> 1028 bytes Resources/Iconos/Contactos/28x28/grupos.png | Bin 0 -> 1291 bytes Resources/Iconos/Cuentas/16x16/Book-Open.png | Bin 0 -> 447 bytes Resources/Iconos/Cuentas/16x16/Books.png | Bin 0 -> 633 bytes Resources/Iconos/Cuentas/16x16/Thumbs.db | Bin 0 -> 11264 bytes Resources/Iconos/Cuentas/24x24/Book-Open.png | Bin 0 -> 855 bytes Resources/Iconos/Cuentas/24x24/Books.png | Bin 0 -> 1033 bytes Resources/Iconos/Cuentas/24x24/Thumbs.db | Bin 0 -> 8192 bytes Resources/Iconos/Cuentas/28x28/Book-Open.png | Bin 0 -> 870 bytes Resources/Iconos/Cuentas/28x28/Books.png | Bin 0 -> 838 bytes Resources/Iconos/Cuentas/28x28/Thumbs.db | Bin 0 -> 12800 bytes Resources/Iconos/Factuges.ico | Bin 0 -> 171014 bytes .../Facturas de cliente/16x16/Invoice.png | Bin 0 -> 450 bytes .../Facturas de cliente/16x16/Thumbs.db | Bin 0 -> 6656 bytes .../Facturas de cliente/24x24/Invoice.png | Bin 0 -> 505 bytes .../Facturas de cliente/24x24/Thumbs.db | Bin 0 -> 6656 bytes .../Facturas de cliente/28x28/Invoice.png | Bin 0 -> 551 bytes .../Facturas de cliente/28x28/Thumbs.db | Bin 0 -> 10240 bytes Resources/Iconos/Familias/16x16/00473.png | Bin 0 -> 455 bytes Resources/Iconos/Familias/16x16/Thumbs.db | Bin 0 -> 5632 bytes Resources/Iconos/Generales/16x16/09378.bmp | Bin 0 -> 916 bytes Resources/Iconos/Generales/16x16/09378.png | Bin 0 -> 420 bytes Resources/Iconos/Generales/16x16/About.png | Bin 0 -> 490 bytes .../Iconos/Generales/16x16/Align-Centre-2.png | Bin 0 -> 383 bytes .../Iconos/Generales/16x16/Align-Left-2.png | Bin 0 -> 375 bytes .../Iconos/Generales/16x16/Align-Right-2.png | Bin 0 -> 381 bytes .../Generales/16x16/Añadir-capítulo.png | Bin 0 -> 717 bytes .../Generales/16x16/Añadir-material.png | Bin 0 -> 685 bytes Resources/Iconos/Generales/16x16/Back.png | Bin 0 -> 909 bytes Resources/Iconos/Generales/16x16/Bold.png | Bin 0 -> 498 bytes .../Iconos/Generales/16x16/Box-Closed.png | Bin 0 -> 400 bytes .../Iconos/Generales/16x16/Box-Open-2.png | Bin 0 -> 640 bytes .../Iconos/Generales/16x16/Card-Copy.png | Bin 0 -> 442 bytes Resources/Iconos/Generales/16x16/Clear.png | Bin 0 -> 440 bytes Resources/Iconos/Generales/16x16/Copy.png | Bin 0 -> 499 bytes Resources/Iconos/Generales/16x16/Cut.png | Bin 0 -> 709 bytes .../Generales/16x16/Debug-Breakpoint.png | Bin 0 -> 530 bytes .../Generales/16x16/Debug-Watch-Delete.png | Bin 0 -> 580 bytes .../Iconos/Generales/16x16/Debug-Watch.png | Bin 0 -> 427 bytes .../Iconos/Generales/16x16/Delete copia.bmp | Bin 0 -> 824 bytes Resources/Iconos/Generales/16x16/Delete.png | Bin 0 -> 734 bytes .../16x16/Distribute-Rows Evenly.png | Bin 0 -> 351 bytes Resources/Iconos/Generales/16x16/Edit.png | Bin 0 -> 496 bytes Resources/Iconos/Generales/16x16/Execute.png | Bin 0 -> 528 bytes Resources/Iconos/Generales/16x16/Exit.png | Bin 0 -> 606 bytes Resources/Iconos/Generales/16x16/Form-New.png | Bin 0 -> 550 bytes .../Iconos/Generales/16x16/Format-Font.png | Bin 0 -> 563 bytes Resources/Iconos/Generales/16x16/Forward.png | Bin 0 -> 896 bytes Resources/Iconos/Generales/16x16/Home.png | Bin 0 -> 454 bytes Resources/Iconos/Generales/16x16/Italic.png | Bin 0 -> 474 bytes Resources/Iconos/Generales/16x16/Minus.png | Bin 0 -> 263 bytes Resources/Iconos/Generales/16x16/New.png | Bin 0 -> 350 bytes .../Generales/16x16/Outline-Collapse.png | Bin 0 -> 264 bytes .../Iconos/Generales/16x16/Outline-Expand.png | Bin 0 -> 343 bytes .../Generales/16x16/Outline-Move Down.png | Bin 0 -> 389 bytes .../Generales/16x16/Outline-Move Up.png | Bin 0 -> 380 bytes Resources/Iconos/Generales/16x16/Parcel.png | Bin 0 -> 561 bytes Resources/Iconos/Generales/16x16/Paste.png | Bin 0 -> 543 bytes .../Iconos/Generales/16x16/Plus copia.bmp | Bin 0 -> 824 bytes Resources/Iconos/Generales/16x16/Plus.png | Bin 0 -> 343 bytes Resources/Iconos/Generales/16x16/Preview.png | Bin 0 -> 597 bytes .../Iconos/Generales/16x16/Print-Options.png | Bin 0 -> 446 bytes Resources/Iconos/Generales/16x16/Print.png | Bin 0 -> 484 bytes Resources/Iconos/Generales/16x16/Refresh.png | Bin 0 -> 486 bytes Resources/Iconos/Generales/16x16/Save.png | Bin 0 -> 482 bytes Resources/Iconos/Generales/16x16/Search.png | Bin 0 -> 441 bytes .../Iconos/Generales/16x16/Select All.png | Bin 0 -> 586 bytes .../Iconos/Generales/16x16/Speaking-Start.png | Bin 0 -> 407 bytes Resources/Iconos/Generales/16x16/Sum-2.png | Bin 0 -> 238 bytes .../Generales/16x16/Table-Find In Field.png | Bin 0 -> 601 bytes .../Iconos/Generales/16x16/Table-Search.png | Bin 0 -> 651 bytes Resources/Iconos/Generales/16x16/Thumbs.db | Bin 0 -> 82432 bytes .../Iconos/Generales/16x16/Total-capítulo.png | Bin 0 -> 519 bytes .../Generales/16x16/Título-capítulo.png | Bin 0 -> 559 bytes .../Iconos/Generales/16x16/Underline.png | Bin 0 -> 491 bytes Resources/Iconos/Generales/16x16/Undo.png | Bin 0 -> 682 bytes .../Iconos/Generales/16x16/View-One Page.png | Bin 0 -> 445 bytes .../Generales/16x16/View-Page Width.png | Bin 0 -> 476 bytes Resources/Iconos/Generales/16x16/WEB.PNG | Bin 0 -> 510 bytes Resources/Iconos/Generales/16x16/Warning.png | Bin 0 -> 687 bytes Resources/Iconos/Generales/16x16/Zoom-In.png | Bin 0 -> 862 bytes Resources/Iconos/Generales/16x16/Zoom-Out.png | Bin 0 -> 848 bytes .../Iconos/Generales/16x16/db-Next-2.png | Bin 0 -> 289 bytes .../Iconos/Generales/16x16/db-Previous-2.png | Bin 0 -> 295 bytes .../Iconos/Generales/16x16/db-first-2.png | Bin 0 -> 327 bytes .../Iconos/Generales/16x16/db-last-2.png | Bin 0 -> 323 bytes .../Iconos/Generales/16x16/haycambios.png | Bin 0 -> 526 bytes Resources/Iconos/Generales/24x24/About.png | Bin 0 -> 1054 bytes Resources/Iconos/Generales/24x24/Back.png | Bin 0 -> 1488 bytes .../Iconos/Generales/24x24/Box-Open-2.png | Bin 0 -> 700 bytes .../Iconos/Generales/24x24/Card-Copy.png | Bin 0 -> 577 bytes Resources/Iconos/Generales/24x24/Clear.png | Bin 0 -> 958 bytes Resources/Iconos/Generales/24x24/Copy.png | Bin 0 -> 653 bytes Resources/Iconos/Generales/24x24/Cut.png | Bin 0 -> 1215 bytes .../Generales/24x24/Debug-Breakpoint.png | Bin 0 -> 732 bytes .../Generales/24x24/Debug-Watch-Delete.png | Bin 0 -> 1156 bytes .../Iconos/Generales/24x24/Debug-Watch.png | Bin 0 -> 983 bytes Resources/Iconos/Generales/24x24/Delete.png | Bin 0 -> 1170 bytes .../24x24/Distribute-Rows Evenly.png | Bin 0 -> 401 bytes Resources/Iconos/Generales/24x24/Edit.png | Bin 0 -> 728 bytes Resources/Iconos/Generales/24x24/Execute.png | Bin 0 -> 634 bytes Resources/Iconos/Generales/24x24/Exit.png | Bin 0 -> 1053 bytes Resources/Iconos/Generales/24x24/Form-New.png | Bin 0 -> 744 bytes Resources/Iconos/Generales/24x24/Forward.png | Bin 0 -> 1482 bytes Resources/Iconos/Generales/24x24/Home.png | Bin 0 -> 815 bytes Resources/Iconos/Generales/24x24/Minus.png | Bin 0 -> 264 bytes Resources/Iconos/Generales/24x24/New.png | Bin 0 -> 455 bytes .../Generales/24x24/Outline-Collapse.png | Bin 0 -> 266 bytes .../Iconos/Generales/24x24/Outline-Expand.png | Bin 0 -> 391 bytes .../Generales/24x24/Outline-Move Down.png | Bin 0 -> 427 bytes .../Generales/24x24/Outline-Move Up.png | Bin 0 -> 430 bytes Resources/Iconos/Generales/24x24/Paste.png | Bin 0 -> 738 bytes Resources/Iconos/Generales/24x24/Plus.png | Bin 0 -> 423 bytes Resources/Iconos/Generales/24x24/Preview.png | Bin 0 -> 995 bytes .../Iconos/Generales/24x24/Print-Options.png | Bin 0 -> 823 bytes Resources/Iconos/Generales/24x24/Print.png | Bin 0 -> 802 bytes Resources/Iconos/Generales/24x24/Refresh.png | Bin 0 -> 756 bytes Resources/Iconos/Generales/24x24/Save.png | Bin 0 -> 667 bytes Resources/Iconos/Generales/24x24/Search.png | Bin 0 -> 631 bytes .../Iconos/Generales/24x24/Select All.png | Bin 0 -> 984 bytes .../Iconos/Generales/24x24/Speaking-Start.png | Bin 0 -> 514 bytes Resources/Iconos/Generales/24x24/Sum-2.png | Bin 0 -> 341 bytes .../Generales/24x24/Table-Find In Field.png | Bin 0 -> 839 bytes .../Iconos/Generales/24x24/Table-Search.png | Bin 0 -> 1143 bytes Resources/Iconos/Generales/24x24/Thumbs.db | Bin 0 -> 63488 bytes Resources/Iconos/Generales/24x24/Undo.png | Bin 0 -> 1050 bytes .../Iconos/Generales/24x24/View-One Page.png | Bin 0 -> 570 bytes .../Generales/24x24/View-Page Width.png | Bin 0 -> 802 bytes Resources/Iconos/Generales/24x24/Warning.png | Bin 0 -> 1039 bytes Resources/Iconos/Generales/24x24/Zoom-In.png | Bin 0 -> 1411 bytes Resources/Iconos/Generales/24x24/Zoom-Out.png | Bin 0 -> 1390 bytes .../Iconos/Generales/24x24/db-First-2.png | Bin 0 -> 424 bytes .../Iconos/Generales/24x24/db-Last-2.png | Bin 0 -> 443 bytes .../Iconos/Generales/24x24/db-Next-2.png | Bin 0 -> 352 bytes .../Iconos/Generales/24x24/db-Previous-2.png | Bin 0 -> 342 bytes .../Iconos/Generales/28x28/Box-Open-2.png | Bin 0 -> 804 bytes .../Iconos/Generales/28x28/Card-Copy.png | Bin 0 -> 647 bytes .../Generales/28x28/Debug-Watch-Delete.png | Bin 0 -> 1213 bytes .../Iconos/Generales/28x28/Debug-Watch.png | Bin 0 -> 1042 bytes .../28x28/Distribute-Rows Evenly.png | Bin 0 -> 411 bytes Resources/Iconos/Generales/28x28/Execute.png | Bin 0 -> 611 bytes Resources/Iconos/Generales/28x28/Form-New.ico | Bin 0 -> 7278 bytes Resources/Iconos/Generales/28x28/Form-New.png | Bin 0 -> 843 bytes Resources/Iconos/Generales/28x28/Home.png | Bin 0 -> 800 bytes Resources/Iconos/Generales/28x28/New.png | Bin 0 -> 502 bytes .../Generales/28x28/Outline-Move Down.png | Bin 0 -> 434 bytes .../Generales/28x28/Outline-Move Up.png | Bin 0 -> 436 bytes .../Iconos/Generales/28x28/Speaking-Start.png | Bin 0 -> 512 bytes Resources/Iconos/Generales/28x28/Sum-2.png | Bin 0 -> 348 bytes .../Generales/28x28/Table-Find In Field.png | Bin 0 -> 900 bytes .../Iconos/Generales/28x28/Table-Search.png | Bin 0 -> 1394 bytes Resources/Iconos/Generales/28x28/Thumbs.db | Bin 0 -> 24064 bytes Resources/Iconos/Generales/28x28/Warning.png | Bin 0 -> 1236 bytes .../16x16/Entradas.png | Bin 0 -> 3206 bytes .../16x16/Salidas.png | Bin 0 -> 3047 bytes .../Historico de movimientos/16x16/Thumbs.db | Bin 0 -> 58880 bytes .../Historico de movimientos/24x24/Thumbs.db | Bin 0 -> 61952 bytes .../24x24/historico.png | Bin 0 -> 3682 bytes .../Historico de movimientos/28x28/Thumbs.db | Bin 0 -> 35328 bytes .../28x28/historico.png | Bin 0 -> 3982 bytes .../Iconos/Montajes/16x16/Document-Labels.png | Bin 0 -> 290 bytes Resources/Iconos/Montajes/16x16/Thumbs.db | Bin 0 -> 44544 bytes Resources/Iconos/Montajes/16x16/Tools.png | Bin 0 -> 471 bytes .../Iconos/Montajes/24x24/Document-Labels.png | Bin 0 -> 521 bytes Resources/Iconos/Montajes/24x24/Thumbs.db | Bin 0 -> 46080 bytes Resources/Iconos/Montajes/24x24/Tools.png | Bin 0 -> 906 bytes .../Iconos/Montajes/28x28/Document-Labels.png | Bin 0 -> 579 bytes Resources/Iconos/Montajes/28x28/Thumbs.db | Bin 0 -> 16896 bytes Resources/Iconos/Montajes/28x28/Tools.png | Bin 0 -> 951 bytes Resources/Iconos/Pagos/16x16/Thumbs.db | Bin 0 -> 8192 bytes Resources/Iconos/Pagos/16x16/pagado.png | Bin 0 -> 3149 bytes Resources/Iconos/Pagos/24x24/Thumbs.db | Bin 0 -> 5632 bytes Resources/Iconos/Pagos/24x24/pagado.png | Bin 0 -> 3477 bytes Resources/Iconos/Pagos/28x28/Thumbs.db | Bin 0 -> 9216 bytes Resources/Iconos/Pagos/28x28/pagado.png | Bin 0 -> 3588 bytes .../Pedidos a proveedor/16x16/Complete-0.png | Bin 0 -> 393 bytes .../16x16/Complete-100.png | Bin 0 -> 372 bytes .../Pedidos a proveedor/16x16/Complete-50.png | Bin 0 -> 382 bytes .../Pedidos a proveedor/16x16/Thumbs.db | Bin 0 -> 48640 bytes .../Pedidos a proveedor/16x16/pedidos.png | Bin 0 -> 512 bytes .../Pedidos a proveedor/24x24/Complete-0.png | Bin 0 -> 339 bytes .../24x24/Complete-100.png | Bin 0 -> 368 bytes .../Pedidos a proveedor/24x24/Complete-50.png | Bin 0 -> 391 bytes .../Pedidos a proveedor/24x24/Thumbs.db | Bin 0 -> 51712 bytes .../Pedidos a proveedor/24x24/pedido.png | Bin 0 -> 691 bytes .../Pedidos a proveedor/28x28/Complete-0.png | Bin 0 -> 454 bytes .../28x28/Complete-100.png | Bin 0 -> 476 bytes .../Pedidos a proveedor/28x28/Complete-50.png | Bin 0 -> 514 bytes .../Pedidos a proveedor/28x28/Thumbs.db | Bin 0 -> 21504 bytes .../Pedidos a proveedor/28x28/pedido.png | Bin 0 -> 737 bytes .../Pedidos de cliente/16x16/Budget.png | Bin 0 -> 3148 bytes .../Iconos/Pedidos de cliente/16x16/Thumbs.db | Bin 0 -> 45056 bytes .../Pedidos de cliente/24x24/Budget.png | Bin 0 -> 3361 bytes .../Iconos/Pedidos de cliente/24x24/Thumbs.db | Bin 0 -> 46080 bytes .../Pedidos de cliente/28x28/Budget.png | Bin 0 -> 3406 bytes .../Iconos/Pedidos de cliente/28x28/Thumbs.db | Bin 0 -> 15872 bytes .../Presupuestos/16x16/Aumentar_letra.png | Bin 0 -> 3050 bytes .../Iconos/Presupuestos/16x16/Budget.png | Bin 0 -> 447 bytes .../Iconos/Presupuestos/16x16/Delete-Blue.png | Bin 0 -> 780 bytes .../Presupuestos/16x16/Disminuir_letra.png | Bin 0 -> 3028 bytes Resources/Iconos/Presupuestos/16x16/Thumbs.db | Bin 0 -> 45568 bytes Resources/Iconos/Presupuestos/16x16/Tick.png | Bin 0 -> 601 bytes .../Iconos/Presupuestos/24x24/Budget.png | Bin 0 -> 510 bytes .../Iconos/Presupuestos/24x24/Delete-Blue.png | Bin 0 -> 1233 bytes Resources/Iconos/Presupuestos/24x24/Thumbs.db | Bin 0 -> 46080 bytes Resources/Iconos/Presupuestos/24x24/Tick.png | Bin 0 -> 1016 bytes .../Iconos/Presupuestos/28x28/Budget.png | Bin 0 -> 556 bytes Resources/Iconos/Presupuestos/28x28/Thumbs.db | Bin 0 -> 15872 bytes Resources/Iconos/Remesas/16x16/Export.png | Bin 0 -> 628 bytes Resources/Iconos/Remesas/16x16/Thumbs.db | Bin 0 -> 5632 bytes Resources/Iconos/Remesas/24x24/Export.png | Bin 0 -> 872 bytes Resources/Iconos/Remesas/24x24/Thumbs.db | Bin 0 -> 5632 bytes Resources/Iconos/Remesas/28x28/Export.png | Bin 0 -> 819 bytes Resources/Iconos/Remesas/28x28/Thumbs.db | Bin 0 -> 5632 bytes Resources/Iconos/Servidor.ico | Bin 0 -> 22486 bytes Resources/Iconos/Servidor/16x16/Database.png | Bin 0 -> 749 bytes Resources/Iconos/Servidor/16x16/Thumbs.db | Bin 0 -> 44544 bytes Resources/Iconos/Servidor/24x24/Database.png | Bin 0 -> 1131 bytes Resources/Iconos/Servidor/24x24/Thumbs.db | Bin 0 -> 46080 bytes Resources/Iconos/Servidor/28x28/Database.png | Bin 0 -> 1317 bytes Resources/Iconos/Servidor/28x28/Thumbs.db | Bin 0 -> 15872 bytes Resources/Iconos/Thumbs.db | Bin 0 -> 15360 bytes Resources/Iconos/Usuarios/16x16/Thumbs.db | Bin 0 -> 49152 bytes Resources/Iconos/Usuarios/16x16/User-Add.png | Bin 0 -> 832 bytes Resources/Iconos/Usuarios/16x16/User-Edit.png | Bin 0 -> 818 bytes .../Iconos/Usuarios/16x16/User-Password.png | Bin 0 -> 721 bytes .../Iconos/Usuarios/16x16/User-Remove.png | Bin 0 -> 773 bytes Resources/Iconos/Usuarios/16x16/User.png | Bin 0 -> 768 bytes Resources/Iconos/Usuarios/16x16/Users.png | Bin 0 -> 903 bytes Resources/Iconos/Usuarios/24x24/Thumbs.db | Bin 0 -> 55808 bytes Resources/Iconos/Usuarios/24x24/User-Add.png | Bin 0 -> 1345 bytes Resources/Iconos/Usuarios/24x24/User-Edit.png | Bin 0 -> 1385 bytes .../Iconos/Usuarios/24x24/User-Password.png | Bin 0 -> 1233 bytes .../Iconos/Usuarios/24x24/User-Remove.png | Bin 0 -> 1282 bytes Resources/Iconos/Usuarios/24x24/User.png | Bin 0 -> 1267 bytes Resources/Iconos/Usuarios/24x24/Users.png | Bin 0 -> 1555 bytes Resources/Iconos/Usuarios/28x28/Thumbs.db | Bin 0 -> 21504 bytes Resources/Iconos/Usuarios/28x28/User-Add.png | Bin 0 -> 1618 bytes Resources/Iconos/Usuarios/28x28/User-Edit.png | Bin 0 -> 1728 bytes .../Iconos/Usuarios/28x28/User-Password.png | Bin 0 -> 1563 bytes .../Iconos/Usuarios/28x28/User-Remove.png | Bin 0 -> 1581 bytes Resources/Iconos/Usuarios/28x28/User.png | Bin 0 -> 1525 bytes Resources/Iconos/Usuarios/28x28/Users.png | Bin 0 -> 1918 bytes Resources/Iconos/Usuarios/48x48/Thumbs.db | Bin 0 -> 5632 bytes Resources/Iconos/Usuarios/48x48/Users.png | Bin 0 -> 5154 bytes Resources/Iconos/fac.png | Bin 0 -> 6372 bytes RodaxSoftware.FactuGES.Common.targets | 285 + RodaxSoftware.FactuGES.proj | 240 + .../ApplicationBase/ApplicationBase.bdsproj | 697 + Source/ApplicationBase/ApplicationBase.cfg | 40 + Source/ApplicationBase/ApplicationBase.dpk | 85 + Source/ApplicationBase/ApplicationBase.dproj | 604 + .../ApplicationBase.identcache | Bin 0 -> 2472 bytes Source/ApplicationBase/ApplicationBase.rc | 22 + Source/ApplicationBase/ApplicationBase.res | Bin 0 -> 384 bytes .../View/uIEditorDatosBancarioEmpresa.pas | 28 + .../Controller/View/uIEditorEmpresa.pas | 23 + .../Controller/View/uIEditorEmpresas.pas | 24 + .../uDatosBancariosEmpresaController.pas | 66 + .../Controller/uEmpresasController.pas | 248 + .../Empresas/Data/uDataModuleEmpresas.dfm | 293 + .../Empresas/Data/uDataModuleEmpresas.pas | 107 + .../Model/Data/uIDataModuleEmpresas.pas | 19 + .../Empresas/Model/schEmpresasClient_Intf.pas | 1245 ++ .../Empresas/Model/schEmpresasServer_Intf.pas | 1490 ++ .../Empresas/Model/uBizEmpresas.pas | Bin 0 -> 2387 bytes .../Model/uBizEmpresasDatosBancarios.pas | 51 + .../Empresas/Servidor/srvEmpresas_Impl.dfm | 633 + .../Empresas/Servidor/srvEmpresas_Impl.pas | 81 + .../Empresas/Test/Empresas_Tests.bdsproj | 496 + .../Empresas/Test/Empresas_Tests.dpr | 39 + .../Empresas/Test/Empresas_Tests.res | Bin 0 -> 5084 bytes .../Test/uEmpresasController_Test.pas | 178 + .../Empresas/Test/uHostMainForm.dfm | 28 + .../Empresas/Test/uHostMainForm.pas | 116 + .../Views/uEditorDatosBancariosEmpresa.dfm | 181 + .../Views/uEditorDatosBancariosEmpresa.pas | 97 + .../Empresas/Views/uEditorEmpresa.dfm | 322 + .../Empresas/Views/uEditorEmpresa.pas | 184 + .../Empresas/Views/uEmpresasViewRegister.pas | 25 + .../Empresas/Views/uViewDatosBancarios.dfm | 70 + .../Empresas/Views/uViewDatosBancarios.pas | 68 + .../Empresas/Views/uViewEmpresa.dfm | 595 + .../Empresas/Views/uViewEmpresa.pas | 179 + .../Controller/View/uIEditorLogin.pas | 22 + .../Controller/uUsuariosController.pas | 216 + .../Usuarios/Data/uDataModuleUsuarios.dfm | 264 + .../Usuarios/Data/uDataModuleUsuarios.pas | 364 + .../Usuarios/Data/uUCROConn.pas | 220 + .../Model/Data/uIDataModuleUsuarios.pas | 16 + .../Usuarios/Model/schUsuariosClient_Intf.pas | 1464 ++ .../Usuarios/Model/schUsuariosServer_Intf.pas | 1715 ++ .../Usuarios/Model/uUsuarios.pas | 13 + .../Usuarios/Servidor/srvUsuarios_Impl.dfm | 419 + .../Usuarios/Servidor/srvUsuarios_Impl.pas | 65 + .../Usuarios/Views/uEditorLogin.dfm | 1100 + .../Usuarios/Views/uEditorLogin.pas | 133 + .../Usuarios/Views/uUsuario.dfm | 123 + .../Usuarios/Views/uUsuario.pas | 39 + .../Usuarios/Views/uUsuarios.dfm | 118 + .../Usuarios/Views/uUsuarios.pas | 89 + .../Usuarios/Views/uUsuariosViewRegister.pas | 23 + .../_Usuarios_/Usuarios.bdsproj | 492 + .../ApplicationBase/_Usuarios_/Usuarios.dpk | 43 + .../ApplicationBase/_Usuarios_/Usuarios.dproj | 557 + Source/ApplicationBase/_Usuarios_/Usuarios.rc | 22 + .../ApplicationBase/_Usuarios_/Usuarios.res | Bin 0 -> 5056 bytes .../_Usuarios_/uCambiarPassword.dfm | 94 + .../_Usuarios_/uCambiarPassword.pas | 41 + .../_Usuarios_/uDataModuleUsuarios.dfm | 17 + .../_Usuarios_/uDataModuleUsuarios.pas | 209 + .../ApplicationBase/_Usuarios_/uLoginForm.dfm | 1099 + .../ApplicationBase/_Usuarios_/uLoginForm.pas | 101 + .../ApplicationBase/_Usuarios_/uUsuario.dfm | 123 + .../ApplicationBase/_Usuarios_/uUsuario.pas | 39 + .../ApplicationBase/_Usuarios_/uUsuarios.dfm | 118 + .../ApplicationBase/_Usuarios_/uUsuarios.pas | 89 + Source/ApplicationBase/uFactuGES_App.pas | 371 + Source/Base/Base.bdsproj | 674 + Source/Base/Base.cfg | 36 + Source/Base/Base.dpk | 107 + Source/Base/Base.dproj | 636 + Source/Base/Base.identcache | Bin 0 -> 1742 bytes Source/Base/Base.rc | 22 + Source/Base/Base.res | Bin 0 -> 384 bytes Source/Base/Conexion/uConfigurarConexion.dfm | 112 + Source/Base/Conexion/uConfigurarConexion.pas | 76 + Source/Base/Conexion/uDataModuleConexion.dfm | 23 + Source/Base/Conexion/uDataModuleConexion.pas | 156 + .../uDataModuleConfiguracion.dfm | 27 + .../uDataModuleConfiguracion.pas | 70 + Source/Base/Controladores/uControllerBase.pas | 280 + .../Controladores/uControllerDetallesBase.pas | 577 + .../ClassRegistry/uClassRegistryUtils.pas | 336 + .../ClassRegistry/uEditorRegistryUtils.pas | 81 + .../ClassRegistry/uInformeRegistryUtils.pas | 59 + .../ClassRegistry/uViewRegistryUtils.pas | 50 + Source/Base/Utiles/uCalculosUtils.pas | 153 + Source/Base/Utiles/uDBSelectionListUtils.pas | 194 + Source/Base/Utiles/uDataTableUtils.pas | 668 + Source/Base/Utiles/uDateUtils.pas | 41 + Source/Base/Utiles/uDialogUtils.pas | 287 + Source/Base/Utiles/uGridUtils.pas | 297 + Source/Base/Utiles/uInfoProjectUtils.pas | 187 + Source/Base/Utiles/uIntegerListUtils.pas | 61 + Source/Base/Utiles/uMD5.pas | 435 + Source/Base/Utiles/uNumUtils.pas | 124 + Source/Base/Utiles/uPasswordUtils.pas | 22 + Source/Base/Utiles/uSistemaFunc.pas | 241 + Source/Base/schBase_Intf.pas | 32 + Source/Base/uDMBase.dfm | 1627 ++ Source/Base/uDMBase.pas | 135 + Source/Base/uDataModuleBase.dfm | 5 + Source/Base/uDataModuleBase.pas | 51 + .../Cliente/Actualizacion/uActualizacion.dfm | 272 + .../Cliente/Actualizacion/uActualizacion.pas | 182 + Source/Cliente/Cliente_Group.bdsgroup | 20 + Source/Cliente/FactuGES.bdsproj | 682 + Source/Cliente/FactuGES.dpr | 38 + Source/Cliente/FactuGES.dproj | 573 + Source/Cliente/FactuGES.identcache | Bin 0 -> 630 bytes Source/Cliente/FactuGES.rc | 26 + Source/Cliente/FactuGES.res | Bin 0 -> 171980 bytes Source/Cliente/FactuGES.rsb | Bin 0 -> 171980 bytes Source/Cliente/Utiles/uClienteUtils.pas | 19 + Source/Cliente/Utiles/uMenuUtils.pas | 139 + Source/Cliente/Utiles/uNavPaneUtils.pas | 58 + Source/Cliente/uAcercaDe.dfm | 1092 + Source/Cliente/uAcercaDe.pas | 66 + Source/Cliente/uBootStrap.pas | 97 + Source/Cliente/uMainMenuController.pas | 135 + Source/Cliente/uNavPaneController.pas | 224 + Source/Cliente/uPantallaPrincipal.dfm | 680 + Source/Cliente/uPantallaPrincipal.pas | 576 + Source/Cliente/uSplash.dfm | 50 + Source/Cliente/uSplash.pas | 79 + Source/FactuGES_Group.bdsgroup | 42 + Source/FactuGES_Group.groupproj | 424 + Source/GUIBase/GUIBase.bdsproj | 181 + Source/GUIBase/GUIBase.cfg | 42 + Source/GUIBase/GUIBase.dpk | 70 + Source/GUIBase/GUIBase.dproj | 646 + Source/GUIBase/GUIBase.identcache | Bin 0 -> 1369 bytes Source/GUIBase/GUIBase.rc | 22 + Source/GUIBase/GUIBase.res | Bin 0 -> 384 bytes Source/GUIBase/uDialogBase.dfm | 106 + Source/GUIBase/uDialogBase.pas | 39 + Source/GUIBase/uEditorBase.dfm | 1705 ++ Source/GUIBase/uEditorBase.pas | 460 + Source/GUIBase/uEditorBasico.dfm | 18 + Source/GUIBase/uEditorBasico.pas | 26 + Source/GUIBase/uEditorDBBase.dfm | 59 + Source/GUIBase/uEditorDBBase.pas | 256 + Source/GUIBase/uEditorDBItem.dfm | 103 + Source/GUIBase/uEditorDBItem.pas | 93 + Source/GUIBase/uEditorGridBase.dfm | 1566 ++ Source/GUIBase/uEditorGridBase.pas | 319 + Source/GUIBase/uEditorItem.dfm | 66 + Source/GUIBase/uEditorItem.pas | 39 + Source/GUIBase/uEditorPSPreview.dfm | 15 + Source/GUIBase/uEditorPSPreview.pas | 24 + Source/GUIBase/uEditorPreview.dfm | 936 + Source/GUIBase/uEditorPreview.pas | 355 + Source/GUIBase/uEditorUtils.pas | 108 + Source/GUIBase/uViewBarraSeleccion.dfm | 65 + Source/GUIBase/uViewBarraSeleccion.pas | 28 + Source/GUIBase/uViewBase.dfm | 14 + Source/GUIBase/uViewBase.pas | 56 + Source/GUIBase/uViewDetallesBase.dfm | 716 + Source/GUIBase/uViewDetallesBase.pas | 748 + Source/GUIBase/uViewDetallesDTO.dfm | 95 + Source/GUIBase/uViewDetallesDTO.pas | 75 + Source/GUIBase/uViewDetallesGenerico.dfm | 238 + Source/GUIBase/uViewDetallesGenerico.pas | 206 + Source/GUIBase/uViewFiltroBase.dfm | 198 + Source/GUIBase/uViewFiltroBase.pas | 144 + Source/GUIBase/uViewFormaPago.dfm | 47 + Source/GUIBase/uViewFormaPago.pas | 26 + Source/GUIBase/uViewGrid.dfm | 323 + Source/GUIBase/uViewGrid.pas | 221 + Source/GUIBase/uViewGrid2Niveles.dfm | 136 + Source/GUIBase/uViewGrid2Niveles.pas | 211 + Source/GUIBase/uViewGridBase.dfm | 10 + Source/GUIBase/uViewGridBase.pas | 421 + Source/GUIBase/uViewIncidencias.dfm | 54 + Source/GUIBase/uViewIncidencias.pas | 30 + Source/GUIBase/uViewObservaciones.dfm | 46 + Source/GUIBase/uViewObservaciones.pas | 26 + Source/GUIBase/uViewPreview.dfm | 10 + Source/GUIBase/uViewPreview.pas | 43 + Source/GUIBase/uViewTotales.dfm | 619 + Source/GUIBase/uViewTotales.pas | 71 + Source/Informes/InfEtiquetasContacto.fr3 | 8 + Source/Informes/InfFichaEmpleado.fr3 | 45 + Source/Informes/InfPresupuestoCliente.fr3 | 12 + .../InfPresupuestoCliente_anterior.fr3 | 37 + .../AlbaranesCliente_Group.bdsgroup | 28 + .../AlbaranesCliente_Group.groupproj | 144 + .../AlbaranesCliente_controller.bdsproj | 492 + .../AlbaranesCliente_controller.dpk | 47 + .../AlbaranesCliente_controller.dproj | 551 + .../AlbaranesCliente_controller.identcache | Bin 0 -> 1403 bytes .../Controller/AlbaranesCliente_controller.rc | 22 + .../AlbaranesCliente_controller.res | Bin 0 -> 384 bytes .../View/uIEditorAlbaranCliente.pas | 23 + .../View/uIEditorAlbaranDevCliente.pas | 15 + .../View/uIEditorAlbaranesCliente.pas | 23 + .../View/uIEditorAlbaranesClientePreview.pas | 16 + .../View/uIEditorAlbaranesDevCliente.pas | 16 + ...uIEditorDireccionEntregaAlbaranCliente.pas | 22 + .../View/uIEditorElegirAlbaranesCliente.pas | 22 + ...IEditorElegirArticulosAlbaranesCliente.pas | 16 + .../uAlbaranesClienteController.pas | 1044 + .../uAlbaranesClienteReportController.pas | 169 + .../uArticulosAlbaranClienteController.pas | 50 + .../uDetallesAlbaranClienteController.pas | 148 + .../Data/AlbaranesCliente_data.bdsproj | 492 + .../Data/AlbaranesCliente_data.dpk | 41 + .../Data/AlbaranesCliente_data.dproj | 588 + .../Data/AlbaranesCliente_data.identcache | Bin 0 -> 108 bytes .../Data/AlbaranesCliente_data.rc | 0 .../Data/AlbaranesCliente_data.res | Bin 0 -> 32 bytes .../Data/uDataModuleAlbaranesCliente.dfm | 404 + .../Data/uDataModuleAlbaranesCliente.pas | 142 + .../Model/AlbaranesCliente_model.bdsproj | 496 + .../Model/AlbaranesCliente_model.dpk | 40 + .../Model/AlbaranesCliente_model.dproj | 547 + .../Model/AlbaranesCliente_model.identcache | Bin 0 -> 650 bytes .../Model/AlbaranesCliente_model.rc | 22 + .../Model/AlbaranesCliente_model.res | Bin 0 -> 384 bytes .../Data/uIDataModuleAlbaranesCliente.pas | 18 + .../uIDataModuleAlbaranesClienteReport.pas | 17 + .../Model/schAlbaranesClienteClient_Intf.pas | 2050 ++ .../Model/schAlbaranesClienteServer_Intf.pas | 2467 +++ .../Model/uBizAlbaranClienteServer.pas | 81 + .../Model/uBizAlbaranesCliente.pas | 334 + .../Model/uBizDetallesAlbaranCliente.pas | 42 + .../Plugin/AlbaranesCliente_plugin.bdsproj | 497 + .../Plugin/AlbaranesCliente_plugin.dpk | 34 + .../Plugin/AlbaranesCliente_plugin.dproj | 593 + .../Plugin/AlbaranesCliente_plugin.identcache | Bin 0 -> 106 bytes .../Plugin/AlbaranesCliente_plugin.rc | 0 .../Plugin/AlbaranesCliente_plugin.res | Bin 0 -> 32 bytes .../Plugin/uPluginAlbaranesCliente.dfm | 516 + .../Plugin/uPluginAlbaranesCliente.pas | 88 + .../Reports/uRptAlbaranesCliente_Server.dfm | 1425 ++ .../Reports/uRptAlbaranesCliente_Server.pas | 155 + .../Servidor/srvAlbaranesCliente_Impl.dfm | 1548 ++ .../Servidor/srvAlbaranesCliente_Impl.pas | 113 + .../Views/AlbaranesCliente_view.bdsproj | 497 + .../Views/AlbaranesCliente_view.dpk | 50 + .../Views/AlbaranesCliente_view.dproj | 653 + .../Views/AlbaranesCliente_view.identcache | Bin 0 -> 1575 bytes .../Views/AlbaranesCliente_view.rc | 0 .../Views/AlbaranesCliente_view.res | Bin 0 -> 32 bytes .../Views/uAlbaranesClienteViewRegister.pas | 38 + .../Views/uEditorAlbaranCliente.dfm | 480 + .../Views/uEditorAlbaranCliente.pas | 393 + .../Views/uEditorAlbaranDevCliente.dfm | 240 + .../Views/uEditorAlbaranDevCliente.pas | 71 + .../Views/uEditorAlbaranesCliente.dfm | 2905 +++ .../Views/uEditorAlbaranesCliente.pas | 525 + .../Views/uEditorAlbaranesClienteReport.dfm | 12 + .../Views/uEditorAlbaranesClienteReport.pas | 25 + .../Views/uEditorAlbaranesDevCliente.dfm | 912 + .../Views/uEditorAlbaranesDevCliente.pas | 57 + .../Views/uEditorElegirAlbaranesCliente.dfm | 220 + .../Views/uEditorElegirAlbaranesCliente.pas | 116 + .../uEditorElegirArticulosAlbaranCliente.dfm | 7 + .../uEditorElegirArticulosAlbaranCliente.pas | 33 + .../Views/uViewAlbaranCliente.dfm | 777 + .../Views/uViewAlbaranCliente.pas | 427 + .../Views/uViewAlbaranDevCliente.dfm | 127 + .../Views/uViewAlbaranDevCliente.pas | 28 + .../Views/uViewAlbaranesCliente.dfm | 356 + .../Views/uViewAlbaranesCliente.pas | 291 + .../Views/uViewAlbaranesDevCliente.dfm | 42 + .../Views/uViewAlbaranesDevCliente.pas | 46 + .../Views/uViewDetallesAlbaranCliente.dfm | 18 + .../Views/uViewDetallesAlbaranCliente.pas | 72 + .../uViewDireccionEntregaAlbaranCliente.dfm | 204 + .../uViewDireccionEntregaAlbaranCliente.pas | 144 + .../uViewElegirArticulosAlbaranesCliente.dfm | 41 + .../uViewElegirArticulosAlbaranesCliente.pas | 27 + .../AlbaranesProveedor_Group.bdsgroup | 29 + .../AlbaranesProveedor_Group.config | 2 + .../AlbaranesProveedor_Group.groupproj | 134 + .../AlbaranesProveedor_controller.bdsproj | 492 + .../AlbaranesProveedor_controller.dpk | 50 + .../AlbaranesProveedor_controller.dproj | 555 + .../AlbaranesProveedor_controller.identcache | Bin 0 -> 1451 bytes .../AlbaranesProveedor_controller.rc | 22 + .../AlbaranesProveedor_controller.res | Bin 0 -> 384 bytes .../View/uIEditorAlbaranDevProveedor.pas | 15 + .../View/uIEditorAlbaranProveedor.pas | 23 + .../View/uIEditorAlbaranesDevProveedor.pas | 16 + .../View/uIEditorAlbaranesProveedor.pas | 23 + .../uIEditorAlbaranesProveedorPreview.pas | 16 + ...EditorDireccionEntregaAlbaranProveedor.pas | 22 + .../View/uIEditorElegirAlbaranesProveedor.pas | 26 + ...ditorElegirArticulosAlbaranesProveedor.pas | 19 + .../uAlbaranesProveedorController.pas | 1078 + .../uAlbaranesProveedorReportController.pas | 110 + .../uArticulosAlbaranProveedorController.pas | 51 + .../uDetallesAlbaranProveedorController.pas | 142 + .../Data/AlbaranesProveedor_data.bdsproj | 492 + .../Data/AlbaranesProveedor_data.dpk | 33 + .../Data/AlbaranesProveedor_data.dproj | 580 + .../Data/AlbaranesProveedor_data.identcache | Bin 0 -> 112 bytes .../Data/AlbaranesProveedor_data.rc | 0 .../Data/AlbaranesProveedor_data.res | Bin 0 -> 32 bytes .../Data/uDataModuleAlbaranesProveedor.dfm | 388 + .../Data/uDataModuleAlbaranesProveedor.pas | 136 + .../Model/AlbaranesProveedor_model.bdsproj | 496 + .../Model/AlbaranesProveedor_model.dpk | 39 + .../Model/AlbaranesProveedor_model.dproj | 605 + .../Model/AlbaranesProveedor_model.identcache | Bin 0 -> 674 bytes .../Model/AlbaranesProveedor_model.rc | 0 .../Model/AlbaranesProveedor_model.res | Bin 0 -> 32 bytes .../Data/uIDataModuleAlbaranesProveedor.pas | 18 + .../uIDataModuleAlbaranesProveedorReport.pas | 16 + .../AlbaranesProveedor_model.prjconfig | 2 + .../default.txaPackage | 0 .../schAlbaranesProveedorClient_Intf.pas | 1945 ++ .../schAlbaranesProveedorServer_Intf.pas | 2338 ++ .../Model/uBizAlbaranProveedorServer.PAS | 81 + .../Model/uBizAlbaranesProveedor.pas | 299 + .../Model/uBizDetallesAlbaranProveedor.pas | 48 + .../Plugin/AlbaranesProveedor_plugin.bdsproj | 496 + .../Plugin/AlbaranesProveedor_plugin.dpk | 34 + .../Plugin/AlbaranesProveedor_plugin.dproj | 550 + .../Plugin/AlbaranesProveedor_plugin.rc | 22 + .../Plugin/AlbaranesProveedor_plugin.res | Bin 0 -> 384 bytes .../Plugin/uPluginAlbaranesProveedor.dfm | 516 + .../Plugin/uPluginAlbaranesProveedor.pas | 88 + .../Reports/uRptAlbaranesProveedor_Server.dfm | 1158 + .../Reports/uRptAlbaranesProveedor_Server.pas | 118 + .../Servidor/srvAlbaranesProveedor_Impl.dfm | 1506 ++ .../Servidor/srvAlbaranesProveedor_Impl.pas | 99 + .../Views/AlbaranesProveedor_view.bdsproj | 492 + .../Views/AlbaranesProveedor_view.dpk | 53 + .../Views/AlbaranesProveedor_view.dproj | 603 + .../Views/AlbaranesProveedor_view.identcache | Bin 0 -> 1749 bytes .../Views/AlbaranesProveedor_view.rc | 22 + .../Views/AlbaranesProveedor_view.res | Bin 0 -> 384 bytes .../Views/uAlbaranesProveedorViewRegister.pas | 41 + .../Views/uEditorAlbaranDevProveedor.dfm | 225 + .../Views/uEditorAlbaranDevProveedor.pas | 113 + .../Views/uEditorAlbaranProveedor.dfm | 488 + .../Views/uEditorAlbaranProveedor.pas | 334 + .../Views/uEditorAlbaranesDevProveedor.dfm | 924 + .../Views/uEditorAlbaranesDevProveedor.pas | 54 + .../Views/uEditorAlbaranesProveedor.dfm | 2828 +++ .../Views/uEditorAlbaranesProveedor.pas | 349 + .../Views/uEditorAlbaranesProveedorReport.dfm | 12 + .../Views/uEditorAlbaranesProveedorReport.pas | 22 + ...EditorDireccionEntregaAlbaranProveedor.dfm | 157 + ...EditorDireccionEntregaAlbaranProveedor.pas | 92 + .../Views/uEditorElegirAlbaranesProveedor.dfm | 201 + .../Views/uEditorElegirAlbaranesProveedor.pas | 125 + ...uEditorElegirArticulosAlbaranProveedor.dfm | 5 + ...uEditorElegirArticulosAlbaranProveedor.pas | 65 + .../Views/uViewAlbaranDevProveedor.dfm | 144 + .../Views/uViewAlbaranDevProveedor.pas | 24 + .../Views/uViewAlbaranProveedor.dfm | 479 + .../Views/uViewAlbaranProveedor.pas | 280 + .../Views/uViewAlbaranesDevProveedor.dfm | 44 + .../Views/uViewAlbaranesDevProveedor.pas | 39 + .../Views/uViewAlbaranesProveedor.dfm | 312 + .../Views/uViewAlbaranesProveedor.pas | 238 + .../Views/uViewDetallesAlbaranProveedor.dfm | 9 + .../Views/uViewDetallesAlbaranProveedor.pas | 70 + .../uViewDireccionEntregaAlbaranProv.dfm | 153 + .../uViewDireccionEntregaAlbaranProv.pas | 218 + ...uViewElegirArticulosAlbaranesProveedor.dfm | 53 + ...uViewElegirArticulosAlbaranesProveedor.pas | 108 + .../Almacenes/Almacenes_Group.bdsgroup | 24 + .../Almacenes/Almacenes_Group.groupproj | 104 + .../Controller/Almacenes_controller.bdsproj | 492 + .../Controller/Almacenes_controller.dpk | 39 + .../Controller/Almacenes_controller.dproj | 582 + .../Almacenes_controller.identcache | Bin 0 -> 381 bytes .../Controller/Almacenes_controller.rc | 0 .../Controller/Almacenes_controller.res | Bin 0 -> 32 bytes .../Controller/View/uIEditorAlmacen.pas | 22 + .../Controller/View/uIEditorAlmacenes.pas | 23 + .../View/uIEditorListaAlmacenes.pas | 25 + .../Controller/uAlmacenesController.pas | 418 + .../Almacenes/Data/Almacenes_data.bdsproj | 492 + .../Modulos/Almacenes/Data/Almacenes_data.dpk | 33 + .../Almacenes/Data/Almacenes_data.dproj | 579 + .../Almacenes/Data/Almacenes_data.identcache | Bin 0 -> 90 bytes .../Modulos/Almacenes/Data/Almacenes_data.rc | 22 + .../Modulos/Almacenes/Data/Almacenes_data.res | Bin 0 -> 384 bytes .../Almacenes/Data/uDataModuleAlmacenes.dfm | 144 + .../Almacenes/Data/uDataModuleAlmacenes.pas | 100 + .../Almacenes/Model/Almacenes_model.bdsproj | 492 + .../Almacenes/Model/Almacenes_model.dpk | 36 + .../Almacenes/Model/Almacenes_model.dproj | 549 + .../Almacenes/Model/Almacenes_model.rc | 22 + .../Almacenes/Model/Almacenes_model.res | Bin 0 -> 384 bytes .../Model/Data/uIDataModuleAlmacenes.pas | 18 + .../Model/schAlmacenesClient_Intf.pas | 596 + .../Model/schAlmacenesServer_Intf.pas | 711 + .../Modulos/Almacenes/Model/uBizAlmacenes.pas | 50 + .../Almacenes/Plugin/Almacenes_plugin.bdsproj | 492 + .../Almacenes/Plugin/Almacenes_plugin.dpk | 35 + .../Almacenes/Plugin/Almacenes_plugin.dproj | 578 + .../Almacenes/Plugin/Almacenes_plugin.rc | 0 .../Almacenes/Plugin/Almacenes_plugin.res | Bin 0 -> 32 bytes .../Almacenes/Plugin/uPluginAlmacenes.dfm | 131 + .../Almacenes/Plugin/uPluginAlmacenes.pas | 74 + .../Almacenes/Servidor/srvAlmacenes_Impl.dfm | 288 + .../Almacenes/Servidor/srvAlmacenes_Impl.pas | 77 + .../Almacenes/Views/Almacenes_view.bdsproj | 492 + .../Almacenes/Views/Almacenes_view.dpk | 40 + .../Almacenes/Views/Almacenes_view.dproj | 593 + .../Almacenes/Views/Almacenes_view.identcache | Bin 0 -> 505 bytes .../Modulos/Almacenes/Views/Almacenes_view.rc | 0 .../Almacenes/Views/Almacenes_view.res | Bin 0 -> 32 bytes .../Views/uAlmacenesViewRegister.pas | 27 + .../Almacenes/Views/uEditorAlmacen.dfm | 144 + .../Almacenes/Views/uEditorAlmacen.pas | 204 + .../Almacenes/Views/uEditorAlmacenes.dfm | 1508 ++ .../Almacenes/Views/uEditorAlmacenes.pas | Bin 0 -> 4378 bytes .../Almacenes/Views/uEditorListaAlmacenes.dfm | 103 + .../Almacenes/Views/uEditorListaAlmacenes.pas | 84 + .../Almacenes/Views/uListaAlmacenes.dfm | 103 + .../Almacenes/Views/uListaAlmacenes.pas | 76 + .../Modulos/Almacenes/Views/uViewAlmacen.dfm | 264 + .../Modulos/Almacenes/Views/uViewAlmacen.pas | 83 + .../Almacenes/Views/uViewAlmacenes.dfm | 121 + .../Almacenes/Views/uViewAlmacenes.pas | 87 + .../Articulos/Articulos_Group.bdsgroup | 24 + .../Articulos/Articulos_Group.groupproj | 124 + .../Controller/Articulos_controller.bdsproj | 492 + .../Controller/Articulos_controller.dpk | 41 + .../Controller/Articulos_controller.dproj | 594 + .../Articulos_controller.identcache | Bin 0 -> 483 bytes .../Controller/Articulos_controller.rc | 0 .../Controller/Articulos_controller.res | Bin 0 -> 32 bytes .../Controller/View/uIEditorArticulo.pas | 22 + .../Controller/View/uIEditorArticulos.pas | 23 + .../View/uIEditorElegirArticulos.pas | 27 + .../Controller/uArticulosController.pas | 644 + .../uControllerDetallesArticulos.pas | 334 + .../Articulos/Data/Articulos_data.bdsproj | 492 + .../Modulos/Articulos/Data/Articulos_data.dpk | 33 + .../Articulos/Data/Articulos_data.dproj | 588 + .../Articulos/Data/Articulos_data.identcache | Bin 0 -> 90 bytes .../Modulos/Articulos/Data/Articulos_data.rc | 0 .../Modulos/Articulos/Data/Articulos_data.res | Bin 0 -> 32 bytes .../Articulos/Data/uDataModuleArticulos.dfm | 267 + .../Articulos/Data/uDataModuleArticulos.pas | 125 + .../Articulos/Model/Articulos_model.bdsproj | 492 + .../Articulos/Model/Articulos_model.dpk | 37 + .../Articulos/Model/Articulos_model.dproj | 547 + .../Model/Articulos_model.identcache | Bin 0 -> 357 bytes .../Articulos/Model/Articulos_model.rc | 22 + .../Articulos/Model/Articulos_model.res | Bin 0 -> 384 bytes .../Model/Data/uIDataModuleArticulos.pas | 19 + .../Model/schArticulosClient_Intf.pas | 1458 ++ .../Model/schArticulosServer_Intf.pas | 1753 ++ .../Modulos/Articulos/Model/uBizArticulos.pas | Bin 0 -> 3108 bytes .../Articulos/Plugin/Articulos_plugin.bdsproj | 492 + .../Articulos/Plugin/Articulos_plugin.dpk | 35 + .../Articulos/Plugin/Articulos_plugin.dproj | 580 + .../Articulos/Plugin/Articulos_plugin.rc | 0 .../Articulos/Plugin/Articulos_plugin.res | Bin 0 -> 32 bytes .../Articulos/Plugin/uPluginArticulos.dfm | 112 + .../Articulos/Plugin/uPluginArticulos.pas | 74 + .../Articulos/Servidor/srvArticulos_Impl.dfm | 758 + .../Articulos/Servidor/srvArticulos_Impl.pas | 78 + .../Articulos/Views/Articulos_view.bdsproj | 492 + .../Articulos/Views/Articulos_view.dpk | 43 + .../Articulos/Views/Articulos_view.dproj | 608 + .../Articulos/Views/Articulos_view.identcache | Bin 0 -> 597 bytes .../Modulos/Articulos/Views/Articulos_view.rc | 0 .../Articulos/Views/Articulos_view.res | Bin 0 -> 32 bytes .../Views/uArticulosViewRegister.pas | 27 + .../Articulos/Views/uEditorArticulo.dfm | 664 + .../Articulos/Views/uEditorArticulo.pas | 212 + .../Articulos/Views/uEditorArticulos.dfm | 1425 ++ .../Articulos/Views/uEditorArticulos.pas | Bin 0 -> 5406 bytes .../Views/uEditorElegirArticulos.dfm | 187 + .../Views/uEditorElegirArticulos.pas | 125 + .../Modulos/Articulos/Views/uViewArticulo.dfm | 560 + .../Modulos/Articulos/Views/uViewArticulo.pas | 282 + .../Articulos/Views/uViewArticulos.dfm | 245 + .../Articulos/Views/uViewArticulos.pas | 173 + .../Views/uViewDetallesArticulos.dfm | 358 + .../Views/uViewDetallesArticulos.pas | 135 + .../BancaElectronica_controller.bdsproj | 492 + .../BancaElectronica_controller.dpk | 44 + .../BancaElectronica_controller.dproj | 587 + .../BancaElectronica_controller.identcache | Bin 0 -> 575 bytes .../Controller/BancaElectronica_controller.rc | 0 .../BancaElectronica_controller.res | Bin 0 -> 32 bytes .../View/uIEditorExportacionNorma19.pas | 32 + .../uBancaElectronicaController.pas | 213 + .../Data/BancaElectronica_data.bdsproj | 175 + .../Data/BancaElectronica_data.dpk | 51 + .../Data/BancaElectronica_data.dproj | 116 + .../Data/BancaElectronica_data.res | Bin 0 -> 5056 bytes .../Data/uDataModuleBancaElectronica.dfm | 14 + .../Data/uDataModuleBancaElectronica.pas | 107 + .../Model/BancaElectronica_model.bdsproj | 175 + .../Model/BancaElectronica_model.dpk | 36 + .../Model/BancaElectronica_model.dproj | 539 + .../Model/BancaElectronica_model.identcache | Bin 0 -> 417 bytes .../Model/BancaElectronica_model.res | Bin 0 -> 5056 bytes .../Data/uIDataModuleBancaElectronica.pas | 43 + .../Model/uBizBancaElectronica.pas | 134 + .../PedidosProveedor_Group.groupproj | 94 + .../Plugin/BancaElectronica_plugin.bdsproj | 492 + .../Plugin/BancaElectronica_plugin.dpk | 34 + .../Plugin/BancaElectronica_plugin.dproj | 577 + .../Plugin/BancaElectronica_plugin.rc | 0 .../Plugin/BancaElectronica_plugin.res | Bin 0 -> 32 bytes .../Plugin/uPluginBancaElectronica.dfm | 111 + .../Plugin/uPluginBancaElectronica.pas | 62 + .../Utiles/CVBNorma1958CSB.pas | 1074 + .../Utiles/CVBNorma19CSB.pas | 1009 + .../Utiles/CVBNorma34CSB.pas | 780 + .../Banca electronica/Utiles/CVBReg.pas | 21 + .../Banca electronica/Utiles/CVBUtils.pas | 58 + .../Views/BancaElectronica_view.bdsproj | 492 + .../Views/BancaElectronica_view.dpk | 35 + .../Views/BancaElectronica_view.dproj | 580 + .../Views/BancaElectronica_view.rc | 0 .../Views/BancaElectronica_view.res | Bin 0 -> 32 bytes .../Views/uBancaElectronicaViewRegister.pas | 46 + .../Views/uEditorExportacionNorma19.dfm | 263 + .../Views/uEditorExportacionNorma19.pas | 195 + .../Controller/Comisiones_controller.bdsproj | 492 + .../Controller/Comisiones_controller.dpk | 83 + .../Controller/Comisiones_controller.rc | 0 .../Controller/Comisiones_controller.res | Bin 0 -> 32 bytes .../Controller/View/uIEditorComision.pas | 22 + .../Controller/View/uIEditorComisiones.pas | 23 + .../View/uIEditorComisionesPreview.pas | 19 + .../Controller/uComisionesController.pas | 492 + .../uComisionesReportController.pas | 111 + .../Comisiones/Data/Comisiones_data.bdsproj | 492 + .../Comisiones/Data/Comisiones_data.dpk | 42 + .../Comisiones/Data/Comisiones_data.rc | 0 .../Comisiones/Data/Comisiones_data.res | Bin 0 -> 32 bytes .../Comisiones/Data/uDataModuleComisiones.dfm | 309 + .../Comisiones/Data/uDataModuleComisiones.pas | 141 + .../Comisiones/Model/Comisiones_model.bdsproj | 492 + .../Comisiones/Model/Comisiones_model.dpk | 52 + .../Comisiones/Model/Comisiones_model.rc | 0 .../Comisiones/Model/Comisiones_model.res | Bin 0 -> 32 bytes .../Model/Data/uIDataModuleComisiones.pas | 20 + .../Data/uIDataModuleComisionesReport.pas | 16 + .../Model/schComisionesClient_Intf.pas | 1114 + .../Model/schComisionesServer_Intf.pas | 1279 ++ .../Comisiones/Model/schReportClient_Intf.pas | 622 + .../Comisiones/Model/schReportServer_Intf.pas | 739 + Source/Modulos/Comisiones/Model/serverlog.txt | 0 .../Comisiones/Model/uBizComisiones.pas | 111 + .../Comisiones/Model/uBizComisionesServer.pas | 76 + .../Plugin/Comisiones_plugin.bdsproj | 492 + .../Comisiones/Plugin/Comisiones_plugin.dpk | 41 + .../Comisiones/Plugin/Comisiones_plugin.rc | 0 .../Comisiones/Plugin/Comisiones_plugin.res | Bin 0 -> 32 bytes .../Comisiones/Plugin/uPluginComisiones.dfm | 128 + .../Comisiones/Plugin/uPluginComisiones.pas | 74 + .../Reports/uRptComisiones_Server.dfm | 1503 ++ .../Reports/uRptComisiones_Server.pas | 124 + .../Modulos/Comisiones/Servidor/serverlog.txt | 0 .../Servidor/srvComisiones_Impl.dfm | 1476 ++ .../Servidor/srvComisiones_Impl.pas | 86 + .../Comisiones/Views/Comisiones_view.bdsproj | 492 + .../Comisiones/Views/Comisiones_view.dpk | 95 + .../Comisiones/Views/Comisiones_view.rc | 0 .../Comisiones/Views/Comisiones_view.res | Bin 0 -> 32 bytes Source/Modulos/Comisiones/Views/serverlog.txt | 0 .../Views/uComisionesViewRegister.pas | 27 + .../Comisiones/Views/uEditorComision.dfm | 1805 ++ .../Comisiones/Views/uEditorComision.pas | 308 + .../Comisiones/Views/uEditorComisiones.dfm | 1492 ++ .../Comisiones/Views/uEditorComisiones.pas | Bin 0 -> 5131 bytes .../Views/uEditorComisionesReport.dfm | 161 + .../Views/uEditorComisionesReport.pas | 137 + .../Comisiones/Views/uEditorFamilias.dfm | 144 + .../Comisiones/Views/uEditorFamilias.pas | 180 + .../Views/uEditorRemesasCliente.dfm | 1520 ++ .../Views/uEditorRemesasCliente.pas | Bin 0 -> 5913 bytes .../Comisiones/Views/uViewComision.dfm | 190 + .../Comisiones/Views/uViewComision.pas | 99 + .../Comisiones/Views/uViewComisiones.dfm | 154 + .../Comisiones/Views/uViewComisiones.pas | 83 + .../Views/uViewFacturasComision.dfm | 266 + .../Views/uViewFacturasComision.pas | 190 + .../Balances_Group.groupproj | 124 + .../Controller/Balances_controller.dpk | 42 + .../Controller/Balances_controller.dproj | 545 + .../Controller/Balances_controller.identcache | Bin 0 -> 307 bytes .../Controller/Balances_controller.rc | 22 + .../Controller/Balances_controller.res | Bin 0 -> 384 bytes .../Controller/View/uIEditorBalance.pas | 22 + .../Controller/View/uIEditorBalances.pas | 21 + .../Controller/uBalancesController.pas | 273 + .../Data/Balances_data.dpk | 43 + .../Data/Balances_data.dproj | 548 + .../Data/Balances_data.identcache | Bin 0 -> 98 bytes .../Data/Balances_data.rc | 22 + .../Data/Balances_data.res | Bin 0 -> 384 bytes .../Data/uDataModuleBalances.dfm | 110 + .../Data/uDataModuleBalances.pas | 54 + .../Model/Balances_model.dpk | 46 + .../Model/Balances_model.dproj | 549 + .../Model/Balances_model.identcache | Bin 0 -> 492 bytes .../Model/Balances_model.rc | 22 + .../Model/Balances_model.res | Bin 0 -> 384 bytes .../Model/Data/uIDataModuleBalances.pas | 16 + .../Model/schBalancesClient_Intf.pas | 379 + .../Model/schBalancesServer_Intf.pas | 444 + .../Model/uBizBalances.pas | 54 + .../Plugin/Balances_plugin.dpk | 46 + .../Plugin/Balances_plugin.dproj | 549 + .../Plugin/Balances_plugin.identcache | Bin 0 -> 96 bytes .../Plugin/Balances_plugin.rc | 22 + .../Plugin/Balances_plugin.res | Bin 0 -> 384 bytes .../Plugin/uPluginBalances.dfm | 81 + .../Plugin/uPluginBalances.pas | 74 + .../Servidor/srvBalances_Impl.dfm | 194 + .../Servidor/srvBalances_Impl.pas | 64 + .../Views/Balances_view.dpk | 43 + .../Views/Balances_view.dproj | 551 + .../Views/Balances_view.identcache | Bin 0 -> 381 bytes .../Views/Balances_view.rc | 22 + .../Views/Balances_view.res | Bin 0 -> 384 bytes .../Views/uBalancesViewRegister.pas | 25 + .../Views/uEditorBalance.dfm | 248 + .../Views/uEditorBalance.pas | 190 + .../Views/uEditorBalances.dfm | 177 + .../Views/uEditorBalances.pas | 184 + .../CuentasEspeciales_controller.dpk | 42 + .../CuentasEspeciales_controller.dproj | 545 + .../CuentasEspeciales_controller.identcache | Bin 0 -> 362 bytes .../CuentasEspeciales_controller.rc | 22 + .../CuentasEspeciales_controller.res | Bin 0 -> 384 bytes .../View/uIEditorCuentaEspecial.pas | 22 + .../View/uIEditorCuentasEspeciales.pas | 21 + .../uCuentasEspecialesController.pas | 273 + .../CuentasEspeciales_Group.groupproj | 124 + .../Data/CuentasEspeciales_data.dpk | 43 + .../Data/CuentasEspeciales_data.dproj | 548 + .../Data/CuentasEspeciales_data.identcache | Bin 0 -> 117 bytes .../Data/CuentasEspeciales_data.rc | 22 + .../Data/CuentasEspeciales_data.res | Bin 0 -> 384 bytes .../Data/uDataModuleCuentasEspeciales.dfm | 67 + .../Data/uDataModuleCuentasEspeciales.pas | 54 + .../Model/CuentasEspeciales_model.dpk | 46 + .../Model/CuentasEspeciales_model.dproj | 549 + .../Model/CuentasEspeciales_model.identcache | Bin 0 -> 576 bytes .../Model/CuentasEspeciales_model.rc | 22 + .../Model/CuentasEspeciales_model.res | Bin 0 -> 384 bytes .../Data/uIDataModuleCuentasEspeciales.pas | 16 + .../Model/schCuentasEspecialesClient_Intf.pas | 169 + .../Model/schCuentasEspecialesServer_Intf.pas | 186 + .../Model/uBizCuentasEspeciales.pas | 54 + .../Plugin/CuentasEspeciales_plugin.dpk | 46 + .../Plugin/CuentasEspeciales_plugin.dproj | 551 + .../CuentasEspeciales_plugin.identcache | Bin 0 -> 115 bytes .../Plugin/CuentasEspeciales_plugin.rc | 22 + .../Plugin/CuentasEspeciales_plugin.res | Bin 0 -> 384 bytes .../Plugin/uPluginCuentasEspeciales.dfm | 81 + .../Plugin/uPluginCuentasEspeciales.pas | 74 + .../Servidor/srvCuentasEspeciales_Impl.dfm | 103 + .../Servidor/srvCuentasEspeciales_Impl.pas | 64 + .../Views/CuentasEspeciales_view.dpk | 43 + .../Views/CuentasEspeciales_view.dproj | 551 + .../Views/CuentasEspeciales_view.identcache | Bin 0 -> 337 bytes .../Views/CuentasEspeciales_view.rc | 22 + .../Views/CuentasEspeciales_view.res | Bin 0 -> 384 bytes .../Views/uCuentasEspecialesViewRegister.pas | 25 + .../Views/uEditorCuentaEspecial.dfm | 140 + .../Views/uEditorCuentaEspecial.pas | 178 + .../Views/uEditorCuentasEspeciales.dfm | 149 + .../Views/uEditorCuentasEspeciales.pas | 184 + .../Controller/Ejercicios_controller.dpk | 42 + .../Controller/Ejercicios_controller.dproj | 545 + .../Ejercicios_controller.identcache | Bin 0 -> 319 bytes .../Controller/Ejercicios_controller.rc | 22 + .../Controller/Ejercicios_controller.res | Bin 0 -> 384 bytes .../Controller/View/uIEditorEjercicio.pas | 26 + .../Controller/View/uIEditorEjercicios.pas | 23 + .../Controller/uEjerciciosController.pas | 300 + .../Data/Ejercicios_data.dpk | 43 + .../Data/Ejercicios_data.dproj | 548 + .../Data/Ejercicios_data.identcache | Bin 0 -> 102 bytes .../Data/Ejercicios_data.rc | 22 + .../Data/Ejercicios_data.res | Bin 0 -> 384 bytes .../Data/uDataModuleEjercicios.dfm | 110 + .../Data/uDataModuleEjercicios.pas | 54 + .../Ejercicios_Group.groupproj | 124 + .../Model/Data/uIDataModuleEjercicios.pas | 16 + .../Model/Ejercicios_model.dpk | 46 + .../Model/Ejercicios_model.dproj | 549 + .../Model/Ejercicios_model.identcache | Bin 0 -> 405 bytes .../Model/Ejercicios_model.rc | 22 + .../Model/Ejercicios_model.res | Bin 0 -> 384 bytes .../Model/schEjerciciosClient_Intf.pas | 414 + .../Model/schEjerciciosServer_Intf.pas | 487 + .../Model/uBizEjercicios.pas | 54 + .../Plugin/Ejercicios_plugin.dpk | 42 + .../Plugin/Ejercicios_plugin.dproj | 545 + .../Plugin/Ejercicios_plugin.identcache | Bin 0 -> 100 bytes .../Plugin/Ejercicios_plugin.rc | 22 + .../Plugin/Ejercicios_plugin.res | Bin 0 -> 384 bytes .../Plugin/uPluginEjercicios.dfm | 81 + .../Plugin/uPluginEjercicios.dfm.bak | 81 + .../Plugin/uPluginEjercicios.pas | 74 + .../Servidor/srvEjercicios_Impl.dfm | 200 + .../Servidor/srvEjercicios_Impl.pas | 64 + .../Views/Ejercicios_view.dpk | 87 + .../Views/Ejercicios_view.dproj | 602 + .../Views/Ejercicios_view.identcache | Bin 0 -> 479 bytes .../Views/Ejercicios_view.rc | 22 + .../Views/Ejercicios_view.res | Bin 0 -> 384 bytes .../Views/uEditorEjercicio.dfm | 144 + .../Views/uEditorEjercicio.pas | 204 + .../Views/uEditorEjercicios.dfm | 1496 ++ .../Views/uEditorEjercicios.pas | Bin 0 -> 4458 bytes .../Views/uEjerciciosViewRegister.pas | 25 + .../Views/uViewEjercicio.dfm | 134 + .../Views/uViewEjercicio.pas | 69 + .../Views/uViewEjercicios.dfm | 118 + .../Views/uViewEjercicios.pas | 83 + .../Controller/Epigrafes_controller.dpk | 42 + .../Controller/Epigrafes_controller.dproj | 545 + .../Epigrafes_controller.identcache | Bin 0 -> 313 bytes .../Controller/Epigrafes_controller.rc | 22 + .../Controller/Epigrafes_controller.res | Bin 0 -> 384 bytes .../Controller/View/uIEditorEpigrafe.pas | 26 + .../Controller/View/uIEditorEpigrafes.pas | 23 + .../Controller/uEpigrafesController.pas | 274 + .../Data/Epigrafes_data.dpk | 43 + .../Data/Epigrafes_data.dproj | 548 + .../Data/Epigrafes_data.identcache | Bin 0 -> 100 bytes .../Data/Epigrafes_data.rc | 22 + .../Data/Epigrafes_data.res | Bin 0 -> 384 bytes .../Data/uDataModuleEpigrafes.dfm | 80 + .../Data/uDataModuleEpigrafes.pas | 54 + .../Epigrafes_Group.groupproj | 124 + .../Model/Data/uIDataModuleEpigrafes.pas | 16 + .../Model/Epigrafes_model.dpk | 46 + .../Model/Epigrafes_model.dproj | 549 + .../Model/Epigrafes_model.identcache | Bin 0 -> 397 bytes .../Model/Epigrafes_model.rc | 22 + .../Model/Epigrafes_model.res | Bin 0 -> 384 bytes .../Model/schEpigrafesClient_Intf.pas | 239 + .../Model/schEpigrafesServer_Intf.pas | 272 + .../Model/uBizEpigrafes.pas | 54 + .../Plugin/Epigrafes_plugin.dpk | 46 + .../Plugin/Epigrafes_plugin.dproj | 549 + .../Plugin/Epigrafes_plugin.identcache | Bin 0 -> 98 bytes .../Plugin/Epigrafes_plugin.rc | 22 + .../Plugin/Epigrafes_plugin.res | Bin 0 -> 384 bytes .../Plugin/uPluginEpigrafes.dfm | 81 + .../Plugin/uPluginEpigrafes.pas | 74 + .../Servidor/srvEpigrafes_Impl.dfm | 130 + .../Servidor/srvEpigrafes_Impl.pas | 64 + .../Views/Epigrafes_view.dpk | 89 + .../Views/Epigrafes_view.dproj | 604 + .../Views/Epigrafes_view.identcache | Bin 0 -> 469 bytes .../Views/Epigrafes_view.rc | 22 + .../Views/Epigrafes_view.res | Bin 0 -> 384 bytes .../Views/uEditorEpigrafe.dfm | 144 + .../Views/uEditorEpigrafe.pas | 204 + .../Views/uEditorEpigrafes.dfm | 1496 ++ .../Views/uEditorEpigrafes.pas | Bin 0 -> 4395 bytes .../Views/uEpigrafesViewRegister.pas | 25 + .../Views/uViewEpigrafe.dfm | 83 + .../Views/uViewEpigrafe.pas | 65 + .../Views/uViewEpigrafes.dfm | 102 + .../Views/uViewEpigrafes.pas | 81 + .../Contactos/Contactos_Group.bdsgroup | 35 + .../Modulos/Contactos/Contactos_Group.config | 2 + .../Contactos/Contactos_Group.groupproj | 124 + .../Controller/Contactos_controller.bdsproj | 179 + .../Controller/Contactos_controller.dpk | 66 + .../Controller/Contactos_controller.dproj | 576 + .../Contactos_controller.identcache | Bin 0 -> 2748 bytes .../Controller/Contactos_controller.rc | 22 + .../Controller/Contactos_controller.res | Bin 0 -> 384 bytes .../Controller/View/uIEditorCliente.pas | 16 + .../Controller/View/uIEditorClientes.pas | 16 + .../Controller/View/uIEditorContacto.pas | 23 + .../Controller/View/uIEditorContactos.pas | 24 + .../View/uIEditorDireccionContacto.pas | 28 + .../View/uIEditorElegirClientes.pas | 16 + .../View/uIEditorElegirContactos.pas | 26 + .../View/uIEditorElegirDireccionEntrega.pas | 30 + .../View/uIEditorElegirProveedores.pas | 16 + .../Controller/View/uIEditorEmpleado.pas | 16 + .../Controller/View/uIEditorEmpleados.pas | 16 + .../uIEditorEtiquetasContactosPreview.pas | 16 + .../View/uIEditorFichasEmpleadoPreview.pas | 16 + .../Controller/View/uIEditorGruposCliente.pas | 23 + .../View/uIEditorGruposEmpleado.pas | 23 + .../View/uIEditorGruposProveedor.pas | 23 + .../Controller/View/uIEditorProveedor.pas | 16 + .../Controller/View/uIEditorProveedores.pas | 16 + .../Controller/uClientesController.pas | 396 + .../Controller/uContactosController.pas | 286 + .../uDireccionesContactoController.pas | 121 + .../Controller/uEmpleadosController.pas | 260 + .../uEtiquetasContactosReportController.pas | 108 + .../uFichasEmpleadoReportController.pas | 109 + .../Controller/uGruposClienteController.pas | 227 + .../Controller/uGruposEmpleadoController.pas | 227 + .../Controller/uGruposProveedorController.pas | 227 + .../Controller/uProveedoresController.pas | 326 + .../Contactos/Data/Contactos_data.bdsproj | 493 + .../Modulos/Contactos/Data/Contactos_data.dpk | 41 + .../Contactos/Data/Contactos_data.dproj | 555 + .../Contactos/Data/Contactos_data.identcache | Bin 0 -> 349 bytes .../Modulos/Contactos/Data/Contactos_data.rc | 22 + .../Modulos/Contactos/Data/Contactos_data.res | Bin 0 -> 384 bytes .../Contactos/Data/uDataModuleClientes.dfm | 340 + .../Contactos/Data/uDataModuleClientes.pas | 150 + .../Contactos/Data/uDataModuleContactos.dfm | 404 + .../Contactos/Data/uDataModuleContactos.pas | 129 + .../Contactos/Data/uDataModuleEmpleados.dfm | 253 + .../Contactos/Data/uDataModuleEmpleados.pas | 109 + .../Contactos/Data/uDataModuleProveedores.dfm | 271 + .../Contactos/Data/uDataModuleProveedores.pas | 124 + .../Contactos/Model/Contactos_model.bdsproj | 497 + .../Contactos/Model/Contactos_model.dpk | 52 + .../Contactos/Model/Contactos_model.dproj | 557 + .../Model/Contactos_model.identcache | Bin 0 -> 1461 bytes .../Contactos/Model/Contactos_model.rc | 22 + .../Contactos/Model/Contactos_model.res | Bin 0 -> 384 bytes .../Model/Data/uIDataModuleClientes.pas | 24 + .../Model/Data/uIDataModuleContactos.pas | 18 + .../Model/Data/uIDataModuleEmpleados.pas | 20 + .../uIDataModuleEtiquetasContactosReport.pas | 16 + .../Data/uIDataModuleFichasEmpleadoReport.pas | 16 + .../Model/Data/uIDataModuleGruposCliente.pas | 16 + .../Model/Data/uIDataModuleProveedores.pas | 21 + .../Model/schContactosClient_Intf.pas | 6636 ++++++ .../Model/schContactosServer_Intf.pas | 7981 +++++++ .../Model/uBizClientesDescuentos.pas | 61 + .../Contactos/Model/uBizClientesServer.pas | 127 + .../Modulos/Contactos/Model/uBizContactos.pas | 767 + .../Model/uBizContactosDatosBancarios.pas | 58 + .../Contactos/Model/uBizContactosServer.pas | 229 + .../Model/uBizDireccionesContacto.pas | 58 + .../Contactos/Model/uBizEmpleadosServer.pas | 114 + .../Contactos/Model/uBizGruposCliente.pas | 27 + .../Contactos/Model/uBizGruposEmpleado.pas | 27 + .../Contactos/Model/uBizGruposProveedor.pas | 29 + .../Contactos/Model/uBizProveedoresServer.pas | 122 + .../Contactos/Plugin/Contactos_plugin.bdsproj | 496 + .../Contactos/Plugin/Contactos_plugin.dex | 253 + .../Contactos/Plugin/Contactos_plugin.dpk | 40 + .../Contactos/Plugin/Contactos_plugin.dproj | 546 + .../Plugin/Contactos_plugin.identcache | Bin 0 -> 88 bytes .../Contactos/Plugin/Contactos_plugin.rc | 22 + .../Contactos/Plugin/Contactos_plugin.res | Bin 0 -> 384 bytes .../Contactos/Plugin/uPluginContactos.dfm | 498 + .../Contactos/Plugin/uPluginContactos.pas | 153 + .../Copia de uRptFichasEmpleado_Server.dfm | 949 + .../Copia de uRptFichasEmpleado_Server.pas | 108 + .../Reports/uRptEtiquetasContacto_Server.dfm | 591 + .../Reports/uRptEtiquetasContacto_Server.pas | 92 + .../Reports/uRptFichasEmpleado_Server.dfm | 1036 + .../Reports/uRptFichasEmpleado_Server.pas | 108 + .../Contactos/Servidor/srvContactos_Impl.dfm | 4157 ++++ .../Contactos/Servidor/srvContactos_Impl.pas | 129 + .../Contactos/Test/Contactos_Tests.bdsproj | 496 + .../Contactos/Test/Contactos_Tests.dpr | 42 + .../Contactos/Test/Contactos_Tests.dproj | 603 + .../Contactos/Test/Contactos_Tests.res | Bin 0 -> 5088 bytes .../Test/uClientesController_test.pas | 197 + .../Test/uDataModuleContactos_Test.pas | 140 + .../Modulos/Contactos/Test/uHostMainForm.dfm | 28 + .../Modulos/Contactos/Test/uHostMainForm.pas | 127 + .../Contactos/Utiles/uRegimenIVAUtils.pas | 31 + .../Contactos/Views/Contactos_view.bdsproj | 543 + .../Contactos/Views/Contactos_view.dpk | 76 + .../Contactos/Views/Contactos_view.dproj | 676 + .../Contactos/Views/Contactos_view.identcache | Bin 0 -> 2769 bytes .../Modulos/Contactos/Views/Contactos_view.rc | 22 + .../Contactos/Views/Contactos_view.res | Bin 0 -> 384 bytes .../Views/uContactosViewRegister.pas | 67 + .../Contactos/Views/uEditorCliente.dfm | 997 + .../Contactos/Views/uEditorCliente.pas | 116 + .../Contactos/Views/uEditorClientes.dfm | 2475 +++ .../Contactos/Views/uEditorClientes.pas | 207 + .../Contactos/Views/uEditorContacto.dfm | 184 + .../Contactos/Views/uEditorContacto.pas | 181 + .../Contactos/Views/uEditorContactos.dfm | 42 + .../Contactos/Views/uEditorContactos.pas | 177 + .../Contactos/Views/uEditorDireccion.dfm | 313 + .../Contactos/Views/uEditorDireccion.pas | 130 + .../Contactos/Views/uEditorElegirClientes.dfm | 662 + .../Contactos/Views/uEditorElegirClientes.pas | 155 + .../Views/uEditorElegirDireccionEntrega.dfm | 271 + .../Views/uEditorElegirDireccionEntrega.pas | 112 + .../Views/uEditorElegirProveedores.dfm | 331 + .../Views/uEditorElegirProveedores.pas | 131 + .../Contactos/Views/uEditorEmpleado.dfm | 976 + .../Contactos/Views/uEditorEmpleado.pas | 103 + .../Contactos/Views/uEditorEmpleados.dfm | 1120 + .../Contactos/Views/uEditorEmpleados.pas | 187 + .../Views/uEditorEtiquetasContactosReport.dfm | 22 + .../Views/uEditorEtiquetasContactosReport.pas | 28 + .../Views/uEditorFichasEmpleadoReport.dfm | 22 + .../Views/uEditorFichasEmpleadoReport.pas | 28 + .../Contactos/Views/uEditorGruposCliente.dfm | 138 + .../Contactos/Views/uEditorGruposCliente.pas | 179 + .../Contactos/Views/uEditorGruposEmpleado.dfm | 138 + .../Contactos/Views/uEditorGruposEmpleado.pas | 179 + .../Views/uEditorGruposProveedor.dfm | 138 + .../Views/uEditorGruposProveedor.pas | 179 + .../Contactos/Views/uEditorProveedor.dfm | 950 + .../Contactos/Views/uEditorProveedor.pas | 102 + .../Contactos/Views/uEditorProveedores.dfm | 1612 ++ .../Contactos/Views/uEditorProveedores.pas | 186 + .../Contactos/Views/uViewCategorias.dfm | 21 + .../Contactos/Views/uViewCategorias.pas | 30 + .../Modulos/Contactos/Views/uViewCliente.dfm | 379 + .../Modulos/Contactos/Views/uViewCliente.pas | 126 + .../Views/uViewClienteDatosComerciales.dfm | 280 + .../Views/uViewClienteDatosComerciales.pas | 150 + .../Views/uViewClienteDescuentos.dfm | 53 + .../Views/uViewClienteDescuentos.pas | 52 + .../Modulos/Contactos/Views/uViewClientes.dfm | 180 + .../Modulos/Contactos/Views/uViewClientes.pas | 64 + .../Modulos/Contactos/Views/uViewContacto.dfm | 646 + .../Modulos/Contactos/Views/uViewContacto.pas | 191 + .../Views/uViewContactoDatosBancarios.dfm | 171 + .../Views/uViewContactoDatosBancarios.pas | 39 + .../Contactos/Views/uViewContactos.dfm | 149 + .../Contactos/Views/uViewContactos.pas | 90 + .../Views/uViewDatosYSeleccionCliente.dfm | 476 + .../Views/uViewDatosYSeleccionCliente.pas | 215 + .../Views/uViewDatosYSeleccionProveedor.dfm | 643 + .../Views/uViewDatosYSeleccionProveedor.pas | 213 + .../Contactos/Views/uViewDireccion.dfm | 120 + .../Contactos/Views/uViewDireccion.pas | 39 + .../Views/uViewDireccionesEntrega.dfm | 79 + .../Views/uViewDireccionesEntrega.pas | 69 + .../Modulos/Contactos/Views/uViewEmpleado.dfm | 238 + .../Modulos/Contactos/Views/uViewEmpleado.pas | 96 + .../Contactos/Views/uViewEmpleados.dfm | 59 + .../Contactos/Views/uViewEmpleados.pas | 28 + .../Modulos/Contactos/Views/uViewInternet.dfm | 89 + .../Modulos/Contactos/Views/uViewInternet.pas | 37 + .../Contactos/Views/uViewProveedor.dfm | 319 + .../Contactos/Views/uViewProveedor.pas | 107 + .../Views/uViewProveedorDatosComerciales.dfm | 244 + .../Views/uViewProveedorDatosComerciales.pas | 144 + .../Contactos/Views/uViewProveedores.dfm | 230 + .../Contactos/Views/uViewProveedores.pas | 30 + .../Contactos/Views/uViewTelefonos.dfm | 118 + .../Contactos/Views/uViewTelefonos.pas | 39 + .../FacturasCliente_controller.bdsproj | 492 + .../Controller/FacturasCliente_controller.dpk | 50 + .../FacturasCliente_controller.dproj | 595 + .../FacturasCliente_controller.identcache | Bin 0 -> 1122 bytes .../Controller/FacturasCliente_controller.rc | 0 .../Controller/FacturasCliente_controller.res | Bin 0 -> 32 bytes ...uIEditorElegirArticulosFacturasCliente.pas | 16 + .../View/uIEditorElegirFacturasCliente.pas | 27 + .../View/uIEditorFacturaCliente.pas | 23 + .../View/uIEditorFacturasCliente.pas | 23 + .../View/uIEditorFacturasClientePreview.pas | 19 + .../View/uIEditorSituacionFacturaCliente.pas | 27 + .../uArticulosFacturaClienteController.pas | 50 + .../uDetallesFacturaClienteController.pas | 157 + .../Controller/uFacturasClienteController.pas | 1092 + .../uFacturasClienteReportController.pas | 111 + .../Data/FacturasCliente_data.bdsproj | 492 + .../Data/FacturasCliente_data.dpk | 33 + .../Data/FacturasCliente_data.dproj | 581 + .../Data/FacturasCliente_data.identcache | Bin 0 -> 103 bytes .../Data/FacturasCliente_data.rc | 22 + .../Data/FacturasCliente_data.res | Bin 0 -> 384 bytes .../Data/uDataModuleFacturasCliente.dfm | 367 + .../Data/uDataModuleFacturasCliente.pas | 129 + .../FacturasCliente_Group.bdsgroup | 37 + .../FacturasCliente_Group.groupproj | 164 + .../FacturasCliente_Group_prjgroup.tvsconfig | 2 + .../Data/uIDataModuleFacturasCliente.pas | 19 + .../uIDataModuleFacturasClienteReport.pas | 16 + .../Model/FacturasCliente_model.bdsproj | 496 + .../Model/FacturasCliente_model.dpk | 40 + .../Model/FacturasCliente_model.dproj | 554 + .../Model/FacturasCliente_model.identcache | Bin 0 -> 639 bytes .../Model/FacturasCliente_model.rc | 22 + .../Model/FacturasCliente_model.res | Bin 0 -> 384 bytes .../FacturasCliente_model.prjconfig | 2 + .../Presupuestos_model.prjconfig | 2 + .../default.txaPackage | 0 .../Model/schFacturasClienteClient_Intf.pas | 1835 ++ .../Model/schFacturasClienteServer_Intf.pas | 2202 ++ .../Model/uBizDetallesFacturaCliente.pas | 43 + .../Model/uBizFacturasCliente.pas | 362 + .../Model/uBizFacturasClienteServer.pas | 88 + .../Plugin/FacturasCliente_plugin.bdsproj | 495 + .../Plugin/FacturasCliente_plugin.dpk | 35 + .../Plugin/FacturasCliente_plugin.dproj | 556 + .../Plugin/FacturasCliente_plugin.identcache | Bin 0 -> 104 bytes .../Plugin/FacturasCliente_plugin.rc | 22 + .../Plugin/FacturasCliente_plugin.res | Bin 0 -> 384 bytes .../Plugin/uPluginFacturasCliente.dfm | 135 + .../Plugin/uPluginFacturasCliente.pas | 75 + .../Copia de uRptFacturasCliente_Server.dfm | 1519 ++ .../Copia de uRptFacturasCliente_Server.pas | 130 + .../Reports/uRptFacturasCliente_Server.dfm | 1090 + .../Reports/uRptFacturasCliente_Server.pas | 129 + .../Servidor/schFacturasCliente.daConnections | 1 + .../Servidor/srvFacturasCliente_Impl.dfm | 1570 ++ .../Servidor/srvFacturasCliente_Impl.pas | 103 + .../Test/Presupuestos_Test.bdsproj | 496 + .../Test/Presupuestos_Test.dpr | 40 + .../Test/Presupuestos_Test.res | Bin 0 -> 5120 bytes .../Test/uDataModulePresupuestos_Test.pas | 98 + .../Test/uHostMainForm.dfm | 28 + .../Test/uHostMainForm.pas | 116 + .../Test/uPluginPresupuestos_Test.pas | 56 + .../Test/uPresupuestosController_Test.pas | 85 + .../Views/FacturasCliente_view.bdsproj | 492 + .../Views/FacturasCliente_view.dpk | 46 + .../Views/FacturasCliente_view.dproj | 609 + .../Views/FacturasCliente_view.identcache | Bin 0 -> 1008 bytes .../Views/FacturasCliente_view.rc | 0 .../Views/FacturasCliente_view.res | Bin 0 -> 32 bytes .../uEditorElegirArticulosFacturaCliente.dfm | 6 + .../uEditorElegirArticulosFacturaCliente.pas | 33 + .../Views/uEditorElegirFacturasCliente.dfm | 300 + .../Views/uEditorElegirFacturasCliente.pas | 148 + .../Views/uEditorFacturaCliente.dfm | 464 + .../Views/uEditorFacturaCliente.pas | 428 + .../Views/uEditorFacturasCliente.dfm | 3621 +++ .../Views/uEditorFacturasCliente.pas | 387 + .../Views/uEditorFacturasClienteReport.dfm | 10 + .../Views/uEditorFacturasClienteReport.pas | 30 + .../Views/uFacturasClienteViewRegister.pas | 33 + .../Views/uViewDetallesFacturaCliente.dfm | 18 + .../Views/uViewDetallesFacturaCliente.pas | 71 + .../uViewElegirArticulosFacturasCliente.dfm | 41 + .../uViewElegirArticulosFacturasCliente.pas | 27 + .../Views/uViewFacturaCliente.dfm | 271 + .../Views/uViewFacturaCliente.pas | 128 + .../Views/uViewFacturasCliente.dfm | 496 + .../Views/uViewFacturasCliente.pas | 225 + .../FacturasProveedor_controller.bdsproj | 492 + .../FacturasProveedor_controller.dpk | 47 + .../FacturasProveedor_controller.dproj | 551 + .../FacturasProveedor_controller.identcache | Bin 0 -> 950 bytes .../FacturasProveedor_controller.rc | 22 + .../FacturasProveedor_controller.res | Bin 0 -> 384 bytes ...EditorElegirArticulosFacturasProveedor.pas | 19 + .../View/uIEditorFacturaProveedor.pas | 23 + .../View/uIEditorFacturasProveedor.pas | 22 + .../View/uIEditorFacturasProveedorPreview.pas | 16 + .../uArticulosFacturaProveedorController.pas | 52 + .../uDetallesFacturaProveedorController.pas | 148 + .../uFacturasProveedorController.pas | 1070 + .../uFacturasProveedorReportController.pas | 110 + .../Data/FacturasProveedor_data.bdsproj | 492 + .../Data/FacturasProveedor_data.dpk | 34 + .../Data/FacturasProveedor_data.dproj | 541 + .../Data/FacturasProveedor_data.identcache | Bin 0 -> 110 bytes .../Data/FacturasProveedor_data.rc | 22 + .../Data/FacturasProveedor_data.res | Bin 0 -> 384 bytes .../Data/uDataModuleFacturasProveedor.dfm | 357 + .../Data/uDataModuleFacturasProveedor.pas | 127 + .../FacturasProveedor_Group.bdsgroup | 41 + .../FacturasProveedor_Group.config | 2 + .../FacturasProveedor_Group.groupproj | 144 + .../Data/uIDataModuleFacturasProveedor.pas | 19 + .../uIDataModuleFacturasProveedorReport.pas | 16 + .../Model/FacturasProveedor_model.bdsproj | 496 + .../Model/FacturasProveedor_model.dpk | 41 + .../Model/FacturasProveedor_model.dproj | 561 + .../Model/FacturasProveedor_model.identcache | Bin 0 -> 663 bytes .../Model/FacturasProveedor_model.rc | 22 + .../Model/FacturasProveedor_model.res | Bin 0 -> 384 bytes .../Model/schFacturasProveedorClient_Intf.pas | 1765 ++ .../Model/schFacturasProveedorServer_Intf.pas | 2116 ++ .../Model/uBizDetallesFacturaProveedor.pas | 48 + .../Model/uBizFacturasProveedor.pas | 327 + .../Model/uBizFacturasProveedorServer.pas | 88 + .../Plugin/FacturasProveedor_plugin.bdsproj | 496 + .../Plugin/FacturasProveedor_plugin.dpk | 34 + .../Plugin/FacturasProveedor_plugin.dproj | 552 + .../FacturasProveedor_plugin.identcache | Bin 0 -> 108 bytes .../Plugin/FacturasProveedor_plugin.rc | 22 + .../Plugin/FacturasProveedor_plugin.res | Bin 0 -> 384 bytes .../Plugin/uPluginFacturasProveedor.dfm | 135 + .../Plugin/uPluginFacturasProveedor.pas | 75 + .../Reports/uRptFacturasProveedor_Server.dfm | 1422 ++ .../Reports/uRptFacturasProveedor_Server.pas | 128 + .../Servidor/srvFacturasProveedor_Impl.dfm | 1397 ++ .../Servidor/srvFacturasProveedor_Impl.pas | 101 + .../Test/Presupuestos_Test.bdsproj | 496 + .../Test/Presupuestos_Test.dpr | 40 + .../Test/Presupuestos_Test.res | Bin 0 -> 5120 bytes .../Test/uDataModulePresupuestos_Test.pas | 98 + .../Test/uHostMainForm.dfm | 28 + .../Test/uHostMainForm.pas | 116 + .../Test/uPluginPresupuestos_Test.pas | 56 + .../Test/uPresupuestosController_Test.pas | 85 + .../Views/FacturasProveedor_view.bdsproj | 494 + .../Views/FacturasProveedor_view.dpk | 44 + .../Views/FacturasProveedor_view.dproj | 573 + .../Views/FacturasProveedor_view.identcache | Bin 0 -> 969 bytes .../Views/FacturasProveedor_view.rc | 22 + .../Views/FacturasProveedor_view.res | Bin 0 -> 384 bytes ...uEditorElegirArticulosFacturaProveedor.dfm | 7 + ...uEditorElegirArticulosFacturaProveedor.pas | 65 + .../Views/uEditorFacturaProveedor.dfm | 465 + .../Views/uEditorFacturaProveedor.pas | 423 + .../Views/uEditorFacturasProveedor.dfm | 3621 +++ .../Views/uEditorFacturasProveedor.pas | 393 + .../Views/uEditorFacturasProveedorReport.dfm | 10 + .../Views/uEditorFacturasProveedorReport.pas | 26 + .../Views/uFacturasProveedorViewRegister.pas | 30 + .../Views/uViewDetallesFacturaProveedor.dfm | 10 + .../Views/uViewDetallesFacturaProveedor.pas | 71 + .../uViewElegirArticulosFacturasProveedor.dfm | 53 + .../uViewElegirArticulosFacturasProveedor.pas | 105 + .../Views/uViewFacturaProveedor.dfm | 283 + .../Views/uViewFacturaProveedor.pas | 151 + .../Views/uViewFacturasProveedor.dfm | 516 + .../Views/uViewFacturasProveedor.pas | 225 + .../Controller/Familias_controller.bdsproj | 492 + .../Controller/Familias_controller.dpk | 40 + .../Controller/Familias_controller.dproj | 542 + .../Controller/Familias_controller.rc | 22 + .../Controller/Familias_controller.res | Bin 0 -> 384 bytes .../Controller/View/uIEditorFamilias.pas | 23 + .../Controller/uFamiliasController.pas | 234 + .../Familias/Data/Familias_data.bdsproj | 492 + .../Modulos/Familias/Data/Familias_data.dpk | 38 + .../Modulos/Familias/Data/Familias_data.dproj | 543 + Source/Modulos/Familias/Data/Familias_data.rc | 22 + .../Modulos/Familias/Data/Familias_data.res | Bin 0 -> 384 bytes .../Familias/Data/uDataModuleFamilias.dfm | 49 + .../Familias/Data/uDataModuleFamilias.pas | 59 + .../Modulos/Familias/Familias_Group.bdsgroup | 24 + .../Modulos/Familias/Familias_Group.groupproj | 104 + .../Model/Data/uIDataModuleFamilias.pas | 16 + .../Familias/Model/Familias_model.bdsproj | 492 + .../Modulos/Familias/Model/Familias_model.dpk | 39 + .../Familias/Model/Familias_model.dproj | 552 + .../Modulos/Familias/Model/Familias_model.rc | 22 + .../Modulos/Familias/Model/Familias_model.res | Bin 0 -> 384 bytes .../Familias/Model/schFamiliasClient_Intf.pas | 82 + .../Familias/Model/schFamiliasServer_Intf.pas | 79 + .../Modulos/Familias/Model/uBizFamilias.pas | 27 + .../Familias/Plugin/Familias_plugin.bdsproj | 492 + .../Familias/Plugin/Familias_plugin.dpk | 41 + .../Familias/Plugin/Familias_plugin.dproj | 543 + .../Familias/Plugin/Familias_plugin.rc | 22 + .../Familias/Plugin/Familias_plugin.res | Bin 0 -> 384 bytes .../Familias/Plugin/uPluginFamilias.dfm | 81 + .../Familias/Plugin/uPluginFamilias.pas | 74 + .../Familias/Servidor/srvFamilias_Impl.dfm | 160 + .../Familias/Servidor/srvFamilias_Impl.pas | 63 + .../Familias/Views/Familias_view.bdsproj | 492 + .../Modulos/Familias/Views/Familias_view.dpk | 40 + .../Familias/Views/Familias_view.dproj | 559 + .../Modulos/Familias/Views/Familias_view.rc | 22 + .../Modulos/Familias/Views/Familias_view.res | Bin 0 -> 384 bytes .../Familias/Views/uEditorFamilias.dfm | 144 + .../Familias/Views/uEditorFamilias.pas | 180 + .../Familias/Views/uFamiliasViewRegister.pas | 23 + .../Controller/FormasPago_controller.bdsproj | 492 + .../Controller/FormasPago_controller.dpk | 43 + .../Controller/FormasPago_controller.dproj | 546 + .../Controller/FormasPago_controller.gex | 7 + .../Controller/FormasPago_controller.rc | 22 + .../Controller/FormasPago_controller.res | Bin 0 -> 384 bytes .../Controller/View/uIEditorFormaPago.pas | 22 + .../Controller/View/uIEditorFormasPago.pas | 21 + .../Controller/uFormasPagoController.pas | 279 + .../uFormasPagoPlazosController.pas | 41 + .../Data/FormasPago_data.bdsproj | 492 + .../Formas de pago/Data/FormasPago_data.dpk | 43 + .../Formas de pago/Data/FormasPago_data.dproj | 548 + .../Formas de pago/Data/FormasPago_data.rc | 22 + .../Formas de pago/Data/FormasPago_data.res | Bin 0 -> 384 bytes .../Data/uDataModuleFormasPago.dfm | 155 + .../Data/uDataModuleFormasPago.pas | 81 + .../Formas de pago/FormasPago_Group.bdsgroup | 24 + .../Formas de pago/FormasPago_Group.groupproj | 114 + .../Model/Data/uIDataModuleFormasPago.pas | 16 + .../Model/FormasPago_model.bdsproj | 492 + .../Formas de pago/Model/FormasPago_model.dpk | 41 + .../Model/FormasPago_model.dproj | 544 + .../Formas de pago/Model/FormasPago_model.rc | 22 + .../Formas de pago/Model/FormasPago_model.res | Bin 0 -> 384 bytes .../Model/schFormasPagoClient_Intf.pas | 526 + .../Model/schFormasPagoServer_Intf.pas | 609 + .../Formas de pago/Model/uBizFormasPago.pas | 95 + .../Model/uBizFormasPagoPlazos.pas | 67 + .../Plugin/FormasPago_plugin.bdsproj | 492 + .../Plugin/FormasPago_plugin.dpk | 42 + .../Plugin/FormasPago_plugin.dproj | 545 + .../Plugin/FormasPago_plugin.rc | 22 + .../Plugin/FormasPago_plugin.res | Bin 0 -> 384 bytes .../Plugin/uPluginFormasPago.dfm | 81 + .../Plugin/uPluginFormasPago.pas | 74 + .../Servidor/srvFormasPago_Impl.dfm | 554 + .../Servidor/srvFormasPago_Impl.pas | 66 + .../Views/FormasPago_view.bdsproj | 492 + .../Formas de pago/Views/FormasPago_view.dpk | 42 + .../Views/FormasPago_view.dproj | 549 + .../Formas de pago/Views/FormasPago_view.rc | 22 + .../Formas de pago/Views/FormasPago_view.res | Bin 0 -> 384 bytes .../Formas de pago/Views/uEditorFormaPago.dfm | 223 + .../Formas de pago/Views/uEditorFormaPago.pas | 192 + .../Views/uEditorFormasPago.dfm | 145 + .../Views/uEditorFormasPago.pas | 184 + .../Views/uFormasPagoViewRegister.pas | 25 + .../HistoricoMovimientos_controller.bdsproj | 492 + .../HistoricoMovimientos_controller.dpk | 37 + .../HistoricoMovimientos_controller.dproj | 540 + ...HistoricoMovimientos_controller.identcache | Bin 0 -> 242 bytes .../HistoricoMovimientos_controller.rc | 22 + .../HistoricoMovimientos_controller.res | Bin 0 -> 384 bytes .../View/uIEditorHistoricoMovimientos.pas | 27 + .../uHistoricoMovimientosController.pas | 206 + .../Data/HistoricoMovimientos_data.bdsproj | 492 + .../Data/HistoricoMovimientos_data.dpk | 33 + .../Data/HistoricoMovimientos_data.dproj | 538 + .../Data/HistoricoMovimientos_data.identcache | Bin 0 -> 116 bytes .../Data/HistoricoMovimientos_data.rc | 22 + .../Data/HistoricoMovimientos_data.res | Bin 0 -> 384 bytes .../Data/uDataModuleHistoricoMovimientos.dfm | 124 + .../Data/uDataModuleHistoricoMovimientos.pas | 89 + .../HistoricoMovimientos_Group.bdsgroup | 26 + .../HistoricoMovimientos_Group.groupproj | 124 + .../Data/uIDataModuleHistoricoMovimientos.pas | 17 + .../Model/HistoricoMovimientos_model.bdsproj | 492 + .../Model/HistoricoMovimientos_model.dpk | 36 + .../Model/HistoricoMovimientos_model.dproj | 538 + .../HistoricoMovimientos_model.identcache | Bin 0 -> 461 bytes .../Model/HistoricoMovimientos_model.rc | 22 + .../Model/HistoricoMovimientos_model.res | Bin 0 -> 384 bytes .../schHistoricoMovimientosClient_Intf.pas | 484 + .../schHistoricoMovimientosServer_Intf.pas | 573 + .../Model/uBizHistoricoMovimientos.pas | 51 + .../HistoricoMovimientos_plugin.bdsproj | 492 + .../Plugin/HistoricoMovimientos_plugin.dpk | 35 + .../Plugin/HistoricoMovimientos_plugin.dproj | 540 + .../Plugin/HistoricoMovimientos_plugin.rc | 22 + .../Plugin/HistoricoMovimientos_plugin.res | Bin 0 -> 384 bytes .../Plugin/uPluginHistoricoMovimientos.dfm | 330 + .../Plugin/uPluginHistoricoMovimientos.pas | 75 + .../Servidor/srvHistoricoMovimientos_Impl.dfm | 230 + .../Servidor/srvHistoricoMovimientos_Impl.pas | 72 + .../Views/HistoricoMovimientos_view.bdsproj | 492 + .../Views/HistoricoMovimientos_view.dpk | 36 + .../Views/HistoricoMovimientos_view.dproj | 545 + .../HistoricoMovimientos_view.identcache | Bin 0 -> 335 bytes .../Views/HistoricoMovimientos_view.rc | 22 + .../Views/HistoricoMovimientos_view.res | Bin 0 -> 384 bytes .../Views/uEditorHistoricoMovimientos.dfm | 2197 ++ .../Views/uEditorHistoricoMovimientos.pas | Bin 0 -> 7896 bytes .../uHistoricoMovimientosViewRegister.pas | 23 + .../Views/uViewHistoricoMovimientos.dfm | 394 + .../Views/uViewHistoricoMovimientos.pas | 178 + .../Controller/Inventario_controller.bdsproj | 492 + .../Controller/Inventario_controller.dpk | 47 + .../Controller/Inventario_controller.dproj | 593 + .../Inventario_controller.identcache | Bin 0 -> 808 bytes .../Controller/Inventario_controller.rc | 0 .../Controller/Inventario_controller.res | Bin 0 -> 32 bytes .../Inventario/Controller/View/serverlog.txt | 321 + .../View/uIEditorDetalleReservas.pas | 23 + .../View/uIEditorElegirArticulosAlmacen.pas | 26 + .../View/uIEditorElegirArticulosCatalogo.pas | 16 + .../View/uIEditorEntradaSalidaArticulos.pas | 34 + .../Controller/View/uIEditorInventario.pas | 30 + .../uArticulosInventarioController.pas | 49 + .../Controller/uInventarioController.pas | 1153 + .../Inventario/Data/Inventario_data.bdsproj | 492 + .../Inventario/Data/Inventario_data.dpk | 34 + .../Inventario/Data/Inventario_data.dproj | 579 + .../Data/Inventario_data.identcache | Bin 0 -> 92 bytes .../Inventario/Data/Inventario_data.rc | 0 .../Inventario/Data/Inventario_data.res | Bin 0 -> 32 bytes .../Inventario/Data/uDataModuleInventario.dfm | 281 + .../Inventario/Data/uDataModuleInventario.pas | 98 + .../Inventario/Inventario_Group.bdsgroup | 27 + .../Inventario/Inventario_Group.groupproj | 134 + .../Model/Data/uIDataModuleInventario.pas | 18 + .../Inventario/Model/Inventario_model.bdsproj | 492 + .../Inventario/Model/Inventario_model.dpk | 37 + .../Inventario/Model/Inventario_model.dproj | 580 + .../Model/Inventario_model.identcache | Bin 0 -> 365 bytes .../Inventario/Model/Inventario_model.rc | 0 .../Inventario/Model/Inventario_model.res | Bin 0 -> 32 bytes .../Model/schInventarioClient_Intf.pas | 1296 ++ .../Model/schInventarioServer_Intf.pas | 1555 ++ .../Inventario/Model/uBizInventario.pas | 149 + .../Plugin/Inventario_plugin.bdsproj | 492 + .../Inventario/Plugin/Inventario_plugin.dpk | 36 + .../Inventario/Plugin/Inventario_plugin.dproj | 540 + .../Plugin/Inventario_plugin.identcache | Bin 0 -> 90 bytes .../Inventario/Plugin/Inventario_plugin.rc | 22 + .../Inventario/Plugin/Inventario_plugin.res | Bin 0 -> 384 bytes .../Inventario/Plugin/uPluginInventario.dfm | 138 + .../Inventario/Plugin/uPluginInventario.pas | 75 + .../Servidor/srvInventario_Impl.dfm | 722 + .../Servidor/srvInventario_Impl.pas | 73 + .../Inventario/Utiles/uInventarioUtils.dfm | 42 + .../Inventario/Utiles/uInventarioUtils.pas | 45 + .../Inventario/Views/Inventario_view.bdsproj | 492 + .../Inventario/Views/Inventario_view.dpk | 45 + .../Inventario/Views/Inventario_view.dproj | 574 + .../Views/Inventario_view.identcache | Bin 0 -> 924 bytes .../Inventario/Views/Inventario_view.rc | 22 + .../Inventario/Views/Inventario_view.res | Bin 0 -> 384 bytes .../Views/uEditorDetalleReservas.dfm | 1829 ++ .../Views/uEditorDetalleReservas.pas | Bin 0 -> 7180 bytes .../Views/uEditorElegirArticulosAlmacen.dfm | 274 + .../Views/uEditorElegirArticulosAlmacen.pas | 126 + .../Views/uEditorElegirArticulosCatalogo.dfm | 5 + .../Views/uEditorElegirArticulosCatalogo.pas | 33 + .../Views/uEditorEntradaSalidaArticulos.dfm | 1867 ++ .../Views/uEditorEntradaSalidaArticulos.pas | 299 + .../Inventario/Views/uEditorInventario.dfm | 2187 ++ .../Inventario/Views/uEditorInventario.pas | 374 + .../Views/uInventarioViewRegister.pas | 33 + .../Inventario/Views/uViewDetalleReservas.dfm | 196 + .../Inventario/Views/uViewDetalleReservas.pas | 192 + .../Views/uViewElegirArticulosCatalogo.dfm | 47 + .../Views/uViewElegirArticulosCatalogo.pas | 27 + .../Views/uViewEntradaSalidaArticulos.dfm | 93 + .../Views/uViewEntradaSalidaArticulos.pas | 79 + .../Inventario/Views/uViewInventario.dfm | 238 + .../Inventario/Views/uViewInventario.pas | 176 + .../PedidosProveedor_controller.bdsproj | 492 + .../PedidosProveedor_controller.dpk | 46 + .../PedidosProveedor_controller.dproj | 550 + .../PedidosProveedor_controller.identcache | Bin 0 -> 1288 bytes .../Controller/PedidosProveedor_controller.rc | 22 + .../PedidosProveedor_controller.res | Bin 0 -> 384 bytes ...IEditorDireccionEntregaPedidoProveedor.pas | 22 + ...IEditorElegirArticulosPedidosProveedor.pas | 19 + .../View/uIEditorElegirPedidosProveedor.pas | 26 + .../View/uIEditorPedidoProveedor.pas | 23 + .../View/uIEditorPedidosProveedor.pas | 23 + .../View/uIEditorPedidosProveedorPreview.pas | 16 + .../View/uIEditorSituacionPedidoProveedor.pas | 27 + .../uArticulosPedidoProveedorController.pas | 52 + .../uDetallesPedidoProveedorController.pas | 147 + .../uPedidosProveedorController.pas | 788 + .../uPedidosProveedorReportController.pas | 110 + .../Data/PedidosProveedor_data.bdsproj | 492 + .../Data/PedidosProveedor_data.dpk | 34 + .../Data/PedidosProveedor_data.dproj | 581 + .../Data/PedidosProveedor_data.identcache | Bin 0 -> 107 bytes .../Data/PedidosProveedor_data.rc | 0 .../Data/PedidosProveedor_data.res | Bin 0 -> 32 bytes .../Data/uDataModulePedidosProveedor.dfm | 417 + .../Data/uDataModulePedidosProveedor.pas | 156 + .../Data/uIDataModulePedidosProveedor.pas | 19 + .../uIDataModulePedidosProveedorReport.pas | 16 + .../PedidosProveedor_model.prjconfig | 2 + .../default.txaPackage | 0 .../Model/PedidosProveedor_model.bdsproj | 497 + .../Model/PedidosProveedor_model.dpk | 39 + .../Model/PedidosProveedor_model.dproj | 611 + .../Model/PedidosProveedor_model.identcache | Bin 0 -> 645 bytes .../Model/PedidosProveedor_model.rc | 0 .../Model/PedidosProveedor_model.res | Bin 0 -> 32 bytes .../Model/schPedidosProveedorClient_Intf.pas | 2162 ++ .../Model/schPedidosProveedorServer_Intf.pas | 2589 +++ .../Model/uBizDetallesPedidoProveedor.pas | 57 + .../Model/uBizPedidosProveedor.pas | 333 + .../Model/uBizPedidosProveedorServer.pas | 75 + .../PedidosProveedor_Group.bdsgroup | 27 + .../PedidosProveedor_Group.config | 2 + .../PedidosProveedor_Group.groupproj | 144 + .../Plugin/PedidosProveedor_plugin.bdsproj | 495 + .../Plugin/PedidosProveedor_plugin.dpk | 34 + .../Plugin/PedidosProveedor_plugin.dproj | 601 + .../Plugin/PedidosProveedor_plugin.identcache | Bin 0 -> 105 bytes .../Plugin/PedidosProveedor_plugin.rc | 0 .../Plugin/PedidosProveedor_plugin.res | Bin 0 -> 32 bytes .../Plugin/uPluginPedidosProveedor.dfm | 139 + .../Plugin/uPluginPedidosProveedor.pas | 74 + .../Reports/uRptPedidosProveedor_Server.dfm | 827 + .../Reports/uRptPedidosProveedor_Server.pas | 118 + .../Servidor/srvPedidosProveedor_Impl.dfm | 1501 ++ .../Servidor/srvPedidosProveedor_Impl.pas | 103 + .../Views/PedidosProveedor_view.bdsproj | 492 + .../Views/PedidosProveedor_view.dpk | 51 + .../Views/PedidosProveedor_view.dproj | 632 + .../Views/PedidosProveedor_view.identcache | Bin 0 -> 1379 bytes .../Views/PedidosProveedor_view.rc | 0 .../Views/PedidosProveedor_view.res | Bin 0 -> 32 bytes ...uEditorDireccionEntregaPedidoProveedor.dfm | 157 + ...uEditorDireccionEntregaPedidoProveedor.pas | 92 + .../uEditorElegirArticulosPedidoProveedor.dfm | 5 + .../uEditorElegirArticulosPedidoProveedor.pas | 63 + .../Views/uEditorElegirPedidosProveedor.dfm | 279 + .../Views/uEditorElegirPedidosProveedor.pas | 126 + .../Views/uEditorPedidoProveedor.dfm | 400 + .../Views/uEditorPedidoProveedor.pas | 307 + .../Views/uEditorPedidosProveedor.dfm | 2814 +++ .../Views/uEditorPedidosProveedor.pas | 350 + .../Views/uEditorPedidosProveedorReport.dfm | 12 + .../Views/uEditorPedidosProveedorReport.pas | 27 + .../Views/uEditorSituacionPedidoProveedor.dfm | 215 + .../Views/uEditorSituacionPedidoProveedor.pas | 147 + .../Views/uPedidosProveedorViewRegister.pas | 39 + .../Views/uViewDetallesPedidoProveedor.dfm | 9 + .../Views/uViewDetallesPedidoProveedor.pas | 73 + .../Views/uViewDireccionEntregaPedidoProv.dfm | 153 + .../Views/uViewDireccionEntregaPedidoProv.pas | 209 + .../uViewElegirArticulosPedidosProveedor.dfm | 77 + .../uViewElegirArticulosPedidosProveedor.pas | 107 + .../Views/uViewPedidoProveedor.dfm | 474 + .../Views/uViewPedidoProveedor.pas | 216 + .../Views/uViewPedidosProveedor.dfm | 334 + .../Views/uViewPedidosProveedor.pas | 263 + .../PresupuestosCliente_controller.dpk | 46 + .../PresupuestosCliente_controller.dproj | 551 + .../PresupuestosCliente_controller.identcache | Bin 0 -> 1239 bytes .../PresupuestosCliente_controller.rc | 22 + .../PresupuestosCliente_controller.res | Bin 0 -> 384 bytes ...itorDireccionEntregaPresupuestoCliente.pas | 22 + ...itorElegirArticulosPresupuestosCliente.pas | 16 + .../uIEditorElegirPresupuestosCliente.pas | 26 + .../View/uIEditorPresupuestoCliente.pas | 23 + .../View/uIEditorPresupuestosCliente.pas | 23 + .../uIEditorPresupuestosClientePreview.pas | 16 + ...uArticulosPresupuestoClienteController.pas | 50 + .../uDetallesPresupuestoClienteController.pas | 150 + .../uPresupuestosClienteController.pas | 805 + .../uPresupuestosClienteReportController.pas | 113 + .../Data/PresupuestosCliente_data.dpk | 33 + .../Data/PresupuestosCliente_data.dproj | 540 + .../Data/PresupuestosCliente_data.identcache | Bin 0 -> 114 bytes .../Data/PresupuestosCliente_data.rc | 22 + .../Data/PresupuestosCliente_data.res | Bin 0 -> 384 bytes .../Data/uDataModulePresupuestosCliente.dfm | 335 + .../Data/uDataModulePresupuestosCliente.pas | 137 + .../Data/uIDataModulePresupuestosCliente.pas | 18 + .../uIDataModulePresupuestosClienteReport.pas | 16 + .../default.txaPackage | 2 + .../default.txvpck | 8 + .../default_diagram.tvsconfig | 2 + .../Model/PresupuestosCliente_model.dpk | 45 + .../Model/PresupuestosCliente_model.dproj | 553 + .../PresupuestosCliente_model.identcache | Bin 0 -> 687 bytes .../Model/PresupuestosCliente_model.rc | 22 + .../Model/PresupuestosCliente_model.res | Bin 0 -> 384 bytes ...resupuestosCliente_model_project.tvsconfig | 2 + .../schPresupuestosClienteClient_Intf.pas | 1675 ++ .../schPresupuestosClienteServer_Intf.pas | 2008 ++ .../Model/uBizDetallesPresupuestoCliente.pas | 43 + .../Model/uBizPresupuestosCliente.pas | 302 + .../Model/uBizPresupuestosClienteServer.pas | 76 + .../Plugin/PresupuestosCliente_plugin.dpk | 35 + .../Plugin/PresupuestosCliente_plugin.dproj | 544 + .../Plugin/PresupuestosCliente_plugin.rc | 22 + .../Plugin/PresupuestosCliente_plugin.res | Bin 0 -> 384 bytes .../Plugin/uPluginPresupuestosCliente.dfm | 392 + .../Plugin/uPluginPresupuestosCliente.pas | 75 + .../PresupuestosCliente_Group.groupproj | 164 + .../Reports/uRptPedidosCliente_Server.dfm | 624 + .../Reports/uRptPedidosCliente_Server.pas | 118 + .../uRptPresupuestosCliente_Server.dfm | 847 + .../uRptPresupuestosCliente_Server.pas | 128 + .../Servidor/srvPresupuestosCliente_Impl.dfm | 1293 ++ .../Servidor/srvPresupuestosCliente_Impl.pas | 98 + .../Test/Presupuestos_Test.bdsproj | 496 + .../Test/Presupuestos_Test.dpr | 40 + .../Test/Presupuestos_Test.res | Bin 0 -> 5120 bytes .../Test/uDataModulePresupuestos_Test.pas | 98 + .../Test/uHostMainForm.dfm | 28 + .../Test/uHostMainForm.pas | 116 + .../Test/uPluginPresupuestos_Test.pas | 56 + .../Test/uPresupuestosController_Test.pas | 85 + .../Views/PresupuestosCliente_view.dpk | 46 + .../Views/PresupuestosCliente_view.dproj | 580 + .../Views/PresupuestosCliente_view.identcache | Bin 0 -> 1118 bytes .../Views/PresupuestosCliente_view.rc | 22 + .../Views/PresupuestosCliente_view.res | Bin 0 -> 384 bytes ...ditorElegirArticulosPresupuestoCliente.dfm | 6 + ...ditorElegirArticulosPresupuestoCliente.pas | 33 + .../uEditorElegirPresupuestosCliente.dfm | 203 + .../uEditorElegirPresupuestosCliente.pas | 128 + .../Views/uEditorPresupuestoCliente.dfm | 551 + .../Views/uEditorPresupuestoCliente.pas | 349 + .../Views/uEditorPresupuestosCliente.dfm | 3121 +++ .../Views/uEditorPresupuestosCliente.pas | 403 + .../uEditorPresupuestosClienteReport.dfm | 22 + .../uEditorPresupuestosClienteReport.pas | 23 + .../uPresupuestosClienteViewRegister.pas | 33 + .../Views/uViewDetallesPresupuestoCliente.dfm | 18 + .../Views/uViewDetallesPresupuestoCliente.pas | 72 + ...ViewDireccionEntregaPresupuestoCliente.dfm | 204 + ...ViewDireccionEntregaPresupuestoCliente.pas | 144 + ...ViewElegirArticulosPresupuestosCliente.dfm | 41 + ...ViewElegirArticulosPresupuestosCliente.pas | 28 + .../Views/uViewPresupuestoCliente.dfm | 387 + .../Views/uViewPresupuestoCliente.pas | 212 + .../Views/uViewPresupuestosCliente.dfm | 342 + .../Views/uViewPresupuestosCliente.pas | 261 + .../RecibosCliente_controller.bdsproj | 492 + .../Controller/RecibosCliente_controller.dpk | 43 + .../RecibosCliente_controller.dproj | 586 + .../RecibosCliente_controller.identcache | Bin 0 -> 873 bytes .../Controller/RecibosCliente_controller.rc | 0 .../Controller/RecibosCliente_controller.res | Bin 0 -> 32 bytes .../View/uIEditorElegirRecibosCliente.pas | 27 + .../Controller/View/uIEditorFechaPago.pas | 18 + .../Controller/View/uIEditorReciboCliente.pas | 22 + .../View/uIEditorRecibosCliente.pas | 46 + .../View/uIEditorRecibosClientePreview.pas | 16 + .../Controller/uPagosClienteController.pas | 146 + .../Controller/uRecibosClienteController.pas | 913 + .../uRecibosClienteReportController.pas | 109 + .../Data/RecibosCliente_data.bdsproj | 492 + .../Data/RecibosCliente_data.dpk | 34 + .../Data/RecibosCliente_data.dproj | 540 + .../Data/RecibosCliente_data.identcache | Bin 0 -> 104 bytes .../Data/RecibosCliente_data.rc | 22 + .../Data/RecibosCliente_data.res | Bin 0 -> 384 bytes .../Data/uDataModuleRecibosCliente.dfm | 473 + .../Data/uDataModuleRecibosCliente.pas | 168 + .../Model/Copia de uBizPagosCliente.pas | 70 + .../Model/Data/uIDataModuleRecibosCliente.pas | 41 + .../Data/uIDataModuleRecibosClienteReport.pas | 16 + .../Model/RecibosCliente_model.bdsproj | 492 + .../Model/RecibosCliente_model.dpk | 48 + .../Model/RecibosCliente_model.dproj | 551 + .../Model/RecibosCliente_model.identcache | Bin 0 -> 719 bytes .../Model/RecibosCliente_model.rc | 22 + .../Model/RecibosCliente_model.res | Bin 0 -> 384 bytes .../Model/schRecibosClienteClient_Intf.pas | 2598 +++ .../Model/schRecibosClienteServer_Intf.pas | 3139 +++ .../Model/uBizPagosCliente.pas | 70 + .../Model/uBizRecibosCliCompensados.pas | 68 + .../Model/uBizRecibosCliente.pas | 217 + .../Plugin/RecibosCliente_plugin.bdsproj | 495 + .../Plugin/RecibosCliente_plugin.dpk | 35 + .../Plugin/RecibosCliente_plugin.dproj | 594 + .../Plugin/RecibosCliente_plugin.identcache | Bin 0 -> 102 bytes .../Plugin/RecibosCliente_plugin.rc | 0 .../Plugin/RecibosCliente_plugin.res | Bin 0 -> 32 bytes .../Plugin/uPluginRecibosCliente.dfm | 124 + .../Plugin/uPluginRecibosCliente.pas | 74 + .../RecibosCliente_Group.groupproj | 124 + .../Reports/uRptRecibosCliente_Server.dfm | 904 + .../Reports/uRptRecibosCliente_Server.pas | 118 + .../Servidor/srvRecibosCliente_Impl.dfm | 1435 ++ .../Servidor/srvRecibosCliente_Impl.pas | 97 + .../Views/RecibosCliente_view.bdsproj | 492 + .../Views/RecibosCliente_view.dpk | 46 + .../Views/RecibosCliente_view.dproj | 609 + .../Views/RecibosCliente_view.identcache | Bin 0 -> 1079 bytes .../Views/RecibosCliente_view.rc | 0 .../Views/RecibosCliente_view.res | Bin 0 -> 32 bytes .../Views/uEditorElegirRecibosCliente.dfm | Bin 0 -> 7973 bytes .../Views/uEditorElegirRecibosCliente.pas | 211 + .../Views/uEditorFechaPago.dfm | 78 + .../Views/uEditorFechaPago.pas | 55 + .../Views/uEditorReciboCliente.dfm | 373 + .../Views/uEditorReciboCliente.pas | 350 + .../Views/uEditorReciboClienteReport.dfm | 10 + .../Views/uEditorReciboClienteReport.pas | 27 + .../Views/uEditorRecibosCliente.dfm | 2160 ++ .../Views/uEditorRecibosCliente.pas | 255 + .../Views/uRecibosClienteViewRegister.pas | 55 + .../Views/uViewPagosCliente.dfm | 337 + .../Views/uViewPagosCliente.pas | 101 + .../Views/uViewReciboCliImportes.dfm | 129 + .../Views/uViewReciboCliImportes.pas | 37 + .../Views/uViewReciboCliente.dfm | 597 + .../Views/uViewReciboCliente.pas | 99 + .../Views/uViewRecibosCliCompensados.dfm | 247 + .../Views/uViewRecibosCliCompensados.pas | 193 + .../Views/uViewRecibosCliente.dfm | 316 + .../Views/uViewRecibosCliente.pas | 285 + .../RecibosProveedor_controller.bdsproj | 492 + .../RecibosProveedor_controller.dpk | 43 + .../RecibosProveedor_controller.dproj | 546 + .../RecibosProveedor_controller.identcache | Bin 0 -> 912 bytes .../Controller/RecibosProveedor_controller.rc | 22 + .../RecibosProveedor_controller.res | Bin 0 -> 384 bytes .../View/uIEditorElegirRecibosProveedor.pas | 27 + .../View/uIEditorFechaPagoProveedor.pas | 18 + .../View/uIEditorReciboProveedor.pas | 22 + .../View/uIEditorRecibosProveedor.pas | 46 + .../View/uIEditorRecibosProveedorPreview.pas | 15 + .../Controller/uPagosProveedorController.pas | 144 + .../uRecibosProveedorController.pas | 838 + .../uRecibosProveedorReportController.pas | 109 + .../Data/RecibosProveedor_data.bdsproj | 492 + .../Data/RecibosProveedor_data.dpk | 35 + .../Data/RecibosProveedor_data.dproj | 540 + .../Data/RecibosProveedor_data.identcache | Bin 0 -> 108 bytes .../Data/RecibosProveedor_data.rc | 22 + .../Data/RecibosProveedor_data.res | Bin 0 -> 384 bytes .../Data/uDataModuleRecibosProveedor.dfm | 505 + .../Data/uDataModuleRecibosProveedor.pas | 170 + .../Data/uIDataModuleRecibosProveedor.pas | 41 + .../uIDataModuleRecibosProveedorReport.pas | 16 + .../Model/RecibosProveedor_model.bdsproj | 492 + .../Model/RecibosProveedor_model.dpk | 48 + .../Model/RecibosProveedor_model.dproj | 592 + .../Model/RecibosProveedor_model.drc_ | 10 + .../Model/RecibosProveedor_model.identcache | Bin 0 -> 746 bytes .../Model/RecibosProveedor_model.rc | 22 + .../Model/RecibosProveedor_model.res | Bin 0 -> 384 bytes .../Model/schRecibosProveedorClient_Intf.pas | 2738 +++ .../Model/schRecibosProveedorServer_Intf.pas | 3311 +++ .../Model/uBizPagosProveedor.pas | 70 + .../Model/uBizRecibosCliCompensados.pas | 68 + .../Model/uBizRecibosProvCompensados.pas | 68 + .../Model/uBizRecibosProveedor.pas | 211 + .../Plugin/RecibosProveedor_plugin.bdsproj | 496 + .../Plugin/RecibosProveedor_plugin.dpk | 34 + .../Plugin/RecibosProveedor_plugin.dproj | 599 + .../Plugin/RecibosProveedor_plugin.rc | 0 .../Plugin/RecibosProveedor_plugin.res | Bin 0 -> 32 bytes .../Plugin/uPluginRecibosProveedor.dfm | 124 + .../Plugin/uPluginRecibosProveedor.pas | 74 + .../RecibosProveedor_Group.groupproj | 124 + .../Reports/uRptRecibosCliente_Server.dfm | 755 + .../Reports/uRptRecibosCliente_Server.pas | 82 + .../Reports/uRptRecibosProveedor_Server.dfm | 755 + .../Reports/uRptRecibosProveedor_Server.pas | 82 + .../Servidor/srvRecibosProveedor_Impl.dfm | 1540 ++ .../Servidor/srvRecibosProveedor_Impl.pas | 99 + .../Views/RecibosProveedor_view.bdsproj | 492 + .../Views/RecibosProveedor_view.dpk | 46 + .../Views/RecibosProveedor_view.dproj | 577 + .../Views/RecibosProveedor_view.identcache | Bin 0 -> 1128 bytes .../Views/RecibosProveedor_view.rc | 22 + .../Views/RecibosProveedor_view.res | Bin 0 -> 384 bytes .../Views/uEditorElegirRecibosProveedor.dfm | 410 + .../Views/uEditorElegirRecibosProveedor.pas | 211 + .../Views/uEditorFechaPagoProveedor.dfm | 78 + .../Views/uEditorFechaPagoProveedor.pas | 51 + .../Views/uEditorReciboProveedor.dfm | 369 + .../Views/uEditorReciboProveedor.pas | 333 + .../Views/uEditorReciboProveedorReport.dfm | 10 + .../Views/uEditorReciboProveedorReport.pas | 22 + .../Views/uEditorRecibosProveedor.dfm | 1538 ++ .../Views/uEditorRecibosProveedor.pas | Bin 0 -> 5512 bytes .../Views/uRecibosProveedorViewRegister.pas | 55 + .../Views/uViewPagosProveedor.dfm | 314 + .../Views/uViewPagosProveedor.pas | 99 + .../Views/uViewReciboProvImportes.dfm | 129 + .../Views/uViewReciboProvImportes.pas | 37 + .../Views/uViewReciboProveedor.dfm | 659 + .../Views/uViewReciboProveedor.pas | 103 + .../Views/uViewRecibosProvCompensados.dfm | 237 + .../Views/uViewRecibosProvCompensados.pas | 193 + .../Views/uViewRecibosProveedor.dfm | 307 + .../Views/uViewRecibosProveedor.pas | 287 + .../Controller/Referencias_controller.bdsproj | 492 + .../Controller/Referencias_controller.dpk | 52 + .../Controller/Referencias_controller.rc | 0 .../Controller/Referencias_controller.res | Bin 0 -> 32 bytes .../Controller/View/uIEditorReferencias.pas | 21 + .../Controller/uReferenciasController.pas | 187 + .../Referencias/Data/Referencias_data.bdsproj | 492 + .../Referencias/Data/Referencias_data.dpk | 42 + .../Referencias/Data/Referencias_data.rc | 0 .../Referencias/Data/Referencias_data.res | Bin 0 -> 32 bytes .../Data/uDataModuleReferencias.dfm | 68 + .../Data/uDataModuleReferencias.pas | 56 + .../Model/Data/uIDataModuleReferencias.pas | 16 + .../Model/Referencias_model.bdsproj | 492 + .../Referencias/Model/Referencias_model.dpk | 43 + .../Referencias/Model/Referencias_model.rc | 0 .../Referencias/Model/Referencias_model.res | Bin 0 -> 32 bytes .../Model/schReferenciasClient_Intf.pas | 136 + .../Model/schReferenciasServer_Intf.pas | 145 + .../Referencias/Model/uBizReferencias.pas | 29 + .../Plugin/Referencias_plugin.bdsproj | 492 + .../Referencias/Plugin/Referencias_plugin.dpk | 42 + .../Referencias/Plugin/Referencias_plugin.rc | 0 .../Referencias/Plugin/Referencias_plugin.res | Bin 0 -> 32 bytes .../Referencias/Plugin/uPluginReferencias.dfm | 83 + .../Referencias/Plugin/uPluginReferencias.pas | 74 + .../Servidor/srvReferencias_Impl.dfm | 164 + .../Servidor/srvReferencias_Impl.pas | 70 + .../Views/Referencias_view.bdsproj | 492 + .../Referencias/Views/Referencias_view.dpk | 42 + .../Referencias/Views/Referencias_view.rc | 0 .../Referencias/Views/Referencias_view.res | Bin 0 -> 32 bytes .../Referencias/Views/uEditorReferencias.dfm | 145 + .../Referencias/Views/uEditorReferencias.pas | 173 + .../Views/uReferenciasViewRegister.pas | 23 + .../AlbCli_FacCli_relation.bdsproj | 529 + .../AlbCli_FacCli_relation.dpk | 49 + .../AlbCli_FacCli_relation.rc | 0 .../AlbCli_FacCli_relation.res | Bin 0 -> 32 bytes .../uGenerarAlbaranesCliFacCliUtils.dfm | 5 + .../uGenerarAlbaranesCliFacCliUtils.pas | 95 + .../uGenerarFacturasCliAlbCliUtils.dfm | 311 + .../uGenerarFacturasCliAlbCliUtils.pas | 248 + .../AlbProv_FacProv_relation.bdsproj | 529 + .../AlbProv_FacProv_relation.dpk | 49 + .../AlbProv_FacProv_relation.dproj | 224 + .../AlbProv_FacProv_relation.rc | 0 .../AlbProv_FacProv_relation.res | Bin 0 -> 5056 bytes .../uGenerarAlbaranesProvFacProvUtils.dfm | 5 + .../uGenerarAlbaranesProvFacProvUtils.pas | 96 + .../uGenerarFacturasProvAlbProvUtils.dfm | 311 + .../uGenerarFacturasProvAlbProvUtils.pas | 246 + .../PedCli_AlbCli_relation.bdsproj | 524 + .../PedCli_AlbCli_relation.dpk | 41 + .../PedCli_AlbCli_relation.rc | 0 .../PedCli_AlbCli_relation.res | Bin 0 -> 32 bytes .../uGenerarAlbaranesCliUtils.dfm | 313 + .../uGenerarAlbaranesCliUtils.pas | 265 + .../PedCli_PedProv_relation.bdsproj | 525 + .../PedCli_PedProv_relation.dpk | 41 + .../PedCli_PedProv_relation.rc | 0 .../PedCli_PedProv_relation.res | Bin 0 -> 32 bytes .../uGenerarPedidosProvUtils.dfm | 305 + .../uGenerarPedidosProvUtils.pas | 181 + .../PedProv_AlbProv_relation.bdsproj | 529 + .../PedProv_AlbProv_relation.dpk | 50 + .../PedProv_AlbProv_relation.dproj | 223 + .../PedProv_AlbProv_relation.rc | 0 .../PedProv_AlbProv_relation.res | Bin 0 -> 5056 bytes .../uGenerarAlbaranesProvUtils.dfm | 311 + .../uGenerarAlbaranesProvUtils.pas | 346 + .../PedProv_FacProv_relation.bdsproj | 530 + .../PedProv_FacProv_relation.dpk | 48 + .../PedProv_FacProv_relation.dproj | 219 + .../PedProv_FacProv_relation.rc | 0 .../PedProv_FacProv_relation.res | Bin 0 -> 5056 bytes .../uGenerarFacturasProvPedProvUtils.dfm | 315 + .../uGenerarFacturasProvPedProvUtils.pas | 228 + .../uGenerarFacturasProvUtils.dfm | 315 + .../uGenerarFacturasProvUtils.pas | 226 + .../RemesasCliente_controller.bdsproj | 492 + .../Controller/RemesasCliente_controller.dpk | 41 + .../RemesasCliente_controller.dproj | 592 + .../RemesasCliente_controller.identcache | Bin 0 -> 552 bytes .../Controller/RemesasCliente_controller.rc | 0 .../Controller/RemesasCliente_controller.res | Bin 0 -> 32 bytes .../Controller/View/uIEditorRemesaCliente.pas | 22 + .../View/uIEditorRemesasCliente.pas | 23 + .../View/uIEditorRemesasClientePreview.pas | 16 + .../Controller/uRemesasClienteController.pas | 599 + .../uRemesasClienteReportController.pas | 109 + .../Data/RemesasCliente_data.bdsproj | 492 + .../Data/RemesasCliente_data.dpk | 34 + .../Data/RemesasCliente_data.dproj | 587 + .../Data/RemesasCliente_data.identcache | Bin 0 -> 104 bytes .../Data/RemesasCliente_data.rc | 0 .../Data/RemesasCliente_data.res | Bin 0 -> 32 bytes .../Data/uDataModuleRemesasCliente.dfm | 163 + .../Data/uDataModuleRemesasCliente.pas | 110 + .../Model/Data/uIDataModuleRemesasCliente.pas | 18 + .../Data/uIDataModuleRemesasClienteReport.pas | 16 + .../Model/RemesasCliente_model.bdsproj | 492 + .../Model/RemesasCliente_model.dpk | 38 + .../Model/RemesasCliente_model.dproj | 589 + .../Model/RemesasCliente_model.identcache | Bin 0 -> 526 bytes .../Model/RemesasCliente_model.rc | 0 .../Model/RemesasCliente_model.res | Bin 0 -> 32 bytes .../Model/schRemesasClienteClient_Intf.pas | 771 + .../Model/schRemesasClienteServer_Intf.pas | 910 + .../Model/uBizRemesasCliente.pas | 104 + .../Model/uBizRemesasClienteServer.pas | 77 + .../Plugin/RemesasCliente_plugin.bdsproj | 492 + .../Plugin/RemesasCliente_plugin.dpk | 35 + .../Plugin/RemesasCliente_plugin.dproj | 580 + .../Plugin/RemesasCliente_plugin.identcache | Bin 0 -> 102 bytes .../Plugin/RemesasCliente_plugin.rc | 0 .../Plugin/RemesasCliente_plugin.res | Bin 0 -> 32 bytes .../Plugin/uPluginRemesasCliente.dfm | 135 + .../Plugin/uPluginRemesasCliente.pas | 74 + .../RemesasCliente_Group.groupproj | 124 + .../Reports/uRptRemesasCliente_Server.dfm | 1019 + .../Reports/uRptRemesasCliente_Server.pas | 118 + .../Servidor/srvRemesasCliente_Impl.dfm | 550 + .../Servidor/srvRemesasCliente_Impl.pas | 101 + .../Views/RemesasCliente_view.bdsproj | 492 + .../Views/RemesasCliente_view.dpk | 48 + .../Views/RemesasCliente_view.dproj | 617 + .../Views/RemesasCliente_view.identcache | Bin 0 -> 692 bytes .../Views/RemesasCliente_view.rc | 0 .../Views/RemesasCliente_view.res | Bin 0 -> 32 bytes .../Views/uEditorRemesaCliente.dfm | 1801 ++ .../Views/uEditorRemesaCliente.pas | 343 + .../Views/uEditorRemesaClienteReport.dfm | 12 + .../Views/uEditorRemesaClienteReport.pas | 23 + .../Views/uEditorRemesasCliente.dfm | 2449 +++ .../Views/uEditorRemesasCliente.pas | 307 + .../Views/uRemesasClienteViewRegister.pas | 27 + .../Views/uViewRecibosRemesaCliente.dfm | 160 + .../Views/uViewRecibosRemesaCliente.pas | 129 + .../Views/uViewRecibosRemesaCliente_2.dfm | 273 + .../Views/uViewRecibosRemesaCliente_2.pas | 137 + .../Views/uViewRemesaCliente.dfm | 222 + .../Views/uViewRemesaCliente.pas | 140 + .../Views/uViewRemesasCliente.dfm | 183 + .../Views/uViewRemesasCliente.pas | 89 + .../RemesasProveedor_controller.bdsproj | 492 + .../RemesasProveedor_controller.dpk | 40 + .../RemesasProveedor_controller.dproj | 591 + .../RemesasProveedor_controller.identcache | Bin 0 -> 572 bytes .../Controller/RemesasProveedor_controller.rc | 0 .../RemesasProveedor_controller.res | Bin 0 -> 32 bytes .../View/uIEditorRemesaProveedor.pas | 22 + .../View/uIEditorRemesasProveedor.pas | 23 + .../View/uIEditorRemesasProveedorPreview.pas | 16 + .../uRemesasProveedorController.pas | 598 + .../uRemesasProveedorReportController.pas | 110 + .../Data/RemesasProveedor_data.bdsproj | 492 + .../Data/RemesasProveedor_data.dpk | 33 + .../Data/RemesasProveedor_data.dproj | 586 + .../Data/RemesasProveedor_data.identcache | Bin 0 -> 108 bytes .../Data/RemesasProveedor_data.rc | 0 .../Data/RemesasProveedor_data.res | Bin 0 -> 32 bytes .../Data/uDataModuleRemesasProveedor.dfm | 163 + .../Data/uDataModuleRemesasProveedor.pas | 111 + .../Data/uIDataModuleRemesasProveedor.pas | 18 + .../uIDataModuleRemesasProveedorReport.pas | 16 + .../Model/RemesasProveedor_model.bdsproj | 492 + .../Model/RemesasProveedor_model.dpk | 38 + .../Model/RemesasProveedor_model.dproj | 589 + .../Model/RemesasProveedor_model.identcache | Bin 0 -> 546 bytes .../Model/RemesasProveedor_model.rc | 0 .../Model/RemesasProveedor_model.res | Bin 0 -> 32 bytes .../Model/schRemesasProveedorClient_Intf.pas | 771 + .../Model/schRemesasProveedorServer_Intf.pas | 910 + .../Model/uBizRemesasProveedor.pas | 104 + .../Model/uBizRemesasProveedorServer.pas | 76 + .../Plugin/RemesasProveedor_plugin.bdsproj | 492 + .../Plugin/RemesasProveedor_plugin.dpk | 35 + .../Plugin/RemesasProveedor_plugin.dproj | 581 + .../Plugin/RemesasProveedor_plugin.rc | 0 .../Plugin/RemesasProveedor_plugin.res | Bin 0 -> 32 bytes .../Plugin/uPluginRemesasProveedor.dfm | 135 + .../Plugin/uPluginRemesasProveedor.pas | 74 + .../RemesasProveedor_Group.groupproj | 124 + .../Reports/uRptRemesasProveedor_Server.dfm | 1082 + .../Reports/uRptRemesasProveedor_Server.pas | 118 + .../Servidor/srvRemesasProveedor_Impl.dfm | 551 + .../Servidor/srvRemesasProveedor_Impl.pas | 108 + .../Views/RemesasProveedor_view.bdsproj | 492 + .../Views/RemesasProveedor_view.dpk | 46 + .../Views/RemesasProveedor_view.dproj | 615 + .../Views/RemesasProveedor_view.identcache | Bin 0 -> 720 bytes .../Views/RemesasProveedor_view.rc | 0 .../Views/RemesasProveedor_view.res | Bin 0 -> 32 bytes .../Views/uEditorRemesaProveedor.dfm | 1788 ++ .../Views/uEditorRemesaProveedor.pas | 344 + .../Views/uEditorRemesaProveedorReport.dfm | 10 + .../Views/uEditorRemesaProveedorReport.pas | 23 + .../Views/uEditorRemesasProveedor.dfm | 2446 +++ .../Views/uEditorRemesasProveedor.pas | 308 + .../Views/uRemesasProveedorViewRegister.pas | 27 + .../Views/uViewRecibosRemesaProveedor.dfm | 161 + .../Views/uViewRecibosRemesaProveedor.pas | 129 + .../Views/uViewRemesaProveedor.dfm | 222 + .../Views/uViewRemesaProveedor.pas | 140 + .../Views/uViewRemesasProveedor.dfm | 184 + .../Views/uViewRemesasProveedor.pas | 89 + .../Controller/TiposIVA_controller.bdsproj | 492 + .../Controller/TiposIVA_controller.dpk | 41 + .../Controller/TiposIVA_controller.dproj | 545 + .../Controller/TiposIVA_controller.rc | 22 + .../Controller/TiposIVA_controller.res | Bin 0 -> 384 bytes .../Controller/View/uIEditorTipoIVA.pas | 45 + .../Controller/View/uIEditorTiposIVA.pas | 45 + .../Controller/uTiposIVAController.pas | 316 + .../Tipos de IVA/Data/TiposIVA_data.bdsproj | 492 + .../Tipos de IVA/Data/TiposIVA_data.dpk | 38 + .../Tipos de IVA/Data/TiposIVA_data.dproj | 545 + .../Tipos de IVA/Data/TiposIVA_data.rc | 22 + .../Tipos de IVA/Data/TiposIVA_data.res | Bin 0 -> 384 bytes .../Tipos de IVA/Data/uDataModuleTiposIVA.dfm | 81 + .../Tipos de IVA/Data/uDataModuleTiposIVA.pas | 112 + .../Model/Data/uIDataModuleTiposIVA.pas | 42 + .../Tipos de IVA/Model/TiposIVA_model.bdsproj | 492 + .../Tipos de IVA/Model/TiposIVA_model.dpk | 40 + .../Tipos de IVA/Model/TiposIVA_model.dproj | 61 + .../Tipos de IVA/Model/TiposIVA_model.rc | 22 + .../Tipos de IVA/Model/TiposIVA_model.res | Bin 0 -> 384 bytes .../Model/schTiposIVAClient_Intf.pas | 239 + .../Model/schTiposIVAServer_Intf.pas | 272 + .../Tipos de IVA/Model/uBizTiposIVA.pas | 134 + .../Plugin/TiposIVA_plugin.bdsproj | 492 + .../Tipos de IVA/Plugin/TiposIVA_plugin.dpk | 41 + .../Tipos de IVA/Plugin/TiposIVA_plugin.dproj | 550 + .../Tipos de IVA/Plugin/TiposIVA_plugin.rc | 22 + .../Tipos de IVA/Plugin/TiposIVA_plugin.res | Bin 0 -> 384 bytes .../Tipos de IVA/Plugin/uPluginTiposIVA.dfm | 81 + .../Tipos de IVA/Plugin/uPluginTiposIVA.pas | 74 + .../Servidor/srvTiposIVA_Impl.dfm | 133 + .../Servidor/srvTiposIVA_Impl.pas | 63 + .../Tipos de IVA/TiposIVA_Group.bdsgroup | 24 + .../Tipos de IVA/TiposIVA_Group.groupproj | 104 + .../Tipos de IVA/Views/TiposIVA_view.bdsproj | 492 + .../Tipos de IVA/Views/TiposIVA_view.dpk | 42 + .../Tipos de IVA/Views/TiposIVA_view.dproj | 550 + .../Tipos de IVA/Views/TiposIVA_view.rc | 22 + .../Tipos de IVA/Views/TiposIVA_view.res | Bin 0 -> 384 bytes .../Tipos de IVA/Views/uEditorTipoIVA.dfm | 184 + .../Tipos de IVA/Views/uEditorTipoIVA.pas | 142 + .../Tipos de IVA/Views/uEditorTiposIVA.dfm | 164 + .../Tipos de IVA/Views/uEditorTiposIVA.pas | 184 + .../Views/uTiposIVAViewRegister.pas | 48 + Source/Servicios/FactuGES.RODL | 377 + Source/Servicios/FactuGES_Intf.pas | 1595 ++ Source/Servicios/FactuGES_Invk.pas | 678 + Source/Servicios/RODLFILE.res | Bin 0 -> 22172 bytes .../Configuracion/srvConfiguracion_Impl.dfm | 57 + .../Configuracion/srvConfiguracion_Impl.pas | 79 + Source/Servidor/Configuracion/uConexionBD.dfm | 142 + Source/Servidor/Configuracion/uConexionBD.pas | 106 + .../Servidor/Configuracion/uConfGeneral.dfm | 39 + .../Servidor/Configuracion/uConfGeneral.pas | 55 + .../Servidor/Configuracion/uConfiguracion.dfm | 160 + .../Servidor/Configuracion/uConfiguracion.pas | 104 + .../Configuracion/uFrameConfiguracion.dfm | 8 + .../Configuracion/uFrameConfiguracion.pas | 30 + Source/Servidor/FactuGES_Server.RES | Bin 0 -> 23216 bytes Source/Servidor/FactuGES_Server.bdsproj | 696 + Source/Servidor/FactuGES_Server.cfg | 37 + Source/Servidor/FactuGES_Server.dpr | 125 + Source/Servidor/FactuGES_Server.dproj | 711 + Source/Servidor/FactuGES_Server.identcache | Bin 0 -> 9600 bytes Source/Servidor/FactuGES_Server.rc | 24 + Source/Servidor/Utiles/RegExpr.pas | 4042 ++++ Source/Servidor/Utiles/uBusinessUtils.pas | 27 + Source/Servidor/Utiles/uDatabaseUtils.pas | 39 + Source/Servidor/Utiles/uReferenciasUtils.pas | 66 + .../Utiles/uRestriccionesUsuarioUtils.pas | 112 + Source/Servidor/Utiles/uSchemaUtilsServer.pas | 165 + Source/Servidor/Utiles/uServerAppUtils.pas | 31 + Source/Servidor/Utiles/uSesionesUtils.pas | 135 + Source/Servidor/srvEmpresas_Impl.dfm | 7 + Source/Servidor/srvEmpresas_Impl.pas | 47 + Source/Servidor/srvLogin_Impl.dfm | 149 + Source/Servidor/srvLogin_Impl.pas | 146 + Source/Servidor/uAcercaDe.dfm | 959 + Source/Servidor/uAcercaDe.pas | 47 + Source/Servidor/uDataModuleServer.dfm | 78 + Source/Servidor/uDataModuleServer.pas | 297 + Source/Servidor/uServerMainForm.dfm | 1071 + Source/Servidor/uServerMainForm.pas | 109 + Source/Servidor/uUsersManager.pas | 97 + Tools/DBExtract/IBExtract.exe | Bin 0 -> 5262848 bytes Tools/DBExtract/IbExtractC.exe | Bin 0 -> 2337792 bytes Tools/FBHook/FAQ.txt | 63 + Tools/FBHook/FBClient.dll | Bin 0 -> 287232 bytes Tools/FBHook/FBHook.exe | Bin 0 -> 655360 bytes Tools/ISQL/fbclient.dll | Bin 0 -> 393216 bytes Tools/ISQL/isql.exe | Bin 0 -> 188416 bytes 2333 files changed, 502964 insertions(+) create mode 100644 Build/Build.fbl5 create mode 100644 Build/Build.fbp5 create mode 100644 Build/Build.fbv create mode 100644 Build/Build.fbw create mode 100644 Build/Build.lck create mode 100644 Build/Build.log create mode 100644 Database/ACANA.FDB create mode 100644 Database/Anterior/VISTAS.SQL create mode 100644 Database/RodaxSoftware.FactuGES.Database.proj create mode 100644 Database/_db_enviroment.bat create mode 100644 Database/db_execute.bat create mode 100644 Database/scripts/SCRIPT_CONTABILIDAD.SQL create mode 100644 Database/scripts/SCRIPT_DATOS_PLAN_GENERAL_CONTABLE.SQL create mode 100644 Database/scripts/factuges.sql create mode 100644 Database/scripts/factuges_sysdata.sql create mode 100644 Database/udfs/funciones.pas create mode 100644 Database/udfs/udf_RtfToText.bdsproj create mode 100644 Database/udfs/udf_RtfToText.dll create mode 100644 Database/udfs/udf_RtfToText.dpr create mode 100644 Database/udfs/udf_RtfToText.drc create mode 100644 Database/udfs/udf_RtfToText.res create mode 100644 Database/udfs/udf_RtfToText.sql create mode 100644 Enviroment.config create mode 100644 Installer/Actualizacion/Actualización.iss create mode 100644 Installer/Actualizacion/Files/FactuGES.exe create mode 100644 Installer/Actualizacion/Output/instalar.exe create mode 100644 Resources/Iconos/Agenda/16x16/Date-Time.png create mode 100644 Resources/Iconos/Agenda/16x16/Thumbs.db create mode 100644 Resources/Iconos/Agenda/24x24/Date-Time.png create mode 100644 Resources/Iconos/Agenda/24x24/Thumbs.db create mode 100644 Resources/Iconos/Agenda/28x28/Date-Time.png create mode 100644 Resources/Iconos/Agenda/28x28/Thumbs.db create mode 100644 Resources/Iconos/Agenda/Thumbs.db create mode 100644 Resources/Iconos/Albaranes/16x16/Letters patent.png create mode 100644 Resources/Iconos/Albaranes/16x16/Thumbs.db create mode 100644 Resources/Iconos/Albaranes/16x16/pagado.png create mode 100644 Resources/Iconos/Albaranes/24x24/Letters patent.png create mode 100644 Resources/Iconos/Albaranes/24x24/Thumbs.db create mode 100644 Resources/Iconos/Albaranes/28x28/Letters patent.png create mode 100644 Resources/Iconos/Albaranes/28x28/Thumbs.db create mode 100644 Resources/Iconos/Almacenes/16x16/Box-Closed-2.png create mode 100644 Resources/Iconos/Almacenes/16x16/Thumbs.db create mode 100644 Resources/Iconos/Almacenes/16x16/nuevoalmacen.png create mode 100644 Resources/Iconos/Almacenes/24x24/Box-Closed-2.png create mode 100644 Resources/Iconos/Almacenes/24x24/Thumbs.db create mode 100644 Resources/Iconos/Almacenes/24x24/nuevoalmacen.png create mode 100644 Resources/Iconos/Almacenes/28x28/Box-Closed-2.png create mode 100644 Resources/Iconos/Almacenes/28x28/Thumbs.db create mode 100644 Resources/Iconos/Artículos/16x16/Image.png create mode 100644 Resources/Iconos/Artículos/16x16/Insert.png create mode 100644 Resources/Iconos/Artículos/16x16/Note-Edit.png create mode 100644 Resources/Iconos/Artículos/16x16/Remove.png create mode 100644 Resources/Iconos/Artículos/16x16/Swap.png create mode 100644 Resources/Iconos/Artículos/16x16/Thumbs.db create mode 100644 Resources/Iconos/Artículos/16x16/articulos.png create mode 100644 Resources/Iconos/Artículos/16x16/comisionable.png create mode 100644 Resources/Iconos/Artículos/16x16/liberar.png create mode 100644 Resources/Iconos/Artículos/16x16/no_comisionable.png create mode 100644 Resources/Iconos/Artículos/16x16/recibirpedido.png create mode 100644 Resources/Iconos/Artículos/16x16/reservar.png create mode 100644 Resources/Iconos/Artículos/24x24/Image.png create mode 100644 Resources/Iconos/Artículos/24x24/Insert.png create mode 100644 Resources/Iconos/Artículos/24x24/Note-Edit.png create mode 100644 Resources/Iconos/Artículos/24x24/Remove.png create mode 100644 Resources/Iconos/Artículos/24x24/Swap.png create mode 100644 Resources/Iconos/Artículos/24x24/Thumbs.db create mode 100644 Resources/Iconos/Artículos/24x24/articulos.png create mode 100644 Resources/Iconos/Artículos/24x24/liberar.png create mode 100644 Resources/Iconos/Artículos/24x24/recibirpedido.png create mode 100644 Resources/Iconos/Artículos/24x24/reservar.png create mode 100644 Resources/Iconos/Artículos/28x28/Image.png create mode 100644 Resources/Iconos/Artículos/28x28/Insert.png create mode 100644 Resources/Iconos/Artículos/28x28/Note-Edit.png create mode 100644 Resources/Iconos/Artículos/28x28/Remove.png create mode 100644 Resources/Iconos/Artículos/28x28/Swap.png create mode 100644 Resources/Iconos/Artículos/28x28/Thumbs.db create mode 100644 Resources/Iconos/Artículos/28x28/articulos.png create mode 100644 Resources/Iconos/Artículos/28x28/liberar.png create mode 100644 Resources/Iconos/Artículos/28x28/recibirpedido.png create mode 100644 Resources/Iconos/Artículos/28x28/reservar.png create mode 100644 Resources/Iconos/Asientos/16x16/Cerrar.png create mode 100644 Resources/Iconos/Asientos/16x16/Thumbs.db create mode 100644 Resources/Iconos/Asientos/16x16/Tick.png create mode 100644 Resources/Iconos/Asientos/24x24/Cerrar.png create mode 100644 Resources/Iconos/Asientos/24x24/Thumbs.db create mode 100644 Resources/Iconos/Asientos/24x24/Tick.png create mode 100644 Resources/Iconos/Asientos/28x28/Cerrar.png create mode 100644 Resources/Iconos/Asientos/28x28/Thumbs.db create mode 100644 Resources/Iconos/Asientos/28x28/Tick.png create mode 100644 Resources/Iconos/Contactos/16x16/Box-Open-2.png create mode 100644 Resources/Iconos/Contactos/16x16/Comisiones.png create mode 100644 Resources/Iconos/Contactos/16x16/Contact-Add.png create mode 100644 Resources/Iconos/Contactos/16x16/Contact-Edit.png create mode 100644 Resources/Iconos/Contactos/16x16/Contact.png create mode 100644 Resources/Iconos/Contactos/16x16/Contact2.png create mode 100644 Resources/Iconos/Contactos/16x16/Contact3.png create mode 100644 Resources/Iconos/Contactos/16x16/Contact4.png create mode 100644 Resources/Iconos/Contactos/16x16/Currency.png create mode 100644 Resources/Iconos/Contactos/16x16/Internet.png create mode 100644 Resources/Iconos/Contactos/16x16/Lock.png create mode 100644 Resources/Iconos/Contactos/16x16/Mail.png create mode 100644 Resources/Iconos/Contactos/16x16/Proveedor-Add.png create mode 100644 Resources/Iconos/Contactos/16x16/Thumbs.db create mode 100644 Resources/Iconos/Contactos/16x16/Unlock.png create mode 100644 Resources/Iconos/Contactos/16x16/User.png create mode 100644 Resources/Iconos/Contactos/16x16/User2.png create mode 100644 Resources/Iconos/Contactos/16x16/User3.png create mode 100644 Resources/Iconos/Contactos/16x16/User4.png create mode 100644 Resources/Iconos/Contactos/16x16/grupos.png create mode 100644 Resources/Iconos/Contactos/24x24/Box-Open-2.png create mode 100644 Resources/Iconos/Contactos/24x24/Comisiones.png create mode 100644 Resources/Iconos/Contactos/24x24/Contact-Add.png create mode 100644 Resources/Iconos/Contactos/24x24/Contact-Edit.png create mode 100644 Resources/Iconos/Contactos/24x24/Contact.png create mode 100644 Resources/Iconos/Contactos/24x24/Contact2.png create mode 100644 Resources/Iconos/Contactos/24x24/Contact3.png create mode 100644 Resources/Iconos/Contactos/24x24/Contact4.png create mode 100644 Resources/Iconos/Contactos/24x24/Currency.png create mode 100644 Resources/Iconos/Contactos/24x24/Lock.png create mode 100644 Resources/Iconos/Contactos/24x24/Thumbs.db create mode 100644 Resources/Iconos/Contactos/24x24/Unlock.png create mode 100644 Resources/Iconos/Contactos/24x24/grupos.png create mode 100644 Resources/Iconos/Contactos/28x28/Box-Open-2.png create mode 100644 Resources/Iconos/Contactos/28x28/Currency.png create mode 100644 Resources/Iconos/Contactos/28x28/Lock.png create mode 100644 Resources/Iconos/Contactos/28x28/Thumbs.db create mode 100644 Resources/Iconos/Contactos/28x28/Unlock.png create mode 100644 Resources/Iconos/Contactos/28x28/grupos.png create mode 100644 Resources/Iconos/Cuentas/16x16/Book-Open.png create mode 100644 Resources/Iconos/Cuentas/16x16/Books.png create mode 100644 Resources/Iconos/Cuentas/16x16/Thumbs.db create mode 100644 Resources/Iconos/Cuentas/24x24/Book-Open.png create mode 100644 Resources/Iconos/Cuentas/24x24/Books.png create mode 100644 Resources/Iconos/Cuentas/24x24/Thumbs.db create mode 100644 Resources/Iconos/Cuentas/28x28/Book-Open.png create mode 100644 Resources/Iconos/Cuentas/28x28/Books.png create mode 100644 Resources/Iconos/Cuentas/28x28/Thumbs.db create mode 100644 Resources/Iconos/Factuges.ico create mode 100644 Resources/Iconos/Facturas de cliente/16x16/Invoice.png create mode 100644 Resources/Iconos/Facturas de cliente/16x16/Thumbs.db create mode 100644 Resources/Iconos/Facturas de cliente/24x24/Invoice.png create mode 100644 Resources/Iconos/Facturas de cliente/24x24/Thumbs.db create mode 100644 Resources/Iconos/Facturas de cliente/28x28/Invoice.png create mode 100644 Resources/Iconos/Facturas de cliente/28x28/Thumbs.db create mode 100644 Resources/Iconos/Familias/16x16/00473.png create mode 100644 Resources/Iconos/Familias/16x16/Thumbs.db create mode 100644 Resources/Iconos/Generales/16x16/09378.bmp create mode 100644 Resources/Iconos/Generales/16x16/09378.png create mode 100644 Resources/Iconos/Generales/16x16/About.png create mode 100644 Resources/Iconos/Generales/16x16/Align-Centre-2.png create mode 100644 Resources/Iconos/Generales/16x16/Align-Left-2.png create mode 100644 Resources/Iconos/Generales/16x16/Align-Right-2.png create mode 100644 Resources/Iconos/Generales/16x16/Añadir-capítulo.png create mode 100644 Resources/Iconos/Generales/16x16/Añadir-material.png create mode 100644 Resources/Iconos/Generales/16x16/Back.png create mode 100644 Resources/Iconos/Generales/16x16/Bold.png create mode 100644 Resources/Iconos/Generales/16x16/Box-Closed.png create mode 100644 Resources/Iconos/Generales/16x16/Box-Open-2.png create mode 100644 Resources/Iconos/Generales/16x16/Card-Copy.png create mode 100644 Resources/Iconos/Generales/16x16/Clear.png create mode 100644 Resources/Iconos/Generales/16x16/Copy.png create mode 100644 Resources/Iconos/Generales/16x16/Cut.png create mode 100644 Resources/Iconos/Generales/16x16/Debug-Breakpoint.png create mode 100644 Resources/Iconos/Generales/16x16/Debug-Watch-Delete.png create mode 100644 Resources/Iconos/Generales/16x16/Debug-Watch.png create mode 100644 Resources/Iconos/Generales/16x16/Delete copia.bmp create mode 100644 Resources/Iconos/Generales/16x16/Delete.png create mode 100644 Resources/Iconos/Generales/16x16/Distribute-Rows Evenly.png create mode 100644 Resources/Iconos/Generales/16x16/Edit.png create mode 100644 Resources/Iconos/Generales/16x16/Execute.png create mode 100644 Resources/Iconos/Generales/16x16/Exit.png create mode 100644 Resources/Iconos/Generales/16x16/Form-New.png create mode 100644 Resources/Iconos/Generales/16x16/Format-Font.png create mode 100644 Resources/Iconos/Generales/16x16/Forward.png create mode 100644 Resources/Iconos/Generales/16x16/Home.png create mode 100644 Resources/Iconos/Generales/16x16/Italic.png create mode 100644 Resources/Iconos/Generales/16x16/Minus.png create mode 100644 Resources/Iconos/Generales/16x16/New.png create mode 100644 Resources/Iconos/Generales/16x16/Outline-Collapse.png create mode 100644 Resources/Iconos/Generales/16x16/Outline-Expand.png create mode 100644 Resources/Iconos/Generales/16x16/Outline-Move Down.png create mode 100644 Resources/Iconos/Generales/16x16/Outline-Move Up.png create mode 100644 Resources/Iconos/Generales/16x16/Parcel.png create mode 100644 Resources/Iconos/Generales/16x16/Paste.png create mode 100644 Resources/Iconos/Generales/16x16/Plus copia.bmp create mode 100644 Resources/Iconos/Generales/16x16/Plus.png create mode 100644 Resources/Iconos/Generales/16x16/Preview.png create mode 100644 Resources/Iconos/Generales/16x16/Print-Options.png create mode 100644 Resources/Iconos/Generales/16x16/Print.png create mode 100644 Resources/Iconos/Generales/16x16/Refresh.png create mode 100644 Resources/Iconos/Generales/16x16/Save.png create mode 100644 Resources/Iconos/Generales/16x16/Search.png create mode 100644 Resources/Iconos/Generales/16x16/Select All.png create mode 100644 Resources/Iconos/Generales/16x16/Speaking-Start.png create mode 100644 Resources/Iconos/Generales/16x16/Sum-2.png create mode 100644 Resources/Iconos/Generales/16x16/Table-Find In Field.png create mode 100644 Resources/Iconos/Generales/16x16/Table-Search.png create mode 100644 Resources/Iconos/Generales/16x16/Thumbs.db create mode 100644 Resources/Iconos/Generales/16x16/Total-capítulo.png create mode 100644 Resources/Iconos/Generales/16x16/Título-capítulo.png create mode 100644 Resources/Iconos/Generales/16x16/Underline.png create mode 100644 Resources/Iconos/Generales/16x16/Undo.png create mode 100644 Resources/Iconos/Generales/16x16/View-One Page.png create mode 100644 Resources/Iconos/Generales/16x16/View-Page Width.png create mode 100644 Resources/Iconos/Generales/16x16/WEB.PNG create mode 100644 Resources/Iconos/Generales/16x16/Warning.png create mode 100644 Resources/Iconos/Generales/16x16/Zoom-In.png create mode 100644 Resources/Iconos/Generales/16x16/Zoom-Out.png create mode 100644 Resources/Iconos/Generales/16x16/db-Next-2.png create mode 100644 Resources/Iconos/Generales/16x16/db-Previous-2.png create mode 100644 Resources/Iconos/Generales/16x16/db-first-2.png create mode 100644 Resources/Iconos/Generales/16x16/db-last-2.png create mode 100644 Resources/Iconos/Generales/16x16/haycambios.png create mode 100644 Resources/Iconos/Generales/24x24/About.png create mode 100644 Resources/Iconos/Generales/24x24/Back.png create mode 100644 Resources/Iconos/Generales/24x24/Box-Open-2.png create mode 100644 Resources/Iconos/Generales/24x24/Card-Copy.png create mode 100644 Resources/Iconos/Generales/24x24/Clear.png create mode 100644 Resources/Iconos/Generales/24x24/Copy.png create mode 100644 Resources/Iconos/Generales/24x24/Cut.png create mode 100644 Resources/Iconos/Generales/24x24/Debug-Breakpoint.png create mode 100644 Resources/Iconos/Generales/24x24/Debug-Watch-Delete.png create mode 100644 Resources/Iconos/Generales/24x24/Debug-Watch.png create mode 100644 Resources/Iconos/Generales/24x24/Delete.png create mode 100644 Resources/Iconos/Generales/24x24/Distribute-Rows Evenly.png create mode 100644 Resources/Iconos/Generales/24x24/Edit.png create mode 100644 Resources/Iconos/Generales/24x24/Execute.png create mode 100644 Resources/Iconos/Generales/24x24/Exit.png create mode 100644 Resources/Iconos/Generales/24x24/Form-New.png create mode 100644 Resources/Iconos/Generales/24x24/Forward.png create mode 100644 Resources/Iconos/Generales/24x24/Home.png create mode 100644 Resources/Iconos/Generales/24x24/Minus.png create mode 100644 Resources/Iconos/Generales/24x24/New.png create mode 100644 Resources/Iconos/Generales/24x24/Outline-Collapse.png create mode 100644 Resources/Iconos/Generales/24x24/Outline-Expand.png create mode 100644 Resources/Iconos/Generales/24x24/Outline-Move Down.png create mode 100644 Resources/Iconos/Generales/24x24/Outline-Move Up.png create mode 100644 Resources/Iconos/Generales/24x24/Paste.png create mode 100644 Resources/Iconos/Generales/24x24/Plus.png create mode 100644 Resources/Iconos/Generales/24x24/Preview.png create mode 100644 Resources/Iconos/Generales/24x24/Print-Options.png create mode 100644 Resources/Iconos/Generales/24x24/Print.png create mode 100644 Resources/Iconos/Generales/24x24/Refresh.png create mode 100644 Resources/Iconos/Generales/24x24/Save.png create mode 100644 Resources/Iconos/Generales/24x24/Search.png create mode 100644 Resources/Iconos/Generales/24x24/Select All.png create mode 100644 Resources/Iconos/Generales/24x24/Speaking-Start.png create mode 100644 Resources/Iconos/Generales/24x24/Sum-2.png create mode 100644 Resources/Iconos/Generales/24x24/Table-Find In Field.png create mode 100644 Resources/Iconos/Generales/24x24/Table-Search.png create mode 100644 Resources/Iconos/Generales/24x24/Thumbs.db create mode 100644 Resources/Iconos/Generales/24x24/Undo.png create mode 100644 Resources/Iconos/Generales/24x24/View-One Page.png create mode 100644 Resources/Iconos/Generales/24x24/View-Page Width.png create mode 100644 Resources/Iconos/Generales/24x24/Warning.png create mode 100644 Resources/Iconos/Generales/24x24/Zoom-In.png create mode 100644 Resources/Iconos/Generales/24x24/Zoom-Out.png create mode 100644 Resources/Iconos/Generales/24x24/db-First-2.png create mode 100644 Resources/Iconos/Generales/24x24/db-Last-2.png create mode 100644 Resources/Iconos/Generales/24x24/db-Next-2.png create mode 100644 Resources/Iconos/Generales/24x24/db-Previous-2.png create mode 100644 Resources/Iconos/Generales/28x28/Box-Open-2.png create mode 100644 Resources/Iconos/Generales/28x28/Card-Copy.png create mode 100644 Resources/Iconos/Generales/28x28/Debug-Watch-Delete.png create mode 100644 Resources/Iconos/Generales/28x28/Debug-Watch.png create mode 100644 Resources/Iconos/Generales/28x28/Distribute-Rows Evenly.png create mode 100644 Resources/Iconos/Generales/28x28/Execute.png create mode 100644 Resources/Iconos/Generales/28x28/Form-New.ico create mode 100644 Resources/Iconos/Generales/28x28/Form-New.png create mode 100644 Resources/Iconos/Generales/28x28/Home.png create mode 100644 Resources/Iconos/Generales/28x28/New.png create mode 100644 Resources/Iconos/Generales/28x28/Outline-Move Down.png create mode 100644 Resources/Iconos/Generales/28x28/Outline-Move Up.png create mode 100644 Resources/Iconos/Generales/28x28/Speaking-Start.png create mode 100644 Resources/Iconos/Generales/28x28/Sum-2.png create mode 100644 Resources/Iconos/Generales/28x28/Table-Find In Field.png create mode 100644 Resources/Iconos/Generales/28x28/Table-Search.png create mode 100644 Resources/Iconos/Generales/28x28/Thumbs.db create mode 100644 Resources/Iconos/Generales/28x28/Warning.png create mode 100644 Resources/Iconos/Historico de movimientos/16x16/Entradas.png create mode 100644 Resources/Iconos/Historico de movimientos/16x16/Salidas.png create mode 100644 Resources/Iconos/Historico de movimientos/16x16/Thumbs.db create mode 100644 Resources/Iconos/Historico de movimientos/24x24/Thumbs.db create mode 100644 Resources/Iconos/Historico de movimientos/24x24/historico.png create mode 100644 Resources/Iconos/Historico de movimientos/28x28/Thumbs.db create mode 100644 Resources/Iconos/Historico de movimientos/28x28/historico.png create mode 100644 Resources/Iconos/Montajes/16x16/Document-Labels.png create mode 100644 Resources/Iconos/Montajes/16x16/Thumbs.db create mode 100644 Resources/Iconos/Montajes/16x16/Tools.png create mode 100644 Resources/Iconos/Montajes/24x24/Document-Labels.png create mode 100644 Resources/Iconos/Montajes/24x24/Thumbs.db create mode 100644 Resources/Iconos/Montajes/24x24/Tools.png create mode 100644 Resources/Iconos/Montajes/28x28/Document-Labels.png create mode 100644 Resources/Iconos/Montajes/28x28/Thumbs.db create mode 100644 Resources/Iconos/Montajes/28x28/Tools.png create mode 100644 Resources/Iconos/Pagos/16x16/Thumbs.db create mode 100644 Resources/Iconos/Pagos/16x16/pagado.png create mode 100644 Resources/Iconos/Pagos/24x24/Thumbs.db create mode 100644 Resources/Iconos/Pagos/24x24/pagado.png create mode 100644 Resources/Iconos/Pagos/28x28/Thumbs.db create mode 100644 Resources/Iconos/Pagos/28x28/pagado.png create mode 100644 Resources/Iconos/Pedidos a proveedor/16x16/Complete-0.png create mode 100644 Resources/Iconos/Pedidos a proveedor/16x16/Complete-100.png create mode 100644 Resources/Iconos/Pedidos a proveedor/16x16/Complete-50.png create mode 100644 Resources/Iconos/Pedidos a proveedor/16x16/Thumbs.db create mode 100644 Resources/Iconos/Pedidos a proveedor/16x16/pedidos.png create mode 100644 Resources/Iconos/Pedidos a proveedor/24x24/Complete-0.png create mode 100644 Resources/Iconos/Pedidos a proveedor/24x24/Complete-100.png create mode 100644 Resources/Iconos/Pedidos a proveedor/24x24/Complete-50.png create mode 100644 Resources/Iconos/Pedidos a proveedor/24x24/Thumbs.db create mode 100644 Resources/Iconos/Pedidos a proveedor/24x24/pedido.png create mode 100644 Resources/Iconos/Pedidos a proveedor/28x28/Complete-0.png create mode 100644 Resources/Iconos/Pedidos a proveedor/28x28/Complete-100.png create mode 100644 Resources/Iconos/Pedidos a proveedor/28x28/Complete-50.png create mode 100644 Resources/Iconos/Pedidos a proveedor/28x28/Thumbs.db create mode 100644 Resources/Iconos/Pedidos a proveedor/28x28/pedido.png create mode 100644 Resources/Iconos/Pedidos de cliente/16x16/Budget.png create mode 100644 Resources/Iconos/Pedidos de cliente/16x16/Thumbs.db create mode 100644 Resources/Iconos/Pedidos de cliente/24x24/Budget.png create mode 100644 Resources/Iconos/Pedidos de cliente/24x24/Thumbs.db create mode 100644 Resources/Iconos/Pedidos de cliente/28x28/Budget.png create mode 100644 Resources/Iconos/Pedidos de cliente/28x28/Thumbs.db create mode 100644 Resources/Iconos/Presupuestos/16x16/Aumentar_letra.png create mode 100644 Resources/Iconos/Presupuestos/16x16/Budget.png create mode 100644 Resources/Iconos/Presupuestos/16x16/Delete-Blue.png create mode 100644 Resources/Iconos/Presupuestos/16x16/Disminuir_letra.png create mode 100644 Resources/Iconos/Presupuestos/16x16/Thumbs.db create mode 100644 Resources/Iconos/Presupuestos/16x16/Tick.png create mode 100644 Resources/Iconos/Presupuestos/24x24/Budget.png create mode 100644 Resources/Iconos/Presupuestos/24x24/Delete-Blue.png create mode 100644 Resources/Iconos/Presupuestos/24x24/Thumbs.db create mode 100644 Resources/Iconos/Presupuestos/24x24/Tick.png create mode 100644 Resources/Iconos/Presupuestos/28x28/Budget.png create mode 100644 Resources/Iconos/Presupuestos/28x28/Thumbs.db create mode 100644 Resources/Iconos/Remesas/16x16/Export.png create mode 100644 Resources/Iconos/Remesas/16x16/Thumbs.db create mode 100644 Resources/Iconos/Remesas/24x24/Export.png create mode 100644 Resources/Iconos/Remesas/24x24/Thumbs.db create mode 100644 Resources/Iconos/Remesas/28x28/Export.png create mode 100644 Resources/Iconos/Remesas/28x28/Thumbs.db create mode 100644 Resources/Iconos/Servidor.ico create mode 100644 Resources/Iconos/Servidor/16x16/Database.png create mode 100644 Resources/Iconos/Servidor/16x16/Thumbs.db create mode 100644 Resources/Iconos/Servidor/24x24/Database.png create mode 100644 Resources/Iconos/Servidor/24x24/Thumbs.db create mode 100644 Resources/Iconos/Servidor/28x28/Database.png create mode 100644 Resources/Iconos/Servidor/28x28/Thumbs.db create mode 100644 Resources/Iconos/Thumbs.db create mode 100644 Resources/Iconos/Usuarios/16x16/Thumbs.db create mode 100644 Resources/Iconos/Usuarios/16x16/User-Add.png create mode 100644 Resources/Iconos/Usuarios/16x16/User-Edit.png create mode 100644 Resources/Iconos/Usuarios/16x16/User-Password.png create mode 100644 Resources/Iconos/Usuarios/16x16/User-Remove.png create mode 100644 Resources/Iconos/Usuarios/16x16/User.png create mode 100644 Resources/Iconos/Usuarios/16x16/Users.png create mode 100644 Resources/Iconos/Usuarios/24x24/Thumbs.db create mode 100644 Resources/Iconos/Usuarios/24x24/User-Add.png create mode 100644 Resources/Iconos/Usuarios/24x24/User-Edit.png create mode 100644 Resources/Iconos/Usuarios/24x24/User-Password.png create mode 100644 Resources/Iconos/Usuarios/24x24/User-Remove.png create mode 100644 Resources/Iconos/Usuarios/24x24/User.png create mode 100644 Resources/Iconos/Usuarios/24x24/Users.png create mode 100644 Resources/Iconos/Usuarios/28x28/Thumbs.db create mode 100644 Resources/Iconos/Usuarios/28x28/User-Add.png create mode 100644 Resources/Iconos/Usuarios/28x28/User-Edit.png create mode 100644 Resources/Iconos/Usuarios/28x28/User-Password.png create mode 100644 Resources/Iconos/Usuarios/28x28/User-Remove.png create mode 100644 Resources/Iconos/Usuarios/28x28/User.png create mode 100644 Resources/Iconos/Usuarios/28x28/Users.png create mode 100644 Resources/Iconos/Usuarios/48x48/Thumbs.db create mode 100644 Resources/Iconos/Usuarios/48x48/Users.png create mode 100644 Resources/Iconos/fac.png create mode 100644 RodaxSoftware.FactuGES.Common.targets create mode 100644 RodaxSoftware.FactuGES.proj create mode 100644 Source/ApplicationBase/ApplicationBase.bdsproj create mode 100644 Source/ApplicationBase/ApplicationBase.cfg create mode 100644 Source/ApplicationBase/ApplicationBase.dpk create mode 100644 Source/ApplicationBase/ApplicationBase.dproj create mode 100644 Source/ApplicationBase/ApplicationBase.identcache create mode 100644 Source/ApplicationBase/ApplicationBase.rc create mode 100644 Source/ApplicationBase/ApplicationBase.res create mode 100644 Source/ApplicationBase/Empresas/Controller/View/uIEditorDatosBancarioEmpresa.pas create mode 100644 Source/ApplicationBase/Empresas/Controller/View/uIEditorEmpresa.pas create mode 100644 Source/ApplicationBase/Empresas/Controller/View/uIEditorEmpresas.pas create mode 100644 Source/ApplicationBase/Empresas/Controller/uDatosBancariosEmpresaController.pas create mode 100644 Source/ApplicationBase/Empresas/Controller/uEmpresasController.pas create mode 100644 Source/ApplicationBase/Empresas/Data/uDataModuleEmpresas.dfm create mode 100644 Source/ApplicationBase/Empresas/Data/uDataModuleEmpresas.pas create mode 100644 Source/ApplicationBase/Empresas/Model/Data/uIDataModuleEmpresas.pas create mode 100644 Source/ApplicationBase/Empresas/Model/schEmpresasClient_Intf.pas create mode 100644 Source/ApplicationBase/Empresas/Model/schEmpresasServer_Intf.pas create mode 100644 Source/ApplicationBase/Empresas/Model/uBizEmpresas.pas create mode 100644 Source/ApplicationBase/Empresas/Model/uBizEmpresasDatosBancarios.pas create mode 100644 Source/ApplicationBase/Empresas/Servidor/srvEmpresas_Impl.dfm create mode 100644 Source/ApplicationBase/Empresas/Servidor/srvEmpresas_Impl.pas create mode 100644 Source/ApplicationBase/Empresas/Test/Empresas_Tests.bdsproj create mode 100644 Source/ApplicationBase/Empresas/Test/Empresas_Tests.dpr create mode 100644 Source/ApplicationBase/Empresas/Test/Empresas_Tests.res create mode 100644 Source/ApplicationBase/Empresas/Test/uEmpresasController_Test.pas create mode 100644 Source/ApplicationBase/Empresas/Test/uHostMainForm.dfm create mode 100644 Source/ApplicationBase/Empresas/Test/uHostMainForm.pas create mode 100644 Source/ApplicationBase/Empresas/Views/uEditorDatosBancariosEmpresa.dfm create mode 100644 Source/ApplicationBase/Empresas/Views/uEditorDatosBancariosEmpresa.pas create mode 100644 Source/ApplicationBase/Empresas/Views/uEditorEmpresa.dfm create mode 100644 Source/ApplicationBase/Empresas/Views/uEditorEmpresa.pas create mode 100644 Source/ApplicationBase/Empresas/Views/uEmpresasViewRegister.pas create mode 100644 Source/ApplicationBase/Empresas/Views/uViewDatosBancarios.dfm create mode 100644 Source/ApplicationBase/Empresas/Views/uViewDatosBancarios.pas create mode 100644 Source/ApplicationBase/Empresas/Views/uViewEmpresa.dfm create mode 100644 Source/ApplicationBase/Empresas/Views/uViewEmpresa.pas create mode 100644 Source/ApplicationBase/Usuarios/Controller/View/uIEditorLogin.pas create mode 100644 Source/ApplicationBase/Usuarios/Controller/uUsuariosController.pas create mode 100644 Source/ApplicationBase/Usuarios/Data/uDataModuleUsuarios.dfm create mode 100644 Source/ApplicationBase/Usuarios/Data/uDataModuleUsuarios.pas create mode 100644 Source/ApplicationBase/Usuarios/Data/uUCROConn.pas create mode 100644 Source/ApplicationBase/Usuarios/Model/Data/uIDataModuleUsuarios.pas create mode 100644 Source/ApplicationBase/Usuarios/Model/schUsuariosClient_Intf.pas create mode 100644 Source/ApplicationBase/Usuarios/Model/schUsuariosServer_Intf.pas create mode 100644 Source/ApplicationBase/Usuarios/Model/uUsuarios.pas create mode 100644 Source/ApplicationBase/Usuarios/Servidor/srvUsuarios_Impl.dfm create mode 100644 Source/ApplicationBase/Usuarios/Servidor/srvUsuarios_Impl.pas create mode 100644 Source/ApplicationBase/Usuarios/Views/uEditorLogin.dfm create mode 100644 Source/ApplicationBase/Usuarios/Views/uEditorLogin.pas create mode 100644 Source/ApplicationBase/Usuarios/Views/uUsuario.dfm create mode 100644 Source/ApplicationBase/Usuarios/Views/uUsuario.pas create mode 100644 Source/ApplicationBase/Usuarios/Views/uUsuarios.dfm create mode 100644 Source/ApplicationBase/Usuarios/Views/uUsuarios.pas create mode 100644 Source/ApplicationBase/Usuarios/Views/uUsuariosViewRegister.pas create mode 100644 Source/ApplicationBase/_Usuarios_/Usuarios.bdsproj create mode 100644 Source/ApplicationBase/_Usuarios_/Usuarios.dpk create mode 100644 Source/ApplicationBase/_Usuarios_/Usuarios.dproj create mode 100644 Source/ApplicationBase/_Usuarios_/Usuarios.rc create mode 100644 Source/ApplicationBase/_Usuarios_/Usuarios.res create mode 100644 Source/ApplicationBase/_Usuarios_/uCambiarPassword.dfm create mode 100644 Source/ApplicationBase/_Usuarios_/uCambiarPassword.pas create mode 100644 Source/ApplicationBase/_Usuarios_/uDataModuleUsuarios.dfm create mode 100644 Source/ApplicationBase/_Usuarios_/uDataModuleUsuarios.pas create mode 100644 Source/ApplicationBase/_Usuarios_/uLoginForm.dfm create mode 100644 Source/ApplicationBase/_Usuarios_/uLoginForm.pas create mode 100644 Source/ApplicationBase/_Usuarios_/uUsuario.dfm create mode 100644 Source/ApplicationBase/_Usuarios_/uUsuario.pas create mode 100644 Source/ApplicationBase/_Usuarios_/uUsuarios.dfm create mode 100644 Source/ApplicationBase/_Usuarios_/uUsuarios.pas create mode 100644 Source/ApplicationBase/uFactuGES_App.pas create mode 100644 Source/Base/Base.bdsproj create mode 100644 Source/Base/Base.cfg create mode 100644 Source/Base/Base.dpk create mode 100644 Source/Base/Base.dproj create mode 100644 Source/Base/Base.identcache create mode 100644 Source/Base/Base.rc create mode 100644 Source/Base/Base.res create mode 100644 Source/Base/Conexion/uConfigurarConexion.dfm create mode 100644 Source/Base/Conexion/uConfigurarConexion.pas create mode 100644 Source/Base/Conexion/uDataModuleConexion.dfm create mode 100644 Source/Base/Conexion/uDataModuleConexion.pas create mode 100644 Source/Base/Configuracion/uDataModuleConfiguracion.dfm create mode 100644 Source/Base/Configuracion/uDataModuleConfiguracion.pas create mode 100644 Source/Base/Controladores/uControllerBase.pas create mode 100644 Source/Base/Controladores/uControllerDetallesBase.pas create mode 100644 Source/Base/Utiles/ClassRegistry/uClassRegistryUtils.pas create mode 100644 Source/Base/Utiles/ClassRegistry/uEditorRegistryUtils.pas create mode 100644 Source/Base/Utiles/ClassRegistry/uInformeRegistryUtils.pas create mode 100644 Source/Base/Utiles/ClassRegistry/uViewRegistryUtils.pas create mode 100644 Source/Base/Utiles/uCalculosUtils.pas create mode 100644 Source/Base/Utiles/uDBSelectionListUtils.pas create mode 100644 Source/Base/Utiles/uDataTableUtils.pas create mode 100644 Source/Base/Utiles/uDateUtils.pas create mode 100644 Source/Base/Utiles/uDialogUtils.pas create mode 100644 Source/Base/Utiles/uGridUtils.pas create mode 100644 Source/Base/Utiles/uInfoProjectUtils.pas create mode 100644 Source/Base/Utiles/uIntegerListUtils.pas create mode 100644 Source/Base/Utiles/uMD5.pas create mode 100644 Source/Base/Utiles/uNumUtils.pas create mode 100644 Source/Base/Utiles/uPasswordUtils.pas create mode 100644 Source/Base/Utiles/uSistemaFunc.pas create mode 100644 Source/Base/schBase_Intf.pas create mode 100644 Source/Base/uDMBase.dfm create mode 100644 Source/Base/uDMBase.pas create mode 100644 Source/Base/uDataModuleBase.dfm create mode 100644 Source/Base/uDataModuleBase.pas create mode 100644 Source/Cliente/Actualizacion/uActualizacion.dfm create mode 100644 Source/Cliente/Actualizacion/uActualizacion.pas create mode 100644 Source/Cliente/Cliente_Group.bdsgroup create mode 100644 Source/Cliente/FactuGES.bdsproj create mode 100644 Source/Cliente/FactuGES.dpr create mode 100644 Source/Cliente/FactuGES.dproj create mode 100644 Source/Cliente/FactuGES.identcache create mode 100644 Source/Cliente/FactuGES.rc create mode 100644 Source/Cliente/FactuGES.res create mode 100644 Source/Cliente/FactuGES.rsb create mode 100644 Source/Cliente/Utiles/uClienteUtils.pas create mode 100644 Source/Cliente/Utiles/uMenuUtils.pas create mode 100644 Source/Cliente/Utiles/uNavPaneUtils.pas create mode 100644 Source/Cliente/uAcercaDe.dfm create mode 100644 Source/Cliente/uAcercaDe.pas create mode 100644 Source/Cliente/uBootStrap.pas create mode 100644 Source/Cliente/uMainMenuController.pas create mode 100644 Source/Cliente/uNavPaneController.pas create mode 100644 Source/Cliente/uPantallaPrincipal.dfm create mode 100644 Source/Cliente/uPantallaPrincipal.pas create mode 100644 Source/Cliente/uSplash.dfm create mode 100644 Source/Cliente/uSplash.pas create mode 100644 Source/FactuGES_Group.bdsgroup create mode 100644 Source/FactuGES_Group.groupproj create mode 100644 Source/GUIBase/GUIBase.bdsproj create mode 100644 Source/GUIBase/GUIBase.cfg create mode 100644 Source/GUIBase/GUIBase.dpk create mode 100644 Source/GUIBase/GUIBase.dproj create mode 100644 Source/GUIBase/GUIBase.identcache create mode 100644 Source/GUIBase/GUIBase.rc create mode 100644 Source/GUIBase/GUIBase.res create mode 100644 Source/GUIBase/uDialogBase.dfm create mode 100644 Source/GUIBase/uDialogBase.pas create mode 100644 Source/GUIBase/uEditorBase.dfm create mode 100644 Source/GUIBase/uEditorBase.pas create mode 100644 Source/GUIBase/uEditorBasico.dfm create mode 100644 Source/GUIBase/uEditorBasico.pas create mode 100644 Source/GUIBase/uEditorDBBase.dfm create mode 100644 Source/GUIBase/uEditorDBBase.pas create mode 100644 Source/GUIBase/uEditorDBItem.dfm create mode 100644 Source/GUIBase/uEditorDBItem.pas create mode 100644 Source/GUIBase/uEditorGridBase.dfm create mode 100644 Source/GUIBase/uEditorGridBase.pas create mode 100644 Source/GUIBase/uEditorItem.dfm create mode 100644 Source/GUIBase/uEditorItem.pas create mode 100644 Source/GUIBase/uEditorPSPreview.dfm create mode 100644 Source/GUIBase/uEditorPSPreview.pas create mode 100644 Source/GUIBase/uEditorPreview.dfm create mode 100644 Source/GUIBase/uEditorPreview.pas create mode 100644 Source/GUIBase/uEditorUtils.pas create mode 100644 Source/GUIBase/uViewBarraSeleccion.dfm create mode 100644 Source/GUIBase/uViewBarraSeleccion.pas create mode 100644 Source/GUIBase/uViewBase.dfm create mode 100644 Source/GUIBase/uViewBase.pas create mode 100644 Source/GUIBase/uViewDetallesBase.dfm create mode 100644 Source/GUIBase/uViewDetallesBase.pas create mode 100644 Source/GUIBase/uViewDetallesDTO.dfm create mode 100644 Source/GUIBase/uViewDetallesDTO.pas create mode 100644 Source/GUIBase/uViewDetallesGenerico.dfm create mode 100644 Source/GUIBase/uViewDetallesGenerico.pas create mode 100644 Source/GUIBase/uViewFiltroBase.dfm create mode 100644 Source/GUIBase/uViewFiltroBase.pas create mode 100644 Source/GUIBase/uViewFormaPago.dfm create mode 100644 Source/GUIBase/uViewFormaPago.pas create mode 100644 Source/GUIBase/uViewGrid.dfm create mode 100644 Source/GUIBase/uViewGrid.pas create mode 100644 Source/GUIBase/uViewGrid2Niveles.dfm create mode 100644 Source/GUIBase/uViewGrid2Niveles.pas create mode 100644 Source/GUIBase/uViewGridBase.dfm create mode 100644 Source/GUIBase/uViewGridBase.pas create mode 100644 Source/GUIBase/uViewIncidencias.dfm create mode 100644 Source/GUIBase/uViewIncidencias.pas create mode 100644 Source/GUIBase/uViewObservaciones.dfm create mode 100644 Source/GUIBase/uViewObservaciones.pas create mode 100644 Source/GUIBase/uViewPreview.dfm create mode 100644 Source/GUIBase/uViewPreview.pas create mode 100644 Source/GUIBase/uViewTotales.dfm create mode 100644 Source/GUIBase/uViewTotales.pas create mode 100644 Source/Informes/InfEtiquetasContacto.fr3 create mode 100644 Source/Informes/InfFichaEmpleado.fr3 create mode 100644 Source/Informes/InfPresupuestoCliente.fr3 create mode 100644 Source/Informes/InfPresupuestoCliente_anterior.fr3 create mode 100644 Source/Modulos/Albaranes de cliente/AlbaranesCliente_Group.bdsgroup create mode 100644 Source/Modulos/Albaranes de cliente/AlbaranesCliente_Group.groupproj create mode 100644 Source/Modulos/Albaranes de cliente/Controller/AlbaranesCliente_controller.bdsproj create mode 100644 Source/Modulos/Albaranes de cliente/Controller/AlbaranesCliente_controller.dpk create mode 100644 Source/Modulos/Albaranes de cliente/Controller/AlbaranesCliente_controller.dproj create mode 100644 Source/Modulos/Albaranes de cliente/Controller/AlbaranesCliente_controller.identcache create mode 100644 Source/Modulos/Albaranes de cliente/Controller/AlbaranesCliente_controller.rc create mode 100644 Source/Modulos/Albaranes de cliente/Controller/AlbaranesCliente_controller.res create mode 100644 Source/Modulos/Albaranes de cliente/Controller/View/uIEditorAlbaranCliente.pas create mode 100644 Source/Modulos/Albaranes de cliente/Controller/View/uIEditorAlbaranDevCliente.pas create mode 100644 Source/Modulos/Albaranes de cliente/Controller/View/uIEditorAlbaranesCliente.pas create mode 100644 Source/Modulos/Albaranes de cliente/Controller/View/uIEditorAlbaranesClientePreview.pas create mode 100644 Source/Modulos/Albaranes de cliente/Controller/View/uIEditorAlbaranesDevCliente.pas create mode 100644 Source/Modulos/Albaranes de cliente/Controller/View/uIEditorDireccionEntregaAlbaranCliente.pas create mode 100644 Source/Modulos/Albaranes de cliente/Controller/View/uIEditorElegirAlbaranesCliente.pas create mode 100644 Source/Modulos/Albaranes de cliente/Controller/View/uIEditorElegirArticulosAlbaranesCliente.pas create mode 100644 Source/Modulos/Albaranes de cliente/Controller/uAlbaranesClienteController.pas create mode 100644 Source/Modulos/Albaranes de cliente/Controller/uAlbaranesClienteReportController.pas create mode 100644 Source/Modulos/Albaranes de cliente/Controller/uArticulosAlbaranClienteController.pas create mode 100644 Source/Modulos/Albaranes de cliente/Controller/uDetallesAlbaranClienteController.pas create mode 100644 Source/Modulos/Albaranes de cliente/Data/AlbaranesCliente_data.bdsproj create mode 100644 Source/Modulos/Albaranes de cliente/Data/AlbaranesCliente_data.dpk create mode 100644 Source/Modulos/Albaranes de cliente/Data/AlbaranesCliente_data.dproj create mode 100644 Source/Modulos/Albaranes de cliente/Data/AlbaranesCliente_data.identcache create mode 100644 Source/Modulos/Albaranes de cliente/Data/AlbaranesCliente_data.rc create mode 100644 Source/Modulos/Albaranes de cliente/Data/AlbaranesCliente_data.res create mode 100644 Source/Modulos/Albaranes de cliente/Data/uDataModuleAlbaranesCliente.dfm create mode 100644 Source/Modulos/Albaranes de cliente/Data/uDataModuleAlbaranesCliente.pas create mode 100644 Source/Modulos/Albaranes de cliente/Model/AlbaranesCliente_model.bdsproj create mode 100644 Source/Modulos/Albaranes de cliente/Model/AlbaranesCliente_model.dpk create mode 100644 Source/Modulos/Albaranes de cliente/Model/AlbaranesCliente_model.dproj create mode 100644 Source/Modulos/Albaranes de cliente/Model/AlbaranesCliente_model.identcache create mode 100644 Source/Modulos/Albaranes de cliente/Model/AlbaranesCliente_model.rc create mode 100644 Source/Modulos/Albaranes de cliente/Model/AlbaranesCliente_model.res create mode 100644 Source/Modulos/Albaranes de cliente/Model/Data/uIDataModuleAlbaranesCliente.pas create mode 100644 Source/Modulos/Albaranes de cliente/Model/Data/uIDataModuleAlbaranesClienteReport.pas create mode 100644 Source/Modulos/Albaranes de cliente/Model/schAlbaranesClienteClient_Intf.pas create mode 100644 Source/Modulos/Albaranes de cliente/Model/schAlbaranesClienteServer_Intf.pas create mode 100644 Source/Modulos/Albaranes de cliente/Model/uBizAlbaranClienteServer.pas create mode 100644 Source/Modulos/Albaranes de cliente/Model/uBizAlbaranesCliente.pas create mode 100644 Source/Modulos/Albaranes de cliente/Model/uBizDetallesAlbaranCliente.pas create mode 100644 Source/Modulos/Albaranes de cliente/Plugin/AlbaranesCliente_plugin.bdsproj create mode 100644 Source/Modulos/Albaranes de cliente/Plugin/AlbaranesCliente_plugin.dpk create mode 100644 Source/Modulos/Albaranes de cliente/Plugin/AlbaranesCliente_plugin.dproj create mode 100644 Source/Modulos/Albaranes de cliente/Plugin/AlbaranesCliente_plugin.identcache create mode 100644 Source/Modulos/Albaranes de cliente/Plugin/AlbaranesCliente_plugin.rc create mode 100644 Source/Modulos/Albaranes de cliente/Plugin/AlbaranesCliente_plugin.res create mode 100644 Source/Modulos/Albaranes de cliente/Plugin/uPluginAlbaranesCliente.dfm create mode 100644 Source/Modulos/Albaranes de cliente/Plugin/uPluginAlbaranesCliente.pas create mode 100644 Source/Modulos/Albaranes de cliente/Reports/uRptAlbaranesCliente_Server.dfm create mode 100644 Source/Modulos/Albaranes de cliente/Reports/uRptAlbaranesCliente_Server.pas create mode 100644 Source/Modulos/Albaranes de cliente/Servidor/srvAlbaranesCliente_Impl.dfm create mode 100644 Source/Modulos/Albaranes de cliente/Servidor/srvAlbaranesCliente_Impl.pas create mode 100644 Source/Modulos/Albaranes de cliente/Views/AlbaranesCliente_view.bdsproj create mode 100644 Source/Modulos/Albaranes de cliente/Views/AlbaranesCliente_view.dpk create mode 100644 Source/Modulos/Albaranes de cliente/Views/AlbaranesCliente_view.dproj create mode 100644 Source/Modulos/Albaranes de cliente/Views/AlbaranesCliente_view.identcache create mode 100644 Source/Modulos/Albaranes de cliente/Views/AlbaranesCliente_view.rc create mode 100644 Source/Modulos/Albaranes de cliente/Views/AlbaranesCliente_view.res create mode 100644 Source/Modulos/Albaranes de cliente/Views/uAlbaranesClienteViewRegister.pas create mode 100644 Source/Modulos/Albaranes de cliente/Views/uEditorAlbaranCliente.dfm create mode 100644 Source/Modulos/Albaranes de cliente/Views/uEditorAlbaranCliente.pas create mode 100644 Source/Modulos/Albaranes de cliente/Views/uEditorAlbaranDevCliente.dfm create mode 100644 Source/Modulos/Albaranes de cliente/Views/uEditorAlbaranDevCliente.pas create mode 100644 Source/Modulos/Albaranes de cliente/Views/uEditorAlbaranesCliente.dfm create mode 100644 Source/Modulos/Albaranes de cliente/Views/uEditorAlbaranesCliente.pas create mode 100644 Source/Modulos/Albaranes de cliente/Views/uEditorAlbaranesClienteReport.dfm create mode 100644 Source/Modulos/Albaranes de cliente/Views/uEditorAlbaranesClienteReport.pas create mode 100644 Source/Modulos/Albaranes de cliente/Views/uEditorAlbaranesDevCliente.dfm create mode 100644 Source/Modulos/Albaranes de cliente/Views/uEditorAlbaranesDevCliente.pas create mode 100644 Source/Modulos/Albaranes de cliente/Views/uEditorElegirAlbaranesCliente.dfm create mode 100644 Source/Modulos/Albaranes de cliente/Views/uEditorElegirAlbaranesCliente.pas create mode 100644 Source/Modulos/Albaranes de cliente/Views/uEditorElegirArticulosAlbaranCliente.dfm create mode 100644 Source/Modulos/Albaranes de cliente/Views/uEditorElegirArticulosAlbaranCliente.pas create mode 100644 Source/Modulos/Albaranes de cliente/Views/uViewAlbaranCliente.dfm create mode 100644 Source/Modulos/Albaranes de cliente/Views/uViewAlbaranCliente.pas create mode 100644 Source/Modulos/Albaranes de cliente/Views/uViewAlbaranDevCliente.dfm create mode 100644 Source/Modulos/Albaranes de cliente/Views/uViewAlbaranDevCliente.pas create mode 100644 Source/Modulos/Albaranes de cliente/Views/uViewAlbaranesCliente.dfm create mode 100644 Source/Modulos/Albaranes de cliente/Views/uViewAlbaranesCliente.pas create mode 100644 Source/Modulos/Albaranes de cliente/Views/uViewAlbaranesDevCliente.dfm create mode 100644 Source/Modulos/Albaranes de cliente/Views/uViewAlbaranesDevCliente.pas create mode 100644 Source/Modulos/Albaranes de cliente/Views/uViewDetallesAlbaranCliente.dfm create mode 100644 Source/Modulos/Albaranes de cliente/Views/uViewDetallesAlbaranCliente.pas create mode 100644 Source/Modulos/Albaranes de cliente/Views/uViewDireccionEntregaAlbaranCliente.dfm create mode 100644 Source/Modulos/Albaranes de cliente/Views/uViewDireccionEntregaAlbaranCliente.pas create mode 100644 Source/Modulos/Albaranes de cliente/Views/uViewElegirArticulosAlbaranesCliente.dfm create mode 100644 Source/Modulos/Albaranes de cliente/Views/uViewElegirArticulosAlbaranesCliente.pas create mode 100644 Source/Modulos/Albaranes de proveedor/AlbaranesProveedor_Group.bdsgroup create mode 100644 Source/Modulos/Albaranes de proveedor/AlbaranesProveedor_Group.config create mode 100644 Source/Modulos/Albaranes de proveedor/AlbaranesProveedor_Group.groupproj create mode 100644 Source/Modulos/Albaranes de proveedor/Controller/AlbaranesProveedor_controller.bdsproj create mode 100644 Source/Modulos/Albaranes de proveedor/Controller/AlbaranesProveedor_controller.dpk create mode 100644 Source/Modulos/Albaranes de proveedor/Controller/AlbaranesProveedor_controller.dproj create mode 100644 Source/Modulos/Albaranes de proveedor/Controller/AlbaranesProveedor_controller.identcache create mode 100644 Source/Modulos/Albaranes de proveedor/Controller/AlbaranesProveedor_controller.rc create mode 100644 Source/Modulos/Albaranes de proveedor/Controller/AlbaranesProveedor_controller.res create mode 100644 Source/Modulos/Albaranes de proveedor/Controller/View/uIEditorAlbaranDevProveedor.pas create mode 100644 Source/Modulos/Albaranes de proveedor/Controller/View/uIEditorAlbaranProveedor.pas create mode 100644 Source/Modulos/Albaranes de proveedor/Controller/View/uIEditorAlbaranesDevProveedor.pas create mode 100644 Source/Modulos/Albaranes de proveedor/Controller/View/uIEditorAlbaranesProveedor.pas create mode 100644 Source/Modulos/Albaranes de proveedor/Controller/View/uIEditorAlbaranesProveedorPreview.pas create mode 100644 Source/Modulos/Albaranes de proveedor/Controller/View/uIEditorDireccionEntregaAlbaranProveedor.pas create mode 100644 Source/Modulos/Albaranes de proveedor/Controller/View/uIEditorElegirAlbaranesProveedor.pas create mode 100644 Source/Modulos/Albaranes de proveedor/Controller/View/uIEditorElegirArticulosAlbaranesProveedor.pas create mode 100644 Source/Modulos/Albaranes de proveedor/Controller/uAlbaranesProveedorController.pas create mode 100644 Source/Modulos/Albaranes de proveedor/Controller/uAlbaranesProveedorReportController.pas create mode 100644 Source/Modulos/Albaranes de proveedor/Controller/uArticulosAlbaranProveedorController.pas create mode 100644 Source/Modulos/Albaranes de proveedor/Controller/uDetallesAlbaranProveedorController.pas create mode 100644 Source/Modulos/Albaranes de proveedor/Data/AlbaranesProveedor_data.bdsproj create mode 100644 Source/Modulos/Albaranes de proveedor/Data/AlbaranesProveedor_data.dpk create mode 100644 Source/Modulos/Albaranes de proveedor/Data/AlbaranesProveedor_data.dproj create mode 100644 Source/Modulos/Albaranes de proveedor/Data/AlbaranesProveedor_data.identcache create mode 100644 Source/Modulos/Albaranes de proveedor/Data/AlbaranesProveedor_data.rc create mode 100644 Source/Modulos/Albaranes de proveedor/Data/AlbaranesProveedor_data.res create mode 100644 Source/Modulos/Albaranes de proveedor/Data/uDataModuleAlbaranesProveedor.dfm create mode 100644 Source/Modulos/Albaranes de proveedor/Data/uDataModuleAlbaranesProveedor.pas create mode 100644 Source/Modulos/Albaranes de proveedor/Model/AlbaranesProveedor_model.bdsproj create mode 100644 Source/Modulos/Albaranes de proveedor/Model/AlbaranesProveedor_model.dpk create mode 100644 Source/Modulos/Albaranes de proveedor/Model/AlbaranesProveedor_model.dproj create mode 100644 Source/Modulos/Albaranes de proveedor/Model/AlbaranesProveedor_model.identcache create mode 100644 Source/Modulos/Albaranes de proveedor/Model/AlbaranesProveedor_model.rc create mode 100644 Source/Modulos/Albaranes de proveedor/Model/AlbaranesProveedor_model.res create mode 100644 Source/Modulos/Albaranes de proveedor/Model/Data/uIDataModuleAlbaranesProveedor.pas create mode 100644 Source/Modulos/Albaranes de proveedor/Model/Data/uIDataModuleAlbaranesProveedorReport.pas create mode 100644 Source/Modulos/Albaranes de proveedor/Model/ModelSupport_AlbaranesProveedor_model/AlbaranesProveedor_model.prjconfig create mode 100644 Source/Modulos/Albaranes de proveedor/Model/ModelSupport_AlbaranesProveedor_model/default.txaPackage create mode 100644 Source/Modulos/Albaranes de proveedor/Model/schAlbaranesProveedorClient_Intf.pas create mode 100644 Source/Modulos/Albaranes de proveedor/Model/schAlbaranesProveedorServer_Intf.pas create mode 100644 Source/Modulos/Albaranes de proveedor/Model/uBizAlbaranProveedorServer.PAS create mode 100644 Source/Modulos/Albaranes de proveedor/Model/uBizAlbaranesProveedor.pas create mode 100644 Source/Modulos/Albaranes de proveedor/Model/uBizDetallesAlbaranProveedor.pas create mode 100644 Source/Modulos/Albaranes de proveedor/Plugin/AlbaranesProveedor_plugin.bdsproj create mode 100644 Source/Modulos/Albaranes de proveedor/Plugin/AlbaranesProveedor_plugin.dpk create mode 100644 Source/Modulos/Albaranes de proveedor/Plugin/AlbaranesProveedor_plugin.dproj create mode 100644 Source/Modulos/Albaranes de proveedor/Plugin/AlbaranesProveedor_plugin.rc create mode 100644 Source/Modulos/Albaranes de proveedor/Plugin/AlbaranesProveedor_plugin.res create mode 100644 Source/Modulos/Albaranes de proveedor/Plugin/uPluginAlbaranesProveedor.dfm create mode 100644 Source/Modulos/Albaranes de proveedor/Plugin/uPluginAlbaranesProveedor.pas create mode 100644 Source/Modulos/Albaranes de proveedor/Reports/uRptAlbaranesProveedor_Server.dfm create mode 100644 Source/Modulos/Albaranes de proveedor/Reports/uRptAlbaranesProveedor_Server.pas create mode 100644 Source/Modulos/Albaranes de proveedor/Servidor/srvAlbaranesProveedor_Impl.dfm create mode 100644 Source/Modulos/Albaranes de proveedor/Servidor/srvAlbaranesProveedor_Impl.pas create mode 100644 Source/Modulos/Albaranes de proveedor/Views/AlbaranesProveedor_view.bdsproj create mode 100644 Source/Modulos/Albaranes de proveedor/Views/AlbaranesProveedor_view.dpk create mode 100644 Source/Modulos/Albaranes de proveedor/Views/AlbaranesProveedor_view.dproj create mode 100644 Source/Modulos/Albaranes de proveedor/Views/AlbaranesProveedor_view.identcache create mode 100644 Source/Modulos/Albaranes de proveedor/Views/AlbaranesProveedor_view.rc create mode 100644 Source/Modulos/Albaranes de proveedor/Views/AlbaranesProveedor_view.res create mode 100644 Source/Modulos/Albaranes de proveedor/Views/uAlbaranesProveedorViewRegister.pas create mode 100644 Source/Modulos/Albaranes de proveedor/Views/uEditorAlbaranDevProveedor.dfm create mode 100644 Source/Modulos/Albaranes de proveedor/Views/uEditorAlbaranDevProveedor.pas create mode 100644 Source/Modulos/Albaranes de proveedor/Views/uEditorAlbaranProveedor.dfm create mode 100644 Source/Modulos/Albaranes de proveedor/Views/uEditorAlbaranProveedor.pas create mode 100644 Source/Modulos/Albaranes de proveedor/Views/uEditorAlbaranesDevProveedor.dfm create mode 100644 Source/Modulos/Albaranes de proveedor/Views/uEditorAlbaranesDevProveedor.pas create mode 100644 Source/Modulos/Albaranes de proveedor/Views/uEditorAlbaranesProveedor.dfm create mode 100644 Source/Modulos/Albaranes de proveedor/Views/uEditorAlbaranesProveedor.pas create mode 100644 Source/Modulos/Albaranes de proveedor/Views/uEditorAlbaranesProveedorReport.dfm create mode 100644 Source/Modulos/Albaranes de proveedor/Views/uEditorAlbaranesProveedorReport.pas create mode 100644 Source/Modulos/Albaranes de proveedor/Views/uEditorDireccionEntregaAlbaranProveedor.dfm create mode 100644 Source/Modulos/Albaranes de proveedor/Views/uEditorDireccionEntregaAlbaranProveedor.pas create mode 100644 Source/Modulos/Albaranes de proveedor/Views/uEditorElegirAlbaranesProveedor.dfm create mode 100644 Source/Modulos/Albaranes de proveedor/Views/uEditorElegirAlbaranesProveedor.pas create mode 100644 Source/Modulos/Albaranes de proveedor/Views/uEditorElegirArticulosAlbaranProveedor.dfm create mode 100644 Source/Modulos/Albaranes de proveedor/Views/uEditorElegirArticulosAlbaranProveedor.pas create mode 100644 Source/Modulos/Albaranes de proveedor/Views/uViewAlbaranDevProveedor.dfm create mode 100644 Source/Modulos/Albaranes de proveedor/Views/uViewAlbaranDevProveedor.pas create mode 100644 Source/Modulos/Albaranes de proveedor/Views/uViewAlbaranProveedor.dfm create mode 100644 Source/Modulos/Albaranes de proveedor/Views/uViewAlbaranProveedor.pas create mode 100644 Source/Modulos/Albaranes de proveedor/Views/uViewAlbaranesDevProveedor.dfm create mode 100644 Source/Modulos/Albaranes de proveedor/Views/uViewAlbaranesDevProveedor.pas create mode 100644 Source/Modulos/Albaranes de proveedor/Views/uViewAlbaranesProveedor.dfm create mode 100644 Source/Modulos/Albaranes de proveedor/Views/uViewAlbaranesProveedor.pas create mode 100644 Source/Modulos/Albaranes de proveedor/Views/uViewDetallesAlbaranProveedor.dfm create mode 100644 Source/Modulos/Albaranes de proveedor/Views/uViewDetallesAlbaranProveedor.pas create mode 100644 Source/Modulos/Albaranes de proveedor/Views/uViewDireccionEntregaAlbaranProv.dfm create mode 100644 Source/Modulos/Albaranes de proveedor/Views/uViewDireccionEntregaAlbaranProv.pas create mode 100644 Source/Modulos/Albaranes de proveedor/Views/uViewElegirArticulosAlbaranesProveedor.dfm create mode 100644 Source/Modulos/Albaranes de proveedor/Views/uViewElegirArticulosAlbaranesProveedor.pas create mode 100644 Source/Modulos/Almacenes/Almacenes_Group.bdsgroup create mode 100644 Source/Modulos/Almacenes/Almacenes_Group.groupproj create mode 100644 Source/Modulos/Almacenes/Controller/Almacenes_controller.bdsproj create mode 100644 Source/Modulos/Almacenes/Controller/Almacenes_controller.dpk create mode 100644 Source/Modulos/Almacenes/Controller/Almacenes_controller.dproj create mode 100644 Source/Modulos/Almacenes/Controller/Almacenes_controller.identcache create mode 100644 Source/Modulos/Almacenes/Controller/Almacenes_controller.rc create mode 100644 Source/Modulos/Almacenes/Controller/Almacenes_controller.res create mode 100644 Source/Modulos/Almacenes/Controller/View/uIEditorAlmacen.pas create mode 100644 Source/Modulos/Almacenes/Controller/View/uIEditorAlmacenes.pas create mode 100644 Source/Modulos/Almacenes/Controller/View/uIEditorListaAlmacenes.pas create mode 100644 Source/Modulos/Almacenes/Controller/uAlmacenesController.pas create mode 100644 Source/Modulos/Almacenes/Data/Almacenes_data.bdsproj create mode 100644 Source/Modulos/Almacenes/Data/Almacenes_data.dpk create mode 100644 Source/Modulos/Almacenes/Data/Almacenes_data.dproj create mode 100644 Source/Modulos/Almacenes/Data/Almacenes_data.identcache create mode 100644 Source/Modulos/Almacenes/Data/Almacenes_data.rc create mode 100644 Source/Modulos/Almacenes/Data/Almacenes_data.res create mode 100644 Source/Modulos/Almacenes/Data/uDataModuleAlmacenes.dfm create mode 100644 Source/Modulos/Almacenes/Data/uDataModuleAlmacenes.pas create mode 100644 Source/Modulos/Almacenes/Model/Almacenes_model.bdsproj create mode 100644 Source/Modulos/Almacenes/Model/Almacenes_model.dpk create mode 100644 Source/Modulos/Almacenes/Model/Almacenes_model.dproj create mode 100644 Source/Modulos/Almacenes/Model/Almacenes_model.rc create mode 100644 Source/Modulos/Almacenes/Model/Almacenes_model.res create mode 100644 Source/Modulos/Almacenes/Model/Data/uIDataModuleAlmacenes.pas create mode 100644 Source/Modulos/Almacenes/Model/schAlmacenesClient_Intf.pas create mode 100644 Source/Modulos/Almacenes/Model/schAlmacenesServer_Intf.pas create mode 100644 Source/Modulos/Almacenes/Model/uBizAlmacenes.pas create mode 100644 Source/Modulos/Almacenes/Plugin/Almacenes_plugin.bdsproj create mode 100644 Source/Modulos/Almacenes/Plugin/Almacenes_plugin.dpk create mode 100644 Source/Modulos/Almacenes/Plugin/Almacenes_plugin.dproj create mode 100644 Source/Modulos/Almacenes/Plugin/Almacenes_plugin.rc create mode 100644 Source/Modulos/Almacenes/Plugin/Almacenes_plugin.res create mode 100644 Source/Modulos/Almacenes/Plugin/uPluginAlmacenes.dfm create mode 100644 Source/Modulos/Almacenes/Plugin/uPluginAlmacenes.pas create mode 100644 Source/Modulos/Almacenes/Servidor/srvAlmacenes_Impl.dfm create mode 100644 Source/Modulos/Almacenes/Servidor/srvAlmacenes_Impl.pas create mode 100644 Source/Modulos/Almacenes/Views/Almacenes_view.bdsproj create mode 100644 Source/Modulos/Almacenes/Views/Almacenes_view.dpk create mode 100644 Source/Modulos/Almacenes/Views/Almacenes_view.dproj create mode 100644 Source/Modulos/Almacenes/Views/Almacenes_view.identcache create mode 100644 Source/Modulos/Almacenes/Views/Almacenes_view.rc create mode 100644 Source/Modulos/Almacenes/Views/Almacenes_view.res create mode 100644 Source/Modulos/Almacenes/Views/uAlmacenesViewRegister.pas create mode 100644 Source/Modulos/Almacenes/Views/uEditorAlmacen.dfm create mode 100644 Source/Modulos/Almacenes/Views/uEditorAlmacen.pas create mode 100644 Source/Modulos/Almacenes/Views/uEditorAlmacenes.dfm create mode 100644 Source/Modulos/Almacenes/Views/uEditorAlmacenes.pas create mode 100644 Source/Modulos/Almacenes/Views/uEditorListaAlmacenes.dfm create mode 100644 Source/Modulos/Almacenes/Views/uEditorListaAlmacenes.pas create mode 100644 Source/Modulos/Almacenes/Views/uListaAlmacenes.dfm create mode 100644 Source/Modulos/Almacenes/Views/uListaAlmacenes.pas create mode 100644 Source/Modulos/Almacenes/Views/uViewAlmacen.dfm create mode 100644 Source/Modulos/Almacenes/Views/uViewAlmacen.pas create mode 100644 Source/Modulos/Almacenes/Views/uViewAlmacenes.dfm create mode 100644 Source/Modulos/Almacenes/Views/uViewAlmacenes.pas create mode 100644 Source/Modulos/Articulos/Articulos_Group.bdsgroup create mode 100644 Source/Modulos/Articulos/Articulos_Group.groupproj create mode 100644 Source/Modulos/Articulos/Controller/Articulos_controller.bdsproj create mode 100644 Source/Modulos/Articulos/Controller/Articulos_controller.dpk create mode 100644 Source/Modulos/Articulos/Controller/Articulos_controller.dproj create mode 100644 Source/Modulos/Articulos/Controller/Articulos_controller.identcache create mode 100644 Source/Modulos/Articulos/Controller/Articulos_controller.rc create mode 100644 Source/Modulos/Articulos/Controller/Articulos_controller.res create mode 100644 Source/Modulos/Articulos/Controller/View/uIEditorArticulo.pas create mode 100644 Source/Modulos/Articulos/Controller/View/uIEditorArticulos.pas create mode 100644 Source/Modulos/Articulos/Controller/View/uIEditorElegirArticulos.pas create mode 100644 Source/Modulos/Articulos/Controller/uArticulosController.pas create mode 100644 Source/Modulos/Articulos/Controller/uControllerDetallesArticulos.pas create mode 100644 Source/Modulos/Articulos/Data/Articulos_data.bdsproj create mode 100644 Source/Modulos/Articulos/Data/Articulos_data.dpk create mode 100644 Source/Modulos/Articulos/Data/Articulos_data.dproj create mode 100644 Source/Modulos/Articulos/Data/Articulos_data.identcache create mode 100644 Source/Modulos/Articulos/Data/Articulos_data.rc create mode 100644 Source/Modulos/Articulos/Data/Articulos_data.res create mode 100644 Source/Modulos/Articulos/Data/uDataModuleArticulos.dfm create mode 100644 Source/Modulos/Articulos/Data/uDataModuleArticulos.pas create mode 100644 Source/Modulos/Articulos/Model/Articulos_model.bdsproj create mode 100644 Source/Modulos/Articulos/Model/Articulos_model.dpk create mode 100644 Source/Modulos/Articulos/Model/Articulos_model.dproj create mode 100644 Source/Modulos/Articulos/Model/Articulos_model.identcache create mode 100644 Source/Modulos/Articulos/Model/Articulos_model.rc create mode 100644 Source/Modulos/Articulos/Model/Articulos_model.res create mode 100644 Source/Modulos/Articulos/Model/Data/uIDataModuleArticulos.pas create mode 100644 Source/Modulos/Articulos/Model/schArticulosClient_Intf.pas create mode 100644 Source/Modulos/Articulos/Model/schArticulosServer_Intf.pas create mode 100644 Source/Modulos/Articulos/Model/uBizArticulos.pas create mode 100644 Source/Modulos/Articulos/Plugin/Articulos_plugin.bdsproj create mode 100644 Source/Modulos/Articulos/Plugin/Articulos_plugin.dpk create mode 100644 Source/Modulos/Articulos/Plugin/Articulos_plugin.dproj create mode 100644 Source/Modulos/Articulos/Plugin/Articulos_plugin.rc create mode 100644 Source/Modulos/Articulos/Plugin/Articulos_plugin.res create mode 100644 Source/Modulos/Articulos/Plugin/uPluginArticulos.dfm create mode 100644 Source/Modulos/Articulos/Plugin/uPluginArticulos.pas create mode 100644 Source/Modulos/Articulos/Servidor/srvArticulos_Impl.dfm create mode 100644 Source/Modulos/Articulos/Servidor/srvArticulos_Impl.pas create mode 100644 Source/Modulos/Articulos/Views/Articulos_view.bdsproj create mode 100644 Source/Modulos/Articulos/Views/Articulos_view.dpk create mode 100644 Source/Modulos/Articulos/Views/Articulos_view.dproj create mode 100644 Source/Modulos/Articulos/Views/Articulos_view.identcache create mode 100644 Source/Modulos/Articulos/Views/Articulos_view.rc create mode 100644 Source/Modulos/Articulos/Views/Articulos_view.res create mode 100644 Source/Modulos/Articulos/Views/uArticulosViewRegister.pas create mode 100644 Source/Modulos/Articulos/Views/uEditorArticulo.dfm create mode 100644 Source/Modulos/Articulos/Views/uEditorArticulo.pas create mode 100644 Source/Modulos/Articulos/Views/uEditorArticulos.dfm create mode 100644 Source/Modulos/Articulos/Views/uEditorArticulos.pas create mode 100644 Source/Modulos/Articulos/Views/uEditorElegirArticulos.dfm create mode 100644 Source/Modulos/Articulos/Views/uEditorElegirArticulos.pas create mode 100644 Source/Modulos/Articulos/Views/uViewArticulo.dfm create mode 100644 Source/Modulos/Articulos/Views/uViewArticulo.pas create mode 100644 Source/Modulos/Articulos/Views/uViewArticulos.dfm create mode 100644 Source/Modulos/Articulos/Views/uViewArticulos.pas create mode 100644 Source/Modulos/Articulos/Views/uViewDetallesArticulos.dfm create mode 100644 Source/Modulos/Articulos/Views/uViewDetallesArticulos.pas create mode 100644 Source/Modulos/Banca electronica/Controller/BancaElectronica_controller.bdsproj create mode 100644 Source/Modulos/Banca electronica/Controller/BancaElectronica_controller.dpk create mode 100644 Source/Modulos/Banca electronica/Controller/BancaElectronica_controller.dproj create mode 100644 Source/Modulos/Banca electronica/Controller/BancaElectronica_controller.identcache create mode 100644 Source/Modulos/Banca electronica/Controller/BancaElectronica_controller.rc create mode 100644 Source/Modulos/Banca electronica/Controller/BancaElectronica_controller.res create mode 100644 Source/Modulos/Banca electronica/Controller/View/uIEditorExportacionNorma19.pas create mode 100644 Source/Modulos/Banca electronica/Controller/uBancaElectronicaController.pas create mode 100644 Source/Modulos/Banca electronica/Data/BancaElectronica_data.bdsproj create mode 100644 Source/Modulos/Banca electronica/Data/BancaElectronica_data.dpk create mode 100644 Source/Modulos/Banca electronica/Data/BancaElectronica_data.dproj create mode 100644 Source/Modulos/Banca electronica/Data/BancaElectronica_data.res create mode 100644 Source/Modulos/Banca electronica/Data/uDataModuleBancaElectronica.dfm create mode 100644 Source/Modulos/Banca electronica/Data/uDataModuleBancaElectronica.pas create mode 100644 Source/Modulos/Banca electronica/Model/BancaElectronica_model.bdsproj create mode 100644 Source/Modulos/Banca electronica/Model/BancaElectronica_model.dpk create mode 100644 Source/Modulos/Banca electronica/Model/BancaElectronica_model.dproj create mode 100644 Source/Modulos/Banca electronica/Model/BancaElectronica_model.identcache create mode 100644 Source/Modulos/Banca electronica/Model/BancaElectronica_model.res create mode 100644 Source/Modulos/Banca electronica/Model/Data/uIDataModuleBancaElectronica.pas create mode 100644 Source/Modulos/Banca electronica/Model/uBizBancaElectronica.pas create mode 100644 Source/Modulos/Banca electronica/PedidosProveedor_Group.groupproj create mode 100644 Source/Modulos/Banca electronica/Plugin/BancaElectronica_plugin.bdsproj create mode 100644 Source/Modulos/Banca electronica/Plugin/BancaElectronica_plugin.dpk create mode 100644 Source/Modulos/Banca electronica/Plugin/BancaElectronica_plugin.dproj create mode 100644 Source/Modulos/Banca electronica/Plugin/BancaElectronica_plugin.rc create mode 100644 Source/Modulos/Banca electronica/Plugin/BancaElectronica_plugin.res create mode 100644 Source/Modulos/Banca electronica/Plugin/uPluginBancaElectronica.dfm create mode 100644 Source/Modulos/Banca electronica/Plugin/uPluginBancaElectronica.pas create mode 100644 Source/Modulos/Banca electronica/Utiles/CVBNorma1958CSB.pas create mode 100644 Source/Modulos/Banca electronica/Utiles/CVBNorma19CSB.pas create mode 100644 Source/Modulos/Banca electronica/Utiles/CVBNorma34CSB.pas create mode 100644 Source/Modulos/Banca electronica/Utiles/CVBReg.pas create mode 100644 Source/Modulos/Banca electronica/Utiles/CVBUtils.pas create mode 100644 Source/Modulos/Banca electronica/Views/BancaElectronica_view.bdsproj create mode 100644 Source/Modulos/Banca electronica/Views/BancaElectronica_view.dpk create mode 100644 Source/Modulos/Banca electronica/Views/BancaElectronica_view.dproj create mode 100644 Source/Modulos/Banca electronica/Views/BancaElectronica_view.rc create mode 100644 Source/Modulos/Banca electronica/Views/BancaElectronica_view.res create mode 100644 Source/Modulos/Banca electronica/Views/uBancaElectronicaViewRegister.pas create mode 100644 Source/Modulos/Banca electronica/Views/uEditorExportacionNorma19.dfm create mode 100644 Source/Modulos/Banca electronica/Views/uEditorExportacionNorma19.pas create mode 100644 Source/Modulos/Comisiones/Controller/Comisiones_controller.bdsproj create mode 100644 Source/Modulos/Comisiones/Controller/Comisiones_controller.dpk create mode 100644 Source/Modulos/Comisiones/Controller/Comisiones_controller.rc create mode 100644 Source/Modulos/Comisiones/Controller/Comisiones_controller.res create mode 100644 Source/Modulos/Comisiones/Controller/View/uIEditorComision.pas create mode 100644 Source/Modulos/Comisiones/Controller/View/uIEditorComisiones.pas create mode 100644 Source/Modulos/Comisiones/Controller/View/uIEditorComisionesPreview.pas create mode 100644 Source/Modulos/Comisiones/Controller/uComisionesController.pas create mode 100644 Source/Modulos/Comisiones/Controller/uComisionesReportController.pas create mode 100644 Source/Modulos/Comisiones/Data/Comisiones_data.bdsproj create mode 100644 Source/Modulos/Comisiones/Data/Comisiones_data.dpk create mode 100644 Source/Modulos/Comisiones/Data/Comisiones_data.rc create mode 100644 Source/Modulos/Comisiones/Data/Comisiones_data.res create mode 100644 Source/Modulos/Comisiones/Data/uDataModuleComisiones.dfm create mode 100644 Source/Modulos/Comisiones/Data/uDataModuleComisiones.pas create mode 100644 Source/Modulos/Comisiones/Model/Comisiones_model.bdsproj create mode 100644 Source/Modulos/Comisiones/Model/Comisiones_model.dpk create mode 100644 Source/Modulos/Comisiones/Model/Comisiones_model.rc create mode 100644 Source/Modulos/Comisiones/Model/Comisiones_model.res create mode 100644 Source/Modulos/Comisiones/Model/Data/uIDataModuleComisiones.pas create mode 100644 Source/Modulos/Comisiones/Model/Data/uIDataModuleComisionesReport.pas create mode 100644 Source/Modulos/Comisiones/Model/schComisionesClient_Intf.pas create mode 100644 Source/Modulos/Comisiones/Model/schComisionesServer_Intf.pas create mode 100644 Source/Modulos/Comisiones/Model/schReportClient_Intf.pas create mode 100644 Source/Modulos/Comisiones/Model/schReportServer_Intf.pas create mode 100644 Source/Modulos/Comisiones/Model/serverlog.txt create mode 100644 Source/Modulos/Comisiones/Model/uBizComisiones.pas create mode 100644 Source/Modulos/Comisiones/Model/uBizComisionesServer.pas create mode 100644 Source/Modulos/Comisiones/Plugin/Comisiones_plugin.bdsproj create mode 100644 Source/Modulos/Comisiones/Plugin/Comisiones_plugin.dpk create mode 100644 Source/Modulos/Comisiones/Plugin/Comisiones_plugin.rc create mode 100644 Source/Modulos/Comisiones/Plugin/Comisiones_plugin.res create mode 100644 Source/Modulos/Comisiones/Plugin/uPluginComisiones.dfm create mode 100644 Source/Modulos/Comisiones/Plugin/uPluginComisiones.pas create mode 100644 Source/Modulos/Comisiones/Reports/uRptComisiones_Server.dfm create mode 100644 Source/Modulos/Comisiones/Reports/uRptComisiones_Server.pas create mode 100644 Source/Modulos/Comisiones/Servidor/serverlog.txt create mode 100644 Source/Modulos/Comisiones/Servidor/srvComisiones_Impl.dfm create mode 100644 Source/Modulos/Comisiones/Servidor/srvComisiones_Impl.pas create mode 100644 Source/Modulos/Comisiones/Views/Comisiones_view.bdsproj create mode 100644 Source/Modulos/Comisiones/Views/Comisiones_view.dpk create mode 100644 Source/Modulos/Comisiones/Views/Comisiones_view.rc create mode 100644 Source/Modulos/Comisiones/Views/Comisiones_view.res create mode 100644 Source/Modulos/Comisiones/Views/serverlog.txt create mode 100644 Source/Modulos/Comisiones/Views/uComisionesViewRegister.pas create mode 100644 Source/Modulos/Comisiones/Views/uEditorComision.dfm create mode 100644 Source/Modulos/Comisiones/Views/uEditorComision.pas create mode 100644 Source/Modulos/Comisiones/Views/uEditorComisiones.dfm create mode 100644 Source/Modulos/Comisiones/Views/uEditorComisiones.pas create mode 100644 Source/Modulos/Comisiones/Views/uEditorComisionesReport.dfm create mode 100644 Source/Modulos/Comisiones/Views/uEditorComisionesReport.pas create mode 100644 Source/Modulos/Comisiones/Views/uEditorFamilias.dfm create mode 100644 Source/Modulos/Comisiones/Views/uEditorFamilias.pas create mode 100644 Source/Modulos/Comisiones/Views/uEditorRemesasCliente.dfm create mode 100644 Source/Modulos/Comisiones/Views/uEditorRemesasCliente.pas create mode 100644 Source/Modulos/Comisiones/Views/uViewComision.dfm create mode 100644 Source/Modulos/Comisiones/Views/uViewComision.pas create mode 100644 Source/Modulos/Comisiones/Views/uViewComisiones.dfm create mode 100644 Source/Modulos/Comisiones/Views/uViewComisiones.pas create mode 100644 Source/Modulos/Comisiones/Views/uViewFacturasComision.dfm create mode 100644 Source/Modulos/Comisiones/Views/uViewFacturasComision.pas create mode 100644 Source/Modulos/Contabilidad balances/Balances_Group.groupproj create mode 100644 Source/Modulos/Contabilidad balances/Controller/Balances_controller.dpk create mode 100644 Source/Modulos/Contabilidad balances/Controller/Balances_controller.dproj create mode 100644 Source/Modulos/Contabilidad balances/Controller/Balances_controller.identcache create mode 100644 Source/Modulos/Contabilidad balances/Controller/Balances_controller.rc create mode 100644 Source/Modulos/Contabilidad balances/Controller/Balances_controller.res create mode 100644 Source/Modulos/Contabilidad balances/Controller/View/uIEditorBalance.pas create mode 100644 Source/Modulos/Contabilidad balances/Controller/View/uIEditorBalances.pas create mode 100644 Source/Modulos/Contabilidad balances/Controller/uBalancesController.pas create mode 100644 Source/Modulos/Contabilidad balances/Data/Balances_data.dpk create mode 100644 Source/Modulos/Contabilidad balances/Data/Balances_data.dproj create mode 100644 Source/Modulos/Contabilidad balances/Data/Balances_data.identcache create mode 100644 Source/Modulos/Contabilidad balances/Data/Balances_data.rc create mode 100644 Source/Modulos/Contabilidad balances/Data/Balances_data.res create mode 100644 Source/Modulos/Contabilidad balances/Data/uDataModuleBalances.dfm create mode 100644 Source/Modulos/Contabilidad balances/Data/uDataModuleBalances.pas create mode 100644 Source/Modulos/Contabilidad balances/Model/Balances_model.dpk create mode 100644 Source/Modulos/Contabilidad balances/Model/Balances_model.dproj create mode 100644 Source/Modulos/Contabilidad balances/Model/Balances_model.identcache create mode 100644 Source/Modulos/Contabilidad balances/Model/Balances_model.rc create mode 100644 Source/Modulos/Contabilidad balances/Model/Balances_model.res create mode 100644 Source/Modulos/Contabilidad balances/Model/Data/uIDataModuleBalances.pas create mode 100644 Source/Modulos/Contabilidad balances/Model/schBalancesClient_Intf.pas create mode 100644 Source/Modulos/Contabilidad balances/Model/schBalancesServer_Intf.pas create mode 100644 Source/Modulos/Contabilidad balances/Model/uBizBalances.pas create mode 100644 Source/Modulos/Contabilidad balances/Plugin/Balances_plugin.dpk create mode 100644 Source/Modulos/Contabilidad balances/Plugin/Balances_plugin.dproj create mode 100644 Source/Modulos/Contabilidad balances/Plugin/Balances_plugin.identcache create mode 100644 Source/Modulos/Contabilidad balances/Plugin/Balances_plugin.rc create mode 100644 Source/Modulos/Contabilidad balances/Plugin/Balances_plugin.res create mode 100644 Source/Modulos/Contabilidad balances/Plugin/uPluginBalances.dfm create mode 100644 Source/Modulos/Contabilidad balances/Plugin/uPluginBalances.pas create mode 100644 Source/Modulos/Contabilidad balances/Servidor/srvBalances_Impl.dfm create mode 100644 Source/Modulos/Contabilidad balances/Servidor/srvBalances_Impl.pas create mode 100644 Source/Modulos/Contabilidad balances/Views/Balances_view.dpk create mode 100644 Source/Modulos/Contabilidad balances/Views/Balances_view.dproj create mode 100644 Source/Modulos/Contabilidad balances/Views/Balances_view.identcache create mode 100644 Source/Modulos/Contabilidad balances/Views/Balances_view.rc create mode 100644 Source/Modulos/Contabilidad balances/Views/Balances_view.res create mode 100644 Source/Modulos/Contabilidad balances/Views/uBalancesViewRegister.pas create mode 100644 Source/Modulos/Contabilidad balances/Views/uEditorBalance.dfm create mode 100644 Source/Modulos/Contabilidad balances/Views/uEditorBalance.pas create mode 100644 Source/Modulos/Contabilidad balances/Views/uEditorBalances.dfm create mode 100644 Source/Modulos/Contabilidad balances/Views/uEditorBalances.pas create mode 100644 Source/Modulos/Contabilidad cuentas especiales/Controller/CuentasEspeciales_controller.dpk create mode 100644 Source/Modulos/Contabilidad cuentas especiales/Controller/CuentasEspeciales_controller.dproj create mode 100644 Source/Modulos/Contabilidad cuentas especiales/Controller/CuentasEspeciales_controller.identcache create mode 100644 Source/Modulos/Contabilidad cuentas especiales/Controller/CuentasEspeciales_controller.rc create mode 100644 Source/Modulos/Contabilidad cuentas especiales/Controller/CuentasEspeciales_controller.res create mode 100644 Source/Modulos/Contabilidad cuentas especiales/Controller/View/uIEditorCuentaEspecial.pas create mode 100644 Source/Modulos/Contabilidad cuentas especiales/Controller/View/uIEditorCuentasEspeciales.pas create mode 100644 Source/Modulos/Contabilidad cuentas especiales/Controller/uCuentasEspecialesController.pas create mode 100644 Source/Modulos/Contabilidad cuentas especiales/CuentasEspeciales_Group.groupproj create mode 100644 Source/Modulos/Contabilidad cuentas especiales/Data/CuentasEspeciales_data.dpk create mode 100644 Source/Modulos/Contabilidad cuentas especiales/Data/CuentasEspeciales_data.dproj create mode 100644 Source/Modulos/Contabilidad cuentas especiales/Data/CuentasEspeciales_data.identcache create mode 100644 Source/Modulos/Contabilidad cuentas especiales/Data/CuentasEspeciales_data.rc create mode 100644 Source/Modulos/Contabilidad cuentas especiales/Data/CuentasEspeciales_data.res create mode 100644 Source/Modulos/Contabilidad cuentas especiales/Data/uDataModuleCuentasEspeciales.dfm create mode 100644 Source/Modulos/Contabilidad cuentas especiales/Data/uDataModuleCuentasEspeciales.pas create mode 100644 Source/Modulos/Contabilidad cuentas especiales/Model/CuentasEspeciales_model.dpk create mode 100644 Source/Modulos/Contabilidad cuentas especiales/Model/CuentasEspeciales_model.dproj create mode 100644 Source/Modulos/Contabilidad cuentas especiales/Model/CuentasEspeciales_model.identcache create mode 100644 Source/Modulos/Contabilidad cuentas especiales/Model/CuentasEspeciales_model.rc create mode 100644 Source/Modulos/Contabilidad cuentas especiales/Model/CuentasEspeciales_model.res create mode 100644 Source/Modulos/Contabilidad cuentas especiales/Model/Data/uIDataModuleCuentasEspeciales.pas create mode 100644 Source/Modulos/Contabilidad cuentas especiales/Model/schCuentasEspecialesClient_Intf.pas create mode 100644 Source/Modulos/Contabilidad cuentas especiales/Model/schCuentasEspecialesServer_Intf.pas create mode 100644 Source/Modulos/Contabilidad cuentas especiales/Model/uBizCuentasEspeciales.pas create mode 100644 Source/Modulos/Contabilidad cuentas especiales/Plugin/CuentasEspeciales_plugin.dpk create mode 100644 Source/Modulos/Contabilidad cuentas especiales/Plugin/CuentasEspeciales_plugin.dproj create mode 100644 Source/Modulos/Contabilidad cuentas especiales/Plugin/CuentasEspeciales_plugin.identcache create mode 100644 Source/Modulos/Contabilidad cuentas especiales/Plugin/CuentasEspeciales_plugin.rc create mode 100644 Source/Modulos/Contabilidad cuentas especiales/Plugin/CuentasEspeciales_plugin.res create mode 100644 Source/Modulos/Contabilidad cuentas especiales/Plugin/uPluginCuentasEspeciales.dfm create mode 100644 Source/Modulos/Contabilidad cuentas especiales/Plugin/uPluginCuentasEspeciales.pas create mode 100644 Source/Modulos/Contabilidad cuentas especiales/Servidor/srvCuentasEspeciales_Impl.dfm create mode 100644 Source/Modulos/Contabilidad cuentas especiales/Servidor/srvCuentasEspeciales_Impl.pas create mode 100644 Source/Modulos/Contabilidad cuentas especiales/Views/CuentasEspeciales_view.dpk create mode 100644 Source/Modulos/Contabilidad cuentas especiales/Views/CuentasEspeciales_view.dproj create mode 100644 Source/Modulos/Contabilidad cuentas especiales/Views/CuentasEspeciales_view.identcache create mode 100644 Source/Modulos/Contabilidad cuentas especiales/Views/CuentasEspeciales_view.rc create mode 100644 Source/Modulos/Contabilidad cuentas especiales/Views/CuentasEspeciales_view.res create mode 100644 Source/Modulos/Contabilidad cuentas especiales/Views/uCuentasEspecialesViewRegister.pas create mode 100644 Source/Modulos/Contabilidad cuentas especiales/Views/uEditorCuentaEspecial.dfm create mode 100644 Source/Modulos/Contabilidad cuentas especiales/Views/uEditorCuentaEspecial.pas create mode 100644 Source/Modulos/Contabilidad cuentas especiales/Views/uEditorCuentasEspeciales.dfm create mode 100644 Source/Modulos/Contabilidad cuentas especiales/Views/uEditorCuentasEspeciales.pas create mode 100644 Source/Modulos/Contabilidad ejercicios/Controller/Ejercicios_controller.dpk create mode 100644 Source/Modulos/Contabilidad ejercicios/Controller/Ejercicios_controller.dproj create mode 100644 Source/Modulos/Contabilidad ejercicios/Controller/Ejercicios_controller.identcache create mode 100644 Source/Modulos/Contabilidad ejercicios/Controller/Ejercicios_controller.rc create mode 100644 Source/Modulos/Contabilidad ejercicios/Controller/Ejercicios_controller.res create mode 100644 Source/Modulos/Contabilidad ejercicios/Controller/View/uIEditorEjercicio.pas create mode 100644 Source/Modulos/Contabilidad ejercicios/Controller/View/uIEditorEjercicios.pas create mode 100644 Source/Modulos/Contabilidad ejercicios/Controller/uEjerciciosController.pas create mode 100644 Source/Modulos/Contabilidad ejercicios/Data/Ejercicios_data.dpk create mode 100644 Source/Modulos/Contabilidad ejercicios/Data/Ejercicios_data.dproj create mode 100644 Source/Modulos/Contabilidad ejercicios/Data/Ejercicios_data.identcache create mode 100644 Source/Modulos/Contabilidad ejercicios/Data/Ejercicios_data.rc create mode 100644 Source/Modulos/Contabilidad ejercicios/Data/Ejercicios_data.res create mode 100644 Source/Modulos/Contabilidad ejercicios/Data/uDataModuleEjercicios.dfm create mode 100644 Source/Modulos/Contabilidad ejercicios/Data/uDataModuleEjercicios.pas create mode 100644 Source/Modulos/Contabilidad ejercicios/Ejercicios_Group.groupproj create mode 100644 Source/Modulos/Contabilidad ejercicios/Model/Data/uIDataModuleEjercicios.pas create mode 100644 Source/Modulos/Contabilidad ejercicios/Model/Ejercicios_model.dpk create mode 100644 Source/Modulos/Contabilidad ejercicios/Model/Ejercicios_model.dproj create mode 100644 Source/Modulos/Contabilidad ejercicios/Model/Ejercicios_model.identcache create mode 100644 Source/Modulos/Contabilidad ejercicios/Model/Ejercicios_model.rc create mode 100644 Source/Modulos/Contabilidad ejercicios/Model/Ejercicios_model.res create mode 100644 Source/Modulos/Contabilidad ejercicios/Model/schEjerciciosClient_Intf.pas create mode 100644 Source/Modulos/Contabilidad ejercicios/Model/schEjerciciosServer_Intf.pas create mode 100644 Source/Modulos/Contabilidad ejercicios/Model/uBizEjercicios.pas create mode 100644 Source/Modulos/Contabilidad ejercicios/Plugin/Ejercicios_plugin.dpk create mode 100644 Source/Modulos/Contabilidad ejercicios/Plugin/Ejercicios_plugin.dproj create mode 100644 Source/Modulos/Contabilidad ejercicios/Plugin/Ejercicios_plugin.identcache create mode 100644 Source/Modulos/Contabilidad ejercicios/Plugin/Ejercicios_plugin.rc create mode 100644 Source/Modulos/Contabilidad ejercicios/Plugin/Ejercicios_plugin.res create mode 100644 Source/Modulos/Contabilidad ejercicios/Plugin/uPluginEjercicios.dfm create mode 100644 Source/Modulos/Contabilidad ejercicios/Plugin/uPluginEjercicios.dfm.bak create mode 100644 Source/Modulos/Contabilidad ejercicios/Plugin/uPluginEjercicios.pas create mode 100644 Source/Modulos/Contabilidad ejercicios/Servidor/srvEjercicios_Impl.dfm create mode 100644 Source/Modulos/Contabilidad ejercicios/Servidor/srvEjercicios_Impl.pas create mode 100644 Source/Modulos/Contabilidad ejercicios/Views/Ejercicios_view.dpk create mode 100644 Source/Modulos/Contabilidad ejercicios/Views/Ejercicios_view.dproj create mode 100644 Source/Modulos/Contabilidad ejercicios/Views/Ejercicios_view.identcache create mode 100644 Source/Modulos/Contabilidad ejercicios/Views/Ejercicios_view.rc create mode 100644 Source/Modulos/Contabilidad ejercicios/Views/Ejercicios_view.res create mode 100644 Source/Modulos/Contabilidad ejercicios/Views/uEditorEjercicio.dfm create mode 100644 Source/Modulos/Contabilidad ejercicios/Views/uEditorEjercicio.pas create mode 100644 Source/Modulos/Contabilidad ejercicios/Views/uEditorEjercicios.dfm create mode 100644 Source/Modulos/Contabilidad ejercicios/Views/uEditorEjercicios.pas create mode 100644 Source/Modulos/Contabilidad ejercicios/Views/uEjerciciosViewRegister.pas create mode 100644 Source/Modulos/Contabilidad ejercicios/Views/uViewEjercicio.dfm create mode 100644 Source/Modulos/Contabilidad ejercicios/Views/uViewEjercicio.pas create mode 100644 Source/Modulos/Contabilidad ejercicios/Views/uViewEjercicios.dfm create mode 100644 Source/Modulos/Contabilidad ejercicios/Views/uViewEjercicios.pas create mode 100644 Source/Modulos/Contabilidad epigrafes/Controller/Epigrafes_controller.dpk create mode 100644 Source/Modulos/Contabilidad epigrafes/Controller/Epigrafes_controller.dproj create mode 100644 Source/Modulos/Contabilidad epigrafes/Controller/Epigrafes_controller.identcache create mode 100644 Source/Modulos/Contabilidad epigrafes/Controller/Epigrafes_controller.rc create mode 100644 Source/Modulos/Contabilidad epigrafes/Controller/Epigrafes_controller.res create mode 100644 Source/Modulos/Contabilidad epigrafes/Controller/View/uIEditorEpigrafe.pas create mode 100644 Source/Modulos/Contabilidad epigrafes/Controller/View/uIEditorEpigrafes.pas create mode 100644 Source/Modulos/Contabilidad epigrafes/Controller/uEpigrafesController.pas create mode 100644 Source/Modulos/Contabilidad epigrafes/Data/Epigrafes_data.dpk create mode 100644 Source/Modulos/Contabilidad epigrafes/Data/Epigrafes_data.dproj create mode 100644 Source/Modulos/Contabilidad epigrafes/Data/Epigrafes_data.identcache create mode 100644 Source/Modulos/Contabilidad epigrafes/Data/Epigrafes_data.rc create mode 100644 Source/Modulos/Contabilidad epigrafes/Data/Epigrafes_data.res create mode 100644 Source/Modulos/Contabilidad epigrafes/Data/uDataModuleEpigrafes.dfm create mode 100644 Source/Modulos/Contabilidad epigrafes/Data/uDataModuleEpigrafes.pas create mode 100644 Source/Modulos/Contabilidad epigrafes/Epigrafes_Group.groupproj create mode 100644 Source/Modulos/Contabilidad epigrafes/Model/Data/uIDataModuleEpigrafes.pas create mode 100644 Source/Modulos/Contabilidad epigrafes/Model/Epigrafes_model.dpk create mode 100644 Source/Modulos/Contabilidad epigrafes/Model/Epigrafes_model.dproj create mode 100644 Source/Modulos/Contabilidad epigrafes/Model/Epigrafes_model.identcache create mode 100644 Source/Modulos/Contabilidad epigrafes/Model/Epigrafes_model.rc create mode 100644 Source/Modulos/Contabilidad epigrafes/Model/Epigrafes_model.res create mode 100644 Source/Modulos/Contabilidad epigrafes/Model/schEpigrafesClient_Intf.pas create mode 100644 Source/Modulos/Contabilidad epigrafes/Model/schEpigrafesServer_Intf.pas create mode 100644 Source/Modulos/Contabilidad epigrafes/Model/uBizEpigrafes.pas create mode 100644 Source/Modulos/Contabilidad epigrafes/Plugin/Epigrafes_plugin.dpk create mode 100644 Source/Modulos/Contabilidad epigrafes/Plugin/Epigrafes_plugin.dproj create mode 100644 Source/Modulos/Contabilidad epigrafes/Plugin/Epigrafes_plugin.identcache create mode 100644 Source/Modulos/Contabilidad epigrafes/Plugin/Epigrafes_plugin.rc create mode 100644 Source/Modulos/Contabilidad epigrafes/Plugin/Epigrafes_plugin.res create mode 100644 Source/Modulos/Contabilidad epigrafes/Plugin/uPluginEpigrafes.dfm create mode 100644 Source/Modulos/Contabilidad epigrafes/Plugin/uPluginEpigrafes.pas create mode 100644 Source/Modulos/Contabilidad epigrafes/Servidor/srvEpigrafes_Impl.dfm create mode 100644 Source/Modulos/Contabilidad epigrafes/Servidor/srvEpigrafes_Impl.pas create mode 100644 Source/Modulos/Contabilidad epigrafes/Views/Epigrafes_view.dpk create mode 100644 Source/Modulos/Contabilidad epigrafes/Views/Epigrafes_view.dproj create mode 100644 Source/Modulos/Contabilidad epigrafes/Views/Epigrafes_view.identcache create mode 100644 Source/Modulos/Contabilidad epigrafes/Views/Epigrafes_view.rc create mode 100644 Source/Modulos/Contabilidad epigrafes/Views/Epigrafes_view.res create mode 100644 Source/Modulos/Contabilidad epigrafes/Views/uEditorEpigrafe.dfm create mode 100644 Source/Modulos/Contabilidad epigrafes/Views/uEditorEpigrafe.pas create mode 100644 Source/Modulos/Contabilidad epigrafes/Views/uEditorEpigrafes.dfm create mode 100644 Source/Modulos/Contabilidad epigrafes/Views/uEditorEpigrafes.pas create mode 100644 Source/Modulos/Contabilidad epigrafes/Views/uEpigrafesViewRegister.pas create mode 100644 Source/Modulos/Contabilidad epigrafes/Views/uViewEpigrafe.dfm create mode 100644 Source/Modulos/Contabilidad epigrafes/Views/uViewEpigrafe.pas create mode 100644 Source/Modulos/Contabilidad epigrafes/Views/uViewEpigrafes.dfm create mode 100644 Source/Modulos/Contabilidad epigrafes/Views/uViewEpigrafes.pas create mode 100644 Source/Modulos/Contactos/Contactos_Group.bdsgroup create mode 100644 Source/Modulos/Contactos/Contactos_Group.config create mode 100644 Source/Modulos/Contactos/Contactos_Group.groupproj create mode 100644 Source/Modulos/Contactos/Controller/Contactos_controller.bdsproj create mode 100644 Source/Modulos/Contactos/Controller/Contactos_controller.dpk create mode 100644 Source/Modulos/Contactos/Controller/Contactos_controller.dproj create mode 100644 Source/Modulos/Contactos/Controller/Contactos_controller.identcache create mode 100644 Source/Modulos/Contactos/Controller/Contactos_controller.rc create mode 100644 Source/Modulos/Contactos/Controller/Contactos_controller.res create mode 100644 Source/Modulos/Contactos/Controller/View/uIEditorCliente.pas create mode 100644 Source/Modulos/Contactos/Controller/View/uIEditorClientes.pas create mode 100644 Source/Modulos/Contactos/Controller/View/uIEditorContacto.pas create mode 100644 Source/Modulos/Contactos/Controller/View/uIEditorContactos.pas create mode 100644 Source/Modulos/Contactos/Controller/View/uIEditorDireccionContacto.pas create mode 100644 Source/Modulos/Contactos/Controller/View/uIEditorElegirClientes.pas create mode 100644 Source/Modulos/Contactos/Controller/View/uIEditorElegirContactos.pas create mode 100644 Source/Modulos/Contactos/Controller/View/uIEditorElegirDireccionEntrega.pas create mode 100644 Source/Modulos/Contactos/Controller/View/uIEditorElegirProveedores.pas create mode 100644 Source/Modulos/Contactos/Controller/View/uIEditorEmpleado.pas create mode 100644 Source/Modulos/Contactos/Controller/View/uIEditorEmpleados.pas create mode 100644 Source/Modulos/Contactos/Controller/View/uIEditorEtiquetasContactosPreview.pas create mode 100644 Source/Modulos/Contactos/Controller/View/uIEditorFichasEmpleadoPreview.pas create mode 100644 Source/Modulos/Contactos/Controller/View/uIEditorGruposCliente.pas create mode 100644 Source/Modulos/Contactos/Controller/View/uIEditorGruposEmpleado.pas create mode 100644 Source/Modulos/Contactos/Controller/View/uIEditorGruposProveedor.pas create mode 100644 Source/Modulos/Contactos/Controller/View/uIEditorProveedor.pas create mode 100644 Source/Modulos/Contactos/Controller/View/uIEditorProveedores.pas create mode 100644 Source/Modulos/Contactos/Controller/uClientesController.pas create mode 100644 Source/Modulos/Contactos/Controller/uContactosController.pas create mode 100644 Source/Modulos/Contactos/Controller/uDireccionesContactoController.pas create mode 100644 Source/Modulos/Contactos/Controller/uEmpleadosController.pas create mode 100644 Source/Modulos/Contactos/Controller/uEtiquetasContactosReportController.pas create mode 100644 Source/Modulos/Contactos/Controller/uFichasEmpleadoReportController.pas create mode 100644 Source/Modulos/Contactos/Controller/uGruposClienteController.pas create mode 100644 Source/Modulos/Contactos/Controller/uGruposEmpleadoController.pas create mode 100644 Source/Modulos/Contactos/Controller/uGruposProveedorController.pas create mode 100644 Source/Modulos/Contactos/Controller/uProveedoresController.pas create mode 100644 Source/Modulos/Contactos/Data/Contactos_data.bdsproj create mode 100644 Source/Modulos/Contactos/Data/Contactos_data.dpk create mode 100644 Source/Modulos/Contactos/Data/Contactos_data.dproj create mode 100644 Source/Modulos/Contactos/Data/Contactos_data.identcache create mode 100644 Source/Modulos/Contactos/Data/Contactos_data.rc create mode 100644 Source/Modulos/Contactos/Data/Contactos_data.res create mode 100644 Source/Modulos/Contactos/Data/uDataModuleClientes.dfm create mode 100644 Source/Modulos/Contactos/Data/uDataModuleClientes.pas create mode 100644 Source/Modulos/Contactos/Data/uDataModuleContactos.dfm create mode 100644 Source/Modulos/Contactos/Data/uDataModuleContactos.pas create mode 100644 Source/Modulos/Contactos/Data/uDataModuleEmpleados.dfm create mode 100644 Source/Modulos/Contactos/Data/uDataModuleEmpleados.pas create mode 100644 Source/Modulos/Contactos/Data/uDataModuleProveedores.dfm create mode 100644 Source/Modulos/Contactos/Data/uDataModuleProveedores.pas create mode 100644 Source/Modulos/Contactos/Model/Contactos_model.bdsproj create mode 100644 Source/Modulos/Contactos/Model/Contactos_model.dpk create mode 100644 Source/Modulos/Contactos/Model/Contactos_model.dproj create mode 100644 Source/Modulos/Contactos/Model/Contactos_model.identcache create mode 100644 Source/Modulos/Contactos/Model/Contactos_model.rc create mode 100644 Source/Modulos/Contactos/Model/Contactos_model.res create mode 100644 Source/Modulos/Contactos/Model/Data/uIDataModuleClientes.pas create mode 100644 Source/Modulos/Contactos/Model/Data/uIDataModuleContactos.pas create mode 100644 Source/Modulos/Contactos/Model/Data/uIDataModuleEmpleados.pas create mode 100644 Source/Modulos/Contactos/Model/Data/uIDataModuleEtiquetasContactosReport.pas create mode 100644 Source/Modulos/Contactos/Model/Data/uIDataModuleFichasEmpleadoReport.pas create mode 100644 Source/Modulos/Contactos/Model/Data/uIDataModuleGruposCliente.pas create mode 100644 Source/Modulos/Contactos/Model/Data/uIDataModuleProveedores.pas create mode 100644 Source/Modulos/Contactos/Model/schContactosClient_Intf.pas create mode 100644 Source/Modulos/Contactos/Model/schContactosServer_Intf.pas create mode 100644 Source/Modulos/Contactos/Model/uBizClientesDescuentos.pas create mode 100644 Source/Modulos/Contactos/Model/uBizClientesServer.pas create mode 100644 Source/Modulos/Contactos/Model/uBizContactos.pas create mode 100644 Source/Modulos/Contactos/Model/uBizContactosDatosBancarios.pas create mode 100644 Source/Modulos/Contactos/Model/uBizContactosServer.pas create mode 100644 Source/Modulos/Contactos/Model/uBizDireccionesContacto.pas create mode 100644 Source/Modulos/Contactos/Model/uBizEmpleadosServer.pas create mode 100644 Source/Modulos/Contactos/Model/uBizGruposCliente.pas create mode 100644 Source/Modulos/Contactos/Model/uBizGruposEmpleado.pas create mode 100644 Source/Modulos/Contactos/Model/uBizGruposProveedor.pas create mode 100644 Source/Modulos/Contactos/Model/uBizProveedoresServer.pas create mode 100644 Source/Modulos/Contactos/Plugin/Contactos_plugin.bdsproj create mode 100644 Source/Modulos/Contactos/Plugin/Contactos_plugin.dex create mode 100644 Source/Modulos/Contactos/Plugin/Contactos_plugin.dpk create mode 100644 Source/Modulos/Contactos/Plugin/Contactos_plugin.dproj create mode 100644 Source/Modulos/Contactos/Plugin/Contactos_plugin.identcache create mode 100644 Source/Modulos/Contactos/Plugin/Contactos_plugin.rc create mode 100644 Source/Modulos/Contactos/Plugin/Contactos_plugin.res create mode 100644 Source/Modulos/Contactos/Plugin/uPluginContactos.dfm create mode 100644 Source/Modulos/Contactos/Plugin/uPluginContactos.pas create mode 100644 Source/Modulos/Contactos/Reports/Copia de uRptFichasEmpleado_Server.dfm create mode 100644 Source/Modulos/Contactos/Reports/Copia de uRptFichasEmpleado_Server.pas create mode 100644 Source/Modulos/Contactos/Reports/uRptEtiquetasContacto_Server.dfm create mode 100644 Source/Modulos/Contactos/Reports/uRptEtiquetasContacto_Server.pas create mode 100644 Source/Modulos/Contactos/Reports/uRptFichasEmpleado_Server.dfm create mode 100644 Source/Modulos/Contactos/Reports/uRptFichasEmpleado_Server.pas create mode 100644 Source/Modulos/Contactos/Servidor/srvContactos_Impl.dfm create mode 100644 Source/Modulos/Contactos/Servidor/srvContactos_Impl.pas create mode 100644 Source/Modulos/Contactos/Test/Contactos_Tests.bdsproj create mode 100644 Source/Modulos/Contactos/Test/Contactos_Tests.dpr create mode 100644 Source/Modulos/Contactos/Test/Contactos_Tests.dproj create mode 100644 Source/Modulos/Contactos/Test/Contactos_Tests.res create mode 100644 Source/Modulos/Contactos/Test/uClientesController_test.pas create mode 100644 Source/Modulos/Contactos/Test/uDataModuleContactos_Test.pas create mode 100644 Source/Modulos/Contactos/Test/uHostMainForm.dfm create mode 100644 Source/Modulos/Contactos/Test/uHostMainForm.pas create mode 100644 Source/Modulos/Contactos/Utiles/uRegimenIVAUtils.pas create mode 100644 Source/Modulos/Contactos/Views/Contactos_view.bdsproj create mode 100644 Source/Modulos/Contactos/Views/Contactos_view.dpk create mode 100644 Source/Modulos/Contactos/Views/Contactos_view.dproj create mode 100644 Source/Modulos/Contactos/Views/Contactos_view.identcache create mode 100644 Source/Modulos/Contactos/Views/Contactos_view.rc create mode 100644 Source/Modulos/Contactos/Views/Contactos_view.res create mode 100644 Source/Modulos/Contactos/Views/uContactosViewRegister.pas create mode 100644 Source/Modulos/Contactos/Views/uEditorCliente.dfm create mode 100644 Source/Modulos/Contactos/Views/uEditorCliente.pas create mode 100644 Source/Modulos/Contactos/Views/uEditorClientes.dfm create mode 100644 Source/Modulos/Contactos/Views/uEditorClientes.pas create mode 100644 Source/Modulos/Contactos/Views/uEditorContacto.dfm create mode 100644 Source/Modulos/Contactos/Views/uEditorContacto.pas create mode 100644 Source/Modulos/Contactos/Views/uEditorContactos.dfm create mode 100644 Source/Modulos/Contactos/Views/uEditorContactos.pas create mode 100644 Source/Modulos/Contactos/Views/uEditorDireccion.dfm create mode 100644 Source/Modulos/Contactos/Views/uEditorDireccion.pas create mode 100644 Source/Modulos/Contactos/Views/uEditorElegirClientes.dfm create mode 100644 Source/Modulos/Contactos/Views/uEditorElegirClientes.pas create mode 100644 Source/Modulos/Contactos/Views/uEditorElegirDireccionEntrega.dfm create mode 100644 Source/Modulos/Contactos/Views/uEditorElegirDireccionEntrega.pas create mode 100644 Source/Modulos/Contactos/Views/uEditorElegirProveedores.dfm create mode 100644 Source/Modulos/Contactos/Views/uEditorElegirProveedores.pas create mode 100644 Source/Modulos/Contactos/Views/uEditorEmpleado.dfm create mode 100644 Source/Modulos/Contactos/Views/uEditorEmpleado.pas create mode 100644 Source/Modulos/Contactos/Views/uEditorEmpleados.dfm create mode 100644 Source/Modulos/Contactos/Views/uEditorEmpleados.pas create mode 100644 Source/Modulos/Contactos/Views/uEditorEtiquetasContactosReport.dfm create mode 100644 Source/Modulos/Contactos/Views/uEditorEtiquetasContactosReport.pas create mode 100644 Source/Modulos/Contactos/Views/uEditorFichasEmpleadoReport.dfm create mode 100644 Source/Modulos/Contactos/Views/uEditorFichasEmpleadoReport.pas create mode 100644 Source/Modulos/Contactos/Views/uEditorGruposCliente.dfm create mode 100644 Source/Modulos/Contactos/Views/uEditorGruposCliente.pas create mode 100644 Source/Modulos/Contactos/Views/uEditorGruposEmpleado.dfm create mode 100644 Source/Modulos/Contactos/Views/uEditorGruposEmpleado.pas create mode 100644 Source/Modulos/Contactos/Views/uEditorGruposProveedor.dfm create mode 100644 Source/Modulos/Contactos/Views/uEditorGruposProveedor.pas create mode 100644 Source/Modulos/Contactos/Views/uEditorProveedor.dfm create mode 100644 Source/Modulos/Contactos/Views/uEditorProveedor.pas create mode 100644 Source/Modulos/Contactos/Views/uEditorProveedores.dfm create mode 100644 Source/Modulos/Contactos/Views/uEditorProveedores.pas create mode 100644 Source/Modulos/Contactos/Views/uViewCategorias.dfm create mode 100644 Source/Modulos/Contactos/Views/uViewCategorias.pas create mode 100644 Source/Modulos/Contactos/Views/uViewCliente.dfm create mode 100644 Source/Modulos/Contactos/Views/uViewCliente.pas create mode 100644 Source/Modulos/Contactos/Views/uViewClienteDatosComerciales.dfm create mode 100644 Source/Modulos/Contactos/Views/uViewClienteDatosComerciales.pas create mode 100644 Source/Modulos/Contactos/Views/uViewClienteDescuentos.dfm create mode 100644 Source/Modulos/Contactos/Views/uViewClienteDescuentos.pas create mode 100644 Source/Modulos/Contactos/Views/uViewClientes.dfm create mode 100644 Source/Modulos/Contactos/Views/uViewClientes.pas create mode 100644 Source/Modulos/Contactos/Views/uViewContacto.dfm create mode 100644 Source/Modulos/Contactos/Views/uViewContacto.pas create mode 100644 Source/Modulos/Contactos/Views/uViewContactoDatosBancarios.dfm create mode 100644 Source/Modulos/Contactos/Views/uViewContactoDatosBancarios.pas create mode 100644 Source/Modulos/Contactos/Views/uViewContactos.dfm create mode 100644 Source/Modulos/Contactos/Views/uViewContactos.pas create mode 100644 Source/Modulos/Contactos/Views/uViewDatosYSeleccionCliente.dfm create mode 100644 Source/Modulos/Contactos/Views/uViewDatosYSeleccionCliente.pas create mode 100644 Source/Modulos/Contactos/Views/uViewDatosYSeleccionProveedor.dfm create mode 100644 Source/Modulos/Contactos/Views/uViewDatosYSeleccionProveedor.pas create mode 100644 Source/Modulos/Contactos/Views/uViewDireccion.dfm create mode 100644 Source/Modulos/Contactos/Views/uViewDireccion.pas create mode 100644 Source/Modulos/Contactos/Views/uViewDireccionesEntrega.dfm create mode 100644 Source/Modulos/Contactos/Views/uViewDireccionesEntrega.pas create mode 100644 Source/Modulos/Contactos/Views/uViewEmpleado.dfm create mode 100644 Source/Modulos/Contactos/Views/uViewEmpleado.pas create mode 100644 Source/Modulos/Contactos/Views/uViewEmpleados.dfm create mode 100644 Source/Modulos/Contactos/Views/uViewEmpleados.pas create mode 100644 Source/Modulos/Contactos/Views/uViewInternet.dfm create mode 100644 Source/Modulos/Contactos/Views/uViewInternet.pas create mode 100644 Source/Modulos/Contactos/Views/uViewProveedor.dfm create mode 100644 Source/Modulos/Contactos/Views/uViewProveedor.pas create mode 100644 Source/Modulos/Contactos/Views/uViewProveedorDatosComerciales.dfm create mode 100644 Source/Modulos/Contactos/Views/uViewProveedorDatosComerciales.pas create mode 100644 Source/Modulos/Contactos/Views/uViewProveedores.dfm create mode 100644 Source/Modulos/Contactos/Views/uViewProveedores.pas create mode 100644 Source/Modulos/Contactos/Views/uViewTelefonos.dfm create mode 100644 Source/Modulos/Contactos/Views/uViewTelefonos.pas create mode 100644 Source/Modulos/Facturas de cliente/Controller/FacturasCliente_controller.bdsproj create mode 100644 Source/Modulos/Facturas de cliente/Controller/FacturasCliente_controller.dpk create mode 100644 Source/Modulos/Facturas de cliente/Controller/FacturasCliente_controller.dproj create mode 100644 Source/Modulos/Facturas de cliente/Controller/FacturasCliente_controller.identcache create mode 100644 Source/Modulos/Facturas de cliente/Controller/FacturasCliente_controller.rc create mode 100644 Source/Modulos/Facturas de cliente/Controller/FacturasCliente_controller.res create mode 100644 Source/Modulos/Facturas de cliente/Controller/View/uIEditorElegirArticulosFacturasCliente.pas create mode 100644 Source/Modulos/Facturas de cliente/Controller/View/uIEditorElegirFacturasCliente.pas create mode 100644 Source/Modulos/Facturas de cliente/Controller/View/uIEditorFacturaCliente.pas create mode 100644 Source/Modulos/Facturas de cliente/Controller/View/uIEditorFacturasCliente.pas create mode 100644 Source/Modulos/Facturas de cliente/Controller/View/uIEditorFacturasClientePreview.pas create mode 100644 Source/Modulos/Facturas de cliente/Controller/View/uIEditorSituacionFacturaCliente.pas create mode 100644 Source/Modulos/Facturas de cliente/Controller/uArticulosFacturaClienteController.pas create mode 100644 Source/Modulos/Facturas de cliente/Controller/uDetallesFacturaClienteController.pas create mode 100644 Source/Modulos/Facturas de cliente/Controller/uFacturasClienteController.pas create mode 100644 Source/Modulos/Facturas de cliente/Controller/uFacturasClienteReportController.pas create mode 100644 Source/Modulos/Facturas de cliente/Data/FacturasCliente_data.bdsproj create mode 100644 Source/Modulos/Facturas de cliente/Data/FacturasCliente_data.dpk create mode 100644 Source/Modulos/Facturas de cliente/Data/FacturasCliente_data.dproj create mode 100644 Source/Modulos/Facturas de cliente/Data/FacturasCliente_data.identcache create mode 100644 Source/Modulos/Facturas de cliente/Data/FacturasCliente_data.rc create mode 100644 Source/Modulos/Facturas de cliente/Data/FacturasCliente_data.res create mode 100644 Source/Modulos/Facturas de cliente/Data/uDataModuleFacturasCliente.dfm create mode 100644 Source/Modulos/Facturas de cliente/Data/uDataModuleFacturasCliente.pas create mode 100644 Source/Modulos/Facturas de cliente/FacturasCliente_Group.bdsgroup create mode 100644 Source/Modulos/Facturas de cliente/FacturasCliente_Group.groupproj create mode 100644 Source/Modulos/Facturas de cliente/FacturasCliente_Group_prjgroup.tvsconfig create mode 100644 Source/Modulos/Facturas de cliente/Model/Data/uIDataModuleFacturasCliente.pas create mode 100644 Source/Modulos/Facturas de cliente/Model/Data/uIDataModuleFacturasClienteReport.pas create mode 100644 Source/Modulos/Facturas de cliente/Model/FacturasCliente_model.bdsproj create mode 100644 Source/Modulos/Facturas de cliente/Model/FacturasCliente_model.dpk create mode 100644 Source/Modulos/Facturas de cliente/Model/FacturasCliente_model.dproj create mode 100644 Source/Modulos/Facturas de cliente/Model/FacturasCliente_model.identcache create mode 100644 Source/Modulos/Facturas de cliente/Model/FacturasCliente_model.rc create mode 100644 Source/Modulos/Facturas de cliente/Model/FacturasCliente_model.res create mode 100644 Source/Modulos/Facturas de cliente/Model/ModelSupport_FacturasCliente_model/FacturasCliente_model.prjconfig create mode 100644 Source/Modulos/Facturas de cliente/Model/ModelSupport_FacturasCliente_model/Presupuestos_model.prjconfig create mode 100644 Source/Modulos/Facturas de cliente/Model/ModelSupport_FacturasCliente_model/default.txaPackage create mode 100644 Source/Modulos/Facturas de cliente/Model/schFacturasClienteClient_Intf.pas create mode 100644 Source/Modulos/Facturas de cliente/Model/schFacturasClienteServer_Intf.pas create mode 100644 Source/Modulos/Facturas de cliente/Model/uBizDetallesFacturaCliente.pas create mode 100644 Source/Modulos/Facturas de cliente/Model/uBizFacturasCliente.pas create mode 100644 Source/Modulos/Facturas de cliente/Model/uBizFacturasClienteServer.pas create mode 100644 Source/Modulos/Facturas de cliente/Plugin/FacturasCliente_plugin.bdsproj create mode 100644 Source/Modulos/Facturas de cliente/Plugin/FacturasCliente_plugin.dpk create mode 100644 Source/Modulos/Facturas de cliente/Plugin/FacturasCliente_plugin.dproj create mode 100644 Source/Modulos/Facturas de cliente/Plugin/FacturasCliente_plugin.identcache create mode 100644 Source/Modulos/Facturas de cliente/Plugin/FacturasCliente_plugin.rc create mode 100644 Source/Modulos/Facturas de cliente/Plugin/FacturasCliente_plugin.res create mode 100644 Source/Modulos/Facturas de cliente/Plugin/uPluginFacturasCliente.dfm create mode 100644 Source/Modulos/Facturas de cliente/Plugin/uPluginFacturasCliente.pas create mode 100644 Source/Modulos/Facturas de cliente/Reports/Copia de uRptFacturasCliente_Server.dfm create mode 100644 Source/Modulos/Facturas de cliente/Reports/Copia de uRptFacturasCliente_Server.pas create mode 100644 Source/Modulos/Facturas de cliente/Reports/uRptFacturasCliente_Server.dfm create mode 100644 Source/Modulos/Facturas de cliente/Reports/uRptFacturasCliente_Server.pas create mode 100644 Source/Modulos/Facturas de cliente/Servidor/schFacturasCliente.daConnections create mode 100644 Source/Modulos/Facturas de cliente/Servidor/srvFacturasCliente_Impl.dfm create mode 100644 Source/Modulos/Facturas de cliente/Servidor/srvFacturasCliente_Impl.pas create mode 100644 Source/Modulos/Facturas de cliente/Test/Presupuestos_Test.bdsproj create mode 100644 Source/Modulos/Facturas de cliente/Test/Presupuestos_Test.dpr create mode 100644 Source/Modulos/Facturas de cliente/Test/Presupuestos_Test.res create mode 100644 Source/Modulos/Facturas de cliente/Test/uDataModulePresupuestos_Test.pas create mode 100644 Source/Modulos/Facturas de cliente/Test/uHostMainForm.dfm create mode 100644 Source/Modulos/Facturas de cliente/Test/uHostMainForm.pas create mode 100644 Source/Modulos/Facturas de cliente/Test/uPluginPresupuestos_Test.pas create mode 100644 Source/Modulos/Facturas de cliente/Test/uPresupuestosController_Test.pas create mode 100644 Source/Modulos/Facturas de cliente/Views/FacturasCliente_view.bdsproj create mode 100644 Source/Modulos/Facturas de cliente/Views/FacturasCliente_view.dpk create mode 100644 Source/Modulos/Facturas de cliente/Views/FacturasCliente_view.dproj create mode 100644 Source/Modulos/Facturas de cliente/Views/FacturasCliente_view.identcache create mode 100644 Source/Modulos/Facturas de cliente/Views/FacturasCliente_view.rc create mode 100644 Source/Modulos/Facturas de cliente/Views/FacturasCliente_view.res create mode 100644 Source/Modulos/Facturas de cliente/Views/uEditorElegirArticulosFacturaCliente.dfm create mode 100644 Source/Modulos/Facturas de cliente/Views/uEditorElegirArticulosFacturaCliente.pas create mode 100644 Source/Modulos/Facturas de cliente/Views/uEditorElegirFacturasCliente.dfm create mode 100644 Source/Modulos/Facturas de cliente/Views/uEditorElegirFacturasCliente.pas create mode 100644 Source/Modulos/Facturas de cliente/Views/uEditorFacturaCliente.dfm create mode 100644 Source/Modulos/Facturas de cliente/Views/uEditorFacturaCliente.pas create mode 100644 Source/Modulos/Facturas de cliente/Views/uEditorFacturasCliente.dfm create mode 100644 Source/Modulos/Facturas de cliente/Views/uEditorFacturasCliente.pas create mode 100644 Source/Modulos/Facturas de cliente/Views/uEditorFacturasClienteReport.dfm create mode 100644 Source/Modulos/Facturas de cliente/Views/uEditorFacturasClienteReport.pas create mode 100644 Source/Modulos/Facturas de cliente/Views/uFacturasClienteViewRegister.pas create mode 100644 Source/Modulos/Facturas de cliente/Views/uViewDetallesFacturaCliente.dfm create mode 100644 Source/Modulos/Facturas de cliente/Views/uViewDetallesFacturaCliente.pas create mode 100644 Source/Modulos/Facturas de cliente/Views/uViewElegirArticulosFacturasCliente.dfm create mode 100644 Source/Modulos/Facturas de cliente/Views/uViewElegirArticulosFacturasCliente.pas create mode 100644 Source/Modulos/Facturas de cliente/Views/uViewFacturaCliente.dfm create mode 100644 Source/Modulos/Facturas de cliente/Views/uViewFacturaCliente.pas create mode 100644 Source/Modulos/Facturas de cliente/Views/uViewFacturasCliente.dfm create mode 100644 Source/Modulos/Facturas de cliente/Views/uViewFacturasCliente.pas create mode 100644 Source/Modulos/Facturas de proveedor/Controller/FacturasProveedor_controller.bdsproj create mode 100644 Source/Modulos/Facturas de proveedor/Controller/FacturasProveedor_controller.dpk create mode 100644 Source/Modulos/Facturas de proveedor/Controller/FacturasProveedor_controller.dproj create mode 100644 Source/Modulos/Facturas de proveedor/Controller/FacturasProveedor_controller.identcache create mode 100644 Source/Modulos/Facturas de proveedor/Controller/FacturasProveedor_controller.rc create mode 100644 Source/Modulos/Facturas de proveedor/Controller/FacturasProveedor_controller.res create mode 100644 Source/Modulos/Facturas de proveedor/Controller/View/uIEditorElegirArticulosFacturasProveedor.pas create mode 100644 Source/Modulos/Facturas de proveedor/Controller/View/uIEditorFacturaProveedor.pas create mode 100644 Source/Modulos/Facturas de proveedor/Controller/View/uIEditorFacturasProveedor.pas create mode 100644 Source/Modulos/Facturas de proveedor/Controller/View/uIEditorFacturasProveedorPreview.pas create mode 100644 Source/Modulos/Facturas de proveedor/Controller/uArticulosFacturaProveedorController.pas create mode 100644 Source/Modulos/Facturas de proveedor/Controller/uDetallesFacturaProveedorController.pas create mode 100644 Source/Modulos/Facturas de proveedor/Controller/uFacturasProveedorController.pas create mode 100644 Source/Modulos/Facturas de proveedor/Controller/uFacturasProveedorReportController.pas create mode 100644 Source/Modulos/Facturas de proveedor/Data/FacturasProveedor_data.bdsproj create mode 100644 Source/Modulos/Facturas de proveedor/Data/FacturasProveedor_data.dpk create mode 100644 Source/Modulos/Facturas de proveedor/Data/FacturasProveedor_data.dproj create mode 100644 Source/Modulos/Facturas de proveedor/Data/FacturasProveedor_data.identcache create mode 100644 Source/Modulos/Facturas de proveedor/Data/FacturasProveedor_data.rc create mode 100644 Source/Modulos/Facturas de proveedor/Data/FacturasProveedor_data.res create mode 100644 Source/Modulos/Facturas de proveedor/Data/uDataModuleFacturasProveedor.dfm create mode 100644 Source/Modulos/Facturas de proveedor/Data/uDataModuleFacturasProveedor.pas create mode 100644 Source/Modulos/Facturas de proveedor/FacturasProveedor_Group.bdsgroup create mode 100644 Source/Modulos/Facturas de proveedor/FacturasProveedor_Group.config create mode 100644 Source/Modulos/Facturas de proveedor/FacturasProveedor_Group.groupproj create mode 100644 Source/Modulos/Facturas de proveedor/Model/Data/uIDataModuleFacturasProveedor.pas create mode 100644 Source/Modulos/Facturas de proveedor/Model/Data/uIDataModuleFacturasProveedorReport.pas create mode 100644 Source/Modulos/Facturas de proveedor/Model/FacturasProveedor_model.bdsproj create mode 100644 Source/Modulos/Facturas de proveedor/Model/FacturasProveedor_model.dpk create mode 100644 Source/Modulos/Facturas de proveedor/Model/FacturasProveedor_model.dproj create mode 100644 Source/Modulos/Facturas de proveedor/Model/FacturasProveedor_model.identcache create mode 100644 Source/Modulos/Facturas de proveedor/Model/FacturasProveedor_model.rc create mode 100644 Source/Modulos/Facturas de proveedor/Model/FacturasProveedor_model.res create mode 100644 Source/Modulos/Facturas de proveedor/Model/schFacturasProveedorClient_Intf.pas create mode 100644 Source/Modulos/Facturas de proveedor/Model/schFacturasProveedorServer_Intf.pas create mode 100644 Source/Modulos/Facturas de proveedor/Model/uBizDetallesFacturaProveedor.pas create mode 100644 Source/Modulos/Facturas de proveedor/Model/uBizFacturasProveedor.pas create mode 100644 Source/Modulos/Facturas de proveedor/Model/uBizFacturasProveedorServer.pas create mode 100644 Source/Modulos/Facturas de proveedor/Plugin/FacturasProveedor_plugin.bdsproj create mode 100644 Source/Modulos/Facturas de proveedor/Plugin/FacturasProveedor_plugin.dpk create mode 100644 Source/Modulos/Facturas de proveedor/Plugin/FacturasProveedor_plugin.dproj create mode 100644 Source/Modulos/Facturas de proveedor/Plugin/FacturasProveedor_plugin.identcache create mode 100644 Source/Modulos/Facturas de proveedor/Plugin/FacturasProveedor_plugin.rc create mode 100644 Source/Modulos/Facturas de proveedor/Plugin/FacturasProveedor_plugin.res create mode 100644 Source/Modulos/Facturas de proveedor/Plugin/uPluginFacturasProveedor.dfm create mode 100644 Source/Modulos/Facturas de proveedor/Plugin/uPluginFacturasProveedor.pas create mode 100644 Source/Modulos/Facturas de proveedor/Reports/uRptFacturasProveedor_Server.dfm create mode 100644 Source/Modulos/Facturas de proveedor/Reports/uRptFacturasProveedor_Server.pas create mode 100644 Source/Modulos/Facturas de proveedor/Servidor/srvFacturasProveedor_Impl.dfm create mode 100644 Source/Modulos/Facturas de proveedor/Servidor/srvFacturasProveedor_Impl.pas create mode 100644 Source/Modulos/Facturas de proveedor/Test/Presupuestos_Test.bdsproj create mode 100644 Source/Modulos/Facturas de proveedor/Test/Presupuestos_Test.dpr create mode 100644 Source/Modulos/Facturas de proveedor/Test/Presupuestos_Test.res create mode 100644 Source/Modulos/Facturas de proveedor/Test/uDataModulePresupuestos_Test.pas create mode 100644 Source/Modulos/Facturas de proveedor/Test/uHostMainForm.dfm create mode 100644 Source/Modulos/Facturas de proveedor/Test/uHostMainForm.pas create mode 100644 Source/Modulos/Facturas de proveedor/Test/uPluginPresupuestos_Test.pas create mode 100644 Source/Modulos/Facturas de proveedor/Test/uPresupuestosController_Test.pas create mode 100644 Source/Modulos/Facturas de proveedor/Views/FacturasProveedor_view.bdsproj create mode 100644 Source/Modulos/Facturas de proveedor/Views/FacturasProveedor_view.dpk create mode 100644 Source/Modulos/Facturas de proveedor/Views/FacturasProveedor_view.dproj create mode 100644 Source/Modulos/Facturas de proveedor/Views/FacturasProveedor_view.identcache create mode 100644 Source/Modulos/Facturas de proveedor/Views/FacturasProveedor_view.rc create mode 100644 Source/Modulos/Facturas de proveedor/Views/FacturasProveedor_view.res create mode 100644 Source/Modulos/Facturas de proveedor/Views/uEditorElegirArticulosFacturaProveedor.dfm create mode 100644 Source/Modulos/Facturas de proveedor/Views/uEditorElegirArticulosFacturaProveedor.pas create mode 100644 Source/Modulos/Facturas de proveedor/Views/uEditorFacturaProveedor.dfm create mode 100644 Source/Modulos/Facturas de proveedor/Views/uEditorFacturaProveedor.pas create mode 100644 Source/Modulos/Facturas de proveedor/Views/uEditorFacturasProveedor.dfm create mode 100644 Source/Modulos/Facturas de proveedor/Views/uEditorFacturasProveedor.pas create mode 100644 Source/Modulos/Facturas de proveedor/Views/uEditorFacturasProveedorReport.dfm create mode 100644 Source/Modulos/Facturas de proveedor/Views/uEditorFacturasProveedorReport.pas create mode 100644 Source/Modulos/Facturas de proveedor/Views/uFacturasProveedorViewRegister.pas create mode 100644 Source/Modulos/Facturas de proveedor/Views/uViewDetallesFacturaProveedor.dfm create mode 100644 Source/Modulos/Facturas de proveedor/Views/uViewDetallesFacturaProveedor.pas create mode 100644 Source/Modulos/Facturas de proveedor/Views/uViewElegirArticulosFacturasProveedor.dfm create mode 100644 Source/Modulos/Facturas de proveedor/Views/uViewElegirArticulosFacturasProveedor.pas create mode 100644 Source/Modulos/Facturas de proveedor/Views/uViewFacturaProveedor.dfm create mode 100644 Source/Modulos/Facturas de proveedor/Views/uViewFacturaProveedor.pas create mode 100644 Source/Modulos/Facturas de proveedor/Views/uViewFacturasProveedor.dfm create mode 100644 Source/Modulos/Facturas de proveedor/Views/uViewFacturasProveedor.pas create mode 100644 Source/Modulos/Familias/Controller/Familias_controller.bdsproj create mode 100644 Source/Modulos/Familias/Controller/Familias_controller.dpk create mode 100644 Source/Modulos/Familias/Controller/Familias_controller.dproj create mode 100644 Source/Modulos/Familias/Controller/Familias_controller.rc create mode 100644 Source/Modulos/Familias/Controller/Familias_controller.res create mode 100644 Source/Modulos/Familias/Controller/View/uIEditorFamilias.pas create mode 100644 Source/Modulos/Familias/Controller/uFamiliasController.pas create mode 100644 Source/Modulos/Familias/Data/Familias_data.bdsproj create mode 100644 Source/Modulos/Familias/Data/Familias_data.dpk create mode 100644 Source/Modulos/Familias/Data/Familias_data.dproj create mode 100644 Source/Modulos/Familias/Data/Familias_data.rc create mode 100644 Source/Modulos/Familias/Data/Familias_data.res create mode 100644 Source/Modulos/Familias/Data/uDataModuleFamilias.dfm create mode 100644 Source/Modulos/Familias/Data/uDataModuleFamilias.pas create mode 100644 Source/Modulos/Familias/Familias_Group.bdsgroup create mode 100644 Source/Modulos/Familias/Familias_Group.groupproj create mode 100644 Source/Modulos/Familias/Model/Data/uIDataModuleFamilias.pas create mode 100644 Source/Modulos/Familias/Model/Familias_model.bdsproj create mode 100644 Source/Modulos/Familias/Model/Familias_model.dpk create mode 100644 Source/Modulos/Familias/Model/Familias_model.dproj create mode 100644 Source/Modulos/Familias/Model/Familias_model.rc create mode 100644 Source/Modulos/Familias/Model/Familias_model.res create mode 100644 Source/Modulos/Familias/Model/schFamiliasClient_Intf.pas create mode 100644 Source/Modulos/Familias/Model/schFamiliasServer_Intf.pas create mode 100644 Source/Modulos/Familias/Model/uBizFamilias.pas create mode 100644 Source/Modulos/Familias/Plugin/Familias_plugin.bdsproj create mode 100644 Source/Modulos/Familias/Plugin/Familias_plugin.dpk create mode 100644 Source/Modulos/Familias/Plugin/Familias_plugin.dproj create mode 100644 Source/Modulos/Familias/Plugin/Familias_plugin.rc create mode 100644 Source/Modulos/Familias/Plugin/Familias_plugin.res create mode 100644 Source/Modulos/Familias/Plugin/uPluginFamilias.dfm create mode 100644 Source/Modulos/Familias/Plugin/uPluginFamilias.pas create mode 100644 Source/Modulos/Familias/Servidor/srvFamilias_Impl.dfm create mode 100644 Source/Modulos/Familias/Servidor/srvFamilias_Impl.pas create mode 100644 Source/Modulos/Familias/Views/Familias_view.bdsproj create mode 100644 Source/Modulos/Familias/Views/Familias_view.dpk create mode 100644 Source/Modulos/Familias/Views/Familias_view.dproj create mode 100644 Source/Modulos/Familias/Views/Familias_view.rc create mode 100644 Source/Modulos/Familias/Views/Familias_view.res create mode 100644 Source/Modulos/Familias/Views/uEditorFamilias.dfm create mode 100644 Source/Modulos/Familias/Views/uEditorFamilias.pas create mode 100644 Source/Modulos/Familias/Views/uFamiliasViewRegister.pas create mode 100644 Source/Modulos/Formas de pago/Controller/FormasPago_controller.bdsproj create mode 100644 Source/Modulos/Formas de pago/Controller/FormasPago_controller.dpk create mode 100644 Source/Modulos/Formas de pago/Controller/FormasPago_controller.dproj create mode 100644 Source/Modulos/Formas de pago/Controller/FormasPago_controller.gex create mode 100644 Source/Modulos/Formas de pago/Controller/FormasPago_controller.rc create mode 100644 Source/Modulos/Formas de pago/Controller/FormasPago_controller.res create mode 100644 Source/Modulos/Formas de pago/Controller/View/uIEditorFormaPago.pas create mode 100644 Source/Modulos/Formas de pago/Controller/View/uIEditorFormasPago.pas create mode 100644 Source/Modulos/Formas de pago/Controller/uFormasPagoController.pas create mode 100644 Source/Modulos/Formas de pago/Controller/uFormasPagoPlazosController.pas create mode 100644 Source/Modulos/Formas de pago/Data/FormasPago_data.bdsproj create mode 100644 Source/Modulos/Formas de pago/Data/FormasPago_data.dpk create mode 100644 Source/Modulos/Formas de pago/Data/FormasPago_data.dproj create mode 100644 Source/Modulos/Formas de pago/Data/FormasPago_data.rc create mode 100644 Source/Modulos/Formas de pago/Data/FormasPago_data.res create mode 100644 Source/Modulos/Formas de pago/Data/uDataModuleFormasPago.dfm create mode 100644 Source/Modulos/Formas de pago/Data/uDataModuleFormasPago.pas create mode 100644 Source/Modulos/Formas de pago/FormasPago_Group.bdsgroup create mode 100644 Source/Modulos/Formas de pago/FormasPago_Group.groupproj create mode 100644 Source/Modulos/Formas de pago/Model/Data/uIDataModuleFormasPago.pas create mode 100644 Source/Modulos/Formas de pago/Model/FormasPago_model.bdsproj create mode 100644 Source/Modulos/Formas de pago/Model/FormasPago_model.dpk create mode 100644 Source/Modulos/Formas de pago/Model/FormasPago_model.dproj create mode 100644 Source/Modulos/Formas de pago/Model/FormasPago_model.rc create mode 100644 Source/Modulos/Formas de pago/Model/FormasPago_model.res create mode 100644 Source/Modulos/Formas de pago/Model/schFormasPagoClient_Intf.pas create mode 100644 Source/Modulos/Formas de pago/Model/schFormasPagoServer_Intf.pas create mode 100644 Source/Modulos/Formas de pago/Model/uBizFormasPago.pas create mode 100644 Source/Modulos/Formas de pago/Model/uBizFormasPagoPlazos.pas create mode 100644 Source/Modulos/Formas de pago/Plugin/FormasPago_plugin.bdsproj create mode 100644 Source/Modulos/Formas de pago/Plugin/FormasPago_plugin.dpk create mode 100644 Source/Modulos/Formas de pago/Plugin/FormasPago_plugin.dproj create mode 100644 Source/Modulos/Formas de pago/Plugin/FormasPago_plugin.rc create mode 100644 Source/Modulos/Formas de pago/Plugin/FormasPago_plugin.res create mode 100644 Source/Modulos/Formas de pago/Plugin/uPluginFormasPago.dfm create mode 100644 Source/Modulos/Formas de pago/Plugin/uPluginFormasPago.pas create mode 100644 Source/Modulos/Formas de pago/Servidor/srvFormasPago_Impl.dfm create mode 100644 Source/Modulos/Formas de pago/Servidor/srvFormasPago_Impl.pas create mode 100644 Source/Modulos/Formas de pago/Views/FormasPago_view.bdsproj create mode 100644 Source/Modulos/Formas de pago/Views/FormasPago_view.dpk create mode 100644 Source/Modulos/Formas de pago/Views/FormasPago_view.dproj create mode 100644 Source/Modulos/Formas de pago/Views/FormasPago_view.rc create mode 100644 Source/Modulos/Formas de pago/Views/FormasPago_view.res create mode 100644 Source/Modulos/Formas de pago/Views/uEditorFormaPago.dfm create mode 100644 Source/Modulos/Formas de pago/Views/uEditorFormaPago.pas create mode 100644 Source/Modulos/Formas de pago/Views/uEditorFormasPago.dfm create mode 100644 Source/Modulos/Formas de pago/Views/uEditorFormasPago.pas create mode 100644 Source/Modulos/Formas de pago/Views/uFormasPagoViewRegister.pas create mode 100644 Source/Modulos/Historico de movimientos/Controller/HistoricoMovimientos_controller.bdsproj create mode 100644 Source/Modulos/Historico de movimientos/Controller/HistoricoMovimientos_controller.dpk create mode 100644 Source/Modulos/Historico de movimientos/Controller/HistoricoMovimientos_controller.dproj create mode 100644 Source/Modulos/Historico de movimientos/Controller/HistoricoMovimientos_controller.identcache create mode 100644 Source/Modulos/Historico de movimientos/Controller/HistoricoMovimientos_controller.rc create mode 100644 Source/Modulos/Historico de movimientos/Controller/HistoricoMovimientos_controller.res create mode 100644 Source/Modulos/Historico de movimientos/Controller/View/uIEditorHistoricoMovimientos.pas create mode 100644 Source/Modulos/Historico de movimientos/Controller/uHistoricoMovimientosController.pas create mode 100644 Source/Modulos/Historico de movimientos/Data/HistoricoMovimientos_data.bdsproj create mode 100644 Source/Modulos/Historico de movimientos/Data/HistoricoMovimientos_data.dpk create mode 100644 Source/Modulos/Historico de movimientos/Data/HistoricoMovimientos_data.dproj create mode 100644 Source/Modulos/Historico de movimientos/Data/HistoricoMovimientos_data.identcache create mode 100644 Source/Modulos/Historico de movimientos/Data/HistoricoMovimientos_data.rc create mode 100644 Source/Modulos/Historico de movimientos/Data/HistoricoMovimientos_data.res create mode 100644 Source/Modulos/Historico de movimientos/Data/uDataModuleHistoricoMovimientos.dfm create mode 100644 Source/Modulos/Historico de movimientos/Data/uDataModuleHistoricoMovimientos.pas create mode 100644 Source/Modulos/Historico de movimientos/HistoricoMovimientos_Group.bdsgroup create mode 100644 Source/Modulos/Historico de movimientos/HistoricoMovimientos_Group.groupproj create mode 100644 Source/Modulos/Historico de movimientos/Model/Data/uIDataModuleHistoricoMovimientos.pas create mode 100644 Source/Modulos/Historico de movimientos/Model/HistoricoMovimientos_model.bdsproj create mode 100644 Source/Modulos/Historico de movimientos/Model/HistoricoMovimientos_model.dpk create mode 100644 Source/Modulos/Historico de movimientos/Model/HistoricoMovimientos_model.dproj create mode 100644 Source/Modulos/Historico de movimientos/Model/HistoricoMovimientos_model.identcache create mode 100644 Source/Modulos/Historico de movimientos/Model/HistoricoMovimientos_model.rc create mode 100644 Source/Modulos/Historico de movimientos/Model/HistoricoMovimientos_model.res create mode 100644 Source/Modulos/Historico de movimientos/Model/schHistoricoMovimientosClient_Intf.pas create mode 100644 Source/Modulos/Historico de movimientos/Model/schHistoricoMovimientosServer_Intf.pas create mode 100644 Source/Modulos/Historico de movimientos/Model/uBizHistoricoMovimientos.pas create mode 100644 Source/Modulos/Historico de movimientos/Plugin/HistoricoMovimientos_plugin.bdsproj create mode 100644 Source/Modulos/Historico de movimientos/Plugin/HistoricoMovimientos_plugin.dpk create mode 100644 Source/Modulos/Historico de movimientos/Plugin/HistoricoMovimientos_plugin.dproj create mode 100644 Source/Modulos/Historico de movimientos/Plugin/HistoricoMovimientos_plugin.rc create mode 100644 Source/Modulos/Historico de movimientos/Plugin/HistoricoMovimientos_plugin.res create mode 100644 Source/Modulos/Historico de movimientos/Plugin/uPluginHistoricoMovimientos.dfm create mode 100644 Source/Modulos/Historico de movimientos/Plugin/uPluginHistoricoMovimientos.pas create mode 100644 Source/Modulos/Historico de movimientos/Servidor/srvHistoricoMovimientos_Impl.dfm create mode 100644 Source/Modulos/Historico de movimientos/Servidor/srvHistoricoMovimientos_Impl.pas create mode 100644 Source/Modulos/Historico de movimientos/Views/HistoricoMovimientos_view.bdsproj create mode 100644 Source/Modulos/Historico de movimientos/Views/HistoricoMovimientos_view.dpk create mode 100644 Source/Modulos/Historico de movimientos/Views/HistoricoMovimientos_view.dproj create mode 100644 Source/Modulos/Historico de movimientos/Views/HistoricoMovimientos_view.identcache create mode 100644 Source/Modulos/Historico de movimientos/Views/HistoricoMovimientos_view.rc create mode 100644 Source/Modulos/Historico de movimientos/Views/HistoricoMovimientos_view.res create mode 100644 Source/Modulos/Historico de movimientos/Views/uEditorHistoricoMovimientos.dfm create mode 100644 Source/Modulos/Historico de movimientos/Views/uEditorHistoricoMovimientos.pas create mode 100644 Source/Modulos/Historico de movimientos/Views/uHistoricoMovimientosViewRegister.pas create mode 100644 Source/Modulos/Historico de movimientos/Views/uViewHistoricoMovimientos.dfm create mode 100644 Source/Modulos/Historico de movimientos/Views/uViewHistoricoMovimientos.pas create mode 100644 Source/Modulos/Inventario/Controller/Inventario_controller.bdsproj create mode 100644 Source/Modulos/Inventario/Controller/Inventario_controller.dpk create mode 100644 Source/Modulos/Inventario/Controller/Inventario_controller.dproj create mode 100644 Source/Modulos/Inventario/Controller/Inventario_controller.identcache create mode 100644 Source/Modulos/Inventario/Controller/Inventario_controller.rc create mode 100644 Source/Modulos/Inventario/Controller/Inventario_controller.res create mode 100644 Source/Modulos/Inventario/Controller/View/serverlog.txt create mode 100644 Source/Modulos/Inventario/Controller/View/uIEditorDetalleReservas.pas create mode 100644 Source/Modulos/Inventario/Controller/View/uIEditorElegirArticulosAlmacen.pas create mode 100644 Source/Modulos/Inventario/Controller/View/uIEditorElegirArticulosCatalogo.pas create mode 100644 Source/Modulos/Inventario/Controller/View/uIEditorEntradaSalidaArticulos.pas create mode 100644 Source/Modulos/Inventario/Controller/View/uIEditorInventario.pas create mode 100644 Source/Modulos/Inventario/Controller/uArticulosInventarioController.pas create mode 100644 Source/Modulos/Inventario/Controller/uInventarioController.pas create mode 100644 Source/Modulos/Inventario/Data/Inventario_data.bdsproj create mode 100644 Source/Modulos/Inventario/Data/Inventario_data.dpk create mode 100644 Source/Modulos/Inventario/Data/Inventario_data.dproj create mode 100644 Source/Modulos/Inventario/Data/Inventario_data.identcache create mode 100644 Source/Modulos/Inventario/Data/Inventario_data.rc create mode 100644 Source/Modulos/Inventario/Data/Inventario_data.res create mode 100644 Source/Modulos/Inventario/Data/uDataModuleInventario.dfm create mode 100644 Source/Modulos/Inventario/Data/uDataModuleInventario.pas create mode 100644 Source/Modulos/Inventario/Inventario_Group.bdsgroup create mode 100644 Source/Modulos/Inventario/Inventario_Group.groupproj create mode 100644 Source/Modulos/Inventario/Model/Data/uIDataModuleInventario.pas create mode 100644 Source/Modulos/Inventario/Model/Inventario_model.bdsproj create mode 100644 Source/Modulos/Inventario/Model/Inventario_model.dpk create mode 100644 Source/Modulos/Inventario/Model/Inventario_model.dproj create mode 100644 Source/Modulos/Inventario/Model/Inventario_model.identcache create mode 100644 Source/Modulos/Inventario/Model/Inventario_model.rc create mode 100644 Source/Modulos/Inventario/Model/Inventario_model.res create mode 100644 Source/Modulos/Inventario/Model/schInventarioClient_Intf.pas create mode 100644 Source/Modulos/Inventario/Model/schInventarioServer_Intf.pas create mode 100644 Source/Modulos/Inventario/Model/uBizInventario.pas create mode 100644 Source/Modulos/Inventario/Plugin/Inventario_plugin.bdsproj create mode 100644 Source/Modulos/Inventario/Plugin/Inventario_plugin.dpk create mode 100644 Source/Modulos/Inventario/Plugin/Inventario_plugin.dproj create mode 100644 Source/Modulos/Inventario/Plugin/Inventario_plugin.identcache create mode 100644 Source/Modulos/Inventario/Plugin/Inventario_plugin.rc create mode 100644 Source/Modulos/Inventario/Plugin/Inventario_plugin.res create mode 100644 Source/Modulos/Inventario/Plugin/uPluginInventario.dfm create mode 100644 Source/Modulos/Inventario/Plugin/uPluginInventario.pas create mode 100644 Source/Modulos/Inventario/Servidor/srvInventario_Impl.dfm create mode 100644 Source/Modulos/Inventario/Servidor/srvInventario_Impl.pas create mode 100644 Source/Modulos/Inventario/Utiles/uInventarioUtils.dfm create mode 100644 Source/Modulos/Inventario/Utiles/uInventarioUtils.pas create mode 100644 Source/Modulos/Inventario/Views/Inventario_view.bdsproj create mode 100644 Source/Modulos/Inventario/Views/Inventario_view.dpk create mode 100644 Source/Modulos/Inventario/Views/Inventario_view.dproj create mode 100644 Source/Modulos/Inventario/Views/Inventario_view.identcache create mode 100644 Source/Modulos/Inventario/Views/Inventario_view.rc create mode 100644 Source/Modulos/Inventario/Views/Inventario_view.res create mode 100644 Source/Modulos/Inventario/Views/uEditorDetalleReservas.dfm create mode 100644 Source/Modulos/Inventario/Views/uEditorDetalleReservas.pas create mode 100644 Source/Modulos/Inventario/Views/uEditorElegirArticulosAlmacen.dfm create mode 100644 Source/Modulos/Inventario/Views/uEditorElegirArticulosAlmacen.pas create mode 100644 Source/Modulos/Inventario/Views/uEditorElegirArticulosCatalogo.dfm create mode 100644 Source/Modulos/Inventario/Views/uEditorElegirArticulosCatalogo.pas create mode 100644 Source/Modulos/Inventario/Views/uEditorEntradaSalidaArticulos.dfm create mode 100644 Source/Modulos/Inventario/Views/uEditorEntradaSalidaArticulos.pas create mode 100644 Source/Modulos/Inventario/Views/uEditorInventario.dfm create mode 100644 Source/Modulos/Inventario/Views/uEditorInventario.pas create mode 100644 Source/Modulos/Inventario/Views/uInventarioViewRegister.pas create mode 100644 Source/Modulos/Inventario/Views/uViewDetalleReservas.dfm create mode 100644 Source/Modulos/Inventario/Views/uViewDetalleReservas.pas create mode 100644 Source/Modulos/Inventario/Views/uViewElegirArticulosCatalogo.dfm create mode 100644 Source/Modulos/Inventario/Views/uViewElegirArticulosCatalogo.pas create mode 100644 Source/Modulos/Inventario/Views/uViewEntradaSalidaArticulos.dfm create mode 100644 Source/Modulos/Inventario/Views/uViewEntradaSalidaArticulos.pas create mode 100644 Source/Modulos/Inventario/Views/uViewInventario.dfm create mode 100644 Source/Modulos/Inventario/Views/uViewInventario.pas create mode 100644 Source/Modulos/Pedidos a proveedor/Controller/PedidosProveedor_controller.bdsproj create mode 100644 Source/Modulos/Pedidos a proveedor/Controller/PedidosProveedor_controller.dpk create mode 100644 Source/Modulos/Pedidos a proveedor/Controller/PedidosProveedor_controller.dproj create mode 100644 Source/Modulos/Pedidos a proveedor/Controller/PedidosProveedor_controller.identcache create mode 100644 Source/Modulos/Pedidos a proveedor/Controller/PedidosProveedor_controller.rc create mode 100644 Source/Modulos/Pedidos a proveedor/Controller/PedidosProveedor_controller.res create mode 100644 Source/Modulos/Pedidos a proveedor/Controller/View/uIEditorDireccionEntregaPedidoProveedor.pas create mode 100644 Source/Modulos/Pedidos a proveedor/Controller/View/uIEditorElegirArticulosPedidosProveedor.pas create mode 100644 Source/Modulos/Pedidos a proveedor/Controller/View/uIEditorElegirPedidosProveedor.pas create mode 100644 Source/Modulos/Pedidos a proveedor/Controller/View/uIEditorPedidoProveedor.pas create mode 100644 Source/Modulos/Pedidos a proveedor/Controller/View/uIEditorPedidosProveedor.pas create mode 100644 Source/Modulos/Pedidos a proveedor/Controller/View/uIEditorPedidosProveedorPreview.pas create mode 100644 Source/Modulos/Pedidos a proveedor/Controller/View/uIEditorSituacionPedidoProveedor.pas create mode 100644 Source/Modulos/Pedidos a proveedor/Controller/uArticulosPedidoProveedorController.pas create mode 100644 Source/Modulos/Pedidos a proveedor/Controller/uDetallesPedidoProveedorController.pas create mode 100644 Source/Modulos/Pedidos a proveedor/Controller/uPedidosProveedorController.pas create mode 100644 Source/Modulos/Pedidos a proveedor/Controller/uPedidosProveedorReportController.pas create mode 100644 Source/Modulos/Pedidos a proveedor/Data/PedidosProveedor_data.bdsproj create mode 100644 Source/Modulos/Pedidos a proveedor/Data/PedidosProveedor_data.dpk create mode 100644 Source/Modulos/Pedidos a proveedor/Data/PedidosProveedor_data.dproj create mode 100644 Source/Modulos/Pedidos a proveedor/Data/PedidosProveedor_data.identcache create mode 100644 Source/Modulos/Pedidos a proveedor/Data/PedidosProveedor_data.rc create mode 100644 Source/Modulos/Pedidos a proveedor/Data/PedidosProveedor_data.res create mode 100644 Source/Modulos/Pedidos a proveedor/Data/uDataModulePedidosProveedor.dfm create mode 100644 Source/Modulos/Pedidos a proveedor/Data/uDataModulePedidosProveedor.pas create mode 100644 Source/Modulos/Pedidos a proveedor/Model/Data/uIDataModulePedidosProveedor.pas create mode 100644 Source/Modulos/Pedidos a proveedor/Model/Data/uIDataModulePedidosProveedorReport.pas create mode 100644 Source/Modulos/Pedidos a proveedor/Model/ModelSupport_PedidosProveedor_model/PedidosProveedor_model.prjconfig create mode 100644 Source/Modulos/Pedidos a proveedor/Model/ModelSupport_PedidosProveedor_model/default.txaPackage create mode 100644 Source/Modulos/Pedidos a proveedor/Model/PedidosProveedor_model.bdsproj create mode 100644 Source/Modulos/Pedidos a proveedor/Model/PedidosProveedor_model.dpk create mode 100644 Source/Modulos/Pedidos a proveedor/Model/PedidosProveedor_model.dproj create mode 100644 Source/Modulos/Pedidos a proveedor/Model/PedidosProveedor_model.identcache create mode 100644 Source/Modulos/Pedidos a proveedor/Model/PedidosProveedor_model.rc create mode 100644 Source/Modulos/Pedidos a proveedor/Model/PedidosProveedor_model.res create mode 100644 Source/Modulos/Pedidos a proveedor/Model/schPedidosProveedorClient_Intf.pas create mode 100644 Source/Modulos/Pedidos a proveedor/Model/schPedidosProveedorServer_Intf.pas create mode 100644 Source/Modulos/Pedidos a proveedor/Model/uBizDetallesPedidoProveedor.pas create mode 100644 Source/Modulos/Pedidos a proveedor/Model/uBizPedidosProveedor.pas create mode 100644 Source/Modulos/Pedidos a proveedor/Model/uBizPedidosProveedorServer.pas create mode 100644 Source/Modulos/Pedidos a proveedor/PedidosProveedor_Group.bdsgroup create mode 100644 Source/Modulos/Pedidos a proveedor/PedidosProveedor_Group.config create mode 100644 Source/Modulos/Pedidos a proveedor/PedidosProveedor_Group.groupproj create mode 100644 Source/Modulos/Pedidos a proveedor/Plugin/PedidosProveedor_plugin.bdsproj create mode 100644 Source/Modulos/Pedidos a proveedor/Plugin/PedidosProveedor_plugin.dpk create mode 100644 Source/Modulos/Pedidos a proveedor/Plugin/PedidosProveedor_plugin.dproj create mode 100644 Source/Modulos/Pedidos a proveedor/Plugin/PedidosProveedor_plugin.identcache create mode 100644 Source/Modulos/Pedidos a proveedor/Plugin/PedidosProveedor_plugin.rc create mode 100644 Source/Modulos/Pedidos a proveedor/Plugin/PedidosProveedor_plugin.res create mode 100644 Source/Modulos/Pedidos a proveedor/Plugin/uPluginPedidosProveedor.dfm create mode 100644 Source/Modulos/Pedidos a proveedor/Plugin/uPluginPedidosProveedor.pas create mode 100644 Source/Modulos/Pedidos a proveedor/Reports/uRptPedidosProveedor_Server.dfm create mode 100644 Source/Modulos/Pedidos a proveedor/Reports/uRptPedidosProveedor_Server.pas create mode 100644 Source/Modulos/Pedidos a proveedor/Servidor/srvPedidosProveedor_Impl.dfm create mode 100644 Source/Modulos/Pedidos a proveedor/Servidor/srvPedidosProveedor_Impl.pas create mode 100644 Source/Modulos/Pedidos a proveedor/Views/PedidosProveedor_view.bdsproj create mode 100644 Source/Modulos/Pedidos a proveedor/Views/PedidosProveedor_view.dpk create mode 100644 Source/Modulos/Pedidos a proveedor/Views/PedidosProveedor_view.dproj create mode 100644 Source/Modulos/Pedidos a proveedor/Views/PedidosProveedor_view.identcache create mode 100644 Source/Modulos/Pedidos a proveedor/Views/PedidosProveedor_view.rc create mode 100644 Source/Modulos/Pedidos a proveedor/Views/PedidosProveedor_view.res create mode 100644 Source/Modulos/Pedidos a proveedor/Views/uEditorDireccionEntregaPedidoProveedor.dfm create mode 100644 Source/Modulos/Pedidos a proveedor/Views/uEditorDireccionEntregaPedidoProveedor.pas create mode 100644 Source/Modulos/Pedidos a proveedor/Views/uEditorElegirArticulosPedidoProveedor.dfm create mode 100644 Source/Modulos/Pedidos a proveedor/Views/uEditorElegirArticulosPedidoProveedor.pas create mode 100644 Source/Modulos/Pedidos a proveedor/Views/uEditorElegirPedidosProveedor.dfm create mode 100644 Source/Modulos/Pedidos a proveedor/Views/uEditorElegirPedidosProveedor.pas create mode 100644 Source/Modulos/Pedidos a proveedor/Views/uEditorPedidoProveedor.dfm create mode 100644 Source/Modulos/Pedidos a proveedor/Views/uEditorPedidoProveedor.pas create mode 100644 Source/Modulos/Pedidos a proveedor/Views/uEditorPedidosProveedor.dfm create mode 100644 Source/Modulos/Pedidos a proveedor/Views/uEditorPedidosProveedor.pas create mode 100644 Source/Modulos/Pedidos a proveedor/Views/uEditorPedidosProveedorReport.dfm create mode 100644 Source/Modulos/Pedidos a proveedor/Views/uEditorPedidosProveedorReport.pas create mode 100644 Source/Modulos/Pedidos a proveedor/Views/uEditorSituacionPedidoProveedor.dfm create mode 100644 Source/Modulos/Pedidos a proveedor/Views/uEditorSituacionPedidoProveedor.pas create mode 100644 Source/Modulos/Pedidos a proveedor/Views/uPedidosProveedorViewRegister.pas create mode 100644 Source/Modulos/Pedidos a proveedor/Views/uViewDetallesPedidoProveedor.dfm create mode 100644 Source/Modulos/Pedidos a proveedor/Views/uViewDetallesPedidoProveedor.pas create mode 100644 Source/Modulos/Pedidos a proveedor/Views/uViewDireccionEntregaPedidoProv.dfm create mode 100644 Source/Modulos/Pedidos a proveedor/Views/uViewDireccionEntregaPedidoProv.pas create mode 100644 Source/Modulos/Pedidos a proveedor/Views/uViewElegirArticulosPedidosProveedor.dfm create mode 100644 Source/Modulos/Pedidos a proveedor/Views/uViewElegirArticulosPedidosProveedor.pas create mode 100644 Source/Modulos/Pedidos a proveedor/Views/uViewPedidoProveedor.dfm create mode 100644 Source/Modulos/Pedidos a proveedor/Views/uViewPedidoProveedor.pas create mode 100644 Source/Modulos/Pedidos a proveedor/Views/uViewPedidosProveedor.dfm create mode 100644 Source/Modulos/Pedidos a proveedor/Views/uViewPedidosProveedor.pas create mode 100644 Source/Modulos/Presupuestos de cliente/Controller/PresupuestosCliente_controller.dpk create mode 100644 Source/Modulos/Presupuestos de cliente/Controller/PresupuestosCliente_controller.dproj create mode 100644 Source/Modulos/Presupuestos de cliente/Controller/PresupuestosCliente_controller.identcache create mode 100644 Source/Modulos/Presupuestos de cliente/Controller/PresupuestosCliente_controller.rc create mode 100644 Source/Modulos/Presupuestos de cliente/Controller/PresupuestosCliente_controller.res create mode 100644 Source/Modulos/Presupuestos de cliente/Controller/View/uIEditorDireccionEntregaPresupuestoCliente.pas create mode 100644 Source/Modulos/Presupuestos de cliente/Controller/View/uIEditorElegirArticulosPresupuestosCliente.pas create mode 100644 Source/Modulos/Presupuestos de cliente/Controller/View/uIEditorElegirPresupuestosCliente.pas create mode 100644 Source/Modulos/Presupuestos de cliente/Controller/View/uIEditorPresupuestoCliente.pas create mode 100644 Source/Modulos/Presupuestos de cliente/Controller/View/uIEditorPresupuestosCliente.pas create mode 100644 Source/Modulos/Presupuestos de cliente/Controller/View/uIEditorPresupuestosClientePreview.pas create mode 100644 Source/Modulos/Presupuestos de cliente/Controller/uArticulosPresupuestoClienteController.pas create mode 100644 Source/Modulos/Presupuestos de cliente/Controller/uDetallesPresupuestoClienteController.pas create mode 100644 Source/Modulos/Presupuestos de cliente/Controller/uPresupuestosClienteController.pas create mode 100644 Source/Modulos/Presupuestos de cliente/Controller/uPresupuestosClienteReportController.pas create mode 100644 Source/Modulos/Presupuestos de cliente/Data/PresupuestosCliente_data.dpk create mode 100644 Source/Modulos/Presupuestos de cliente/Data/PresupuestosCliente_data.dproj create mode 100644 Source/Modulos/Presupuestos de cliente/Data/PresupuestosCliente_data.identcache create mode 100644 Source/Modulos/Presupuestos de cliente/Data/PresupuestosCliente_data.rc create mode 100644 Source/Modulos/Presupuestos de cliente/Data/PresupuestosCliente_data.res create mode 100644 Source/Modulos/Presupuestos de cliente/Data/uDataModulePresupuestosCliente.dfm create mode 100644 Source/Modulos/Presupuestos de cliente/Data/uDataModulePresupuestosCliente.pas create mode 100644 Source/Modulos/Presupuestos de cliente/Model/Data/uIDataModulePresupuestosCliente.pas create mode 100644 Source/Modulos/Presupuestos de cliente/Model/Data/uIDataModulePresupuestosClienteReport.pas create mode 100644 Source/Modulos/Presupuestos de cliente/Model/ModelSupport_PresupuestosCliente_model/default.txaPackage create mode 100644 Source/Modulos/Presupuestos de cliente/Model/ModelSupport_PresupuestosCliente_model/default.txvpck create mode 100644 Source/Modulos/Presupuestos de cliente/Model/ModelSupport_PresupuestosCliente_model/default_diagram.tvsconfig create mode 100644 Source/Modulos/Presupuestos de cliente/Model/PresupuestosCliente_model.dpk create mode 100644 Source/Modulos/Presupuestos de cliente/Model/PresupuestosCliente_model.dproj create mode 100644 Source/Modulos/Presupuestos de cliente/Model/PresupuestosCliente_model.identcache create mode 100644 Source/Modulos/Presupuestos de cliente/Model/PresupuestosCliente_model.rc create mode 100644 Source/Modulos/Presupuestos de cliente/Model/PresupuestosCliente_model.res create mode 100644 Source/Modulos/Presupuestos de cliente/Model/PresupuestosCliente_model_project.tvsconfig create mode 100644 Source/Modulos/Presupuestos de cliente/Model/schPresupuestosClienteClient_Intf.pas create mode 100644 Source/Modulos/Presupuestos de cliente/Model/schPresupuestosClienteServer_Intf.pas create mode 100644 Source/Modulos/Presupuestos de cliente/Model/uBizDetallesPresupuestoCliente.pas create mode 100644 Source/Modulos/Presupuestos de cliente/Model/uBizPresupuestosCliente.pas create mode 100644 Source/Modulos/Presupuestos de cliente/Model/uBizPresupuestosClienteServer.pas create mode 100644 Source/Modulos/Presupuestos de cliente/Plugin/PresupuestosCliente_plugin.dpk create mode 100644 Source/Modulos/Presupuestos de cliente/Plugin/PresupuestosCliente_plugin.dproj create mode 100644 Source/Modulos/Presupuestos de cliente/Plugin/PresupuestosCliente_plugin.rc create mode 100644 Source/Modulos/Presupuestos de cliente/Plugin/PresupuestosCliente_plugin.res create mode 100644 Source/Modulos/Presupuestos de cliente/Plugin/uPluginPresupuestosCliente.dfm create mode 100644 Source/Modulos/Presupuestos de cliente/Plugin/uPluginPresupuestosCliente.pas create mode 100644 Source/Modulos/Presupuestos de cliente/PresupuestosCliente_Group.groupproj create mode 100644 Source/Modulos/Presupuestos de cliente/Reports/uRptPedidosCliente_Server.dfm create mode 100644 Source/Modulos/Presupuestos de cliente/Reports/uRptPedidosCliente_Server.pas create mode 100644 Source/Modulos/Presupuestos de cliente/Reports/uRptPresupuestosCliente_Server.dfm create mode 100644 Source/Modulos/Presupuestos de cliente/Reports/uRptPresupuestosCliente_Server.pas create mode 100644 Source/Modulos/Presupuestos de cliente/Servidor/srvPresupuestosCliente_Impl.dfm create mode 100644 Source/Modulos/Presupuestos de cliente/Servidor/srvPresupuestosCliente_Impl.pas create mode 100644 Source/Modulos/Presupuestos de cliente/Test/Presupuestos_Test.bdsproj create mode 100644 Source/Modulos/Presupuestos de cliente/Test/Presupuestos_Test.dpr create mode 100644 Source/Modulos/Presupuestos de cliente/Test/Presupuestos_Test.res create mode 100644 Source/Modulos/Presupuestos de cliente/Test/uDataModulePresupuestos_Test.pas create mode 100644 Source/Modulos/Presupuestos de cliente/Test/uHostMainForm.dfm create mode 100644 Source/Modulos/Presupuestos de cliente/Test/uHostMainForm.pas create mode 100644 Source/Modulos/Presupuestos de cliente/Test/uPluginPresupuestos_Test.pas create mode 100644 Source/Modulos/Presupuestos de cliente/Test/uPresupuestosController_Test.pas create mode 100644 Source/Modulos/Presupuestos de cliente/Views/PresupuestosCliente_view.dpk create mode 100644 Source/Modulos/Presupuestos de cliente/Views/PresupuestosCliente_view.dproj create mode 100644 Source/Modulos/Presupuestos de cliente/Views/PresupuestosCliente_view.identcache create mode 100644 Source/Modulos/Presupuestos de cliente/Views/PresupuestosCliente_view.rc create mode 100644 Source/Modulos/Presupuestos de cliente/Views/PresupuestosCliente_view.res create mode 100644 Source/Modulos/Presupuestos de cliente/Views/uEditorElegirArticulosPresupuestoCliente.dfm create mode 100644 Source/Modulos/Presupuestos de cliente/Views/uEditorElegirArticulosPresupuestoCliente.pas create mode 100644 Source/Modulos/Presupuestos de cliente/Views/uEditorElegirPresupuestosCliente.dfm create mode 100644 Source/Modulos/Presupuestos de cliente/Views/uEditorElegirPresupuestosCliente.pas create mode 100644 Source/Modulos/Presupuestos de cliente/Views/uEditorPresupuestoCliente.dfm create mode 100644 Source/Modulos/Presupuestos de cliente/Views/uEditorPresupuestoCliente.pas create mode 100644 Source/Modulos/Presupuestos de cliente/Views/uEditorPresupuestosCliente.dfm create mode 100644 Source/Modulos/Presupuestos de cliente/Views/uEditorPresupuestosCliente.pas create mode 100644 Source/Modulos/Presupuestos de cliente/Views/uEditorPresupuestosClienteReport.dfm create mode 100644 Source/Modulos/Presupuestos de cliente/Views/uEditorPresupuestosClienteReport.pas create mode 100644 Source/Modulos/Presupuestos de cliente/Views/uPresupuestosClienteViewRegister.pas create mode 100644 Source/Modulos/Presupuestos de cliente/Views/uViewDetallesPresupuestoCliente.dfm create mode 100644 Source/Modulos/Presupuestos de cliente/Views/uViewDetallesPresupuestoCliente.pas create mode 100644 Source/Modulos/Presupuestos de cliente/Views/uViewDireccionEntregaPresupuestoCliente.dfm create mode 100644 Source/Modulos/Presupuestos de cliente/Views/uViewDireccionEntregaPresupuestoCliente.pas create mode 100644 Source/Modulos/Presupuestos de cliente/Views/uViewElegirArticulosPresupuestosCliente.dfm create mode 100644 Source/Modulos/Presupuestos de cliente/Views/uViewElegirArticulosPresupuestosCliente.pas create mode 100644 Source/Modulos/Presupuestos de cliente/Views/uViewPresupuestoCliente.dfm create mode 100644 Source/Modulos/Presupuestos de cliente/Views/uViewPresupuestoCliente.pas create mode 100644 Source/Modulos/Presupuestos de cliente/Views/uViewPresupuestosCliente.dfm create mode 100644 Source/Modulos/Presupuestos de cliente/Views/uViewPresupuestosCliente.pas create mode 100644 Source/Modulos/Recibos de cliente/Controller/RecibosCliente_controller.bdsproj create mode 100644 Source/Modulos/Recibos de cliente/Controller/RecibosCliente_controller.dpk create mode 100644 Source/Modulos/Recibos de cliente/Controller/RecibosCliente_controller.dproj create mode 100644 Source/Modulos/Recibos de cliente/Controller/RecibosCliente_controller.identcache create mode 100644 Source/Modulos/Recibos de cliente/Controller/RecibosCliente_controller.rc create mode 100644 Source/Modulos/Recibos de cliente/Controller/RecibosCliente_controller.res create mode 100644 Source/Modulos/Recibos de cliente/Controller/View/uIEditorElegirRecibosCliente.pas create mode 100644 Source/Modulos/Recibos de cliente/Controller/View/uIEditorFechaPago.pas create mode 100644 Source/Modulos/Recibos de cliente/Controller/View/uIEditorReciboCliente.pas create mode 100644 Source/Modulos/Recibos de cliente/Controller/View/uIEditorRecibosCliente.pas create mode 100644 Source/Modulos/Recibos de cliente/Controller/View/uIEditorRecibosClientePreview.pas create mode 100644 Source/Modulos/Recibos de cliente/Controller/uPagosClienteController.pas create mode 100644 Source/Modulos/Recibos de cliente/Controller/uRecibosClienteController.pas create mode 100644 Source/Modulos/Recibos de cliente/Controller/uRecibosClienteReportController.pas create mode 100644 Source/Modulos/Recibos de cliente/Data/RecibosCliente_data.bdsproj create mode 100644 Source/Modulos/Recibos de cliente/Data/RecibosCliente_data.dpk create mode 100644 Source/Modulos/Recibos de cliente/Data/RecibosCliente_data.dproj create mode 100644 Source/Modulos/Recibos de cliente/Data/RecibosCliente_data.identcache create mode 100644 Source/Modulos/Recibos de cliente/Data/RecibosCliente_data.rc create mode 100644 Source/Modulos/Recibos de cliente/Data/RecibosCliente_data.res create mode 100644 Source/Modulos/Recibos de cliente/Data/uDataModuleRecibosCliente.dfm create mode 100644 Source/Modulos/Recibos de cliente/Data/uDataModuleRecibosCliente.pas create mode 100644 Source/Modulos/Recibos de cliente/Model/Copia de uBizPagosCliente.pas create mode 100644 Source/Modulos/Recibos de cliente/Model/Data/uIDataModuleRecibosCliente.pas create mode 100644 Source/Modulos/Recibos de cliente/Model/Data/uIDataModuleRecibosClienteReport.pas create mode 100644 Source/Modulos/Recibos de cliente/Model/RecibosCliente_model.bdsproj create mode 100644 Source/Modulos/Recibos de cliente/Model/RecibosCliente_model.dpk create mode 100644 Source/Modulos/Recibos de cliente/Model/RecibosCliente_model.dproj create mode 100644 Source/Modulos/Recibos de cliente/Model/RecibosCliente_model.identcache create mode 100644 Source/Modulos/Recibos de cliente/Model/RecibosCliente_model.rc create mode 100644 Source/Modulos/Recibos de cliente/Model/RecibosCliente_model.res create mode 100644 Source/Modulos/Recibos de cliente/Model/schRecibosClienteClient_Intf.pas create mode 100644 Source/Modulos/Recibos de cliente/Model/schRecibosClienteServer_Intf.pas create mode 100644 Source/Modulos/Recibos de cliente/Model/uBizPagosCliente.pas create mode 100644 Source/Modulos/Recibos de cliente/Model/uBizRecibosCliCompensados.pas create mode 100644 Source/Modulos/Recibos de cliente/Model/uBizRecibosCliente.pas create mode 100644 Source/Modulos/Recibos de cliente/Plugin/RecibosCliente_plugin.bdsproj create mode 100644 Source/Modulos/Recibos de cliente/Plugin/RecibosCliente_plugin.dpk create mode 100644 Source/Modulos/Recibos de cliente/Plugin/RecibosCliente_plugin.dproj create mode 100644 Source/Modulos/Recibos de cliente/Plugin/RecibosCliente_plugin.identcache create mode 100644 Source/Modulos/Recibos de cliente/Plugin/RecibosCliente_plugin.rc create mode 100644 Source/Modulos/Recibos de cliente/Plugin/RecibosCliente_plugin.res create mode 100644 Source/Modulos/Recibos de cliente/Plugin/uPluginRecibosCliente.dfm create mode 100644 Source/Modulos/Recibos de cliente/Plugin/uPluginRecibosCliente.pas create mode 100644 Source/Modulos/Recibos de cliente/RecibosCliente_Group.groupproj create mode 100644 Source/Modulos/Recibos de cliente/Reports/uRptRecibosCliente_Server.dfm create mode 100644 Source/Modulos/Recibos de cliente/Reports/uRptRecibosCliente_Server.pas create mode 100644 Source/Modulos/Recibos de cliente/Servidor/srvRecibosCliente_Impl.dfm create mode 100644 Source/Modulos/Recibos de cliente/Servidor/srvRecibosCliente_Impl.pas create mode 100644 Source/Modulos/Recibos de cliente/Views/RecibosCliente_view.bdsproj create mode 100644 Source/Modulos/Recibos de cliente/Views/RecibosCliente_view.dpk create mode 100644 Source/Modulos/Recibos de cliente/Views/RecibosCliente_view.dproj create mode 100644 Source/Modulos/Recibos de cliente/Views/RecibosCliente_view.identcache create mode 100644 Source/Modulos/Recibos de cliente/Views/RecibosCliente_view.rc create mode 100644 Source/Modulos/Recibos de cliente/Views/RecibosCliente_view.res create mode 100644 Source/Modulos/Recibos de cliente/Views/uEditorElegirRecibosCliente.dfm create mode 100644 Source/Modulos/Recibos de cliente/Views/uEditorElegirRecibosCliente.pas create mode 100644 Source/Modulos/Recibos de cliente/Views/uEditorFechaPago.dfm create mode 100644 Source/Modulos/Recibos de cliente/Views/uEditorFechaPago.pas create mode 100644 Source/Modulos/Recibos de cliente/Views/uEditorReciboCliente.dfm create mode 100644 Source/Modulos/Recibos de cliente/Views/uEditorReciboCliente.pas create mode 100644 Source/Modulos/Recibos de cliente/Views/uEditorReciboClienteReport.dfm create mode 100644 Source/Modulos/Recibos de cliente/Views/uEditorReciboClienteReport.pas create mode 100644 Source/Modulos/Recibos de cliente/Views/uEditorRecibosCliente.dfm create mode 100644 Source/Modulos/Recibos de cliente/Views/uEditorRecibosCliente.pas create mode 100644 Source/Modulos/Recibos de cliente/Views/uRecibosClienteViewRegister.pas create mode 100644 Source/Modulos/Recibos de cliente/Views/uViewPagosCliente.dfm create mode 100644 Source/Modulos/Recibos de cliente/Views/uViewPagosCliente.pas create mode 100644 Source/Modulos/Recibos de cliente/Views/uViewReciboCliImportes.dfm create mode 100644 Source/Modulos/Recibos de cliente/Views/uViewReciboCliImportes.pas create mode 100644 Source/Modulos/Recibos de cliente/Views/uViewReciboCliente.dfm create mode 100644 Source/Modulos/Recibos de cliente/Views/uViewReciboCliente.pas create mode 100644 Source/Modulos/Recibos de cliente/Views/uViewRecibosCliCompensados.dfm create mode 100644 Source/Modulos/Recibos de cliente/Views/uViewRecibosCliCompensados.pas create mode 100644 Source/Modulos/Recibos de cliente/Views/uViewRecibosCliente.dfm create mode 100644 Source/Modulos/Recibos de cliente/Views/uViewRecibosCliente.pas create mode 100644 Source/Modulos/Recibos de proveedor/Controller/RecibosProveedor_controller.bdsproj create mode 100644 Source/Modulos/Recibos de proveedor/Controller/RecibosProveedor_controller.dpk create mode 100644 Source/Modulos/Recibos de proveedor/Controller/RecibosProveedor_controller.dproj create mode 100644 Source/Modulos/Recibos de proveedor/Controller/RecibosProveedor_controller.identcache create mode 100644 Source/Modulos/Recibos de proveedor/Controller/RecibosProveedor_controller.rc create mode 100644 Source/Modulos/Recibos de proveedor/Controller/RecibosProveedor_controller.res create mode 100644 Source/Modulos/Recibos de proveedor/Controller/View/uIEditorElegirRecibosProveedor.pas create mode 100644 Source/Modulos/Recibos de proveedor/Controller/View/uIEditorFechaPagoProveedor.pas create mode 100644 Source/Modulos/Recibos de proveedor/Controller/View/uIEditorReciboProveedor.pas create mode 100644 Source/Modulos/Recibos de proveedor/Controller/View/uIEditorRecibosProveedor.pas create mode 100644 Source/Modulos/Recibos de proveedor/Controller/View/uIEditorRecibosProveedorPreview.pas create mode 100644 Source/Modulos/Recibos de proveedor/Controller/uPagosProveedorController.pas create mode 100644 Source/Modulos/Recibos de proveedor/Controller/uRecibosProveedorController.pas create mode 100644 Source/Modulos/Recibos de proveedor/Controller/uRecibosProveedorReportController.pas create mode 100644 Source/Modulos/Recibos de proveedor/Data/RecibosProveedor_data.bdsproj create mode 100644 Source/Modulos/Recibos de proveedor/Data/RecibosProveedor_data.dpk create mode 100644 Source/Modulos/Recibos de proveedor/Data/RecibosProveedor_data.dproj create mode 100644 Source/Modulos/Recibos de proveedor/Data/RecibosProveedor_data.identcache create mode 100644 Source/Modulos/Recibos de proveedor/Data/RecibosProveedor_data.rc create mode 100644 Source/Modulos/Recibos de proveedor/Data/RecibosProveedor_data.res create mode 100644 Source/Modulos/Recibos de proveedor/Data/uDataModuleRecibosProveedor.dfm create mode 100644 Source/Modulos/Recibos de proveedor/Data/uDataModuleRecibosProveedor.pas create mode 100644 Source/Modulos/Recibos de proveedor/Model/Data/uIDataModuleRecibosProveedor.pas create mode 100644 Source/Modulos/Recibos de proveedor/Model/Data/uIDataModuleRecibosProveedorReport.pas create mode 100644 Source/Modulos/Recibos de proveedor/Model/RecibosProveedor_model.bdsproj create mode 100644 Source/Modulos/Recibos de proveedor/Model/RecibosProveedor_model.dpk create mode 100644 Source/Modulos/Recibos de proveedor/Model/RecibosProveedor_model.dproj create mode 100644 Source/Modulos/Recibos de proveedor/Model/RecibosProveedor_model.drc_ create mode 100644 Source/Modulos/Recibos de proveedor/Model/RecibosProveedor_model.identcache create mode 100644 Source/Modulos/Recibos de proveedor/Model/RecibosProveedor_model.rc create mode 100644 Source/Modulos/Recibos de proveedor/Model/RecibosProveedor_model.res create mode 100644 Source/Modulos/Recibos de proveedor/Model/schRecibosProveedorClient_Intf.pas create mode 100644 Source/Modulos/Recibos de proveedor/Model/schRecibosProveedorServer_Intf.pas create mode 100644 Source/Modulos/Recibos de proveedor/Model/uBizPagosProveedor.pas create mode 100644 Source/Modulos/Recibos de proveedor/Model/uBizRecibosCliCompensados.pas create mode 100644 Source/Modulos/Recibos de proveedor/Model/uBizRecibosProvCompensados.pas create mode 100644 Source/Modulos/Recibos de proveedor/Model/uBizRecibosProveedor.pas create mode 100644 Source/Modulos/Recibos de proveedor/Plugin/RecibosProveedor_plugin.bdsproj create mode 100644 Source/Modulos/Recibos de proveedor/Plugin/RecibosProveedor_plugin.dpk create mode 100644 Source/Modulos/Recibos de proveedor/Plugin/RecibosProveedor_plugin.dproj create mode 100644 Source/Modulos/Recibos de proveedor/Plugin/RecibosProveedor_plugin.rc create mode 100644 Source/Modulos/Recibos de proveedor/Plugin/RecibosProveedor_plugin.res create mode 100644 Source/Modulos/Recibos de proveedor/Plugin/uPluginRecibosProveedor.dfm create mode 100644 Source/Modulos/Recibos de proveedor/Plugin/uPluginRecibosProveedor.pas create mode 100644 Source/Modulos/Recibos de proveedor/RecibosProveedor_Group.groupproj create mode 100644 Source/Modulos/Recibos de proveedor/Reports/uRptRecibosCliente_Server.dfm create mode 100644 Source/Modulos/Recibos de proveedor/Reports/uRptRecibosCliente_Server.pas create mode 100644 Source/Modulos/Recibos de proveedor/Reports/uRptRecibosProveedor_Server.dfm create mode 100644 Source/Modulos/Recibos de proveedor/Reports/uRptRecibosProveedor_Server.pas create mode 100644 Source/Modulos/Recibos de proveedor/Servidor/srvRecibosProveedor_Impl.dfm create mode 100644 Source/Modulos/Recibos de proveedor/Servidor/srvRecibosProveedor_Impl.pas create mode 100644 Source/Modulos/Recibos de proveedor/Views/RecibosProveedor_view.bdsproj create mode 100644 Source/Modulos/Recibos de proveedor/Views/RecibosProveedor_view.dpk create mode 100644 Source/Modulos/Recibos de proveedor/Views/RecibosProveedor_view.dproj create mode 100644 Source/Modulos/Recibos de proveedor/Views/RecibosProveedor_view.identcache create mode 100644 Source/Modulos/Recibos de proveedor/Views/RecibosProveedor_view.rc create mode 100644 Source/Modulos/Recibos de proveedor/Views/RecibosProveedor_view.res create mode 100644 Source/Modulos/Recibos de proveedor/Views/uEditorElegirRecibosProveedor.dfm create mode 100644 Source/Modulos/Recibos de proveedor/Views/uEditorElegirRecibosProveedor.pas create mode 100644 Source/Modulos/Recibos de proveedor/Views/uEditorFechaPagoProveedor.dfm create mode 100644 Source/Modulos/Recibos de proveedor/Views/uEditorFechaPagoProveedor.pas create mode 100644 Source/Modulos/Recibos de proveedor/Views/uEditorReciboProveedor.dfm create mode 100644 Source/Modulos/Recibos de proveedor/Views/uEditorReciboProveedor.pas create mode 100644 Source/Modulos/Recibos de proveedor/Views/uEditorReciboProveedorReport.dfm create mode 100644 Source/Modulos/Recibos de proveedor/Views/uEditorReciboProveedorReport.pas create mode 100644 Source/Modulos/Recibos de proveedor/Views/uEditorRecibosProveedor.dfm create mode 100644 Source/Modulos/Recibos de proveedor/Views/uEditorRecibosProveedor.pas create mode 100644 Source/Modulos/Recibos de proveedor/Views/uRecibosProveedorViewRegister.pas create mode 100644 Source/Modulos/Recibos de proveedor/Views/uViewPagosProveedor.dfm create mode 100644 Source/Modulos/Recibos de proveedor/Views/uViewPagosProveedor.pas create mode 100644 Source/Modulos/Recibos de proveedor/Views/uViewReciboProvImportes.dfm create mode 100644 Source/Modulos/Recibos de proveedor/Views/uViewReciboProvImportes.pas create mode 100644 Source/Modulos/Recibos de proveedor/Views/uViewReciboProveedor.dfm create mode 100644 Source/Modulos/Recibos de proveedor/Views/uViewReciboProveedor.pas create mode 100644 Source/Modulos/Recibos de proveedor/Views/uViewRecibosProvCompensados.dfm create mode 100644 Source/Modulos/Recibos de proveedor/Views/uViewRecibosProvCompensados.pas create mode 100644 Source/Modulos/Recibos de proveedor/Views/uViewRecibosProveedor.dfm create mode 100644 Source/Modulos/Recibos de proveedor/Views/uViewRecibosProveedor.pas create mode 100644 Source/Modulos/Referencias/Controller/Referencias_controller.bdsproj create mode 100644 Source/Modulos/Referencias/Controller/Referencias_controller.dpk create mode 100644 Source/Modulos/Referencias/Controller/Referencias_controller.rc create mode 100644 Source/Modulos/Referencias/Controller/Referencias_controller.res create mode 100644 Source/Modulos/Referencias/Controller/View/uIEditorReferencias.pas create mode 100644 Source/Modulos/Referencias/Controller/uReferenciasController.pas create mode 100644 Source/Modulos/Referencias/Data/Referencias_data.bdsproj create mode 100644 Source/Modulos/Referencias/Data/Referencias_data.dpk create mode 100644 Source/Modulos/Referencias/Data/Referencias_data.rc create mode 100644 Source/Modulos/Referencias/Data/Referencias_data.res create mode 100644 Source/Modulos/Referencias/Data/uDataModuleReferencias.dfm create mode 100644 Source/Modulos/Referencias/Data/uDataModuleReferencias.pas create mode 100644 Source/Modulos/Referencias/Model/Data/uIDataModuleReferencias.pas create mode 100644 Source/Modulos/Referencias/Model/Referencias_model.bdsproj create mode 100644 Source/Modulos/Referencias/Model/Referencias_model.dpk create mode 100644 Source/Modulos/Referencias/Model/Referencias_model.rc create mode 100644 Source/Modulos/Referencias/Model/Referencias_model.res create mode 100644 Source/Modulos/Referencias/Model/schReferenciasClient_Intf.pas create mode 100644 Source/Modulos/Referencias/Model/schReferenciasServer_Intf.pas create mode 100644 Source/Modulos/Referencias/Model/uBizReferencias.pas create mode 100644 Source/Modulos/Referencias/Plugin/Referencias_plugin.bdsproj create mode 100644 Source/Modulos/Referencias/Plugin/Referencias_plugin.dpk create mode 100644 Source/Modulos/Referencias/Plugin/Referencias_plugin.rc create mode 100644 Source/Modulos/Referencias/Plugin/Referencias_plugin.res create mode 100644 Source/Modulos/Referencias/Plugin/uPluginReferencias.dfm create mode 100644 Source/Modulos/Referencias/Plugin/uPluginReferencias.pas create mode 100644 Source/Modulos/Referencias/Servidor/srvReferencias_Impl.dfm create mode 100644 Source/Modulos/Referencias/Servidor/srvReferencias_Impl.pas create mode 100644 Source/Modulos/Referencias/Views/Referencias_view.bdsproj create mode 100644 Source/Modulos/Referencias/Views/Referencias_view.dpk create mode 100644 Source/Modulos/Referencias/Views/Referencias_view.rc create mode 100644 Source/Modulos/Referencias/Views/Referencias_view.res create mode 100644 Source/Modulos/Referencias/Views/uEditorReferencias.dfm create mode 100644 Source/Modulos/Referencias/Views/uEditorReferencias.pas create mode 100644 Source/Modulos/Referencias/Views/uReferenciasViewRegister.pas create mode 100644 Source/Modulos/Relaciones/Albaranes de cliente - Facturas de cliente/AlbCli_FacCli_relation.bdsproj create mode 100644 Source/Modulos/Relaciones/Albaranes de cliente - Facturas de cliente/AlbCli_FacCli_relation.dpk create mode 100644 Source/Modulos/Relaciones/Albaranes de cliente - Facturas de cliente/AlbCli_FacCli_relation.rc create mode 100644 Source/Modulos/Relaciones/Albaranes de cliente - Facturas de cliente/AlbCli_FacCli_relation.res create mode 100644 Source/Modulos/Relaciones/Albaranes de cliente - Facturas de cliente/uGenerarAlbaranesCliFacCliUtils.dfm create mode 100644 Source/Modulos/Relaciones/Albaranes de cliente - Facturas de cliente/uGenerarAlbaranesCliFacCliUtils.pas create mode 100644 Source/Modulos/Relaciones/Albaranes de cliente - Facturas de cliente/uGenerarFacturasCliAlbCliUtils.dfm create mode 100644 Source/Modulos/Relaciones/Albaranes de cliente - Facturas de cliente/uGenerarFacturasCliAlbCliUtils.pas create mode 100644 Source/Modulos/Relaciones/Albaranes de proveedor - Facturas de proveedor/AlbProv_FacProv_relation.bdsproj create mode 100644 Source/Modulos/Relaciones/Albaranes de proveedor - Facturas de proveedor/AlbProv_FacProv_relation.dpk create mode 100644 Source/Modulos/Relaciones/Albaranes de proveedor - Facturas de proveedor/AlbProv_FacProv_relation.dproj create mode 100644 Source/Modulos/Relaciones/Albaranes de proveedor - Facturas de proveedor/AlbProv_FacProv_relation.rc create mode 100644 Source/Modulos/Relaciones/Albaranes de proveedor - Facturas de proveedor/AlbProv_FacProv_relation.res create mode 100644 Source/Modulos/Relaciones/Albaranes de proveedor - Facturas de proveedor/uGenerarAlbaranesProvFacProvUtils.dfm create mode 100644 Source/Modulos/Relaciones/Albaranes de proveedor - Facturas de proveedor/uGenerarAlbaranesProvFacProvUtils.pas create mode 100644 Source/Modulos/Relaciones/Albaranes de proveedor - Facturas de proveedor/uGenerarFacturasProvAlbProvUtils.dfm create mode 100644 Source/Modulos/Relaciones/Albaranes de proveedor - Facturas de proveedor/uGenerarFacturasProvAlbProvUtils.pas create mode 100644 Source/Modulos/Relaciones/Pedidos de cliente - Albaranes de cliente/PedCli_AlbCli_relation.bdsproj create mode 100644 Source/Modulos/Relaciones/Pedidos de cliente - Albaranes de cliente/PedCli_AlbCli_relation.dpk create mode 100644 Source/Modulos/Relaciones/Pedidos de cliente - Albaranes de cliente/PedCli_AlbCli_relation.rc create mode 100644 Source/Modulos/Relaciones/Pedidos de cliente - Albaranes de cliente/PedCli_AlbCli_relation.res create mode 100644 Source/Modulos/Relaciones/Pedidos de cliente - Albaranes de cliente/uGenerarAlbaranesCliUtils.dfm create mode 100644 Source/Modulos/Relaciones/Pedidos de cliente - Albaranes de cliente/uGenerarAlbaranesCliUtils.pas create mode 100644 Source/Modulos/Relaciones/Pedidos de cliente - Pedidos a proveedor/PedCli_PedProv_relation.bdsproj create mode 100644 Source/Modulos/Relaciones/Pedidos de cliente - Pedidos a proveedor/PedCli_PedProv_relation.dpk create mode 100644 Source/Modulos/Relaciones/Pedidos de cliente - Pedidos a proveedor/PedCli_PedProv_relation.rc create mode 100644 Source/Modulos/Relaciones/Pedidos de cliente - Pedidos a proveedor/PedCli_PedProv_relation.res create mode 100644 Source/Modulos/Relaciones/Pedidos de cliente - Pedidos a proveedor/uGenerarPedidosProvUtils.dfm create mode 100644 Source/Modulos/Relaciones/Pedidos de cliente - Pedidos a proveedor/uGenerarPedidosProvUtils.pas create mode 100644 Source/Modulos/Relaciones/Pedidos de proveedor - Albaranes de proveedor/PedProv_AlbProv_relation.bdsproj create mode 100644 Source/Modulos/Relaciones/Pedidos de proveedor - Albaranes de proveedor/PedProv_AlbProv_relation.dpk create mode 100644 Source/Modulos/Relaciones/Pedidos de proveedor - Albaranes de proveedor/PedProv_AlbProv_relation.dproj create mode 100644 Source/Modulos/Relaciones/Pedidos de proveedor - Albaranes de proveedor/PedProv_AlbProv_relation.rc create mode 100644 Source/Modulos/Relaciones/Pedidos de proveedor - Albaranes de proveedor/PedProv_AlbProv_relation.res create mode 100644 Source/Modulos/Relaciones/Pedidos de proveedor - Albaranes de proveedor/uGenerarAlbaranesProvUtils.dfm create mode 100644 Source/Modulos/Relaciones/Pedidos de proveedor - Albaranes de proveedor/uGenerarAlbaranesProvUtils.pas create mode 100644 Source/Modulos/Relaciones/Pedidos de proveedor - Facturas de proveedor/PedProv_FacProv_relation.bdsproj create mode 100644 Source/Modulos/Relaciones/Pedidos de proveedor - Facturas de proveedor/PedProv_FacProv_relation.dpk create mode 100644 Source/Modulos/Relaciones/Pedidos de proveedor - Facturas de proveedor/PedProv_FacProv_relation.dproj create mode 100644 Source/Modulos/Relaciones/Pedidos de proveedor - Facturas de proveedor/PedProv_FacProv_relation.rc create mode 100644 Source/Modulos/Relaciones/Pedidos de proveedor - Facturas de proveedor/PedProv_FacProv_relation.res create mode 100644 Source/Modulos/Relaciones/Pedidos de proveedor - Facturas de proveedor/uGenerarFacturasProvPedProvUtils.dfm create mode 100644 Source/Modulos/Relaciones/Pedidos de proveedor - Facturas de proveedor/uGenerarFacturasProvPedProvUtils.pas create mode 100644 Source/Modulos/Relaciones/Pedidos de proveedor - Facturas de proveedor/uGenerarFacturasProvUtils.dfm create mode 100644 Source/Modulos/Relaciones/Pedidos de proveedor - Facturas de proveedor/uGenerarFacturasProvUtils.pas create mode 100644 Source/Modulos/Remesas de cliente/Controller/RemesasCliente_controller.bdsproj create mode 100644 Source/Modulos/Remesas de cliente/Controller/RemesasCliente_controller.dpk create mode 100644 Source/Modulos/Remesas de cliente/Controller/RemesasCliente_controller.dproj create mode 100644 Source/Modulos/Remesas de cliente/Controller/RemesasCliente_controller.identcache create mode 100644 Source/Modulos/Remesas de cliente/Controller/RemesasCliente_controller.rc create mode 100644 Source/Modulos/Remesas de cliente/Controller/RemesasCliente_controller.res create mode 100644 Source/Modulos/Remesas de cliente/Controller/View/uIEditorRemesaCliente.pas create mode 100644 Source/Modulos/Remesas de cliente/Controller/View/uIEditorRemesasCliente.pas create mode 100644 Source/Modulos/Remesas de cliente/Controller/View/uIEditorRemesasClientePreview.pas create mode 100644 Source/Modulos/Remesas de cliente/Controller/uRemesasClienteController.pas create mode 100644 Source/Modulos/Remesas de cliente/Controller/uRemesasClienteReportController.pas create mode 100644 Source/Modulos/Remesas de cliente/Data/RemesasCliente_data.bdsproj create mode 100644 Source/Modulos/Remesas de cliente/Data/RemesasCliente_data.dpk create mode 100644 Source/Modulos/Remesas de cliente/Data/RemesasCliente_data.dproj create mode 100644 Source/Modulos/Remesas de cliente/Data/RemesasCliente_data.identcache create mode 100644 Source/Modulos/Remesas de cliente/Data/RemesasCliente_data.rc create mode 100644 Source/Modulos/Remesas de cliente/Data/RemesasCliente_data.res create mode 100644 Source/Modulos/Remesas de cliente/Data/uDataModuleRemesasCliente.dfm create mode 100644 Source/Modulos/Remesas de cliente/Data/uDataModuleRemesasCliente.pas create mode 100644 Source/Modulos/Remesas de cliente/Model/Data/uIDataModuleRemesasCliente.pas create mode 100644 Source/Modulos/Remesas de cliente/Model/Data/uIDataModuleRemesasClienteReport.pas create mode 100644 Source/Modulos/Remesas de cliente/Model/RemesasCliente_model.bdsproj create mode 100644 Source/Modulos/Remesas de cliente/Model/RemesasCliente_model.dpk create mode 100644 Source/Modulos/Remesas de cliente/Model/RemesasCliente_model.dproj create mode 100644 Source/Modulos/Remesas de cliente/Model/RemesasCliente_model.identcache create mode 100644 Source/Modulos/Remesas de cliente/Model/RemesasCliente_model.rc create mode 100644 Source/Modulos/Remesas de cliente/Model/RemesasCliente_model.res create mode 100644 Source/Modulos/Remesas de cliente/Model/schRemesasClienteClient_Intf.pas create mode 100644 Source/Modulos/Remesas de cliente/Model/schRemesasClienteServer_Intf.pas create mode 100644 Source/Modulos/Remesas de cliente/Model/uBizRemesasCliente.pas create mode 100644 Source/Modulos/Remesas de cliente/Model/uBizRemesasClienteServer.pas create mode 100644 Source/Modulos/Remesas de cliente/Plugin/RemesasCliente_plugin.bdsproj create mode 100644 Source/Modulos/Remesas de cliente/Plugin/RemesasCliente_plugin.dpk create mode 100644 Source/Modulos/Remesas de cliente/Plugin/RemesasCliente_plugin.dproj create mode 100644 Source/Modulos/Remesas de cliente/Plugin/RemesasCliente_plugin.identcache create mode 100644 Source/Modulos/Remesas de cliente/Plugin/RemesasCliente_plugin.rc create mode 100644 Source/Modulos/Remesas de cliente/Plugin/RemesasCliente_plugin.res create mode 100644 Source/Modulos/Remesas de cliente/Plugin/uPluginRemesasCliente.dfm create mode 100644 Source/Modulos/Remesas de cliente/Plugin/uPluginRemesasCliente.pas create mode 100644 Source/Modulos/Remesas de cliente/RemesasCliente_Group.groupproj create mode 100644 Source/Modulos/Remesas de cliente/Reports/uRptRemesasCliente_Server.dfm create mode 100644 Source/Modulos/Remesas de cliente/Reports/uRptRemesasCliente_Server.pas create mode 100644 Source/Modulos/Remesas de cliente/Servidor/srvRemesasCliente_Impl.dfm create mode 100644 Source/Modulos/Remesas de cliente/Servidor/srvRemesasCliente_Impl.pas create mode 100644 Source/Modulos/Remesas de cliente/Views/RemesasCliente_view.bdsproj create mode 100644 Source/Modulos/Remesas de cliente/Views/RemesasCliente_view.dpk create mode 100644 Source/Modulos/Remesas de cliente/Views/RemesasCliente_view.dproj create mode 100644 Source/Modulos/Remesas de cliente/Views/RemesasCliente_view.identcache create mode 100644 Source/Modulos/Remesas de cliente/Views/RemesasCliente_view.rc create mode 100644 Source/Modulos/Remesas de cliente/Views/RemesasCliente_view.res create mode 100644 Source/Modulos/Remesas de cliente/Views/uEditorRemesaCliente.dfm create mode 100644 Source/Modulos/Remesas de cliente/Views/uEditorRemesaCliente.pas create mode 100644 Source/Modulos/Remesas de cliente/Views/uEditorRemesaClienteReport.dfm create mode 100644 Source/Modulos/Remesas de cliente/Views/uEditorRemesaClienteReport.pas create mode 100644 Source/Modulos/Remesas de cliente/Views/uEditorRemesasCliente.dfm create mode 100644 Source/Modulos/Remesas de cliente/Views/uEditorRemesasCliente.pas create mode 100644 Source/Modulos/Remesas de cliente/Views/uRemesasClienteViewRegister.pas create mode 100644 Source/Modulos/Remesas de cliente/Views/uViewRecibosRemesaCliente.dfm create mode 100644 Source/Modulos/Remesas de cliente/Views/uViewRecibosRemesaCliente.pas create mode 100644 Source/Modulos/Remesas de cliente/Views/uViewRecibosRemesaCliente_2.dfm create mode 100644 Source/Modulos/Remesas de cliente/Views/uViewRecibosRemesaCliente_2.pas create mode 100644 Source/Modulos/Remesas de cliente/Views/uViewRemesaCliente.dfm create mode 100644 Source/Modulos/Remesas de cliente/Views/uViewRemesaCliente.pas create mode 100644 Source/Modulos/Remesas de cliente/Views/uViewRemesasCliente.dfm create mode 100644 Source/Modulos/Remesas de cliente/Views/uViewRemesasCliente.pas create mode 100644 Source/Modulos/Remesas de proveedor/Controller/RemesasProveedor_controller.bdsproj create mode 100644 Source/Modulos/Remesas de proveedor/Controller/RemesasProveedor_controller.dpk create mode 100644 Source/Modulos/Remesas de proveedor/Controller/RemesasProveedor_controller.dproj create mode 100644 Source/Modulos/Remesas de proveedor/Controller/RemesasProveedor_controller.identcache create mode 100644 Source/Modulos/Remesas de proveedor/Controller/RemesasProveedor_controller.rc create mode 100644 Source/Modulos/Remesas de proveedor/Controller/RemesasProveedor_controller.res create mode 100644 Source/Modulos/Remesas de proveedor/Controller/View/uIEditorRemesaProveedor.pas create mode 100644 Source/Modulos/Remesas de proveedor/Controller/View/uIEditorRemesasProveedor.pas create mode 100644 Source/Modulos/Remesas de proveedor/Controller/View/uIEditorRemesasProveedorPreview.pas create mode 100644 Source/Modulos/Remesas de proveedor/Controller/uRemesasProveedorController.pas create mode 100644 Source/Modulos/Remesas de proveedor/Controller/uRemesasProveedorReportController.pas create mode 100644 Source/Modulos/Remesas de proveedor/Data/RemesasProveedor_data.bdsproj create mode 100644 Source/Modulos/Remesas de proveedor/Data/RemesasProveedor_data.dpk create mode 100644 Source/Modulos/Remesas de proveedor/Data/RemesasProveedor_data.dproj create mode 100644 Source/Modulos/Remesas de proveedor/Data/RemesasProveedor_data.identcache create mode 100644 Source/Modulos/Remesas de proveedor/Data/RemesasProveedor_data.rc create mode 100644 Source/Modulos/Remesas de proveedor/Data/RemesasProveedor_data.res create mode 100644 Source/Modulos/Remesas de proveedor/Data/uDataModuleRemesasProveedor.dfm create mode 100644 Source/Modulos/Remesas de proveedor/Data/uDataModuleRemesasProveedor.pas create mode 100644 Source/Modulos/Remesas de proveedor/Model/Data/uIDataModuleRemesasProveedor.pas create mode 100644 Source/Modulos/Remesas de proveedor/Model/Data/uIDataModuleRemesasProveedorReport.pas create mode 100644 Source/Modulos/Remesas de proveedor/Model/RemesasProveedor_model.bdsproj create mode 100644 Source/Modulos/Remesas de proveedor/Model/RemesasProveedor_model.dpk create mode 100644 Source/Modulos/Remesas de proveedor/Model/RemesasProveedor_model.dproj create mode 100644 Source/Modulos/Remesas de proveedor/Model/RemesasProveedor_model.identcache create mode 100644 Source/Modulos/Remesas de proveedor/Model/RemesasProveedor_model.rc create mode 100644 Source/Modulos/Remesas de proveedor/Model/RemesasProveedor_model.res create mode 100644 Source/Modulos/Remesas de proveedor/Model/schRemesasProveedorClient_Intf.pas create mode 100644 Source/Modulos/Remesas de proveedor/Model/schRemesasProveedorServer_Intf.pas create mode 100644 Source/Modulos/Remesas de proveedor/Model/uBizRemesasProveedor.pas create mode 100644 Source/Modulos/Remesas de proveedor/Model/uBizRemesasProveedorServer.pas create mode 100644 Source/Modulos/Remesas de proveedor/Plugin/RemesasProveedor_plugin.bdsproj create mode 100644 Source/Modulos/Remesas de proveedor/Plugin/RemesasProveedor_plugin.dpk create mode 100644 Source/Modulos/Remesas de proveedor/Plugin/RemesasProveedor_plugin.dproj create mode 100644 Source/Modulos/Remesas de proveedor/Plugin/RemesasProveedor_plugin.rc create mode 100644 Source/Modulos/Remesas de proveedor/Plugin/RemesasProveedor_plugin.res create mode 100644 Source/Modulos/Remesas de proveedor/Plugin/uPluginRemesasProveedor.dfm create mode 100644 Source/Modulos/Remesas de proveedor/Plugin/uPluginRemesasProveedor.pas create mode 100644 Source/Modulos/Remesas de proveedor/RemesasProveedor_Group.groupproj create mode 100644 Source/Modulos/Remesas de proveedor/Reports/uRptRemesasProveedor_Server.dfm create mode 100644 Source/Modulos/Remesas de proveedor/Reports/uRptRemesasProveedor_Server.pas create mode 100644 Source/Modulos/Remesas de proveedor/Servidor/srvRemesasProveedor_Impl.dfm create mode 100644 Source/Modulos/Remesas de proveedor/Servidor/srvRemesasProveedor_Impl.pas create mode 100644 Source/Modulos/Remesas de proveedor/Views/RemesasProveedor_view.bdsproj create mode 100644 Source/Modulos/Remesas de proveedor/Views/RemesasProveedor_view.dpk create mode 100644 Source/Modulos/Remesas de proveedor/Views/RemesasProveedor_view.dproj create mode 100644 Source/Modulos/Remesas de proveedor/Views/RemesasProveedor_view.identcache create mode 100644 Source/Modulos/Remesas de proveedor/Views/RemesasProveedor_view.rc create mode 100644 Source/Modulos/Remesas de proveedor/Views/RemesasProveedor_view.res create mode 100644 Source/Modulos/Remesas de proveedor/Views/uEditorRemesaProveedor.dfm create mode 100644 Source/Modulos/Remesas de proveedor/Views/uEditorRemesaProveedor.pas create mode 100644 Source/Modulos/Remesas de proveedor/Views/uEditorRemesaProveedorReport.dfm create mode 100644 Source/Modulos/Remesas de proveedor/Views/uEditorRemesaProveedorReport.pas create mode 100644 Source/Modulos/Remesas de proveedor/Views/uEditorRemesasProveedor.dfm create mode 100644 Source/Modulos/Remesas de proveedor/Views/uEditorRemesasProveedor.pas create mode 100644 Source/Modulos/Remesas de proveedor/Views/uRemesasProveedorViewRegister.pas create mode 100644 Source/Modulos/Remesas de proveedor/Views/uViewRecibosRemesaProveedor.dfm create mode 100644 Source/Modulos/Remesas de proveedor/Views/uViewRecibosRemesaProveedor.pas create mode 100644 Source/Modulos/Remesas de proveedor/Views/uViewRemesaProveedor.dfm create mode 100644 Source/Modulos/Remesas de proveedor/Views/uViewRemesaProveedor.pas create mode 100644 Source/Modulos/Remesas de proveedor/Views/uViewRemesasProveedor.dfm create mode 100644 Source/Modulos/Remesas de proveedor/Views/uViewRemesasProveedor.pas create mode 100644 Source/Modulos/Tipos de IVA/Controller/TiposIVA_controller.bdsproj create mode 100644 Source/Modulos/Tipos de IVA/Controller/TiposIVA_controller.dpk create mode 100644 Source/Modulos/Tipos de IVA/Controller/TiposIVA_controller.dproj create mode 100644 Source/Modulos/Tipos de IVA/Controller/TiposIVA_controller.rc create mode 100644 Source/Modulos/Tipos de IVA/Controller/TiposIVA_controller.res create mode 100644 Source/Modulos/Tipos de IVA/Controller/View/uIEditorTipoIVA.pas create mode 100644 Source/Modulos/Tipos de IVA/Controller/View/uIEditorTiposIVA.pas create mode 100644 Source/Modulos/Tipos de IVA/Controller/uTiposIVAController.pas create mode 100644 Source/Modulos/Tipos de IVA/Data/TiposIVA_data.bdsproj create mode 100644 Source/Modulos/Tipos de IVA/Data/TiposIVA_data.dpk create mode 100644 Source/Modulos/Tipos de IVA/Data/TiposIVA_data.dproj create mode 100644 Source/Modulos/Tipos de IVA/Data/TiposIVA_data.rc create mode 100644 Source/Modulos/Tipos de IVA/Data/TiposIVA_data.res create mode 100644 Source/Modulos/Tipos de IVA/Data/uDataModuleTiposIVA.dfm create mode 100644 Source/Modulos/Tipos de IVA/Data/uDataModuleTiposIVA.pas create mode 100644 Source/Modulos/Tipos de IVA/Model/Data/uIDataModuleTiposIVA.pas create mode 100644 Source/Modulos/Tipos de IVA/Model/TiposIVA_model.bdsproj create mode 100644 Source/Modulos/Tipos de IVA/Model/TiposIVA_model.dpk create mode 100644 Source/Modulos/Tipos de IVA/Model/TiposIVA_model.dproj create mode 100644 Source/Modulos/Tipos de IVA/Model/TiposIVA_model.rc create mode 100644 Source/Modulos/Tipos de IVA/Model/TiposIVA_model.res create mode 100644 Source/Modulos/Tipos de IVA/Model/schTiposIVAClient_Intf.pas create mode 100644 Source/Modulos/Tipos de IVA/Model/schTiposIVAServer_Intf.pas create mode 100644 Source/Modulos/Tipos de IVA/Model/uBizTiposIVA.pas create mode 100644 Source/Modulos/Tipos de IVA/Plugin/TiposIVA_plugin.bdsproj create mode 100644 Source/Modulos/Tipos de IVA/Plugin/TiposIVA_plugin.dpk create mode 100644 Source/Modulos/Tipos de IVA/Plugin/TiposIVA_plugin.dproj create mode 100644 Source/Modulos/Tipos de IVA/Plugin/TiposIVA_plugin.rc create mode 100644 Source/Modulos/Tipos de IVA/Plugin/TiposIVA_plugin.res create mode 100644 Source/Modulos/Tipos de IVA/Plugin/uPluginTiposIVA.dfm create mode 100644 Source/Modulos/Tipos de IVA/Plugin/uPluginTiposIVA.pas create mode 100644 Source/Modulos/Tipos de IVA/Servidor/srvTiposIVA_Impl.dfm create mode 100644 Source/Modulos/Tipos de IVA/Servidor/srvTiposIVA_Impl.pas create mode 100644 Source/Modulos/Tipos de IVA/TiposIVA_Group.bdsgroup create mode 100644 Source/Modulos/Tipos de IVA/TiposIVA_Group.groupproj create mode 100644 Source/Modulos/Tipos de IVA/Views/TiposIVA_view.bdsproj create mode 100644 Source/Modulos/Tipos de IVA/Views/TiposIVA_view.dpk create mode 100644 Source/Modulos/Tipos de IVA/Views/TiposIVA_view.dproj create mode 100644 Source/Modulos/Tipos de IVA/Views/TiposIVA_view.rc create mode 100644 Source/Modulos/Tipos de IVA/Views/TiposIVA_view.res create mode 100644 Source/Modulos/Tipos de IVA/Views/uEditorTipoIVA.dfm create mode 100644 Source/Modulos/Tipos de IVA/Views/uEditorTipoIVA.pas create mode 100644 Source/Modulos/Tipos de IVA/Views/uEditorTiposIVA.dfm create mode 100644 Source/Modulos/Tipos de IVA/Views/uEditorTiposIVA.pas create mode 100644 Source/Modulos/Tipos de IVA/Views/uTiposIVAViewRegister.pas create mode 100644 Source/Servicios/FactuGES.RODL create mode 100644 Source/Servicios/FactuGES_Intf.pas create mode 100644 Source/Servicios/FactuGES_Invk.pas create mode 100644 Source/Servicios/RODLFILE.res create mode 100644 Source/Servidor/Configuracion/srvConfiguracion_Impl.dfm create mode 100644 Source/Servidor/Configuracion/srvConfiguracion_Impl.pas create mode 100644 Source/Servidor/Configuracion/uConexionBD.dfm create mode 100644 Source/Servidor/Configuracion/uConexionBD.pas create mode 100644 Source/Servidor/Configuracion/uConfGeneral.dfm create mode 100644 Source/Servidor/Configuracion/uConfGeneral.pas create mode 100644 Source/Servidor/Configuracion/uConfiguracion.dfm create mode 100644 Source/Servidor/Configuracion/uConfiguracion.pas create mode 100644 Source/Servidor/Configuracion/uFrameConfiguracion.dfm create mode 100644 Source/Servidor/Configuracion/uFrameConfiguracion.pas create mode 100644 Source/Servidor/FactuGES_Server.RES create mode 100644 Source/Servidor/FactuGES_Server.bdsproj create mode 100644 Source/Servidor/FactuGES_Server.cfg create mode 100644 Source/Servidor/FactuGES_Server.dpr create mode 100644 Source/Servidor/FactuGES_Server.dproj create mode 100644 Source/Servidor/FactuGES_Server.identcache create mode 100644 Source/Servidor/FactuGES_Server.rc create mode 100644 Source/Servidor/Utiles/RegExpr.pas create mode 100644 Source/Servidor/Utiles/uBusinessUtils.pas create mode 100644 Source/Servidor/Utiles/uDatabaseUtils.pas create mode 100644 Source/Servidor/Utiles/uReferenciasUtils.pas create mode 100644 Source/Servidor/Utiles/uRestriccionesUsuarioUtils.pas create mode 100644 Source/Servidor/Utiles/uSchemaUtilsServer.pas create mode 100644 Source/Servidor/Utiles/uServerAppUtils.pas create mode 100644 Source/Servidor/Utiles/uSesionesUtils.pas create mode 100644 Source/Servidor/srvEmpresas_Impl.dfm create mode 100644 Source/Servidor/srvEmpresas_Impl.pas create mode 100644 Source/Servidor/srvLogin_Impl.dfm create mode 100644 Source/Servidor/srvLogin_Impl.pas create mode 100644 Source/Servidor/uAcercaDe.dfm create mode 100644 Source/Servidor/uAcercaDe.pas create mode 100644 Source/Servidor/uDataModuleServer.dfm create mode 100644 Source/Servidor/uDataModuleServer.pas create mode 100644 Source/Servidor/uServerMainForm.dfm create mode 100644 Source/Servidor/uServerMainForm.pas create mode 100644 Source/Servidor/uUsersManager.pas create mode 100644 Tools/DBExtract/IBExtract.exe create mode 100644 Tools/DBExtract/IbExtractC.exe create mode 100644 Tools/FBHook/FAQ.txt create mode 100644 Tools/FBHook/FBClient.dll create mode 100644 Tools/FBHook/FBHook.exe create mode 100644 Tools/ISQL/fbclient.dll create mode 100644 Tools/ISQL/isql.exe diff --git a/Build/Build.fbl5 b/Build/Build.fbl5 new file mode 100644 index 0000000000000000000000000000000000000000..5249c29cdab763aedc11a10a61712f9bbce1c097 GIT binary patch literal 2752512 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

6PB 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�FabKTnF=gpvC#+%u9OjWmnZXcYK2`^Otc<;t~{s(@M>5b zsI(HM&6c<;WZSnq-U`*0H+UXKGF4gEnmsP}mure;f&5-E-MYjLP^R*BD&YOnnYTIR z?fkP!O*zELV~m9pi&JYN$yJmxSq2Uw*`*`nx5b>ogiI({bp&F@?<8XKUfFtqt{SC` zWMxgIAR_{{f%2TJ3RUt1JTph^M_P48zVraNk4j4{8f!c!(pJ-lvpj88vyRNy`+|GM z4SU~IKkiC@Yd_qa1~=7fZEHO-=6vyltD`jLZesPPRG zy$XjUBrb$iT!5FcI&Ee{4HINSem0sykaMrArnRA}Qn-ByoF^~aX9bq7;YML``;v4u zps34n+XlzJ(c16xr607NQ7<)0N;8Txyet<1HQ#3Vt~kGo66Ks5&+vR=ZkOkb=%_36 z%&xekqC$2k0yv^xwZUI$A?nfLxyG(WJFrx;LBM`@nH^YJ4!0~NyDc;e#cqqOQ^s4U z_ET1}AretM3NSmk!c+CQ zO8hXQPoi+=nxjTSoJcDl`Raqjm*zq&u;=LuYv@_2QzmndIe#+bCyxcn^l-Wl;rK{;?Pg^RxUw7?$_TqTU+<>hFD)g0DY!jV@HdEG3VN+7^O@0QBSFTaK zJ`hflUnB?TMX|5tY7|>0xyiYtM;RV!@ZSf%&K)}zI=y##*_XN+>_bN47M^M zHl;sO3pk3CL*(b8SA$#jz*!+ov^E?U&I2Cc`ubyZmSfT5po$n+F#t!5a3MbzVSK6uMeC z^#la=S-zJGW;qZVS-$LOx=iKQU&Z?4F}B(t19!_ev7vaDIy|Li&?*GIPBv5fO4ZpW z9`#gdS^WwK!jd1t0AYYIKo}ql5C#YXgaN_;VSq3|7$6J~1_%R$0m1-bfG|K9APf)& z2m^!x!T@1_FhCd}3=jqg1B3y>0AYYIKo}ql5C#YXgaN_;VSq3|7$6J~1_%R$0m1-b zfG|K9APf)&2m^!x!T@1_FhCd}3=jqg1B3y>0AYYIKo}ql5C#YXgaN_;VSq3|7$6J~ z1_%R$0m1-bfG|K9APf)&2m^!x!T@1_FhCd}3=jqg1B3y>0AYYIKo}ql5C#YXgaN_; zVSq3|7$6J~1_%R$0m1-bfG|K9APf)&2m^!x!T@1_FhCd}3=jqg1B3y>0AYYIKo}ql z5C#YXgaN_;VSq3|7$6J~1_%R$0m1-bfG|K9APf)&2m^!x!T@1_FhCd}3=jqg1B3y> z0AYYIKo}ql5C#YXgaN_;VSq3|7$6J~1_%R$0m1-bfG|K9APf)&2m^!x!T@1_FhCd} z3=jqg1B3y>0AYYIKo}ql5C#YXgaN_;VSq3|7$6J~1_%R$0m8t)1p|-I9&&x`JmP%B zxy3ok`L5%jV~b;@qs+0(&e*H$Pf%;AMry2Wzm>JtTjyDetoIfT6uoPC!SaZOvn;So zvREy%M$H&Cb=2fh6Gx33HF}g|ly%ez*JrLzTpziPyWVrX?KwMI?$GO|N)49XB-Fdh34(Dyo zZO*OE&CX5E4bFAWK_~AFIafP-ojuM~&K1s1XPdLxxy0GvtZ^=M&UcnOy-v6DeCKTE zEawd8ROe*pMCUl?Xs5$zb)Im1=J>?%k>j}IJ;&RQV~#f*haImu4mnIRyaBx zZH{Kg5=Voh#<9>b-%;-HI^2%)9kU&?95WnK9g`gs9pfCM9S(=pal-zY{S*5~_T%>V z>~GtT+261qw!daSWPjQIqWyq<#uB`$GGCd%4|fciYdm&$iF9&#+Im zPqt6AkF$@qJM32b3F|CTat*wr#epw#~Lpwhgv*wm}_R+eF(q+i07^X0@HL zerEl|`jPdx^*!s`)??N;tcR_ySr1uXw!UaRVBKeZ+WMq*uk}&u9_w!FPU{ZqcI(~N zJFK@^w^_GZH(NJZH(1wM2d%s{WL<6Twf0z7Syxy)t!>t3>k?~&wZ^*8I^SAu^;+H5 z^R2V3v#c|$Q>~M&6RqQ{qpc3B)q0}nv!YLmJ}Nq1^j^{1MaPQXC^}s9TG64Rmy2F3 zI#9H)=;@*-i}n^hTC}HVchSzG9YwF4d(*jJKKD=OJaA6sIcJ_@Ip^_NH_r;p`f%p` zGq0ODe&+M^Qo59W{i^9#OfQ{2X8P}^JwEMw)4n|If6n^t zS>HM9nzI6DQD^;m>f=*yn)2l-XHNO^na`d1z?nTo6iS)$3Pq=PE<%H+Pe}DYV zXfnev2TreY0SWwrZF?e{B`uM(HloMjh;7p(&)!V-9Bo{s7GA4 zy3Rbc&(ddI2Xu4uWs94N!N33TrWCc!at`?8nWMA8|JS{F7Wn^<-%3d>7M9`1j*izc zF{UXThzHqLHoyhK(N;b@$g+Vj?~X9hIpuTdOBp`Ih5F{xmwHM{%IRexE=Cu}+gjRL zevtFCwc&wCIK+lx#WWYC18jt6{Y;DvxFp3Ar>_HrTNB|TN8 zbP)U+y@2+(J*9M%^@l?N;V(~BMLFFw6l0^bKOA5$pewxMp8>$R+cMiiwZ%gMwRBCG z4>F+uKo||jc|QxjFc9H_Ebj(Cb1YPvTp(SL({v}xM}>DNbC;G_EOi#DHXIq^6F}$q z=hB|4suF;us;Y`^3`KY@%F?xA9=r}Cyt$jEtAjy0@pzQx*(hjIHsH2cCIf5|7O}1X z-Ey&eS_*R=8;taG3ZxdxwH9hwRCpusr2*lMmI7+%`80iD4Lz%NephWc!1aac4%Q## zVr;OhJ@L9-i4GW!c8TQE3>}erA^1ut#)pI8WhF7}q1}LLQRWUr*36rx$yDKOppsOd@TcpR+NtRhvUHj zJ;22L{j{F}O$a(K6Y{gs7O8w-O{)rG2t%AC^DxpV_iL&5oUgSVvI z2fDe?$3o$lG(_ll6jTsTYI}8YN?wXBXMr&n=Xn4Is8^n2dV*|H&ql%E2V>H0p@d%1 z9q>oGBTTHHUO=O@!BVd0Z&oVE_3#Wo)a~N~5r&Tq$-Y<3`}?^;FfzcP0*a!KX9gHS zwIs%TS6g)*-5!evxNujQyQB-0*3}pa40%evn4wA_MSR@V#tyXftY-bOsO;D7_PUET zd_kB`x~qGlF`n_qP|w%awle-TNNGbh>7r$gS&*~_<9%Ex%L8@nVEt8KrjABCYnP%B zG%!(d>MKP(vIPC@C0R;t4fP4LO2TZ2qRRGP)fkEe%d(4Gd7x?AhoU~zV;wc#HDBnc zxeO(5ibrEis4v1YYr2|Rg=s4s%F-$1kJmHNp`~0jHpsD8qKaSAUdJ)Pa34y(3}^yz zFntk>lb8+m`_wSe+uen_bbY50GzA|^G=#42k)fqBX9PmX&=L$gfeHCoImtsS)9@2* zPk_{7sj^T52`4D3ZHkf%R^iKFZVSg_k$6ltL#gfDmc#>~Z}i0bDlAk4=zXS-)%b<3 zq%*_<{V)rBmk$e*68gKqUr2fp=to4m+hUnuq1xG4Ot9F2Jw6Zx?uKQYg=z=`4~MR# z8->pnfVn+k+yrP~|ADH*{1BMcGfbxPx9k$8Kw-|eT!i<1_|lm5C)`tDVp$sS>X*I` zj0fO846xBJ=`E*?4YGiM6cZN9LfkS$Hn1^BZv*H9w-$%jZR$a^Mng1s$?K31G1FwoB*%6 z{rZN3ZGiE!fHOH9@uLh3S+e${;oy)QXc-RaBi%SSd_I7w%L$PqIU%XfG9bw|uGswI zNCw<=Vi-o72o^YS)Z~L2ev|=4_P%i?J{JuDM4V?b4{J%71jOpbb#;DlWf;~HvTUO| zJ7>e_KMl+P7v$t~gY-!ThO+fxjCo4Z#|^+hNVZyp=?kX@cJlL9@R?358}Zv}G4M#k zJm(J!bHhM*kQ)#p>GG}(pJ+-+b>bU_-f0XC0zASLn&K(-nNA#6;qxShv=p&sIHjk> zyV9qrtn&kigX^_jC)#NxJmwf;c|DHrCJeAfSmdG^%XlZy5HF z3{wX6BucYsr);>^42P>;V19=D3iZ^+!Vfd__Uw9cSnURU7{t^9LY;!_B(xjEl(F3s zQrvbMhK}msgmo97KN~x%Q(7wVDflEqt7Ypy81oA8e^h}r)jA>caESkt)0dX!mFghz zf56hZFr0I34kSw8b-t|06iJ z#Q#b8WEs>G@qdK*Ui5J?T8za1QRd<0)&Kc-%yV3Zm*)sq&=MBIqWbo3;S-SN8Hn(S z>_wd1#s9Kt$X(2^TC4J@V8FWzqKxu`@Y8OPBoa&{!Fft5m057vQ)}ggxEFy17?66( z*2lQDaga?J&6Zl5Pt0Cb<{k#-2F~BlfOSW(s2d0m54SvoCs#lT?G;~r7TlVc`4l~rQH=*x5vP8{eYM;EhY-~#A9@b1zjzf*2f7+&zUO`+lZId z5Aq3fw?#&uT;7%71Jc{T9#y5canwbn_p8jw+J?S`r$m*dnzN4~UjyB{z#4W9$W_jn zNiBHv*fSWB3TfCnFhKu%SzZ{TK4CUs6K14-NE$gTiLC>YB#p z>Hrgov3#0p%vNZnYWB`Yp=IT2Raq{#HH9rlT(E&-g8{H3D7isS*hJFL46+3Y&R;^7TvY&%-*}&cDLGUyKgsL%g`E=i2CiRDt}FULY#c@vP6jiO!64Xq?p(^@1V$R(X~^IkxYzM z4w5_@uUi8`yKadQKdwuc=U?yDE41;Be+P5@Dj6XLw)7E07hP9NSEW-`^H+?+6T@T& z7ZjEhX4vyff*S=VH7$sNozf7vayzodC#Vkd3Wx7bboy;!K!G#@*?aW+kJokW%Wt5h z^oPYJDh6!^xcm%v@5S%CVvy$Gf+9z@=tr57oH2Ni|7D5yWr-7)Y44>@+^QqR7^YH@ z-pC@)4Pa3IFwt{7yEtXC7?>pf40*Jle~t>(0vY$74e~x77VDRKHj6T>B`PbIseIT{+yj#EYIYMH&w-9jq~`JF?;|40#l) zw-38(u)^4q%#@*n#9s4V`%6$2E3DCCv}nE<+gKuo&r2gm#A|6dvNSB&ReEvcTcyz- z?sh1t43jPOuN4IW@nM^1P^5Rfu=EAxhee6Fc(~0u$?h8bKU|C=78i($QfEn26~h1R z_H zo4$6$I<>tY3~JAb;!h7@&z{lno?ZFxKQUeuAUyLgh)ZCS?-FQ^}LYg~B)Hy1@pT)*myg4eGK%#xOGfPaITr>0JsJG(gDWsf@d74|JdFr0- zM473Dt_e`&Yz--2gS@9jd-F9qDk;I2udafra`rFz7U#*Xb2EL6>^TNaF?F zB}{KVO!$||msa^YCvr1Uao@69$E8 zyIWsM+^v`YM0qm6zAQ1S$AcC3iG;0qN|v7C-T^v6!1tsQrX^l6svyv_LHI70Fk_+> z*SsXfHBWTPQng~rGo^b@l(X@gXRD!Wo~H%VbK3k%8hkFY$0+wJa-$V(kF=u!~VX*ou!$^1m_2 z?GWyR?rglr=U49@FCS#e?o=|W)^Lyp42N?3eI3+VC-PpU7w+{}T!mq4Y!D5e^kq-E z)ccmI$x}WcRl7^5d|1G6`YxA9r5=^;<6gBJi$z`RRt^)$@@y?fbO@+)h(q9gB&ho| zEBBF}I>9x-IG9ls0e4}wsJe#w_1Uk|E<9r^i`0RN6XOpmYlDXG2FMTiq^lkxb;k}k z%ApF`@lq{)Nq~J=<0^`kw623KJvEs84z&Hmin6-~wx1M4Z%Rnpa4}*CL1l3JDq+RHA2gLeBeVip?WQf_M}bXafNbMfb<$eEi3w`?;K-f%aL20MjOvA(r3AAj|Kn{%A{l&|#)c zR2XRQtys0ofAA;{u*WJy8MdGdviEIejCHzAI`4VweP8t_S0T!<1rD-R>Qd_|ms_Kh z4;*4+66M;T`-y|azhHhgmdmqis$A}Fe3LTJRp0k-eG9FAUq7hwcv_A_OzSQ0*i{x6 zO>e%!m}(Lj?9m>>f2}#tA1O2J*X{F);Psc z7oDi?SLpW?;%qE;Rt}UpOV6+6%cOWv=DSSBC5T>?$}*PxXw*~0IxEXq)vPPY;rDce zm4B~^y3+eWm9gBl6?w<*GL}`*aIGq~%ZEjfRR-Ud%U6}+ljM%LmZ${9^Dt{ntm^V- zk$a1|4yUv6`d7{Jx*TY4M+q5fpu8Sb8OmZ&Jl+&j4frk&))=|M3xhN%h4Kbgafds_*Q5H{%F^@1GQRoVr$qiU z4aLOz`iWYiViY|x;^Sk*jJW2#sc~Z3CdEf zXg>B9V?7nNQo4B%mQ@XdsGZ^`Dpeor)ePNXshMFna zdjCk(&SIoNYu?t>fF)b_vbSXGdCR|O8}M(7Q_gqhUm6-%VlOR_o_tqU7^1lK5o;rh zInkshW8WX>oiR=Rg6p~)6F9udIbt%#$zq-8qR3K*v$({T>zyr1%rKQDrtXX^7V|=h zxu(kRLz=3ttxnffrx(N6hugD@#9HvVo;Bj-^|IvL z^Oozq2V+f?>uU$~3`BbPA}7OLs*kPwv=LL3tIi7Lc3hjW#s;h$*pf@8RemnGrv~(< zEozu8x76nJ6b?M|8_I7=wPxi^STqG-ikJaS-az0909_Ld`fphANS-$Am$C{r?5RR| z^Vkz?#m4c6YqtM#4F0vMP@ZXxue=OZr*^zm zSxFYpu6&s**2It-Io!GHf2%zk>&S&Qp0}yed~K?%bzSVLHD}wBpxS+MVxrQDmN~JC6w5V6i(+OV zizQJtU%&q_(X;WKxVFa63187)eP(3KPsOV@|5IU5Wm0LHxBwk8V^xpQLaaazE16<1 zcJ;!kU|+7qhbpT-2KYYrAS(&*X;=5l71$wZdJ-N#g`63v<9N zc+-m^nh zcl9RCy{MP!jEFC{WDWLw?_2gt#D^a(W;`5UnhSt@+R1wiGElyaf*IBqHG`+r^O6(sv&h^Ek?h} z@7Y*(m|Ejy2X`l4|NQiC#R{dabXPFzaJpJ-{P*m-mnp}&S;gqxL1G~_vGRsAW4@{h zw5?|y3e`rE^KCf}=OED^u&B2qSNcaZq1uWfa|^`E+F~0;jx0y6qqr=xU7=Gfzm{EW z&uJf7ELNCsH>iq!vPDJWR_$9!qpkR4Nmi~SyS=#fy4!42yL6WX0=5ZNy%(@*`vJQG zt3KyWhhm_h|D8!JIG63nk_%~--gn9=e-Nr#Izt<) z5!|z4Wph}fa`x_6b!*svq0dOQ+d5rqJ}UFq+t#UE46^!dox!b3ktlA?ab)?79GE=bzS_b)z*1emD@U%32>FrRP{?=dt_CcI?HWY z)lB5ua#dS8%WYXb6K=(oVr5IG-=->Q>9oYkH#9NxjN+6Kvnt3iqCOEq$qSpCA83NAL>wC|0@kmE8ijg((kZMVjSiCh2`>jB~X( z1^BL1o{hDr&fAJlu7H1ux2?t73{kFyse&}bl{>-9HF3DU?cH|3CXNSP?Hd*CNt$g! z`KYIS`$lkks#81Bs(7|99tZlGH>|PZN}}u*>Ho0sES(E=M)le^T(fvYx)zLd7UVm! zZOT4%t~W)SX0~V$klur?bs?>dVbWLHw=S4GO)mzXR{>5C8iAP<+|2cl~*4BBxMh;JWb-S^V?*KXlG8bW!bas zPTRkm*!2Io)QVoyzKeRzgm#cK$DZ$cC{g1FLZUTbvr{MsLT^XDC$Tku7>E_*Yc#N; zeNuGv6xZZGMcJW?xaj0KCKUwiJs8C4C7)c_bqO#d$L>>tw#3!Gxw6Y)&nbN6!H3oTYr4(8J}d6=!#p6amW7EG%Ay!B4U zQGPFj`u8f%7bW!UtHf2&nke_`_Fqdr(W;u(MsAHci`!1C{cOxtXjj%Xz0by!b%E+X z8w+lXvG*yHa^LRqmNnolAvwh+-Q9yezWnQ9VipYds>bjHLrR6GUg$p1EsA@6fa+#e zT9NAkxBo+Xi$!#b^fVgAM2YL6T;++0iBXLnD%YL)tQ=!p?Kb~%$F1DvuRM7EkJ|i` z6l47?alTcj-ECn1g*N|cwtxCsMR#DPPNJvu6vaM>pI2+slr&q7-LYb4we0DtqP`>HSX62KBP|7<^gKFpWHH1SN zT=#;24+E;!WFKhrQpYi6W1H`hKoAcbED4Gk2t-d~`DP;)4_4i5s}5XlM)Nc-;_GpCa!7OGP?7CyXzV?sAl(2_Pmu&fCk#?j2q^Jg6;sTFz5! zd15Zw$fC&wCAm3~dA8#0$&uO8;7rl^SIjIdI)WBBBLfW4j4Bl!N5nu;_claRyCUfU zdQ&H=&WRf7>|6P6Ez<10T)oLk%NHe9sXkPB>9gV;iE+vfn={qnv}a43OUo~HxI26+ z?t=kxG*Qw2DnOxhc*Q&SWT)ao{-xI-@+KxeV33mCh5G77XoOuEo?@qclGIWfMAG78 z0yfg5r+Uijm338Cga!^yZ-3O(@^$H?=*uE4NuoHIo-by#6sJZ?fm2kXZBoDZsK`js z!zj|}m^8V#C{kp!=!0(0iPGsxt9QLh&dstpZTVvCw4z6hyWk|h<-MKeNrT3`qa=bY zpVZXf`E3>N#p=}8l5!iX=|~c1hq9zm zophuXJEoS{i*49hUZ<;Oov*i;aJR%MdbE~1tiA8xQLWR})bU!)Ha%}DmFbuARV;Sr z{=>Y4{M6P3gN{hx6KeNPJfw|VbJ;`SK$Ls9@leN}bx zt9lQ3zg}tg0bL`VUi2s~C~;;>_qe=5N3K05a!~)Mi-niu=S$t#Q|-BhlO2)S?suJ0 z;zy@jUd4OBV0(^3jK+~Co3F`x0B*ZlH8I7-7dIZSy2Au}@h!KpN^Sxc<(zb)(haI#AcN7nJv>z=3S_HHRXc5pNphZB7fEEEQ0$K#L2xt+|BA`V;i+~mZEdp8u zv&y76B~+S_HHRXc5pNphZB7fEEEQ0{`I% zjCy0ofu#p#9a#BV%hwLSYJauat7~4__EO$UX)o=6an6f}pIh@>v*%9lJ+^oG-l==j z_qN~j%d=(Aj(#@z*;CK#e`d`yY0pGFvvBv+-J^F$>^`<@*RFB9+V9%(^unjhp0+$~ zc>2gwD|hDYJhkKSjy*fdc4X{my(8&K!;=f2nEJ%%CnBCWwtd(38QW((KK0S=kM7#M zeDj>m-8V;UKE5e=Q}QEq9-04e-ou#>*LnEph8-JPu0Qcm*+ZirN`C0ny8Y|ctV>%L zv2OX=8Efrpo2@;$=H)exHF0ZptzN!*&g$-~BUT@Ou-Sui?jLghkrlgEtXVN`g=Izf z3fuCRmuBAG^6r&OW-W0nX}RQ=#rqe>-F41g^Y6^NGxN?mcOG4|W6|hEtru-sxNu?F zLd!zK!XtOgxFh|Jqqpz5ef{mW+v9GpbNl`Udv2S5TkG2lx1G3k&8=m(4!Jer)}(n2 z=N-Ly>dixLPP+NzP5W+IepC0G!f#qLch20rxvl4(nsacDVa~xD9XF=mXu0wD4ZChw zd_&v~=iIP#cG+y(?8dWC%-T2W`1RYa&$zzR^$oAzf8EOK%C74^GkoUK8D%qUGaAo0 zaqYfqcU?2@n%37Ct~oJ%&GfSAL#CfB+f|lX7FX7+?9jCJ(`HSZbM=s`kC(n&x~0@n z+P$=4>7kNcMe~YU7M)Xc+_}>U^pSrE!SYG3+I!!(`Y2GBqq#={SCmor%ZQ@3I znZ2R?mz*Oxi$yo~$8)yTV{u6@5x%6m6uf~>#%LAZHO(&cJj)7S1!M@`<3BW zu9+}rLf(Yd6HbjkIKJh$6JuwL9XB>@?CC2GUa|g)^eY-(v1QD{F=b;cV+>=CjGi$% zee|(W`$laXWgnF^Dq_@@kuyd{j66Bw@Q8&Y>?695IFh+OGdZ(mW_aeF;fsgo4L>+^ z`Ox-5!-t+6vVO>nA(=yd8N6rk=)p;YTMj-vXyc$cgIW(dIdI-U$G{;2!v`M8*p`u* z(K2JpfQ19f23Q6d1{~=>qknq;BmH*uThnh`KTE&xezv}y`fls9xX+9}aec!39PK@; zcSi4{X?xPvr`git((0sbOf5^TlX@cMP|ExiTS`*OjO67#9X-Q)9`A9m$Gjfndc^gx zbUWR3W7qjzOS*RIdQR8FT^vbM6S^n-5`QRuSA0o)dVI_HBXLV(EY=g9Pj`H|yH%?zp-cb(8AWse8Q6#yT_VB-eR4{Gf5Aah5U7 zkQ`PgY+fx#ts%9-YaKaf+c^z&sc-0Xm)4ptuBEAI$*JwczsD@T3u~Y;870*l3#6ED zTdX8dYPXAZb399edft*pXZX(>Q&VG^ru_rymuC-gtrXz<0}69XCOPuGBP9QsxvDA~ zBNNKF@pd|WuL5VTEk8%B%j7>U#~B$Z2GbUa5vY-IQL)jwfMa+5ul9R=b@NxA8^(8h zDh8{0CIIr~arx0|I$ce~@1Mxme|wDX*z#kV6JstD>q;buVO}}*K6aZ^tZ1N|?><4f z{9~L&j5bnE=&GLkCeSsive*STS4)DJ{X(9rT@2rq$2}z`#Hbb>4RNlPn!2WS6Kmea zD^nY9@ufD#5+^V7;~u3Y%_rp!t7qblsvNJC#Ws}lKG@^3D(MXM*!UutV^%RV&pXOd zz9P5=6~?LOJFajgE#Cm`@>{EHaGscl!*`G>&mK#>e7ex!yniE>6RUSEPR}p3=NH?Y zjsj^Jaj`zF5Bz6r`d>PJLOK4;RUF6ai$ldDSc91EM{y*pwyK(++&6zg5R(*17jEBC zskj(f#AJ5f1-I#_teJafD0xs5=flm_JKp;`q)Bfa*#*)-`MiQsF}I*N{tJqfQ*z6n z$?&}ovjypN*HkYp%1KL<KH`Z(`w^J$YR%zM~p42GWJ-EE` z`FcF_wU*m{YDuA(suk7*EB8q$B{7KsXZ92o7uOVk!O!hkZVv(1Y%BLkcUl5RMgBtQ zfvIX@6f4d8&k<4Og~{Z^d(QO0YuT0iq!gFfn7~Q#d?ECxxYq+!uOAm69g4ZG{6mtS z>iI@;$+Q|u%m4ITc>lkb;j6jkg?tZH-)G%7H~DSlE!OYu_D_^IYwErfO4+BX_gqVq zScFin4qIYkR29sB>YjThsQC=tQ^u8>Eg_It}jOP9~)GC)T%KgEZo?x%L|CiU&ZtAu;0aJtC+!(>SYDv6x@9Vj}aT%GyjrNmEVK*{`c+J=r~_Sfniy9~Y>P zYpkm4)`|7g)SvV{b8xlsBqXS(T2#%p=J|f5ldVZB#EXST<<^-v#R{|5q&T^0*wa+3 zK0Iq|KEyw21+fNLi9DmQE6j2mt139wpeH5{xS4-qR^s3iA0w{n$~iO@GZVXO_{q*< zM|MfBYe{xTj+mKMwWPb4FgZ(_IJvm2&@R?s_r=D$f8Pegq<-=*?gJ)JNTt;(0;Ec; zAT!C~l(!=miVq@H^2dG2bIri(K79hEA|_g~5_+IX7ArV&ypt2V_M)0(v4XEjciWga zMM)&|T@P~@<+`(+C$8&{MOv?tOGC*a*W!J<2v~Ry zkemt@UaxxL4E7PQ)C!+sbH(al(Vj0aS&zDk4ibduQw3Uj@+I@EvcS%Wc z;0L;Hm;YvpQ*=fcY!lseM1yg@z0~fEEGe?*1l)@yL6J)Vc9T3nJkYTXbI-~z9ZA7# zS2^K)pzWsT=h#IzHRI<*DS|l2RO3C=Xci9=Q^^)LYQR}Vw^dJHfM2};(N)??8%N&_Yy{h&Vor! zTb{H!ue;yO*rCa(k;95ha>T>&xTt7pgW~acPMIaTt1m~~yA*GcNsECG%91j*Nbz#Q zu+;vQeOl_SFd;dssMsmy9>))-qztxYU&U|r4)|7|%=AEeclWRh^lqxXG;La;(_U0G zB4q&XwYROPc&J@kfiM=|?-$^E{Q_-paQ-A|rs{%xaWE9&CbOrBRpD~uDtJ%2h!zhk zD~iF-4DV&Vs^jopqwviPaY?l0Pb#$At{R&$SfnJcAU{w(D?giND=L$&N>Xz+Zn)nt z_lk@7W~NwW!gIClniwV@yS_ucs)ww!mnwZn6oW(_x&mIM?`fxpc6tQ34E{5xN4fJy zdEt-O>BZV9CF156#H~VfeUd8w(iL9ZUkXZ!3rmU>cL{MrkXBB1U+M?B-W{82&nlTD z?k}-AeWADx+a}qA`NCMw^Ie^;h4`NPejng_V%x2CdUwy@03Y$(>2wh~{V;oRu{4Lj zqu8ETBu(63SEujoDn2Aerc2gE+*d{Ut60qXpCheeB&wlhenpG&f8AK=CM4Z#lS25e z_YVzazr(~rJ7N(5XG#eB^?p~}sV9okti4FYQM4CV;cp*m&$Wv`TK?-@>nDfseQyLp z-M{xQ(dp7cO27B}zDTqb$AlR4pB)Rg8!CQX*Fil|8%MT`WaR zN!8LM)^w~=9$}iq)yFe5q5ztfC=wksNTU*37%3z(vc&a+U4(1<;U}G1y`Sn z(lj~b7)`W`)@9KyuDDwawaZxk$gcPr7kJM{LIzl~n+YQCso3tJQ1$ss~0M9ABG4j=6eYxbbs^ybbuPs;QuJF7Hy{_b%^a)FxTD{i&=vq;Q z^&Qv>EPrHIe7^`iujG1UcKJ34tzIj2GpNaWZ5z=JQj(u9J*_P_pIEl&Jtdy^I>n>b zsH%+PNfpnV3ku7ej!Bb?Bim)SkF+EuMPDZUKPfUjztHIrBOy`>oTBh-lb-uVMMjGL z&XKN<7e$KZFY)-^ElFYIZ>j;SSf(f89` zv+)j8%Cbj_r|Rw}{&i~CSc0V<$;$C7AtboBBYUzJ zqHdEb>E)R2X>5@j93c8ViH>iPoqI*L3UCIxIxgjLrLOA|6uE{> z#Kx)u9~~VztSm39AXkhhOik{UJ}^1QR#iJu=H~&lkPM9K~YTfn&OKE%By4#g^+DVCjoUOy#3H z++C6F!wbZK80DymiZ*MBRs~wjT{XfxlAx_;i<$Y-NQp|5FZxT2e^C5S`_UqxML>&y z76B~+S_HHRXc5pNphZB7fEEEQ0$K#L2xt+|BA`V;i+~mZEdp8uv&y76B~+S_HHRXc5pNphZB7fEEEQ0$K#L2xt+|BA`V;i+~mZ zEdp8uv&y76B~+S_HHRXc5pNphZB7fEEEQ z0$K#L2xt+|BA`V;i+~mZEdp8uv&y76B~+ zS_HHRXc5pNphZB7fEEEQ0$K#L2xt+|BA`V;i+~mZEdp8uv&y76B~+S_HHRXc5pNphZB7fEEEQ0$K#L2xt+|BA`V;i+~mZEdp8u zvS?xI`1uN`g-uN8jA{D=8h^N;55%wLq>*P2(ESD2TXmzWos7npA`&o$3B&ooarmztgCeDf6Z zM01vTym^dygn6iWpt+y9x4D$W+f%*HqhNG}SVlG5%rv)%c_FJLA{JFN~iWKQg{=e8>2v@qqCa z;|s>U#@)u9#_h(f#!bcz#}~92>|yL;j5k`1QN|9&HpW)Q=Ef$*M#g%^y2jc@qp_CpjNuQ% zuZABD-x)+A8sXw59MgM|+ zuYR|Fr+&MBtA3MygMO`km41bOnSP0Wk$!>x7X4iPZ2e6AbbYDbsn6F>(NEN8>BsBG z=tt;>>Idrk>3i#Y>3itA=;QTPeU!d~zKy<>zPY}MzLCD3zOKHu-l(soKNI#x*sozf zhJ6?Ib=VhSpN4%D_I}tqVQ+>V2zw>$g|NM0yTf*dZ4cWTwkd2w*xImFVJpIxg)IqN z6t*Djmaw^Dv%_YFO%E##bB5)IO$nPAmK8QWY)sgQu%TfC!}^8w4%?GimN_~zIkREr ziQ!X+MGW0GXx5-kgX#?WW#Gnvvj&bH*nQxkj2#)t8Lcz63|Ks%{eU_H7WXgfZ|Hx# zpQB$!zeDLe(ubtSrElxIv~Q=r5q&rIS=gsxpHsbO^|tpuopwB}B+Zs~JoQlOkksy} zFQ;rwNl)pNvai?rUdg>$_u7@bGP!kfc=E!_OD+$;{6x=LJ?%YD_c+?a(IcbB;qJS- z59uD)eOI@Y-8yxP=(ezHN!Qa|j&>>QGOo*!q&-QQNl8hE5_cqaPi&dEK4E@B>x77e z&WB6}2mBR@Bs}^$lzd&S|i}{+#-w>s#t?skgLVUcIz>5%o?+tdE!xkr@$J z=frvQ&&xY6^Sndnrk`s$*KqE^+B<5`uRSX~BfL|1!|>zgJ?7EoBy&siFQz)C6UIZv z^~PDo3}YwbImSJPGQ$wVN&P|n4*h6-g#LKgwy?!vGs1?1?XR`1*1TGowYt}esCDF= zUFR%3$8pXH-5OmdT|?dKk#FeoYDt&AfumCUwio}7?C84?UhH{U$4A<$|KSMK6=~Zn z{&$JU(YE6C@8Z96JobQi(bQv7hD)F8EBIdk^SU`$3$RGAmSC;GE&;m~ zOv-2Vk92&gf28AD{nJhj;&*xu7d?G1uY50(eJ|x#z2sNE7b(7%@~c$&mG4EG z@1^{zxBSZYqL1&T{7Slxs(+;Gqxwg>7OH=w>z?{&fEvW_8DIm!27wI*8v-^IY#7*Z zuuQNKU?agsfsF(m|8V7GzI2U`GkJJ=my3&9qF-3fLV*kZ6HV0VMv z1GW@w8Q8sG_kk@3TLE@I*aKiI!B&Ai2(}t*4cJ<+bzl#Htq0ox_AuBZU>m_Ufo%qR z6l@FFRXS?0m2bz#_ovfz=0V0M-z!5!i)b7lAbfYXa63>|(HHV9mi=fJK6}1ZxF$3D~7z zt-;!WwFPSj)*h?_SVyqSz&e3NfprFp2D5-!!D7H-!Q#N;!4kj{!IHqbfOQ4y2G$*{ z2Ut(A%fXVtdV!^YrGlk_^#{_rHU^Bt41G^q<7T9dC8^CS^n*%l%>?W|A z!RCS80(L9dZD8}k7J%Ijb_du(uti{Zg53qS7;FjH-C*~CEd^T!b}!g{V9UW)fZY%F z0N6^fRbUT-tp-~Iwiaw1*h66J!8U+B4E6}vMzBp_o53Ch+XA)~>@l#%!M1^I2YUkS zNw6JYJHeg;dm3yP*lw_Az@7!$1GX3JIk4x!_JO?s_9ECzU@wEc0`@A{Yhe4q4uHK5 z_6FENus6Zp0(%?m5ZF6l?}EJtb{On^un)jK1Umxu5!lCIpMV_&`xNXmu+PDcfqen? zCD>PB$HBe^`v&Y=uoGb4fqf751K3HhAHjYC`x)#PuwTJ`1N$B96xbhNe}er5b{gyq z*xz8fTIJjN&H<|h76zsVGk_VvOkifPaIo57=YpLFRtKyu*!f@=fJK1S1FH|#0IVTc zBd`m>!~lVEKaIhffHeiX7_1psbFda*kzg&sT7gM@QPn?EA5-;DYp^z8ZNb`swFm0} z))DM7uufo6V4cCD!7N}_uo$pdusE=IumrF~uq3c9U|qqwfprJ#0oD`jaj%~!YyemW*g&vBV1vPifDHv31~wcl6Kn+7NU%|0qrt|2T>&;0 zY#i8lunAySg4w{bz_P(|!0ccX!6t!C26KQ-0lNw;7tB3M#Q&;Ty7U~hmO1bY+g zEwH!24uQP`_Ac0aV28op2m1i*L$D)YAAx-g_6gWguus801N$887}ytJUxIxFb{y<$ zuy4S=1v>%u9oY9^KY*PC`w{FXu%E$x0s9r~H?ZHqPJ#Ua_9xh1V5h;(fc*`o3-d2` zOTV21Rtqc)Ob=!NGlH4G%wXYQwZYB>I}fZ5SY5F5!7c!c0ILU9AFKgbL$F3*7lK^` z))=e_SW~cz!J2_J2WtTq3Dy#<71$+Umx8qhYXjC6tQ}Z;unu4y!7c;q1QrF>87vyi z0%iq^0gDBT1B(Ys080c*0_y_S6|5Urcd#B{J;5#qO9tx&mI9UvmIl@vtPfaUuyn9~ zVEw@cfMtLU1RDf47;FgGP_SWO!@)AaMu3e38wEBRYz){HU}M3?fsF^70Cpvq4J->R z8!QLR4mJ^N64+!g2iO#_tH5%>^1$-J3cw1%rh+-aiolA&O2A6Nt_GV1Rt7d5>>99Z z!DfKX1iKFGdazkwv%zivyAf;-*j%uiz-|Vc2X+hCtzfr-%?Dcmc01S|U<<((f!zsq z7uaI3C17`h-2=81Y#G?SVE2J72U`JlKiC6cE5TNQJqWfMYz^32uytS$fvpGI0QNB0 zBVZfBHi2yhdlYO7*jBK|z#a$N2DTmS39u)@c7W{!dkXAnuw7ug!JYwo7HkjLUa;rD zo(J0p_5#?8U@w8a4E74xt6;Bz?FTym_Bz-bU(6O1M3791=blX8q5M_1&aZT1&afV2TK4;1WN+z0@f9* z8(4R+9$-DeE(c2n>jjnqmI{^z)*Gx3SYNPouzq0u!3Kb3fDHs21U49K2-r}tVPM0- zGQmcGjRYG7HX3XU*cD)7!N!4&2b%zPC72B?3oIKf2h0vO5o{9JWH1NV6tJtna>4Sz z^1%wg3c;p=Il+p+ior_2O2MuMn+8?}HXZC5uxr6)fXxKE4(xicSzxolZUDOxY!295 zu$#bc2Ac{u*bk22ipd= z9qb9PC&6}r?F4%Y>}jxFV7tMd0eco~57=I?=fIu^+Xwan*o$B{GDMz&-~% z2KEKmmtbFk9S8dw>>IFe!A^jE2lhSK4`3(3egyjo>}RlFzI}fZ5SY5F5!7c!c0ILU9AFKgb zL$F3*7lK^`))=e_SW~cz!J2_J2WtTq3Dy#<71$+Umx8qhYXjC6tQ}Z;unu4y!7c;q z1QrF>87vyi0%iq^0gDBT1B(Ys080c*0_y_S6|5Urcd#B{J;5#qO9tx&mI9UvmIl@v ztPfaUuyn9~VEw@cfMtLU1RDf47;FgGP_SWO!@)AaMu3e38wEBRYz){HU}M3?fsF^7 z0Cpvq4J->R8!QLR4mJ^N64+!g2iO#_tH5%>^1$-J3cw1%rh+-aiolA&O2A6Nt_GV1 zRt7d5>>99Z!DfKX1iKFGdazkwv%zivyAf;-*j%uiz-|Vc2X+hCtzfr-%?Dcmc01S| zU<<((f!zsq7uaI3C17`h-2=81Y#G?SVE2J72U`JlKiC6cE5TNQJqWfMYz^32uytS$ zfvpGI0QNB0BVZfBHi2yhdlYO7*jBK|z#a$N2DTmS39u)@c7W{!dkXAnuw7ug!JYwo z7HkjLUa;rDo(J0p_5#?8U@w8a4E74xt6;Bz?FTym_Bz-bU(6O1M3791=blX8q5M_1&aZT1&afV2TK4; z1WN+z0@f9*8(4R+9$-DeE(c2n>jjnqmI{^z)*Gx3SYNPouzq0u!3Kb3fDHs21U49K z2-r}tVPM0-GQmcGjRYG7HX3XU*cD)7!N!4&2b%zPC72B?3oIKf2h0vO5o{9JWH1NV z6tJtna>4Sz^1%wg3c;p=Il+p+ior_2O2MuMn+8?}HXZC5uxr6)fXxKE4(xicSzxol zZUDOxY!295u$#bc2Ac{ zu*bk22ipd=9qb9PC&6}r?F4%Y>}jxFV7tMd0eco~57=I?=fIu^+Xwan*o$B{GDMz&-~%2KEKmmtbFk9S8dw>>IFe!A^jE2lhSK4`3(3egyjo>}RlFzI}fZ5SY5F5!7c!c z0ILU9AFKgbL$F3*7lK^`))=e_SW~cz!J2_J2WtTq3Dy#<71$+Umx8qhYXjC6tQ}Z; zunu4y!7c;q1QrF>87vyi0%iq^0gDBT1B(Ys080c*0_y_S6|5Urcd#B{J;5#qO9tx& zmI9UvmIl@vtPfaUuyn9~VEw@cfMtLU1RDf47;FgGP_SWO!@)AaMu3e38wEBRYz){H zU}M3?fsF^70Cpvq4J->R8!QLR4mJ^N64+!g2iO#_tH5%>^1$-J3cw1%rh+-aiolA& zO2A6Nt_GV1Rt7d5>>99Z!DfKX1iKFGdazkwv%zivyAf;-*j%uiz-|Vc2X+hCtzfr- z%?Dcmc01S|U<<((f!zsq7uaI3C17`h-2=81Y#G?SVE2J72U`JlKiC6cE5TNQJqWfM zYz^32uytS$fvpGI0QNB0BVZfBHi2yhdlYO7*jBK|z#a$N2DTmS39u)@c7W{!dkXAn zuw7ug!JYwo7HkjLUa;rDo(J0p_5#?8U@w8a4E74xt6;Bz?FTym_Bz-bU(6O1M3791=blX8q5M_1&aZT z1&afV2TK4;1WN+z0@f9*8(4R+9$-DeE(c2n>jjnqmI{^z)*Gx3SYNPouzq0u!3Kb3 zfDHs21U49K2-r}tVPM0-GQmcGjRYG7HX3XU*cD)7!N!4&2b%zPC72B?3oIKf2h0vO z5o{9JWH1NV6tJtna>4Sz^1%wg3c;p=Il+p+ior_2O2MuMn+8?}HXZC5uxr6)fXxKE z4(xicSzxolZUDOxY!295u$#bc2Ac{u*bk22ipd=9qb9PC&6}r?F4%Y>}jxFV7tMd0eco~57=I?=fIu^+Xwan z*o$B{GDMz&-~%2KEKmmtbFk9S8dw>>IFe!A^jE2lhSK4`3(3egyjo>}RlF zz$dkW&|^VnZd%rYJ;5%b{<$A zu)1L9gIxd?0ag#JK3D^=hG31rE(E&>tT9*(3Zf?WpI2`mb%Ggvg31jc6@V3j zO$Bp;6@e9lm4KCkT@5x3tPE^A*fn6+g3SP%33eUW^~^p_z!rin0=pCJF0jR5OTg|1y9aD3*fOwt!R`ZF4z>d9ey|6? zR)Vbpdk}0j*c!04VC%ph0$UHZ0qkM0N5D3MZ35d2_9)mEu&rQ^fjthk4QxBu6JSq* z?Eu>e_7vFDV7tI}gFOTGEZ82fy;~*j= zzz%}F3HBD)+hB*l-T`|T>^-o)>?qi$V4s0~4t5Oe3$QQ2 zz5+WA_BGfyVBdnB0Q(N?d$1qCPJ;ai_7m98V84L<3icb=?_j6E{s8+E>@Tp>U}wPo z2GiAs_CK&%U}0c-Fawwo%miiz3kRzWb}ra?V0FOif}Ia`0ayfBJ+S&<4Zs?LH3GX3 z>>{wnU`@c9f?W*O46Hd=3$RGAmSC;GE&;m~tTk90u(n|Bz}ka#0P6^L8CWN^JXiu)B3Kew7qG5i-N3qo^#JP$b~#uwSTC>?uvD-#u-;&O!1{uv zgY^UJ4>kZS18gAJAh5w;L%@cD4FekvmI*cjY$Vtyu+d;+z^(ur3pNgHJlF)VE5U4F zSzy^tVZb_3XrU~|Ccg53mmGuS+^TflAwyA5nU*aEQI!R`QC2(}39 zPO!Vc7K1GTyBq8tu%%$j!0rXR4{SNu3b6aZ9spYjwhHV)u+?B|z}AAT1A7Q;J=g}Y zhru2J+X%J^Y%|!SU|Ybpf;|TIIM_C@?O;!UJqfl0Y$w=LU{8bX0^1Gt4A`?^d%*UB zJqPwY*gmiqz+MD<3G8LCSHNBcdkt(q*a5KD!QKEn2=*q}TVQX49Rhm?>|L<;zz&1G z5B34rhhRs*J_7p~>=Uq~V4s402KG7FF|aSdz6ARU>^RuhVBdg!3w8qRJFxG;egHcO z_9NI&U_XQX0`@D|Z(zTJodWv<>`$=2z)pjm0s9+FcP_O5fz<*F1Ji>Uz>HufFf&*< zSZ%O#!OjD#16CL8e6S0^BEaf_)dy<;))1@_*o9yhfi(te0@f7lVz6dl&B0oLMS`^i zYXx=**ri~t!P?*Ka zuspDQumZ3`u&H29up+QxuoAFRu&cqQft7(x2fGIBTCf>lGr_I{yB=&7*le&Hz-|Pa z12z}zCa{~q=7HS;b}QIzVDrHifZYyu2iQWeMPPS=-37K7Yzf%iVE2G61zQGoFW7xx z%fVKF-4FHv*h;WfU=M<=23rHR7Hl2ZLtyK{Hh?`0_6XQUuuWi_!5#(M0=5wp55PVII|B9**vDX>fE@+<6znsw z&%us?eF63**jHf3!M+Cj2JBm~6JXzgeGm2n*h#P-!F~e!8SEFZU%`F@`yK2Q*dJhj zg8c<{8te?%-(b4)p#2Z57FZaV9?Sq{1T%q|!NS36gPjX@9#|c)x?tynT>usVRu8N` zSOc(zV2!{o1iJ{VF<29@reGI?H3Mr7)&eXNtR+}0uuH%$1#1n~2COYuJFxa(9l$z* zT?W<(EDEeMSTvXg%nB9*77G>!77vyHmI#&v)&;C9SU0flU_HQkf?W=l4Au)Q1uPXT z4Xig0tf9`hyJs%K#e)HVAAm*buOxV8g(MgJpt^02>K53T!mk7_ckA#)6Fl z8xJ-C>`E{jSQc0|SPqySY$Dhsu*qN!uqj|yf#rhbf#ri0fE9vG1#^NGffa+5fR%z> z4K@v|3~V~sHDK3*%>bJTb{*LDV6(txgWUjjBiJ0UxnMVe-3&Gl>=v+F!EOVa54Hg8 zcCb6Z7J@ATyA$j#u*G0Y!0raS2W%%blYTMxDY>|wA+z&3(y0^1DsDA*RTtzeIVJr1@FY&%%_nxsw_Bk=zLRQ-k- literal 0 HcmV?d00001 diff --git a/Build/Build.fbp5 b/Build/Build.fbp5 new file mode 100644 index 00000000..3ec244a8 --- /dev/null +++ b/Build/Build.fbp5 @@ -0,0 +1,18201 @@ + + + + + + base.fbz5 + + + 0 + + + + False + True + Main + {4C1B4E5D-F42F-4877-9F28-41B527858954} + + FinalBuilderAction + 0 + + True + True + False + True + False + + 0 + False + 0 + 1000 + False + + # + 16711680 + + # + False + True + False + True + False + + 0 + False + 0 + 1000 + False + + + + + 16711680 + + + + False + True + False + True + False + + 0 + False + 0 + 1000 + False + + + # + 16711680 + + # + False + True + False + True + False + + 0 + False + 0 + 1000 + False + + + + + 16711680 + + + + False + True + False + True + False + + 0 + False + 0 + 1000 + False + + + + + 0 + + False + + + True + True + True + ftString + False + True + False + + 0 + smNone + %FBPROJECTDIR% + False + 0 + 1000 + False + project_path + + + + + 0 + {78526C82-A8E7-42B3-8C9D-1E229C79D915} + + + + + True + False + True + False + True + False + + 0 + False + 0 + 1000 + True + True + 2 + + True + True + + project_path + \Build + + False + False + + + + + 16711680 + + + + False + True + False + True + False + + 0 + False + 0 + 1000 + False + + + + + 0 + + + + True + True + True + False + True + False + False + + 0 + False + 0 + 1000 + False + + + + + # + 16711680 + + # + False + True + False + True + False + + 0 + False + 0 + 1000 + False + + + + + 16711680 + + + + False + True + False + True + False + + 0 + False + 0 + 1000 + False + + + # + 16711680 + + # + False + True + False + True + False + + 0 + False + 0 + 1000 + False + + + + + 8388736 + + + + True + True + False + True + False + + 0 + False + 0 + 1000 + False + + + + 0 + + True + True + False + _aux_path + False + True + False + + + + 0 + False + 0 + 1000 + True + False + + + + 0 + + True + True + %_aux_path% + True + False + True + False + + 0 + False + 0 + 1000 + False + + + + + + 0 + + True + True + _aux_path + False + True + False + + 0 + False + 0 + 1000 + False + + + + # + 16711680 + + # + False + True + False + True + False + + 0 + False + 0 + 1000 + False + + + + + 16711680 + + + + False + True + False + True + False + + 0 + False + 0 + 1000 + False + + + + + 0 + + + + True + True + False + DiretorioRaiz + + False + True + False + + 0 + False + 0 + 1000 + False + + + + 0 + + True + + True + True + True + 1 + 1 + + False + DiretorioRaiz + False + True + False + + False + False + 0 + False + 0 + + trOriginalFile + + + 1000 + + + + False + False + tfDontFail + True + False + False + False + + + + + 0 + + True + + True + True + True + 1 + 1 + + False + DiretorioRaiz + False + True + False + + False + False + 0 + False + 0 + + trOriginalFile + + + 1000 + + + + False + False + tfDontFail + True + False + False + False + + %source_path% + + + DiretorioRaiz + qtNone + spNone + + False + PATTERNLIST + + False + sch*Client_Intf.pas + True + + + EXCLUDEPATTERNLIST + + + + + + # + 16711680 + + # + False + True + False + True + False + + 0 + False + 0 + 1000 + False + + + # + 16711680 + + # + False + True + False + True + False + + 0 + False + 0 + 1000 + False + + + + + 16711680 + + + + False + True + False + True + False + + 0 + False + 0 + 1000 + False + + + Servidor + 0 + + Servidor + True + True + False + True + False + + 0 + False + 0 + 1000 + False + + + + 0 + + True + False + False + True + True + 0 + 1252 + 12 + Release + False + + + True + True + + False + %project_path%\Resources\Iconos\Servidor.ico + False + True + True + True + False + False + False + False + False + False + False + True + 3082 + + 1 + 0 + 0 + False + 0 + %source_path%\Servidor\FactuGES_Server.dpr + True + 0 + + + rcBorland + 1000 + %source_path%\Servidor\ + False + True + False + False + [usPackages,usCompiler,usLinker,usVersionInfo] + False + True + + + + False + False + False + False + False + True + False + False + + + + + False + + False + + False + + False + True + False + False + True + 4194304 + False + False + False + True + %library_path% + 0 + False + 3 + 1048576 + 16384 + + True + True + %output_path%\Servidor + False + + False + fa8 + False + False + + True + True + False + False + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + .\ + False + False + True + + + + + # + 16711680 + + # + False + True + False + True + False + + 0 + False + 0 + 1000 + False + + + + + 16711680 + + + + False + True + False + True + False + + 0 + False + 0 + 1000 + False + + + # + 16711680 + + # + False + True + False + True + False + + 0 + False + 0 + 1000 + False + + + Base + 8388736 + + Base + True + True + False + True + False + + 0 + False + 0 + 1000 + False + + + + 0 + + True + False + False + True + True + 0 + 1252 + 12 + Debug + False + + + True + True + + False + + False + False + True + True + False + False + False + False + False + False + False + False + 3082 + + 1 + 0 + 0 + False + 0 + %source_path%\Base\Base.dpk + True + 0 + + + rcBorland + 1000 + + False + False + False + False + [usPackages,usCompiler,usLinker,usVersionInfo] + False + False + + + + False + False + False + False + False + True + False + False + %package_path% + + + + False + %base_dcp_path% + True + + True + + False + True + False + False + True + 4194304 + False + False + True + True + %library_path% + 0 + True + 0 + 1048576 + 16384 + + True + False + %output_path%\Cliente + False + + False + fa8 + True + False + + True + True + True + False + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + False + True + + + + + + 0 + + True + False + False + True + True + 0 + 1252 + 12 + Debug + False + + + True + True + + False + + False + False + True + True + False + False + False + False + False + False + False + False + 3082 + + 1 + 0 + 0 + False + 0 + %source_path%\GUIBase\GUIBase.dpk + True + 0 + + + rcBorland + 1000 + + False + False + False + False + [usPackages,usCompiler,usLinker,usVersionInfo] + False + False + + + + False + False + False + False + False + True + False + False + %package_path% + + + + False + %base_dcp_path% + True + + True + + False + True + False + False + True + 4194304 + False + False + True + True + %library_path% + 0 + True + 3 + 1048576 + 16384 + + True + False + %output_path%\Cliente + False + + False + fa8 + True + False + + True + True + True + False + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + False + True + + + + + + 0 + + True + False + False + True + True + 0 + 1252 + 12 + Debug + False + + + True + True + + False + + False + False + True + True + False + False + False + False + False + False + False + False + 3082 + + 1 + 0 + 0 + False + 0 + %source_path%\ApplicationBase\ApplicationBase.dpk + True + 0 + + + rcBorland + 1000 + + False + False + False + False + [usPackages,usCompiler,usLinker,usVersionInfo] + False + False + + + + False + False + False + False + False + True + False + False + %package_path% + + + + False + %base_dcp_path% + True + + True + + False + True + False + False + True + 4194304 + False + False + True + True + %library_path% + 0 + True + 0 + 1048576 + 16384 + + True + False + %output_path%\Cliente + False + + False + fa8 + True + False + + True + True + True + False + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + False + True + + + + + Módulos + 0 + + Módulos + True + True + False + True + False + + 0 + False + 0 + 1000 + False + + General + 0 + + General + True + True + False + True + False + + 0 + True + 0 + 1000 + False + + + + 0 + + + + True + True + False + True + False + + 0 + False + 0 + 1000 + False + + + + 0 + + True + False + False + True + True + 0 + 1252 + 12 + Release + False + + + True + True + + False + + False + False + True + True + False + False + False + False + False + False + False + False + 3082 + + 1 + 0 + 0 + False + 0 + + + True + 0 + + + rcBorland + 1000 + + False + False + False + False + [usPackages,usCompiler,usLinker,usVersionInfo] + False + False + + + + False + False + False + False + False + True + False + False + %package_path% + + + + False + %modules_dcp_path% + False + + False + + False + True + False + False + True + 4194304 + False + False + False + True + %library_path% + 0 + False + 0 + 1048576 + 16384 + + True + True + %output_path% + False + + False + fa8 + False + False + + True + True + False + False + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + False + True + + + + + + 0 + + True + False + False + True + True + 0 + 1252 + 12 + Release + False + + + True + True + + False + + False + False + True + True + False + False + False + False + False + False + False + False + 3082 + + 1 + 0 + 0 + False + 0 + + + True + 0 + + + rcBorland + 1000 + + False + False + False + False + [usPackages,usCompiler,usLinker,usVersionInfo] + False + False + + + + False + False + False + False + False + True + False + False + %package_path% + + + + False + %modules_dcp_path% + False + + False + + False + True + False + False + True + 4194304 + False + False + False + True + %library_path% + 0 + False + 0 + 1048576 + 16384 + + True + True + %output_path% + False + + False + fa8 + False + False + + True + True + False + False + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + False + True + + + + + + 0 + + True + False + False + True + True + 0 + 1252 + 12 + Release + False + + + True + True + + False + + False + False + True + True + False + False + False + False + False + False + False + False + 3082 + + 1 + 0 + 0 + False + 0 + + + True + 0 + + + rcBorland + 1000 + + False + False + False + False + [usPackages,usCompiler,usLinker,usVersionInfo] + False + False + + + + False + False + False + False + False + True + False + False + %package_path% + + + + False + %modules_dcp_path% + False + + False + + False + True + False + False + True + 4194304 + False + False + False + True + %library_path% + 0 + False + 0 + 1048576 + 16384 + + True + True + %output_path% + False + + False + fa8 + False + False + + True + True + False + False + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + False + True + + + + + + 0 + + True + False + False + True + True + 0 + 1252 + 12 + Release + False + + + True + True + + False + + False + False + True + True + False + False + False + False + False + False + False + False + 3082 + + 1 + 0 + 0 + False + 0 + + + True + 0 + + + rcBorland + 1000 + + False + False + False + False + [usPackages,usCompiler,usLinker,usVersionInfo] + False + False + + + + False + False + False + False + False + True + False + False + %package_path% + + + + False + %modules_dcp_path% + False + + False + + False + True + False + False + True + 4194304 + False + False + False + True + %library_path% + 0 + False + 0 + 1048576 + 16384 + + True + True + %output_path% + False + + False + fa8 + False + False + + True + True + False + False + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + False + True + + + + + + 0 + + True + False + False + True + True + 0 + 1252 + 12 + Release + False + + + True + True + + False + + False + False + True + True + False + False + False + False + False + False + False + False + 3082 + + 1 + 0 + 0 + False + 0 + + + True + 0 + + + rcBorland + 1000 + + False + False + False + False + [usPackages,usCompiler,usLinker,usVersionInfo] + False + False + + + + False + False + False + False + False + True + False + False + %package_path% + + + + False + %modules_dcp_path% + False + + False + + False + True + False + False + True + 4194304 + False + False + False + True + %library_path% + 0 + False + 0 + 1048576 + 16384 + + True + True + %output_path% + False + + False + fa8 + False + False + + True + True + False + False + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + False + True + + + + + + + 0 + + + + True + True + False + True + False + + 0 + False + 0 + 1000 + False + + + + 0 + + True + False + False + True + True + 0 + 1252 + 12 + Release + False + + + True + True + + False + + False + False + True + True + False + False + False + False + False + False + False + False + 3082 + + 1 + 0 + 0 + False + 0 + + + True + 0 + + + rcBorland + 1000 + + False + False + False + False + [usPackages,usCompiler,usLinker,usVersionInfo] + False + False + + + + False + False + False + False + False + True + False + False + %package_path% + + + + False + %modules_dcp_path% + False + + False + + False + True + False + False + True + 4194304 + False + False + False + True + %library_path% + 0 + False + 3 + 1048576 + 16384 + + True + True + %output_path% + False + + False + fa8 + False + False + + True + True + False + False + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + False + True + + + + + + 0 + + True + False + False + True + True + 0 + 1252 + 12 + Release + False + + + True + True + + False + + False + False + True + True + False + False + False + False + False + False + False + False + 3082 + + 1 + 0 + 0 + False + 0 + + + True + 0 + + + rcBorland + 1000 + + False + False + False + False + [usPackages,usCompiler,usLinker,usVersionInfo] + False + False + + + + False + False + False + False + False + True + False + False + %package_path% + + + + False + %modules_dcp_path% + False + + False + + False + True + False + False + True + 4194304 + False + False + False + True + %library_path% + 0 + False + 3 + 1048576 + 16384 + + True + True + %output_path% + False + + False + fa8 + False + False + + True + True + False + False + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + False + True + + + + + + 0 + + True + False + False + True + True + 0 + 1252 + 12 + Release + False + + + True + True + + False + + False + False + True + True + False + False + False + False + False + False + False + False + 3082 + + 1 + 0 + 0 + False + 0 + + + True + 0 + + + rcBorland + 1000 + + False + False + False + False + [usPackages,usCompiler,usLinker,usVersionInfo] + False + False + + + + False + False + False + False + False + True + False + False + %package_path% + + + + False + %modules_dcp_path% + False + + False + + False + True + False + False + True + 4194304 + False + False + False + True + %library_path% + 0 + False + 0 + 1048576 + 16384 + + True + True + %output_path% + False + + False + fa8 + False + False + + True + True + False + False + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + False + True + + + + + + 0 + + True + False + False + True + True + 0 + 1252 + 12 + Release + False + + + True + True + + False + + False + False + True + True + False + False + False + False + False + False + False + False + 3082 + + 1 + 0 + 0 + False + 0 + + + True + 0 + + + rcBorland + 1000 + + False + False + False + False + [usPackages,usCompiler,usLinker,usVersionInfo] + False + False + + + + False + False + False + False + False + True + False + False + %package_path% + + + + False + %modules_dcp_path% + False + + False + + False + True + False + False + True + 4194304 + False + False + False + True + %library_path% + 0 + False + 0 + 1048576 + 16384 + + True + True + %output_path% + False + + False + fa8 + False + False + + True + True + False + False + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + False + True + + + + + + 0 + + True + False + False + True + True + 0 + 1252 + 12 + Release + False + + + True + True + + False + + False + False + True + True + False + False + False + False + False + False + False + False + 3082 + + 1 + 0 + 0 + False + 0 + + + True + 0 + + + rcBorland + 1000 + + False + False + False + False + [usPackages,usCompiler,usLinker,usVersionInfo] + False + False + + + + False + False + False + False + False + True + False + False + %package_path% + + + + False + %modules_dcp_path% + False + + False + + False + True + False + False + True + 4194304 + False + False + False + True + %library_path% + 0 + False + 0 + 1048576 + 16384 + + True + True + %output_path% + False + + False + fa8 + False + False + + True + True + False + False + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + False + True + + + + + Familias + 0 + + Familias + True + True + False + True + False + + 0 + False + 0 + 1000 + False + + + + 0 + + True + False + False + True + True + 0 + 1252 + 12 + Release + False + + + True + True + + False + + False + False + True + True + False + False + False + False + False + False + False + False + 3082 + + 1 + 0 + 0 + False + 0 + %source_path%\Modulos\Familias\Model\Familias_model.dpk + True + 0 + + + rcBorland + 1000 + + False + False + False + False + [usPackages,usCompiler,usLinker,usVersionInfo] + False + False + + + + False + False + False + False + False + True + False + False + %package_path% + + + + False + %modules_dcp_path% + False + + False + + False + True + False + False + True + 4194304 + False + False + False + True + %library_path% + 0 + False + 0 + 1048576 + 16384 + + True + True + %output_path% + False + + False + fa8 + False + False + + True + True + False + False + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + False + True + + + + + + 0 + + True + False + False + True + True + 0 + 1252 + 12 + Release + False + + + True + True + + False + + False + False + True + True + False + False + False + False + False + False + False + False + 3082 + + 1 + 0 + 0 + False + 0 + %source_path%\Modulos\Familias\Data\Familias_data.dpk + True + 0 + + + rcBorland + 1000 + + False + False + False + False + [usPackages,usCompiler,usLinker,usVersionInfo] + False + False + + + + False + False + False + False + False + True + False + False + %package_path% + + + + False + %modules_dcp_path% + False + + False + + False + True + False + False + True + 4194304 + False + False + False + True + %library_path% + 0 + False + 0 + 1048576 + 16384 + + True + True + %output_path% + False + + False + fa8 + False + False + + True + True + False + False + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + False + True + + + + + + 0 + + True + False + False + True + True + 0 + 1252 + 12 + Release + False + + + True + True + + False + + False + False + True + True + False + False + False + False + False + False + False + False + 3082 + + 1 + 0 + 0 + False + 0 + %source_path%\Modulos\Familias\Controller\Familias_controller.dpk + True + 0 + + + rcBorland + 1000 + + False + False + False + False + [usPackages,usCompiler,usLinker,usVersionInfo] + False + False + + + + False + False + False + False + False + True + False + False + %package_path% + + + + False + %modules_dcp_path% + False + + False + + False + True + False + False + True + 4194304 + False + False + False + True + %library_path% + 0 + False + 0 + 1048576 + 16384 + + True + True + %output_path% + False + + False + fa8 + False + False + + True + True + False + False + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + False + True + + + + + + 0 + + True + False + False + True + True + 0 + 1252 + 12 + Release + False + + + True + True + + False + + False + False + True + True + False + False + False + False + False + False + False + False + 3082 + + 1 + 0 + 0 + False + 0 + %source_path%\Modulos\Familias\Views\Familias_view.dpk + True + 0 + + + rcBorland + 1000 + + False + False + False + False + [usPackages,usCompiler,usLinker,usVersionInfo] + False + False + + + + False + False + False + False + False + True + False + False + %package_path% + + + + False + %modules_dcp_path% + False + + False + + False + True + False + False + True + 4194304 + False + False + False + True + %library_path% + 0 + False + 0 + 1048576 + 16384 + + True + True + %output_path% + False + + False + fa8 + False + False + + True + True + False + False + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + False + True + + + + + + 0 + + True + False + False + True + True + 0 + 1252 + 12 + Release + False + + + True + True + + False + + False + False + True + True + False + False + False + False + False + False + False + False + 3082 + + 1 + 0 + 0 + False + 0 + %source_path%\Modulos\Familias\Plugin\Familias_plugin.dpk + True + 0 + + + rcBorland + 1000 + + False + False + False + False + [usPackages,usCompiler,usLinker,usVersionInfo] + False + False + + + + False + False + False + False + False + True + False + False + %package_path% + + + + False + %modules_dcp_path% + False + + False + + False + True + False + False + True + 4194304 + False + False + False + True + %library_path% + 0 + False + 0 + 1048576 + 16384 + + True + True + %output_path% + False + + False + fa8 + False + False + + True + True + False + False + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + False + True + + + + + Contactos + 0 + + Contactos + True + True + False + True + False + + 0 + False + 0 + 1000 + False + + + + 0 + + True + False + False + True + True + 0 + 1252 + 12 + Release + False + + + True + True + + False + + False + False + True + True + False + False + False + False + False + False + False + False + 3082 + + 1 + 0 + 0 + False + 0 + %source_path%\Modulos\Contactos\Model\Contactos_model.dpk + True + 0 + + + rcBorland + 1000 + + False + False + False + False + [usPackages,usCompiler,usLinker,usVersionInfo] + False + False + + + + False + False + False + False + False + True + False + False + %package_path% + + + + False + %modules_dcp_path% + False + + False + + False + True + False + False + True + 4194304 + False + False + False + True + %library_path% + 0 + False + 3 + 1048576 + 16384 + + True + True + %output_path% + False + + False + fa8 + False + False + + True + True + False + False + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + False + True + + + + + + 0 + + True + False + False + True + True + 0 + 1252 + 12 + Release + False + + + True + True + + False + + False + False + True + True + False + False + False + False + False + False + False + False + 3082 + + 1 + 0 + 0 + False + 0 + %source_path%\Modulos\Contactos\Data\Contactos_data.dpk + True + 0 + + + rcBorland + 1000 + + False + False + False + False + [usPackages,usCompiler,usLinker,usVersionInfo] + False + False + + + + False + False + False + False + False + True + False + False + %package_path% + + + + False + %modules_dcp_path% + False + + False + + False + True + False + False + True + 4194304 + False + False + False + True + %library_path% + 0 + False + 3 + 1048576 + 16384 + + True + True + %output_path% + False + + False + fa8 + False + False + + True + True + False + False + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + False + True + + + + + + 0 + + True + False + False + True + True + 0 + 1252 + 12 + Release + False + + + True + True + + False + + False + False + True + True + False + False + False + False + False + False + False + False + 3082 + + 1 + 0 + 0 + False + 0 + %source_path%\Modulos\Contactos\Controller\Contactos_controller.dpk + True + 0 + + + rcBorland + 1000 + + False + False + False + False + [usPackages,usCompiler,usLinker,usVersionInfo] + False + False + + + + False + False + False + False + False + True + False + False + %package_path% + + + + False + %modules_dcp_path% + False + + False + + False + True + False + False + True + 4194304 + False + False + False + True + %library_path% + 0 + False + 3 + 1048576 + 16384 + + True + True + %output_path% + False + + False + fa8 + False + False + + True + True + False + False + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + False + True + + + + + + 0 + + True + False + False + True + True + 0 + 1252 + 12 + Release + False + + + True + True + + False + + False + False + True + True + False + False + False + False + False + False + False + False + 3082 + + 1 + 0 + 0 + False + 0 + %source_path%\Modulos\Contactos\Views\Contactos_view.dpk + True + 0 + + + rcBorland + 1000 + + False + False + False + False + [usPackages,usCompiler,usLinker,usVersionInfo] + False + False + + + + False + False + False + False + False + True + False + False + %package_path% + + + + False + %modules_dcp_path% + False + + False + + False + True + False + False + True + 4194304 + False + False + False + True + %library_path% + 0 + False + 3 + 1048576 + 16384 + + True + True + %output_path% + False + + False + fa8 + False + False + + True + True + False + False + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + False + True + + + + + + 0 + + True + False + False + True + True + 0 + 1252 + 12 + Release + False + + + True + True + + False + + False + False + True + True + False + False + False + False + False + False + False + False + 3082 + + 1 + 0 + 0 + False + 0 + %source_path%\Modulos\Contactos\Plugin\Contactos_plugin.dpk + True + 0 + + + rcBorland + 1000 + + False + False + False + False + [usPackages,usCompiler,usLinker,usVersionInfo] + False + False + + + + False + False + False + False + False + True + False + False + %package_path% + + + + False + %modules_dcp_path% + False + + False + + False + True + False + False + True + 4194304 + False + False + False + True + %library_path% + 0 + False + 3 + 1048576 + 16384 + + True + True + %output_path% + False + + False + fa8 + False + False + + True + True + False + False + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + False + True + + + + + + + + 0 + + + + True + True + False + True + False + + 0 + True + 0 + 1000 + False + + + + 0 + + True + False + False + True + True + 0 + 1252 + 12 + Release + False + + + True + True + + False + + False + False + True + True + False + False + False + False + False + False + False + False + 3082 + + 1 + 0 + 0 + False + 0 + %source_path%\Modulos\Almacenes\Model\Almacenes_model.dpk + True + 0 + + + rcBorland + 1000 + + False + False + False + False + [usPackages,usCompiler,usLinker,usVersionInfo] + False + False + + + + False + False + False + False + True + True + False + False + %package_path% + + + + False + %modules_dcp_path% + False + + False + + False + True + False + False + True + 4194304 + False + False + False + True + %library_path% + 0 + False + 0 + 1048576 + 16384 + + True + True + %output_path% + False + + False + fa8 + False + False + + True + True + False + False + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + False + True + + + + + + 0 + + True + False + False + True + True + 0 + 1252 + 12 + Release + False + + + True + True + + False + + False + False + True + True + False + False + False + False + False + False + False + False + 3082 + + 1 + 0 + 0 + False + 0 + %source_path%\Modulos\Almacenes\Data\Almacenes_data.dpk + True + 0 + + + rcBorland + 1000 + + False + False + False + False + [usPackages,usCompiler,usLinker,usVersionInfo] + False + False + + + + False + False + False + False + True + True + False + False + %package_path% + + + + False + %modules_dcp_path% + False + + False + + False + True + False + False + True + 4194304 + False + False + False + True + %library_path% + 0 + False + 0 + 1048576 + 16384 + + True + True + %output_path% + False + + False + fa8 + False + False + + True + True + False + False + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + False + True + + + + + + 0 + + True + False + False + True + True + 0 + 1252 + 12 + Release + False + + + True + True + + False + + False + False + False + True + False + False + False + False + False + False + False + False + 3081 + + 1 + 0 + 0 + False + 0 + %source_path%\Modulos\Almacenes\Controller\Almacenes_controller.dpk + True + 0 + + + rcBorland + 1000 + + False + False + False + False + [usPackages,usCompiler,usLinker,usVersionInfo] + False + False + + + + False + False + False + False + True + True + False + False + %package_path% + + + + False + %modules_dcp_path% + False + + False + + False + True + False + False + True + 4194304 + False + False + False + True + %library_path% + 0 + False + 0 + 1048576 + 16384 + + True + True + %output_path% + False + + False + fa8 + False + False + + True + True + False + False + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + False + True + + + + + + 0 + + True + False + False + True + True + 0 + 1252 + 12 + Release + False + + + True + True + + False + + False + False + False + True + False + False + False + False + False + False + False + False + 3081 + + 1 + 0 + 0 + False + 0 + %source_path%\Modulos\Almacenes\Views\Almacenes_view.dpk + True + 0 + + + rcBorland + 1000 + + False + False + False + False + [usPackages,usCompiler,usLinker,usVersionInfo] + False + False + + + + False + False + False + False + True + True + False + False + %package_path% + + + + False + %modules_dcp_path% + False + + False + + False + True + False + False + True + 4194304 + False + False + False + True + %library_path% + 0 + False + 0 + 1048576 + 16384 + + True + True + %output_path% + False + + False + fa8 + False + False + + True + True + False + False + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + False + True + + + + + + 0 + + True + False + False + True + True + 0 + 1252 + 12 + Release + False + + + True + True + + False + + False + False + False + True + False + False + False + False + False + False + False + False + 3081 + + 1 + 0 + 0 + False + 0 + %source_path%\Modulos\Almacenes\Plugin\Almacenes_plugin.dpk + True + 0 + + + rcBorland + 1000 + + False + False + False + False + [usPackages,usCompiler,usLinker,usVersionInfo] + False + False + + + + False + False + False + False + True + True + False + False + %package_path% + + + + False + %modules_dcp_path% + False + + False + + False + True + False + False + True + 4194304 + False + False + False + True + %library_path% + 0 + False + 0 + 1048576 + 16384 + + True + True + %output_path% + False + + False + fa8 + False + False + + True + True + False + False + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + False + True + + + + + + + 0 + + + + True + True + False + True + False + + 0 + True + 0 + 1000 + False + + + + 0 + + True + False + False + True + True + 0 + 1252 + 12 + Release + False + + + True + True + + False + + False + False + True + True + False + False + False + False + False + False + False + False + 3082 + + 1 + 0 + 0 + False + 0 + %source_path%\Modulos\Articulos\Model\Articulos_model.dpk + True + 0 + + + rcBorland + 1000 + + False + False + False + False + [usPackages,usCompiler,usLinker,usVersionInfo] + False + False + + + + False + False + False + False + True + True + False + False + %package_path% + + + + False + %modules_dcp_path% + False + + False + + False + True + False + False + True + 4194304 + False + False + True + True + %library_path% + 0 + False + 0 + 1048576 + 16384 + + True + False + %output_path% + False + + False + fa8 + False + False + + True + True + True + False + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + False + True + + + + + + 0 + + True + False + False + True + True + 0 + 1252 + 12 + Release + False + + + True + True + + False + + False + False + False + True + False + False + False + False + False + False + False + False + 3081 + + 1 + 0 + 0 + False + 0 + %source_path%\Modulos\Articulos\Data\Articulos_data.dpk + True + 0 + + + rcBorland + 1000 + + False + False + False + False + [usPackages,usCompiler,usLinker,usVersionInfo] + False + False + + + + False + False + False + False + True + True + False + False + %package_path% + + + + False + %modules_dcp_path% + False + + False + + False + True + False + False + True + 4194304 + False + False + True + True + %library_path% + 0 + False + 0 + 1048576 + 16384 + + True + False + %output_path% + False + + False + fa8 + False + False + + True + True + True + False + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + False + True + + + + + + 0 + + True + False + False + True + True + 0 + 1252 + 12 + Release + False + + + True + True + + False + + False + False + False + True + False + False + False + False + False + False + False + False + 3081 + + 1 + 0 + 0 + False + 0 + %source_path%\Modulos\Articulos\Controller\Articulos_controller.dpk + True + 0 + + + rcBorland + 1000 + + False + False + False + False + [usPackages,usCompiler,usLinker,usVersionInfo] + False + False + + + + False + False + False + False + True + True + False + False + %package_path% + + + + False + %modules_dcp_path% + False + + False + + False + True + False + False + True + 4194304 + False + False + True + True + %library_path% + 0 + False + 0 + 1048576 + 16384 + + True + False + %output_path% + False + + False + fa8 + False + False + + True + True + True + False + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + False + True + + + + + + 0 + + True + False + False + True + True + 0 + 1252 + 12 + Release + False + + + True + True + + False + + False + False + False + True + False + False + False + False + False + False + False + False + 3081 + + 1 + 0 + 0 + False + 0 + %source_path%\Modulos\Articulos\Views\Articulos_view.dpk + True + 0 + + + rcBorland + 1000 + + False + False + False + False + [usPackages,usCompiler,usLinker,usVersionInfo] + False + False + + + + False + False + False + False + True + True + False + False + %package_path% + + + + False + %modules_dcp_path% + False + + False + + False + True + False + False + True + 4194304 + False + False + True + True + %library_path% + 0 + False + 0 + 1048576 + 16384 + + True + False + %output_path% + False + + False + fa8 + False + False + + True + True + True + False + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + False + True + + + + + + 0 + + True + False + False + True + True + 0 + 1252 + 12 + Release + False + + + True + True + + False + + False + False + False + True + False + False + False + False + False + False + False + False + 3081 + + 1 + 0 + 0 + False + 0 + %source_path%\Modulos\Articulos\Plugin\Articulos_plugin.dpk + True + 0 + + + rcBorland + 1000 + + False + False + False + False + [usPackages,usCompiler,usLinker,usVersionInfo] + False + False + + + + False + False + False + False + True + True + False + False + %package_path% + + + + False + %modules_dcp_path% + False + + False + + False + True + False + False + True + 4194304 + False + False + False + True + %library_path% + 0 + False + 0 + 1048576 + 16384 + + True + True + %output_path% + False + + False + fa8 + False + False + + True + True + False + False + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + False + True + + + + + Ventas + 0 + + Ventas + True + True + False + True + False + + 0 + True + 0 + 1000 + False + + + + 0 + + + + True + True + False + True + False + + 0 + False + 0 + 1000 + False + + + + 0 + + True + False + False + True + True + 0 + 1252 + 12 + Release + False + + + True + True + + False + + False + False + True + True + False + False + False + False + False + False + False + False + 3082 + + 1 + 0 + 0 + False + 0 + + + True + 0 + + + rcBorland + 1000 + + False + False + False + False + [usPackages,usCompiler,usLinker,usVersionInfo] + False + False + + + + False + False + False + False + True + True + False + False + %package_path% + + + + False + %modules_dcp_path% + False + + False + + False + True + False + False + True + 4194304 + False + False + False + True + %library_path% + 0 + False + 0 + 1048576 + 16384 + + True + True + %output_path% + False + + False + fa8 + False + False + + True + True + False + False + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + False + True + + + + + + 0 + + True + False + False + True + True + 0 + 1252 + 12 + Release + False + + + True + True + + False + + False + False + True + True + False + False + False + False + False + False + False + False + 3082 + + 1 + 0 + 0 + False + 0 + + + True + 0 + + + rcBorland + 1000 + + False + False + False + False + [usPackages,usCompiler,usLinker,usVersionInfo] + False + False + + + + False + False + False + False + True + True + False + False + %package_path% + + + + False + %modules_dcp_path% + False + + False + + False + True + False + False + True + 4194304 + False + False + False + True + %library_path% + 0 + False + 3 + 1048576 + 16384 + + True + True + %output_path% + False + + False + fa8 + False + False + + True + True + False + False + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + False + True + + + + + + 0 + + True + False + False + True + True + 0 + 1252 + 12 + Release + False + + + True + True + + False + + False + False + False + True + False + False + False + False + False + False + False + False + 3081 + + 1 + 0 + 0 + False + 0 + + + True + 0 + + + rcBorland + 1000 + + False + False + False + False + [usPackages,usCompiler,usLinker,usVersionInfo] + False + False + + + + False + False + False + False + True + True + False + False + %package_path% + + + + False + %modules_dcp_path% + False + + False + + False + True + False + False + True + 4194304 + False + False + False + True + %library_path% + 0 + False + 0 + 1048576 + 16384 + + True + True + %output_path% + False + + False + fa8 + False + False + + True + True + False + False + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + False + True + + + + + + 0 + + True + False + False + True + True + 0 + 1252 + 12 + Release + False + + + True + True + + False + + False + False + False + True + False + False + False + False + False + False + False + False + 3081 + + 1 + 0 + 0 + False + 0 + + + True + 0 + + + rcBorland + 1000 + + False + False + False + False + [usPackages,usCompiler,usLinker,usVersionInfo] + False + False + + + + False + False + False + False + True + True + False + False + %package_path% + + + + False + %modules_dcp_path% + False + + False + + False + True + False + False + True + 4194304 + False + False + False + True + %library_path% + 0 + False + 0 + 1048576 + 16384 + + True + True + %output_path% + False + + False + fa8 + False + False + + True + True + False + False + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + False + True + + + + + + 0 + + True + False + False + True + True + 0 + 1252 + 12 + Release + False + + + True + True + + False + + False + False + False + True + False + False + False + False + False + False + False + False + 3081 + + 1 + 0 + 0 + False + 0 + + + True + 0 + + + rcBorland + 1000 + + False + False + False + False + [usPackages,usCompiler,usLinker,usVersionInfo] + False + False + + + + False + False + False + False + True + True + False + False + %package_path% + + + + False + %modules_dcp_path% + False + + False + + False + True + False + False + True + 4194304 + False + False + False + True + %library_path% + 0 + False + 3 + 1048576 + 16384 + + True + True + %output_path% + False + + False + fa8 + False + False + + True + True + False + False + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + False + True + + + + + + + 0 + + + + True + True + False + True + False + + 0 + False + 0 + 1000 + False + + + + 0 + + True + False + False + True + True + 0 + 1252 + 12 + Release + False + + + True + True + + False + + False + False + False + True + False + False + False + False + False + False + False + False + 3081 + + 1 + 0 + 0 + False + 0 + + + True + 0 + + + rcBorland + 1000 + + False + False + False + False + [usPackages,usCompiler,usLinker,usVersionInfo] + False + False + + + + False + False + False + False + True + True + False + False + %package_path% + + + + False + %modules_dcp_path% + False + + False + + False + True + False + False + True + 4194304 + False + False + True + True + %library_path% + 0 + False + 0 + 1048576 + 16384 + + True + False + %output_path% + False + + False + fa8 + False + False + + True + True + True + False + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + False + True + + + + + + 0 + + True + False + False + True + True + 0 + 1252 + 12 + Release + False + + + True + True + + False + + False + False + False + True + False + False + False + False + False + False + False + False + 3081 + + 1 + 0 + 0 + False + 0 + + + True + 0 + + + rcBorland + 1000 + + False + False + False + False + [usPackages,usCompiler,usLinker,usVersionInfo] + False + False + + + + False + False + False + False + True + True + False + False + %package_path% + + + + False + %modules_dcp_path% + False + + False + + False + True + False + False + True + 4194304 + False + False + True + True + %library_path% + 0 + False + 0 + 1048576 + 16384 + + True + False + %output_path% + False + + False + fa8 + False + False + + True + True + True + False + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + False + True + + + + + + 0 + + True + False + False + True + True + 0 + 1252 + 12 + Release + False + + + True + True + + False + + False + False + False + True + False + False + False + False + False + False + False + False + 3081 + + 1 + 0 + 0 + False + 0 + + + True + 0 + + + rcBorland + 1000 + + False + False + False + False + [usPackages,usCompiler,usLinker,usVersionInfo] + False + False + + + + False + False + False + False + True + True + False + False + %package_path% + + + + False + %modules_dcp_path% + False + + False + + False + True + False + False + True + 4194304 + False + False + True + True + %library_path% + 0 + False + 0 + 1048576 + 16384 + + True + False + %output_path% + False + + False + fa8 + False + False + + True + True + True + False + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + False + True + + + + + + 0 + + True + False + False + True + True + 0 + 1252 + 12 + Release + False + + + True + True + + False + + False + False + False + True + False + False + False + False + False + False + False + False + 3081 + + 1 + 0 + 0 + False + 0 + + + True + 0 + + + rcBorland + 1000 + + False + False + False + False + [usPackages,usCompiler,usLinker,usVersionInfo] + False + False + + + + False + False + False + False + True + True + False + False + %package_path% + + + + False + %modules_dcp_path% + False + + False + + False + True + False + False + True + 4194304 + False + False + False + True + %library_path% + 0 + False + 0 + 1048576 + 16384 + + True + True + %output_path% + False + + False + fa8 + False + False + + True + True + False + False + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + False + True + + + + + + 0 + + True + False + False + True + True + 0 + 1252 + 12 + Release + False + + + True + True + + False + + False + False + False + True + False + False + False + False + False + False + False + False + 3081 + + 0 + 0 + 0 + False + 0 + + + True + 0 + + + rcBorland + 1000 + + False + False + False + False + [usPackages,usCompiler,usLinker,usVersionInfo] + False + False + + + + False + False + False + False + True + True + False + False + %package_path% + + + + False + %modules_dcp_path% + True + + True + + False + True + False + False + True + 4194304 + False + False + False + True + %library_path% + 0 + True + 3 + 1048576 + 16384 + + True + True + %output_path% + False + + False + fa8 + True + False + + True + True + False + False + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + False + True + + + + + + 0 + + True + False + False + True + True + 0 + 1252 + 12 + Release + False + + + True + True + + False + + False + False + False + True + False + False + False + False + False + False + False + False + 3081 + + 1 + 0 + 0 + False + 0 + + + True + 0 + + + rcBorland + 1000 + + False + False + False + False + [usPackages,usCompiler,usLinker,usVersionInfo] + False + False + + + + False + False + False + False + True + True + False + False + %package_path% + + + + False + %modules_dcp_path% + False + + False + + False + True + False + False + True + 4194304 + False + False + True + True + %library_path% + 0 + False + 0 + 1048576 + 16384 + + True + False + %output_path% + False + + False + fa8 + False + False + + True + True + True + False + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + False + True + + + + + + 0 + + True + False + False + True + True + 0 + 1252 + 12 + Release + False + + + True + True + + False + + False + False + False + True + False + False + False + False + False + False + False + False + 3081 + + 1 + 0 + 0 + False + 0 + + + True + 0 + + + rcBorland + 1000 + + False + False + False + False + [usPackages,usCompiler,usLinker,usVersionInfo] + False + False + + + + False + False + False + False + True + True + False + False + %package_path% + + + + False + %modules_dcp_path% + False + + False + + False + True + False + False + True + 4194304 + False + False + False + True + %library_path% + 0 + False + 0 + 1048576 + 16384 + + True + True + %output_path% + False + + False + fa8 + False + False + + True + True + False + False + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + False + True + + + + + + + 0 + + + + True + True + False + True + False + + 0 + False + 0 + 1000 + False + + + + 0 + + True + False + False + True + True + 0 + 1252 + 12 + Release + False + + + True + True + + False + + False + False + True + True + False + False + False + False + False + False + False + False + 3082 + + 1 + 0 + 0 + False + 0 + + + True + 0 + + + rcBorland + 1000 + + False + False + False + False + [usPackages,usCompiler,usLinker,usVersionInfo] + False + False + + + + False + False + False + False + True + True + False + False + %package_path% + + + + False + %modules_dcp_path% + False + + False + + False + True + False + False + True + 4194304 + False + False + False + True + %library_path% + 0 + False + 3 + 1048576 + 16384 + + True + True + %output_path% + False + + False + fa8 + False + False + + True + True + False + False + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + False + True + + + + + + 0 + + True + False + False + True + True + 0 + 1252 + 12 + Release + False + + + True + True + + False + + False + False + True + True + False + False + False + False + False + False + False + False + 3082 + + 1 + 0 + 0 + False + 0 + + + True + 0 + + + rcBorland + 1000 + + False + False + False + False + [usPackages,usCompiler,usLinker,usVersionInfo] + False + False + + + + False + False + False + False + True + True + False + False + %package_path% + + + + False + %modules_dcp_path% + False + + False + + False + True + False + False + True + 4194304 + False + False + False + True + %library_path% + 0 + False + 3 + 1048576 + 16384 + + True + True + %output_path% + False + + False + fa8 + False + False + + True + True + False + False + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + False + True + + + + + + 0 + + True + False + False + True + True + 0 + 1252 + 12 + Release + False + + + True + True + + False + + False + False + True + True + False + False + False + False + False + False + False + False + 3082 + + 1 + 0 + 0 + False + 0 + + + True + 0 + + + rcBorland + 1000 + + False + False + False + False + [usPackages,usCompiler,usLinker,usVersionInfo] + False + False + + + + False + False + False + False + True + True + False + False + %package_path% + + + + False + %modules_dcp_path% + False + + False + + False + True + False + False + True + 4194304 + False + False + False + True + %library_path% + 0 + False + 3 + 1048576 + 16384 + + True + True + %output_path% + False + + False + fa8 + False + False + + True + True + False + False + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + False + True + + + + + + + 0 + + + + True + True + False + True + False + + 0 + False + 0 + 1000 + False + + + + 0 + + True + False + False + True + True + 0 + 1252 + 12 + Release + False + + + True + True + + False + + False + False + True + True + False + False + False + False + False + False + False + False + 3082 + + 1 + 0 + 0 + False + 0 + + + True + 0 + + + rcBorland + 1000 + + False + False + False + False + [usPackages,usCompiler,usLinker,usVersionInfo] + False + False + + + + False + False + False + False + True + True + False + False + %package_path% + + + + False + %modules_dcp_path% + False + + False + + False + True + False + False + True + 4194304 + False + False + False + True + %library_path% + 0 + False + 3 + 1048576 + 16384 + + True + True + %output_path% + False + + False + fa8 + False + False + + True + True + False + False + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + False + True + + + + + + 0 + + True + False + False + True + True + 0 + 1252 + 12 + Release + False + + + True + True + + False + + False + False + False + True + False + False + False + False + False + False + False + False + 3081 + + 1 + 0 + 0 + False + 0 + + + True + 0 + + + rcBorland + 1000 + + False + False + False + False + [usPackages,usCompiler,usLinker,usVersionInfo] + False + False + + + + False + False + False + False + True + True + False + False + %package_path% + + + + False + %modules_dcp_path% + False + + False + + False + True + False + False + True + 4194304 + False + False + False + True + %library_path% + 0 + False + 3 + 1048576 + 16384 + + True + True + %output_path% + False + + False + fa8 + False + False + + True + True + False + False + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + False + True + + + + + + 0 + + True + False + False + True + True + 0 + 1252 + 12 + Release + False + + + True + True + + False + + False + False + True + True + False + False + False + False + False + False + False + False + 3082 + + 1 + 0 + 0 + False + 0 + + + True + 0 + + + rcBorland + 1000 + + False + False + False + False + [usPackages,usCompiler,usLinker,usVersionInfo] + False + False + + + + False + False + False + False + True + True + False + False + %package_path% + + + + False + %modules_dcp_path% + False + + False + + False + True + False + False + True + 4194304 + False + False + False + True + %library_path% + 0 + False + 3 + 1048576 + 16384 + + True + True + %output_path% + False + + False + fa8 + False + False + + True + True + False + False + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + False + True + + + + + + + 0 + + + + True + True + False + True + False + + 0 + False + 0 + 1000 + False + + + + 0 + + True + False + False + True + True + 0 + 1252 + 12 + Release + False + + + True + True + + False + + False + False + True + True + False + False + False + False + False + False + False + False + 3082 + + 1 + 0 + 0 + False + 0 + + + True + 0 + + + rcBorland + 1000 + + False + False + False + False + [usPackages,usCompiler,usLinker,usVersionInfo] + False + False + + + + False + False + False + False + True + True + False + False + %package_path% + + + + False + %modules_dcp_path% + False + + False + + False + True + False + False + True + 4194304 + False + False + False + True + %library_path% + 0 + False + 3 + 1048576 + 16384 + + True + True + %output_path% + False + + False + fa8 + False + False + + True + True + False + False + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + False + True + + + + + + 0 + + True + False + False + True + True + 0 + 1252 + 12 + Release + False + + + True + True + + False + + False + False + True + True + False + False + False + False + False + False + False + False + 3082 + + 1 + 0 + 0 + False + 0 + + + True + 0 + + + rcBorland + 1000 + + False + False + False + False + [usPackages,usCompiler,usLinker,usVersionInfo] + False + False + + + + False + False + False + False + True + True + False + False + %package_path% + + + + False + %modules_dcp_path% + False + + False + + False + True + False + False + True + 4194304 + False + False + False + True + %library_path% + 0 + False + 3 + 1048576 + 16384 + + True + True + %output_path% + False + + False + fa8 + False + False + + True + True + False + False + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + False + True + + + + + + 0 + + True + False + False + True + True + 0 + 1252 + 12 + Release + False + + + True + True + + False + + False + False + False + True + False + False + False + False + False + False + False + False + 3081 + + 1 + 0 + 0 + False + 0 + + + True + 0 + + + rcBorland + 1000 + + False + False + False + False + [usPackages,usCompiler,usLinker,usVersionInfo] + False + False + + + + False + False + False + False + True + True + False + False + %package_path% + + + + False + %modules_dcp_path% + False + + False + + False + True + False + False + True + 4194304 + False + False + False + True + %library_path% + 0 + False + 3 + 1048576 + 16384 + + True + True + %output_path% + False + + False + fa8 + False + False + + True + True + False + False + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + False + True + + + + + + + 0 + + + + False + True + False + True + False + + 0 + False + 0 + 1000 + False + + + + 0 + + True + False + False + True + True + 0 + 1252 + 11 + Release + False + + + True + True + + False + + False + False + False + True + False + False + False + False + False + False + False + False + 3081 + + 0 + 0 + 0 + False + 0 + %source_path%\Modulos\Comisiones\Model\Comisiones_model.dpk + True + 0 + + + rcBorland + 1000 + + False + False + False + False + [] + False + False + + + + False + False + False + True + True + True + False + False + %package_path% + + + + False + %modules_dcp_path% + True + + True + + False + True + False + False + True + 4194304 + False + False + False + True + %library_path% + 0 + True + 0 + 1048576 + 16384 + + True + True + %output_path% + False + + False + fa8 + True + False + + True + True + False + False + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + False + True + + + + + + 0 + + True + False + False + True + True + 0 + 1252 + 11 + Release + False + + + True + True + + False + + False + False + False + True + False + False + False + False + False + False + False + False + 3081 + + 0 + 0 + 0 + False + 0 + %source_path%\Modulos\Comisiones\Data\Comisiones_data.dpk + True + 0 + + + rcBorland + 1000 + + False + False + False + False + [] + False + False + + + + False + False + False + True + True + True + False + False + %package_path% + + + + False + %modules_dcp_path% + True + + True + + False + True + False + False + True + 4194304 + False + False + False + True + %library_path% + 0 + True + 0 + 1048576 + 16384 + + True + True + %output_path% + False + + False + fa8 + True + False + + True + True + False + False + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + False + True + + + + + + 0 + + True + False + False + True + True + 0 + 1252 + 11 + Release + False + + + True + True + + False + + False + False + False + True + False + False + False + False + False + False + False + False + 3081 + + 0 + 0 + 0 + False + 0 + %source_path%\Modulos\Comisiones\Controller\Comisiones_controller.dpk + True + 0 + + + rcBorland + 1000 + + False + False + False + False + [] + False + False + + + + False + False + False + True + True + True + False + False + %package_path% + + + + False + %modules_dcp_path% + True + + True + + False + True + False + False + True + 4194304 + False + False + False + True + %library_path% + 0 + True + 0 + 1048576 + 16384 + + True + True + %output_path% + False + + False + fa8 + True + False + + True + True + False + False + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + False + True + + + + + + Compras + 0 + + Compras + True + True + False + True + False + + 0 + True + 0 + 1000 + False + + + + 0 + + + + True + True + False + True + False + + 0 + False + 0 + 1000 + False + + + + 0 + + True + False + False + True + True + 0 + 1252 + 12 + Release + False + + + True + True + + False + + False + False + False + True + False + False + False + False + False + False + False + False + 3081 + + 1 + 0 + 0 + False + 0 + + + True + 0 + + + rcBorland + 1000 + + False + False + False + False + [usPackages,usCompiler,usLinker,usVersionInfo] + False + False + + + + False + False + False + False + True + True + False + False + %package_path% + + + + False + %modules_dcp_path% + False + + False + + False + True + False + False + True + 4194304 + False + False + False + True + %library_path% + 0 + False + 3 + 1048576 + 16384 + + True + True + %output_path% + False + + False + fa8 + False + False + + True + True + False + False + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + False + True + + + + + + 0 + + True + False + False + True + True + 0 + 1252 + 12 + Release + False + + + True + True + + False + + False + False + False + True + False + False + False + False + False + False + False + False + 3081 + + 1 + 0 + 0 + False + 0 + + + True + 0 + + + rcBorland + 1000 + + False + False + False + False + [usPackages,usCompiler,usLinker,usVersionInfo] + False + False + + + + False + False + False + False + True + True + False + False + %package_path% + + + + False + %modules_dcp_path% + False + + False + + False + True + False + False + True + 4194304 + False + False + False + True + %library_path% + 0 + False + 3 + 1048576 + 16384 + + True + True + %output_path% + False + + False + fa8 + False + False + + True + True + False + False + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + False + True + + + + + + 0 + + True + False + False + True + True + 0 + 1252 + 12 + Release + False + + + True + True + + False + + False + False + True + True + False + False + False + False + False + False + False + False + 3082 + + 1 + 0 + 0 + False + 0 + + + True + 0 + + + rcBorland + 1000 + + False + False + False + False + [usPackages,usCompiler,usLinker,usVersionInfo] + False + False + + + + False + False + False + False + True + True + False + False + %package_path% + + + + False + %modules_dcp_path% + False + + False + + False + True + False + False + True + 4194304 + False + False + False + True + %library_path% + 0 + False + 3 + 1048576 + 16384 + + True + True + %output_path% + False + + False + fa8 + False + False + + True + True + False + False + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + False + True + + + + + + 0 + + True + False + False + True + True + 0 + 1252 + 12 + Release + False + + + True + True + + False + + False + False + True + True + False + False + False + False + False + False + False + False + 3082 + + 1 + 0 + 0 + False + 0 + + + True + 0 + + + rcBorland + 1000 + + False + False + False + False + [usPackages,usCompiler,usLinker,usVersionInfo] + False + False + + + + False + False + False + False + True + True + False + False + %package_path% + + + + False + %modules_dcp_path% + False + + False + + False + True + False + False + True + 4194304 + False + False + False + True + %library_path% + 0 + False + 3 + 1048576 + 16384 + + True + True + %output_path% + False + + False + fa8 + False + False + + True + True + False + False + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + False + True + + + + + + + 0 + + + + True + True + False + True + False + + 0 + False + 0 + 1000 + False + + + + 0 + + True + False + False + True + True + 0 + 1252 + 12 + Release + False + + + True + True + + False + + False + False + True + True + False + False + False + False + False + False + False + False + 3082 + + 1 + 0 + 0 + False + 0 + + + True + 0 + + + rcBorland + 1000 + + False + False + False + False + [usPackages,usCompiler,usLinker,usVersionInfo] + False + False + + + + False + False + False + False + True + True + False + False + %package_path% + + + + False + %modules_dcp_path% + False + + False + + False + True + False + False + True + 4194304 + False + False + False + True + %library_path% + 0 + False + 0 + 1048576 + 16384 + + True + True + %output_path% + False + + False + fa8 + False + False + + True + True + False + False + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + False + True + + + + + + 0 + + True + False + False + True + True + 0 + 1252 + 12 + Release + False + + + True + True + + False + + False + False + True + True + False + False + False + False + False + False + False + False + 3082 + + 1 + 0 + 0 + False + 0 + + + True + 0 + + + rcBorland + 1000 + + False + False + False + False + [usPackages,usCompiler,usLinker,usVersionInfo] + False + False + + + + False + False + False + False + True + True + False + False + %package_path% + + + + False + %modules_dcp_path% + False + + False + + False + True + False + False + True + 4194304 + False + False + False + True + %library_path% + 0 + False + 3 + 1048576 + 16384 + + True + True + %output_path% + False + + False + fa8 + False + False + + True + True + False + False + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + False + True + + + + + + 0 + + True + False + False + True + True + 0 + 1252 + 12 + Release + False + + + True + True + + False + + False + False + True + True + False + False + False + False + False + False + False + False + 3082 + + 1 + 0 + 0 + False + 0 + + + True + 0 + + + rcBorland + 1000 + + False + False + False + False + [usPackages,usCompiler,usLinker,usVersionInfo] + False + False + + + + False + False + False + False + True + True + False + False + %package_path% + + + + False + %modules_dcp_path% + False + + False + + False + True + False + False + True + 4194304 + False + False + False + True + %library_path% + 0 + False + 0 + 1048576 + 16384 + + True + True + %output_path% + False + + False + fa8 + False + False + + True + True + False + False + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + False + True + + + + + + 0 + + True + False + False + True + True + 0 + 1252 + 12 + Release + False + + + True + True + + False + + False + False + False + True + False + False + False + False + False + False + False + False + 3081 + + 1 + 0 + 0 + False + 0 + + + True + 0 + + + rcBorland + 1000 + + False + False + False + False + [usPackages,usCompiler,usLinker,usVersionInfo] + False + False + + + + False + False + False + False + True + True + False + False + %package_path% + + + + False + %modules_dcp_path% + False + + False + + False + True + False + False + True + 4194304 + False + False + False + True + %library_path% + 0 + False + 0 + 1048576 + 16384 + + True + True + %output_path% + False + + False + fa8 + False + False + + True + True + False + False + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + False + True + + + + + + 0 + + True + False + False + True + True + 0 + 1252 + 12 + Release + False + + + True + True + + False + + False + False + False + True + False + False + False + False + False + False + False + False + 3081 + + 1 + 0 + 0 + False + 0 + + + True + 0 + + + rcBorland + 1000 + + False + False + False + False + [usPackages,usCompiler,usLinker,usVersionInfo] + False + False + + + + False + False + False + False + True + True + False + False + %package_path% + + + + False + %modules_dcp_path% + False + + False + + False + True + False + False + True + 4194304 + False + False + False + True + %library_path% + 0 + False + 3 + 1048576 + 16384 + + True + True + %output_path% + False + + False + fa8 + False + False + + True + True + False + False + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + False + True + + + + + + + 0 + + + + True + True + False + True + False + + 0 + False + 0 + 1000 + False + + + + 0 + + True + False + False + True + True + 0 + 1252 + 12 + Release + False + + + True + True + + False + + False + False + False + True + False + False + False + False + False + False + False + False + 3081 + + 1 + 0 + 0 + False + 0 + + + True + 0 + + + rcBorland + 1000 + + False + False + False + False + [usPackages,usCompiler,usLinker,usVersionInfo] + False + False + + + + False + False + False + False + True + True + False + False + %package_path% + + + + False + %modules_dcp_path% + False + + False + + False + True + False + False + True + 4194304 + False + False + True + True + %library_path% + 0 + False + 0 + 1048576 + 16384 + + True + False + %output_path% + False + + False + fa8 + False + False + + True + True + True + False + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + False + True + + + + + + 0 + + True + False + False + True + True + 0 + 1252 + 12 + Release + False + + + True + True + + False + + False + False + False + True + False + False + False + False + False + False + False + False + 3081 + + 1 + 0 + 0 + False + 0 + + + True + 0 + + + rcBorland + 1000 + + False + False + False + False + [usPackages,usCompiler,usLinker,usVersionInfo] + False + False + + + + False + False + False + False + True + True + False + False + %package_path% + + + + False + %modules_dcp_path% + False + + False + + False + True + False + False + True + 4194304 + False + False + True + True + %library_path% + 0 + False + 0 + 1048576 + 16384 + + True + False + %output_path% + False + + False + fa8 + False + False + + True + True + True + False + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + False + True + + + + + + 0 + + True + False + False + True + True + 0 + 1252 + 12 + Release + False + + + True + True + + False + + False + False + False + True + False + False + False + False + False + False + False + False + 3081 + + 1 + 0 + 0 + False + 0 + + + True + 0 + + + rcBorland + 1000 + + False + False + False + False + [usPackages,usCompiler,usLinker,usVersionInfo] + False + False + + + + False + False + False + False + True + True + False + False + %package_path% + + + + False + %modules_dcp_path% + False + + False + + False + True + False + False + True + 4194304 + False + False + True + True + %library_path% + 0 + False + 0 + 1048576 + 16384 + + True + False + %output_path% + False + + False + fa8 + False + False + + True + True + True + False + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + False + True + + + + + + 0 + + True + False + False + True + True + 0 + 1252 + 12 + Release + False + + + True + True + + False + + False + False + False + True + False + False + False + False + False + False + False + False + 3081 + + 1 + 0 + 0 + False + 0 + + + True + 0 + + + rcBorland + 1000 + + False + False + False + False + [usPackages,usCompiler,usLinker,usVersionInfo] + False + False + + + + False + False + False + False + True + True + False + False + %package_path% + + + + False + %modules_dcp_path% + False + + False + + False + True + False + False + True + 4194304 + False + False + True + True + %library_path% + 0 + False + 0 + 1048576 + 16384 + + True + False + %output_path% + False + + False + fa8 + False + False + + True + True + True + False + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + False + True + + + + + + 0 + + True + False + False + True + True + 0 + 1252 + 12 + Release + False + + + True + True + + False + + False + False + False + True + False + False + False + False + False + False + False + False + 3081 + + 1 + 0 + 0 + False + 0 + + + True + 0 + + + rcBorland + 1000 + + False + False + False + False + [usPackages,usCompiler,usLinker,usVersionInfo] + False + False + + + + False + False + False + False + True + True + False + False + %package_path% + + + + False + %modules_dcp_path% + False + + False + + False + True + False + False + True + 4194304 + False + False + False + True + %library_path% + 0 + False + 0 + 1048576 + 16384 + + True + True + %output_path% + False + + False + fa8 + False + False + + True + True + False + False + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + False + True + + + + + + + 0 + + + + True + True + False + True + False + + 0 + False + 0 + 1000 + False + + + + 0 + + True + False + False + True + True + 0 + 1252 + 12 + Release + False + + + True + True + + False + + False + False + False + True + False + False + False + False + False + False + False + False + 3081 + + 1 + 0 + 0 + False + 0 + + + True + 0 + + + rcBorland + 1000 + + False + False + False + False + [usPackages,usCompiler,usLinker,usVersionInfo] + False + False + + + + False + False + False + False + True + True + False + False + %package_path% + + + + False + %modules_dcp_path% + False + + False + + False + True + False + False + True + 4194304 + False + False + False + True + %library_path% + 0 + False + 3 + 1048576 + 16384 + + True + True + %output_path% + False + + False + fa8 + False + False + + True + True + False + False + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + False + True + + + + + + 0 + + True + False + False + True + True + 0 + 1252 + 12 + Release + False + + + True + True + + False + + False + False + False + True + False + False + False + False + False + False + False + False + 3081 + + 1 + 0 + 0 + False + 0 + + + True + 0 + + + rcBorland + 1000 + + False + False + False + False + [usPackages,usCompiler,usLinker,usVersionInfo] + False + False + + + + False + False + False + False + True + True + False + False + %package_path% + + + + False + %modules_dcp_path% + False + + False + + False + True + False + False + True + 4194304 + False + False + False + True + %library_path% + 0 + False + 3 + 1048576 + 16384 + + True + True + %output_path% + False + + False + fa8 + False + False + + True + True + False + False + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + False + True + + + + + + 0 + + True + False + False + True + True + 0 + 1252 + 12 + Release + False + + + True + True + + False + + False + False + True + True + False + False + False + False + False + False + False + False + 3082 + + 1 + 0 + 0 + False + 0 + + + True + 0 + + + rcBorland + 1000 + + False + False + False + False + [usPackages,usCompiler,usLinker,usVersionInfo] + False + False + + + + False + False + False + False + True + True + False + False + %package_path% + + + + False + %modules_dcp_path% + False + + False + + False + True + False + False + True + 4194304 + False + False + False + True + %library_path% + 0 + False + 3 + 1048576 + 16384 + + True + True + %output_path% + False + + False + fa8 + False + False + + True + True + False + False + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + False + True + + + + + + + 0 + + + + True + True + False + True + False + + 0 + False + 0 + 1000 + False + + + + 0 + + True + False + False + True + True + 0 + 1252 + 12 + Release + False + + + True + True + + False + + False + False + True + True + False + False + False + False + False + False + False + False + 3082 + + 1 + 0 + 0 + False + 0 + + + True + 0 + + + rcBorland + 1000 + + False + False + False + False + [usPackages,usCompiler,usLinker,usVersionInfo] + False + False + + + + False + False + False + False + True + True + False + False + %package_path% + + + + False + %modules_dcp_path% + False + + False + + False + True + False + False + True + 4194304 + False + False + False + True + %library_path% + 0 + False + 3 + 1048576 + 16384 + + True + True + %output_path% + False + + False + fa8 + False + False + + True + True + False + False + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + False + True + + + + + + 0 + + True + False + False + True + True + 0 + 1252 + 12 + Release + False + + + True + True + + False + + False + False + True + True + False + False + False + False + False + False + False + False + 3082 + + 1 + 0 + 0 + False + 0 + + + True + 0 + + + rcBorland + 1000 + + False + False + False + False + [usPackages,usCompiler,usLinker,usVersionInfo] + False + False + + + + False + False + False + False + True + True + False + False + %package_path% + + + + False + %modules_dcp_path% + False + + False + + False + True + False + False + True + 4194304 + False + False + False + True + %library_path% + 0 + False + 3 + 1048576 + 16384 + + True + True + %output_path% + False + + False + fa8 + False + False + + True + True + False + False + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + False + True + + + + + + 0 + + True + False + False + True + True + 0 + 1252 + 12 + Release + False + + + True + True + + False + + False + False + True + True + False + False + False + False + False + False + False + False + 3082 + + 1 + 0 + 0 + False + 0 + + + True + 0 + + + rcBorland + 1000 + + False + False + False + False + [usPackages,usCompiler,usLinker,usVersionInfo] + False + False + + + + False + False + False + False + True + True + False + False + %package_path% + + + + False + %modules_dcp_path% + False + + False + + False + True + False + False + True + 4194304 + False + False + False + True + %library_path% + 0 + False + 3 + 1048576 + 16384 + + True + True + %output_path% + False + + False + fa8 + False + False + + True + True + False + False + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + False + True + + + + + + Logística + 0 + + Logística + True + True + False + True + False + + 0 + True + 0 + 1000 + False + + + + 0 + + + + True + True + False + True + False + + 0 + False + 0 + 1000 + False + + + + 0 + + True + False + False + True + True + 0 + 1252 + 12 + Release + False + + + True + True + + False + + False + False + False + True + False + False + False + False + False + False + False + False + 3081 + + 1 + 0 + 0 + False + 0 + %source_path%\Modulos\Inventario\Model\Inventario_model.dpk + True + 0 + + + rcBorland + 1000 + + False + False + False + False + [usPackages,usCompiler,usLinker,usVersionInfo] + False + False + + + + False + False + False + False + True + True + False + False + %package_path% + + + + False + %modules_dcp_path% + False + + False + + False + True + False + False + True + 4194304 + False + False + False + True + %library_path% + 0 + False + 0 + 1048576 + 16384 + + True + True + %output_path% + False + + False + fa8 + False + False + + True + True + False + False + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + False + True + + + + + + 0 + + True + False + False + True + True + 0 + 1252 + 12 + Release + False + + + True + True + + False + + False + False + False + True + False + False + False + False + False + False + False + False + 3081 + + 1 + 0 + 0 + False + 0 + %source_path%\Modulos\Inventario\Data\Inventario_data.dpk + True + 0 + + + rcBorland + 1000 + + False + False + False + False + [usPackages,usCompiler,usLinker,usVersionInfo] + False + False + + + + False + False + False + False + True + True + False + False + %package_path% + + + + False + %modules_dcp_path% + False + + False + + False + True + False + False + True + 4194304 + False + False + False + True + %library_path% + 0 + False + 0 + 1048576 + 16384 + + True + True + %output_path% + False + + False + fa8 + False + False + + True + True + False + False + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + False + True + + + + + + 0 + + True + False + False + True + True + 0 + 1252 + 12 + Release + False + + + True + True + + False + + False + False + False + True + False + False + False + False + False + False + False + False + 3081 + + 1 + 0 + 0 + False + 0 + %source_path%\Modulos\Inventario\Controller\Inventario_controller.dpk + True + 0 + + + rcBorland + 1000 + + False + False + False + False + [usPackages,usCompiler,usLinker,usVersionInfo] + False + False + + + + False + False + False + False + True + True + False + False + %package_path% + + + + False + %modules_dcp_path% + False + + False + + False + True + False + False + True + 4194304 + False + False + False + True + %library_path% + 0 + False + 0 + 1048576 + 16384 + + True + True + %output_path% + False + + False + fa8 + False + False + + True + True + False + False + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + False + True + + + + + + + 0 + + + + True + True + False + True + False + + 0 + False + 0 + 1000 + False + + + + 0 + + True + False + False + True + True + 0 + 1252 + 12 + Release + False + + + True + True + + False + + False + False + True + True + False + False + False + False + False + False + False + False + 3082 + + 1 + 0 + 0 + False + 0 + + + True + 0 + + + rcBorland + 1000 + + False + False + False + False + [usPackages,usCompiler,usLinker,usVersionInfo] + False + False + + + + False + False + False + False + True + True + False + False + %package_path% + + + + False + %modules_dcp_path% + False + + False + + False + True + False + False + True + 4194304 + False + False + False + True + %library_path% + 0 + False + 0 + 1048576 + 16384 + + True + True + %output_path% + False + + False + fa8 + False + False + + True + True + False + False + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + False + True + + + + + + 0 + + True + False + False + True + True + 0 + 1252 + 12 + Release + False + + + True + True + + False + + False + False + True + True + False + False + False + False + False + False + False + False + 3082 + + 1 + 0 + 0 + False + 0 + + + True + 0 + + + rcBorland + 1000 + + False + False + False + False + [usPackages,usCompiler,usLinker,usVersionInfo] + False + False + + + + False + False + False + False + True + True + False + False + %package_path% + + + + False + %modules_dcp_path% + False + + False + + False + True + False + False + True + 4194304 + False + False + False + True + %library_path% + 0 + False + 0 + 1048576 + 16384 + + True + True + %output_path% + False + + False + fa8 + False + False + + True + True + False + False + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + False + True + + + + + + 0 + + True + False + False + True + True + 0 + 1252 + 12 + Release + False + + + True + True + + False + + False + False + True + True + False + False + False + False + False + False + False + False + 3082 + + 1 + 0 + 0 + False + 0 + + + True + 0 + + + rcBorland + 1000 + + False + False + False + False + [usPackages,usCompiler,usLinker,usVersionInfo] + False + False + + + + False + False + False + False + True + True + False + False + %package_path% + + + + False + %modules_dcp_path% + False + + False + + False + True + False + False + True + 4194304 + False + False + False + True + %library_path% + 0 + False + 0 + 1048576 + 16384 + + True + True + %output_path% + False + + False + fa8 + False + False + + True + True + False + False + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + False + True + + + + + + Relaciones + 0 + + Relaciones + False + True + False + True + False + + 0 + True + 0 + 1000 + False + + + + 0 + + True + False + False + True + True + 0 + 1252 + 11 + Release + False + + + True + True + + False + + False + False + False + True + False + False + False + False + False + False + False + False + 3081 + + 0 + 0 + 0 + False + 0 + + + True + 0 + + + rcBorland + 1000 + + False + False + False + False + [] + False + False + + + + False + False + False + True + True + True + False + False + %package_path% + + + + False + %modules_dcp_path% + True + + True + + False + True + False + False + True + 4194304 + False + False + False + True + %library_path% + 0 + True + 0 + 1048576 + 16384 + + True + True + %output_path% + False + + False + fa8 + True + False + + True + True + False + False + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + False + True + + + + + + 0 + + True + False + False + True + True + 0 + 1252 + 11 + Release + False + + + True + True + + False + + False + False + False + True + False + False + False + False + False + False + False + False + 3081 + + 0 + 0 + 0 + False + 0 + + + True + 0 + + + rcBorland + 1000 + + False + False + False + False + [] + False + False + + + + False + False + False + True + True + True + False + False + %package_path% + + + + False + %modules_dcp_path% + True + + True + + False + True + False + False + True + 4194304 + False + False + False + True + %library_path% + 0 + True + 0 + 1048576 + 16384 + + True + True + %output_path% + False + + False + fa8 + True + False + + True + True + False + False + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + False + True + + + + + + + + 0 + + True + False + False + True + True + 0 + 1252 + 11 + Release + False + + + True + True + + False + + False + False + False + True + False + False + False + False + False + False + False + False + 3081 + + 0 + 0 + 0 + False + 0 + + + True + 0 + + + rcBorland + 1000 + + False + False + False + False + [] + False + False + + + + False + False + False + True + True + True + False + False + %package_path% + + + + False + %modules_dcp_path% + True + + True + + False + True + False + False + True + 4194304 + False + False + False + True + + + 0 + True + 0 + 1048576 + 16384 + + True + True + %output_path% + False + + False + fa8 + True + False + + True + True + False + False + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + False + True + + + + + + + + 0 + + True + False + False + True + True + 0 + 1252 + 11 + Release + False + + + True + True + + False + + False + False + False + True + False + False + False + False + False + False + False + False + 3081 + + 0 + 0 + 0 + False + 0 + + + True + 0 + + + rcBorland + 1000 + + False + False + False + False + [] + False + False + + + + False + False + False + True + True + True + False + False + %package_path% + + + + False + %modules_dcp_path% + True + + True + + False + True + False + False + True + 4194304 + False + False + False + True + + + 0 + True + 0 + 1048576 + 16384 + + True + True + %output_path% + False + + False + fa8 + True + False + + True + True + False + False + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + False + True + + + + + + + + 0 + + True + False + False + True + True + 0 + 1252 + 11 + Release + False + + + True + True + + False + + False + False + False + True + False + False + False + False + False + False + False + False + 3081 + + 0 + 0 + 0 + False + 0 + + + True + 0 + + + rcBorland + 1000 + + False + False + False + False + [] + False + False + + + + False + False + False + True + True + True + False + False + %package_path% + + + + False + %modules_dcp_path% + True + + True + + False + True + False + False + True + 4194304 + False + False + False + True + + + 0 + True + 0 + 1048576 + 16384 + + True + True + %output_path% + False + + False + fa8 + True + False + + True + True + False + False + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + False + True + + + + + + + + 0 + + True + False + False + True + True + 0 + 1252 + 11 + Release + False + + + True + True + + False + + False + False + False + True + False + False + False + False + False + False + False + False + 3081 + + 0 + 0 + 0 + False + 0 + + + True + 0 + + + rcBorland + 1000 + + False + False + False + False + [] + False + False + + + + False + False + False + True + True + True + False + False + %package_path% + + + + False + %modules_dcp_path% + True + + True + + False + True + False + False + True + 4194304 + False + False + False + True + + + 0 + True + 0 + 1048576 + 16384 + + True + True + %output_path% + False + + False + fa8 + True + False + + True + True + False + False + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + False + True + + + + + + 0 + + True + False + False + True + True + 0 + 1252 + 11 + Release + False + + + True + True + + False + + False + False + False + True + False + False + False + False + False + False + False + False + 3081 + + 0 + 0 + 0 + False + 0 + + + True + 0 + + + rcBorland + 1000 + + False + False + False + False + [] + False + False + + + + False + False + False + True + True + True + False + False + %package_path% + + + + False + %modules_dcp_path% + True + + True + + False + True + False + False + True + 4194304 + False + False + False + True + + 0 + True + 0 + 1048576 + 16384 + + True + True + %output_path% + False + + False + fa8 + True + False + + True + True + False + False + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + False + True + + + + + + 0 + + True + False + False + True + True + 0 + 1252 + 11 + Release + False + + + True + True + + False + + False + False + False + True + False + False + False + False + False + False + False + False + 3081 + + 0 + 0 + 0 + False + 0 + + + True + 0 + + + rcBorland + 1000 + + False + False + False + False + [] + False + False + + + + False + False + False + True + True + True + False + False + %package_path% + + + + False + %modules_dcp_path% + True + + True + + False + True + False + False + True + 4194304 + False + False + False + True + %library_path% + 0 + True + 0 + 1048576 + 16384 + + True + True + %output_path% + False + + False + fa8 + True + False + + True + True + False + False + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + False + True + + + + + + 0 + + True + False + False + True + True + 0 + 1252 + 11 + Release + False + + + True + True + + False + + False + False + False + True + False + False + False + False + False + False + False + False + 3081 + + 0 + 0 + 0 + False + 0 + + + True + 0 + + + rcBorland + 1000 + + False + False + False + False + [] + False + False + + + + False + False + False + True + True + True + False + False + %package_path% + + + + False + %modules_dcp_path% + True + + True + + False + True + False + False + True + 4194304 + False + False + False + True + %library_path% + 0 + True + 0 + 1048576 + 16384 + + True + True + %output_path% + False + + False + fa8 + True + False + + True + True + False + False + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + False + True + + + + + + + 0 + + + + True + True + False + True + False + + 0 + True + 0 + 1000 + False + + + + 0 + + True + False + False + True + True + 0 + 1252 + 12 + Release + False + + + True + True + + False + + False + False + True + True + False + False + False + False + False + False + False + False + 3082 + + 1 + 0 + 0 + False + 0 + + + True + 0 + + + rcBorland + 1000 + + False + False + False + False + [usPackages,usCompiler,usLinker,usVersionInfo] + False + False + + + + False + False + False + False + True + True + False + False + %package_path% + + + + False + %modules_dcp_path% + False + + False + + False + True + False + False + True + 4194304 + False + False + False + True + %library_path% + 0 + False + 3 + 1048576 + 16384 + + True + True + %output_path% + False + + False + fa8 + False + False + + True + True + False + False + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + False + True + + + + + + 0 + + True + False + False + True + True + 0 + 1252 + 12 + Release + False + + + True + True + + False + + False + False + True + True + False + False + False + False + False + False + False + False + 3082 + + 1 + 0 + 0 + False + 0 + + + True + 0 + + + rcBorland + 1000 + + False + False + False + False + [usPackages,usCompiler,usLinker,usVersionInfo] + False + False + + + + False + False + False + False + True + True + False + False + %package_path% + + + + False + %modules_dcp_path% + False + + False + + False + True + False + False + True + 4194304 + False + False + False + True + %library_path% + 0 + False + 3 + 1048576 + 16384 + + True + True + %output_path% + False + + False + fa8 + False + False + + True + True + False + False + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + False + True + + + + + + 0 + + True + False + False + True + True + 0 + 1252 + 12 + Release + False + + + True + True + + False + + False + False + False + True + False + False + False + False + False + False + False + False + 3081 + + 1 + 0 + 0 + False + 0 + + + True + 0 + + + rcBorland + 1000 + + False + False + False + False + [usPackages,usCompiler,usLinker,usVersionInfo] + False + False + + + + False + False + False + False + True + True + False + False + %package_path% + + + + False + %modules_dcp_path% + False + + False + + False + True + False + False + True + 4194304 + False + False + False + True + %library_path% + 0 + False + 3 + 1048576 + 16384 + + True + True + %output_path% + False + + False + fa8 + False + False + + True + True + False + False + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + False + True + + + + + + 0 + + True + False + False + True + True + 0 + 1252 + 12 + Release + False + + + True + True + + False + + False + False + False + True + False + False + False + False + False + False + False + False + 3081 + + 1 + 0 + 0 + False + 0 + + + True + 0 + + + rcBorland + 1000 + + False + False + False + False + [usPackages,usCompiler,usLinker,usVersionInfo] + False + False + + + + False + False + False + False + True + True + False + False + %package_path% + + + + False + %modules_dcp_path% + False + + False + + False + True + False + False + True + 4194304 + False + False + False + True + %library_path% + 0 + False + 3 + 1048576 + 16384 + + True + True + %output_path% + False + + False + fa8 + False + False + + True + True + False + False + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + False + True + + + + + + 0 + + True + False + False + True + True + 0 + 1252 + 12 + Release + False + + + True + True + + False + + False + False + False + True + False + False + False + False + False + False + False + False + 3081 + + 1 + 0 + 0 + False + 0 + + + True + 0 + + + rcBorland + 1000 + + False + False + False + False + [usPackages,usCompiler,usLinker,usVersionInfo] + False + False + + + + False + False + False + False + True + True + False + False + %package_path% + + + + False + %modules_dcp_path% + False + + False + + False + True + False + False + True + 4194304 + False + False + False + True + %library_path% + 0 + False + 3 + 1048576 + 16384 + + True + True + %output_path% + False + + False + fa8 + False + False + + True + True + False + False + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + False + True + + + + + + 0 + + True + False + False + True + True + 0 + 1252 + 12 + Release + False + + + True + True + + False + + False + False + False + True + False + False + False + False + False + False + False + False + 3081 + + 0 + 0 + 0 + False + 0 + + + True + 0 + + + rcBorland + 1000 + + False + False + False + False + [usPackages,usCompiler,usLinker,usVersionInfo] + False + False + + + + False + False + False + False + True + True + False + False + %package_path% + + + + False + %modules_dcp_path% + True + + True + + False + True + False + False + True + 4194304 + False + False + False + True + %library_path% + 0 + True + 3 + 1048576 + 16384 + + True + True + %output_path% + False + + False + fa8 + True + False + + True + True + False + False + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + False + True + + + + + + 0 + + True + False + False + True + True + 0 + 1252 + 12 + Release + False + + + True + True + + False + + False + False + True + True + False + False + False + False + False + False + False + False + 3082 + + 1 + 0 + 0 + False + 0 + %source_path%\Modulos\Inventario\Views\Inventario_view.dpk + True + 0 + + + rcBorland + 1000 + + False + False + False + False + [usPackages,usCompiler,usLinker,usVersionInfo] + False + False + + + + False + False + False + False + True + True + False + False + %package_path% + + + + False + %modules_dcp_path% + False + + False + + False + True + False + False + True + 4194304 + False + False + False + True + %library_path% + 0 + False + 0 + 1048576 + 16384 + + True + True + %output_path% + False + + False + fa8 + False + False + + True + True + False + False + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + False + True + + + + + + 0 + + True + False + False + True + True + 0 + 1252 + 12 + Release + False + + + True + True + + False + + False + False + True + True + False + False + False + False + False + False + False + False + 3082 + + 1 + 0 + 0 + False + 0 + %source_path%\Modulos\Inventario\Plugin\Inventario_plugin.dpk + True + 0 + + + rcBorland + 1000 + + False + False + False + False + [usPackages,usCompiler,usLinker,usVersionInfo] + False + False + + + + False + False + False + False + True + True + False + False + %package_path% + + + + False + %modules_dcp_path% + False + + False + + False + True + False + False + True + 4194304 + False + False + False + True + %library_path% + 0 + False + 0 + 1048576 + 16384 + + True + True + %output_path% + False + + False + fa8 + False + False + + True + True + False + False + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + False + True + + + + + + 0 + + True + False + False + True + True + 0 + 1252 + 12 + Release + False + + + True + True + + False + + False + False + True + True + False + False + False + False + False + False + False + False + 3082 + + 1 + 0 + 0 + False + 0 + + + True + 0 + + + rcBorland + 1000 + + False + False + False + False + [usPackages,usCompiler,usLinker,usVersionInfo] + False + False + + + + False + False + False + False + True + True + False + False + %package_path% + + + + False + %modules_dcp_path% + False + + False + + False + True + False + False + True + 4194304 + False + False + False + True + %library_path% + 0 + False + 0 + 1048576 + 16384 + + True + True + %output_path% + False + + False + fa8 + False + False + + True + True + False + False + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + False + True + + + + + + 0 + + True + False + False + True + True + 0 + 1252 + 12 + Release + False + + + True + True + + False + + False + False + True + True + False + False + False + False + False + False + False + False + 3082 + + 1 + 0 + 0 + False + 0 + + + True + 0 + + + rcBorland + 1000 + + False + False + False + False + [usPackages,usCompiler,usLinker,usVersionInfo] + False + False + + + + False + False + False + False + True + True + False + False + %package_path% + + + + False + %modules_dcp_path% + False + + False + + False + True + False + False + True + 4194304 + False + False + False + True + %library_path% + 0 + False + 0 + 1048576 + 16384 + + True + True + %output_path% + False + + False + fa8 + False + False + + True + True + False + False + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + False + True + + + + + + 0 + + True + False + False + True + True + 0 + 1252 + 12 + Release + False + + + True + True + + False + + False + False + False + True + False + False + False + False + False + False + False + False + 3081 + + 1 + 0 + 0 + False + 0 + + + True + 0 + + + rcBorland + 1000 + + False + False + False + False + [usPackages,usCompiler,usLinker,usVersionInfo] + False + False + + + + False + False + False + False + True + True + False + False + %package_path% + + + + False + %modules_dcp_path% + False + + False + + False + True + False + False + True + 4194304 + False + False + False + True + %library_path% + 0 + False + 3 + 1048576 + 16384 + + True + True + %output_path% + False + + False + fa8 + False + False + + True + True + False + False + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + False + True + + + + + + 0 + + True + False + False + True + True + 0 + 1252 + 12 + Release + False + + + True + True + + False + + False + False + False + True + False + False + False + False + False + False + False + False + 3081 + + 1 + 0 + 0 + False + 0 + + + True + 0 + + + rcBorland + 1000 + + False + False + False + False + [usPackages,usCompiler,usLinker,usVersionInfo] + False + False + + + + False + False + False + False + True + True + False + False + %package_path% + + + + False + %modules_dcp_path% + False + + False + + False + True + False + False + True + 4194304 + False + False + False + True + %library_path% + 0 + False + 3 + 1048576 + 16384 + + True + True + %output_path% + False + + False + fa8 + False + False + + True + True + False + False + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + False + True + + + + + + 0 + + True + False + False + True + True + 0 + 1252 + 12 + Release + False + + + True + True + + False + + False + False + True + True + False + False + False + False + False + False + False + False + 3082 + + 1 + 0 + 0 + False + 0 + + + True + 0 + + + rcBorland + 1000 + + False + False + False + False + [usPackages,usCompiler,usLinker,usVersionInfo] + False + False + + + + False + False + False + False + True + True + False + False + %package_path% + + + + False + %modules_dcp_path% + False + + False + + False + True + False + False + True + 4194304 + False + False + False + True + %library_path% + 0 + False + 3 + 1048576 + 16384 + + True + True + %output_path% + False + + False + fa8 + False + False + + True + True + False + False + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + False + True + + + + + + 0 + + True + False + False + True + True + 0 + 1252 + 12 + Release + False + + + True + True + + False + + False + False + True + True + False + False + False + False + False + False + False + False + 3082 + + 1 + 0 + 0 + False + 0 + + + True + 0 + + + rcBorland + 1000 + + False + False + False + False + [usPackages,usCompiler,usLinker,usVersionInfo] + False + False + + + + False + False + False + False + True + True + False + False + %package_path% + + + + False + %modules_dcp_path% + False + + False + + False + True + False + False + True + 4194304 + False + False + False + True + %library_path% + 0 + False + 3 + 1048576 + 16384 + + True + True + %output_path% + False + + False + fa8 + False + False + + True + True + False + False + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + False + True + + + + + + 0 + + True + False + False + True + True + 0 + 1252 + 12 + Release + False + + + True + True + + False + + False + False + False + True + False + False + False + False + False + False + False + False + 3081 + + 0 + 0 + 0 + False + 0 + + + True + 0 + + + rcBorland + 1000 + + False + False + False + False + [usPackages,usCompiler,usLinker,usVersionInfo] + False + False + + + + False + False + False + False + True + True + False + False + %package_path% + + + + False + %modules_dcp_path% + True + + True + + False + True + False + False + True + 4194304 + False + False + False + True + %library_path% + 0 + True + 3 + 1048576 + 16384 + + True + True + %output_path% + False + + False + fa8 + True + False + + True + True + False + False + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + False + True + + + + + + 0 + + True + False + False + True + True + 0 + 1252 + 11 + Release + False + + + False + True + + False + + False + False + False + True + False + False + False + False + False + False + False + False + 3081 + + 0 + 0 + 0 + False + 0 + %source_path%\Modulos\Comisiones\Views\Comisiones_view.dpk + True + 0 + + + rcBorland + 1000 + + False + False + False + False + [] + False + False + + + + False + False + False + True + True + True + False + False + %package_path% + + + + False + %modules_dcp_path% + True + + True + + False + True + False + False + True + 4194304 + False + False + False + True + %library_path% + 0 + True + 0 + 1048576 + 16384 + + True + True + %output_path% + False + + False + fa8 + True + False + + True + True + False + False + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + False + True + + + + + + 0 + + True + False + False + True + True + 0 + 1252 + 11 + Release + False + + + False + True + + False + + False + False + False + True + False + False + False + False + False + False + False + False + 3081 + + 0 + 0 + 0 + False + 0 + %source_path%\Modulos\Comisiones\Plugin\Comisiones_plugin.dpk + True + 0 + + + rcBorland + 1000 + + False + False + False + False + [] + False + False + + + + False + False + False + True + True + True + False + False + %package_path% + + + + False + %modules_dcp_path% + True + + True + + False + True + False + False + True + 4194304 + False + False + False + True + %library_path% + 0 + True + 0 + 1048576 + 16384 + + True + True + %output_path% + False + + False + fa8 + True + False + + True + True + False + False + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + False + True + + + + + + 0 + + True + False + False + True + True + 0 + 1252 + 12 + Release + False + + + True + True + + False + + False + False + False + True + False + False + False + False + False + False + False + False + 3081 + + 0 + 0 + 0 + False + 0 + + + True + 0 + + + rcBorland + 1000 + + False + False + False + False + [usPackages,usCompiler,usLinker,usVersionInfo] + False + False + + + + False + False + False + False + True + True + False + False + %package_path% + + + + False + %modules_dcp_path% + True + + True + + False + True + False + False + True + 4194304 + False + False + False + True + %library_path% + 0 + True + 3 + 1048576 + 16384 + + True + True + %output_path% + False + + False + fa8 + True + False + + True + True + False + False + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + False + True + + + + + + 0 + + True + False + False + True + True + 0 + 1252 + 12 + Release + False + + + True + True + + False + + False + False + False + True + False + False + False + False + False + False + False + False + 3081 + + 0 + 0 + 0 + False + 0 + + + True + 0 + + + rcBorland + 1000 + + False + False + False + False + [usPackages,usCompiler,usLinker,usVersionInfo] + False + False + + + + False + False + False + False + True + True + False + False + %package_path% + + + + False + %modules_dcp_path% + True + + True + + False + True + False + False + True + 4194304 + False + False + False + True + %library_path% + 0 + True + 3 + 1048576 + 16384 + + True + True + %output_path% + False + + False + fa8 + True + False + + True + True + False + False + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + False + True + + + + + + 0 + + True + False + False + True + True + 0 + 1252 + 12 + Release + False + + + True + True + + False + + False + False + True + True + False + False + False + False + False + False + False + False + 3082 + + 1 + 0 + 0 + False + 0 + + + True + 0 + + + rcBorland + 1000 + + False + False + False + False + [usPackages,usCompiler,usLinker,usVersionInfo] + False + False + + + + False + False + False + False + True + True + False + False + %package_path% + + + + False + %modules_dcp_path% + False + + False + + False + True + False + False + True + 4194304 + False + False + False + True + %library_path% + 0 + False + 0 + 1048576 + 16384 + + True + True + %output_path% + False + + False + fa8 + False + False + + True + True + False + False + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + False + True + + + + + + 0 + + True + False + False + True + True + 0 + 1252 + 12 + Release + False + + + True + True + + False + + False + False + False + True + False + False + False + False + False + False + False + False + 3081 + + 0 + 0 + 0 + False + 0 + + + True + 0 + + + rcBorland + 1000 + + False + False + False + False + [usPackages,usCompiler,usLinker,usVersionInfo] + False + False + + + + False + False + False + False + True + True + False + False + %package_path% + + + + False + %modules_dcp_path% + True + + True + + False + True + False + False + True + 4194304 + False + False + False + True + %library_path% + 0 + True + 3 + 1048576 + 16384 + + True + True + %output_path% + False + + False + fa8 + True + False + + True + True + False + False + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + False + True + + + + + Contabilidad + 0 + + Contabilidad + True + True + False + True + False + + 0 + False + 0 + 1000 + False + + + + 0 + + + + True + True + False + True + False + + 0 + False + 0 + 1000 + False + + + + 0 + + True + False + False + True + True + 0 + 1252 + 12 + Release + False + + + True + True + + False + + False + False + True + True + False + False + False + False + False + False + False + False + 3082 + + 1 + 0 + 0 + False + 0 + + + True + 0 + + + rcBorland + 1000 + + False + False + False + False + [usPackages,usCompiler,usLinker,usVersionInfo] + False + False + + + + False + False + False + False + False + True + False + False + %package_path% + + + + False + %modules_dcp_path% + False + + False + + False + True + False + False + True + 4194304 + False + False + False + True + %library_path% + 0 + False + 0 + 1048576 + 16384 + + True + True + %output_path% + False + + False + fa8 + False + False + + True + True + False + False + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + False + True + + + + + + 0 + + True + False + False + True + True + 0 + 1252 + 12 + Release + False + + + True + True + + False + + False + False + True + True + False + False + False + False + False + False + False + False + 3082 + + 1 + 0 + 0 + False + 0 + + + True + 0 + + + rcBorland + 1000 + + False + False + False + False + [usPackages,usCompiler,usLinker,usVersionInfo] + False + False + + + + False + False + False + False + False + True + False + False + %package_path% + + + + False + %modules_dcp_path% + False + + False + + False + True + False + False + True + 4194304 + False + False + False + True + %library_path% + 0 + False + 0 + 1048576 + 16384 + + True + True + %output_path% + False + + False + fa8 + False + False + + True + True + False + False + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + False + True + + + + + + 0 + + True + False + False + True + True + 0 + 1252 + 12 + Release + False + + + True + True + + False + + False + False + True + True + False + False + False + False + False + False + False + False + 3082 + + 1 + 0 + 0 + False + 0 + + + True + 0 + + + rcBorland + 1000 + + False + False + False + False + [usPackages,usCompiler,usLinker,usVersionInfo] + False + False + + + + False + False + False + False + False + True + False + False + %package_path% + + + + False + %modules_dcp_path% + False + + False + + False + True + False + False + True + 4194304 + False + False + False + True + %library_path% + 0 + False + 0 + 1048576 + 16384 + + True + True + %output_path% + False + + False + fa8 + False + False + + True + True + False + False + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + False + True + + + + + + 0 + + True + False + False + True + True + 0 + 1252 + 12 + Release + False + + + True + True + + False + + False + False + True + True + False + False + False + False + False + False + False + False + 3082 + + 1 + 0 + 0 + False + 0 + + + True + 0 + + + rcBorland + 1000 + + False + False + False + False + [usPackages,usCompiler,usLinker,usVersionInfo] + False + False + + + + False + False + False + False + False + True + False + False + %package_path% + + + + False + %modules_dcp_path% + False + + False + + False + True + False + False + True + 4194304 + False + False + False + True + %library_path% + 0 + False + 0 + 1048576 + 16384 + + True + True + %output_path% + False + + False + fa8 + False + False + + True + True + False + False + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + False + True + + + + + + 0 + + True + False + False + True + True + 0 + 1252 + 12 + Release + False + + + True + True + + False + + False + False + True + True + False + False + False + False + False + False + False + False + 3082 + + 1 + 0 + 0 + False + 0 + + + True + 0 + + + rcBorland + 1000 + + False + False + False + False + [usPackages,usCompiler,usLinker,usVersionInfo] + False + False + + + + False + False + False + False + False + True + False + False + %package_path% + + + + False + %modules_dcp_path% + False + + False + + False + True + False + False + True + 4194304 + False + False + False + True + %library_path% + 0 + False + 0 + 1048576 + 16384 + + True + True + %output_path% + False + + False + fa8 + False + False + + True + True + False + False + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + False + True + + + + + Balances + 0 + + Balances + True + True + False + True + False + + 0 + False + 0 + 1000 + False + + + + 0 + + True + False + False + True + True + 0 + 1252 + 12 + Release + False + + + True + True + + False + + False + False + True + True + False + False + False + False + False + False + False + False + 3082 + + 1 + 0 + 0 + False + 0 + + + True + 0 + + + rcBorland + 1000 + + False + False + False + False + [usPackages,usCompiler,usLinker,usVersionInfo] + False + False + + + + False + False + False + False + False + True + False + False + %package_path% + + + + False + %modules_dcp_path% + False + + False + + False + True + False + False + True + 4194304 + False + False + False + True + %library_path% + 0 + False + 0 + 1048576 + 16384 + + True + True + %output_path% + False + + False + fa8 + False + False + + True + True + False + False + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + False + True + + + + + + 0 + + True + False + False + True + True + 0 + 1252 + 12 + Release + False + + + True + True + + False + + False + False + True + True + False + False + False + False + False + False + False + False + 3082 + + 1 + 0 + 0 + False + 0 + + + True + 0 + + + rcBorland + 1000 + + False + False + False + False + [usPackages,usCompiler,usLinker,usVersionInfo] + False + False + + + + False + False + False + False + False + True + False + False + %package_path% + + + + False + %modules_dcp_path% + False + + False + + False + True + False + False + True + 4194304 + False + False + False + True + %library_path% + 0 + False + 0 + 1048576 + 16384 + + True + True + %output_path% + False + + False + fa8 + False + False + + True + True + False + False + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + False + True + + + + + + 0 + + True + False + False + True + True + 0 + 1252 + 12 + Release + False + + + True + True + + False + + False + False + True + True + False + False + False + False + False + False + False + False + 3082 + + 1 + 0 + 0 + False + 0 + + + True + 0 + + + rcBorland + 1000 + + False + False + False + False + [usPackages,usCompiler,usLinker,usVersionInfo] + False + False + + + + False + False + False + False + False + True + False + False + %package_path% + + + + False + %modules_dcp_path% + False + + False + + False + True + False + False + True + 4194304 + False + False + False + True + %library_path% + 0 + False + 0 + 1048576 + 16384 + + True + True + %output_path% + False + + False + fa8 + False + False + + True + True + False + False + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + False + True + + + + + + 0 + + True + False + False + True + True + 0 + 1252 + 12 + Release + False + + + True + True + + False + + False + False + True + True + False + False + False + False + False + False + False + False + 3082 + + 1 + 0 + 0 + False + 0 + + + True + 0 + + + rcBorland + 1000 + + False + False + False + False + [usPackages,usCompiler,usLinker,usVersionInfo] + False + False + + + + False + False + False + False + False + True + False + False + %package_path% + + + + False + %modules_dcp_path% + False + + False + + False + True + False + False + True + 4194304 + False + False + False + True + %library_path% + 0 + False + 0 + 1048576 + 16384 + + True + True + %output_path% + False + + False + fa8 + False + False + + True + True + False + False + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + False + True + + + + + + 0 + + True + False + False + True + True + 0 + 1252 + 12 + Release + False + + + True + True + + False + + False + False + True + True + False + False + False + False + False + False + False + False + 3082 + + 1 + 0 + 0 + False + 0 + + + True + 0 + + + rcBorland + 1000 + + False + False + False + False + [usPackages,usCompiler,usLinker,usVersionInfo] + False + False + + + + False + False + False + False + False + True + False + False + %package_path% + + + + False + %modules_dcp_path% + False + + False + + False + True + False + False + True + 4194304 + False + False + False + True + %library_path% + 0 + False + 0 + 1048576 + 16384 + + True + True + %output_path% + False + + False + fa8 + False + False + + True + True + False + False + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + False + True + + + + + Ejercicios + 0 + + Ejercicios + True + True + False + True + False + + 0 + False + 0 + 1000 + False + + + + 0 + + True + False + False + True + True + 0 + 1252 + 12 + Release + False + + + True + True + + False + + False + False + True + True + False + False + False + False + False + False + False + False + 3082 + + 1 + 0 + 0 + False + 0 + + + True + 0 + + + rcBorland + 1000 + + False + False + False + False + [usPackages,usCompiler,usLinker,usVersionInfo] + False + False + + + + False + False + False + False + False + True + False + False + %package_path% + + + + False + %modules_dcp_path% + False + + False + + False + True + False + False + True + 4194304 + False + False + False + True + %library_path% + 0 + False + 0 + 1048576 + 16384 + + True + True + %output_path% + False + + False + fa8 + False + False + + True + True + False + False + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + False + True + + + + + + 0 + + True + False + False + True + True + 0 + 1252 + 12 + Release + False + + + True + True + + False + + False + False + True + True + False + False + False + False + False + False + False + False + 3082 + + 1 + 0 + 0 + False + 0 + + + True + 0 + + + rcBorland + 1000 + + False + False + False + False + [usPackages,usCompiler,usLinker,usVersionInfo] + False + False + + + + False + False + False + False + False + True + False + False + %package_path% + + + + False + %modules_dcp_path% + False + + False + + False + True + False + False + True + 4194304 + False + False + False + True + %library_path% + 0 + False + 0 + 1048576 + 16384 + + True + True + %output_path% + False + + False + fa8 + False + False + + True + True + False + False + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + False + True + + + + + + 0 + + True + False + False + True + True + 0 + 1252 + 12 + Release + False + + + True + True + + False + + False + False + True + True + False + False + False + False + False + False + False + False + 3082 + + 1 + 0 + 0 + False + 0 + + + True + 0 + + + rcBorland + 1000 + + False + False + False + False + [usPackages,usCompiler,usLinker,usVersionInfo] + False + False + + + + False + False + False + False + False + True + False + False + %package_path% + + + + False + %modules_dcp_path% + False + + False + + False + True + False + False + True + 4194304 + False + False + False + True + %library_path% + 0 + False + 0 + 1048576 + 16384 + + True + True + %output_path% + False + + False + fa8 + False + False + + True + True + False + False + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + False + True + + + + + + 0 + + True + False + False + True + True + 0 + 1252 + 12 + Release + False + + + True + True + + False + + False + False + True + True + False + False + False + False + False + False + False + False + 3082 + + 1 + 0 + 0 + False + 0 + + + True + 0 + + + rcBorland + 1000 + + False + False + False + False + [usPackages,usCompiler,usLinker,usVersionInfo] + False + False + + + + False + False + False + False + False + True + False + False + %package_path% + + + + False + %modules_dcp_path% + False + + False + + False + True + False + False + True + 4194304 + False + False + False + True + %library_path% + 0 + False + 0 + 1048576 + 16384 + + True + True + %output_path% + False + + False + fa8 + False + False + + True + True + False + False + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + False + True + + + + + + 0 + + True + False + False + True + True + 0 + 1252 + 12 + Release + False + + + True + True + + False + + False + False + True + True + False + False + False + False + False + False + False + False + 3082 + + 1 + 0 + 0 + False + 0 + + + True + 0 + + + rcBorland + 1000 + + False + False + False + False + [usPackages,usCompiler,usLinker,usVersionInfo] + False + False + + + + False + False + False + False + False + True + False + False + %package_path% + + + + False + %modules_dcp_path% + False + + False + + False + True + False + False + True + 4194304 + False + False + False + True + %library_path% + 0 + False + 0 + 1048576 + 16384 + + True + True + %output_path% + False + + False + fa8 + False + False + + True + True + False + False + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + False + True + + + + + Epigrafes + 0 + + Epigrafes + True + True + False + True + False + + 0 + False + 0 + 1000 + False + + + + 0 + + True + False + False + True + True + 0 + 1252 + 12 + Release + False + + + True + True + + False + + False + False + True + True + False + False + False + False + False + False + False + False + 3082 + + 1 + 0 + 0 + False + 0 + + + True + 0 + + + rcBorland + 1000 + + False + False + False + False + [usPackages,usCompiler,usLinker,usVersionInfo] + False + False + + + + False + False + False + False + False + True + False + False + %package_path% + + + + False + %modules_dcp_path% + False + + False + + False + True + False + False + True + 4194304 + False + False + False + True + %library_path% + 0 + False + 0 + 1048576 + 16384 + + True + True + %output_path% + False + + False + fa8 + False + False + + True + True + False + False + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + False + True + + + + + + 0 + + True + False + False + True + True + 0 + 1252 + 12 + Release + False + + + True + True + + False + + False + False + True + True + False + False + False + False + False + False + False + False + 3082 + + 1 + 0 + 0 + False + 0 + + + True + 0 + + + rcBorland + 1000 + + False + False + False + False + [usPackages,usCompiler,usLinker,usVersionInfo] + False + False + + + + False + False + False + False + False + True + False + False + %package_path% + + + + False + %modules_dcp_path% + False + + False + + False + True + False + False + True + 4194304 + False + False + False + True + %library_path% + 0 + False + 0 + 1048576 + 16384 + + True + True + %output_path% + False + + False + fa8 + False + False + + True + True + False + False + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + False + True + + + + + + 0 + + True + False + False + True + True + 0 + 1252 + 12 + Release + False + + + True + True + + False + + False + False + True + True + False + False + False + False + False + False + False + False + 3082 + + 1 + 0 + 0 + False + 0 + + + True + 0 + + + rcBorland + 1000 + + False + False + False + False + [usPackages,usCompiler,usLinker,usVersionInfo] + False + False + + + + False + False + False + False + False + True + False + False + %package_path% + + + + False + %modules_dcp_path% + False + + False + + False + True + False + False + True + 4194304 + False + False + False + True + %library_path% + 0 + False + 0 + 1048576 + 16384 + + True + True + %output_path% + False + + False + fa8 + False + False + + True + True + False + False + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + False + True + + + + + + 0 + + True + False + False + True + True + 0 + 1252 + 12 + Release + False + + + True + True + + False + + False + False + True + True + False + False + False + False + False + False + False + False + 3082 + + 1 + 0 + 0 + False + 0 + + + True + 0 + + + rcBorland + 1000 + + False + False + False + False + [usPackages,usCompiler,usLinker,usVersionInfo] + False + False + + + + False + False + False + False + False + True + False + False + %package_path% + + + + False + %modules_dcp_path% + False + + False + + False + True + False + False + True + 4194304 + False + False + False + True + %library_path% + 0 + False + 0 + 1048576 + 16384 + + True + True + %output_path% + False + + False + fa8 + False + False + + True + True + False + False + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + False + True + + + + + + 0 + + True + False + False + True + True + 0 + 1252 + 12 + Release + False + + + True + True + + False + + False + False + True + True + False + False + False + False + False + False + False + False + 3082 + + 1 + 0 + 0 + False + 0 + + + True + 0 + + + rcBorland + 1000 + + False + False + False + False + [usPackages,usCompiler,usLinker,usVersionInfo] + False + False + + + + False + False + False + False + False + True + False + False + %package_path% + + + + False + %modules_dcp_path% + False + + False + + False + True + False + False + True + 4194304 + False + False + False + True + %library_path% + 0 + False + 0 + 1048576 + 16384 + + True + True + %output_path% + False + + False + fa8 + False + False + + True + True + False + False + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + False + True + + + + + + + Cliente + 0 + + Cliente + True + True + False + True + False + + 0 + False + 0 + 1000 + False + + + + 0 + + True + False + False + True + True + 0 + 1252 + 12 + Debug + False + + + True + True + + False + %project_path%\Resources\Iconos\Factuges.ico + False + False + True + True + False + False + False + False + False + False + False + False + 3082 + + 1 + 0 + 0 + False + 0 + %source_path%\Cliente\FactuGES.dpr + True + 0 + + + rcBorland + 1000 + %source_path%\Cliente\ + False + False + False + False + [usCompiler,usLinker,usVersionInfo] + False + False + + + + False + False + False + False + False + True + False + False + .\ + + + DEBUG; + False + .\ + True + + True + + False + True + False + False + True + 4194304 + False + False + True + True + %library_path%;%modules_dcp_path%; + 0 + True + 3 + 1048576 + 16384 + + True + False + %output_path%\Cliente + False + PluginSDK_D10R;GUISDK_D11;Base;GUIBase;ApplicationBase; + False + fa8 + True + False + + True + True + True + False + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + .\ + False + True + True + + + + + + + 0 + + + + False + True + False + True + False + + 0 + False + 0 + 1000 + False + + + + 0 + {A78530B0-8E25-4ACF-BCD0-410E385473A0} + + + + + True + False + True + False + True + False + + 0 + False + 0 + 1000 + False + True + 2 + %output_path%\Debug\Servidor\FactuGES_Server.exe + + True + True + False + True + True + True + False + False + False + + + + + 0 + {A78530B0-8E25-4ACF-BCD0-410E385473A0} + + + + + True + False + True + False + True + False + + 0 + False + 0 + 1000 + False + True + 2 + %output_path%\Debug\Cliente\FactuGES.exe + + True + True + False + True + True + True + False + False + False + + + + + + 8388736 + + + + True + True + False + True + False + + 0 + False + 0 + 1000 + False + + + + 0 + + False + True + True + False + False + %source_path%\Informes\*.* + True + False + True + False + + 0 + False + False + 0 + False + 1000 + False + %output_path%\Servidor\Informes + True + + + + + + True + False + OnFailure + {BA6B406D-5FE5-4FF9-8D33-0459EBECDF95} + + FinalBuilderAction + 0 + + True + True + False + True + False + + 0 + False + 0 + 1000 + False + + + + + Project + + %project_path%\Output\Debug + True + False + False + output_path + vtProject + + + + %DELPHI2007DIR%\Lib;%DELPHI2007DIR%\Imports;%library_3rdparty_path%;%base_dcp_path% + True + False + False + library_path + vtProject + + + %output_path%\Cliente + True + False + False + package_path + vtProject + + + + + False + True + False + project_path + vtProject + + + %source_path%\Modulos\Lib + True + False + False + modules_dcp_path + vtProject + + + %source_path%\Lib + True + False + False + base_dcp_path + vtProject + + + %DELPHI2007% + False + False + False + DELPHI + vtProject + + + %project_path%\Source + True + False + False + source_path + vtProject + + + %DELPHI2007DIR%\Lib\Indy10;%project_path%\Lib;%project_path%\Lib\RemObjects\RemObjects_SDK;%project_path%\Lib\RemObjects\Data_Abstract;%project_path%\Lib\CCPack;%project_path%\Lib\CFPack;%project_path%\Lib\GUISDK;%project_path%\Lib\PluginSDK;%project_path%\Lib\DevExpressVCL;%project_path%\Lib\FastReport4;%project_path%\Lib\JCL;%project_path%\Lib\JVCL;%project_path%\Lib\PngComponents;%project_path%\Lib\cxIntl5;%project_path%\Lib\cxIntlPrintSys3;%project_path%\Lib\TB2k+TBX;%project_path%\Lib\Mustangpeak\MPCommonLib;%project_path%\Lib\Mustangpeak\EasyListview;%project_path%\Lib\JSDialog;%project_path%\Lib\UserControl; + True + False + False + library_3rdparty_path + vtProject + + + + + True + False + False + path_aux + vtProject + + + + + False + False + False + _aux_path + vtProject + + + + diff --git a/Build/Build.fbv b/Build/Build.fbv new file mode 100644 index 00000000..91cd1a8f --- /dev/null +++ b/Build/Build.fbv @@ -0,0 +1 @@ + diff --git a/Build/Build.fbw b/Build/Build.fbw new file mode 100644 index 00000000..e69de29b diff --git a/Build/Build.lck b/Build/Build.lck new file mode 100644 index 0000000000000000000000000000000000000000..20d5cb86e6dff1f3684dc229a358a2ea697cecfb GIT binary patch literal 8 KcmZQ%fB*mh5C8%I literal 0 HcmV?d00001 diff --git a/Build/Build.log b/Build/Build.log new file mode 100644 index 00000000..4bde328a --- /dev/null +++ b/Build/Build.log @@ -0,0 +1,456 @@ + +Project Validated Successfully + +Project File: C:\Codigo Tecsitel\Build\Build.fbp5 + +Build Started: 25/09/2007 10:07:26 + + +[Start ActionList: Main] + +[Set Variable project_path to [ C:\Codigo Tecsitel\Build ]] + +[String Replace] +String Replace: \\Build has been replaced with + +[Borrar ficheros temporales] + +[Run DOS Command [ C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\msbuild.exe "C:\Codigo Tecsitel\Source\ClearFiles.msbuild" ]] +Microsoft (R) Build Engine Version 2.0.50727.42 +[Microsoft .NET Framework, Version 2.0.50727.42] +Copyright (C) Microsoft Corporation 2005. All rights reserved. + +Build started 25/09/2007 10:07:28. +__________________________________________________ +Project "C:\Codigo Tecsitel\Source\ClearFiles.msbuild" (default targets): + +Target ShowFiles: + Base\Base.dcu;Base\ClassRegistry\uClassRegistryUtils.dcu;Base\ClassRegistry\uEditorRegistryUtils.dcu;Base\ClassRegistry\uInformeRegistryUtils.dcu;Base\ClassRegistry\uViewRegistryUtils.dcu;Base\ControllerBase\ControllerBase.dcu;Base\ControllerBase\uControllerBase.dcu;Base\ControllerBase\uControllerDetallesBase.dcu;Base\ControllerBase\uControllerDetallesDTO.dcu;Base\GUIBase\GUIBase.dcu;Base\GUIBase\uBizInformesAware.dcu;Base\GUIBase\uDialogBase.dcu;Base\GUIBase\uEditorBase.dcu;Base\GUIBase\uEditorBasico.dcu;Base\GUIBase\uEditorDBBase.dcu;Base\GUIBase\uEditorDBItem.dcu;Base\GUIBase\uEditorGridBase.dcu;Base\GUIBase\uEditorItem.dcu;Base\GUIBase\uEditorPreview.dcu;Base\GUIBase\uViewBarraSeleccion.dcu;Base\GUIBase\uViewBase.dcu;Base\GUIBase\uViewDetallesBase.dcu;Base\GUIBase\uViewDetallesDTO.dcu;Base\GUIBase\uViewDetallesGenerico.dcu;Base\GUIBase\uViewFiltroBase.dcu;Base\GUIBase\uViewFormaPago.dcu;Base\GUIBase\uViewGrid.dcu;Base\GUIBase\uViewGrid2Niveles.dcu;Base\GUIBase\uViewGridBase.dcu;Base\GUIBase\uViewIncidencias.dcu;Base\GUIBase\uViewObservaciones.dcu;Base\GUIBase\uViewPreview.dcu;Base\GUIBase\uViewTotales.dcu;Base\uActualizacion.dcu;Base\uConfigurarConexion.dcu;Base\uDataModuleBase.dcu;Base\uDataModuleConexion.dcu;Base\uDataModuleConfiguracion.dcu;Base\Usuarios\uCambiarPassword.dcu;Base\Usuarios\uDataModuleUsuarios.dcu;Base\Usuarios\uLoginForm.dcu;Base\Usuarios\Usuarios.dcu;Base\Usuarios\uUsuario.dcu;Base\Usuarios\uUsuarios.dcu;Base\Utiles\MD5.dcu;Base\Utiles\uDataTableUtils.dcu;Base\Utiles\uDateUtils.dcu;Base\Utiles\uDBSelectionListUtils.dcu;Base\Utiles\uDialogUtils.dcu;Base\Utiles\uGridUtils.dcu;Base\Utiles\uInfoProjectUtils.dcu;Base\Utiles\uIntegerListUtils.dcu;Base\Utiles\uNumUtils.dcu;Base\Utiles\uPasswordUtils.dcu;Base\Utiles\uSistemaFunc.dcu;Modulos\Contactos\Controller\uContactosController.dcu;Modulos\Contactos\Controller\uDireccionesContactoController.dcu;Modulos\Contactos\Controller\uEmpleadosController.dcu;Modulos\Contactos\Controller\uEtiquetasContactosReportController.dcu;Modulos\Contactos\Controller\uFichasEmpleadoReportController.dcu;Modulos\Contactos\Controller\View\uIEditorCliente.dcu;Modulos\Contactos\Controller\View\uIEditorClientes.dcu;Modulos\Contactos\Controller\View\uIEditorContacto.dcu;Modulos\Contactos\Controller\View\uIEditorContactos.dcu;Modulos\Contactos\Controller\View\uIEditorDireccionContacto.dcu;Modulos\Contactos\Controller\View\uIEditorElegirClientes.dcu;Modulos\Contactos\Controller\View\uIEditorElegirContactos.dcu;Modulos\Contactos\Controller\View\uIEditorElegirDireccionEntrega.dcu;Modulos\Contactos\Controller\View\uIEditorEmpleado.dcu;Modulos\Contactos\Controller\View\uIEditorEmpleados.dcu;Modulos\Contactos\Controller\View\uIEditorEtiquetasContactosPreview.dcu;Modulos\Contactos\Controller\View\uIEditorFichasEmpleadoPreview.dcu;Modulos\Contactos\Data\Contactos_data.dcu;Modulos\Contactos\Data\uDataModuleClientes.dcu;Modulos\Contactos\Data\uDataModuleContactos.dcu;Modulos\Contactos\Data\uDataModuleEmpleados.dcu;Modulos\Contactos\Data\uDataModuleProveedores.dcu;Modulos\Contactos\Model\Contactos_model.dcu;Modulos\Contactos\Model\Data\uIDataModuleClientes.dcu;Modulos\Contactos\Model\Data\uIDataModuleContactos.dcu;Modulos\Contactos\Model\Data\uIDataModuleEmpleados.dcu;Modulos\Contactos\Model\Data\uIDataModuleEtiquetasContactosReport.dcu;Modulos\Contactos\Model\Data\uIDataModuleFichasEmpleadoReport.dcu;Modulos\Contactos\Model\Data\uIDataModuleProveedores.dcu;Modulos\Contactos\Model\schContactosClient_Intf.dcu;Modulos\Contactos\Model\schContactosServer_Intf.dcu;Modulos\Contactos\Model\uBizCategoriasContacto.dcu;Modulos\Contactos\Model\uBizClientesDescuentos.dcu;Modulos\Contactos\Model\uBizContactos.dcu;Modulos\Contactos\Model\uBizContactosDatosBancarios.dcu;Modulos\Contactos\Model\uBizDireccionesContacto.dcu;Modulos\Contactos\Model\uBizGruposCliente.dcu;Modulos\Contactos\Model\uBizGruposEmpleado.dcu;Modulos\Contactos\Model\uBizGruposProveedor.dcu;Modulos\Contactos\Utiles\uRegimenIVAUtils.dcu;Modulos\Empresas\Controller\Empresas_controller.dcu;Modulos\Empresas\Controller\uDatosBancariosEmpresaController.dcu;Modulos\Empresas\Controller\uEmpresasController.dcu;Modulos\Empresas\Controller\View\uIEditorDatosBancarioEmpresa.dcu;Modulos\Empresas\Controller\View\uIEditorEmpresa.dcu;Modulos\Empresas\Controller\View\uIEditorEmpresas.dcu;Modulos\Empresas\Data\Empresas_data.dcu;Modulos\Empresas\Data\uDataModuleEmpresas.dcu;Modulos\Empresas\Model\Data\uIDataModuleEmpresas.dcu;Modulos\Empresas\Model\Empresas_model.dcu;Modulos\Empresas\Model\schEmpresasClient_Intf.dcu;Modulos\Empresas\Model\schEmpresasServer_Intf.dcu;Modulos\Empresas\Model\uBizEmpresas.dcu;Modulos\Empresas\Model\uBizEmpresasDatosBancarios.dcu;Modulos\Empresas\Plugin\Empresas_plugin.dcu;Modulos\Empresas\Plugin\uPluginEmpresas.dcu;Modulos\Empresas\Views\Empresas_view.dcu;Modulos\Empresas\Views\uEditorDatosBancariosEmpresa.dcu;Modulos\Empresas\Views\uEditorEmpresa.dcu;Modulos\Empresas\Views\uEmpresasViewRegister.dcu;Modulos\Empresas\Views\uViewDatosBancarios.dcu;Modulos\Empresas\Views\uViewEmpresa.dcu;Modulos\Formas de pago\Controller\FormasPago_controller.dcu;Modulos\Formas de pago\Controller\uFormasPagoController.dcu;Modulos\Formas de pago\Controller\uFormasPagoPlazosController.dcu;Modulos\Formas de pago\Controller\View\uIEditorFormaPago.dcu;Modulos\Formas de pago\Controller\View\uIEditorFormasPago.dcu;Modulos\Formas de pago\Data\FormasPago_data.dcu;Modulos\Formas de pago\Data\uDataModuleFormasPago.dcu;Modulos\Formas de pago\Model\Data\uIDataModuleFormasPago.dcu;Modulos\Formas de pago\Model\FormasPago_model.dcu;Modulos\Formas de pago\Model\schFormasPagoClient_Intf.dcu;Modulos\Formas de pago\Model\schFormasPagoServer_Intf.dcu;Modulos\Formas de pago\Model\uBizFormasPago.dcu;Modulos\Formas de pago\Model\uBizFormasPagoPlazos.dcu;Modulos\Formas de pago\Plugin\FormasPago_plugin.dcu;Modulos\Formas de pago\Plugin\uPluginFormasPago.dcu;Modulos\Formas de pago\Views\FormasPago_view.dcu;Modulos\Formas de pago\Views\uEditorFormaPago.dcu;Modulos\Formas de pago\Views\uEditorFormasPago.dcu;Modulos\Formas de pago\Views\uFormasPagoViewRegister.dcu;Modulos\Tipos de IVA\Controller\TiposIVA_controller.dcu;Modulos\Tipos de IVA\Controller\uTiposIVAController.dcu;Modulos\Tipos de IVA\Controller\View\uIEditorTipoIVA.dcu;Modulos\Tipos de IVA\Controller\View\uIEditorTiposIVA.dcu;Modulos\Tipos de IVA\Data\TiposIVA_data.dcu;Modulos\Tipos de IVA\Data\uDataModuleTiposIVA.dcu;Modulos\Tipos de IVA\Model\Data\uIDataModuleTiposIVA.dcu;Modulos\Tipos de IVA\Model\schTiposIVAClient_Intf.dcu;Modulos\Tipos de IVA\Model\schTiposIVAServer_Intf.dcu;Modulos\Tipos de IVA\Model\TiposIVA_model.dcu;Modulos\Tipos de IVA\Model\uBizTiposIVA.dcu;Modulos\Tipos de IVA\Plugin\TiposIVA_plugin.dcu;Modulos\Tipos de IVA\Plugin\uPluginTiposIVA.dcu;Modulos\Tipos de IVA\Views\TiposIVA_view.dcu;Modulos\Tipos de IVA\Views\uEditorTipoIVA.dcu;Modulos\Tipos de IVA\Views\uEditorTiposIVA.dcu;Modulos\Tipos de IVA\Views\uTiposIVAViewRegister.dcu;Servicios\FactuGES_Intf.dcu;Servidor\DARemoteService_Impl.dcu;Servidor\DataAbstract3_Intf.dcu;Servidor\DataAbstract4_Intf.dcu;Servidor\DataAbstract4_Invk.dcu;Servidor\DataAbstractService_Impl.dcu;Servidor\FactuGES_Intf.dcu;Servidor\FactuGES_Invk.dcu;Servidor\RegExpr.dcu;Servidor\schContactosClient_Intf.dcu;Servidor\schContactosServer_Intf.dcu;Servidor\schEmpresasClient_Intf.dcu;Servidor\schEmpresasServer_Intf.dcu;Servidor\schFamiliasClient_Intf.dcu;Servidor\schFamiliasServer_Intf.dcu;Servidor\schFormasPagoClient_Intf.dcu;Servidor\schFormasPagoServer_Intf.dcu;Servidor\schTiposIVAClient_Intf.dcu;Servidor\schTiposIVAServer_Intf.dcu;Servidor\srvConfiguracion_Impl.dcu;Servidor\srvContactos_Impl.dcu;Servidor\srvEmpresas_Impl.dcu;Servidor\srvFamilias_Impl.dcu;Servidor\srvFormasPago_Impl.dcu;Servidor\srvLogin_Impl.dcu;Servidor\srvTiposIVA_Impl.dcu;Servidor\uAcercaDe.dcu;Servidor\uBizClientesServer.dcu;Servidor\uBizContactosServer.dcu;Servidor\uBizEmpleadosServer.dcu;Servidor\uBizProveedoresServer.dcu;Servidor\uBusinessUtils.dcu;Servidor\uConexionBD.dcu;Servidor\uConfGeneral.dcu;Servidor\uConfiguracion.dcu;Servidor\uDAADODriver.dcu;Servidor\uDAADOInterfaces.dcu;Servidor\uDABin2DataStreamer.dcu;Servidor\uDABINAdapter.dcu;Servidor\uDABusinessProcessor.dcu;Servidor\uDACache.dcu;Servidor\uDAClasses.dcu;Servidor\uDADatasetWrapper.dcu;Servidor\uDADataStreamer.dcu;Servidor\uDADataTable.dcu;Servidor\uDADataTableReferenceCollection.dcu;Servidor\uDADelta.dcu;Servidor\uDADriverManager.dcu;Servidor\uDAEngine.dcu;Servidor\uDAExceptions.dcu;Servidor\uDAExpressionEvaluator.dcu;Servidor\uDAHelpers.dcu;Servidor\uDAIBInterfaces.dcu;Servidor\uDAIBXDriver.dcu;Servidor\uDAInterfaces.dcu;Servidor\uDAInterfacesEx.dcu;Servidor\uDAMacroProcessors.dcu;Servidor\uDAMacros.dcu;Servidor\uDAMemDataset.dcu;Servidor\uDAMemDataTable.dcu;Servidor\uDAOracleInterfaces.dcu;Servidor\uDAPostgresInterfaces.dcu;Servidor\uDARegExpr.dcu;Servidor\uDARes.dcu;Servidor\uDAScriptingProvider.dcu;Servidor\uDASQL92Interfaces.dcu;Servidor\uDASQL92QueryBuilder.dcu;Servidor\uDASupportClasses.dcu;Servidor\uDatabaseUtils.dcu;Servidor\uDataModuleServer.dcu;Servidor\uDAUtils.dcu;Servidor\uDAWhere.dcu;Servidor\uDAXMLUtils.dcu;Servidor\uFrameConfiguracion.dcu;Servidor\uReferenciasUtils.dcu;Servidor\uRestriccionesUsuarioUtils.dcu;Servidor\uROBinaryHelpers.dcu;Servidor\uROBinMessage.dcu;Servidor\uROCipher.dcu;Servidor\uroCipher1.dcu;Servidor\uROCiphers.dcu;Servidor\uROClasses.dcu;Servidor\uROClient.dcu;Servidor\uROClientIntf.dcu;Servidor\uROComInit.dcu;Servidor\uROCompression.dcu;Servidor\uRODECConst.dcu;Servidor\uRODECUtil.dcu;Servidor\uRODL.dcu;Servidor\uRODLToXML.dcu;Servidor\uRODynamicRequest.dcu;Servidor\uROEncryption.dcu;Servidor\uROEventRepository.dcu;Servidor\uROHash.dcu;Servidor\uROHtmlServerInfo.dcu;Servidor\uROHTTPDispatch.dcu;Servidor\uROHTTPTools.dcu;Servidor\uROIndyHTTPServer.dcu;Servidor\uROIndyTCPServer.dcu;Servidor\uROMSXML2_TLB.dcu;Servidor\uROMSXMLImpl.dcu;Servidor\uROPoweredByRemObjectsButton.dcu;Servidor\uRORemoteDataModule.dcu;Servidor\uRORemoteService.dcu;Servidor\uRORes.dcu;Servidor\uROSerializer.dcu;Servidor\uROServer.dcu;Servidor\uROServerIntf.dcu;Servidor\uROSessions.dcu;Servidor\uROStreamSerializer.dcu;Servidor\uROTypes.dcu;Servidor\uROXMLIntf.dcu;Servidor\uROZLib.dcu;Servidor\uSchemaUtilsServer.dcu;Servidor\uServerAppUtils.dcu;Servidor\uServerMainForm.dcu;Servidor\uSesionesUtils.dcu;Servidor\uUsersManager.dcu;Lib\Base.dcp;Lib\ControllerBase.dcp;Lib\GUIBase.dcp;Modulos\Lib\Contactos_data.dcp;Modulos\Lib\Contactos_model.dcp;Modulos\Lib\Empresas_controller.dcp;Modulos\Lib\Empresas_data.dcp;Modulos\Lib\Empresas_model.dcp;Modulos\Lib\Empresas_plugin.dcp;Modulos\Lib\Empresas_view.dcp;Modulos\Lib\FormasPago_controller.dcp;Modulos\Lib\FormasPago_data.dcp;Modulos\Lib\FormasPago_model.dcp;Modulos\Lib\FormasPago_plugin.dcp;Modulos\Lib\FormasPago_view.dcp;Modulos\Lib\TiposIVA_controller.dcp;Modulos\Lib\TiposIVA_data.dcp;Modulos\Lib\TiposIVA_model.dcp;Modulos\Lib\TiposIVA_plugin.dcp;Modulos\Lib\TiposIVA_view.dcp;Modulos\Lib\Usuarios.dcp + +Build succeeded. + 0 Warning(s) + 0 Error(s) + +Time Elapsed 00:00:00.04 +Program returned code : 0 + +[Crear directorios de salida] + +[List Iterator] +Setting items... +Found 8 Items + +[Create Directory [ C:\Codigo Tecsitel\Output\Debug\Database ]] +Created directory : C:\Codigo Tecsitel\Output\Debug\Database + +[List Iterator] + +[Create Directory [ C:\Codigo Tecsitel\Output\Debug\Cliente ]] +Created directory : C:\Codigo Tecsitel\Output\Debug\Cliente + +[List Iterator] + +[Create Directory [ C:\Codigo Tecsitel\Output\Debug\Servidor ]] +Created directory : C:\Codigo Tecsitel\Output\Debug\Servidor + +[List Iterator] + +[Create Directory [ C:\Codigo Tecsitel\Output\Debug\Servidor\Informes ]] +Created directory : C:\Codigo Tecsitel\Output\Debug\Servidor\Informes + +[List Iterator] + +[Create Directory [ C:\Codigo Tecsitel\Output\Release\Database ]] +Created directory : C:\Codigo Tecsitel\Output\Release\Database + +[List Iterator] + +[Create Directory [ C:\Codigo Tecsitel\Output\Release\Cliente ]] +Created directory : C:\Codigo Tecsitel\Output\Release\Cliente + +[List Iterator] + +[Create Directory [ C:\Codigo Tecsitel\Output\Release\Servidor ]] +Created directory : C:\Codigo Tecsitel\Output\Release\Servidor + +[List Iterator] + +[Create Directory [ C:\Codigo Tecsitel\Output\Release\Servidor\Informes ]] +Created directory : C:\Codigo Tecsitel\Output\Release\Servidor\Informes + +[List Iterator] + +[Reset Variable to Default] + +[Listar valores de las variables del proyecto] +Current variable values : +base_dcp_path = C:\Codigo Tecsitel\Source\Lib +library_3rdparty_path = C:\Archivos de programa\CodeGear\RAD Studio\5.0\Lib\Indy10;C:\Codigo Tecsitel\Lib;C:\Codigo Tecsitel\Lib\RemObjects\RemObjects_SDK;C:\Codigo Tecsitel\Lib\RemObjects\Data_Abstract;C:\Codigo Tecsitel\Lib\CCPack;C:\Codigo Tecsitel\Lib\CFPack;C:\Codigo Tecsitel\Lib\GUISDK;C:\Codigo Tecsitel\Lib\PluginSDK;C:\Codigo Tecsitel\Lib\DevExpressVCL;C:\Codigo Tecsitel\Lib\FastReport3;C:\Codigo Tecsitel\Lib\JCL;C:\Codigo Tecsitel\Lib\JVCL;C:\Codigo Tecsitel\Lib\PngComponents;C:\Codigo Tecsitel\Lib\cxIntl5;C:\Codigo Tecsitel\Lib\cxIntlPrintSys3;C:\Codigo Tecsitel\Lib\TB2k+TBX;C:\Codigo Tecsitel\Lib\Mustangpeak\MPCommonLib;C:\Codigo Tecsitel\Lib\Mustangpeak\EasyListview;C:\Codigo Tecsitel\Lib\JSDialog; +library_path = C:\Archivos de programa\CodeGear\RAD Studio\5.0\Lib;C:\Archivos de programa\CodeGear\RAD Studio\5.0\Imports;C:\Archivos de programa\CodeGear\RAD Studio\5.0\Lib\Indy10;C:\Codigo Tecsitel\Lib;C:\Codigo Tecsitel\Lib\RemObjects\RemObjects_SDK;C:\Codigo Tecsitel\Lib\RemObjects\Data_Abstract;C:\Codigo Tecsitel\Lib\CCPack;C:\Codigo Tecsitel\Lib\CFPack;C:\Codigo Tecsitel\Lib\GUISDK;C:\Codigo Tecsitel\Lib\PluginSDK;C:\Codigo Tecsitel\Lib\DevExpressVCL;C:\Codigo Tecsitel\Lib\FastReport3;C:\Codigo Tecsitel\Lib\JCL;C:\Codigo Tecsitel\Lib\JVCL;C:\Codigo Tecsitel\Lib\PngComponents;C:\Codigo Tecsitel\Lib\cxIntl5;C:\Codigo Tecsitel\Lib\cxIntlPrintSys3;C:\Codigo Tecsitel\Lib\TB2k+TBX;C:\Codigo Tecsitel\Lib\Mustangpeak\MPCommonLib;C:\Codigo Tecsitel\Lib\Mustangpeak\EasyListview;C:\Codigo Tecsitel\Lib\JSDialog;;C:\Codigo Tecsitel\Source\Lib +modules_dcp_path = C:\Codigo Tecsitel\Source\Modulos\Lib +output_path = C:\Codigo Tecsitel\Output\Debug +package_path = C:\Codigo Tecsitel\Output\Debug\Cliente +project_path = C:\Codigo Tecsitel +source_path = C:\Codigo Tecsitel\Source + +[Servidor] + +[Compile Servidor\FactuGES_Server.dpr] +Running Borland Resource compiler.... +Borland Resource Compiler Version 5.40 +Copyright (c) 1990, 1999 Inprise Corporation. All rights reserved. +Resource Compiled OK. +Running Delphi compiler.... +Using Command Line : /B "C:\Codigo Tecsitel\Source\Servidor\FactuGES_Server.dpr" /Q +CodeGear Delphi for Win32 compiler version 18.5 +Copyright (c) 1983,2007 CodeGear +C:\Codigo Tecsitel\Source\Modulos\Contactos\Model\uBizContactosServer.pas(34) Warning: W1006 Unit 'DARemoteService_Impl' is deprecated +Utiles\uBusinessUtils.pas(13) Warning: W1006 Unit 'DARemoteService_Impl' is deprecated +Utiles\uBusinessUtils.pas(20) Warning: W1000 Symbol 'TDARemoteService' is deprecated +Utiles\uBusinessUtils.pas(21) Warning: W1000 Symbol 'TDARemoteService' is deprecated +C:\Codigo Tecsitel\Source\Modulos\Contactos\Model\uBizEmpleadosServer.pas(23) Warning: W1006 Unit 'DARemoteService_Impl' is deprecated +C:\Codigo Tecsitel\Source\Modulos\Contactos\Model\uBizClientesServer.pas(23) Warning: W1006 Unit 'DARemoteService_Impl' is deprecated +C:\Codigo Tecsitel\Source\Modulos\Contactos\Model\uBizProveedoresServer.pas(23) Warning: W1006 Unit 'DARemoteService_Impl' is deprecated +C:\Codigo Tecsitel\Source\Modulos\Contactos\Servidor\srvContactos_Impl.pas(110) Warning: W1035 Return value of function 'TsrvContactos.GenerateEtiquetasReport' might be undefined +C:\Codigo Tecsitel\Source\Modulos\Contactos\Servidor\srvContactos_Impl.pas(124) Warning: W1035 Return value of function 'TsrvContactos.GenerateFichaEmpleadoReport' might be undefined +Utiles\uSchemaUtilsServer.pas(8) Warning: W1006 Unit 'DARemoteService_Impl' is deprecated +Utiles\uSchemaUtilsServer.pas(17) Warning: W1000 Symbol 'TDARemoteService' is deprecated +Utiles\uSchemaUtilsServer.pas(42) Hint: H2164 Variable 'APos' is declared but never used in 'TReplicarDataSet.GenerateNewSQL' +Utiles\uSchemaUtilsServer.pas(134) Hint: H2164 Variable 'AField' is declared but never used in 'TReplicarDataSet.GetNewDataSet' +26272 lines, 8.33 seconds, 3271728 bytes code, 202776 bytes data. + +[Base] + +[Compile Base\Base.dpk] +Running Borland Resource compiler.... +Borland Resource Compiler Version 5.40 +Copyright (c) 1990, 1999 Inprise Corporation. All rights reserved. +Resource Compiled OK. +Running Delphi compiler.... +Using Command Line : /B "C:\Codigo Tecsitel\Source\Base\Base.dpk" /Q +CodeGear Delphi for Win32 compiler version 18.5 +Copyright (c) 1983,2007 CodeGear +Utiles\uDataTableUtils.pas(205) Hint: H2077 Value assigned to 'CloneDataTable' never used +Utiles\uDataTableUtils.pas(413) Warning: W1000 Symbol 'TDABINAdapter' is deprecated +Utiles\uDataTableUtils.pas(449) Warning: W1000 Symbol 'TDABINAdapter' is deprecated +Utiles\uDataTableUtils.pas(531) Warning: W1036 Variable 'ADetailFields' might not have been initialized +uDataModuleConexion.pas(6) Warning: W1006 Unit 'uROServiceComponent' is deprecated +uDataModuleConexion.pas(17) Warning: W1000 Symbol 'TDABINAdapter' is deprecated +uConfigurarConexion.pas(8) Warning: W1006 Unit 'uROServiceComponent' is deprecated +uDataModuleConfiguracion.pas(6) Warning: W1006 Unit 'uROServiceComponent' is deprecated +uDataModuleConfiguracion.pas(17) Warning: W1000 Symbol 'TDABINAdapter' is deprecated +Utiles\uPasswordUtils.pas(40) Warning: W1012 Constant expression violates subrange bounds +ClassRegistry\uInformeRegistryUtils.pas(48) Hint: H2077 Value assigned to 'aOwner' never used +Base.dpk(87) Warning: W1033 Unit 'JSRichEdit' implicitly imported into package 'Base' +Base.dpk(87) Warning: W1033 Unit 'JSLabel' implicitly imported into package 'Base' +Base.dpk(87) Warning: W1033 Unit 'JSUrlLabel' implicitly imported into package 'Base' +Base.dpk(87) Warning: W1033 Unit 'JSProgressBar' implicitly imported into package 'Base' +Base.dpk(87) Warning: W1033 Unit 'JSCheckBox' implicitly imported into package 'Base' +Base.dpk(87) Warning: W1033 Unit 'JSButton' implicitly imported into package 'Base' +Base.dpk(87) Warning: W1033 Unit 'JSGraphUtil' implicitly imported into package 'Base' +Base.dpk(87) Warning: W1033 Unit 'JSDialogStrs' implicitly imported into package 'Base' +Base.dpk(87) Warning: W1033 Unit 'JSDialog' implicitly imported into package 'Base' +Base.dpk(87) Warning: W1033 Unit 'JSDialogs' implicitly imported into package 'Base' +5054 lines, 4.36 seconds, 132820 bytes code, 888 bytes data. + +[Compile Base\ControllerBase\ControllerBase.dpk] +Running Borland Resource compiler.... +Borland Resource Compiler Version 5.40 +Copyright (c) 1990, 1999 Inprise Corporation. All rights reserved. +Resource Compiled OK. +Running Delphi compiler.... +Using Command Line : /B "C:\Codigo Tecsitel\Source\Base\ControllerBase\ControllerBase.dpk" /Q +CodeGear Delphi for Win32 compiler version 18.5 +Copyright (c) 1983,2007 CodeGear +uControllerDetallesBase.pas(301) Warning: W1036 Variable 'DeletePosicion' might not have been initialized +uControllerDetallesDTO.pas(20) Hint: H2365 Override method TControllerDetallesDTO.ValidarCampos should match case of ancestor TControllerDetallesBase.validarCampos +uControllerDetallesDTO.pas(37) Hint: H2077 Value assigned to 'ImporteTotal' never used +810 lines, 0.27 seconds, 16484 bytes code, 76 bytes data. + +[Compile Base\GUIBase\GUIBase.dpk] +Running Borland Resource compiler.... +Borland Resource Compiler Version 5.40 +Copyright (c) 1990, 1999 Inprise Corporation. All rights reserved. +Resource Compiled OK. +Running Delphi compiler.... +Using Command Line : /B "C:\Codigo Tecsitel\Source\Base\GUIBase\GUIBase.dpk" /Q +CodeGear Delphi for Win32 compiler version 18.5 +Copyright (c) 1983,2007 CodeGear +uEditorBase.pas(141) Warning: W1010 Method 'ShowModal' hides virtual method of base type 'TCustomForm' +uViewGridBase.pas(98) Warning: W1010 Method 'GetPopupMenu' hides virtual method of base type 'TControl' +uViewGridBase.pas(267) Warning: W1035 Return value of function 'TfrViewGridBase.Locate' might be undefined +uEditorPreview.pas(81) Warning: W1010 Method 'FormShow' hides virtual method of base type 'TfEditorBase' +uViewDetallesBase.pas(487) Hint: H2077 Value assigned to 'TfrViewDetallesBase.darPosicionCAMPO' never used +uViewDetallesBase.pas(150) Hint: H2219 Private symbol 'OnSelectChange' declared but never used +4022 lines, 3.59 seconds, 72032 bytes code, 164 bytes data. + +[Mdulos] + +[General] + +[Empresas] + +[Compile Modulos\Empresas\Model\Empresas_model.dpk] +Running Borland Resource compiler.... +Borland Resource Compiler Version 5.40 +Copyright (c) 1990, 1999 Inprise Corporation. All rights reserved. +Resource Compiled OK. +Running Delphi compiler.... +Using Command Line : /B "C:\Codigo Tecsitel\Source\Modulos\Empresas\Model\Empresas_model.dpk" /Q +CodeGear Delphi for Win32 compiler version 18.5 +Copyright (c) 1983,2007 CodeGear +2955 lines, 0.73 seconds, 52996 bytes code, 84 bytes data. + +[Compile Modulos\Empresas\Data\Empresas_data.dpk] +Running Borland Resource compiler.... +Borland Resource Compiler Version 5.40 +Copyright (c) 1990, 1999 Inprise Corporation. All rights reserved. +Resource Compiled OK. +Running Delphi compiler.... +Using Command Line : /B "C:\Codigo Tecsitel\Source\Modulos\Empresas\Data\Empresas_data.dpk" /Q +CodeGear Delphi for Win32 compiler version 18.5 +Copyright (c) 1983,2007 CodeGear +uDataModuleEmpresas.pas(6) Warning: W1006 Unit 'uDAClientDataModule' is deprecated +uDataModuleEmpresas.pas(7) Warning: W1006 Unit 'uROServiceComponent' is deprecated +uDataModuleEmpresas.pas(14) Warning: W1000 Symbol 'TDAClientDataModule' is deprecated +151 lines, 0.77 seconds, 8060 bytes code, 72 bytes data. + +[Compile Modulos\Empresas\Controller\Empresas_controller.dpk] +Running Borland Resource compiler.... +Borland Resource Compiler Version 5.40 +Copyright (c) 1990, 1999 Inprise Corporation. All rights reserved. +Resource Compiled OK. +Running Delphi compiler.... +Using Command Line : /B "C:\Codigo Tecsitel\Source\Modulos\Empresas\Controller\Empresas_controller.dpk" /Q +CodeGear Delphi for Win32 compiler version 18.5 +Copyright (c) 1983,2007 CodeGear +uEmpresasController.pas(102) Hint: H2077 Value assigned to 'TEmpresasController.Eliminar' never used +uEmpresasController.pas(184) Hint: H2077 Value assigned to 'TEmpresasController.ValidarEmpresa' never used +442 lines, 1.09 seconds, 13056 bytes code, 84 bytes data. + +[Compile Base\Usuarios\Usuarios.dpk] +Running Borland Resource compiler.... +Borland Resource Compiler Version 5.40 +Copyright (c) 1990, 1999 Inprise Corporation. All rights reserved. +Resource Compiled OK. +Running Delphi compiler.... +Using Command Line : /B "C:\Codigo Tecsitel\Source\Base\Usuarios\Usuarios.dpk" /Q +CodeGear Delphi for Win32 compiler version 18.5 +Copyright (c) 1983,2007 CodeGear +uDataModuleUsuarios.pas(6) Warning: W1006 Unit 'uDAClientDataModule' is deprecated +uDataModuleUsuarios.pas(7) Warning: W1006 Unit 'uROServiceComponent' is deprecated +uDataModuleUsuarios.pas(15) Warning: W1000 Symbol 'TDAClientDataModule' is deprecated +uDataModuleUsuarios.pas(17) Warning: W1000 Symbol 'TDABINAdapter' is deprecated +534 lines, 0.86 seconds, 14828 bytes code, 116 bytes data. + +[Compile Modulos\Empresas\Views\Empresas_view.dpk] +Running Borland Resource compiler.... +Borland Resource Compiler Version 5.40 +Copyright (c) 1990, 1999 Inprise Corporation. All rights reserved. +Resource Compiled OK. +Running Delphi compiler.... +Using Command Line : /B "C:\Codigo Tecsitel\Source\Modulos\Empresas\Views\Empresas_view.dpk" /Q +CodeGear Delphi for Win32 compiler version 18.5 +Copyright (c) 1983,2007 CodeGear +uEditorEmpresa.pas(24) Warning: W1010 Method 'FormShow' hides virtual method of base type 'TfEditorBase' +608 lines, 0.97 seconds, 17276 bytes code, 88 bytes data. + +[Compile Modulos\Empresas\Plugin\Empresas_plugin.dpk] +Running Borland Resource compiler.... +Borland Resource Compiler Version 5.40 +Copyright (c) 1990, 1999 Inprise Corporation. All rights reserved. +Resource Compiled OK. +Running Delphi compiler.... +Using Command Line : /B "C:\Codigo Tecsitel\Source\Modulos\Empresas\Plugin\Empresas_plugin.dpk" /Q +CodeGear Delphi for Win32 compiler version 18.5 +Copyright (c) 1983,2007 CodeGear +186 lines, 0.92 seconds, 10028 bytes code, 72 bytes data. + +[Formas de pago] + +[Compile Modulos\Formas de pago\Model\FormasPago_model.dpk] +Running Borland Resource compiler.... +Borland Resource Compiler Version 5.40 +Copyright (c) 1990, 1999 Inprise Corporation. All rights reserved. +Resource Compiled OK. +Running Delphi compiler.... +Using Command Line : /B "C:\Codigo Tecsitel\Source\Modulos\Formas de pago\Model\FormasPago_model.dpk" /Q +CodeGear Delphi for Win32 compiler version 18.5 +Copyright (c) 1983,2007 CodeGear +1368 lines, 0.48 seconds, 27436 bytes code, 84 bytes data. + +[Compile Modulos\Formas de pago\Data\FormasPago_data.dpk] +Running Borland Resource compiler.... +Borland Resource Compiler Version 5.40 +Copyright (c) 1990, 1999 Inprise Corporation. All rights reserved. +Resource Compiled OK. +Running Delphi compiler.... +Using Command Line : /B "C:\Codigo Tecsitel\Source\Modulos\Formas de pago\Data\FormasPago_data.dpk" /Q +CodeGear Delphi for Win32 compiler version 18.5 +Copyright (c) 1983,2007 CodeGear +uDataModuleFormasPago.pas(6) Warning: W1006 Unit 'uDAClientDataModule' is deprecated +uDataModuleFormasPago.pas(8) Warning: W1006 Unit 'uROServiceComponent' is deprecated +uDataModuleFormasPago.pas(15) Warning: W1000 Symbol 'TDAClientDataModule' is deprecated +129 lines, 0.53 seconds, 7728 bytes code, 72 bytes data. + +[Compile Modulos\Formas de pago\Controller\FormasPago_controller.dpk] +Running Borland Resource compiler.... +Borland Resource Compiler Version 5.40 +Copyright (c) 1990, 1999 Inprise Corporation. All rights reserved. +Resource Compiled OK. +Running Delphi compiler.... +Using Command Line : /B "C:\Codigo Tecsitel\Source\Modulos\Formas de pago\Controller\FormasPago_controller.dpk" /Q +CodeGear Delphi for Win32 compiler version 18.5 +Copyright (c) 1983,2007 CodeGear +uFormasPagoController.pas(81) Warning: W1000 Symbol 'OpenBraket' is deprecated +uFormasPagoController.pas(83) Warning: W1000 Symbol 'CloseBraket' is deprecated +uFormasPagoController.pas(153) Hint: H2077 Value assigned to 'TFormasPagoController.ValidarFormaPago' never used +uFormasPagoController.pas(218) Hint: H2077 Value assigned to 'TFormasPagoController.Eliminar' never used +426 lines, 0.58 seconds, 11632 bytes code, 84 bytes data. + +[Compile Modulos\Formas de pago\Views\FormasPago_view.dpk] +Running Borland Resource compiler.... +Borland Resource Compiler Version 5.40 +Copyright (c) 1990, 1999 Inprise Corporation. All rights reserved. +Resource Compiled OK. +Running Delphi compiler.... +Using Command Line : /B "C:\Codigo Tecsitel\Source\Modulos\Formas de pago\Views\FormasPago_view.dpk" /Q +CodeGear Delphi for Win32 compiler version 18.5 +Copyright (c) 1983,2007 CodeGear +447 lines, 0.67 seconds, 13528 bytes code, 80 bytes data. + +[Compile Modulos\Formas de pago\Plugin\FormasPago_plugin.dpk] +Running Borland Resource compiler.... +Borland Resource Compiler Version 5.40 +Copyright (c) 1990, 1999 Inprise Corporation. All rights reserved. +Resource Compiled OK. +Running Delphi compiler.... +Using Command Line : /B "C:\Codigo Tecsitel\Source\Modulos\Formas de pago\Plugin\FormasPago_plugin.dpk" /Q +CodeGear Delphi for Win32 compiler version 18.5 +Copyright (c) 1983,2007 CodeGear +120 lines, 0.64 seconds, 8620 bytes code, 68 bytes data. + +[Tipos de IVA] + +[Compile Modulos\Tipos de IVA\Model\TiposIVA_model.dpk] +Running Borland Resource compiler.... +Borland Resource Compiler Version 5.40 +Copyright (c) 1990, 1999 Inprise Corporation. All rights reserved. +Resource Compiled OK. +Running Delphi compiler.... +Using Command Line : /B "C:\Codigo Tecsitel\Source\Modulos\Tipos de IVA\Model\TiposIVA_model.dpk" /Q +CodeGear Delphi for Win32 compiler version 18.5 +Copyright (c) 1983,2007 CodeGear +735 lines, 0.41 seconds, 15224 bytes code, 80 bytes data. + +[Compile Modulos\Tipos de IVA\Data\TiposIVA_data.dpk] +Running Borland Resource compiler.... +Borland Resource Compiler Version 5.40 +Copyright (c) 1990, 1999 Inprise Corporation. All rights reserved. +Resource Compiled OK. +Running Delphi compiler.... +Using Command Line : /B "C:\Codigo Tecsitel\Source\Modulos\Tipos de IVA\Data\TiposIVA_data.dpk" /Q +CodeGear Delphi for Win32 compiler version 18.5 +Copyright (c) 1983,2007 CodeGear +uDataModuleTiposIVA.pas(29) Warning: W1006 Unit 'uDAClientDataModule' is deprecated +uDataModuleTiposIVA.pas(31) Warning: W1006 Unit 'uROServiceComponent' is deprecated +uDataModuleTiposIVA.pas(38) Warning: W1000 Symbol 'TDAClientDataModule' is deprecated +146 lines, 0.53 seconds, 7696 bytes code, 72 bytes data. + +[Compile Modulos\Tipos de IVA\Controller\TiposIVA_controller.dpk] +Running Borland Resource compiler.... +Borland Resource Compiler Version 5.40 +Copyright (c) 1990, 1999 Inprise Corporation. All rights reserved. +Resource Compiled OK. +Running Delphi compiler.... +Using Command Line : /B "C:\Codigo Tecsitel\Source\Modulos\Tipos de IVA\Controller\TiposIVA_controller.dpk" /Q +CodeGear Delphi for Win32 compiler version 18.5 +Copyright (c) 1983,2007 CodeGear +uTiposIVAController.pas(192) Hint: H2077 Value assigned to 'TTiposIVAController.ValidarTipoIVA' never used +uTiposIVAController.pas(257) Hint: H2077 Value assigned to 'TTiposIVAController.Eliminar' never used +457 lines, 0.58 seconds, 11072 bytes code, 76 bytes data. + +[Compile Modulos\Tipos de IVA\Views\TiposIVA_view.dpk] +Running Borland Resource compiler.... +Borland Resource Compiler Version 5.40 +Copyright (c) 1990, 1999 Inprise Corporation. All rights reserved. +Resource Compiled OK. +Running Delphi compiler.... +Using Command Line : /B "C:\Codigo Tecsitel\Source\Modulos\Tipos de IVA\Views\TiposIVA_view.dpk" /Q +CodeGear Delphi for Win32 compiler version 18.5 +Copyright (c) 1983,2007 CodeGear +423 lines, 0.67 seconds, 12252 bytes code, 80 bytes data. + +[Compile Modulos\Tipos de IVA\Plugin\TiposIVA_plugin.dpk] +Running Borland Resource compiler.... +Borland Resource Compiler Version 5.40 +Copyright (c) 1990, 1999 Inprise Corporation. All rights reserved. +Resource Compiled OK. +Running Delphi compiler.... +Using Command Line : /B "C:\Codigo Tecsitel\Source\Modulos\Tipos de IVA\Plugin\TiposIVA_plugin.dpk" /Q +CodeGear Delphi for Win32 compiler version 18.5 +Copyright (c) 1983,2007 CodeGear +116 lines, 0.61 seconds, 8420 bytes code, 68 bytes data. + +[Contactos] + +[Compile Modulos\Contactos\Model\Contactos_model.dpk] +Running Borland Resource compiler.... +Borland Resource Compiler Version 5.40 +Copyright (c) 1990, 1999 Inprise Corporation. All rights reserved. +Resource Compiled OK. +Running Delphi compiler.... +Using Command Line : /B "C:\Codigo Tecsitel\Source\Modulos\Contactos\Model\Contactos_model.dpk" /Q +CodeGear Delphi for Win32 compiler version 18.5 +Copyright (c) 1983,2007 CodeGear +14343 lines, 0.97 seconds, 243688 bytes code, 136 bytes data. + +[Compile Modulos\Contactos\Data\Contactos_data.dpk] +Running Borland Resource compiler.... +Borland Resource Compiler Version 5.40 +Copyright (c) 1990, 1999 Inprise Corporation. All rights reserved. +Resource Compiled OK. +Running Delphi compiler.... +Using Command Line : /B "C:\Codigo Tecsitel\Source\Modulos\Contactos\Data\Contactos_data.dpk" /Q +CodeGear Delphi for Win32 compiler version 18.5 +Copyright (c) 1983,2007 CodeGear +uDataModuleContactos.pas(7) Warning: W1006 Unit 'uDAClientDataModule' is deprecated +uDataModuleContactos.pas(9) Warning: W1006 Unit 'uROServiceComponent' is deprecated +uDataModuleContactos.pas(17) Warning: W1000 Symbol 'TDAClientDataModule' is deprecated +uDataModuleClientes.pas(8) Warning: W1006 Unit 'uROServiceComponent' is deprecated +uDataModuleProveedores.pas(8) Warning: W1006 Unit 'uROServiceComponent' is deprecated +uDataModuleProveedores.pas(61) Warning: W1000 Symbol 'OpenBraket' is deprecated +uDataModuleProveedores.pas(63) Warning: W1000 Symbol 'CloseBraket' is deprecated +uDataModuleEmpleados.pas(8) Warning: W1006 Unit 'uROServiceComponent' is deprecated +552 lines, 0.89 seconds, 14988 bytes code, 84 bytes data. + +[Compile Modulos\Contactos\Controller\Contactos_controller.dpk] +Running Borland Resource compiler.... +Borland Resource Compiler Version 5.40 +Copyright (c) 1990, 1999 Inprise Corporation. All rights reserved. +Resource Compiled OK. +Running Delphi compiler.... +Using Command Line : /B "C:\Codigo Tecsitel\Source\Modulos\Contactos\Controller\Contactos_controller.dpk" /Q +CodeGear Delphi for Win32 compiler version 18.5 +Copyright (c) 1983,2007 CodeGear +uContactosController.pas(190) Hint: H2164 Variable 'NuevoID' is declared but never used in 'TContactosController.Guardar' +uContactosController.pas(227) Hint: H2077 Value assigned to 'TContactosController.ValidarContacto' never used +uEmpleadosController.pas(76) Hint: H2077 Value assigned to 'TEmpleadosController.Eliminar' never used +uEmpleadosController.pas(114) Warning: W1036 Variable 'bEliminado' might not have been initialized +uEmpleadosController.pas(177) Warning: W1036 Variable 'ID_Fichas' might not have been initialized +uEmpleadosController.pas(212) Warning: W1036 Variable 'ID_Fichas' might not have been initialized +uClientesController.pas(150) Hint: H2077 Value assigned to 'TClientesController.Eliminar' never used +uClientesController.pas(188) Warning: W1036 Variable 'bEliminado' might not have been initialized +uClientesController.pas(251) Warning: W1036 Variable 'ListaID' might not have been initialized +uClientesController.pas(286) Warning: W1036 Variable 'ListaID' might not have been initialized +uClientesController.pas(293) Hint: H2077 Value assigned to 'TClientesController.TieneDatosBancarios' never used +uClientesController.pas(360) Error: E2250 There is no overloaded version of 'CopyDataTable' that can be called with these arguments +Contactos_controller.dpk(64) Fatal: F2063 Could not compile used unit 'uClientesController.pas' + +[End ActionList: Main] + +Build Failed! + + +Exit with return code: 1 (BUILDFAILED) + diff --git a/Database/ACANA.FDB b/Database/ACANA.FDB new file mode 100644 index 0000000000000000000000000000000000000000..8f8ef86de02d75d3c1dfbc36862dda4a9bd12c11 GIT binary patch literal 2052096 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 z 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⁣k1Uq)q{_@U zzh{p_=*$ouuLV@xKg7<*m1=wyv$o8(A&S=oUhEzp$zKfH=z}WVf=vYfjN@_lAfDLr zFbDA!x>-i&K&YNPl{yO>=3sLv>?VUPclcmqxAHb4lOl1OJOTq7yD6$mh|bk$Fd9V9 zJ9Ys;nD=i`XaffqtwYJQ*Qs=)6OX$e`>Ws3hSQaw1-wwJMA0&JiePq6YLh~ot_@La z@l~8)uyr0O?r#Dc$7SEd!?>)?OBP{xx?SLB5W9q8Hmq2vKYaoiL~U&0alGL{p94%r za46AusMRIlVKN>cZNJPd?(~q2ekY#I=R5KC`-TJhjjlmGgu-DbucC82X=7=-2hCsX z#9w6a#oiTsXwM1pEngAv7di1?X7I(QgDWDf%pSLITsr3R3FB5;qt%Hos`Se^1}?k( zIKxNQpztxiwxFQEbbPGNfX{K@b7`a|n~VofQjUkLOf=7Cy3u zalHjBr(MIe7-f0H7KqLE4wZfh*oJtD?0D)6Pi=!B=^sp^i&0N!*CMoe+@jLQI(bl2 z5FXUuWqi!70=>T_lpMzA#ei>(_ko%P@n!$yRu$YRi0+@*lHJeoAwIMK*x3-aj0v?6 zVi)dg@iQ{^;q5BK!`ub0K`lvaatC>TI4P6i=Nct(!~X1K1WU{a$KOs=bAapZGmZZz+)mXraG{G)&u-hTv-8XxiG z+(GFEeA(xYnFlze<(=J&Ow1Mah0VK{`OybP#_+s=I8=@VkMP_R9@G-aL(U%VHVw4v z^g#(9GY&~Q1E~4v(!Z`D#d?^+8#?Ldk%fZ?HB0i4{eb%oH5aF#!y_5i*s$L`H`WL7 zwNnEHK5GoXd*8~n<3tbb3*x<>55TDXpG6<;Q%B?ef4^E$e>&{{v(%My&Q^=&pcX(~ zUX9e9t)7C-zo+(W)lfUGZm$_ugEd>#pR(g>D*Gx`i@!H!HY4_brMj~EO0^KS|J_yV zVE4aX)mAM>&A)TirpmQyUga`%bH!G*wPKx`S8*yFPy>O<{j~irZSJT|5nl^ywfywG zI?l7?Z^cGL3dh}Ai1htYp1kKA#P!JycEA15yw@&YW9Tir$4kG;&|7xAk3PEs^zbX- znpd$1p|AbD2H&=KeDpnA-C$@&{ z`TTN2Z~0w(^DWb9=u6t!5&3i&`lR!%UDG#N^TFHxHbZZXmtzk<9aPw3^&8J9T8%H9 zMd3H@Lk9NyRr>T2=Ru#rlDbofBDF@}aJGP`?HB_S=NO_$eX%n@&N1#1Y+u1fV}v7Q zqlGo7;2Z;du~@8_uxr2|zDJ&B@a3FD(7aXd3K#vKIIDEcIt0y6E79-O21D#Go>VQc zzf2S+YGmg}P`C~Ss7Lc7a#F1>fyv#D{T5q`YElbqt?mg^J`awkWg&uRH+W)_#CcMS zAWzwoQQI3|k^NIU9ZF4WdOZTm(dy^og^*vH%xM}0^0Gv6$2LB@VDHDO zEZ|#Rf>F>F#TOY;YY}{H-ytai3}lj`UMYqTRwFtToC3uopp;?byiGhUwAFAxcZhJ}?WQIQZ2hJOJuH0F zqqxG+;;>GpUAL?ylWs31Z)&T=6g`jr3RW}-VQLu%Zs3y91o$i3gh|x?ufaGo{=c_= zh1yzwhN{Nj>*t(<8i0Lj_MCO<>beoc|97a{k^g^T?Mk(vc0KL@oTjE~PFIU+)~b85 z>(#Z{m#g*JQ`BRb0o(%^Q}Z%AQ2X!Ic0-D!Mt|T4nuF*ZC?EIG<}C)&XzY_f3ez6kwRLvPv8;dcQe^ji$Q)fX@Q zxrW~A!KAPK=V;3xG-Y%uhePr}!p%z8s_%?B_2Izw;G2gkX^6_35T z@V*YdbX?QAClt-?xAZ-6D$OH|(YliP!~L+eS4*+@wo2~=OV^n{Vt9&ZCg@MGGe4oP3 zQB+r$E$2e~uu7i?#9VwXZr6D2GA~YBrCOOQy$rTL+C{exgFz@yDNX?lftiMjOj4&D z-1+myCMHngG4_hVl)6);w}Wpc&Uc&PD|2JnQt-vxI5@sim3vCvrqbIu5^-KbhL_9( z9fP z`xve|;ETSD@qMiNDPdHZJ-C+=u_EQFLmsH{v7+WdOqq}LX|i7A^5OjG#n2Mr;xUN$ zM@ZclpXOE|<{X&RPKYV8;yUD;lf`!GHz6F2#5&vp$O9^TR*2lF!4Q*jJ9Ys+Ah)2I z1~A@6gl5kzAxmmFz-tvB4Q1Jiv#m>fZJdF6lR#=$!A~@F;qZ1!R%CgOQyZG4>c>{BYvE&lgUR$E8cSlpMZm%_w!YiJ}bscY;9^~!b|&fG&78& z?T+(ws=&-T4#4b8=U7mq6JCM8xK-B5w7n94@g_iq-@(oDegU<$L<~TFd<55VnDj5^@EOiFQY&N|WuIhHT`PV6lD$vUdO}`l<06FQaU@LQIzfJL z=kO>dC=W8Y!Nl>o5#Y}Kf?6c;#kYaCV(?W0zaUymxw%25HxM~AH)R~DZ4y`3x8QOw zbhW#HYYiE2*T-;WjZ-TnF4wp$AIy#QI1X`ThXyO^L=Rm!J~GA!Xed`KpLGC=+W)nX z1?&IcTz@L;|8=ncH^TnkqE^j0Q$2>e|5wxvsugwJ>ap4l>gw7vR7-6hZvbwD{eQMP zs%B8_&F0m3c72^@iTE`@DXM*J=7jt3Ba&2qS)p*BW}OJw87`<`P41wZ})F zeGTX_e;PUy`VB4)=#$O2>_q{6LchUc9IHc-j_)m+@aaB>Fw7i`(Qjx}Su zn%VyKHtb)a^G^72*AjlBBjFueZeTD28K&ii3C&m^exqYZM$qrd_cK5&h9(o011CRD zv0-eMNX*X-;auOhQ>v+aPo>`q#@J6oyydLDBH*ocCKLe%bDWFGm={xwBYX8XRQif& zUxnYl1pG`q2i)-Bd*L2)c+W=)yF7*ziWVWD@GpQ4%Tchon^TUWH{ezuzL4p+3(w60 zcDR4H)V6=8O8+y3@%)f1L_hc^^ZQ0WXk)Aca+IbyD4>*N?(p&57&W~e(;n*KlFR)Fyin98SOTj8BGKjac{xzhTm+H-+iE*DP^)-s!$^7);2b^!o{sFND7+|7jxYL?hIc~U#Y~>$qaExm zY9L$&1pNP@F_ZrC#3Y9J9Yj{}JFFMQK^Bk5>Wyw$@$}^HihhhcLin=#gC;;&+wf2n zvuv>3hDYJv!gWUdy0Mgucmt53LC4$0la|<`8y}P7m%RNhx5LHzB5$#CJ{Wa#k4j(4 zUdFL_3KL7_HSSj83%k(-^rFH1PBunFKJdUOarq8GdI~@x9GTxdor%NwjnG&d*SV?d zft`$zdsySlp58Z#A%t<7haYHUWDK9y_4O&H^1dDn5RVPCz9W| zOfE@Se=VTbhT1POqQ*dM$_S=M8{Z@FH9r*Pg6VMyVDpn9T-oEPSpXNB1*65=Oj zM1FjHXhiSiyvl82XQhRLOG2*!i|D-?;X!Rgc*r?|Tzl|}ieMTTV3c!#{iN=RSf{eV2fQox0A(;p+wHv|ZKKZ=)M0J8rsjF4`!dTm+&(wH` z(IIk$bB>=h`SmkA1wZF>vc1VR@AOi57zXn%WBS13vdtMj_hXG|C`jj?3rpW z?EkHqP3kDv|M$Y?zpQ#AZ2vrL|6X+o?EZzQ2Y7eo>1w=kP#smdPTf&)I&uI;19STs z{NHdc0OO7Ear%^&DO0pq52L$FwaI>2j9*~8A9LNv89@?;or+?)Z*URnQ;>V=Nsk?y zC1==a;Fc^${o|S*_ofojXFdvg_yz1c2wuD5Izw;S6+XW}_Jg`T&7Ia`Xuke_AfRtf z)c)+AfIgue`2K)CnH`w{=tw8CPbklK1oR2z z`F7A#o=N>;R~mZDFXq_4J_#zE357TkzU<&@iOowK?w{n*;Mx;!(3q`a`|<2*)wUm% z&!DyucE0UYwf8Z>*|^~)E^tHa>=OOs69%(U^bhJda$~kn{GB5@F83;MJD7snNHv00`^u z;{b$-5XbyjfJyxWu|FU}zZ;s|J;GOC#m2LB4u}ORFrTMK-Mo)c6ybJ?etx~dq<&8G zmi5JqAOx_GR{<#2+cJim+`gdCM9kak0UoX$C3**UeaJxHbHkfe_zLWH+>)e~CB*;) z<-IEXQJ}yMi}(8@21o2l5qsQ!gmX#tsgc#L`S0T#d{agXD;bE%1>;k0VmN7oq#R6*M|vQ5pO$BGRi>oB>FC- zdKL`douk7S8|_eh7uNycIicT|@%fPXeU1;V!L%{ge%g;#LdhyDT%+RfDTUMLnt{Yk6gjj z%^7MT!b9c^okY#dED3nP21Aq=1+lSN22F;O=)F#PP(u+cnIklCnwddT0*e(FVc=W? zsPHMRam06s{0e+|oV9Q|(Ls$0jJPL+vYhXB z%8*(TFirluy?#l43of)CqnHTIr&L}e}GM~zN! z3wuu~N&EJmw>z<^{SjNvU)g)CT|Ok~>Gqy0fgiR1=U`snr;bur*6&mc>W9_Mb9Sm8 z{Jp1c7`FfEDpxn4ZmsQCn`#Hu6E)|m>yY=q6!rh^&GxGcvx91W_FQ#)X02M4d9}K` z`U1rJCscLy8Hn|d!QLNLw^p97Mk-HJPgU$xSKx21Vi-a7ozIZ1KaHI)c`4r!c^+s> zNez#5mpah)3VP}-eKuL1XV}dD4um_N8}!&YmE=4d>{7{UvQ>Ty^s_+!Fy2GORjkwj zrM!0dHw3>8T4XZ2`ZhyvS9SNaKl2r7Pg`3;yCwT&gWsIc?z%OgPiS|2DWFegcV)jA z&?l2m<_n;Qoz`aAUB2pts~1I_qS=_zzGakF6~wXI=Uve7+nz@bvoy z-GVq$qpspFtMq?huZZeU!t0KJmz+;}Z^HSMm{;JC4$Ng%!+{I(4)BZmJcZx44L|Mj z)ckA{6uPH-FEo8C@C)yS-)8@GZdI_+XM`VjG|H04WO@NUUN~*%B;@)n01k!qCOOZ) zDR|iNWNc7(oS)RdCMCx}Y+Neg7tkQpaVdo65Mq?_zc47HgM+%`-vlq0etUbsOU4H8 z8G{$bCONNyu&lJfudDR!aeksxa5u-f--cs~{%Fk*gL4oJtbW| zp;^Y<=7h||O#M1=!+D@GMqe|yEiy*9;Ee+WV^nmjGw)+C7%{GxprjaPpBbNU@jNMO zH>GgF`)hI82~VDEl%1}dz3No?OvQf$>+}W5<(O`pdDSZ>kOY=k!d)H}w@j<_1IaL1f6&o0!cqZb-Q0r;Q5fn0u#i z%wVr$>TPsA;X>1wONz%?v*T>X?Qqp z_QQGgC5m41MGJeHtQ%?-!b6X_W)d26XGa1i*7$$B;sd{4)}eBqvMh#HA~?q zYema4x>lV0IOp85ys;E7YNf(U=Ctk`^o;5IW_Xp5<)<~jsQq7${__6+RrTkqg|Po0 zoYSMG@CLw9bMoreI@AHE%d0;j=l`nOb5u|58r=OKle_;NH7nGe*xfM5*faYA@>lt*^?f*;S{h>nqPf&i^L$M8zhxr(&b(L;e4!R6oW2 z4E>qL7a;5IAua1pi4QP|j2T8f=FSAvLwIXUD%U>k%p2W_#I6y<4)6*9s!HihEEF_C z64^r#@V-%>{Y-AKuR5)`x;GC0pr%iH$3Oc3=#fXz-jUGWyHDfWkFNRr3z`2m^hw+Q zGed9XtNZ$!{i$w01eDBwaZf;>u)qJM+tX&n`F;8M*`FBvj)d*`aX_E2J$IY-Sa}4# z+K1U68T|Hy_Vy10`h@oOe+Kjk?d`h)`h@oO4+8px^89{4pHQCP13mp03G);x?-YDk z_Q~W~`CXxZ%93W}tdN-DuR(?VTi(KZ@r&?5o2{^=jO4bl;v3DJi6PYSos`R2A5!UG zWBZ8eX|hNCO5=4DVx!Cm>@szQO&aP5H>2XtRNR-42Kg%hN9eR~mYBiYRLI1oMlh@|{~?a^OCY=AWB+5YJLJs8gALe3 zA&oVX&1)JfL6A#Iv~*Lk8`*GDh2-*^1be3(duuGKg#IK{6p@ z0(cgX|E(~dyx+`6iP8^%Mf(2m-Dr`={Q(c^jI3DGj+ms8N35-=SaU!79v&~j`Gvs| zrwn6HeBZ7Ismq0X^(AK)Vo$#SYG@7!CQlajU-H1?@|FHm%OH;4dr&olpICubJ57`i9!yNnf&9+? zVeAd4n(-3=9#D>4C2AsqspTNPL&?MTgUS`G(z_9Shd-t?LVXaqQJ5RV(E&WDiQtuXB<2CD)f)@|ICi+qS50Uc4ZP4V3AQc4lIOFyWA2@kPLne-Cg z{lYxBzd7Y}7x3?loMVDdjZN@nZR$SQyNe6I&%m$H>k^C?;n-f zhI{_6S4Y9_-&1w5YN^_xZmfKxT2%Q4bwkDL)Oi)%YCdfJ+h?y;_p8&{-KXtOU~32e z8;hyQ{7Rz~e^#|Oh<*UyDZX$C3L1glPVtbgR>$F=Hs7BD`egmh>@)38X!B+NXz<%CE6$!jky>=wKLqp%ZQ{oQ`h@cNeL$a3 zKEDg-6UygN&~tq4Boa@5GmjYhgt_>c-x~UaIU$+f76S>q|Q z#zhB5{HwhII(Tu77Z*4x+6==Y#N}gn@UX~{o1MZUzx0shn*#aC-p`Dj-CLI^+l15-Ol==#TJHc8NOGg|BlT%d{)YN{5QeCZXoA9ipKHN zb}xiImaukcTH@hm1i*tUs?#b?C>r-Su#ea}!v8?PU-W@Z8_A!#YQep6F#KKT)lXFV zK)eky*4zwp&1%WX~SQGHc+2fwv??oqy|WRxWC4D ziOiogygFpe`%VM1j>4GJa(2jkMvBPyRr<-etc5pE6UtiKCNkf|Hj(i@7~Zb2#(dik z{wIvb<@`jzUyrqJKw+#8sR7nFqXAE#0gn3vJRPO~9A}gjgCv4+o+)!FEA|(#aplwU zR3)GG;<~06<6x(>ThT{1{|x>)$G*Z-TKE^&HN6Oj#@{v8SW=Ip4X!oClV93kt!vi% zdzubre-7j#Xi;inepS>%aiiAgbn_GaPp_7B>ZL0pRs}cpKi`4 zaoMQKN2zY|}ut|2#rlLi}*?01iXPehLpKGZVFNA5c? zZI7=gdS{*q0bD47FAQmWkAPLQj)d@{hDu)Ii)IZE-oEnkifT*+Hh8w? zw_p<=KWeq)AvPxOulckxG~B8hBKOyR!|`z7Qu`&Y=(Wr&VwH_jZRZe|@b7+Jr5_d+ zvHbtTz?bp=8|zoA!TObIcKx~P2GjspHD{}O2(|w%L;nAQx-Gc>-=i+C-KZAUBHthP z|F_oUl|l`GJ=t^AlI)ZP>o1R0N525QARWeV_>bpN0ewRG z&}ydqlh*933g{Ecr!t^VD4z<@Q$7j(TbbF0KB@m>mZ7)(AMx{ns~on!t}S~^j$hWk z!gwf(Q&|PDrWCG5z5ts?SVtAT?fC{v-=D|B=IwHSzIe4gFXiD7T~2U={)>1r7;Id& z&(Q%Nt&<=q4o1*PjKkZyL658Yg&Xt;iXTnDxD2>+Q3m2qp^s(;_veqIC>(XhkJOm@ zemCk9wDUF}qV{mWz^^M#52=|XHgc#OE^6x>8EdD+JD+DTP0g%!edpT(8-vcFZ{o*c zaYOKVgbm*Vm$T)$8dtwLhM0J}esc^p6EOY=w(o-}KY}P(c`IT**o5nhOP`)& z_=tXj_ZZt*|Ik@8sU#nHkMTKxcj<{o7<`#Chzzx}24XUNJNk_9(-BcQ$yoEWqntR_ zPz~FqMj~Dpn082FX)90-pA8n_J1Qchd74L~=!R?iRC^=F!dHaNj!5uMvJOb#B6g70 zgH(o~aHcph?^5Y`;O&?PJe|=$UB8aB9hyg%esUvY%3806sJZ6Km!t?wXrg zcKVq^Y$YaMG&Fiao)79>gglXc6o5G2RNQ?s%}4O{d4o(OFu-|Jib2R_j!dLl;)dlfbCepA;L@f=>=&qRP>KE403|+# z)S8IVA#;SY5TCHbB6azunI)KoS-^+S2APA@vIJk|2ojNjk2z8rzvL`IB60>i9B&r{ z@r*)kLGYk8S+WnMX9?==R6FHFZBF_ja|GE!;DI@kgoiy#kS$ad#h0<9_9ysyj=<6e z1Nuoyb|N%OkPTVs#HE%fxSS(;cuRtoEG>xPtpK`fZd0oyzW6(k;)E|KQdryctOQjZ zt!lbRahfeq;khU>pvFlo@n=vgYrst0=-;29mCe$4(fI%2XfN;o@2x)t_WxQnuYQfX zbOx=}S=cfL9bbpUS0`+uuyx2cE3_J0%d0M@GOQ3IeSn^zAa_y0=N09cgi zS9etB)p^zDsJYdf)U{QwQj4m_)oqm{r~z;~Y5T&zw2I`b^KGg4-{2EekV^2yUXQUidc>F5}s zw*{(Ap$Gs>?dS%68(#U1wqM4lJ>VtdgU8yyR`i?XybAKN(j)N}Ona1{j89v@Pmhmg zDEiJpFti2;4BNoa`Mx(#4v{Cv2=_wJ#pKeQQn(k=8tse7uEpT$`{c+~Z8!JHi{ABV zQ&W)B+XC>YuR!p5g0bDrGB&ic%w2B}zH2aG>^6f3vNq%Mm#3ca(Bq+*U_9&)L97!6 zCe{FeNfVe{>Ub}KC#CS9{OKptcfH-curGTfm#LA$3EMy-8=j`b)OWo__WG{36V;tQ z0NFPH9!Md%2tH3=!7s{Q-^2Fc7sO&M1c>DXc42YYMv}F_6I*y#ve);plQ0R({&+CS zhWjBrc*+Zpg6wTSEp`fPa7XNm*pU5VHav_evY{qGOnnaOdha+^~Mq1{Dj1}aI%$A}t+v_te<`Uu+SiL$3| zpygV*1&-YjK7yB(=qt4n;UV*YzG->QV0s>|$pGKs+Klkgb3rqTtV4Ha z3XH4?0Y)zcBga~#79@NM=M{E)S8pJuqR`~LTF9oihu;a1`9MvHm<=)x2!8W3jOv&V z!7U}ncp&)wk`m)VElYUGc=RkIuSgI4yb9v77AdZQ91DKAm7#GFUmdkH^4lMjtO38s zuq5PX4G;LeINm?uM=g*1=o_RnfbU$|!&91>gxwbiYG?lcZI4`OXu{e>+4plJ1dr`3sIN9p<)GM z`lqM|XRlOyX7{Mg_&aZQuex*Aay7sDRMnSWVWIrr`fSfC^)uM~wM_cKpTqEP{Rbke z+%MB+Lc}F9?w;+U)i^2%gUaIa*VH}(!W=! z+1DubhH4w*(o4UeO1+2wrTE|RkC|fsLCs1jqQ`K4F{3uVMX7~oANzcm>GLt>-*eS5 z(yqVFu+OtTp;D>e!x3D?*6|NzSL}E2-_I$?79?}DY`65T?pxctuIsnCddhf9@2S0O zyH|FvT(j=6sCZK%g3LAQi~BW+2QE$hk|I#4_Z0s-{&@)P zjNr(4&p>V&47o~GuubMqhO%GLwXApTuX1%F_O5j+dr!mk{#~wC&*{~DYu2vseN<2E zDv?+fCtnDsnm9eZ%X0goZwbq|n!i7TIfKa?;$O?(Pd-;-b05DylX(*R{lmzA zhI1s^hq=U<+1!Y=V}`Z@F$q(g^l}Bvy&Gletajd zm6=}4iCM(LUS6lya8J+5jVsr6{l*2Pw}J+<`f3EI20$U48m^hOz1>}FPg(Pj1EpRT z9(K5HF3eMVAJf}hR?xDtUP5?PvIaMHJ(wJ;aL7daSa15ca&_N^-gWEOJmSFA8(w3l z>1DOFt2*AUKwf%-DJ`$Y4ue$O$cz0$1A!y+(SsA-s){>#5eMTZ=gPXSRXuBd<>-~` zWGU?BaU8S9XtlteOfHqn4Wv+is$}n&*?f*-)a!k;XD0JFicx1UJo8T0dvX58Wde*D&fPeMoM|(gw*(2v z)IJxJO}5!F4C`!61~E(evThbUU=e@x}-M^XQO zhZ>x-M*XR7OzlD3e|_Dl>Y>^l>RP<}x1@Hfy0>PF+Kf5?_hzTmNOn{`mBH_1R;cxv zbCLUxn1A&a145GWb7kJ51+^9dM_M6;y;ry5isI|uKPw=K`37+^bm6Uc`lPwmuQc>l`+f4soNDN;7^*MVJ+so#TR8__{1t}Yl24;&yfUX4dMier z_R%jl^j1vzcn^KH7xc^#Nm>uFC!lXgHh;Qxd+d6M7x>z<%-|=iEs^aC=o7YQscBEb z`I9}_;I}2K-&getO@F{D{otDq*^>f%tM)_4w=4d9u3FhU#Gj9n-(0{6_KrlUL@4=v z26l~nI2I{NHtMo=R0cn(>zKaifL(m2thtZ9I z5B}+CgtdF35gX{f4(D%48`cMHV2p;Tlby&ZDA|A@Dio9c6l=Jy2Mejlb>I@07CcfX*8<-0KKfgrO%oBxjk^FzA1T*W{C3_BKiMxqN3GOR}zsBH8 ze!0k`#0-z&+v)$1$r^A7*J+ga(P;*s@gvl#Y-hf)tNC*1PYe%DZkLDu^wkWhRe2hK z<8tB23AyN6mCPq)t;#~Y=OXJ-I4Tz<>Qy42bT!Z?r{efLX^AiI(V_MnzAXG$^+(j6 zTjgvgPhjH6yk_=KJLdH|`{oRq7la;pt!6wwDfRLYq(b(pe)>{^(S<%tDP;e=65L#I zFrMJ#Cv#l*VUAn*Ka7OgcYG67h6KM;!7q~AFM9(u0P>SL&)tbt6>NS_PjyJ_PAi@A zrA9&ivOa`A*2mMtKfF7xaPp^yLjHyI!>SIY`IlIsSU;z5KtuCT)(M|ya`G9}h8zy=<%a4k?osL9D3;6xYDa>l&ngMLbG;Xq zB`4pEszW01-UC*S`~+%N!i#4To-afX{H@0Gh20c!SjHj)YF)%C)Q99JGP11disr3P zB)7?OE!2lx21xvNXxu~=)XW4^%R&+ZqV*vipwrif>|!V4{HWOpKg#1+#M7hoAsx&l zp1w4OCo-YtN4z$v#iw(&u>)FD54ke#qrOBnKICkl9OET*o2WH{*8wThF$;U-fwq%p z#HwHoT1pl6tXGg-SXRG^Z-))%p$+#TT6$Ui zCF-d9?dsY&Q>gv_df5K2QA_Ij)orz}LEZn0)txmLsKJ`;>Ot83gW1=s`Kj07H~(?} zMD3i=oRx7H(&J!iZJoXb+5t7DlIlTJH?va3O3b+*sPquVBp+>y?Gs=t=o9En=o9D% zJ$(X}&F-`Dvs(;)!Z!o5n+<(?sl4rMTCx2pwSUPYDs|HVRWVC7+iB#Hdl6y!&lq~k zME25uTGO{CrGM`MRXJNVb=prJhHb!bd#(|D&=<=)dfW3JgWqhKygvMQ8+_YE;iG?- zp|@NV-uApxx2L12v*;4=;lCrGw@hju{gnZINt-$>&)4bp+t*TZJ)!v@rhl!Wx5oFv zu#Y87{~Ar-YPk?P_IvOzHuP5c$XEODFEsSld}#OKzuM4S?u5pK(B?@r0_iTrd(I{EY_Rl4owMhkm`LZ?v{s?|NJ+^o{ltFe76g{F4p6 zHD2lg5B*7+-hMJ>Ec_--czl;=dix2OQQ!P|xuLfNy1^%(PD5|WbI{k{cA5W;sE(Oz zzdAGC4ZXEq zhJEApTrJP$2J5)?wP$`npHTis==L;)=6_t58idvWofgGH8DGI83H&@HU8v6DN=s{|dQjen_ zY#g-=@`jJD6)L`H-Xkx`X+|aze9?KZjrd1JSKb=%mGMQ5(sq;#Jy^a4$y!5;8l_v~ zyhXOuU@2Sk){18C8(VLu3(T!y1@kQ&*7&%d8}Kgpo?(T~T-sCgJ)a8}_$Zv+NWBr+ zo@03E+Mr^G(2G@)i)ZSVxUUR5twz`Gz{YjCk_HiN(8e&X2y ze{0>+$MkeGz#3pQ;A{@CEqj?;X9fHV>lXDu50bg8+q1wXe78x)_)Nn`*8({x$M{3hwbM;D{)_ca5zO`$*dwVvl z?fqTu0X4fCr~57VeZGj-VD5o^rho?(;~?;EG9wOeU25*7E>p4WcZi9D>!8_>?@mdUC&fpz?hKv@F+;1Z}BFBSh+>KAGudiN5QORL;JcsI+r~ za_7quC`+I$fwBb35-3ZcEP=8F$`U9`pe%v11paSJU>@H8egH;om8mySe4m~5Z=N`y zjy$FJG(5P>r{8;Pt-kR8drt8GZ81+O@@Yi81^)yh;+>DHBck;43iRd$zI7me9K;=u zqXFs~7S{{@5dYZ)`rf{kr>yN--pgP3Gk&4{akaje^lUp`hEuBLan(>6{IY5LT>ifO ztAD_+Ha||PT!9wKv@E136v#JmOxno4hc+J_BU!2J_aKkHh7)t8r(TNIy{NDQwPT;ey^%3 zRG$Ck*9wnW4zvv9Tbi0X@(ul+_@AbR!GVF+hR%H3w)WPJmd^eug|~Naz56M3_+0&4 zO9#d#CWgk2A065?rJhhJyf*XH-%}g*6Re@NvmFm2Hnrqi2L?OZTie>V;bU8K``}<} z=U}6Nq1}xCA027`UUjs(s(y!Bh`+ba*`fOI_rbay>O%aj#os-(J5&q)-chqdZN}fn zvOCme_&XneZ^-OWOY!&a>K*Dl{C%owhq@Af7vS&S${lJI{@!1)L+!%fYW%%+_72s6 zzqilY5otyFpJfS@C6Gh{S<4TZO5J}zz4SG`O&x7*ojuKqTiQC>7PmAvbu3=i)46YHM#@+|k+C(bnD7)z;X) z{2+KWsNcqUE$>*?+|kg{vUqt%Cpy>E+qSr)rJ-kWM|0P*p6-r@W|BtmEhSwxmp;^`ul5+shDKnOn)Dpf$@#BqoL6%KJCM?-eUH=XT$ox%1eWJ7O)Z%;~M2ew};IIbWZ1@41h@Z92wD@N(h4 zW?rsml})`=(hT1YG}|xR8h#Jb)%;?y5TVV4#j@8eufmvN!VS&5Jhy1NkzdeE(?DLj zAE8;;WzENB>Pw~(6&$;3+bE3bE`EEq<{8`$@$0{S*)IiJP;`-3ffyQSheoJthHmPHRkU5Z+_i0>UN)?6=4I->Rk8v^ z&PD^Vi;<%hi)Nseta8bT$`~PdR=0ZDV}=c5jl6O<+eN!@!uxojIlhk=21QE?`~cmp z6b4pg`HmZOZHLIqglQayNjLty0^PCQFtRjP576c#qp0}-KE5yrEl)SRQps?;)yo<) zEO@z**YcYkyV+Pyl?*coPK5oISL|9Zi`n5bjl5RfT-JlA9F)<> z3uqQLE1rsBWFnBBZTfnkhh?XGy>ttnXy#?;Rv5ZoNppk1MB8v!d1x70(JgqUUoHd% z{Uk8d4S1-TSKzu{*>`Ns@eCVzVF6t9!?MN-`C<^cL7`}OtCu2CrD` zhAykW3_~jfj-wgHVu&_aFiS?)7$UC%+}46u?HNVyB=j;1@UzXl9LLuq2ko$k zg)I7Vq_gK0X<-yPj#(@_=n&mLFJsKI;n#62Gu^l^JCmo1RbG2d_A72Se z53g)^W>}WB4VT9orq0T!)y=#xp1|4*Gj}~!&KpjI{^j~w$qfw)3oEo8+43;uWq4zV z;fiKnJ_=tBqd+sT3PC&6J2O~QUVfphmpoGoEyKZb!#1^I!Ll^3WLTybVjW%T`gvJnrUk#>%&X)ZXaG)0 z^TUFN{uLB48o)TJRK^;t=zCaB$;JRxy^xmkh^MWo8jJhE1%94>S);kWv(&BLuQ>ugJ@a+y8{97je>i56*LE zbKleREI*$w^owV5IGzT%6OieJsY=GO55RB0=xt8{+>QTz5ERFwO0Jk=gh^3RbuM4!&{lrz4++bt7Br zuG0x2KnM^5ga9Ex2oM5<03kpK5CVh%AwUQKJXCFi7cQ zdjh$qvE_+l+WdZ+u7{;l@RfGH)uo$)+*6nebBssB(=;)!p0{{T0O|D}%%c^rzs5Y6 zj9EAjG7655C$da3mT6knZtWHLF)h+`nQFRNn!0p3P#btA>(hw=M~oP!Fo)3SU*g|{DSx%_CWA^VmrT}1nS2B zaqR(sr}~bwH3HUF_Eh$7-`#3$fFGgIt=j*0V*CH=BUhYmm54tfKnM^5ga9Ex2oM5< z03kpK5CVh%A@Gq#pza-k+-2|JDhMZFYPzwBe+(8cgmBmX%8nho-rS>3RMg6z>-JZ6 zZchpS5K(N^{{JGj|Gzmh_L0VzlqUoT0YZQfAOr{jLVyq;1PB2_fDj-A<{AQZ{Q14trdrD)|Z@p!z79}{2} zaC`~#U^sq16XVF*{|mWp>F!Kk?f+=i=1`l_dyWI(L)f-)(}q$MZrv2U`Xb(c1+iTf zW2-Ey(IYOS=Qh#f+K0WbfU*o1V*DBWXZ!O{!06^rty@`_@f&LI=3m$x7K4}6w?JEl znI+p@f(_jjUz(`gh4$H_D9{HPG-|Xz4H3^O$&mutOmdWgyO|Y_Dt#s8ik1!n(-~z6 z%o`7@#=Q(}W(f?kE2)E_ESc%)%&?MC7WJXlXQTGhcQaGxmms-Rv-}sB%;=lUr(TF< zR>xj|iOP=M+xJ)08@BJ?wf(By6?MnnJ=blY*t=idwdcCZ&dPqY-zJ(}6Gr>nrf~bJ z%FbPTm{(nmnO7_s=ewM3UCqrnCiq{cCpH$ zvS)&wUwi$v`|uD&$KPkFwlkwG)`Hl`rI$>ld|e$zD~i-r6a^ZXV=Yh8bv%d`-`Jq4pnn`4O{6gK->VgYAyZ5MRb z_C}uXD9g9+o65+fGXF2RENpkLAmhFK`n^nN{K8j1Mj7dUVjqK$iBXt2s#rUANqtnY z3Ioq9;KjPYVimGdU>bw|jIs)PFzjCf7;bkJYQRB3_JdsZgDJjSH-=c<&sf8&o1-ll z6R2xcb&N#;tU_0B{7eOdlvY8(#k(f9#r4t-3=Gz&WBaxnaft&u5rDpF!o^?<(-JGB~LW2@fe0^kgwU+ro~|s5{?XD)3mEuz;m0md#?r zFLJr(al0CrRPutzuu;fwBhPPR&6gx%*Y4!MLEv`-=XXPM*|TrE7&JD89{5;=n6l|M zvjE{f_v9vYLXJ&8$EJ5u=@YS8E6BQ*%euA|HnFcMyp@S@es_>SN#IlBd`iujwAM{MEQQ4_26m&_tjjA z)y=r?sob~?8$=QYg?ao9$9vHns+b*5p}Nu4S5@{IyuM9g zaiwkg-&fy+rgYhjf$?HbTBb9b(@mwRyf{^oj_H-oZD9P_IqTA8TY8@5 z=d8~**`)Py8LOsr9rbcz30tLWrCvsah0Pq?rxP(8Wg?OH9 z_>5YQ{SPK%6FD562OPIq)Pwu>WB-_8EnhroF$V$X6g1?E(*d3XVFJPGAubpkVf|1z z+|HiMk@(`y%8^$6j5E$35c(e5O(iI2F0b$O$J4s*e%ZMO8Ra}Qpjw9~PBf6|^TYx8 zRA*1A&FS%&;<$NA%bwgH&-{bx=ylq2Ix7{qY)+{|+tSSM}!X$wh@Zmjj1 z+60VG@DAQqlNu1aq0V+bkB`Akvr(xjSlH3b7jR!%ztjUB=Gd<#v{~Q&U?bJNszb8EgOJ46f>iE#cGN{$C-)IxBc_xI*b>?&~RU z^UgS#PGOVjl!ht#c%`msjZ^fe^9oMT$A)wABFf3Np>e8v`XC<`FnpL}`0%NW7w2*t zTD^YX1WxR0IqQ$LWN@oaEgVY~;Wv``g~DqIY-S+7Wx#K<$%NwD7s=gp-eC95_po#O zX?{`<xHuDdR`V?Ph}BrRh~@D%wJXO zz8qU}f9G;+5iiHSi~U8c&G}!r@7U)28s_^We72(vecV&RSPCu@5^qy;yY8L2zh_oD zaySUMBfpsKw&Y3s1>D-%FBWpYc!vAMvod~hFZYX~2ERC8C=<`;W#aiCiGEO=J%qr0 zsJ_se3&H&Yj`wpM@29$@`?|&CNltMe=&yA4y9M0uj&Q$wO2+SQ;eMCSMNLhH{EjV~ z_2K(s$nR#U?mA6=_sgCA?kw(i|Hl39+cJK44fnfrE_Ld6)c^V6eU8Q+X36JH^SIw9 zJNw=!_dWI+0&9b@=|dgcV86tDFI`)Zwg0Qj3!)>kwE&jkx-o3KGxw~b=Bm@O;cGox zyo8}ww+>#-zR+vh+wJ4rZl92`+ix`3 z?W2>*W1`(sOieL0%_+b>U!2Zg^OcT1_$c?m$GY=DmT&W#)A+t;S|{;*GmmBK-uJB4 zq%;;X)2h@o7Sd)p>yw<@bMj*$hp^sx1LKkmAG7!iu^wt&zb)o**>k+F=n)y;s^vSQ zZ#Cqbd4zlmBwxC2{{G)8g!w3M|JO>T@2cSH`s!8NudN(_+d=vFNpQvd z8}ob=eX<8!*VcasxoGPqK!MuO4;)1LEYcf4sFJs(e=wnUd^!631BpD2VaUnzRi3}B zJb%vVbvbzk{w$%lElK*XaC%dc{>z+RQl9+pB0WAY%PdIYlfNUSx8&$=Pw6G?;kHD6 zOIF|C;`EaG4tz18Hzn<7;5RwFCyD>(IlU`Mzb~QJW#!)!(>uPbJfG$CvhuKnKCq8aC%vL-j&c7Wb@yd(0j7QvM33mzDoh3B6sA%zq=NmwjIAIlZjDKga21 z_5CELm-Mgv6-eI$j%~=54+HF@EoeWsWcit2%k$Ue%IADJrI##EoJ1Z|7Ehbg%i?Kr zdRcvqM1E73!!v(LN-wGJ#atfQ^5mj~-jFRHKEdf_@w|}J%i_5trni0B@_8|*m(70> zrqNP5TtEb2HFJgMpb=uLta{_u9RHEy&qsMg* z`f`lkGhVI+mvymdy*#*H0;kud=-)`?@oJ$^J9+T^_*h@jG}_VQd-aUo6q4z|^v@>xT81O1?{`vq!L-}u|8z<(m})!vBb;9M<>dK~l-`!3|8|0p zA&ciDF}+n6I<=GkZ#lhKbhV>D%<09Vs~!C}IKALsN;~>PoL;ccw)B6M(7Qq?G^w}o zudj1@v8uuK4D09rvyuOPTp{oIk>#**1WTBcuP$F*c*Z&xL$Bh~PN&X#WMh6`spB^rdL*{`<+^-V3VN*MdaRsLk4~~bhojHz z`Tubpk1GWpS8^U#O7W=r1E#9_10GlX0excuF4c%TSSlQ=>_Yt(+sIMm%H;c_I{EGq zdy$C*BPx# literal 0 HcmV?d00001 diff --git a/Database/Anterior/VISTAS.SQL b/Database/Anterior/VISTAS.SQL new file mode 100644 index 00000000..05bc8cc3 --- /dev/null +++ b/Database/Anterior/VISTAS.SQL @@ -0,0 +1,1947 @@ +DROP VIEW V_FACTURAS_CLIENTE; +DROP VIEW V_PRESUPUESTOS_CLIENTE; +DROP VIEW V_ARTICULOS; +DROP VIEW V_EMPLEADOS; +DROP VIEW V_PROVEEDORES; +DROP VIEW V_CLIENTES; +DROP VIEW V_CONTACTOS; + + +CREATE VIEW V_CONTACTOS( + ID, + ID_CATEGORIA, + NIF_CIF, + NOMBRE, + PERSONA_CONTACTO, + CALLE, + POBLACION, + PROVINCIA, + CODIGO_POSTAL, + TELEFONO_1, + TELEFONO_2, + MOVIL_1, + MOVIL_2, + FAX, + EMAIL_1, + EMAIL_2, + PAGINA_WEB, + NOTAS, + FECHA_ALTA, + FECHA_MODIFICACION, + USUARIO, + ID_EMPRESA, + REFERENCIA) +AS +SELECT CONTACTOS.ID, + CONTACTOS_CATEGORIAS.ID_CATEGORIA, + CONTACTOS.NIF_CIF, + CONTACTOS.NOMBRE, + CONTACTOS.PERSONA_CONTACTO, + CONTACTOS.CALLE, + CONTACTOS.POBLACION, + CONTACTOS.PROVINCIA, + CONTACTOS.CODIGO_POSTAL, + CONTACTOS.TELEFONO_1, + CONTACTOS.TELEFONO_2, + CONTACTOS.MOVIL_1, + CONTACTOS.MOVIL_2, + CONTACTOS.FAX, + CONTACTOS.EMAIL_1, + CONTACTOS.EMAIL_2, + CONTACTOS.PAGINA_WEB, + CONTACTOS.NOTAS, + CONTACTOS.FECHA_ALTA, + CONTACTOS.FECHA_MODIFICACION, + CONTACTOS.USUARIO, + EMPRESAS_CONTACTOS.ID_EMPRESA, + CONTACTOS.REFERENCIA +FROM CONTACTOS + INNER JOIN CONTACTOS_CATEGORIAS ON (CONTACTOS_CATEGORIAS.ID_CONTACTO = + CONTACTOS.ID) + INNER JOIN EMPRESAS_CONTACTOS ON (EMPRESAS_CONTACTOS.ID_CONTACTO = + CONTACTOS.ID); + + +CREATE VIEW V_CLIENTES( + ID, + ID_CATEGORIA, + NIF_CIF, + NOMBRE, + PERSONA_CONTACTO, + CALLE, + POBLACION, + PROVINCIA, + CODIGO_POSTAL, + TELEFONO_1, + TELEFONO_2, + MOVIL_1, + MOVIL_2, + FAX, + EMAIL_1, + EMAIL_2, + PAGINA_WEB, + NOTAS, + FECHA_ALTA, + FECHA_MODIFICACION, + USUARIO, + ID_EMPRESA, + REFERENCIA, + GRUPO_CLIENTE, + NOMBRE_COMERCIAL, + VENCIMIENTO_FACTURAS, + BLOQUEADO, + REGIMEN_IVA, + MOTIVO_BLOQUEO, + RECARGO_EQUIVALENCIA, + ID_TIPO_IVA, + ID_FORMA_PAGO, + TIENDA_WEB, + CODIGO_ASIGNADO) +AS +SELECT + V_CONTACTOS.ID, + V_CONTACTOS.ID_CATEGORIA, + V_CONTACTOS.NIF_CIF, + V_CONTACTOS.NOMBRE, + V_CONTACTOS.PERSONA_CONTACTO, + V_CONTACTOS.CALLE, + V_CONTACTOS.POBLACION, + V_CONTACTOS.PROVINCIA, + V_CONTACTOS.CODIGO_POSTAL, + V_CONTACTOS.TELEFONO_1, + V_CONTACTOS.TELEFONO_2, + V_CONTACTOS.MOVIL_1, + V_CONTACTOS.MOVIL_2, + V_CONTACTOS.FAX, + V_CONTACTOS.EMAIL_1, + V_CONTACTOS.EMAIL_2, + V_CONTACTOS.PAGINA_WEB, + V_CONTACTOS.NOTAS, + V_CONTACTOS.FECHA_ALTA, + V_CONTACTOS.FECHA_MODIFICACION, + V_CONTACTOS.USUARIO, + V_CONTACTOS.ID_EMPRESA, + V_CONTACTOS.REFERENCIA, + CLIENTES_DATOS.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, + CLIENTES_DATOS.CODIGO_ASIGNADO +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, + PERSONA_CONTACTO, + CALLE, + POBLACION, + PROVINCIA, + CODIGO_POSTAL, + TELEFONO_1, + TELEFONO_2, + MOVIL_1, + MOVIL_2, + FAX, + EMAIL_1, + EMAIL_2, + PAGINA_WEB, + NOTAS, + FECHA_ALTA, + FECHA_MODIFICACION, + USUARIO, + ID_EMPRESA, + REFERENCIA, + DESCUENTO, + DESCRIPCION_PROVEEDOR, + CODIGO_ASIGNADO, + GRUPO_PROVEEDOR, + REGIMEN_IVA, + ID_TIPO_IVA, + ID_FORMA_PAGO, + TIENDA_WEB, + HOMOLOGADO, + CERTIFICACION) +AS +SELECT + V_CONTACTOS.ID, + V_CONTACTOS.ID_CATEGORIA, + V_CONTACTOS.NIF_CIF, + V_CONTACTOS.NOMBRE, + V_CONTACTOS.PERSONA_CONTACTO, + V_CONTACTOS.CALLE, + V_CONTACTOS.POBLACION, + V_CONTACTOS.PROVINCIA, + V_CONTACTOS.CODIGO_POSTAL, + V_CONTACTOS.TELEFONO_1, + V_CONTACTOS.TELEFONO_2, + V_CONTACTOS.MOVIL_1, + V_CONTACTOS.MOVIL_2, + V_CONTACTOS.FAX, + V_CONTACTOS.EMAIL_1, + V_CONTACTOS.EMAIL_2, + V_CONTACTOS.PAGINA_WEB, + V_CONTACTOS.NOTAS, + V_CONTACTOS.FECHA_ALTA, + V_CONTACTOS.FECHA_MODIFICACION, + V_CONTACTOS.USUARIO, + V_CONTACTOS.ID_EMPRESA, + V_CONTACTOS.REFERENCIA, + PROVEEDORES_DATOS.DESCUENTO, + PROVEEDORES_DATOS.DESCRIPCION_PROVEEDOR, + PROVEEDORES_DATOS.CODIGO_ASIGNADO, + PROVEEDORES_DATOS.GRUPO_PROVEEDOR, + PROVEEDORES_DATOS.REGIMEN_IVA, + PROVEEDORES_DATOS.ID_TIPO_IVA, + PROVEEDORES_DATOS.ID_FORMA_PAGO, + PROVEEDORES_DATOS.TIENDA_WEB, + PROVEEDORES_DATOS.HOMOLOGADO, + PROVEEDORES_DATOS.CERTIFICACION +FROM + PROVEEDORES_DATOS + INNER JOIN V_CONTACTOS ON (PROVEEDORES_DATOS.ID_PROVEEDOR = V_CONTACTOS.ID) +WHERE + V_CONTACTOS.ID_CATEGORIA = 2; + + +CREATE VIEW V_EMPLEADOS( + ID, + ID_CATEGORIA, + NIF_CIF, + NOMBRE, + PERSONA_CONTACTO, + CALLE, + POBLACION, + PROVINCIA, + CODIGO_POSTAL, + TELEFONO_1, + TELEFONO_2, + MOVIL_1, + MOVIL_2, + FAX, + EMAIL_1, + EMAIL_2, + PAGINA_WEB, + NOTAS, + FECHA_ALTA, + FECHA_MODIFICACION, + USUARIO, + ID_EMPRESA, + REFERENCIA, + FECHA_NACIMIENTO, + CATEGORIA, + FECHA_ALTA_EMPRESA, + FORMACION_BASE, + FORMACION_COMPLE, + FORMACION_RECIBIDA, + EXPERIENCIA) +AS +SELECT V_CONTACTOS.ID, + V_CONTACTOS.ID_CATEGORIA, + V_CONTACTOS.NIF_CIF, + V_CONTACTOS.NOMBRE, + V_CONTACTOS.PERSONA_CONTACTO, + V_CONTACTOS.CALLE, + V_CONTACTOS.POBLACION, + V_CONTACTOS.PROVINCIA, + V_CONTACTOS.CODIGO_POSTAL, + V_CONTACTOS.TELEFONO_1, + V_CONTACTOS.TELEFONO_2, + V_CONTACTOS.MOVIL_1, + V_CONTACTOS.MOVIL_2, + V_CONTACTOS.FAX, + V_CONTACTOS.EMAIL_1, + V_CONTACTOS.EMAIL_2, + V_CONTACTOS.PAGINA_WEB, + V_CONTACTOS.NOTAS, + V_CONTACTOS.FECHA_ALTA, + V_CONTACTOS.FECHA_MODIFICACION, + V_CONTACTOS.USUARIO, + V_CONTACTOS.ID_EMPRESA, + V_CONTACTOS.REFERENCIA, + + EMPLEADOS_DATOS.FECHA_NACIMIENTO, + EMPLEADOS_DATOS.CATEGORIA, + EMPLEADOS_DATOS.FECHA_ALTA_EMPRESA, + EMPLEADOS_DATOS.FORMACION_BASE, + EMPLEADOS_DATOS.FORMACION_COMPLE, + EMPLEADOS_DATOS.FORMACION_RECIBIDA, + EMPLEADOS_DATOS.EXPERIENCIA + +FROM V_CONTACTOS +INNER JOIN EMPLEADOS_DATOS ON (EMPLEADOS_DATOS.ID_EMPLEADO = V_CONTACTOS.ID) + +WHERE V_CONTACTOS.ID_CATEGORIA = 3; + + +CREATE VIEW V_ARTICULOS( + ID, ID_EMPRESA, REFERENCIA, DESCRIPCION, + FAMILIA, IMAGEN, COMISIONABLE, FECHA_ALTA, + FECHA_MODIFICACION, USUARIO, + REFERENCIA_PROV, + PRECIO_COSTE, + PRECIO_PORTE, + DESCUENTO, + PRECIO_NETO, + INVENTARIABLE, + ID_PROVEEDOR, + NOMBRE_PROVEEDOR, + ELIMINADO) +AS + +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, + ARTICULOS.ELIMINADO +FROM ARTICULOS +LEFT OUTER JOIN CONTACTOS ON (CONTACTOS.ID = ARTICULOS.ID_PROVEEDOR) +WHERE (ARTICULOS.ELIMINADO = 0); + +CREATE VIEW V_PRESUPUESTOS_CLIENTE( + ID, + ID_EMPRESA, + FECHA_PRESUPUESTO, + FECHA_DECISION, + REFERENCIA, + SITUACION, + ID_CLIENTE, + NIF_CIF, + NOMBRE, + REFERENCIA_CLIENTE, + CLIENTE_FINAL, + PORTADA, + MEMORIA, + OBSERVACIONES, + INCIDENCIAS, + INCIDENCIAS_ACTIVAS, + FECHA_ALTA, + FECHA_MODIFICACION, + USUARIO, + IMPORTE_NETO, + IMPORTE_PORTE, + DESCUENTO, + IMPORTE_DESCUENTO, + BASE_IMPONIBLE, + IVA, + IMPORTE_IVA, + IMPORTE_TOTAL, + ID_FORMA_PAGO) +AS +SELECT + PRESUPUESTOS_CLIENTE.ID, + PRESUPUESTOS_CLIENTE.ID_EMPRESA, + PRESUPUESTOS_CLIENTE.FECHA_PRESUPUESTO, + PRESUPUESTOS_CLIENTE.FECHA_DECISION, + PRESUPUESTOS_CLIENTE.REFERENCIA, + PRESUPUESTOS_CLIENTE.SITUACION, + PRESUPUESTOS_CLIENTE.ID_CLIENTE, + V_CLIENTES.NIF_CIF, + V_CLIENTES.NOMBRE, + PRESUPUESTOS_CLIENTE.REFERENCIA_CLIENTE, + PRESUPUESTOS_CLIENTE.CLIENTE_FINAL, + PRESUPUESTOS_CLIENTE.PORTADA, + PRESUPUESTOS_CLIENTE.MEMORIA, + PRESUPUESTOS_CLIENTE.OBSERVACIONES, + PRESUPUESTOS_CLIENTE.INCIDENCIAS, + PRESUPUESTOS_CLIENTE.INCIDENCIAS_ACTIVAS, + PRESUPUESTOS_CLIENTE.FECHA_ALTA, + PRESUPUESTOS_CLIENTE.FECHA_MODIFICACION, + PRESUPUESTOS_CLIENTE.USUARIO, + PRESUPUESTOS_CLIENTE.IMPORTE_NETO, + PRESUPUESTOS_CLIENTE.IMPORTE_PORTE, + PRESUPUESTOS_CLIENTE.DESCUENTO, + PRESUPUESTOS_CLIENTE.IMPORTE_DESCUENTO, + PRESUPUESTOS_CLIENTE.BASE_IMPONIBLE, + PRESUPUESTOS_CLIENTE.IVA, + PRESUPUESTOS_CLIENTE.IMPORTE_IVA, + PRESUPUESTOS_CLIENTE.IMPORTE_TOTAL, + PRESUPUESTOS_CLIENTE.ID_FORMA_PAGO +FROM + PRESUPUESTOS_CLIENTE + LEFT OUTER JOIN V_CLIENTES ON (PRESUPUESTOS_CLIENTE.ID_CLIENTE = V_CLIENTES.ID) + + + +/* Situacin 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, + REFERENCIA_CLIENTE, + 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, + CONTACTOS.NOMBRE, + ALBARANES_CLIENTE.FECHA_ALBARAN, + ALBARANES_CLIENTE.REFERENCIA, + ALBARANES_CLIENTE.REFERENCIA_CLIENTE, + CASE WHEN (ALBARANES_CLIENTE.IMPORTE_TOTAL < 0) THEN 'D' ELSE 'A' END AS TIPO, + TRIM(V_ALB_CLI_SITUACION.SITUACION), + ALBARANES_CLIENTE.ID_ALMACEN, + ALMACENES.NOMBRE AS NOMBRE_ALMACEN, + ALBARANES_CLIENTE.ID_PEDIDO, + PEDIDOS_CLIENTE.REFERENCIA AS REF_PEDIDO, + ALBARANES_CLIENTE.ID_FACTURA, + FACTURAS_CLIENTE.REFERENCIA AS REF_FACTURA, + ALBARANES_CLIENTE.CALLE, + ALBARANES_CLIENTE.CODIGO_POSTAL, + ALBARANES_CLIENTE.POBLACION, + ALBARANES_CLIENTE.PROVINCIA, + ALBARANES_CLIENTE.PERSONA_CONTACTO, + ALBARANES_CLIENTE.TELEFONO, + ALBARANES_CLIENTE.IMPORTE_NETO, + ALBARANES_CLIENTE.IMPORTE_PORTE, + ALBARANES_CLIENTE.DESCUENTO, + ALBARANES_CLIENTE.IMPORTE_DESCUENTO, + ALBARANES_CLIENTE.BASE_IMPONIBLE, + ALBARANES_CLIENTE.IVA, + ALBARANES_CLIENTE.IMPORTE_IVA, + ALBARANES_CLIENTE.IMPORTE_TOTAL, + ALBARANES_CLIENTE.OBSERVACIONES, + ALBARANES_CLIENTE.INCIDENCIAS, + ALBARANES_CLIENTE.INCIDENCIAS_ACTIVAS, + ALBARANES_CLIENTE.FECHA_ALTA, + ALBARANES_CLIENTE.FECHA_MODIFICACION, + ALBARANES_CLIENTE.USUARIO, + ALBARANES_CLIENTE.ID_FORMA_PAGO, + ALBARANES_CLIENTE.FECHA_PREVISTA_ENVIO, + ALBARANES_CLIENTE.FECHA_ENVIO, + ALBARANES_CLIENTE.FECHA_RECEPCION +FROM + ALBARANES_CLIENTE + LEFT OUTER JOIN CONTACTOS ON (CONTACTOS.ID = ALBARANES_CLIENTE.ID_CLIENTE) + LEFT OUTER JOIN PEDIDOS_CLIENTE ON (PEDIDOS_CLIENTE.ID = ALBARANES_CLIENTE.ID_PEDIDO) + LEFT OUTER JOIN FACTURAS_CLIENTE ON (FACTURAS_CLIENTE.ID = ALBARANES_CLIENTE.ID_FACTURA) + LEFT OUTER JOIN V_ALB_CLI_SITUACION ON (V_ALB_CLI_SITUACION.ID = ALBARANES_CLIENTE.ID) + LEFT OUTER JOIN ALMACENES ON (ALMACENES.ID = ALBARANES_CLIENTE.ID_ALMACEN); + + + +/*FACTURAS Y RECIBOS DE CLIENTE*/ +DROP VIEW V_FACTURAS_CLIENTE; +DROP VIEW V_FAC_CLI_SITUACION; +DROP VIEW V_RECIBOS_CLIENTE; +DROP VIEW V_REC_FAC_CLI_COBRADOS; +DROP VIEW V_REC_FAC_CLI; +DROP VIEW V_REC_CLI_SITUACION; +DROP VIEW V_REC_CLI_COMPENSADOS; + + +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_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_REC_CLI_COMPENSADOS ( +ID_RECIBO, +IMPORTE_TOTAL_COMPENSADO +) as +select ID_RECIBO_COMPENSADO, SUM((IMPORTE + OTROS_GASTOS)) as IMPORTE_TOTAL +from RECIBOS_CLIENTE +where ID_RECIBO_COMPENSADO is not null +group by ID_RECIBO_COMPENSADO; + +CREATE VIEW V_RECIBOS_CLIENTE( + ID, + ID_RECIBO_COMPENSADO, + REFERENCIA_REC_COMPENSADO, + REFERENCIA, + SITUACION, + ID_FACTURA, + ID_REMESA, + REFERENCIA_REMESA, + FECHA_EMISION, + FECHA_VENCIMIENTO, + DESCRIPCION, + OBSERVACIONES, + IMPORTE, + OTROS_GASTOS, + IMPORTE_TOTAL, + FECHA_FACTURA, + FORMA_PAGO_FACTURA, + IMPORTE_FACTURA, + ID_EMPRESA, + 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.ID_RECIBO_COMPENSADO, + RECIBO_COMPENSADO1.REFERENCIA, + RECIBOS_CLIENTE.REFERENCIA, + CASE + WHEN RECIBOS_CLIENTE.ID_RECIBO_COMPENSADO IS NULL + THEN TRIM(V_REC_CLI_SITUACION.SITUACION) + ELSE TRIM(RECIBO_COMPENSADO2.SITUACION) + END, + RECIBOS_CLIENTE.ID_FACTURA, + RECIBOS_CLIENTE.ID_REMESA, REMESAS_CLIENTE.REFERENCIA as REFERENCIA_REMESA, + RECIBOS_CLIENTE.FECHA_EMISION, RECIBOS_CLIENTE.FECHA_VENCIMIENTO, RECIBOS_CLIENTE.DESCRIPCION, + RECIBOS_CLIENTE.OBSERVACIONES, RECIBOS_CLIENTE.IMPORTE, RECIBOS_CLIENTE.OTROS_GASTOS, + COALESCE(RECIBOS_CLIENTE.IMPORTE, 0) + COALESCE(RECIBOS_CLIENTE.OTROS_GASTOS, 0) + COALESCE(V_REC_CLI_COMPENSADOS.IMPORTE_TOTAL_COMPENSADO, 0), + + FACTURAS_CLIENTE.FECHA_FACTURA, FORMAS_PAGO.DESCRIPCION, FACTURAS_CLIENTE.IMPORTE_TOTAL, + FACTURAS_CLIENTE.ID_EMPRESA, + + 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 RECIBOS_CLIENTE +LEFT JOIN V_REC_CLI_SITUACION +ON (V_REC_CLI_SITUACION.ID_RECIBO = RECIBOS_CLIENTE.ID) +LEFT JOIN FACTURAS_CLIENTE +ON (FACTURAS_CLIENTE.ID = RECIBOS_CLIENTE.ID_FACTURA) +LEFT JOIN FORMAS_PAGO +ON (FORMAS_PAGO.ID = FACTURAS_CLIENTE.ID_FORMA_PAGO) +LEFT JOIN CONTACTOS +ON (CONTACTOS.ID = FACTURAS_CLIENTE.ID_CLIENTE) +LEFT JOIN CONTACTOS_DATOS_BANCO +ON (CONTACTOS_DATOS_BANCO.ID_CONTACTO = CONTACTOS.ID) +LEFT JOIN REMESAS_CLIENTE +ON (REMESAS_CLIENTE.ID = RECIBOS_CLIENTE.ID_REMESA) +LEFT JOIN V_REC_CLI_COMPENSADOS +ON (V_REC_CLI_COMPENSADOS.ID_RECIBO = RECIBOS_CLIENTE.ID) +LEFT JOIN RECIBOS_CLIENTE RECIBO_COMPENSADO1 +ON (RECIBO_COMPENSADO1.ID = RECIBOS_CLIENTE.ID_RECIBO_COMPENSADO) +LEFT JOIN V_REC_CLI_SITUACION RECIBO_COMPENSADO2 +ON (RECIBO_COMPENSADO2.ID_RECIBO = RECIBOS_CLIENTE.ID_RECIBO_COMPENSADO); + + +CREATE VIEW V_REC_FAC_CLI_COBRADOS( + ID_FACTURA, + NUM_REC_COBRADOS) +AS +SELECT RECIBOS_CLIENTE.ID_FACTURA, COUNT(V_REC_CLI_SITUACION.ID_RECIBO) +FROM V_REC_CLI_SITUACION LEFT JOIN RECIBOS_CLIENTE ON + (RECIBOS_CLIENTE.ID = V_REC_CLI_SITUACION.ID_RECIBO) +WHERE (TRIM(V_REC_CLI_SITUACION.SITUACION) = 'COBRADO') +GROUP BY RECIBOS_CLIENTE.ID_FACTURA +; + +CREATE VIEW V_FAC_CLI_SITUACION( + ID_FACTURA, + SITUACION) +AS +SELECT ID_FACTURA, +CASE + WHEN ((SUM(NUM_RECIBOS) = 0) + OR (SUM(NUM_REC_COBRADOS) = 0)) THEN 'PENDIENTE' + WHEN (SUM(NUM_RECIBOS) = SUM(NUM_REC_COBRADOS)) THEN 'PAGADA' + ELSE 'PARCIALMENTE PAGADA' +END AS SITUACION +FROM +( + SELECT ID_FACTURA, NUM_RECIBOS, 0 AS NUM_REC_COBRADOS + FROM V_REC_FAC_CLI + UNION ALL + SELECT ID_FACTURA, 0 AS NUM_RECIBOS, NUM_REC_COBRADOS + FROM V_REC_FAC_CLI_COBRADOS +) +GROUP BY ID_FACTURA; + +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, + TRIM(V_FAC_CLI_SITUACION.SITUACION), + FACTURAS_CLIENTE.BASE_IMPONIBLE, + FACTURAS_CLIENTE.DESCUENTO, + FACTURAS_CLIENTE.IMPORTE_DESCUENTO, + FACTURAS_CLIENTE.IVA, + FACTURAS_CLIENTE.IMPORTE_IVA, + FACTURAS_CLIENTE.RE, + FACTURAS_CLIENTE.IMPORTE_RE, + FACTURAS_CLIENTE.IMPORTE_TOTAL, + FACTURAS_CLIENTE.OBSERVACIONES, + FACTURAS_CLIENTE.ID_CLIENTE, + FACTURAS_CLIENTE.NIF_CIF, + FACTURAS_CLIENTE.NOMBRE, + FACTURAS_CLIENTE.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); + + +/*FACTURAS Y RECIBOS DE PROVEEDOR*/ +DROP VIEW V_FACTURAS_PROVEEDOR; +DROP VIEW V_FAC_PRO_SITUACION; +DROP VIEW V_REC_FAC_PRO_PAGADOS; +DROP VIEW V_RECIBOS_PROVEEDOR; +DROP VIEW V_REC_FAC_PRO; +DROP VIEW V_REC_PRO_SITUACION; +DROP VIEW V_REC_PRO_COMPENSADOS; + + +CREATE VIEW V_REC_PRO_COMPENSADOS ( +ID_RECIBO, +IMPORTE_TOTAL_COMPENSADO +) as +select ID_RECIBO_COMPENSADO, SUM((IMPORTE + OTROS_GASTOS)) as IMPORTE_TOTAL +from RECIBOS_PROVEEDOR +where ID_RECIBO_COMPENSADO is not null +group by ID_RECIBO_COMPENSADO; + +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_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_RECIBOS_PROVEEDOR( + ID, + ID_RECIBO_COMPENSADO, + REFERENCIA_REC_COMPENSADO, + REFERENCIA, + REFERENCIA_PROVEEDOR, + SITUACION, + ID_FACTURA, + ID_REMESA, + REFERENCIA_REMESA, + FECHA_EMISION, + FECHA_VENCIMIENTO, + DESCRIPCION, + OBSERVACIONES, + IMPORTE, + OTROS_GASTOS, + IMPORTE_TOTAL, + REFERENCIA_FACTURA_PROV, + FECHA_FACTURA, + FORMA_PAGO_FACTURA, + IMPORTE_FACTURA, + ID_EMPRESA, + 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.ID_RECIBO_COMPENSADO, + RECIBO_COMPENSADO1.REFERENCIA, + RECIBOS_PROVEEDOR.REFERENCIA, + RECIBOS_PROVEEDOR.REFERENCIA_PROVEEDOR, + CASE + WHEN RECIBOS_PROVEEDOR.ID_RECIBO_COMPENSADO IS NULL + THEN TRIM(V_REC_PRO_SITUACION.SITUACION) + ELSE TRIM(RECIBO_COMPENSADO2.SITUACION) + END, + RECIBOS_PROVEEDOR.ID_FACTURA, + RECIBOS_PROVEEDOR.ID_REMESA, REMESAS_PROVEEDOR.REFERENCIA as REFERENCIA_REMESA, + RECIBOS_PROVEEDOR.FECHA_EMISION, RECIBOS_PROVEEDOR.FECHA_VENCIMIENTO, RECIBOS_PROVEEDOR.DESCRIPCION, + RECIBOS_PROVEEDOR.OBSERVACIONES, RECIBOS_PROVEEDOR.IMPORTE, RECIBOS_PROVEEDOR.OTROS_GASTOS, + COALESCE(RECIBOS_PROVEEDOR.IMPORTE, 0) + COALESCE(RECIBOS_PROVEEDOR.OTROS_GASTOS, 0) + COALESCE(V_REC_PRO_COMPENSADOS.IMPORTE_TOTAL_COMPENSADO, 0), + + FACTURAS_PROVEEDOR.REFERENCIA_PROVEEDOR, FACTURAS_PROVEEDOR.FECHA_FACTURA, + FORMAS_PAGO.DESCRIPCION, FACTURAS_PROVEEDOR.IMPORTE_TOTAL, + FACTURAS_PROVEEDOR.ID_EMPRESA, + + 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 RECIBOS_PROVEEDOR +LEFT JOIN V_REC_PRO_SITUACION +ON (V_REC_PRO_SITUACION.ID_RECIBO = RECIBOS_PROVEEDOR.ID) +LEFT JOIN FACTURAS_PROVEEDOR +ON (FACTURAS_PROVEEDOR.ID = RECIBOS_PROVEEDOR.ID_FACTURA) +LEFT JOIN FORMAS_PAGO +ON (FORMAS_PAGO.ID = FACTURAS_PROVEEDOR.ID_FORMA_PAGO) +LEFT JOIN CONTACTOS +ON (CONTACTOS.ID = FACTURAS_PROVEEDOR.ID_PROVEEDOR) +LEFT JOIN CONTACTOS_DATOS_BANCO +ON (CONTACTOS_DATOS_BANCO.ID_CONTACTO = CONTACTOS.ID) +LEFT JOIN REMESAS_PROVEEDOR +ON (REMESAS_PROVEEDOR.ID = RECIBOS_PROVEEDOR.ID_REMESA) +LEFT JOIN V_REC_PRO_COMPENSADOS +ON (V_REC_PRO_COMPENSADOS.ID_RECIBO = RECIBOS_PROVEEDOR.ID) +LEFT JOIN RECIBOS_PROVEEDOR RECIBO_COMPENSADO1 +ON (RECIBO_COMPENSADO1.ID = RECIBOS_PROVEEDOR.ID_RECIBO_COMPENSADO) +LEFT JOIN V_REC_PRO_SITUACION RECIBO_COMPENSADO2 +ON (RECIBO_COMPENSADO2.ID_RECIBO = RECIBOS_PROVEEDOR.ID_RECIBO_COMPENSADO); + + +CREATE VIEW V_REC_FAC_PRO_PAGADOS( + ID_FACTURA, + NUM_REC_PAGADOS) +AS +SELECT RECIBOS_PROVEEDOR.ID_FACTURA, COUNT(V_REC_PRO_SITUACION.ID_RECIBO) +FROM V_REC_PRO_SITUACION LEFT JOIN RECIBOS_PROVEEDOR ON + (RECIBOS_PROVEEDOR.ID = V_REC_PRO_SITUACION.ID_RECIBO) +WHERE (TRIM(V_REC_PRO_SITUACION.SITUACION) = 'PAGADO') +GROUP BY RECIBOS_PROVEEDOR.ID_FACTURA; + + +CREATE VIEW V_FAC_PRO_SITUACION( + ID_FACTURA, + SITUACION) +AS +SELECT ID_FACTURA, +CASE + WHEN ((SUM(NUM_RECIBOS) = 0) + OR (SUM(NUM_REC_PAGADOS) = 0)) THEN 'PENDIENTE' + WHEN (SUM(NUM_RECIBOS) = SUM(NUM_REC_PAGADOS)) THEN 'PAGADA' + ELSE 'PARCIALMENTE PAGADA' +END AS SITUACION +FROM +( + SELECT ID_FACTURA, NUM_RECIBOS, 0 AS NUM_REC_PAGADOS + FROM V_REC_FAC_PRO + UNION ALL + SELECT ID_FACTURA, 0 AS NUM_RECIBOS, NUM_REC_PAGADOS + FROM V_REC_FAC_PRO_PAGADOS +) +GROUP BY ID_FACTURA; + + +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, + TRIM(V_FAC_PRO_SITUACION.SITUACION), + FACTURAS_PROVEEDOR.BASE_IMPONIBLE, + FACTURAS_PROVEEDOR.DESCUENTO, + FACTURAS_PROVEEDOR.IMPORTE_DESCUENTO, + FACTURAS_PROVEEDOR.IVA, + FACTURAS_PROVEEDOR.IMPORTE_IVA, + FACTURAS_PROVEEDOR.RE, + FACTURAS_PROVEEDOR.IMPORTE_RE, + FACTURAS_PROVEEDOR.IMPORTE_TOTAL, + FACTURAS_PROVEEDOR.OBSERVACIONES, + FACTURAS_PROVEEDOR.ID_PROVEEDOR, + FACTURAS_PROVEEDOR.NIF_CIF, + FACTURAS_PROVEEDOR.NOMBRE, + FACTURAS_PROVEEDOR.CALLE, + FACTURAS_PROVEEDOR.POBLACION, + FACTURAS_PROVEEDOR.PROVINCIA, + FACTURAS_PROVEEDOR.CODIGO_POSTAL, + FACTURAS_PROVEEDOR.FECHA_ALTA, + FACTURAS_PROVEEDOR.FECHA_MODIFICACION, + FACTURAS_PROVEEDOR.USUARIO, + FACTURAS_PROVEEDOR.ID_FORMA_PAGO, + FACTURAS_PROVEEDOR.RECARGO_EQUIVALENCIA, + FACTURAS_PROVEEDOR.ID_TIPO_IVA, + FACTURAS_PROVEEDOR.IMPORTE_NETO, + FACTURAS_PROVEEDOR.IMPORTE_PORTE + 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); + + +DROP VIEW V_PEDIDOS_PROVEEDOR; +DROP VIEW V_PED_PROV_SITUACION; +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; + + +/*Agrupa los artculos de un mismo albarn (ya que en un albarn puede existir varias lineas con el mismo artculo). + Para cada artculo de albarn le ponemos el pedido con el que esta asociado y el almacn donde se recibio. + Se quitan todos los artculos que no tengamos en catlogo (ID_ARTICULO nulo, lineas de detalle libres)-> esta premisa la cambiamos para que + no se falsee la situacin de los pedidos, asi pues todo articulo que no este en el catlogo lo pondremos con ID_ARTICULO 0. + Se quitan tambin aquellos que no sen inventariables -> esta premisa nos falseara la situacin 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) + +/*Mantenemos los articulos inventariables y aquellos que no existan en nuestro catlogo con el fin de no falsear la situacin de los pedidos +LEFT JOIN ARTICULOS +ON (ALBARANES_PROVEEDOR_DETALLES.ID_ARTICULO = ARTICULOS.ID) + +WHERE (ALBARANES_PROVEEDOR_DETALLES.ID_ARTICULO is not null) +AND (ARTICULOS.INVENTARIABLE = 1) +*/ + +GROUP BY ALBARANES_PROVEEDOR_DETALLES.ID_ALBARAN, + ALBARANES_PROVEEDOR.ID_PEDIDO, + ALBARANES_PROVEEDOR.ID_ALMACEN, + ALBARANES_PROVEEDOR_DETALLES.ID_ARTICULO; + + +/*Agrupa los artculos de un mismo pedido (ya que en un pedido puede existir varias lineas con el mismo artculo). + Para cada artculo de pedido le ponemos el pedido con el que esta asociado y el almacn donde ser recibido. + Se quitan todos los artculos que no tengamos en catlogo (ID_ARTICULO nulo, lineas de detalle libres)-> esta premisa la cambiamos para que + no se falsee la situacin de los pedidos, asi pues todo articulo que no este en el catlogo lo pondremos con ID_ARTICULO 0. + Se quitan tambin aquellos que no sen 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) + +/*Mantenemos los articulos inventariables y aquellos que no existan en nuestro catlogo con el fin de no falsear la situacin de los pedidos +LEFT JOIN ARTICULOS +ON (PEDIDOS_PROVEEDOR_DETALLES.ID_ARTICULO = ARTICULOS.ID) + +WHERE (PEDIDOS_PROVEEDOR_DETALLES.ID_ARTICULO is not null) +AND (ARTICULOS.INVENTARIABLE = 1) +*/ + +GROUP BY PEDIDOS_PROVEEDOR_DETALLES.ID_PEDIDO, + PEDIDOS_PROVEEDOR.ID_ALMACEN, + PEDIDOS_PROVEEDOR_DETALLES.ID_ARTICULO; + + +/*Agrupa todos los artculos 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 podra tener varios albaranes con distintos almacenes de destino*/ +/*Aquellos articulos que no tengan ID_PEDIDO es porque el albarn 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*/ +/*repetira la consulta de la segunda disparando tiempos, por ello teniendo las dos vistas ejecutadas hacemos una union*/ +/*obteniendo todos los artculos del pedido, tanto recibidos como pendientes, luego haremos la agrupacin 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 ALL +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 artculos del pedido de proveedor*/ +/*Despreciamos aquellas tuplas cuya cantidad pedida sea null, porque son articulos aadidos en el albarn que*/ +/*no estn 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; + +CREATE VIEW V_PED_PROV_SITUACION( + ID_PEDIDO, + SITUACION) +AS +SELECT ID_PEDIDO, +CASE WHEN (SUM(CANTIDAD_PENDIENTE) > 0) AND (SUM(CANTIDAD_RECIBIDA) = 0) THEN 'PENDIENTE' + WHEN (SUM(CANTIDAD_PENDIENTE) <= 0) THEN 'RECIBIDO' + WHEN (SUM(CANTIDAD_PENDIENTE) > 0) AND (SUM(CANTIDAD_RECIBIDA) > 0) THEN 'PARCIAL' + ELSE 'N/A' +END AS SITUACION +FROM V_PED_PROV_ARTICULOS +GROUP BY V_PED_PROV_ARTICULOS.ID_PEDIDO; + +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, + TRIM(V_PED_PROV_SITUACION.SITUACION), + PEDIDOS_PROVEEDOR.FECHA_ENVIO, + PEDIDOS_PROVEEDOR.FECHA_PEDIDO, + PEDIDOS_PROVEEDOR.FECHA_CONFIRMACION, + PEDIDOS_PROVEEDOR.FECHA_ENTREGA, + PEDIDOS_PROVEEDOR.ID_ALMACEN, + ALMACENES.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); + + +DROP VIEW V_ALBARANES_PROVEEDOR; + +CREATE VIEW V_ALBARANES_PROVEEDOR( + ID, + ID_EMPRESA, + ID_PROVEEDOR, + NOMBRE, + FECHA_ALBARAN, + REFERENCIA, + REFERENCIA_PROVEEDOR, + TIPO, + ID_ALMACEN, + NOMBRE_ALMACEN, + ID_PEDIDO, + REF_PED_PROVEEDOR, + ID_FACTURA, + REF_FACTURA, + REF_FACTURA_PROV, + CALLE, + CODIGO_POSTAL, + POBLACION, + PROVINCIA, + PERSONA_CONTACTO, + TELEFONO, + IMPORTE_NETO, + IMPORTE_PORTE, + DESCUENTO, + IMPORTE_DESCUENTO, + BASE_IMPONIBLE, + IVA, + IMPORTE_IVA, + IMPORTE_TOTAL, + OBSERVACIONES, + INCIDENCIAS, + INCIDENCIAS_ACTIVAS, + FECHA_ALTA, + FECHA_MODIFICACION, + USUARIO, + ID_FORMA_PAGO) +AS +SELECT + ALBARANES_PROVEEDOR.ID, + ALBARANES_PROVEEDOR.ID_EMPRESA, + ALBARANES_PROVEEDOR.ID_PROVEEDOR, + CONTACTOS.NOMBRE, + ALBARANES_PROVEEDOR.FECHA_ALBARAN, + ALBARANES_PROVEEDOR.REFERENCIA, + ALBARANES_PROVEEDOR.REFERENCIA_PROVEEDOR, + 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_FACTURA, + ALBARANES_PROVEEDOR.REF_FACTURA_PROV, + ALBARANES_PROVEEDOR.CALLE, + ALBARANES_PROVEEDOR.CODIGO_POSTAL, + ALBARANES_PROVEEDOR.POBLACION, + ALBARANES_PROVEEDOR.PROVINCIA, + ALBARANES_PROVEEDOR.PERSONA_CONTACTO, + ALBARANES_PROVEEDOR.TELEFONO, + ALBARANES_PROVEEDOR.IMPORTE_NETO, + ALBARANES_PROVEEDOR.IMPORTE_PORTE, + ALBARANES_PROVEEDOR.DESCUENTO, + ALBARANES_PROVEEDOR.IMPORTE_DESCUENTO, + ALBARANES_PROVEEDOR.BASE_IMPONIBLE, + ALBARANES_PROVEEDOR.IVA, + ALBARANES_PROVEEDOR.IMPORTE_IVA, + ALBARANES_PROVEEDOR.IMPORTE_TOTAL, + ALBARANES_PROVEEDOR.OBSERVACIONES, + ALBARANES_PROVEEDOR.INCIDENCIAS, + ALBARANES_PROVEEDOR.INCIDENCIAS_ACTIVAS, + ALBARANES_PROVEEDOR.FECHA_ALTA, + ALBARANES_PROVEEDOR.FECHA_MODIFICACION, + ALBARANES_PROVEEDOR.USUARIO, + ALBARANES_PROVEEDOR.ID_FORMA_PAGO +FROM + ALBARANES_PROVEEDOR + LEFT OUTER JOIN CONTACTOS ON (CONTACTOS.ID = ALBARANES_PROVEEDOR.ID_PROVEEDOR) + LEFT OUTER JOIN PEDIDOS_PROVEEDOR ON (PEDIDOS_PROVEEDOR.ID = ALBARANES_PROVEEDOR.ID_PEDIDO) + LEFT OUTER JOIN FACTURAS_PROVEEDOR ON (FACTURAS_PROVEEDOR.ID = ALBARANES_PROVEEDOR.ID_FACTURA) + LEFT OUTER JOIN ALMACENES ON (ALMACENES.ID = ALBARANES_PROVEEDOR.ID_ALMACEN); + + +DROP VIEW V_REMESAS_CLIENTE; + +CREATE VIEW V_REMESAS_CLIENTE( + ID, + ID_EMPRESA, + REFERENCIA, + TIPO, + FECHA_REMESA, + DESCRIPCION, + ID_DATOS_BANCO, + FECHA_ALTA, + FECHA_MODIFICACION, + USUARIO, + NOMBRE, + ENTIDAD, + SUCURSAL, + DC, + CUENTA, + SUFIJO_N19, + SUFIJO_N58, + IMPORTE_TOTAL) +AS +SELECT + REMESAS_CLIENTE.ID, + REMESAS_CLIENTE.ID_EMPRESA, + REMESAS_CLIENTE.REFERENCIA, + REMESAS_CLIENTE.TIPO, + REMESAS_CLIENTE.FECHA_REMESA, + REMESAS_CLIENTE.DESCRIPCION, + REMESAS_CLIENTE.ID_DATOS_BANCO, + REMESAS_CLIENTE.FECHA_ALTA, + REMESAS_CLIENTE.FECHA_MODIFICACION, + REMESAS_CLIENTE.USUARIO, + EMPRESAS_DATOS_BANCO.NOMBRE, + EMPRESAS_DATOS_BANCO.ENTIDAD, + EMPRESAS_DATOS_BANCO.SUCURSAL, + EMPRESAS_DATOS_BANCO.DC, + EMPRESAS_DATOS_BANCO.CUENTA, + EMPRESAS_DATOS_BANCO.SUFIJO_N19, + EMPRESAS_DATOS_BANCO.SUFIJO_N58, + SUM(COALESCE(RECIBOS_CLIENTE.IMPORTE,0) + COALESCE(RECIBOS_CLIENTE.OTROS_GASTOS,0) + COALESCE(V_REC_CLI_COMPENSADOS.IMPORTE_TOTAL_COMPENSADO,0)) as IMPORTE_TOTAL + +FROM + REMESAS_CLIENTE + LEFT OUTER JOIN EMPRESAS_DATOS_BANCO ON (EMPRESAS_DATOS_BANCO.ID = REMESAS_CLIENTE.ID_DATOS_BANCO) + LEFT OUTER JOIN RECIBOS_CLIENTE ON (RECIBOS_CLIENTE.ID_REMESA = REMESAS_CLIENTE.ID) + LEFT OUTER JOIN V_REC_CLI_COMPENSADOS ON (V_REC_CLI_COMPENSADOS.ID_RECIBO = RECIBOS_CLIENTE.ID) +GROUP BY 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17; + + +DROP VIEW V_REMESAS_PROVEEDOR; + +CREATE VIEW V_REMESAS_PROVEEDOR( + ID, + ID_EMPRESA, + REFERENCIA, + TIPO, + FECHA_REMESA, + DESCRIPCION, + ID_DATOS_BANCO, + FECHA_ALTA, + FECHA_MODIFICACION, + USUARIO, + NOMBRE, + ENTIDAD, + SUCURSAL, + DC, + CUENTA, + SUFIJO_N19, + SUFIJO_N58, + IMPORTE_TOTAL) +AS +SELECT + REMESAS_PROVEEDOR.ID, + REMESAS_PROVEEDOR.ID_EMPRESA, + REMESAS_PROVEEDOR.REFERENCIA, + REMESAS_PROVEEDOR.TIPO, + REMESAS_PROVEEDOR.FECHA_REMESA, + REMESAS_PROVEEDOR.DESCRIPCION, + REMESAS_PROVEEDOR.ID_DATOS_BANCO, + REMESAS_PROVEEDOR.FECHA_ALTA, + REMESAS_PROVEEDOR.FECHA_MODIFICACION, + REMESAS_PROVEEDOR.USUARIO, + EMPRESAS_DATOS_BANCO.NOMBRE, + EMPRESAS_DATOS_BANCO.ENTIDAD, + EMPRESAS_DATOS_BANCO.SUCURSAL, + EMPRESAS_DATOS_BANCO.DC, + EMPRESAS_DATOS_BANCO.CUENTA, + EMPRESAS_DATOS_BANCO.SUFIJO_N19, + EMPRESAS_DATOS_BANCO.SUFIJO_N58, + SUM(COALESCE(RECIBOS_PROVEEDOR.IMPORTE,0) + COALESCE(RECIBOS_PROVEEDOR.OTROS_GASTOS,0) + COALESCE(V_REC_PRO_COMPENSADOS.IMPORTE_TOTAL_COMPENSADO,0)) as IMPORTE_TOTAL + +FROM + REMESAS_PROVEEDOR + LEFT OUTER JOIN EMPRESAS_DATOS_BANCO ON (EMPRESAS_DATOS_BANCO.ID = REMESAS_PROVEEDOR.ID_DATOS_BANCO) + LEFT OUTER JOIN RECIBOS_PROVEEDOR ON (RECIBOS_PROVEEDOR.ID_REMESA = REMESAS_PROVEEDOR.ID) + LEFT OUTER JOIN V_REC_PRO_COMPENSADOS ON (V_REC_PRO_COMPENSADOS.ID_RECIBO = RECIBOS_PROVEEDOR.ID) +GROUP BY 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17; + + + + + + + + +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; +DROP VIEW V_INV_ENTRADAS_AUX; +DROP VIEW V_INV_ENTRADAS_MOV; +DROP VIEW V_INV_ENTRADAS_ALB; +DROP VIEW V_INV_SALIDAS; +DROP VIEW V_INV_ENTRADAS_PENDIENTES; +DROP VIEW V_INV_SALIDAS_AUX; +DROP VIEW V_INV_SALIDAS_ALB; +DROP VIEW V_INV_SALIDAS_MOV; +DROP VIEW V_INV_RESERVAS; +DROP VIEW V_HISTORICO_MOVIMIENTOS; +DROP VIEW V_HIS_MOV_AUX; +DROP VIEW V_HIS_MOV_ALB_CLI; +DROP VIEW V_HIS_MOV_ALB_PROV; +DROP VIEW V_HIS_MOV_REGULARIZACIONES; +DROP VIEW V_ALB_CLI_DETALLES; + +/* +INVENTARIO +*/ + +/*Agrupa los artculos de un mismo albarn (ya que en un albarn puede existir varias lineas con el mismo artculo). + Para cada artculo de albarn le ponemos el pedido con el que esta asociado, la situacion y el almacn de donde sali. + Se quitan todos los artculos que no tengamos en catlogo (ID_ARTICULO nulo, lineas de detalle libres) -> esta premisa la cambiamos para que + no se falsee la situacin de los pedidos, asi pues todo articulo que no este en el catlogo lo pondremos con ID_ARTICULO 0. + Se quitan tambin aquellos que no sen inventariables -> esta premisa falseara la situacin 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 V_ALB_CLI_SITUACION +ON (ALBARANES_CLIENTE_DETALLES.ID_ALBARAN = V_ALB_CLI_SITUACION.ID) + +/*Mantenemos los articulos inventariables y aquellos que no existan en nuestro catlogo con el fin de no falsear la situacin de los pedidos +LEFT JOIN ARTICULOS +ON (ALBARANES_CLIENTE_DETALLES.ID_ARTICULO = ARTICULOS.ID) + +WHERE (ALBARANES_CLIENTE_DETALLES.ID_ARTICULO is not null) +AND (ARTICULOS.INVENTARIABLE = 1) +*/ + +group BY ALBARANES_CLIENTE_DETALLES.ID_ALBARAN, + ALBARANES_CLIENTE.ID_PEDIDO, + V_ALB_CLI_SITUACION.SITUACION, + ALBARANES_CLIENTE.ID_ALMACEN, + ALBARANES_CLIENTE_DETALLES.ID_ARTICULO; + + + +/*Todos los articulos reservados en almacn para algn albarn (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 almacn origen, es decir que no se contabilizarn*/ +/*aquellos albaranes que se manden directamente al cliente sin pasar por almacn*/ +/*Sern salidas en el momento que el albarn 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 ms rpido y mejor para este*/ +/*caso una unin y luego una agrupacin 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 ALL +SELECT ID_ALMACEN, + ID_ARTICULO, + CANTIDAD +FROM V_INV_SALIDAS_MOV; + +/*Todos los articulos pedidos a proveedor y que todava no he recibido, y que tienen un almacn destino*/ + +CREATE VIEW V_INV_ENTRADAS_PENDIENTES( + ID_ALMACEN, + ID_ARTICULO, + CANTIDAD) +AS +SELECT PEDIDOS_PROVEEDOR.ID_ALMACEN, V_PED_PROV_ARTICULOS.ID_ARTICULO, SUM(V_PED_PROV_ARTICULOS.CANTIDAD_PENDIENTE) +FROM V_PED_PROV_ARTICULOS +LEFT JOIN PEDIDOS_PROVEEDOR +ON (PEDIDOS_PROVEEDOR.ID = V_PED_PROV_ARTICULOS.ID_PEDIDO) +WHERE (PEDIDOS_PROVEEDOR.ID_ALMACEN IS NOT NULL) +GROUP BY PEDIDOS_PROVEEDOR.ID_ALMACEN, V_PED_PROV_ARTICULOS.ID_ARTICULO; + +/*Todas las salidas de almacen, bien por albarn 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 almacn destino, es decir que no se contabilizarn*/ +/*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 ms rpido y mejor para este*/ +/*caso una unin y luego una agrupacin que un FULL OUTER JOIN*/ + +CREATE VIEW V_INV_ENTRADAS_AUX( + TIPO, + ID_ALMACEN, + ID_ARTICULO, + CANTIDAD) +AS +SELECT 'ALB', + ID_ALMACEN, + ID_ARTICULO, + CANTIDAD +FROM V_INV_ENTRADAS_ALB +UNION ALL +SELECT 'MOV', + ID_ALMACEN, + ID_ARTICULO, + CANTIDAD +FROM V_INV_ENTRADAS_MOV; + + +/*Todas las entradas en almacen, bien por albarn 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 ms rpido y mejor para este*/ +/*caso una unin y luego una agrupacin 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 ALL +SELECT ID_ALMACEN, + ID_ARTICULO, + 0 as CANTIDAD_ENTRADA, + CANTIDAD as CANTIDAD_SALIDA +FROM V_INV_SALIDAS; + +/* Stock actual por articulo y almacn, 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 ALL +SELECT ID_ALMACEN, ID_ARTICULO, 0 as STOCK, CANTIDAD as PENDIENTES, 0 AS RESERVADAS +FROM V_INV_ENTRADAS_PENDIENTES +UNION ALL +SELECT ID_ALMACEN, ID_ARTICULO, 0 as STOCK, 0 as PENDIENTES, CANTIDAD AS RESERVADAS +FROM V_INV_RESERVAS; + +/*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.ELIMINADO = 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; + + + +/************************************************************************/ +/* HISTORICO MOVIMIENTOS ************************************************/ +/************************************************************************/ +/*Las siguientes vista nos presentar el historico de movimientos de todos los artculos*/ + +CREATE VIEW V_HIS_MOV_REGULARIZACIONES( + FECHA, + ID_ALMACEN, + ID_ARTICULO, + TIPO_MOVIMIENTO, + CANTIDAD, + CAUSA) +AS +SELECT FECHA_MOVIMIENTO, ID_ALMACEN, ID_ARTICULO, +CASE WHEN TIPO = 'E' THEN 'Entrada' +ELSE 'Salida' END, +CASE WHEN TIPO = 'S' THEN (-1)* CANTIDAD + ELSE CANTIDAD END, +'Regularizacin por - ' || CAUSA +FROM MOVIMIENTOS; + + +CREATE VIEW V_HIS_MOV_ALB_PROV( + FECHA, + ID_ALMACEN, + ID_ARTICULO, + TIPO_MOVIMIENTO, + CANTIDAD, + CAUSA) +AS +SELECT + ALBARANES_PROVEEDOR.FECHA_ALBARAN, + V_ALB_PROV_DETALLES.ID_ALMACEN, + V_ALB_PROV_DETALLES.ID_ARTICULO, + CASE WHEN V_ALB_PROV_DETALLES.CANTIDAD < 0 THEN 'Salida' + ELSE 'Entrada' END, + V_ALB_PROV_DETALLES.CANTIDAD, + CASE WHEN ALBARANES_PROVEEDOR.IMPORTE_TOTAL < 0 THEN 'Orden de devolucin ' || ALBARANES_PROVEEDOR.REFERENCIA + ELSE 'Albarn de proveedor ' || ALBARANES_PROVEEDOR.REFERENCIA END + + +FROM V_ALB_PROV_DETALLES +LEFT JOIN ALBARANES_PROVEEDOR +ON (V_ALB_PROV_DETALLES.ID_ALBARAN = ALBARANES_PROVEEDOR.ID) +WHERE (V_ALB_PROV_DETALLES.ID_ALMACEN IS NOT NULL); + + +CREATE VIEW V_HIS_MOV_ALB_CLI( + FECHA, + ID_ALMACEN, + ID_ARTICULO, + TIPO_MOVIMIENTO, + CANTIDAD, + CAUSA) +AS +SELECT + ALBARANES_CLIENTE.FECHA_ALBARAN, + V_ALB_CLI_DETALLES.ID_ALMACEN, + V_ALB_CLI_DETALLES.ID_ARTICULO, + CASE WHEN V_ALB_CLI_DETALLES.CANTIDAD < 0 THEN 'Entrada' + ELSE 'Salida' END, + (-1)*V_ALB_CLI_DETALLES.CANTIDAD, + CASE WHEN ALBARANES_CLIENTE.IMPORTE_TOTAL < 0 THEN 'Orden de devolucin de cliente ' || ALBARANES_CLIENTE.REFERENCIA + ELSE 'Albarn de cliente ' || ALBARANES_CLIENTE.REFERENCIA END + +FROM V_ALB_CLI_DETALLES +LEFT JOIN ALBARANES_CLIENTE +ON (V_ALB_CLI_DETALLES.ID_ALBARAN = ALBARANES_CLIENTE.ID) + +WHERE (V_ALB_CLI_DETALLES.ID_ALMACEN IS NOT NULL) +AND (V_ALB_CLI_DETALLES.SITUACION in ('ENVIADO', 'SERVIDO')); + + +CREATE VIEW V_HIS_MOV_AUX( + FECHA, + ID_ALMACEN, + ID_ARTICULO, + TIPO_MOVIMIENTO, + CANTIDAD, + CAUSA) +AS +SELECT + FECHA, + ID_ALMACEN, + ID_ARTICULO, + TIPO_MOVIMIENTO, + CANTIDAD, + CAUSA +FROM V_HIS_MOV_ALB_PROV +UNION ALL +SELECT + FECHA, + ID_ALMACEN, + ID_ARTICULO, + TIPO_MOVIMIENTO, + CANTIDAD, + CAUSA +FROM V_HIS_MOV_ALB_CLI +UNION ALL +SELECT + FECHA, + ID_ALMACEN, + ID_ARTICULO, + TIPO_MOVIMIENTO, + CANTIDAD, + CAUSA +FROM V_HIS_MOV_REGULARIZACIONES; + + +CREATE VIEW V_HISTORICO_MOVIMIENTOS( + FECHA, + ID_ALMACEN, + ID_EMPRESA, + NOMBRE_ALMACEN, + ID_ARTICULO, + FAMILIA, + REFERENCIA, + REFERENCIA_PROV, + DESCRIPCION, + TIPO_MOVIMIENTO, + CANTIDAD, + CAUSA) +AS +SELECT + V_HIS_MOV_AUX.FECHA, + V_HIS_MOV_AUX.ID_ALMACEN, + ALMACENES.ID_EMPRESA, + ALMACENES.NOMBRE, + V_HIS_MOV_AUX.ID_ARTICULO, + ARTICULOS.FAMILIA, + ARTICULOS.REFERENCIA, + ARTICULOS.REFERENCIA_PROV, + ARTICULOS.DESCRIPCION, + V_HIS_MOV_AUX.TIPO_MOVIMIENTO, + V_HIS_MOV_AUX.CANTIDAD, + V_HIS_MOV_AUX.CAUSA + +FROM V_HIS_MOV_AUX +LEFT JOIN ALMACENES ON (ALMACENES.ID = V_HIS_MOV_AUX.ID_ALMACEN) +LEFT JOIN ARTICULOS ON (ARTICULOS.ID = V_HIS_MOV_AUX.ID_ARTICULO) + +WHERE (V_HIS_MOV_AUX.ID_ARTICULO <> 0) +AND (ARTICULOS.INVENTARIABLE = 1); + + +DROP VIEW V_INV_DETALLE_RESERVAS; + + +/*Vista para ver para quien estan reservados los articulos del inventario*/ + +CREATE VIEW V_INV_DETALLE_RESERVAS( + ID_ALB, + ID_EMPRESA, + REFERENCIA_ALB, + SITUACION_ALB, + FECHA_PREVISTA_ENVIO_ALB, + ID_ALMACEN_ALB, + ALMACEN_ALB, + ID_CLIENTE_ALB, + CLIENTE_ALB, + ID_ART, + FAMILIA_ART, + REFERENCIA_ART, + REFERENCIA_PROV_ART, + DESCRIPCION_ART, + CANTIDAD_ART) +AS + +SELECT + ALBARANES_CLIENTE_DETALLES.ID_ALBARAN, + ALBARANES_CLIENTE.ID_EMPRESA, + ALBARANES_CLIENTE.REFERENCIA, + V_ALB_CLI_SITUACION.SITUACION, + ALBARANES_CLIENTE.FECHA_PREVISTA_ENVIO, + ALBARANES_CLIENTE.ID_ALMACEN, + ALMACENES.NOMBRE AS ALMACEN, + ALBARANES_CLIENTE.ID_CLIENTE, + CONTACTOS.NOMBRE AS CLIENTE, + ARTICULOS.ID, + ARTICULOS.FAMILIA, + ARTICULOS.REFERENCIA, + ARTICULOS.REFERENCIA_PROV, + ARTICULOS.DESCRIPCION, + 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 CONTACTOS +ON (ALBARANES_CLIENTE.ID_CLIENTE = CONTACTOS.ID) +LEFT JOIN ALMACENES +ON (ALBARANES_CLIENTE.ID_ALMACEN = ALMACENES.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) + +/*Quitamos aquellos detalles que no tengan cabecera existente + aquellos que no se correspondan con un almacn es decir albaranes libres + que el albaran este pendiente (los articulos estan reservados en el almacen) + aquellos que no se correspondan con artculos existentes en el catalogo + y que no sean inventariables*/ +WHERE (ALBARANES_CLIENTE.ID IS NOT NULL) +AND (ALBARANES_CLIENTE.ID_ALMACEN IS NOT NULL) +AND (V_ALB_CLI_SITUACION.SITUACION = 'PENDIENTE') +AND (ARTICULOS.ID is not null) +AND (ARTICULOS.ELIMINADO = 0) +AND (ARTICULOS.INVENTARIABLE = 1) + +GROUP BY + ALBARANES_CLIENTE_DETALLES.ID_ALBARAN, + ALBARANES_CLIENTE.ID_EMPRESA, + ALBARANES_CLIENTE.REFERENCIA, + V_ALB_CLI_SITUACION.SITUACION, + ALBARANES_CLIENTE.FECHA_PREVISTA_ENVIO, + ALBARANES_CLIENTE.ID_ALMACEN, + ALMACENES.NOMBRE, + ALBARANES_CLIENTE.ID_CLIENTE, + CONTACTOS.NOMBRE, + ARTICULOS.ID, + ARTICULOS.FAMILIA, + ARTICULOS.REFERENCIA, + ARTICULOS.REFERENCIA_PROV, + ARTICULOS.DESCRIPCION; diff --git a/Database/RodaxSoftware.FactuGES.Database.proj b/Database/RodaxSoftware.FactuGES.Database.proj new file mode 100644 index 00000000..2bb1f7d8 --- /dev/null +++ b/Database/RodaxSoftware.FactuGES.Database.proj @@ -0,0 +1,61 @@ + + + + + %22 + + + + localhost + false + $(MSBuildProjectDirectory)\Scripts + $(MSBuildProjectDirectory)\..\Tools + $(MSBuildProjectDirectory)\..\Output + $(ToolsFolder)\ISQL\isql.exe + Debug + + + + $(CodeOutputFolder)\Debug\Database + + + $(CodeOutputFolder)\Release\Database + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Database/_db_enviroment.bat b/Database/_db_enviroment.bat new file mode 100644 index 00000000..e82b9760 --- /dev/null +++ b/Database/_db_enviroment.bat @@ -0,0 +1,14 @@ +rem Full path to the firebird isql utility. +SET ISQL="..\Tools\ISQL\isql.exe" + +SET DB_LOGIN=-USER SYSDBA -PASSWORD masterkey + +rem DB ALIAS +SET DB_ALIAS=FACTUGES.FDB +SET DB_ALIAS_TEST=FACTUGES_TEST.FDB + +set DB_SQL_SCRIPT=scripts\factuges.sql +set DB_SQL_SYSDATA=scripts\factuges.sql + +set DB_DEBUG_PATH=..\output\debug\database +set DB_RELEASE_PATH=..\output\release\database \ No newline at end of file diff --git a/Database/db_execute.bat b/Database/db_execute.bat new file mode 100644 index 00000000..f374007c --- /dev/null +++ b/Database/db_execute.bat @@ -0,0 +1,67 @@ +rem @echo off +call _db_enviroment.bat + +if "%1" == "drop" goto drop +if "%1" == "create" goto create +if "%1" == "extract" goto extract +if "%1" == "insert_data" goto insert_data +if "%1" == "recreate" goto recreate +goto ayuda + +:recreate +call %0 drop +IF %ERRORLEVEL% == 1 GOTO ERROR +call %0 create +IF %ERRORLEVEL% == 1 GOTO ERROR +call %0 insert_data +IF %ERRORLEVEL% == 1 GOTO ERROR +goto end + +:drop +echo Borrando la base de datos %DB_ALIAS%... +IF EXIST "%DB_DEBUG_PATH%\%DB_ALIAS%" DEL %DB_DEBUG_PATH%\%DB_ALIAS% +IF %ERRORLEVEL% == 1 GOTO ERROR +goto done + +:create +echo Creando la base de datos %DB_ALIAS% en %DB_DEBUG_PATH%\%DB_ALIAS% +%ISQL% -i %DB_SQL_SCRIPT% %DB_LOGIN% -q +IF %ERRORLEVEL% == 1 GOTO ERROR +move %DB_ALIAS% "%DB_DEBUG_PATH%" +goto done + +:extract +echo Extrayendo %DB_ALIAS% al script SQL %DB_SQL_SCRIPT%... +IF EXIST %DB_SQL_SCRIPT% DEL %DB_SQL_SCRIPT% +%ISQL% -a -d %DB_ALIAS% %DB_LOGIN% -o %DB_SQL_SCRIPT% %DB_DEBUG_PATH%\%DB_ALIAS% -b +IF %ERRORLEVEL% == 1 GOTO ERROR +goto done + +:insert_data +echo Insertando datos del sistema en %DB_ALIAS%... +%ISQL% -i %DB_SQL_SYSDATA% %DB_LOGIN% %DB_DEBUG_PATH%\%DB_ALIAS% +IF %ERRORLEVEL% == 1 GOTO ERROR +goto done + +:error +ECHO Se ha producido un error!!!! +goto end + +:ayuda +echo Modo de uso: %0 [create / drop / extract] +echo ------------ +echo create: crear la base de datos %DB_ALIAS% (la borra antes si ya existe) +echo drop: borrar la base de datos %DB_ALIAS% +echo extract: extrae los metadatos de la BD a un fichero SQL (%DB_SQL_SCRIPT%) +echo insert_data: extrae los metadatos de la BD a un fichero SQL (%DB_SQL_SCRIPT%) +echo. +echo recreate: rehacer la BD: borrarla si existe, crearla e insertar los datos del sistema +echo. +goto end + +:done +echo Hecho! +echo. +goto end + +:end diff --git a/Database/scripts/SCRIPT_CONTABILIDAD.SQL b/Database/scripts/SCRIPT_CONTABILIDAD.SQL new file mode 100644 index 00000000..3f473868 --- /dev/null +++ b/Database/scripts/SCRIPT_CONTABILIDAD.SQL @@ -0,0 +1,83 @@ +CREATE TABLE CONT_EJERCICIOS ( + ID TIPO_ID NOT NULL, + NOMBRE VARCHAR(255), + FECHA_INICIO DATE, + FECHA_FIN DATE, + ESTADO VARCHAR(255), + LONG_SUB_CUENTA SMALLINT, + ID_ASIENTO_APERTURA TIPO_ID, + ID_ASIENTO_PERYGAN TIPO_ID, + ID_ASIENTO_CIERRE TIPO_ID); + +ALTER TABLE CONT_EJERCICIOS ADD CONSTRAINT PK_CONT_EJERCICIOS PRIMARY KEY (ID); + + +CREATE TABLE CONT_CUENTAS_ESPECIALES ( + ID TIPO_ID NOT NULL, + REFERENCIA varchar(6), + descripcion varchar(255)); + +ALTER TABLE CONT_CUENTAS_ESPECIALES ADD CONSTRAINT PK_CONT_CUENTAS_ESPECIALES PRIMARY KEY (ID); + + +CREATE TABLE CONT_EPIGRAFES ( + ID TIPO_ID NOT NULL, + REF_EPIGRAFE VARCHAR(6), + ID_PADRE TIPO_ID, + descripcion varchar(255), + ID_EJERCICIO TIPO_ID); + +ALTER TABLE CONT_EPIGRAFES ADD CONSTRAINT PK_CONT_EPIGRAFES PRIMARY KEY (ID); + + +CREATE TABLE CONT_BALANCES ( + ID TIPO_ID NOT NULL /* TIPO_ID = INTEGER */, + REF_BALANCE VARCHAR(255), + NATURALEZA VARCHAR(255), + NIVEL1 tipo_perfil, + DESCRIPCION1 varchar(255), + NIVEL2 TIPO_PERFIL, + DESCRIPCION2 varchar(255), + NIVEL3 TIPO_PERFIL, + DESCRIPCION3 varchar(255)); + +ALTER TABLE CONT_BALANCES ADD CONSTRAINT PK_CONT_BALANCES PRIMARY KEY (ID); + + +CREATE TABLE CONT_CUENTAS ( + ID TIPO_ID NOT NULL /* TIPO_ID = INTEGER */, + REF_CUENTA VARCHAR(10), + ID_EJERCICIO TIPO_ID /* TIPO_ID = INTEGER */, + ID_EPIGRAFE TIPO_ID /* TIPO_ID = INTEGER */, + DESCRIPCION VARCHAR(255), + ID_BALANCE TIPO_ID /* TIPO_ID = INTEGER */, + ID_CUENTA_ESPECIAL TIPO_ID /* TIPO_ID = INTEGER */ +); + +ALTER TABLE CONT_CUENTAS ADD CONSTRAINT PK_CONT_CUENTAS PRIMARY KEY (ID); + + +CREATE TABLE CONT_SUBCUENTAS ( + ID TIPO_ID NOT NULL /* TIPO_ID = INTEGER */, + REF_SUBCUENTA VARCHAR(15), + DESCRIPCION VARCHAR(255), + ID_CUENTA TIPO_ID /* TIPO_ID = INTEGER */, + ID_EJERCICIO TIPO_ID /* TIPO_ID = INTEGER */ +); + +ALTER TABLE CONT_SUBCUENTAS ADD CONSTRAINT PK_CONT_SUBCUENTAS PRIMARY KEY (ID); + + +CREATE TABLE CONT_ASIENTOS ( + ID TIPO_ID NOT NULL /* TIPO_ID = INTEGER */, + ID_ASIENTO_COMPENSADO TIPO_ID, + ID_SUBCUENTA TIPO_ID, + FECHA_ASIENTO date, + CONCEPTO VARCHAR(255), + PUNTEADO SMALLINT, + DEBE TIPO_IMPORTE, + HABER TIPO_IMPORTE +); + +ALTER TABLE CONT_ASIENTOS ADD CONSTRAINT PK_CONT_ASIENTOS PRIMARY KEY (ID); + diff --git a/Database/scripts/SCRIPT_DATOS_PLAN_GENERAL_CONTABLE.SQL b/Database/scripts/SCRIPT_DATOS_PLAN_GENERAL_CONTABLE.SQL new file mode 100644 index 00000000..93ba237b --- /dev/null +++ b/Database/scripts/SCRIPT_DATOS_PLAN_GENERAL_CONTABLE.SQL @@ -0,0 +1,1585 @@ +/*********************************************************************************/ +/*********************************************************************************/ +/*** CONT_CUENTAS_ESPECIALES ***************************************************/ +/*********************************************************************************/ +/*********************************************************************************/ + +INSERT INTO CONT_CUENTAS_ESPECIALES VALUES (1, 'CAJA', 'Cuentas de caja'); +INSERT INTO CONT_CUENTAS_ESPECIALES VALUES (2, 'CAMNEG', 'Cuentas de diferencias negativas de cambio'); +INSERT INTO CONT_CUENTAS_ESPECIALES VALUES (3, 'CAMPOS', 'Cuentas de diferencias positivas de cambio'); +INSERT INTO CONT_CUENTAS_ESPECIALES VALUES (4, 'CLIENT', 'Cuentas de clientes'); +INSERT INTO CONT_CUENTAS_ESPECIALES VALUES (5, 'COMPRA', 'Cuentas de compras'); +INSERT INTO CONT_CUENTAS_ESPECIALES VALUES (6, 'DIVPOS', 'Cuentas por diferencias positivas en divisa extranjera'); +INSERT INTO CONT_CUENTAS_ESPECIALES VALUES (7, 'EURNEG', 'Cuentas por diferencias negativas de conversin a la moneda local'); +INSERT INTO CONT_CUENTAS_ESPECIALES VALUES (8, 'EURPOS', 'Cuentas por diferencias positivas de conversin a la moneda local'); +INSERT INTO CONT_CUENTAS_ESPECIALES VALUES (9, 'IRPF', 'Cuentas de retenciones IRPF'); +INSERT INTO CONT_CUENTAS_ESPECIALES VALUES (10, 'IRPFPR', 'Cuentas de retenciones para proveedores IRPFPR'); +INSERT INTO CONT_CUENTAS_ESPECIALES VALUES (11, 'IVAACR', 'Cuentas acreedoras de IVA en la regularizacin'); +INSERT INTO CONT_CUENTAS_ESPECIALES VALUES (12, 'IVADEU', 'Cuentas deudoras de IVA en la regularizacin'); +INSERT INTO CONT_CUENTAS_ESPECIALES VALUES (13, 'IVAREP', 'Cuentas de IVA repercutido'); +INSERT INTO CONT_CUENTAS_ESPECIALES VALUES (14, 'IVARUE', 'Cuentas de IVA soportado UE'); +INSERT INTO CONT_CUENTAS_ESPECIALES VALUES (15, 'IVASOP', 'Cuentas de IVA soportado'); +INSERT INTO CONT_CUENTAS_ESPECIALES VALUES (16, 'IVASUE', 'Cuentas de IVA soportado UE'); +INSERT INTO CONT_CUENTAS_ESPECIALES VALUES (17, 'PREVIO', 'Cuentas relativas al ejercicio previo'); +INSERT INTO CONT_CUENTAS_ESPECIALES VALUES (18, 'PROVEE', 'Cuentas de proveedores'); +INSERT INTO CONT_CUENTAS_ESPECIALES VALUES (19, 'PYG', 'Prdidas y ganancias'); +INSERT INTO CONT_CUENTAS_ESPECIALES VALUES (20, 'VENTAS', 'Cuentas de ventas'); + + +/*********************************************************************************/ +/*********************************************************************************/ +/*** CONT_EPIGRAFES ************************************************************/ +/*********************************************************************************/ +/*********************************************************************************/ + +INSERT INTO CONT_EPIGRAFES VALUES (1, '1', 0, '1. FINANCIACION BASICA', NULL); +INSERT INTO CONT_EPIGRAFES VALUES (2, '10', 1, '10. CAPITAL', NULL); +INSERT INTO CONT_EPIGRAFES VALUES (3, '11', 1, '11. RESERVAS', NULL); +INSERT INTO CONT_EPIGRAFES VALUES (4, '12', 1, '12. RESULTADOS PENDIENTES DE APLICACION', NULL); +INSERT INTO CONT_EPIGRAFES VALUES (5, '13', 1, '13. INGRESOS A DISTRIBUIR EN VARIOS EJERCICIOS', NULL); +INSERT INTO CONT_EPIGRAFES VALUES (6, '14', 1, '14. PROVISIONES PARA RIESGOS Y GASTOS', NULL); +INSERT INTO CONT_EPIGRAFES VALUES (7, '15', 1, '15. EMPRESTITOS Y OTRAS EMISIONES ANALOGAS', NULL); +INSERT INTO CONT_EPIGRAFES VALUES (8, '16', 1, '16. DEUDAS LARGO PLAZO CON EMPRESAS DEL GRUPO Y ASOCIADAS', NULL); +INSERT INTO CONT_EPIGRAFES VALUES (9, '17', 1, '17. DEUDAS A LARGO PLAZO POR PRESTAMOS RECIBIDOS Y OTROS CONCEPTOS', NULL); +INSERT INTO CONT_EPIGRAFES VALUES (10, '18', 1, '18. FIANZAS Y DEPOSITOS RECIBIDOS A LARGO PLAZO', NULL); +INSERT INTO CONT_EPIGRAFES VALUES (11, '19', 1, '19. SITUACIONES TRANSITORIAS DE FINANCIACION', NULL); +INSERT INTO CONT_EPIGRAFES VALUES (12, '2', 0, '2. INMOVILIZADO', NULL); +INSERT INTO CONT_EPIGRAFES VALUES (13, '20', 12, '20. GASTOS DE ESTABLECIMIENTO', NULL); +INSERT INTO CONT_EPIGRAFES VALUES (14, '21', 12, '21. INMOVILIZACIONES INMATERIALES', NULL); +INSERT INTO CONT_EPIGRAFES VALUES (15, '22', 12, '22. INMOVILIZACIONES MATERIALES', NULL); +INSERT INTO CONT_EPIGRAFES VALUES (16, '23', 12, '23. INMOVILIZACIONES MATERIALES EN CURSO', NULL); +INSERT INTO CONT_EPIGRAFES VALUES (17, '24', 12, '24. INVERSIONES FINANCIERAS EN EMPRESAS DEL GRUPO Y ASOCIADAS', NULL); +INSERT INTO CONT_EPIGRAFES VALUES (18, '25', 12, '25. OTRAS INVERSIONES FINANCIERAS PERMANENTES', NULL); +INSERT INTO CONT_EPIGRAFES VALUES (19, '26', 12, '26. FIANZAS Y DEPOSITOS CONSTITUIDOS A LARGO PLAZO', NULL); +INSERT INTO CONT_EPIGRAFES VALUES (20, '27', 12, '27. GASTOS A DISTRIBUIR EN VARIOS EJERCICIOS', NULL); +INSERT INTO CONT_EPIGRAFES VALUES (21, '28', 12, '28. AMORTIZACION ACUMULADA DEL INMOVILIZADO', NULL); +INSERT INTO CONT_EPIGRAFES VALUES (22, '29', 12, '29. PROVISIONES DE INMOVILIZADO', NULL); +INSERT INTO CONT_EPIGRAFES VALUES (23, '3', 0, '3. EXISTENCIAS', NULL); +INSERT INTO CONT_EPIGRAFES VALUES (24, '30', 23, '30. COMERCIALES', NULL); +INSERT INTO CONT_EPIGRAFES VALUES (25, '31', 23, '31. MATERIAS PRIMAS', NULL); +INSERT INTO CONT_EPIGRAFES VALUES (26, '32', 23, '32. OTROS APROVISIONAMIENTOS', NULL); +INSERT INTO CONT_EPIGRAFES VALUES (27, '33', 23, '33. PRODUCTOS EN CURSO', NULL); +INSERT INTO CONT_EPIGRAFES VALUES (28, '34', 23, '34. PRODUCTOS SEMITERMINADOS', NULL); +INSERT INTO CONT_EPIGRAFES VALUES (29, '35', 23, '35. PRODUCTOS TERMINADOS', NULL); +INSERT INTO CONT_EPIGRAFES VALUES (30, '36', 23, '36. SUBPRODUCTOS, RESIDUOS Y MATERIALES RECUPERADOS', NULL); +INSERT INTO CONT_EPIGRAFES VALUES (31, '39', 23, '39. PROVISIONES POR DEPRECIACION DE EXISTENCIAS', NULL); +INSERT INTO CONT_EPIGRAFES VALUES (32, '4', 0, '4. ACREEDORES Y DEUDORES POR OPERACIONES DE TRAFICO', NULL); +INSERT INTO CONT_EPIGRAFES VALUES (33, '40', 32, '40. PROVEEDORES', NULL); +INSERT INTO CONT_EPIGRAFES VALUES (34, '41', 32, '41. ACREEDORES VARIOS', NULL); +INSERT INTO CONT_EPIGRAFES VALUES (35, '43', 32, '43. CLIENTES', NULL); +INSERT INTO CONT_EPIGRAFES VALUES (36, '44', 32, '44. DEUDORES VARIOS', NULL); +INSERT INTO CONT_EPIGRAFES VALUES (37, '46', 32, '46. PERSONAL', NULL); +INSERT INTO CONT_EPIGRAFES VALUES (38, '47', 32, '47. ADMINISTRACIONES PUBLICAS', NULL); +INSERT INTO CONT_EPIGRAFES VALUES (39, '48', 32, '48. AJUSTES POR PERIODIFICACION', NULL); +INSERT INTO CONT_EPIGRAFES VALUES (40, '49', 32, '49. PROVISIONES POR OPERACIONES DE TRAFICO', NULL); +INSERT INTO CONT_EPIGRAFES VALUES (41, '5', 0, '5. CUENTAS FINANCIERAS', NULL); +INSERT INTO CONT_EPIGRAFES VALUES (42, '50', 41, '50. EMPRESTITOS Y OTRAS EMISIONES ANALOGAS A CORTO PLAZO', NULL); +INSERT INTO CONT_EPIGRAFES VALUES (43, '51', 41, '51. DEUDAS A CORTO PLAZO CON EMPRESAS DEL GRUPO Y ASOCIADAS', NULL); +INSERT INTO CONT_EPIGRAFES VALUES (44, '52', 41, '52. DEUDAS A CORTO PLAZO POR PRESTAMOS RECIBIDOS Y OTROS CONCEPTOS', NULL); +INSERT INTO CONT_EPIGRAFES VALUES (45, '53', 41, '53. INVERSIONES FINANCIERAS A CORTO PLAZO EN EMPRESAS DEL GRUPO Y ASOCIADAS', NULL); +INSERT INTO CONT_EPIGRAFES VALUES (46, '54', 41, '54. OTRAS INVERSIONES FINANCIERAS TEMPORALES', NULL); +INSERT INTO CONT_EPIGRAFES VALUES (47, '55', 41, '55. OTRAS CUENTAS NO BANCARIAS', NULL); +INSERT INTO CONT_EPIGRAFES VALUES (48, '56', 41, '56. FIANZAS Y DEPOSITOS RECIBIDOS Y CONSTITUIDOS A CORTO PLAZO', NULL); +INSERT INTO CONT_EPIGRAFES VALUES (49, '57', 41, '57. TESORERIA', NULL); +INSERT INTO CONT_EPIGRAFES VALUES (50, '58', 41, '58. AJUSTES POR PERIODIFICACION', NULL); +INSERT INTO CONT_EPIGRAFES VALUES (51, '59', 41, '59. PROVISIONES FINANCIERAS', NULL); +INSERT INTO CONT_EPIGRAFES VALUES (52, '6', 0, '6. COMPRAS Y GASTOS', NULL); +INSERT INTO CONT_EPIGRAFES VALUES (53, '60', 52, '60. COMPRAS', NULL); +INSERT INTO CONT_EPIGRAFES VALUES (54, '61', 52, '61. VARIACION DE EXISTENCIAS', NULL); +INSERT INTO CONT_EPIGRAFES VALUES (55, '62', 52, '62. SERVICIOS EXTERIORES', NULL); +INSERT INTO CONT_EPIGRAFES VALUES (56, '63', 52, '63. TRIBUTOS', NULL); +INSERT INTO CONT_EPIGRAFES VALUES (57, '64', 52, '64. GASTOS DE PERSONAL', NULL); +INSERT INTO CONT_EPIGRAFES VALUES (58, '65', 52, '65. OTROS GASTOS DE GESTION', NULL); +INSERT INTO CONT_EPIGRAFES VALUES (59, '66', 52, '66. GASTOS FINANCIEROS', NULL); +INSERT INTO CONT_EPIGRAFES VALUES (60, '67', 52, '67. PERDIDAS PROCEDENTES DEL INMOVILIZADO Y GASTOS EXCEPCIONALES', NULL); +INSERT INTO CONT_EPIGRAFES VALUES (61, '68', 52, '68. DOTACIONES PARA AMORTIZACIONES', NULL); +INSERT INTO CONT_EPIGRAFES VALUES (62, '69', 52, '69. DOTACIONES A LAS PROVISIONES', NULL); +INSERT INTO CONT_EPIGRAFES VALUES (63, '7', 0, '7. VENTAS E INGRESOS', NULL); +INSERT INTO CONT_EPIGRAFES VALUES (64, '70', 63, '70. VENTAS DE MERCADERIAS,DE PRODUCCION PROPIA,DE SERVICIOS, ETC.', NULL); +INSERT INTO CONT_EPIGRAFES VALUES (65, '71', 63, '71. VARIACION DE EXISTENCIAS', NULL); +INSERT INTO CONT_EPIGRAFES VALUES (66, '73', 63, '73. TRABAJOS REALIZADOS PARA LA EMPRESA', NULL); +INSERT INTO CONT_EPIGRAFES VALUES (67, '74', 63, '74. SUBVENCIONES A LA EXPLOTACION', NULL); +INSERT INTO CONT_EPIGRAFES VALUES (68, '75', 63, '75. OTROS INGRESOS DE GESTION', NULL); +INSERT INTO CONT_EPIGRAFES VALUES (69, '76', 63, '76. INGRESOS FINANCIEROS', NULL); +INSERT INTO CONT_EPIGRAFES VALUES (70, '77', 63, '77. BENEFICIOS PROCEDENTES DEL INMOVILIZADO E INGRESOS EXCEPCIONALES', NULL); +INSERT INTO CONT_EPIGRAFES VALUES (71, '79', 63, '79. EXCESOS Y APLICACIONES DE PROVISIONES', NULL); + + +/*********************************************************************************/ +/*********************************************************************************/ +/*** CONT_BALANCES *************************************************************/ +/*********************************************************************************/ +/*********************************************************************************/ + +INSERT INTO CONT_BALANCES VALUES (1,'A', 'ACTIVO', '', '', '', '', '', ''); +INSERT INTO CONT_BALANCES VALUES (2,'A-A', 'ACTIVO', 'A', 'A) ACCIONISTAS ( SOCIOS ) POR DESEMBOLSOS NO EXIGIDOS', '', '', '', ''); +INSERT INTO CONT_BALANCES VALUES (3,'A-B', 'ACTIVO', 'B', 'B) INMOVILIZADO', '', '', '', ''); +INSERT INTO CONT_BALANCES VALUES (4,'A-B-I', 'ACTIVO', 'B', 'B) INMOVILIZADO', 'I', 'I. Gastos de establecimiento', '', ''); +INSERT INTO CONT_BALANCES VALUES (5,'A-B-II', 'ACTIVO', 'B', 'B) INMOVILIZADO', 'II', 'II. Inmovilizaciones inmateriales', '', ''); +INSERT INTO CONT_BALANCES VALUES (6,'A-B-II-1', 'ACTIVO', 'B', 'B) INMOVILIZADO', 'II', 'II. Inmovilizaciones inmateriales', '1', '1. Gastos de investigacin y desarrollo'); +INSERT INTO CONT_BALANCES VALUES (7,'A-B-II-2', 'ACTIVO', 'B', 'B) INMOVILIZADO', 'II', 'II. Inmovilizaciones inmateriales', '2', '2. Concesiones, patentes, licencias, marcas y similares'); +INSERT INTO CONT_BALANCES VALUES (8,'A-B-II-3', 'ACTIVO', 'B', 'B) INMOVILIZADO', 'II', 'II. Inmovilizaciones inmateriales', '3', '3. Fondo de comercio'); +INSERT INTO CONT_BALANCES VALUES (9,'A-B-II-4', 'ACTIVO', 'B', 'B) INMOVILIZADO', 'II', 'II. Inmovilizaciones inmateriales', '4', '4. Derechos de traspaso'); +INSERT INTO CONT_BALANCES VALUES (10,'A-B-II-5', 'ACTIVO', 'B', 'B) INMOVILIZADO', 'II', 'II. Inmovilizaciones inmateriales', '5', '5. Aplicaciones informticas'); +INSERT INTO CONT_BALANCES VALUES (11,'A-B-II-6', 'ACTIVO', 'B', 'B) INMOVILIZADO', 'II', 'II. Inmovilizaciones inmateriales', '6', '6. Derechos s/bienes en rgimen de arrendamiento financiero'); +INSERT INTO CONT_BALANCES VALUES (12,'A-B-II-7', 'ACTIVO', 'B', 'B) INMOVILIZADO', 'II', 'II. Inmovilizaciones inmateriales', '7', '7. Anticipos'); +INSERT INTO CONT_BALANCES VALUES (13,'A-B-II-8', 'ACTIVO', 'B', 'B) INMOVILIZADO', 'II', 'II. Inmovilizaciones inmateriales', '8', '8. Provisiones'); +INSERT INTO CONT_BALANCES VALUES (14,'A-B-II-9', 'ACTIVO', 'B', 'B) INMOVILIZADO', 'II', 'II. Inmovilizaciones inmateriales', '9', '9. Amortizaciones'); +INSERT INTO CONT_BALANCES VALUES (15,'A-B-III', 'ACTIVO', 'B', 'B) INMOVILIZADO', 'III', 'III. Inmovilizaciones materiales', '', ''); +INSERT INTO CONT_BALANCES VALUES (16,'A-B-III-1', 'ACTIVO', 'B', 'B) INMOVILIZADO', 'III', 'III. Inmovilizaciones materiales', '1', '1. Terrenos y construcciones'); +INSERT INTO CONT_BALANCES VALUES (17,'A-B-III-2', 'ACTIVO', 'B', 'B) INMOVILIZADO', 'III', 'III. Inmovilizaciones materiales', '2', '2. Instalaciones tcnicas y maquinaria'); +INSERT INTO CONT_BALANCES VALUES (18,'A-B-III-3', 'ACTIVO', 'B', 'B) INMOVILIZADO', 'III', 'III. Inmovilizaciones materiales', '3', '3. Otras instalaciones, utillaje y mobiliario'); +INSERT INTO CONT_BALANCES VALUES (19,'A-B-III-4', 'ACTIVO', 'B', 'B) INMOVILIZADO', 'III', 'III. Inmovilizaciones materiales', '4', '4. Anticipos e inmovilizaciones materiales en curso'); +INSERT INTO CONT_BALANCES VALUES (20,'A-B-III-5', 'ACTIVO', 'B', 'B) INMOVILIZADO', 'III', 'III. Inmovilizaciones materiales', '5', '5. Otro inmovilizado'); +INSERT INTO CONT_BALANCES VALUES (21,'A-B-III-6', 'ACTIVO', 'B', 'B) INMOVILIZADO', 'III', 'III. Inmovilizaciones materiales', '6', '6. Provisiones'); +INSERT INTO CONT_BALANCES VALUES (22,'A-B-III-7', 'ACTIVO', 'B', 'B) INMOVILIZADO', 'III', 'III. Inmovilizaciones materiales', '7', '7. Amortizaciones'); +INSERT INTO CONT_BALANCES VALUES (23,'A-B-IV', 'ACTIVO', 'B', 'B) INMOVILIZADO', 'IV', 'IV. Inmovilizaciones financieras', '', ''); +INSERT INTO CONT_BALANCES VALUES (24,'A-B-IV-1', 'ACTIVO', 'B', 'B) INMOVILIZADO', 'IV', 'IV. Inmovilizaciones financieras', '1', '1. Participaciones en empresas del grupo'); +INSERT INTO CONT_BALANCES VALUES (25,'A-B-IV-2', 'ACTIVO', 'B', 'B) INMOVILIZADO', 'IV', 'IV. Inmovilizaciones financieras', '2', '2. Crditos a empresas del grupo'); +INSERT INTO CONT_BALANCES VALUES (26,'A-B-IV-3', 'ACTIVO', 'B', 'B) INMOVILIZADO', 'IV', 'IV. Inmovilizaciones financieras', '3', '3. Participaciones en empresas asociadas'); +INSERT INTO CONT_BALANCES VALUES (27,'A-B-IV-4', 'ACTIVO', 'B', 'B) INMOVILIZADO', 'IV', 'IV. Inmovilizaciones financieras', '4', '4. Crditos a empresas asociadas'); +INSERT INTO CONT_BALANCES VALUES (28,'A-B-IV-5', 'ACTIVO', 'B', 'B) INMOVILIZADO', 'IV', 'IV. Inmovilizaciones financieras', '5', '5. Cartera de valores a largo plazo'); +INSERT INTO CONT_BALANCES VALUES (29,'A-B-IV-6', 'ACTIVO', 'B', 'B) INMOVILIZADO', 'IV', 'IV. Inmovilizaciones financieras', '6', '6. Otros Crditos'); +INSERT INTO CONT_BALANCES VALUES (30,'A-B-IV-7', 'ACTIVO', 'B', 'B) INMOVILIZADO', 'IV', 'IV. Inmovilizaciones financieras', '7', '7. Depsitos y fianzas constituidos a largo plazo'); +INSERT INTO CONT_BALANCES VALUES (31,'A-B-IV-8', 'ACTIVO', 'B', 'B) INMOVILIZADO', 'IV', 'IV. Inmovilizaciones financieras', '8', '8. Provisiones'); +INSERT INTO CONT_BALANCES VALUES (32,'A-B-IV-9', 'ACTIVO', 'B', 'B) INMOVILIZADO', 'IV', 'IV. Inmovilizaciones financieras', '9', '9. Administraciones pblicas a largo plazo'); +INSERT INTO CONT_BALANCES VALUES (33,'A-B-V', 'ACTIVO', 'B', 'B) INMOVILIZADO', 'V', 'V. Acciones propias', '', ''); +INSERT INTO CONT_BALANCES VALUES (34,'A-B-VI', 'ACTIVO', 'B', 'B) INMOVILIZADO', 'VI', 'VI. Deudores por operaciones de trfico a largo plazo', '', ''); +INSERT INTO CONT_BALANCES VALUES (35,'A-C', 'ACTIVO', 'C', 'C) GASTOS A DISTRIBUIR EN VARIOS EJERCICIOS', '', '', '', ''); +INSERT INTO CONT_BALANCES VALUES (36,'A-D', 'ACTIVO', 'D', 'D) ACTIVO CIRCULANTE', '', '', '', ''); +INSERT INTO CONT_BALANCES VALUES (37,'A-D-I', 'ACTIVO', 'D', 'D) ACTIVO CIRCULANTE', 'I', 'I. Accionistas por desembolsos exigidos', '', ''); +INSERT INTO CONT_BALANCES VALUES (38,'A-D-II', 'ACTIVO', 'D', 'D) ACTIVO CIRCULANTE', 'II', 'II. Existencias', '', ''); +INSERT INTO CONT_BALANCES VALUES (39,'A-D-II-1', 'ACTIVO', 'D', 'D) ACTIVO CIRCULANTE', 'II', 'II. Existencias', '1', '1. Comerciales'); +INSERT INTO CONT_BALANCES VALUES (40,'A-D-II-2', 'ACTIVO', 'D', 'D) ACTIVO CIRCULANTE', 'II', 'II. Existencias', '2', '2. Materias primas y otros aprovisionamientos'); +INSERT INTO CONT_BALANCES VALUES (41,'A-D-II-3', 'ACTIVO', 'D', 'D) ACTIVO CIRCULANTE', 'II', 'II. Existencias', '3', '3. Productos en curso y semiterminados'); +INSERT INTO CONT_BALANCES VALUES (42,'A-D-II-4', 'ACTIVO', 'D', 'D) ACTIVO CIRCULANTE', 'II', 'II. Existencias', '4', '4. Productos terminados'); +INSERT INTO CONT_BALANCES VALUES (43,'A-D-II-5', 'ACTIVO', 'D', 'D) ACTIVO CIRCULANTE', 'II', 'II. Existencias', '5', '5. Subproductos, residuos y materiales recuperados'); +INSERT INTO CONT_BALANCES VALUES (44,'A-D-II-6', 'ACTIVO', 'D', 'D) ACTIVO CIRCULANTE', 'II', 'II. Existencias', '6', '6. Anticipos'); +INSERT INTO CONT_BALANCES VALUES (45,'A-D-II-7', 'ACTIVO', 'D', 'D) ACTIVO CIRCULANTE', 'II', 'II. Existencias', '7', '7. Provisiones'); +INSERT INTO CONT_BALANCES VALUES (46,'A-D-III', 'ACTIVO', 'D', 'D) ACTIVO CIRCULANTE', 'III', 'III. Deudores', '', ''); +INSERT INTO CONT_BALANCES VALUES (47,'A-D-III-1', 'ACTIVO', 'D', 'D) ACTIVO CIRCULANTE', 'III', 'III. Deudores', '1', '1. Clientes por ventas y prestaciones de servicios'); +INSERT INTO CONT_BALANCES VALUES (48,'A-D-III-2', 'ACTIVO', 'D', 'D) ACTIVO CIRCULANTE', 'III', 'III. Deudores', '2', '2. Empresas del grupo, deudores'); +INSERT INTO CONT_BALANCES VALUES (49,'A-D-III-3', 'ACTIVO', 'D', 'D) ACTIVO CIRCULANTE', 'III', 'III. Deudores', '3', '3. Empresas asociadas, deudores'); +INSERT INTO CONT_BALANCES VALUES (50,'A-D-III-4', 'ACTIVO', 'D', 'D) ACTIVO CIRCULANTE', 'III', 'III. Deudores', '4', '4. Deudores varios'); +INSERT INTO CONT_BALANCES VALUES (51,'A-D-III-5', 'ACTIVO', 'D', 'D) ACTIVO CIRCULANTE', 'III', 'III. Deudores', '5', '5. Personal'); +INSERT INTO CONT_BALANCES VALUES (52,'A-D-III-6', 'ACTIVO', 'D', 'D) ACTIVO CIRCULANTE', 'III', 'III. Deudores', '6', '6. Administraciones pblicas'); +INSERT INTO CONT_BALANCES VALUES (53,'A-D-III-7', 'ACTIVO', 'D', 'D) ACTIVO CIRCULANTE', 'III', 'III. Deudores', '7', '7. Provisiones'); +INSERT INTO CONT_BALANCES VALUES (54,'A-D-IV', 'ACTIVO', 'D', 'D) ACTIVO CIRCULANTE', 'IV', 'IV. Inversiones financieras temporales', '', ''); +INSERT INTO CONT_BALANCES VALUES (55,'A-D-IV-1', 'ACTIVO', 'D', 'D) ACTIVO CIRCULANTE', 'IV', 'IV. Inversiones financieras temporales', '1', '1. Participaciones en empresas del grupo'); +INSERT INTO CONT_BALANCES VALUES (56,'A-D-IV-2', 'ACTIVO', 'D', 'D) ACTIVO CIRCULANTE', 'IV', 'IV. Inversiones financieras temporales', '2', '2. Crditos a empresas del grupo'); +INSERT INTO CONT_BALANCES VALUES (57,'A-D-IV-3', 'ACTIVO', 'D', 'D) ACTIVO CIRCULANTE', 'IV', 'IV. Inversiones financieras temporales', '3', '3. Participaciones en empresas asociadas'); +INSERT INTO CONT_BALANCES VALUES (58,'A-D-IV-4', 'ACTIVO', 'D', 'D) ACTIVO CIRCULANTE', 'IV', 'IV. Inversiones financieras temporales', '4', '4. Crditos a empresas asociadas'); +INSERT INTO CONT_BALANCES VALUES (59,'A-D-IV-5', 'ACTIVO', 'D', 'D) ACTIVO CIRCULANTE', 'IV', 'IV. Inversiones financieras temporales', '5', '5. Cartera de valores a corto plazo'); +INSERT INTO CONT_BALANCES VALUES (60,'A-D-IV-6', 'ACTIVO', 'D', 'D) ACTIVO CIRCULANTE', 'IV', 'IV. Inversiones financieras temporales', '6', '6. Otros crditos'); +INSERT INTO CONT_BALANCES VALUES (61,'A-D-IV-7', 'ACTIVO', 'D', 'D) ACTIVO CIRCULANTE', 'IV', 'IV. Inversiones financieras temporales', '7', '7. Depsitos y fianzas constituidos a corto plazo'); +INSERT INTO CONT_BALANCES VALUES (62,'A-D-IV-8', 'ACTIVO', 'D', 'D) ACTIVO CIRCULANTE', 'IV', 'IV. Inversiones financieras temporales', '8', '8. Provisiones'); +INSERT INTO CONT_BALANCES VALUES (63,'A-D-V', 'ACTIVO', 'D', 'D) ACTIVO CIRCULANTE', 'V', 'V. Acciones propias a corto plazo', '', ''); +INSERT INTO CONT_BALANCES VALUES (64,'A-D-VI', 'ACTIVO', 'D', 'D) ACTIVO CIRCULANTE', 'VI', 'VI. Tesorera', '', ''); +INSERT INTO CONT_BALANCES VALUES (65,'A-D-VII', 'ACTIVO', 'D', 'D) ACTIVO CIRCULANTE', 'VII', 'VII. Ajustes por periodificacin', '', ''); +INSERT INTO CONT_BALANCES VALUES (66,'A-E', 'ACTIVO', 'E', 'TOTAL ACTIVO', '', '', '', ''); +INSERT INTO CONT_BALANCES VALUES (67,'D', 'DEBE', '', '', '', '', '', ''); +INSERT INTO CONT_BALANCES VALUES (68,'D-A', 'DEBE', 'A', 'A) GASTOS ( A1 a A16 )', '', '', '', ''); +INSERT INTO CONT_BALANCES VALUES (69,'D-A-1', 'DEBE', 'A', 'A) GASTOS ( A1 a A16 )', '1', 'A1. Reduccin de existencias de productos terminados y en curso de fabricacin', '', ''); +INSERT INTO CONT_BALANCES VALUES (70,'D-A-2', 'DEBE', 'A', 'A) GASTOS ( A1 a A16 )', '2', 'A2. Aprovisionamientos', '', ''); +INSERT INTO CONT_BALANCES VALUES (71,'D-A-2-a', 'DEBE', 'A', 'A) GASTOS ( A1 a A16 )', '2', 'A2. Aprovisionamientos', 'a', 'a) Consumo de mercaderas'); +INSERT INTO CONT_BALANCES VALUES (72,'D-A-2-b', 'DEBE', 'A', 'A) GASTOS ( A1 a A16 )', '2', 'A2. Aprovisionamientos', 'b', 'b) Consumo de materias primas y otras materias consumibles'); +INSERT INTO CONT_BALANCES VALUES (73,'D-A-2-c', 'DEBE', 'A', 'A) GASTOS ( A1 a A16 )', '2', 'A2. Aprovisionamientos', 'c', 'c) Otros gastos externos'); +INSERT INTO CONT_BALANCES VALUES (74,'D-A-3', 'DEBE', 'A', 'A) GASTOS ( A1 a A16 )', '3', 'A3. Gastos de personal', '', ''); +INSERT INTO CONT_BALANCES VALUES (75,'D-A-3-a', 'DEBE', 'A', 'A) GASTOS ( A1 a A16 )', '3', 'A3. Gastos de personal', 'a', 'a) Sueldos, salarios y asimilados'); +INSERT INTO CONT_BALANCES VALUES (76,'D-A-3-b', 'DEBE', 'A', 'A) GASTOS ( A1 a A16 )', '3', 'A3. Gastos de personal', 'b', 'b) Cargas sociales'); +INSERT INTO CONT_BALANCES VALUES (77,'D-A-4', 'DEBE', 'A', 'A) GASTOS ( A1 a A16 )', '4', 'A4. Dotaciones para amortizaciones de inmovilizado', '', ''); +INSERT INTO CONT_BALANCES VALUES (78,'D-A-5', 'DEBE', 'A', 'A) GASTOS ( A1 a A16 )', '5', 'A5. Variacin de las provisiones de trfico', '', ''); +INSERT INTO CONT_BALANCES VALUES (79,'D-A-5-a', 'DEBE', 'A', 'A) GASTOS ( A1 a A16 )', '5', 'A5. Variacin de las provisiones de trfico', 'a', 'a) Variacin de provisiones de existencias'); +INSERT INTO CONT_BALANCES VALUES (80,'D-A-5-b', 'DEBE', 'A', 'A) GASTOS ( A1 a A16 )', '5', 'A5. Variacin de las provisiones de trfico', 'b', 'b) Variacin de provisiones y prdidas de crditos incobrables'); +INSERT INTO CONT_BALANCES VALUES (81,'D-A-5-c', 'DEBE', 'A', 'A) GASTOS ( A1 a A16 )', '5', 'A5. Variacin de las provisiones de trfico', 'c', 'c) Variacin de otras provisiones de trfico'); +INSERT INTO CONT_BALANCES VALUES (82,'D-A-6', 'DEBE', 'A', 'A) GASTOS ( A1 a A16 )', '6', 'A6. Otros gastos de explotacin', '', ''); +INSERT INTO CONT_BALANCES VALUES (83,'D-A-6-a', 'DEBE', 'A', 'A) GASTOS ( A1 a A16 )', '6', 'A6. Otros gastos de explotacin', 'a', 'a) Servicios exteriores'); +INSERT INTO CONT_BALANCES VALUES (84,'D-A-6-b', 'DEBE', 'A', 'A) GASTOS ( A1 a A16 )', '6', 'A6. Otros gastos de explotacin', 'b', 'b) Tributos'); +INSERT INTO CONT_BALANCES VALUES (85,'D-A-6-c', 'DEBE', 'A', 'A) GASTOS ( A1 a A16 )', '6', 'A6. Otros gastos de explotacin', 'c', 'c) Otros gastos de gestin corriente'); +INSERT INTO CONT_BALANCES VALUES (86,'D-A-6-d', 'DEBE', 'A', 'A) GASTOS ( A1 a A16 )', '6', 'A6. Otros gastos de explotacin', 'd', 'd) Dotacin al fondo de reversin'); +INSERT INTO CONT_BALANCES VALUES (87,'D-I', 'DEBE', 'I', 'AI. BENEFICIOS DE EXPLOTACION ( B1+B2+B3+B4-A1-A2-A3-A4-A5-A6 )', '', '', '', ''); +INSERT INTO CONT_BALANCES VALUES (88,'D-I-7', 'DEBE', 'I', 'AI. BENEFICIOS DE EXPLOTACION ( B1+B2+B3+B4-A1-A2-A3-A4-A5-A6 )', '7', 'A7. Gastos financieros y gastos asimilados', '', ''); +INSERT INTO CONT_BALANCES VALUES (89,'D-I-7-a', 'DEBE', 'I', 'AI. BENEFICIOS DE EXPLOTACION ( B1+B2+B3+B4-A1-A2-A3-A4-A5-A6 )', '7', 'A7. Gastos financieros y gastos asimilados', 'a', 'a) Por deudas con empresas del grupo'); +INSERT INTO CONT_BALANCES VALUES (90,'D-I-7-b', 'DEBE', 'I', 'AI. BENEFICIOS DE EXPLOTACION ( B1+B2+B3+B4-A1-A2-A3-A4-A5-A6 )', '7', 'A7. Gastos financieros y gastos asimilados', 'b', 'b) Por deudas con empresas asociadas'); +INSERT INTO CONT_BALANCES VALUES (91,'D-I-7-c', 'DEBE', 'I', 'AI. BENEFICIOS DE EXPLOTACION ( B1+B2+B3+B4-A1-A2-A3-A4-A5-A6 )', '7', 'A7. Gastos financieros y gastos asimilados', 'c', 'c) Por deudas con terceros y gastos asimilados'); +INSERT INTO CONT_BALANCES VALUES (92,'D-I-7-d', 'DEBE', 'I', 'AI. BENEFICIOS DE EXPLOTACION ( B1+B2+B3+B4-A1-A2-A3-A4-A5-A6 )', '7', 'A7. Gastos financieros y gastos asimilados', 'd', 'd) Prdidas de inversiones financieras'); +INSERT INTO CONT_BALANCES VALUES (93,'D-I-8', 'DEBE', 'I', 'AI. BENEFICIOS DE EXPLOTACION ( B1+B2+B3+B4-A1-A2-A3-A4-A5-A6 )', '8', 'A8. Variacin de las provisiones de inversiones financieras', '', ''); +INSERT INTO CONT_BALANCES VALUES (94,'D-I-9', 'DEBE', 'I', 'AI. BENEFICIOS DE EXPLOTACION ( B1+B2+B3+B4-A1-A2-A3-A4-A5-A6 )', '9', 'A9. Diferencias negativas de cambio', '', ''); +INSERT INTO CONT_BALANCES VALUES (95,'D-II', 'DEBE', 'II', 'AII. RESULTADOS FINANCIEROS POSITIVOS ( B5+B6+B7+B8-A7-A8-A9 )', '', '', '', ''); +INSERT INTO CONT_BALANCES VALUES (96,'D-III', 'DEBE', 'III', 'AIII. BENEFICIOS DE LAS ACTIVIDADES ORDINARIAS ( AI+AII-BI-BII )', '', '', '', ''); +INSERT INTO CONT_BALANCES VALUES (97,'D-III-0', 'DEBE', 'III', 'AIII. BENEFICIOS DE LAS ACTIVIDADES ORDINARIAS ( AI+AII-BI-BII )', '0', 'A10. Variacin de las provisiones de inmovilizado inmaterial, material y cartera de control', '', ''); +INSERT INTO CONT_BALANCES VALUES (98,'D-III-1', 'DEBE', 'III', 'AIII. BENEFICIOS DE LAS ACTIVIDADES ORDINARIAS ( AI+AII-BI-BII )', '1', 'A11. Prdidas procedentes de inmovilizado inmaterial, material y cartera de control', '', ''); +INSERT INTO CONT_BALANCES VALUES (99,'D-III-2', 'DEBE', 'III', 'AIII. BENEFICIOS DE LAS ACTIVIDADES ORDINARIAS ( AI+AII-BI-BII )', '2', 'A12. Prdidas por operaciones con acciones y obligaciones propias', '', ''); +INSERT INTO CONT_BALANCES VALUES (100,'D-III-3', 'DEBE', 'III', 'AIII. BENEFICIOS DE LAS ACTIVIDADES ORDINARIAS ( AI+AII-BI-BII )', '3', 'A13. Gastos extraordinarios', '', ''); +INSERT INTO CONT_BALANCES VALUES (101,'D-III-4', 'DEBE', 'III', 'AIII. BENEFICIOS DE LAS ACTIVIDADES ORDINARIAS ( AI+AII-BI-BII )', '4', 'A14. Gastos y prdidas de otros ejercicios', '', ''); +INSERT INTO CONT_BALANCES VALUES (102,'D-IV', 'DEBE', 'IV', 'AIV. RESULTADOS EXTRAORDINARIOS POSITIVOS ( B9+B10+B11+B12+B13-A10-A11-A12-A13-A14 )', '', '', '', ''); +INSERT INTO CONT_BALANCES VALUES (103,'D-V', 'DEBE', 'V', 'AV. BENEFICIOS ANTES DE IMPUESTOS ( AIII + AIV - BIII - BIV )', '', '', '', ''); +INSERT INTO CONT_BALANCES VALUES (104,'D-V-5', 'DEBE', 'V', 'AV. BENEFICIOS ANTES DE IMPUESTOS ( AIII + AIV - BIII - BIV )', '5', 'A15. Impuesto sobre sociedades', '', ''); +INSERT INTO CONT_BALANCES VALUES (105,'D-V-6', 'DEBE', 'V', 'AV. BENEFICIOS ANTES DE IMPUESTOS ( AIII + AIV - BIII - BIV )', '6', 'A16. Otros impuestos', '', ''); +INSERT INTO CONT_BALANCES VALUES (106,'D-VI', 'DEBE', 'VI', 'AVI. RESULTADOS DEL EJERCICIO ( BENEFICIOS ) ( AV - A15 - A16 )', '', '', '', ''); +INSERT INTO CONT_BALANCES VALUES (107,'H', 'HABER', '', '', '', '', '', ''); +INSERT INTO CONT_BALANCES VALUES (108,'H-B', 'HABER', 'B', 'B) INGRESOS( B1 a B13 )', '', '', '', ''); +INSERT INTO CONT_BALANCES VALUES (109,'H-B-1', 'HABER', 'B', 'B) INGRESOS( B1 a B13 )', '1', 'B1. Importe neto de la cifra de negocios', '', ''); +INSERT INTO CONT_BALANCES VALUES (110,'H-B-1-a', 'HABER', 'B', 'B) INGRESOS( B1 a B13 )', '1', 'B1. Importe neto de la cifra de negocios', 'a', 'a) Ventas'); +INSERT INTO CONT_BALANCES VALUES (111,'H-B-1-b', 'HABER', 'B', 'B) INGRESOS( B1 a B13 )', '1', 'B1. Importe neto de la cifra de negocios', 'b', 'b) Prestaciones de servicios'); +INSERT INTO CONT_BALANCES VALUES (112,'H-B-1-c', 'HABER', 'B', 'B) INGRESOS( B1 a B13 )', '1', 'B1. Importe neto de la cifra de negocios', 'c', 'c) Devoluciones y rappels sobre ventas'); +INSERT INTO CONT_BALANCES VALUES (113,'H-B-2', 'HABER', 'B', 'B) INGRESOS( B1 a B13 )', '2', 'B2. Aumento de existencias de productos terminados y en curso de fabricacin', '', ''); +INSERT INTO CONT_BALANCES VALUES (114,'H-B-3', 'HABER', 'B', 'B) INGRESOS( B1 a B13 )', '3', 'B3. Trabajos efectuados por la empresa para el inmovilizado', '', ''); +INSERT INTO CONT_BALANCES VALUES (115,'H-B-4', 'HABER', 'B', 'B) INGRESOS( B1 a B13 )', '4', 'B4. Otros ingresos de explotacin', '', ''); +INSERT INTO CONT_BALANCES VALUES (116,'H-B-4-a', 'HABER', 'B', 'B) INGRESOS( B1 a B13 )', '4', 'B4. Otros ingresos de explotacin', 'a', 'a) Ingresos accesorios y otros de gestin corriente'); +INSERT INTO CONT_BALANCES VALUES (117,'H-B-4-b', 'HABER', 'B', 'B) INGRESOS( B1 a B13 )', '4', 'B4. Otros ingresos de explotacin', 'b', 'b) Subvenciones'); +INSERT INTO CONT_BALANCES VALUES (118,'H-B-4-c', 'HABER', 'B', 'B) INGRESOS( B1 a B13 )', '4', 'B4. Otros ingresos de explotacin', 'c', 'c) Exceso de provisiones de riesgos y gastos'); +INSERT INTO CONT_BALANCES VALUES (119,'H-I', 'HABER', 'I', 'BI. PERDIDAS DE EXPLOTACION ( A1+A2+A3+A4+A5+A6-B1-B2-B3-B4 )', '', '', '', ''); +INSERT INTO CONT_BALANCES VALUES (120,'H-I-5', 'HABER', 'I', 'BI. PERDIDAS DE EXPLOTACION ( A1+A2+A3+A4+A5+A6-B1-B2-B3-B4 )', '5', 'B5. Ingresos de participaciones en capital', '', ''); +INSERT INTO CONT_BALANCES VALUES (121,'H-I-5-a', 'HABER', 'I', 'BI. PERDIDAS DE EXPLOTACION ( A1+A2+A3+A4+A5+A6-B1-B2-B3-B4 )', '5', 'B5. Ingresos de participaciones en capital', 'a', 'a) En empresas del grupo'); +INSERT INTO CONT_BALANCES VALUES (122,'H-I-5-b', 'HABER', 'I', 'BI. PERDIDAS DE EXPLOTACION ( A1+A2+A3+A4+A5+A6-B1-B2-B3-B4 )', '5', 'B5. Ingresos de participaciones en capital', 'b', 'b) En empresas asociadas'); +INSERT INTO CONT_BALANCES VALUES (123,'H-I-5-c', 'HABER', 'I', 'BI. PERDIDAS DE EXPLOTACION ( A1+A2+A3+A4+A5+A6-B1-B2-B3-B4 )', '5', 'B5. Ingresos de participaciones en capital', 'c', 'c) En empresas fuera del grupo'); +INSERT INTO CONT_BALANCES VALUES (124,'H-I-6', 'HABER', 'I', 'BI. PERDIDAS DE EXPLOTACION ( A1+A2+A3+A4+A5+A6-B1-B2-B3-B4 )', '6', 'B6. Ingresos de otros valores negociables y de crditos de activo inmovilizado', '', ''); +INSERT INTO CONT_BALANCES VALUES (125,'H-I-6-a', 'HABER', 'I', 'BI. PERDIDAS DE EXPLOTACION ( A1+A2+A3+A4+A5+A6-B1-B2-B3-B4 )', '6', 'B6. Ingresos de otros valores negociables y de crditos de activo inmovilizado', 'a', 'a) De empresas del grupo'); +INSERT INTO CONT_BALANCES VALUES (126,'H-I-6-b', 'HABER', 'I', 'BI. PERDIDAS DE EXPLOTACION ( A1+A2+A3+A4+A5+A6-B1-B2-B3-B4 )', '6', 'B6. Ingresos de otros valores negociables y de crditos de activo inmovilizado', 'b', 'b) De empresas asociadas'); +INSERT INTO CONT_BALANCES VALUES (127,'H-I-6-c', 'HABER', 'I', 'BI. PERDIDAS DE EXPLOTACION ( A1+A2+A3+A4+A5+A6-B1-B2-B3-B4 )', '6', 'B6. Ingresos de otros valores negociables y de crditos de activo inmovilizado', 'c', 'c) De empresas fuera del grupo'); +INSERT INTO CONT_BALANCES VALUES (128,'H-I-7', 'HABER', 'I', 'BI. PERDIDAS DE EXPLOTACION ( A1+A2+A3+A4+A5+A6-B1-B2-B3-B4 )', '7', 'B7. Otros intereses o ingresos asimilados', '', ''); +INSERT INTO CONT_BALANCES VALUES (129,'H-I-7-a', 'HABER', 'I', 'BI. PERDIDAS DE EXPLOTACION ( A1+A2+A3+A4+A5+A6-B1-B2-B3-B4 )', '7', 'B7. Otros intereses o ingresos asimilados', 'a', 'a) De empresas del grupo'); +INSERT INTO CONT_BALANCES VALUES (130,'H-I-7-b', 'HABER', 'I', 'BI. PERDIDAS DE EXPLOTACION ( A1+A2+A3+A4+A5+A6-B1-B2-B3-B4 )', '7', 'B7. Otros intereses o ingresos asimilados', 'b', 'b) De empresas asociadas'); +INSERT INTO CONT_BALANCES VALUES (131,'H-I-7-c', 'HABER', 'I', 'BI. PERDIDAS DE EXPLOTACION ( A1+A2+A3+A4+A5+A6-B1-B2-B3-B4 )', '7', 'B7. Otros intereses o ingresos asimilados', 'c', 'c) Otros intereses'); +INSERT INTO CONT_BALANCES VALUES (132,'H-I-7-d', 'HABER', 'I', 'BI. PERDIDAS DE EXPLOTACION ( A1+A2+A3+A4+A5+A6-B1-B2-B3-B4 )', '7', 'B7. Otros intereses o ingresos asimilados', 'd', 'd) Beneficios en inversiones financieras'); +INSERT INTO CONT_BALANCES VALUES (133,'H-I-8', 'HABER', 'I', 'BI. PERDIDAS DE EXPLOTACION ( A1+A2+A3+A4+A5+A6-B1-B2-B3-B4 )', '8', 'B8. Diferencias positivas de cambio', '', ''); +INSERT INTO CONT_BALANCES VALUES (134,'H-II', 'HABER', 'II', 'BII. RESULTADOS FINANCIEROS NEGATIVOS ( A7+A8+A9-B5-B6-B7-B8 )', '', '', '', ''); +INSERT INTO CONT_BALANCES VALUES (135,'H-III', 'HABER', 'III', 'BIII. PERDIDAS DE LAS ACTIVIDADES ORDINARIAS ( BI + BII - AI - AII )', '', '', '', ''); +INSERT INTO CONT_BALANCES VALUES (136,'H-III-A', 'HABER', 'III', 'BIII. PERDIDAS DE LAS ACTIVIDADES ORDINARIAS ( BI + BII - AI - AII )', 'A', 'B9. Beneficios en enajenacin de inmovilizado inmaterial, material y cartera de control', '', ''); +INSERT INTO CONT_BALANCES VALUES (137,'H-III-B', 'HABER', 'III', 'BIII. PERDIDAS DE LAS ACTIVIDADES ORDINARIAS ( BI + BII - AI - AII )', 'B', 'B10. Beneficios por operaciones con acciones y obligaciones propias', '', ''); +INSERT INTO CONT_BALANCES VALUES (138,'H-III-C', 'HABER', 'III', 'BIII. PERDIDAS DE LAS ACTIVIDADES ORDINARIAS ( BI + BII - AI - AII )', 'C', 'B11. Subvenciones de capital transferidas al resultado del ejercicio', '', ''); +INSERT INTO CONT_BALANCES VALUES (139,'H-III-D', 'HABER', 'III', 'BIII. PERDIDAS DE LAS ACTIVIDADES ORDINARIAS ( BI + BII - AI - AII )', 'D', 'B12. Ingresos extraordinarios', '', ''); +INSERT INTO CONT_BALANCES VALUES (140,'H-III-E', 'HABER', 'III', 'BIII. PERDIDAS DE LAS ACTIVIDADES ORDINARIAS ( BI + BII - AI - AII )', 'E', 'B13. Ingresos y beneficios de otros ejercicios', '', ''); +INSERT INTO CONT_BALANCES VALUES (141,'H-IV', 'HABER', 'IV', 'BIV. RESULTADOS EXTRAORDINARIOS NEGATIVOS ( A10+A11+A12+A13+A14-B9-B10-B11-B12-B13 )', '', '', '', ''); +INSERT INTO CONT_BALANCES VALUES (142,'H-V', 'HABER', 'V', 'BV. PERDIDAS ANTES DE IMPUESTOS ( BIII + BIV - AIII - AIV )', '', '', '', ''); +INSERT INTO CONT_BALANCES VALUES (143,'H-VI', 'HABER', 'VI', 'BVI. RESULTADOS DEL EJERCICIO ( PERDIDAS ) ( BV + A15 + A16 )', '', '', '', ''); +INSERT INTO CONT_BALANCES VALUES (144,'P', 'PASIVO', '', '', '', '', '', ''); +INSERT INTO CONT_BALANCES VALUES (145,'P-A', 'PASIVO', 'A', 'A) FONDOS PROPIOS', '', '', '', ''); +INSERT INTO CONT_BALANCES VALUES (146,'P-A-I', 'PASIVO', 'A', 'A) FONDOS PROPIOS', 'I', 'I. Capital suscrito', '', ''); +INSERT INTO CONT_BALANCES VALUES (147,'P-A-II', 'PASIVO', 'A', 'A) FONDOS PROPIOS', 'II', 'II. Prima de emisin', '', ''); +INSERT INTO CONT_BALANCES VALUES (148,'P-A-III', 'PASIVO', 'A', 'A) FONDOS PROPIOS', 'III', 'III. Reserva de revalorizacin', '', ''); +INSERT INTO CONT_BALANCES VALUES (149,'P-A-IV', 'PASIVO', 'A', 'A) FONDOS PROPIOS', 'IV', 'IV. Reservas', '', ''); +INSERT INTO CONT_BALANCES VALUES (150,'P-A-IV-1', 'PASIVO', 'A', 'A) FONDOS PROPIOS', 'IV', 'IV. Reservas', '1', '1. Reserva legal'); +INSERT INTO CONT_BALANCES VALUES (151,'P-A-IV-2', 'PASIVO', 'A', 'A) FONDOS PROPIOS', 'IV', 'IV. Reservas', '2', '2. Reservas para acciones propias'); +INSERT INTO CONT_BALANCES VALUES (152,'P-A-IV-3', 'PASIVO', 'A', 'A) FONDOS PROPIOS', 'IV', 'IV. Reservas', '3', '3. Reservas para acciones de la sociedad dominante'); +INSERT INTO CONT_BALANCES VALUES (153,'P-A-IV-4', 'PASIVO', 'A', 'A) FONDOS PROPIOS', 'IV', 'IV. Reservas', '4', '4. Reservas estatutarias'); +INSERT INTO CONT_BALANCES VALUES (154,'P-A-IV-5', 'PASIVO', 'A', 'A) FONDOS PROPIOS', 'IV', 'IV. Reservas', '5', '5. Diferencias por ajuste del capital a euros'); +INSERT INTO CONT_BALANCES VALUES (155,'P-A-V', 'PASIVO', 'A', 'A) FONDOS PROPIOS', 'V', 'V. Resultados de ejercicios anteriores', '', ''); +INSERT INTO CONT_BALANCES VALUES (156,'P-A-V-1', 'PASIVO', 'A', 'A) FONDOS PROPIOS', 'V', 'V. Resultados de ejercicios anteriores', '1', '1. Remanente'); +INSERT INTO CONT_BALANCES VALUES (157,'P-A-V-2', 'PASIVO', 'A', 'A) FONDOS PROPIOS', 'V', 'V. Resultados de ejercicios anteriores', '2', '2. Resultados negativos de ejercicios anteriores'); +INSERT INTO CONT_BALANCES VALUES (158,'P-A-V-3', 'PASIVO', 'A', 'A) FONDOS PROPIOS', 'V', 'V. Resultados de ejercicios anteriores', '3', '3. Aportaciones de socios para compensacin de prdidas'); +INSERT INTO CONT_BALANCES VALUES (159,'P-A-VI', 'PASIVO', 'A', 'A) FONDOS PROPIOS', 'VI', 'VI. Prdidas y ganancias ( Beneficio o Prdida )', '', ''); +INSERT INTO CONT_BALANCES VALUES (160,'P-A-VII', 'PASIVO', 'A', 'A) FONDOS PROPIOS', 'VII', 'VII. Dividendo a cuenta entregado en el ejercicio', '', ''); +INSERT INTO CONT_BALANCES VALUES (161,'P-A-VIII', 'PASIVO', 'A', 'A) FONDOS PROPIOS', 'VIII', 'VIII. Acciones propias para reduccin de capital', '', ''); +INSERT INTO CONT_BALANCES VALUES (162,'P-B', 'PASIVO', 'B', 'B) INGRESOS A DISTRIBUIR EN VARIOS EJERCICIOS', '', '', '', ''); +INSERT INTO CONT_BALANCES VALUES (163,'P-B-I', 'PASIVO', 'B', 'B) INGRESOS A DISTRIBUIR EN VARIOS EJERCICIOS', 'I', '1. Subvenciones de capital', '', ''); +INSERT INTO CONT_BALANCES VALUES (164,'P-B-II', 'PASIVO', 'B', 'B) INGRESOS A DISTRIBUIR EN VARIOS EJERCICIOS', 'II', '2. Diferencias positivas de cambio', '', ''); +INSERT INTO CONT_BALANCES VALUES (165,'P-B-III', 'PASIVO', 'B', 'B) INGRESOS A DISTRIBUIR EN VARIOS EJERCICIOS', 'III', '3. Otros ingresos a distribuir en varios ejercicios', '', ''); +INSERT INTO CONT_BALANCES VALUES (166,'P-B-IV', 'PASIVO', 'B', 'B) INGRESOS A DISTRIBUIR EN VARIOS EJERCICIOS', 'IV', '4. Ingresos fiscales a distribuir en varios ejercicios', '', ''); +INSERT INTO CONT_BALANCES VALUES (167,'P-C', 'PASIVO', 'C', 'C) PROVISIONES PARA RIESGOS Y GASTOS', '', '', '', ''); +INSERT INTO CONT_BALANCES VALUES (168,'P-C-I', 'PASIVO', 'C', 'C) PROVISIONES PARA RIESGOS Y GASTOS', 'I', '1. Provisiones para pensiones y obligaciones similares', '', ''); +INSERT INTO CONT_BALANCES VALUES (169,'P-C-II', 'PASIVO', 'C', 'C) PROVISIONES PARA RIESGOS Y GASTOS', 'II', '2. Provisiones para impuestos', '', ''); +INSERT INTO CONT_BALANCES VALUES (170,'P-C-III', 'PASIVO', 'C', 'C) PROVISIONES PARA RIESGOS Y GASTOS', 'III', '3. Otras provisiones', '', ''); +INSERT INTO CONT_BALANCES VALUES (171,'P-C-IV', 'PASIVO', 'C', 'C) PROVISIONES PARA RIESGOS Y GASTOS', 'IV', '4. Fondo de reversin', '', ''); +INSERT INTO CONT_BALANCES VALUES (172,'P-D', 'PASIVO', 'D', 'D) ACREEDORES A LARGO PLAZO', '', '', '', ''); +INSERT INTO CONT_BALANCES VALUES (173,'P-D-I', 'PASIVO', 'D', 'D) ACREEDORES A LARGO PLAZO', 'I', 'I. Emisiones de obligaciones y otros valores negociables', '', ''); +INSERT INTO CONT_BALANCES VALUES (174,'P-D-I-1', 'PASIVO', 'D', 'D) ACREEDORES A LARGO PLAZO', 'I', 'I. Emisiones de obligaciones y otros valores negociables', '1', '1. Obligaciones no convertibles'); +INSERT INTO CONT_BALANCES VALUES (175,'P-D-I-2', 'PASIVO', 'D', 'D) ACREEDORES A LARGO PLAZO', 'I', 'I. Emisiones de obligaciones y otros valores negociables', '2', '2. Obligaciones convertibles'); +INSERT INTO CONT_BALANCES VALUES (176,'P-D-I-3', 'PASIVO', 'D', 'D) ACREEDORES A LARGO PLAZO', 'I', 'I. Emisiones de obligaciones y otros valores negociables', '3', '3. Otras deudas representadas en valores negociables'); +INSERT INTO CONT_BALANCES VALUES (177,'P-D-II', 'PASIVO', 'D', 'D) ACREEDORES A LARGO PLAZO', 'II', 'II. Deudas con entidades de crdito', '', ''); +INSERT INTO CONT_BALANCES VALUES (178,'P-D-II-1', 'PASIVO', 'D', 'D) ACREEDORES A LARGO PLAZO', 'II', 'II. Deudas con entidades de crdito', '1', '1. Deudas a largo plazo con entidades de crdito'); +INSERT INTO CONT_BALANCES VALUES (179,'P-D-II-2', 'PASIVO', 'D', 'D) ACREEDORES A LARGO PLAZO', 'II', 'II. Deudas con entidades de crdito', '2', '2. Acreedores por arrendamiento financiero a largo plazo'); +INSERT INTO CONT_BALANCES VALUES (180,'P-D-III', 'PASIVO', 'D', 'D) ACREEDORES A LARGO PLAZO', 'III', 'III. Deudas con empresas del grupo y asociadas', '', ''); +INSERT INTO CONT_BALANCES VALUES (181,'P-D-III-1', 'PASIVO', 'D', 'D) ACREEDORES A LARGO PLAZO', 'III', 'III. Deudas con empresas del grupo y asociadas', '1', '1. Deudas con empresas del grupo'); +INSERT INTO CONT_BALANCES VALUES (182,'P-D-III-2', 'PASIVO', 'D', 'D) ACREEDORES A LARGO PLAZO', 'III', 'III. Deudas con empresas del grupo y asociadas', '2', '2. Deudas con empresas asociadas'); +INSERT INTO CONT_BALANCES VALUES (183,'P-D-IV', 'PASIVO', 'D', 'D) ACREEDORES A LARGO PLAZO', 'IV', 'IV. Otros acreedores', '', ''); +INSERT INTO CONT_BALANCES VALUES (184,'P-D-IV-1', 'PASIVO', 'D', 'D) ACREEDORES A LARGO PLAZO', 'IV', 'IV. Otros acreedores', '1', '1. Deudas representadas por efectos a pagar'); +INSERT INTO CONT_BALANCES VALUES (185,'P-D-IV-2', 'PASIVO', 'D', 'D) ACREEDORES A LARGO PLAZO', 'IV', 'IV. Otros acreedores', '2', '2. Otras deudas'); +INSERT INTO CONT_BALANCES VALUES (186,'P-D-IV-3', 'PASIVO', 'D', 'D) ACREEDORES A LARGO PLAZO', 'IV', 'IV. Otros acreedores', '3', '3. Fianzas y depsitos recibidos a largo plazo'); +INSERT INTO CONT_BALANCES VALUES (187,'P-D-IV-4', 'PASIVO', 'D', 'D) ACREEDORES A LARGO PLAZO', 'IV', 'IV. Otros acreedores', '4', '4. Administraciones pblicas a largo plazo'); +INSERT INTO CONT_BALANCES VALUES (188,'P-D-V', 'PASIVO', 'D', 'D) ACREEDORES A LARGO PLAZO', 'V', 'V. Desembolsos pendientes sobre acciones no exigidos', '', ''); +INSERT INTO CONT_BALANCES VALUES (189,'P-D-V-1', 'PASIVO', 'D', 'D) ACREEDORES A LARGO PLAZO', 'V', 'V. Desembolsos pendientes sobre acciones no exigidos', '1', '1. De empresas del grupo'); +INSERT INTO CONT_BALANCES VALUES (190,'P-D-V-2', 'PASIVO', 'D', 'D) ACREEDORES A LARGO PLAZO', 'V', 'V. Desembolsos pendientes sobre acciones no exigidos', '2', '2. De empresas asociadas'); +INSERT INTO CONT_BALANCES VALUES (191,'P-D-V-3', 'PASIVO', 'D', 'D) ACREEDORES A LARGO PLAZO', 'V', 'V. Desembolsos pendientes sobre acciones no exigidos', '3', '3. De otras empresas'); +INSERT INTO CONT_BALANCES VALUES (192,'P-D-VI', 'PASIVO', 'D', 'D) ACREEDORES A LARGO PLAZO', 'VI', 'VI. Acreedores por operaciones de trfico a largo plazo', '', ''); +INSERT INTO CONT_BALANCES VALUES (193,'P-E', 'PASIVO', 'E', 'E) ACREEDORES A CORTO PLAZO', '', '', '', ''); +INSERT INTO CONT_BALANCES VALUES (194,'P-E-I', 'PASIVO', 'E', 'E) ACREEDORES A CORTO PLAZO', 'I', 'I. Emisiones de obligaciones y otros valores negociables', '', ''); +INSERT INTO CONT_BALANCES VALUES (195,'P-E-I-1', 'PASIVO', 'E', 'E) ACREEDORES A CORTO PLAZO', 'I', 'I. Emisiones de obligaciones y otros valores negociables', '1', '1. Obligaciones no convertibles'); +INSERT INTO CONT_BALANCES VALUES (196,'P-E-I-2', 'PASIVO', 'E', 'E) ACREEDORES A CORTO PLAZO', 'I', 'I. Emisiones de obligaciones y otros valores negociables', '2', '2. Obligaciones convertibles'); +INSERT INTO CONT_BALANCES VALUES (197,'P-E-I-3', 'PASIVO', 'E', 'E) ACREEDORES A CORTO PLAZO', 'I', 'I. Emisiones de obligaciones y otros valores negociables', '3', '3. Otras deudas representadas en valores negociables'); +INSERT INTO CONT_BALANCES VALUES (198,'P-E-I-4', 'PASIVO', 'E', 'E) ACREEDORES A CORTO PLAZO', 'I', 'I. Emisiones de obligaciones y otros valores negociables', '4', '4. Intereses de obligaciones y otros valores'); +INSERT INTO CONT_BALANCES VALUES (199,'P-E-II', 'PASIVO', 'E', 'E) ACREEDORES A CORTO PLAZO', 'II', 'II. Deudas con entidades de crdito', '', ''); +INSERT INTO CONT_BALANCES VALUES (200,'P-E-II-1', 'PASIVO', 'E', 'E) ACREEDORES A CORTO PLAZO', 'II', 'II. Deudas con entidades de crdito', '1', '1. Prstamos y otras deudas'); +INSERT INTO CONT_BALANCES VALUES (201,'P-E-II-2', 'PASIVO', 'E', 'E) ACREEDORES A CORTO PLAZO', 'II', 'II. Deudas con entidades de crdito', '2', '2. Deudas por intereses'); +INSERT INTO CONT_BALANCES VALUES (202,'P-E-II-3', 'PASIVO', 'E', 'E) ACREEDORES A CORTO PLAZO', 'II', 'II. Deudas con entidades de crdito', '3', '3. Acreedores por arrendamiento financiero a corto plazo'); +INSERT INTO CONT_BALANCES VALUES (203,'P-E-III', 'PASIVO', 'E', 'E) ACREEDORES A CORTO PLAZO', 'III', 'III. Deudas con empresas del grupo y asociadas a corto plazo', '', ''); +INSERT INTO CONT_BALANCES VALUES (204,'P-E-III-1', 'PASIVO', 'E', 'E) ACREEDORES A CORTO PLAZO', 'III', 'III. Deudas con empresas del grupo y asociadas a corto plazo', '1', '1. Deudas con empresas del grupo'); +INSERT INTO CONT_BALANCES VALUES (205,'P-E-III-2', 'PASIVO', 'E', 'E) ACREEDORES A CORTO PLAZO', 'III', 'III. Deudas con empresas del grupo y asociadas a corto plazo', '2', '2. Deudas con empresas asociadas'); +INSERT INTO CONT_BALANCES VALUES (206,'P-E-IV', 'PASIVO', 'E', 'E) ACREEDORES A CORTO PLAZO', 'IV', 'IV. Acreedores comerciales', '', ''); +INSERT INTO CONT_BALANCES VALUES (207,'P-E-IV-1', 'PASIVO', 'E', 'E) ACREEDORES A CORTO PLAZO', 'IV', 'IV. Acreedores comerciales', '1', '1. Anticipos recibidos por pedidos'); +INSERT INTO CONT_BALANCES VALUES (208,'P-E-IV-2', 'PASIVO', 'E', 'E) ACREEDORES A CORTO PLAZO', 'IV', 'IV. Acreedores comerciales', '2', '2. Deudas por compras o prestaciones de servicios'); +INSERT INTO CONT_BALANCES VALUES (209,'P-E-IV-3', 'PASIVO', 'E', 'E) ACREEDORES A CORTO PLAZO', 'IV', 'IV. Acreedores comerciales', '3', '3. Deudas representadas por efectos a pagar'); +INSERT INTO CONT_BALANCES VALUES (210,'P-E-V', 'PASIVO', 'E', 'E) ACREEDORES A CORTO PLAZO', 'V', 'V. Otras deudas no comerciales', '', ''); +INSERT INTO CONT_BALANCES VALUES (211,'P-E-V-1', 'PASIVO', 'E', 'E) ACREEDORES A CORTO PLAZO', 'V', 'V. Otras deudas no comerciales', '1', '1. Administraciones pblicas'); +INSERT INTO CONT_BALANCES VALUES (212,'P-E-V-2', 'PASIVO', 'E', 'E) ACREEDORES A CORTO PLAZO', 'V', 'V. Otras deudas no comerciales', '2', '2. Deudas representadas por efectos a pagar'); +INSERT INTO CONT_BALANCES VALUES (213,'P-E-V-3', 'PASIVO', 'E', 'E) ACREEDORES A CORTO PLAZO', 'V', 'V. Otras deudas no comerciales', '3', '3. Otras deudas'); +INSERT INTO CONT_BALANCES VALUES (214,'P-E-V-4', 'PASIVO', 'E', 'E) ACREEDORES A CORTO PLAZO', 'V', 'V. Otras deudas no comerciales', '4', '4. Remuneraciones pendientes de pago'); +INSERT INTO CONT_BALANCES VALUES (215,'P-E-V-5', 'PASIVO', 'E', 'E) ACREEDORES A CORTO PLAZO', 'V', 'V. Otras deudas no comerciales', '5', '5. Fianzas y depsitos recibidos a corto plazo'); +INSERT INTO CONT_BALANCES VALUES (216,'P-E-VI', 'PASIVO', 'E', 'E) ACREEDORES A CORTO PLAZO', 'VI', 'VI. Provisiones para operaciones de trfico', '', ''); +INSERT INTO CONT_BALANCES VALUES (217,'P-E-VII', 'PASIVO', 'E', 'E) ACREEDORES A CORTO PLAZO', 'VII', 'VII. Ajustes por periodificacin', '', ''); +INSERT INTO CONT_BALANCES VALUES (218,'P-F', 'PASIVO', 'F', 'F) PROVISIONES PARA RIESGOS Y GASTOS A CORTO PLAZO', '', '', '', ''); +INSERT INTO CONT_BALANCES VALUES (219,'P-G', 'PASIVO', 'G', 'TOTAL PASIVO', '', '', '', ''); + + +/*********************************************************************************/ +/*********************************************************************************/ +/*** CONT_CUENTAS **************************************************************/ +/*********************************************************************************/ +/*********************************************************************************/ + +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (2, '100', NULL, 2, '100. Capital social', 146, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (3, '1000', NULL, 2, '1000. Capital ordinario', 146, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (4, '1001', NULL, 2, '1001. Capital privilegiado', 146, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (5, '1002', NULL, 2, '1002. Capital sin derecho a voto', 146, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (6, '1003', NULL, 2, '1003. Capital con derechos restringidos', 146, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (7, '101', NULL, 2, '101. Fondo social', 146, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (8, '102', NULL, 2, '102. Capital', 146, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (9, '110', NULL, 3, '110. Prima de emision de acciones', 147, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (10, '111', NULL, 3, '111. Reservas de revalorizacin', 148, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (11, '112', NULL, 3, '112. Reserva legal', 150, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (12, '113', NULL, 3, '113. Reservas especiales', 154, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (13, '114', NULL, 3, '114. Reservas para acciones de la sociedad dominante', 152, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (14, '115', NULL, 3, '115. Reservas para acciones propias', 151, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (15, '116', NULL, 3, '116. Reservas estatutarias', 153, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (16, '117', NULL, 3, '117. Reservas voluntarias', 154, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (17, '118', NULL, 3, '118. Reserva por capital amortizado', 154, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (18, '119', NULL, 3, '119. Diferencias por ajuste del capital a euros', 154, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (19, '120', NULL, 4, '120. Remanente', 156, 17); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (20, '121', NULL, 4, '121. Resultados negativos de ejercicios anteriores', 157, 17); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (21, '122', NULL, 4, '122. Aportaciones de socios para compensacin de prdidas', 158, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (22, '129', NULL, 4, '129. Prdidas y Ganancias', 159, 19); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (23, '130', NULL, 5, '130. Subvenciones oficiales de capital', 163, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (24, '1300', NULL, 5, '1300. Subvenciones del Estado', 163, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (25, '1301', NULL, 5, '1301. Subvenciones de otras Administraciones Pblicas', 163, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (26, '131', NULL, 5, '131. Subvenciones de capital', 163, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (27, '135', NULL, 5, '135. Ingresos por intereses diferidos', 165, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (28, '136', NULL, 5, '136. Diferencias positivas en moneda extranjera', 164, 6); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (29, '137', NULL, 5, '137. Ingresos fiscales por diferencias permantes a distribuir en varios ejercicios', 166, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (30, '138', NULL, 5, '138. Ingresos fiscales por deducciones y bonificaciones fiscales a distribuir en varios ejercicios', 166, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (31, '140', NULL, 6, '140. Provisin para pensiones y obligaciones similares', 168, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (32, '141', NULL, 6, '141. Provisin para impuestos', 169, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (33, '142', NULL, 6, '142. Provisin para responsabilidades', 170, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (34, '143', NULL, 6, '143. Provisin para grandes reparaciones', 170, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (35, '144', NULL, 6, '144. Fondo de reversin', 171, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (36, '150', NULL, 7, '150. Obligaciones y bonos', 174, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (37, '1500', NULL, 7, '1500. Obligaciones y bonos simples', 174, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (38, '1501', NULL, 7, '1501. Obligaciones y bonos garantizados', 174, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (39, '1502', NULL, 7, '1502. Obligaciones y bonos subordinados', 174, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (40, '1503', NULL, 7, '1503. Obligaciones y bonos cupn cero', 174, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (41, '1504', NULL, 7, '1504. Obligaciones y bonos con opcin de adquisicin de acciones', 174, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (42, '1505', NULL, 7, '1505. Obligaciones y bonos con participacin en beneficios', 174, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (43, '151', NULL, 7, '151. Obligaciones y bonos convertibles', 175, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (44, '155', NULL, 7, '155. Deudas representadas en otros valores negociables', 176, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (45, '160', NULL, 8, '160. Deudas a largo plazo con empresas del grupo', 181, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (46, '1600', NULL, 8, '1600. Prstamos a largo plazo de empresas del grupo', 181, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (47, '1608', NULL, 8, '1608. Deudas a l/p con empresas del grupo por efecto impositivo', 181, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (48, '1609', NULL, 8, '1609. Otras deudas a largo plazo con empresas del grupo', 181, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (49, '161', NULL, 8, '161. Deudas a largo plazo con empresas asociadas', 182, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (50, '162', NULL, 8, '162. Deudas a l/p con entidades de crdito del grupo', 181, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (51, '163', NULL, 8, '163. Deudas a l/p con entidades de crdito asociadas', 182, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (52, '164', NULL, 8, '164. Proveedores de inmovilizado a l/p, empresas grupo', 181, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (53, '165', NULL, 8, '165. Proveedores de inmovilizado l/p, empresas asociadas', 182, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (54, '170', NULL, 9, '170. Deudas a largo plazo con entidades de crdito', 178, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (55, '1700', NULL, 9, '1700. Prstamos a largo plazo de entidades de crdito', 178, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (56, '1709', NULL, 9, '1709. Otras deudas a largo plazo con entidades de crdito', 178, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (57, '171', NULL, 9, '171. Deudas a largo plazo', 185, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (58, '172', NULL, 9, '172. Deudas a largo plazo transformables en subvenciones', 185, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (59, '173', NULL, 9, '173. Proveedores de inmovilizado a largo plazo', 185, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (60, '174', NULL, 9, '174. Efectos a pagar a largo plazo', 184, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (61, '180', NULL, 10, '180. Fianzas recibidas a largo plazo', 186, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (62, '185', NULL, 10, '185. Depsitos recibidos a largo plazo', 186, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (63, '190', NULL, 11, '190. Accionistas por desembolsos no exigidos', 2, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (64, '191', NULL, 11, '191. Accionistas por desembolsos no exigidos, empresas del grupo', 2, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (65, '192', NULL, 11, '192. Accionistas por desembolsos no exigidos, empresas asociadas', 2, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (66, '193', NULL, 11, '193. Accionistas por aportaciones no dinerarias pendientes', 2, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (67, '194', NULL, 11, '194. Accionistas por aportaciones no dinerarias pendientes, empresas del grupo', 2, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (68, '195', NULL, 11, '195. Accionistas por aportaciones no dinerarias pendientes, empresas asociadas', 2, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (69, '196', NULL, 11, '196. Socios, parte no desembolsada', 2, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (70, '198', NULL, 11, '198. Acciones propias en situaciones especiales', 33, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (71, '199', NULL, 11, '199. Acciones propias para reduccin de capital', 161, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (72, '200', NULL, 13, '200. Gastos de constitucin', 4, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (73, '201', NULL, 13, '201. Gastos de primer establecimiento', 4, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (74, '202', NULL, 13, '202. Gastos de ampliacin de capital', 4, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (75, '210', NULL, 14, '210. Gastos de investigacin y desarrollo', 6, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (76, '2100', NULL, 14, '2100. Gastos de I+D en proyectos no terminados', 6, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (77, '2101', NULL, 14, '2101. Gastos de I+D en proyectos terminados', 6, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (78, '211', NULL, 14, '211. Concesiones administrativas', 7, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (79, '212', NULL, 14, '212. Propiedad industrial', 7, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (80, '213', NULL, 14, '213. Fondo de comercio', 8, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (81, '214', NULL, 14, '214. Derechos de traspaso', 9, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (82, '215', NULL, 14, '215. Aplicaciones informticas', 10, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (83, '217', NULL, 14, '217. Derechos sobre bienes en rgimen de arrendamiento financiero', 11, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (84, '219', NULL, 14, '219. Anticipos para inmovilizaciones inmateriales', 12, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (85, '220', NULL, 15, '220. Terrenos y bienes naturales', 16, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (86, '221', NULL, 15, '221. Construcciones', 16, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (87, '222', NULL, 15, '222. Instalaciones tcnicas', 17, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (88, '223', NULL, 15, '223. Maquinaria', 17, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (89, '224', NULL, 15, '224. Utillaje', 18, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (90, '225', NULL, 15, '225. Otras instalaciones', 18, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (91, '226', NULL, 15, '226. Mobiliario', 18, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (92, '227', NULL, 15, '227. Equipos para procesos de informacin', 20, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (93, '228', NULL, 15, '228. Elementos de transporte', 20, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (94, '229', NULL, 15, '229. Otro inmovilizado material', 20, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (95, '230', NULL, 16, '230. Adaptacin de terrenos y de bienes naturales', 19, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (96, '231', NULL, 16, '231. Construcciones en curso', 19, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (97, '232', NULL, 16, '232. Instalaciones tcnicas en montaje', 19, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (98, '233', NULL, 16, '233. Maquinaria en montaje', 19, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (99, '237', NULL, 16, '237. Equipos para procesos de informacin en montaje', 19, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (100, '239', NULL, 16, '239. Anticipos para inmovilizaciones materiales', 19, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (101, '240', NULL, 17, '240. Participaciones en empresas del grupo', 24, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (102, '241', NULL, 17, '241. Participaciones en empresas asociadas', 26, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (103, '242', NULL, 17, '242. Valores de renta fija de empresas del grupo', 25, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (104, '243', NULL, 17, '243. Valores de renta fija de empresas asociadas', 27, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (105, '244', NULL, 17, '244. Crditos a largo plazo a empresas del grupo', 25, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (106, '2448', NULL, 17, '2448. Crditos a l/p con empresas del grupo por efecto impositivo', 25, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (107, '245', NULL, 17, '245. Crditos a largo plazo a empresas asociadas', 27, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (108, '246', NULL, 17, '246. Intereses a l/p de inversiones financieras en empresas del grupo', 25, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (109, '247', NULL, 17, '247. Intereses a l/p de inversiones financieras en empresas asociadas', 27, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (110, '248', NULL, 17, '248. Desembolsos pendientes sobre acciones de empresas del grupo', 189, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (111, '249', NULL, 17, '249. Desembolsos pendientes sobre acciones de empresas asociadas', 190, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (112, '250', NULL, 18, '250. Inversiones financieras permanentes en capital', 28, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (113, '2500', NULL, 18, '2500. Inversiones financieras permantes en acciones con cotizacin en mercado secundario organizado', 28, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (114, '2501', NULL, 18, '2501. Inversiones financieras permantes en acciones sin cotizacin en mercado secundario organizado', 28, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (115, '2502', NULL, 18, '2502. Otras inversiones financieras en capital', 28, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (116, '251', NULL, 18, '251. Valores de renta fija', 28, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (117, '2158', NULL, 14, '2158. Participacin en Fondos de Inversin en Activos del Mercado Monetario a l/p', 28, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (118, '252', NULL, 18, '252. Crditos a largo plazo', 29, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (119, '253', NULL, 18, '253. Crditos a l/p por enajenacin de inmovilizado', 29, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (120, '254', NULL, 18, '254. Creditos a largo plazo al personal', 29, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (121, '256', NULL, 18, '256. Intereses a largo plazo de valores de renta fija', 28, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (122, '257', NULL, 18, '257. Intereses a largo plazo de crditos', 29, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (123, '258', NULL, 18, '258. Imposiciones a largo plazo', 29, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (124, '259', NULL, 18, '259. Desembolsos pendientes sobre acciones', 191, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (125, '260', NULL, 19, '260. Fianzas constituidas a largo plazo', 30, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (126, '265', NULL, 19, '265. Depositos constituidos a largo plazo', 30, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (127, '270', NULL, 20, '270. Gastos de formalizacin de deudas', 35, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (128, '271', NULL, 20, '271. Gastos por intereses diferidos de valores negociables', 35, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (129, '272', NULL, 20, '272. Gastos por intereses diferidos', 35, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (130, '281', NULL, 21, '281. Amortizacin acumulada del inmovilizado inmaterial', 14, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (131, '2810', NULL, 21, '2810. Amortizacin acumulada de gastos de I+D', 14, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (132, '2811', NULL, 21, '2811. Amortizacin acumulada de concesiones administrativas', 14, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (133, '2812', NULL, 21, '2812. Amortizacin acumulada de propiedad industrial', 14, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (134, '2813', NULL, 21, '2813. Amortizacin acumulada de fondo de comercio', 14, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (135, '2814', NULL, 21, '2814. Amortizacin acumulada de derechos de traspaso', 14, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (136, '2815', NULL, 21, '2815. Amortizacin acumulada de aplicaciones informticas', 14, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (137, '2817', NULL, 21, '2817. Amortizacin acumulada de derechos sobre bienes en rgimen de arrendamiento financiero', 14, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (138, '282', NULL, 21, '282. Amortizacin acumulada del inmovilizado material', 22, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (139, '2821', NULL, 21, '2821. Amortizacin acumulada de construcciones', 22, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (140, '2822', NULL, 21, '2822. Amortizacin acumulada de instalaciones tcnicas', 22, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (141, '2823', NULL, 21, '2823. Amortizacin acumulada de maquinaria', 22, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (142, '2824', NULL, 21, '2824. Amortizacin acumulada de utillaje', 22, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (143, '2825', NULL, 21, '2825. Amortizacin acumulada de otras instalaciones', 22, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (144, '2826', NULL, 21, '2826. Amortizacin acumulada de mobiliario', 22, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (145, '2827', NULL, 21, '2827. Amortizacin acumulada de equipos para procesos informticos', 22, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (146, '2828', NULL, 21, '2828. Amortizacin acumulada de elementos de transporte', 22, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (147, '2829', NULL, 21, '2829. Amortizacin acumulada de otro inmovilizado material', 22, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (148, '291', NULL, 22, '291. Provisin por depreciacin inmovilizado inmaterial', 13, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (149, '292', NULL, 22, '292. Provisin por depreciacin inmovilizado material', 21, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (150, '293', NULL, 22, '293. Provisin por depreciacin valores negociables l/p de empresas del grupo', 31, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (151, '2930', NULL, 22, '2930. Provisin por depreciacin participaciones en capital l/p de empresas del grupo', 31, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (152, '2935', NULL, 22, '2935. Provisin por depreciacin valores renta fija l/p de empresas del grupo', 31, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (153, '294', NULL, 22, '294. Provisin por depreciacin valores negociables l/p de empresas asociadas', 31, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (154, '2941', NULL, 22, '2941. Provisin por depreciacin participaciones en capital l/p de empresas asociadas', 31, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (155, '2946', NULL, 22, '2946. Provisin por depreciacin valores renta fija l/p de empresas asociadas', 31, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (156, '295', NULL, 22, '295. Provisin para insolvencias de creditos l/p a empresas del grupo', 31, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (157, '296', NULL, 22, '296. Provisin para insolvencias de creditos l/p a empresasa asociadas', 31, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (158, '297', NULL, 22, '297. Provisin por depreciacin de valores negociables l/p', 31, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (159, '298', NULL, 22, '298. Provisin para insolvencias de crditos a l/p', 31, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (160, '300', NULL, 24, '300. Mercaderias A', 39, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (161, '301', NULL, 24, '301. Mercaderias B', 39, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (162, '310', NULL, 25, '310. Materias primas A', 40, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (163, '311', NULL, 25, '311. Materias primas B', 40, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (164, '320', NULL, 26, '320. Elementos y conjuntos incorporables', 40, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (165, '321', NULL, 26, '321. Combustibles', 40, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (166, '322', NULL, 26, '322. Repuestos', 40, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (167, '325', NULL, 26, '325. Materiales diversos', 40, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (168, '326', NULL, 26, '326. Embalajes', 40, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (169, '327', NULL, 26, '327. Envases', 40, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (170, '328', NULL, 26, '328. Material de oficina', 40, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (171, '330', NULL, 27, '330. Productos en curso A', 41, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (172, '331', NULL, 27, '331. Productos en curso B', 41, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (173, '340', NULL, 28, '340. Productos semiterminados A', 41, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (174, '341', NULL, 28, '341. Productos semiterminados B', 41, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (175, '350', NULL, 29, '350. Productos terminados A', 42, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (176, '351', NULL, 29, '351. Productos terminados B', 42, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (177, '360', NULL, 30, '360. Subproductos A', 43, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (178, '361', NULL, 30, '361. Subproductos B', 43, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (179, '365', NULL, 30, '365. Residuos A', 43, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (180, '366', NULL, 30, '366. Residuos B', 43, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (181, '368', NULL, 30, '368. Materiales recuperados A', 43, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (182, '369', NULL, 30, '369. Materiales recuperados B', 43, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (183, '390', NULL, 31, '390. Provisin por depreciacin de mercaderas', 45, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (184, '391', NULL, 31, '391. Provisin por depreciacin de materias primas', 45, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (185, '392', NULL, 31, '392. Provisin por depreciacin de otros aprovisionamientos', 45, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (186, '393', NULL, 31, '393. Provisin por depreciacin de productos en curso', 45, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (187, '394', NULL, 31, '394. Provisin por depreciacin de productos semiterminados', 45, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (188, '395', NULL, 31, '395. Provisin por depreciacin de productos terminado', 45, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (189, '396', NULL, 31, '396. Provisin por depreciacin de subproductos,residuos y materiales recuperados', 45, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (190, '400', NULL, 33, '400. Proveedores', 208, 18); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (191, '4004', NULL, 33, '4004. Proveedores (moneda extranjera)', 208, 18); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (192, '4009', NULL, 33, '4009. Proveedores facturas pendientes de recibir o formalizar', 208, 18); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (193, '401', NULL, 33, '401. Proveedores, efectos comerciales a pagar', 209, 18); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (194, '402', NULL, 33, '402. Proveedores, empresas del grupo', 204, 18); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (195, '4020', NULL, 33, '4020. Proveedores, empresas del grupo (euros)', 204, 18); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (196, '4021', NULL, 33, '4021. Efectos comerciales a pagar, empresas del grupo', 204, 18); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (197, '4024', NULL, 33, '4024. Proveedores, empresas del grupo (moneda extranjera', 204, 18); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (198, '4026', NULL, 33, '4026. Envases y embalajes a devolver a proveedores, empresas del grupo', 204, 18); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (199, '4029', NULL, 33, '4029. Proveedores, empresas del grupo,facturas pendientes de recibir o formalizar', 204, 18); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (200, '403', NULL, 33, '403. Proveedores, empresas asociadas', 205, 18); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (201, '406', NULL, 33, '406. Envases y embalajes a devolver a proveedores', 208, 18); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (202, '407', NULL, 33, '407. Anticipos a proveedores', 44, 18); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (203, '410', NULL, 34, '410. Acreedores por prestaciones de servicios', 208, 18); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (204, '4100', NULL, 34, '4100. Acreedores por prestaciones de servicios (euros)', 208, 18); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (205, '4104', NULL, 34, '4104. Acreedores por prestaciones de servicios (moneda extranjera)', 208, 18); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (206, '4109', NULL, 34, '4109. Acreedores por prestaciones de servicios,facturas pendientes de recibir o formalizar', 208, 18); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (207, '411', NULL, 34, '411. Acreedores, efectos comerciales a pagar', 209, 18); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (208, '419', NULL, 34, '419. Acreedores por operaciones en comn', 208, 18); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (209, '430', NULL, 35, '430. Clientes', 47, 4); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (210, '4304', NULL, 35, '4304. Clientes (moneda extranjera)', 47, 4); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (211, '4309', NULL, 35, '4309. Clientes, facturas pendientes de formalizar', 47, 4); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (212, '431', NULL, 35, '431. Clientes, efectos comerciales a cobrar', 47, 4); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (213, '4310', NULL, 35, '4310. Efectos comerciales en cartera', 47, 4); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (214, '4311', NULL, 35, '4311. Efectos comerciales descontados', 47, 4); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (215, '4312', NULL, 35, '4312. Efectos comerciales en gestin de cobro', 47, 4); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (216, '4315', NULL, 35, '4315. Efectos comerciales impagados', 47, 4); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (217, '432', NULL, 35, '432. Clientes, empresas del grupo', 48, 4); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (218, '4320', NULL, 35, '4320. Clientes, empresas del grupo (euros)', 48, 4); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (219, '4321', NULL, 35, '4321. Efectos comerciales a cobrar, empresas del grupo', 48, 4); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (220, '4324', NULL, 35, '4324. Clientes, empresas del grupo (moneda extranjera)', 48, 4); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (221, '4326', NULL, 35, '4326. Envases y embalajes a devolver a clientes, empresas del grupo', 48, 4); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (222, '4329', NULL, 35, '4329. Clientes, empresas del grupo, facturas pendientes formalizar', 48, 4); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (223, '433', NULL, 35, '433. Clientes, empresas asociadas', 49, 4); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (224, '435', NULL, 35, '435. Clientes de dudoso cobro', 47, 4); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (225, '436', NULL, 35, '436. Envases y embalajes a devolver por clientes', 47, 4); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (226, '437', NULL, 35, '437. Anticipos de clientes', 207, 4); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (227, '440', NULL, 36, '440. Deudores', 50, 4); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (228, '4400', NULL, 36, '4400. Deudores (euros)', 50, 4); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (229, '4404', NULL, 36, '4404. Deudores (moneda extranjera)', 50, 4); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (230, '4409', NULL, 36, '4409. Deudores, facturas pendientes de formalizar', 50, 4); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (231, '441', NULL, 36, '441. Deudores, efectos comerciales a cobrar', 50, 4); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (232, '4410', NULL, 36, '4410. Deudores, efectos comerciales en cartera', 50, 4); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (233, '4411', NULL, 36, '4411. Deudores, efectos comerciales descontados', 50, 4); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (234, '4412', NULL, 36, '4412. Deudores, efectos comerciales en gestin de cobro', 50, 4); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (235, '4415', NULL, 36, '4415. Deudores, efectos comerciales impagados', 50, 4); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (236, '445', NULL, 36, '445. Deudores de dudoso cobro', 50, 4); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (237, '449', NULL, 36, '449. Deudores por operaciones en comn', 50, 4); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (238, '460', NULL, 37, '460. Anticipos de remuneraciones', 51, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (239, '465', NULL, 37, '465. Remuneraciones pendientes de pago', 214, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (240, '470', NULL, 38, '470. Hacienda Pblica, deudor por diversos conceptos', 52, 12); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (241, '4700', NULL, 38, '4700. Hacienda Pblica, deudor por IVA', 52, 12); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (242, '4707', NULL, 38, '4707. Hacienda Pblica, deudor por IGIC', 52, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (243, '47070', NULL, 38, '47070. Hacienda Pblica, deudor por IGIC', 52, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (244, '47071', NULL, 38, '47071. Hacienda Pblica, deudor por IGIC rgimen transitorio, circulante', 52, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (245, '47072', NULL, 38, '47072. Hacienda Pblica, deudor por IGIC rgimen transitorio, inversin', 52, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (246, '4708', NULL, 38, '4708. Hacienda Pblica, deudor por subvenciones concedidas', 52, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (247, '4709', NULL, 38, '4709. Hacienda Pblica, deudor por devolucin impuestos', 52, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (248, '471', NULL, 38, '471. Organismos de la Seguridad Social, deudores', 52, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (249, '472', NULL, 38, '472. Hacienda Publica, IVA soportado', 52, 15); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (250, '4720', NULL, 38, '4720. IVA soportado', 52, 15); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (251, '4727', NULL, 38, '4727. IGIC soportado', 52, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (252, '473', NULL, 38, '473. Hacienda Pblica, retenciones y pagos a cuenta', 211, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (253, '4732', NULL, 38, '4732. Hacienda Pblica, retenciones y pagos a cuenta', 211, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (254, '474', NULL, 38, '474. Impuesto sobre beneficios anticipado y compensacin de prdidas', 52, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (255, '4740', NULL, 38, '4740. Impuesto sobre beneficios anticipado', 52, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (256, '4741', NULL, 38, '4741. Impuestos sobre beneficios anticipado a l/p', 52, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (257, '4745', NULL, 38, '4745. Crdito por prdidas a compensar del ejercicio....', 52, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (258, '4746', NULL, 38, '4746. Crdito por prdidas a compensar del ejercicio..a l/p', 52, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (259, '4748', NULL, 38, '4748. Impuesto sobre beneficios anticipado por operaciones intra-grupo', 52, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (260, '4749', NULL, 38, '4749. Crdito por perdidas a compensar en rgimen de declaracin consolidada del ejercicio...', 52, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (261, '475', NULL, 38, '475. Hacienda Pblica, acreedor por conceptos fiscales', 211, 11); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (262, '4750', NULL, 38, '4750. Hacienda Pblica, acreedor por IVA', 211, 11); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (263, '4751', NULL, 38, '4751. Hacienda Pblica, acreedor por retenciones practicadas', 211, 9); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (264, '4752', NULL, 38, '4752. Hacienda Pblica, acreedor por impuesto sobre sociedades', 211, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (265, '4757', NULL, 38, '4757. Hacienda Pblica, acreedor por IGIC', 211, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (266, '4758', NULL, 38, '4758. Hacienda Pblica, acreedor por subvenciones a reintegrar', 211, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (267, '476', NULL, 38, '476. Organismos de la Seguridad Social, acreedores', 211, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (268, '477', NULL, 38, '477. Hacienda Pblica, IVA repercutido', 211, 13); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (269, '4770', NULL, 38, '4770. IVA repercutido', 211, 13); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (270, '4777', NULL, 38, '4777. IGIC repercutido', 211, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (271, '479', NULL, 38, '479. Impuesto sobre beneficios diferido', 211, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (272, '4791', NULL, 38, '4791. Impuesto sobre beneficios diferido a l/p', 211, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (273, '4798', NULL, 38, '4798. Impuesto sobre beneficios diferido por operaciones intra-grupo', 211, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (274, '480', NULL, 39, '480. Gastos anticipados', 65, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (275, '485', NULL, 39, '485. Ingresos anticipados', 217, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (276, '490', NULL, 40, '490. Provisin para insolvencias de trfico', 53, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (277, '493', NULL, 40, '493. Provisin para insolvencias de trfico de empresas del grupo', 53, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (278, '494', NULL, 40, '494. Provisin para insolvencias de trfico de empresas asociadas', 53, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (279, '499', NULL, 40, '499. Provisin para otras operaciones de trfico', 216, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (280, '500', NULL, 42, '500. Obligaciones y bonos a corto plazo', 195, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (281, '501', NULL, 42, '501. Obligaciones y bonos convertibles a corto plazo', 196, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (282, '505', NULL, 42, '505. Deudas representadas otros valores negociables c/p', 197, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (283, '506', NULL, 42, '506. Intereses de emprstitos y otras emisiones anlogas', 198, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (284, '509', NULL, 42, '509. Valores negociables amortizados', 213, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (285, '5090', NULL, 42, '5090. Obligaciones y bonos amortizados', 213, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (286, '5091', NULL, 42, '5091. Obligaciones y bonos convertibles amortizados', 213, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (287, '5095', NULL, 42, '5095. Otros valores negociables amortizados', 213, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (288, '510', NULL, 43, '510. Deudas a corto plazo con empresas del grupo', 204, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (289, '5100', NULL, 43, '5100. Prstamos a corto plazo de empresas del grupo', 204, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (290, '5108', NULL, 43, '5108. Deudas a c/p con empresas del grupo por efectos impositivos', 204, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (291, '5109', NULL, 43, '5109. Otras deudas a corto plazo con empresas del grupo', 204, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (292, '511', NULL, 43, '511. Deudas a corto plazo con empresas asociadas', 205, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (293, '512', NULL, 43, '512. Deudas a c/p con entidades de crdito del grupo', 204, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (294, '5120', NULL, 43, '5120. Prstamos a c/p de entidades de crdito del grupo', 204, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (295, '5128', NULL, 43, '5128. Deudas por efectos descontados en entididades de crdito del grupo', 204, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (296, '5129', NULL, 43, '5129. Otras deudas c/p con entidades de crdito del grupo', 204, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (297, '513', NULL, 43, '513. Deudas a c/p con entidades de credito asociadas', 205, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (298, '514', NULL, 43, '514. Proveedores de inmovilizado a c/p, empresas del grupo', 204, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (299, '515', NULL, 43, '515. Proveedores de inmovilizado a c/p, empresas asociadas', 205, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (300, '516', NULL, 43, '516. Intereses a c/p de deudas con empresas del grupo', 204, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (301, '517', NULL, 43, '517. Intereses a c/p de deudas con empresas asociadas', 205, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (302, '520', NULL, 44, '520. Deudas a corto plazo con entidades de crdito', 200, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (303, '5200', NULL, 44, '5200. Prstamos a corto plazo de entidades de crdito', 200, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (304, '5201', NULL, 44, '5201. Deudas a corto plazo por crdito dispuesto', 200, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (305, '5208', NULL, 44, '5208. Deudas por efectos descontados', 200, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (306, '521', NULL, 44, '521. Deudas a corto plazo', 213, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (307, '523', NULL, 44, '523. Proveedores de inmovilizado a corto plazo', 213, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (308, '524', NULL, 44, '524. Efectos a pagar a corto plazo', 212, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (309, '525', NULL, 44, '525. Dividendo activo a pagar', 213, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (310, '526', NULL, 44, '526. Intereses a c/p de deudas con entidades de crdito', 201, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (311, '527', NULL, 44, '527. Intereses a corto plazo de deudas', 213, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (312, '530', NULL, 45, '530. Participaciones a c/p en empresas del grupo', 55, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (313, '531', NULL, 45, '531. Participaciones a c/p en empresas asociadas', 57, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (314, '532', NULL, 45, '532. Valores de renta fija a c/p de empresas del grupo', 56, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (315, '533', NULL, 45, '533. Valores de renta fija a c/p de empresas asociadas', 58, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (316, '534', NULL, 45, '534. Crditos a corto plazo a empresas del grupo', 56, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (317, '5348', NULL, 45, '5348. Crditos a c/p con empresas del grupo por efecto impositivo', 56, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (318, '535', NULL, 45, '535. Crditos a corto plazo a empresas asociadas', 58, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (319, '536', NULL, 45, '536. Intereses a c/p de inversiones financieras en empresas del grupo', 56, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (320, '5360', NULL, 45, '5360. Intereses c/p valores renta fija de empresas del grupo', 56, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (321, '5361', NULL, 45, '5361. Intereses c/p de crditos a empresas del grupo', 56, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (322, '537', NULL, 45, '537. Intereses a c/p de inversiones financieras en empresas asociadas', 58, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (323, '538', NULL, 45, '538. Desembolsos pendientes sobre acciones a c/p de empresas del grupo', 55, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (324, '539', NULL, 45, '539. Desembolsos pendientes sobre acciones a c/p de empresas asociadas', 57, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (325, '540', NULL, 46, '540. Inversiones financieras temporales en capital', 59, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (326, '5400', NULL, 46, '5400. Inversiones financieras temporales en acciones con cotizacin en mercado secundario organizado', 59, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (327, '5401', NULL, 46, '5401. Inversiones financieras temporales en acciones sin cotizacin en mercado secundario organizado', 59, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (328, '5409', NULL, 46, '5409. Otras inversiones financieras temporales en capital', 59, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (329, '541', NULL, 46, '541. Valores de renta fija a corto plazo', 59, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (330, '5418', NULL, 46, '5418. Participaciones en Fondos de Inversin en Activos del Mercado Monetario a c/p', 59, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (331, '542', NULL, 46, '542. Crditos a corto plazo', 60, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (332, '543', NULL, 46, '543. Creditos a c/p por enajenacin de inmovilizado', 60, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (333, '544', NULL, 46, '544. Crditos a corto plazo al personal', 51, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (334, '545', NULL, 46, '545. Dividendo a cobrar', 60, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (335, '546', NULL, 46, '546. Intereses a corto plazo de valores de renta fija', 59, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (336, '547', NULL, 46, '547. Intereses a corto plazo de crditos', 60, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (337, '548', NULL, 46, '548. Imposiciones a corto plazo', 60, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (338, '549', NULL, 46, '549. Desembolsos pendientes sobre acciones a corto plazo', 59, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (339, '550', NULL, 47, '550. Titular de la explotacin', 213, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (340, '551', NULL, 47, '551. Cuenta corriente con empresas del grupo', 48, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (341, '552', NULL, 47, '552. Cuenta corriente con empresas asociadas', 205, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (342, '553', NULL, 47, '553. Cuenta corriente con socios y administradores', 50, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (343, '555', NULL, 47, '555. Partidas pendientes de aplicacin', 50, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (344, '556', NULL, 47, '556. Desembolsos exigidos sobre acciones', 213, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (345, '5560', NULL, 47, '5560. Desembolsos exigidos sobre acciones de empresas del grupo', 213, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (346, '5561', NULL, 47, '5561. Desembolsos exigidos sobre acciones de empresas asociadas', 213, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (347, '5562', NULL, 47, '5562. Desembolsos exigidos sobre acciones de otras empresas', 213, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (348, '557', NULL, 47, '557. Dividendo activo a cuenta', 160, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (349, '558', NULL, 47, '558. Accionistas por desembolsos exigidos', 37, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (350, '560', NULL, 48, '560. Fianzas recibidas a corto plazo', 215, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (351, '561', NULL, 48, '561. Depsitos recibidos a corto plazo', 215, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (352, '565', NULL, 48, '565. Fianzas constituidas a corto plazo', 61, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (353, '566', NULL, 48, '566. Depsitos constituidos a corto plazo', 61, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (354, '570', NULL, 49, '570. Caja, euros', 64, 1); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (355, '571', NULL, 49, '571. Caja, moneda extranjera', 64, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (356, '572', NULL, 49, '572. Bancos e instituciones de crdito c/c. vista, euros', 64, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (357, '573', NULL, 49, '573. Bancos e instituciones de crdito c/c. vista, moneda extranjera', 64, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (358, '574', NULL, 49, '574. Bancos e instituciones de crdito, cuentas de ahorro, euros', 64, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (359, '575', NULL, 49, '575. Bancos e instituciones de crdito, cuentas de ahorro, moneda extranjera', 64, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (360, '580', NULL, 50, '580. Intereses pagados por anticipado', 65, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (361, '585', NULL, 50, '585. Intereses cobrados por anticipado', 217, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (362, '593', NULL, 51, '593. Provisin por depreciacin de valores negociables a c/p de empresas del grupo', 62, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (363, '594', NULL, 51, '594. Provisin por depreciacin de valores negociables a c/p de empresas asociadas', 62, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (364, '595', NULL, 51, '595. Provisin para insolvencias de crditos a c/p a empresas del grupo', 62, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (365, '596', NULL, 51, '596. Provisin para insolvencias de crditos a c/p a empresas asociadas', 62, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (366, '597', NULL, 51, '597. Provisin por depreciacin de valores negociables a c/p', 62, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (367, '598', NULL, 51, '598. Provisin para insolvencias de crditos a c/p', 62, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (368, '600', NULL, 53, '600. Compras de mercaderas', 71, 5); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (369, '601', NULL, 53, '601. Compras de materias primas', 72, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (370, '602', NULL, 53, '602. Compras de otros aprovisionamientos', 72, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (371, '607', NULL, 53, '607. Trabajos realizados por otras empresas', 73, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (372, '608', NULL, 53, '608. Devoluciones de compras y operaciones similares', 71, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (373, '6080', NULL, 53, '6080. Devoluciones de compras de mercaderas', 71, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (374, '6081', NULL, 53, '6081. Devoluciones de compras de materias primas', 72, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (375, '6082', NULL, 53, '6082. Devoluciones de compras de otros aprovisionamients', 72, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (376, '609', NULL, 53, '609. Rappels por compras', 71, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (377, '6090', NULL, 53, '6090. Rappels por compras de mercaderas', 71, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (378, '6091', NULL, 53, '6091. Rapels por compras de materias primas', 72, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (379, '6092', NULL, 53, '6092. Rappels por compras de otros aprovisionamientos', 72, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (380, '610', NULL, 54, '610. Variacin de existencias de mercaderas', 71, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (381, '611', NULL, 54, '611. Variacin de existencias de materias primas', 72, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (382, '612', NULL, 54, '612. Variacin de existencias de otros aprovisionamientos', 72, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (383, '620', NULL, 55, '620. Gastos en investigacin y desarrollo del ejercicio', 83, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (384, '621', NULL, 55, '621. Arrendamientos y cnones', 83, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (385, '622', NULL, 55, '622. Reparaciones y conservacin', 83, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (386, '623', NULL, 55, '623. Servicios de profesionales independientes', 83, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (387, '624', NULL, 55, '624. Transportes', 83, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (388, '625', NULL, 55, '625. Primas de seguros', 83, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (389, '626', NULL, 55, '626. Servicios bancarios y similares', 83, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (390, '627', NULL, 55, '627. Publicidad, propaganda y relaciones pblicas', 83, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (391, '628', NULL, 55, '628. Suministros', 83, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (392, '629', NULL, 55, '629. Otros servicios', 83, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (393, '630', NULL, 56, '630. Impuesto sobre beneficios', 104, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (394, '631', NULL, 56, '631. Otros tributos', 84, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (395, '632', NULL, 56, '632. Sociedades transparentes, efecto impositivo', 104, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (396, '6320', NULL, 56, '6320. Importes a cuenta no recuperables por entidades transparentes', 105, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (397, '6321', NULL, 56, '6321. Importes a cuenta no recuperables por agrupaciones de inters econmico', 104, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (398, '6323', NULL, 56, '6323. Ajustes negativos en la imposicin en sociedades transparentes', 104, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (399, '6328', NULL, 56, '6328. Ajustes positivos en la imposicin en sociedades transparentes', 104, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (400, '633', NULL, 56, '633. Ajustes negativos en imposicion sobre beneficios', 104, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (401, '634', NULL, 56, '634. Ajustes negativos en la imposicion indirecta', 84, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (402, '6341', NULL, 56, '6341. Ajustes negativos en IVA de circulante', 84, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (403, '6342', NULL, 56, '6342. Ajustes negativos en IVA de inversiones', 84, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (404, '6343', NULL, 56, '6343. Ajustes negativos en IGIC, de circulante', 84, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (405, '6344', NULL, 56, '6344. Ajustes negativos en IGIC, de inversin', 84, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (406, '635', NULL, 56, '635. Impuesto sobre beneficios extranjero', 105, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (407, '636', NULL, 56, '636. Devolucin de impuestos', 84, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (408, '637', NULL, 56, '637. Imposicin indirecta, regmenes especiales', 105, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (409, '6371', NULL, 56, '6371. Rgimen simplificado, IVA', 105, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (410, '6372', NULL, 56, '6372. Rgimen simplificado, IGIC', 105, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (411, '6373', NULL, 56, '6373. Rgimen de la agricultura,ganadera y pesca, IVA', 105, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (412, '6374', NULL, 56, '6374. Rgimen de la agricultura y ganadera, IGIC', 105, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (413, '638', NULL, 56, '638. Ajustes positivos en imposicion sobre beneficios', 104, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (414, '639', NULL, 56, '639. Ajustes positivos en la imposicion indirecta', 84, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (415, '6391', NULL, 56, '6391. Ajustes positivos en IVA de circulante', 84, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (416, '6392', NULL, 56, '6392. Ajustes positivos en IVA de inversiones', 84, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (417, '6393', NULL, 56, '6393. Ajustes positivos en IGIC de circulante', 84, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (418, '6394', NULL, 56, '6394. Ajustes positivos en IGIC de inversin', 84, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (419, '640', NULL, 57, '640. Sueldos y salarios', 75, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (420, '641', NULL, 57, '641. Indemnizaciones', 75, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (421, '642', NULL, 57, '642. Seguridad Social a cargo de la empresa', 76, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (422, '643', NULL, 57, '643. Aportaciones a sistemas complementarios pensiones', 76, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (423, '649', NULL, 57, '649. Otros gastos sociales', 76, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (424, '650', NULL, 58, '650. Prdidas de crditos comerciales incobrables', 80, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (425, '651', NULL, 58, '651. Resultados de operaciones en comn', 85, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (426, '6510', NULL, 58, '6510. Beneficio transferido (gestor)', 85, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (427, '6511', NULL, 58, '6511. Prdida soportada (partcipe o asociado no gestor)', 85, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (428, '659', NULL, 58, '659. Otras prdidas en gestin corriente', 85, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (429, '661', NULL, 59, '661. Intereses de obligaciones y bonos', 89, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (430, '6610', NULL, 59, '6610. Intereses de obligaciones y bonos l/p en empresas del grupo', 89, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (431, '6611', NULL, 59, '6611. Intereses de obligaciones y bonos l/p en empresas asociadas', 90, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (432, '6613', NULL, 59, '6613. Intereses de obligaciones y bonos l/p en otras empresas', 91, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (433, '6615', NULL, 59, '6615. Intereses de obligaciones y bonos c/p en empresas del grupo', 89, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (434, '6616', NULL, 59, '6616. Intereses de obligaciones y bonos c/p en empresas asociadas', 90, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (435, '6618', NULL, 59, '6618. Intereses de obligaciones y bonos c/p en otras empresas', 91, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (436, '662', NULL, 59, '662. Intereses de deudas a largo plazo', 89, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (437, '6620', NULL, 59, '6620. Intereses de deudas a l/p con empresas del grupo', 89, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (438, '6621', NULL, 59, '6621. Intereses de deudas a l/p con empresas asociadas', 90, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (439, '6622', NULL, 59, '6622. Intereses de deudas a l/p con entidades de crdito', 91, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (440, '6623', NULL, 59, '6623. Intereses de deudas a l/p con otras empresas', 91, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (441, '663', NULL, 59, '663. Intereses de deudas a corto plazo', 89, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (442, '6630', NULL, 59, '6630. Intereses de deudas a c/p con empresas del grupo', 89, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (443, '6631', NULL, 59, '6631. Intereses de deudas a c/p con empresas asociadas', 90, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (444, '6632', NULL, 59, '6632. Intereses de deudas a c/p con entidades de crdito', 91, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (445, '6633', NULL, 59, '6633. Intereses de deudas a c/p con otras empresas', 91, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (446, '664', NULL, 59, '664. Intereses por descuento de efectos', 89, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (447, '6640', NULL, 59, '6640. Intereses por descuento de efectos en entidades de crdito del grupo', 89, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (448, '6641', NULL, 59, '6641. Intereses por descuento de efectos en entidades de crdito asociadas', 90, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (449, '6643', NULL, 59, '6643. Intereses por descuento de efectos en otras entidades de crdito', 91, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (450, '665', NULL, 59, '665. Descuentos sobre ventas por pronto pago', 89, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (451, '6650', NULL, 59, '6650. Descuentos sobre ventas por pronto pago a empresas del grupo', 89, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (452, '6651', NULL, 59, '6651. Descuentos sobre ventas por pronto pago a empresas asociadas', 90, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (453, '6653', NULL, 59, '6653. Descuentos sobre ventas por pronto pago a otras empresas', 91, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (454, '666', NULL, 59, '666. Prdidas en valores negociables', 92, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (455, '6660', NULL, 59, '6660. Prdidas en valores negociables a l/p de empresas del grupo', 92, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (456, '6661', NULL, 59, '6661. Prdidas en valores negociables a l/p de empresas asociadas', 92, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (457, '6663', NULL, 59, '6663. Prdidas en valores negociables a l/p de otras empresas', 92, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (458, '6665', NULL, 59, '6665. Prdidas en valores negociables a c/p de empresas del grupo', 92, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (459, '6666', NULL, 59, '6666. Prdidas en valores negociables a c/p de empresas asociadas', 92, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (460, '6668', NULL, 59, '6668. Prdidas en valores negociables a c/p de otras empresas', 92, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (461, '667', NULL, 59, '667. Prdidas de crditos', 92, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (462, '6670', NULL, 59, '6670. Prdidas de crditos a l/p a empresas del grupo', 92, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (463, '6671', NULL, 59, '6671. Prdidas de crditos a l/p a empresas asociadas', 92, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (464, '6673', NULL, 59, '6673. Prdidas de crditos a l/p a otras empresas', 92, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (465, '6675', NULL, 59, '6675. Prdidas de crditos a c/p a empresas del grupo', 92, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (466, '6676', NULL, 59, '6676. Prdidas de crditos a c/p a empresas asociadas', 92, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (467, '6678', NULL, 59, '6678. Prdidas de crditos a c/p a otras empresas', 92, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (468, '668', NULL, 59, '668. Diferencias negativas de cambio', 94, 2); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (469, '6680', NULL, 59, '6680. Diferencias negativas de cambio por la introduccin del euro', 94, 7); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (470, '6681', NULL, 59, '6681. Diferencias negativas de cambio', 94, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (471, '669', NULL, 59, '669. Otros gastos financieros', 91, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (472, '6690', NULL, 59, '6690. Gastos por diferencias derivadas del redondeo del euro', 91, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (473, '6691', NULL, 59, '6691. Otros gastos financieros', 91, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (474, '670', NULL, 60, '670. Prdidas procedentes de inmovilizado inmaterial', 98, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (475, '671', NULL, 60, '671. Prdidas procedentes de inmovilizado material', 98, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (476, '672', NULL, 60, '672. Prdidas procedentes de participaciones en capital a l/p de empresas del grupo', 98, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (477, '673', NULL, 60, '673. Prdidas procedentes de participaciones en capital a l/p de empresas asociadas', 98, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (478, '674', NULL, 60, '674. Prdidas por operaciones con acciones y obligaciones propias', 99, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (479, '676', NULL, 60, '676. Donaciones del inmovilizado material', 98, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (480, '678', NULL, 60, '678. Gastos extraordinarios', 100, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (481, '6780', NULL, 60, '6780. Gastos producidos por la introduccin del euro', 100, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (482, '6781', NULL, 60, '6781. Otros gastos extraordinarios', 100, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (483, '679', NULL, 60, '679. Gastos y prdidas de ejercicios anteriores', 101, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (484, '680', NULL, 61, '680. Amortizacin de gastos de establecimiento', 77, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (485, '681', NULL, 61, '681. Amortizacin del inmovilizado inmaterial', 77, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (486, '682', NULL, 61, '682. Amortizacin del inmovilizado material', 77, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (487, '690', NULL, 62, '690. Dotacin al fondo de reversin', 86, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (488, '691', NULL, 62, '691. Dotacin a la provisin de inmovilizado inmaterial', 97, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (489, '692', NULL, 62, '692. Dotacin a la provisin del inmovilizado material', 97, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (490, '693', NULL, 62, '693. Dotacin a la provisin de existencias', 79, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (491, '694', NULL, 62, '694. Dotacin a la provisin para insolvencias de trfico', 80, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (492, '695', NULL, 62, '695. Dotacin a la provisin para otras operaciones de trfico', 81, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (493, '696', NULL, 62, '696. Dotacin a la provisin para valores negociables a l/p', 93, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (494, '6960', NULL, 62, '6960. Dotacin a la provisin para participaciones en capital a l/p de empresas del grupo', 97, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (495, '6961', NULL, 62, '6961. Dotacin a la provisin para participaciones en capital a l/p de empresas asociadas', 97, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (496, '6963', NULL, 62, '6963. Dotacin a la provisin para participaciones en capital a l/p de otras empresas', 93, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (497, '6965', NULL, 62, '6965. Dotacin a la provisin para valores de renta fija a l/p de empresas del grupo', 93, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (498, '6966', NULL, 62, '6966. Dotacin a la provisin para valores de renta fija a l/p de empresas asociadas', 93, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (499, '697', NULL, 62, '697. Dotacin a la provisin para insolvencias de crditos a l/p', 93, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (500, '6970', NULL, 62, '6970. Dotacin a la provisin para insolvencias de crditos a l/p a empresas del grupo', 93, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (501, '6971', NULL, 62, '6971. Dotacin a la provisin para insolvencias de crditos a l/p a empresas asociadas', 93, NULL); + +COMMIT WORK; + +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (502, '6973', NULL, 62, '6973. Dotacin a la provisin para insolvencias de crditos a l/p a otras empresas', 93, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (503, '698', NULL, 62, '698. Dotacion a la provisin para valores negociables a c/p', 93, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (504, '6980', NULL, 62, '6980. Dotacion a la provisin para valores negociables a c/p de empresas del grupo', 93, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (505, '6981', NULL, 62, '6981. Dotacion a la provisin para valores negociables a c/p de empresas asociadas', 93, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (506, '6983', NULL, 62, '6983. Dotacion a la provisin para valores negociables a c/p de otras empresas', 93, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (507, '699', NULL, 62, '699. Dotacin a la provisin para insolvencias de crditos a c/p', 93, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (508, '6990', NULL, 62, '6990. Dotacin a la provisin para insolvencias de crditos a c/p a empresas del grupo', 93, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (509, '6991', NULL, 62, '6991. Dotacin a la provisin para insolvencias de crditos a c/p a empresas asociadas', 93, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (510, '6993', NULL, 62, '6993. Dotacin a la provisin para insolvencias de crditos a c/p a otras empresas', 93, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (511, '700', NULL, 64, '700. Ventas de mercaderas', 110, 20); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (512, '701', NULL, 64, '701. Ventas de productos terminados', 110, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (513, '702', NULL, 64, '702. Ventas de productos semiterminados', 110, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (514, '703', NULL, 64, '703. Ventas de subproductos y residuos', 110, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (515, '704', NULL, 64, '704. Ventas de envases y embalajes', 110, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (516, '705', NULL, 64, '705. Prestaciones de servicios', 111, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (517, '708', NULL, 64, '708. Devoluciones de ventas y operaciones similares', 112, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (518, '7080', NULL, 64, '7080. Devoluciones de ventas de mercaderas', 112, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (519, '7081', NULL, 64, '7081. Devoluciones de ventas de productos terminados', 112, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (520, '7082', NULL, 64, '7082. Devoluciones de ventas de productos semiterminados', 112, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (521, '7083', NULL, 64, '7083. Devoluciones de ventas de subproductos y residuos', 112, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (522, '7084', NULL, 64, '7084. Devoluciones de ventas de envases y embalajes', 112, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (523, '709', NULL, 64, '709. Rappels sobre ventas', 112, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (524, '7090', NULL, 64, '7090. Rappels sobre ventas de mercaderas', 112, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (525, '7091', NULL, 64, '7091. Rappels sobre ventas de productos terminados', 112, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (526, '7092', NULL, 64, '7092. Rappels sobre ventas de productos semiterminados', 112, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (527, '7093', NULL, 64, '7093. Rappels sobre ventas de subproductos y residuos', 112, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (528, '7094', NULL, 64, '7094. Rappels sobre ventas de envases y embalajes', 112, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (529, '710', NULL, 65, '710. Variacin de existencias de productos en curso', 69, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (530, '711', NULL, 65, '711. Variacin de existencias de productos semiterminados', 113, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (531, '712', NULL, 65, '712. Variacin de existencias de productos terminados', 113, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (532, '713', NULL, 65, '713. Variacin de existencias de subproductos, residuos y materiales recuperados', 113, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (533, '730', NULL, 66, '730. Incorporacin al activo de gastos de establecimiento', 114, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (534, '731', NULL, 66, '731. Trabajos realizados para inmovilizado inmaterial', 114, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (535, '732', NULL, 66, '732. Trabajos realizados para inmovilizado material', 114, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (536, '733', NULL, 66, '733. Trabajos realizados para inmovilizado material en curso', 114, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (537, '737', NULL, 66, '737. Incorporacin al activo de gastos de formalizacin de deudas', 114, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (538, '740', NULL, 67, '740. Subvenciones oficiales a la explotacin', 117, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (539, '741', NULL, 67, '741. Otras subvenciones a la explotacin', 117, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (540, '751', NULL, 68, '751. Resultados de operaciones en comn', 116, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (541, '7510', NULL, 68, '7510. Prdida transferida (gestor)', 116, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (542, '7511', NULL, 68, '7511. Beneficio atribuido (partcipe o asociado no gestor)', 116, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (543, '752', NULL, 68, '752. Ingresos por arrendamientos', 116, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (544, '753', NULL, 68, '753. Ingresos de propiedad industrial cedida en explotacin', 116, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (545, '754', NULL, 68, '754. Ingresos por comisiones', 116, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (546, '755', NULL, 68, '755. Ingresos por servicios al personal', 116, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (547, '759', NULL, 68, '759. Ingresos por servicios diversos', 116, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (548, '760', NULL, 69, '760. Ingresos de participaciones en capital', 121, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (549, '7600', NULL, 69, '7600. Ingresos de participaciones en capital de empresas del grupo', 121, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (550, '7601', NULL, 69, '7601. Ingresos de participaciones en capital de empresas asociadas', 122, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (551, '7603', NULL, 69, '7603. Ingresos de participaciones en capital de otras empresas', 123, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (552, '761', NULL, 69, '761. Ingresos de valores de renta fija', 125, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (553, '7610', NULL, 69, '7610. Ingresos de valores renta fija de empresas del grupo', 125, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (554, '7611', NULL, 69, '7611. Ingresos de valores renta fija de empresas asociadas', 126, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (555, '7613', NULL, 69, '7613. Ingresos de valores renta fija de otras empresas', 127, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (556, '7618', NULL, 69, '7618. Ingresos de participaciones en Fondos de Inversin en Activos del Mercado Monetario', 127, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (557, '762', NULL, 69, '762. Ingresos de crditos a largo plazo', 125, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (558, '7620', NULL, 69, '7620. Ingresos de crditos a l/p a empresas del grupo', 125, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (559, '7621', NULL, 69, '7621. Ingresos de crditos a l/p a empresas asociadas', 126, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (560, '7623', NULL, 69, '7623. Ingresos de crditos a l/p a otras empresas', 127, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (561, '763', NULL, 69, '763. Ingresos de crditos a corto plazo', 129, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (562, '7630', NULL, 69, '7630. Ingresos de crditos a c/p a empresas del grupo', 129, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (563, '7631', NULL, 69, '7631. Ingresos de crditos a c/p a empresas asociadas', 130, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (564, '7633', NULL, 69, '7633. Ingresos de crditos a c/p a otras empresas', 131, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (565, '765', NULL, 69, '765. Descuentos sobre compras por pronto pago', 129, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (566, '7650', NULL, 69, '7650. Descuentos sobre compras por pronto pago de empresas del grupo', 129, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (567, '7651', NULL, 69, '7651. Descuentos sobre compras por pronto pago de empresas asociadas', 130, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (568, '7653', NULL, 69, '7653. Descuentos sobre compras por pronto pago de otras empresas', 131, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (569, '766', NULL, 69, '766. Beneficios en valores negociables', 132, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (570, '7660', NULL, 69, '7660. Beneficios en valores negociables a l/p de empresas del grupo', 132, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (571, '7661', NULL, 69, '7661. Beneficios en valores negociables a l/p de empresas asociadas', 132, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (572, '7663', NULL, 69, '7663. Beneficios en valores negociables a l/p de otras empresas', 132, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (573, '7665', NULL, 69, '7665. Beneficios en valores negociables a c/p de empresas del grupo', 132, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (574, '7666', NULL, 69, '7666. Beneficios en valores negociables a c/p de empresas asociadas', 132, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (575, '7668', NULL, 69, '7668. Beneficios en valores negociables a c/p de otras empresas', 132, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (576, '768', NULL, 69, '768. Diferencias positivas de cambio', 133, 3); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (577, '7680', NULL, 69, '7680. Diferencias positivas de cambio por la introduccin del euro', 133, 8); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (578, '7681', NULL, 69, '7681. Diferencias positivas de cambio', 133, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (579, '769', NULL, 69, '769. Otros ingresos financieros', 131, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (580, '7690', NULL, 69, '7690. Ingresos por diferencias derivadas del redondeo del euro', 131, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (581, '7691', NULL, 69, '7691. Otros ingresos financieros', 131, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (582, '770', NULL, 70, '770. Beneficios procedentes de inmovilizado inmaterial', 136, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (583, '771', NULL, 70, '771. Beneficios procedentes de inmovilizado material', 136, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (584, '772', NULL, 70, '772. Beneficios procedentes de participaciones en capital a l/p de empresas del grupo', 136, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (585, '773', NULL, 70, '773. Beneficios procedentes de participaciones en capital a l/p de empresas asociadas', 136, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (586, '774', NULL, 70, '774. Beneficios por operaciones con acciones y obligaciones propias', 137, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (587, '775', NULL, 70, '775. Subvenciones de capital traspasadas al resultado del ejercicio', 138, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (588, '778', NULL, 70, '778. Ingresos extraordinarios', 139, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (589, '779', NULL, 70, '779. Ingresos y beneficios de ejercicios anteriores', 140, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (590, '790', NULL, 71, '790. Exceso de provisin para riesgos y gastos', 118, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (591, '791', NULL, 71, '791. Exceso de provisin del inmovilizado inmaterial', 97, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (592, '792', NULL, 71, '792. Exceso de provisin del inmovilizado material', 97, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (593, '793', NULL, 71, '793. Provisin de existencias aplicada', 79, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (594, '794', NULL, 71, '794. Provisin para insolvencias de trfico aplicada', 80, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (595, '795', NULL, 71, '795. Provisin para otras operaciones de trfico aplicada', 81, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (596, '796', NULL, 71, '796. Exceso de provisin para valores negociables a l/p', 98, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (597, '7960', NULL, 71, '7960. Exceso de provisin para participaciones en capital a l/p de empresas del grupo', 97, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (598, '7961', NULL, 71, '7961. Exceso de provisin para participaciones en capital a l/p de empresas asociadas', 97, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (599, '7963', NULL, 71, '7963. Exceso de provisin para valores negociables a l/p de otras empresas', 93, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (600, '7965', NULL, 71, '7965. Exceso de provisin para valores de renta fija a l/p de empresas del grupo', 93, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (601, '7966', NULL, 71, '7966. Exceso de provisin para valores de renta fija a l/p de empresas asociadas', 93, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (602, '797', NULL, 71, '797. Exceso de provisin para insolvencias de crditos a l/p', 93, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (603, '7970', NULL, 71, '7970. Exceso de provisin para insolvencias de crditos a l/p de empresas del grupo', 93, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (604, '7971', NULL, 71, '7971. Exceso de provisin para insolvencias de crditos a l/p de empresas asociadas', 93, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (605, '7973', NULL, 71, '7973. Exceso de provisin para insolvencias de crditos a l/p de otras empresas', 93, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (606, '798', NULL, 71, '798. Exceso de provisin para valores negociables a c/p', 93, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (607, '7980', NULL, 71, '7980. Exceso de provisin para valores negociables a c/p de empresas del grupo', 93, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (608, '7981', NULL, 71, '7981. Exceso de provisin para valores negociables a c/p de empresas asociadas', 93, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (609, '7983', NULL, 71, '7983. Exceso de provisin para valores negociables a c/p de otras empresas', 93, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (610, '799', NULL, 71, '799. Exceso de provisin para insolvencias de crditos a c/p', 93, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (611, '7990', NULL, 71, '7990. Exceso de provisin para insolvencias de crditos a c/p de empresas del grupo', 93, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (612, '7991', NULL, 71, '7991. Exceso de provisin para insolvencias de crditos a c/p de empresas asociadas', 93, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (613, '7993', NULL, 71, '7993. Exceso de provisin para insolvencias de crditos a c/p de otras empresas', 93, NULL); +INSERT INTO CONT_CUENTAS (ID, REF_CUENTA, ID_EJERCICIO, ID_EPIGRAFE, DESCRIPCION, ID_BALANCE, ID_CUENTA_ESPECIAL) VALUES (615, '7', NULL, 63, 'Ventas tienda 1', 110, 4); + +COMMIT WORK; + + + +/*********************************************************************************/ +/*********************************************************************************/ +/*** CONT_SUBCUENTAS ***********************************************************/ +/*********************************************************************************/ +/*********************************************************************************/ + +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (2, '1000000000', '100. Capital social', 2, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (3, '1000000001', '1000. Capital ordinario', 3, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (4, '1001000000', '1001. Capital privilegiado', 4, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (5, '1002000000', '1002. Capital sin derecho a voto', 5, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (6, '1003000000', '1003. Capital con derechos restringidos', 6, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (7, '1010000000', '101. Fondo social', 7, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (8, '1020000000', '102. Capital', 8, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (9, '1100000000', '110. Prima de emision de acciones', 9, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (10, '1110000000', '111. Reservas de revalorizacin', 10, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (11, '1120000000', '112. Reserva legal', 11, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (12, '1130000000', '113. Reservas especiales', 12, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (13, '1140000000', '114. Reservas para acciones de la sociedad dominante', 13, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (14, '1150000000', '115. Reservas para acciones propias', 14, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (15, '1160000000', '116. Reservas estatutarias', 15, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (16, '1170000000', '117. Reservas voluntarias', 16, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (17, '1180000000', '118. Reserva por capital amortizado', 17, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (18, '1190000000', '119. Diferencias por ajuste del capital a euros', 18, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (19, '1200000000', '120. Remanente', 19, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (20, '1210000000', '121. Resultados negativos de ejercicios anteriores', 20, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (21, '1220000000', '122. Aportaciones de socios para compensacin de prdidas', 21, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (22, '1290000000', '129. Prdidas y Ganancias', 22, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (23, '1300000000', '130. Subvenciones oficiales de capital', 23, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (24, '1300000001', '1300. Subvenciones del Estado', 24, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (25, '1301000000', '1301. Subvenciones de otras Administraciones Pblicas', 25, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (26, '1310000000', '131. Subvenciones de capital', 26, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (27, '1350000000', '135. Ingresos por intereses diferidos', 27, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (28, '1360000000', '136. Diferencias positivas en moneda extranjera', 28, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (29, '1370000000', '137. Ingresos fiscales por diferencias permantes a distribuir en varios ejercicios', 29, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (30, '1380000000', '138. Ingresos fiscales por deducciones y bonificaciones fiscales a distribuir en varios ejercicios', 30, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (31, '1400000000', '140. Provisin para pensiones y obligaciones similares', 31, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (32, '1410000000', '141. Provisin para impuestos', 32, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (33, '1420000000', '142. Provisin para responsabilidades', 33, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (34, '1430000000', '143. Provisin para grandes reparaciones', 34, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (35, '1440000000', '144. Fondo de reversin', 35, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (36, '1500000000', '150. Obligaciones y bonos', 36, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (37, '1500000001', '1500. Obligaciones y bonos simples', 37, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (38, '1501000000', '1501. Obligaciones y bonos garantizados', 38, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (39, '1502000000', '1502. Obligaciones y bonos subordinados', 39, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (40, '1503000000', '1503. Obligaciones y bonos cupn cero', 40, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (41, '1504000000', '1504. Obligaciones y bonos con opcin de adquisicin de acciones', 41, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (42, '1505000000', '1505. Obligaciones y bonos con participacin en beneficios', 42, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (43, '1510000000', '151. Obligaciones y bonos convertibles', 43, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (44, '1550000000', '155. Deudas representadas en otros valores negociables', 44, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (45, '1600000000', '160. Deudas a largo plazo con empresas del grupo', 45, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (46, '1600000001', '1600. Prstamos a largo plazo de empresas del grupo', 46, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (47, '1608000000', '1608. Deudas a l/p con empresas del grupo por efecto impositivo', 47, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (48, '1609000000', '1609. Otras deudas a largo plazo con empresas del grupo', 48, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (49, '1610000000', '161. Deudas a largo plazo con empresas asociadas', 49, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (50, '1620000000', '162. Deudas a l/p con entidades de crdito del grupo', 50, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (51, '1630000000', '163. Deudas a l/p con entidades de crdito asociadas', 51, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (52, '1640000000', '164. Proveedores de inmovilizado a l/p, empresas grupo', 52, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (53, '1650000000', '165. Proveedores de inmovilizado l/p, empresas asociadas', 53, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (54, '1700000000', '170. Deudas a largo plazo con entidades de crdito', 54, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (55, '1700000001', '1700. Prstamos a largo plazo de entidades de crdito', 55, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (56, '1709000000', '1709. Otras deudas a largo plazo con entidades de crdito', 56, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (57, '1710000000', '171. Deudas a largo plazo', 57, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (58, '1720000000', '172. Deudas a largo plazo transformables en subvenciones', 58, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (59, '1730000000', '173. Proveedores de inmovilizado a largo plazo', 59, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (60, '1740000000', '174. Efectos a pagar a largo plazo', 60, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (61, '1800000000', '180. Fianzas recibidas a largo plazo', 61, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (62, '1850000000', '185. Depsitos recibidos a largo plazo', 62, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (63, '1900000000', '190. Accionistas por desembolsos no exigidos', 63, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (64, '1910000000', '191. Accionistas por desembolsos no exigidos, empresas del grupo', 64, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (65, '1920000000', '192. Accionistas por desembolsos no exigidos, empresas asociadas', 65, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (66, '1930000000', '193. Accionistas por aportaciones no dinerarias pendientes', 66, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (67, '1940000000', '194. Accionistas por aportaciones no dinerarias pendientes, empresas del grupo', 67, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (68, '1950000000', '195. Accionistas por aportaciones no dinerarias pendientes, empresas asociadas', 68, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (69, '1960000000', '196. Socios, parte no desembolsada', 69, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (70, '1980000000', '198. Acciones propias en situaciones especiales', 70, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (71, '1990000000', '199. Acciones propias para reduccin de capital', 71, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (72, '2000000000', '200. Gastos de constitucin', 72, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (73, '2010000000', '201. Gastos de primer establecimiento', 73, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (74, '2020000000', '202. Gastos de ampliacin de capital', 74, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (75, '2100000000', '210. Gastos de investigacin y desarrollo', 75, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (76, '2100000001', '2100. Gastos de I+D en proyectos no terminados', 76, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (77, '2101000000', '2101. Gastos de I+D en proyectos terminados', 77, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (78, '2110000000', '211. Concesiones administrativas', 78, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (79, '2120000000', '212. Propiedad industrial', 79, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (80, '2130000000', '213. Fondo de comercio', 80, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (81, '2140000000', '214. Derechos de traspaso', 81, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (82, '2150000000', '215. Aplicaciones informticas', 82, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (83, '2170000000', '217. Derechos sobre bienes en rgimen de arrendamiento financiero', 83, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (84, '2190000000', '219. Anticipos para inmovilizaciones inmateriales', 84, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (85, '2200000000', '220. Terrenos y bienes naturales', 85, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (86, '2210000000', '221. Construcciones', 86, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (87, '2220000000', '222. Instalaciones tcnicas', 87, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (88, '2230000000', '223. Maquinaria', 88, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (89, '2240000000', '224. Utillaje', 89, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (90, '2250000000', '225. Otras instalaciones', 90, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (91, '2260000000', '226. Mobiliario', 91, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (92, '2270000000', '227. Equipos para procesos de informacin', 92, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (93, '2280000000', '228. Elementos de transporte', 93, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (94, '2290000000', '229. Otro inmovilizado material', 94, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (95, '2300000000', '230. Adaptacin de terrenos y de bienes naturales', 95, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (96, '2310000000', '231. Construcciones en curso', 96, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (97, '2320000000', '232. Instalaciones tcnicas en montaje', 97, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (98, '2330000000', '233. Maquinaria en montaje', 98, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (99, '2370000000', '237. Equipos para procesos de informacin en montaje', 99, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (100, '2390000000', '239. Anticipos para inmovilizaciones materiales', 100, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (101, '2400000000', '240. Participaciones en empresas del grupo', 101, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (102, '2410000000', '241. Participaciones en empresas asociadas', 102, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (103, '2420000000', '242. Valores de renta fija de empresas del grupo', 103, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (104, '2430000000', '243. Valores de renta fija de empresas asociadas', 104, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (105, '2440000000', '244. Crditos a largo plazo a empresas del grupo', 105, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (106, '2448000000', '2448. Crditos a l/p con empresas del grupo por efecto impositivo', 106, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (107, '2450000000', '245. Crditos a largo plazo a empresas asociadas', 107, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (108, '2460000000', '246. Intereses a l/p de inversiones financieras en empresas del grupo', 108, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (109, '2470000000', '247. Intereses a l/p de inversiones financieras en empresas asociadas', 109, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (110, '2480000000', '248. Desembolsos pendientes sobre acciones de empresas del grupo', 110, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (111, '2490000000', '249. Desembolsos pendientes sobre acciones de empresas asociadas', 111, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (112, '2500000000', '250. Inversiones financieras permanentes en capital', 112, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (113, '2500000001', '2500. Inversiones financieras permantes en acciones con cotizacin en mercado secundario organizado', 113, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (114, '2501000000', '2501. Inversiones financieras permantes en acciones sin cotizacin en mercado secundario organizado', 114, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (115, '2502000000', '2502. Otras inversiones financieras en capital', 115, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (116, '2510000000', '251. Valores de renta fija', 116, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (117, '2158000000', '2158. Participacin en Fondos de Inversin en Activos del Mercado Monetario a l/p', 117, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (118, '2520000000', '252. Crditos a largo plazo', 118, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (119, '2530000000', '253. Crditos a l/p por enajenacin de inmovilizado', 119, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (120, '2540000000', '254. Creditos a largo plazo al personal', 120, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (121, '2560000000', '256. Intereses a largo plazo de valores de renta fija', 121, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (122, '2570000000', '257. Intereses a largo plazo de crditos', 122, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (123, '2580000000', '258. Imposiciones a largo plazo', 123, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (124, '2590000000', '259. Desembolsos pendientes sobre acciones', 124, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (125, '2600000000', '260. Fianzas constituidas a largo plazo', 125, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (126, '2650000000', '265. Depositos constituidos a largo plazo', 126, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (127, '2700000000', '270. Gastos de formalizacin de deudas', 127, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (128, '2710000000', '271. Gastos por intereses diferidos de valores negociables', 128, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (129, '2720000000', '272. Gastos por intereses diferidos', 129, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (130, '2810000000', '281. Amortizacin acumulada del inmovilizado inmaterial', 130, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (131, '2810000001', '2810. Amortizacin acumulada de gastos de I+D', 131, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (132, '2811000000', '2811. Amortizacin acumulada de concesiones administrativas', 132, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (133, '2812000000', '2812. Amortizacin acumulada de propiedad industrial', 133, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (134, '2813000000', '2813. Amortizacin acumulada de fondo de comercio', 134, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (135, '2814000000', '2814. Amortizacin acumulada de derechos de traspaso', 135, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (136, '2815000000', '2815. Amortizacin acumulada de aplicaciones informticas', 136, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (137, '2817000000', '2817. Amortizacin acumulada de derechos sobre bienes en rgimen de arrendamiento financiero', 137, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (138, '2820000000', '282. Amortizacin acumulada del inmovilizado material', 138, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (139, '2821000000', '2821. Amortizacin acumulada de construcciones', 139, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (140, '2822000000', '2822. Amortizacin acumulada de instalaciones tcnicas', 140, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (141, '2823000000', '2823. Amortizacin acumulada de maquinaria', 141, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (142, '2824000000', '2824. Amortizacin acumulada de utillaje', 142, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (143, '2825000000', '2825. Amortizacin acumulada de otras instalaciones', 143, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (144, '2826000000', '2826. Amortizacin acumulada de mobiliario', 144, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (145, '2827000000', '2827. Amortizacin acumulada de equipos para procesos informticos', 145, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (146, '2828000000', '2828. Amortizacin acumulada de elementos de transporte', 146, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (147, '2829000000', '2829. Amortizacin acumulada de otro inmovilizado material', 147, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (148, '2910000000', '291. Provisin por depreciacin inmovilizado inmaterial', 148, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (149, '2920000000', '292. Provisin por depreciacin inmovilizado material', 149, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (150, '2930000000', '293. Provisin por depreciacin valores negociables l/p de empresas del grupo', 150, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (151, '2930000001', '2930. Provisin por depreciacin participaciones en capital l/p de empresas del grupo', 151, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (152, '2935000000', '2935. Provisin por depreciacin valores renta fija l/p de empresas del grupo', 152, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (153, '2940000000', '294. Provisin por depreciacin valores negociables l/p de empresas asociadas', 153, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (154, '2941000000', '2941. Provisin por depreciacin participaciones en capital l/p de empresas asociadas', 154, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (155, '2946000000', '2946. Provisin por depreciacin valores renta fija l/p de empresas asociadas', 155, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (156, '2950000000', '295. Provisin para insolvencias de creditos l/p a empresas del grupo', 156, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (157, '2960000000', '296. Provisin para insolvencias de creditos l/p a empresasa asociadas', 157, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (158, '2970000000', '297. Provisin por depreciacin de valores negociables l/p', 158, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (159, '2980000000', '298. Provisin para insolvencias de crditos a l/p', 159, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (160, '3000000000', '300. Mercaderias A', 160, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (161, '3010000000', '301. Mercaderias B', 161, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (162, '3100000000', '310. Materias primas A', 162, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (163, '3110000000', '311. Materias primas B', 163, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (164, '3200000000', '320. Elementos y conjuntos incorporables', 164, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (165, '3210000000', '321. Combustibles', 165, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (166, '3220000000', '322. Repuestos', 166, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (167, '3250000000', '325. Materiales diversos', 167, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (168, '3260000000', '326. Embalajes', 168, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (169, '3270000000', '327. Envases', 169, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (170, '3280000000', '328. Material de oficina', 170, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (171, '3300000000', '330. Productos en curso A', 171, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (172, '3310000000', '331. Productos en curso B', 172, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (173, '3400000000', '340. Productos semiterminados A', 173, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (174, '3410000000', '341. Productos semiterminados B', 174, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (175, '3500000000', '350. Productos terminados A', 175, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (176, '3510000000', '351. Productos terminados B', 176, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (177, '3600000000', '360. Subproductos A', 177, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (178, '3610000000', '361. Subproductos B', 178, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (179, '3650000000', '365. Residuos A', 179, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (180, '3660000000', '366. Residuos B', 180, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (181, '3680000000', '368. Materiales recuperados A', 181, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (182, '3690000000', '369. Materiales recuperados B', 182, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (183, '3900000000', '390. Provisin por depreciacin de mercaderas', 183, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (184, '3910000000', '391. Provisin por depreciacin de materias primas', 184, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (185, '3920000000', '392. Provisin por depreciacin de otros aprovisionamientos', 185, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (186, '3930000000', '393. Provisin por depreciacin de productos en curso', 186, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (187, '3940000000', '394. Provisin por depreciacin de productos semiterminados', 187, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (188, '3950000000', '395. Provisin por depreciacin de productos terminado', 188, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (189, '3960000000', '396. Provisin por depreciacin de subproductos,residuos y materiales recuperados', 189, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (190, '4000000000', '400. Proveedores', 190, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (191, '4004000000', '4004. Proveedores (moneda extranjera)', 191, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (192, '4009000000', '4009. Proveedores facturas pendientes de recibir o formalizar', 192, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (193, '4010000000', '401. Proveedores, efectos comerciales a pagar', 193, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (194, '4020000000', '402. Proveedores, empresas del grupo', 194, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (195, '4020000001', '4020. Proveedores, empresas del grupo (euros)', 195, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (196, '4021000000', '4021. Efectos comerciales a pagar, empresas del grupo', 196, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (197, '4024000000', '4024. Proveedores, empresas del grupo (moneda extranjera', 197, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (198, '4026000000', '4026. Envases y embalajes a devolver a proveedores, empresas del grupo', 198, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (199, '4029000000', '4029. Proveedores, empresas del grupo,facturas pendientes de recibir o formalizar', 199, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (200, '4030000000', '403. Proveedores, empresas asociadas', 200, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (201, '4060000000', '406. Envases y embalajes a devolver a proveedores', 201, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (202, '4070000000', '407. Anticipos a proveedores', 202, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (203, '4100000000', '410. Acreedores por prestaciones de servicios', 203, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (204, '4100000001', '4100. Acreedores por prestaciones de servicios (euros)', 204, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (205, '4104000000', '4104. Acreedores por prestaciones de servicios (moneda extranjera)', 205, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (206, '4109000000', '4109. Acreedores por prestaciones de servicios,facturas pendientes de recibir o formalizar', 206, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (207, '4110000000', '411. Acreedores, efectos comerciales a pagar', 207, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (208, '4190000000', '419. Acreedores por operaciones en comn', 208, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (209, '4300000000', '430. Clientes', 209, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (210, '4304000000', '4304. Clientes (moneda extranjera)', 210, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (211, '4309000000', '4309. Clientes, facturas pendientes de formalizar', 211, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (212, '4310000000', '431. Clientes, efectos comerciales a cobrar', 212, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (213, '4310000001', '4310. Efectos comerciales en cartera', 213, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (214, '4311000000', '4311. Efectos comerciales descontados', 214, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (215, '4312000000', '4312. Efectos comerciales en gestin de cobro', 215, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (216, '4315000000', '4315. Efectos comerciales impagados', 216, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (217, '4320000000', '432. Clientes, empresas del grupo', 217, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (218, '4320000001', '4320. Clientes, empresas del grupo (euros)', 218, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (219, '4321000000', '4321. Efectos comerciales a cobrar, empresas del grupo', 219, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (220, '4324000000', '4324. Clientes, empresas del grupo (moneda extranjera)', 220, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (221, '4326000000', '4326. Envases y embalajes a devolver a clientes, empresas del grupo', 221, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (222, '4329000000', '4329. Clientes, empresas del grupo, facturas pendientes formalizar', 222, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (223, '4330000000', '433. Clientes, empresas asociadas', 223, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (224, '4350000000', '435. Clientes de dudoso cobro', 224, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (225, '4360000000', '436. Envases y embalajes a devolver por clientes', 225, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (226, '4370000000', '437. Anticipos de clientes', 226, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (227, '4400000000', '440. Deudores', 227, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (228, '4400000001', '4400. Deudores (euros)', 228, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (229, '4404000000', '4404. Deudores (moneda extranjera)', 229, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (230, '4409000000', '4409. Deudores, facturas pendientes de formalizar', 230, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (231, '4410000000', '441. Deudores, efectos comerciales a cobrar', 231, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (232, '4410000001', '4410. Deudores, efectos comerciales en cartera', 232, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (233, '4411000000', '4411. Deudores, efectos comerciales descontados', 233, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (234, '4412000000', '4412. Deudores, efectos comerciales en gestin de cobro', 234, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (235, '4415000000', '4415. Deudores, efectos comerciales impagados', 235, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (236, '4450000000', '445. Deudores de dudoso cobro', 236, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (237, '4490000000', '449. Deudores por operaciones en comn', 237, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (238, '4600000000', '460. Anticipos de remuneraciones', 238, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (239, '4650000000', '465. Remuneraciones pendientes de pago', 239, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (240, '4700000000', '470. Hacienda Pblica, deudor por diversos conceptos', 240, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (241, '4700000001', '4700. Hacienda Pblica, deudor por IVA', 241, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (242, '4707000000', '4707. Hacienda Pblica, deudor por IGIC', 242, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (243, '4707000001', '47070. Hacienda Pblica, deudor por IGIC', 243, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (244, '4707100000', '47071. Hacienda Pblica, deudor por IGIC rgimen transitorio, circulante', 244, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (245, '4707200000', '47072. Hacienda Pblica, deudor por IGIC rgimen transitorio, inversin', 245, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (246, '4708000000', '4708. Hacienda Pblica, deudor por subvenciones concedidas', 246, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (247, '4709000000', '4709. Hacienda Pblica, deudor por devolucin impuestos', 247, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (248, '4710000000', '471. Organismos de la Seguridad Social, deudores', 248, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (249, '4720000000', '472. Hacienda Publica, IVA soportado', 249, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (250, '4720000001', '4720. IVA soportado', 250, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (251, '4727000000', '4727. IGIC soportado', 251, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (252, '4730000000', '473. Hacienda Pblica, retenciones y pagos a cuenta', 252, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (253, '4732000000', '4732. Hacienda Pblica, retenciones y pagos a cuenta', 253, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (254, '4740000000', '474. Impuesto sobre beneficios anticipado y compensacin de prdidas', 254, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (255, '4740000001', '4740. Impuesto sobre beneficios anticipado', 255, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (256, '4741000000', '4741. Impuestos sobre beneficios anticipado a l/p', 256, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (257, '4745000000', '4745. Crdito por prdidas a compensar del ejercicio....', 257, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (258, '4746000000', '4746. Crdito por prdidas a compensar del ejercicio..a l/p', 258, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (259, '4748000000', '4748. Impuesto sobre beneficios anticipado por operaciones intra-grupo', 259, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (260, '4749000000', '4749. Crdito por perdidas a compensar en rgimen de declaracin consolidada del ejercicio...', 260, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (261, '4750000000', '475. Hacienda Pblica, acreedor por conceptos fiscales', 261, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (262, '4750000001', '4750. Hacienda Pblica, acreedor por IVA', 262, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (263, '4751000000', '4751. Hacienda Pblica, acreedor por retenciones practicadas', 263, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (264, '4752000000', '4752. Hacienda Pblica, acreedor por impuesto sobre sociedades', 264, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (265, '4757000000', '4757. Hacienda Pblica, acreedor por IGIC', 265, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (266, '4758000000', '4758. Hacienda Pblica, acreedor por subvenciones a reintegrar', 266, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (267, '4760000000', '476. Organismos de la Seguridad Social, acreedores', 267, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (268, '4770000000', '477. Hacienda Pblica, IVA repercutido', 268, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (269, '4770000001', '4770. IVA repercutido', 269, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (270, '4777000000', '4777. IGIC repercutido', 270, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (271, '4790000000', '479. Impuesto sobre beneficios diferido', 271, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (272, '4791000000', '4791. Impuesto sobre beneficios diferido a l/p', 272, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (273, '4798000000', '4798. Impuesto sobre beneficios diferido por operaciones intra-grupo', 273, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (274, '4800000000', '480. Gastos anticipados', 274, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (275, '4850000000', '485. Ingresos anticipados', 275, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (276, '4900000000', '490. Provisin para insolvencias de trfico', 276, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (277, '4930000000', '493. Provisin para insolvencias de trfico de empresas del grupo', 277, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (278, '4940000000', '494. Provisin para insolvencias de trfico de empresas asociadas', 278, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (279, '4990000000', '499. Provisin para otras operaciones de trfico', 279, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (280, '5000000000', '500. Obligaciones y bonos a corto plazo', 280, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (281, '5010000000', '501. Obligaciones y bonos convertibles a corto plazo', 281, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (282, '5050000000', '505. Deudas representadas otros valores negociables c/p', 282, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (283, '5060000000', '506. Intereses de emprstitos y otras emisiones anlogas', 283, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (284, '5090000000', '509. Valores negociables amortizados', 284, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (285, '5090000001', '5090. Obligaciones y bonos amortizados', 285, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (286, '5091000000', '5091. Obligaciones y bonos convertibles amortizados', 286, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (287, '5095000000', '5095. Otros valores negociables amortizados', 287, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (288, '5100000000', '510. Deudas a corto plazo con empresas del grupo', 288, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (289, '5100000001', '5100. Prstamos a corto plazo de empresas del grupo', 289, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (290, '5108000000', '5108. Deudas a c/p con empresas del grupo por efectos impositivos', 290, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (291, '5109000000', '5109. Otras deudas a corto plazo con empresas del grupo', 291, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (292, '5110000000', '511. Deudas a corto plazo con empresas asociadas', 292, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (293, '5120000000', '512. Deudas a c/p con entidades de crdito del grupo', 293, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (294, '5120000001', '5120. Prstamos a c/p de entidades de crdito del grupo', 294, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (295, '5128000000', '5128. Deudas por efectos descontados en entididades de crdito del grupo', 295, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (296, '5129000000', '5129. Otras deudas c/p con entidades de crdito del grupo', 296, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (297, '5130000000', '513. Deudas a c/p con entidades de credito asociadas', 297, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (298, '5140000000', '514. Proveedores de inmovilizado a c/p, empresas del grupo', 298, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (299, '5150000000', '515. Proveedores de inmovilizado a c/p, empresas asociadas', 299, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (300, '5160000000', '516. Intereses a c/p de deudas con empresas del grupo', 300, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (301, '5170000000', '517. Intereses a c/p de deudas con empresas asociadas', 301, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (302, '5200000000', '520. Deudas a corto plazo con entidades de crdito', 302, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (303, '5200000001', '5200. Prstamos a corto plazo de entidades de crdito', 303, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (304, '5201000000', '5201. Deudas a corto plazo por crdito dispuesto', 304, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (305, '5208000000', '5208. Deudas por efectos descontados', 305, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (306, '5210000000', '521. Deudas a corto plazo', 306, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (307, '5230000000', '523. Proveedores de inmovilizado a corto plazo', 307, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (308, '5240000000', '524. Efectos a pagar a corto plazo', 308, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (309, '5250000000', '525. Dividendo activo a pagar', 309, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (310, '5260000000', '526. Intereses a c/p de deudas con entidades de crdito', 310, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (311, '5270000000', '527. Intereses a corto plazo de deudas', 311, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (312, '5300000000', '530. Participaciones a c/p en empresas del grupo', 312, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (313, '5310000000', '531. Participaciones a c/p en empresas asociadas', 313, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (314, '5320000000', '532. Valores de renta fija a c/p de empresas del grupo', 314, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (315, '5330000000', '533. Valores de renta fija a c/p de empresas asociadas', 315, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (316, '5340000000', '534. Crditos a corto plazo a empresas del grupo', 316, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (317, '5348000000', '5348. Crditos a c/p con empresas del grupo por efecto impositivo', 317, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (318, '5350000000', '535. Crditos a corto plazo a empresas asociadas', 318, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (319, '5360000000', '536. Intereses a c/p de inversiones financieras en empresas del grupo', 319, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (320, '5360000001', '5360. Intereses c/p valores renta fija de empresas del grupo', 320, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (321, '5361000000', '5361. Intereses c/p de crditos a empresas del grupo', 321, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (322, '5370000000', '537. Intereses a c/p de inversiones financieras en empresas asociadas', 322, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (323, '5380000000', '538. Desembolsos pendientes sobre acciones a c/p de empresas del grupo', 323, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (324, '5390000000', '539. Desembolsos pendientes sobre acciones a c/p de empresas asociadas', 324, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (325, '5400000000', '540. Inversiones financieras temporales en capital', 325, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (326, '5400000001', '5400. Inversiones financieras temporales en acciones con cotizacin en mercado secundario organizado', 326, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (327, '5401000000', '5401. Inversiones financieras temporales en acciones sin cotizacin en mercado secundario organizado', 327, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (328, '5409000000', '5409. Otras inversiones financieras temporales en capital', 328, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (329, '5410000000', '541. Valores de renta fija a corto plazo', 329, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (330, '5418000000', '5418. Participaciones en Fondos de Inversin en Activos del Mercado Monetario a c/p', 330, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (331, '5420000000', '542. Crditos a corto plazo', 331, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (332, '5430000000', '543. Creditos a c/p por enajenacin de inmovilizado', 332, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (333, '5440000000', '544. Crditos a corto plazo al personal', 333, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (334, '5450000000', '545. Dividendo a cobrar', 334, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (335, '5460000000', '546. Intereses a corto plazo de valores de renta fija', 335, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (336, '5470000000', '547. Intereses a corto plazo de crditos', 336, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (337, '5480000000', '548. Imposiciones a corto plazo', 337, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (338, '5490000000', '549. Desembolsos pendientes sobre acciones a corto plazo', 338, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (339, '5500000000', '550. Titular de la explotacin', 339, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (340, '5510000000', '551. Cuenta corriente con empresas del grupo', 340, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (341, '5520000000', '552. Cuenta corriente con empresas asociadas', 341, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (342, '5530000000', '553. Cuenta corriente con socios y administradores', 342, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (343, '5550000000', '555. Partidas pendientes de aplicacin', 343, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (344, '5560000000', '556. Desembolsos exigidos sobre acciones', 344, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (345, '5560000001', '5560. Desembolsos exigidos sobre acciones de empresas del grupo', 345, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (346, '5561000000', '5561. Desembolsos exigidos sobre acciones de empresas asociadas', 346, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (347, '5562000000', '5562. Desembolsos exigidos sobre acciones de otras empresas', 347, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (348, '5570000000', '557. Dividendo activo a cuenta', 348, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (349, '5580000000', '558. Accionistas por desembolsos exigidos', 349, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (350, '5600000000', '560. Fianzas recibidas a corto plazo', 350, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (351, '5610000000', '561. Depsitos recibidos a corto plazo', 351, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (352, '5650000000', '565. Fianzas constituidas a corto plazo', 352, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (353, '5660000000', '566. Depsitos constituidos a corto plazo', 353, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (354, '5700000000', '570. Caja, euros', 354, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (355, '5710000000', '571. Caja, moneda extranjera', 355, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (356, '5720000000', '572. Bancos e instituciones de crdito c/c. vista, euros', 356, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (357, '5730000000', '573. Bancos e instituciones de crdito c/c. vista, moneda extranjera', 357, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (358, '5740000000', '574. Bancos e instituciones de crdito, cuentas de ahorro, euros', 358, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (359, '5750000000', '575. Bancos e instituciones de crdito, cuentas de ahorro, moneda extranjera', 359, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (360, '5800000000', '580. Intereses pagados por anticipado', 360, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (361, '5850000000', '585. Intereses cobrados por anticipado', 361, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (362, '5930000000', '593. Provisin por depreciacin de valores negociables a c/p de empresas del grupo', 362, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (363, '5940000000', '594. Provisin por depreciacin de valores negociables a c/p de empresas asociadas', 363, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (364, '5950000000', '595. Provisin para insolvencias de crditos a c/p a empresas del grupo', 364, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (365, '5960000000', '596. Provisin para insolvencias de crditos a c/p a empresas asociadas', 365, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (366, '5970000000', '597. Provisin por depreciacin de valores negociables a c/p', 366, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (367, '5980000000', '598. Provisin para insolvencias de crditos a c/p', 367, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (368, '6000000000', '600. Compras de mercaderas', 368, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (369, '6010000000', '601. Compras de materias primas', 369, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (370, '6020000000', '602. Compras de otros aprovisionamientos', 370, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (371, '6070000000', '607. Trabajos realizados por otras empresas', 371, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (372, '6080000000', '608. Devoluciones de compras y operaciones similares', 372, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (373, '6080000001', '6080. Devoluciones de compras de mercaderas', 373, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (374, '6081000000', '6081. Devoluciones de compras de materias primas', 374, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (375, '6082000000', '6082. Devoluciones de compras de otros aprovisionamients', 375, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (376, '6090000000', '609. Rappels por compras', 376, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (377, '6090000001', '6090. Rappels por compras de mercaderas', 377, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (378, '6091000000', '6091. Rapels por compras de materias primas', 378, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (379, '6092000000', '6092. Rappels por compras de otros aprovisionamientos', 379, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (380, '6100000000', '610. Variacin de existencias de mercaderas', 380, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (381, '6110000000', '611. Variacin de existencias de materias primas', 381, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (382, '6120000000', '612. Variacin de existencias de otros aprovisionamientos', 382, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (383, '6200000000', '620. Gastos en investigacin y desarrollo del ejercicio', 383, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (384, '6210000000', '621. Arrendamientos y cnones', 384, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (385, '6220000000', '622. Reparaciones y conservacin', 385, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (386, '6230000000', '623. Servicios de profesionales independientes', 386, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (387, '6240000000', '624. Transportes', 387, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (388, '6250000000', '625. Primas de seguros', 388, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (389, '6260000000', '626. Servicios bancarios y similares', 389, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (390, '6270000000', '627. Publicidad, propaganda y relaciones pblicas', 390, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (391, '6280000000', '628. Suministros', 391, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (392, '6290000000', '629. Otros servicios', 392, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (393, '6300000000', '630. Impuesto sobre beneficios', 393, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (394, '6310000000', '631. Otros tributos', 394, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (395, '6320000000', '632. Sociedades transparentes, efecto impositivo', 395, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (396, '6320000001', '6320. Importes a cuenta no recuperables por entidades transparentes', 396, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (397, '6321000000', '6321. Importes a cuenta no recuperables por agrupaciones de inters econmico', 397, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (398, '6323000000', '6323. Ajustes negativos en la imposicin en sociedades transparentes', 398, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (399, '6328000000', '6328. Ajustes positivos en la imposicin en sociedades transparentes', 399, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (400, '6330000000', '633. Ajustes negativos en imposicion sobre beneficios', 400, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (401, '6340000000', '634. Ajustes negativos en la imposicion indirecta', 401, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (402, '6341000000', '6341. Ajustes negativos en IVA de circulante', 402, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (403, '6342000000', '6342. Ajustes negativos en IVA de inversiones', 403, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (404, '6343000000', '6343. Ajustes negativos en IGIC, de circulante', 404, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (405, '6344000000', '6344. Ajustes negativos en IGIC, de inversin', 405, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (406, '6350000000', '635. Impuesto sobre beneficios extranjero', 406, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (407, '6360000000', '636. Devolucin de impuestos', 407, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (408, '6370000000', '637. Imposicin indirecta, regmenes especiales', 408, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (409, '6371000000', '6371. Rgimen simplificado, IVA', 409, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (410, '6372000000', '6372. Rgimen simplificado, IGIC', 410, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (411, '6373000000', '6373. Rgimen de la agricultura,ganadera y pesca, IVA', 411, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (412, '6374000000', '6374. Rgimen de la agricultura y ganadera, IGIC', 412, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (413, '6380000000', '638. Ajustes positivos en imposicion sobre beneficios', 413, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (414, '6390000000', '639. Ajustes positivos en la imposicion indirecta', 414, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (415, '6391000000', '6391. Ajustes positivos en IVA de circulante', 415, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (416, '6392000000', '6392. Ajustes positivos en IVA de inversiones', 416, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (417, '6393000000', '6393. Ajustes positivos en IGIC de circulante', 417, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (418, '6394000000', '6394. Ajustes positivos en IGIC de inversin', 418, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (419, '6400000000', '640. Sueldos y salarios', 419, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (420, '6410000000', '641. Indemnizaciones', 420, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (421, '6420000000', '642. Seguridad Social a cargo de la empresa', 421, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (422, '6430000000', '643. Aportaciones a sistemas complementarios pensiones', 422, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (423, '6490000000', '649. Otros gastos sociales', 423, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (424, '6500000000', '650. Prdidas de crditos comerciales incobrables', 424, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (425, '6510000000', '651. Resultados de operaciones en comn', 425, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (426, '6510000001', '6510. Beneficio transferido (gestor)', 426, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (427, '6511000000', '6511. Prdida soportada (partcipe o asociado no gestor)', 427, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (428, '6590000000', '659. Otras prdidas en gestin corriente', 428, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (429, '6610000000', '661. Intereses de obligaciones y bonos', 429, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (430, '6610000001', '6610. Intereses de obligaciones y bonos l/p en empresas del grupo', 430, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (431, '6611000000', '6611. Intereses de obligaciones y bonos l/p en empresas asociadas', 431, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (432, '6613000000', '6613. Intereses de obligaciones y bonos l/p en otras empresas', 432, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (433, '6615000000', '6615. Intereses de obligaciones y bonos c/p en empresas del grupo', 433, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (434, '6616000000', '6616. Intereses de obligaciones y bonos c/p en empresas asociadas', 434, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (435, '6618000000', '6618. Intereses de obligaciones y bonos c/p en otras empresas', 435, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (436, '6620000000', '662. Intereses de deudas a largo plazo', 436, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (437, '6620000001', '6620. Intereses de deudas a l/p con empresas del grupo', 437, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (438, '6621000000', '6621. Intereses de deudas a l/p con empresas asociadas', 438, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (439, '6622000000', '6622. Intereses de deudas a l/p con entidades de crdito', 439, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (440, '6623000000', '6623. Intereses de deudas a l/p con otras empresas', 440, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (441, '6630000000', '663. Intereses de deudas a corto plazo', 441, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (442, '6630000001', '6630. Intereses de deudas a c/p con empresas del grupo', 442, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (443, '6631000000', '6631. Intereses de deudas a c/p con empresas asociadas', 443, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (444, '6632000000', '6632. Intereses de deudas a c/p con entidades de crdito', 444, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (445, '6633000000', '6633. Intereses de deudas a c/p con otras empresas', 445, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (446, '6640000000', '664. Intereses por descuento de efectos', 446, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (447, '6640000001', '6640. Intereses por descuento de efectos en entidades de crdito del grupo', 447, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (448, '6641000000', '6641. Intereses por descuento de efectos en entidades de crdito asociadas', 448, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (449, '6643000000', '6643. Intereses por descuento de efectos en otras entidades de crdito', 449, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (450, '6650000000', '665. Descuentos sobre ventas por pronto pago', 450, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (451, '6650000001', '6650. Descuentos sobre ventas por pronto pago a empresas del grupo', 451, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (452, '6651000000', '6651. Descuentos sobre ventas por pronto pago a empresas asociadas', 452, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (453, '6653000000', '6653. Descuentos sobre ventas por pronto pago a otras empresas', 453, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (454, '6660000000', '666. Prdidas en valores negociables', 454, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (455, '6660000001', '6660. Prdidas en valores negociables a l/p de empresas del grupo', 455, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (456, '6661000000', '6661. Prdidas en valores negociables a l/p de empresas asociadas', 456, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (457, '6663000000', '6663. Prdidas en valores negociables a l/p de otras empresas', 457, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (458, '6665000000', '6665. Prdidas en valores negociables a c/p de empresas del grupo', 458, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (459, '6666000000', '6666. Prdidas en valores negociables a c/p de empresas asociadas', 459, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (460, '6668000000', '6668. Prdidas en valores negociables a c/p de otras empresas', 460, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (461, '6670000000', '667. Prdidas de crditos', 461, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (462, '6670000001', '6670. Prdidas de crditos a l/p a empresas del grupo', 462, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (463, '6671000000', '6671. Prdidas de crditos a l/p a empresas asociadas', 463, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (464, '6673000000', '6673. Prdidas de crditos a l/p a otras empresas', 464, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (465, '6675000000', '6675. Prdidas de crditos a c/p a empresas del grupo', 465, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (466, '6676000000', '6676. Prdidas de crditos a c/p a empresas asociadas', 466, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (467, '6678000000', '6678. Prdidas de crditos a c/p a otras empresas', 467, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (468, '6680000000', '668. Diferencias negativas de cambio', 468, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (469, '6680000001', '6680. Diferencias negativas de cambio por la introduccin del euro', 469, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (470, '6681000000', '6681. Diferencias negativas de cambio', 470, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (471, '6690000000', '669. Otros gastos financieros', 471, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (472, '6690000001', '6690. Gastos por diferencias derivadas del redondeo del euro', 472, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (473, '6691000000', '6691. Otros gastos financieros', 473, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (474, '6700000000', '670. Prdidas procedentes de inmovilizado inmaterial', 474, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (475, '6710000000', '671. Prdidas procedentes de inmovilizado material', 475, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (476, '6720000000', '672. Prdidas procedentes de participaciones en capital a l/p de empresas del grupo', 476, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (477, '6730000000', '673. Prdidas procedentes de participaciones en capital a l/p de empresas asociadas', 477, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (478, '6740000000', '674. Prdidas por operaciones con acciones y obligaciones propias', 478, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (479, '6760000000', '676. Donaciones del inmovilizado material', 479, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (480, '6780000000', '678. Gastos extraordinarios', 480, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (481, '6780000001', '6780. Gastos producidos por la introduccin del euro', 481, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (482, '6781000000', '6781. Otros gastos extraordinarios', 482, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (483, '6790000000', '679. Gastos y prdidas de ejercicios anteriores', 483, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (484, '6800000000', '680. Amortizacin de gastos de establecimiento', 484, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (485, '6810000000', '681. Amortizacin del inmovilizado inmaterial', 485, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (486, '6820000000', '682. Amortizacin del inmovilizado material', 486, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (487, '6900000000', '690. Dotacin al fondo de reversin', 487, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (488, '6910000000', '691. Dotacin a la provisin de inmovilizado inmaterial', 488, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (489, '6920000000', '692. Dotacin a la provisin del inmovilizado material', 489, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (490, '6930000000', '693. Dotacin a la provisin de existencias', 490, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (491, '6940000000', '694. Dotacin a la provisin para insolvencias de trfico', 491, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (492, '6950000000', '695. Dotacin a la provisin para otras operaciones de trfico', 492, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (493, '6960000000', '696. Dotacin a la provisin para valores negociables a l/p', 493, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (494, '6960000001', '6960. Dotacin a la provisin para participaciones en capital a l/p de empresas del grupo', 494, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (495, '6961000000', '6961. Dotacin a la provisin para participaciones en capital a l/p de empresas asociadas', 495, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (496, '6963000000', '6963. Dotacin a la provisin para participaciones en capital a l/p de otras empresas', 496, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (497, '6965000000', '6965. Dotacin a la provisin para valores de renta fija a l/p de empresas del grupo', 497, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (498, '6966000000', '6966. Dotacin a la provisin para valores de renta fija a l/p de empresas asociadas', 498, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (499, '6970000000', '697. Dotacin a la provisin para insolvencias de crditos a l/p', 499, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (500, '6970000001', '6970. Dotacin a la provisin para insolvencias de crditos a l/p a empresas del grupo', 500, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (501, '6971000000', '6971. Dotacin a la provisin para insolvencias de crditos a l/p a empresas asociadas', 501, NULL); + +COMMIT WORK; + +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (502, '6973000000', '6973. Dotacin a la provisin para insolvencias de crditos a l/p a otras empresas', 502, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (503, '6980000000', '698. Dotacion a la provisin para valores negociables a c/p', 503, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (504, '6980000001', '6980. Dotacion a la provisin para valores negociables a c/p de empresas del grupo', 504, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (505, '6981000000', '6981. Dotacion a la provisin para valores negociables a c/p de empresas asociadas', 505, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (506, '6983000000', '6983. Dotacion a la provisin para valores negociables a c/p de otras empresas', 506, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (507, '6990000000', '699. Dotacin a la provisin para insolvencias de crditos a c/p', 507, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (508, '6990000001', '6990. Dotacin a la provisin para insolvencias de crditos a c/p a empresas del grupo', 508, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (509, '6991000000', '6991. Dotacin a la provisin para insolvencias de crditos a c/p a empresas asociadas', 509, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (510, '6993000000', '6993. Dotacin a la provisin para insolvencias de crditos a c/p a otras empresas', 510, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (511, '7000000000', '700. Ventas de mercaderas', 511, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (512, '7010000000', '701. Ventas de productos terminados', 512, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (513, '7020000000', '702. Ventas de productos semiterminados', 513, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (514, '7030000000', '703. Ventas de subproductos y residuos', 514, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (515, '7040000000', '704. Ventas de envases y embalajes', 515, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (516, '7050000000', '705. Prestaciones de servicios', 516, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (517, '7080000000', '708. Devoluciones de ventas y operaciones similares', 517, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (518, '7080000001', '7080. Devoluciones de ventas de mercaderas', 518, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (519, '7081000000', '7081. Devoluciones de ventas de productos terminados', 519, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (520, '7082000000', '7082. Devoluciones de ventas de productos semiterminados', 520, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (521, '7083000000', '7083. Devoluciones de ventas de subproductos y residuos', 521, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (522, '7084000000', '7084. Devoluciones de ventas de envases y embalajes', 522, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (523, '7090000000', '709. Rappels sobre ventas', 523, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (524, '7090000001', '7090. Rappels sobre ventas de mercaderas', 524, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (525, '7091000000', '7091. Rappels sobre ventas de productos terminados', 525, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (526, '7092000000', '7092. Rappels sobre ventas de productos semiterminados', 526, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (527, '7093000000', '7093. Rappels sobre ventas de subproductos y residuos', 527, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (528, '7094000000', '7094. Rappels sobre ventas de envases y embalajes', 528, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (529, '7100000000', '710. Variacin de existencias de productos en curso', 529, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (530, '7110000000', '711. Variacin de existencias de productos semiterminados', 530, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (531, '7120000000', '712. Variacin de existencias de productos terminados', 531, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (532, '7130000000', '713. Variacin de existencias de subproductos, residuos y materiales recuperados', 532, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (533, '7300000000', '730. Incorporacin al activo de gastos de establecimiento', 533, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (534, '7310000000', '731. Trabajos realizados para inmovilizado inmaterial', 534, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (535, '7320000000', '732. Trabajos realizados para inmovilizado material', 535, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (536, '7330000000', '733. Trabajos realizados para inmovilizado material en curso', 536, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (537, '7370000000', '737. Incorporacin al activo de gastos de formalizacin de deudas', 537, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (538, '7400000000', '740. Subvenciones oficiales a la explotacin', 538, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (539, '7410000000', '741. Otras subvenciones a la explotacin', 539, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (540, '7510000000', '751. Resultados de operaciones en comn', 540, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (541, '7510000001', '7510. Prdida transferida (gestor)', 541, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (542, '7511000000', '7511. Beneficio atribuido (partcipe o asociado no gestor)', 542, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (543, '7520000000', '752. Ingresos por arrendamientos', 543, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (544, '7530000000', '753. Ingresos de propiedad industrial cedida en explotacin', 544, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (545, '7540000000', '754. Ingresos por comisiones', 545, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (546, '7550000000', '755. Ingresos por servicios al personal', 546, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (547, '7590000000', '759. Ingresos por servicios diversos', 547, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (548, '7600000000', '760. Ingresos de participaciones en capital', 548, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (549, '7600000001', '7600. Ingresos de participaciones en capital de empresas del grupo', 549, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (550, '7601000000', '7601. Ingresos de participaciones en capital de empresas asociadas', 550, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (551, '7603000000', '7603. Ingresos de participaciones en capital de otras empresas', 551, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (552, '7610000000', '761. Ingresos de valores de renta fija', 552, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (553, '7610000001', '7610. Ingresos de valores renta fija de empresas del grupo', 553, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (554, '7611000000', '7611. Ingresos de valores renta fija de empresas asociadas', 554, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (555, '7613000000', '7613. Ingresos de valores renta fija de otras empresas', 555, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (556, '7618000000', '7618. Ingresos de participaciones en Fondos de Inversin en Activos del Mercado Monetario', 556, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (557, '7620000000', '762. Ingresos de crditos a largo plazo', 557, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (558, '7620000001', '7620. Ingresos de crditos a l/p a empresas del grupo', 558, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (559, '7621000000', '7621. Ingresos de crditos a l/p a empresas asociadas', 559, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (560, '7623000000', '7623. Ingresos de crditos a l/p a otras empresas', 560, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (561, '7630000000', '763. Ingresos de crditos a corto plazo', 561, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (562, '7630000001', '7630. Ingresos de crditos a c/p a empresas del grupo', 562, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (563, '7631000000', '7631. Ingresos de crditos a c/p a empresas asociadas', 563, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (564, '7633000000', '7633. Ingresos de crditos a c/p a otras empresas', 564, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (565, '7650000000', '765. Descuentos sobre compras por pronto pago', 565, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (566, '7650000001', '7650. Descuentos sobre compras por pronto pago de empresas del grupo', 566, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (567, '7651000000', '7651. Descuentos sobre compras por pronto pago de empresas asociadas', 567, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (568, '7653000000', '7653. Descuentos sobre compras por pronto pago de otras empresas', 568, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (569, '7660000000', '766. Beneficios en valores negociables', 569, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (570, '7660000001', '7660. Beneficios en valores negociables a l/p de empresas del grupo', 570, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (571, '7661000000', '7661. Beneficios en valores negociables a l/p de empresas asociadas', 571, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (572, '7663000000', '7663. Beneficios en valores negociables a l/p de otras empresas', 572, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (573, '7665000000', '7665. Beneficios en valores negociables a c/p de empresas del grupo', 573, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (574, '7666000000', '7666. Beneficios en valores negociables a c/p de empresas asociadas', 574, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (575, '7668000000', '7668. Beneficios en valores negociables a c/p de otras empresas', 575, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (576, '7680000000', '768. Diferencias positivas de cambio', 576, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (577, '7680000001', '7680. Diferencias positivas de cambio por la introduccin del euro', 577, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (578, '7681000000', '7681. Diferencias positivas de cambio', 578, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (579, '7690000000', '769. Otros ingresos financieros', 579, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (580, '7690000001', '7690. Ingresos por diferencias derivadas del redondeo del euro', 580, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (581, '7691000000', '7691. Otros ingresos financieros', 581, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (582, '7700000000', '770. Beneficios procedentes de inmovilizado inmaterial', 582, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (583, '7710000000', '771. Beneficios procedentes de inmovilizado material', 583, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (584, '7720000000', '772. Beneficios procedentes de participaciones en capital a l/p de empresas del grupo', 584, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (585, '7730000000', '773. Beneficios procedentes de participaciones en capital a l/p de empresas asociadas', 585, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (586, '7740000000', '774. Beneficios por operaciones con acciones y obligaciones propias', 586, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (587, '7750000000', '775. Subvenciones de capital traspasadas al resultado del ejercicio', 587, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (588, '7780000000', '778. Ingresos extraordinarios', 588, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (589, '7790000000', '779. Ingresos y beneficios de ejercicios anteriores', 589, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (590, '7900000000', '790. Exceso de provisin para riesgos y gastos', 590, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (591, '7910000000', '791. Exceso de provisin del inmovilizado inmaterial', 591, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (592, '7920000000', '792. Exceso de provisin del inmovilizado material', 592, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (593, '7930000000', '793. Provisin de existencias aplicada', 593, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (594, '7940000000', '794. Provisin para insolvencias de trfico aplicada', 594, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (595, '7950000000', '795. Provisin para otras operaciones de trfico aplicada', 595, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (596, '7960000000', '796. Exceso de provisin para valores negociables a l/p', 596, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (597, '7960000001', '7960. Exceso de provisin para participaciones en capital a l/p de empresas del grupo', 597, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (598, '7961000000', '7961. Exceso de provisin para participaciones en capital a l/p de empresas asociadas', 598, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (599, '7963000000', '7963. Exceso de provisin para valores negociables a l/p de otras empresas', 599, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (600, '7965000000', '7965. Exceso de provisin para valores de renta fija a l/p de empresas del grupo', 600, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (601, '7966000000', '7966. Exceso de provisin para valores de renta fija a l/p de empresas asociadas', 601, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (602, '7970000000', '797. Exceso de provisin para insolvencias de crditos a l/p', 602, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (603, '7970000001', '7970. Exceso de provisin para insolvencias de crditos a l/p de empresas del grupo', 603, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (604, '7971000000', '7971. Exceso de provisin para insolvencias de crditos a l/p de empresas asociadas', 604, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (605, '7973000000', '7973. Exceso de provisin para insolvencias de crditos a l/p de otras empresas', 605, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (606, '7980000000', '798. Exceso de provisin para valores negociables a c/p', 606, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (607, '7980000001', '7980. Exceso de provisin para valores negociables a c/p de empresas del grupo', 607, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (608, '7981000000', '7981. Exceso de provisin para valores negociables a c/p de empresas asociadas', 608, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (609, '7983000000', '7983. Exceso de provisin para valores negociables a c/p de otras empresas', 609, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (610, '7990000000', '799. Exceso de provisin para insolvencias de crditos a c/p', 610, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (611, '7990000001', '7990. Exceso de provisin para insolvencias de crditos a c/p de empresas del grupo', 611, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (612, '7991000000', '7991. Exceso de provisin para insolvencias de crditos a c/p de empresas asociadas', 612, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (613, '7993000000', '7993. Exceso de provisin para insolvencias de crditos a c/p de otras empresas', 613, NULL); +INSERT INTO CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_CUENTA, ID_EJERCICIO) VALUES (1228, '4300000001', 'cliente base', 209, NULL); + +COMMIT WORK; diff --git a/Database/scripts/factuges.sql b/Database/scripts/factuges.sql new file mode 100644 index 00000000..3e263068 --- /dev/null +++ b/Database/scripts/factuges.sql @@ -0,0 +1,2488 @@ +/******************************************************************************/ +/**** Generated by IBExpert 2007.05.03 12/11/2007 21:23:54 ****/ +/******************************************************************************/ + +SET SQL DIALECT 3; + +SET NAMES ISO8859_1; + +CREATE DATABASE 'FACTUGES.FDB' +PAGE_SIZE 4096 +DEFAULT CHARACTER SET ISO8859_1; + + + +/******************************************************************************/ +/**** User Defined Functions ****/ +/******************************************************************************/ + +DECLARE EXTERNAL FUNCTION F_RTFTOTEXT + CSTRING(254) + RETURNS CSTRING(254) + ENTRY_POINT 'RtfToText' MODULE_NAME 'udf_RtfToText.dll'; + + +DECLARE EXTERNAL FUNCTION MOD + INTEGER, + INTEGER + RETURNS DOUBLE PRECISION BY VALUE + ENTRY_POINT 'IB_UDF_mod' MODULE_NAME 'ib_udf'; + + +DECLARE EXTERNAL FUNCTION STRLEN + CSTRING(32767) + RETURNS INTEGER BY VALUE + ENTRY_POINT 'IB_UDF_strlen' MODULE_NAME 'ib_udf'; + + +DECLARE EXTERNAL FUNCTION SUBSTR + CSTRING(255), + SMALLINT, + SMALLINT + RETURNS CSTRING(255) FREE_IT + ENTRY_POINT 'IB_UDF_substr' MODULE_NAME 'ib_udf'; + + + + +/******************************************************************************/ +/**** Domains ****/ +/******************************************************************************/ + +CREATE DOMAIN TIPO_BINARIO AS +BLOB SUB_TYPE 0 SEGMENT SIZE 80; + +CREATE DOMAIN TIPO_BOOLEANO AS +SMALLINT; + +CREATE DOMAIN TIPO_CONCEPTO AS +VARCHAR(2000); + +CREATE DOMAIN TIPO_ID AS +INTEGER; + +CREATE DOMAIN TIPO_IMPORTE AS +NUMERIC(11,2); + +CREATE DOMAIN TIPO_NOTAS AS +BLOB SUB_TYPE 1 SEGMENT SIZE 80; + +CREATE DOMAIN TIPO_PERFIL AS +VARCHAR(15); + +CREATE DOMAIN TIPO_PORCENTAJE AS +FLOAT; + +CREATE DOMAIN TIPO_USUARIO AS +VARCHAR(30); + + + +/******************************************************************************/ +/**** Generators ****/ +/******************************************************************************/ + +CREATE GENERATOR GEN_AGENTES_COMISIONES_ID; +SET GENERATOR GEN_AGENTES_COMISIONES_ID TO 0; + +CREATE GENERATOR GEN_ALBARANES_CLI_DETALLES_ID; +SET GENERATOR GEN_ALBARANES_CLI_DETALLES_ID TO 4; + +CREATE GENERATOR GEN_ALBARANES_CLI_ID; +SET GENERATOR GEN_ALBARANES_CLI_ID TO 7; + +CREATE GENERATOR GEN_ALBARANES_PRO_DETALLES_ID; +SET GENERATOR GEN_ALBARANES_PRO_DETALLES_ID TO 3; + +CREATE GENERATOR GEN_ALBARANES_PRO_ID; +SET GENERATOR GEN_ALBARANES_PRO_ID TO 2; + +CREATE GENERATOR GEN_ALMACENES_ID; +SET GENERATOR GEN_ALMACENES_ID TO 3; + +CREATE GENERATOR GEN_ARTICULOS_ID; +SET GENERATOR GEN_ARTICULOS_ID TO 5; + +CREATE GENERATOR GEN_CATEGORIAS_ID; +SET GENERATOR GEN_CATEGORIAS_ID TO 0; + +CREATE GENERATOR GEN_CLIENTES_DTOS_PROV_ID; +SET GENERATOR GEN_CLIENTES_DTOS_PROV_ID TO 0; + +CREATE GENERATOR GEN_COMISIONES_LIQUID_ID; +SET GENERATOR GEN_COMISIONES_LIQUID_ID TO 0; + +CREATE GENERATOR GEN_CONTACTOS_DATOS_BANCO_ID; +SET GENERATOR GEN_CONTACTOS_DATOS_BANCO_ID TO 0; + +CREATE GENERATOR GEN_CONTACTOS_DIR_ID; +SET GENERATOR GEN_CONTACTOS_DIR_ID TO 3; + +CREATE GENERATOR GEN_CONTACTOS_ID; +SET GENERATOR GEN_CONTACTOS_ID TO 2001; + +CREATE GENERATOR GEN_EMPRESAS_DATOS_BANCO_ID; +SET GENERATOR GEN_EMPRESAS_DATOS_BANCO_ID TO 0; + +CREATE GENERATOR GEN_EMPRESAS_ID; +SET GENERATOR GEN_EMPRESAS_ID TO 0; + +CREATE GENERATOR GEN_FACTURAS_CLIENTE_ID; +SET GENERATOR GEN_FACTURAS_CLIENTE_ID TO 23; + +CREATE GENERATOR GEN_FACTURAS_PROVEEDOR_ID; +SET GENERATOR GEN_FACTURAS_PROVEEDOR_ID TO 0; + +CREATE GENERATOR GEN_FACTURA_CLIENTE_DETALLES_ID; +SET GENERATOR GEN_FACTURA_CLIENTE_DETALLES_ID TO 20; + +CREATE GENERATOR GEN_FACTURA_PROV_DETALLES_ID; +SET GENERATOR GEN_FACTURA_PROV_DETALLES_ID TO 0; + +CREATE GENERATOR GEN_FORMAS_PAGO_ID; +SET GENERATOR GEN_FORMAS_PAGO_ID TO 13; + +CREATE GENERATOR GEN_FORMAS_PAGO_PLAZOS_ID; +SET GENERATOR GEN_FORMAS_PAGO_PLAZOS_ID TO 10; + +CREATE GENERATOR GEN_F_PERFILES_ID; +SET GENERATOR GEN_F_PERFILES_ID TO 0; + +CREATE GENERATOR GEN_INFORMES_ID; +SET GENERATOR GEN_INFORMES_ID TO 0; + +CREATE GENERATOR GEN_MOVIMIENTOS_ID; +SET GENERATOR GEN_MOVIMIENTOS_ID TO 0; + +CREATE GENERATOR GEN_PAGOS_CLIENTE_ID; +SET GENERATOR GEN_PAGOS_CLIENTE_ID TO 8; + +CREATE GENERATOR GEN_PAGOS_PROVEEDOR_ID; +SET GENERATOR GEN_PAGOS_PROVEEDOR_ID TO 0; + +CREATE GENERATOR GEN_PEDIDOS_CLI_DETALLES_ID; +SET GENERATOR GEN_PEDIDOS_CLI_DETALLES_ID TO 0; + +CREATE GENERATOR GEN_PEDIDOS_CLI_ID; +SET GENERATOR GEN_PEDIDOS_CLI_ID TO 0; + +CREATE GENERATOR GEN_PEDIDOS_PROV_DETALLES_ID; +SET GENERATOR GEN_PEDIDOS_PROV_DETALLES_ID TO 7; + +CREATE GENERATOR GEN_PEDIDOS_PROV_ID; +SET GENERATOR GEN_PEDIDOS_PROV_ID TO 2; + +CREATE GENERATOR GEN_PRESUPUESTOS_CLI_DETALLE_ID; +SET GENERATOR GEN_PRESUPUESTOS_CLI_DETALLE_ID TO 50; + +CREATE GENERATOR GEN_PRESUPUESTOS_CLI_ID; +SET GENERATOR GEN_PRESUPUESTOS_CLI_ID TO 30; + +CREATE GENERATOR GEN_RECIBOS_CLIENTE_ID; +SET GENERATOR GEN_RECIBOS_CLIENTE_ID TO 6; + +CREATE GENERATOR GEN_RECIBOS_PROVEEDOR_ID; +SET GENERATOR GEN_RECIBOS_PROVEEDOR_ID TO 0; + +CREATE GENERATOR GEN_REMESAS_CLIENTE_ID; +SET GENERATOR GEN_REMESAS_CLIENTE_ID TO 0; + +CREATE GENERATOR GEN_REMESAS_PROVEEDOR_ID; +SET GENERATOR GEN_REMESAS_PROVEEDOR_ID TO 0; + +CREATE GENERATOR GEN_TIENDA_WEB_ID; +SET GENERATOR GEN_TIENDA_WEB_ID TO 0; + +CREATE GENERATOR GEN_TIPOS_IVA_ID; +SET GENERATOR GEN_TIPOS_IVA_ID TO 9; + +CREATE GENERATOR GEN_USUARIOS_ID; +SET GENERATOR GEN_USUARIOS_ID TO 0; + + + +/******************************************************************************/ +/**** Tables ****/ +/******************************************************************************/ + + + +CREATE TABLE AGENTES_COMISIONES ( + ID TIPO_ID NOT NULL, + ID_AGENTE TIPO_ID DEFAULT 0 NOT NULL, + ID_PROVEEDOR SMALLINT DEFAULT 0 NOT NULL, + COMISION TIPO_PORCENTAJE DEFAULT 0 +); + +CREATE TABLE ALBARANES_CLIENTE ( + ID TIPO_ID NOT NULL, + ID_EMPRESA TIPO_ID, + ID_CLIENTE TIPO_ID, + FECHA_ALBARAN DATE, + ID_ALMACEN TIPO_ID, + ID_PEDIDO TIPO_ID, + ID_FACTURA TIPO_ID, + REFERENCIA VARCHAR(255), + CALLE VARCHAR(255), + CODIGO_POSTAL VARCHAR(10), + POBLACION VARCHAR(255), + PROVINCIA VARCHAR(255), + PERSONA_CONTACTO VARCHAR(255), + TELEFONO VARCHAR(25), + IMPORTE_NETO TIPO_IMPORTE, + IMPORTE_PORTE TIPO_IMPORTE, + DESCUENTO TIPO_PORCENTAJE, + IMPORTE_DESCUENTO TIPO_IMPORTE, + BASE_IMPONIBLE TIPO_IMPORTE, + IVA TIPO_PORCENTAJE, + IMPORTE_IVA TIPO_IMPORTE, + IMPORTE_TOTAL TIPO_IMPORTE, + OBSERVACIONES TIPO_NOTAS, + INCIDENCIAS TIPO_NOTAS, + INCIDENCIAS_ACTIVAS SMALLINT DEFAULT 0 NOT NULL, + FECHA_ALTA TIMESTAMP, + FECHA_MODIFICACION TIMESTAMP, + USUARIO TIPO_USUARIO, + ID_FORMA_PAGO TIPO_ID, + FECHA_ENVIO DATE, + FECHA_RECEPCION DATE, + FECHA_PREVISTA_ENVIO DATE, + REFERENCIA_CLIENTE VARCHAR(255) COLLATE ES_ES +); + +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_PORTE TIPO_IMPORTE, + IMPORTE_TOTAL TIPO_IMPORTE, + VISIBLE TIPO_BOOLEANO, + FECHA_ALTA TIMESTAMP, + FECHA_MODIFICACION TIMESTAMP +); + +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, + INCIDENCIAS TIPO_NOTAS, + INCIDENCIAS_ACTIVAS SMALLINT DEFAULT 0 NOT NULL, + FECHA_ALTA TIMESTAMP, + FECHA_MODIFICACION TIMESTAMP, + USUARIO TIPO_USUARIO, + ID_ALMACEN TIPO_ID, + ID_FORMA_PAGO TIPO_ID, + IMPORTE_NETO TIPO_IMPORTE, + IMPORTE_PORTE TIPO_IMPORTE, + REFERENCIA_PROVEEDOR VARCHAR(255), + REF_FACTURA_PROV VARCHAR(255) +); + +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_PORTE TIPO_IMPORTE, + IMPORTE_TOTAL TIPO_IMPORTE, + VISIBLE TIPO_BOOLEANO, + FECHA_ALTA TIMESTAMP, + FECHA_MODIFICACION TIMESTAMP +); + +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 +); + +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, + INVENTARIABLE TIPO_BOOLEANO, + ELIMINADO TIPO_BOOLEANO +); + +CREATE TABLE CATEGORIAS ( + ID TIPO_ID NOT NULL, + CATEGORIA VARCHAR(255) NOT NULL +); + +CREATE TABLE CLIENTES_DATOS ( + ID_CLIENTE TIPO_ID NOT NULL, + ID_AGENTE TIPO_ID, + GRUPO_CLIENTE VARCHAR(255), + NOMBRE_COMERCIAL VARCHAR(255), + VENCIMIENTO_FACTURAS INTEGER, + BLOQUEADO TIPO_BOOLEANO DEFAULT 0 NOT NULL, + REGIMEN_IVA VARCHAR(255), + MOTIVO_BLOQUEO VARCHAR(255), + RECARGO_EQUIVALENCIA TIPO_BOOLEANO, + ID_TIPO_IVA TIPO_ID, + ID_FORMA_PAGO TIPO_ID, + TIENDA_WEB TIPO_BOOLEANO, + DESCUENTO TIPO_PORCENTAJE, + CODIGO_ASIGNADO VARCHAR(255) +); + +CREATE TABLE CLIENTES_DTOS_PROVEEDORES ( + ID TIPO_ID NOT NULL, + ID_CLIENTE TIPO_ID DEFAULT 0 NOT NULL, + ID_PROVEEDOR SMALLINT DEFAULT 0 NOT NULL, + DESCUENTO TIPO_PORCENTAJE DEFAULT 0 +); + +CREATE TABLE CLIENTES_GRUPOS ( + DESCRIPCION VARCHAR(255) +); + +CREATE TABLE COMISIONES_LIQUIDADAS ( + ID TIPO_ID NOT NULL, + ID_EMPRESA TIPO_ID, + REFERENCIA VARCHAR(255), + ID_AGENTE TIPO_ID, + DESCRIPCION VARCHAR(255), + FECHA DATE, + IMPORTE_TOTAL TIPO_IMPORTE, + FECHA_ALTA TIMESTAMP, + FECHA_MODIFICACION TIMESTAMP, + USUARIO TIPO_USUARIO +); + +CREATE TABLE CONFIGURACION ( + CODIGO VARCHAR(50) NOT NULL, + VALOR VARCHAR(255) NOT NULL, + ID_EMPRESA TIPO_ID +); + +CREATE TABLE CONTACTOS ( + ID TIPO_ID NOT NULL, + NIF_CIF VARCHAR(15), + NOMBRE VARCHAR(255) NOT NULL, + CALLE VARCHAR(255), + POBLACION VARCHAR(255), + PROVINCIA VARCHAR(255), + CODIGO_POSTAL VARCHAR(10), + TELEFONO_1 VARCHAR(25), + TELEFONO_2 VARCHAR(25), + MOVIL_1 VARCHAR(25), + MOVIL_2 VARCHAR(25), + FAX VARCHAR(25), + EMAIL_1 VARCHAR(255), + EMAIL_2 VARCHAR(255), + PAGINA_WEB VARCHAR(255), + NOTAS TIPO_NOTAS, + FECHA_ALTA TIMESTAMP, + FECHA_MODIFICACION TIMESTAMP, + USUARIO TIPO_USUARIO, + REFERENCIA VARCHAR(255), + PERSONA_CONTACTO VARCHAR(255) +); + +CREATE TABLE CONTACTOS_CATEGORIAS ( + ID_CONTACTO TIPO_ID NOT NULL, + ID_CATEGORIA TIPO_ID NOT NULL +); + +CREATE TABLE CONTACTOS_DATOS_BANCO ( + ID TIPO_ID NOT NULL, + ID_CONTACTO TIPO_ID NOT NULL, + TITULAR VARCHAR(255), + ENTIDAD VARCHAR(15), + SUCURSAL VARCHAR(15), + DC VARCHAR(15), + CUENTA VARCHAR(15), + FECHA_ALTA TIMESTAMP, + FECHA_MODIFICACION TIMESTAMP +); + +CREATE TABLE CONTACTOS_DIRECCIONES ( + ID TIPO_ID NOT NULL, + ID_CONTACTO TIPO_ID NOT NULL, + CALLE VARCHAR(255), + POBLACION VARCHAR(255), + PROVINCIA VARCHAR(255), + CODIGO_POSTAL VARCHAR(10), + PERSONA_CONTACTO VARCHAR(255), + NOMBRE VARCHAR(255), + TELEFONO VARCHAR(25), + MOVIL VARCHAR(25), + FAX VARCHAR(25), + EMAIL VARCHAR(255), + NOTAS TIPO_NOTAS, + PORTE TIPO_IMPORTE, + FECHA_ALTA TIMESTAMP, + FECHA_MODIFICACION TIMESTAMP +); + +CREATE TABLE EMPLEADOS_DATOS ( + ID_EMPLEADO TIPO_ID NOT NULL, + FECHA_NACIMIENTO DATE, + CATEGORIA VARCHAR(255), + FECHA_ALTA_EMPRESA DATE, + FORMACION_BASE TIPO_NOTAS, + FORMACION_COMPLE TIPO_NOTAS, + FORMACION_RECIBIDA TIPO_NOTAS, + EXPERIENCIA TIPO_NOTAS +); + +CREATE TABLE EMPLEADOS_GRUPOS ( + DESCRIPCION VARCHAR(255) +); + +CREATE TABLE EMPRESAS ( + ID TIPO_ID NOT NULL, + NIF_CIF VARCHAR(15), + NOMBRE VARCHAR(255), + RAZON_SOCIAL VARCHAR(255), + CALLE VARCHAR(255), + POBLACION VARCHAR(255), + PROVINCIA VARCHAR(255), + CODIGO_POSTAL VARCHAR(10), + TELEFONO_1 VARCHAR(25), + TELEFONO_2 VARCHAR(25), + MOVIL_1 VARCHAR(25), + MOVIL_2 VARCHAR(25), + FAX VARCHAR(25), + EMAIL_1 VARCHAR(255), + EMAIL_2 VARCHAR(255), + PAGINA_WEB VARCHAR(255), + NOTAS TIPO_NOTAS, + FECHA_ALTA TIMESTAMP, + FECHA_MODIFICACION TIMESTAMP, + USUARIO TIPO_USUARIO, + LOGOTIPO TIPO_BINARIO, + REGISTRO_MERCANTIL VARCHAR(255), + IVA TIPO_PORCENTAJE +); + +CREATE TABLE EMPRESAS_CONTACTOS ( + ID_EMPRESA TIPO_ID NOT NULL, + ID_CONTACTO TIPO_ID NOT NULL +); + +CREATE TABLE EMPRESAS_DATOS_BANCO ( + ID TIPO_ID NOT NULL, + ID_EMPRESA TIPO_ID NOT NULL, + NOMBRE VARCHAR(255), + ENTIDAD VARCHAR(15), + SUCURSAL VARCHAR(15), + DC VARCHAR(15), + CUENTA VARCHAR(15), + SUFIJO_N19 VARCHAR(3), + SUFIJO_N58 VARCHAR(3) +); + +CREATE TABLE EMPRESAS_USUARIOS ( + ID_EMPRESA TIPO_ID NOT NULL, + ID_USUARIO TIPO_ID NOT NULL +); + +CREATE TABLE F_PERFILES ( + ID TIPO_ID NOT NULL, + PERFIL TIPO_PERFIL NOT NULL +); + +CREATE TABLE F_PERFILES_USUARIOS ( + ID_PERFIL TIPO_ID NOT NULL, + ID_USUARIO TIPO_ID NOT NULL +); + +CREATE TABLE F_USUARIOS ( + ID TIPO_ID NOT NULL, + USUARIO TIPO_USUARIO NOT NULL, + ACTIVO TIPO_BOOLEANO, + LAST_LOGIN TIMESTAMP, + PASS VARCHAR(10) +); + +CREATE TABLE FACTURAS_CLIENTE ( + ID TIPO_ID NOT NULL, + ID_EMPRESA TIPO_ID, + REFERENCIA VARCHAR(255), + FECHA_FACTURA DATE, + BASE_IMPONIBLE TIPO_IMPORTE, + DESCUENTO TIPO_PORCENTAJE, + IMPORTE_DESCUENTO TIPO_IMPORTE, + IVA TIPO_PORCENTAJE, + IMPORTE_IVA TIPO_IMPORTE, + RE TIPO_PORCENTAJE, + IMPORTE_RE TIPO_IMPORTE, + IMPORTE_TOTAL TIPO_IMPORTE, + OBSERVACIONES TIPO_NOTAS, + ID_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, + ID_FORMA_PAGO TIPO_ID, + IMPORTE_NETO TIPO_IMPORTE, + IMPORTE_PORTE TIPO_IMPORTE, + ID_TIPO_IVA TIPO_ID, + RECARGO_EQUIVALENCIA TIPO_BOOLEANO, + ID_COMISION_LIQUIDADA TIPO_ID +); + +CREATE TABLE FACTURAS_CLIENTE_DETALLES ( + ID TIPO_ID NOT NULL, + ID_FACTURA 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_PORTE TIPO_IMPORTE, + IMPORTE_TOTAL TIPO_IMPORTE, + VISIBLE TIPO_BOOLEANO, + FECHA_ALTA TIMESTAMP, + FECHA_MODIFICACION TIMESTAMP +); + +CREATE TABLE FACTURAS_PROVEEDOR ( + ID TIPO_ID NOT NULL, + ID_EMPRESA TIPO_ID, + REFERENCIA VARCHAR(255), + REFERENCIA_PROVEEDOR VARCHAR(255), + FECHA_FACTURA DATE, + BASE_IMPONIBLE TIPO_IMPORTE, + DESCUENTO TIPO_PORCENTAJE, + IMPORTE_DESCUENTO TIPO_IMPORTE, + IVA TIPO_PORCENTAJE, + IMPORTE_IVA TIPO_IMPORTE, + RE TIPO_PORCENTAJE, + IMPORTE_RE TIPO_IMPORTE, + IMPORTE_TOTAL TIPO_IMPORTE, + OBSERVACIONES TIPO_NOTAS, + ID_PROVEEDOR TIPO_ID, + NIF_CIF VARCHAR(15), + NOMBRE VARCHAR(255), + CALLE VARCHAR(255), + POBLACION VARCHAR(255), + PROVINCIA VARCHAR(255), + CODIGO_POSTAL VARCHAR(10), + FECHA_ALTA TIMESTAMP, + FECHA_MODIFICACION TIMESTAMP, + USUARIO TIPO_USUARIO, + ID_FORMA_PAGO TIPO_ID, + IMPORTE_NETO TIPO_IMPORTE, + IMPORTE_PORTE TIPO_IMPORTE, + ID_TIPO_IVA TIPO_ID, + RECARGO_EQUIVALENCIA TIPO_BOOLEANO +); + +CREATE TABLE FACTURAS_PROVEEDOR_DETALLES ( + ID TIPO_ID NOT NULL, + ID_FACTURA 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_PORTE TIPO_IMPORTE, + IMPORTE_TOTAL TIPO_IMPORTE, + VISIBLE TIPO_BOOLEANO, + FECHA_ALTA TIMESTAMP, + FECHA_MODIFICACION TIMESTAMP +); + +CREATE TABLE FAMILIAS ( + DESCRIPCION VARCHAR(255) +); + +CREATE TABLE FORMAS_PAGO ( + ID TIPO_ID NOT NULL, + REFERENCIA VARCHAR(255), + DESCRIPCION VARCHAR(255), + TITULAR VARCHAR(255), + ENTIDAD VARCHAR(15), + SUCURSAL VARCHAR(15), + DC VARCHAR(15), + CUENTA VARCHAR(15) +); + +CREATE TABLE FORMAS_PAGO_PLAZOS ( + ID TIPO_ID NOT NULL, + ID_FORMA_PAGO TIPO_ID NOT NULL, + NUM_DIAS SMALLINT, + PORCENTAJE TIPO_PORCENTAJE +); + +CREATE TABLE INFORMES ( + ID SMALLINT NOT NULL, + ID_EMPRESA TIPO_ID, + CATEGORIA VARCHAR(30), + CONTROLLER VARCHAR(255), + ICONO SMALLINT, + NOMBRE VARCHAR(50), + DESCRIPCION VARCHAR(255), + ORDEN SMALLINT, + MODIFICABLE CHAR(1), + VISTA BLOB SUB_TYPE 2 SEGMENT SIZE 4096 +); + +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 +); + +CREATE TABLE PAGOS_CLIENTE ( + ID TIPO_ID NOT NULL, + ID_RECIBO TIPO_ID, + TIPO VARCHAR(255), + FECHA_PAGO DATE, + TITULAR VARCHAR(255), + ENTIDAD VARCHAR(15), + SUCURSAL VARCHAR(15), + DC VARCHAR(15), + CUENTA VARCHAR(15), + FECHA_ALTA DATE, + FECHA_MODIFICACION DATE, + USUARIO TIPO_USUARIO +); + +CREATE TABLE PAGOS_PROVEEDOR ( + ID TIPO_ID NOT NULL, + ID_RECIBO TIPO_ID, + TIPO VARCHAR(255), + FECHA_PAGO DATE, + TITULAR VARCHAR(255), + ENTIDAD VARCHAR(15), + SUCURSAL VARCHAR(15), + DC VARCHAR(15), + CUENTA VARCHAR(15), + FECHA_ALTA DATE, + FECHA_MODIFICACION DATE, + USUARIO TIPO_USUARIO +); + +CREATE TABLE PEDIDOS_CLIENTE ( + ID TIPO_ID NOT NULL, + ID_EMPRESA TIPO_ID, + ID_CLIENTE TIPO_ID, + REFERENCIA VARCHAR(255), + FECHA_PEDIDO DATE, + CALLE VARCHAR(255), + CODIGO_POSTAL VARCHAR(10), + POBLACION VARCHAR(255), + PROVINCIA VARCHAR(255), + PERSONA_CONTACTO VARCHAR(255), + TELEFONO VARCHAR(25), + OBSERVACIONES TIPO_NOTAS, + INCIDENCIAS TIPO_NOTAS, + INCIDENCIAS_ACTIVAS SMALLINT DEFAULT 0 NOT NULL, + FECHA_ALTA TIMESTAMP, + FECHA_MODIFICACION TIMESTAMP, + USUARIO TIPO_USUARIO, + IMPORTE_NETO TIPO_IMPORTE, + IMPORTE_PORTE TIPO_IMPORTE, + DESCUENTO TIPO_PORCENTAJE, + IMPORTE_DESCUENTO TIPO_IMPORTE, + BASE_IMPONIBLE TIPO_IMPORTE, + IVA TIPO_PORCENTAJE, + IMPORTE_IVA TIPO_IMPORTE, + IMPORTE_TOTAL TIPO_IMPORTE, + ID_FORMA_PAGO TIPO_ID, + REF_TIENDA_WEB INTEGER, + FECHA_PREVISTA_ENVIO DATE, + REFERENCIA_CLIENTE VARCHAR(255) COLLATE ES_ES +); + +CREATE TABLE PEDIDOS_CLIENTE_DETALLES ( + ID TIPO_ID NOT NULL, + ID_PEDIDO 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_PORTE TIPO_IMPORTE, + IMPORTE_TOTAL TIPO_IMPORTE, + VISIBLE TIPO_BOOLEANO, + FECHA_ALTA TIMESTAMP, + FECHA_MODIFICACION TIMESTAMP +); + +CREATE TABLE PEDIDOS_PROVEEDOR ( + ID TIPO_ID NOT NULL, + ID_EMPRESA TIPO_ID, + ID_PROVEEDOR TIPO_ID, + REFERENCIA VARCHAR(255), + FECHA_PEDIDO DATE, + FECHA_CONFIRMACION DATE, + FECHA_ENTREGA DATE, + ID_ALMACEN TIPO_ID, + OBSERVACIONES TIPO_NOTAS, + INCIDENCIAS TIPO_NOTAS, + INCIDENCIAS_ACTIVAS SMALLINT DEFAULT 0 NOT NULL, + FECHA_ALTA TIMESTAMP, + FECHA_MODIFICACION TIMESTAMP, + USUARIO TIPO_USUARIO, + CALLE VARCHAR(255), + CODIGO_POSTAL VARCHAR(10), + POBLACION VARCHAR(255), + PROVINCIA VARCHAR(255), + PERSONA_CONTACTO VARCHAR(255), + TELEFONO VARCHAR(25), + ID_PEDIDO_CLIENTE TIPO_ID, + IMPORTE_NETO TIPO_IMPORTE, + IMPORTE_PORTE TIPO_IMPORTE, + DESCUENTO TIPO_PORCENTAJE, + IMPORTE_DESCUENTO TIPO_IMPORTE, + BASE_IMPONIBLE TIPO_IMPORTE, + IVA TIPO_PORCENTAJE, + IMPORTE_IVA TIPO_IMPORTE, + IMPORTE_TOTAL TIPO_IMPORTE, + ID_FORMA_PAGO TIPO_ID, + FECHA_ENVIO DATE +); + +CREATE TABLE PEDIDOS_PROVEEDOR_DETALLES ( + ID TIPO_ID NOT NULL, + ID_PEDIDO 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_PORTE TIPO_IMPORTE, + IMPORTE_TOTAL TIPO_IMPORTE, + VISIBLE TIPO_BOOLEANO, + FECHA_ALTA TIMESTAMP, + FECHA_MODIFICACION TIMESTAMP +); + +CREATE TABLE PERMISOS ( + ID_USUARIO TIPO_ID, + MODULO VARCHAR(50), + NOMBRECOMP VARCHAR(50), + CHECKSUM VARCHAR(250) +); + +CREATE TABLE PERMISOSEX ( + ID_USUARIO TIPO_ID, + MODULO VARCHAR(50), + NOMBRECOMP VARCHAR(50), + NOMBREFORM VARCHAR(50), + CHECKSUM VARCHAR(250) +); + +CREATE TABLE PRESUPUESTOS_CLIENTE ( + ID TIPO_ID NOT NULL, + ID_EMPRESA TIPO_ID, + ID_CLIENTE TIPO_ID, + REFERENCIA VARCHAR(255), + FECHA_PRESUPUESTO DATE, + FECHA_DECISION DATE, + SITUACION VARCHAR(255), + PORTADA TIPO_NOTAS, + MEMORIA TIPO_NOTAS, + OBSERVACIONES TIPO_NOTAS, + INCIDENCIAS TIPO_NOTAS, + INCIDENCIAS_ACTIVAS SMALLINT DEFAULT 0 NOT NULL, + FECHA_ALTA TIMESTAMP, + FECHA_MODIFICACION TIMESTAMP, + USUARIO TIPO_USUARIO, + IMPORTE_NETO TIPO_IMPORTE, + IMPORTE_PORTE TIPO_IMPORTE, + DESCUENTO TIPO_PORCENTAJE, + IMPORTE_DESCUENTO TIPO_IMPORTE, + BASE_IMPONIBLE TIPO_IMPORTE, + IVA TIPO_PORCENTAJE, + IMPORTE_IVA TIPO_IMPORTE, + IMPORTE_TOTAL TIPO_IMPORTE, + ID_FORMA_PAGO TIPO_ID, + REFERENCIA_CLIENTE VARCHAR(255) COLLATE ES_ES, + CLIENTE_FINAL VARCHAR(255) COLLATE ES_ES +); + +CREATE TABLE PRESUPUESTOS_CLIENTE_DETALLES ( + ID TIPO_ID NOT NULL, + ID_PRESUPUESTO 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_PORTE TIPO_IMPORTE, + IMPORTE_TOTAL TIPO_IMPORTE, + VISIBLE TIPO_BOOLEANO, + FECHA_ALTA TIMESTAMP, + FECHA_MODIFICACION TIMESTAMP +); + +CREATE TABLE PROVEEDORES_DATOS ( + ID_PROVEEDOR TIPO_ID NOT NULL, + DESCUENTO TIPO_PORCENTAJE, + REGIMEN_IVA VARCHAR(255), + ID_TIPO_IVA TIPO_ID, + ID_FORMA_PAGO TIPO_ID, + TIENDA_WEB TIPO_BOOLEANO, + GRUPO_PROVEEDOR VARCHAR(255), + DESCRIPCION_PROVEEDOR VARCHAR(255), + CODIGO_ASIGNADO VARCHAR(255), + CERTIFICACION VARCHAR(255), + HOMOLOGADO SMALLINT +); + +CREATE TABLE PROVEEDORES_GRUPOS ( + DESCRIPCION VARCHAR(255) +); + +CREATE TABLE RECIBOS_CLIENTE ( + ID TIPO_ID NOT NULL, + ID_FACTURA TIPO_ID, + REFERENCIA VARCHAR(255), + FECHA_EMISION DATE, + FECHA_VENCIMIENTO DATE, + DESCRIPCION VARCHAR(255), + OBSERVACIONES VARCHAR(255), + IMPORTE TIPO_IMPORTE, + OTROS_GASTOS TIPO_IMPORTE, + FECHA_ALTA DATE, + FECHA_MODIFICACION DATE, + USUARIO TIPO_USUARIO, + ID_REMESA TIPO_ID, + ID_RECIBO_COMPENSADO INTEGER +); + +CREATE TABLE RECIBOS_PROVEEDOR ( + ID TIPO_ID NOT NULL, + ID_FACTURA TIPO_ID, + REFERENCIA VARCHAR(255), + REFERENCIA_PROVEEDOR VARCHAR(255), + FECHA_EMISION DATE, + FECHA_VENCIMIENTO DATE, + DESCRIPCION VARCHAR(255), + OBSERVACIONES VARCHAR(255), + IMPORTE TIPO_IMPORTE, + OTROS_GASTOS TIPO_IMPORTE, + FECHA_ALTA DATE, + FECHA_MODIFICACION DATE, + USUARIO TIPO_USUARIO, + ID_REMESA TIPO_ID, + ID_RECIBO_COMPENSADO INTEGER +); + +CREATE TABLE REFERENCIAS ( + CODIGO VARCHAR(50) NOT NULL, + VALOR VARCHAR(255) NOT NULL, + ID_EMPRESA TIPO_ID, + DESCRIPCION VARCHAR(255) COLLATE ES_ES +); + +CREATE TABLE REMESAS_CLIENTE ( + ID TIPO_ID NOT NULL, + ID_EMPRESA TIPO_ID, + REFERENCIA VARCHAR(255), + FECHA_REMESA DATE, + IMPORTE_TOTAL TIPO_IMPORTE, + DESCRIPCION VARCHAR(255), + FECHA_ALTA DATE, + FECHA_MODIFICACION DATE, + USUARIO TIPO_USUARIO, + ID_DATOS_BANCO TIPO_ID, + TIPO VARCHAR(40) +); + +CREATE TABLE REMESAS_PROVEEDOR ( + ID TIPO_ID NOT NULL, + ID_EMPRESA TIPO_ID, + REFERENCIA VARCHAR(255), + FECHA_REMESA DATE, + IMPORTE_TOTAL TIPO_IMPORTE, + DESCRIPCION VARCHAR(255), + FECHA_ALTA DATE, + FECHA_MODIFICACION DATE, + USUARIO TIPO_USUARIO, + ID_DATOS_BANCO TIPO_ID, + TIPO VARCHAR(40) +); + +CREATE TABLE TIENDA_WEB ( + ID TIPO_ID NOT NULL, + ID_EMPRESA TIPO_ID NOT NULL, + TIENDA_ACTIVA TIPO_BOOLEANO DEFAULT 0 NOT NULL, + ULTIMA_ACTUALIZACION TIMESTAMP, + BDSERVER VARCHAR(255), + BDPORT VARCHAR(20), + BDNAME VARCHAR(255), + BDUSER VARCHAR(255), + BDPASS VARCHAR(255) +); + +CREATE TABLE TIPOS_IVA ( + ID TIPO_ID NOT NULL, + REFERENCIA VARCHAR(255), + DESCRIPCION VARCHAR(255), + IVA TIPO_PORCENTAJE, + RE TIPO_PORCENTAJE +); + +CREATE TABLE USUARIOS ( + ID TIPO_ID NOT NULL, + USERNAME VARCHAR(30), + LOGIN TIPO_USUARIO, + PASS VARCHAR(250), + PASSEXPIRED DATE, + BLOQUEADO TIPO_BOOLEANO, + EMAIL VARCHAR(150), + USERDAYSSUN INTEGER, + PRIVILEGED INTEGER, + TIPO CHAR(1), + ID_PERFIL TIPO_ID, + CHECKSUM VARCHAR(250) +); + +CREATE TABLE USUARIOS_EVENTOS ( + APLICACION VARCHAR(250), + ID_USUARIO TIPO_ID, + FECHA CHAR(10), + HORA CHAR(8), + FORM VARCHAR(250), + TITULO_FORM VARCHAR(100), + EVENTO VARCHAR(50), + NOTAS TIPO_NOTAS, + TNAME VARCHAR(20) +); + +CREATE TABLE USUARIOS_LOGON ( + LOGONID CHAR(38) NOT NULL, + ID_USUARIO TIPO_ID, + APLICACION VARCHAR(50), + EQUIPO VARCHAR(50), + DATA VARCHAR(14) +); + + + +/******************************************************************************/ +/**** Views ****/ +/******************************************************************************/ + + +/* View: V_ALB_CLI_SITUACION */ +CREATE VIEW V_ALB_CLI_SITUACION( + ID, + SITUACION) +AS +SELECT ALBARANES_CLIENTE.ID, + case when (FECHA_RECEPCION is not null) then 'SERVIDO' + when (FECHA_ENVIO is null) then 'PENDIENTE' + when (FECHA_ENVIO <= current_date) then 'ENVIADO' + when (FECHA_ENVIO > current_date) then 'PENDIENTE' + else 'N/A' + end as SITUACION +FROM ALBARANES_CLIENTE +; + + + +/* View: V_ALB_PROV_DETALLES */ +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) + +/*Mantenemos los articulos inventariables y aquellos que no existan en nuestro catlogo con el fin de no falsear la situacin de los pedidos +LEFT JOIN ARTICULOS +ON (ALBARANES_PROVEEDOR_DETALLES.ID_ARTICULO = ARTICULOS.ID) + +WHERE (ALBARANES_PROVEEDOR_DETALLES.ID_ARTICULO is not null) +AND (ARTICULOS.INVENTARIABLE = 1) +*/ + +GROUP BY ALBARANES_PROVEEDOR_DETALLES.ID_ALBARAN, + ALBARANES_PROVEEDOR.ID_PEDIDO, + ALBARANES_PROVEEDOR.ID_ALMACEN, + ALBARANES_PROVEEDOR_DETALLES.ID_ARTICULO +; + + + +/* View: V_ALBARANES_CLIENTE */ +CREATE VIEW V_ALBARANES_CLIENTE( + ID, + ID_EMPRESA, + ID_CLIENTE, + NOMBRE, + FECHA_ALBARAN, + REFERENCIA, + REFERENCIA_CLIENTE, + TIPO, + SITUACION, + ID_ALMACEN, + NOMBRE_ALMACEN, + ID_PEDIDO, + REF_PEDIDO, + ID_FACTURA, + REF_FACTURA, + CALLE, + CODIGO_POSTAL, + POBLACION, + PROVINCIA, + PERSONA_CONTACTO, + TELEFONO, + IMPORTE_NETO, + IMPORTE_PORTE, + DESCUENTO, + IMPORTE_DESCUENTO, + BASE_IMPONIBLE, + IVA, + IMPORTE_IVA, + IMPORTE_TOTAL, + OBSERVACIONES, + INCIDENCIAS, + INCIDENCIAS_ACTIVAS, + FECHA_ALTA, + FECHA_MODIFICACION, + USUARIO, + ID_FORMA_PAGO, + FECHA_PREVISTA_ENVIO, + FECHA_ENVIO, + FECHA_RECEPCION) +AS +SELECT + ALBARANES_CLIENTE.ID, + ALBARANES_CLIENTE.ID_EMPRESA, + ALBARANES_CLIENTE.ID_CLIENTE, + CONTACTOS.NOMBRE, + ALBARANES_CLIENTE.FECHA_ALBARAN, + ALBARANES_CLIENTE.REFERENCIA, + ALBARANES_CLIENTE.REFERENCIA_CLIENTE, + 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 CONTACTOS ON (CONTACTOS.ID = ALBARANES_CLIENTE.ID_CLIENTE) + LEFT OUTER JOIN PEDIDOS_CLIENTE ON (PEDIDOS_CLIENTE.ID = ALBARANES_CLIENTE.ID_PEDIDO) + LEFT OUTER JOIN FACTURAS_CLIENTE ON (FACTURAS_CLIENTE.ID = ALBARANES_CLIENTE.ID_FACTURA) + LEFT OUTER JOIN V_ALB_CLI_SITUACION ON (V_ALB_CLI_SITUACION.ID = ALBARANES_CLIENTE.ID) + LEFT OUTER JOIN ALMACENES ON (ALMACENES.ID = ALBARANES_CLIENTE.ID_ALMACEN) +; + + + +/* View: V_ALBARANES_PROVEEDOR */ +CREATE VIEW V_ALBARANES_PROVEEDOR( + ID, + ID_EMPRESA, + ID_PROVEEDOR, + NOMBRE, + FECHA_ALBARAN, + REFERENCIA, + REFERENCIA_PROVEEDOR, + TIPO, + ID_ALMACEN, + NOMBRE_ALMACEN, + ID_PEDIDO, + REF_PED_PROVEEDOR, + ID_FACTURA, + REF_FACTURA, + REF_FACTURA_PROV, + CALLE, + CODIGO_POSTAL, + POBLACION, + PROVINCIA, + PERSONA_CONTACTO, + TELEFONO, + IMPORTE_NETO, + IMPORTE_PORTE, + DESCUENTO, + IMPORTE_DESCUENTO, + BASE_IMPONIBLE, + IVA, + IMPORTE_IVA, + IMPORTE_TOTAL, + OBSERVACIONES, + INCIDENCIAS, + INCIDENCIAS_ACTIVAS, + FECHA_ALTA, + FECHA_MODIFICACION, + USUARIO, + ID_FORMA_PAGO) +AS +SELECT + ALBARANES_PROVEEDOR.ID, + ALBARANES_PROVEEDOR.ID_EMPRESA, + ALBARANES_PROVEEDOR.ID_PROVEEDOR, + CONTACTOS.NOMBRE, + ALBARANES_PROVEEDOR.FECHA_ALBARAN, + ALBARANES_PROVEEDOR.REFERENCIA, + ALBARANES_PROVEEDOR.REFERENCIA_PROVEEDOR, + 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_FACTURA, + ALBARANES_PROVEEDOR.REF_FACTURA_PROV, + ALBARANES_PROVEEDOR.CALLE, + ALBARANES_PROVEEDOR.CODIGO_POSTAL, + ALBARANES_PROVEEDOR.POBLACION, + ALBARANES_PROVEEDOR.PROVINCIA, + ALBARANES_PROVEEDOR.PERSONA_CONTACTO, + ALBARANES_PROVEEDOR.TELEFONO, + ALBARANES_PROVEEDOR.IMPORTE_NETO, + ALBARANES_PROVEEDOR.IMPORTE_PORTE, + ALBARANES_PROVEEDOR.DESCUENTO, + ALBARANES_PROVEEDOR.IMPORTE_DESCUENTO, + ALBARANES_PROVEEDOR.BASE_IMPONIBLE, + ALBARANES_PROVEEDOR.IVA, + ALBARANES_PROVEEDOR.IMPORTE_IVA, + ALBARANES_PROVEEDOR.IMPORTE_TOTAL, + ALBARANES_PROVEEDOR.OBSERVACIONES, + ALBARANES_PROVEEDOR.INCIDENCIAS, + ALBARANES_PROVEEDOR.INCIDENCIAS_ACTIVAS, + ALBARANES_PROVEEDOR.FECHA_ALTA, + ALBARANES_PROVEEDOR.FECHA_MODIFICACION, + ALBARANES_PROVEEDOR.USUARIO, + ALBARANES_PROVEEDOR.ID_FORMA_PAGO +FROM + ALBARANES_PROVEEDOR + LEFT OUTER JOIN CONTACTOS ON (CONTACTOS.ID = ALBARANES_PROVEEDOR.ID_PROVEEDOR) + LEFT OUTER JOIN PEDIDOS_PROVEEDOR ON (PEDIDOS_PROVEEDOR.ID = ALBARANES_PROVEEDOR.ID_PEDIDO) + LEFT OUTER JOIN FACTURAS_PROVEEDOR ON (FACTURAS_PROVEEDOR.ID = ALBARANES_PROVEEDOR.ID_FACTURA) + LEFT OUTER JOIN ALMACENES ON (ALMACENES.ID = ALBARANES_PROVEEDOR.ID_ALMACEN) +; + + + +/* View: V_ARTICULOS */ +CREATE VIEW V_ARTICULOS( + ID, + ID_EMPRESA, + REFERENCIA, + DESCRIPCION, + FAMILIA, + IMAGEN, + COMISIONABLE, + FECHA_ALTA, + FECHA_MODIFICACION, + USUARIO, + REFERENCIA_PROV, + PRECIO_COSTE, + PRECIO_PORTE, + DESCUENTO, + PRECIO_NETO, + INVENTARIABLE, + ID_PROVEEDOR, + NOMBRE_PROVEEDOR, + ELIMINADO) +AS +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, + ARTICULOS.ELIMINADO +FROM ARTICULOS +LEFT OUTER JOIN CONTACTOS ON (CONTACTOS.ID = ARTICULOS.ID_PROVEEDOR) +WHERE (ARTICULOS.ELIMINADO = 0) +; + + + +/* View: V_CONTACTOS */ +CREATE VIEW V_CONTACTOS( + ID, + ID_CATEGORIA, + NIF_CIF, + NOMBRE, + PERSONA_CONTACTO, + CALLE, + POBLACION, + PROVINCIA, + CODIGO_POSTAL, + TELEFONO_1, + TELEFONO_2, + MOVIL_1, + MOVIL_2, + FAX, + EMAIL_1, + EMAIL_2, + PAGINA_WEB, + NOTAS, + FECHA_ALTA, + FECHA_MODIFICACION, + USUARIO, + ID_EMPRESA, + REFERENCIA) +AS +SELECT CONTACTOS.ID, + CONTACTOS_CATEGORIAS.ID_CATEGORIA, + CONTACTOS.NIF_CIF, + CONTACTOS.NOMBRE, + CONTACTOS.PERSONA_CONTACTO, + CONTACTOS.CALLE, + CONTACTOS.POBLACION, + CONTACTOS.PROVINCIA, + CONTACTOS.CODIGO_POSTAL, + CONTACTOS.TELEFONO_1, + CONTACTOS.TELEFONO_2, + CONTACTOS.MOVIL_1, + CONTACTOS.MOVIL_2, + CONTACTOS.FAX, + CONTACTOS.EMAIL_1, + CONTACTOS.EMAIL_2, + CONTACTOS.PAGINA_WEB, + CONTACTOS.NOTAS, + CONTACTOS.FECHA_ALTA, + CONTACTOS.FECHA_MODIFICACION, + CONTACTOS.USUARIO, + EMPRESAS_CONTACTOS.ID_EMPRESA, + CONTACTOS.REFERENCIA +FROM CONTACTOS + INNER JOIN CONTACTOS_CATEGORIAS ON (CONTACTOS_CATEGORIAS.ID_CONTACTO = + CONTACTOS.ID) + INNER JOIN EMPRESAS_CONTACTOS ON (EMPRESAS_CONTACTOS.ID_CONTACTO = + CONTACTOS.ID) +; + + + +/* View: V_CLIENTES */ +CREATE VIEW V_CLIENTES( + ID, + ID_CATEGORIA, + NIF_CIF, + NOMBRE, + PERSONA_CONTACTO, + CALLE, + POBLACION, + PROVINCIA, + CODIGO_POSTAL, + TELEFONO_1, + TELEFONO_2, + MOVIL_1, + MOVIL_2, + FAX, + EMAIL_1, + EMAIL_2, + PAGINA_WEB, + NOTAS, + FECHA_ALTA, + FECHA_MODIFICACION, + USUARIO, + ID_EMPRESA, + REFERENCIA, + GRUPO_CLIENTE, + NOMBRE_COMERCIAL, + VENCIMIENTO_FACTURAS, + BLOQUEADO, + REGIMEN_IVA, + MOTIVO_BLOQUEO, + RECARGO_EQUIVALENCIA, + ID_TIPO_IVA, + ID_FORMA_PAGO, + TIENDA_WEB, + CODIGO_ASIGNADO) +AS +SELECT + V_CONTACTOS.ID, + V_CONTACTOS.ID_CATEGORIA, + V_CONTACTOS.NIF_CIF, + V_CONTACTOS.NOMBRE, + V_CONTACTOS.PERSONA_CONTACTO, + V_CONTACTOS.CALLE, + V_CONTACTOS.POBLACION, + V_CONTACTOS.PROVINCIA, + V_CONTACTOS.CODIGO_POSTAL, + V_CONTACTOS.TELEFONO_1, + V_CONTACTOS.TELEFONO_2, + V_CONTACTOS.MOVIL_1, + V_CONTACTOS.MOVIL_2, + V_CONTACTOS.FAX, + V_CONTACTOS.EMAIL_1, + V_CONTACTOS.EMAIL_2, + V_CONTACTOS.PAGINA_WEB, + V_CONTACTOS.NOTAS, + V_CONTACTOS.FECHA_ALTA, + V_CONTACTOS.FECHA_MODIFICACION, + V_CONTACTOS.USUARIO, + V_CONTACTOS.ID_EMPRESA, + V_CONTACTOS.REFERENCIA, + CLIENTES_DATOS.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, + CLIENTES_DATOS.CODIGO_ASIGNADO +FROM + V_CONTACTOS + LEFT OUTER JOIN CLIENTES_DATOS ON (V_CONTACTOS.ID = CLIENTES_DATOS.ID_CLIENTE) +WHERE + V_CONTACTOS.ID_CATEGORIA = 1 +; + + + +/* View: V_EMPLEADOS */ +CREATE VIEW V_EMPLEADOS( + ID, + ID_CATEGORIA, + NIF_CIF, + NOMBRE, + PERSONA_CONTACTO, + CALLE, + POBLACION, + PROVINCIA, + CODIGO_POSTAL, + TELEFONO_1, + TELEFONO_2, + MOVIL_1, + MOVIL_2, + FAX, + EMAIL_1, + EMAIL_2, + PAGINA_WEB, + NOTAS, + FECHA_ALTA, + FECHA_MODIFICACION, + USUARIO, + ID_EMPRESA, + REFERENCIA, + FECHA_NACIMIENTO, + CATEGORIA, + FECHA_ALTA_EMPRESA, + FORMACION_BASE, + FORMACION_COMPLE, + FORMACION_RECIBIDA, + EXPERIENCIA) +AS +SELECT V_CONTACTOS.ID, + V_CONTACTOS.ID_CATEGORIA, + V_CONTACTOS.NIF_CIF, + V_CONTACTOS.NOMBRE, + V_CONTACTOS.PERSONA_CONTACTO, + V_CONTACTOS.CALLE, + V_CONTACTOS.POBLACION, + V_CONTACTOS.PROVINCIA, + V_CONTACTOS.CODIGO_POSTAL, + V_CONTACTOS.TELEFONO_1, + V_CONTACTOS.TELEFONO_2, + V_CONTACTOS.MOVIL_1, + V_CONTACTOS.MOVIL_2, + V_CONTACTOS.FAX, + V_CONTACTOS.EMAIL_1, + V_CONTACTOS.EMAIL_2, + V_CONTACTOS.PAGINA_WEB, + V_CONTACTOS.NOTAS, + V_CONTACTOS.FECHA_ALTA, + V_CONTACTOS.FECHA_MODIFICACION, + V_CONTACTOS.USUARIO, + V_CONTACTOS.ID_EMPRESA, + V_CONTACTOS.REFERENCIA, + + EMPLEADOS_DATOS.FECHA_NACIMIENTO, + EMPLEADOS_DATOS.CATEGORIA, + EMPLEADOS_DATOS.FECHA_ALTA_EMPRESA, + EMPLEADOS_DATOS.FORMACION_BASE, + EMPLEADOS_DATOS.FORMACION_COMPLE, + EMPLEADOS_DATOS.FORMACION_RECIBIDA, + EMPLEADOS_DATOS.EXPERIENCIA + +FROM V_CONTACTOS +INNER JOIN EMPLEADOS_DATOS ON (EMPLEADOS_DATOS.ID_EMPLEADO = V_CONTACTOS.ID) + +WHERE V_CONTACTOS.ID_CATEGORIA = 3 +; + + + +/* View: V_REC_FAC_CLI */ +CREATE VIEW V_REC_FAC_CLI( + ID_FACTURA, + NUM_RECIBOS) +AS +SELECT FACTURAS_CLIENTE.ID, COUNT(RECIBOS_CLIENTE.ID) +FROM FACTURAS_CLIENTE +LEFT JOIN RECIBOS_CLIENTE +ON (RECIBOS_CLIENTE.ID_FACTURA = FACTURAS_CLIENTE.ID) +GROUP BY FACTURAS_CLIENTE.ID +; + + + +/* View: V_REC_CLI_SITUACION */ +CREATE VIEW V_REC_CLI_SITUACION( + ID_RECIBO, + SITUACION) +AS +SELECT RECIBOS_CLIENTE.ID, +CASE WHEN (COUNT(PAGOS_CLIENTE.ID_RECIBO)=0) THEN 'PENDIENTE' + WHEN (MOD(COUNT(PAGOS_CLIENTE.ID_RECIBO), 2)=0) THEN 'DEVUELTO' + ELSE 'COBRADO' +END +FROM RECIBOS_CLIENTE +LEFT JOIN PAGOS_CLIENTE +ON (PAGOS_CLIENTE.ID_RECIBO = RECIBOS_CLIENTE.ID) +GROUP BY RECIBOS_CLIENTE.ID +; + + + +/* View: V_REC_FAC_CLI_COBRADOS */ +CREATE VIEW V_REC_FAC_CLI_COBRADOS( + ID_FACTURA, + NUM_REC_COBRADOS) +AS +SELECT RECIBOS_CLIENTE.ID_FACTURA, COUNT(V_REC_CLI_SITUACION.ID_RECIBO) +FROM V_REC_CLI_SITUACION LEFT JOIN RECIBOS_CLIENTE ON + (RECIBOS_CLIENTE.ID = V_REC_CLI_SITUACION.ID_RECIBO) +WHERE (V_REC_CLI_SITUACION.SITUACION = 'COBRADO') +GROUP BY RECIBOS_CLIENTE.ID_FACTURA +; + + + +/* View: V_FAC_CLI_SITUACION */ +CREATE VIEW V_FAC_CLI_SITUACION( + ID_FACTURA, + SITUACION) +AS +SELECT ID_FACTURA, +CASE + WHEN ((SUM(NUM_RECIBOS) = 0) + OR (SUM(NUM_REC_COBRADOS) = 0)) THEN 'PENDIENTE' + WHEN (SUM(NUM_RECIBOS) = SUM(NUM_REC_COBRADOS)) THEN 'PAGADA' + ELSE 'PARCIALMENTE PAGADA' +END AS SITUACION +FROM +( + SELECT ID_FACTURA, NUM_RECIBOS, 0 AS NUM_REC_COBRADOS + FROM V_REC_FAC_CLI + UNION ALL + SELECT ID_FACTURA, 0 AS NUM_RECIBOS, NUM_REC_COBRADOS + FROM V_REC_FAC_CLI_COBRADOS +) +GROUP BY ID_FACTURA +; + + + +/* View: V_REC_FAC_PRO */ +CREATE VIEW V_REC_FAC_PRO( + ID_FACTURA, + NUM_RECIBOS) +AS +SELECT FACTURAS_PROVEEDOR.ID, COUNT(RECIBOS_PROVEEDOR.ID) +FROM FACTURAS_PROVEEDOR +LEFT JOIN RECIBOS_PROVEEDOR +ON (RECIBOS_PROVEEDOR.ID_FACTURA = FACTURAS_PROVEEDOR.ID) +GROUP BY FACTURAS_PROVEEDOR.ID +; + + + +/* View: V_REC_PRO_SITUACION */ +CREATE VIEW V_REC_PRO_SITUACION( + ID_RECIBO, + SITUACION) +AS +SELECT RECIBOS_PROVEEDOR.ID, +CASE WHEN (COUNT(PAGOS_PROVEEDOR.ID_RECIBO)=0) THEN 'PENDIENTE' + WHEN (MOD(COUNT(PAGOS_PROVEEDOR.ID_RECIBO), 2)=0) THEN 'DEVUELTO' + ELSE 'PAGADO' +END +FROM RECIBOS_PROVEEDOR +LEFT JOIN PAGOS_PROVEEDOR +ON (PAGOS_PROVEEDOR.ID_RECIBO = RECIBOS_PROVEEDOR.ID) +GROUP BY RECIBOS_PROVEEDOR.ID +; + + + +/* View: V_REC_FAC_PRO_PAGADOS */ +CREATE VIEW V_REC_FAC_PRO_PAGADOS( + ID_FACTURA, + NUM_REC_PAGADOS) +AS +SELECT RECIBOS_PROVEEDOR.ID_FACTURA, COUNT(V_REC_PRO_SITUACION.ID_RECIBO) +FROM V_REC_PRO_SITUACION LEFT JOIN RECIBOS_PROVEEDOR ON + (RECIBOS_PROVEEDOR.ID = V_REC_PRO_SITUACION.ID_RECIBO) +WHERE (V_REC_PRO_SITUACION.SITUACION = 'PAGADO') +GROUP BY RECIBOS_PROVEEDOR.ID_FACTURA +; + + + +/* View: V_FAC_PRO_SITUACION */ +CREATE VIEW V_FAC_PRO_SITUACION( + ID_FACTURA, + SITUACION) +AS +SELECT ID_FACTURA, +CASE + WHEN ((SUM(NUM_RECIBOS) = 0) + OR (SUM(NUM_REC_PAGADOS) = 0)) THEN 'PENDIENTE' + WHEN (SUM(NUM_RECIBOS) = SUM(NUM_REC_PAGADOS)) THEN 'PAGADA' + ELSE 'PARCIALMENTE PAGADA' +END AS SITUACION +FROM +( + SELECT ID_FACTURA, NUM_RECIBOS, 0 AS NUM_REC_PAGADOS + FROM V_REC_FAC_PRO + UNION ALL + SELECT ID_FACTURA, 0 AS NUM_RECIBOS, NUM_REC_PAGADOS + FROM V_REC_FAC_PRO_PAGADOS +) +GROUP BY ID_FACTURA +; + + + +/* View: V_FACTURAS_CLIENTE */ +CREATE VIEW V_FACTURAS_CLIENTE( + ID, + ID_EMPRESA, + REFERENCIA, + TIPO, + ID_COMISION_LIQUIDADA, + FECHA_FACTURA, + 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) +; + + + +/* View: V_FACTURAS_PROVEEDOR */ +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) +; + + + +/* View: V_PED_PROV_ARTICULOS_RECIBIDOS */ +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 +; + + + +/* View: V_PED_PROV_DETALLES */ +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) + +/*Mantenemos los articulos inventariables y aquellos que no existan en nuestro catlogo con el fin de no falsear la situacin de los pedidos +LEFT JOIN ARTICULOS +ON (PEDIDOS_PROVEEDOR_DETALLES.ID_ARTICULO = ARTICULOS.ID) + +WHERE (PEDIDOS_PROVEEDOR_DETALLES.ID_ARTICULO is not null) +AND (ARTICULOS.INVENTARIABLE = 1) +*/ + +GROUP BY PEDIDOS_PROVEEDOR_DETALLES.ID_PEDIDO, + PEDIDOS_PROVEEDOR.ID_ALMACEN, + PEDIDOS_PROVEEDOR_DETALLES.ID_ARTICULO +; + + + +/* View: V_PED_PROV_ARTICULOS_AUX */ +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 ALL +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 +; + + + +/* View: V_PED_PROV_ARTICULOS */ +CREATE VIEW V_PED_PROV_ARTICULOS( + ID_PEDIDO, + 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 +; + + + +/* View: V_PED_PROV_SITUACION */ +CREATE VIEW V_PED_PROV_SITUACION( + ID_PEDIDO, + SITUACION) +AS +SELECT ID_PEDIDO, +CASE WHEN (SUM(CANTIDAD_PENDIENTE) > 0) AND (SUM(CANTIDAD_RECIBIDA) = 0) THEN 'PENDIENTE' + WHEN (SUM(CANTIDAD_PENDIENTE) <= 0) THEN 'RECIBIDO' + WHEN (SUM(CANTIDAD_PENDIENTE) > 0) AND (SUM(CANTIDAD_RECIBIDA) > 0) THEN 'PARCIAL' + ELSE 'N/A' +END AS SITUACION +FROM V_PED_PROV_ARTICULOS +GROUP BY V_PED_PROV_ARTICULOS.ID_PEDIDO +; + + + +/* View: V_PROVEEDORES */ +CREATE VIEW V_PROVEEDORES( + ID, + ID_CATEGORIA, + NIF_CIF, + NOMBRE, + PERSONA_CONTACTO, + CALLE, + POBLACION, + PROVINCIA, + CODIGO_POSTAL, + TELEFONO_1, + TELEFONO_2, + MOVIL_1, + MOVIL_2, + FAX, + EMAIL_1, + EMAIL_2, + PAGINA_WEB, + NOTAS, + FECHA_ALTA, + FECHA_MODIFICACION, + USUARIO, + ID_EMPRESA, + REFERENCIA, + DESCUENTO, + DESCRIPCION_PROVEEDOR, + CODIGO_ASIGNADO, + GRUPO_PROVEEDOR, + REGIMEN_IVA, + ID_TIPO_IVA, + ID_FORMA_PAGO, + TIENDA_WEB, + HOMOLOGADO, + CERTIFICACION) +AS +SELECT + V_CONTACTOS.ID, + V_CONTACTOS.ID_CATEGORIA, + V_CONTACTOS.NIF_CIF, + V_CONTACTOS.NOMBRE, + V_CONTACTOS.PERSONA_CONTACTO, + V_CONTACTOS.CALLE, + V_CONTACTOS.POBLACION, + V_CONTACTOS.PROVINCIA, + V_CONTACTOS.CODIGO_POSTAL, + V_CONTACTOS.TELEFONO_1, + V_CONTACTOS.TELEFONO_2, + V_CONTACTOS.MOVIL_1, + V_CONTACTOS.MOVIL_2, + V_CONTACTOS.FAX, + V_CONTACTOS.EMAIL_1, + V_CONTACTOS.EMAIL_2, + V_CONTACTOS.PAGINA_WEB, + V_CONTACTOS.NOTAS, + V_CONTACTOS.FECHA_ALTA, + V_CONTACTOS.FECHA_MODIFICACION, + V_CONTACTOS.USUARIO, + V_CONTACTOS.ID_EMPRESA, + V_CONTACTOS.REFERENCIA, + PROVEEDORES_DATOS.DESCUENTO, + PROVEEDORES_DATOS.DESCRIPCION_PROVEEDOR, + PROVEEDORES_DATOS.CODIGO_ASIGNADO, + PROVEEDORES_DATOS.GRUPO_PROVEEDOR, + PROVEEDORES_DATOS.REGIMEN_IVA, + PROVEEDORES_DATOS.ID_TIPO_IVA, + PROVEEDORES_DATOS.ID_FORMA_PAGO, + PROVEEDORES_DATOS.TIENDA_WEB, + PROVEEDORES_DATOS.HOMOLOGADO, + PROVEEDORES_DATOS.CERTIFICACION +FROM + PROVEEDORES_DATOS + INNER JOIN V_CONTACTOS ON (PROVEEDORES_DATOS.ID_PROVEEDOR = V_CONTACTOS.ID) +WHERE + V_CONTACTOS.ID_CATEGORIA = 2 +; + + + +/* View: V_PEDIDOS_PROVEEDOR */ +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) +; + + + +/* View: V_PRESUPUESTOS_CLIENTE */ +CREATE VIEW V_PRESUPUESTOS_CLIENTE( + ID, + ID_EMPRESA, + FECHA_PRESUPUESTO, + FECHA_DECISION, + REFERENCIA, + SITUACION, + ID_CLIENTE, + NIF_CIF, + NOMBRE, + REFERENCIA_CLIENTE, + CLIENTE_FINAL, + PORTADA, + MEMORIA, + OBSERVACIONES, + INCIDENCIAS, + INCIDENCIAS_ACTIVAS, + FECHA_ALTA, + FECHA_MODIFICACION, + USUARIO, + IMPORTE_NETO, + IMPORTE_PORTE, + DESCUENTO, + IMPORTE_DESCUENTO, + BASE_IMPONIBLE, + IVA, + IMPORTE_IVA, + IMPORTE_TOTAL, + ID_FORMA_PAGO) +AS +SELECT + PRESUPUESTOS_CLIENTE.ID, + PRESUPUESTOS_CLIENTE.ID_EMPRESA, + PRESUPUESTOS_CLIENTE.FECHA_PRESUPUESTO, + PRESUPUESTOS_CLIENTE.FECHA_DECISION, + PRESUPUESTOS_CLIENTE.REFERENCIA, + PRESUPUESTOS_CLIENTE.SITUACION, + PRESUPUESTOS_CLIENTE.ID_CLIENTE, + V_CLIENTES.NIF_CIF, + V_CLIENTES.NOMBRE, + PRESUPUESTOS_CLIENTE.REFERENCIA_CLIENTE, + PRESUPUESTOS_CLIENTE.CLIENTE_FINAL, + PRESUPUESTOS_CLIENTE.PORTADA, + PRESUPUESTOS_CLIENTE.MEMORIA, + PRESUPUESTOS_CLIENTE.OBSERVACIONES, + PRESUPUESTOS_CLIENTE.INCIDENCIAS, + PRESUPUESTOS_CLIENTE.INCIDENCIAS_ACTIVAS, + PRESUPUESTOS_CLIENTE.FECHA_ALTA, + PRESUPUESTOS_CLIENTE.FECHA_MODIFICACION, + PRESUPUESTOS_CLIENTE.USUARIO, + PRESUPUESTOS_CLIENTE.IMPORTE_NETO, + PRESUPUESTOS_CLIENTE.IMPORTE_PORTE, + PRESUPUESTOS_CLIENTE.DESCUENTO, + PRESUPUESTOS_CLIENTE.IMPORTE_DESCUENTO, + PRESUPUESTOS_CLIENTE.BASE_IMPONIBLE, + PRESUPUESTOS_CLIENTE.IVA, + PRESUPUESTOS_CLIENTE.IMPORTE_IVA, + PRESUPUESTOS_CLIENTE.IMPORTE_TOTAL, + PRESUPUESTOS_CLIENTE.ID_FORMA_PAGO +FROM + PRESUPUESTOS_CLIENTE + LEFT OUTER JOIN V_CLIENTES ON (PRESUPUESTOS_CLIENTE.ID_CLIENTE = V_CLIENTES.ID) +; + + + +/* View: V_REC_CLI_COMPENSADOS */ +CREATE VIEW V_REC_CLI_COMPENSADOS( + ID_RECIBO, + IMPORTE_TOTAL_COMPENSADO) +AS +select ID_RECIBO_COMPENSADO, SUM((IMPORTE + OTROS_GASTOS)) as IMPORTE_TOTAL +from RECIBOS_CLIENTE +where ID_RECIBO_COMPENSADO is not null +group by ID_RECIBO_COMPENSADO +; + + + +/* View: V_REC_PRO_COMPENSADOS */ +CREATE VIEW V_REC_PRO_COMPENSADOS( + ID_RECIBO, + IMPORTE_TOTAL_COMPENSADO) +AS +select ID_RECIBO_COMPENSADO, SUM((IMPORTE + OTROS_GASTOS)) as IMPORTE_TOTAL +from RECIBOS_PROVEEDOR +where ID_RECIBO_COMPENSADO is not null +group by ID_RECIBO_COMPENSADO +; + + + +/* View: V_RECIBOS_CLIENTE */ +CREATE VIEW V_RECIBOS_CLIENTE( + ID, + ID_RECIBO_COMPENSADO, + REFERENCIA_REC_COMPENSADO, + REFERENCIA, + SITUACION, + ID_FACTURA, + ID_REMESA, + REFERENCIA_REMESA, + FECHA_EMISION, + FECHA_VENCIMIENTO, + DESCRIPCION, + OBSERVACIONES, + IMPORTE, + OTROS_GASTOS, + IMPORTE_TOTAL, + FECHA_FACTURA, + FORMA_PAGO_FACTURA, + IMPORTE_FACTURA, + ID_EMPRESA, + 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.ID_RECIBO_COMPENSADO, + RECIBO_COMPENSADO1.REFERENCIA, + RECIBOS_CLIENTE.REFERENCIA, + CASE + WHEN RECIBOS_CLIENTE.ID_RECIBO_COMPENSADO IS NULL + THEN V_REC_CLI_SITUACION.SITUACION + ELSE RECIBO_COMPENSADO2.SITUACION + END, + RECIBOS_CLIENTE.ID_FACTURA, + RECIBOS_CLIENTE.ID_REMESA, REMESAS_CLIENTE.REFERENCIA as REFERENCIA_REMESA, + RECIBOS_CLIENTE.FECHA_EMISION, RECIBOS_CLIENTE.FECHA_VENCIMIENTO, RECIBOS_CLIENTE.DESCRIPCION, + RECIBOS_CLIENTE.OBSERVACIONES, RECIBOS_CLIENTE.IMPORTE, RECIBOS_CLIENTE.OTROS_GASTOS, + COALESCE(RECIBOS_CLIENTE.IMPORTE, 0) + COALESCE(RECIBOS_CLIENTE.OTROS_GASTOS, 0) + COALESCE(V_REC_CLI_COMPENSADOS.IMPORTE_TOTAL_COMPENSADO, 0), + + FACTURAS_CLIENTE.FECHA_FACTURA, FORMAS_PAGO.DESCRIPCION, FACTURAS_CLIENTE.IMPORTE_TOTAL, + FACTURAS_CLIENTE.ID_EMPRESA, + + 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 RECIBOS_CLIENTE +LEFT JOIN V_REC_CLI_SITUACION +ON (V_REC_CLI_SITUACION.ID_RECIBO = RECIBOS_CLIENTE.ID) +LEFT JOIN FACTURAS_CLIENTE +ON (FACTURAS_CLIENTE.ID = RECIBOS_CLIENTE.ID_FACTURA) +LEFT JOIN FORMAS_PAGO +ON (FORMAS_PAGO.ID = FACTURAS_CLIENTE.ID_FORMA_PAGO) +LEFT JOIN CONTACTOS +ON (CONTACTOS.ID = FACTURAS_CLIENTE.ID_CLIENTE) +LEFT JOIN CONTACTOS_DATOS_BANCO +ON (CONTACTOS_DATOS_BANCO.ID_CONTACTO = CONTACTOS.ID) +LEFT JOIN REMESAS_CLIENTE +ON (REMESAS_CLIENTE.ID = RECIBOS_CLIENTE.ID_REMESA) +LEFT JOIN V_REC_CLI_COMPENSADOS +ON (V_REC_CLI_COMPENSADOS.ID_RECIBO = RECIBOS_CLIENTE.ID) +LEFT JOIN RECIBOS_CLIENTE RECIBO_COMPENSADO1 +ON (RECIBO_COMPENSADO1.ID = RECIBOS_CLIENTE.ID_RECIBO_COMPENSADO) +LEFT JOIN V_REC_CLI_SITUACION RECIBO_COMPENSADO2 +ON (RECIBO_COMPENSADO2.ID_RECIBO = RECIBOS_CLIENTE.ID_RECIBO_COMPENSADO) +; + + + +/* View: V_RECIBOS_PROVEEDOR */ +CREATE VIEW V_RECIBOS_PROVEEDOR( + ID, + ID_RECIBO_COMPENSADO, + REFERENCIA_REC_COMPENSADO, + REFERENCIA, + REFERENCIA_PROVEEDOR, + SITUACION, + ID_FACTURA, + ID_REMESA, + REFERENCIA_REMESA, + FECHA_EMISION, + FECHA_VENCIMIENTO, + DESCRIPCION, + OBSERVACIONES, + IMPORTE, + OTROS_GASTOS, + IMPORTE_TOTAL, + REFERENCIA_FACTURA_PROV, + FECHA_FACTURA, + FORMA_PAGO_FACTURA, + IMPORTE_FACTURA, + ID_EMPRESA, + 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.ID_RECIBO_COMPENSADO, + RECIBO_COMPENSADO1.REFERENCIA, + RECIBOS_PROVEEDOR.REFERENCIA, + RECIBOS_PROVEEDOR.REFERENCIA_PROVEEDOR, + CASE + WHEN RECIBOS_PROVEEDOR.ID_RECIBO_COMPENSADO IS NULL + THEN V_REC_PRO_SITUACION.SITUACION + ELSE RECIBO_COMPENSADO2.SITUACION + END, + RECIBOS_PROVEEDOR.ID_FACTURA, + RECIBOS_PROVEEDOR.ID_REMESA, REMESAS_PROVEEDOR.REFERENCIA as REFERENCIA_REMESA, + RECIBOS_PROVEEDOR.FECHA_EMISION, RECIBOS_PROVEEDOR.FECHA_VENCIMIENTO, RECIBOS_PROVEEDOR.DESCRIPCION, + RECIBOS_PROVEEDOR.OBSERVACIONES, RECIBOS_PROVEEDOR.IMPORTE, RECIBOS_PROVEEDOR.OTROS_GASTOS, + COALESCE(RECIBOS_PROVEEDOR.IMPORTE, 0) + COALESCE(RECIBOS_PROVEEDOR.OTROS_GASTOS, 0) + COALESCE(V_REC_PRO_COMPENSADOS.IMPORTE_TOTAL_COMPENSADO, 0), + + FACTURAS_PROVEEDOR.REFERENCIA_PROVEEDOR, FACTURAS_PROVEEDOR.FECHA_FACTURA, + FORMAS_PAGO.DESCRIPCION, FACTURAS_PROVEEDOR.IMPORTE_TOTAL, + FACTURAS_PROVEEDOR.ID_EMPRESA, + + 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 RECIBOS_PROVEEDOR +LEFT JOIN V_REC_PRO_SITUACION +ON (V_REC_PRO_SITUACION.ID_RECIBO = RECIBOS_PROVEEDOR.ID) +LEFT JOIN FACTURAS_PROVEEDOR +ON (FACTURAS_PROVEEDOR.ID = RECIBOS_PROVEEDOR.ID_FACTURA) +LEFT JOIN FORMAS_PAGO +ON (FORMAS_PAGO.ID = FACTURAS_PROVEEDOR.ID_FORMA_PAGO) +LEFT JOIN CONTACTOS +ON (CONTACTOS.ID = FACTURAS_PROVEEDOR.ID_PROVEEDOR) +LEFT JOIN CONTACTOS_DATOS_BANCO +ON (CONTACTOS_DATOS_BANCO.ID_CONTACTO = CONTACTOS.ID) +LEFT JOIN REMESAS_PROVEEDOR +ON (REMESAS_PROVEEDOR.ID = RECIBOS_PROVEEDOR.ID_REMESA) +LEFT JOIN V_REC_PRO_COMPENSADOS +ON (V_REC_PRO_COMPENSADOS.ID_RECIBO = RECIBOS_PROVEEDOR.ID) +LEFT JOIN RECIBOS_PROVEEDOR RECIBO_COMPENSADO1 +ON (RECIBO_COMPENSADO1.ID = RECIBOS_PROVEEDOR.ID_RECIBO_COMPENSADO) +LEFT JOIN V_REC_PRO_SITUACION RECIBO_COMPENSADO2 +ON (RECIBO_COMPENSADO2.ID_RECIBO = RECIBOS_PROVEEDOR.ID_RECIBO_COMPENSADO) +; + +/******************************************************************************/ +/**** Primary Keys ****/ +/******************************************************************************/ + +ALTER TABLE AGENTES_COMISIONES ADD CONSTRAINT PK_AGENTES_COMISIONES PRIMARY KEY (ID); +ALTER TABLE ALBARANES_CLIENTE ADD CONSTRAINT PK_ALBARAN_CLIENTE PRIMARY KEY (ID); +ALTER TABLE ALBARANES_CLIENTE_DETALLES ADD CONSTRAINT PK_ALBARANES_CLIENTE_DETALLES PRIMARY KEY (ID); +ALTER TABLE ALBARANES_PROVEEDOR ADD CONSTRAINT PK_ALBARAN_PROVEEDOR PRIMARY KEY (ID); +ALTER TABLE ALBARANES_PROVEEDOR_DETALLES ADD CONSTRAINT PK_ALBARANES_PROVEEDOR_DETALLES PRIMARY KEY (ID); +ALTER TABLE ALMACENES ADD CONSTRAINT PK_ALMACENES PRIMARY KEY (ID); +ALTER TABLE ARTICULOS ADD CONSTRAINT PK_ARTICULOS PRIMARY KEY (ID); +ALTER TABLE CATEGORIAS ADD CONSTRAINT PK_CATEGORIAS PRIMARY KEY (ID); +ALTER TABLE CLIENTES_DATOS ADD CONSTRAINT PK_CLIENTES_DATOS PRIMARY KEY (ID_CLIENTE); +ALTER TABLE CLIENTES_DTOS_PROVEEDORES ADD CONSTRAINT PK_CLIENTES_DTOS_PROV PRIMARY KEY (ID); +ALTER TABLE COMISIONES_LIQUIDADAS ADD CONSTRAINT PK_COMISIONES_LIQUIDADAS PRIMARY KEY (ID); +ALTER TABLE CONTACTOS ADD CONSTRAINT PK_CONTACTOS PRIMARY KEY (ID); +ALTER TABLE CONTACTOS_CATEGORIAS ADD CONSTRAINT PK_CONTACTOS_CATEGORIAS PRIMARY KEY (ID_CONTACTO, ID_CATEGORIA); +ALTER TABLE CONTACTOS_DATOS_BANCO ADD CONSTRAINT PK_CONTACTOS_DATOS_BANCO PRIMARY KEY (ID); +ALTER TABLE CONTACTOS_DIRECCIONES ADD CONSTRAINT PK_CONTACTOS_DIR PRIMARY KEY (ID); +ALTER TABLE EMPLEADOS_DATOS ADD CONSTRAINT PK_EMPLEADOS_DATOS PRIMARY KEY (ID_EMPLEADO); +ALTER TABLE EMPRESAS ADD CONSTRAINT PK_EMPRESAS PRIMARY KEY (ID); +ALTER TABLE EMPRESAS_CONTACTOS ADD CONSTRAINT PK_EMPRESAS_CONTACTOS PRIMARY KEY (ID_EMPRESA, ID_CONTACTO); +ALTER TABLE EMPRESAS_DATOS_BANCO ADD CONSTRAINT PK_EMPRESAS_DATOS_BANCO PRIMARY KEY (ID); +ALTER TABLE EMPRESAS_USUARIOS ADD CONSTRAINT PK_EMPRESAS_USUARIOS PRIMARY KEY (ID_EMPRESA, ID_USUARIO); +ALTER TABLE FACTURAS_CLIENTE ADD CONSTRAINT PK_FACTURAS_CLIENTE PRIMARY KEY (ID); +ALTER TABLE FACTURAS_CLIENTE_DETALLES ADD CONSTRAINT PK_FACTURAS_CLIENTE_DETALLES PRIMARY KEY (ID); +ALTER TABLE FACTURAS_PROVEEDOR ADD CONSTRAINT PK_FACTURAS_PROVEEDOR PRIMARY KEY (ID); +ALTER TABLE FACTURAS_PROVEEDOR_DETALLES ADD CONSTRAINT PK_FACTURAS_PROVEEDOR_DETALLES PRIMARY KEY (ID); +ALTER TABLE FORMAS_PAGO ADD PRIMARY KEY (ID); +ALTER TABLE FORMAS_PAGO_PLAZOS ADD PRIMARY KEY (ID); +ALTER TABLE F_PERFILES_USUARIOS ADD CONSTRAINT PK_PERFILES_USUARIOS PRIMARY KEY (ID_PERFIL, ID_USUARIO); +ALTER TABLE INFORMES ADD CONSTRAINT PK_INFORMES PRIMARY KEY (ID); +ALTER TABLE MOVIMIENTOS ADD CONSTRAINT PK_MOVIMIENTOS PRIMARY KEY (ID); +ALTER TABLE PAGOS_CLIENTE ADD CONSTRAINT PK_PAGOS_CLIENTE PRIMARY KEY (ID); +ALTER TABLE PAGOS_PROVEEDOR ADD CONSTRAINT PK_PAGOS_PROVEEDOR PRIMARY KEY (ID); +ALTER TABLE PEDIDOS_CLIENTE ADD CONSTRAINT PK_PEDIDOS_CLIENTE PRIMARY KEY (ID); +ALTER TABLE PEDIDOS_CLIENTE_DETALLES ADD CONSTRAINT PK_PEDIDOS_CLIENTE_DETALLES PRIMARY KEY (ID); +ALTER TABLE PEDIDOS_PROVEEDOR ADD CONSTRAINT PK_PEDIDOS_PROVEEDOR PRIMARY KEY (ID); +ALTER TABLE PEDIDOS_PROVEEDOR_DETALLES ADD CONSTRAINT PK_PEDIDOS_PROVEEDOR_DETALLES PRIMARY KEY (ID); +ALTER TABLE PRESUPUESTOS_CLIENTE ADD CONSTRAINT PK_PRESUPUESTOS_CLIENTE PRIMARY KEY (ID); +ALTER TABLE PRESUPUESTOS_CLIENTE_DETALLES ADD CONSTRAINT PK_PRESUPUESTOS_CLIENTE_DETALLE PRIMARY KEY (ID); +ALTER TABLE PROVEEDORES_DATOS ADD CONSTRAINT PK_PROVEEDORES_DATOS PRIMARY KEY (ID_PROVEEDOR); +ALTER TABLE RECIBOS_CLIENTE ADD CONSTRAINT PK_RECIBOS_CLIENTE PRIMARY KEY (ID); +ALTER TABLE RECIBOS_PROVEEDOR ADD CONSTRAINT PK_RECIBOS_PROVEEDOR PRIMARY KEY (ID); +ALTER TABLE REMESAS_CLIENTE ADD CONSTRAINT PK_REMESAS_CLIENTE PRIMARY KEY (ID); +ALTER TABLE REMESAS_PROVEEDOR ADD CONSTRAINT PK_REMESAS_PROVEEDOR PRIMARY KEY (ID); +ALTER TABLE TIENDA_WEB ADD CONSTRAINT PK_TIENDA_WEB PRIMARY KEY (ID); +ALTER TABLE TIPOS_IVA ADD PRIMARY KEY (ID); +ALTER TABLE USUARIOS ADD CONSTRAINT PK_USUARIOS PRIMARY KEY (ID); +ALTER TABLE USUARIOS_LOGON ADD CONSTRAINT PK_USUARIOS_LOGON PRIMARY KEY (LOGONID); + + +/******************************************************************************/ +/**** Foreign Keys ****/ +/******************************************************************************/ + +ALTER TABLE ALBARANES_CLIENTE ADD CONSTRAINT FK_ALBARAN_CLIENTE1 FOREIGN KEY (ID_CLIENTE) REFERENCES CONTACTOS (ID) ON DELETE NO ACTION ON UPDATE NO ACTION; +ALTER TABLE ALBARANES_CLIENTE ADD CONSTRAINT FK_ALBARAN_CLIENTE2 FOREIGN KEY (ID_EMPRESA) REFERENCES EMPRESAS (ID) ON DELETE NO ACTION ON UPDATE NO ACTION; +ALTER TABLE ALBARANES_CLIENTE ADD CONSTRAINT FK_ALBARAN_CLIENTE3 FOREIGN KEY (ID_PEDIDO) REFERENCES PEDIDOS_CLIENTE (ID) ON DELETE NO ACTION ON UPDATE NO ACTION; +ALTER TABLE ALBARANES_CLIENTE ADD CONSTRAINT FK_ALBARAN_CLIENTE4 FOREIGN KEY (ID_FACTURA) REFERENCES FACTURAS_CLIENTE (ID) ON DELETE SET NULL ON UPDATE SET NULL; +ALTER TABLE ALBARANES_PROVEEDOR ADD CONSTRAINT FK_ALBARANES_PROVEEDOR3 FOREIGN KEY (ID_PEDIDO) REFERENCES PEDIDOS_PROVEEDOR (ID) ON DELETE CASCADE ON UPDATE CASCADE; +ALTER TABLE ALBARANES_PROVEEDOR ADD CONSTRAINT FK_ALBARANES_PROVEEDOR4 FOREIGN KEY (ID_FACTURA) REFERENCES FACTURAS_PROVEEDOR (ID) ON DELETE SET NULL ON UPDATE CASCADE; +ALTER TABLE ALBARANES_PROVEEDOR ADD CONSTRAINT FK_ALBARAN_PROVEEDOR1 FOREIGN KEY (ID_PROVEEDOR) REFERENCES CONTACTOS (ID) ON DELETE NO ACTION ON UPDATE NO ACTION; +ALTER TABLE ALBARANES_PROVEEDOR ADD CONSTRAINT FK_ALBARAN_PROVEEDOR2 FOREIGN KEY (ID_EMPRESA) REFERENCES EMPRESAS (ID) ON DELETE NO ACTION ON UPDATE NO ACTION; +ALTER TABLE ALMACENES ADD CONSTRAINT FK_ALMACENES_EMPRESAS FOREIGN KEY (ID_EMPRESA) REFERENCES EMPRESAS (ID) ON DELETE NO ACTION ON UPDATE NO ACTION; +ALTER TABLE ARTICULOS ADD CONSTRAINT FK_ARTICULOS_EMPRESA FOREIGN KEY (ID_EMPRESA) REFERENCES EMPRESAS (ID) ON DELETE NO ACTION ON UPDATE NO ACTION; +ALTER TABLE COMISIONES_LIQUIDADAS ADD CONSTRAINT FK_COMISIONES_LIQUIDADAS FOREIGN KEY (ID_AGENTE) REFERENCES CONTACTOS (ID); +ALTER TABLE EMPRESAS_CONTACTOS ADD CONSTRAINT FK_EMPRESAS_CONTACTOS FOREIGN KEY (ID_CONTACTO) REFERENCES CONTACTOS (ID) ON DELETE CASCADE ON UPDATE CASCADE; +ALTER TABLE EMPRESAS_DATOS_BANCO ADD CONSTRAINT FK_EMPRESAS_DATOS_BANCO FOREIGN KEY (ID_EMPRESA) REFERENCES EMPRESAS (ID) ON DELETE CASCADE ON UPDATE CASCADE; +ALTER TABLE FACTURAS_CLIENTE ADD CONSTRAINT FK_FACTURAS_CLIENTE_EMPRESAS FOREIGN KEY (ID_EMPRESA) REFERENCES EMPRESAS (ID) ON DELETE NO ACTION ON UPDATE NO ACTION; +ALTER TABLE FACTURAS_PROVEEDOR ADD CONSTRAINT FK_FACTURAS_PROVEEDOR_EMPRESAS FOREIGN KEY (ID_EMPRESA) REFERENCES EMPRESAS (ID) ON DELETE NO ACTION ON UPDATE NO ACTION; +ALTER TABLE FACTURAS_PROVEEDOR_DETALLES ADD CONSTRAINT FK_FACTURAS_PRO_DET_ID_FACTURA FOREIGN KEY (ID_FACTURA) REFERENCES FACTURAS_PROVEEDOR (ID) ON DELETE CASCADE ON UPDATE CASCADE; +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); +ALTER TABLE PAGOS_CLIENTE ADD CONSTRAINT FK_PAGOS_CLIENTE FOREIGN KEY (ID_RECIBO) REFERENCES RECIBOS_CLIENTE (ID); +ALTER TABLE PAGOS_PROVEEDOR ADD CONSTRAINT FK_PAGOS_PROVEEDOR FOREIGN KEY (ID_RECIBO) REFERENCES RECIBOS_PROVEEDOR (ID); +ALTER TABLE PEDIDOS_CLIENTE ADD CONSTRAINT FK_PEDIDOS_CLIENTE FOREIGN KEY (ID_CLIENTE) REFERENCES CONTACTOS (ID); +ALTER TABLE PEDIDOS_CLIENTE ADD CONSTRAINT FK_PEDIDOS_CLIENTE_ID_EMPRESA FOREIGN KEY (ID_EMPRESA) REFERENCES EMPRESAS (ID); +ALTER TABLE PEDIDOS_PROVEEDOR ADD CONSTRAINT FK_PEDIDOS_PROVEEDOR FOREIGN KEY (ID_EMPRESA) REFERENCES EMPRESAS (ID); +ALTER TABLE PEDIDOS_PROVEEDOR ADD CONSTRAINT FK_PEDIDOS_PROVEEDOR2 FOREIGN KEY (ID_PROVEEDOR) REFERENCES CONTACTOS (ID); +ALTER TABLE PEDIDOS_PROVEEDOR_DETALLES ADD CONSTRAINT FK_PEDIDOS_PROV_DET_ID_PEDIDO FOREIGN KEY (ID_PEDIDO) REFERENCES PEDIDOS_PROVEEDOR (ID) ON DELETE CASCADE ON UPDATE CASCADE; +ALTER TABLE RECIBOS_CLIENTE ADD CONSTRAINT FK_RECIBOS_CLIENTE FOREIGN KEY (ID_FACTURA) REFERENCES FACTURAS_CLIENTE (ID) ON DELETE CASCADE ON UPDATE CASCADE; +ALTER TABLE RECIBOS_CLIENTE ADD CONSTRAINT FK_RECIBOS_CLIENTE2 FOREIGN KEY (ID_REMESA) REFERENCES REMESAS_CLIENTE (ID) ON DELETE SET NULL ON UPDATE SET NULL; +ALTER TABLE RECIBOS_PROVEEDOR ADD CONSTRAINT FK_RECIBOS_PROVEEDOR FOREIGN KEY (ID_FACTURA) REFERENCES FACTURAS_PROVEEDOR (ID) ON DELETE CASCADE ON UPDATE CASCADE; +ALTER TABLE RECIBOS_PROVEEDOR ADD CONSTRAINT FK_RECIBOS_PROVEEDOR1 FOREIGN KEY (ID_REMESA) REFERENCES REMESAS_PROVEEDOR (ID) ON DELETE SET NULL ON UPDATE SET NULL; +ALTER TABLE REMESAS_CLIENTE ADD CONSTRAINT FK_REMESAS_CLIENTE FOREIGN KEY (ID_EMPRESA) REFERENCES EMPRESAS (ID); +ALTER TABLE REMESAS_PROVEEDOR ADD CONSTRAINT FK_REMESAS_PROVEEDOR FOREIGN KEY (ID_EMPRESA) REFERENCES EMPRESAS (ID); +ALTER TABLE TIENDA_WEB ADD CONSTRAINT FK_EMPRESAS_TIENDA_WEB FOREIGN KEY (ID_EMPRESA) REFERENCES EMPRESAS (ID) ON DELETE CASCADE ON UPDATE CASCADE; + + +/******************************************************************************/ +/**** Indices ****/ +/******************************************************************************/ + +CREATE INDEX IDX_AGENTES_COMISIONES1 ON AGENTES_COMISIONES (ID_AGENTE); +CREATE INDEX IDX_AGENTES_COMISIONES2 ON AGENTES_COMISIONES (ID_PROVEEDOR); +CREATE INDEX IDX_ALBARANES_CLIENTE ON ALBARANES_CLIENTE (ID_FORMA_PAGO); +CREATE INDEX IDX_ALBARANES_CLIENTE_DETALLES ON ALBARANES_CLIENTE_DETALLES (ID_ARTICULO); +CREATE INDEX IDX_ALBARANES_CLIENTE_DETALLES1 ON ALBARANES_CLIENTE_DETALLES (ID_ALBARAN); +CREATE INDEX IDX_ALBARANES_PROVEEDOR ON ALBARANES_PROVEEDOR (ID_ALMACEN); +CREATE INDEX IDX_ALBARANES_PROVEEDOR1 ON ALBARANES_PROVEEDOR (ID_FORMA_PAGO); +CREATE INDEX IDX_ALBARANES_PROV_DETALLES ON ALBARANES_PROVEEDOR_DETALLES (ID_ALBARAN); +CREATE INDEX IDX_ALBARANES_PROV_DETALLES1 ON ALBARANES_PROVEEDOR_DETALLES (ID_ARTICULO); +CREATE INDEX IDX_ARTICULOS ON ARTICULOS (ID_PROVEEDOR); +CREATE INDEX IDX_CLIENTES_DATOS ON CLIENTES_DATOS (ID_TIPO_IVA); +CREATE INDEX IDX_CLIENTES_DATOS1 ON CLIENTES_DATOS (ID_FORMA_PAGO); +CREATE INDEX IDX_CLIENTES_DATOS_ID_AGENTE ON CLIENTES_DATOS (ID_AGENTE); +CREATE INDEX IDX_CLIENTES_DTOS_PROV_ID_CLI ON CLIENTES_DTOS_PROVEEDORES (ID_CLIENTE); +CREATE INDEX IDX_CLIENTES_DTOS_PROV_ID_PROV ON CLIENTES_DTOS_PROVEEDORES (ID_PROVEEDOR); +CREATE INDEX IDX_COMISIONES_LIQUIDADAS ON COMISIONES_LIQUIDADAS (ID_EMPRESA); +CREATE INDEX IDX_CONFIGURACION ON CONFIGURACION (ID_EMPRESA); +CREATE INDEX IDX_CONTACTOS_CATEGORIAS ON CONTACTOS_CATEGORIAS (ID_CONTACTO); +CREATE INDEX IDX_CONTACTOS_CATEGORIAS1 ON CONTACTOS_CATEGORIAS (ID_CATEGORIA); +CREATE INDEX IDX_CONTACTOS_DATOS_BANCO ON CONTACTOS_DATOS_BANCO (ID_CONTACTO); +CREATE INDEX IDX_CONTACTOS_DIR_ID_CONTACTO ON CONTACTOS_DIRECCIONES (ID_CONTACTO); +CREATE INDEX IDX_FACTURAS_CLIENTE ON FACTURAS_CLIENTE (ID_FORMA_PAGO); +CREATE INDEX IDX_FACTURAS_CLIENTE1 ON FACTURAS_CLIENTE (ID_TIPO_IVA); +CREATE INDEX IDX_FACTURAS_CLIENTE2 ON FACTURAS_CLIENTE (ID_COMISION_LIQUIDADA); +CREATE INDEX IDX_FACTURAS_CLIENTE3 ON FACTURAS_CLIENTE (ID_CLIENTE); +CREATE INDEX IDX_FACTURAS_CLIENTE_DETALLES1 ON FACTURAS_CLIENTE_DETALLES (ID_FACTURA); +CREATE INDEX IDX_FACTURAS_CLIENTE_DETALLES2 ON FACTURAS_CLIENTE_DETALLES (ID_ARTICULO); +CREATE INDEX IDX_FACTURAS_PROVEEDOR ON FACTURAS_PROVEEDOR (ID_PROVEEDOR); +CREATE INDEX IDX_FACTURAS_PROVEEDOR1 ON FACTURAS_PROVEEDOR (ID_FORMA_PAGO); +CREATE INDEX IDX_FACTURAS_PROVEEDOR2 ON FACTURAS_PROVEEDOR (ID_TIPO_IVA); +CREATE INDEX IDX_FACTURAS_PROVEEDOR_DETALLES ON FACTURAS_PROVEEDOR_DETALLES (ID_ARTICULO); +CREATE INDEX FORMAS_PAGO_PLAZOS_IDX1 ON FORMAS_PAGO_PLAZOS (ID_FORMA_PAGO); +CREATE INDEX IDX_INFORMES ON INFORMES (ID_EMPRESA); +CREATE INDEX MOVIMIENTOS_IDX1 ON MOVIMIENTOS (TIPO); +CREATE INDEX IDX_PEDIDOS_CLIENTE ON PEDIDOS_CLIENTE (ID_FORMA_PAGO); +CREATE INDEX IDX_PEDIDOS_CLIENTE_DETALLES ON PEDIDOS_CLIENTE_DETALLES (ID_PEDIDO); +CREATE INDEX IDX_PEDIDOS_CLIENTE_DETALLES1 ON PEDIDOS_CLIENTE_DETALLES (ID_ARTICULO); +CREATE INDEX IDX_PEDIDOS_PROVEEDOR ON PEDIDOS_PROVEEDOR (ID_PEDIDO_CLIENTE); +CREATE INDEX IDX_PEDIDOS_PROVEEDOR1 ON PEDIDOS_PROVEEDOR (ID_ALMACEN); +CREATE INDEX IDX_PEDIDOS_PROVEEDOR2 ON PEDIDOS_PROVEEDOR (ID_FORMA_PAGO); +CREATE INDEX IDX_PEDIDOS_PROVEEDOR_DETALLES ON PEDIDOS_PROVEEDOR_DETALLES (ID_ARTICULO); +CREATE INDEX IDX_PROVEEDORES_DATOS ON PROVEEDORES_DATOS (ID_TIPO_IVA); +CREATE INDEX IDX_PROVEEDORES_DATOS1 ON PROVEEDORES_DATOS (ID_FORMA_PAGO); +CREATE INDEX IDX_RECIBOS_CLIENTE ON RECIBOS_CLIENTE (ID_RECIBO_COMPENSADO); +CREATE INDEX IDX_RECIBOS_PROVEEDOR ON RECIBOS_PROVEEDOR (ID_RECIBO_COMPENSADO); +CREATE INDEX IDX_REFERENCIAS ON REFERENCIAS (ID_EMPRESA); +CREATE INDEX IDX_REMESAS_CLIENTE ON REMESAS_CLIENTE (ID_DATOS_BANCO); +CREATE INDEX IDX_REMESAS_PROVEEDOR ON REMESAS_PROVEEDOR (ID_DATOS_BANCO); diff --git a/Database/scripts/factuges_sysdata.sql b/Database/scripts/factuges_sysdata.sql new file mode 100644 index 00000000..da21b376 --- /dev/null +++ b/Database/scripts/factuges_sysdata.sql @@ -0,0 +1,50 @@ +SET SQL DIALECT 3; + +SET NAMES ISO8859_1; + +INSERT INTO CATEGORIAS (ID, CATEGORIA) VALUES (1, 'CLIENTE'); +INSERT INTO CATEGORIAS (ID, CATEGORIA) VALUES (2, 'PROVEEDOR'); +INSERT INTO CATEGORIAS (ID, CATEGORIA) VALUES (3, 'EMPLEADO'); +SET GENERATOR GEN_CATEGORIAS_ID TO 4; +COMMIT WORK; + +INSERT INTO INFORMES (ID, ID_EMPRESA, CATEGORIA, CONTROLLER, ICONO, NOMBRE, DESCRIPCION, ORDEN, MODIFICABLE) VALUES (1, 1, 'VENTAS ARTICULOS', 'InfVentasArticuloController', 4, 'Ventas por artculo', 'Informe de ventas por artculo', NULL, 'S'); +INSERT INTO INFORMES (ID, ID_EMPRESA, CATEGORIA, CONTROLLER, ICONO, NOMBRE, DESCRIPCION, ORDEN, MODIFICABLE) VALUES (2, 1, 'VENTAS ARTICULOS', 'InfVentasArticuloController', 4, 'Ventas por cliente', 'Informe de ventas por cliente y artculo', NULL, 'S'); +INSERT INTO INFORMES (ID, ID_EMPRESA, CATEGORIA, CONTROLLER, ICONO, NOMBRE, DESCRIPCION, ORDEN, MODIFICABLE) VALUES (3, 1, 'VENTAS ARTICULOS', 'InfVentasArticuloController', 4, 'Ventas por agente y cliente', 'Informe de ventas por agente y cliente', NULL, 'S'); +INSERT INTO INFORMES (ID, ID_EMPRESA, CATEGORIA, CONTROLLER, ICONO, NOMBRE, DESCRIPCION, ORDEN, MODIFICABLE) VALUES (4, 1, 'MARGEN ARTICULOS', 'InfMargenArticuloController', 0, 'Margen (promedio) por artculo', 'Informe de margen por artculo teniendo en cuenta el precio neto de venta promedio', NULL, 'S'); +INSERT INTO INFORMES (ID, ID_EMPRESA, CATEGORIA, CONTROLLER, ICONO, NOMBRE, DESCRIPCION, ORDEN, MODIFICABLE) VALUES (5, 1, 'VENTAS ARTICULOS', 'InfVentasArticuloController', 4, 'Ventas por proveedor', 'Informe de ventas por proveedor y artculo', NULL, 'S'); +INSERT INTO INFORMES (ID, ID_EMPRESA, CATEGORIA, CONTROLLER, ICONO, NOMBRE, DESCRIPCION, ORDEN, MODIFICABLE) VALUES (6, 1, 'MARGEN ARTICULOS', 'InfMargenArticuloController', 0, 'Margen (promedio) por cliente', 'Informe de margen por artculo agrupado por cliente teniendo en cuenta el precio neto de venta promedio', NULL, 'S'); +INSERT INTO INFORMES (ID, ID_EMPRESA, CATEGORIA, CONTROLLER, ICONO, NOMBRE, DESCRIPCION, ORDEN, MODIFICABLE) VALUES (7, 1, 'MARGEN ARTICULOS', 'InfMargenArticuloController', 0, 'Margen (promedio) por agente y cliente', 'Informe de margen por artculo agrupado por agente y cliente teniendo en cuenta el precio neto de venta promedio', NULL, 'S'); +INSERT INTO INFORMES (ID, ID_EMPRESA, CATEGORIA, CONTROLLER, ICONO, NOMBRE, DESCRIPCION, ORDEN, MODIFICABLE) VALUES (8, 1, 'MARGEN ARTICULOS', 'InfMargenArticuloController', 2, 'Margen (ult. venta) por artculo', 'Informe de margen por artculo teniendo en cuenta el precio neto de ltima venta', NULL, 'S'); +INSERT INTO INFORMES (ID, ID_EMPRESA, CATEGORIA, CONTROLLER, ICONO, NOMBRE, DESCRIPCION, ORDEN, MODIFICABLE) VALUES (9, 1, 'MARGEN ARTICULOS', 'InfMargenArticuloController', 2, 'Margen (ult.venta) por clientes', 'Informe de margen por artculo agrupado por cliente teniendo en cuenta el precio neto de ltima venta', NULL, 'S'); +INSERT INTO INFORMES (ID, ID_EMPRESA, CATEGORIA, CONTROLLER, ICONO, NOMBRE, DESCRIPCION, ORDEN, MODIFICABLE) VALUES (10, 1, 'MARGEN ARTICULOS', 'InfMargenArticuloController', 2, 'Margen (ult. venta) por agente y cliente', 'Informe de margen por artculo agrupado por agente y cliente teniendo en cuenta el precio neto de ltima venta', NULL, 'S'); +SET GENERATOR GEN_INFORMES_ID TO 11; +COMMIT WORK; + + +INSERT INTO REFERENCIAS (CODIGO, VALOR, ID_EMPRESA, DESCRIPCION) VALUES ('REF_FACTURAS_CLIENTE', '00001', 1, 'Ref. facturas de cliente'); +INSERT INTO REFERENCIAS (CODIGO, VALOR, ID_EMPRESA, DESCRIPCION) VALUES ('REF_PEDIDOS_CLIENTE', '00001', 1, 'Ref. pedidos de cliente'); +INSERT INTO REFERENCIAS (CODIGO, VALOR, ID_EMPRESA, DESCRIPCION) VALUES ('REF_PEDIDOS_PROVEEDOR', '00001', 1, 'Ref. pedidos de proveedor'); +INSERT INTO REFERENCIAS (CODIGO, VALOR, ID_EMPRESA, DESCRIPCION) VALUES ('REF_ALBARANES_CLIENTE', '00001', 1, 'Ref. albaranes de cliente'); +INSERT INTO REFERENCIAS (CODIGO, VALOR, ID_EMPRESA, DESCRIPCION) VALUES ('REF_ALBARANES_PROVEEDOR', '00001', 1, 'Ref. albaranes de proveedor'); +INSERT INTO REFERENCIAS (CODIGO, VALOR, ID_EMPRESA, DESCRIPCION) VALUES ('REF_REMESAS_CLIENTE', '00001', 1, 'Ref. remesas de cliente'); +INSERT INTO REFERENCIAS (CODIGO, VALOR, ID_EMPRESA, DESCRIPCION) VALUES ('REF_COMISIONES', '00001', 1, 'Ref. liquidaciones de comision'); +INSERT INTO REFERENCIAS (CODIGO, VALOR, ID_EMPRESA, DESCRIPCION) VALUES ('REF_FACTURAS_PROVEEDOR', '00001', 1, 'Ref. facturas de proveedor'); +INSERT INTO REFERENCIAS (CODIGO, VALOR, ID_EMPRESA, DESCRIPCION) VALUES ('REF_ALBARANES_DEV_CLIENTE', '00001', 1, 'Ref. ordenes de devolucion de cliente'); +INSERT INTO REFERENCIAS (CODIGO, VALOR, ID_EMPRESA, DESCRIPCION) VALUES ('REF_ALBARANES_DEV_PROVEEDOR', '00001', 1, 'Ref. ordenes de devolucion de proveedor'); +INSERT INTO REFERENCIAS (CODIGO, VALOR, ID_EMPRESA, DESCRIPCION) VALUES ('REF_REMESAS_PROVEEDOR', '00001', 1, 'Ref. remesas de proveedor'); +INSERT INTO REFERENCIAS (CODIGO, VALOR, ID_EMPRESA, DESCRIPCION) VALUES ('REF_ABONOS_CLIENTE', '00001', 1, 'Ref. abonos de cliente'); +INSERT INTO REFERENCIAS (CODIGO, VALOR, ID_EMPRESA, DESCRIPCION) VALUES ('REF_ABONOS_PROVEEDOR', '00001', 1, 'Ref. abonos de proveedor'); +INSERT INTO REFERENCIAS (CODIGO, VALOR, ID_EMPRESA, DESCRIPCION) VALUES ('REF_PRESUPUESTOS_CLIENTE', '000001', 1, 'Ref. presupuestos de cliente'); +COMMIT WORK; + + + +INSERT INTO TIPOS_IVA (ID, REFERENCIA, DESCRIPCION, IVA, RE) VALUES (1, 'IVA16', 'IVA16', 16, 4); +INSERT INTO TIPOS_IVA (ID, REFERENCIA, DESCRIPCION, IVA, RE) VALUES (2, 'IVA4', 'IVA4', 4, 0.5); +INSERT INTO TIPOS_IVA (ID, REFERENCIA, DESCRIPCION, IVA, RE) VALUES (3, 'IVA7', 'IVA7', 7, 1); +INSERT INTO TIPOS_IVA (ID, REFERENCIA, DESCRIPCION, IVA, RE) VALUES (4, 'EXENTO', 'EXTRANGERO', 0, 0); +COMMIT WORK; +SET GENERATOR GEN_TIPOS_IVA_ID TO 5; +COMMIT WORK; + diff --git a/Database/udfs/funciones.pas b/Database/udfs/funciones.pas new file mode 100644 index 00000000..c6d8a08f --- /dev/null +++ b/Database/udfs/funciones.pas @@ -0,0 +1,40 @@ +unit funciones; + +interface + +function RtfToText(Cadena: PChar): PChar; cdecl; export; + +implementation + +uses + SysUtils; + +function RtfToText(Cadena: PChar): PChar; +var + i: integer; + CadenaAux1: String; + +begin + //Si no tiene ninguna llave no esta guardado como rtf + if (Pos('{', Cadena) = 0) then + Result := Cadena + else + //Esta guardado com rtf + begin + //Quitamos todo lo que est antes de \fs1x + i := Pos('\fs', Cadena); + CadenaAux1 := Copy(Cadena, i, StrLen(Cadena)-1); + + //Quitamos la parte de delante \fs1x + i:= Pos(' ', CadenaAux1); + CadenaAux1 := Copy(PChar(CadenaAux1), i+1, StrLen(PChar(CadenaAux1))-1); + + //Quitamos todo lo de la parte de atras a partir de la primera barra \ que tengamos + i:= Pos('\', CadenaAux1); + CadenaAux1 := Copy(PChar(CadenaAux1), 0, i-1); + + Result := PChar(CadenaAux1); + end; +end; + +end. diff --git a/Database/udfs/udf_RtfToText.bdsproj b/Database/udfs/udf_RtfToText.bdsproj new file mode 100644 index 00000000..959bb9b2 --- /dev/null +++ b/Database/udfs/udf_RtfToText.bdsproj @@ -0,0 +1,498 @@ + + + + + + + + + + + + udf_RtfToText.dpr + + + 7.0 + + + 8 + 0 + 1 + 1 + 0 + 0 + 1 + 1 + 1 + 0 + 0 + 1 + 0 + 1 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 1 + 1 + 1 + True + True + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + False + False + False + True + True + True + True + True + True + + + + 3 + 0 + False + 1 + False + False + False + 16384 + 1048576 + 4194304 + + + + + + + + + + EUREKALOG;EUREKALOG_VER5 + + False + + + + + + False + + + True + False + + + + $00000000 + + + + False + False + 1 + 0 + 0 + 0 + False + False + False + False + False + 3082 + 1252 + + + + + 1.0.0.0 + + + + + + 1.0.0.0 + + + + + + Muststang Peak EasyListview Runtime Package + RemObjects Pascal Script - RemObjects SDK 3.0 Integration + + + + diff --git a/Database/udfs/udf_RtfToText.dll b/Database/udfs/udf_RtfToText.dll new file mode 100644 index 0000000000000000000000000000000000000000..e6642a6301b2fe3d37864f8321991684c4f5ab25 GIT binary patch literal 379392 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

qKT1%Vdu+p-S4fWyZqOdG`iXiP6X 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

KJ&~8BkK3o?H2SCG`y_;Z} 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 literal 0 HcmV?d00001 diff --git a/Installer/Actualizacion/Output/instalar.exe b/Installer/Actualizacion/Output/instalar.exe new file mode 100644 index 0000000000000000000000000000000000000000..71bf12e8fa2b31923a43da00ea6738fb2c343ba1 GIT binary patch literal 2200795 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∨g+hbV!T-p{k+MvTyMhof2Rhbg3(3arM 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

;kW_R0>l>FVz~Zc_83aQFMF(;^0}!T5;LOm%d` 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∋6 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%0A`=7Q*#{Hp} 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

xx?91(`_n1dK0Ko2@GAh?N6xiF$ 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

Qh_P0%b*|TZeT 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

-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 mO6X#`k( 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
    )kef(Xj41O~!$bTYgMo>80u&U6=wj z{iDXPK2Za?$+^vnV9a^~BynU3>T0{OR;qj@o?y@&Qp*p@`t23&C(0&{SS^Dutymwr z9!ao(4HMp<*%31uO)W5cAmYX0?{o5e?l~HL0~c1@#B!G_BtAWp6Q}C=CYf#(XecWqcA6hhtH;3|JXx(~k|wCJ@(?Q+YP-ZA zM}W-!F&IlK3z(vMb37635^S`UrvN@Pm_3FogvoLgprQ%jxbkuef-)(RY*;*4wf06f zVKdLE6m%D)ccI_QP+Xv^U_x*Q9tY&%E;I&Iqnh(rw89< z3rEJ4Kk4F-7CX+~?^F}by)-a9mtH*jjlJei9cLyL^>}hSwx}Ga4?NS;NC2%15PPj5 z*}L&FP6tDCd)H*3w}zZS>VpV(6rV8RE8!i&zn@31-R%n+E-k0*KJnMTTPJ{ zi{qb21K#M@vN=|k8h-EEcQJn4O^qy`d_S0u zdvszK?`Vxk(;|`yfaVv z>Q}_OR)?O5ssFL{#l7I6x9F3tT^)mf!!y~R=xA6CX!gB*u3IFTAHN5YC@2st9)q)@ z7|y?Y2Q@!66tq6`+Pq8=1j_mFSY*g!xd@3V;2l#`nd{^~bY>LWh%=>dF6NV`{&I-v z788ALDB*~I$5Y!}`-ss|1~G~*OAM}-S^&+w7? ze>JDo4!F9fRjI59x-kNKGieuMZA_jy)-#LOY;}Xd#z@SX@nslEah|SF89V_8>0IQW z#pwfv{fJ8*|K@wz0PF<*guE&Iu zA?9!*ek@Gx`oM5Ad_;gb)V(&S4v1>x8(+z@dY-j0d{296l@`bqQ0|>b`)grlC z__AVHZJUNT-trWi=Wq4c7CU5hSeLA@giT*GzF+E>N0Kt$6T|m1+k|+ZaAshxTIW3Y z9{1u#bgA2KlspE+_l8ncScO`kT~{}SQM}=?lWn44AhxS79^-3l>0~z~^7Oyx9MIhJ zNZ={@hV0?Q!GbJ-;rwzHOn7uq^yiWuS8`$G7w~D7(XlKA5R|XcLaN){Dir*qB2Z;4 zct_U2OyiY!E>ub>ext7EFodO4CpyP;de}k9yzW5x5)#EsDxg`tpUId#te)HO;kz-J zBXOCyY9lG14&Prt8ou@sC&2Rs6Lg~EZ_18?R*6kC)`BCnq=X_^J?ub?!SzAD1D`@0igRs5zetm1Stv^-n4FD7ft4-#Q#aGq+4a9vZh40lv{u+AvCy6aHf?d zEz(!TM#s0_4FG$SGcz<58sw+XhnjKFTD<7=)9Uqjm6VJ3K8o^3sH2y?pPX*mPmhHJ zDONeVn+~)uTV$hLI>XFISwNh4*%3m9uR8CzDds8JbgI{rE8&s=;B9?}M;y>tT0~S? z3@J<4+8&=rXCe)3SWVs3cQ)2`96e0eikSQiNTh#CzZrqwQtOcku?ZV*G02O^0nTPoNAf+B&(y{3`?`*8`K9-5W_};w!>xeX3%)pUhncLsypv za0)d2d0=5#P$>7UY7AdQh1YhgK!amY0f39s540WsDpyB!$nEwS`zst<&kpl57cHrK zmi%J%->(OqxM~V(>wY2`KZ!Ayq5b_(WwXJc$KSsyQ{2bFXkYfL2CO08V{RKq!x94AKvwZMjPm#xM? zgH%3z659X+6gYe=$JTQ#Zl(aO6%b;M_dFga1Tfb=?oW5=ih#FFx1ZO=Lu=jY5~F-CM+T?(Wqc2&hiyx zA>5V7^j+%fC>(`Mv$)2Uipn3O#AR2uWe@#4j72>L;sxZ3c7oTwGgU5hL^}Pq6gf%# zWP92#cEGYSDA@k6_5A(7rJq~AX0NRnFn9Ol#F{V-+yQUp=d9-!NOn$afXXChJM3$C zI0$MmIrli}+) z0gP9aY&u{AoUJjJh1_41pt?`;cuRpCxdQYk5ns;^CP>aTO!aGmA3}rq3T;GoohB!C{XIwhIB6WZF!QON1EV4rTO@}8lpdpf$g*9UYC${MlCt}uGP{6trxCwczQ63u5^*Pv~# zldt%zx;iUW_>>t}jAA6<9Q1&UOul`YTrE8Fx)iQyR2FA9Rd1Z#Sc@i5!-poNMeBW* z2Cjt<_j+n~p6Dln__-6QsuqZI%G%KvSA~%EXQL|)j1)=`0N%~?eVt_{Poe)GxA_5z%2bp!kMyQ1tl3uoEd`mS5Me2O@xNYj4`u; zc8c;U0FLsdJ>ryK!gSgu5b~Ywuw+D@!eS_UOI`Gj-Fbv83XK^O-F_D@0sjv1K8d4` z7?HTOjAR3Kx8u-~tia_RN$5HMs+mEIYALm37cyioh?Jlz9XL+9TyKwXS3v*p!o#jk z?bD%EUT0X`oRm{kO^ls*X)_wm@5`VoY*;e%Q3v=tR1}XfzFCPIta5jd@)Qw#|8&4! zEbk;hS=}Bl!+x;1Z!u8lfkl|jrC+)uP*VX&7Mu|?3`jq;Qd8cuPBU#hO4DKOn9}_ zF=MlK{yZ)KraiZMUqKcoJdZqY0PG)s#%aul!r*%BXW0!6-f0Knr8bedQTba2TDR)) zRDN8Do~pm1&dw=_0UfxJarrmZfb4f{@n%EA6fUd2aBRta=6jQ!JU=jVd7L85K13!3olyyul2@n0X(&G*k z^7*$Jb{x{fnrYg+AVvLAGKYk^h93j<+zb-G3}w=faM6C6A;yK=Atu!40fS1Uc+Eqm zw7!$#8Cj7%sTg>$;B7+60*&rEz|nePV&t&Xcqwd2WkRBunAPKI*xeJO#Y;DxOmvTM zSI6Zu@$^E`T;pJu-zlrp649ysiz^ z;WG#Xw4`$vc^8ysXDUAv-kelSfJV4O8xbds-(yxAcjCm@0dmvTu=v4-$`3dYDEIkTaP9NdfMz=LQ*}-v5DPcO`P#S9uck`Cyn7|~StL>C zH_~BV-8?tE3H6}|v_4NHPM%)70z3^;eO7<4TL92{}(CS z!9MvwK8qZ0`^7aL494Ld4~P|tgL$n(3d>`1oLLhWHZm9s6sshy1$y&XwwQ<>x~6Ly)Z`8fT-c1t>8}SM@w5 zH-_e(1uGT#Xx4B6T!A+}xH6JbYXJ|>){7jV`UpSF_uED3{GjpdLQBwGK2b}v79Xln z7aeAn%Fw4^Bfh9odz3V^DFB-BPUoEUDu8*RT(`2oY+#lKRZ!M@^VQPIW(Qf33?Fo` zM>Oj<+)R`+V$I}m$1S7Ko>DgUY8Po5bR_p7w&krjHXJj-=f$k(Y%vInV-nD(;J63y-ENt_ep}k- zkBFjC_?Vj%EgO-u6Q>(dG8rd09aPw8K~hrW;cESq zTx|GWUuSa$qBrAykKq1yHRGW`$c3;1?@BKf%ri0-i0mn3^DdPUS;c68(mvTmYh zy5SGe_80wmy58LNn7P=Wrf&kLAXY6(5-fo7%klKS>jB31L_$B)eFlB;&1?7P+XujP zz8WWCm#BXj>dqMgsRsnv)7mCln^=8EQJfuOyD(`BBSSvsQ$AN9 zbT!T&>^UbahvW6yeFV%RL4)G~*nLkCYe6LGg`haMq0nhBSOMf-3H4RoV4TvQ(pqdiSU$}WVbdB4O{E0ywj}BI4{N=nQ`~-P7>RMWvUkUP@oq z5XFzaMfAI+6r-g8pljvPX^N?qm7`}@ZkGeP=e?pArnT#Sgw7IOHIn%hyYI6rmGjh^o zMuVAqpK)X-XL`1N^L7$J2qS9@ZC;leA8dnZ03aoEdV2TT#;DU%FDe9`sx&{oUHH_ zM(Wh&%eE-Xil#3O-1ju8S6xvZR<9^cWbP8Earfb<dg_|(7r_baUkX9X$}yxJ_*+3~G}pVit%fs3Efs(OnIOh6 zxG6U2HFMTxImIA@NM-gBweyj8LTB>qbeE!y5gd&5VPYQFrCHQ_&KB6eHCXV9;u$m= zk*l{hk_&yM2cIT{M&a4kwI=4S^t0BgArWS4vS7-5Berqlh+RGm>r5+4Ux=Or6cS3V zGAWNh&mEM8vLvccBFJvsI)VDTLxYo=l2t!d05%_6jniJ#_0Vn%)TAqXm}wjymo1zH zQU_A(gI0&L&!uJUsWg?NYlpD2z2C&^^1$z30T(e$df!S?iZQgE*4 zc^QObtj@=p@*IR(_#6jYHMs_-l$tZdZO}n%dkd7!uXuih)ntoa2qh!vPAF43b2VnOP7?BG!!d$?2wFE zap550A-4Zq4l#minTMknQFKC}RjztK><0TNCNnwjLa{VHyhB~}$qUknnZ*2)eWnd0 zwUY9`pbm!#vT~?qTWT$;*J#A>!gC2{MjE2xC~m@Hj?YBnz3vEem2Ykf}$vv!D9dEE778eV~=T=p-7T7r*&&}oA~Yt z`uNqtlStZV>x?ZJbh+AGOIwn7Q0$9V zCF)ja2lZ6R&kW0I2B%rYL_q3>_ombY+sQ%7O# zSE&%+aBU@I^H`MCwW?uD4A6u1WCxiwXFE?y2ueu-WRnY?`rdro@nsaK+d+uu&1I{~ zT*Ibb!2<<%o5dPN4sC}ZwfLlFuL8zgj#gv?E8O3KN(kDk48&wysmY1*wNLR;-^LKq zRL`u7GN6AkyUIYHb&O=yYCl}Dzi9gwf)O4iWBp!?9cLov7?^^bW2L)J*c!J_r_Xjc zwu5+vv47{D#5KTRK@2BbHsd8c6+bD<<3#!D|A-~N);e@)TN9tlPHAl!JO6VuXWO~g zreT5{m^yq?Ctamf)*P~lOiJsBF6Bii^f;cSN1k}zT$ML6F+_8`u~gBFLx)I95Zj{q zva>iMr>!*8o%7D{iRDnL6#=2_TV58_`95XG!F}SNr0zhtF@@dSQ3RUVUS9o820GUoPunY6ADkvhGMdo3s z(%>FEK{ChoJf5=wNWPgy0~RC>dCBI&&bGt_?5_j{Z0CQy#eAZN9TvAYJ@m1fv^bUg zExA8$+($GC{^6{-pD6MQQ|BbTJ1Jh)uo)n=2=Ckvw~II^!=$#F_)QnJRp^NRQ2z+4 z_@7i%zp0h9$*Jw=Dckhk(WXD-KzE3E^(Z$8cG?-;gyga54=g^tJ)I+5Y`i=DMOV5x zl)hS4|1<6GJ^#%Tz!YgGX4Dfak5S8?-z$pokh$-pA#)NXa@z97#lbN$&Mya{R@x2X z@XKGUJ&K20AwbfHxam$ieA5<;?p=gx<3oUzoH8F3g@scY=So7Kdg3EQuhE;Z-f_(^ zQxwVa>8eo)#c`6T%Ge1QToEbmbppRGy-8b6mu$XPtj!m(>?g*G*v?qahYG+9OZ+quIop z+f>{^)X9m)68Xd%wbugUt!&28??KE#-Q@cvL9i11nM9*4lNi_X`S-MCW#_Ox-&sp= zyuf;g=8G+4k-f!m85=rN7q#l`J=7-aUj~MZ1zdOt-pV62zRh?sIgcR zA`=hnNGy~C2$aIiIEB zUFt^TiovlJ57mL*DA;1@L~9c9SoCn2o`l2Ur^!Y$H+35n0VuM$SYl#?_7_{2y6PG; z82ja@1D31pDO{hPo>ZKi*wW|v4knzj+EHhGL^{n1quYdyHf`Y5s%fdzj)2+;XzL=` z**NkY&uk}jffMR!#B=-GMM-PsEEQY6%d(*)sDwV^-@$_Ee)xP$2-s5~B^sEnnt(;5 zhtU#`NEbIzx8&4K3d^lk{elwYfZuceLh=gqPua%no_Yg^->nBO{Zx~)MsELzVo0~0 zqls96wCrzE0aphvh#?(07_WE98?i+!ODhG_X!aKq(B5bq2XIK%ip2nh?CGB0Mh@qMuP$k z3jY0Gb>4IoKG^{Zm~a+Jkf}a%UAIbF9m^4V51*xPSF`_&4@q}~#IQ7&hZx{WBfO>B zv&I#Gqmouso)2m!`8=+BV{IfQnvlRwi?8Rr{UWioIr+bzEjSJ~C&9zz%@^XRZ3F+> z2*2lANv|0iY_5f^NP{Oq*vdb9c8WwDPNI}D+`s=Ql}ojmG*|W$vOA23bTl#_bI-@K zLyE2py1FnKh*-lIWxv8sPs=fo$e(&-0W3hb4zJ9L8>61Su~jTdAYztqIQy3@%ouA$ zK&^aecfJqv(P=RK?E-YAB<;vXC^ z6g91g%jd|s-0tWAYLqf!T2>x zSM!S4Q41^y$Njq@GFIefTsK|cszyi{i2|$Yr+7ns25K{YHe1lp-oL(Z!#dUU2JGiK zs^4`eun;3lK`8PjF(mw8z%Td#d`nOPX^mNScJ-#-y1QNRkf@V z$KW=UxN=lvhWsOY6R+auqPsTjY{Su24*ch3mRp5jA~Ig2KJjjTCNO*;K>EGHk-o*S z36^!Uok;4q9oWoz5Y_?R*f05iSs+V%OBEG=sE}J+=}BEn+Le$MnZv`B@863^dXZZU zoHT5fw7Budunq0GNE(`FcoNVokl4)qQ=dTGKDNB@2KnJK2!r&R& zvN@&)jfaae&SuqO^(RRrVphj_OgCH2pYxnr*Da!>?NpbuT)fl;_QfKb8bocl{a&YG zW)6}J(ys!Cd_Ju-G#x~M9Rp25Lo=cXQqcKc+ zdEMCYpC(d6`kBX;;wyCxzCM<;jD_GrL&7#YPL-Fg8P{Cm&jfaDgewwJJNPI;P9%Ko+-B@%_Oh}NIp@0~a6*pi@L zze;2nc2o(9-^ByAqz2zo9p_o@DXWW$gX4nP{a-?3dNr~;`6*Xf5$Mq>DBPthx!YrO zf4bMTVsk&WuI&4{WK$KK;>U5m1hTi*1m>#gz(pu`ZgPW8zT#0>jU{Rj)wbfq*x=s> zfriS+!dRt@sS9xz5tZ2OkEe6w)!Alw^7@c$=BQb^J25=H9x!OE=;d6Wq(Ieg^XAXO zcftzTtBLVG3Evuvt@~D0xAzY1nIWs6vKVCEltCZsS`z0zB40_f9hBH6hw7?3Zq(1W zcZrtZhGlZ!)cxw+zU(2dMbeGG=KBy5=}2KL26iB5S_{q#3`F%jd*-Ir5Kk^Vt=K-y z85lVpG-xf5(caM=2I+v0f9R_$|{cgV~tcm>#^5@Ga z7aqit7}yYmxtYID-~(L+2&s3_b9Dcq;PJcr)U8c$SS0Okxvl?*mjQ{|RUnp1$GH%; zRy`X>Nml8@Y=D6Epav-JsN@i{k z#R?o8h#_}=XTEDtPtn7t^L`+O2}?Zr`Mbm%Jf80##S-shCQ7Qt6^df}0W3CE%hO~) z&&DV7sE}-U#%Y2PfD@M_WJzgR#yPsPA(7_83Cg@3Z%$fPm=Eroal`VJh0wS4ev238 zrBJ!H3v_yZ8$2oqb|0x17mCSDeJrpcSSDCixE9hQ*x;~x%uxyKR3u{mBXzB1C*&Ce z8CZVBI$`2dK4}OKk&g4Nl)HD-oC<*MA~eg0RB+4l!%YN`V-j6vTsjjLA`QfBS>T#N z4o_n{#A*A(3Iu?b)2R=1YgqeN&?%f_yWxJOU)3SUx^;v}QT0G`(R|rgnR5+M2m?LH zn~Rw%`yW#kk^8h#hmPU^Te~GHQ8>B&WNTdkioFX#A$@viLb50e=aeO7LaT3^?AEM- z9L4t`<^PrJ31Bs4U3|0f`$B1uiWL2}i~M@Qg#wyrJ22GN<_1~+7m-DNKT*@`J!Sk( zsrQr{oLZ0j7SXlRB6Qye{alHM7D_ne8Lqui0W&voAX0Tp(sf(ZgN!js_A!Z-?`ceP ztH>2qn{arcOUzzJb&E`Y&0 zLKUvk6^e*%m{uj^Im`w0;6;F~t*k*Q zrzBQKEmL~GZw)VTlbGHe2a|Hn#c+8>8a6?6wB6CfJa5D_@^k$ozwA`?mt6^9i(m=C zV-)kW4e&XBFHaI7K{zT?`?GA3GJO!cQ|rZ7bDQzT_oVebj?+88Ywy(1a5SD!9m?}H zIqL&ZDor2$8DZAQC`~63oU|DJh}YapTbME6$=$)sryO~SunDOUrT)OM$i%XiSpS%?*5Y8Mk_KE+cA^-6{+Qkb%Ms^6|H8pT~5|0zR+h2 zd%vQ5#+phzdVTNSD_Fi}AMs6*(nnV`!4B@|+d0w&y?N`RoZ5{ql5n9@6A5bH*XbUh z>_jPw?h~g@yjrrGSI=q2i$wFi&GPSFST~Af{raUZCEwH9Xw9BGmV}aD?@2&36ZZA0 ziKqVlsc&-^+i4kY{u4V|HG(?biwnC zz#=ay2$!kSxs^qU|p{`6q&r0>G#cy2nN7j}8 z@>>7Gp@AfSnPD!#&?rX(s82kslyO559wV3My6Q3I&twH%yKR{$w%!}MG+>H{z_agh z3LY2*trA}5?L@_}BaMt@8iX-E_|RIA!CxD`3YE!uBn#D5_>Kxrjgsx7{vt)9X7_wx z7EK`k%aQmb9Vvi(LF7$Q(!ups}Jx4)2|H>4~;K}K^@{PXFNp3Lc*TpN(GcXp!}YxLt6s7u3` zO>GbyMtBOih{?OEULG~|ctC+55l*utWyP&RXP-~;$$Wh_NYqXSau=pFPHV{jWcAceL$RHlSc&5j zraXV$RF4&?lP66O%AJBWjH~06v9eio(zNFr&sPE=6(xzZ4oivim?i)f#MipCek=jc zcZjBodWQ}M`7)ND^LbPk2|jTA`GaWZgzRDPLCynr_FiQTnZ6$CBpIjyJ#JSnWCM@- z1=1cX{Lm(Iu3;wbV0hnh%AQf;uL{j^xKr!v^F{~dyhf*)y;OiYmX*m6!-=fP_~s@6 z<|D-Nn3qoWsDd$MQpGW++NPdsMbtgYvn$z?VODtjTfao3DtJ;4mK|x7Eu;b*(XTQz zl~=R`^Q0}Bh|?AgoC(NHYm3}IN*2ylcG+uSh|Z<<#PxEp80s2ene+FQ*IbGkj%0zFB|5IN)3m~;oKPUZl{ zcm^WGZSVKLTA5&#z$n)Ca>oW@n~T{@@FlQhC**2ez#d%toKkR)f0~0iIRsqbP7vSD ze3qXkmj6mMN2>N|E9sg9gD_DR00rq>*;aImd5x=c_qrHF;Uz#q^oj{yXIr$ zou+i&bqXdQ{J(#8pu=Gm1I)Qo=htH3kFzsPU%R&i!zbhAHqhtlcdEG=W^WNts#?t} ztgB&?o!Qc+mlk79>W)RkT2C0kwE>;#>@jOQ*~AcEG5|We{Ssn-U}LISpB>m?D)R8( zsqi-7McPeUd}B`sT^DLCVw>jYivQ!{Px1CZ+GeO?#taepkum@Gass% zXRZ_x^iCDWWMKs=FQ+F=RC0hi#NKdj#_uWft&s>Z@V4>pm66gv$<-oMYA3iDm&~t< zD;`wH;1iC>|FfKSWInT08ZFHCgV?687htp8uZ~_tTM3dNX?EGzrV%gz30&O)I6LC8 zxSS`&`~B?2p9s5S)&Y(hv)g+cadya@ilVsAi>${U6E79pUxY)98sn$9*&LDf&wLyrD5tEU`UZfqQf>z!0~7vKN0|b z@`J%P8$HA{NvLwIng|i*8PNg>+?t3tT4OOitE+Ty&pT$K8L4oSPW>iiJZ+GT9WT6G zjG*vxwDX?f8~$>Zj&N-dZz?028-=itn7MH+lFq2|e5@Xv5*N|LdZdepuunnUQW89R zWFI^UU7vb@mY-n!^j)i@>`w8^ACHG5rA6yxSMmjIGWq!1|qI6r-4I|7Pr9jhN7z?!w7UO@U1BOTwH9xt{@q*ekTCp z%g;J+2!D?Zn18}xyQfsP_x*~1eNof11Q)&i$^>}u&^|El2{ayx2@J8k3H(W9kn&QK z&?oMRD9Ypaz0dR*nD=oG{1xQK5l}OT>C*~l9%8>%l}=|`rq*hVIP2FYel+VQ^+F6S z#Y=39N0o1q%*@DAt&uzRRZBt%%? zu7jQI9{6!ja%N95^p#1h?K>i%VL#>k=Q|^o0Ad^hbCpW}1c17o{2>tp7-bsY8iZA{ z*lRSz`{3L6aCQ9BGLFphvzE&SnCymGt)rov*-$j@D)(qMTRPZD+%KVrz&lc2Ll_7IL zN?#4=T@fVIEVom3wa3*jR3uzdy8y6%yOmf0f7^g~f5y%o|Dl-AnzP>$` zT_&p1*de(q8U-@M*%;OpMwQvk+7uiJ>vlQm58^pk@^lbJkEH(NpcM}gP8(ck#T36L#Gc1H^!K%5$J&Us5>UpuyK zy$=B8=s+0u07nTWH4x-X14#g#@_63a!QJSX^KBhdURvl7S*&HyF6gQH9?Ab>bk!7K zyViBqhF@h5@&Tn|B-jiiCV{#0GxO1G2u_Gz>4XslCZVE31;=5?0fH7z|IaXP#q14& z%Mubw04D-s&)T4Cd)d!1nt{Gx0ra@BXKc8QtIC~hKwAPk_zZ@NAW++~>l5FFb1|f5M46^t*^B^@9tVD=KUONLL z$~PHT6fah1;ClzAi$dvr(bPsSjAmdIZ!`BauqPv2`Q+Y?V#d^*5^9H|Le*bi`$BSaYJI#@P$#F8}gX7ox zmR|>4KLh`PNi&8s=>kFW%Sqrek@OZlD*W4pl??8`UMm4Vpu7f}*7N4|q=`a^IM2;u zm-zDvFT;yzf?6n^)vQowKyJHn3Nu-_qq;g5#f5PxOOFG$d^v;##gx{NHR4?`p1c`i zzEoDCsXZ+vq#ozZe*5XNp^!}D2;c%+<*=>9ZF@^y1DrvQ|2 zWVv_g>i_gDfuIJ z{A_AQP3P%*07EC1B&-8UgFIsO&F><(-tZi7-EGYQJ!qAVs-?DP! zw~8GO5W{`+^E}!d)&Jz@U$KZab22IcH?2$?H3Hoa3=?t&Yrc4e^ z%@+=#|Ct5%wc4blSxW9MdAzv_{wf2manwV~lc)0XmJ*1F#B!yi?(3YlRT@CoCc9+ai1Hre2++9;4^G_6<8 z%W;Gwn7(VSyOygM95O1NQ=LREROwAc(MHmkqLe9ur4|Qp?!pGTPTU@1y2E8_=$rFT z+?=0ay5K4Eu6ejcn`FW%1c5_K@0n?DuFqUhW7_10m3sP;rsKL%a{yDqZ5&n;PmbbA5@Xtq%SEVtydfT5T>j`KemszjQ{Lm;%o(04kE z!a?Bh<``8n6&?#a`stkW7&Pb0^|r=hfj=%zSHJpfI-)53!J`U^FEezQMDimD}|GeT{Itsc^2Qj;7jR z8)-wMvtMAKpS|hq>HwOjp3Q5JZP8#OS{VWZ^z?|H;7_vTV09&>p0Iv8qZRgA z07SlGq?a?n~bk%>{hQdeVMijx?ccXB}-jIk-+Y>>fqH0qo*T;qqV7< zw`DCyE4`V->oLw*z#6tAo$s&ymuo#B_7w0abQ_Za|Cta|Pm2Q<{h5*40DN37}MuRkMrEhzBDG#Bo%8$3`3zPKz%7w)xe}15(Zvl zfb=YP^I^l0>+jZY-;T1qfJuXfs(2tAfaeq<)@a071Bea+0Jzk$Rs5LW9#VZjGO(*f z^~GCpsfo#an((f}>Dgtzi6h%e|5`geOKpHM(TxXVdyb8Pt(Ek5#GZbNkMrv8L^NXI z^KW4&oJg%kjjVc{$b;4Y*7n61cBY!HF5V)Y zoxQ9RTJm1Q%Wb`lBZKAywJc9>aOlph!f6`U$V?H7QcHYO|CzEwVl>`cp*C93XP9()xY zug_UI8pom`M>epFv^ztwp}P4|Q(!E-93 zqjC_@0!fPf3ymJ|`3q4nAy%7Cu-vT7oyM;@V+^_c7dUBxM5-OT2lxq0L3k?rcBE7N zcBODViO8(3Z;ADAP{fA-&2dMui%-jEc0BqZkUz6~v zB^)hXjTwX(;xA|Za*qV;?2%E@Z9ntTLqP0>&6(S=F28{6XWHB#m-PWq>i%iRE4m?J ze0ye@)qu=>#3HU363sI-sF2V+}M3j`ezzWr`p&E zog}VA^oYMxdUu$6pA@3@geZA<8TPilt&q`#6p1@wcG;}oz4 zk54(JHbAp#ergH10giH#Z`CW_$-1g(@alGQDz(u-|D-5q$-+0tM8Z z0fwgAXwK<1Pml0rN(-X6HY~etiOx(uTgrz!I%k`(u$64eRFg`Qk<-6Rarb57@pNfq zU_(NMmp1?(Se)Ijy7ga0Z|iq=jH!%kF`!B#GeKvXi58t6XLhj*n(QXW`gh!BG^fO( zJD2?=1R{%vHbNXQ8czCSm7girsAz2ZTqD0@yppBa*2O*wY+c*2v%6wEF(73W^^C}uIe7W4UoFTxGoR!#@=9DIGo48^b`5Cdi{)W%W!V0gn_6w$~dN&X;D{HJeo$@o3YmDOypyvXHe z0>h$ZvdT8r`ZlmeI^{}J!BVIEfw?CGAX}uuB`O$=p5t0_vzXsvd+|hap|A1O3k@&r zcv;;Uw5XTbiW^p=)LKF)#Yb~bXO$!_;k{et*%2u*E0c!I9Vg=}* z@=FFe<+9~&R<@eHat?Z@uAgCfy8Y7WSP4v{S=~N^9c~le5_0==hmiUf3IsxJd=X&3ck2#S(8waPyjw%g;p^JF=^bpl5^mPy8sah`5Sp*r+Wb zVlL$!&>$JYytD&#!c(wPe!Ai#QAD&$5MN*^;73W+sYMh9vjneaO13wNC0cmJE?N|EB>_z*ieqqHTEXzU565(U=-)q>M& zKs%(Bvh{V#ihGlJqPzur+{hq=RV1=_P`q7zr+}M_FKrm70Qj2kdNxEo+^~ajdTif` zvUn>t>Z|Q_^6%-24jR`(TrVe0?_Sjv6ZP{b9O>md?JOg{g*=|5p;%{vo1@ZetUTOA zvnB#Hac<%W<_T!`{j9wt=K;PerlMl11WE_(FafW1=Libb1#lB<`L}Jzypeb5N(%V9Z4v zCa0TEr^MMtqo;&(-1}yEtS}%Ax2pix?7M%fMl)!4QG$BB<>r!vq(v1~v=!M4B$OjR zF;r)(5B=FedD9p>TrwdIZlb!CHCpX~I{%ifC_xeDCB}B40H|Tff;Ojplf$eB4)47A zs6u3@-Yf$b4oZxGLBntFUU~ zDUXKUOKE#VWJ^%Uy@@#{r$t~KK`7QWOy%k*9~lVpfAzr)MY(wO;_FBFTJt*bG}C^w zQ6`4aAh~kw8o}WH9qp5s`|ihhuBR zpN?*h259)>mctm#@S++)EUulWmVtM0KFqCV>Uoj37F}jyK}x-zJQnKOqDb`nI%3og z((y&Mk2oxwPgQ{5x?sjpYWzRg_&C(=gG0YatTojjBs3cS z6tGg_F_Y<%018E{M5EG94s#xv#$Ui>z4B;?164!KZ{z@Gk^?O#@TsPvIS8sRjO$^? zD)d3u_+yOGH;02}EpUzIxzXl!%4V=QhPl@?2xZGlPH)Uhed#8 z_;F)EC|%y2b0O8A2L0p+6421xvl=e7zIL3jIT)(fOJpXj`zsWXWlbH zPyU5}VBb-hax-)qgxfDc#PdvgijlUQGjVhorF)0mcGL)m;0_!G&K|ptnS_h4XmDz< zM*M_eA8zZw6D0hqtg+GNo&|5zgZFwge9~_EG1MULyIH?}P3dEJMJ9fxwmA|w(yjj@>vP-c-iD#XL`FsXn{`#72 zJ=fnUN<}F%Zmiislan>OcEb-uA3!S<*MlrU1H_StxJ}Giltz}l`Wb1NH1GdcYllA) z5{Pec4myj?d6W=9!cW2?1J@5~1@c&c-4TNlJg8+9q+6CN(Na8d?cG!YlPkbKT86OL zmL5URe;EZd-1EQ0$p-cVJG%(Z$2!o(*C5XzOmdwkW87hnZew)YaY8N za!@i__mil704R4HAHMMuHt z-G=#{4f1i{qAH{$Z@KKmvl!$cz7(9ufDm|DACsXWAxH^ukMvqFuJ}C&6ITpQ&rII65MzH z7}m&XSTZrxm$|grE>i}~6#7s}cyY$|dm*nu8C{6S2TeF^$1I?p592WcaQe&cQ;8G; z0*1e{WDvL>p?CQIi(#PNHDF1{Qhvilq)xt9U`vH>r0{|Nw-K(D)d)k5V8;RxC;cr! z`XcMrUBYH05%iJ$jsUnjKpbK*l9|7_b-wr^vGFaf96f2pcrW3{Ob%;B+P`f>buF{? zxk)$zI+sDY;Mv0yayvfYXN>~+nww8sySj#OFr}9v);t5E)os?#F>eRz>*8@Bugj;0%m&zo4&nAKJY%6M(%j z`zr>j+wVwF)>yaq4ffEF=TE9xh-0jmuVhCg({70lW@QS_N?l)C@7_e>_u;O1 zad*6WBtho1G#&gK_Q_)zyJ zEofg(Ab*5%X(t4QIqq4UGaQdO{Q>0p(`TgNXwq;HClgg}Tm$utCDApdYigTxakbO0 z3SD$bZ;`n7AV5$WIZDhlUKdG5VKr-qTB+(K4s`|JDKl47eF&!N6+ zS8R3x1sdg*iO(=c*xwL$iLFg#Fd-iMbNtz`TrHh@Fxr;?k-i*G+@L{G)Vzy9RPdf` zfj^{)sSjacknuPvT5yTdtM9X-4yE;Gy8iQ&6l7lR{k5(8?6yE9l!z(L1}&Gup;FHP zZJpKx6eGFPNWUVYP5;RMlVBBkkdi$)a+da|Hpbl|d5_AZ z*GdMrOShFL@t!v_bcCl>++O5JqB61M_+asVLcA;U-JiX&`5!vNq;2tfQpbwo{e`Mb#w!QoyAaRYP zFA3%_+3vuAE?+Rh%W66ZsRP<`8f2VW_J@;#(y6u*d0bB>Y-|A`)Myjb*gZU`^*G(# z1WOey=*qJnED%_8o_jvFe)=y@>tEQzNSkYwT0x3+(qH7@$ z2O2Fj7cLFFhV0L^{TOdll^<3w!CGa(!1c~Ord4C(&?I6m2J&Zm%l)NN`CEJpOx(Ef za{ing^WWtInqtIMsvRX*G;2x)*Y>k``czm+KI9k*!HGJCXdU&;m0dxT`k=lw3!P#0 z2{;)r@<1{%)vzoyvGiRynOJX+i~CbFeg@oft8q}f7%DFYo7k|NEN8w*?0PH1ICNv& zdOI|jj&w`o*y1i;Y{_T_{WYgVy&2M=;#D|;h*|->zyb*%eYZ|i0(-%uh!-v5tZ@RT zul*YTIjsBY-j4tdocO!0rNoAC3uQRxc{@1PBJ}7YCI)R;-A#c4^G7^;N7!-3 zjR*mVn9$TY?I0Tz*{e56#eU_&U7FNZHX+*t{>X$dU_XM+=4%wd>4x?`(Se=~P8ePq zjepPl2|1X6_kH)%UMqD{?7b>>LsR6A4J{0gPyLV2=4F#^K`db$aRO<|`)=2j*m9xzM-AXX20CzAVuNz>W$Ag`aTxsk2ErG`e$t zw_?#&!|mz|3T1$BOtrvf_oAvV{c-C;mKoa~_XJEREcRMMzVaOp>f#orD_fOk41>a8 z2*jIT!5{P(p)?`P!3*|K;xq%BTG<6h=6wit&U_}Hi`uqd55X&9Rh+c{IR5q80D9m3 zBUuJy<0h9S_B5rI`!4A1l^9&!AH#SkOB%UlG!TI{fOr?YzVw1Qd$|F1(ObrXI9x2? zRkYMz#nqATzo~LCdBeZhwG%BbW3!u~A;0eE*Lh7LjlA27K_E15r|yddX11TRfLiPg zjr<+{l(J4eh>F`1x^drr!G^xz_1ZG5r$jkDc;n{>R9I@*W|!(qk|2*)Fd`2vB;fDv zL8U;t>%jFFw}T^7o`ah*;%2qb^QzlA-##yXjeMq4HrA(>qY86K2Pw&O%V`1ufRlvR z7%#y-&+?DYtDtr>byU-<Sbo`HYVKUIS7R$D^~g-m|{MwV=M zKSLc2WcMPP9-!SevL!>3>d{TSS~@}xIR169ulc=^{w{*IDgv~am3<~5if=kYqj3G9 zs&y#$i_XhbvUL7?Vf*vknLSaIcQdLA`K@(0b86(=%Z+TZo#q|SOUNe*9pD#4Ot>Dt zIYn5$hixwZ`C#p#7>y$4_|vuJxT+1_2R+=U?ZjF3uvD<*#}d%hGE=c`*eq3Nt595X zfR+(VQbq_7)F9TUg7d?^^JX~c%epT092^?r^C}H3EAHSk{FC+=avM26`aju(3v6^<(!O#wX?UBG z`ib>2vu)`hG2=f{^92DZhU<$|vNI@G$e;ZIf%|AE1H1Vb4t4rDB^72^mRW=8JvAl4 z)wfQy{yM?Iu2Wt^Ut<)Ye~qY9os%Sx9HbPoX4cMaWUMuP8k=$nlN)L;Mez4w5h50Sc>G zM59Mk+f7MhVKGw2BN6UqiHxW*(fgQcR^UO^$OhF0ctZX{E5+!A5tNIt0#hcrhju2F zME+K`LOp1-qpU(kjpSVOBOf`aab6;4h@#w9=*<>o{D@4~f@sAqF4pCFGyXTMFLSd) z+tZCVF_Qf()D9{r%-(9>o~Iz$f z)6gEm0HG2U_c*OkXBlX2h|bU9#LLUcp+~nw9ZZ}RLpQPGXkpg1`tQ<67XBYC#Ere?SgsB^V)R1W_H!Ijvtz+J7Rb9S`|-&)ivIa0X<3m5jNk1ix2%&oRWP^ z-wRFLJ7eOeUP30azGu&YIw99~i?(cDx8DLKnRSVJM;XJ+I z+_}x}vh0xCEWL=bUVideD*C5v0-TeEqO~EFR!t_`VZgDm9rvTVr6RfE%gwv6aNm{R zQ2X!apKA(+owVrqEf=i->eAvf5AB!MgW^w4aJOCl&0%3n&6-|At_K&F*8S0b9FP!d zdG|{aSpp|)Jpf=n%DlP}9^#CK+D$%P!fDICR&+>z3@y2OJcUZucP1VCn-!`ocAPXW zo;$?Xik7QRel3Emm1@KFKu%|Idc6A!CN4tjiSId8&dre^xxuZiqQPXIjG|{h`}?9C z_t4!MgVuO1HUAE&#|bzXRC-%vQx|P}7u4s$Fa>oZy_8{hq%t2W2nNo2Eemis))b^&>duhts8@JR`Y^rax?p&_fK}Mo%Gz$ z+vq`*j{K~NG(t*XNt5+8je0ulV*s*Ty20=kj8C)*zN%pm46sJvR>3P=NH6C9KvGeF z&MWmDp2~g7Y`DlSCN!qt`y|%rQ>^HB%Aqb3AsX$|nh0x->yLF% z{t%$cac6s}%KMz!c4$KGsY#hQX>=EP`lt6{!etVcYnzW?tt~v z&4FECX(FL3BDc~&&KumsXg`8Nz69fvi$;AY?}4$fWZKVaG`;p3zG%o`XU<0EjK(yS zJcO})Xk;)Z8H&Cr!3%gSXH-u&8H279>d0Ly+$aj^XBp{&>q#L%YNm5L7-7$eTZpW zW&r@jrp!FogLM~I9Mh)z6*we)zYtj@`o|M&ba_5h)?a5ExO1$Mws5RvwH?AGv#BI<17?md_oVWn1rk$2ZoBgVsG_D_tN70e-5VAZU|LFjHN8qLG?B!(VO@246?VhQIg&~RUF zx!j`3%qwR1{OE+8ky8N=gTZYb(1LKR_F>!5KAG|Rh?e$5AHqi^J4>TWzWT;~NkQkN z8@1S-qW(7@B-~+{btFekrSvo9(1bTOTh%z^I1Gkm^f!Szlx3w;tsAf%2S6gofbC%9 zM-pDkAA*ARz)sxjB>{+12QEA_8)7KHzJWX@%vvq+_{j#D=0?9^Z-Q)L zoXyj$G-LUT8a&|C1c5CvJ^!59jx-#gNL$LOStXPit6#y2(kvu&c2T?Au`*s;$7ISd zkwDZQ@01|@yjw|R&pOdnT=;IMa^kZ*sC6lVZ5H{iMvlWNwp8~WN+pyVqX~81o|5;C zPD--Ic1H&=G0*9rwbdfYdJ8NCaA!g=GY&FLMU{m>*`|oW#i>9e z?Wa7so4&cPT%R(XC(=94r6cn5ysFxws^4BjJV4^?0=FbG;atMtNE5?{aqWBm9`-P7;s40DZXHgnaZ2=fjAm zcmCJ}5^T3&J%NkpAd|N>GYYw~E)+0tW)>qz`TM@-mvnV6Y`MGYiU`t1KzrbO8ywpM zo0M;#oRrbE&_TWYSw}@o7Ps?>1bb)LG<>?WD(<%n1$pC87Zq-*Qid>*3uOH!{1-iZa6vf#}0SK zkVtR1rmEH74oCJS@ns&THs;3-xTkxXBoQX>iVl^8bU{0%D2ijdsu*{rT$LqR8DK(Ls?h>=-2!lbQV|3zJQ{qdVz2(-kJtkd;&ZBpCV zMl78_%(lT@QKs1{(v|!BM?We0GXG7$rOojwYeWMvsOC{ zMGi_QbIo9{XRn5IRpyaPNZ(b5cOaPerMkB_)x!JS&pU>!4c<|SdJ5>mp)QU1G9$+8MqSrRI8vwiSGXDRdE zgJUSgQ|b$*6EonQ?D{S2)fyfO+B1H)gx2sqvC=WKP z0|X2!6~HXT_u?6bljH%TR;NqJ;0ehJ3wrWO6i*}N$X{fPA^`QQP9%mUM9h-qp|b$& z(FAXR}>iUp8XNr6!OkXU~(dV7PxljhvOPqr*r9A z^#yHWk5s7Cl&X8118DOM!NfPhZplA~7xlek#rCwOvEmN2@x?G(T>Zuv@3s5Z253WaUrBC?! zT#J~`oohwV{Ku<`Hil}NAQX2b8pEA8*tCfWYSZv@VHz^Rp>o)G21GsIs_xRjwH8~R z&hjfud>9l=C7WWw(-$G*@bEVE!BiUecde=T+uri0*XZ93r?5h@j9#>WD~on{9Kt-g zd{59o!4cckBnEa+#%OnL+k?!-2_XD{S^ub0>#^6ddiXzoleAWg8j~nY;yy4`j|#DB zwRDn94oh{JN!~>Ez_=djUrOrDt0E8RNTnF*To|PLm3Qn2r0IoA&8{XXU2}si<=do- zorL2eaZs&*>A{xqY6!m1_1iw=n_m%pR~fUgjWPl!P8XGNF;v^1DT{;_f4*I*39xqD+`7*-CpFCgSpjQ~oqdh~eI3$Ybl}6h_@pYG}tIfeO z?!$d;)3Do%aXc>!!pxFiOM7%tB#PGi*)p|R|>_`4_6b2=st?+4hlRG zey}tYhG@a^B#it$R6Y)y>B5*Y_+82?zO@7p^n5^Xkw(~4=J!uV-Z zlWBNdJIrXgs?q%7$yTp*R8(i`W}@Rt$M9kfK%hB^T@SpD5HY??OJq6DC*wXlJY#w5S8z0xo$e^J6I_pNj= zBBe0~)ZVCy_MZ|z6<(#~6BaaA$4~IA#0bYkh@xH%L|;tk_`EqJ9_GSc)AV|cJxZdu zFYpV*T(9BHF92^MPnu3JIODxXgZH+<#e4%uuKXX}WUK`p?sX?!5>ugs3RMSzhhf|hh?dMw4Tu}jZZMin zW{ZpnKiD0r7jOrF{o5bV6p7of`8DaBX(5P+1|KZDOjI0zdWvD^LCg{x3e}hGx9LZJ z$#RJWHzWR+DsDP=TjxH$=nE}kXR!dl?n;SS71xhj0c;U*+2yC9z z9=C!tyNU{EO4qtz%y0%vE*Q0wgECRxQrst2Gkf+qe>m6Xz_hmC|1N-R70wJKxPyMM02RW0BXuA#`9kjK^w9h7 zeO=Gff(YLZ>xj{TaId|MQS#yQ8s;^=7qDi%%IS5C!RHn3?1PkoTc zec?T6O>l-7OZ59#<`>$opUgrF=&Y$?c%a>rX|CAKBO@rt7Nb0GD&IeM-ma~{n4J!9 zfpO)_fGkG_kPiIJ!y}xLr0CU)m}HDU%-7l)tlmRtcIxg6+{_H4Q6^lHf5wJFuRZ6o zf$|RV@M#_-COJ;$BF!SRp1Q`De2FqzUn*AKE#ErO(XCTH4%({oHb6m$_RfM?J38;# zFv^dYXPx0``HRkjf1C67DhZ zKUqRX%uH`?;YNXjK{5%c-U1EV^hoy>jbbg-&BH*d&zO4I4?kl3AYKAUH-aVFKK%fu zh#7mgrrDr)#SB5B(^PN4&1>-hgJ5pY=R#h=EqR1{UgUeq%Y0Kf%e~q?jSa4S399O< z0ytnHOiP2-uJ?=A#x5o$+?e99hqJP^-FsD0S!`!lEqRaVGBX*p$NMEIg>{6nTgGW; z^SuJe9e8bF2C9P|)xv5>5_0VMR`@-BfgE3$z|OXTO-NC0x^Xg39hm`1P6Hn!00+|0 z_L>tEi6OK)yqFGP7))K3#___BT%*d|S_sm*+a#(w&166{k-kufBPE+$?YTg-A`i=F zHSo3deoTM)-(N+=%XLVIPGZS1pUROMehPr57NmC zOME3S)#<79Af5^s%{FAxk;_VB#cX}^r0V!jCe0)2W{j>JKWAVwQIb{uhA0{z025_7 znc2XErB>Xp4Ou1sFuwinDzS&?}1hkFC3Br!E zQ>xxm+2HBFMpg&}13cJfZCv2PB6=q;xd_mt;rJBQEs9$a)5kc8?)koQ3Q^5vo);ALYjZ|sFYvIi&^h!V0CW^a9W;-F(uMTfwv&$B9_|WOa5<9&EudI zF|efOb!S2ss*y^tDOKaaZ5KMkuHRVTks3wEWMp{(d|>wJ1JdY^f)1` z?L6HqWE9kF4IWSu^fi9?trmpZ5Gna?2FFjrJD#o`{$}xO$Ero9IOJFmbn9$-aH5SCi5|5G3fO^R<(GtlXcqf5tX~En*$B^ve+x$M zbmT7ErhIgri$sa02AYNLVNz`V)SghWSpd^0OPe9_lM!s~H!xAdrfHoBI(B`dK|_*J zrR+{K>V5H>sca-cqKsU@a4e%)My_1AjpP|=@%>iLNpW4ltU^Hb?_Wx+^_3D-5R&RT zeCfr8kYb(w?J$b0#m54N)VMxe6w?i;h*;Z{c$2Vrh1=XEHqVH5^Br&AMf?14MsCSr zOT`Njq~Q(N=e7tlClbwkkPmQdErF0m5;_Y4XpP73Q6hzxmFT6{#&)17BX{E01yod8 zVN-dQ=IxidWTuyT(q`0BxNaD@Ry&{jYlX-kF31CvDAV80)Nxz$zx6pMQf84GjAt%+ zwhe#aVZ}9_AL6m>aaHRoL521_JVPVjV0eZeO}T$?OFaa5pY5=OLXY!kX~xf4VKZHQ zxCFDBZx6>Q*^J00jz?-^*PZg=T&PZE+H1(^_||h$Z@&u!#ho0_9#FJ@x)-}f>91X_ z%DowWmhxU1<4vBXooOB*Aa4*4Rq<|5M&K9K(4%XAV%6#h$>X5s<6)TR1lS*4&@ zoy-?|N%7Yz{<1V^8~hJuOx>!AS!=`o!zVPPUpK7BbpeCY!4jg>}vQI;1s!^!}5@WCsfLCBJWnJXp$E%e$=GeFs#e22i2zIN~6%kZFE8T>}x z_qIJ28WR;G03Z#`hbEo0Yw<L#y_Iw4O+6AApELG>4(f8qmbztHnMRbuET+JIC+gsJu00o#uwLGSWlP(ohbWTc#o=sfgS5cbEB4@rtzY z*vB)u5lkR$3wIvaX>18b8|;(iIslG+h2r`>P5z*Ld>VGDiJnT^;#@>F+BF^sU4kXo zHa<~e+QItzN-d-Pv+K4kvrdN4XNn53O%^zKtx2R{E`u)2W zbVNQr9Ih?S6eO?O2V7?q;Gi)C>rBuZy-8<}(X54Geb$h4;Q!MpZJmS$`dB%3Od(VV zsbN=;y@ym%pHH1j_%w~VTn{?f;k*G?m^bfSUHnU`S(_ACY&LG;Rw3IhknykK>k%e1=x7yT3S{~_lw0J42F zqTnkV1N{!JFTiam%m*)!hB~7RNk@68Qv=Pcni@>cBND z=>91wjHviN{fQPB|5_>p`J6R^!1eOHXNYaF-_Jw_<=~#cyck z(wf|srd$OPaLGm>e9*42r4Oo+^xQQSaJLjzG*`2Bd!v7DbX#&Z!A~ zhT5q$(22TAFVeT?G&7v$61VpBV>S^K{~|#A2~M`1;m6>K8zn>NsXkEZ%%`o0SnoF$xwi*7XEr ztG6r;7Rkc0<6X68SoHz7J>;q@JU>aca3Ti>1fL7F!->G=S6cHdLc zwkI%rJ>R8Ra4ksMJP(a9GQ|j)8Z~_;(g-Ra93V-#-UyyLbml=sOg%6n z6{EGhPT{n4XDrXaS@Wepx-P5YIrK8~e{k zb0GguGz>XeAv7l-9|*7{)z6}ML!EgD~56unwPPkqF7F* zWbGXTTj}5)?A!)C3`YjBT-x=(a$!c-3ao7PnPfOXym5eV0T-dJ>7D!tg42-tBpji` zf{FAmV&bT!iBLEMb-D^Md88lrr{!Yu*Ji*)N10j1;Uy34?JmHGX-Ma}h-h+%HO z3DaG-Ib_mAV6DDtwSW?b(kkHz?P-u8rSA6xxR0a)L|}|EhdqDrAC}SaVbQc4Bf0?*W-BCT&oWW@UOGt*HYp9~$NFiPJ!btmm-EjyN=;TCiNRm|2TxNwl$$8R~vs z2nZ2nUi|St(ff}(qxUde&yQ%GKcjo>?R5ik@CrEcnyJEp1T7>||7DfIxc)e5xGH8{ zG55Qrd~bu+B*~jx7-+yNcCh`@q#V;5sBx)&$$-XAaLYK(N4EJVHfPZe6`8ptaxw?V~rmJo&QX z%8Umg4P=T@=Y|3f&^YdEzoy_Bm|@;$JTjB(W|xq1^`Bl9cSDe2!|xI`NX-&0NNgMV zntl1uZ~JuReCdj}MY`yR>=x!3fDUNXZswtYtV6$DD>?2HVh54twA1 z(IoH%L?GN5P}RYEtUf5$OeQj%IwnSWrx*sha+gBcNeo@m3svW|U`|Ai5u$4MJBmuZ z{~4=YNRvj!%cBdb*IzZ<9-B%;)TtNbvWmA&^sx1Xlb^Baifx0LfdwF;WXRCZ4VZakrnoeV1%Hip5lr^bfdcS`^ZFy0ggibT*kf4nJ^uGR`m!7`cm_ z5|3V|7be<=F`$fjcv9T&vqjB5LuGWJx7yA3qPGtUVWLdrA_)!SNOs(?|CH723PXJ$ zV|%Q|s&Y&BQFy-G|4^chF7E$jE+VXKOFJ9k zSs3B7P}KinqrK6g?>>5HJGU{@RDCwBHGPcy1+gMyi?!~H2lyuQBu101*MLuk9out9 z*7J{@{Rh0?8JpQB$(75@R_AZ?S!YFvlRj4R1wFAICVip8kSb2*d`p-$c?ue3{+jFU1{$xp7a62^P$gTWRp z>25gEF8`P?R}H5p3pOf@-pCmkQ8yw=@@n=)$!c85UNW}pYU?JDD>U}%beHv zLsezV;Gp{)2tf*)9hOJ%pF0umr{U5~9@G zDEC3>!?|0Sh$Gyi60$c~`U^!RpfYc^U7wWuh~TpJvST}HpP*xY3PNiYZXFo>@8?$Dh$OS#XMNtzuPkkk6mnnLUf5-!E z<8iyvX}f?xP3Bm{s07uFF9`*l>&qg@5at4Z*(ql@B8+c6HK~HMCjUID zWvQfq7CB)>;B*$0`_I2%THWhaELf|A}z6}N~xjW5bJoI)&7+2 zB~YZvGl!S>qxBM+L=49R+I{%NpA4xUb=o7^Bt5tq$9^qBTJI^fkrx8EDtxVsw3-<& zUL-WQs*=mmu^uWp9T#udo>$WX!1Wk8@v4w)srjf)sLxWe?yQbIDuzdu74cg$G=GLc;$Z*|(6-eeiepvlHG4oR!6A3Sho4?Ux%jl6p zL`WDk|3n5oyw|`ugG1Jw>41@%1RG_02(s6@ek555RY0EzgOOb1tQV5qaFV6p>d0ZP zn5o)rBB^U7z+IT%K6`X(kk3B>CngvlA?b@^K;Esp;5~Iw=&%C*{~xP+teWJemO#FS zBpqFOtp_2k`#dAMx?W`#X(R*8)_}Wh{bO7Fy=&>e6YI&A%60Rm<|DGgtO@;Ot=nLje-hN)D0GUlzw)OT4L^=0ZVNJKb8${ zsM=>8A^uti@lzKOU$Ql&Bw10x7{Vf}^%PIrFM*+mzP{HRN&$zGLct{VlcOMgA~=i{ z88sXgx3mkU%1~sMe-Y&IF|}uD-m7gl`LfI`QhfI7L!=j)>O}ys<&}Zh&4j+9Qd(2X z5L3#<_(z0(Au5w$c`7)eJoX07(M;0bYb6Ilg{LgE!)~6S<~jgRK(N0)=}vw#i;}=m zjFAFEsiHrWAWmR`xt^|rG0_cvOF#L{2RbjHdHsE-+yOVI>ot~Iri?R0?ib9=9%3i= z)WFE*dD-jWL5R{Tu)A+JEk&+~XF5lVaEb2ap=_;p1jdwz+?W$d&*W$g@rz6+d!vf+q6sMmK?Kx>xDTS&BmwSN@Vl6F$Et8#;9~N6j zBG;nT7FbpJ4DN&gK0(=ZFvqSu^ZVfL?kH^(bOTvSC>D7Swe9CFW@Kw7Ci>7PI0`$8 zjX+|R2n8eDd!=cU;O}T1lcm>k9YL`O%<}!zCYa^ZHoLWcG$wST;DM-u*!%oVuz)p< z+o7H9(M7yQ`i>nAU>R;-raKqYPM+bf6?ram%K=}GEmF+;uw&#l$BCbipS)?l9J=Y` zyF{gzaLhb#ha+7MmP1UQux6Pr`Q>bVpx(h=A7QZ+-y<`-cQIvXM)OxLM+fdev<0tkL;QpVj3TIMUD(0+9C>#4#$~~1+ zfBEr_)@Ip_h`Bes;`X5o94pvZK6oGL5G33Ilh(%hDZSZ|hblsk$E+R0Z0ZszqL>+> z_SssthX3mCV*HQR5HVx;m3-ZZ^>)Eu&v9Inld?g&i4T%0R9X_|aexoGC7}b)?Px3f zzKW|VKlq@kC(h7V_r&fE4(28*@BpBD6ycnF&i?0KbZ_V;YLK0-Bg;0mQh>BK$la`L zoxf5wX8xjnz6?d@Z4x#M7Y8MmIZyWk4$I_H8WWcM&7|kV?XX3~Ygen!^sXJ9U%g|BUIr&3{7<6JV-524( zH@YUS9^LHVnve-dZtmKDKJhs*Tsm(Srmg)!8|=jjAZUW4d@f~}OpJd+LwHe3t4_)t zSVytc;xnQVd{y+vEfbUs<%1*}OJ!92NPI8M*11!8z#n@tRKes~i&=h=YeTYc2-acT z(pQzqm5~O9$;AP!go>rt%BrRpw9#c)a`=T3JiBxChuuHyph~+_{&3cT9n=hhEBH8m zG%g1Y9q1gP^~%gYn60*agnP4Z=IW0p?uFrR+~8tANzh>Con6AhE(%uxgLyf?^d*N} z=&zrqTbFm#HGA;l9TMx7TXH6oGeum5RTY_{gFVe3=OkdS`Ql@89X~XCOENipl^uS) zS2Nu!*RqWTv&ItXGKg&V~ckyKnyP|3tfZeFI8!m3y0N zoCOfcF1R5_Ito538=r43C(K-CzVCRnu{6W3t_cGB!@C}omL(D9Do5u~qpd$0g>R|u z?Pu*7nN%E%_OI0t-l5nM8o936_%ei~Fr zk{LbtMT3n-k#*ekxEdNm(W=87js&!jYq14FzYRo97Jg-kOz9vzHHRMo+n|{;*`Fp=DUc6Ur`)Beg`YrAbVGae8J^oJbk9bf}GmSA54pYmHNS6V`~edP2WG{fz- z%}8Du{_zMz)?W)U8i>+Yr=_+dXRredwrpn_pBM~>gGOUVevaX7F#{*Fk)>`ny}+zr z*LDV%jrUqAJnGzVU7fU}Fzq}mFe!SLaRqz_5AgddxlC@uNmmeI!QZNgp#`~_p1+%| zgpwu%S=;z~GwkxO5kSdNCaTM^df_0~2ogUwrH2?C8k?j*H_=VaeBMT4X;$9`Fzd_E zQ{bD~7RJILr!BfREjVQzXcVs%t3ye@2vWdgJ0Ylm-ODu z9exO?a-pVy@EH#WVLG$xuNK+_#zeAY71C(FB@G;Gv8~d8SW@Qj%5in~xnaYUg*JT*&|hX3z>Bb5ZiRw77Sjn(XJ3o2PKeRKXx^g-NlE z?WpiCKjTv_4_I4~W&Sxo_B7KNn3)0=Vw{LO$Q|iWtizVs`vk~G<|;n0{ntMMQVh5M z%y-oJ3rB$Y5XkS-k4$0I4XAGBT!&yy`ytR7m{1N@LpImHxr^WcdS*Z?DdyUL?{vcO zg-PHMh>Quu>}UrMn<{u!K%%KZIGCGYFt5{0GSdfq4y)ZGL;sGwGen#j((Hu8$$ClA z|5LGl-%J;9MLBpNGbL2@GR*5KR45*vVB9g#;=9RK>~L`e6!(YLs5!}QrI3=Xnw)i@ ziFoBEOjvk`)wxA4)G``ypXRTTM#)XnME~k$PVTh7SP~;X_a2GQ1b~E=ZpkiLOAWX- zSdhB7g^>^12e+Dm7?M>%I?Jo(PeTrSatWkmyW%e;%hMyw!oc1Aqqj__7iN-6=wPKk z8>TP}I}zX)=1}-NVwPFo!f11t5*2q`@GoK6K=a@>0it@sSXs9q&D|uY@=+``j5T|g z(ZHI)p+5m$KM;Fu#+%?#aaIU<03fsg@RP4_Auq+pyI{7(1U(R-vcE&S4H~eN%$(UP zl3hNqL_FCN^BeU+dJd@8uQY-dwPLXo)a8cP3?PR;E}}#PBjxT5brkonF=nuRye&MN zIaD7H6P{sX7^EM(1=d!#I2>OLYDo%r^M$xHsJX9_G!HDj(2fc~9W8!|6yo2Fn7bOX ze0=bosgRS(PH+#@B5A?E9&1+r_&-A2_1V?_wv-2w{MA1}k#00XNz`G9h8R`f$@MI0 z#TDsbcM>l2D%)oh9BWd`wW)3mA;UC9X{n5b`&k}T2ufLVKw1PG(-uN&KENx0=sCVV zqh8L&*=}&Wnb3whFz`L`O#usOIld@eHz9WQC*S><9JH;MRY;aZIFHTKf&js5%WJ0g z;XOa(j%c{n3cL+AV`V{Q@(m~A_J;{VhS+x^T}ETACm|F9kHLK}?43(vdvk!rU;12j zn{h1$=xm9@veuc9uFQQ8@K&P65>ZIP>Kpi(y-xr}XIfUFo)3dZ7`@|*U@PU0h7?G; zDP#qf)(lP>*{SMl;ejO51aw;Zb)9N3wC_z8{sqYu&g1b5B!v(cLAN*U1e<%&w+qNZ zH~vUErb-CO$v#S=Ll&KVYYr*!DE0lpx{!N2Vw22__O)VZQ0ZIN7Rn_3mBa93Y5;x$ zU93Zj%fL`iou-zxbb2Nec-D1EU!q-m4fSp8GnpnX_)HRn;YF*;=7}`+_6NeUsfm4Y4 zjQ)ajo;6GBdf*y;)G9~^knv7b#zcH@z$&}=e@EdJ4Fn0)uIm|irryF1JxeLWv7z676Wk*}3}`wTZ1bieqbi z;i^s~E(Y=qQY0^RCvy2uJ8w(Np26*hEz%I3d}V9msBTc#aweb<5eSHN=L!GAh&S!c z_pe4hb`p@6LVw;i1+d&$BGi5Cz3C-?vE%WM7EMh5rx|)bw+lf1n&a2@656+p)jEwS zSDrFhy1geQF3yy07=bw6ca}EyT?7_VS-BCtm6TNT8T2h4QgU@|3gK1`2CzIEPtXED zF*#QGj*-_8VBjVWxp#%DQE`BLxhq8f6-%fTIeMIzVBgf5$)3z*vUIoLX7Ej?u0D)& zfokAeGe^OlFnUjry!a0dXb0)}D}|P3QQ1%51|(-9B_jam zV6G=MHf6${%DNj3uGe`3F}sXprIaDoi&@Fl2c5S39$06cW-4>w-ErOBbaSzcs2^r% zj6qiaxUx#IVK6Wy<2deI7(TX9U0T|KMm{yn|qDa1Cx9u?)ef@aPLq_H^{lS0}>?EV= z?3XQIg~rdp#R$9oxR8h`6nIBHkRUg>dM-gGI$TF{d^ZDObdeQ}&>1>Hwt`rnd;p|S z`U2BjSS-z~a~X<+Rea=iIjwKycNhIL9cfnR!p>*)xrwDYmT8LRS@mk>LTEz9f?SPl z&Cy4xHU_2OYF+I&rwIktDR_D+Y+|ClVXE|OORx@*nI8+)k$0D6F7X_3uuWT$!_rS# zIRcys=4kyyOjL+pNkgE$LBZ}kWdimK51MC!+S%7gH_48zEFXMcNCybOMDY;XPe{^^ z9fh9K@@MGRn5U*`JQ6bQrYSv_Q)qnQEBr$ZQnQk^nZf4{w}az2#x zw@6(urZKA%pUScoQG^?OuBBD(^wJp*nE^GY^@sp4=ljyVpY*gma|XMN&gU)H#fSO<@8#+U&?g0u~?%VqIi52RrW@Ba=eegzFwW%jucqOY|FVUr(V(f&g?zZvv*Ll@t{>D&K>m&A;FY^HTy~g zBZir#`q+XV&`OSaZaq{-wd#3a{C{5Nw23eI{gST0L{Bu_F@4D4-@3`?NuWI)li<~l zLdJpo#WPBJ5!QF(X$ie-$8MvQHKLvPmWR|V#Q>ZFo7Zz39DU}BO{a^ z-=rB5pAUF>jP&v-Y6M;K?WW|;WH@K-RPLuj^X(AAH0&k$-2s~iq;j(dE29#m*p2G0 zuXaTQLTkv0*~E_(OR`vSt6TI$Xq+phwp#(Vp&zuRrNswbZm{-wu)X!nUus^}9rZoa z>AcW22p~QU!JbL$_3Mr$7_`Im3U|*f zD0Cy%(~*bDjIjG^{o{G!h5(ZE-3!x1y*ePc0qd>7lZ+#x7?g2J{U7Brga!H0`6vs< zLn7xg#?Z3nsU2COmTj(+rYTTNdV?R z8OIusdhf(B`+|E9Ecf+q87a*mkZvP)$D4M7njg?Dk$0i@$_m~SlmIJ-gN3y!Dj9~2 z7|1J}Az~7dVg;G=HR{CxOw20F=5mI8jGt%e(Xy#L=9g-`PHdQ;w6;f73gXX1`GP!M5RS0CY7V0EJU%U8{Rk=yW| z8Kx}hZG$uIhrx;@g~0Y85E?n%K>zb0P#mIn=cS(9Gd1!7qmZXc+v09wEd^}8o>~mY z{DO$sg7kX1!t`=Pa=gndHw3ms-0;m*={G&De8XbSA@mm|?OI&vt*{_mAyop!arUID zZ|a4cWP(tlc>FlfGcBwR-kU|(x&6jD=#ddJ#tXfO&CNAd(NvIRnM?7c6mp`>8$bY2 z-;>`81G2bqCKtEcq(0O09(cU3CsJ%$%p$4zffp;FXM+xc-kH@mdpU_(tcfQ=td{gN z7z;%g+1P&&GsiWQ8}`Qc+{y7t$ABxWwYBFQ$ayVdki-vtL;nmFke@)T z@Vl9GN^d^~|JTn9J2X z|4lPxScSa@tvV>gV=}6+oyKH&GcsPIaiVB%d1f;FrUkq)e-$@po~{|kzVa@vcEJ!- z8OFuF&O++u5WXNtofl^s%~|jNFwHor1io%p_v3DXK6M<=er@?1`eYhddQ&aM<_6b> zwY_T>ub9uR$pl4;)29-Kux?ai;!k>>x7^osORpLMFlqWpw~nqYeAvBY z>r^sg+XTW41^<2c-GJ73X{Gm1Z>0Z19@a}f;oNiOjlN>xg0^?RK0QMu{P6~x@0 za#gG1+G{QBR!1>13!%wp&@aub|DYQ`XHYK}TX%YTmapZe$khz;!qvd!C*;<%=%4+4 zE}YrZKFT)b+oI)`U&xC9r25f#uBjNg3Mkfc{+)WtT7XU;2afjde;l6!Fhv44o!?Fw zpVA@L{+GenrK7V&JNsJQ@}QwcuNv*i{P|YHElQCAxCY_YK?-)!X0|d>GUKgSASAzG z0V6YgTKm?_$LsleicgXjf!h%X8kQ5t%GoDQv0K0c=by$#^*^1?rD*=3jK3USo1L_M zViM*UAQZ}4{7db5z#0e;8@<8i%FF-XLbMI^2TORJ*pMe-2)dX;T6qiVM=A31&@+A?XXs-(>Yt+cjzxB%MKMp$ z>}=}}DuxfcLYnD6R&z$qIZ&yzeHfh-+@{);@f;#?<&p1@`de6g$EC$84c5=fFh;`m z?#Z)@Q(Ec@1!hoSIm~Dsf>}Ix<_V@+_jzx+@fefFXqW&e`P1&B>Gi7GEUlC5v#|fs z;iredHvx@!MfQ_&6pXivCQ<`1a6BZFDxa7;nZFPLD$XTX|f+eiUiF)yrP!)!-Jlk)dg5X zf3QEN2L*UN@TDitBy3LRpYW%{x{nK#ip9TEmEY3<{8iGh)WGjXL8N|2j5=%C<>s&Z zETznCb4Z!h?H}JkpMSw%J_&rXC>LuY#HM|t zSnw~Xnw<4v$SdCBTzDVs$|PCbtNYUul8&ykB*qG= z+?mSDr;_`lv}N55YXH`MY7C0B>$oo$XR#x0hbH6J^bNNhywdmb!<^)Vz&8j>XXZeS z)bDcvys;2J&7H^CAx`4j=N#SV-2XbewC)BuZZeGpI8iA6{~l-~Z5*dR_A6Y1|I=>e zB!p6ZQ^5Q!;aUU2P>h?^Bk0p+)C?P5uyUoO|GPv_CPVWFN|6=1x?p^FP2RH#I4$XX zoDOIySgYm_qKLghLL%f@rkD?@3xkNJv|}LBwhJaIotWINH(F-Fg)e!;2B@{zzaV4d zCXSv9MYvpHRK4e#!xF+{%?@|d>uM(o1F4a|{%>kko+zOdlpL2qmK!VEw1dfkP-g9; ztNzQbiWL7>MqB4J9gEx1fYu`Cre=rEf-U`XrcUg$`4Bpk zo^uWK5h=z%{VzfN=Z7AWZWq+&gE!)|pg1)rbU*8XiZfKz4n)plsRNha#64C3QBGKM zNquj2ax4%5@*n25r15;UpZtIb$zdM_x=(FbB>-lMDw%>q5^EhK;H{S<)Hh@_`8wKb zh79k4L`$&getIWyq{-1!I3)0b^B#K>-$HI}B0y5?_X|dN({zJwc~{@?0N-py6`cd;%<>#D&k86IJjc`1W#7>>biI764Jm7SgJ%aFMy3#*x@ zJOSeM{yLr>QE`m%&r7Jwx>7yAu%+JkNK}iSDc~X${n*Z-9(9>XJ^|&7v#j;LTsbW1 zo#4e`b$D?rl;dzN=}&B7tc-AwMv*Z-hW@3DU?Dc|Eb-pE;HL_H9iItM zQS9|L;0}b1-rFWnIfEJmMW3}P`I0KyuO9vW-(caXkmO+BNrW(08a~Jo6I`LD-Us>@ zQlo|!H4M6JKLa_j$k}5bDK6alMjE|Dz%Q_5u5Tyt@uN~NU((v{$&owPLF}FlIP1k( zu)6xYSQfgo{Yc#l(G zM=fF~HpSPCI`@WZM%K*fzDS}Lg?cm7Nmh`>X4e`!QR-&|A*s1@@FYsG4nuTs8KdKb zvFKK`%jXAk0}(kpvS?Y_@2xT3-?QTCioZj-fBTskKm0n0Za&rfWud6HZk;8*V<0!J z6xk~Hq+&;HINaZS(w7&f*2mYC6`fCfG~68e?mSizAe)ktc|=%6l`8F+vjyO8OFlcg zVe;5fOOWcxwZTGxw#l!H<)a}xnI2N_^^I=X!hexbmdh83P;F86=e|*nUZCqWUE0tA zRzj!iwOd^k-6&t)Il;P8jI6q*Ol-PB!!jK)oPCgMJHjzuP6LmVEdGj8f3?p_ELUel zqC|nXm2orTUm`#Oz}a70_Q6J#a(J~|ZOmAbb}ihkvpv4uS;hT

    <*CMGlO6&bcq(W!tE=4Kfj-ru8T0m!&HEk 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%0AT$jz`G!+vv{*JHd4akY)m@vgD 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�Vo_k_3=q+y7hx@<;o6_QXcg$ig2yWdgXc;Pl{&5%qCt^(Su!GlH6O zeCT|%jGHmmiY)>bXhNg0X}9orC_tm@w(a}<{YBi^S0OP{ELRno=R}ymMELcd`h@VI z?oSML|Z;P`P+|XY1U?^c>yY?U9Zd85#GliMqdqd7<`VJ>yU*Mwj)wDdi;%y2R4^^2}CO)*UK~Ix=zynGwppBX;iv zsUkYd%N^h_6$o%|=zwzbgC|xa2q3qab$byDHpSiDmyPbny~wY#yy!C%HjonSAed$o zy4!!QmsKsC#o^0zbnP!0anky*@V%cY#ABK>+`OvG@T$%`53wrX?N|+iAaIZm>T460Vplua}?XltEMhgJmM@dxUTyodAQhl*rGrJ81`1@ zAja}7Poa4p2{ zKH|ah`E9pV#k{MLlJdMwg+l7WB5suu-ERRDjU1$VMKKG`&*Pb2pPn1=+VTVr1q`2g z1gkNA|MG{#B{3_Pu>SG5lj?+Ku&Y6*x`Id9r&{pU{E3tIS-HcNtH4d(HKDb`E;_=7%-q9CC$vyZB4Jbo^y~j; zn+QZwOy!Xw+8UbW>{|)p_Gj|%9}xmvgzU9$pW27yBQ^ZCd$Ph5GYonUV4;?aFEjur z#??Xvy0x}rfdCQIPGRIyaNioF%nkJRr#b*yaDurWrRUw!@$5N9N*ihu$3Cjxq)`R z>0ylJht%b?-cho`1wwgs3?#Iv(59!D3Qix4{*OlteF*LSrDSt6Resi|`X*>*5Z>wD zURe0Ju*YM|mQs5kD2$;BGduVz4Q4=d`g z2@~>n>Uo`IgfRWC1mRM0T=6B2;=Q)4M(I4=xln=sq~FA~m7C^>VZk32>G*|1!&%#>Slhv7he^)cjA=HiYU9lG)iwPKG;MUs-7a(uebveV9gj!-6qzkMv zuRUAQOhRnV>hPvzESCW{cd~tiRVq1+4<~7FYy-F1%QuC9ytX9-7%V05CZA?|{Ph&^ zlkPZJHyhU{Y|hktp|%;fLpG#nu688U2vce$FC!00Xhu?cAYi1y*f(G?ks z#k5qD0O(d#c1s!4k_f}T4IfpiLE-5=&dASa`AQLKum`;(098;4ES~}_pne2X>cXE< zr?)Z^gyiMsCoYang04pJwve?;q8LH0wGGXbPaJ z+3vfO6EdLSWI+*Ec2SS6p!>|}wjqT#`3|nfWq75W`%v+?^EGoN!jBj2_}a8QH+?&Av(LmbB$} z8GB2UHT6Ay3@ZoK%cX+`Id;Q(&~pT0s>P7C4_)4$gzS|+NNs2UL(GK4-Oed_Ie7wu zPcd9AC+Xx@*_Pi4^Ri+kY(Cup(@tIFsm0G|0CNW~8*}Yt&Z!oD*eEQdKh1%?^tbPd z4)#|R4$B|4ofn~$LfUe*SjFDj;>>|?Kl&e3$MaYuf<4v}sjyzy`wFBHt1JTI*5SR& z>_ba}B$9z(SY5mF&TNiHl8_qD1-s;N9RO{t;w`8#0##1;FL$(lsS1_9AokC5Jmvxs zzWdg`OSXo{V0d9bX^#5N3^i5qZ7m3LZHfNI_q}Vi(@R{Z5EoE@rc{n26_TK+&KB>Uq>LnvAfFXWvo?)r=XhT~QBq)Qv4fDNNF~0OB0CJ~WLbL% z&&4`{Ef`NIIz`1n2jV%Aoi;HIETR_l3ZuH-cjb@!xdCj+@zG6l>gIDbCZXZ%mGOpw ztER9lRbtvzv-#|a2b)?m5 zg(Q%+fieoA#@QuKG8BR8A;LlaRHWzoW(THvVag+w<+-Si4J5GBIQX5FBQ{q2=pJp5 zn@(!RrBp0qhC`SfBw)_e!*E;#PCJdejV_;7Ri=VC(vuhH*N{M+7su>5wXto*vj>w| zEE|RtP{`uZs5o@e;RptG@}&0Me>IHEs_m>g7mzb=6IX?aIXh+B+4WDwb|kBz431sq zE3s7qs{dWF2X;X_kH5&?>5AG%3}h6#IJwkZoE(-NUo})E`s_8yu+twR5ud#f45>g z&VU;)Aw(^aS-w^>f@PA6Vnz+{Z+15Y1*r2$xpLxwCpNYX01Q=N7zy}X@N%t9zAhJHQ~B~x`U|&i zdQCc`wk=Mo+fB%3K@I|jE$F|&I*BZ>2`t%GT@QQImINmLoPGVL-a)SH+^ad;i!!Ag zA}}leju)FdIORDw7gGh~18(E!9#}!BRd`?nzqkEtV{3X8{l9?PP`y~*l613`C=g^@ z$n9sRc*(Kz?@9*{!cBglS7o05gfNPjfjBN&m+M+)%Go=`6rJQ?VeH=4y4P$>lqtIbl0w(s!ncq;{JAEcJ;6trLE5?$^q<+f zWS6C(_KimAR7Yb4liT5ydr&yWGgFARi_vznAN)pbRE{Yi@kpr+`*z}o`-FogmP;^~ z)&6&MBl6M8jZN>PU6*}IAR2e=%cuYSM4KssAgT^RSk*4}%#tTSWwm&yFqKKQlkCdQbrUt~3Ol{RY zY-30K**<(_Q4QO+960&%@2WGk1#+EnEBl(luijh#@WttFmP+N?OW1ZKL!7o4m69;uzm2$CtVR@ z7K=VJ3!ShO^zzL%@B8~bcENv65es?G5*b4@pmncTQRazWgimgZoi~prFi|hTba&6? z2*|szLL{JJe~6svd)E$>%`fWua6qh}ZD57Z)`6t*;0&^33Oca|Frd_L_2vxW7|ycG zWK~_(;pjv+^EMUB{c@*N7I5fk9{-> z5<_ni(Lf^G=n{8*W1=X9isEDl&fbH$oOR1gHl4t^+bo8nx3=kqh*y~;Gb*?HQ z3rsyU?-H0h?XPk10p4goJ?2(+uJG4rT9-m#eo5 z4G~&Eij3T_U{|u%(#&zhkn@wrHM5M4xC{6h#T78 zACMq>UJA~~CbLOkJ46(sIX^;A_Op@vbmd25kOL64j-4OSEDP{q zlYP=`Pzu;Rwit8M0HbcXypveinN$mAdw{1lYj|bknJ#!yMxrG6 ztr^*ao#}>W2^GQ6S?a3JxWYuRA>r;(wP#$FW+?>rbgb!^`C3a_tW^^&47U32ERY5n za|t@P-kg{#zx=f7u#zpxl1z%+Q^sAX45l1|1@MN33VBt6kB=Q&%#lWUaW1aH|Kl_P z1;!gT&RSJXMYr>9LC=xpyOS_7#Su=S3X3Q#1XT_Vh8Z_R(`q}txcylH z8s2v8Wbj;>MFeY&jGC%45DkVh#&hon$dWd#TwCQZb(2V3q*(Gkh*ma3;5SwU{7kKm z)$-qAl!Hhe*F#v7FQ4Jwmg}!@o)$7v3?x?qz@HlIgE#TVvG1-#<$!F(IJoTlmUpio zD$AG|EuU?%ffoMlVjxx-${$1+S%da$m5@HyWoH5+M4g-e3% zxqw9si_ixyY-irWFxAana223B_?*!$1B*s0I@L3Op{xAAyPddfAzvvN(PfFwH{b3h zX3R{x!j}P`MkBnUiiE1TGP5FH{a>}v(!?oWC4{6msvF5JE`_BH`^Do57-#?9WgeCRSoN{oN7yBWnH4y4aI|?c09(GAv8_&?Uq*wi!zr%q7 z%0&zJqpPx~=U-}(j%aFOqatpoupZ}CS~C$Dl*^C~1SJ*@*ej6i9QrmGJmQFVivI`d zC6AFBw9>mX^3F9|xIx38p07v|ID87)))J3|j!=lO!i75TbtF6s2_O}p*1NB~=yWY% zcEdqlIjJtZPNP>($SwQ{MPnnq$lwlA=>tkJmoWldxqcM3ggydhAIB#V@``k*ZS?V*iZ1l8tQ(IL_>Aum{ZF6MeKPetwFWQ;hj&Vf-XuuOH03Yp& zwA9Vt!H94~mbQG#Y0EdiM2ffy8xPSejBl;+zv%f~-oY|0Iexr##!lJF(_5nN2m$a; z=O0LhY30$Hk{jZ&^wn@NeoRgxjuLmO8)XKrNtPk~tkm||s2O@1TaCQPp=$9VS`;qQ zH`>=wFFnl+uk@61=y=UzL~e_Wj3pPmq$3rqd@YZ9^BRObP3aQVscawF2&uU*TYoqOKny? ztNp@PAhvYIAqUlnk@?e?9tihGZwhrY+1Z<7rx=om{caJB@98vA^4v<6CzVCu!nF`$ z<|)8-ix|0ehqKzruq<r?c=BdAYi+<hcY8b| z3>%i)qfMXKBKB(#+*!KrdunY(sh_Z~O0vQ8vWR*?wwEMO7;<^9fSO?m!?d?7SEiAm z)ljJ(-|E?9lqaSi^FDX`!pKP3KWG&&W9mo2LcK$%`Feq3gBIX<;7HBQM%CuPr=k+< zYJp=+u}r;s0V4gyO}f@gA{ngfcB{cj)(|CX?%}od;u<=DkeTlD(~o%pVD9i{I0HT= z*s#)Z5Q>qamVtE%$(_|x1R!h>TMrkjdzA@XU)z z!wXW5X`I881za8?@SdmP0<1(aS1}QYHny6K5PXRFf>HhWX3?u+7FH-=f;g-31F*j6 z4FqGP6Zm%#f1b`W&307>ySevWDr*NeG$G}-yA46`z4s&qH9(4 z9>>K3P4vlsc`?+Q4+PrT1qT;m(V+4I!`H_Oue~>!78i1clUW`U#N7QQKj>Cat@WU% zk-?QEuq{@I(3X**^--GpvZ2I{!IFiVW2Lq$gOdss`{mm$!R&+`PDa^7t2 znfk^2CtH&|P~ks-K)h>;VmPlnvlFsNteK@FY_=<5Ll|&af@gLoFzOxy(4Q^lZBQXR zaHnKJOKhx_YUGF1Rr2R=x$Ah9%B9H`VjXl^bSrawQf+70v)H$FrA?oe!>cOd5w6}# zxL0}SRB2R&WZn7{E5ur&kZueK2s%^;)rIs2z#XsnuWiz|dQ39<5&j8STK9YUyGySj zDtYDL)tBLxJ6a@6!n)A^(=dP=bS|&T)FQE z=__zCz#Cy}BJ>Z~m2fx{R!Rlyb6f76McBI{Ks1u z4qkhWh&QoDib^s7pM&ni9!yH445rxx{uEY1Kv8#2EK~e=vYzN)>rPQSQ`$T&w2>U3 zNH4Js05~Yi-Pj@kJ4LX131CfRc3)Blmom+n1*r^&p-gC_t*Mf}EfWNul-Z5>J|V6V zm$ZmA9)a>{&EESCzqcy=V6b9|OgybJx#O&4`HQ7BhVYkMZoNR(?3b`M9pp#@Jd`t7 zR7f{$sc#|8WE9}$w+F6S8ck`zlu(^_i!=U}pS_)mb9n%%8%{`2Pk+y7#|jBp*pnqUK1=Y@X!4Dx`^2)7rQbDQ+UwA zZ*zXmZ!dPYRm`z3XEtscUC~3ov%?Ipe6Ti$wU%m)>8I=CL7}<%SVUt)WdQ8eaxHP6 zUioy_#q?KdnD?Yg;2J^k2bv`W~P;*St0(19ib@U^M67tECcrL=WkUToqhRaENd*Oh`*@6g)tgY#h zCbU03c1c`R^HDjZYL&bVIr8X^CWjfRY#>#Y5V$h&nC_hL`+}?E{Ou`O0{ar{YeZ4A zpj9Zh;Sq_wa+B-g9g5J$4$w`K14YgNnD zmpa~Szsp3rQv7&0umXu1M}rX&bGUO2Nf0g70ha5oJ_4vb6{ev_Vnf7Qdd{o8y+{io zs)_hR53BTpjTaUsi4AXVHykt4!SI7TRTS}g%WAf+l-5*3%rEZmvlk77T5Jf00J-VY z7|xB$h*}FLe=pDm&{3drW-j3#;#w@A7t<6~?4aX2N0Hb*B#D?f#WO*QlAh_qah84nd3S!RzUMPVK`mh>=#qYJD%UWTpPb;5< zm^>z$8|g>uJ<%WpG}<^RZ{VQJca3pMP%*cPBA+F5%}cVOt=x#>kT}CVJv489W>Qn@ zTNRoqbzbl*=1(_FjM^aN&;||xY(Od&K(V`F(fR-&N>^KbBOX;5?qMjbkMx%;)r2T z9tY<2K|sl-PyJ4bYf@6lp(Ew2=JAa4qAQ$Qavj3zCr{GBHMSa(XuWnEfNb+)UIS^o zZVVWStMOxP#o2}Ae({5W|f8~MRrN%t%?B3~b zn_jauRb^J0m#_L-SoUX(R&E3n*ST9=2NqxSDjU}yeKqsU)<|nCHsrWOeDS;Fx7U%{ zFrpVX1(GpVNYx$?|NT{zxr7=C@k?F@xWewWk3V-K?LKT2`-I78V&Ty*sN}9D1H6BI z6&`Mjw>?sLB_f{FZMGNu-`t8sRioj%PcB)8K|$xc29EnRiU%~Jl@Cm@1><1&+vgQ} zZ0zl5C}SXpdP4VY$0w)n2u`Gs%SF2qt$^5bAaqoGV+h$A`qF2h659Ch&&C$1wlNaw z6S~UlMey;gPA{8AKU2}AjGh&eZlUE~j3S~U7?-bJ>x+!`-oyCs(>r@q0K3GGt~wcj zq$`maCJJuVZcz!@WYm0`TYN~53A21_zL2b}ba=}9IGhf@y>D3<$NgX~@5QMW)I70j zH87wR1Kie6b^$t8&Ak|ZlJ?ER^}muWsykWE@E&AUPP%0)Cxb!vr)o);_k+lyAEAju zJC8aQi?CGGalv0IqS6oTAnMx&C!H$U7+Q=R4Ao%5A*- zexmO0T0>RA?;zLbLGxw37W)~Rc+ISv4QB42AmtpFQP=1xs?#z$^^q(;BF95!1bl9* zS7%$Wo<-waF=E!vlm3Ahv3Jr_2bVpyg_tpqvKW_vwh46L4=;FfwOsSQX7+RR^tz!T zIUQ>MI*V`!ag}TL)!55W@F$~S5HC`flF~TYNW>q$jHtPRMkzXw9=FsKOy}$fWB%7$ zDrcnKAeT|idd!8IRk^jx9uDTA!S%cZNo8|3&Zsbn^htkk*A0C+V+aliFcY@{vn~ccExZ z%L3WNsE}!vGei7JEy}F3#N&Nn13Cl&URGq*W-T;Y`-EEyg~>2h^GZr7dH=*$5FwVbBAs7Ws8D17DYI-K+ayW>zVdMQQkVS9*OEr* z5Mc0@$8_2N8P$8Y6;pB6>EksOOvrNwT3Ub)Z8PTX@PyO3G#m)BN9BFwct6@iKWz=U z%W?Z;r`3A`V>T*sA9t_`uS%7Q(ihp zgm&6R9ZQ$6MO`IlNa)g7Upc2qJy3gZxJu<3Yd{(6sO!#lCE!sia=r|*KA+>jrG@DGK z1F+SCJnaIHEjMiV`UG7{MgBlChieSW3-7-&Para^Nu6i^1LO9_BS6*o01Z6N>MHMB zZz{Qz7Cje=T9D@NOV}lW{_=OMVp=gSac5{~%_o_sd`Dy-(c&db2uZv-nSRXTTCq3A zrxyeRu`Xduq8;Yw!?C^zzec4s)&dpSW0^z24zN`2-{PtgewBs!osTmqUiQ_ZAOM3% z!uLqM2p3>_ouPVlnt}W3qH2|>Da;}N`fsn%J zr5=YOQS4)1}s?R(5s=}~I$!*)X9 zPtT%*o~3$|w`4J;--I3Cm7v5U7hR_ zP%31~Y{sL7Kd z>1bN_4``UbUE?S^@AG=W$Cai;miMcs1<^2Aidql!tZg_kk%0!?mq>lc{F@YyN162T zweW$510hO=T@%#Q_pkFNwQo(_|C8>eJ$5w)j|fyRY{6&TNsrdb`Lg%ij%9jsM3m(p z6FLF`U2%@WB#{mRnbzzQ1c9gsR5r(6(LsSxSJZDktkevu%tVoR?DTyLU(}z?$zF@4 z%jIH?nsJ&)ya|#*ED>c4hMy~_XG^UKekFFzzkB40dVN?NrOwCtI#S>jc zHmcv#8A*BKuS$*N3cbTJifIR=pp;ic{3wk!K9*ybex-_y_!AL0gCBq!&18x85Q6h5 zdQB+*%P(A>A%kbJp~0M#HTycqae|NQmX)M8u4X8&l{Hb1XEL(b;RTwO@ChXNs|`|9 z;rBek3O$w_rB76Q1UM%l-5F`}&x1inc2SvN(NgZpHsZHm%IY^-x^Ol7q=W18i1Zi1 zYb|f*4^7(5x-Eczgr=o1YMqEVy z>Mt9`gQU_oC4@upw2Ys{@n{2$G;MAsCi1}kOlaMULM{1UBloQv*$QTPQK_THOfg!HtFkMGFZ}s?);Sw69jt!0AK(dNuY81JIC<}zWg)*n*i)xux zEggKmq;2zKAT}-~(_ovkUb>b`_qn4lHB!x*IzD%en~U2P}2a>EV3T02*mkOvDqAroBjf5Oug$Jx(A zbjpa3at|vReScC(hD8F(RgDu%G7H0%(Aod0wxElSdSP(ak?q18WrusGT51iwA+3_e zZe=}?VYD!%Y1Azbkzg1dIBrSMy|r!wZ>?1)8=3BzKnXf>LP0< zZ!??5nVR6I=>Tq-s5ONrAaQ+(&>7~Ks;>$w6|EHHK!UF%BkKO{5LYXDYTf@!`Bqut*Pd~C= z*vc~7GT=8dFs*rOJR@%w0cayqrH#oMACMZxw~_l=d_)@4_n1_0Q8!4#45DkdQ)Ukc z0{Ru_-swrGwmdSOv{qwl9B$0 zEGnNMO@S}-hSKo3f?9HAY@yaGMu5uI$U7uaKL1@l{3st;ev_R=TYaNfri)Ukpm})r z6WnD$BN?WDEZDrIb}H%xJMY~N?qScM;KYx`(#wkZt-B%yt3W8RV4hUVm=7NNO2?7q z*rF2RQkJZ7>C?(+(k8Kuqk`}@R8a3|Zjp?Nl*dH=`RU-SxP%xBE!bH*`f0mR~QmGjk*75jv9Nh`X4*Be>5(2uEH)_W#**J@L5gygo|tH6S$ma6YBNY=8)#@YvC+VKrO3dcNDpeNX`BmV zYAx4L@uj}mH+6_w-NCr#X2#A4GqX9p?MxZS1)#F9)*D1yYP+e1!5)Lr6| z!W*QCByej&AIk5+U*%a`Thm@c%QVXqQY9Uo)a~_$T!is^L;bwJ*WeIJeyPN6P|a?T zA}Dkuu1MHlb`QZ2{%|XK^k0ML2;n9L1zgg<`q_8ukhhESz-!T7DeGwOC=h_hctk+Q zR_xVXDJY#uuYJQEcBXtN2L2fLZV54p6ThxY_+qByAh*MQd=VJ8)k7`%%>Y0+bQjBp ztUF^UB$0hsh8awfWs2ab7$yF7$lwO-Gi~%7B0hBuATLv`@C|Gz!5*JJK8o z(>gb9BT?WQ&cx4UNVD-UNq<=HAu*c%HG9pkb7bzoXWu=k`%G!^)N*tcbm{i#(yG^6 zSztqdwTM1R;JTNR=hoRnOW^&U+uzu|k+U6r*_cH~;;)$3+0nrqF*>Jlog0;{gmh)b z9fid{dLQDA1eM^MuqdPE>ySA_A50;U%oYc0Bxe{n1y3-BnIqh-LUd#qyDlYB(S*n3 zB&Q};0LmDG*%?|gruTPGUW7^yjX|m;oqt*vL#f6B2PGS%^)uD5bJ%H5RIgaVM7%GA%PP z+}jU~HXx0geaH>C zjlE@7B%->3X9*#xKD!}lVb|%e?3+Rl6oC}aEg@B06{=oNG96Wi(=?EpFoh|v2N6G2 ziAUewI$z=-G7gq&30Hq}5aF`I02x5U$pZ_Y*4c7F)rJMi4krYN!>8vCi?(41jXG8s zm6EqpO?_aG*75(kLqck21GGuyKVNKgxZMYtNi?$gotV9Q19}Nme^|J?`H0vBKkMD9 zON;s=`KWf6-Na?k5Vo7%T;MO%GrNkoEO|-6tGf1r0_>UfC?0)=VeBdyE<@}EI|K^i zs-UR*iyqL^pcS>Dh-7n{rWQdr2f#gqsLoIo`{ih8iP_1W+(FTs@&<`g*=+|~?UV3! z!(^Y|pEqx#DF;|VCD&kpB5xv5DLifA>+>TCq>(3YpK2!Ae!DicHLjBwboqgw@jZ62 zVX=ic+=Aw?08Ioop03!>V=So=UB*Da*LFfJuW}YjXPl{V-;2WYu*LboH;VL=kS!=c z(&4cyt=QBukqTz;5c9+(dv5?=utRHQpeLO(&PkAhqCVN;o?`6gKBVKO$~X>%epC;*ra`oEQxp&f zj9r|~)RS~@433z2#BCOze&IsEo(*L^&%aUBG|=h|#wlu7Dr=*mXd7~S{`4_nz+S@C z$Z!HHw!LRTJrSkt_GEg z85T*BaVXOjJat;`9FRWxC-m$dvW0tSD_{s?njmzpp{J14VIDVZxusw5xF@atR_xpyVGu}zdFsETR{&*|{t~Gp9%-Cet3O+l;G`e@ZSvawo1^=N z?;czEbeFS^SFs6BsV`Gcw9Oa&kQj9S(W0v24p;D!vg{csDxeD{Z+gk_gzEHD}`J|;}V9QK+JR9R9 zgO|^VO5DVOYm=Q%hE0J}8kylYw`eB$W{WeR)Zh!EXtw0*exw8~C*Ep8U{ZV$u zIQlc(yM(P%|L2WfzQ~oxFHDYo4SXfe z^W*`|sT?58Y;y$YEL-_URe{iZWN{Y> z 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 Ch!vOs literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Agenda/16x16/Date-Time.png b/Resources/Iconos/Agenda/16x16/Date-Time.png new file mode 100644 index 0000000000000000000000000000000000000000..fe95a0f69af317f9225bf59088a31d5e667a5fa9 GIT binary patch literal 674 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 F{tsb_c+mg= literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Agenda/24x24/Date-Time.png b/Resources/Iconos/Agenda/24x24/Date-Time.png new file mode 100644 index 0000000000000000000000000000000000000000..665b7acd472312ce1b3356de497e174be6fbeee8 GIT binary patch literal 1141 zcmV-*1d98KP)z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ<>q$gGRCwC7m0e66RTRg6Gdl~*R{=q6fi53WX_c0? z*sN(uY%N5zwl=g9ZG!bdO^PT@G<|A(@If1Ej5TN^X^aig7*a_}6U8DAZA?KEqGtle5Mi#sSd-5vfJ=%umo*QMXq!zwYi zKPpwU=ymTM+D`kWUamU_7X4`Wb;-Og@4mynUx&cpy_jsa;MXN?Ti?n>-saeY^VSWj zPrMrw`9c8n4Gx^QZt&o?Q}}g>VXh!i1RFQodHc*~F_ZgsiJu%2OFm|L8To$_ynp59 z|LaNH8f|*6+``d{l65%@L(twmiSzFu;~o=V(8Q_=9!h{G3vE1BkVeZ-oqY98>&g;E zqoJv7i9h2tnbqvrA1xr5EHHI1y5EOLNn!+*-@E6@?H(Y{X2w3rbv2dL)l@R$HBqy7 zlE1YO*OZ(5#06g5oj{g*ki)x@$*_blO+mj*<4UiJ5OVz;M9VU3v6G*Xif3|$H=o}` zVxr1Fx}@Ue3f%LOl7~a&q%P3bqvOxY!=r6pIl*#S8k*V|ngV-i8B-H;)E?YKQliS} ztiU-gu&7`Jy?k);C`V4b!7KZp<-^OPQ0Rd4a=W^gED_uO$m0Y}L2<5?_F`cI4?hsQhA4T>=OyJIpAY{P2dy>X8 zuT!*r2W6E9(S2@AX|g5Lf}$wcG9P$CU9Ec}QZ+QS;qnFWc;>nA`Bg?|1S8V|s|Hge zP71R#xzpdnC#P#^z4#^b9v|0!{3Coqqoiu9NfaTktEr^^>wXrr1WFI>XJ|4^Zq;B% z*;DK)+smsqD^?4{X^nghgd&%)3Y)eiUp`zb;w=2! z>qZzRzR{j8ZM^|&Xlldd3NjbJl^G#$1az!6+r1=r$>TK0j@P){IZof4#5dfB7-(+Q zmiPN>)dw&Pfnf>^(_FOAwG7g)q;auhjJGPY$=aBVZkl-9UUG8NNY^a1bpFNJt5cYP z5bAIT;GbBUz%;qg+_9oec{Y=qz0=HQ9yEBxWE) z_QWrEQ#8hw589p=>esA=5HdWWg$}Nf!Sz3bkYCIfT^@uX@D2B&4tL;9(NNTId6me0 z9J%ykLVCG9p=e)~Eim=kksAbcuoHR`5?mFa37_{@L=4bKH=B00000NkvXX Hu0mjfROTG` literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Agenda/24x24/Thumbs.db b/Resources/Iconos/Agenda/24x24/Thumbs.db new file mode 100644 index 0000000000000000000000000000000000000000..56c6f9004ec2f980cc69cfd3dd47f3c57c5407a4 GIT binary patch literal 5632 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 literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Agenda/28x28/Date-Time.png b/Resources/Iconos/Agenda/28x28/Date-Time.png new file mode 100644 index 0000000000000000000000000000000000000000..90f2320b56c0c1b709347456c09710888f59a36f GIT binary patch literal 1334 zcmV-61z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ=tVu*cRCwCFmTPPjRTRg6voqW618RYSHAqXf3AHV4 zkyitf5)eug8pMS{&?*s8L8KDF_yN&?kHi|OKuHYIXix!T0cjLUrL`nB@&QvY?edU9 z+a>g|xZ9o)3(dQf~lGa^1lrW)F9yGnX|B6sH5=3&0)h-4ct*P zuwAGl?up_-Fn?JDDq%t*8@KKn7R;jwRPiWsS_uv&TbuQ>nzRkwNI2vA%gu;ghO z>w>JXVs1Tjjq-{HT3Z}J_6dpcSPRnGxF8-~H_#1(qbL91t8@35(m?Ime`1iWEh5zq z+O%OVG4Z2Oy}Iwvbo#V@O3SJ!ukeA_&WR13!@ISiXi?CpO3P|_dHG}}zB-ro>z$Y! z%}h&qN(1-Ys)4vW7>E$ zL(uF}=p8Yhu3kZJR~yIo74yv0IJzDG(AwglruxdzQ#w@6ZrjQ$b>4hEmv(yx`7_6n zkPwY7;LMeNdOToOK<#$0bJKGyeqkLMSxL-k>ZEsmHZ`Z}Nr~tmI){Nd+q3_Kzx~d> zZx}Il3?@f2In&e75x7-Bk4IouB(y#kpT1E@-pV!1Te1vAmROdb%CVik<=O32!_T4W z)k#Z^Ll*}9hT!529kU`~zw{@ctbdltIk`MJdk)U_R%DY-gjr^c?ArnQy2WsS221lw z__eB$zgi4>JfJA>^~alecgJ4p>we>-4XfF)el@+foXpC8A9tr40A1XpEbh)@U|aR} zbEI+$-q^8p^%*FNgjt4d`^wqA*2>;v)qa~<5p;BX#=^I%z^)?W4KIgfl|Q3;bsDd_ zcr0@)itG!l$PhJp6uXaBqbLl(V1#1g+T}J}N(=x|Bf~5UYe72S?m5XBM+8mhFJo2& z%0O_lOc2Z>!y^`jT|Zq!iH#+WHeyD_ga`a!#Y83~#-l3=)wV9gO$SkCFv}tUCKzd! zNQyM`#euW@?uy3K?jY;oTgZwfcuIA{xNi=v1?iNQ)iT|h!-t2PD9UbUaefBw?mnhu zyoalECmrowY(7v=RYxS4OvKu1nYU^x-<4P01=Iy=3g`QFc-=rZ1pWSd-__6skn7*P zcSmGWcDkCRSQF`sW?VbLxO-f48h;L9IQ-FIpefTA3g zU%DOC*Z97n%>#XZ+ph!gkhy`>=o{p%oJw>6EC@JzNpaZU*(9j}w?oG(EEtjrN$Vxj s;$dWbBu;M(2ai?{@{u0&ul~OS0F`Ev-^Vjj)Bpeg07*qoM6N<$f{NyFBme*a literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Agenda/28x28/Thumbs.db b/Resources/Iconos/Agenda/28x28/Thumbs.db new file mode 100644 index 0000000000000000000000000000000000000000..1c607da24be07069041aa8ba8341038835c24990 GIT binary patch literal 6144 zcmeI0c|6ox|G*DpY(tDSWXTdL`<5_n#L#k)GE$LBB8nC!OOrh!S4yF4Vs43IoA%PWY}i+B{J8MJAfh4M zm2P2adq|F>ne-`^S?E95G+K^5@#{9rZJo-O>_y zG#(VJ|7qDDjSRli_D75P051>s`P{XLd;d|r+oFH8v<2SKYHtt#z2N(!%3rk;hpQm> zxnI&(Ro~5;!J44&*8cU1FVE)Q|Ee}OW?bKKWAg9jKL*x|K)7z>hE5Cuw*Y{JNI)bZ zQV?l~3`7>P93lsihbTZ+KolWL5M_u8WF(#n{-M{wF-}(RV0d7pWW8fMLEbeWP1X=-V&Ha0OeTW7xBcB7p=-obH`>-HUP1oxdD z`w#dW^gZO~fBeMBkWk{Ou$b7m_=K~GNf**DUdp(9B{M6J^4s+r`8Nv+OYWAI-7BxS z|KLe&UHwzqv*!)3T3^3;+xD)#qkmv<=>71>@1tX^k5iwfXJ+T-7r1uu0Ms95{b|`Z zc447iynK8pJ^`*>JiMV06qXOY(tuxLgNuN7u%xPCl%SMNTJD`1AvL3IOzC~cT7+fP zjr%oNT+=>V_G5-c|3{YnY1seS)d56MJTQ1DEU*S_WfnbE=abcp{+Q{56N9{wHj|ed z%DM~-QQ}H&E8<>AMKr&W`FTsk=2oE03KCyrm((I4xeb49=TAN6tjLy>tD=xiA#lTiZ?Kp@Ok_Xt)*vB%;1day#zTWX;X6&!!>$(<_YNK?8V`@ql`x2N=q}B<_jWXpq99gh zrMl(F+&KyMQDX#fOk7D%!t)T&;+TK{)aMen6V@pR5S?z8b$XpnThAwS>ZszAdRzhD zF_n`ds5QSd*az7He30lK1jLmy$2kcMQ3Ui2bRr-rpF<7CFLB6&2zb7NVfeVbm61BX zymsJTb}oG;YM|S?&Mm<7`Jvgj!CeItE&2wziiXtl=AxJ0y&~1x5J{ZK-w;r9BNJ+$ zOk)Ymq%qB+CRM6pcDJ5v$a;sMTT!mP+pUN-G&)D2Ewrri8Czup1@2J?U*UK^r%wY|Fdoqg7wLD`Klo>uB)$6PhvBGx;XS%V^jpS4V<}#Fajg{3@49?fKln|$H^i%EK$~(X_{@-7QJM3++x1+diJKM_B(5$F1T6&>Z=M1 zWfA!%Z{uDQLU}rQo@|lrt?5}Me6i!<{aL0#52+94lT226#sg zxcDhBF70=2t|&@`ZWN(x=hCG|$Kw?n`WQ?Mi$c;NE2a z)3`^5GJ1GU$Ld~bi*6Cgirtfwg-?p8@{rq)zlc}G%h~K1Ox_yxYm7=vG=2kU3<8&roi3rP|}^Q6rBCukirpkQp__8;wmbxN&jO5i|lrzw>0G{ zwS0BQ+ef#kyUyuR%#tYbMY{OBa*|a!ZnD>YA*PAaMD1TB7kx};P$D-BZ##8yxA|s; zaWVIRxyl;r8HsEJI2<|b+H^b6rJPt>JNTb2pc*n5K9}i?{)6QFN zw;t0I;G}sFe(@kZ(Po$DlAd@YK!rYG_7MSZ5m2-k@D2ex=-s_-sjsSzIs_1>>QQj$ zkVX}Yf_ku32#EEc!nfhN^Hxo&Zq_UDUw^s%!0<MEtKaK_C2A)50n?5eZz+TT!KwZ3>9i15gMoQ-+J%w5^Bk}HL!aiWPBn)U;+O2K z$TciKpZ-a_)1&ra;|B+GH7a*oBxpz(A2;^WcNTadpr-M&Uyt>A-&CCP7*6grxz_Oc z+S$t)gz@5g;|c{H2hX3tEZ3k+oyU1!4WTPr&&keYmdv?^p6o|}Li>vn`%z1R%q&Jd ze1&p`kzU4bemTu#8MUj&7iJ{HGbA59fns#kwOohcbtHkEGpE-Plv?Jn!Q^N3Pj9 zd=~-H(Q_fqw>4jFcf4H}pxa@V(WO!JLG55lx1(q5Eq(PB66UzZ0!~kk0`#n>&&%7t zCDiFzCMqqSRnqF;d3L8^=n>y!Z7o;fJ!cMf$UUr_31jw9{1#mz%vt;;{nMhJif#e8 zK||_H1bwk9DpBZC`LZCqYv&3(`FC5&<)-6~5KGg$JKfl_OZwjL^&UEC2iw3%G^Q6@Ci!;&6WH0(0$5;U}SK4&^TqMda)n#SIE5CN~&WK|Bk z`80lDc#cJIOA(DfT|tv*uB%;Vt&Q=F3ZUjSRI#Yq$;K+PaAK`4dh|-KVZ=mBqaA zYJ3PdJf=C{)#lnqZg1_sTuYYdASTr2U=y~y4Ro`M{@tr*lWS87g_Pl#`LoNrV`5$& zjE4$xH&_i_wN&I39Br=@5#jB4R7OMHua3au+^U#e+0}q%-*;FwEcxl50J9t%a znK=UDz0&1QbVm3MiY*G-!S&zmjalXny-p=l7Kt6J%JrE4X#|8_4M#vAl>-$A79)lH+%ehlPt{!ESzKy6GGOncu;mD*ErOmF))}npbopyCHBI~ z?kkCX*!UGAD!!zH#BxsTB4Y^y=gr`B+m*d6@}A;1LZu_7S+QAu&r4f3)z-eHOn8T- zdFb9MnOfC#sK;MV z+T`{e9R%d!77@TZfq*%-7qdD(!Y*`BQDSD%HruhR^?FAC`}-A9vmc@zqHmtZTijK# zJfmOqB1r5A3Y|i15Pg}oDJZbQQT<|i;Ju cwT56FytuLfEZO*3wt=}w_^W@X|1}T%69xgoZvX%Q literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Agenda/Thumbs.db b/Resources/Iconos/Agenda/Thumbs.db new file mode 100644 index 0000000000000000000000000000000000000000..fdd120a13fdef84fe94b7f8e4f66f0c240d4e577 GIT binary patch literal 57856 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 X144wMfq+n#pZwJKQ{Qy{zbO9~QWaDd literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Albaranes/16x16/pagado.png b/Resources/Iconos/Albaranes/16x16/pagado.png new file mode 100644 index 0000000000000000000000000000000000000000..274231ad1b3203f6008b9e4ec46c0a1d39100155 GIT binary patch literal 561 zcmV-10?z%3P)FOH(DgR)JPJ5K@tQxJJltQt9RVWxH};PY%oM%l_J56?GMKb9D0EiBaX1SHMZG^3#r}A z(b3Vth*9XX(cLKSu!;eILkcXHr>Gk4P!;e>y*#Fmb5oo=I4M@W4!ttH!XVql-OJV)S5X(pqC~#Em z5c=!{F+vmS5Jm9f$Owrok`kxZv0ONNf$qx|XsZj`tNlim@MI-P<+LA3YSu6gjqzx1oyEUfFNppxP+&Z=cf6%U=x8 z`&Aa1=c{%HU|u~AA)M%DJ$V5g9Gk6KzjH27_9Jw?UjzNYYg7BMooIw(>%g7;2yG8( z;p9OG!rA6V^;HpV^ttuxCsqbB<7~aL7v}u|jFK;t1Iw_c00000NkvXXu0mjfj?4NR literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Albaranes/24x24/Letters patent.png b/Resources/Iconos/Albaranes/24x24/Letters patent.png new file mode 100644 index 0000000000000000000000000000000000000000..f82a076d89085f0513daa8085037045c29e64c0c GIT binary patch literal 507 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 literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Albaranes/28x28/Letters patent.png b/Resources/Iconos/Albaranes/28x28/Letters patent.png new file mode 100644 index 0000000000000000000000000000000000000000..4b30b6f948c87ca652376534997532c2dae11f62 GIT binary patch literal 557 zcmV+|0@D47P)z@%5w(33+yDRoAY({UO#lFHi~s<1XaE55!2ke-1^@tN zi2wlk_y7P%aR2}ul(R1~hX4Qpqe(nLlN1FfT}lyDT3c-w2M34Z;NHJ1+O+p1b$n zOOZs9l65Q9+b045N$2tCAV4_pWM2o7NoRZkHdbd-9)ml0rP1LeBC70J!mn;$ z6}RY)Ptu#Aol!HFANkWlyA?>&u>WGMj`DdUoKlnEK{CCz0_(bitA{hp3(aa6mZ6`0 zxpfBsxH#B%Y@!+sFet-eyQspl6if9REGQwOj?D}Z!5Ny$^J5#ump3y&(EDLrQH@wb z0N8ntHxQb+JVb&iO$Px^BIZp4jy+#~4dnK*Z4!r4)AQ)(GpMvZGu2Co z{?yaHazyFTUrU<+fc8;&@B@9oNXJ5ipXgD-W&lm0aGQW4o^pH v@iG)erFNgpB1{tNyL*4Sd8d+I^}h!I!WZm}k_H-H00000NkvXXu0mjfkF4eK literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Albaranes/28x28/Thumbs.db b/Resources/Iconos/Albaranes/28x28/Thumbs.db new file mode 100644 index 0000000000000000000000000000000000000000..6012de947400ac3669f57d7cb3c808715013c267 GIT binary patch literal 8704 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 bHE^$`{W+`(V)lbnM#vDte$$!dYv%s|7YqFv literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Almacenes/16x16/Box-Closed-2.png b/Resources/Iconos/Almacenes/16x16/Box-Closed-2.png new file mode 100644 index 0000000000000000000000000000000000000000..35c88b2034e3b7e4ee8c347b969545857f8aced9 GIT binary patch literal 628 zcmV-)0*n2LP)z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ->PbXFRCwBql1*z2;z~onQfLAuO=vz$Vq<3Bxi>Q|<|b`E1P6u- z!#w9b=iCXLa|A)a)wQ4BcJ+3h|5=&kgZ=!rD-=ugn>9w=7LDTy)$)4^#S-IR9fqAI zqi&nSgFX5;o{(AxcYmHR?6znef1ksnZi`{(j83D*;lUpH$2$O*0yDVRJmsR_;q0VJ zwfuoXvBd9Qn~VNAgYzbDUOwm1gL`DN*~I^0!Op|`Y;0U#>>#sMXE%R)rJ&`rJGmU0Oopq)&r2*kd%7avtizZH(ZaivZ#rxs%(^hCUX769TXCKB&pB?5qR4r?7on*=n7 z5=6X!5kVxII9T(LtaU^ZA=)6~Mf}%CFj0&oZdM%Fsl_Chwboul3rY!kqLU6HbUKZ5 zaMZg=7>2=IK(s+C52}eq#GsYWua%z~MKP(Ap&Z{L48vgIB`T#+%1@lz*Wx=!B1~h; z*K}?UFGSEPxtvU%*%xh?#!~>QTXz@W1%cP!Hi6C6f0_cW`MnGS{2c&x#$&+59Kvt_ O0000;MPA32*_M0Wp9Z-~o05 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 literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Almacenes/24x24/Box-Closed-2.png b/Resources/Iconos/Almacenes/24x24/Box-Closed-2.png new file mode 100644 index 0000000000000000000000000000000000000000..7aeec56adcc488b23a5fa5fc4de71e4db4579e82 GIT binary patch literal 515 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 N002ovPDHLkV1lm(`>Fr{ literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Almacenes/28x28/Thumbs.db b/Resources/Iconos/Almacenes/28x28/Thumbs.db new file mode 100644 index 0000000000000000000000000000000000000000..1e617685594ba7f9e026d4c1127269fb722b0fc8 GIT binary patch literal 17408 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 literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Artículos/16x16/Insert.png b/Resources/Iconos/Artículos/16x16/Insert.png new file mode 100644 index 0000000000000000000000000000000000000000..a6dde0f04bf717a105897bd8338e59774a56761a GIT binary patch literal 404 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`oCO|{#S9GMLLkhTKK~L(6-&CK zuOkD)#=e^0fs=uJg=CK)Uj~LMRR)HJW(J0z|AF*N28L1t28LG&3=CE?fSU6s#UFKJ zU|{6(ba4!+xRsQ0fN5RWi9hKILK_}T3dmd0Xi)bjA)%t6Ju&V%TicSKGm?BNdfT<; z)Si@HE+MRVmdAYEBhkYzSzC1PRUDNlWPNn7o#zT`xOU3F|33_wo9uml{D16p?tkV) zqyLc|opx{g)O&6)O`Ms?oFT<_CHs)@|z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ-dr3q=RCwCFlR+qhVI0PPTU!ZnpcFgFfs%G|rYMKq zHYGVMIVhiUaG+LFU!itTc3Aq-B&~K+S`HQ=lw`h(T1vSsjt;Mv*XO`|`xqMs@AZ9u z&-1)b|G&$!EdK2XKbG+0aCH9$_6|=1u!=3>sRTZaV{NyZ+?$)Yv(7t@5!HSyp|dtd zS0F}HZie-TZkhpiRKoykY&z!h0E}pzCE;vhoUTBOd@fBsm&PzmE^i|!DOi}_!-#6u z#}@_?Jq~!0b_X2NeY8b(QPSZ2reQkk3Y`OxS6ygU1!+dK{1JZs90-LqF{q%*#` zcTZ>0PZ>AoS6kK6do9!zh4)PB@?k|!PE49GKGZT+}J zDQ=HShX$vbs``8Z!JO{aN1kG{%c2So9y0e9TP}RDWn*mR2L2ll*}g^@M_8}CaerMw zfeXL;o;!*I`eSuyMof*W%;Y89^H4e|8}m{Q5lANCC9!$;m@~v z{Boza)@rV$jqmoBGHA?~|NQmy>Fn3C|9iepC^xBe-)yLK^glC$<<#l3rMJli14ER- M)78&qol`;+00U>FTL1t6 literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Artículos/16x16/Swap.png b/Resources/Iconos/Artículos/16x16/Swap.png new file mode 100644 index 0000000000000000000000000000000000000000..bf54e00cb3af8662d9f358c0989a496db1c6eb59 GIT binary patch literal 476 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

    @Zo!{;+oJj6)gisdpDb~=rux05o6bZqsTi=R zKTmuP8}&|8>t*&OHE)jGW`j8$bg|y)8ytltF}rr0`G0F@33c$hU~c$i@-&<4{r~QN z{WtH>z3{#J{{9R5Y_tB`{dHfynf<)~`To=7|2N-l-BOk zvk#!Xqp)5=GH^XvF0fBg48-}sbz_OZna&)v^<`E-z@%5w(33+yDRoAY({UO#lFHi~s<1XaE55!2ke-1^@tN zi2wlk_y7P%aR2}ul(R1~hX4Qp4@pEpRCwBqlDkgBFcgMAQ%iY?Mhx9Du`)5VTb}}! z3Z9^mI&?s)`Up{^bb~c>m8CoaQX&Qhsxn8}YENOHl%#epXR?3!KbOx(r1N1(&+t|U zaj8jw(Q@&7QwqL5iPkX>8&mTvNw3bQ)5Gw6N~>l~aC*o`YM5)9B_vR(QmJIqEFseQ zu-xtYL415^fM^5u^!hEzvipOi4cLGffXsKtK+@u$NE29X=47;7;5akGsdYef|D4D! zV2(3G>!AKS>PWb~VemIXw2sehw}w(sR07*qoM6N<$f``Ukg#Z8m literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Artículos/16x16/liberar.png b/Resources/Iconos/Artículos/16x16/liberar.png new file mode 100644 index 0000000000000000000000000000000000000000..0f05e979b7c4a97c9e6302cf68ebff668450752c GIT binary patch literal 568 zcmV-80>}M{P)z@%5w(33+yDRoAY({UO#lFHi~s<1XaE55!2ke-1^@tN zi2wlk_y7P%aR2}ul(R1~hX4Qpu1Q2eRCwBqlD$itQ5431S0kxKuzx^?V(8F_Lk5jQ zr?$Ab3B{#S=pZFy7nO+ESStY+T^z)ZL2)pYm(+H1aA}j+BB((j5?{?0C?Z7OcoRGw z64QLV8qaj^x#v9RInRAmV$>x(Fg!D9Rhx4FxF^Spw_Fa)6P7~;?^o(`9vjf6@~Kp~ zxZlscIXecog&Ze<{;KA#cb!~3X#us$r`Ox^=x-8p?}MraC{L-FWS;P9q?5>x;i`$D z%@?#k9g#~jqySW6)FnG-_0$Xvs84~fv501-jpqZqz#CL=%+@Os z^(k8s{i!fVU%ML`OL^zS0k9l0XvU~`3Ih;{7SILZ^v_RH@gN;N6SQ{t$Z26|{jj)# zXC|#`9p*1l)&)W5g;YEUKq?-@?b^c9V&g=c(0M@@1n=AL0JsN=%{hJZFaS#nmKM^# zzX5RmYlEzHL)Q8aphW5gzDxDGxQ^Nb+$!9t-|1|9`ELNR6VHPoH#YqM00000p?h64%=0t^BQ2L=RuGl!K_ zt-RSIWTXKz(tq=$0d6%*7tKy1fGvPPfIOMniQ0U=YYs5agg-(p>v}0(7G6-4@%zxv z+(V!pJ4*p~$-E7ZG>P$V-+ zRKR~2zioD9e{H}KYQ{;JAj}NnT^2AgAh}mnCn6g-_jg%41<6$oF!_SEJCkK(f9!_w o%%}ECOB8^at@^gntirAE19aVILBnjoB>(^b07*qoM6N<$g0m29T>t<8 literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Artículos/16x16/recibirpedido.png b/Resources/Iconos/Artículos/16x16/recibirpedido.png new file mode 100644 index 0000000000000000000000000000000000000000..8d0db7f4b1b4bff0031bd7025530a1984440fde3 GIT binary patch literal 594 zcmV-Y0z@%5w(33+yDRoAY({UO#lFHi~s<1XaE55!2ke-1^@tN zi2wlk_y7P%aR2}ul(R1~hX4Qp$Vo&&RCwB?lTSz#Q5?rVPjV5G)J{T|pzs($dddi) zI&68VTLcC{TOHOV5Eg?7!B{NFKbHzJJ9vmzI#i@|*n@SeTvjNMIxIM@AUn&tIy2Z^{;pCqz>Mfcp;y13*L9ICpWFXgtx_ z!Rwi)H-Ka#RYTYKIX?=35CH?Ucz1H>PKPgGmrEGB#%^9acnyN!b?kDf_Wx>nyjG(~ z^pR*tP!BeA4MX4HQgQ^2Lu3}r9}e%{6ay*va?WH6EUmP%oIOeJ)FAx>J)F{?&_B>a z+j&p(>`S$!@2G%-Ott{!0z=_ELcqlH8FCBN*q2+ATqQ~oMwTXc68ICj)QDT%Z#T-!uC7Sgup zx_2Fb$Im_k5St@aBPeZ4Hgh4a^cIn>gK{e#*hJbE(y`cj@fOF}=KY7iCJ>IL>$uS@%Szf7_z}>(g{aQ#IWcjMr gJ#_$a*md3;0Dpnv%v1ckF8}}l07*qoM6N<$f){uGC;$Ke literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Artículos/16x16/reservar.png b/Resources/Iconos/Artículos/16x16/reservar.png new file mode 100644 index 0000000000000000000000000000000000000000..475c2f853a284a10e570086f511d807385052578 GIT binary patch literal 561 zcmV-10?z%3P)z@%5w(33+yDRoAY({UO#lFHi~s<1XaE55!2ke-1^@tN zi2wlk_y7P%aR2}ul(R1~hX4Qpr%6OXRCwBqlg%%qQ5431*R&}j;ScCSG!|2lurMsF zuwo|>kq}}bVrhePBBKUrG8;A);$uN9h%{!{S=jg}LYQVGr1R39L?)Avw{zP#vuKsJ zZ_8QTdp@4?ZHo#J_t7tg@vy&bk z@4h7|tGYw!>8Qd{n3r2bNj$FIkwrYa$}OUCSH#EGBcKgccbMXprPVW_IlG7hp>=+3 z)VygdRXr^>fCZnQ5BOh|)&bZ&h@oS`?~^@30WW2rMky$(C8CA-m7j42?y0a!ci2FJ zvW^KlDue=F073yTF6R$SEf!9+2ptu4OsMYM0>IT8ACBm!_W_t%Ftrdq{tm$H{wfdV z6A$JKfD+04jOnUpjeiH$0M81)HScf~H2fa`vP8_hY_aT800000NkvXXu0mjf1bXSd literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Artículos/24x24/Image.png b/Resources/Iconos/Artículos/24x24/Image.png new file mode 100644 index 0000000000000000000000000000000000000000..e7e2e3af0171401326d20e5ba22d8de7659dee37 GIT binary patch literal 974 zcmV;<12O!GP)z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZcy2s$JhI(kqL1x1AT15i+R!VLutjspY~umZ%`t92Y18?U|g z?t12aolCLnBv!I$E#V`*bDBH%Iqx~6xmSe{ILL?rKKW|qKq#-g__QK~z{g*HAO7!n z;`vuY2%+O(H!fb*eO0D{W5mq!key~M`juFASj#54rk>^Z^eNtX?(p6g?JGiH(5^7$ zKIO#F*CcTZr6b17bw=7%S}q38-dY~*zq5`}dyR?YJJM1E~3xaT!?7OD7H036mOwg9YEMg5Q*7}5AS(5 z>UVP^pan8XSXNW4WRD|TB|8#!(0xegRIUYd04<8;=p-}I%jm2~ z#VnADW;LE*cHkKJ9K> z*=*Oi^w&o$G(YEPWq>0EMXUKIKUCl1QQhWv7_ApTdNo+|}4YN6o zml$~a-ZRK^OO`qE{I;}q=-i>T?k2k(Z*wqAb#)3YK^en(8Nihz@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ-hes|D z4@hevk}4KrVWWbD#X&3uAzTRNH`pn1DNGZ~G)q)U0G8lxLFUg_?wb%KU?P+KL}YSxRqiu0;-cs2dKs=; z`#B&2Xn^`f1~CO6fH;9iM1a!=Xb{SehYIfW0dhn6@le4X=kE(7zC6M2%YH4A_`(FP zTSL8-i|k7|xV#OX^L!EonJ?r(CKXP6IZz=uefZGCKRB>v5B8z!W#67RN`~dzS|tuL zCIg02Wsx|@F6NOw2e=Y};2;jNW!tk5cJ_+U7HXg?1%g#M*jk(O9Ojl&NG#c)Qvtz> z9DKLv=COz8*8yJM-Z42dg&crH5ul@PP>TwUl3~RJ9C#9Z1qXm$_X+KmjpOYk>UT-s z0K-w$MAdU;m|%VL#M7R3%SJV20B6CKMN`J)&ruzXnAvCPcQ&+z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ;6-h)vRCwCdl|N_`VHk&>OCyMa6)aM}*X^7x?XuVjLCCOw`qS2_hV{!yufKbq^+tRuE0sfw0;tzK- z({>BXvM{|J3>rX0SaZA0}Aa!N7rI9|tlozJ`+zHH^H>VivW!%O<2 z#$uGfm$$Ad**8Q4!!QU1O>uui{&kJNN*M*gfBn<{GXQmKp4^%S8A$*D002ovPDHLk FV1l;;D9-=@ literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Artículos/24x24/Remove.png b/Resources/Iconos/Artículos/24x24/Remove.png new file mode 100644 index 0000000000000000000000000000000000000000..96872cd0ade781073578fde80bd41d5209ef09f1 GIT binary patch literal 544 zcmV+*0^j|KP)z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ-mPtfGRCwC7l|M_vP!z>~sY09taS|$mx`<1`L5iS5 z3p%^>9`=g};tMJYr4pp+q%jcDFaRYaT)0Cc^8 zZC8I;r9ibgInOZE2Om139w-IY8>lva;zI>G!PXlno7jA)fIHZ-dMk|LBL&>Sej|wD z!vt)*%1JF7crl6(f+ixgN|U*(``|ranIa#>C-%W#TpY^>0L@}L7uV5oePGTU?4#=i z-*^S!LBVmdruCJZW-;w?{ORZg*NrRhcz%+*ocu4y7(&L7ZYQVy^$+jb i9?!>akVr9Ld<_6M&3m%&Jn=680000z@%5w(33+yDRoAY({UO#lFHi~s<1XaE55!2ke-1^@tN zi2wlk_y7P%aR2}ul(R1~hX4QpzDYzuRCwC#ma$6$Q5?s=&xE$1Ju%3orX(RmNQlP% zfd)}=I0vyMA)%o`kgzEtIz%bjnwqOg5XYNRhln5~f|Mf#-{J6UsIxQA_biZ>esIhC z{C>ahyZ65D-Z3J=B*O^+)wF8|Ku(aClJTYN)1fUPBHZoH5$C657o4Bc$(EcG5$qnP zDKtH;z%bM=WzGTKMgDpjQ)6)95)B3CfZhUl7r){{0kc?d0o=fkxlq7btn0%wlyRwm zwb*V6WLzX*7%K85|HwocmkFeb(M)cX8-i{*AF1$v4*vWcID|geTLU<-9TalrRY@%H zz1Y&g7q44#hB*MNtOkcf7!jeGcG1HA9`cuN+t)lR&m$S~;OOFhU_26d#94WMU~FT3 z76;iYkft!}9&8k&nOi$I6lQLa40%v(G?5H>`s3k50kO9X@X4*=Ut0w8szjQ?nCM1h zUX{*|W2iQocxit)=C#v9^WhnlQVpaj%onedIf0jU7q6Wj0Q7U5A_tJBFy>WhGqT<< z8WncUNmH0pW;0X7zqW`( literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Artículos/24x24/Thumbs.db b/Resources/Iconos/Artículos/24x24/Thumbs.db new file mode 100644 index 0000000000000000000000000000000000000000..e555100ced3182f250399a5dfca0b8aa5e0d9071 GIT binary patch literal 60416 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 literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Artículos/24x24/articulos.png b/Resources/Iconos/Artículos/24x24/articulos.png new file mode 100644 index 0000000000000000000000000000000000000000..c638dfe6f2377ac3a97afe613793bfcb6a532c46 GIT binary patch literal 467 zcmV;^0WAKBP)z@%5w(33+yDRoAY({UO#lFHi~s<1XaE55!2ke-1^@tN zi2wlk_y7P%aR2}ul(R1~hX4QpNl8RORCwC7Ry%6LKoET!8+3`76zNo@b(Mg1374*X zg&0z#F!%<+Lg0f0xrnP=!0v)vu-9$ zcx{O)AOg|^pi?_uD^LWd2|&u7*9w$_)3ka+6K@nK2iKLr#Onl<3K8wbjfYKq9YkTY z!(udf`)Ka-`x^u%zOxVN`rNdfe9&oBxb(TjShRVa>h6Ok{3M6W+WWvNxkez^%$D&$)8|&nb6GFouZ~+E5S?zGOCZlJ z+tdchCvZOhP5veSM?k3%(fdOOqZv%3d$01FiN60TuFx~S2LKJjjGe0p_YD95002ov JPDHLkV1gU$z5M_H literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Artículos/24x24/liberar.png b/Resources/Iconos/Artículos/24x24/liberar.png new file mode 100644 index 0000000000000000000000000000000000000000..40be13943761d440c0c459aa6ccac01f6c797ca0 GIT binary patch literal 654 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 P00000NkvXXu0mjfYL*Y_ literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Artículos/28x28/Insert.png b/Resources/Iconos/Artículos/28x28/Insert.png new file mode 100644 index 0000000000000000000000000000000000000000..1cf6ee4e5a33ed8d0203f556fc0337a35dbc1e90 GIT binary patch literal 620 zcmV-y0+aoTP)z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ-;z>k7RCwCFmOV=xQ51%sJ3Fw8jj2)z60})u3>I-4 z72H1|_<^KYkt9XZSfsF6Fip}ZvWqAL{241GHrfa_vQ-LEBtS;uzJz-qs^A&u*-uu$Fz_!>wDUs9E02l);qSFZ5N~|$bnME1)(HN=BT6SWMk;<&q zN~|%p4ex$I5cD>3?8F)^L*K8ne>R_51E54C7X0s5{h^*4rL3dT0$-JGzaIvxMM39GZ8_~nec%Q$8$5{uF z!?kK77X$u(r}X^CPXJsu0Kl?b#$G%Jpzr~9-j9Yh>+q=JrjzXuEV|81Gl%O1JR2UO zG+X5DmnM6~YR?xBbcyO`<~RX={yLnVG~r@hZCqqz@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ;#z{m$RCwCF)m=!FQ5?td@AIIwEY#G88oX`Hh^FKQXAy}$W7AcFeNI4K#DzGe47J6Zh5ZTef5s!(;ONAvz z7|1_ffWt-f+GwUK4LSI#;;}gJy_d0+FmSkNcSi%T(k5{ogd~JOlBAGeAD-t4H7=cm zgan3NgN)`LVqKp%&3Aop7o?C?__6e|*pt4A^q5LoTU)&Sk^hFlc*(>7!a{}Z$Vf$Y zHZh=%v2WvR>bp*&C<+Bbi8yhZ5iUB?e=$Sz;Og(e?P}q4K@v`^U)=<%6V*Q>G4Bf-XK(C24*Joj9Dus8xP*P+!(FHY4 zuvkm;F96Cb>sau?4;C{t#qxd2E-kJ(W;uD+Xu+(Q{eAB;@y({RhcZ2I5g=H~( z`sR(Xw9P;7%!X?w4&n2UR2Vu{&l+j$X=b=RnQpfY$8aC3)^E3raeAdegVQlXQz@^X zpsRBY9eo4DCM9!t_g402L|Mi-_1&0Z4}*%dtMe(zTT(ceW+Oc_&cCSdQ}ej#=+b?& z!!0YD6}*~Rg`uhFs&~;#HODc073hk48s?t^GHF={agY2)9Uo<4=qJSw+R4q?#sz!x z%w0P5i#5+Ay5dGxCQU4`GCwxekycnlT;j~fVy3;A3-eZpB^JIq(i&V0W~kl@tuR|u zto0u1s>;H=?UD&D=a5z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ-(@8`@RCwCFmc2>?Q4oc{O%?(+T3JOzv=JM@LPSs@ zc?k;*1Nkm+2AQc;GWEP zXOc4;LqzybnE;P_V+Ej^;4SKSW{zL3q7Fr*_42Tr7tgaKN}gxQ>8hS5?lvOQ>JT88 zE8+W3Fn&;X=&@eR;HiszS{sJ$sU3 z@uT-Q2!ifHPU!YJ9vz_XS2(*{i8bqZl4OVok9%W<>*x4TFOO5y@eDNhY1dlM!3TKQ z%@@+FIJ1vXS0@kl$>mCs-?LRNR{=vGm=NluX$(I2DOOx2b*L57*r{2X!1uSmu((i1 zOk-|-8D=d>9efpR@n}_fe0j3T`W8a1Y^Z?6i;cr-HX+o?6$fmuO({RKur$prRu|L+ zXlKUIZB8|f`=?g`T(@-z+jg0p7zOBpntd#cVmoK;jMRVLcEU_Ei|Yl93=jQw3P#Vs z@HFO1NEFO*0zN(+Zg1+eIxO|oVWe!^1>nneX*xcR6Li3mR$C8R-#S?xbv}UqQ{Mvs%G2KCusV6`00000NkvXXu0mjffZ+W0 literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Artículos/28x28/Swap.png b/Resources/Iconos/Artículos/28x28/Swap.png new file mode 100644 index 0000000000000000000000000000000000000000..2e23a78da239f1b72cb4c3b383ab3fa609ece00f GIT binary patch literal 586 zcmV-Q0=4~#P)z@%5w(33+yDRoAY({UO#lFHi~s<1XaE55!2ke-1^@tN zi2wlk_y7P%aR2}ul(R1~hX4Qpz)3_wRCwC#mcL5^VI0Pv*912qoT8)%m)xWvB*;+P z`Ue`sKqOBr4L@3&t+O0vMY;#H-B9M|0w4po8AH%oB6Fv3r^$H>AfrI1T z&ppq3-22?UjEFEvnE@alwfg|v=&*hs#uf_8P)3; zo6)O9SMODz)#^9;RL!1;;R$RuMI;_JG+`b_PmG9=kJ^3dl6I**^YHU9|Hc0={@*XY zX`s|I;s`y1#I>Ebkme7S~-^o2_C6;-*7+Vk50t1wl$4cp=j+@1R=Cot|n$_b3QMB3W% z0>IE9MM{{$8G6FrQ1|*0vYEnACKyh3&lS$_J5(=u^$O%+Oh*1`T0wdooAl1xgbC|= Y0QQeYt(hT9rvLx|07*qoM6N<$f@G)uxc~qF literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Artículos/28x28/Thumbs.db b/Resources/Iconos/Artículos/28x28/Thumbs.db new file mode 100644 index 0000000000000000000000000000000000000000..376d1ba3655eb5eb4122df42c8cdfe911c94d036 GIT binary patch literal 30720 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 literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Artículos/28x28/liberar.png b/Resources/Iconos/Artículos/28x28/liberar.png new file mode 100644 index 0000000000000000000000000000000000000000..bd5c233de0a661084eca52faffc53b7ca0ed2aba GIT binary patch literal 652 zcmV;70(1R|P)z@%5w(33+yDRoAY({UO#lFHi~s<1XaE55!2ke-1^@tN zi2wlk_y7P%aR2}ul(R1~hX4Qq0!c(cRCwC7ma%ISaTLctzb26U5tY_SIH)v2Nt{}+ zI20FgC<-DSM65_b5bTzr5Ji_z8d?gai(RaXOF$Y34%!k*lxWum;v51B_q)p_&!v}~ z2``-J$``+(+cS=O~pAiQ*S-o@vI0&el55tXIqvVT-2tQtoi`JXs7g}#h z;chrCBKT$8B}yb7VOd*!X01V+Y=4|4_78ZVL<6BUw3?tz&V>gOxXrC5Xp6{rAc42J z)f(I|3=bvnHv35sh6fQ?))w2Jt`98?!@~&Xcb3);hMk7l37+pPt-TJyhcb-f1JZ{B zd0{?C&Q5dke&(-bbMLySR9>XIqTFj^f#^0`5Vxi~1Tdydx-}Gl>*drkT0000z@%5w(33+yDRoAY({UO#lFHi~s<1XaE55!2ke-1^@tN zi2wlk_y7P%aR2}ul(R1~hX4Qrh)G02RCwC#mVaoJbsWcE&&};J*xa(U&2!Ce%fcD7 z6~_97p*Sq0^vJ9TvA`i37!hSwM688>M4A3G4RQ64(6lll3@ccXvfRoXTU~8lruS>L zbGy53_v86~`r~f5d-gncql`h&17DsG-|zGJyuR=E_rt?i6A|X}u`$QboCD`sP4@4q zUIm<-C3p25r`|YOm<-`+zLk3$D`~v>TIy@dw0udL)fx8hs+QVUU&3y0u}q4^+BvkP zm6tESNhoj`rG(PrtFYN%nX`AsQfSsAi&|*R%$Djm(%%i4|m<> zBr>7X_U;d}G>uZJkq;J)WR}|BdEKC(Xvqzn`Y`~&^)(Cm{PabReetVoSXHN414Ti0 z6IsEc(aiGZ4GB;}iED9cztROjRe1?j!Dyq!@3aBjL$R7}o8)4&- zEJp-H82jKiN*=D^m1piZlyg*+;;1Oa8yw}*g<&g8C3A+cSUU$#uLPhl@-wIenkd9p zM4_BRYuZM~N7JeMo(S^n{u4a6eGPqXUuNDL9OcsQ!?d})xh-9^aXp8&v{C@nt$&pH zWd*EQ7D7aU(h;Q)(NnP~M5W@#?om{16Q1AEOrP6_+Y`hy6rgYCZjOEGpM)1NTPni* zY6nm5-Ok8};>4FauKRqm!lq*X{tv0#0XHtK_ly8sH2+Jdx->nyzl&1u z9HXc(nG+@|nHqXB6MNr2!oYwJ&z=qu2TfKf5i`uDoj-_EU3a8(O zjbt{VinJtaS85k;}`07a(UpJ1@rwe2{ z(gelci^WDPqyWFxM1MToEjn zI+MbFH{2rc@smGvMfa9m>P*0i-raQnJ9i~Zbvf@e|KCghQ^3Cl0I!Y%Ba4GY_W%F@ M07*qoM6N<$f^Xa4UjP6A literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Artículos/28x28/reservar.png b/Resources/Iconos/Artículos/28x28/reservar.png new file mode 100644 index 0000000000000000000000000000000000000000..06ba9c55da3326003e5d08e7d978bf1eb8dc0ef9 GIT binary patch literal 661 zcmV;G0&4wz@%5w(33+yDRoAY({UO#lFHi~s<1XaE55!2ke-1^@tN zi2wlk_y7P%aR2}ul(R1~hX4Qq3rR#lRCwC7mOp3{aTLct*94N)U1^=fgGwWm#;FB6 z6&G3^hy(<|ZZ{O7*d>&PmO?2MrC?oL3erGu@DCwGiFUMsIEMp;``zV|=aQsn zbGh?O{lXjW_kHhu-|yXf$7v$M|3n<%X!*i*;4r{%K8)9MjiN6jB7A#tUXI0wrBuKf!PFQ@lSl9Krh&Ag0hLs2MTzD zO>?lqFg{ek8|>GDFg{4Ywl~>&cWtO+7#}7uzrD0_IBXhb$9cTHwDLTNAF43Q9x(H9 zz|L$BlCx7By`KJ~*xaiQS}HG6&1$`~vA{Vuo4#}}d8yV$zp>UgfV=k|pr!IMT;TL5 z`te<4mJ6&sx9n#RUNLTV+V3dANR#%=dk?^d|w> z-K#(%-G7d>2g$_+3dU9DCS#$MmuhXaR9+(O0qiq38Kd|a99M8$!FC0w)iqaeTu?38 zdHLn!9q746Q3oxkA{|yU-D`W3*DLR-mklPS4U!jUP%W?=A$Uwf;H|t~HUOxXjec@v zcSaNNw&lv50{|v&9`uu|)`&N-9Ko^$%MpH5-T=_}@Pc1fho7p0}k00000NkvXXu0mjfUR)s= literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Asientos/16x16/Cerrar.png b/Resources/Iconos/Asientos/16x16/Cerrar.png new file mode 100644 index 0000000000000000000000000000000000000000..e0a2644117a8712bf0c73d2d31bc410ca2eedce2 GIT binary patch literal 580 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 C)b3vZ literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Asientos/16x16/Tick.png b/Resources/Iconos/Asientos/16x16/Tick.png new file mode 100644 index 0000000000000000000000000000000000000000..5d813a49cfbc355756b0f09b110a95cab03d7abe GIT binary patch literal 351 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`oCO|{#S9GMLLkhTKK~L(6-&CK zuOkD)D#5L_B6om%g=CK)Uj~M}9tMVz3`(^nT37e{z4m13k##>FVdQ&MBb@0L+e>0{{R3 literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Asientos/24x24/Cerrar.png b/Resources/Iconos/Asientos/24x24/Cerrar.png new file mode 100644 index 0000000000000000000000000000000000000000..f421f369b9470672c41648296a41fa03a8208d88 GIT binary patch literal 1168 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 literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Asientos/28x28/Thumbs.db b/Resources/Iconos/Asientos/28x28/Thumbs.db new file mode 100644 index 0000000000000000000000000000000000000000..096feb0a239ab1aa157b0546eb6d8a0a4101ecd5 GIT binary patch literal 9216 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 QJOBUy07*qoM6N<$f;7KEUjP6A literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Contactos/16x16/Contact-Add.png b/Resources/Iconos/Contactos/16x16/Contact-Add.png new file mode 100644 index 0000000000000000000000000000000000000000..28bd71cedf5d77ba3a44be03baaea168133d4327 GIT binary patch literal 682 zcmV;b0#*HqP)z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ;AW1|)RCwB?lRaotQ5c4wo2DUY0{u4@sS1i{3qlvQ zQ$rCa(M53*(xDhp2Q6Y9#6_r+2(1utiP}X`v>+%BYKAIUqb#JbN8aLCsI zKrZ=#?A#0hp7ve1Te|?z`m_>6H;fXj1Xwr!m>5A{5hRjJBr*&192=o+TQ>l~pdZ~Z zNM01ya-0O%j|aqH@$p6+cIG27EdIsZ0id;ohfoEu1U@poThEBMlxG4jU+? zuuKzg+a82eNNIBZpa9^}jY!2}?Etl|W?U`ZK_oWC@^S*^e}BG>jb2s_ z$(iFlDAPhng=tzuXX9nS)VX(zJ`Pv?1LKis)t()o_virsD$TMi{ztzC0R8gz@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ;8c9S!RCwB?lR-$6VI0PPn{#b`1J|6HFeB+y2Pp*0 zOYIgxbXsIV9fEFk$U{npim<2%IyC5@c@TvP4>`n$h!Tq=vzFP^6%iTK*G$LU+_!!2 z`+Xgj-yBhg_QDJA;eCGp=MT?gGfk6njwA9kRu;hla3Hu1fK1{I>G>G|JPlh>YIj&4 z4bwyj16@e#?mc{_09Y0Om8OcC)a7sNITWUTODjSeboS@h%(b!E{;cRg>KWA7 zJ(7tuQi7+-h17kF-aSdEV**`B&V@h-10|>c(B1w306TyoGHA(pTuvvozG^nsRMSxB z2e9m390Vn(P{G*s@&^w+H+t+UYD4LL0x?dx{wHAa8OeizBa|e)ByHq zaTz;6rMm{VzZFf>(6lUhO(Ub}cmlf+!r;Rlg{J*snjM{dPrCug^{rU}Anx@uwwxl7 z%AuyRjHM-?T`o(k#z#=&BlPt2&@%J2)WK^t%K4W!xsmIbRm(3i7q6DVKP1Uu@I@D zC-2SO&5iWmAGPRL&z`W}9hbZR+JoMKNC9x+O8CFaWGlDMzXkx;whjAovCYT;0000< KMNUMnLSTZLU@IB` literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Contactos/16x16/Contact.png b/Resources/Iconos/Contactos/16x16/Contact.png new file mode 100644 index 0000000000000000000000000000000000000000..00e503ff43b1ebad479cdeeec52c4a21c24affc9 GIT binary patch literal 625 zcmV-%0*?KOP)z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ-=Sf6CRCwB?lRIcrVHC%Ixk)a$Nf1+8L-AEmL@Nj` zYNv{bF5*-X2L~qybx`p&sNm97u#2m9Q7Tk%v6B(ISfdt0no1B#1-T}sq0QqksK=$73?`t~&ojpw11 zK`PyhW2dh*0KdfFXU3>5OWa%mcjX(yr^e{tK7`VS8{_r1e|-#CZ(0ttEaRr1P|TIk z8lvG4TK155e1VbcGf1VmJwk_r$*Hy$j4C6Fi-c^Ou;buIvn~`Qzffoj?oI$$s}W?t zY6F0uuoJ_!YT!X#YCL0z_wPq4jZ%iI$8|H8O7rq{Lumm7oeem>LkJ-dqDox|%0d#| ze6YiIGncw^3ILzi_wr?BnO(-FE^8zOYzl?g`WLZOzX9I6AG!1PK85N6XX8gO((ovs zAp7(@>77}WGTgfNqGSFC_HJweCQ{G%QK%q#0z52EgC8n=7Tf%L7#!U}^3ohP&mCQD zrQsy`DboUE^7HsA7Iq{;$*F)3>}mu{1ObpzGx}g^Z3oHBEK5r+eEoA(W3f23y5i!Q zVYKm(N@I*iYChWn%wB%S_+(z@%5w(33+yDRoAY({UO#lFHi~s<1XaE55!2ke-1^@tN zi2wlk_y7P%aR2}ul(R1~hX4Qp=}AOERCwB?lRaotQ5c4w+}mDzlOU$HNtGIi@D1mE&U?O}h%tsvPS^8SiyaZV08Sm<2SBy3fR|eWAijMsvHpYMMQsdH zYJ^l_oH%>E0r)Hao}8do5#$Rc^1r?@d}e}yT|-Ev8Jn!Pyc=QAded~EM3wyF6Uqe- zr63;dL5W^wACEF}BZ-iT+at6&n4W3*f|gbMa*iIyA?mu=MzL{2H^tATP%u6PV68?s zgH{UwY@%)gClY{xx>OjW**b6tAr(?;uANk2E~Mh+>xR+-=yo^b_6_0tK7LT69{5y! zL44bhHrrt?R9FowEMjptb6$l)B_Lm^G3P1#(xx@VLaO#Q=I7t@?(R5Vu}<#%PK2eg zA1?9q(;8+j{vSTDr3uJPJ)`vFE4_h3`B5612>rDR_KrU8?b*-8^gK5& z9A9ClR3LXnb1(AcW%1gPHXmWK&62R;qkiV^kA~7(rcf z>D(|%8-!G7ZOD9BZUQc67MPr#U3cE!rZWHDg=43${P!|NI$h^K0|0zR8_R68oOS>J N002ovPDHLkV1leH4Br3% literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Contactos/16x16/Contact3.png b/Resources/Iconos/Contactos/16x16/Contact3.png new file mode 100644 index 0000000000000000000000000000000000000000..38b7fcdd1ad635efbd356a0bb2164bbc39f3011c GIT binary patch literal 641 zcmV-{0)G98P)z@%5w(33+yDRoAY({UO#lFHi~s<1XaE55!2ke-1^@tN zi2wlk_y7P%aR2}ul(R1~hX4Qp_en%SRCwB?lRs!vQ5eO4@8u=-rNL^g+JZtw9PA*t zsGTZya1lYMNC#IZb@A__gNv&}7dtqVI#?WPh=T#K5iLrog4X!IqESkknx<*e_g?P3 z?>Z!XO`tlM3kSa8JLfz1p8FYEYnnM$d?MYHf(3B=a1Q|G+-pji_W;Cp?xl6>{-Dv< z8Yz8*Q~{0-UaktPlIN#}aEgL#E>CuOj=obvbnWg%Dxa&PmAbhG-R8432TGL5rpGAc zN+<=fXbVcTle%}7fh$u8sklBsgM;y8-4%RU#w}!MiA0FnHX*IpxFO8Kk93Y7uR)hJ%@_t zQg#Kg9fulh2enYaYnZFWWJf;}Zh>6UBU^NM>p-Rh7ZwUU1rCo{4KDSfWpN;KquaNo9S9uJfp_FcUTGt*Hi2PamzD{ylmQSzar1U^T?ZDx%U7Sl z{RZFDL4#8R(Oq~I$+^>gC|@I_!uK^ZAHS>#ERGB^I-dILe}6tb^Y2|aa`M7|FO$*i bI{z5}aQP(t;lZ-C00000NkvXXu0mjfIfxVI literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Contactos/16x16/Contact4.png b/Resources/Iconos/Contactos/16x16/Contact4.png new file mode 100644 index 0000000000000000000000000000000000000000..0c12c3d8c112505952c56ea9402bc55fc675d7fc GIT binary patch literal 674 zcmV;T0$u%yP)z@%5w(33+yDRoAY({UO#lFHi~s<1XaE55!2ke-1^@tN zi2wlk_y7P%aR2}ul(R1~hX4Qq7)eAyRCwB?lTAoeVHAd+d+&^nWYS<*Nn{Cug;oS= zKN~Z$U7K>@CWtl#)kbLDvW;!}-Lz{{nOTl_ogZc6AjnH#x@m)KycS z+(4qpBFrW6auck$E>4-@W@pK73f2I=FD>9W5!Jgkk#%#dxEVC^S@yDo#zIuM(Bu(` zK}3mE>3zEjumNV5()16G@@Z@mKa;^k0pn9&8J(KN7e&MnX}($26n>$m{tV%WGX2UY zJTk|!=kw)7oGlecNt9QjqKGPD6cvN06awOd9`%d6F>ac$afXDqk-GWqnylIZk`P5=M^ literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Contactos/16x16/Currency.png b/Resources/Iconos/Contactos/16x16/Currency.png new file mode 100644 index 0000000000000000000000000000000000000000..5ecaee85c05860c0f008fce714e9e1081cdbab45 GIT binary patch literal 477 zcmV<30V4j1P)z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ-Q%OWYRCwB~ld(%eQ5431FAW-l2x^feC>mM<4WWh{ zB6KK%0=MM3MSp>-Yg5_eqtP-NjUaj;lugTxR6MzC0Z>{~)A8PS3Ov&jGl_j*T=@H}kS#S(%~$H8`8jP){^wF0SR zgkT%Ew`lkzM)c_y(b7f8Z&oY-%Jg<~;GwmiI(X?OH;H%V&d1p(u3!m4h@C$yv96Z3 z5Lm73`Uug<6EFRp08=NUezWbms)e?HO9*TsSiPFY5`z8bVIO$Pm@;VhCqZVd z0K^nPe)*D^o`s1p&Rw3GS;H_J9Oe?#%o+>g7&t=fX1|&XZ&f~KO0O@Kj`w<%}Oz@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ0w&Y^93OxuVzN!{49t4pdidRu=d$7<#MTmk>tOOK#D?%x#5EG*qlIFde z&1Pq2cV_23o(iqs>38_}Za=~QIQ!#Qdz8+;vr%E`RM^UwEB+eobbh0~GBMd1KX>t` zce0E3`{LgC`o@jibbj%(OsDZ?xu_Kok+6eXY&tW{)i#-1{xGFA(H!Z}t_;WeruyGqo)(Hl z`f?Z)*=pv|GaI;JNLDq`<=3gUcCly*s&-1^3GfBPn-B>^>Vma;La{cgC4|iS+BmU% z9+?qjsh1!*jT0!e+!)`o!JPpy4Q>J9JVG{V;ng-vO38Fs&#CxZFHluiNYn&b^dY2M zw7qd?r{LNU{sv+V!WfA)bZH-HkfMkfFl|VR_~9AII)wRO5t%Q*p8@MJa36)}5Jc}I zMeB5`|1cm%NV*5N72k1xCU%Y?2}ojybdVrTXCeLrq(1PzfglI=aYVdEX+Wls3=-#d zTvy5+UEjABsz<#r60|+gGGGlsX&9J??H9p{z^_5eK~5sNyAPvhM?>S_!OK#+XiWBX z_5LfGO|UI6O)z7G)s5JC5>`(@!vxbp@_h`&AjfDD7{ilOZyR@{`3w8~{^9Z~5B2mf z8J?FawvA-g>2mu~R$oGPn&?45hpMo*ua|uTJ5!$>*OOE|^T3%7ymx1p(iRt;?Z$C0 zY^b^763*7cXc?8fuF;V-QY}|-!hHT}W2^AV^tWZ_fxtbEd@y%Za@@C+jCV3HV^mE= r>NF~en|#+SNEiP6a&+N-|GxnMyhnMgx*9fW00000NkvXXu0mjfJ*B*w literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Contactos/16x16/Lock.png b/Resources/Iconos/Contactos/16x16/Lock.png new file mode 100644 index 0000000000000000000000000000000000000000..5b2430078fb1646efb70cce750d3f2a182f8cdb1 GIT binary patch literal 497 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 X#K-#sb$5f>((StHmX7@z_1^yj@K$GN literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Contactos/16x16/Unlock.png b/Resources/Iconos/Contactos/16x16/Unlock.png new file mode 100644 index 0000000000000000000000000000000000000000..74c6a4865c79ed0ce9ca4722f9554bb799325434 GIT binary patch literal 515 zcmV+e0{s1nP)z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ-c}YY;RCwB?Qo%|BQ4~F6Dm)2Xx=mU|n{wkonA=(e zeS#RmEbRvhg<@zGgfbhUT^~?EZGuLLu{H&XZZfDknpkA{f6xk%^L9*Yhl2KFWFab`ZrjVf}D3=P9+y)*vV3)1P5+Y$HrjH>+!c4rskN^PPZf6B9 zc-)Dj?F9gU-LJFnaqv11Vj2Se2!V)D%m$*q*$+*av8EE4EhffxI%QsgKd5Uk4&XRN1-(4OA8n0h*X z{RQXC*?b)Ukj>Y**y71vxuK<7(^#zvMhGn+L8hD-4 zeNgxL#T)>6a}ZZ66BfyAF;S5vZQA9Dgqiqdk^Y0v0RU`4`B&RzKSKZj002ovPDHLk FV1mtA(hdLs literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Contactos/16x16/User.png b/Resources/Iconos/Contactos/16x16/User.png new file mode 100644 index 0000000000000000000000000000000000000000..ee6f2a7b82fdb6371b42f0983eb8b346852c8c0a GIT binary patch literal 768 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 literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Contactos/16x16/User3.png b/Resources/Iconos/Contactos/16x16/User3.png new file mode 100644 index 0000000000000000000000000000000000000000..6a5b5ce712089d994c9da2f1a8a31e7d9acafcaf GIT binary patch literal 784 zcmV+r1MmEaP)z@%5w(33+yDRoAY({UO#lFHi~s<1XaE55!2ke-1^@tN zi2wlk_y7P%aR2}ul(R1~hX4QqhDk(0RCwBal0RruQ5eO~eR;1*(a$LBvG_2SITXbr7Towu4Kj3J$ekD}tbdt4k-V7AM^bbAe*mxV3^WQAJhm)bb6gKKpQ7SY zXc~$3^)!zGh}8uk*>KAByf(8`LD8&Wd9{LgtQnckHY5{~-fSjuawkCFK6JLGddvz1 z4+v7p1kRl30+9h2^^u5lkkfsu`Lw@@ zOCMWP2`;5D06i!-mhD>_m)u#MkzR@2si`h9CJ&><)0>9 zs9z$0`GvK+W!u@{)CXgKL1x)z&)zMK0VwX=CtD8z0MUn2EeX5(Y109Dc~nl4I4l%B zf(PQfs+!qZ;^uB`Ox~Z{6ObI9OeOQFnQE-7-)rr_?Y=y&^r!G*h2TjpjhMNKMr+Mc z{^yH@SC6K5mDv7WjRYdpkEjBK#Q54_l#>J#g*bF+0a8KZT0G3UpT|279&^@znE!NO z*lbV>7!1K+_%*mLF#a_PVtX)X4I$1D3Ia5^S|)mA;Owph8e_sx9t_t(MAM-W0a0_H z1py4#L4#+*sJYN-4I#=}b^(IM(y*$D(Xby%6QzjGd?;N9n1I2n2y+`DSz@kSoUbl_ znA!6R>2$i4cV&Bx_U;~NO)(;cCX~+uMytfxw2eZ39YDTRDp^~eKLY^i(@9Qp&2CEo O0000z@%5w(33+yDRoAY({UO#lFHi~s<1XaE55!2ke-1^@tN zi2wlk_y7P%aR2}ul(R1~hX4Qq3Q0skRCwB?lRHe4VHAd+|NGmDEya{pDmF!oPyz!n zG0~Vfsd1Ir#l>COU7T4+3@*k+~uWZy$|OsZ_tW1gy=^9N(UMe6hM?Q867%O%U(tCXs6A&BNOm zTi<$GTG(7!pz1pKLZBZ?bF4o{Utbrs?Fv)RW+|$g~N14|m|%F6NGl@A-rRjJiQu>8$~!%_1ddjo$tY@n{>K zbddj1;u2A!NPDcu)@`LwU0%}hej}8YpoRWcON|FNs(GN)yeikJnEZ==~ffHw% zTWGxgeARDQ#DWOzW}0Luzp z89W$ql|Vg_1l?8lPdg*B@VOtlD~sR;63U?Wj}wf@5LewHA2O&R-gnDx4DmTe^A=0VID%;wl4tEwnW*0ON#Dwy-RVq zA0me{z9(2D3O`%AdszG2sH+*xb%707*qo IM6N<$g6zEA&Hw-a literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Contactos/24x24/Box-Open-2.png b/Resources/Iconos/Contactos/24x24/Box-Open-2.png new file mode 100644 index 0000000000000000000000000000000000000000..99594467ca3eccbbd41a662af6c6142bc6607006 GIT binary patch literal 700 zcmV;t0z>_YP)z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ;GD$>1RCwC7*1u~LVI0TtcaB_ACx1{OIA_yA7op-H zQla$+f!3j51_ifF{u^3omyQ(&9UOFR=+xNKfP&aAE)j8Rkdnl^B=u9 zauIUy9LL=~ug~}Uz&%{T_kCu0B%&U!uVj3HpC?sJe=hifKR6AF>|z>SUX{B;HyMTB zy}!uz_FIE%N@1bb zmN5yh)oN4WN-4aK$D`as3JdtgBz!a=4z85Ks@Z5AjKhTx|Am+KOKg=%BuDY}k6*Ql zJC23x*uBxV=!oX{$L2%X;N(}8j_hdokMm3VcTiZsAI1NL zT*s#4*m%kv-rLx1(r7feR6io0yFs(j((q!j*y|uJ?m9M(b&6x1va#FbnzaYOA2qMx zw~cSw5+?zky?8m*=Rd%gFILzgOKHCtifdcN=2QIU?@X+KTX$}9xc8aNmCLkR4m%dHz;S-%00a3VcXqsUc*BJ;^0E)9SG_1 z=KF;J9@wtq;-2yVNTp2drr`DQxllY9Fa-`!t=1y(z!GhKN&xBp7*kHFf1QGZ<3=P7 ikeKyfg~5!EzXJen(|6P?U=G~?0000z@%5w(33+yDRoAY({UO#lFHi~s<1XaE55!2ke-1^@tN zi2wlk_y7P%aR2}ul(R1~hX4Qrzez+vRCwC7mR)EZWfX>=ncdCLrb(M-HH{(CYLk*+ zOYx?}LWyaW79of<6+~LZ6fc5;Afi?T(cp!GS1AOO8@&q}YfuS=q_G8qp^Xr8Be-D# zfU2SjqPjj7K@`Ll1Vvm$R1pzeQA9NV6%j;))92r#t>q%YjfkpXuf(|hT_1m3{hHNP zi$v*e8d{&_(1{lamQ;97JcqhIR&Smg|BIqE%Q#7HebtSOe?vHFW35^^%ZpsOcpWP? z#}m)L1A$^h1qD9-Hsnjq`C}`E03ynr@hdD}`w}DV5KE=843qG~HIyyh<%j;yIM~uo z*`6jZYIyxrI!Buqxwwk!WmN#6s?6WIK`dqCm?nWeRXkc>%l`cj5?}s{!An&j0CplqQ9~U~O?#;<4^viRlC)N-d0;088fvi}$<@HfMfvIp zJ6C8`ToH6bu?sU0C6R~|DKXjmPzC8^3Tq{WlXl3OkoY@6l?HNZT2qThjjJ1-i$8#f zvNS)-l6{B0^%26M64G{>fT>uk31nB}iLB`GE|f>*bU=)uhmFXc2-kSybDp~?N^>&m+0EXa|PXy!X^NB^cS3PF-4gmA*+h=drC!o2T4<~NmBED zoFDgH;;FW?h{8ubmwhwneDRncMc}AlyII1aAUYKy@jC=9A#J#%vRO{{%yE)Am>C7& zi&MF?6V*NWqN}H<0svQ(WG2IoU=b38A}fSx8HlNf3+3&XiIzUczUEJej=cfEV)SQ- zM(G==r}skZrYt7j^r2|i`=^;6pTvnJz{wyA1WY7QM0KPCMtbRbx4VFn3mhZ{7US`0Trru%O547L7-<~|y^+hwv1QZ0Pdl?XGSKfw4{&CyL&kRhw)`^y=C!sjtG};> P00000NkvXXu0mjfVN&&n literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Contactos/24x24/Contact-Add.png b/Resources/Iconos/Contactos/24x24/Contact-Add.png new file mode 100644 index 0000000000000000000000000000000000000000..5aefd12150170627ea465fe6ddcd60218a8c565d GIT binary patch literal 1009 zcmVz@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ z42Otz(kX?as0ef72X!jSL@UBjL6nLU83SJjG8jVDFCt8+O!r|Q+$bU)wbRLTFJ)Wf zOq<2NB+ZiCm-9S+sJ%2M(c#tu7Y@&T&i{YT`E#D5j4>#sxMbUc3H?DrzzCPocJJO& zcXn9`8kr3+^xZM@e}W(UwCg|HrHnCreehTFK+nzL|G=Fgd*nlA|2U0^p>555bgX-{ z4o5wyYTA;YpXYqB$oXQCsX~E6gU1&t_^0KL?m}|om$d^ z-kD+DlX zV*-FH5;0HU!dyz-dWi*{hK1 z97Y7KH9-&{K|s0cbLHy0Lcqn=Ec#2qWeGuz$jS6=*r`r@UvOO)&-3s-56^S?v*M8M z+;CCgO$h)B=`K!)X0Gf~uDFycRn8P$vZ?FwS`!xq9_S`58b0?uJ4W9lGjp6x-Ws~w zZy;NoVSi?+4=ET%*h-hAUrngQL5#4yuu8y~pvJ$xS9(JS!B@rCE1w^4d8>{S4 zD$Rlp=v>`Jpfx-99B5d<(+}TKPte!VNBW^OdqzHCbo@umw2x7M0i!`{MJg5L&5a*% zOZ%;eXkL0^W7Ev*2m-BHyYeP>^zEz*T72A^4OuhrnmK3|bSdC972Lgf+p?@oWsF(Y foxJQz|E~c6GQwz@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZsca%$YOeL)ta#>{flqgWuB}=6t{Zf4=jbb4KwzkL3)NWsYSR&;bs9KfEk; zYH8Z2=t~C07mhVW`q;ZnpBqI=kLq=IvF4_Sd;lq3r1X%|#c|zB)1r*N#U}ZEyBxImY+Ke9U;p(+piq3c6 zr<6D!y)nwKCdkxed4a;kF{D+%&~(C~Fu{O>f&?RB4BbFV2O(U*L)TRFa021TqT}|v7u_HJ_G7L)ZlZ2m z#Xx3}v*S<~u&;C<7*%mJy%y;>*j52y+c-iX9f$dX;HuS|eTzDBa087^_h6bPy}Lgv zvbrvPL5V;#ek*!xJwiw<%fhy8gl%Kn78e!_;_J8g;G4F;$Em)XNhXt+rb(-wpy9W3 zmAfbxzk#vj57ZSb3_OG*NY4u{#MTiHMSO5ludp$3p5fF}Jkz1_#aDwku3P@7=uaKy z#i4g-pE^R{jLk&w8iw5%-3vMPqmwZL7x+1Qf@9++ zQ7{NZLQGfZ`EaBMD_Bi_o4={B42;QW?QveS<7odjg*XHOs?5|Eu_O0E${sOE<1poj507*qoM6N<$f}ZK<#sB~S literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Contactos/24x24/Contact.png b/Resources/Iconos/Contactos/24x24/Contact.png new file mode 100644 index 0000000000000000000000000000000000000000..3272bfdd30897592270559125acac1c3e8356a23 GIT binary patch literal 922 zcmV;L17-Y)P)z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ<5J^NqRCwCdmP=?{WfaGMckUxI_v$b;rH!3R(9#4g z6vQH;siuk&6$?Tih^U|_g7pEVEfgW5E=m_Zp_}4H7lKeBQtiTx5JXa9s};4Sp_)-A z9cq$hdNXq$-}ycl)nSI2!GO%dv$`K2=l}bkb2#^2%NRp1BSVj)=Ku%bv#);YNuRcl z-eNgThsK497bu^8m&HFWAY$m>_%MUFKGr56q7gBOXq47}pRYbY`1k>~j~>D4M6R59 zAF0e>mLsawkjmUg#9}kFW!H+tMRaS6nxpj1LE`c(A|7d)Vzi5@Ei*mwCVqY`>xb@X zh#&koZOXI&8?br#fqG}a@}*N$FP5k+MOa1wuqq!ANW$nuZZoeL88kT5wzAQr4Xg4MJd;=ySwX9 zo5h=l+_Gr-;_WzvVbWBHw?vY zXkLB$c*hNX>B-S{!0b|qPkxx-x5Z1;^A5)s%Ji=p;a5-i&I<9e1tu#e(Ub4+#FnSI zAwS6Yo`)LFn}?q&X$O2?Im7AFk65^PL5{`#kPpuvBlc2~ydkR`EZgJrnJ*v%`$ooj z z(WwuZp7|CtpJFV)fYG3}MWNvF+P3%DJa8K#npd9M*423%Kxxg;>YF(iwkU3+`-$+Z6We-(cX05nT-HAO?6i~s-t07*qoM6N<$f|UogdH?_b literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Contactos/24x24/Contact2.png b/Resources/Iconos/Contactos/24x24/Contact2.png new file mode 100644 index 0000000000000000000000000000000000000000..4a64469bd8b17d88e670b027e6aceba45514c7a7 GIT binary patch literal 924 zcmV;N17rM&P)z@%5w(33+yDRoAY({UO#lFHi~s<1XaE55!2ke-1^@tN zi2wlk_y7P%aR2}ul(R1~hX4Qr5=lfsRCwCdmR)EZRTRg6voo{qPU4!RVl)XB6cec^ zEff_?aT~Cx#ekswprQ|AQ4|#lEd-&U7NjU5LLU@-@u7a8peR;E5JDe9W55=K(6lAn zcC#x@)?GKdGjs2`*9Yse>+WJe_QCTsm*M<>|8vfqnQ^SO^fD6kIC>870KWd|*Pirg zD!a+?nhuQ{dTo{b>GvqDTtKvC!}u;XZrRr+AYu@)h#0gn*Uo=kKeGQYQ`zHqoyf(x z_mT1!P7{@u5R*hHg*869w#M97ZxUpN85@7F zAwGRVHDx-03%I*3?49^&{K5 z4z*cax&bny_u>sqptKN05pf)&;+Qy&xLWrao!GuE@vZ;>BUu*C7=Eus)ant{ddS5} zMB&P2TqnIQac#Ohrk7_C`&vy_9V&9>5olCV;#o#h>=WS?XIQHQW9V>YD$p_j28z0`q<6|St ze(({Cb3e191;-k!1rvdZ3>Vcmk@RnG y&Tir@d(bWEzlgU~FuD6+Pd=H>|NgJy&jA4XynS%^WT|EV0000z@%5w(33+yDRoAY({UO#lFHi~s<1XaE55!2ke-1^@tN zi2wlk_y7P%aR2}ul(R1~hX4Qr5lKWrRCwCdmR)EZRTRg6Gdq*rY|-&nm~N0|J1sUAX5ZB)Jbd!LHBH|EHtm@zAzn&j>b`KNd2MAh`i>E$9 zif3`lRZ68Y#ft|ql45l8_7#bXXk&}&WA@ly%!NFn9VAJD(-2!(=J?ldlkK^h^`m#! z#P@!h)Ma`=3P|zFeNk(`^86&F-)E_ms(8)9 zD59=4pt_VtOqDPdknPNp=?L*qlB%II<@0O)$C`Lzg*U%wbpB7gI9_hwqVDbt8M1^y zh*(RKD0q$_@CmZ(NvzZy?|G!ry^2HBVcX3hOb?L?`jKc6CxWVCtwpS*QcYNM&0TGW zS}$HdEB1Ew!7ap=ey@-u%Bg*lG?{1}4|k1~6uL~*K&A9Ql`#5^jK?0V)V zhI!+tTY2A&n|F$>O8*j>F8L)oEhNIky#?i5J`?KF)2y$<*__?KKpj| z^VWfHTUPMGQ+GB4&R?ofm|LPZohFPUG~G>csTYrcv{M2T5hey_l+(Y>A)>s#YwOAv zZLl}P+FlQ{SR%y76H7V_K`nl42;(y4xQrJln}!Cks=V{bcP%T}`Q#nVfQj2TFxZrw0~h_d_nd)hj00$5cxjr8;3?yXHp|Muo= xC*H6J?UMeBctZvEZhv)EKAGPC{;%TC0RZ~$d$Pw!ZQTF>002ovPDHLkV1gdLvB3ZU literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Contactos/24x24/Contact4.png b/Resources/Iconos/Contactos/24x24/Contact4.png new file mode 100644 index 0000000000000000000000000000000000000000..b9b58b3287e16e5cf22342369222f92c34829b5a GIT binary patch literal 1009 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 literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Contactos/28x28/Box-Open-2.png b/Resources/Iconos/Contactos/28x28/Box-Open-2.png new file mode 100644 index 0000000000000000000000000000000000000000..e88310c2f1c0f6876fd6cc8e207a107cd6e68a2d GIT binary patch literal 804 zcmV+<1Ka$GP)z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ;nn^@KRCwCl)=x+jQ5?YW?<`ZTf6zSm2M9brFiL9XpAKC^`xqD)uCM5b+R+WiAqkNVE`I1cgE>vb(c0^WLn} zVgJp#GqZmp4?P%Wc)WR^`TgF!-;840Hb>b49C1@B4Vb#wWdnTQ+O8XU5i2^X-@vEi z*w;eWnVx<{U~qyPZE?@BLQ15_9zsYgX|W#PU}We5zdAeZXf&$$rZkJ)Enu3a)rEER z_Aqf(Asi0do)NlX>2$g#Z0O=yI(mB$hQKrh;{yT++o~UyId`AL{ytJl*9a>`mdAvV zJ)o&H!o!%RX@%&75G5<%g^i62(bC;shQ0aPMl>2#)M_wI(~wdE%@rf_!wPGd$L3~c znVMNGOPw@QNIivcoGl}T(36OC0--07O2##fiysz=I<`ds;K56jxtUoWO~0!Pd$u5m ze~G(dyQglKSDGhdC+)w%2E_`St)s*~#?VuG0o!aHEiY|u*nuT5Q+pW6Jq*X$Ozxs5 zcF+^Q(UUs`%rJBSwzjqrW)TYo*2+K?;NHW@x~k%!SmDa>B^KtFxN~NQ*Bhg-JnxAC zsE_CN6^InxR4Z}1YVvaEJbKyypsBf$P+*Ov9M;&>fN2Q#2%T;0)`%yN$sA<2f+-MY zc1s9T0uXEn(m&7#>uYp%x4U8$i+44c6ge<>0)YO3KD3mh3|e)7ewfIC>M@m|+s&yO z!Ah9SrPK}m@$DzH)ByTnhHhs2g)E&ghpw)y^SNc1NF<_E1v)W3U7TDBtN0L(m&Vza z7eBdTo?t#z`3e27!x6rJ8}r0mzxcIc(g9Y&T)}^dc}7?(22_Q)uHo}#HP_wXf9LVi i>uN9n<-h;){xblz?>NN4i+L*m0000IP)z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ;?MXyIRCwC#mQ6@hQ5c4wJL4jMD$R{BEt-Cak_a18 zY$-vcLPMlcflvx9TGlFm3V+(PtXTw_P>^V0noPDDs70Z2nKVR{>INxJi&D^NymP;E zTa2SKspBN#BKqKR&*9v2p6|Qwd(OR@ZQE>RIN0L&58U)f1L*J%*;@((xKMU{Lkn19 zBciZGA&Zx#;@YARu@R*>f3;y52yl6zAZ3u)Hl_%sWkv6QUP>*E_ZLoJe4R?HFc$4a z!341Ddl`+Vo7My?rBF&CB9wQRU}k;6REiOAh`pUTm?BuBlAETzD7YrK`>SzG5Ig2pQ6A$_o9fm;`E8^2~JNHq>lAe}Q zf4L9calnJ%dFY8&`_KbN1mT`oO7NKMno$QAZXkU9N!3;GfaNO+}5U20^%prIccPd6bV%!fufHc^jFDeMP+0)hI3 z`4b@>bBC}{W1&6JqCk}d7=y(!{E+dCvOp)M2+c!KTwM!!ZU`9wgpHQ~%o@`Gobo$p ztvv~WGVBAT06d=_Cq2it5*XVKYn>h+hmK$vW4QCGF^n4kgpAomV}+L138!yMNW$NC zj&rx(tpvV$^FFC}rt)q=;0`TyzE#JkXTsd~T_Gx6R??Is&xTmc*LgnwH+mwm|sl zs-{ULQq?gofi6JXD6q1n&UX=f-ZjR1s;f_UgU0L%4S}eJnwHudecSA=C@wzK^%wd9 z^Z>Wp0^#9}RM^Ggv+L^D76@zWe(^U`zm$G4HcLO?cCrPufBw(=_W%q^%4FTviC6#t N002ovPDHLkV1m+ji0S|U literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Contactos/28x28/Lock.png b/Resources/Iconos/Contactos/28x28/Lock.png new file mode 100644 index 0000000000000000000000000000000000000000..079d7c565aa19065959578adf8d815efbca703d9 GIT binary patch literal 977 zcmV;?11|iDP)z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ;AZ+l|@@Pzbv<`OvyG`Ov!d^PQ-^9KlK_k>(2k>h`z1 zS6l1s{HdRsihxbf=&nBy%C6aNSRx+#}*L%#&cb;Sf*zhVo0Ks4NB*#nJbzr?<9c^UrF#%Jy1)Fzi^53=T?BGQu+>>IcZpDgVGy z)opBM)H~I>pay|(>6A(>2Q%Zp{^z7pS|ALhrDw*jXaB$w(E;xiJL_Gx@JqoAQ!qQf z%!9=>P91CJSXVuWVi>|;X4Jd4O;b*0=a>26Y81_|2+us?`|~~cn%zY(X&JBQczUq7 zhGtj*tUOC|e_;h_ZX?a~&d_r2uLXFj`w-2IbpUjLZ`d) z073uT0QC0w=xB1r$IPfV?jKmP?G%+r^d6XLd}U7y zMNzo%742&qnRBliF~RrEb>d}jZU4KQ_rC)G8j(!Uzr#kP00000NkvXXu0mjfFgem; literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Contactos/28x28/Thumbs.db b/Resources/Iconos/Contactos/28x28/Thumbs.db new file mode 100644 index 0000000000000000000000000000000000000000..89067f961a9b21c1ac914f0e4c8368f7eb87ed0c GIT binary patch literal 19456 zcmeI42V4}(n&_L1?K{AdFHY`R00zt}{uwiY5QC6_kb&TzDLLq$ z1EBz+1fc?<2B86=1p!|HfF6Vagb{=p1RswD^jSgJK-m8p#tHgdAlx84AP|uAAiN-a zAp9T#Ao%!yy8pTwFa|uqk01Cfv;Ys#_W^>yr|`!e3;4$TmRq8~6YbKGh7iN+J_5Yl zW0AiI%lw@)0;oI#WEk9molj0+Q4j)$>1piEaYyWtCfY$;4X#20Yk3+dVU2w!lw*? z(tjB<00~Wl(em8{_&x=n-YNL<;lAS*06KkbJ#Byhe5vo@GliQ5lO`f0#D76Y41P(- zNl1u^Nhrw3NXe-vsHi9@C@HCF80e^J=xHb^=~(FK8JU=wnW<=5*;ts^7?_xu@HZhK z0^<;qoFgGQ$3#s@&GZjD+y{W39PGomhzR%qLV5xsdIDTGz8@nX0dtGb@LwGPA(%%} zGV*g2l%PO8s38c5hzN;^@VN%1!@%nRF+B+bugqmq##?q|eBMm55oxc;`L9%eWHuhz z6_C5{^W+=_3o9EthoF$~1rbqs1w|!g71gWPw6t|}_4IGwF)=kWx3IK-;PBAV$=Su% z&;L}NT-uM3NcOG@9AmDkkP)i*T0Z))!B>h9_7`_%t= zbnM&s#N_uW_#$HI$MVYR&$V^r-u}Vi(J|`e6kjd^faov9`j?XZu3YqBxd@4giHOPY zW}C6<&1Zk@B55Uun5R63L^1E`?X|$ ztYA<6sgnIm!Txu--~bg70r>EU=mAaOZ0RTx^YWk|0?YI8Vak5Dk_a~TUbuVHCk9;t zG7pn?O(dTiMau-z(7uZ>cm|?0{_S=Z4p_W5`=NS9K7@CyZsiUjLL}jue(B!1C3P>k zh;<%Oq*QFH1R`1A6M`0=sJCU=pimI0EUvE~e_0nlmBycpK9TNd7B%0JT22zxuGWI& zZ*`?uIXB_!{#ze2ovQ!-Q+PFSDzijqo zt1$$l$PjgZDbQD^!sR&JQk^yH?9{PiO9GjC>sxO@5ej=`vCE)Z>^P%GL{ znz!0yS9FHwX*yih_0Y-<%^gqF?3UE^`>}(HwTp&qcR#976tQ1&pf`*mNej0zi5XsG zT~s&dnL9tC*&vRntxvH!%g(ykqD-j8c6C{kjlH)AP7{8lr%t*12m6Q2V%iyC|>EjqzX6#dT>$6CJXL$40yIS*+Qu1D=6RWVw zMzjh7TIYZ82*M_mel-FUVIP45JX!1ap~>h+z%OF=XkJXtV^vX*g`s%W?%>imzos3j z^jY_7@79$RKXkv{EH@Ql;$r9ek%S)aA3Wm<6iNmkOh#KeL&5zTup} z1)&aIw8-KYPqIKO?P0fk3%7%c3vPBnpJZjPMKDzZgkFWpfaAMz4MJ4F;!q3^k0E2{ z=^e`(xixCN7pC&^wKe5hn#8w0u;16Ec{`?+^XFewjSW5th~ zLaMjty^(mMd)#R|6xWh4}m5^d|)D&;J?yDfgS!`X_z-_~UQ;;6HL3{Mrr|=i=pZ@)4#-HI}YJK=jgHG`;-aq||FF(Hj#*gX#X!+AY z+27Ltv;X|F|NK9U4E|pKi8=o*Tx3nvWbC6)45?Wf(@==xIj?kihs+0gRvtg@og*qX z(PXa!WE~#Uo>8pf0Ca|p9Mb-7;&mjKDLlHBRh8=4KmrXFdH*2wW`}a3IGcmTM~7aG zo93il4^cZN$nE;q(YvrXJETHXaOFV5DKzSkzI4!`RJU3pSHGVj)9LBm(4_D)ZFBuM zBLz=;91G0y9*iDyH_wM*1xs^{${TXg<8Gf@9h7gDtX?=sx|@&5YB(^0*-uMqXa?Sx z#JF$Og!x<1Vs)zwdgmLUU7oSQnUyhZ{$Z}Z{w~??;@o>W^(fPsySfM7U%a8R7CD@- z+mWEbhYTxearc23B4ZO%a+bfxxtT;s3+0cv2s!v&J|E;r%b@IKzD2oz;=VVzr7C0{ z@=<0+dv``>QC&miewu!b>Pf=q%RlHY6Z1rwRi`~<+7G?9<}_;7eAxJ?{foC?-C(7QF`SRCpY5t2-)(`0 zmVRM-zAoexlwR_@)&o9{b@<;%`@8vRD4HIpOH63uJ8b4@qoI{C zB$837GFNE&2tL_i4dvuMNl{h)UhblpFgfJvH;kK_`uCLV6>#1k2+mrJz}b`oxB`No zzes||9)Dd8_-$?sIPI_E=POsi8I}+D!OPl%v#Y8sW*Xw|r-7~z5378&!jpFxm|JC{%oRs}J z|M_)Z_dkCAgMlE2QY8-5kEGWXoBfsu!>(*)f3BaAEhnPmG3AQ>$`m>{&T`{=sKFQj zL3+`hVQRW?K+>ev%c)DDo=cR49GKEGedTLK56U^ku3S1Getbi9!SQ9^{f2}O+yk^F zWGJ(hOjGw#(VOXWDLczUv;S zL2fKT~u8e-1PTsXjqM`8@E^{~q=D>clK`*Z#vBM}Gvm?&!LmnrLHVYIw3 zc=N56m$x#LlAkB5e0fHm{HfZvdjvJ4{!~2wy!4wD$KD6DgZD&lhn$cUu z0`WHj^nLCUUqrLM7f0QyzB#y8wduk8xSxz;Uh}32cVID=8S9|6SSo2g+H&Y%gmN;X z#Q{Tg1t|G3%@fJg-<>zrW2!V5GflDc-*&;Qb*jHv+SPnm^5x7XR46uk@{ozGU+Sd` z1=*_m-5tgkmB>5TpEzJoyZv(k8U+O-@R#6#m?*FpK%eR1fJj3*9FV?Iv|HNUCft+W z!$nY8^sJ^+Ape}H>8&i2zz1mo1pDp+3`BI~rhU8%v~aP-j_w_L$=Jmq28HdSTX}Z* zy@<*1VfM`HBj+Dd1h^A73=bv|YOltLFBgm8QE?Rq6q#o3 zJI4E08eC2^EYNqh%QB?v5^oszyxVtl!s+F&DQRKi6L?bnE#a+@#KL0In*wxO_9}n( z;6?~}XTa!}J)KgN8G<&x)lIUay58O9(7hoCiZHR`nVp(GE@eL}EiHEAHtJgw`l#`4 z5Hn&|l7!WCf~kHxj}%VeN8P{z-vq3M_41XF-0jap8_MI`8Rp!qzP-OFtlZ_e!hf*| zDMk7dE8BpoSX``d=J+t-u5iJlN=^GT{TZBpIo{O5>slJQJ-j;J=k4C!+`Xh=h1#H- zca~Hc?svhqEE<=*y7gp~#-?CgHePbdzLGY3hl?3TEHC zcH4Jy8pf>CHD4!)1LFLWHO*?rrC{PKlWqqA4XxErW-=stT5n8UL6f{E4iMBm37*Uj zEbY!$*_BH2r@pR@6`ZV6SX|BWd}~rspmoJ)`71IIII3 z`%ZO-2QxPt9tn9;&TeJt7ELn`G(Hs4`yt}S!(vz>kfrry)hp5pY+2lc^eIE#REsT% z1~1Qj+Bkdl;(l$?%xIq3cG260wQm^3Oby*VW1IciBMr;p!)qB`mWE?7b_#DLiF{jp zh)xoE-@k7|YLsEJOIa*(E~h(_?=2czQGM78U$VQTmc;#XrLCg3piVojyhql_P^db1 z=&Z$QF<(xKU+w885u~#{z%yPI8;OvxS-O>6b-pQGSAfS?^=(?V7zbeGB*B;BL#p!% z_M+^{p1VR--`FkK7egVK{dg$vVnw3FRfAzQUe5q;gjM_l#f+)DnDjlJz1f*~xRyv< z=10uJ=O=AQTfeEx6>w{`eB-NdlFG^nd1KqxNlT{b=*A-!(ZM`8E77n<@mS8C1 z%EP&8b1U z%Jub)CTkfQ+RoahYg`)FV0BeZF7E8vHM-r{d;xoBqr%eRZVD%vF@I#_C(WzoOWm40 zYGI4d>cfN}GOpj=sdHRBW;Z~$$qR?uRLtC&^G)ZtWS{hO(-9wyyN@uF)3HAbJ`i8J?-lR-?; z5R?!OAomMu>tXIK6(A)X>8!e?*0x3YWc#FCX0*b^BI`RQig8J-40* zWg`6a+b9n@9AG&Qxl(MI_S9_3 zHeKDNe+&+Cdw&YCTn@d8 z$ZQg?z9Dc@o9U$$4BM>OHM2$y3LtZq#?b6`N2I$RML2-&u!F_QDkz`JP}Tjyd{6?@>`B(>Cb>}# z_U-D$M@L^>*V~+MKu^dbJ*a#PQZf8ZRb5wx>vpKuq@Cd!1@1*_yW4w}?!4xOsp95~ zOn_{6L7C9|N{d<~S*N|a!mlx4j>^TGETjc4@4#34b!f6EjNZ6X2VH~Cp<*SS?wylJ z^U`03z+w#@QikqiU=_aTPKP=y5r7G^bsQv2yba1kGFPKs2uaa%FnZtc zokm|j7$-L=B~yU!gHzKhLk?pCnuU3^$oYvo+ z7DJYm`Vy+NH3MiNn+3?C=iQTXoyeMN%-_m7U+ihrN3Iy3Dsu#bD`;0_sxg{%_VaU$2Q@d9leLBpGBFb5R+nbDcBF6vz|on z#bQr1m%stXIqP8}`c7aA99$*)VjZM%b}XUp4=J&>GGWFUXTq0%71wO}Rs8Pkz?S#Y zJlUu3U)JTSiAoIf1~muD9|(*q<(NoK^C%*rm?%EHI&lfd0m1vo9ZW+9Y83|*%QYu?>O&S& zew~Y*)cbBVNnmCr^Vit)Oj^=;POjAL2panQhQvVHhif z*M6XUVyC4qoEma~(Zr_RHQv#vr%rV2Yp2EmFmN&CAO+F9YlNu<$91+MptAIqt>82+ z!?K58_jsd=>`Uy}z(O#54TV7!;TLx2owTuw>A+fxm0M(P>hz=GPOE- zUCXJt>dU}$@4}!r&{{Ps9B?J<7)vsR1CXbhzdK(z%~!%ktV0)?a6no|J*cuZ`Efvm z)V|Q1(~JvbbBF~83>SofL64y5@YLU*mn}hm@|0pJ3r=X^!#JQI4F`P4KFRQq_f()g za!iE&G-?M!S~RhmI=?&phU_??y^RA%hR~7!eAMVIC+N^89I#-3?r-FHm^+08N4Omu zM^Fs^`x5BGz(#D;*$$er76&XHLOZeSNapz@KZEHl8h4?|8(CJdSt|&#`Q~$c6t7jd zwg(>X0iBI1AJpGdu_!EEP`ctQ^08r2Al=xo0p8H7uyON_i)E2*^J&%40B-8n>iE0G z|84z#5nPY{XV&lktLOiJ?tlKaulqlL{(l>$jxs`W_=tTPp!0*#v!9&?jalTyqnbxF&vZFdd~tx%<+QzCpbQ{|p|rW)GFCE{5;B?XTu`e~yJ$88g;WLaTqOn6MmZDO+BlujE|XvbL|T8k8@Y#l2{E@p4H+;>b>g z8QN%&T4~9&Vz&z+6;)S2x+Vpiv$(2IT$1grC@~>Ia}>jLk66Q|D`v)r^y1`N7?ats zJu)!VjPKRu+skd6J0UF_4fB&%dx~$|?2xa5;{Lq_$luz33%GFj-_iafz$L~fAdw(Z zAkiQ(Ah95EAn_mxAc-JJAju#pAgLg~fTV%o?MX5~|0zf&NES#o$TN@}kX(@GATL1j zK=MHfKwg5p0(lKm2vP)641&MkpYFe=2L8Ai%%Aoz|JttSf4=@VY;8&C9Cgi^(V@Cv zJqxz#2f2H+ETPxiA5UeEOC6L|eH$cwUg+E(2~N}6COPYV_FuFpPMpqe(l_B_NTp5=>&%ke+`Q$IGEZsKOnVWU&Fek`WMb2> zQia3RgjT`gz%jiH!||;-#P~k8Jm`Fy4@F*$_UDaE@ls+3i>E&rXbYfSVxh7);3e}s zmIl^=!q}yLM(+2v+R%3u9zVAdXcnGsmhVFBB42H~3hy%YnS@!+lfAUV%A#$ExN5=q>B@yc=aW$Iu3^Z z-JT6pc4;4=KufA{tt5nNmI)j>&LBg=LI8mUdxQ~t&C`6qdgeIgz<4N z$H~aOk*J5nn&r~-UWK7%n-rZXSGhDbJQNcbL9WCDyvZ)&7_{kYT_*Ue0ui;OLld4r#IaR z)TVWBa@YLAtXCRYl#J^t9sQnvFK4*%{X>Gud4`weTWkW8Et7*}I^cR-z@2wUqQC_9 z0)zL@Z{0k#)BPbSB*~uT$m=b)SKjS)$?YD7WKol@3$a7#1mCLjx$0SNaW#a=XDL`b zj*GNc`;v#ZrPo(kf2Sc@i!)?^{@NML{rQHEoTW_Ck}0Kj>+#78Sn4Mp(NVnxsDmwZ zO)EKc#>>&7KkC`R8p@Xp4kSUg@1@jqB;uSS|h)xkKNWu2Sb zT4pTUq2opZ43d{`H|S1T`xHN2NUD&1@#OOU4$8qZ#`b`)1qXZ_KgI!&LP+M)YI0yJ zf2_`qVuPNaQKKJQs11+2dh!FTDaPW5jpR4phTY}ER)_o15|#pY7YG_%B2FnzDHjUR zX$1t(?}S}AKyRrkc>c&5<>>CsRM<79Z+{PK-CGtU?;iO=R;}3D$p7ADE;_B?mp5O6 zhVhTdT)xECsF|8sR=V9m%%tm2hFEWpO34n0++QR&PBh)Y$o(hu-+y-h{|~6x|4`&N z{d5Fg_xgd@VE7`;%K$Zw8iw5zNE>mN1rDeh6z& zWn(l=w#X!K($3!z?fZDtN%is2s;6~d7c>D&i)tycnGZCw;3!fo5|4P9evZ{=+f?Rr z!n8S2Oz)`4V}Y{1hmbRuWF@xyg%WdRddC}LIfllTUlY+C0%>5@{)kD#%PxTpsV0g7+|WOIW^{6ls{Pur_)1L^2WX5!7sjrG!`S9EH4&tg z9`Zr84&dr6B>pa5_=!p8Q-@3&b^+@Tq0@TAkGlz(t2>TlBK9F;2}}NG%B+3))J^7- zTM#(oH3x2szqLDPT2B1x#r!kO!~3b@h2EJmkI`9;>?S?C^|A}vgF?scpO=#fszG~k zR@&3VtKi0gV&)HM-OiR0q$^nwTsI$n(B6P#Fe0Wd>vE?mbK87v&rwv$ppr=T3!PXx zBsfYV`pt%t2G4s`a=FFYn9FgNnXPlIQR7gK-&(1aZ1;Pr02u;p0u^;yePkX4A>1Vu z3D4{4Z4y_Niuarhl0g~o>+5cP9jBk}1~)g)IR#|SeJqx38s08Ld|}S25So{RtUD#BGi(<5;C2qOZeb@(6xtpm+i7PGLi?AK54J?E38|l zlw^6gU-g_W@JGA;9E2WK?{cp!H%^+rqyiMP&3mP#)vBMkc4GxX-8|{n8q)$@lv;c0 zVq9Ms(AD2;8X90Fjt=G8y|ghrr}{!v?}Afy>0Ah#$kz;yQd`^i`z_RbOMMvwgYpfz z*JwKRYWH1;ckZBVdnE)J3R_+o<^aYUIhqYo~W7D&O`~cXqjnAM3>} zCt|Hwk|pUibiNP1=*#O`q4bPzJ}P*vkuAXEzxqt5F=%R8Je?(THcnYH=n^~G3b&W* zb}C9Z_!*WsF#7q*(~VOResM9~rFJ3{~&%Z4aBbw&)gYi!>j7_(UQaJ;eeyuBZ=EQD)cA7Jft0ip71pp@q|8@#BwA`p>!3fJ^Hp@4X}-F z3eMMh>@=zLD#7mh!wNJc0z>-fTpHd5W@}BV88PKLd?@rBpJ(aVq8~! z?~^wB^{$nDA}L#>5|$xRjGOPwdOX*Y5+0~0q2N^XjV18;O_}R)mNNXF8D9f6!YV)A zPHW^(uvlJJ-nS_ACHTfy40%WSMN zYaPLvr#R$v#r^{|SJgSpI;14%Q_rJ0dZhfE+$fgb_4wTKQ2E<{z4Pa{oc;P|k{%N* zw~-B-_0Q9U`XW3z(2tM`^NE`dV+y{n-x`$~P`!KpfMJ^XPKvPw!B=#E>%U1EZ6mFjggiqt?jo*jv<8*R3+L} z-9Hd|kTBXxb`s~7`W zuGS^J)~8Ft?F2Acx=j7RPkm5VsjoV4Fq60VGH3bnWNXRP*O8_oe7I=HY}|dI2I=G%ioN^JS*!Df zU4a=q&-t{Ypic7*C2aUjc;MkhWzE2Wz?tgR^TEHULX*R?&lm$Qn(fAZIGa*1kaOgz z4n3_;S-UmRkUo9sJ~S<5W&vFp!}i0hApEmtZO>$ad>d!4jY@rO+wQb;d9zN;j>Ocb zQ1ZcnH=oNdUlV^EOX3JFs5ovWU!r&Lege=pvTgK)#SoEzJ!i3gs%gQG&=ULP6u#G` z)ER155jru46^UEddKRoYSf_0Jo#nMDzXTd2tWC{UqaNx?HeUS! zjcCpqmB9hLA$KFd{Wwj_)8=kQdpB^aH_H_rZ6HkH-4k-)d^3;3Cr=)3;Qu4Ed-q`Z zcJAk64XIIBy9|8BrJZpX8hfBlD8XV9~-%_a$+)B5K)+{4`SIjC6_X;!&k# zUyySMlG7H+lb)5&(8_XUZ2%s6`+NMHjHj@6Nb>uA3P?LGStHp@JGWDIJKHdp#;N%! z>Ex}kmocO3GtEs2<_Aq_lRoLCROFuoxV#K+p>CbYuIG~@!wTYB4VQ94o&E2R8azxb z#Ux$k@3x!Y)Bjk_`T0FR)-w39Ys2_+O}bDa+FRv!p=;cOA^u+V@8qTZL_s6NpXxhD zuLJkXwCjU2Uf2ByQ+t*hB8@ywVAiGbcaqlqH1vJTwM}tS(91CjW2cEW2|A3lM+nD* zMmd%EUG0e$jFEZu$V-O#x#{nngYWcwMSF|i-H8Af{O)o5a*ljhfZ_OqRMKnJEh+bN$T**5ByG8c(H4g> zOWB(mM_G-Xjp6{guHvL*XMLHqAIX|RJHi+~$k`qgRSttPfBt@#QC{ns;V*pWmmoW) zDLR#=<23SLz^&oywm9IjLWxk6deZFN(3U}C+4K#gJZQR@xx`3ygP1(;b=SxD1yVHU z%5pq1Z#<0U$p@Q0qD&r)%CMp4CtZdi@rKa(x5OWs`{@>48%u7=HhCJ+eBt>;=@5^- z89#LMBvo5J=Q)n5GpV|>;OE-1l_s5<>57L&>`td@b2kbR>Kwfe$})GqroB6j`Gsd` zpSjH0=Xe6^U%yp3a9x&1V2-?3n;Z(AXcblWUw)t4^)a8TX;R{CqChsi$lkZC)z$Pn zW`dDFguE^jOWe1zS+fBqth(peNhjd0T^hBVikL31eT(t_2mX2jf=pF38aCtmzYLnF ze%YX_vl-MkgT}8L05cH&anIKp&-b=L!`W8N;~${8fXQlZh7wxbmV%TwZd}sm(ubk% z+pZ&9rB-pK*W5o(eS|4|v(jWhOKPr*`GSL|Y=x2hv72R)0m0+3rr2*Gwa-bXkID{` zI)ntD+aq-1`Y>8s;9HbFQHgdz1(k>D?DmvAFLt3{JEohH_+p^ADI1lhze^iHw)^(% zVPE$UeK6G33c4m(=^ko^-0A~|%Cyriibu%7m6^9xg4Few&D@aNFT>^cJZ`uJ)J?;` z>^sBl|HbvXO8b(TYdfoVip!z=70zLH@6sw$#Ry|g2TkJkn?>;q%OIy#{D6rD4p)$ z-1hwt-%|0>7%c)lpSM1Qk5!i3?;y9^%CKXQb6aSCZ_%GMsH>(99CrwkEMGXh{lVM# zP9RB|jk^D5FvOmKLk_mNHix01c%c&aMWj{B)n~rxK(oshZrjztpk~Aq>F)0B7`$6o z-S(xI#qcEqDW^)G8qsK*m5Iuz6s^&W$|`2emJKcU?Lf>kE}yO7X00vB_gV9{KKM4f zy+KP<*h?Hj>8hFdmb)O=CUX5a zieD&JI9AN6*AH9~&KCc~>)HB1nf(XBM#OC3bZV69;tnQO1qbv$dTZ@QJnq2l9ofIJ z7daS8<9(~yPegI+bAAeZif4|3Yy82)Db`VJft$0(hG=Ztoi~ioKNn%q$gQ>1d-5Q| zS<_KnZ2a|-okTd(9B_^b2 z^va0;#TKiJ@m2hdDHA_mXVLNAyY!3wc7H!n2TW6|{-DC1@ax&OS}{Yr(R|6U2ZM!CGrgf^OyC+H6gw6C`&B%y5 zQVisTMK=&MnL8%*wRxhNuGRw&fMEohU{?bBm)?D+s5K3rfSlgBabe_+%VYx9>_j>Wv@{z=0*B*U9bh|Y6T36w zhw=DswQg!Uxl2mJ*A)NYQrD}GY(v8PFqMe|BYJ0^i{B2#xJlg~j&84Wc89n=PcziDi(o1 zZ7-zFv)j!qw8>MMg^uNRpd&t-(Z<1O^fOFB`>8Z=7ML21HaL?+`yv~YC5(@a+TRVc z=s09eTQ=HOr(RgN((cOi1t_H)&VSN=G%Rn?s<8Xz#;Au-?h2wyCuKsfic2kB_6k$2 z^oNH65As*uq_U%6*!X4ePY9x^=*k?Bd~*#4=xR|D^I8GYcIX65bDJnX#3^?<`_kS9EE*g}mc;CXokhj)dm`wQ$ zt3>l0*{{)@;r1$Q!X-4`X4_bPr@iW)wF^draRq7x#latUc~Wt}HA=8w>rk~t4XY6q zQrR!Cq|4-|Ia{9|!?Ivm_r2+Fl^H*>3SR-MgfE1tdbnt&@P;Z52#2f$b!-k6yQr@A zZu$0%zza5S6*W9P7W{Vqr+RC<&ERy$_%BnvD!slv!Gj-hKq71r{Jmw+fe~z~v}QD( z2$d__vL0Xb|Uum6#%qnj6 X*hokPOBHVZXLhsx!=={$D=+>p1uKf- literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Contactos/28x28/Unlock.png b/Resources/Iconos/Contactos/28x28/Unlock.png new file mode 100644 index 0000000000000000000000000000000000000000..6ef3e1b0ec10e257cacbd5b5e9b7325df4d1c24a GIT binary patch literal 1028 zcmV+f1pE7mP)z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZxHsWZ8+b6ia3nYoirNB!W!oqNtbzkAO8zH>*BQj#5tqL3dFl<^C=YC8z3PJc*> zSa-U=!+%59VxiF~e)@6(J=s0){wzb;4;&akea)+OIepJv0yx@pu{*n6#G{Okd}}5C zUW@F+YZg{%MTXMeDT#{pr$hZ*}|>Mh)@6jgiPSgKv-B#sN&SY*E7emU@QMK_7M7*+Le30#(SvOq zo*rQNWGHtN*i-m}isE?n!@3i`rpGrZGvXVyr^1fS>A^uMY-jl9757QWb`?YX@M}1mYzJa&Vzj`MEU}gsf;d~G6t(H__jjlbIv+WNpcFct2WsdE zwgYgytBqE_vmjPBn4Ehz9#s3hor8L}VT;K}*rEg`y}7 yU!Wzv%~H9Wx0#@={~MNy{xAKn!@>U?{|o>JK49ly9q+^d0000z@%5w(33+yDRoAY({UO#lFHi~s<1XaE55!2ke-1^@tN zi2wlk_y7P%aR2}ul(R1~hX4Qsfk{L`RCwC#*2`;MMI6BK@60*pK9k&=+#5}7o7CDC z8{-Q_H-ayUBHeW5R%x}0D<8Phf1oJ15JXfESK`XYLQ(OFVzH8|PxUNgL+dV&c*0Nv? z2(UKaQt}FwOk2WKUrKICV~w>I#6_4PtYbO=3zq58xb7n)tS&S737IRgg;jI0ho97ub4Zy;(^5&7KeOjKmt-n2=i-Wt5ck z!ay4(WUi&#O(4m=xOip` z5e9Tu&0P~y!=t9#XYR|D1(TJ(@G^@eV0B^XczeslaPH+dNhwE#6#d-hvs&pBDp45E zYz!tc-*2Qqlsvr9p`yhnULM>UqRD0XgF;0d$h5^%6^0wl($L7j;{x%dNzG7}W{6z8 zQ6H&4QywVKIF4g}JJ5dujv5auBn6%F(^7y6bfud(1U*aMw}Y}OXo>=^Gs58Zv3tkI z#vXQEcc|a)6ZsKaH*eirAFEq~c|sss@cZJP13t8R8D;5mT17miPt(C#^^L^(F`7O* zO_jaX1|Jp&=^}P3r8Y@Nl7tCqlCo#-9`DH9k-Nh2%9*&WClz8HjD@e4t zTSaOx6AD#~S1Tf=VlACkhvhiEra3yuj$J#Lx^jwRbH~tuM)g!pD_u6yh>dF~@|UeO z#Vk+QRV*Qdv*J6ER7 zw7*ticy_+c*K^fypgR7d>l9Y3&HutKjbpS@*j|L_#mKOY>8zmoEwZRh;0J^{wUdoo z#Mrm#mOWY;N%j=7{UY`*K+4{13h^8dz+hf+N;-i`@_>L%*;WlhOKNP z>dYU=Rd8}caH9}FE(8IfBrF9v<8_z%K!GSL(ASrc>zFuLLjU@-TqtOR1Ub2#>U{?( zHmW#Y=bN7vxbgd$h`?{7iCJ6ufh1U_KH|LUy2Ic8Es#8iVhQK6D=0gXf|H$eglNT~ z8B7v|wFa9h(lpGxLhbuvq4>i&EA;=r^j{DDG5~?`Xx~x1yOaO`002ovPDHLkV1kx4 BXBhwh literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Cuentas/16x16/Book-Open.png b/Resources/Iconos/Cuentas/16x16/Book-Open.png new file mode 100644 index 0000000000000000000000000000000000000000..831137868dbedbaaa019cb5094735d3d5dec1233 GIT binary patch literal 447 zcmV;w0YLtVP)z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ-HAzH4RCwB?Q$0(>KoEUV^Kn7_33gXnXmPy?vAW_U z_y;T`orukWXJIKSsg(N*LAb(BI17J*SJ+!$X?8ceNycK&oI*a3JXn~WdGmO~?ifUb zHdsMR7yvMt&Pr_z4z`WDns)C;G?~t*3|0A^!+_vNL`3x?T;Du2jPY|q6B5I>RRBr7gEY%=yRRF# zP+%fk2q=ttfa_T3IA*m2E)*_a0l)%aA?VJv0GGIX-(0YAgq|uFU_xTJs}OUk57Q1} zCJ}V!a61-U#{?HvwS%8##$`cJX@;1|=4U)Qxhy4|U)?wVgTdnmu(9{Ivc9#9zdq}C pp%i|!+<~X#QXUb(XuHne0|4Qyxj?(yhGzf(002ovPDHLkV1j^au&Dq5 literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Cuentas/16x16/Books.png b/Resources/Iconos/Cuentas/16x16/Books.png new file mode 100644 index 0000000000000000000000000000000000000000..eaf0f6dd4745b7cf8b48c54ee112b669a8bc46bf GIT binary patch literal 633 zcmV-<0*3vGP)z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ-?@2^KRCwBylfP>dVHn3h7YcR}te_GHH)BRqiEF`Z zT8EA<;-C`#It(6^T#z4yIbUWeo^ zcWIWs)5F8_`P}!pdk?KO;bWR5ZJMP>b8705ev(Z@2Z2mFsST|)hG7KorK>xUq4$el zm`>#xpL`za7jh4Jg`dDQOFFl-s<$ftw1503=ayFW#*dAlpGhb6?@u>%CY{t{K78YP z0!Xm%bQ7pySp}w3d9rh}EIho=$~vq7#kCl(<}c#9T>!?0_v(qjvIf2E+-y)6uRX?f zyC~&F1?#0UO10^@F%IlT0OVi11V9|PRQ@^uG+XMZU^0~ipwrPfj)!G^2H@7cy8t+c z4x(P?&h6JI5B5QvgWiA!R2jID6&-Qg)FiJtii)l*``%n3=hP zEd=)dKDH3N`(R_+vY#L}5Y+azsaAjD94eZvR*+zM`P;|@#kCk8zm||h zfB$NA5rFjN)7U}~KjlE8cN2X$vcjLrE|ygozL>muyWOvX4;H`x#_;ca-1C0`h)GX# Ta|s5F00000NkvXXu0mjfO(Yn` literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Cuentas/16x16/Thumbs.db b/Resources/Iconos/Cuentas/16x16/Thumbs.db new file mode 100644 index 0000000000000000000000000000000000000000..8b5e7933f8c6515c0f2b63be4bed5f7bafd14dff GIT binary patch literal 11264 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 aa13-S^={d&#`XWj&p3aFPbL2^=lEX{|9k5I literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Cuentas/28x28/Book-Open.png b/Resources/Iconos/Cuentas/28x28/Book-Open.png new file mode 100644 index 0000000000000000000000000000000000000000..d7efe07f380c72a82893fcdca86ff0da5f174ff7 GIT binary patch literal 870 zcmV-s1DX7ZP)z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ;+(|@1RCwClmS2bsQ5?rVGjrzNa?x^a8$~E>{%o`; z6bcV3DQZ*lXeCN*>j|xm2c&FDY~n$Alky-!JV`tVwO)jjmHb<+&C_TbChQ zmto=j2AW&;^Yr$4eBVp%WkHmuM!(;CGgmhM;?^_(BDT;Pi^6B$t$amBG^R9ElB8Gt zg@v5o9HNZ@K#SqP9id}Qn#OE$p(;sIV;0V}C~{hc6^f;MlTWA&*7}LAlRCJzyd z6ct8o$9*?(mRjo&V|np4pyPgy6Kf5+s8EaL@I%G!q71UN*(b5Q}#n3oK z$1stiLNOd$ohMX+NKi6ib!b9MJ&vs|z{CunQh=_2D?`^~ zIMh58gYw#N@>zz?mA_FcAXGjo2vEw8?X9V>)W!&=#WKqupnY*3F+N&`KZ}D+gNO;L z*ymRV=Csg$&zAgVhr16pX>xfP0R%YHJGBg|VDGsWRUIf|IknE9O>w`(BG&TcN0u|a zQ`xuR+X!IK>lv({pJqkoE2*$xW2wDSZWZ8In22R*`V)&5nAqxQac%QH69xfVg1`II zXk+Po6awLx#I|{#5wT+|z5K4B;^ZgRN^ONlmg`uVmV&B*!QWhdH=A8EKVYqk57?Ey zne1%nBQq&QsDk*4>@BB!%pQ)0X)&ZzY6L8boeh2Xz8Bj(ZcEF-qUX`D(od<};Yb8* zZR<=tu;Xa=U)3}*aQoFE_SCPO@S^F`%fZSDM|VzGEL#OX-z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ;yh%hsRCwCFmQP3&Q5?s=D;|s@@XsMa3XC?1%v?C)CWjrHL_j}_}PrdDE zy>yPPTDjjuG%eEzVCq2252UB(T!Rj!49v`opf?_s6|sJ#r|VpLqN^iZq)yoR6Nk~< z5JhuC6qP%7U?^pvrm7n4O~a^&^`rGjol8%2bs(9j4Gt`X?c2K>05Jb`0e$y=qNb`E z+gH!HU`p@qY(p|pi^|Gv!GK#0^K!VQFaU@+cV|z}l;@69Fuyu=d`}VV+Ktb6`Sw$! z@Y$kWdhtTEXuvzkyJ&9$;)F7&!6jh3&>PV44P&mzVO|;J`BgKsGC|vT9-R7t3o3 z7TV#l*0ZokfJnl!>~$O+O922nFSWwdbr6v&-X|kV9u6bHfKC{Zgb)R5XxLF&jJYCJ zFvd8>C(AIAo{aQm-7F%P76j(yP#YUh4fs48AA0(|&u^|lU`4+erKrCH0P7#6LGNHl QDgXcg07*qoM6N<$f^k7{vj6}9 literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Cuentas/28x28/Thumbs.db b/Resources/Iconos/Cuentas/28x28/Thumbs.db new file mode 100644 index 0000000000000000000000000000000000000000..dd588db6d12402e550aeee57af69cd8c71db6f16 GIT binary patch literal 12800 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�vm9mqFkoP!Ax8)Lz{9@b$avI=xxbAOu2e9Z3Ix_-9-m@RE;)?76qvMm|en$<5 zVp_zWTq}A*coO-^4%8A)_HT9<115JV3JB1hdA#P|eWlh`C47Dsxh9CeG8QX$?m7-k z!IPVNaD2kJ8N5Qxh5%^=Z{x{Fz`N;P^c0c?7q$9UMQ~*+LLt#T&rq_t%f}10Izg5| zZo(DkfAv%#blK+dC+_h>)EwA{oLTY@KaF{!^hJfnZrC_+Z03udlr)u^2)1;YL;kJz OH~-vkNB;Le-M;}rW8Rto literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Factuges.ico b/Resources/Iconos/Factuges.ico new file mode 100644 index 0000000000000000000000000000000000000000..9e11815d69fb4142ab3457cf28a9d77c0632fd0a GIT binary patch literal 171014 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

    AG*3@ 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 literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Facturas de cliente/16x16/Invoice.png b/Resources/Iconos/Facturas de cliente/16x16/Invoice.png new file mode 100644 index 0000000000000000000000000000000000000000..1e2e9ccef6cec4c60c4833976daf9c52056aee5f GIT binary patch literal 450 zcmV;z0X_bSP)z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ-I7vi7RCwB)leYpvnQnKO@BjZ{H=?SX zU6+*+YA3lGK~*`udeXm^5nq4mo<>);R8<)Z66g0`Iuxpfc+dUw$s8BOiaU?>8|bcT zA&zH!jQBJ>>F9+z=vVhg(}MxsF03jd79&mdM7oBE4F?3BRB{U}r`|i1jrhX>Z}}ys zT*|~S;yYy-2C%9u?!N+1%EU;dYXICFOtu^hi6CMrXJ=jR;^7nxPu%wF4bvYWev{nJ z3~-x@vXT1&;Cy>L+<_6FhvONSeLee$h~;v30@Hc}p-XHps%;%0ng8xt@IXLtxLer- sde-V-2X~Jj|NfB`rxO}br1F_hjc>ZEIe)5-R zX#9a^{eMlN{5+@+Mt$+`m0uLLjTHVo+Sk75a(rw5qg_NGs2?zbF+2hQszwQjBt!~= zhe$(YAhHlS$P$P=L;>$`BREO2{h6YRGqxH4s&Z8e}bG9Yh_n z9)j8rx`vt%Er>Qm2eJ{O3(5&+78940!sGG6qB645QnC_Kcqw!c9t`Zm$B*Ub$4ZIdM5O+3K%N2dMbPHN zFgz;&uQ(4zoCm2!?TCjT&K8~Um%zgd=O`e!2rGnx4GQ26<-uTh`7r3LVe4R65BS9S zC6;g4Dj;clNN|O>ltyUW?L|sPxfS?bFDH~W51%@R6_S>bm0O~+a@FeZ)@W(#Y}D1; zWNcz;w$0qaa`&FSb|m}n9h{FGJ?3)U^~7l(-!o_Z`~$+yheuq9jJkLwKH=)M#Oq1P zcT&^RGw$BYy#I4ve!=6yqT(l&Rn;}M)L-go%`L5Mui86aclPxU489wB|6zE9J~=f# zGdss%&ZBbi0L*8x{wdk7{2o+&Mo*!;9$kn#%tE)I&y_JbaiS7ZUO<39_fj-$<~yM zS-zXcQ%_JlUJV*&?x%&IhGivnf0Ks_S&R{Y z3*5Z!)5c@sBNWxgzx0L*vV(l~a3yT?v}eS_^>&`JaI!g&$SonrC$#N(m{E3f8}j57UOXEI9j9{k_{z59Kp-p8;mWf;b*6CAVrr zb$aVfjaSnY;p6im>7E%({p8+o?;$hUBS}((vp!27Ou1HVY@lnWhiBKxTGZARp;lk0Ek(kk=at_WbC$UwmPIa37Oi5KMxER^I% z6w-ePMS#@f_>!Wj-3XvGY4=3OKAWh$TApE0jevm}#f~l`1Pp!0K>#OLR4yXWcoG4F z)`#f(tef7mw$MFN`c-x0kK_k_)cv$)_V{(#rb|gAszL;9)RowG+kl7w!)9`C%XZl5 zNmaBXqavl7vCqPGYz>({pFYtt;D~@IuDV-~XhG3vwswP(H7jWLT2t8|UnNOH`pB}Z z5wFGmgoqN?-lAx%X}L!-DIl$<``u|`R-f|d@W+pybxN5Ch&T`Z9h+r=fG}%K1YG&> z+oF&8Q#OU~tcFr-nWPs8@I00>#Uc0NVB<~2UI>^Pr@P=0AcE~f0CP4T0RqV`2vB+X z+oE;3Cd+AaEQq5^E9RW9mc_E~H=dfvi7A}cFZ?fyjF zicgrKPIF~}Wn$T}qFStwy$x<>9;GPwt@~JSd#Zi1x|!!3O)V!j@I)AXd%{BDD+y2*RQPY>%9R~9jZ4b2b`9zDhB3JxpG4yb*~ zGH0vNZ7PdG2>Ux2m759rR&L7;c6LU`UY1&YR!(S;X_b;#{A_87JDEhci=PPV+vn#( z4N;ib5^o$frc^CiBh#77CvQ-$vGGOMV{b~?Q@)Gj=|j`bOy%U)b5I{aZQnN-Cn>xiO;WGYCr3KObT5L& zpEYv9Do%y4jI}X-kohRSkj57#|jf|5m2=Y zdqbbtC-OS1o#@fv=Q)}*w2gJdkC9u6fXek=PpJ*g`}HpFh_z6EM~-_Fk(svdQ*cdL z?2KU2wj`$pl3`UsO0fKhs7CzrJAE|!9{YeQmzr)Y0v;vw%p0F}xOvq1L~KbdLFj9V zqb`ZtX3Q-!Mu1h6@!>&U~~C-YX<)FzW@<;p=7{hpB`{=H5j!)2Qp%d_5g_<7Lu zSNp2gzbTPTWje>?z7Yy7tql{V3Ic-vD@M|~3lALp41F0}?=fz+mFgdH&&X@_sB|!% zl6t&SYdH-wcVkFDB9N5ECefY34OjZ%NE7{xgxAqk(jKu1&HjNZ7KX#PA4jPNW(Ll1 z1)k&=7UtzK>arpa$2v#Ij^)_mr4Fv4z_%J*{QTo3THIB48&Xy|T2QYNQiA=OLz)j> z0Z_kIJzORg%jFh}x7B?GroV-TE5w^*KF^{_$#wr*S_E zjC8uwgfFr+H5G&j#7^xf)~d_olj@ObrJ@Ye8}Fu>S#I?Ww^GgSuIqX@sqb|yC^xt< ze~$ICy!(NFg8x-^$?5T8oIW+1;PTXNYW39WqEpgAjRAFKCmHn>&fGhi3i7Pj4Fs6yxIKWT*!h9nP9x9n-&*@JF|B;1*b8^ITYtN(im$Fc1_1}`3M$x^ z3~f)kszY&W8vX1=w(gwO&qF;`otFzDd^_%8a%#K4f%6EE3}|;%a;GQ82y#pgFQ_|r zh!nh?Did1MFHJ~|9kKDGYjCqI^Oud7aYxv3y%%ORCYTC-b5xpsXx6sI_Bk!lj+QO5 zN>l`hNnJYcw&5IcQY5f@-hft6t(WCvA0^I7i69>$2os&1M8l{QgMic~H*t7m+;O|l zAhL8Bh&Z#joC|Yfvn%(iw=N|ID_gwDsT+6@I_kQ^vpuL6rb zhS7}8Y-DS&uh(b18L*Kh zcNnR2Ry@uurDcY6&M z&yzVTiqgA-PsmF*Qi9|W;M4-$>CzhC-W1j`MQ#~9U7P!l+Ucb4MyL38XWRfqhTP7E zo7&xM%8qT@S1#V^SK?5T+w`t2TN|5Nd}*Isq~x(>7gxk6$1NVMwgEBg-|J!YS(-KF z)2n*Oy^bjeP|PW<5{#K2J9E$au3mnta?1|ujAT0kp+M0Y*Lv}#uVZ48&Vbp}P6QnD zE99PMjk9ri(4|k4|4(+NV#dIegK0%T#c2d6k==~BA=?nZ>ojCt`m(5%`1?$5S0)Rsy?-{>v;DG#nDD-Sep_Ii_VbQA(UU| zGY7~Y2zR--6sF+6(HGYVkFS(C1UyS*#(QWrXy*+eK#<%HXFR{ndpq|z-IIfz>tV>i zbDcT@k1e)lziPSchs458g-+|7pVSIP*EUp(mitJU;7v~Hy-ng7c|(Ot-IfF&jic_Ww#Mu+`7{H_)F E2RFn@MgRZ+ literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Facturas de cliente/24x24/Invoice.png b/Resources/Iconos/Facturas de cliente/24x24/Invoice.png new file mode 100644 index 0000000000000000000000000000000000000000..c24cd70aba66f69fb6906cd0e70fd46ec4248b29 GIT binary patch literal 505 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 literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Facturas de cliente/28x28/Invoice.png b/Resources/Iconos/Facturas de cliente/28x28/Invoice.png new file mode 100644 index 0000000000000000000000000000000000000000..045a1f70dbdac9c70ca62d526be6b35368fa761a GIT binary patch literal 551 zcmV+?0@(eDP)z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ-ok>JNRCwCdRy|7tK@ffU_$PvWKrBoGrZJtJja96I zZAw8)EyQ$!jbblo5DULZB1vIqBMSZkdl3z}nP;JQ+$DFpy^S6?aBwrs?YnvNc6Tx) zk*4MS&UyEV06@}v0zL>3-aGl@gUDrbp#Uq@LM9OKFWzcDavBp=4jtj=V95860Snc2 z`qw8JtkA8f+~|z`X|Gv{q-iw&YP*P|lXg6%CW}Ye(%dZCZw|T#mk?Pn>tS4lVez}Y zMF7Co?u8c<)ntHC6^_P56^^60-YG$~2od#SW`KyU(A4^!7rfrCngN2r4{c4A$tVQ? zKGdzi%8d?0qAATr0ZwD)q5&uFuP_1mbKIENP-?m#!*V96G#e$Fe?_ULO{uX;K|p^& zsm7ElH9&{8O2v@UQ97(C)dU-VQnIO;AKs*wY;u72niU-P9nY_o^2vJWCZBE2L-f0! z?v*3TfM4H#1^^tM_I!XA+d_n~V17{~oeuJ0J&Xf$DYLmZ#{f;hREg%=%vj8>LQ%AC p?$a5BNn*LS@u!n_ChbxGYXG|C>O|je{e=Jk002ovPDHLkV1h;I=`R2P literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Facturas de cliente/28x28/Thumbs.db b/Resources/Iconos/Facturas de cliente/28x28/Thumbs.db new file mode 100644 index 0000000000000000000000000000000000000000..00a729255afcaa59b645608ce48e4d898b238085 GIT binary patch literal 10240 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 literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Familias/16x16/00473.png b/Resources/Iconos/Familias/16x16/00473.png new file mode 100644 index 0000000000000000000000000000000000000000..e40fffcf78a8f1119614c161e244f1aed978d843 GIT binary patch literal 455 zcmV;&0XY7NP)`WF5Jj(j43=5Y%!11*XlDIE)+}&g;FgtjKf%yYWnmEvR9T_I0tXt7nb;Pr?bhkK zr=X8W;N3SfZ`M4<#;)9psG!HZORrtzFG^2s)c0%vsNHsMSMH^0)_CWjXg38lq3JJw zeb45hZMF|9-KHPuZ6PY;Y{)s2Qoo%5I~7?1*AQL<--;!v*ts6_F2?=$5IkJgI6x?8~B}8cI z2pFgg#uzXbv$BLBw2h%ZDEkm+Hv!j>xR6r@9m_ng{Sp2z`U&Ot(jX^JyQlyF002ovPDHLkV1gnv&a(gj literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Familias/16x16/Thumbs.db b/Resources/Iconos/Familias/16x16/Thumbs.db new file mode 100644 index 0000000000000000000000000000000000000000..d4079277ddfcce05df054b9e31cba23ee48d275d GIT binary patch literal 5632 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 O0000+5jntuob?#; z=Kf?b)?fikUb}D-O!G*ZGQ58Ok741SZwz;)vN9}Qw~s+VQ2`vVj4;hU_PPuu3xB~i zC)lvSUFVv+8RTbV0MmTx_7AWZ+NZ5yu(32sfyV$SbYH#u1P*QFD8v>M1x@qdF~Nu& zjUYdP{08!4hRt;p7tA=KiDEO>qz!Wk$QF=o0d3#FDG{5^cvB;?AtY(WW(Xn8jQ9)z gg$XFCaQYbt0GS|fm@h($07*qoM6N<$f}R@HF8}}l literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Generales/16x16/Align-Centre-2.png b/Resources/Iconos/Generales/16x16/Align-Centre-2.png new file mode 100644 index 0000000000000000000000000000000000000000..d4f9ffd3255735645d1abdd3eeb2002a6b620ece GIT binary patch literal 383 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`oCO|{#S9GMLLkhTKK~L(6-&CK zuOkD)#=e^0fs=uJg=CK)Uj~LMRR)HJW(J0z|AF*N28L1t28LG&3=CE?fSU6s#UFJ8 zs{QKe;uunKYsut|Ud)aXE$Pj7RX;}7upe~aaKg4>WloJe=Mpjb1Aa-05gr0fb6YhO zg<9sQ-TYa;M(^Xfy%o!Y--;REKX?A0pU}U>whR(6eN~g%e9xZSDKe>`u5j(HPbRfG z*Q?@dUOiZ`K1^6i_rT=`nLBpQ&e8s}Ori14EZemf&6_5vbh6p*KldP0;qbc#ozq$; zf7(g~xawuwRCcjnQJl=Sf3?$u3z^%sPo5TCt^MT5%N#!c!&zsUY|Y){9k_42FUvan zAnVHq;{%sJ7}aW*+@G^I_r%ls3%}$7uFEtjiAoey|NpT)x8&T?_T%Zj+dqC;GQEzM Zq4u!C6QSSn{lEZV@O1TaS?83{1OT0%oMQk0 literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Generales/16x16/Align-Left-2.png b/Resources/Iconos/Generales/16x16/Align-Left-2.png new file mode 100644 index 0000000000000000000000000000000000000000..63565ffef536eecf4691d516e60b6a781a3f0e23 GIT binary patch literal 375 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`oCO|{#S9GMLLkhTKK~L(6-&CK zuOkD)#=e^0fs=uJg=CK)Uj~LMRR)HJW(J0z|AF*N28L1t28LG&3=CE?fSU6s#UFJ8 zs(tI};uunKYe}%R7jvM9t^N((V_SEyA5@J<5fjjs{w~atUC3A_#C_1I$>7FP0acY& zi^=z`zss)nl$m=*ecr3RkN)U=xAOeK&&TlKRoRWnC3mO2nbWPv**v@2v~_vrzL?j> zu`hmniJ5EGw}rvKdHKVKnm5B%I8SiMJ2@|Gj$@xjmsaaNyJa6tCM=9mIK3(A`Jesa zO)`s9V&*P5HPhrrtmrGDo=Jw&wBN1!Fm)O0^Q*I1zt4%8)gV@I#Wu&JdH2K9@r?e5 zf2V|bY^bchZSntJ^Ev;xIeZGU8`k3tv5fV Q0Q5M6r>mdKI;Vst0H=nPDF6Tf literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Generales/16x16/Align-Right-2.png b/Resources/Iconos/Generales/16x16/Align-Right-2.png new file mode 100644 index 0000000000000000000000000000000000000000..3cd5ad9190138c3e9e99bba3bcdcb681c09b9e6d GIT binary patch literal 381 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`oCO|{#S9GMLLkhTKK~L(6-&CK zuOkD)#=e^0fs=uJg=CK)Uj~LMRR)HJW(J0z|AF*N28L1t28LG&3=CE?fSU6s#UFJ8 zs{QQg;uunKYsuujUd(|4t><~mX200{gRiMSVPY-A+MJsC3K8A>3FFm3J3C##v?hPcBfTIME|q}K7MAZ! zZykL6Ayr%<>qJ_&*Y^pZzuCX|!)7A;ZC)eStB*E*|I2#M?fmiP(Xy|maq-_C&u3(a Y+a&VJd201Kp!XR(UHx3vIVCg!04g<{PXGV_ literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Generales/16x16/Añadir-capítulo.png b/Resources/Iconos/Generales/16x16/Añadir-capítulo.png new file mode 100644 index 0000000000000000000000000000000000000000..16e9ab93e2523a1da2bb6f082ca1c54111b80edc GIT binary patch literal 717 zcmV;;0y6!HP)z@%5w(33+yDRoAY({UO#lFHi~s<1XaE55!2ke-1^@tN zi2wlk_y7P%aR2}ul(R1~hX4QqLrFwIRCwBqlTAoeVHAd+@7_Cqq?wRtC5b{sKMNbE zHnS;WFv19I)1pO-7J-YPMF|}I-@gl zf4&x`IH=XT{myybbNJpPf`RT1;5C)H*4fqD&p#xkL<9rf@@9v#;^A3;`M)5$0=7VQ zRA*PO*Z^p|73~Dw30whK$xFgh7Li{z0MjB$-~Is(?yW^P3Pcxj+?Lk~2D;^+7Eu8R zPg#h3j$7V1ihz$xN#>ebcyRU#?@HrzJ$l83Jww#Z#`qLrg8MxvTiqA39=r`%6amt* zsFQ-CVUQzFezgd|KHFSxhN~4Tgr_VHx#pR$7BF=iSuPXGWLe$sKt*BAC_@h3kRZ`W z?8ONh?*+vHZL52GQa& z`wmrvkbnnkTM}iD9NvTlM7rd*$QMc&riJPd*j0RxeR6W6M)~WxIj9#VL~==Hm(w_$ zDoE;gjq)}rlz*g>`sBzwhHjzS3V5hEhTj7K`Ro^OC8U&<00000NkvXXu0mjfL`y52 literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Generales/16x16/Añadir-material.png b/Resources/Iconos/Generales/16x16/Añadir-material.png new file mode 100644 index 0000000000000000000000000000000000000000..d43ef4ac1b5e30272d9cc99cfdbf16cc6276db2b GIT binary patch literal 685 zcmV;e0#f~nP)z@%5w(33+yDRoAY({UO#lFHi~s<1XaE55!2ke-1^@tN zi2wlk_y7P%aR2}ul(R1~hX4QqBS}O-RCwB)lDTVCQ5eO4Z<&`jCOD>wSO`%RB!U@n z0SVCz60nG(SZJYWVUa>mtO9~qrLjmO>K|aCje>#@WC{_93P~VjR3^({GR~6lGH=$m zUyGS+P6ELLm-}7rIp@2}k%SPe;>B%geX#>9R${0d#W(IWlN`G-EU;H+3%-uk_vQZ; zNA}h^((_vgwSDKu_EzfR>Dd@S{R-EwHWO_NJ{xei)XKiy?U+uL-+v4SYtS+qqc{(ccV@oVmPe6mc7c558VuPR~%T*tnjL5|S9zl3n7JNUVM1{g<^X z+r?ITBJ~~f_Q#V(j#O!hkfz`YzXM2Yn}bb|ac1&4GclINHGPyohA_@X%HIJ1;(z|d TZuXkZ00000NkvXXu0mjf2~H@A literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Generales/16x16/Back.png b/Resources/Iconos/Generales/16x16/Back.png new file mode 100644 index 0000000000000000000000000000000000000000..31194b5487e28e2006793b4d6559de85363b4b63 GIT binary patch literal 909 zcmV;819JR{P) z000W>0fLJSS^xk51ZP1_K>z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ<14%?dRCwBClU-{`gyup}TJWL}1hJsdOD_VwkgC)`s$y(u5|L^^ zEC$=Sn`HN#nK|doobjT`vg+J?49xR=@5j8a!~ahKc(}2-;r^zUhFrC(%F0)lfN5a0 z{-L!NukPNM$!7NV-E;e~{ztYKi#z+WZC$O-UyG$=W_nKkaA9`l+QRjdCNk%Na2;~i zYPO@RaD3p|-N%N82ik7CvkS)olO%*DVp&$0pI@-&KEH7N()nNB56W@^h^)1^0B+iS ze(=!VHxIw_V%r^k-K5+Uj^i?ZbP8!ggi+*rnw`fE_jhf3y!Tz;$#n%Tu=%0A+s9sb zd0(y}n_1K4@ZOPc0I0@-O6;>5`h=N?yN5P!>?{^e0G$A?m+_u{^r>B&n)8h$){+2Y zBVRFj_A~%zMz1nCzQpv&h)NWon+@#`w%vux0RXSPGylZ49ldE|6C7(8Kk{u2o;-UR zsUn1m8GiL`s!@Qi1=%ed8oVZNAMlCSertYfbD@dY#C-6^cQsgRL#z!##RwJOTqg?f zBY|l(c=^;;0ME;$JZ-fT#Ip9Ex&}tXIzgxifYs2)j{*WMoy1LA0NkZN%YQ7Dm+i8u zaA0&JgD;KLV4-3vzCzY12x5s}5>}V>3V?TGu{4;JhfmTSZ`1{jt04fK+$BzYmD3Cft zRuwCsRj=vGX1}#|)&+jL^7Yk;AHSRnmqmqTwMt2@AfKB7U`17_sDL0=2&M3+h17HA z6fj$F<&Jz$%c(8T^b8gHTQ?{#B#0GK%bQczCI=U#45y+q++Y+~vDVfa0Nj$!rAG?) z<%V-Rn>w9tHx*@KWK|)4S4PapMg6OpK=3h8T2G_%pD24k(MfaAYx9aui<8wA6C|bN jGMX=dp8-=J=YIwOdeNBT-uohq00000NkvXXu0mjfJY%Kx literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Generales/16x16/Bold.png b/Resources/Iconos/Generales/16x16/Bold.png new file mode 100644 index 0000000000000000000000000000000000000000..fde06b45230f8c1559923e99722ba669f1f377ed GIT binary patch literal 498 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 S*M1fN0000IVX literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Generales/16x16/Exit.png b/Resources/Iconos/Generales/16x16/Exit.png new file mode 100644 index 0000000000000000000000000000000000000000..21613aa88adb459908fce66542d0a63af3ace3ef GIT binary patch literal 606 zcmV-k0-^nhP)z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ-)Ja4^RCwBilf6$J7pz_`hvMkgV0vBb^As0oe6O(Zc43bKGE1VPcJ@Otk($Km-(oA%*J z?s7hU_k4P)isyN>OQkY342)!Ndir*!Lz{$ofu+6+BLMH;&aj_^d4W-(kL~)m46Ogl zVD9MgaeOaC0TGLc1J4KGOl5*|+b_A+e+vMuM?C&K&-9Z?{EQU%(O$4RL@lb)`e`LD zQ{8-k)+4;lVoTowIB_^;-bZnW``5WDfl-8`gdY#U`I{OCI)ZAz#q9AR+`o5zh;7W;eAp z_nKB;H&y?6g*XBaPVe7Fb-S?M$ewVNLYwa49kn} s_B|%A{hS8|COSZw)55}|+;jdr0HIg{q*(P~JOBUy07*qoM6N<$f+tN1od5s; literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Generales/16x16/Form-New.png b/Resources/Iconos/Generales/16x16/Form-New.png new file mode 100644 index 0000000000000000000000000000000000000000..d0e676a3e4fb9210a5ec37b24cdad128a14da1d4 GIT binary patch literal 550 zcmV+>0@?kEP)z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ-oJmAMRCwBik-tk@aTLYRgE;vQ2ttQ0SsbE+IJ83x zp(%<#0$r-@U_mHYkPJnzL$J68AtD$dLnK2h{)Cc1Dk8WjD0C4@r_PQ={U+~w@9FSf zUh;@9xy!xq<@-73-0PSG=+p{easkc0ov9$IKD~eKG-r}P{kA}}oT4$HSx&KjTVQ*M zDjTllgK02ds&M$#M}`0<0U86Ux*jBfj?ed|!GCv#`BH_a7k>f>NyMC50nF~Bk?jMr zDLAz>UTppDuzv9N2>>AebO5>43^D)#II$r6SQSn!4JH?Ga;31M5K)M>W&jwU`y2uX z3(1!%Tzr?p#!eNzYU1T6(jUIyy1MDa+8;y}#qu%E57!|=h=iSpD2{$!z*-IdgaN+I zXVXiO>hrUca77*mSW%qqPrigF#+VdM>Qz z#`PVzqR|n){W$OGU}PvB4Jek6aZp?fb`aziFZ<=M8(8Uag_-%4u2)cH1VD-1?XR#_ oe06Qjz6+8eU^5iWXC(5dZ)H07*qoM6N<$g5Ja9H~;_u literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Generales/16x16/Format-Font.png b/Resources/Iconos/Generales/16x16/Format-Font.png new file mode 100644 index 0000000000000000000000000000000000000000..d3040cdd4228618d1c6201662b937d27d1ad2d07 GIT binary patch literal 563 zcmV-30?hr1P)z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ-sYygZRCwB?lRrzFQ5431uLK-ilu{5&@B_G*K{^zq zL(w8G9jb`Y$rfGg(nX4EKY@iT(zi(!Dx%RrN*AMIhl+!W;vX_Krjt}@s7da*_jG9U z8k+>PJ#gW2;Q2l0564qg{wG2J?~|r8tER> zx@zQ!%?ZNO;flOihY^br%jfMw04e}hE&hQ|CYNFDbPWKfO3_#fMG0OhDgeoJlIDhH z0Q>_Vr;5mxvk{Aks|}dinZob#X{>K#{$!qu%O8QTsWTqHssfI_ACbzWXrF24yl_s= zI%j~#ccK3NAKaTuqmGfwu?!0$nd#gw%WDt-3P_KEGr$Uggq zh@<1~eOemsk$T<7T)ZVHJ719ME%Yw;lDByxGZBnfp0AFOeKQF_-*A@Jp1Gifsui3J zr-NY?io)!x2Ymh5f3*Q)X?wbasWrs%72SE503iJM!!iaPm!0E(yGGCRqL2Dt-ufC}j1ESB4FC?EOM^9?HnIQ!002ovPDHLkV1kL5 B^UVMN literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Generales/16x16/Forward.png b/Resources/Iconos/Generales/16x16/Forward.png new file mode 100644 index 0000000000000000000000000000000000000000..2a17743d96ff4519fed2f71b76ca3c0165b49c92 GIT binary patch literal 896 zcmV-`1AqL9P) z000W>0fLJSS^xk51ZP1_K>z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ;_DMuRRCwBClU-;WRTze!nVsG4CL1=pYksV@rY5#p z-Fng1U@KbDKy6+Bh!qhb;!UAaTU1aXf(FqW+Y3>GP%KywyzxTlg#>E}q#(wICJ|8s z(&A!TcC*=?Ip@sGIWu0k2^;&}96mVD_r2%vz7{uE0eGk*o4&uZE1hdLRZY3-GB5+I zwqK0n7^ki8NM%xohwj;WV))@*rP7|EOtHV)`lnKjW@i@UPZ#HBuPrTqVgfS-_-l~W zIy1ffg*Qf?*>_@eY@~Smo&8uAm?*+G0V}e>;^I<#{@lgo%TvF7+DyVuU|BX3uTLY5k1&edK-PNn=y3ne#|FoNC)O0$z_teu?0WCW zs|R!GOsb{J!nCw~`qmtc&}G$k@lyeJk8ZoAuT=N|=mT(^l=IXhhxTsC<~xYunD<}1 zu;E9)`}#A=FCL?GJfsnL=&YgVf#O}ui?t_#Gfq!m{_&l=2a_g_uwt_gwbwUap619a zC&`U@xLT0ezA5c=ItPI>cF%439oa%Bp$Spi-vDZDkSai^kk3zl$m-dxxPicQ8=QP% zN9zd*N5|UoLWys}4X{ulLIs36LZ|?MM&ROUX+?I_1>oHHyLRmkBCs>Rz<99x(?u6uhga&ul%`xaNib3XbHfxFCSl5^6|v@I_w1ksTJ;$ zFp(EuS~Jq_z2$q)kDT1!8zcfet&m#bg%Wvg5P(Yg0i}FmG(|&sc%eclg*zjpUNEPC`F1P!<_Ee?ZGU=T zv@qPgNjW}VsE}Izx3#s|yCkJQ9h~Jl?*jEWj@JhO+?vcKj}`9Ajpg=q_F0?lM34%R zO@;VN88Is>`VTXS;0vI-mPYG;QFefmmE<|6=#;E3E2A66i>lEans0$$0n;Ame+K}* W?uTl1G=)Y00000z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ-JV``BRCwB?lQB!fKorM+SNtA+gapB%gL@v@o*AS=t5=HBMHfMbLP0^A9FaIAjj^Vu(1RQ9-TVD{_rLcNP(VT=!1nOY9vsK(irARlo#p#3$OAqWYG@DJFR)kXemnY&cI5BCt??-nGi%OKz z0Iui;`PUF*g=3RqOv>eTpU<1UZx1?Q{-<86ogGx*qy3*P;vG&%ObWnpZ-WPYE0*@b zJTdTn0^cuVaS^YsMjf0~5@)lw{Dlkg+CHeh8DKhn=3Gq>HNv$5A2Y-0MO2>S_?^x5 wNBScejK=n1@>=ceY25qw6wXZ)tB&*60Ib2mExk<-9RL6T07*qoM6N<$f)mNS(EtDd literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Generales/16x16/Italic.png b/Resources/Iconos/Generales/16x16/Italic.png new file mode 100644 index 0000000000000000000000000000000000000000..c5efeb35fac62c9484a5884e63565c765ca18bb8 GIT binary patch literal 474 zcmV<00VV#4P)z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ-P)S5VRCwB?lg%qcQ5eR5SJ#q^Y?Kl)VL{?g5DP3s zEM~%zl?7}0PoylAkCcrCDWWJcgW`sgg_4h^WIoQh=d~Df&E<;W*`3AjdEe(by_SgZ zAK3tNtGf{qnJ*N!EGvqLFuSrNzm?Liyrwdecu7iY*SHiFGEut*rCpSE**iS{h!CW? zHHXpZE$>}jS;E=!fM<}?w;PP~hM5^_2Vl4-OnkB5gS9q48vrbATmvxJS&K2ogMYO_ zGOanid;*}gq1*@SpA3u$XIIYvG}e?+Y+F89t=K+AWrV1aNN^4&PI|x?V z<@n+efR=EGbS4Wa<-QjgutEMGKPA#^AKd{^S5^824lFST@1NXL)4f2<$rji*xruX= z@WFu*axFL4hqzrI@}hj6th9?U5)eTf4r0#VuFMxH2B6?B{C2OjtN3(tS&$sVk z(wVlur}l*jNAx)NthH~Fh-SLWZgw>4&3_if59Lj(92sKr1sJM%{uF#%m?hM5*nYjj ou}QY^CV@v2_T9T2@}805RMaSW-r^=8s;PNqN+m-Dp|9lkSH{JqiC5thKeP0?(_iKecY`**i*FiKPU;b}H` zZibqr@xd7?zceleGc&lYPuyg|;UHuwuEb?2J}aY;|4#GiytH^mhR-j5yj-7mCH--Q zS4e5n?t6dY6gr<~{onZW8E&j$Xu0sw2t@k^=Z`ibD<2Sy{pv;NU6)d(*VND5{7p~nobgsGO>>rNg zg>4Je*n)p1ButOpSDW9iSne+V^+MoW#=o!HI!=}D*|B4lzSGUuPi*B2;obaF zKRZ^-m&-aJRyRfg{{r(;A{1a_97oLYlmo|#NEc-9& h@ZX+$F5`Aa2K942TUA;9>m$fWQC% literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Generales/16x16/Outline-Move Down.png b/Resources/Iconos/Generales/16x16/Outline-Move Down.png new file mode 100644 index 0000000000000000000000000000000000000000..09fdc6883db962d2032c3fcec4479045d336ec73 GIT binary patch literal 389 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`oCO|{#S9GMLLkhTKK~L(6-&CK zuOkD)#=e^0fs=uJg=CK)Uj~LMRR)HJW(J0z|AF*N28L1t28LG&3=CE?fSU6s#UFJ8 zs{QTh;uunK>&oPfUd)aHZTmSp*H6&f=%p-nP>IpeBUMqQS3qFn>FOn$wtQez$<=c7 znCR7Ql9V|)DCdaUh9_Nf?&oPfSxkWfuJ3gw#cvQeBCthJyW2r)Bc~a6m{ZX0$e*mg#eZ=}FWWFh zK|^I~%TcwtH%=Wotb4CII)=N~qa-|4Ti?g<@R>&I!yKL|6PtTZ@i3fp{xkhGtIuoo znLGu18~&|NTm1j5$$?1jb>biXuH_Ns>{@E`>aKs>-sZ=NTLnetbFH{07x=QLLhwNq zV{fOS#6O2z7A>KcQwOi-FfP{pwEiEbOW)pZ4u%Iy%~Lmj?Fq2#xTfuMtXRkX)~D^w z-RUN3ZYyM3ve>WOQj0SzUzd^Fld<>EVY~g32_-!zEBMyFRh*>q{Xh3i#@mbx+q|b3 UX;*{;JFVdQ&MBb@0JQaw#Q*>R literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Generales/16x16/Parcel.png b/Resources/Iconos/Generales/16x16/Parcel.png new file mode 100644 index 0000000000000000000000000000000000000000..eb0ef92f196bd544cb9e9323ea8c396fb21c9188 GIT binary patch literal 561 zcmV-10?z%3P)z@%5w(33+yDRoAY({UO#lFHi~s<1XaE55!2ke-1^@tN zi2wlk_y7P%aR2}ul(R1~hX4Qpr%6OXRCwB?lfO?CK@@<$x!hs`g(MUtkU)h$h=S2r zsSTwa|AdxaXKi6&3>_9{bqOsA{sDGJdj%^YQ3`^IMuH|HH@mnq^B%=4ce|I6kg(0} z&U@eY-kaSqs>*dPQ+?^KqrLR%@T<0(W);5uu*IDviz$~C0SVYYdwhC+i&m$@`|){_ z?Zbhjc>&*BX)}5E1@E?g41%v$XZg1I45QHMba*o{N76my(S7KBi8+n#I=Zm*@=_Q; zO@o7}$K33G2OvqPcd(zf*-zU%sm!Zk5uc$h1K{Le%=_;y5g-n6 zmf$nQokqBn0UZ5~X=!C28W)u{ID)eTZxPoYc2M*Q?i7G5huLYEnH~`!9`UxEJBxRp zqdqHzaRg%^2>d*P*2nl4H)H3O$|Vq=<3_5Ff*WJ->v#wc1itu-h8!vSNXSu_mm-UX zGYVG>K3^3EFrU}Pb@yv_rNc7{t19NY$N78!K1UT?!;v5H00000NkvXXu0mjfHGSrR literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Generales/16x16/Paste.png b/Resources/Iconos/Generales/16x16/Paste.png new file mode 100644 index 0000000000000000000000000000000000000000..f1cbee68f7c708feae0f6e6399824c5151f4e5a6 GIT binary patch literal 543 zcmV+)0^t3LP)z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ-l}SWFRCwBilRHQwQ51&1k!i%rYMTWMi|u?>QEX&D zZL)$|r~#QKXp9UIL1YVy1(&d}5XAVvMzCJ*J`m$K&+5MiMzbF zw#?VuGEkO*x-VJEGEn7WQk9EIWf}fvdVR9HoW{)NdAz#8j;(H2&hcSyvW zLPyYp50(;XZ~uL9jgLYr<*C7LuIUf2?m!%8dDS63R)ut1(;|;5n`MNvZ3XHMhRgBY>OkQfQ zm0r2A_9c6vg226MW6!ou2KLUjwfPFWmNLk_Srodvf9j#XKN6mc{Sf>wzQLvW?}6+a zvvXn?)507U74p8GbTc&6z~x51>HikZC&AM`%K0dYr`|m8xaP|A3syYQNvpm#bTTZ` zcxig(Q?U_4{sbnyc@r}3WN-IKbNQL6%OkjIm)yxl_BIYy!JgzBI*m;n({1E?H-$ea h*vGW}IqP)EL>d?}x?gPW{^1R>A^L^guQTQ7#W)^%} zh{t2MmB>T@I4OcV`CE?~3dLHf8ieP0;eTrK3I9S`0t8}F{{tAvWg8$`t70MC@OFPKnvV64fIYP1DGBCmG3Kk~vW1GfuynYYy1nIi#?-LhrRJ=&2+|9Nhgw z*4H-359BCX_VEtp-YnBIauv~*pd@0LZIJ7W;|sys*PrO7-h2w8?()lWP<4|t?J>G! z^>P({)HKwt6rOCsbG>K>fjD@qxTTcZa%BA%Gc12vr|)tvoHD4^!6}w0u6`${Z_>X%EpHD+ z0lW~BN|{tDH9mh_m1iGcQL(Ku@q;gz>0Oe8*O})%=iWv-aKk<5&UA+Jw;hLIi}$ul zyqlTA?inUstCP;(VDlyZe}I*5Tag=Sp1r`m$wg)-Zo-FQMp>d@k5w7~qYs{)wArBF jg^kygcgLA{{xIwg&d{pat0 zL-)-8AR9pdOecB$2dQU4*9@d8+&ono_MW(lVK{qaA;V8YMzGCBPvsdf3;==zpk^IG zJ}!n3H(iE5fB!K6Z3pAFKA>z_9|Jo~<d>oV3rGxEs75MzXD2Kna- z%ywj({{q<{{+~bp7}6`IGMMNqF-WT#F>GA3hGF%&Dh5W7%~zjXSVAbuw(LHMJr-(v z7W~HtK7ar7|Jl2r_+z22cOg*;2WKoa6~|*J{_^85!{_fn45YvO_y_RR!w6>h2ka?R(F{l**h(HemX)T{!)2l`#{n841X2o>%o0 ooDO`G+N6Q>6QV*9O*2&h0GKoIiDr{^lK=n!07*qoM6N<$g84wX2LJ#7 literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Generales/16x16/Print.png b/Resources/Iconos/Generales/16x16/Print.png new file mode 100644 index 0000000000000000000000000000000000000000..8f029d705285fd648303eddf2cf043efcbcff1c0 GIT binary patch literal 484 zcmVagaKGD3l`1MAkA)`stkgBTwt+3fB!N3{__`%Uwrz{ zP*O7iuAT*p<_eJJy(jKs*y?Pd%<%HVUl217tFu5(fA{h0e;5GT`2X9FU;jUT`Tidy ze)HM4|Gr6W|B>~upxN#Ma`u{CmoW^tH&q1M4$%uWWb5X6RX!|G%^-m*Ag6;sfU`E- z&wqjb2Zh0(KmQoId!{m&=qoWus~RzET(ia->;jO@SD#z}v30J_zJNE%478-cns1!h zh42DU^OC0Gc$}KP{P@f8`8yB;=`TP2F>F}3hCxx+f#K$ZO^7h4>s`n|2wb@K4DO2e z??0jjA~qMG+wAJ~kKyajzYNFrZe;lM`3qbf6EV)NJ?{h7eE-@hu>6}h?{FJ{uK6nv z3r%@P)z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ-TuDShRCwBykiAPnQ5eR5hDd@=K}cg1eF$N+6f^}< zB7sXSIb^g1N#f8_leFg68iM){Xc1ULTRKS4>=3rOHk6)o?rFH)n-{;I;c(93eSYuz zye_RZ0EPRic^RVE-nz@WYpu;gYfZjX(ZiH4RrKo4sqO?!Fro~@03ef2(Ft*nY8KK2 zEX)STq*J6o1FpV+;>Qa&?`Z(ayJfst54o9FBC!icox7hoTHdnX-mC|J?TuypzB3x1 z4ekm>fbJbwW_cp{K57GSy%qsLNX5#0z){}?u*^alcIT_w!ymvvNHsV@>sav9k_f42 z?tdYqLP&*_idI`9!~lSh3LzA}+@zzZ9&RF}!O~NJ+GeAF1R<0?qLsVToCqcdM=-}V z9J%KnrvXR=lN|cbhXMYVR1Y_aza0P&nhM!wtHFQ?ls)$CV!{6FW$p4nQ=1 c$+-F*02@E=UZe<$eEz@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ-SV=@dRCwB)lPgFBK^TC)l?#V(hZigsK?Gk127~>& z2x1niK@kMOW-wSRo<%T-a=}Lslf`mHM9^Xo4Hmg3>dmq9xLMY)yWH*VJ;Z@whGD+% z|L6Z1$M=2KH=ca{Ia1MPZhnO0lNU~pX4_s=+CyrK(w5DwXC}ws?50HDU!pX_%2)t) zwhI8g1+B2E2ZG(byWWC!ur?k5H6gnTI>C`ZDbrcd4UTFcrHOYT8a21xfJ0E3c=SM^ zlY-@?aaPtIdv;|Y^Vwctt;gcRFj8uiGAL<~;i{BDN`t7nh^kHsto6c64Oj>noJBG> z0E5|510h_LGL)_lx~8A?XOPk)Gl-%Bl&=oS4dwZGyXUK__!gS?$`9w47gSyY*jlee z5WW{6J2=Wzegc48Hcc*@j#WQ`V*=TfL9w_`ra#4P`62OyW*ETneILhhm@cgT>r4L* Y07cC$DQasV3jhEB07*qoM6N<$f|t+2`v3p{ literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Generales/16x16/Search.png b/Resources/Iconos/Generales/16x16/Search.png new file mode 100644 index 0000000000000000000000000000000000000000..e7a675863890e092903cd6d675fed1fa20c3abdf GIT binary patch literal 441 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`oCO|{#S9GMLLkhTKK~L(6-&CK zuOkD)#=e^0fs=uJg=CK)Uj~LMRR)HJW(J0z|AF*N28L1t28LG&3=CE?fSU6s#UFKJ zU|`huba4!+xV2`otshgMNbCOP!M9#AEm2EkmU=9vq2tRYme{JYi*cjEOxB2u1&0oK zwKTDq&SWw<#=&UPa?s$!iDf zw^gV2t<2of;bUbW6sWbG_h0w_8<#f6%9MMozN#w3H_`ieh=5(ug5K4s{M#&d*F1S~ z<;kyAMxy^OGdifqB&Ak%-mloa;l1UDHdmKh)0B^T#cwOyv}xDODN_Q)?ES6>KWeQA zTE*Q^nV-zNPh+;}`M7;m?egIn-y}OL6d7$I*E8(7Va9N4(cxpatQ>0|C;4YCp71HH zeRg~Ls;_cKolfpffBRv)rE?FwgvCyE^m{uyKn!Zgngg0 gqixo;_kU~|{__81aa9g-1qL&Nr>mdKI;Vst03I-{8~^|S literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Generales/16x16/Select All.png b/Resources/Iconos/Generales/16x16/Select All.png new file mode 100644 index 0000000000000000000000000000000000000000..b3476eb3bbd41cf0da841d1f1d4c015638796c80 GIT binary patch literal 586 zcmV-Q0=4~#P)z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ-z)3_wRCwB?lTApJaS+CTuM~l|C4`8=ONDe;T=3AT zQ&dQSEM(X&h#t!5&>^}A(amGgCA6S2G)YP~i0BX~_)(M}b&2#+7Fa>zTHEfvJM(|1 zgY4^?yP-6f8F*%%XP$xa%#8nuZ2-NgiG-Q;ZFSi5yd-AE-JvntY=}C`<_orx$yw~! zd8=B-80!ghrFwhAZA2ZD(;wC>{2exXZe1OiQ4mLFvJFv(U(gV*sx-LwcweY~Fh0oe z$VWsSk;C^<4ayS~R|WX;Jc*k*%bWf&=o&}V0ff1th3`u_u69o`Io=5NLY_DhT$*B+*b<{QvBLA`wn6doR2Ow6rlh0o>AzoC@ z`%<1@wJG3oYn0tJ)kK>gbLHlAh~<6d?Z64@TJ~(bfx3X~t9J4QA-X@p%s>;O4%Glr zhloSeQQz{Ew6c*v)KPut4glX?oMG3I2LQ~c;v8riTHSyS(h5Ja5IG&=x`JnB+#4RZ z_|b+nwKB?5g6%lDkL8E6bave;v7iC3-_398iGJt6D<0m==uJ%|Zglr=`5P~GB$9sy Y04JO(F~J6zd;kCd07*qoM6N<$fz@%5w(33+yDRoAY({UO#lFHi~s<1XaE55!2ke-1^@tN zi2wlk_y7P%aR2}ul(R1~hX4Qp4M{{nRCwClkv~g2#&+z+5yDHEe`7BKJUfPneHE)@Yn6lQ*DTK#hYocZPIW*+kqXMvgde1P=hi&ANC zo*Z%JaW3#MeAx*|7EN5=Jppiba>UGe9*3`-Ut9vv>ol`#T(9)@ex%M-U$uJUmm{mj z!a8J;-0L(Ga%efUnz+fFbwa+|wy3}#^$!5w0{~XM+sHM@ysQ8K002ovPDHLkV1me2 Br5ykO literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Generales/16x16/Sum-2.png b/Resources/Iconos/Generales/16x16/Sum-2.png new file mode 100644 index 0000000000000000000000000000000000000000..6e5d8e92634df72e667cb0b428e9a005f6daf980 GIT binary patch literal 238 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`oCO|{#S9F5b3mApeM<0Mpdd@S zqpu?a!^Xav-+_~Xe1&9>AYTTCDpdxChGqtapZ|gMO9qBg0|tgy2@DKYGZ+}e^C!h0 zbpxtR@pN$vskoK&=l_3uX4QtyMkj}jj5-Ev%F4=tbw7cE%6j4!3pPq_Ojx64q`hv-P%F)ge}(eGHzielF{r5}E)~O-UpG literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Generales/16x16/Table-Find In Field.png b/Resources/Iconos/Generales/16x16/Table-Find In Field.png new file mode 100644 index 0000000000000000000000000000000000000000..3a6e075e7cde8ce5b9de25ab9b4b1eea488de71a GIT binary patch literal 601 zcmV-f0;c_mP)z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ-&q+iS5G)phIt39l3eqKlAZq^rJBUS_;I_3dy1TP4uG8%7 z&eI`wa@+CZeonvV%a1SL=S2|_nxTazX$4Re1*SjCz71*w`%eHM0%cn$>ShkEV$w40^gdu*wxzUzoq&Fat$I z7}pjB;K-pilIc8((u%$u#y_ZX{_HX0$t>|yhWDSo@bUFsY`cn4G|_^gf2Vxy@&z8< zxq^D;6#8-){pkd~J)QKQJI&+Ct6Unm2*74`8>47?U*c}GUukmL9RD}GMi78h400000NkvXXu0mjf5L5z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ;0ZBwbRCwB?lTk=haTLaXx5P9kNEeC^4M80}#E=R~ z62^MyK`iX00v{p<83XAu3L&fz7LwtTFe-e|2zm%AAu7ly7&&O=@^K@`H66Q^yK^#a zyPKzn;c7I&@_YNA|HpT}!#STKB5VYk*dP=Du73J28*;^}l&wDc4>shB0vSU{E(xh+ zVIc*JOM;#hk|`l=6h&S&M#j4saZ0nvUWWll>-I2xDcBj-d!emekARh6pR7V6vD*|V#fp;w{8 z--+IC?v9KTk4<7f<|w@dkH>=+4b!^69$!qs(qy5*U;IpU*s+UyNH8XRF~#WHU{26^HOqGfXQxCV*GCK@X%< zC#H#KSep*;&^=rrJqVaNbM_=gHiu#4&=;4B1v-}8m~5TQJ%5bv!xjROUXJ%o6m^>W zwov+%XYU*mldTi&^*B%8l@W;encmv5u2Y_Rd0SCjT@GoioF}bi2}JyidSlAEv#^?E lSC>Ohx7Pl1phSdU0|4)G=nerk-Gu-E002ovPDHLkV1g|e5Oe?l literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Generales/16x16/Thumbs.db b/Resources/Iconos/Generales/16x16/Thumbs.db new file mode 100644 index 0000000000000000000000000000000000000000..3bb8a8610e5a37c584d4ef8dde666457e59b1d77 GIT binary patch literal 82432 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

    el%KQDINhAd*W*%pW6D$ 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 lj%;a7!{ECrE|$dj;qJ=&mL`#<{=_<#5l!r}k` literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Generales/16x16/Total-capítulo.png b/Resources/Iconos/Generales/16x16/Total-capítulo.png new file mode 100644 index 0000000000000000000000000000000000000000..4f721ba5d69dd79d30de3eda3493a778b2be448f GIT binary patch literal 519 zcmV+i0{H!jP)z@%5w(33+yDRoAY({UO#lFHi~s<1XaE55!2ke-1^@tN zi2wlk_y7P%aR2}ul(R1~hX4QpeMv+?RCwB?lFuu{aTv#6pRZ*cmWzW(If%nI5?=4BP%;-YT-Hw2V9)ysFobeNpkS5Eu_hBg-I;F8~Z*k+uE0zm3KY$e0rYe z_3rb0J}MaS4FVyo8uEDk8~h;=K?MUo86K>(6jnCUWkG%g6hMl~^-5sc8JI87p>6!Hc^eME`g?Cd$udz z7@l;JTy5iJ*~!CPBQtKIGj5szv_kg=`wcZ!X+%sqTODjoxd7;$jX#vA5` zL3>jLn`89=3@kmP-*Y`4A#QnvD&rByWthYLc+q9m0t@{xx(Vw?^a5@mk_YUq&6nKv z*)uHa`D1r(IR70>Mb=HS;r>zo&u~dVS;HVIoBWVcN+?5L0|1@|6mpG8hi3o)002ov JPDHLkV1gWH(z@%5w(33+yDRoAY({UO#lFHi~s<1XaE55!2ke-1^@tN zi2wlk_y7P%aR2}ul(R1~hX4QprAb6VRCwBql09z|K@>&L1dD_sP|y(3p%hRiAVq0_ zpAac&BSe8nVbU5GZU~b9fFmUZLNrvQrvuU$AxmHh!9qwRK0<_KQ{Yv0X4W&0VjZ(1 z?8LX(nccbPzIks|ty);Yp6L_FRYuo`C)#97?oAEL%* zUheRo`wtk)r~ho9VfI2hGdqXZ8ZimZ93rW~n*`fQGBYdy{{YR%adCW~a}zd8wg#~p zZ#9xye5yISeviFR-vJt>SM2ry`E=jy;*IW^lPo#S_E+a_FxS`sco;PCD1EXJXLs&e zoK6sDxLJQ1G_X`&pj71xtf)RhrDOg>e4qnY)ze1f2=}+PHll9>< zyPQ2f?6>*VNod6>=Pyk$52%? x6(5D=_sjq%R*;vP*%Y8}4*r8tl{W+Y9RPPs?QT}qs*V5v002ovPDHLkV1nyG<7of@ literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Generales/16x16/Underline.png b/Resources/Iconos/Generales/16x16/Underline.png new file mode 100644 index 0000000000000000000000000000000000000000..6ac4fd5243cd615e708328e50afc7234b64da3d0 GIT binary patch literal 491 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 A`v3p{ literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Generales/16x16/Warning.png b/Resources/Iconos/Generales/16x16/Warning.png new file mode 100644 index 0000000000000000000000000000000000000000..0fca356c06ae3391746e60d1c7fd1858bf1fd06f GIT binary patch literal 687 zcmV;g0#N;lP) z000W>0fLJSS^xk51ZP1_K>z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ;B}qgL<~Ue+U3l=aag~W8>_uM!FSGMcRN7YDD>oW=K_f| zQf6wV-4^Qt-{;JNcQ~_;+@Ba6G4|gsqwrrqhmo9Ks5suU7b|#O4SJKNKC@}Sx@;tr z;mo0@3st;&yNt(AYS6R8<2Or4Zwhdd`ZPznwGK_fvMgw76QP){rt;m>{{$M>M|-`= z{Bh|lA`w?$Sr$w~1G5V~8$WuZjDfZQMT1l53;T!!%&Z36wlSLP0F#4IEYg`C>MU;v z@T?I~lV-_vzJR5JjFRe{YBQpVU_|!0t%WK+vx*H zfTazR0%5(&pG{~}e*y2Wq_=1zh0{&vvxmt6O9xC2CJ*I^ZcOTS2(q4nQ`;|x`qZZcyz6Y;nY(LX!;eJ2046X?fF+m-d-5*il0@~JZ1oAm1ON~u#{ta$9sr1D V4d{?bS6l!9002ovPDHLkV1mU?B_{v? literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Generales/16x16/Zoom-In.png b/Resources/Iconos/Generales/16x16/Zoom-In.png new file mode 100644 index 0000000000000000000000000000000000000000..812c814e1d8a966fee1bf06fba54752b8022b2d2 GIT binary patch literal 862 zcmV-k1EKthP) z000W>0fLJSS^xk51ZP1_K>z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ;)Ja4^RCwByQe8+>aTNdk@4cJb+}!5;z_yvQ<`*g| zCT67-(L+HoGOrz} ztu$p6m}Hb%ODCqK(AmXV%2a)ddCkvPGZN{5&*NaJ?E{Pjt7ct>&U*BCiKK0Yl2e9Uqn47(NmL-100`^Y(rg$R*E}U* z000W>0fLJSS^xk51ZP1_K>z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ;#z{m$RCwByl3z$uaU8|Z@7_Dz=5(7*%{Kqc5~pBj zl!%4WTYo?#5~8;V(x+asXYsWNdaPcIdMMH;3(S9SX{KhH*KOM7oObR|4u|0Hkk+=2Tse#y8r`Est#u{s0 zxmC^Rjci(ui7h@+q{}v&O134rj#H&fc<1fH0fX~R7fW-^xlb=NR2yuDG!hOI@T-7t z69{fIFyv$qQ?@SC|2F zWl32@4Yxo3eT_nCjk(m!%=!r$?|nSb4?oDGySEwnHmgyu&#p@ zSCTtO1f;d+?nzff$3>NNEwDua3V$*6cXoH4iMKR*vA~o(A$2gulq@-b7tfrfJHKJv%DbFsOvg@rusBpwPTu( zpifALJrJ*VuSc}UY*m-jGYnQ)jC5^Ya;C5+*)x6(RqjC(-43R{GP!!fDHih-flK>imRw^9@AepG2~@1>~VyJVCV|J z9CPpdgm&&wxYu*3u0_ZtqR3*{i$_0000U%yxeg5-L74Hahxq?^mqg`ElaILuTf~t?crW_x3(Y2>3AL!+aCw1+(mJDh?d@ z@Q~qfvn*@G;zri#jQnvm2|qqOV2(TcBlbhnhO|9wHai?6jO&;?E}S_41Qr&?!kP>Q Z3^B)Cj$C7A`v`O*gQu&X%Q~loCIA_8WwQVP literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Generales/16x16/db-Previous-2.png b/Resources/Iconos/Generales/16x16/db-Previous-2.png new file mode 100644 index 0000000000000000000000000000000000000000..f673f28204714e5ea1a8e2d724e68f7351f3d1e3 GIT binary patch literal 295 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`oCO|{#S9GMLLkhTKK~L(6-&CK zuOkD)#=e^0fs=uJg=CK)Uj~LMRR)HJW(J0z|AF*N28L1t28LG&3=CE?fSU6s#UFJ8 zs-5fU;uunKE9uYw|MtwP4V{fn4Obc5+}wEHL{xsXzo}QSV#kO72V0q+R32RT=+J)_ z{@PE67?%A!#B0PPxa{XacD6Qlc@Gny$YFLij(?4}8N_m$*sXXZ>}#z*#-Bei=i%Y* zeja(d2@hL~C+kS)&$T}J;Q?!%_ygV}ApXpMcNgfW&YPWbP~%8h^QI*=d6QU`^(>Da goH^5jv4N2xL)QL4#K$~EphFovUHx3vIVCg!0E;F@K(bUAi zy2i{hB<9Ee2ZtCB#r^oey!#mof9<0~40jo3JmWU+;61`WW0rhPLPEud#zqtI119x9 z4lo?F-ynUU>2w3LEL+d~eRF@TPft1b;o(vDHvS{K8W>M5E1s+)p+DF9`7;uunK>&Rq9zC#WoF83#K^#%4aG#zYG);Ppy;S|iN&TvxDf~{}riKB}9a|E7T zzpC3d;ey_UWla+&pE>=H&sz^_ShBzO z5;uJG=DqNwrxqL+7ae3a1IaMKfNq)K z&zu6S43jjqeu=RyC~MXc;PV$?JF!(NZ;PV_&x1D$AI;ovADn$4nc-JK46n$={7j%H O7(8A5T-G@yGywo;i+6Sa literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Generales/16x16/haycambios.png b/Resources/Iconos/Generales/16x16/haycambios.png new file mode 100644 index 0000000000000000000000000000000000000000..693bda2ee5a91778787b80f26021dbae21775806 GIT binary patch literal 526 zcmV+p0`dKcP)o?m5QaZz48**wX1X#n3!3>@%W7EIK0%!)u=4~J4AdJ`Fz~|6a%O@nrmz)L&=tsT zCUy!s{bzROW@q-l|J#NC)a0_Eby3M&Z03B?9;$V|+C28A!5XCuzLrd$)D-Is;N#7u zLB4QmW`hG>K;|=q(Lmgud~T2l{c~U@ z!mRMLCTLeZN+W9k1^~(%0PT8IdsJIO1MQz*h0MA}1zssYqyh7Cq+B0xQRKUZ)r=gj7dCHBgBsZv#c0wutWVekUlw8Yo~P=_NS9N(P=u+DDJ z?TFV)QI={aUN9I;dUa2S6tishAoi0o7qGy4Th zrZ!x27pvuozrQl5?yEcPbO+py2pInBcO(-=fVa`d{;RapJ+S}lg8o&%0fO5_5c6? literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Generales/24x24/About.png b/Resources/Iconos/Generales/24x24/About.png new file mode 100644 index 0000000000000000000000000000000000000000..5d0ba3e2c80b8a094ddf1e7f444273badada7c91 GIT binary patch literal 1054 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 literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Generales/24x24/Copy.png b/Resources/Iconos/Generales/24x24/Copy.png new file mode 100644 index 0000000000000000000000000000000000000000..9bf2618a269df0e1bba70682ed5f750f6faf7543 GIT binary patch literal 653 zcmV;80&@L{P)z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ;14%?dRCwC7Ry#->Q4~G1t{8t+wM3NrSY_R|AcnCMG|f@ke>JZhbn%iU4SDACv66j+L~C;%IO3JMX0H+1Ql&b1mB)sywChHRx_7=hL+|xI5<2u zR6vY{t&2d3)}~)-nU{`6iHI13%?~w#pNId9vgl&~fg(nARV5TL3W|y=m~Vl9_-2-9 zaz@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ=HAzH4RCwC7lWlBMWfaH%&%L+z-nO$@yKZgSX2;kp zZti`)KuHFPAB+ixn3QZHnrWQ-fML;T6cXzQV_uciZ$@0`K;p>n0%9zV6mH03f?zW~HJKfQ+K(wOa85r_;%-CVuF|MVnR>-b*Bs zt2VG|F(Cw78*F>hy6WbY@*OUhO3icqTN-SJwU)dxK*_L#fNOeeqflxw^me#hs_ZA` zg#IOaqwQI>$U~v)1VlrU3Y3Tp!@%D7$aZtWu*Lxr{YSaoFyiNqv~jQ%c%qKN~?-+$%yx&Z(vlcLUR+q}N%eus#m01F7|059%?TH^(ld*VJof$^cv z=p6xtF$A9Ae8>}5c%J3B7vONP_a`zbqk zVJ{fA7=#Qwn3L^iUkAuR0H)HssH7L9(*b4Spl_%rzVy&OSPdvg06YW0571tW>~-Zd d+JAli8UQPB#r(LqP6z-1002ovPDHLkV1k_JKlcCt literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Generales/24x24/Debug-Breakpoint.png b/Resources/Iconos/Generales/24x24/Debug-Breakpoint.png new file mode 100644 index 0000000000000000000000000000000000000000..16e45420228784209968601101fdb1ef15cd0fe7 GIT binary patch literal 732 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 literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Generales/24x24/Minus.png b/Resources/Iconos/Generales/24x24/Minus.png new file mode 100644 index 0000000000000000000000000000000000000000..1b2257fa1a2a432cda4573926a64381c21be0d90 GIT binary patch literal 264 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM1|%Pp+x`GjoCO|{#S9GMLLkhTKK~L(6-&CK zuOkD)#=e^0fs=uJg=CK)Uj~LMRR)HJW(J0z|AF*N28L1t28LG&3=CE?fSU6s#UFJ8 zs;%>MaSW-rmGtNTe|u(KMq%dOgDY4Uiv{pSNC3gJSKdLk#wzhO=Qy@EG&VLWTB=UX zYCAvISo$ivOQZaK35mKI*F_88%+Givf6u_cz+-|0`w^*skEJCi`gA>v&~e~h)OvP{ xr)x*Y#09%pdln!43Nrk{Jtm;d4FCT#Gh}B5-h8+ID$sQd44$rjF6*2UngGaOS2X|t literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Generales/24x24/New.png b/Resources/Iconos/Generales/24x24/New.png new file mode 100644 index 0000000000000000000000000000000000000000..bca2ba79bd51093f171bc9545dc75f4917e53654 GIT binary patch literal 455 zcmV;&0XY7NP)z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ-JxN4CRCwC7mN84jFcioCJ*vXdo5an{Q5;;{oJE}6 zo!kVc4o*(Ddz0WM2zOt=x;TjIor@p9&(QH)?0bKQmZQ|PmozaDnuPNEg}nDdB9i#e z7S|`Umqjnz-Tf0jUmv3S+G^t@SACkz>Ds2*obQV-9-dsWDIkeKh-28<9$_+0(Ubu2 z6No4PAQ^78N@5?lNXgpVh>;A-^~pFz3J^flOF$(=i9!_AQgC*0W0yrPaH;y~@c~B3 zHJ0B?t5$xCttv5M}EoECg=w=6`Er-~$(%Ap5|r1U_)9ItU40dqlo)V;21s x(wgI@n&^VJ)!85~1_Oqp$J@T!N9%gTe~DWM4f Dcm-VU literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Generales/24x24/Outline-Expand.png b/Resources/Iconos/Generales/24x24/Outline-Expand.png new file mode 100644 index 0000000000000000000000000000000000000000..c643a7c0cdd35604de00c74c5c1e727825a31366 GIT binary patch literal 391 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM1|%Pp+x`GjoCO|{#S9GMLLkhTKK~L(6-&CK zuOkD)#=e^0fs=uJg=CK)Uj~LMRR)HJW(J0z|AF*N28L1t28LG&3=CE?fSU6s#UFJ8 zs{QNf;uunK>&n!Bg}~>G#4ZpV*H6e)M?O^Rs7mA6zQ*w`x*}CF911 z9WI-!c>7Ou8GFx=iYRaLeUEk>OPuQWtu$lK8N>N~@sD=D zU0OSF_B}C`)}Aba4!+xRvzh|9^XCT}EN%-h&smH?Yn;eBwmM!UId+E1mPW6}+T>A)~EdWJjT^ z-vq0+2!{hqmuegMYkvHh{P6gBdmj6`zo`-19`k&C%#ik@e|~+2@JWNi^?w#kWeosQ zf4u9o4oy!=X#4-;>+}g#Q>Gm4n6pMgQc_ZaC+$!C1`8q8GZT6L|NG2;_~-2J20pf1 zUkWlGZsl?NlG2sQ$jr>#e6Z)g@G{m!(?7p~cHOW0llbG`WB$Y2<@ZbO`&YqlE)#8c zK#pD9NP>IQwTU?vW({}Q4H66<*E{xdd$tLSyJSo|^7N*_+oDUl4N;F|)15*#BwW$| z|Nnn`@}2_;$Lcrl%Kb0NllCCABj+Aa)N=zv7N?@>3o(Pfu$hPNGaUd1r`8dE`FTJF O1B0ilpUXO@geCy^v#uWi literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Generales/24x24/Outline-Move Up.png b/Resources/Iconos/Generales/24x24/Outline-Move Up.png new file mode 100644 index 0000000000000000000000000000000000000000..3dc2673f686ddbd0a4700693a7b6639cd297f57b GIT binary patch literal 430 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM1|%Pp+x`GjoCO|{#S9GMLLkhTKK~L(6-&CK zuOkD)#=e^0fs=uJg=CK)Uj~LMRR)HJW(J0z|AF*N28L1t28LG&3=CE?fSU6s#UFKJ zU|>}7ba4!+xRvzh|9^XCT}EN%-h&smH$43R|9^oG$Br+tfBd^DfgJUFOw;#u|2Mb! z@p1magk$wVItp4HF~9Wwo#zZnulV{-x_Rb&8D>TA35?vDZU6s#ovwK0Xh$OuJQO+H z^PflDNJ4WH!`%<^`~MmJ`SG>=;Mthj8Qu{drhlIMbKH(`Z`JUgal-J=^Y`{V_v`;Js}f7h|om*~))InO`+h$MS;*B8l+tkXNUSscC>+%K{3|DV$z{vMZaQMtCkUw!?G2FZVa zpUdBx;%aa>u*M;jdqG>h@)~J0yYXc+0x|uA; U`aXP&28Jzzr>mdKI;Vst01BP7JOBUy literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Generales/24x24/Paste.png b/Resources/Iconos/Generales/24x24/Paste.png new file mode 100644 index 0000000000000000000000000000000000000000..9b4c3f0b6c40154f2d9b9a6536957f315743a2ad GIT binary patch literal 738 zcmV<80v-K{P)z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ;SV=@dRCwC7md|SwK@`WoTl)uyMKPe*N<|M96iTUj z4Hy&jB-$GMaS#cFYCtPJh*W86@CO)eBuEhv0!4Z#riT=~C=?Zi#;Rb!i-#6byxFvw z*?H5$c9-n#Om-D~mtA&eKJR_MZ)Rr=DJA}AwAwd@VJHU_&%swg>M4w{2@G4oyS#B2 zK&A2J+bWRC6&;+BsQ^Hwy?YoNJ2zXE52caH74YZB0&ZS@ z;0(Hc?;?^IL#a&2J-ZJnI7o0TFEUJx4_5%Ux<&aB18kXbj3jH7KLfDW05Kz zzDk5%nu90Xjiw5Gt3wh1;L3>|fn)DJ|Bkk3UjBZ0$pC$yGc7Ck_CIO9ib!y01KIas;LMch zk4CU*!+rq3)#98#feP-msBh%6HsP%cyKv}0H)h{_@GH>4y$U9-b@?jyUhQzLA|2e@ zgCKZg0-pjEyfJ|wAUUeHXz)}AYIUJcpn^*>9ry|(Jj(3xRm@C6olDf}BETXA-0r~& zBc&ZS+QBswUI19W^6%g(V6%*XFvE7)P8=$()ba4!+xOFCMckW>Wfm-nb4&MigHg2y(^g`2^&QB=OWQq`8;j>Uwhox=8ErS@T zb&u2@xKBSeMb%MB^C-)wUBZ3u?*{g}3mGe`u`mc+tT@JfOuORP3#aHE94jB`#+E)R zo%cAThQ0Jd!-*gDOkS@mn7pz*l9%n)V6pdd%;L4&$oz2YBhhJllpn;oGdP^#sZxCx zy|MrE(;{I*wr&;4Gn>Vp@lG!8ezmL3WLfY|)#*`>KNn;qT|LG9>!jVMvNcur_b}Bf z$_okn{VRRwa?wr2pDR|qH1oZjW0LuCM#Ap<=CKSM^IQ*^i>?*b-I*o7<;=!Bud4k@yV^ OR0dC1KbLh*2~7YHaiwGc literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Generales/24x24/Preview.png b/Resources/Iconos/Generales/24x24/Preview.png new file mode 100644 index 0000000000000000000000000000000000000000..4d185c12c186a8e62bc67669365dd1e5e027c3c3 GIT binary patch literal 995 zcmV<9104K`P)z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZTGE z1ec&I0iiy$eNd3RFGvNUf*^{Bf)6725+?jq%i!{dxKqJAUA~riXL=7iDN~4e{QaFVPILC4dkTfS~5v6yn;7 zxDYihuSeY!qB<3v%VbHXXUQ8T;fPKm5u>X;0>Bf=SDbZGvnZGqQl~DEH%vMQcGA)p zrMOyP^2{{hh|Z&l7;n7#Jm#87E|&w~=)?(UfPz_J;^TAl4EOWk{XO_JFN&fdrKD_@ zS@_{sCeKW>Z~q8BpNbIok~;g1bCXl2F3|NrFT?SEdV_w-ri&}r6y~#T*3jvB=sr4j zb&^icB7{T=+j*PLWwPWAlfI!oLT)!<1vH>gf?^r28DIz>(bzrY4U^?;0U_@KkWSCi zu`5bI_meTu-yj*6V~z2vST}QKQCbY-L{TQ&KoAJ13N*1--}SHfY%K> zGzfcZC(BmBR6+zI8dtCW*|-;X%s>c9IHFT6RRB;F@VKGX4-sz-)aHl&Ab6`~swInX zM0WHa!-XOrvVLP&zTkA3?`NPlsWykRnYU<85zmX?dmoc$hv zwd+4Ie}0+Q9$zF7PcnAyEsip@IiN0H2YEeiMn?zvBUfN<>c%XJKN3TAxj26KGt}a5 zT)tjm(3PTXZ;}+_bf3Nr;N~oZta-96q!Et~{A16OlBW*6$dMODfro(#d#n?*?M<@y zA$IqnFO}Pts4iYN{#Nn&`ssJhbL{2E8jwLX)qrdOtXrZnSA?{�?>7+f6eBHb8b; zC&^UXo0sU;iRd&&p8bgFBL^FhPjbz@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ;tw}^dRCwC7mQP4jQ5eO46Y30%6CpVg=|alXg*D2! zXc2C-G@=+VX_ug2g_TeX5h}08r z?$_ew=s3UE+ZD zYjE}!Oi$rHSc18>1&&qzQxjqhp7xIo&CLFi)t65x(Y-#=bdM}*y4-%$Cz=D%9EePO zHtvlzl6&B!A9PbV^~p(z{+bfOrv#-GN(nxt05G4q4uIR0ZA>gXAAl7X%KHLmI+5%F zpwNYR;0^APUc;KL$>9mss^8~K4^pm_pp@|V*%YMhgu-IXnVC>@7~&I_Etb-`!C->b z>esVn8C)sD=DgxlD=)vg6x6EgS>#MkN<@k9?&CyQdvdaN(bLvIRqY*$%PQELVWq39 zlloMzzg0~lg2`m!!i@*AJ136JtcGwUd*g4vd8PA{@n41fSRsY@(7x)&^(Hs{@1vRwi)euqzbny z8*_OLdH07&-JTXY2ho6QdW<=^c=KV*JEq;95`7LrS+t&VV=N304us4>*d#{-u6e@e zAR<8|@FiVwda(pta4%zq@1J^^_%V&mwi&C<#+R>?p$Vb^*E|ZX8Jgqs(JmWbv#>A^ zz~uBi-K}-O=YiL^3SbrZayqKeWfRwr<+U-xh$s0{{!#4&q5>S3Cd!002ovPDHLkV1m9I BY{&or literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Generales/24x24/Print.png b/Resources/Iconos/Generales/24x24/Print.png new file mode 100644 index 0000000000000000000000000000000000000000..3f6e3908b1aeaf495a86808bc2c6f8d6bfb4f158 GIT binary patch literal 802 zcmV+-1Ks?IP)z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ;m`OxIRCwC7R!e9TQ4~GXrb!_|v>1vaYN^^HZDVVS zxX|jx`svbEM9@Mu)|IFm3w2>#HlQm5(h{qiV4;{4MT+>TAetBtxc2n$*&}nKyTabIv>W&V3^=GuAVzu+Cuv06`FnK70^{)9gevhJXidH`Mkcoj`xelcBAh06?f(Nqr@@5D`8l<^cf8h9>m( zodYp29-1m?k=I@40x@GIHdof3Jv%qU9|+-ipAQFjJ25#qfvr255TE^FB^VkBa$9Q$ zy0Vt&L^$BtZs~EN!v5EE0ssqmehAEr;X4mm)$}!ugz9P=>bErl0G>R30RRY(UKeZt zplUj9UcFEjL{El2`;N_0WaF7H~jb4 zJURDwG($>Da5-It1f?u0r+g`!kG}~+lBCt02j#%W(}!^?x)HKsbW&OrAxRR_l30G4 zR-!x@j~nl*27xH1D%(M&w#WhC_GqVBz@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ;YDq*vRCwC7R!e9TQ4~Fq)Wnd`Xd1*11+gHlQlp|S zL@;3eP^p9pK?n$46cjfGEC?c!jVrS#)^4n{HK99&rXUIuaMh+@<3bS=G>d*rZJ>Tq z#LRuy#Wd4QCX-Ct_+S|3&b#N_cka2vn3x&=bD2vYq7zdaVte>#1T(J&O{FoVaAsDn zNNkeVyCShkj!&id$ocDBPQc9AQV$v2E(gM)Aj(MqY>t3P008VZi!O^3~dtFz}%t$y^c);M|@r+-ki6N5qOH z|8F?#H<4e-BbUno0G>w2jT1ciG>n(?&j0{TcG-zDKVoQo(XU8#;^1CLLV##LVs8@0 zPcXfhMDN=kP2AVw#qnMHFq_VRNUVYj2-1#GRTtf!3d;BP`&ha57rz33(B|~0_LPE? zVBBfz@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ;5lKWrRCwC7mOp3|K@`TnT`mf@NQxllNRdCnA!y(< zWgv|R$u;3x3+scV@D9Nuf~`R~OGP0~Agx#=opMd;q)E`&*k~mfdVapz3%>EAB@{?p;fm0fPP+gvObxl*Y!GlQ8U2e#P!_|vKDCyO^s zUaeN`h-~q^HZ|}~DGeEhP)b9E8cL-(0JK`iAR=sSwagmdm2aMSQh6a6tN9FXO5=jW6`~q4t zRH(7OeA9H7I*1%;%{_B$Hdzo2caXK770=?*-0vW_z|ONOrdRhabxqXf3UPrUh_)Nc z5lcZa(`ZpPPc~GTu^fI5!cc=qV&lcrOS!mRUb+}j)OE`6;NY!QM3R6M0we?^39L2u z0RZ2>wXJ(#&OsvH%Pg@;ygCHr~jZnBNx`1mc9O0$@sU$lx#8Z3|vKb@q3 zyCe}WmmgTgRi=O~{Om>5izpGFm?&Arr9*)N0JPrR^_q<%o|zr%L-gVO#)X|rBIx)I z$_tN~;dveapi-&-mlwd{;XCtB_D21x@G;`}Hvk!=UCp+d6zTu~002ovPDHLkV1jic BB-#J~ literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Generales/24x24/Search.png b/Resources/Iconos/Generales/24x24/Search.png new file mode 100644 index 0000000000000000000000000000000000000000..3af96da8d230999af504afa00b7129532de6ebf2 GIT binary patch literal 631 zcmV--0*L*IP)z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ-?MXyIRCwC#mO*P1K^TUgiAfLDi}fH%Nd*ro#juEw zpobzALQ~L-u!uq*km@zCb121Jd}h6 zlVVzX5c=I_=AHTYp6_L5gi?x=3=bz9|9=86fDmF}a%m;5&Q_iNIFU?|PQMW2YLrs@ z35Lb;qGP&DD5VAvEv>{AKt1~v+pgd^Zhx(ZprSG#;C>jYdb8!;gkhtfn z2;T*)j1Cm3*IWvPG5~WA?-348qZ?IpLn1EwdG+=a;_3}FVyc(KbFjJ5NQiK7dStnU zLYZuKd*piH=JliZ;8)kfwqY?b;T_+m%THb_fWXuwKHnMKMvHcP57R2+HrnKJCW>yK zt)|74-+zhu`P&E~=ybZYnm>__iz6G@wu5OE+1Pk4yaTp7z*IM?bj5jc8GYdJp4V?Z zh^uSCz#n@m-y~Ljzh|e{^=X2C_@V)z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ{m6@)MrB@RsK&40z^)?m#Avpe+g_^ zR(SWTIiI7doM^hHvo#S>BckKB(a}fa8Xp3oa`m#*J+*KMPiM8QQ_o&Uwm1k(yCO3k4hVpq#px_BNNOV99eW4CXgZ49;% zY+EM$zaUUm#3RAp{x~n~ZKm>_Hdd`zNaXEY-+m(rWf{j$r6N^DI`?D5Lm*1YTbGIc z6a(Pc8!y0=%h8psC|wPCGZ#6KecT6bjBvB(fxCXEKhB#U-tYm8jN0zr4Mk^D%QV64 z1ves8Rb-Qq9wZ|@$g$6E@k(wcTQ{vBEzM%?V*%c;@5UJ6`{y#L?y8`3-OA)C5|552 zrKjx5Uqg7?)05YODA~_0@gHO&?*}3uP_ygxjPk{FvLz^C#WX^rv^`k>bQ5Yh^MwRxF7y} zx{zlInp{6xpGQ{lS*j<}q9a3StPkn!p}bE$E^D9+@>q;e5^2pKIn7bM;gx4(sPN15jIkjy)v>;g-guPKqqc`qzIE)lRbmpaNXLKL-F>Y`8>EExP*v0000z@%5w(33+yDRoAY({UO#lFHi~s<1XaE55!2ke-1^@tN zi2wlk_y7P%aR2}ul(R1~hX4Qpcu7P-RCwC#lrc-gKp2MK1Q$V97o8NbileLO(4nP6 zgm&)cSd5E&Gh1+t^ z^W9x|IU>R=GY0@1$3c>{1b{;Tg3rAL02i5byy!V35kZo*gd}TMcg7?6NzWWmrPiW7 z;pkS9wFD8tZP|iA@aLB%TU=qA%vS5O0-3SD4cV6w!8-4`Yle2uI zS~q;dyKj9cs@_N?V?0v z(btiIVPjv-@4(4GzCyA`kS_y6l_~>6Lo)-z&;LOBB?CjL0RzLU1O^7H84L{K`IF+0 zx&hUm_H=O!skrs#sx8+c2Z6SSq0( zXQp6b(6Z!4`u-d2U6eFfA7p>)s!+gn zb%nJvYq(EGtayQ-%TanXm@SmpQKn;bfx~HRE2~>%7>fQ2h0`zRlomj hGvWWj`0(|N3~kDXn3}5p>;ig=!PC{xWt~$(69634e6|1p literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Generales/24x24/Table-Find In Field.png b/Resources/Iconos/Generales/24x24/Table-Find In Field.png new file mode 100644 index 0000000000000000000000000000000000000000..7b2c5f63eb7ac50160b78081879622e18cbea045 GIT binary patch literal 839 zcmV-N1GxN&P)z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ;y-7qtRCwC7mfK5IQ5431hEEZ`_NK0WE!RAB^5Poro2qYb4K^x zJsdrH8g)j<1&6)%w-)rHJ4Y-%aib`N1S6u*jioiBFcv_Mz`Smf&KsZ^ zYIQAaVk0Pe-M{$`ZeMzcLEzgpL2g#s+VxZlAr(SMgp>%Oka9&AQX-^6N)u1daRCkS zy+xZnym#p5`XvHzI2^Y9jhdSXAt@>>u;Eur%MnsiUE#LjX&D#RCphD7g``x1p)gN< zr>w{?Ry?)vyA{W6kvj|BW=2A>C?rE;zc$XG$(7EYW7lvxod8r+R@?A$j|+hOVh>U( zYOB5RW$>XtOfVGY=-Flf1{YFzSd+=6%I8sdLs`02^Gi+_i$YpG8k?G3KZDk~EMB}F z;eK0y_wTwXDK3Ph)F`~B(!-U4QiM?WYOlxNgA7LtGhvP4;Ylmn%0f zaT93ToH=;@#)MS_Dwa>QG^`M0mp)?b#|#nOU}AE5P4{?w*8C=K^>54H0RTY1{K#`L Rchdj>002ovPDHLkV1jatdIbOg literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Generales/24x24/Table-Search.png b/Resources/Iconos/Generales/24x24/Table-Search.png new file mode 100644 index 0000000000000000000000000000000000000000..b145e046edca4bc37d1cd8329f5b1ef49a442d99 GIT binary patch literal 1143 zcmV--1c>{IP)z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ7p7FAtpu>BJEC=*2Hwxm?kEsjT@V&jm1(CNL46U{)UcF z=#)R(0v$TMAKtqzpjgrl8_U_;zjM!b@45G$b0r}Jn<+AzESnCH)@nz4AE~cIbEyR2 zzQ6PH>Zcx1T(&_s1xvpIab6}BGbvipVjjl^0EB9TJ`R3F~!r>r3pO5`@?`;fdYHH&2 zPyM|9LJ?QzWq!E?$oLoD*UCRys342tjjm zGsV?)oVjonfJnZ^%y^s`U}#nE&~q9C11r070T)|;q_6t|fk1!*hu+T&upL43(PMmj zx`WE9Yyt(j3{OH?iN>}7ECUe_#8mijpT?D2DXx3LyRVi)O(Q2K%3R9K3@{9nqs^bO zkTM9x3P>gADc+^gdnHcq{Wt9;jW5o}DN=042m9&mZlkZK9aU8`pMhiBOioR4tTN8= zo^n!iNw!73JmEJ`Dl}{dVqOTVkOZDB4Ab$$Z!DV&>^)G&)~)%ty$W}A>*0Vqcjob* ze~V~MJ)dTsF}uGfKDbQhn8M}je-NswAUB$aPxYhgcUW97P_y0m16v4XW#bQqu!IN4 zv;iCGApy^Q&$!)pcAfFo+Zut60lYmENU{rr1NTC{Bq7N%5}BjuT1M+Ueo#Ceu}BP> zYsSBBpO*f2MqB+%$lnb{9=Y)cqen0>a1cU%#Km-s4ZUD&7t2mfS05<_i z;1+NjkOA%j8h|Vy2gm~oz#TvlPy&>Jdw@2e0^A240IGl*pblsP7JwG;5HJLE09`;2 zcm(JJj{yU~2(Si>0TaL!Fayj1O8~jvR$yuaxByQ8Tfh#m2OI!LzzJ{$Tmj@VZr`V1 z_J1T5P?`-`@+x=*t-;jp+frbG-APWAo_2Ys{W-)%L3HcfSBMG_v zD4+o3=KS96#{+q-zi&Ts*>eE$JwZP7+xCx)3&{8M@3nvA=PMZGLB;@N`$xtRWDNLQ z?H?H@kTKw|wSQz;KiWSd$b*a{%m54U_u4=5HRJ)1?H^gjKWhKTc=5N|KXQ3w%#i{9 zQTs>631kdV0sgZ6Bg;X?5M&HMwtr-tK*oT-*ZvK`^T-(R+xCwv2ig9SaReCyknJBC zBakuRAGLpEj6g1rZ2#_n2jB^K0p7q<;1YoR46uPW|LpVGEaZy3w45{q1$?L;fq#&* z3D87P&z(d52ND|i5B&ljA zg8Uqzpo6tVuJHGSat^HHd5jAeF|j~~a?nCiP*KmJp(58B-Jdb}* zAA`o0;JQyl>IGWKcOM8<`k{0@kL{ja#3UjnAtj?{U}R!u;pO8O5EK%=bz4eWMpjP# z{sUDtbq!4|14AQY6H_yDdk04+XBStu=e~aa0f9lmkx{RrV`5*&#iylbWM*Z*&B-k( zEi136tg5bQYHn$5Yya5sX<%?@cx3eR*!bN1!s62M%9qtO*v{_W{=p&q=qqx&P#~zk zY}T(^_7~fQ3%2VV8X77Z26DSl&N&09xM=9txX zxx?#Nidw0Iyhz{%bCr!S#er6nCyF)NXuDKPflGuUi;le%I~I#p0t*{%Md6Fkc(_GN zESYG}%eVX)<~CMkAFo~6I(km?)DVOI3e^+twYevRu)FrY4q7udI*0FCwegig3K;Xm z-op)?ZM|o$uFtQ{TT~n2aaC0bx!&)x3Qdu$mEC;CEhPh8m=_Odpk3wZe$&C`{U~-L zR?Bm^R{No*EaYS|LJ<8jcNmw9q-l{@zR|_1Zp{PXH$!QOI{hnW5b84bPH!p%8!Xs# z^y^mC+@|Cgy@}O|B1cgL-fJrQm-LgGgmG#vlAfeSGpxMRAquI3r3Qk3yL>B!W7NDJ^)H zyKsN8R?{ObQtz1v*ZQH{;pq0z+1QW9b_E-<9=H1(SE-s7bOx;(`f@0veVTBoY+c+x?R#+skuAuR`9QXKKqg)7Y?G;L zartZEAbM0&VfscNqNS6DLlE_OvJ9o|Q49{2Hh&k4z$h^B!Nc*gin1ZggfY!MG5;(Y zLHR3@SxK9N$CV=!ac2;WhO2903^3>5GK)=_WBGw5a=HA%Oby>Cn_bZjl3~?o%oahk zXNZ*75cQ}dsCtHG$DEa3Q-q?Yg;);7eR+~X=l74Qu06E8aN8#$Qe90( z&4}KsGa9-~<6_#Bq-#Px)lso;RiNVB2k$brl21}w!O|-kwC))hT5F&+)#WdR85h~6 zx~M2$8C%1re;-eN>>^rs^OCk~^ib66&#*S`Uj6rLGglnMv0U6%nomXQpfmn_D??u6 z}6trPMJaeIkX$WRE*X1(}L)0!rA#sCn{2e3!cU7_Hcf=ozgz8=ZO(y_7<8 z26C;Me1(<$e3LsVLEiXv_>4_w5VF;An;=n|L*jAE913AJ?s49HTxh08+qCPfdvbMJ zFzZ2GgXp`cEica((c|L(6}6Dz=a=*&{+xgV;Qx)sKgi?eKa&2H^DjD3;YASdkqLRs z{znqBe(=_P>#qQZx@W(qEMy7`I1n{TXxIRw^%h@-NpB`Q zLem$tK6~66L|{3)=UHH=x%w*SXiUlQ`Hf4_4N9BDo$E$*Rf%rqq19J+xRZ9S*r6j4 zVFO?a>0n|6H`8n`(Avd>eo`Y>vmz;Ssp6z)VXl~2BwHQ zxk8OEo$dzK#q5)*cWMn&ocf1+stotY{oR6h$a}-ZvHPjWIRlAC4(@Ot$U0&NVm!*; zrhy%*K0CfA<)-1r{X|8GRdLtu^G-O5$7AS>PXoP1&_26(tK=tFM{M#3r7uY*UsIj0 zOu8RA&&ZVVObl#!Iy!;+N3{>ag7GiY)$WCE+c<9L!PCB`C|;5;kW7*DN6Rom78Nf1v$V zzB(u)LW`I@Jf^GaJr={|t@5b12=-M9dHfFV5r#7RVm?oC=ULu{$-?oDZr)f9P|1^1$JA6zp! z=E8B!iS=w6s&~sy_*Q)BM(q`-D4xj4NZKY^e`r33k>YX&X-#H;5&7kO$bg%)9K`#M z3}luKtn$1KlgyySBYgM#c_MXcT5y%7)N13J318R7febNJ{lFU*9$4p`X)(=gQNSrT z@VGc$x>`-UK=NS5;zoYHQ{MJbDMK9vbW5Mx;9khNJF&k?8LsdymByaBbGUte-TlF z=Uc^0^YjheF@;MVghT6A%d}CkVf`=aEamfqbM1~7Sli}FUw6zoBj6zyar-b9gK1GEKDO_iJDR~H~87!9=tce$zkDtly1wG3T@nsgL zeR7d9ysux%Q-?pTOgkk>PG@XSQ2AM7X-Wt}ZXuLd3+9wwIQ~V8ZX~`kDrb#YrNce9 zP0Wmld2;jN%Ju7uc~%nFH8GhABAjKhu*I_9RbNvS>5oSEoNtDE#vE3S&Wr%IchvcIcC6<~}{xgX4(JG;Mg z+Mv^aXw!NI@nv1mSRCOsDtq1n8?R5#+;HF6*H**ujGlkA6;#Pjj@G8}@&ZQzH0iKe zw#dWr~c9}@*n);20X*Udk^8q-W}xk-#_Y2i2d z8U52U2^3sRrXo!HXgMLdHMfZ1;F7=EZT4#b`VoI-f1dyRDdUg8ukYl)HuJCae<8=T zY<%y36a3ez{dFm1{m3y3IKc1i|8fO+g}(QH3H@5qzc%x)Y=1bYO6`07T;E18{cCk2 zmpTu&A2~h)TnGQ%+n);Z9)ExR|IF8qRg52~bVsO+7&JL^NTh#FF1#|2?0%61Xec6LSE(1-4abffjJEH^}Z?NH0Ug372}eZCXI zFCJ8Y!!$`e)9v6Ztu| zf^uHWuviX>Fy<>yoRd+RNaze7#i-ON%ykJLZVJG#flzt#gyySSQd#qp2)Rpz za^CwPx$2_NE_+!%TCjyS276(^hhelWHBwnQ(3;cT4@4RQ!m0s*`Rrs+12Mh06>BMj z!_U|))|d}ouH93=bSJfl#pdfS;~49fd&=`uS`VdXySMwbXD>C7_2J2~bwOQXl}sIu zAE^qkaVJKH3SD@fHtPf~pCsFVSHn z0cZr?10Min8O>nY0<;2cKs)de=m0(eoj@1R4fFuLKp)T#AeSEm(-mMC7y(9s&%hWk z4om=(z!WeI%mA~%954?o0E@s9unZu}JOiBl}r{FejQyO+HQb2X8C=0#)&t zM5`H5;d#Cz2Zs!zR$<=#1+dzl)fsZn-SM2&22pPeIIBXWb|?`uM`2N? zchjwWcHa=G&K2vANe>Y-{F5kc*Kw%Ig+==mIgIzp5h<~;_Wq9S49P)`@1|E9cn0`% z9^3be6E-f&k_Nj-tgtzj*CB@;=mJZw06YW`( z57Rm`T{+bAHv|}#J#&yqG z*JU0?Fh7pR3Eies#$P42vd@J-UK^tg7WqOYZ9?=VI5)RT!F_iim?=BnjHyVkPlG+9 z_t)-@R+PJ7^sPM@BV_d7MhUTik0&bfGx}|m5Hgn?$l(OWLmPpy&3`$b2o0I@A@+VN z7;%KmY4&X_^KWzUgAC|@H5WS=%l!n@ZwAIxT7xzD?NSV2iSx*%;w5$)LD@IKSZ$lX zI-&^!nTw%a_?IzHmS8RQ!Fv3*EIN<@d6o9Ra@l}-UH@AiCh+t{WS;Naa{qfd24F1s zUzUZ5%=hII_#bG-->xVB?0^0_e)F#mO#Q!f{h9#&0cJip#~+ogqkNLMt2dyfZgM8RnYGuO(MIk$@k!HJCtv3sJt9SU1 zQr1pAtU4(ArQGmyhXrMhJ6^Ng8_^jK!&<-&d$%w%jz4#hp5~(7sxItV6kIluv$YJJ zI;rEn9V^?jwbPXP03t^RJ#U&8yx7*=A<4OsM>g;*fUl-D<=5bhj4=No{fIx?AXxv5 zKR@Hoe=`1DA4Yh-F(u3YYMq)RW#*3ky3sUK#QyTK&iiB>rpe0|E8-MhpM^s!N~{p# zMwaZ)O0&mlUFjWki^{#$4m%L$y_+|n&F#sY@Py1YFB0g4g`0}my@{UrwQ2T}AR|i@ zx?njJpVct8eZuL}F7L~Q9@uk=l8QFXmBIo+99tSwle*nDJiR1m5H;L1XUwPG7ipI# zU3)AxzVvq%3koiX6$xE&&8}8uHlqjm4{I@MS*|PZ-b>F0Ak}>%&U@ z2u;6ij<1S%6god*QOZPT3ENinIxrbhZS&CR7gd<|zSxoOVtjyoef|XTBJU_@3cVV` zHRN)k%e{|na%*5%Otf@fx(Xjnl!cC?p6!I7yKGfu)wZAbC5K+$Q{0Nay~!%&c(aLZ z`IS5}FbI4&_c4onfx4@LTB}l`nUo}E2le+L@uU5p{cQh#%JYBjKi>cN?Yp5@!F~dq zVtzZV{0F-X$UBe$>)Rna@;jc~|0w(4eID8Wi9A<8){RVmH}m%=o4^z~-WQp8{tfkC z1Le>FzqkG&koV>H?dSdD^?&=W9qvC-{}+%q;d}jm=JS8$WW$PQa)u%*d~EG~C{cPs z2qSo_*_<-OJehgOX5>lx<$T1zo_hUq#tt-T>LH8W-2Si@C#=N)K8 z1f6;wd)Fv;NoHolAT0w|cL#)tQtqnLnnY0q!gF>T!@~`F>A=1t%XFGkTWY|HZ&RsH zq#aW(YN?7=oK`mD{A~65%-|=J=Xoy3fwVMQ|qL} zlws6{H?Ttcs)Rr#1iPJN7Im=io&v>Nmfp|P%^!~SjE+a0To3XVa7euR#Mt#PT^?fv zIwpK*)EMHVVWvtVq2sbeuw)Qww0Ct~cAbL5Xi%g=&Ym$?LmHLP7FH!HTL3sPi4TZdYhB(ACouX3B#xGGx zC+J)0MuoM2z95jN@-;eZT{{j2C|M*kxKmLCdKXi5M?HPj|Du(wd zC0*uUZIusL6_VjD;qR0ZUV9zU`%qmShS8>F;#U?#Q?F@lTpb$C&VCR_%I$A0iz2Zm zhgzwE?ol^Q0M~;>lugVK%h>U;lG|p{W#6wZm7@uLT{y#{8X7olKeQ4ui@DXg;+LoU zAXlk}--=b>P{(G?*7!=x;G5k0Vc`nN9ai(5DJT!eCKGBCk}g~LR#sQmz3Lj7=pnjo z-_vLNQZB8oNDj*Bi$@Q4g*IRXlngl%G>mX!4^_%xJ`HZ^VCC-6=$BlfWT8>^m@NLF81MELVP&!8Ox~oi4yhVzMRiGR93Q!d*cMN;Uz} zRHq4N8@1kyw)wTk1lQPUB1^Q`!)oRF$~MpA&?**J6bBS`n#OP+p-2&^=eo*#ix^R& zZJ=LG74*Crf}XYC_HiNi>R8AyAvo6I%iDsY1)jG7-+yKY_hhjCZ#mgOCS)A>pE;HP zM_(PXhYcH<_xtw~f5abOus{5H{`&L$^*?z2dQcR21}W!k;S8WA-!AaDoigU6=8UmX z^EhNe!CVfr>%FnW8qcz$+DC|fOnrN+UWH9_FP4X31x#V)q;PrFsX1M8&D!I=kXoDM z+tV}1)i8Bu`JG-kQ+SXluE4W}!NPg%6cSC@P%C>ZbPEYMgMi>sWs!&ogd$=m0CC*M zM+c3mpR>Vt$!ivf?|t6Ayo;6#yXh6txJ?@-$zOqU7w27@#awo9>#VIRQ(LyEQNeUw z<=*DRVBg6xM#PfG&FHyzkSn{Crl?P9x^cZg_#$dV%OH4 zcU*Yp_HH(o?ysUcB0YTO(GcLen7A>1*|f+TZnAI&x$L0?m5!e0yf}T!HFc^* z^!Wv>rG@9@oY3ogtP=$4pY>Odg)OG-Y_uC17wd6acSRLi9_wvI(^C?tlt+H~S~*p3 zb4Z;;R8h&|0m`BMNAe3r{gm2s z)XyDf0$_03yU@+hQ9l|VtA#ZT$%29m%A=Ja_uoqt11?he?V}gx;3?(vkg1% z7}BnQ-OHhRK`N6H&&p=~$U)2tE_BQcZ#*!C_fkxwz%b3JF&(q)^Gs_>qi#f@F$e^P zQEXw>RtX9|`g{ott&&b+8hBXz`6%C7xI+J)YKvwEtAK@oby4lA*RLnl$oTX-(`|5t z0C~0HFR!0)f#okF%lOTe1Y|w~kn<|I>y0J&hm5vA;$QgB`1kYp>pwew^tb@O#fuA8 z6javD(=zUrLZ1}*P=>HeD`cRZEk1Nne(RmiP2#AyMAHh~k{0Vblb7C=>+o*Ga^60rUoNVd=w6>`ZJ8&$ zz|7~gJ-m0?I7{uhe#!*{k;uj@qcYHn)A-oiKgz0TBJy_F)|M=Bo zEdM1HY1Uv^cIaNH`vRX|XmV}(^d$J|IHtk@xk{*0FrSdd$1P%ZQq5VG+6n8EiTmB> zB^%rcE%Kc7B5w%adu5$bFfo`q=F+YM83yW;tDrCE=;R!T%D~cv`za>*MpnI;b ze@%5~!g#Sap*RSW^_|=&vI*5O?}(lhx}jK^o#XJh4Ymea`0;`=f;O3o%rB*7-D2=< zuXAqnJ?nF;p%lAq;|}h$dNgAVrcq+|A%@pk-boR{_P9E7j(6ah2PxA1U&E{tI&oNV zLot>1a_Y@mw+S{1D>iBz{>E^l{}B~`+*Ja3w21SYc&7qlo$`~_zcl{w{qg=M6jJbFk^#TB{|f=~DtzyM;{P|)k9;@r|B3o9gA3;7-|H9n zH`GrK>ZbT7>c0l+*ZN++;2*F5+dcY_=QY3g_2&WgOMR~&dE2CO0Jtp=1Pwq3&I1_0 z1>hop319)20Bis`mIwz-uK>6J9)J%J0E7S$Kn#!oqyQN}4p0D;02Ki4Z}hDkDKMo0 zXaPEa9$)|%0VaSMU;$VGHh>-A05}0IfE&0DAlHc(O!)wQKmZT~gaBbc1P}#o0AheR zAOYM2B!OGNZ2(!0G?>Z&-hdn+4=4b407XCvPzLS-_W%{(KJWlg1=Ij_Km*VOkY#Fv z=|eyV&;|5>M}R)?7%%_~0VBW|Fab;fGr%0M0FdQafvGiM13Uq20Xx7RZ~z5&5-YXK7yZnMhd#!Xe=Hmro7kC#U zbCm&J^cij@&6Kihc|`G>Ip))}RYMV5h7tZ9m>rh-Xjb%2FSXg*u0*XEz@m$LxYG$4 z4%AD%?&;{MkGUnEHweq|wGCxrmfN%LK9X{@a2|6@pK2iVFeh_vQ51h48ynwHI9}TI zt|HUGkz$0{j37#pG}#b~7kf!w{Zdy5f8m$7+vqB>Efo!{@OG%l-FHzvWw9zl@ysIN zeg(!;kmk<|w4Z}n$MP3AG@FeJ-S!x=$+H~?2ijd>GV|g7UZn6W85mWqQ99NHx#Lrv zF5FC3y5owl4D4pcHK}>JQm`FrZx0SGkSV8kSYg+1`q~gEI9++<|LFRarQ*x- zTY{FmQiNqCbsWN1l4%4ith8o4Yd^zapWOuGimb?YrpL=0j`6o!?=8DHHn0jkXrGFiLzT8~zCDUE<8w%QGkSU#q;f-i$Av9SMCLe@8 zQnGf5-kkLmX|CB{N+e4Ov9xAqFW}H_>0dv@BaEMy8xUN&)PmiHS{BWu;VYu~QVgeg z(?FIQy^hbKi2Odm*ZrvVlyMP{f-}f?fB9%q?b5`{<4W7GI`siJ>vz!P(OWPyFTC&% z&2lc>`Q8Qv*)RJxJv`GpkL0a(z0M#cGuygSWRBcD_A6!#^O36-7LBv6lRcGunHHvY z)TJ}+C(3tW?jEAB=tVdG+`h7}N+oY;1z_1TVNw(qA3TCJUrKHZK4O_@9|lwd2)t>b^k`lteJX4g8c{JmO|xpGq0{CLgSL@q5yODDcu zHSeUhy0(bpjfsQj@N4r$0S#A2L=|W2Sr&Am4S77e)2nKzj@{AC-uaQdr@Z#NgcQ#c zQR9#9--BgU=RVXm8+S^X$BN@aJ*SxQA+vW`9>(i`W4%_(;R^CIk-T50i7FJi)aPf^7RPeL1w*iD*~uPFyki@(!m*Q8<2Fx|Pb zZA`tbz#xc+`<`NxbPEjU+W&Gl+dnHuMNRgg__Mi&{JnH3t^c}V0XRsO}(8IjkOA+xB&$Z@TbAddmK6X|bz>3{SeDgBIJKl_jV!~IA9O#J%P zIEObtuF?>$I9#Wn-D_iF^;XLz5dLf~`Gmo>Pd2#cmP~?u`D^_TlW$UGoIEa$@|ubg z&Y6m;b4+2Hagys{hw#A?7j?V`E6yOia%T|B!_$?Xq9^d$0uQbP%@BAS&PBPr7f)z} z*TxgV8SSkmmJt&IHf@4E+ip8%{W)PPkvW|O(KVX;TIOdE?PU8`dCYd7M*3D7O&Y_$ zCa2CHz+D$uKkj3zrkd>~8Qqn(Sx|1I2o}V9`(eSK^hPKl%(=M;ud9(*>|(2_#&lL= zwuF!H(H(w8xT{g=URn`Hi!!cM_1gS+qq`$dr>#nBzg^5~`MSX>=Qz%6KyU*U{J929 z;MrbYsC(1b{BC#mObzT&es%2A64^m`e{a_VyUR~5TP$H~x7M^(dtzr6Cd^|?uL;r? zmk+ATCw5;l9k||dzRT~t^m|dJS$zpeS`{qLlcmJTig`?qF}<|WWN5DI`nc+nGeh;B zll%T!+KIP1J&P{{}F$X-{<^!{Pgqq=|6b<^mVjJ%kY#B9tz{X zabFL{{6f(sxrbHJLjF#7@^j@En@rOsKOXS?&PASr7>C|N@l9|4%?#D8usc;If53`L__e;Egpqffm z7tyHW02i}7;0&ck5jDzpnO^G|ZH_&qfmWoSyrVn(`tU%Gj@8@9)7oICkmE5M ztp4*2r;?}6=jkz2p)=q(v?;}3nDLo|vY!{Tm55yEg5UVMbojLl*NfwPs9_He!M%vr z=U0L%%jL%C4?Pe)frUEZxF^w#MmWK`SSM*^dPLyfG!}16j< zHG`oFs{;0Z;|04WnDR`SFItD%h7O|H-L)kR2nh|n|HY9@zXT-YF%lkfHecl#a+Jb- zaE#;x`ksG#jPwXRjqIN++aOgyO>IYUhuj4By}S-?tbQB(PK6}+y$W{l>kC3)P6*8L zf=9W)v+Uq+0gw~<>~-*47J}dY<_3@4{`R*dnDYds{_?vS1jrf9&9&!X9i+f*YjQ{-B z@A+c|{%+>)Ps)ORFGH}uKql@#UjIM+`x9EAev|L@U;j7MkK6|$uk|8d1LQXSqhtx{ zfAPKkAN$Yy;QjbB>^~nt9{s%k|F_>Y`19ZYpBmO1&c1i!fNPDv#$n-{r{rerr}D|` zxu{pD)F}LV2t2xniInbmC=5cVVNb3cpOiG8K|)4l-e^ip3&Q;RgA{uYUfm6n?Rdbi z=Iit2A|%oAeecb%E{*KN1n~g4Iv6@*6+dsGfUO?M6%`u&l|NQBZ#}zbL}4uSju;hp zNUGC-r*M(9Yl!%jy&&$|c{YXpy1_FDd|2@ea&Ze>eU)OMMqK*#h?~e*+BpUB)l`QEf_-uB403c3bp|;fZ*m5q@Bg0N#W?Wf;6A1XZ4#(zp? zFFZ4;U6m^+|-2!x@CgUJu%rOnnAP zF%yTHWqI%DQ2)i>Zp@{3D0pD&;m~|+`&MCNpFA@+s}EJ~1=7ka*YM7ve7f{b@cq%~ zNWr~%AuBa;IOZ9ITewQ9Uc5E27s1OIa0Xc!S4NPTr66K;82!ZPSH;+3m}ar9=vrfN z>7eo@B_Snw&2%rSa1zX}z9e}nSs{#KoMB>nBHmQh?bSm7+kS41X3imA#t`@sqw6Ev zRv^aEIi(u{6pnnoY-;vTi*BvkholQh^Dikl#jNgCo9VAhy_M|g-u8^{Bttc5J>@uq z6xWG=y=A6T;bu_(qz2!h&5MnCpBSu|Yyqows~1Q3%`4;06)O*F7(^^?KOvo9xh_M; zvUN%J{?m)CZm#F*ADWza#GbzD@z707nbV8JZ)*^!fcnKpM(XM*q%aJiLByGXx5UD#iEh~hhRNy9()%{!6`&N&a zILbvvF5~e{EVl0w20BcYfty2d-&JzmBXkTkoO&0=L>CuVCEH+ZoejC%&?sTCNuZ)d z<=J&&|KXHkgrJ=!a9QcGfe?uYW&P3OS5;2`8QlGZ8A9_@92oXe!9lu($w3vzwYw#v zkBZ`!eaZ|;)3C}R?}b*-mRxq{)ncImO4SytX({S13HBLZa6O1hgw7e3re`BazPTH`Q?cpNOTJfg{~%rd>&M!PF|@c8M=n^rzOTrMjWGCAYc z?k>TJl<7j0@7nhZz2`ao3}NB^x=qt_>>R@b+OCV}zLu9S(l$IOUKzcS7lpyh@?d7F_$qhj@5T?zu1;oi!5Djnn`S7=TOqEo96{oT1g^b->rRO zn`|*6h67jGX;M^Z(JC!ENPZhceyc3U=WfaF`<~giUSHZ+N0O-=IE7f9gj6*iINjMR zKb{PK?Mw+qfn4kjt)m3La-w+#*$ZB)RVBTe?8)jsnjj_weY!Wycm^3@jYph80>y)# zd+!}ke|?~Af<+yU;M{p^+8s{rl5au{gOoU*IUVW3!F21=_)I8 zHKZ+@=7M^lhL<#Z2<;#rdhB&51YhMD;Dgp*0#+%GvnP)(J?TKm%Z@iY-;WxvdpvRQmJGXR zu`+mPnKMG6EN}4Y!Qp;UWS#A?gjplLhbEgBZNgnD3bsw=!EIgEAPt^Z51fM~5=-7O z@P9;iVWiz&ol6)_mW&b$gxf$D+PuqGLJR6-@*d7;dGPo|Ox%sAWGL*bVXKIE3i}wm zwo^2II#!QVNc*-ZvLF6A0&+jg%qPDZn&{b6crYa@pM_Q9Ho53kwpP3X4~mmKlht z8`pm6y%fJfEf4n^oo8(A9p`Cvd*y{Q#D^`=ba03-&9RXkMlTs6A9@CafNi=129!E@TB`i_Bt?^xUiz3Ech0lT~x%O)f{@4N?(oECo`+od=D~tDsYtMOe zSY$KGlgRK9EWWbJj%W>a&Lh#2aZeFJs6)kSXO)9$mgDBx-F92z{ru|eLnUWRs%@Al z&!bjw;XE82YT$+I!(Pk<_{ju`3cy%ZN0pN4s_O==ugc)xA~D1Ck5~U7!jH&R?(SP4 zTxtFw9I&ZlyC5Fqrt(6Bd2&MYJ%3I2;<#j{oRj4BIe&SdcCYf8FDd0-;q%I4hpj6r zwnXLnS(EK-nsGZj?RNdx6FAT|k>vUs^^pZ`yaM^)&;&ia{dbG^(mREwYT3g*;gky< z4Ri<==yqUXI=AkWgh6dch5SS5O@jA`TogR%BM8dp`;Ha8;dON4Ypk|skPK(Op3@F~ zJMGin2K@MY&pl$vUZbsG+1s->okoUx-^C%U&a3dc=5oh-NCgZ}mEE#{g|P&O@nDl6 zSjw!RCPV*+%vW7!2`4N%oDbc#3Z;Q zc@9`F6}UGdF!h#QIh>pnpfZE*9C7e?Jn{O)lv9>B4cbM;lRTY7Xo~Hx>_eQ6a!+O7 zWBDZ8>MFo$7m^yArffdMf~E<elG3HL74vcWiV=?R84hzIc;+UiK}!t{fQR*}9!pnSoG(47=h*k^&Z^iJGu;V_ zeaHZrbQPy{T0eu#)rp<=?t`5{UL|awa_i_l$e~o{Z=8-jigTA&Ruo5_DA+r)x*A5J zJI<7TH!#RrLKS>Hiu@`16S4>!xJCnk+O@!84m*iy|}B_t5$Nu$hVRQnp=pdSYb9k08-}|y zk!^GR6~$;q8WdM9Y@vIoU+Hr&pG{~e*RQqNl&RiW+6@_2B{w53uf4vXZZIzsgi%;v z16ol`c?#Hug@#yYc=LcZZQV5E(7nyQ7xaE{#?|z=sQjv`x8!{zn?n}jKf-;A%&Ca0 z;Ia8;{6*fms~e+EF%h?oT(iQJDjlS5K5KmqA+WO#-VyhkxmYIxOK9ftkcRtYPj$~H z*~w+Zx0#XkX^Pr);D+4x)0BO1_g2i+qPzCs+Iz;@Xj`lJkvr!JbKG)i2y_4Psp=7J z;YorR!L$Y0R_a1g(D_kSm|8khic*EKz`fOjo=EYSEGYxhu7Pv7pXP{*?r%~F!S%A> zD-Zk1MLM>wrO3bT#(4QDHOSwkcud7M=rdI2swYlYd{L7QaTCvErLX821V>Nk)6`AQ zM42ubIo}tD3OKb0-74Ci{q6B{XOM$hsEH5aTK2e^*@8$=>QLeNtdd(a;(F#(u z@?s|R5~$G+6Ah^=+w@r<&1OVzxsqDBk*qZ|sVr^vHj=m1Tz@BBC-Su89OJCpUQwL4 z<>qCb`|aN6L=|k|H!t~%H%Hp(oLbFS1k(*DzE0G**h4!2ga%01LksM;tM&_LWthE z?|L_X@rr;~HpjDXhc^(p_;0amt?Tx`X*lhy7@Q{bR~8<_vk~d~Ab5vxytBtX8Qp0B z9{-hY(t|rspg3~y3=%%dnXmK?J~8*&p!23{I08d!mCs7s{N;u9&2`;rQav061QR?r z{y|F4vL5liB7Up082a;;c$}aOvgTHPGXK{jb{g{*i!+PujN96WCiW)eZaA;i-*(Jv ze;IW~(30hRl`}how6Cw&gbHWPP$76cn^#~;vAC<#GDT^QR_c!*;hsu4D^cV!HR07p zbijLCoND$9Q?k~ns7LeJ$u$P)wO>zn`6Y{dp?mJcU{L(&oqtnQSp}CXp-qA~fyZ^Q zKXC*tA(pSxLt)6HTf3<{qOCEj=w#p9k~Ond2%a<_4T4t;v?>Bg7DON6p+W==7g@i(7R>ke4UBKyf^;ZDaCMEy>#z`Xyc0ha+(nf z(?x2oxB=$4!&;G@bZZDIMp%?~zo=A(%l7@DdAp2@%KQE4nb|Vsj5VHS*@sST1{ObVopEvXJst*Lv*} z$wn6gC-=t<;rK0LV*=)}3d&QeGoa5)u-H|V#gQiaQ`-3QVS4%g`e*p5cYq%58N@=- zala9pA<7_qb+Fxr)?EF1pozw?&U~=O=4&o7=jqvJ6b4IZ2YMySVN1{FWkT@VD|g3S z{I?auCKLzx+)ek66V7#|&c%r4xkg2xMdYZ+r{ns(^h$(l&#iC!ie0II&IFv2&Smm(~RmS4RKEE?|PKpb^YS;c0+~G}7?}Z*(Id$ME8+1EpuNS3rF8s=BO?^eW>)VO? zSCMOXZ$pknTa*$S7WECS+PE^9P+n6<=L9}jmCqy@I*4q%exT~ucv9VWf|q5YOn%xP zwDiCrgY1=cLFx3@eUb2B;+n7*1ql8Tc3w(7o$`{(+G9yGA}d=O8-KosKJPmib0~2# zZM7QP>YXjTTXSLS;QeGPQ@7sVP!nT?86`#6HzHV%4|mcv4!zAZLuL&Gcg=0!ilXXg zklWwhoFwq(P!we}tq8h3(7$*;$072RQ14U%u~v9KV@>{EqUFr)Ektj)sQ3H~0erM2 z89iojPQ8WIXuv~3KlfpMZ$QR_oyW%0D5OUX`lG1NKNjf?pYpBODkHQSsl-q0`jcwa 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 aC;szHWc2l9oHgXpujaB}HU59_FaHO$_?AHc literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Generales/24x24/Undo.png b/Resources/Iconos/Generales/24x24/Undo.png new file mode 100644 index 0000000000000000000000000000000000000000..0fe4cc99e2b87e4f0fbb8cead659d4461345ed92 GIT binary patch literal 1050 zcmV+#1m*jQP)z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZUl0>ZFbpY3e34 z86t{^N_A4LX;C3AL==iY8yAAMT|~u=u0&L*RZGo6q|!wRS`(^Yh-kckgi#5@yKE5T#vsHkSkEe&0Rke&^iFhzQryIIgpaMu#!hHt>Zp z(uap|FLAkrbM00R@JcNRNK#gW^dnFAu|Jk$8>_;aoHhgpzOVJh*Xtk6&DXc*W_{r} z0i*=F3=Y%e*tE&CD>eD??zH*Zza|(vne^`}67a8?;ikL+AVv)1)I4XG)1eA;1j@1L3fSNJK+4sv#EBpa^h1 z!ike5Y)Bd}z4a~K*!B(ze)WgjdkXve#%RybQ1DpQk>eAm9T7-|a73V54p1ysP+BOU z?$r>ECSZiuK`92uQJA{u-Zq%B9tH4O%M2D=2``W@TKfEW%~1z`{iW0dp34?6ePIG+ zXYrWpRbQX^YvR~^Zi*BEq=3IKd5nM^Z8HD>5<0W(;PDebEkNjE1-y{AF>~o`A(q(q z^6?MuJ`4aG)1U5@YU)cP+_POb;;7aXTu=2jo_kdvc(po&E}Fn?yN=n*lf-$~Gt1xr zF#Y56u2S?#rIdpr0K~vRe%nSAjJBj~X_sUQT zU<}}b*&R!i$q}Stkbws)vZNBm#TnoC_qFPgx)anwhFp@X&LA|*cN`T$BV_Xdii-@k zEfMS15Q%RX7`SU>s1*T=YFz+>BEYgVxNb8+QwB405^mrCB$3Gm5U4`>E|gz0eXlk) z_|$i~-w!`@ym3#rnY@K-T~G?>j%x7gG~Je9ed^{=w5aLJety+?tHCPO5x*}K?S&#B znbajgodmSj1V?u<4}iDUNqNtn%ciumJDIS+7(-7&yL#?|H-kI%YcsCBV)hB$Ox&Rq zL#p3I)unIVdoq&isG_x6|FdV4nnCYyJ<1J(Bh_!zC(l>k?)V<8)dqL|X6d>*7z*E% z6dK3ygONZt_$wbi7r%H-2sAUa*9b))j>iPHrX#Q{{(fdkJJ3?bYk6=Q?SWl$n`7%} za&wg=(f=3&B~(xo&ke4`^XOKi$p^I`ig_EMz@K@j`9EdU&TKI0Jz(% U0Z)CITL1t607*qoM6N<$f;RByIRF3v literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Generales/24x24/View-One Page.png b/Resources/Iconos/Generales/24x24/View-One Page.png new file mode 100644 index 0000000000000000000000000000000000000000..b66609e7e20872813dafa049c36f0913596f70c4 GIT binary patch literal 570 zcmV-A0>%A_P)z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ-ut`KgRCwC7Ry|9@P!v6>rJ#R7XD1P%AXP+hsJK{k zX%P`c1gTWp;#392!CkRX1s5l&i@OK~7dIFGg-aKyB=5^1eaTDulE!}A<=rIY+;h&& zyDx?i0>g|r0OYFKB7o}wW0&fM=Nm%^fm}5!itB}*P&gPUw?McF!mW00VSk~F=6BPG z_d}5i8(4zMwOV`hTBM85Mk`{O5dfo@Nc}iPI(iTkh3(Z)XvPHyWth(#qcWRx6sQsF z)gB4{P=B-SQf!K>001s-8-dSG_U4>i?ZLkaTplfJnOlT{5au>~7z*;6NhdeiFNo-& zfK=dTZs)E72~M~tG{%+B(Q9>z{inWqQpP7W;~w>|(^l;NuO9;jd= zJ*oMMLM&3}3XlLH4CURFmbt$NT`lqtEg%tSi+bPvidrBV1u-21$D%Iagffpsa`0&t zNCxU|B!uDR^&`^gP^YT4fC?^ItnE~ykM8!nTrdDeX953AADj8Y!SuL&?VI~SxeX3| z5Bv(8wGZ$P1$XyPeVlJbXo1q<(&<1C{gv}{2>^^?|F--M0Dd41e-^;;e*gdg07*qo IM6N<$f}T(5eEz@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ;m`OxIRCwB~l21rfQ5431uV!P=R)~loTqw0j41x;8 zKx?6q3r9sn?B8JdFG-@vq>`YWY2Y6asZc2wF04gCh(-~SMIi{4AOwMfsnE=*bML#i z#hZD}n|w1b>%d){``z<>=Y02|wZ<*-0<-QQ!2aHpxYimUfWNz}3Fu4&=Vopa!(2(` zX7ZV)SNl)D*a&V0?iyNa%J2Dg)5&@pY3#_Pu`-LUk*|)5u4_RWJ2D-26~)=Kw)OFR zYzIO`kt&K%QO+E>$Z~Mm@FmN}$%8+AG*)NX_ciqcK#uh$cK>Zbv9!Fxm6mdfN*^)y zcpE}Rxz}^wuG^AGez;`TCI^`RE_nB8fvGq1f6O0T_F)(X0HIKrKwq`WObFr#U&PhSSK+;;WeT{5DJB@6Asfi_>AFUg-8-`SoD4(LU+q<8ru43 zI9E(}{}adKkCSTvT(~@B-_=$XFgP^9gZ90cpAF=m*X{xU_0`9zuLdKx&swz)0S8`J z1(1zWnyq>L3=U1OGF5{#O$sYo3EbJ~Zjob$lZX>TDUCE0fK5I!{t_VdA9xXolM89u ze!|E^s(BO6bU=$({`TRoGW zEIM&C%dw`ee_$zR*qvWGb;wiaA~s>#EwX?N)`fHwE2YwsCvK6_CSbT*6ff?2_|}s} z1qXMf#C^%5#XCD&mTPsL; z000W>0fLJSS^xk51ZP1_K>z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZHib_xk2?+@yu|e_*sr&=1kN}maEuvLb zQ6W)Slr&D_#C~t)UKTb^oG8&Wb*j)J8fp=3InEBrUg#rTT?a0MWy?|~jy5QG^Z@}{pGjpbMW=v!SN5`D;)S5pR zz5tSk(PXtLIjjbo}@__;QJPb;-<)|x3!U~?}K`Dhwr2_UeI_)G`R%CHM7yAOft zIN8a)v)B``eASt4a_S*$au1BIBWZS`9J`d9upm;SsW2Uo{y8L@xT-e3XKoFHm z1t*;rKwL0uFe`ur_HcAKRWe@l10b@(3li-i@iyz?A{xVk&1j7<1u9 zgclL(-l|^ybKnB(;;T=Gc8II`Jk%MaxE+|!pGUBsWn=Znr-PYO6Kdn$wh*i0o~QB6 zw+iFbq9k$C&{?D!RT&RG=1tF4Qw<-h;{T{Ps@ zk9gk%fWPR`xqIJzahrMX4nuan5P*F;5(1;bbdH{+Z8^yJcL0kTEueW-mpT9d002ov JPDHLkV1jI7)lvWe literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Generales/24x24/Zoom-In.png b/Resources/Iconos/Generales/24x24/Zoom-In.png new file mode 100644 index 0000000000000000000000000000000000000000..131feedfb73acbac46782838aac44f255e7021d8 GIT binary patch literal 1411 zcmV-}1$_F6P) z000W>0fLJSS^xk51ZP1_K>z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ=`AI}URCwB~RqanxR~&xMeQA690xcBU0!0La3KAo3 zB-6QQM3cG1EHS!2!0f}a#ZUV{_F|^Vl6^2)mKYPVC7QTT`ej)bvrHy}87c$EU@b+U zrP3BCw7u%{QuY|C z%Ihq(Am!xDl`HR+0GR7D$n#Qvezo5%X88RaXMK~gGDj>{wvJH5s+3h#ESBblZ2lXe zn7uU?pPm@Fd8N3PM?VkwwHrhA5-+^%u5n+e4SKt`@7Y${(%Hf_wgp*#lh5XKJ8P^Q z_XUUGAs;%f}fN5)6Q=MuQo`>j_hmfxxJdERY*c}M-ujz-GvbrXeHpqdPb#fD0s zhxmill*MZGE27q37NkO1Ql``CC-Rm8r%&IY{XXjTO0WC=c0o zK;<)8vI?vS1Vx>NuQ@=~H#P0H*_?0G)$OX>QXrqxo1K-;!!^NbT4q?1RR|;AukWvcG69R-MmUFq zBOr~N3Z&C8T3S`1EGxPyE1+l#E?+$J=X~$rBmis}0|2)LSXhwEQn9GYvPd=+7#O&q zy?XdsvXCn*7czp~Rp%g$`#hitP;CWz2cO2C>h?f40RuqM(2-APk&MTdrIN6)$00;q03MdF7gk@fznHrzs`AlfjcQD#>dOThnZV zM^nlE3b)JVt+f-?q@Wu>S8EGS9BBst>}=*>5ED6BF=OGVIecd@G4kN{t#o?+yT7&Q z;fKdwvv9^hv(18%O+;DY)yRWMb*E`E6#*|*W?1Yy&DJK4!=hPOe-=H=*7hqeKDRD48^b#O$9|6&~=Su zGX*mdUqtNJX>D}ie(K@S4|jil*mqNr<%a;o4LcbA;OHr5g?=f}d7#E&*T6@zFj6W? zLJ0+#zM76Dr)D2d9rgMHyL|P5DvOO}ihR*X%+2NE(dpUP?D$AHG4grZvBhE{zFX_oD4oPhUh$tXvT$!g#|1XvM0X0J#n|Kt!sOAAh4V0bc?Rbm71o3 z&u6lU_{>3;8RTWf1R#aO z!;=VO8UVZQH#Pt$0JLWd4m0|3_feaZ>TBrif`ijmS01M^m90i(eg@&x44;#efrBPg4b?rYfF4hP3PwS})*C103X=0&BaKg3_he*~3c+%PN-Cu!&UCkxl{f?!hFA}GU$ z`C=Nmr6&j_qsWW$+5S-eg~ literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Generales/24x24/Zoom-Out.png b/Resources/Iconos/Generales/24x24/Zoom-Out.png new file mode 100644 index 0000000000000000000000000000000000000000..26cf347d4faf78cc4ffba3c5b91cc81bcbe0f29a GIT binary patch literal 1390 zcmV-!1(EuRP) z000W>0fLJSS^xk51ZP1_K>z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ=@1FPfd*0{yz0X7NuV9m}E?#R?N{%K=Q-ZoyZ?be< zFdbAuDXYZ`7e1~5u%Em^o|pRTOT#|7C>-Q@=X;Ekd5d*A+6YCQT3y%WYAqv`#P6kQ z>E>j5K00#kLUr>V{XFECuikA}1nC1`i|=e}BrvdZ|Blw4{vN)wH{u9&1v!t;)8gd$ zR~edp*~jx*urrd0PmRmZC2;QI4*{iG|Ii<7`l#=fUF~}gbW*N>k7$I2ZZjY(2XC;6 zgd)up>vV=R+32fFN~Nx7^D8Tl)ole%p1ewjg4EmIfbWw7hjz8~?r5QW3+r2rOy zW&pYYs5-DF5mZeFg56=Ny{l^<$9djuYuoGHRzNJ9-5#&!NK2%dRv8B=X#|Q1tknU< z05}?Gasoc*x_1Pbz~($8&>mnqBHc&){)XMmcIDA)YJ~G};Re5lh;<-Q2J8*r5qjN% zsA{_*|tEx=46c`yfYrKBs za;{RYtX7JWtD((JZd^b8OaYdd5LZgbrBka)O)4x0}%iAlg9=JPPiM) z?>hVUyF*PfU^`J%Krbz=nM>)CWNDU@7&<7*f@vD0RIJ$9^b%6P&l?jX_wu86f4Y5t zbm*F*u#l#)Aovi^En+s8fT(IV0A+f5YzEVq2jF;O8e0G~0LEVz4m0t^ zz){Xa4R!P%f}1ziGf&f)Ej1&aNnkpk5Xy>iW;iDNxVhE<=o{ympg0db)bUau+&uGV zSp@$&c_FbX$lBm=Ot^yo2rAF`V6kqLL5QM7sd8o wNvaNH%QYx&QzG literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Generales/24x24/db-First-2.png b/Resources/Iconos/Generales/24x24/db-First-2.png new file mode 100644 index 0000000000000000000000000000000000000000..c36c2eab20d20acf28084901f064f8fca349873c GIT binary patch literal 424 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM1|%Pp+x`GjoCO|{#S9GMLLkhTKK~L(6-&CK zuOkD)#=e^0fs=uJg=CK)Uj~LMRR)HJW(J0z|AF*N28L1t28LG&3=CE?fSU6s#UFKJ zU|^K~+G4q53V$6v z!=K0g31fAg=QuHagNFJAw*I$216_dPuJe|@JScr<-OKN+@(;^|e=t2>Df(`QsDyvO z?h9Py(#sZ!jY9XuPCALsWunDobJze4BQ$Ny*ldEWG#kzvcskFWo}zLE|M ORR&L2KbLh*2~7ZKzNQ}l literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Generales/24x24/db-Last-2.png b/Resources/Iconos/Generales/24x24/db-Last-2.png new file mode 100644 index 0000000000000000000000000000000000000000..97292c37b084de680702f4ccfb09f7e204296439 GIT binary patch literal 443 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM1|%Pp+x`GjoCO|{#S9GMLLkhTKK~L(6-&CK zuOkD)#=e^0fs=uJg=CK)Uj~LMRR)HJW(J0z|AF*N28L1t28LG&3=CE?fSU6s#UFKJ zU|=-#ba4!+xb_g6k$}EKOjwvv63`T9*N$??)u%9)5O!y<9ZH&8%QjZ9%z4m_>KZ2e0pq3r-!Zo_=VfIKI&KeyM{^W3lhm%icBW%XM^Vt?!s4j9NJDKa;A?U6fd-Ou^|;X{vg z{2L_yJw0CE7Q8#%(B?+q0gpnNfFz5;LWjnOEKPUaa8@7MiXzK``pTmA2^{ky~#NdKEV%kDthkMHpzn;518WrGyu9~l2R&9C+2 zfkQjv<0jek4O0KUvQJg|c}Io&n6CTzWQl)MXHBfho5cEfqqle<&vGw;h0#UNAFA$n z7_yxq?c{R)aLIjtew_dC_<5z*&rkp@MEG0Ssn3xHY{3*6?t6=nev6k6O@xW!Md dfSZAtVT$Kw>q-qz@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ;nn^@KRCwCl)=x+jQ5?YW?<`ZTf6zSm2M9brFiL9XpAKC^`xqD)uCM5b+R+WiAqkNVE`I1cgE>vb(c0^WLn} zVgJp#GqZmp4?P%Wc)WR^`TgF!-;840Hb>b49C1@B4Vb#wWdnTQ+O8XU5i2^X-@vEi z*w;eWnVx<{U~qyPZE?@BLQ15_9zsYgX|W#PU}We5zdAeZXf&$$rZkJ)Enu3a)rEER z_Aqf(Asi0do)NlX>2$g#Z0O=yI(mB$hQKrh;{yT++o~UyId`AL{ytJl*9a>`mdAvV zJ)o&H!o!%RX@%&75G5<%g^i62(bC;shQ0aPMl>2#)M_wI(~wdE%@rf_!wPGd$L3~c znVMNGOPw@QNIivcoGl}T(36OC0--07O2##fiysz=I<`ds;K56jxtUoWO~0!Pd$u5m ze~G(dyQglKSDGhdC+)w%2E_`St)s*~#?VuG0o!aHEiY|u*nuT5Q+pW6Jq*X$Ozxs5 zcF+^Q(UUs`%rJBSwzjqrW)TYo*2+K?;NHW@x~k%!SmDa>B^KtFxN~NQ*Bhg-JnxAC zsE_CN6^InxR4Z}1YVvaEJbKyypsBf$P+*Ov9M;&>fN2Q#2%T;0)`%yN$sA<2f+-MY zc1s9T0uXEn(m&7#>uYp%x4U8$i+44c6ge<>0)YO3KD3mh3|e)7ewfIC>M@m|+s&yO z!Ah9SrPK}m@$DzH)ByTnhHhs2g)E&ghpw)y^SNc1NF<_E1v)W3U7TDBtN0L(m&Vza z7eBdTo?t#z`3e27!x6rJ8}r0mzxcIc(g9Y&T)}^dc}7?(22_Q)uHo}#HP_wXf9LVi i>uN9n<-h;){xblz?>NN4i+L*m0000z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ-{YgYYRCwC7mOpP3K@i2Cqb>3UP*56zAU$+gN(WM^ z(BPheL`r8%Q7Rhv21yqwd<0vGs4QHg2nmT)QL4yA3d;!vR7jpTLviQ(=e=WXd{eE? z=lSiMoq2l=ocwtMpo{WoVSlxUC4~dfJ$hFDLZ?6M0%$A~7$v@}cxF^68%1j{ z@%+*N(7>k`itRNf>Y@#CF`${DHJG5v5O&XRG2DBQgDtEuJLOe|uyK0ldHNV=wt;5b ze1_n>t*?f<48axKUNvftx(vY;l}$UYE<*AqAo*l0OE%h?KP9783M&1%Cuyj24QAYgqri_N}$gWa;5abG&e5Ai=YzdGlZpm h2>Zfk2>%;@2LNu|5bz-9=nnt@002ovPDHLkV1krr6fyt+ literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Generales/28x28/Debug-Watch-Delete.png b/Resources/Iconos/Generales/28x28/Debug-Watch-Delete.png new file mode 100644 index 0000000000000000000000000000000000000000..faf46e86064195a8ee24aaa6962bbec30362ba98 GIT binary patch literal 1213 zcmV;u1Va0XP)z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ=Gf6~2RCwClmR(F+Wf;f*?>VO*D@?*dD7Dow)-gWj zh6zk2pSl2L;=~WegD*zCVMVil@Ju?D8eptxiuCA@;`}&sBX4u``t(x)%YFHLmc!38m@VGZW zcd54RrAD*GqIsBv-aYl{xK7b5rYkA2oII(CFgevyEbQV19x)}-WXLOMH0e!%tPDRE ziani<*3t1!*4*7&`+0$1o#Rr$tX7+bk)_IzwCLgm9&%J}yE;5Hd=)_53ojo9a8|uV zV@L;_TDr}sgQ`tUL#$S-hRIs042g?wUf@AN4~-3fcX6fPBo>i;06-|jv<3ZpbC;3^ zt5u`gnqL(XLvCK+K@`&V!$AMQ%5w^UiV^V|BFaut;>OeQq@27B#^ToM-Jw#kS^I;* zpfdq;51qewe+7PZIu`&eBr;xENXp@Pc4w$&eEa|*sEoO&8H@|W^BLI|y)@(Mb^Ye|R3Zu$lDP)cVR4RZ~6r$6qrD@;2 ziC>C}l-i&a8y&bn5*ZSGVaYQD#03B*y$Jw5PHMhy%ATFK{Q`hX>)WuezO`Y-`)7Nh zVf%>?&O=(OW(5*9C(?7Xb8}I*nW{;Fkbl8JH7+ungSz%a6&v zZuo=ImfzfiBLL`;H+!CAsC+q{#y2fIZ+KEalE{!*534Kywxrl7Pd$-~-Cdt!!N(7k zmzN)W<;byBSUQaq7Dtj?>K=6i0CKg!Ob`ggQX8NmM<0JtRsEn^mwox)Xzu)RXU(Ou z60HL8lV1Y-E0ck6ye#1qr)A>QFzHQ5XbKN&kpp1*th7N>q?Yl0F~zJd?q;TD zN9pL#v+*7X%W+^Jye487)tCqf*tMs0=GL_z+qh`R0ssk3zXvd!u%Z5_Hc4}H{w_ue zMUa+G0P#2i0Iltv#YO4%3wB^RO`0s zoz=%rL&E~3N{hGcHu&tlIQNNyiGTpd*EL`c9fQx_i+&GqeErv{y1Ci>Uhik_+SV7T z(Yz<=YHaWD8cHgf0I=)(-_rSdX^3GhXz20R7`e@OzUp%=ACaN3n1O{T=|o8)pW+ zDWRFl?$xNpNWWkSbpY1;dzx`*)MBJAlZrZkFCS#2j6x^(ZKDo=I)JPPxi_Q06z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZO(%S;UC@!a#>?|k3y`<-)$X_|PJgTXT%|9?VawIC1(FuzVr zH?l0Q0f3s;TE4x|)ek^lEyYB4u*wN9!M<)~YEQ@PYpr8W93d>}SIc!=ALVl(e2YW!ISEIwh@!s6df6v;!5T<;^aq3($?e=j8OuR%~r; z9~Dmj5!pipnw{hFk@@`rJEJQ#vXTr@fkIE|zM;OJz99gOZyb3Czy;endxaHYbZ&yN ziTsM8A%4H#&J@no$Wk&)1qu`9>w|rlFD=%aq%|c50K|l3Y3Sc8r<8d8emlRutX7uf zFcm0>L44P*{BULQy9vOQH0d@pW2>Za!&ZDsap_aR;+Fhw<9W7lk0^@43|YA6;-x1Y z_&FGy1u&aYytt9Pk0wAsc!aOi70jdt%dlbjm7afR;se`|SyZZr{ z$KLOJl`-{RD@^R6@LI)-&i;%-W;t0+Ij}BIqrCJ&3AVR?j@cOPsjjZx|MszWvt(8n zMV0z)A<9iyV$w#quQo!o1>`r-(Vh$KUhksZlr1f+=wecd~q_N zF4&^xIW04%hRf-~YB7o`)n*m$-qv!@x!E&t^UsAE2=fczgt`P^lQxVb1XS+yOhs=0 zq@D1!NkdE7Ob~us{(EZ5)%*NyU=VvAds;a8s zcJHWjY;XqaJ~+1`MoDR&ndonk%*!HsJ=L|excAokzPvTm+pyeo0I1yQnHr0XzZZ*) zEWehRgU3%a%_oyTKDj=F8NEB&{MW?&aRA5?uDxm22-gVzbHaZH0JG<`zg7aaaR2}S M07*qoM6N<$g2EU8DgXcg literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Generales/28x28/Distribute-Rows Evenly.png b/Resources/Iconos/Generales/28x28/Distribute-Rows Evenly.png new file mode 100644 index 0000000000000000000000000000000000000000..6b62515c42aed74cec6a14c74bdbe905501592b1 GIT binary patch literal 411 zcmeAS@N?(olHy`uVBq!ia0vp^G9b*s1|*Ak?@s|zoCO|{#S9GMLLkhTKK~L(6-&CK zuOkD)#=e^0fs=uJg=CK)Uj~LMRR)HJW(J0z|AF*N28L1t28LG&3=CE?fSU6s#UFKJ zU|zbxCDVclB?o)1Qvo2s=64Riya>ZrEz`&)d*Kf|e zDamzMs5$4YMCww7eJPdQ-~XoX-?~ZL*xB={#v1nr_h0-hO;fEf*4}^kl=WNPTlsdY zey`uM;tY>6!;e3=Vndg#Qb-bzU*G-pN#>hJ_r*VRIS6ww z000W>0fLJSS^xk51ZP1_K>z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ-*-1n}RCwCFl|4(tP!xvWw6&pHzaqsVieOPuDP3F? z2X`koR~K;+yXqqO1A@Q6;^LG+(IJ!ID1L#83Pl7h2!e)6YMYo|2S3}~+vKLvGahd4 z!*g=ZxdI^s{~4j`gdhmigQ_AY9Cblcq%o43U>_>$ zAeIjEd=#arZjP(isSjC1u$GK%}v`E|@DrM>`IfE5n+0 zoG?d2rX4W=O9Oe+xL}TkR6Ak-<-&*A#TXY10EFtn|C&QpkrRPHFgrdu{R3pcSdq@y z?+>}Qqrd=Qb}(uCww5u~&}R1whO!P=I!IXutipHWSoh1+^13ptu&V>+x@kh8Fye(d z7$;8^`G$e5x?t3juFVS6=VM{j8_f30SY7&S7JCPWhHkrKuNCFAax1RPs_%ERywiD2 z^919X!%w@`U@)kSCR@-HDS3kN8qT-2wRwi|ZW=KxipAkRKx!^|hVdBAh~aQuFs|1k z8jWVUJ4|0;OrWaBQ-*0GW-j>(V{V#uN!pRDO&EJ4zQU-6sv@Ue@_9%{Mc-jmU}rpj x8hgCN#^tf^Fe*?KMeHAL{|SsbhkqUK0|3!-vYW+qpfUge002ovPDHLkV1gRB1L^<( literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Generales/28x28/Form-New.ico b/Resources/Iconos/Generales/28x28/Form-New.ico new file mode 100644 index 0000000000000000000000000000000000000000..4d3d3936c61dac3850dbbad253d1e6dc2023b473 GIT binary patch literal 7278 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 literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Generales/28x28/Form-New.png b/Resources/Iconos/Generales/28x28/Form-New.png new file mode 100644 index 0000000000000000000000000000000000000000..87352c4324fe2964c0eee9301d6dad26053ea613 GIT binary patch literal 843 zcmV-R1GM~!P)z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ;!AV3xRCwCFl}|_%VHn1Lqq{r1W*KPbP>(?&1X@Ig zKm-GeZi!?UH@w9jJah?`2qD-*DZ&zVu=Ws`{ZZPGuv2UiDP)IGmrfCgbP!|5cD}d6 z*X-Y!ZSqeq49vXW%=f&{^F8l7;1anEA}NGD3K1z>0RTxMRvU!7FrF=Z7B~jL%};jv z;fsuX{q{qaSHG7rEjzv7@J8#Ekjrsumn~KYqPVua9b&CTW=T&254;1 z`9wTM3vCboWVv9YlMz~rOn<$$GNvKGZ?PhviCvQexy*amv0&w5rpd!-fIR@h2$ z`oz&f0n_QX)eNf~*$!441$UbBQ7ob?ToX@b4p?Q*RZ?fNm{~CTF&?K+O5b6<*fp>S z4D)et0t=d|M{y{L{56p>Q`5KazBbGlde_7qpz_yi7z*0#+yd1A- zimF`6vzKXHCDn6Lb_G_`rInI8VBPmue93pex48<;_ApJrZQ?sD<_24L#LQMg-Zw)i zY<%Y8^&S7^$45tennrYW&KV@)v43ujv8goqyzSpK4#VB_q3<&+ot3-kL(kunJ40=P zxv9|tTWye{+(nc4b7yTyD_pr(V4i^c1y(~+#nbr=`w^~yeOGU=Utu`2^MA$f0RVWP V8KylS*qi_W002ovPDHLkV1jT6b^8DS literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Generales/28x28/Home.png b/Resources/Iconos/Generales/28x28/Home.png new file mode 100644 index 0000000000000000000000000000000000000000..f89327a0512c34e19100cc915859a3cf710d3844 GIT binary patch literal 800 zcmV+*1K<3KP)z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ;mPtfGRCwCF);(;~Kor37ztd34On`m_DGZfhYET(T z>XD%^ckCFIp-70S6NrTcQ8D1L6Nn9U>c9|?kQmYuP>WEJN`(Xph%V$qw&S~Fi0#Dj zB_u8M7AKcG{q8;6FV9d)ahxN;F%M&y#g7Wi0OhXf>@AD;!50f6Dcb=acR0qdm}zDs z^TlF0g8mIm90ddL=gR(?$Y>lUrQMhxQ8ySyI%c&}-T;0A^ozyvk^HB2{6d1P6c%ceP+I z>}oEr#e`4@DVdm<1SMl=I#pr41n9uSVnRrSRGd9G!AL^I(2J=G*RJqlqr{I8JSx_@ zN=~Q78BH27bbr562vFl+VV(1PyW85Q7sw_KgL$67^MY&ivk;Q>g-guNUdEeV4GTq3 zk&>O&Lx)MFkU=DxXgZ^mQX!!tWqp4$4lG%!jigOSm=pa%P0Dlz#A*S zLaco-$(zzPPadxDvAku(Ui^NM0TdP&wV1WGrp1I%gZ%;P(%5U*cB_`?Fx|eyAeio? z0p>W>)ua#vG@Pz@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ-Y)M2xRCwCFmOV?uP!xvWl&Dau9mLt6AYC0@90dIX z4z8{l92~m}9bDXW(oHDEK@rqR)Wt?yAM9U|FE}v%ryTb z(aL;H0TBu|)>kp;dx%4$(y~z(2_D*MujE4Asu3Cy7&A-P@{)^AduAW>J$L{CIM#rF zFe3tz*gHHa)};hX!9<9IogTVtU5tOn@O>WuaCtq-25Nb6m@xt)g6*x%&~|(On%^{< zl%~PrHdUAA0ktqAT3|*_i@-#vY?_1!h0F!a*#ccR__PBnmC`D(!c9{ZrUrs`U`CWR z6p9ttL>(bu1(uc4g|V1~AE(b))bT&CL=8z=fvIbl^+&M*ONp>PSTe9iSR$}aSYnqN sBN#ruHM0nl#QxD~t(&*g^r}A{0EDghdHFg$s{jB107*qoM6N<$g3d3>@c;k- literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Generales/28x28/Outline-Move Down.png b/Resources/Iconos/Generales/28x28/Outline-Move Down.png new file mode 100644 index 0000000000000000000000000000000000000000..eb2aa92e3473f4ef276c1420900b2f9b61bc9281 GIT binary patch literal 434 zcmeAS@N?(olHy`uVBq!ia0vp^G9b*s1|*Ak?@s|zoCO|{#S9GMLLkhTKK~L(6-&CK zuOkD)#=e^0fs=uJg=CK)Uj~LMRR)HJW(J0z|AF*N28L1t28LG&3=CE?fSU6s#UFKJ zU|`hnba4!+xbr3pP z{SOcJ|L0*d{x>;U(bMtOrSgyUeiN(?uP(nYapunx3697v-VGCyZ=R2@mvoBlkpKZd z!!tk57brGQTqU+B`rG5{@on<^{~7F=?{O8%eSap+u^<3?;_jg zH^0x@f6??#oVM`Cgk@q*y1(6)@ke@G{qW>!ahDeNBpn`(2#3PAM=Wl2NNp{+;#9&Q a!O$!!vn~0U`59mcGkCiCxvXz@%5w(33+yDRoAY({UO#lFHi~s<1XaE55!2ke-1^@tN zi2wlk_y7P%aR2}ul(R1~hX4Qpc1c7*RCwC#*1t;vVHgMS??p>cYfDW~^ z20FVn9@)~+(w~rWZY^>19V8@ogNvh1T4I5>1Q9r7g!$t=gQp?ykWTa7x^oD>@NRc} zc%FNB-V=xj)65*EoOu8c1Obw)MF1QDh`M|?3*b^rgmYY7A|gn#7LjD_`rddVH)(fz zR4mtNKYDy8$y$Vn;PzM`7xwbnqUT1Fisd>T942c#p!E%-f%TP%-RN`~daMs-ex1^- z0V3M+WoW)*J=XVcN=ISL^a&h?G4sQF@F&dk3MXOh4*MHesu)~Yqxoh%Ui}T2Iz7)+ zOBKU4)_U(kQT1v(7RvL00ufoO?LtxYAb=eJxXPS4u*$?0v z(btiIVPjv-@4(4GzCyA`kS_y6l_~>6Lo)-z&;LOBB?CjL0RzLU1O^7H84L{K`IF+0 zx&hT*@^oZ1L*dg3jj6i{qT%2e3DqeB@mJ zK>4F8Z>6{WFD}-=(4cjKo#90ZIp#{2UhfGBy`^=7!GE(pLuMz_4D*$xQ?fZTB-IuA zcl?yuaU-Vm90S7!(-W3L2bmex@Dz1B?s4D=GBth871FzYLUyofEMvo7N4|K0j|@T{ z8w^g^wtQKc5ENI=W+|2Oij{5sgXgvqZ#2C=$)&^|Z(YvxeZ~g{&*d+rDkK!le!hu4 npsw&OBdF%$llT9%;+PrK&z?6lTevO?=sN~aS3j3^P6z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ;`bk7VRCwC#R$oX{VHE$Z?5#x5-lc~iBCMw#j0mIX zF-dw6%_fG}(&pTn?rw8Sr$|dM5e+m%9|}d39#TRvNGOFF{vjllnWRp(N?ZG5eBalD z+jXD!?vGYJb>MQpd(OG%+~4n@CO+JLBPKiT5kdVAn-H5;PZ#>f$e*wOdp?5oYFr{wp%!aw})r<&)JdC zbqt9md~#wHs=RA4oe8C&l!+JrOhMSrTGTU!Y^4C8Wp7=&-(-Vt=b}>@7Q5ZfJ>OTW z#UT0zTFz!P*MKkvo7Kp_qcwt37Q2RF(P%VLkv*)fmqn(ls^*YwvyfoI-3V3p%0wEC z20drf3sz7{(O|3Q^mo+;5JF=oEHw850NkEb^fl#+UtCh#AJTi#X|u`JtXyZ}kP$)? zqqJ4X#>uNzR7B8<$eIS67c9IUuDF~3gG+&zMc z@hN1TIfbc}WehYIa5h2TiIfy4*Nv@BbzI=w!gBc^347Ti?hrNw?7;&s(=F>W+7uyG z=GSNyvL!y@WP~#07ilAxdfLVS!)}U)DCT6$oP0^&J4<9JPuARw6!eN0ku0ih~~Y ae-8kJdc`839X(b60000S;a literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Generales/28x28/Table-Search.png b/Resources/Iconos/Generales/28x28/Table-Search.png new file mode 100644 index 0000000000000000000000000000000000000000..bb23481a54e8659171adf5d369f5b6bdc3e782f2 GIT binary patch literal 1394 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 N3K+_D|LAz){{S?$Da8N) literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Generales/28x28/Warning.png b/Resources/Iconos/Generales/28x28/Warning.png new file mode 100644 index 0000000000000000000000000000000000000000..19aec799370dbd61e1f6c3e906bb19b078c308bb GIT binary patch literal 1236 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 literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Historico de movimientos/16x16/Thumbs.db b/Resources/Iconos/Historico de movimientos/16x16/Thumbs.db new file mode 100644 index 0000000000000000000000000000000000000000..0c43fc0c22d6b57d167adca0cc1ee67b0c87ded3 GIT binary patch literal 58880 zcmeFa2OySf`1t=?X^@aD%1D`IMTw%!j3j#`gd}^fD0@XkDI_a|>@v$tLI@%2m6ZLO zul>KCPR_TpzNgbU-*bNFf86zPzwi6p_j5h#y6*eB*YmoOv@b4;wjcGgAd136t*&iB zZTjkW9QcgzIqX28aNz^8eRXYZ?S~&xDEPP${zX?{1&);vZXN}I4-f#zJ>3kD09$~q zz&3ygAO^MraQjiz04YEQkOMmbN`N1r0%(BU04+cV&;z>w27nRR1MmS%05fm^U1=IjNKpoHkGy!dZ8_)rCfpdTf zpbwk}3;;vG2)FuOTcey{ zkKZ0B;fYxnj65&@Tj*xP`1y}<% zfGuDL*aHrLBY9(;l=1O!`l5^p2k`G>>WGZg7&c;r4 zas-C}jutuKF98P^j&T#=<}F*dL4rKcP#iowTzov_s3El*Y)9df5|HgVczhH2X?;Q_ ztDU@_VR4(8#j~DMC^t>A@SV5z+On0BikgO&buZh#{p|b#f`^2J4@;alDJdl_BYQ^W ztg4#2hNgj`(FJ1@(~CB?cJ>aAPR>`adHeYK`3HpGxOpog^7fsm2k{AsNy!gWQnPb% z^YROxJS{A*sI024c~Seax#dl3Tl?FN&VKa3`@s)GA3qIarlx0R=jO2si^zH5pzwY; ztsl?qXXix<=Y@-pkB3i)oEHwR1As@0Pq63UCbHwF3H7bWnRq=n?-UP<%X+?rnNN9= z;=Fa!R!SEBepU=}YM;;S+fK~uyUyZ@a@>O>LY;lRzqBLxLq*@?|T=k#~&JMF!Y zH^t3!`G%Z$yG_+rFa0aqPX%dM60+cK+L9S1O6~r-(nrg)nvPWSDse&CZSQ5skf}z zk|Vx1Bj_r)?IQ+{AJ;8;u#D?Cdwg$ZN=IE{U{i`*vZ>}pjl{9n)q9_wlL;$5yEsPE zhoiILF1GCqp{TRsosXGGjV>N{YD1r)_oMskPFpA3%~=*{T`ALpCHeIGvg`@eod^U%Aj|`O0+)(ac{!&gM))4nc{T1BM-wpl!EyMJGq`#Ed z6tu(ZvGn^@6CE*hfkn4kq!v}0%J1LSfA2b~;k?6g`{ohdE&UTA$`ud0hiNUYiJ11M zneAI`=Pz8nbu=;h6_fhw@>7o_PL<2oi7V3Ncz_F-WFZWQjNjiU3S<{TpRw;8; zjAzJ^Eh70_E`=5L53>49)#Rdp_x)(wfJy7bE7^uF`zTNCw@)#UwtOW=`D^Wg`sWV=0k&pWowGh6%_cN6`c zK!fAnlV*Jm%X{6KOEDAvGfQTAWBU`HQVKRSAJf#nqbhje{OOK+MP3pUCIgjp!8PqI zKH86YZ}xVyT(&U%pa2f7#%9-tb>G{Fh&K z%>Iw+Kf)MBzv`eYEv*wg0$SJI8_kMLgoejGd<0(9xuI%zGtenxeR;0ganbjhNh#6# z#G5D4neGnZ57$VLUPD>sZla@UZI~LcpdqTe=fQvtRi9KyORGKPEfB3qm(N?{7S|=` z#?thVRp033g}_~e_(uLXAvQJ3JIh*T8F#+L=2ScD`LCh+d5f94PPG_K`lRoQ@Z5Pv z$4f1Lsxm>COhN0Sj~&tR2#q3U`F+y@9wU^rHuPshfBr`OS=v_J zj_Jb6cD75G1d(NKM`;vaM%6YmrTSY&r!*&I} z{A(y$^<5;oZ+3?WUkEi&FX>@clkPCI4rmrqnLhX=n_KQN;Z02F^P23*wlw=v0StY_ zoPBs5#ntrC8+kjzNSWRUYop3M?8O2_+8gwCt?qH;)0=Dz8VIe7A$c=qbXB=HJKtBi zCHck}uf*;Ul@qyY)BaPd`uklyBV27}ZeQX*_=zRId$vPsm3oT3ErN0^_Gc>fhpKby z`p3PYe;fY$-|WBd!z87P`SRG7Xe5T&K6HJN(d0hVaK_-kT<0^7+?R*R1hInOeiI7YlMf%ojOXl&or5#8r(Yjyahp&#s|JN;`klxpnbD#|KmOzQ|geUZC@KW52J$2)j^9+xdC@a=`>DY*%-VOn|lw!KR z%`C=EGuwDY#!gw6n%9NBa!a;+h3$TZ^M7s@E`t0|6x%ME#~cNiXlAqnuk-jMU_gaL)*zYKk5Cp zTJ0?w=80Zr?grNWQ>ir{o_4;KFFEua>*_J7b=nWRsy>s6`-rTgOFZgYlwa<1|MXWO z6$h(`WUSM7Z%w^Rt87n0@##?DGL=oj@k~cq9iH++`ur3-w8rd_gBO{-uhZl^m7WU@ znAA9q@_O!sSGl^+ResVvc`~`GlU|f*vb#HXj!(`!xwBj2@u6e5;p|ezgcApz5QjSx z*)qS!sxi;axEBNj#jBF#7szLvogeOXiSaSJ{W7R^v!+t`Cu4KlnV);)){r z{rj%^&qn$8-R0j3(VKIVtx56d5;^UrF@gO)$@DuOMTFJ!`;OYbm%Qt{RPzuo+>+Pq zWwFixvBdK-a*;hLSUqu_ZSrq2Ir-B@WG+ZEhto_@QrcMTFuYUdnrOH^lO~jK-*{*l zh7IlD?MjDE*KEz;=(M$P6O>{x zP|h=wjV_#(Gk5;cqxfxI`?W3W`iJx<{Ts_aPdF(r;3{wp@CJMUU%(IW2aqvCfe;4) z!9WNQ3S0-mfNvS0LfPYaV1a% zR0B1@3!oNw3Dg0vfO?<-XataaO%OK&Ex;R~6=(z6fwurMHl!0E$3daqLEH`W0KGsT z&<~)20pL9_2z&sBfR6woV;JHQU=$bw#(@c762Jgcz%(!e%mQ-&k`D{<0NPI#QJN>)Pt-6)PDiD;pSMUo zDx^g(YqG|7W{kmN+p=8j*{ocjo)21^XALgyRevKC6n~AKddF5`Uq)`VO;0AaIFeWC zk*%_RbeKpoJIoN7sFxAvWRpp^hKdr(h>&x9AQxX(Sb6uQzKRb^!3(;!Yv&)l$yGJp zImE{Dzyn+iq8}bZlp5Z@(|-Qj_2=N9Z-4kamVYlvXFKq%@^3?0tuONV{sQ@XV1G=1KzAGvE6Gg4L(^mR~ek@ThOwH*@wWZ!yxsO)O>+sbK7P)2} z*rVY&KO*m5Q^CO4lIv8=gW+~lt!}1sxpRrRHTdBj10^(X$c~5Sj_nhqcYUf&J1vG< z-iIj&aX*lhk?)|n$tP-tc6PQc%jn@r+q%o=M=VwUVs(T}v zieQ&WcVt6X24+c4F5b0_oL-b&U~gyMoJ`S7-YQk6si>N)%KX!=5G)9x=c1jN+r_=%Yp%3|cP2Cl1~q5{ww*3|HhPqgFb=IWF!syh-B? zBh~BGBRbeX?a6|`Wybr@@0&zwj>q<=ElIc*u}~3PeBjfnp^-XwS)ryU#0MvaC7irq zNfF!jvTCCEC{^VVMcmr;u9~sP9+|WE@P$_>`s1l4jY<)4Lm(5 ze=|m~rC1_e4joLO+FU)>voAhiZa2OeGk-`8YmC$dd$t?iN_+2FSyyv0W)~P4C%g1Y zE!rD5DkSY0a5|GG@cvP6#?s0fYH#oF=pC5g&tYBvq&M_$qy6UZ?f+dI8Xz2_OLrB- z7R6C&D0+sZStRHz9FSp>FJaNRK*p7Z+f>iQU3u5uoK^XbRsPU(l8_!&j9OJ)30~!6 zIg7-R!)kN+0rRB%`+`_6n3>!ei<=G&u+in;X^+i&kdy# zPd}n{@r-6?M@{OXh!Y`19Mt*SrtyMH6m0aAKI%JBaJV!aS(zItjam-frIKFX*u3Oc z^Nou4GyOB!(7z4+`+N0oNvq2JK-uFr%QE(zm5fGB^66u(k)1<6ALL90h{d~`bmi)_ zq#amub+sbTC+!cct{P~(+3EgTZIunHfo3Fg^w2DR8hff~RwaCx?#M%Q-kUL9ri2%E z9Jgg}XBh0Ko>o<4SDO|L_qntcPPjnUL-CAUA(bDOydo}$@In6(F^iyuGg_==f z&xG73qeaG_>gRg-C$gb`|A_tx{006eGuTpY;9LFga!8BRcaR|X7syBCu7@A?`oI5W zfz3taKcqSI7s=lXyF-rQf0z8j)-H(5zMQ|%Um%|h_O}!GR{5VGt@;=F|6%`QalU#D zm77$MGJL3qd@||g8fr4UCQbX(MSUZC8~R6nDhyQYczlPp@;X~{yY9mzSMqFkHTFPZ zhv#~gBZd@Ko4m}NL@LkL;rP7uO%>W5(mkzvD|va-q-fZH>9USdg1jl3W}KxcVrrM< zC)Zl~@WJackFP#iPP7`+5Z#XTNE?o&%nS9?Wy#k$?2!}9C);u@kmY*UeuEFvFJ#Bh zkK21$($QpQI2PkSe3L90739QN8Oe9ID^hhdw%=t&-mI{-%&j$k*eeR2u@eSHMTy&*x;Z!b(k_InnN(GZUG>on(J^A12g zeUCg|Tn&y3?1vxPaV22=ltZwViXhBYJ_+lthyz@( zqxJe%CX|Q&hU*85Qf#dM@OfQ}fB*UqjF`qyu9>5A2ZjX;Z3l4O#K$6E=Dp)h#oNK4 zO7GpU)3v^pQsI=VTnma3W4U8#CA(q`71WxpI_c=_;a|GDz-zw%9ibDG)6K`_rfrP{ z50A*4zGooBaFxOIzN;R#0PRLgtR_F%;BTWZI>D_y+MO2=Lu=`rvg?T2fJTyea7xg_ zc#Y?h$^oZKo6Pmln#-m3*?OmaDkM7g-jC_bk4V=`HBP9&kVxO4D`l!I)2bI+Lj|k! zPR4vJn^D$ZLp}TagIaharVH&B>&HK~eV}5I#W^Fvh|+#ZX4*Beo9z`_=YirWNtX+G zL)b7()N7|3*fS@jQMKlM11*U)&BcBngs=77PFZPOLxmqU_Pi*|O{z8>x`twMMq$&F zKH99@cPvoEP~0WX);v0U&w<^A{}hpl)Ty+A5D6oD{@BUaF^p@dSW~e{(ULgUJ?O|guTiR{o^(~owxT=fc zlF2rgchg&~?p#AXemGnoTCvRW`kGLH)tR&L#w)F>7Zj2xOh?yHlunJy{A|8!sG&~9 zWm?nNtT80^ zvs1T?*@=xzz-Ft*UlGW?L8*S?#&hr*0FTfR`V(cV8VTkv^kka7<-Y^au!`+a>QRV8zLpZv=Z9_DY)r4`$ zz0770y`^G1rbp@@5My*!v41Fb^=4ySdBcH;s}TB?epOy+EGEJVxZiErzV=!h80hbtMfrz(76HE5y=8VDG*Eenov zk8_W*n+wixGt;0 z=7CF^%#7oivPRug>YDrwG}lqmryJQQSko@Fk>4Y}D!i!XzkInpc9pD7XEUF9VYY_- z7@Y#k_1Tf-U1@L9{1-E}3b?Q?Fp33b((|*Poe`KN>Ex@hCr_0zNR8kq8VukxU|WrH zQFH1KrRl(Ccd+ILIJTX|(HSEzOUzrPDiBI@gm-;pxXER5Waz)W9_yhL>(8c05 z0~UlN@~R#yOobUumi;orN6mcO?}`dfURgsuOs`oD({6WnUqd-vEn8mkUA;v*9g?C?sa zZ}AZf?eMsPIgvX@F&DcJixC>n8-GgP85_Wt$gMSEa7(f4`IApsA2nnB6Mb0K{k%>M zv0M#nJkRmLBXE`P&1`0XC{fFWr(~aAW7Fg!_&47st~qk0cB#Inu$OfCREyo_u=I)d z+6M^UNRzmWew@u@#t2Le>ye6(I?yq4E0TYDD>Chax2X2=Tv$;0#LTs|2^mc3^V)@Z&V3xpb0PNY)<-c5 z2Rn)#SB&Tpjx)4X)%Dh}=9o#*Z(}2*RqjY!U?d5QqZhxm|B@>qS}agADaMaSvO|V? zT2|7k(LAO)6?{qiyn%_J!2qDH*~vcC;m1HpIEaC0h<|(Jq@VYSk94XE{yVQe{}Th z>7rOZ?-%;wnYlNfx{<#}MOS)ISZaca5121!7G6X7C&IJ#uHC(OMySf^Lq-SIyZ`v7 z)OTyBPrK?(D`{2W=C!}|_;gxy2|pv%!yBH7qEu zM(9x&pM0npcvo+;wzl}Q(Qr~`j=t-b;x;d;B+x$0N?1QawuU~BccMK{Q}X1cPGRl( z2235SjEj3LruOc?Ctq#pH0*JBq(6wo>h?Vyj-tYx;dTwtVCoNVeZ3PE>PP|8m zAe4oDQS}POJ~#XF;ScwZtup4;uJZd3wEFBihTDSPmU+K)U=1accBXt4w^@`Hnd7EB5m|t4k~Lx8UwY?~VQ-FXG*OCE_Dd*84t`*w*C{&Kjeq>4#JA?P~V8sQ1Cm zXK%d)|-m=?@}Ds6(C$1@zzdLi7ayBv=wwTt-Kk(w~C)Eu1X zW=ig@lu2@7ak_9Xp9}|%_H%jDRMF{ z#@g7KT9DDOMj79t*hv&|{`@nPwM<5lWP443U8Aq_vy;JgG(D3{g0p(O<^7X%PZkR2 zGl{U>1GAV-o~boSjr(&b4{aUK=Jm%rfkPm@>wuKNu-+E+T~vKxG9ibN3#u3lSE1CX*!0!2OdZH`Go-;Vsv=qPu4t1vsRSP06L? z1+AeRw>yZn&t#?+pRo*G5_QG7=~J;Rk&VYtW>TD#eJ^cGWJ9TL$&l>|XJdBVlN)sR z3~tdv)lX)1-;#kmb@QXQM6s+;J1OL-DP>zeg>^vd@M%nDa$H zh2Y4=q5yx5_e3l!m3KN5o%CE?SG4ys9yPjyu3jfOI`VdvRM58UYW!;Sd8n=$=1nCBl?th2%PUU% zn{zWoXgLJ#71$ObACGNJbW@yk9a6xGihXM1SrL@ee&Qz^eTv?2d?i6_=3!LN%&=6h z(E^`A^@(7cnm&(4t2I;t{xtMuqf%Gjg;_`z?*}vUYj47biE3rJ~ZzC((6FQ zz4s&n7^=~VzF3M8HQM~NNin6uvL{_1Wo0Ov zebK((Wr?v{r@Pp9K&+hUee6P%@UX|HV7Dh?hGM?##~E>EQ5A7(sB3X$3*0wWY4G|R z&=q~6_o=62v9d7EHGHI$hg0_5EwRb7daK7494b=Vw9BycVz03Cx+@Vw?Yob&ReM}3 zwSFw@LGHa^>BclGFdjJ(?HnNgdFZ9yj)6j~=1P6&am%wBqRK>Y1 zN@Ob5R-a-OEIRP|>jV{_xk(%qdv9W~DwlTHV>Gibo$gHTo0(oOwYjKUH*0N7;Z|(f z3qwx~_k_*mbrAcY`hpl>5ZPPVooou%F6tz&p}14QIOBBq)DHTl(}tbaa(m)&XZk}~ zzgaptnksO@_4s6bjV`;_8cO9!r2LcDxi0<&D$|CXRkyD1cz!))A?IpKsbVD~-A7Tu zCb9mlkDK!3HOJMNu3;6LdH7ULV?ySu6~wR4nHOi- z8r(1m*X!Z+a+sl}n0unYTT!!(_N+<0z|Qp1)bU$o;nft@hnq8oXsYYiP$DjiF=mXT zT9_8?X3=`I2eqT(X}j205qn*4CCOYbdYOHPjSg;p4nG0_vAMtG(c$v)FwQ z&?aQI`qZeG=yWN0l{?d?CMm@Zl%YVNiID=E_>v0i@{n)O3$adBgEiE}HtxXt*g!SR zTx6=A37<(@z5`!((Ytrg_x4TJQJ*9&BI~%xaEw}YNQm&mv`h`1-WGbU{Y!aFUA99z z!^0gepO&7P^lwT&+j{dXx_SP=Y|d!MS_f}3N6#Zr%6khEDMD>_6eaBoe98xl&<=iT zS*_{5tFoHy$#)Hdj4vx*G7gy5u{eRD3>zp>RL**Rq0O9oJg!(O|EZTJE;Kg-SAlDQ zH{b*K0)Bu$5C9(+gK&A#MoFIur5H&o zx`hL2Ja=esJjp+ApOEUgJTD z{NVjtOvdHh;~Lc0g+#An@a8NgFVVWql_Y&E4DKnTW4V4u;7C`V-ksx>WYU=HDff6H z`j1fuPwrTTj%%~NvJepi%mW?O)#?F-$q!)ZOr9<9=3&@ z>Fkkh{*q*+qIufxjC2Y&E%@Kxbxy2%HJ*Ni4`L(d#e}t@O@o(rq+E_n)eO>f_egDxCUbWti*+!CX(~?N=0V zUH_2rJl~^#!hgZ|qg`-Z$cO}_mh&rz_=}(B;TJ04QU9Vw%%f1L; z-mB~v`3L_2`II34;1~J4|A2gEkiWkEG4k33TmTQi2ax*uCWr}v&A=95E3ge90*Ha_ z012=IAO*+(B;QVmDS!h26+jKp0JH!dKo9H!7yx*`0ctm}2Veq_{45Z&0(${AU>~p_ zUAwUQa1`Y#901@CQfaDW{_!w{;5C@(?QkihvSu8c+t#04l&)Kow8})Bz0u$)^Re1E2%w0(!tXKp!{{ z7yyQV5pV%82221`0LgC#@g=|kvc$ba zGTKZMMDkUni=#xDCu0Kyx(O?3gQ16eSqietL)(u zJGjrvY^D?lt$kJ@u=@HQYvSICdX6I;MUoskx{=PBM~*}(SL?IuzZq7VzcpZ%+m&~7 zJpDm8*X5auzcZg?z5EsZ&hmFd|2FjR|5X1JmyTh}Dn$t<9RlsRwwu+Nj6PxsZyWm% zuE@1qN@t^U?|RK{YO81Xq_qplXba!f{UZ!KZ6YPix=-?mu4~n8x{*f0E%c1^no*7r zM`#J%xqH`N9Z)=p!S$fQ);ufp&TI1>(2>x1+EkT`A=x&JsXE%;QGNs`Y^%?8O2(&3 ze6Ja!;`jNmQ>RXlJJ5(Z+%?Q>(UYi82@YXDm`uC{T&UwPde!hJqgVMM@#mrcUyVNgI>$*!Zwh<(dc-R-E*BYJ|Lan|PKk`4 zr9e`qr@lwVuAYUFyGAf}_3Jdqh-6A6O?@zt?#R0RVBN4E|H%B8|M2{WrP#Ua#cd}v z&jv?VsutRn%Nm;=+Vx6sz_T4S!(s>h9v93dPDfTa=f^sEa3`7>Sf`ouS9~~D8xbn} zar@?7R|lGljprU>EJB#EnZ#F34+r&-JeE$((=suf;_kRHA2c3Yxy7*BvFo1A4Y5%h zbS7=ZfVtH1qGmfr>`CtP5tEG$7Q5w4rw-;z(T~%c*M2-0M7yAA`7p;xrD*VCmlMyk znkDON&2?vKY?4++TuKY3yAU(MZQEO7Vc$J5RPX}vlGpWTzCNa!hDtpk82GM1G-QvQ6KZ!1<_7IuoO%qa(cTlSMVHo)?bsO^xAiw>EdLaA(K* zQU%$`lc+c6iD6HUH*2*B4CV$z6yOKpht)_ja=(hXO8vaCt|eI@>SbOphiYDNWS^V- zDG|yuG}Dqxor}Z03PV3@T0-V{{7^>m{-TtkLQ1LZGS>9*|4GI7lT@5P>L2e$`Sq_X zzxe)v_NRl;?tu79NI+%|{h9DR?SG;me|`OJfj=+*^ZSR9njbW|d{g`9DUh%H<@^Qz z0{O^nEY?3DUmN6~|04fi{Ql6t!2Z(BfYFMY7Aq3hkyYInR~cB8>>)L%B%@7<`s{N44JZ|Xn$ z1MLTF=teJhfsq~|44!6}nYHPZ^mVOVTGhuQ43P9!A7T=r|INoA8VmAR(E_9avK+pBMf>I+N3bIWRFGJ$X#sON?IgsRe(6s4)^uy0LV=AOE9PWhjjwh^)?vMaCVS8(75XzUg%C$Ht>|5!O4e!@pETyk^3Hok+;P8^5gR^+Q19w=T z8@FY_;wUq@-pd5WoM(#Nx_4tUHsj%A-h1p65ySA31Zw(LtPpCvnV7MlN;p&RU{k2C zf0^FjsC!-sr6FtUmKE}zF?E@_U!Lz-4{giLE{5LGPP-uSeK&*+-sLc&FR)}8)Uw=Y zE9tzs|J;7bOx}ARN_uMT%tZ^Dc=j&QAH0`VTV2muc6SZM{F`R<9P*0YD%S z1Ox*iKqzn>2m``_8vv5;7Q_)iBybzJ14IFLfqOtS5Cg;l_W>l&V~FE{1RxPe0+NA; zKnjowqydkBbRYxB1dzO05I+NQfLtIC$Oj65C%{vn5GVqQffAq;Ciflt6NfaKi_^J&K5^Efa8Oad5S3YZ3FfLUM;mbz8}lc=d;Y|1tbZ@Hh#KaqPImiDuV3LI&t*o2e$zND z$GAtcY%piI&MXY4@%CF~W}a*G)?NM|+&4Q8RJ$`{`x8tLOI1cIqsKBC=*-+C)QZcp zBl!JlMY3x+!k9)iNL9@1taoiuQwXhDrE2fP916l`K(*V^`OkJs8a@p@_T&~z@VKF& z(e)D&xCuLsR}RusLR={L?_jgMA}(4FZeYpJmRCjm@RbT z*#$PMa_?S@x+D6a&}~`E@SGy^-00|u?A`}Df}*Jj50xt9BCH%bOzrGOR``C?Xd^cG zOIWY}9^cTvf298VAFlr_!3w}u#~Jd{6wF7XR7>ABYh%w3sGon(_SW;Zy3@JK7A5T> zwgN-$te6W~eG`;eHjUT2^8*@|RI^{(324a$v(r$zB#OINFp=-+V!svnN;#PHxuHXF zhN~$yzQ1vkW6T;#q1CQ#mndf36=NahcbUIKkj}-9I3MNUb@mF+m96)TKh!iv>WX<# zEE`YuU#(sg&3qt_b`waq9Whtd7;-RI?QRNEh*M&5Y2U0!zc}#Gq$y}}x!Fx5Zz*rO zbx|9`rfgLyK#|<2Sf=>Y`R%u;+q&BQ7_aN!B9w(2<=;m6_cy-3bSb=DX;MD+n(Kz}<>0WJ=Ua-z);cJi6Et^SE6|*MWt7f&sj7P@n!ay`5jhe2 zv(20@>G>~^aykuIxmT0E54>S5rzken`+C}nBGLPFc&H<+?1`*simcAb1-|sxBON(G z%aFN2D2-=N5r0Do{0(auTWO8b|8b1vy8dmf|NYPOe;)h`+8>b7tjHKya5KKC{pSJr z9_#CW^Zo_$k#R~Ke?WdV$Upg|{e$l>kdO3WAkX@@p8xZ&`VKR5PW7pe(*CXKQW1{D2>>3eP}^K)~z;%=j+VparKD({@TVPquCje zd|}#ch>br3J!|H_C|F--X%D4=>5uIX!W;h2hX3<7zkfw@;1pHq z{yXNmE^=)la~j+t*z-nr65sHgJ#kH4TRP2evoUu-yv6QmZHqtwW}_4nxlMO15*n@0 znIwhO<^#bGymU_9dZ69W_43Ms(2;pcZ5ywyB+Nu*89vrnt5_?O`jaXHYtEbK_sw}* zcAI1|#Mv-WcJB<`d6zBHY(GBXnU)(L4A4|Qv%RE_Vu~$!W0d3e7;aB`!6>&kmtHZy zDabLGesFrV=t1UrMH}_gi2>@BgY~uc%jxN%Q6=hV6)pRsnGp-@Wf;+08YA_+7Qo<3 zKlr*GK<07p`ASp8L7xpl|B;pTzt($X9t{()UVq!r-+!k5_Frzl`2UUmBKr27VO{@_ z^#nHBFE-jQ{>Ju;MZAH~DlUnd&WybHcaFRR8ZD!CG&3J5`!5Y;Uy(R+VxEI2XMco2 zmLE5{$x0{1CK=XAM%qs78SSQtnP`sZ`R??&P3bxb;lrIBd2~unT=jjd{9H1p;*XwQ?!EL=HIKU!&M_wl5Gd!xrDf!OxLL6SajkYUEcp`=i+%wW8%V-o8!tyyO_I|I!g zh|XP4C0*|eMcOiuch*>Zo)KgCi&`vFHZmi5&fcA)NvXj>-p{hGe=`44{S)}}{^uVa z|IiKo=UKR3ND%z<@;{INKzwf`{IJ*m{qHEqUw{AAp}#;r(x;B}t$(Zh#joTG{dxI+ z`1)^ww(bjGu0Qy0I0QJK!}>+T!NtQT*hIL#PSg$)Ui9Y_^7u_`#HS4Cv!PB1o(W7pc;Q-iaZXxs7*lBW<2wW16}Pt0cLi}xbr6!Ydpjml zpRDG}?=Cz_<+jOYz-m^q)~8N>@~Xt)0@e1iOXdu#i*0zE7kbbF zuG-Q8D$;ce^o9WocPs4|>wT|?Sn!t;<`wX2iwv9%kv|&Iz?S0~FD)ypaKPazgZrwa z`aL_o;a(b7GmQEt;`m)uRaA#XIMO=nvboraMP#hrYi~hEyiZ6!_~gX%UZ#}pt*QP7 zvu9T#9_3|jHg#6bL+f1ZXpzs$Ey-<8x;mQ4X`iK4#C8YAm6U8sdiGgu=IsWob76H# zt+>OWgTm^tqC%jHU5@5(?$P2R{^U{4d-3K1g+(Q6sK!~-l2_q89IFNo0Ppkgw~UE(!w)^{NZBP*)gX`i~Ac(=oq!n? zv_?D2OzCvaE7a#@#;n-dYqBg^b#ztQJU??+EqknV2^RSGZO!|3`-{vQU#};ffp?wi zL%+}0?YzjFOp!jG^)$$PI1QlR<~(2xY1i$y=D*bc-SB_@z3ZRbXkl(1>S4!F^c1D& zs;jG4U)R)9A6BCboa)vUf7PQMu&b+

    7mN>QW5VoZ(8Us~B2wr(;cpb3_SewIZ35 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 literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Historico de movimientos/24x24/historico.png b/Resources/Iconos/Historico de movimientos/24x24/historico.png new file mode 100644 index 0000000000000000000000000000000000000000..a34188e00f1874f3bb2d8c14f0cecd463689ce79 GIT binary patch literal 3682 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

    d$KQ#=V)992n@ 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 literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Montajes/16x16/Document-Labels.png b/Resources/Iconos/Montajes/16x16/Document-Labels.png new file mode 100644 index 0000000000000000000000000000000000000000..a6fa82b4b5643ee6922d3a25004e7793497301e5 GIT binary patch literal 290 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`oCO|{#S9GMLLkhTKK~L(6-&CK zuOkD)#=e^0fs=uJg=CK)Uj~LMRR)HJW(J0z|AF*N28L1t28LG&3=CE?fSU6s#UFJ8 zs-5BK;uunKE9uYw|Mtv4aCpj5YXu%52fsD!%EFr(W;Tj3^P97C9aA;Sf2qa>0%9r5 z>+bG5K0)9K!}IyO{&2Xyx$@M#pw!?%)9K3PdiF^_zWo*VvkPP15;9dnY>o8+haQPA zX1BctuULcjJV;r2-XQaumJhRvONHdUed6wcf4=<Upd_uXSLz3xA%UO&D Z3^H1i1isE(BMEdPgQu&X%Q~loCIEwBUgiJ* literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Montajes/16x16/Thumbs.db b/Resources/Iconos/Montajes/16x16/Thumbs.db new file mode 100644 index 0000000000000000000000000000000000000000..e0cdbe2acfb2061bcf962ca33cb97fbda3556648 GIT binary patch literal 44544 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 N002ovPDHLkV1iR%#jXGV literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Montajes/24x24/Document-Labels.png b/Resources/Iconos/Montajes/24x24/Document-Labels.png new file mode 100644 index 0000000000000000000000000000000000000000..291dbb66cebb0257f550fcbc42358ac31f0893aa GIT binary patch literal 521 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 literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Montajes/28x28/Document-Labels.png b/Resources/Iconos/Montajes/28x28/Document-Labels.png new file mode 100644 index 0000000000000000000000000000000000000000..cdf699ddb2d3544550a305423c4ec806609ed096 GIT binary patch literal 579 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 Z2LLc#tumZs#s>fZ002ovPDHLkV1hgGyZ`_I literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Pagos/16x16/Thumbs.db b/Resources/Iconos/Pagos/16x16/Thumbs.db new file mode 100644 index 0000000000000000000000000000000000000000..8c47e94edd71dbb9a0ab454e71890945991f030f GIT binary patch literal 8192 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 literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Pagos/16x16/pagado.png b/Resources/Iconos/Pagos/16x16/pagado.png new file mode 100644 index 0000000000000000000000000000000000000000..37feab5d15644f62ce88204317ad9b3277b1430c GIT binary patch literal 3149 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 literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Pagos/24x24/Thumbs.db b/Resources/Iconos/Pagos/24x24/Thumbs.db new file mode 100644 index 0000000000000000000000000000000000000000..bfd91bb1e1628ebdc29e8e19f06aefeb3ca06441 GIT binary patch literal 5632 zcmeI0dpwlc|G>|f8H34fTtlYZlUs7lE##iuHlk=%2)RTTLQ~sCZ6vp5X)`MnYh&dW zsUf!_E4PFwrpPS@$uKj|_e@*+>$m&s^=g0L??1oaYd_Dt=bZEToZIJ|^PJ~7&y#lH zm)Rv!!{AS13ebR!@B;47^e7nT@IizC;DQlOnvEdH?@9n*^dI>@Gy*KxSI+!#z`#kw zLO64dgYZCjAspL3^8a%LTtOJT4uiG83WUNi0z|_Z|9TOJE9TS4{INHDq4-*gqb1>b zGYSpuwfw(l+W3XMU#rFdE)=JI&R)a`zqXw6$M!9OFZ9|M9E76~@U?|M%O?bPK~B4$ zO>!WlLJh#&+$0)Q}t01<(R zLc}2A5DADRWHm$zA`Ov&tbxcvh>*3Abr3m-JVXJa2vLG4LsTH^A*zrK5H*N8L<6D; z(SmT+k2YizL zDoGF(6XjHbLc=l`EH4(zE6R`O7ya9U)B<51PN&c)Ilv{1LJOmi2F^M{VPS7M9sVdN zF4#wI91kxa9%d+qcPI*t=E9&ky@t8tpdDa@v4nLS&ACNfd~tGzM72*PXY07Zrsc-`1y8eS$Rd}ovP{w^$m?p z%?}^7bar+3Jnenf*FQW$d-ZyB?9KQDeQti?-QxQt#xln*6hQy()*qhz$uD8(7Z(PD z#^5-9p}3Ag(83t(x{cffa~GWNArU$4Q#_&;$=M}!yz-k|XT|nLbnuBQ=nN~;Ij(*1 z?CTu+?tkUkACCQ(U;SVe8U-g0Eey;6i%4%zQeQAx)SA$%K1}0^vzR8glt0)087(C1 zE_3!b(b%>g@$K7U9l8LK9xk-Px?PWegkGDUJhu!P(&IW39UpaHKVxt0>D=cLL z(2BT^uR2Qk)@eq6oGr$Kn(+ZMWXk-!SmK>%CVjr1VqIs!WE;t_!Upz%pv#IWa2P=;-uiLA6Olg`>K z+6a-JxUC>yWv`F2z+(Js1U$_0H{B3eErWmqvg%z-EC2d~SCZla*0f}`iJ+x~yHuBG zm;1aEm6{6 zGr3rU$c|&HjZlZPjm;2X+DUrZwG9EUs?Gkan2zn5FjF<={FzmjIx*PPSu6q`;l5PC zxbb?rrX78Mi46!2R8sr(g7SAe($oCXeO4=Y*TxRmVNN!1iIrq?I#zWn^r;9f2|E}a zq~XQhnYl&F(<;3KET6P%Iv#2;5nRYi@i+6#lS&uOS#PZ#F)$JsN^!W*m2FTi>DhO0 z=5|$Z{dAIKR2iw;hsau2R*YSu7X)R=^coum4)5U~_Zq4i;bod1QVp_rYn?h}mA7-m zR&n=T6+bjC@}Nva@Zf?{bE5H1vk6T>cCwd83#pR-?JZy8Da8(V_nH9uH?BOs^Sh?r z)@krc8thTbYbEit?%yZBkcG)D9Nn4eT2ZbVR?!v2_9!(z*f-~zP?LjziXTXPHGcF> zBQxiV%R)43WktJ+)Rgqzr%YT9DzOSy5wN#+KdRD~P{e~%;2WPFqnq9w@t7UDHsW;B zMvRs3Szx(7co@Ys=Dzt7 zg=FARSQmYx5o6uMJw5C-WU=!7aJcpMEsUP~7^V|_D`hrUXXcy)TVj@J897OwJl?-8 zbDG+!cU!}2;Arc`s4UEBmh*gi?Q`sjRtJ21u~)7?%_&`}%i;M`yUJ)~b@|nOUK8%s zx5Jup1cHKMd#ff%!Y4GD?n`lWs_l|*%u57tDHRub_j&eBaG7{aX_vRE%3qKQe|+kP zLZO>j8DRTM(m7(8O@o4u1=eI|Df z$u_M@vFWbpXGAWl#|`Orw6nI~hc{mbS!eHTS#bEfgS&Dh@7wkj4ps)=TksmV#k`ah z(5g;!TWpP!o)FYd(xzT0iVItBx~$(V>!+MyRi9RJ|JQft+Ar3KAi#G$b>ZA-xp7NV zkMywwW3f+~>hNOL&+)9-cs7}kc9@(?RkFMOV-&5?l6`%aG%l7GZPT=#X_&veZ|CG5 z0j9^u0Lyf2hq=a8zrulLjEDA`VgHJY`&-oxqEP37n2Bw%Tc@mn3eUBE~}gVZIDvG#`c^Je@3_oIGcYeqe2 zZe2~b?s#2YT2@Jkb($#JvUWC-Nyq1}xL*&lhz!x!dcl&!g zo3m4&ByNuA+pysN?%tKb;<3;?qcBvg3Ek!bX?Vj@g02xYLF9RJe%_U2r5uyru7&XB zI@^~%+qlK@fsBw?+CvkRL6-QEXU-cEfr$^Eog5~g*D2gM;%(&8Q=B>Al1xxhM0qk7 z7-CyH3AHCTwjYd1nyQ=4ai+JQ46898ZVTRCQBHA9G4kHmaNHrNI(POL7o2%S>A-FC z(ReNbB^v+goaB4Wb9>O`#qpVM3yLOvbWeM#kzA9@a%9GEwmsLZf|>+N#sXv|Z``G6)LJn^0IRRq`;1zNnJR*~L2ZP>k*?E7vA=o}HyOSq@V(E9G>K-56vZ4JEAO*}Zh-_xtt3IV)F zdYSX_Y=#+a_b-W+O+H$%&Wo_lTS3hk-svSvKPqVoONkuXp1X(u5#4Xrx&J7W&gx;v z!zbOD>KS%4e743?=s9e{B$Y9SW6hD8ssejW4Ru(f8Ub112za5) z3`~u>J{sktcS)!y&yFwh;qp^lhQnw~cdKFZBZKPS9*YxFj=88YZY1gSgl!s1ef+*y zcFbm7z+;{0nj=3C`Dtd%d>DbJF;!vGOIoBZCIXhN4!K3AyGWZF&IYhZ?Fh*A5bHfn znvNnZGn^3MaA8woK|52M`9tfC0h*H}>6wKlORl1zrlsJ-GkPU-c50mjJ9(Ge`;~6m zi!ypByQYd+;ZzaIWGM9z~z!rm(d*|?1ixF!!4fkD)Xup2srM| zn6YYnxRaB-KR;=`tYK==oU!B9i({9VQfA}JB$nKryrH-tY4P@?SZM_8=|aHxn#Ln9 zDJ%ZOk2B=wu9xS=>EfVsGA&7h)XOwmwhFPHcW1f`Q-%AZ?t0xVdGfmFmM(8j)umm* z=SBS2elM4xkSs9O-~(H*|6)l3z7jQ0AmA)>)5r#@xcp7@LZ}54^dlzKCl3K@C0iG3}MU=#&n=o h3tH7-S|8@*Shaxxyg2ENP_y+z+5*PnV6Fdo`4_?kdvE{% literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Pagos/24x24/pagado.png b/Resources/Iconos/Pagos/24x24/pagado.png new file mode 100644 index 0000000000000000000000000000000000000000..d986e6cd4ba39150223701eace0f154e30e210b4 GIT binary patch literal 3477 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 KMNUMnLSTZ2OxUsj literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Pedidos a proveedor/16x16/Complete-0.png b/Resources/Iconos/Pedidos a proveedor/16x16/Complete-0.png new file mode 100644 index 0000000000000000000000000000000000000000..7531e3fbdcd4d2910896261d8b01eb56e39e039d GIT binary patch literal 393 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`oCO|{#S9GMLLkhTKK~L(6-&CK zuOkD)#=e^0fs=uJg=CK)Uj~LMRR)HJW(J0z|AF*N28L1t28LG&3=CE?fSU6s#UFJ8 zs{QZj;uunKYs(~GFJ?ypxBc%rHD>i@zgNgoTaaG#+DSh_DeY-4lU^*xEZ@9`af!=b zX`epo^Nf9|sP;KZ}!3+wFztpXvADY`er*0DsD8nB36Q@&uqktcR?MTDK5`hKt7TeUng izaO~!e~U*vGsA?mYX5o`sWZT!VDNPHb6Mw<&;$UU@tU## literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Pedidos a proveedor/16x16/Complete-100.png b/Resources/Iconos/Pedidos a proveedor/16x16/Complete-100.png new file mode 100644 index 0000000000000000000000000000000000000000..7e7fbb7cd120287526bae53c5c33609f61cb6790 GIT binary patch literal 372 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`oCO|{#S9GMLLkhTKK~L(6-&CK zuOkD)#=e^0fs=uJg=CK)Uj~LMRR)HJW(J0z|AF*N28L1t28LG&3=CE?fSU6s#UFJ8 zs(t0@;uunKYfX@$-(d#eQ~6+X{&{IC2Izxnx-@hQ&m?IteQXQ;=RcwBQ=nlAkL z_wD%Dr}qu4qO78_&i6WbyC*v(JMF!zu*1Uh&J1UxCwh-weoVXcr<`A(!>XWw)1{1W z+Uxb3bNTN)`Eg^dz>`@jauarUoPGW7NwDErPY<(y%@U78V2p-aN3Q4%33G_9C Mr>mdKI;Vst0H4v1hX4Qo literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Pedidos a proveedor/16x16/Complete-50.png b/Resources/Iconos/Pedidos a proveedor/16x16/Complete-50.png new file mode 100644 index 0000000000000000000000000000000000000000..1972bb7ed40b4d02da5d40d694ade032e0d0aa09 GIT binary patch literal 382 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`oCO|{#S9GMLLkhTKK~L(6-&CK zuOkD)#=e^0fs=uJg=CK)Uj~LMRR)HJW(J0z|AF*N28L1t28LG&3=CE?fSU6s#UFJ8 zs{P{W;uunKYfX@1(P0CDnA9_$`kk89>^ZdGhW}|;pzye1%Jhc#WT%l z*WOhQlh$fYRiByC>G%5X?&#ZWf~Bt~EXwA2RmS+h+Q7TytX%2q3#QNROg2BU^H1fD zaL%nhE_G3yFU4FPGn;#6`?~$$fB9sc;Zu&(cl!*^?`{qboWRxPbaeic2<^jj?FGCq z2q|$zEeZ-;6VCr4`SfJ_Ujg4W%cV?h8{VFl)(ZOHrDt#~s%3>n*Ye|)hL4~9tw`%> zZsQ2n@MUKZ{3@Me-#7Wu9SO(NANbap@bS9Twp>5I{-nR_YJrnG1nycq&-*p8j-6qi X+pSw0-g5)PjDf+^)z4*}Q$iB}$W)e^ literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Pedidos a proveedor/16x16/Thumbs.db b/Resources/Iconos/Pedidos a proveedor/16x16/Thumbs.db new file mode 100644 index 0000000000000000000000000000000000000000..cfbb0c44183d4a9110c7f9f6b2f0280ecc75ee80 GIT binary patch literal 48640 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 literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Pedidos a proveedor/16x16/pedidos.png b/Resources/Iconos/Pedidos a proveedor/16x16/pedidos.png new file mode 100644 index 0000000000000000000000000000000000000000..bc972c808446d8f1b1c0a49c2977d3262ca89603 GIT binary patch literal 512 zcmV+b0{{JqP)z@%5w(33+yDRoAY({UO#lFHi~s<1XaE55!2ke-1^@tN zi2wlk_y7P%aR2}ul(R1~hX4Qpc1c7*RCwB)l0QfSaTLeDrf^fUOVAJmK|~TnmMLC= z{aMk&ewRAH0OSCwY*k)!%z)CDFMr{u9isE=bS198A zrr13P+ywm3{uCxNh)n3zc7It*fXEySuqIh}DxoUJ zZO%FwzXM`Q8AK*NUMmPj>HvWEqX`5fz~}K4WB_sqsO>#0IRGXz%F!4AAQ-7*>|h^~ zlyaD8S_T)%bin~2GBKMkKqmulhvSf>6f`Z<`#=alG;x-nhTl2@8SUkCW^O0wqYDA3 z4L~%VJJ89%OfKKudTnFfU92_$p}7OBzsystsImcRher+&;X{zC#8)uKNYAD|+9waCLtdnAdP*(%h-m1w08a3#HWOFAUKN-E|?t zi9_E{=4I{E+kq`AI?1e$4a5&9b^X>vD}?w+H5%Poh+?ZYP~ zVT(D-C$x0b+)H`Dm(abfa?1Qg`4#Nh3^(THnTRqp9Il(Zk^jOB0i}hf?2fbax&$~W zFI;(kt{ThR*N1=A>^T>`MMN%X)_X_JihyUVUI(qu-dUhhGvnV>)jzpiuYM&NE&KG} es6PIICBxH&g*RL>`Z$4}V(@hJb6Mw<&;$T$nt;s! literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Pedidos a proveedor/24x24/Complete-100.png b/Resources/Iconos/Pedidos a proveedor/24x24/Complete-100.png new file mode 100644 index 0000000000000000000000000000000000000000..fe23a48bb415f68ce03a4efb525d5786524e5219 GIT binary patch literal 368 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM1|%Pp+x`GjoCO|{#S9GMLLkhTKK~L(6-&CK zuOkD)#=e^0fs=uJg=CK)Uj~LMRR)HJW(J0z|AF*N28L1t28LG&3=CE?fSU6s#UFJ8 zs(t3^;uunK>&;X{zC#8)uJzh}2NWeHoCq@WJIL`|!`vaMQ$SiA8QdH~Dgu!??wjiW=x8%~{;*NBk$=xr(czIf?GJ~Su$Mcpq4v&l)=ep4M`q=m zJ^W7D>(K*M9WUearS{E1h2NRXk1jMhyqqn@;9dNmy4;#>lTPNEzl*jqBpBSjyqbZ* z$8GN{RhAzeg5y$lG{Bm?mk+%@w#l!?%eM+R-gHK zB^j=@FBaCR^kJHPblr;sr60Z64?jG`z39RJ)PMU9R5A#q$#k83xIY`{V+K!GKbLh* G2~7Zo;e_!3 literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Pedidos a proveedor/24x24/Complete-50.png b/Resources/Iconos/Pedidos a proveedor/24x24/Complete-50.png new file mode 100644 index 0000000000000000000000000000000000000000..147621b8dde53e712fc6b19c4d363c602dca8a36 GIT binary patch literal 391 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 C_O&Dc literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Pedidos a proveedor/24x24/pedido.png b/Resources/Iconos/Pedidos a proveedor/24x24/pedido.png new file mode 100644 index 0000000000000000000000000000000000000000..19399384f6a2d04e53e573271bd4181637e57397 GIT binary patch literal 691 zcmV;k0!;mhP)z@%5w(33+yDRoAY({UO#lFHi~s<1XaE55!2ke-1^@tN zi2wlk_y7P%aR2}ul(R1~hX4QqDM>^@RCwB~ls#w@VHn4MCrPP`;-tk*G7Eu%ptN8* zIOtMvP>MnX32v@}TL(v7q-0a72ogH9r34`f=yH{Sg9s&1$PiZpV)JqLzVG93cgl;dXD68JrNNh z?3plGV`VKue)CH$_NL*p%hdzk?ldNz%cKPio7M(^E1Anw?QQb@d@8{t1>mH8QvVQ|8ZQ1SCC}) z?~ca5yWWihcLvaGdf==1I-kFVauBq8VmIgD#jC>9ORVPW|5lOKhO4`~DC4~^S{t+x ze=Pibcn^SQPwQh{49W%9fngtxj-q5|!US>Pap7|vKRkWUE0skY71IYv;Bl{I|HLCv zuIB)M`mm6Jh3uFDS7}_OQOcl{!BysTO>4ustv3@D1mLdYm#*^M{$617W6g@>V6XNy zF?rbpaMv9XwAvncBt+|vo=>fg(vsf~uNPy_v^yhk081qO^Zat-?9MOu`g+otFgU>9 Z0RSVT#S3j&m9zi=002ovPDHLkV1oL0ExZ5# literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Pedidos a proveedor/28x28/Complete-0.png b/Resources/Iconos/Pedidos a proveedor/28x28/Complete-0.png new file mode 100644 index 0000000000000000000000000000000000000000..fa5ca6c583ef3343711b1b0f24a3cae9b8231ec8 GIT binary patch literal 454 zcmV;%0XhDOP)z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ-JV``BRCwC#mN8DlKoCX$M&S;e!cB4jj*)|;pyCAX zQc%!9EV(x!gCv9y z@-z+b3}B4q^rf>wk2%^7U&9?50>I?vt_uVbM0#a$`EM4=mQ8WME%d zRXe2l-+}wUk{#{~qkwfJMEwrT0o!@;x4M6P%QjKYh6Ai4yMb3XPwh!!gqznp;gz>y w*30AO%qrWwX9UgR_Lat_!s);C-vd7f0G+lSU$mDkLjV8(07*qoM6N<$f_v$@KL7v# literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Pedidos a proveedor/28x28/Complete-100.png b/Resources/Iconos/Pedidos a proveedor/28x28/Complete-100.png new file mode 100644 index 0000000000000000000000000000000000000000..166d0c34817abf26fb58215dc697246653be1d36 GIT binary patch literal 476 zcmV<20VDp2P)z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ-Qb|NXRCwC#mOW0xKoo?(Md1QeoB^aX$pJV<#5r70 zae@>`k)WUf3PeWHi zutHVU5;u3$3^M}=o!JJ1gWXz!QH-cg6lW5x#G@FZPE;oo<0CUJ&mQ2YzgkP{ibZiG zlkb)S9PaI`H!%Ivc89l$wJT_%|J@qqZnCUt?+fz@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ-cu7P-RCwC#maR?$K@^40kUjy5XF#lJ9{|f6Gzi`R zMFol{SV2;Oz(55SS&IQdKv0235(GgY=+3?OAUd1wG~2ZMlO`m+$z(FKJNxCFJu?|c z5}T|YY`C_-)~f>m&bex#GjdYBAekfg+9;EHSbdg@RsrHjBYHyn+* z>=^)%tZiuzNy^Z=`Q*v*p(}+Il{VgoxuV6s#EJR}%WMNM9F4hDSy5EMcZ zho+=RwqR+6Y7&}e`>=ogURkEmphlP(tkA1!G&T}y1~UTy*U3N7KiI1T^kVQzcp;|V zqOli)DB+dJ#PFLLZZ7YEvtB(*tHQp21d_?zQUEyG->nS3c>Gui^D_HeD%Sk)UI*p_ zs2$)Muq-Gv(KZyWhPA734VV#_dIODdXl~!W8mF-gR=V-?x_kI+Pw`12 z1{DpxK{JiU7Ml9moMbY4PYfmsmAQ?@a@%|9zX$#e0F(^pcrC7@hX4Qo07*qoM6N<$ Ef`3BMsQ>@~ literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Pedidos a proveedor/28x28/Thumbs.db b/Resources/Iconos/Pedidos a proveedor/28x28/Thumbs.db new file mode 100644 index 0000000000000000000000000000000000000000..0831543f160f92a389737182e242dea6260879a8 GIT binary patch literal 21504 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 jp_()Kib1-;Uo(QEXe&WqG_G;~V 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 TrGSF)00000NkvXXu0mjfhR8*H literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Pedidos de cliente/16x16/Budget.png b/Resources/Iconos/Pedidos de cliente/16x16/Budget.png new file mode 100644 index 0000000000000000000000000000000000000000..8e1a4025da19a1b680541daed8bc47d2cf0a98c7 GIT binary patch literal 3148 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 literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Pedidos de cliente/24x24/Budget.png b/Resources/Iconos/Pedidos de cliente/24x24/Budget.png new file mode 100644 index 0000000000000000000000000000000000000000..de2deb10713dc5268d577f9d5756ac20032cc1fe GIT binary patch literal 3361 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 literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Pedidos de cliente/24x24/Thumbs.db b/Resources/Iconos/Pedidos de cliente/24x24/Thumbs.db new file mode 100644 index 0000000000000000000000000000000000000000..df0d90a3fc5f398829f942ac0ea55389f2731203 GIT binary patch literal 46080 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 VzhCr+pDYdkOn>;b%>3`X{x>TGw2%M* literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Presupuestos/16x16/Aumentar_letra.png b/Resources/Iconos/Presupuestos/16x16/Aumentar_letra.png new file mode 100644 index 0000000000000000000000000000000000000000..141ebc4054e71d1acf1411413b380bb7c21c7ebd GIT binary patch literal 3050 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 literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Presupuestos/16x16/Budget.png b/Resources/Iconos/Presupuestos/16x16/Budget.png new file mode 100644 index 0000000000000000000000000000000000000000..095f2f11b3cd33fe0442925d4cf5f678502f632a GIT binary patch literal 447 zcmV;w0YLtVP)z@%5w(33+yDRoAY({UO#lFHi~s<1XaE55!2ke-1^@tN zi2wlk_y7P%aR2}ul(R1~hX4QpHAzH4RCwB)lRry>Q5431f?uPhDWai3BBDYetb}NB zlc1p`XzzPe&{RYYL5fh4hG|LG=G4&82MK-edGBdZFR%Yz%d_2kIKSt44);b>mGkVA zGDRKlZ%0s7&Th*3*D~VkPs`J#ts_-cqCw*3>w2F;HPINlFRs3Dc~^7i=%|6gswNtE z#>a?H+mpUtsDn{;yI39%7<6G(5wRHQsHdArL~J-9=%ln(C-olhQ#RsH22|p2PB|Z| zV8nOIG6`T+N!B+2$j2(An@Iq!<{r8ZCPWai+^^JJ?(D)NZBN|xTWvEMAbyA3%M5Tm zU*zCx7l6~5T(|=xK859Hmp${DLd0@0TflVRK z000W>0fLJSS^xk51ZP1_K>z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ;f=NU{RCwB?liy2IVHn51=j=G=neC)2hNW%h3^mQf z%&3b9G?6H(KcJH7lA;^$5<(7pdOi6R>zWkrfhozc+k>}==k z?ChMUi{-BjA$s7wcwXMmm+$lCeHbFb{}clNDD5rcU5?Wx7y;?o@y@k?jQ#ian6qu| z;!Nl%y*b&#Vb{$n)|oq;Q{b@JEGC*T4P=UskF~8L%df1@E^v3KFg1x0IRWT>0Kh_6 z=QYgfmT~_)W`Z#$zubL6I6QE1Im_4FKa^Em@=4T~=2$oyMriIJ-g+LUMsQ!Xq0sdL znVD4}LPk0VSFS*_WB$wGC%#r|{myo>@~v_#&O%Y9AWC)cHH`rP5&h1f=$aj_yjS4) zQV@X!VRMc^^V7l436r@nM|E_S}g0Dc5(AuGWZu&xtCspU_2q1fe()gc_s+F-RW!iJH`$!6_F z+4Ze!3fPZ4x>Q)@?g~o@7DPZ&BdDqb!vMInJP5)NDterM6|mMlXmM2(o*$o>V<@So zY)jF0ghIuL$%D{!z{EOXvAsk|@0Jxm(X{VwZT{}T;_7oS%r5s7cR0M0hczpOG5;nx83VIzB4a}DDF0000< KMNUMnLSTZhe_Of$ literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Presupuestos/16x16/Disminuir_letra.png b/Resources/Iconos/Presupuestos/16x16/Disminuir_letra.png new file mode 100644 index 0000000000000000000000000000000000000000..2febedb3f272f9e172983833ed59d286498f3a52 GIT binary patch literal 3028 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 literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Presupuestos/16x16/Tick.png b/Resources/Iconos/Presupuestos/16x16/Tick.png new file mode 100644 index 0000000000000000000000000000000000000000..264d020224173f61fa629c8d025d5975769867c7 GIT binary patch literal 601 zcmV-f0;c_mP) z000W>0fLJSS^xk51ZP1_K>z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ-&q+iXV>(ze>oM8W-%}@Fp}Ws zdA2bv=f8SnpZ&+HeyAO5G%_$SFff=+D?eL+pG$7<=1;GG z{QQ^6a3}vKb{8-*s)`EnNV2dovB-#th5a(oSfilKrJ=4Y?s9m~=l{>&zsmo8C+IFN zZ!&+ozy8`EQI9)Ha-zYkT>n^}-T!NBXDjJ-_s$QtTX)`U{c$Cr8ecduGcYhPyt<-( zi&t6LR$PonNkEiQ@W;@6?6Ijf@NofBrN4XMA$! zKf~+ypBDc*AAg-tOu_TQm!tPiJbwD_;)}aX{~tVhxBnOGvo>O)ni;`7`0oveBj=}Y npRRp+_9&I%cHTQ;3;+xOJwLS|5t3VT00000NkvXXu0mjf*}xk> literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Presupuestos/24x24/Budget.png b/Resources/Iconos/Presupuestos/24x24/Budget.png new file mode 100644 index 0000000000000000000000000000000000000000..6d01c8dc97cedf780ea15de6e5acfc41d2bc09b7 GIT binary patch literal 510 zcmVz@%5w(33+yDRoAY({UO#lFHi~s<1XaE55!2ke-1^@tN zi2wlk_y7P%aR2}ul(R1~hX4QpbV)=(RCwC7R=r9CK@k2T_X?IaK7kU5g``L&0SmPg zn_weWzJR4~5dtbvA%!3jaz*40&O&_zE5Qe_J4muKV-Yv*C3lzI<1%otv%5FneDlXv zLKjg-XkSmJmr+k5AtZF*_w&7hvp2aPDx zQ}b@GHpI~12kIpeV~U{nsL)Z+mW6cqAcS!;adtYQ3N6eQ*ta5 zF<1mw>-P&zH~|nb`Y#`=c~t z000W>0fLJSS^xk51ZP1_K>z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ=M@d9MRCwC7mU~QFRUF5^_gpT0tWX|>c4cG0P!Iwo zJRFf2B$;u>s7of%7|kSMbf8&cmbt&o_K#WO5*+&jRzMe{#DL3!CK_jqSu*{@1=w1g zgk|6`Kv!UWaeE)VxA*u5kJ7CmL_Nt(Zhq(F^F6=UIftQ?;{O~>{Pzq&rM(V@l-D52 zpTpDf`;KWMiE#2@z-5$2=FFWsAK zuPFW=)qOQd!NpxVL({-nt7HGoWy&@A{Q^VfsD?nG6E|nxhSw>qHOY?ND%f*>gefg&bq1gm<}@Al7h2$*n)iF}OudRx=P#)Jw9#B(AB>U|tH_Hh zYei8)AkYeT`@lvg;{pIs<$4A-+jrPy%vcxEG;kb?qCyKI3;w{|l8g)^_dDC?*Q5h#Z8?`V9;Q4QUqoE88!>rFKiUL7+3uA3VTP2y{42F-Ns4s8U2+Q1^^d;_=kIX>`y@=VRIs}8~ zApxw34T@7laVPk>}uUyB$B^dK#e9^+B(H zYP~5HRfZ_N0k?BF(SwTa`kW{Cb?wT^AU8Vi5e%NkNbBh>%cP?FS?E%G!EvPk z096$rD@Wit{sW~HB!x?zQ)3j~nT0rPRyPZw{@Y7ItAQzo`e#89*QyvhB1LbH2@GTs9p(9 z-@gw{i-(4fT!iPn-*$W_yW6iLLh7KXrx8_L@hYn7DTBc{45P6ak;o*3#aehyMgHxJ vBJngWa+zT!A3;?HG2U_Gzj(4xO7Zsqmk(AE<-KJ(00000NkvXXu0mjfsTL-+ literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Presupuestos/24x24/Thumbs.db b/Resources/Iconos/Presupuestos/24x24/Thumbs.db new file mode 100644 index 0000000000000000000000000000000000000000..b6d89269aca37ab76028776e8dd45eba74c4f8d9 GIT binary patch literal 46080 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 literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Presupuestos/24x24/Tick.png b/Resources/Iconos/Presupuestos/24x24/Tick.png new file mode 100644 index 0000000000000000000000000000000000000000..8554e1f6208673200d83d8f489e768a40628f0d3 GIT binary patch literal 1016 zcmV z000W>0fLJSS^xk51ZP1_K>z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZq00+ z<<^q6(rHWEnd$VO*$2aBb#GA1|MWk6=ljn2&;OkqB+D`^asxjY?bH-j(w131&5FVFsiRX!%Y2l{ITURdI zd8@CnX$Y5W?h-Q0PtO88PEYdmy7o$!hMO@beN-R$bp*Q(?JmGBKK-t}qPrCb|S=_%KXuiT_*7oCT<|=2g|JEZ2&y zM!LTz1kPviu_)m=03(|s{}uPH2W8C^t;%rdnauiVOdg*02ijq%VF>e?Rc4Hi5<5v=|#Jh8;oKUOeI+HH9gYfU=?b+%DdaSKLaAy2 z0CYvhgEdv3ZjZzSG}t4;gok}5Fzk7N9e6GRWYSaW4l3d0B0X)_Y1JB_L=V($l@sR^eTO>c^Yh5rOPF>Hi3z-6`DdnrNIVX@#R%zjs;o$q zN1j(8`vRdpPU$-i-g{h10x)%33}!gI`MJz4N}(V`EFu|X#KkeVos!5A{%@uJhVJ literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Presupuestos/28x28/Budget.png b/Resources/Iconos/Presupuestos/28x28/Budget.png new file mode 100644 index 0000000000000000000000000000000000000000..8f5e61e07637aedfe9da685e1d7793cf94310291 GIT binary patch literal 556 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 Lgrz7r>euOCOR2%k literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Remesas/24x24/Export.png b/Resources/Iconos/Remesas/24x24/Export.png new file mode 100644 index 0000000000000000000000000000000000000000..07af21c8024cde040e5d06cd644bc36a6eaa1d78 GIT binary patch literal 872 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 MhN&pn>R-dZ0UuAH)Bpeg literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Remesas/28x28/Export.png b/Resources/Iconos/Remesas/28x28/Export.png new file mode 100644 index 0000000000000000000000000000000000000000..cbf2bd25128a37073ac50bd757e9106633b1acf9 GIT binary patch literal 819 zcmV-31I+x1P)z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ;sYygZRCwC7)lo=OQ5?td@0}B)Ao3+O3d#^41UG{u zFeKENp@=kkvdJ<*eNiyzCFsGo9t!Nm1fi7_R4gbA5k*K6DoHmhFo-~`U=YI4itU_p zZx8Fvdv!IJxBuI{=Zp{k|2^k7Ej$@D*hcwJdo-M=@MP4;R^iF0QRV9~obX)PHt4zz zz>R@^Hlv>QF~d<%*L8$Uf#s#eHq_HTW<(c1=iH(DPYc7EMlc}|LIKcp{<5tzzt79R zfEhbXRB3dL4iYNJM@YrVsv~r?wb0Slf?m{w-{&R1_A|BFd&|gWw6088!KFbG*ZT;1 z;o-hL2&rhUt7c?Mr7;zEQ>jW#?HK}dy=IzlLfR8*9e zaIWRpwosS#n{CFd==9^}txeB-ASonsZ%iZfqV)2J1*f+p&zJZO8@SYJU>sO|OLRZEd?gzu|*#De)SZ|i3u}nGaaB$1HLfkGYLV?atceYWRQ+bng`0oqWg4^lbK#I|Y8z%PH%O xZ;8f@ShPo@Bj0elm?ItLn!`H=bIsvj0{{(v?%+CLgw+55002ovPDHLkV1nF;e!>6% literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Remesas/28x28/Thumbs.db b/Resources/Iconos/Remesas/28x28/Thumbs.db new file mode 100644 index 0000000000000000000000000000000000000000..fcd00072fc31c0ba32fc4e58768aeb13efba4b55 GIT binary patch literal 5632 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 literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Servidor/16x16/Database.png b/Resources/Iconos/Servidor/16x16/Database.png new file mode 100644 index 0000000000000000000000000000000000000000..badb104aa97c644b9d306698abdc46a020986c27 GIT binary patch literal 749 zcmV z000W>0fLJSS^xk51ZP1_K>z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ;V@X6oRCwBqlRIk^VHAd+Z)SIMS+iM=_=nh&3`^*05qHmpm)w7 z>R@0dQmih%qpQy%lRJqp1X0*TMFE?EkMwG|wF0tHA@m)D(ZQg*H^a!WDa`a?d_TZ0 zeM3400>45iZG;e{`*S1`8Yv=7ql1CoN`?@^VAt-0B$6p)W^V@r`F{o<-+y@UW94hS z69QgCQmO_|w`Z{(=j)dflM`pBuZ|v{Jm1}$KB59=KnRUnT_u$Dnq65fm5ce;Rw4iF f(M#U6uIASOrd@6EpSQ5-00000NkvXXu0mjfe?LME literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Servidor/16x16/Thumbs.db b/Resources/Iconos/Servidor/16x16/Thumbs.db new file mode 100644 index 0000000000000000000000000000000000000000..58a51a2a4470518fdaca992dfb5866e1dd5194ef GIT binary patch literal 44544 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%0D*;4)lP4%wX-pZ0Cb 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 literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Servidor/24x24/Thumbs.db b/Resources/Iconos/Servidor/24x24/Thumbs.db new file mode 100644 index 0000000000000000000000000000000000000000..8d8cafa8b8e131f89e37386724ed54b499a324e0 GIT binary patch literal 46080 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 L3p)EhHUIDr!Mi)N literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Servidor/28x28/Database.png b/Resources/Iconos/Servidor/28x28/Database.png new file mode 100644 index 0000000000000000000000000000000000000000..26d3c5652f7bd59ec96bf467192d4ad3a0830177 GIT binary patch literal 1317 zcmV+=1={+FP) z000W>0fLJSS^xk51ZP1_K>z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ=n@L1LRCwCVmdkHcRUF4Z=gzC0nYJ@+2PhP+JVPKr zgAfui7#E_(1#Aq)ge40TV_dk?u+cw2L)a)$V`4~%x|J9ci7r$mydMG6KwFp=rt`Ru zxsP+tIWFjwmQE`WBz}`$?zt!T{yyjY&hK~f6UG<-gb=iJ=nz(KmF1RB?E-5!S6H?U zBRZB1ZQr1jEE+8ZMwvu1=}eBEyo+g(!oqav~?>zIRV-?&^Jp2W5=LD1RC@*ZF<;y{CyC zgmxKN+C%TIEvtV1<+%>c>xzk=G(&w8BUiEgR@)+T?sQZN_m_=laMkZrl#$Y+z=G{mX{v?MZO**g^UR zcQCYZ58Z{OnAn{gvf1Z1D~zqNYgZ_jCn(=_F(N}Ek!TMD!N9YdSia^3YL!W@pZ=Cc z+gH3xFJ2ry$o)uGm3m91uqiGIWqZ0~t89Q<6m_ z04tFu-C3Ztau^xdvmDyUaM}VJsiNsW7MI0S)(kKTn;5O1sB@(h#_0CIFz`72>oFQr zWAi?G6d9w5!hm}1E{@~O3-inwcJ-9lymK#OBbT^w?G*XqbM&qlCfmIX%d${1K*b?C zj!s4A3gVXbHlQuoC3EOLX=0qM{};yqBd?J!F;&%c3*iN4{?@N}K77 zY%HFo)9*_BU$gY70|Vc|bE;3aEVM=`)gG8iWw?6g1S6MEqT=XrivnW|Vdzt<-odeL zgtb6fB$8>iz4#W@YK3#ZeM2JMMOWWiy8DJmWpWrTi6fUd@{oZ`!?`b|O+md_SNub%XlYbprP;GV)N;L&*TGB}PjG zhK^i;&TJRPM8vZ$Zyi6vCoS8)Z|p5^o}-}I1WAs;DA&3}@XVgX>aQoSjo;EA$~ z0Vz$RE%2|4WBZRD{`gLL^vayZ^>Nko1I}HU^qP@%aL$HjH^Oi4X0WfA`e@z89eXzn zzp`Zg@avQY)}Z3>U(Yb|8#wiGZjX;LSuRhFPgK5Z`sTAQPH<_#&by_9Z;6vkL12DJ7x?MOaol#T b{yzf%hd^OX9!?AG00000NkvXXu0mjfi&16T literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Servidor/28x28/Thumbs.db b/Resources/Iconos/Servidor/28x28/Thumbs.db new file mode 100644 index 0000000000000000000000000000000000000000..722065a99ac9cc0d872c5012b1b27cc97a60719b GIT binary patch literal 15872 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 literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Thumbs.db b/Resources/Iconos/Thumbs.db new file mode 100644 index 0000000000000000000000000000000000000000..e4a0a964f2cdbf6e72ce335e3bc10a0ff961740d GIT binary patch literal 15360 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 KtY`PH)&D);N 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 literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Usuarios/16x16/User-Password.png b/Resources/Iconos/Usuarios/16x16/User-Password.png new file mode 100644 index 0000000000000000000000000000000000000000..a6d89420380b48e68b47f719f7cd36bdf1c9838c GIT binary patch literal 721 zcmV;?0xtcDP)z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ;M@d9MRCwBilTBz7K^(>3%ZM5apa=0*~$v$GLfIBD&G! zo=u#KD!!+(N7^lSiAld#7}=f(y}2+tFuWz;`Q!nw?OL}qO{dkGfku;|Qe&W$_%iA6 z41hrA1d*;oHN%LP*D5HMD=4f~5DbKoO2iQf$%6x_&`>*o*xDpwO1fNO;1+=r3E|kj zB#2|dWKD$R9&$Ld(py;8HwSn`XnQj$h>`>Vuq_MRvEeul2wb;Xx6v`da&hflObKzv zu_XX-90wNXux$(VI}YJtuFYaBx4=<1!Ju{X^lMeRKU2{U_Qc z*mLdZU7~m|aitDRX+ZV>Bk^HmOJmqdA^-@sZ`8FYC>KGQh=#;4tGz@PV>mm01cqV2 z@Av<=PF;VpULvP9ZHk}`2|~>SQI{d9J^=XVP&-cnfN7;0Ts6wHN?oDqfuMOIt^+pS z*v^v;-#I3y#lb+2FAc8{a2?QlS6@H)vhb~A2Y&_tsO=E#uU-wU00000NkvXXu0mjf DN{2q# literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Usuarios/16x16/User-Remove.png b/Resources/Iconos/Usuarios/16x16/User-Remove.png new file mode 100644 index 0000000000000000000000000000000000000000..5edbd1da7184451a0f9266aacd2554a6309e4e9a GIT binary patch literal 773 zcmV+g1N!`lP)z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ;dr3q=RCwBil1oTbVI0NJ_n3#HGdkmBI^<;bu!0ss z(SsJ1i&oJhY83w}_I5W<5bnd<1 z{qFs~79tpqc2@th`EfYsPqfw`gkVYE`_G*Qyo*Jn)G(8u`ePrLS2dD^{d7$qtk3Ck9kTM(d>gaDxP&Lt24 zq&NeT9R>OF7JZ+WC#druTqu{c{}Qc4VG za$}PPF}fxI07gdtTqu_2r=_srIE$b{vE)2_leq;TR|!Ct9%*}bqMjuZcVmQ{>=Ii@ z7zT1>g4@NcHZ}wYt<3ECY+rV`VuD@W$!H+9^&Jg|PUV|5Nw>72@#uAo9oUQFks#p> z)%$C=wG6bLY3-<3BIlcW39H(vvIjF;-TwcEdAdLKF=7w)D>We`K2yqy|G@uBmV4!6RH7A^WW@04wY5IM|6#&G8 zN#0h|7)qjw)o2B(g)3cKnr=as%t>zwz&HS7IpFUAdAlgQ4e)El00000NkvXXu0mjf Dp=d`~ literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Usuarios/16x16/User.png b/Resources/Iconos/Usuarios/16x16/User.png new file mode 100644 index 0000000000000000000000000000000000000000..ee6f2a7b82fdb6371b42f0983eb8b346852c8c0a GIT binary patch literal 768 zcmV+b1ONPqP)z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ;c1c7*RCwBal21sJVI0T5&!2by+@_n;+;GdxGJ_zY zD5DM~5d@y1PJxG@=xAL$c*;WroeY8~h@evv1r>DZl2JmJbV$Kg3Tj5%+`H-C?RlT~ zeVz^?_-E~V`@!$`;mh~?BU)%a&z149C+TTy(dHe+ z4yB(DUyDWp&wO6vsL#U_O@4N9e?0u*#!%0B)X_G;i;+MNApk9&)9aN=TVb_?T%m;QQVF48Gm`N(w1j=VJ<0IEP5|FJ#AA_Ep(G$3 zf=EjkXOAa9lmlDT5cYMDGkr^)*~Rkz0bUOCSYHy{FaQ9q<3K7GN+}R%y=J*+=wLCo z`Z*Q}OQl=`0F+X2q=f4_uq@$z`JS6^n8Bs7sTH$ad1VU$TL?%Y;7A)%O3Y+(+2w+m zYaAkg*}31hisiLGQq*AE8=yk5Y(IXVnE;U6xlgt}(xK5rD@!CEMhUq*B6>&&CUO;m z2gL<#cKW8Pnbn&Mj}~U?KGKoVRKy!S@R5cBSMo_s(p|mixNr~IQzuY7=OetmX`uOF z*Hrg#_h8)+Io~%UKpYAWizN5-#|C%TD5*z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ;{YgYYRCwB?lS^n^RRD&+bI-Z+er6gnlb8h4HV>^u znwZjs;6_mB#zjFAaO0|rcH>4@E(Aev<61=p7uHP?L8_$?+!)JHp=JyP)7aRilg?x^ znVCEHdCql}EQ;X5fAz!v*!=v0|G@q4FTbUO=-t+Sx7^%oul>5Q``$;_?)`P7TTl7L z)$@!kE@A`Jzg&GIDXlMrU_nW$$%K4!e!6_?R5dqx6p%;c+e;^3TRmI3S{?cf#9T$9das0wmsdz(L@J8e1%!u41$%3pLfy0oT7?el>NhMefpk-L%9LLBP3OA2EH0fspFQ{SOm?j1 z`7zn&6ycL3v-jqBHkzQ+FHxW0XWKkNx(Sq%L^?^7ldB>(D!h-0sHU@%@J0s{{Rid#i}! dnE!)+1^}~(b}S0I7AF7z002ovPDHLkV1lw4r!xQm literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Usuarios/24x24/Thumbs.db b/Resources/Iconos/Usuarios/24x24/Thumbs.db new file mode 100644 index 0000000000000000000000000000000000000000..09f64b11082f76643f09b4f82f390b4a04ae8847 GIT binary patch literal 55808 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 YJ0WXSS- literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Usuarios/24x24/User-Add.png b/Resources/Iconos/Usuarios/24x24/User-Add.png new file mode 100644 index 0000000000000000000000000000000000000000..3616f187179dff8ea71aa49b90ce86e145f22cea GIT binary patch literal 1345 zcmV-H1-|-;P)z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ=w@E}nRCwBylv{|ERTRg6dw<_KXD;VBqjS_59d$HO zp&YUD!5f-%MH37Hdk}g{1fz$1hzNs9MCd7lq=W(SsZ25hwTLb%sWg~onoih^GwO_& zX3os{F8kY;9?mzZGwRTS1)IIsTK~P)`mZINa|j_ADPMoMdTR5e;v3G{Rbd#_mxhAt zy*CDr96fz?_h*MXy6?7aZ7aIr^O;v~-V@B{K5}yRh7~iW7r&5#;!rst&hamSE&YSBh?FK!4sAWAOd8MXm%Ha;9%!uzXnS3MF-tptZ)NYKK9LVQ?tYKc4P81w;VH z_gosArT`Z@ufP9fb?*60)~^dndR~5{{m|cB$)TcnmNj*TX{xZNs)-+B-UX z-%V6(^>C>Y^6Nb%CTqgBGJM; z8R5tJN@>@%gMVxt_>KNCSH+ySX3VRqZ$3g@cACj5TrIS>^s)Altz;Hoe}wwq_~0vo8;vj4wa1M6)+f7*|s@W53Mir#aFcDIM3EZ*%O{&&;1c zA2lW9%i4pG6(Af=RP1tf6Q5{a_SjzXOnhJlwfUJFeOWipxCG%ug*sLsgvZ{(=d_$?)%#laf$r^q9+iP_>(&V?5k?@4L}(AGJVfka@i^;s zV2ngYJ~HtUiI>`?KGtJgL(@yZg!}iv_>Dq)2<;&fgH#?)`gj7YkqFNM0-+^Rc}V3W zl#d+tF%nPa8i69vHyS{jE|GXGQhDI{IO&jpvjUOvaMFRJ@>}g8V;>p&2$g1b=WXK)@ zuB5HM|DdHQRsjW|Ha+|4y-inhlBxp2RO9r0l>9pYc|4hMa3cXH00000NkvXXu0mjf DW@u{S literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Usuarios/24x24/User-Edit.png b/Resources/Iconos/Usuarios/24x24/User-Edit.png new file mode 100644 index 0000000000000000000000000000000000000000..1af01adc08792cc3ec4086340d1526267be64391 GIT binary patch literal 1385 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 literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Usuarios/24x24/User-Remove.png b/Resources/Iconos/Usuarios/24x24/User-Remove.png new file mode 100644 index 0000000000000000000000000000000000000000..b50a9daa5740c56ddb70ea1aa36adb2bf7b83768 GIT binary patch literal 1282 zcmV+d1^xPoP)z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ=cu7P-RCwBymP>3^MHt6_Gw0k#Z|`kOZz-j;wkQ!2 zB?OHN5M#nZV@NQXXySsE8i|R#~Y?rz_IvSmd_Ys)*{yUmqKwW&}n zkB&{up6EGqeeajY`i59w6ZZoAws+gpT@SQ;BLywRQki0@OtDydPE5^Cp6ngnzUOG) zLBP%j2=DIrZr3xbT3YJA#ru4uHO5%1bvRdxbW-Lwu3NhA`puGlzUU7v8j#O7ePoTv z7fU6qbwrUuDTUSsV+_uFvgxpX<0H#9>|F`JVcb{lm zzpC?UCX-G}A+XM&wWb;=#-~aQjaOKJu|{LGs#y|;wKj&-K+al!<$7TdC@mQ9=I4Kn&&-yN8&fMuqcz4DY#iQgo+}rj?en{d-}!- ztHVD4wW!N(^^Sad*xL1l$k#pRl1e;#v6~Iqkd&Jy(vE>bimzrbQC*)UA;QQE7WRxB zIlpt}Pp0QB(}&;dT9a<-I6-5w(_Z&7%+1bgs$-g;UvNegp~*rAXR{f0vrKngFdX4$ZCkxAwmc7 zyg0`NG~}1R2sGb&4{X>bOn@)}LR+K?@G>M2;H*Rh4iE?28*fo)ue^38Q#J)PT^^emm_9f8lP@~ literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Usuarios/24x24/User.png b/Resources/Iconos/Usuarios/24x24/User.png new file mode 100644 index 0000000000000000000000000000000000000000..ddb1dd69331d62266d693421ce4f7b2a18bd656e GIT binary patch literal 1267 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 FV1kHF1ET-{ literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Usuarios/28x28/Thumbs.db b/Resources/Iconos/Usuarios/28x28/Thumbs.db new file mode 100644 index 0000000000000000000000000000000000000000..026a15cae9a0f3d18d9d9320976534b31b632a01 GIT binary patch literal 21504 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

    s2lHE$oVOa(+H3 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 R8XOPA|GgC|f7?|2{{S^4{hj~- literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Usuarios/28x28/User-Add.png b/Resources/Iconos/Usuarios/28x28/User-Add.png new file mode 100644 index 0000000000000000000000000000000000000000..76459dc67af9152e9c910c8eb764d663cb3e004a GIT binary patch literal 1618 zcmV-Y2CeytP)z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ>$Vo&&RCwB)mR)QdR~5&9_uiRZuf2}Fj@>4~j$1<7 z5SNIwfCMGP2xukRsznqCNJuCT^h-SO5EZFZJb*yrLr6qI0wge$Dr%ytRFsDbNXtXh zN})7tK@JH?lMsK@cCy)B@668JFCJ$7nYEMlN=GxAxpRK^ocW(~ukhX@grMCx{P?GP zw!E+Zp?s+BPE-A!`9@r?)*9od&RstA?cbdE3!vM5w`;85FWi^EHn+mLSPOXUS6{jF zron+jxttn`qL@b1B#L7iQB1ua`SVlNzdd{O>_dMo&z%PRYT%>$?&aZ!$6$;V&Skq5 zzVO4(esE|@-wXMCFl3CuI)`hScMd5LoBHyj_kCjcxsl=G4xoLC+Kj7!hrfW@d}H75 zym!4(91}Ma(p003!5E9R4r?7A7#t|1OYTwlmP12WK(HAcSCeQ#YGRdA@TltbBg#<@^@1%RSjUKR=ajt{PJ~llIXIv7HbX8 z8muu`yI^*y9{o~XPF`wMf%@_WaO|nm*H;$RTK)M_PuCtVrEqd-J$_m7J8Ls@4(BYV zC+ZWx>{{(?-NGL~IsHr{itE1=c7-i~<2bcP-Gu<)=n# zZ;WBNS<^~$E7itmPMp3pdHhu6rB+JcIS}Bfr^`Q@p1bm@HJTM>m%v7AE?WGHT^^;@m^4MFDV2KczyGK4lmEI{f987A*>-!{@mTjp zHMI4|^cTOHYou!b>{f2SA*C}X@ZOPX%YSDb2glDbJ5nIu9lX^%JNM*UKfibcNZ%1~ z$G5iL5pLZ4oG2BBTp`64G$UsQxu^GT;>vlVMvcUGa#Bq4>TsD{R~M=oBIcz}FU&mq zza!(1HO{Ud?IQ5~j}Pz8_YNOrL$22rQe3CT6*Q`;c_M#+y&w4`N-5rMOtJspU#G4N zDhiQtF1tn{&B^Ik#(!P@BA1w4_a6>^lR_>(bXW#my~|&E0coG-Q2h`|nh=Qw2hJRz z+TH4t3x7fYLeNyY(l)hIRMDQf}w|oZ7g}c?}MP7vKcK3WSx651wOR`Af_f zB9ab=Oag?H*&LV6#e?ut6bEj4uxHnWBh_;Jhjz-90DM4kp>7Y5k@V|wb=qfQ4C5qZ+Z~uS~Egv!{J4M$s9@TKzb11oj_=prOpY2 zmdG?frV6?6%>vX)g0ORYE3NhRz0^?`Mj?ztXoplDCq06U>5arI*HW2Sj9jEaD_Yfx zI5TfhKyJ+lQ+wsbQ1|Z^N(rGHQu?g%JMdQEgI2U;kF#tjM5?kVQ-#nO7~_0>dUgtE zt_hs{`|Cd#xFy}z*>}VJN_6ERKzadAX3+&6gkRiVg%ugl$PAVQkQyIX=jNwR{O9=0 zYcszE=B`!v1v=Q>v%TZa&Ko!E42p%#vLh(ToXVrTLLj{L4(F^h-uT37m-y7i$-J&L zFGVx)M0`Py1OEU{t#vAIck&iM2y_7XmZ_GaeM{;VFw0E0%&b0zuO9y&0McJ|>29a! Q*Z=?k07*qoM6N<$g0q(i?EnA( literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Usuarios/28x28/User-Edit.png b/Resources/Iconos/Usuarios/28x28/User-Edit.png new file mode 100644 index 0000000000000000000000000000000000000000..139ec635691d96ff80aaa57fd20275b2b002cd44 GIT binary patch literal 1728 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 N002ovPDHLkV1kx6|D6B; literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Usuarios/28x28/User-Remove.png b/Resources/Iconos/Usuarios/28x28/User-Remove.png new file mode 100644 index 0000000000000000000000000000000000000000..b046745f0687f41cd2ae091bba653ae48da16f98 GIT binary patch literal 1581 zcmV+|2GaS7P)z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ>qe(ax(PxkD1 zPv2vOoW4Iz&AS#GNxinv7(H`g{>V3faq3Ti;RZ$s0oe%n^3z|s_m;u_Bl)}@isOVv z+$2sC8gW9s9*6O%+FxHdasIJCSLV(FVY9$!y&sN$@6+!e+OhR`p%9ggF*xt>Z3XX9 z3K`g1*#DW24Zk>DYaTc~zBu;G-T}V}rmO)T{TzDx&0BvJf-lEOg0+q`H5hBL*5RDT zIZprv`-^)X_|VS7r^nxT7~qjdzq+!}m07s(MyA>v&zb>%wGMN4ed?inBzMMff{5Up z!x&4NrWlif7aA#%3TQ2iyt`-r-dlSf1bFtDr`ItR0RyY9R*gcWzSwNF#25o2c<-^+ zlBR~*Vw2JF1^RnSbQU$OR)emB*7uC`fBDhlZ*BwTuNBWn)&m-2KN`mgN+}Q_cuze} zIXBrrM|nQ+!CmzA;p-Glvls@fuMI_})j#g6`N zig}Iq9_Jjcov9%N2%wcvF6DAS36Se;kyXG`Co9$c9~nt*A1W7=(uh*ai4(jhc()Am z-V;K0-fG!R7XWqj#m`>Fv|6U(oWnVbcNS+Y&MnEU?8mUOFDEZIYCwH61wj4(joL!} zC1-7L)?%&2T9ZMS_mM6n7v_#0Hb5m&o|Q1~i z{TeXyj)0H<^j{N~rm8=(#ss_UGLy6IFtM(!%abS1RR7Wr>5T&ce*IkK`_pq* zUUAm2N^S*gjbZ*u-1_lLW4{Mp2K+k){-*MFBs{_clGW^9S^mzLIaG`rzzN?z$#d($ItHXS)DQ3Y#?HHQ+qSWmin`od#bt=%(SR z!XfUv=i_LtdAl*i!P8%(t}Qywp^|)djB_+6r~fwk^UCMB%;ZKu1u*z^iuuCOQ5AKS zS4|K|w+4>XkI+h6#M0otRRB@w zdk8O*Eug?D#3{ro#As9+F<)wuMuKYPkTgP!Labhy>#`TfNh#{Rb>INdwV^}ha>L62 zn=Pb_2NggdctMQMLgxiB3YA8vRHK%jS%Nx6l08_CAtj=aNQkx4P{(Q?O_tzoEm_UHN0q^z9R^MYKn$kQIIp!3iO1yCu7wMMER0 z&RnJ%F&P-^Lw$O73TSQ!oczbD-|fFG-PO7ErU$ij6(B+d0k1N5Q2+_c?Nyv)K&vuX zD}vO9q&BxWed<3aXZ}9(OJMGLm8M7s`+9bF+}nBcmOW9axLtKby(+H@=%5iKxZv^L zc^hnKIpbR)bxCW{EHp32Gs#49(ToEB1kSAYRld=ew*Wby11Pkm+Zi3&sqO%Kl}uaq fT1_~F!2bpS=B0X~@=}?n00000NkvXXu0mjf!_xs} literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Usuarios/28x28/User.png b/Resources/Iconos/Usuarios/28x28/User.png new file mode 100644 index 0000000000000000000000000000000000000000..e389c2a1bd24629b7531a91ecfb397179902264d GIT binary patch literal 1525 zcmVz@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ>Ye_^wRCwB)mRoEbR~g5D-#N3hUV9y1Vz)`K}S7}y zAk>!)OKD)Bub2Bjyr1FzGI)oz77<}=S1-E;%Jf%C@v+}eR&Us0BS`6WNUcOz%!?7^}`<@PwyD*FDs=Hr4SLE za|Oh^Rhajl5Q_UOvu0aa`t#Q?S!Qa^Ih?b2XK~iz+=|@Vehh2-a{6kk0W>#qw`rC( zmYOd(YlE{EYc1BA0=gpS@GJ5j?;Yo+np431wzkE@ zy*~RoFt;t>6F+-n>dH+0$JUr&S6vozwiD(~sI4`eId^sX^x68~Iw8GrAi!^*sr_Jf z;o2+C8m^OD16yNQyq07?d13O8z{`N&Ht=_~cUn)sS^LhLv-Q-icWDeZ&oOyUy_tsZ z{%Km&1fx%;M^?pO%HlN-ld^PXc97nvWg zQ0|T1ZeLjV_S-+bauUdIs2(2p=H7csJ9j@X1C>!<$#E6K`1uhY?0DL>9W4 zlxbcWs}c9~pxY&6S%v)a+;jguIq_uc!kXJnfggBk>`=LX>=ZlVepkuy-3DJV=(geM z@=@-;_fu%Cd8akQk$-=krncy$gi7P$nv`fy&%QMA%i5z{WqQ*BJn{`Hae4HFih8a) z@q<7<7&zWMPL^jR(&Fg(qcnPx&PrLkiqJhU`mx);aL12;9h)9)1M$HlvEI4Q2Lm1? z2zWu9AWktca*;399%H$Zkac-f79n00V|+1|01}i`hi`eL@2<-y8@2Qg>ofN{hfx@M z7%x&xpuj1_Da0zoXjC4tSZ$L>g33xr9w9~{RfYZ8YxCW!g{LW2Bi19vqjbQlfKV`l zRRrxj*(R&bC6798b;og`V9`Llp~Ku=`*X<*9TKfYv`48>9Q+=F6GGH+OYyjfhDLH- zxXd+T3NY4(=Is0o(B2R@{g2naH+*}(uY2&OhqUyRAwmTKuL^fj012z*Rh$$+s|r{a zL2g6ZSXiDt^Pkgmug?7%SlH^MsnErtzWrVIb>F<>U{tN_R$bA6igg(sG=c;dJl;ER zgAJK8J`1@^vt_f?zM9OXQ|Vz@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ?^hrcPRCwCFmTia~R~^QG=bV|jZ#(ziy}Q{>c9Y%g zMw&F#q{iB`iMH5UErhDYA{A^Ap~Wv!f*+)m(vS9of+7f3N}&NOh-eX7lF(w)ciJSh zc`Iu-$!0e%o4dPrU+&w?dGo`)o5m)HRdL{97-r`D=KuWXobw3pJ^#-`{5LPZ@!JQ# z8TVu!Ns@HSN~76csMU{tbf)^ulh1wl7T~V;j`~kPPd$Zv=EslxdgF$HpGTqEECm&T z9|#rOi-q9fZJSD^SC7oT4w(N5@ac!Xw|B6=^n`U*rims=QqnXfNm8^gT zZ=IYw^yx~2>kYW~HgZEfz4zs!U}xe`3$66TnT4fSet(S9zuS9TC6kd)HkwU=htwF7 zG$lj((ANb%_pPD3$9ntz zB8BK_X^j#BDFhNks8mqNWqvSqY{Cro_fYJ~0?HK7?Kw}Jx%gy#L z|8!~}aOBhTTmo3<)+E+)c5()trWm~{jWHT$Y{yz_F~)FqY8E^ko2k)mC+M`Zw53U# znfV4!96n<&-&O7@eYq5V8rZ4Onqo7B>B)0`u684pVpeo~qxg-55JKmWJxaGi<2Z7qA8_qS@T z(N6f$4Sk|xXU9fs3|4Ej*1Y-lDQb�M2eLP#M30Z-0F+8*jdcWVFPe`wt*9A;Kz@ z%vW-8?*q}GpIAD!^bz0{z)b^Wt>fOsgz57W!R&^ixGyeBxoV-&8m&{_e1Cx>$1meU zjRQ_^?`L{+mM?`nu(9Ux3s2GtG*T;M8X$Fmve_t`Eq<-lxO_0Vs4uQ=z~Za%$n6jG z-SYI7-htg0qN;Rv%rH>S5-M0~q#Qf7LVSE9o3n!)%Ae=uTc=5PMfi$EIfsiJ4uNci zsAhz0M5smv)re5_h^5KN7bf-{|6u^|i#7Lc8mUzF_2u*9nLsh_*Ya^=foNTh`Q-#B z1l#JvtS=9tt>fO-7~^mB^6bzgD>;FSEIw68E0KvpqzY*i!pM%CB$F@i0tVzyxTmnT zSbi~%GUK9~IkGAsI9FzPT_3k?A7OKOh|%RCln_@k$!HSu@CzFWPs?sK5vmy?TOl$D z5lMj53SksNE2Iy5fRfy_zV}CkD7w+F{*{3D&_7q9w&Ka->yyenbk7wC+leoQFsRLUHe#_;<{SB z{$!=O)LQha1!HOql9R zzzM*9*5s{#ED!^QZZuepAg&u~bysbm**)9Ol4<`j02MekoqKKa^Z)<=07*qoM6N<$ Ef)!=4#Q*>R literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Usuarios/48x48/Thumbs.db b/Resources/Iconos/Usuarios/48x48/Thumbs.db new file mode 100644 index 0000000000000000000000000000000000000000..1891777777651c0a7ad2c285542a05d9561c4dc2 GIT binary patch literal 5632 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 literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Usuarios/48x48/Users.png b/Resources/Iconos/Usuarios/48x48/Users.png new file mode 100644 index 0000000000000000000000000000000000000000..1697dfe9f0afd226ca33e51ee457863adb36da0b GIT binary patch literal 5154 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 QzW@LL07*qoM6N<$f)ttjA^-pY literal 0 HcmV?d00001 diff --git a/Resources/Iconos/fac.png b/Resources/Iconos/fac.png new file mode 100644 index 0000000000000000000000000000000000000000..35374432ff8354ea74f01575c6d15110d37cce2c GIT binary patch literal 6372 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 literal 0 HcmV?d00001 diff --git a/RodaxSoftware.FactuGES.Common.targets b/RodaxSoftware.FactuGES.Common.targets new file mode 100644 index 00000000..bea12b01 --- /dev/null +++ b/RodaxSoftware.FactuGES.Common.targets @@ -0,0 +1,285 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + '%(RootDir)%(Directory)bin\$(Configuration)\*$(NUnitFile)'); + @(TestProjects->'%(RootDir)%(Directory)bin\$(Configuration)\*$(LastTestRunSucceededFile)'); + @(TestProjects->'%(RootDir)%(Directory)bin\$(Configuration)\*$(NCoverFile)'); + @(TestProjects->'%(RootDir)%(Directory)bin\$(Configuration)\*$(NCoverLogFile)')"> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/RodaxSoftware.FactuGES.proj b/RodaxSoftware.FactuGES.proj new file mode 100644 index 00000000..700ef589 --- /dev/null +++ b/RodaxSoftware.FactuGES.proj @@ -0,0 +1,240 @@ + + + + %0D%0A + %0A%0D%0C%08 + %0A%20%08 + %09 + %40 + %25 + %22 + %27 + %0D + %0A + %20 + + + + + $(MSBuildProjectDirectory)\Build + $(MSBuildProjectDirectory)\Source + $(MSBuildProjectDirectory)\Database + $(MSBuildProjectDirectory)\Lib + $(MSBuildProjectDirectory)\Install + $(MSBuildProjectDirectory)\Output + $(SqlFolder)\Scripts + $(MSBuildProjectDirectory)\Code Metrics + $(MSBuildProjectDirectory)\Tools + $(MSBuildProjectDirectory)\Qtp + \\qtpserver\qtpshare + $(QtpDeployFolder)\Install + $(QtpDeployFolder)\Uninstall + $(QtpFolder)\TestResults + + + + + DEV + localhost + firebird2 + sysdba + masterkey + $(ToolsFolder)\ISQL\isql.exe + smtp.somewhere.co.za + + + + + C:\Archivos de programa\FinalBuilder 5 + $(FinalBuilderPath)\FBCMD.exe + C:\Program Files\Subversion\bin + $(SubversionPath)\svn.exe + C:\Program Files\NCover\ + C:\Program Files\NCoverExplorer\ + C:\Program Files\NUnit-Net-2.0 2.2.10\bin + $(NUnitPath)\nunit-console.exe + C:\Program Files\Installshield 12 StandaloneBuild + $(InstallShieldPath)\IsSaBld.exe + + + + + + ..\Sanlam.snk + Sanlam.SanQuote.sln + $(MSBuildProjectDirectory)\IterationNumber.txt + $(MSBuildProjectDirectory)\Environment.txt + LastTestRunSucceeded + LastCodeAnalysisSucceeded + $(Temp)\InstallBuildEmailFile.htm + $(InstallFolder)\InstallBuildEmailTemplate.htm + TestResult.xml + CodeAnalysisLog.xml + Coverage.xml + Coverage.log + CoverageSummary.xml + CoverageSummary.html + $(SqlScriptsFolder)\CreateDBBackupsForAutomatedBuild.cmd + $(QtpFolder)\RunQTP.vbs + QtpResultsSummary.xml + + + + + $(MSBuildProjectDirectory) + https://svn.somewhere.co.za/sanquote + $(SvnServerPath)/trunk + $(SvnServerPath)/tags + + + + + SanQuote.msi + $(InstallFolder)\SanQuote.ism + $(InstallFolder)\SetMsiProductVersion.vbs + $(InstallFolder)\Binaries\InstallFiles + $(Temp)\SanQuote\Install + PROJECT_ASSISTANT\SINGLE_MSI_IMAGE\DiskImages\DISK1 + $(InstallFolder)\Merge Modules + + + + + 1 + 0 + $(Iteration) + Build + false + + + + + $(CodeOutputFolder) + Debug + AnyCPU + false + $(CodeOutputFolder)\Debug + $(CodeOutputFolder)\Release + + + + + + + + + + + + $(CleanDependsOn); + CleanDatabase + CleanCode + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Source/ApplicationBase/ApplicationBase.bdsproj b/Source/ApplicationBase/ApplicationBase.bdsproj new file mode 100644 index 00000000..d4951b0d --- /dev/null +++ b/Source/ApplicationBase/ApplicationBase.bdsproj @@ -0,0 +1,697 @@ + + + + + + + + + + + + ApplicationBase.dpk + + + 7.0 + + + 8 + 0 + 1 + 1 + 0 + 0 + 1 + 1 + 1 + 0 + 0 + 1 + 0 + 1 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 1 + 1 + 1 + True + True + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + False + False + False + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + + + + 0 + 0 + False + 1 + False + False + False + 16384 + 1048576 + 4194304 + + + + + .\ + ..\..\..\..\Output\Debug\Cliente + ..\Lib + ..\Lib + + + + False + + + + + + False + + + True + False + + + False + + + True + False + 1 + 0 + 0 + 0 + False + False + False + False + False + 3082 + 1252 + + + + + 1.0.0.0 + + + + + + 1.0.0.0 + + + + + + + + + + + + + + + + + + + + + + + + + VCL for the Web Design Package for CodeGear RAD Studio + CodeGear WebSnap Components + CodeGear SOAP Components + Microsoft Office XP Sample Automation Server Wrapper Components + Microsoft Office 2000 Sample Automation Server Wrapper Components + CodeGear C++Builder Office 2000 Servers Package + CodeGear C++Builder Office XP Servers Package + + + + + + diff --git a/Source/ApplicationBase/ApplicationBase.cfg b/Source/ApplicationBase/ApplicationBase.cfg new file mode 100644 index 00000000..7b0053cd --- /dev/null +++ b/Source/ApplicationBase/ApplicationBase.cfg @@ -0,0 +1,40 @@ +-$A8 +-$B- +-$C+ +-$D+ +-$E- +-$F- +-$G+ +-$H+ +-$I+ +-$J- +-$K- +-$L+ +-$M- +-$N+ +-$O+ +-$P+ +-$Q- +-$R- +-$S- +-$T- +-$U- +-$V+ +-$W- +-$X+ +-$YD +-$Z1 +-cg +-AWinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; +-H+ +-W+ +-M +-$M16384,1048576 +-K$00400000 +-N0".\" +-LE"..\..\..\..\Output\Debug\Cliente" +-LN"..\Lib" +-U"..\Lib" +-O"..\Lib" +-I"..\Lib" +-R"..\Lib" diff --git a/Source/ApplicationBase/ApplicationBase.dpk b/Source/ApplicationBase/ApplicationBase.dpk new file mode 100644 index 00000000..95398a23 --- /dev/null +++ b/Source/ApplicationBase/ApplicationBase.dpk @@ -0,0 +1,85 @@ +package ApplicationBase; + +{$R *.res} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION OFF} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES ON} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST OFF} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$IMPLICITBUILD ON} +{$DEFINE DEBUG} + +requires + rtl, + vcl, + dbrtl, + Base, + GUIBase, + PluginSDK_D10R, + pckUCDataConnector, + pckUserControl_RT, + JvJansD11R, + cxLibraryD10, + dxThemeD10, + cxEditorsD10, + cxDataD10, + vcljpg, + vcldb, + PNG_D10, + PngComponentsD10, + vclactnband, + vclx, + JvCoreD11R, + Jcl, + JclVcl, + JvSystemD11R, + JvMMD11R, + JvStdCtrlsD11R, + JvCtrlsD11R; + +contains + uFactuGES_App in 'uFactuGES_App.pas', + uIDataModuleUsuarios in 'Usuarios\Model\Data\uIDataModuleUsuarios.pas', + uDataModuleUsuarios in 'Usuarios\Data\uDataModuleUsuarios.pas' {DataModuleUsuarios}, + uUCROConn in 'Usuarios\Data\uUCROConn.pas', + uUsuariosController in 'Usuarios\Controller\uUsuariosController.pas', + uBizEmpresasDatosBancarios in 'Empresas\Model\uBizEmpresasDatosBancarios.pas', + schEmpresasClient_Intf in 'Empresas\Model\schEmpresasClient_Intf.pas', + schEmpresasServer_Intf in 'Empresas\Model\schEmpresasServer_Intf.pas', + uBizEmpresas in 'Empresas\Model\uBizEmpresas.pas', + uIDataModuleEmpresas in 'Empresas\Model\Data\uIDataModuleEmpresas.pas', + uDataModuleEmpresas in 'Empresas\Data\uDataModuleEmpresas.pas' {DataModuleEmpresasObj}, + uEmpresasController in 'Empresas\Controller\uEmpresasController.pas', + uDatosBancariosEmpresaController in 'Empresas\Controller\uDatosBancariosEmpresaController.pas', + uIEditorEmpresas in 'Empresas\Controller\View\uIEditorEmpresas.pas', + uIEditorDatosBancarioEmpresa in 'Empresas\Controller\View\uIEditorDatosBancarioEmpresa.pas', + uIEditorEmpresa in 'Empresas\Controller\View\uIEditorEmpresa.pas', + uViewEmpresa in 'Empresas\Views\uViewEmpresa.pas', + uEditorDatosBancariosEmpresa in 'Empresas\Views\uEditorDatosBancariosEmpresa.pas', + uEditorEmpresa in 'Empresas\Views\uEditorEmpresa.pas', + uEmpresasViewRegister in 'Empresas\Views\uEmpresasViewRegister.pas', + uViewDatosBancarios in 'Empresas\Views\uViewDatosBancarios.pas', + uUsuarios in 'Usuarios\Model\uUsuarios.pas', + schUsuariosServer_Intf in 'Usuarios\Model\schUsuariosServer_Intf.pas', + schUsuariosClient_Intf in 'Usuarios\Model\schUsuariosClient_Intf.pas', + uIEditorLogin in 'Usuarios\Controller\View\uIEditorLogin.pas', + uEditorLogin in 'Usuarios\Views\uEditorLogin.pas', + uUsuariosViewRegister in 'Usuarios\Views\uUsuariosViewRegister.pas'; + +end. diff --git a/Source/ApplicationBase/ApplicationBase.dproj b/Source/ApplicationBase/ApplicationBase.dproj new file mode 100644 index 00000000..7e833714 --- /dev/null +++ b/Source/ApplicationBase/ApplicationBase.dproj @@ -0,0 +1,604 @@ + + + + {14a25028-ec1a-430c-ade3-13c264e9bac2} + ApplicationBase.dpk + Debug + AnyCPU + DCC32 + ..\..\Output\Debug\Cliente\ApplicationBase.bpl + + + 7.0 + False + False + 0 + .\ + .\ + .\ + ..\..\Output\Release\Cliente + ..\Lib + ..\Lib + ..\Lib + ..\Lib + ..\Lib + RELEASE + + + 7.0 + .\ + .\ + .\ + ..\..\Output\Debug\Cliente + ..\Lib + $(BDS)\lib\Debug;$(BDS)\Lib\Debug\Indy10;T:\COMPON~1\jcl\lib\d11\debug;$(BDSCOMMONDIR)\Dcp;..\Lib + $(BDS)\lib\Debug;$(BDS)\Lib\Debug\Indy10;T:\COMPON~1\jcl\lib\d11\debug;$(BDSCOMMONDIR)\Dcp;..\Lib + $(BDS)\lib\Debug;$(BDS)\Lib\Debug\Indy10;T:\COMPON~1\jcl\lib\d11\debug;$(BDSCOMMONDIR)\Dcp;..\Lib + $(BDS)\lib\Debug;$(BDS)\Lib\Debug\Indy10;T:\COMPON~1\jcl\lib\d11\debug;$(BDSCOMMONDIR)\Dcp;..\Lib + DEBUG + False + True + True + True + + + Delphi.Personality + Package + +FalseTrueFalseTrueFalseFalseTrueFalse1000FalseFalseFalseFalseFalse308212521.0.0.01.0.0.0 + VCL for the Web Design Package for CodeGear RAD Studio + CodeGear WebSnap Components + CodeGear SOAP Components + Microsoft Office XP Sample Automation Server Wrapper Components + Microsoft Office 2000 Sample Automation Server Wrapper Components + CodeGear C++Builder Office 2000 Servers Package + CodeGear C++Builder Office XP Servers Package + ApplicationBase.dpkFalse + + + + + MainSource + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    DataModuleEmpresasObj + + + + + + + + + + + + + + + +
    DataModuleUsuarios
    +
    + + + + + + + + + + diff --git a/Source/ApplicationBase/ApplicationBase.identcache b/Source/ApplicationBase/ApplicationBase.identcache new file mode 100644 index 0000000000000000000000000000000000000000..2d8260efa76add9f757c4c477de3d8bd4a68b119 GIT binary patch literal 2472 zcmbuB%TB{E5JmeRZ1@7!h+Pv}sMM;^(5@^MD>cPZh$BBh;_I=ACl5Di$Iwk=J3TYL zzBA6%WHQOpJCce6KZ@&VPD@HMVPww8w5kf8Q_V%0P{qjXqmoQfMONa#3UW_1C1&9s zcES`4)^94REVlVQA^BTnsN@3pDu0KWjLAcj~-uzVf`tJ#$N;eUuCEPDwn0ODbpEHt z?t3u|fVCc^>RWDWJy;0A*p3eWAM5C_9`gU+(a$v9=zh}agCkXg)dP&yHHxD*eSCzU z#2T^gA=`Abw)Q*es90YQrQ1~IxUaD_52p_`594z+k99_qdR;S}>-fxFe~Xma%xSL8 j!z|m|PngiVJ0zsZ(A#U^B3C1Jz&aQN1%c}jgO}_NOY}JJ literal 0 HcmV?d00001 diff --git a/Source/ApplicationBase/ApplicationBase.rc b/Source/ApplicationBase/ApplicationBase.rc new file mode 100644 index 00000000..153736af --- /dev/null +++ b/Source/ApplicationBase/ApplicationBase.rc @@ -0,0 +1,22 @@ +1 VERSIONINFO +FILEVERSION 1,0,0,0 +PRODUCTVERSION 1,0,0,0 +FILEFLAGSMASK 0x3FL +FILEFLAGS 0x00L +FILEOS 0x40004L +FILETYPE 0x1L +FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "0C0A04E4" + BEGIN + VALUE "FileVersion", "1.0.0.0\0" + VALUE "ProductVersion", "1.0.0.0\0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x0C0A, 1252 + END +END diff --git a/Source/ApplicationBase/ApplicationBase.res b/Source/ApplicationBase/ApplicationBase.res new file mode 100644 index 0000000000000000000000000000000000000000..8b251f312bcccec5485024f6fe8d80e1cdf25746 GIT binary patch literal 384 zcmZ9HOA3Ne6ox;+L5PEv(4cV`IIrjdPAV##hV&wc1g%+%X(R2Xc{`~7t6e0Ioa?#% zkMj%AQhz>WYy7LeWAUaqx~Kv?-;(-Hs4-^ATIZOBrid9+-6Ne7&88mi>kUR4lo#jxZ;#*s4zxg9yNlk=H9sqkCD2^cEXKpiTBNfgkKpXJBWWaLt(Qkv@0 w5yv*t82((Wlr2{_+FDoDHKW2QCXvc+s**ul{{$ + Params = <> + StreamingOptions = [soDisableEventsWhileStreaming] + RemoteDataAdapter = rda_Empresas + DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch] + MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates] + LogicalName = 'Empresas' + IndexDefs = <> + Left = 176 + Top = 96 + end + object ds_Empresas: TDADataSource + DataSet = tbl_Empresas.Dataset + DataTable = tbl_Empresas + Left = 176 + Top = 168 + end + object tbl_EmpresasDatosBanco: TDAMemDataTable + RemoteUpdatesOptions = [] + Fields = < + item + Name = 'ID' + DataType = datAutoInc + GeneratorName = 'GEN_EMPRESAS_DATOS_BANCO_ID' + LogChanges = False + Required = True + ReadOnly = True + ServerAutoRefresh = True + DictionaryEntry = 'EmpresasDatosBanco_ID' + InPrimaryKey = True + end + item + Name = 'ID_EMPRESA' + DataType = datInteger + DisplayLabel = 'EmpresasDatosBanco_ID_EMPRESA' + DictionaryEntry = 'EmpresasDatosBanco_ID_EMPRESA' + end + item + Name = 'NOMBRE' + DataType = datString + Size = 255 + DisplayLabel = 'Nombre del banco' + DictionaryEntry = 'EmpresasDatosBanco_NOMBRE' + end + item + Name = 'ENTIDAD' + DataType = datString + Size = 15 + DisplayLabel = 'Entidad' + DictionaryEntry = 'EmpresasDatosBanco_ENTIDAD' + end + item + Name = 'SUCURSAL' + DataType = datString + Size = 15 + DisplayLabel = 'Sucursal' + DictionaryEntry = 'EmpresasDatosBanco_SUCURSAL' + end + item + Name = 'DC' + DataType = datString + Size = 15 + DictionaryEntry = 'EmpresasDatosBanco_DC' + end + item + Name = 'CUENTA' + DataType = datString + Size = 15 + DisplayLabel = 'Cuenta' + DictionaryEntry = 'EmpresasDatosBanco_CUENTA' + end + item + Name = 'SUFIJO_N19' + DataType = datString + Size = 3 + DisplayLabel = 'Sufijo 19' + DictionaryEntry = 'EmpresasDatosBanco_SUFIJO_N19' + end + item + Name = 'SUFIJO_N58' + DataType = datString + Size = 3 + DisplayLabel = 'Sufijo 58' + DictionaryEntry = 'EmpresasDatosBanco_SUFIJO_N58' + end> + Params = <> + MasterMappingMode = mmWhere + StreamingOptions = [soDisableEventsWhileStreaming] + RemoteDataAdapter = rda_Empresas + 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 = 288 + Top = 96 + end + object ds_EmpresasDatosBanco: TDADataSource + DataSet = tbl_EmpresasDatosBanco.Dataset + DataTable = tbl_EmpresasDatosBanco + Left = 288 + Top = 168 + end +end diff --git a/Source/ApplicationBase/Empresas/Data/uDataModuleEmpresas.pas b/Source/ApplicationBase/Empresas/Data/uDataModuleEmpresas.pas new file mode 100644 index 00000000..9b5ae873 --- /dev/null +++ b/Source/ApplicationBase/Empresas/Data/uDataModuleEmpresas.pas @@ -0,0 +1,107 @@ +unit uDataModuleEmpresas; + +interface + +uses {vcl:} SysUtils, Classes, DB, DBClient, + {RemObjects:} uDADataTable, uDAScriptingProvider, + uDACDSDataTable, uDABINAdapter, uRORemoteService, + uROClient, uROBinMessage, uROWinInetHttpChannel, uDADesigntimeCall, + uIDataModuleEmpresas, uBizEmpresas, uBizEmpresasDatosBancarios, + uDARemoteDataAdapter, uDADataStreamer, uRODynamicRequest, uDAInterfaces, + uDAMemDataTable, uDABin2DataStreamer, uIntegerListUtils, uDataModuleBase; + +type + TDataModuleEmpresas = class(TDataModuleBase, IDataModuleEmpresas) + RORemoteService: TRORemoteService; + rda_Empresas: TDARemoteDataAdapter; + Bin2DataStreamer: TDABin2DataStreamer; + tbl_Empresas: TDAMemDataTable; + ds_Empresas: TDADataSource; + tbl_EmpresasDatosBanco: TDAMemDataTable; + ds_EmpresasDatosBanco: TDADataSource; + procedure DAClientDataModuleCreate(Sender: TObject); + private + function _GetDatosBancarios : IBizEmpresasDatosBancarios; + public + function GetItem(const ID : Integer) : IBizEmpresa; + function NewItem : IBizEmpresa; + function GetItems : IBizEmpresa; + end; + +implementation + +{$R *.DFM} + +uses + uDataModuleConexion, uDataTableUtils, Dialogs, + 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.DynamicWhere do + begin + Clear; + // (ID = :ID) + Expression := NewBinaryExpression(NewField('', fld_EmpresasID), NewConstant(ID, datInteger), dboEqual); + end; + finally + HideHourglassCursor; + end; +end; + +function TDataModuleEmpresas.GetItems: IBizEmpresa; +var + AEmpresa : TDAMemDataTable; +begin + ShowHourglassCursor; + try + AEmpresa := CloneDataTable(tbl_Empresas); + AEmpresa.BusinessRulesID := BIZ_CLIENT_EMPRESA; + + with TBizEmpresa(AEmpresa.BusinessEventsObj) do + begin + DatosBancarios := _GetDatosBancarios; + end; + + Result := (AEmpresa as IBizEmpresa); + finally + HideHourglassCursor; + end; +end; + +function TDataModuleEmpresas.NewItem: IBizEmpresa; +begin + Result := GetItem(ID_NULO) +end; + +function TDataModuleEmpresas._GetDatosBancarios: IBizEmpresasDatosBancarios; +var + ADatosBancarios : TDAMemDataTable; +begin + ShowHourglassCursor; + try + ADatosBancarios := CloneDataTable(tbl_EmpresasDatosBanco); + with ADatosBancarios do + begin + BusinessRulesID := BIZ_CLIENT_EMPRESAS_DATOS_BANCARIOS; + DetailOptions := DetailOptions - + [dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates]; + end; + Result := (ADatosBancarios as IBizEmpresasDatosBancarios); + finally + HideHourglassCursor; + end; + +end; + +end. diff --git a/Source/ApplicationBase/Empresas/Model/Data/uIDataModuleEmpresas.pas b/Source/ApplicationBase/Empresas/Model/Data/uIDataModuleEmpresas.pas new file mode 100644 index 00000000..e87571fa --- /dev/null +++ b/Source/ApplicationBase/Empresas/Model/Data/uIDataModuleEmpresas.pas @@ -0,0 +1,19 @@ +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; + end; + +implementation + +end. diff --git a/Source/ApplicationBase/Empresas/Model/schEmpresasClient_Intf.pas b/Source/ApplicationBase/Empresas/Model/schEmpresasClient_Intf.pas new file mode 100644 index 00000000..298b7c7c --- /dev/null +++ b/Source/ApplicationBase/Empresas/Model/schEmpresasClient_Intf.pas @@ -0,0 +1,1245 @@ +unit schEmpresasClient_Intf; + +interface + +uses + Classes, DB, schBase_Intf, SysUtils, uROClasses, uDADataTable, FmtBCD, uROXMLIntf; + +const + { Data table rules ids + Feel free to change them to something more human readable + but make sure they are unique in the context of your application } + RID_Empresas = '{339ECEE2-0E9D-4AFD-9CCF-7991FCAFFC44}'; + RID_EmpresasDatosBanco = '{97535864-08DF-42D3-9334-2009E15B6DE5}'; + + { Data table names } + nme_Empresas = 'Empresas'; + nme_EmpresasDatosBanco = 'EmpresasDatosBanco'; + + { Empresas fields } + fld_EmpresasID = 'ID'; + fld_EmpresasNIF_CIF = 'NIF_CIF'; + fld_EmpresasNOMBRE = 'NOMBRE'; + fld_EmpresasRAZON_SOCIAL = 'RAZON_SOCIAL'; + fld_EmpresasCALLE = 'CALLE'; + fld_EmpresasPOBLACION = 'POBLACION'; + fld_EmpresasPROVINCIA = 'PROVINCIA'; + fld_EmpresasCODIGO_POSTAL = 'CODIGO_POSTAL'; + fld_EmpresasTELEFONO_1 = 'TELEFONO_1'; + fld_EmpresasTELEFONO_2 = 'TELEFONO_2'; + fld_EmpresasMOVIL_1 = 'MOVIL_1'; + fld_EmpresasMOVIL_2 = 'MOVIL_2'; + fld_EmpresasFAX = 'FAX'; + fld_EmpresasEMAIL_1 = 'EMAIL_1'; + fld_EmpresasEMAIL_2 = 'EMAIL_2'; + fld_EmpresasPAGINA_WEB = 'PAGINA_WEB'; + fld_EmpresasNOTAS = 'NOTAS'; + fld_EmpresasFECHA_ALTA = 'FECHA_ALTA'; + fld_EmpresasFECHA_MODIFICACION = 'FECHA_MODIFICACION'; + fld_EmpresasUSUARIO = 'USUARIO'; + fld_EmpresasLOGOTIPO = 'LOGOTIPO'; + fld_EmpresasREGISTRO_MERCANTIL = 'REGISTRO_MERCANTIL'; + fld_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; + +type + { IEmpresas } + IEmpresas = interface(IDAStronglyTypedDataTable) + ['{96DF5DB9-5264-4B33-BC6D-F6A8119C40F2}'] + { Property getters and setters } + function GetIDValue: Integer; + procedure SetIDValue(const aValue: Integer); + function GetIDIsNull: Boolean; + procedure SetIDIsNull(const aValue: Boolean); + function GetNIF_CIFValue: String; + procedure SetNIF_CIFValue(const aValue: String); + function GetNIF_CIFIsNull: Boolean; + procedure SetNIF_CIFIsNull(const aValue: Boolean); + function GetNOMBREValue: String; + procedure SetNOMBREValue(const aValue: String); + function GetNOMBREIsNull: Boolean; + procedure SetNOMBREIsNull(const aValue: Boolean); + function GetRAZON_SOCIALValue: String; + procedure SetRAZON_SOCIALValue(const aValue: String); + function GetRAZON_SOCIALIsNull: Boolean; + procedure SetRAZON_SOCIALIsNull(const aValue: Boolean); + function GetCALLEValue: String; + procedure SetCALLEValue(const aValue: String); + function GetCALLEIsNull: Boolean; + procedure SetCALLEIsNull(const aValue: Boolean); + function GetPOBLACIONValue: String; + procedure SetPOBLACIONValue(const aValue: String); + function GetPOBLACIONIsNull: Boolean; + procedure SetPOBLACIONIsNull(const aValue: Boolean); + function GetPROVINCIAValue: String; + procedure SetPROVINCIAValue(const aValue: String); + function GetPROVINCIAIsNull: Boolean; + procedure SetPROVINCIAIsNull(const aValue: Boolean); + function GetCODIGO_POSTALValue: String; + procedure SetCODIGO_POSTALValue(const aValue: String); + function GetCODIGO_POSTALIsNull: Boolean; + procedure SetCODIGO_POSTALIsNull(const aValue: Boolean); + function GetTELEFONO_1Value: String; + procedure SetTELEFONO_1Value(const aValue: String); + function GetTELEFONO_1IsNull: Boolean; + procedure SetTELEFONO_1IsNull(const aValue: Boolean); + function GetTELEFONO_2Value: String; + procedure SetTELEFONO_2Value(const aValue: String); + function GetTELEFONO_2IsNull: Boolean; + procedure SetTELEFONO_2IsNull(const aValue: Boolean); + function GetMOVIL_1Value: String; + procedure SetMOVIL_1Value(const aValue: String); + function GetMOVIL_1IsNull: Boolean; + procedure SetMOVIL_1IsNull(const aValue: Boolean); + function GetMOVIL_2Value: String; + procedure SetMOVIL_2Value(const aValue: String); + function GetMOVIL_2IsNull: Boolean; + procedure SetMOVIL_2IsNull(const aValue: Boolean); + function GetFAXValue: String; + procedure SetFAXValue(const aValue: String); + function GetFAXIsNull: Boolean; + procedure SetFAXIsNull(const aValue: Boolean); + function GetEMAIL_1Value: String; + procedure SetEMAIL_1Value(const aValue: String); + function GetEMAIL_1IsNull: Boolean; + procedure SetEMAIL_1IsNull(const aValue: Boolean); + function GetEMAIL_2Value: String; + procedure SetEMAIL_2Value(const aValue: String); + function GetEMAIL_2IsNull: Boolean; + procedure SetEMAIL_2IsNull(const aValue: Boolean); + function GetPAGINA_WEBValue: String; + procedure SetPAGINA_WEBValue(const aValue: String); + function GetPAGINA_WEBIsNull: Boolean; + procedure SetPAGINA_WEBIsNull(const aValue: Boolean); + function GetNOTASValue: IROStrings; + function GetNOTASIsNull: Boolean; + procedure SetNOTASIsNull(const aValue: Boolean); + function GetFECHA_ALTAValue: DateTime; + procedure SetFECHA_ALTAValue(const aValue: DateTime); + function GetFECHA_ALTAIsNull: Boolean; + procedure SetFECHA_ALTAIsNull(const aValue: Boolean); + function GetFECHA_MODIFICACIONValue: DateTime; + procedure SetFECHA_MODIFICACIONValue(const aValue: DateTime); + function GetFECHA_MODIFICACIONIsNull: Boolean; + procedure SetFECHA_MODIFICACIONIsNull(const aValue: Boolean); + function GetUSUARIOValue: String; + procedure SetUSUARIOValue(const aValue: String); + function GetUSUARIOIsNull: Boolean; + procedure SetUSUARIOIsNull(const aValue: Boolean); + function GetLOGOTIPOValue: IROStream; + function GetLOGOTIPOIsNull: Boolean; + procedure SetLOGOTIPOIsNull(const aValue: Boolean); + function GetREGISTRO_MERCANTILValue: String; + procedure SetREGISTRO_MERCANTILValue(const aValue: String); + function GetREGISTRO_MERCANTILIsNull: Boolean; + procedure SetREGISTRO_MERCANTILIsNull(const aValue: Boolean); + function GetIVAValue: Float; + procedure SetIVAValue(const aValue: Float); + function GetIVAIsNull: Boolean; + procedure SetIVAIsNull(const aValue: Boolean); + + + { Properties } + property ID: Integer read GetIDValue write SetIDValue; + property IDIsNull: Boolean read GetIDIsNull write SetIDIsNull; + property NIF_CIF: String read GetNIF_CIFValue write SetNIF_CIFValue; + property NIF_CIFIsNull: Boolean read GetNIF_CIFIsNull write SetNIF_CIFIsNull; + property NOMBRE: String read GetNOMBREValue write SetNOMBREValue; + property NOMBREIsNull: Boolean read GetNOMBREIsNull write SetNOMBREIsNull; + property RAZON_SOCIAL: String read GetRAZON_SOCIALValue write SetRAZON_SOCIALValue; + property RAZON_SOCIALIsNull: Boolean read GetRAZON_SOCIALIsNull write SetRAZON_SOCIALIsNull; + property CALLE: String read GetCALLEValue write SetCALLEValue; + property CALLEIsNull: Boolean read GetCALLEIsNull write SetCALLEIsNull; + property POBLACION: String read GetPOBLACIONValue write SetPOBLACIONValue; + property POBLACIONIsNull: Boolean read GetPOBLACIONIsNull write SetPOBLACIONIsNull; + property PROVINCIA: String read GetPROVINCIAValue write SetPROVINCIAValue; + property PROVINCIAIsNull: Boolean read GetPROVINCIAIsNull write SetPROVINCIAIsNull; + property CODIGO_POSTAL: String read GetCODIGO_POSTALValue write SetCODIGO_POSTALValue; + property CODIGO_POSTALIsNull: Boolean read GetCODIGO_POSTALIsNull write SetCODIGO_POSTALIsNull; + property TELEFONO_1: String read GetTELEFONO_1Value write SetTELEFONO_1Value; + property TELEFONO_1IsNull: Boolean read GetTELEFONO_1IsNull write SetTELEFONO_1IsNull; + property TELEFONO_2: String read GetTELEFONO_2Value write SetTELEFONO_2Value; + property TELEFONO_2IsNull: Boolean read GetTELEFONO_2IsNull write SetTELEFONO_2IsNull; + property MOVIL_1: String read GetMOVIL_1Value write SetMOVIL_1Value; + property MOVIL_1IsNull: Boolean read GetMOVIL_1IsNull write SetMOVIL_1IsNull; + property MOVIL_2: String read GetMOVIL_2Value write SetMOVIL_2Value; + property MOVIL_2IsNull: Boolean read GetMOVIL_2IsNull write SetMOVIL_2IsNull; + property FAX: String read GetFAXValue write SetFAXValue; + property FAXIsNull: Boolean read GetFAXIsNull write SetFAXIsNull; + property EMAIL_1: String read GetEMAIL_1Value write SetEMAIL_1Value; + property EMAIL_1IsNull: Boolean read GetEMAIL_1IsNull write SetEMAIL_1IsNull; + property EMAIL_2: String read GetEMAIL_2Value write SetEMAIL_2Value; + property EMAIL_2IsNull: Boolean read GetEMAIL_2IsNull write SetEMAIL_2IsNull; + property PAGINA_WEB: String read GetPAGINA_WEBValue write SetPAGINA_WEBValue; + property PAGINA_WEBIsNull: Boolean read GetPAGINA_WEBIsNull write SetPAGINA_WEBIsNull; + property NOTAS: IROStrings read GetNOTASValue; + property NOTASIsNull: Boolean read GetNOTASIsNull write SetNOTASIsNull; + property FECHA_ALTA: DateTime read GetFECHA_ALTAValue write SetFECHA_ALTAValue; + property FECHA_ALTAIsNull: Boolean read GetFECHA_ALTAIsNull write SetFECHA_ALTAIsNull; + property FECHA_MODIFICACION: DateTime read GetFECHA_MODIFICACIONValue write SetFECHA_MODIFICACIONValue; + property FECHA_MODIFICACIONIsNull: Boolean read GetFECHA_MODIFICACIONIsNull write SetFECHA_MODIFICACIONIsNull; + property USUARIO: String read GetUSUARIOValue write SetUSUARIOValue; + property USUARIOIsNull: Boolean read GetUSUARIOIsNull write SetUSUARIOIsNull; + property LOGOTIPO: IROStream read GetLOGOTIPOValue; + property LOGOTIPOIsNull: Boolean read GetLOGOTIPOIsNull write SetLOGOTIPOIsNull; + property REGISTRO_MERCANTIL: String read GetREGISTRO_MERCANTILValue write SetREGISTRO_MERCANTILValue; + property REGISTRO_MERCANTILIsNull: Boolean read GetREGISTRO_MERCANTILIsNull write SetREGISTRO_MERCANTILIsNull; + property IVA: Float read GetIVAValue write SetIVAValue; + property IVAIsNull: Boolean read GetIVAIsNull write SetIVAIsNull; + end; + + { TEmpresasDataTableRules } + TEmpresasDataTableRules = class(TIntfObjectDADataTableRules, IEmpresas) + private + f_NOTAS: IROStrings; + f_LOGOTIPO: IROStream; + procedure NOTAS_OnChange(Sender: TObject); + procedure LOGOTIPO_OnChange(Sender: TObject); + protected + { Property getters and setters } + function GetIDValue: Integer; virtual; + procedure SetIDValue(const aValue: Integer); virtual; + function GetIDIsNull: Boolean; virtual; + procedure SetIDIsNull(const aValue: Boolean); virtual; + function GetNIF_CIFValue: String; virtual; + procedure SetNIF_CIFValue(const aValue: String); virtual; + function GetNIF_CIFIsNull: Boolean; virtual; + procedure SetNIF_CIFIsNull(const aValue: Boolean); virtual; + function GetNOMBREValue: String; virtual; + procedure SetNOMBREValue(const aValue: String); virtual; + function GetNOMBREIsNull: Boolean; virtual; + procedure SetNOMBREIsNull(const aValue: Boolean); virtual; + function GetRAZON_SOCIALValue: String; virtual; + procedure SetRAZON_SOCIALValue(const aValue: String); virtual; + function GetRAZON_SOCIALIsNull: Boolean; virtual; + procedure SetRAZON_SOCIALIsNull(const aValue: Boolean); virtual; + function GetCALLEValue: String; virtual; + procedure SetCALLEValue(const aValue: String); virtual; + function GetCALLEIsNull: Boolean; virtual; + procedure SetCALLEIsNull(const aValue: Boolean); virtual; + function GetPOBLACIONValue: String; virtual; + procedure SetPOBLACIONValue(const aValue: String); virtual; + function GetPOBLACIONIsNull: Boolean; virtual; + procedure SetPOBLACIONIsNull(const aValue: Boolean); virtual; + function GetPROVINCIAValue: String; virtual; + procedure SetPROVINCIAValue(const aValue: String); virtual; + function GetPROVINCIAIsNull: Boolean; virtual; + procedure SetPROVINCIAIsNull(const aValue: Boolean); virtual; + function GetCODIGO_POSTALValue: String; virtual; + procedure SetCODIGO_POSTALValue(const aValue: String); virtual; + function GetCODIGO_POSTALIsNull: Boolean; virtual; + procedure SetCODIGO_POSTALIsNull(const aValue: Boolean); virtual; + function GetTELEFONO_1Value: String; virtual; + procedure SetTELEFONO_1Value(const aValue: String); virtual; + function GetTELEFONO_1IsNull: Boolean; virtual; + procedure SetTELEFONO_1IsNull(const aValue: Boolean); virtual; + function GetTELEFONO_2Value: String; virtual; + procedure SetTELEFONO_2Value(const aValue: String); virtual; + function GetTELEFONO_2IsNull: Boolean; virtual; + procedure SetTELEFONO_2IsNull(const aValue: Boolean); virtual; + function GetMOVIL_1Value: String; virtual; + procedure SetMOVIL_1Value(const aValue: String); virtual; + function GetMOVIL_1IsNull: Boolean; virtual; + procedure SetMOVIL_1IsNull(const aValue: Boolean); virtual; + function GetMOVIL_2Value: String; virtual; + procedure SetMOVIL_2Value(const aValue: String); virtual; + function GetMOVIL_2IsNull: Boolean; virtual; + procedure SetMOVIL_2IsNull(const aValue: Boolean); virtual; + function GetFAXValue: String; virtual; + procedure SetFAXValue(const aValue: String); virtual; + function GetFAXIsNull: Boolean; virtual; + procedure SetFAXIsNull(const aValue: Boolean); virtual; + function GetEMAIL_1Value: String; virtual; + procedure SetEMAIL_1Value(const aValue: String); virtual; + function GetEMAIL_1IsNull: Boolean; virtual; + procedure SetEMAIL_1IsNull(const aValue: Boolean); virtual; + function GetEMAIL_2Value: String; virtual; + procedure SetEMAIL_2Value(const aValue: String); virtual; + function GetEMAIL_2IsNull: Boolean; virtual; + procedure SetEMAIL_2IsNull(const aValue: Boolean); virtual; + function GetPAGINA_WEBValue: String; virtual; + procedure SetPAGINA_WEBValue(const aValue: String); virtual; + function GetPAGINA_WEBIsNull: Boolean; virtual; + procedure SetPAGINA_WEBIsNull(const aValue: Boolean); virtual; + function GetNOTASValue: IROStrings; virtual; + function GetNOTASIsNull: Boolean; virtual; + procedure SetNOTASIsNull(const aValue: Boolean); virtual; + function GetFECHA_ALTAValue: DateTime; virtual; + procedure SetFECHA_ALTAValue(const aValue: DateTime); virtual; + function GetFECHA_ALTAIsNull: Boolean; virtual; + procedure SetFECHA_ALTAIsNull(const aValue: Boolean); virtual; + function GetFECHA_MODIFICACIONValue: DateTime; virtual; + procedure SetFECHA_MODIFICACIONValue(const aValue: DateTime); virtual; + function GetFECHA_MODIFICACIONIsNull: Boolean; virtual; + procedure SetFECHA_MODIFICACIONIsNull(const aValue: Boolean); virtual; + function GetUSUARIOValue: String; virtual; + procedure SetUSUARIOValue(const aValue: String); virtual; + function GetUSUARIOIsNull: Boolean; virtual; + procedure SetUSUARIOIsNull(const aValue: Boolean); virtual; + function GetLOGOTIPOValue: IROStream; virtual; + function GetLOGOTIPOIsNull: Boolean; virtual; + procedure SetLOGOTIPOIsNull(const aValue: Boolean); virtual; + function GetREGISTRO_MERCANTILValue: String; virtual; + procedure SetREGISTRO_MERCANTILValue(const aValue: String); virtual; + function GetREGISTRO_MERCANTILIsNull: Boolean; virtual; + procedure SetREGISTRO_MERCANTILIsNull(const aValue: Boolean); virtual; + function GetIVAValue: Float; virtual; + procedure SetIVAValue(const aValue: Float); virtual; + function GetIVAIsNull: Boolean; virtual; + procedure SetIVAIsNull(const aValue: Boolean); virtual; + + { Properties } + property ID: Integer read GetIDValue write SetIDValue; + property IDIsNull: Boolean read GetIDIsNull write SetIDIsNull; + property NIF_CIF: String read GetNIF_CIFValue write SetNIF_CIFValue; + property NIF_CIFIsNull: Boolean read GetNIF_CIFIsNull write SetNIF_CIFIsNull; + property NOMBRE: String read GetNOMBREValue write SetNOMBREValue; + property NOMBREIsNull: Boolean read GetNOMBREIsNull write SetNOMBREIsNull; + property RAZON_SOCIAL: String read GetRAZON_SOCIALValue write SetRAZON_SOCIALValue; + property RAZON_SOCIALIsNull: Boolean read GetRAZON_SOCIALIsNull write SetRAZON_SOCIALIsNull; + property CALLE: String read GetCALLEValue write SetCALLEValue; + property CALLEIsNull: Boolean read GetCALLEIsNull write SetCALLEIsNull; + property POBLACION: String read GetPOBLACIONValue write SetPOBLACIONValue; + property POBLACIONIsNull: Boolean read GetPOBLACIONIsNull write SetPOBLACIONIsNull; + property PROVINCIA: String read GetPROVINCIAValue write SetPROVINCIAValue; + property PROVINCIAIsNull: Boolean read GetPROVINCIAIsNull write SetPROVINCIAIsNull; + property CODIGO_POSTAL: String read GetCODIGO_POSTALValue write SetCODIGO_POSTALValue; + property CODIGO_POSTALIsNull: Boolean read GetCODIGO_POSTALIsNull write SetCODIGO_POSTALIsNull; + property TELEFONO_1: String read GetTELEFONO_1Value write SetTELEFONO_1Value; + property TELEFONO_1IsNull: Boolean read GetTELEFONO_1IsNull write SetTELEFONO_1IsNull; + property TELEFONO_2: String read GetTELEFONO_2Value write SetTELEFONO_2Value; + property TELEFONO_2IsNull: Boolean read GetTELEFONO_2IsNull write SetTELEFONO_2IsNull; + property MOVIL_1: String read GetMOVIL_1Value write SetMOVIL_1Value; + property MOVIL_1IsNull: Boolean read GetMOVIL_1IsNull write SetMOVIL_1IsNull; + property MOVIL_2: String read GetMOVIL_2Value write SetMOVIL_2Value; + property MOVIL_2IsNull: Boolean read GetMOVIL_2IsNull write SetMOVIL_2IsNull; + property FAX: String read GetFAXValue write SetFAXValue; + property FAXIsNull: Boolean read GetFAXIsNull write SetFAXIsNull; + property EMAIL_1: String read GetEMAIL_1Value write SetEMAIL_1Value; + property EMAIL_1IsNull: Boolean read GetEMAIL_1IsNull write SetEMAIL_1IsNull; + property EMAIL_2: String read GetEMAIL_2Value write SetEMAIL_2Value; + property EMAIL_2IsNull: Boolean read GetEMAIL_2IsNull write SetEMAIL_2IsNull; + property PAGINA_WEB: String read GetPAGINA_WEBValue write SetPAGINA_WEBValue; + property PAGINA_WEBIsNull: Boolean read GetPAGINA_WEBIsNull write SetPAGINA_WEBIsNull; + property NOTAS: IROStrings read GetNOTASValue; + property NOTASIsNull: Boolean read GetNOTASIsNull write SetNOTASIsNull; + property FECHA_ALTA: DateTime read GetFECHA_ALTAValue write SetFECHA_ALTAValue; + property FECHA_ALTAIsNull: Boolean read GetFECHA_ALTAIsNull write SetFECHA_ALTAIsNull; + property FECHA_MODIFICACION: DateTime read GetFECHA_MODIFICACIONValue write SetFECHA_MODIFICACIONValue; + property FECHA_MODIFICACIONIsNull: Boolean read GetFECHA_MODIFICACIONIsNull write SetFECHA_MODIFICACIONIsNull; + property USUARIO: String read GetUSUARIOValue write SetUSUARIOValue; + property USUARIOIsNull: Boolean read GetUSUARIOIsNull write SetUSUARIOIsNull; + property LOGOTIPO: IROStream read GetLOGOTIPOValue; + property LOGOTIPOIsNull: Boolean read GetLOGOTIPOIsNull write SetLOGOTIPOIsNull; + property REGISTRO_MERCANTIL: String read GetREGISTRO_MERCANTILValue write SetREGISTRO_MERCANTILValue; + property REGISTRO_MERCANTILIsNull: Boolean read GetREGISTRO_MERCANTILIsNull write SetREGISTRO_MERCANTILIsNull; + property IVA: Float read GetIVAValue write SetIVAValue; + property IVAIsNull: Boolean read GetIVAIsNull write SetIVAIsNull; + + public + constructor Create(aDataTable: TDADataTable); override; + destructor Destroy; override; + + end; + + { IEmpresasDatosBanco } + IEmpresasDatosBanco = interface(IDAStronglyTypedDataTable) + ['{5653808F-F011-430B-935F-451A93D817DA}'] + { Property getters and setters } + function GetIDValue: Integer; + procedure SetIDValue(const aValue: Integer); + function GetIDIsNull: Boolean; + procedure SetIDIsNull(const aValue: Boolean); + function GetID_EMPRESAValue: Integer; + procedure SetID_EMPRESAValue(const aValue: Integer); + function GetID_EMPRESAIsNull: Boolean; + procedure SetID_EMPRESAIsNull(const aValue: Boolean); + function GetNOMBREValue: String; + procedure SetNOMBREValue(const aValue: String); + function GetNOMBREIsNull: Boolean; + procedure SetNOMBREIsNull(const aValue: Boolean); + function GetENTIDADValue: String; + procedure SetENTIDADValue(const aValue: String); + function GetENTIDADIsNull: Boolean; + procedure SetENTIDADIsNull(const aValue: Boolean); + function GetSUCURSALValue: String; + procedure SetSUCURSALValue(const aValue: String); + function GetSUCURSALIsNull: Boolean; + procedure SetSUCURSALIsNull(const aValue: Boolean); + function GetDCValue: String; + procedure SetDCValue(const aValue: String); + function GetDCIsNull: Boolean; + procedure SetDCIsNull(const aValue: Boolean); + function GetCUENTAValue: String; + procedure SetCUENTAValue(const aValue: String); + function GetCUENTAIsNull: Boolean; + procedure SetCUENTAIsNull(const aValue: Boolean); + function GetSUFIJO_N19Value: String; + procedure SetSUFIJO_N19Value(const aValue: String); + function GetSUFIJO_N19IsNull: Boolean; + procedure SetSUFIJO_N19IsNull(const aValue: Boolean); + function GetSUFIJO_N58Value: String; + procedure SetSUFIJO_N58Value(const aValue: String); + function GetSUFIJO_N58IsNull: Boolean; + procedure SetSUFIJO_N58IsNull(const aValue: Boolean); + + + { Properties } + property ID: Integer read GetIDValue write SetIDValue; + property IDIsNull: Boolean read GetIDIsNull write SetIDIsNull; + property ID_EMPRESA: Integer read GetID_EMPRESAValue write SetID_EMPRESAValue; + property ID_EMPRESAIsNull: Boolean read GetID_EMPRESAIsNull write SetID_EMPRESAIsNull; + property NOMBRE: String read GetNOMBREValue write SetNOMBREValue; + property NOMBREIsNull: Boolean read GetNOMBREIsNull write SetNOMBREIsNull; + property ENTIDAD: String read GetENTIDADValue write SetENTIDADValue; + property ENTIDADIsNull: Boolean read GetENTIDADIsNull write SetENTIDADIsNull; + property SUCURSAL: String read GetSUCURSALValue write SetSUCURSALValue; + property SUCURSALIsNull: Boolean read GetSUCURSALIsNull write SetSUCURSALIsNull; + property DC: String read GetDCValue write SetDCValue; + property DCIsNull: Boolean read GetDCIsNull write SetDCIsNull; + property CUENTA: String read GetCUENTAValue write SetCUENTAValue; + property CUENTAIsNull: Boolean read GetCUENTAIsNull write SetCUENTAIsNull; + property SUFIJO_N19: String read GetSUFIJO_N19Value write SetSUFIJO_N19Value; + property SUFIJO_N19IsNull: Boolean read GetSUFIJO_N19IsNull write SetSUFIJO_N19IsNull; + property SUFIJO_N58: String read GetSUFIJO_N58Value write SetSUFIJO_N58Value; + property SUFIJO_N58IsNull: Boolean read GetSUFIJO_N58IsNull write SetSUFIJO_N58IsNull; + end; + + { TEmpresasDatosBancoDataTableRules } + TEmpresasDatosBancoDataTableRules = class(TIntfObjectDADataTableRules, IEmpresasDatosBanco) + private + protected + { Property getters and setters } + function GetIDValue: Integer; virtual; + procedure SetIDValue(const aValue: Integer); virtual; + function GetIDIsNull: Boolean; virtual; + procedure SetIDIsNull(const aValue: Boolean); virtual; + function GetID_EMPRESAValue: Integer; virtual; + procedure SetID_EMPRESAValue(const aValue: Integer); virtual; + function GetID_EMPRESAIsNull: Boolean; virtual; + procedure SetID_EMPRESAIsNull(const aValue: Boolean); virtual; + function GetNOMBREValue: String; virtual; + procedure SetNOMBREValue(const aValue: String); virtual; + function GetNOMBREIsNull: Boolean; virtual; + procedure SetNOMBREIsNull(const aValue: Boolean); virtual; + function GetENTIDADValue: String; virtual; + procedure SetENTIDADValue(const aValue: String); virtual; + function GetENTIDADIsNull: Boolean; virtual; + procedure SetENTIDADIsNull(const aValue: Boolean); virtual; + function GetSUCURSALValue: String; virtual; + procedure SetSUCURSALValue(const aValue: String); virtual; + function GetSUCURSALIsNull: Boolean; virtual; + procedure SetSUCURSALIsNull(const aValue: Boolean); virtual; + function GetDCValue: String; virtual; + procedure SetDCValue(const aValue: String); virtual; + function GetDCIsNull: Boolean; virtual; + procedure SetDCIsNull(const aValue: Boolean); virtual; + function GetCUENTAValue: String; virtual; + procedure SetCUENTAValue(const aValue: String); virtual; + function GetCUENTAIsNull: Boolean; virtual; + procedure SetCUENTAIsNull(const aValue: Boolean); virtual; + function GetSUFIJO_N19Value: String; virtual; + procedure SetSUFIJO_N19Value(const aValue: String); virtual; + function GetSUFIJO_N19IsNull: Boolean; virtual; + procedure SetSUFIJO_N19IsNull(const aValue: Boolean); virtual; + function GetSUFIJO_N58Value: String; virtual; + procedure SetSUFIJO_N58Value(const aValue: String); virtual; + function GetSUFIJO_N58IsNull: Boolean; virtual; + procedure SetSUFIJO_N58IsNull(const aValue: Boolean); virtual; + + { Properties } + property ID: Integer read GetIDValue write SetIDValue; + property IDIsNull: Boolean read GetIDIsNull write SetIDIsNull; + property ID_EMPRESA: Integer read GetID_EMPRESAValue write SetID_EMPRESAValue; + property ID_EMPRESAIsNull: Boolean read GetID_EMPRESAIsNull write SetID_EMPRESAIsNull; + property NOMBRE: String read GetNOMBREValue write SetNOMBREValue; + property NOMBREIsNull: Boolean read GetNOMBREIsNull write SetNOMBREIsNull; + property ENTIDAD: String read GetENTIDADValue write SetENTIDADValue; + property ENTIDADIsNull: Boolean read GetENTIDADIsNull write SetENTIDADIsNull; + property SUCURSAL: String read GetSUCURSALValue write SetSUCURSALValue; + property SUCURSALIsNull: Boolean read GetSUCURSALIsNull write SetSUCURSALIsNull; + property DC: String read GetDCValue write SetDCValue; + property DCIsNull: Boolean read GetDCIsNull write SetDCIsNull; + property CUENTA: String read GetCUENTAValue write SetCUENTAValue; + property CUENTAIsNull: Boolean read GetCUENTAIsNull write SetCUENTAIsNull; + property SUFIJO_N19: String read GetSUFIJO_N19Value write SetSUFIJO_N19Value; + property SUFIJO_N19IsNull: Boolean read GetSUFIJO_N19IsNull write SetSUFIJO_N19IsNull; + property SUFIJO_N58: String read GetSUFIJO_N58Value write SetSUFIJO_N58Value; + property SUFIJO_N58IsNull: Boolean read GetSUFIJO_N58IsNull write SetSUFIJO_N58IsNull; + + public + constructor Create(aDataTable: TDADataTable); override; + destructor Destroy; override; + + end; + +implementation + +uses Variants, uROBinaryHelpers; + +{ TEmpresasDataTableRules } +constructor TEmpresasDataTableRules.Create(aDataTable: TDADataTable); +var + StrList: TStringList; + ROStream: TROStream; +begin + inherited; + + StrList := TStringList.Create; + StrList.OnChange := NOTAS_OnChange; + f_NOTAS := NewROStrings(StrList,True); + + ROStream := TROStream.Create; + ROStream.OnChange := LOGOTIPO_OnChange; + f_LOGOTIPO := ROStream; +end; + +destructor TEmpresasDataTableRules.Destroy; +begin + f_NOTAS := Nil; + f_LOGOTIPO := Nil; + inherited; +end; + +procedure TEmpresasDataTableRules.NOTAS_OnChange(Sender: TObject); +begin + if DataTable.Editing then DataTable.Fields[idx_EmpresasNOTAS].AsVariant := TStringList(Sender).Text; +end; + +procedure TEmpresasDataTableRules.LOGOTIPO_OnChange(Sender: TObject); +begin + if DataTable.Editing then DataTable.Fields[idx_EmpresasLOGOTIPO].LoadFromStream(TROStream(Sender)); +end; + +function TEmpresasDataTableRules.GetIDValue: Integer; +begin + result := DataTable.Fields[idx_EmpresasID].AsInteger; +end; + +procedure TEmpresasDataTableRules.SetIDValue(const aValue: Integer); +begin + DataTable.Fields[idx_EmpresasID].AsInteger := aValue; +end; + +function TEmpresasDataTableRules.GetIDIsNull: boolean; +begin + result := DataTable.Fields[idx_EmpresasID].IsNull; +end; + +procedure TEmpresasDataTableRules.SetIDIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_EmpresasID].AsVariant := Null; +end; + +function TEmpresasDataTableRules.GetNIF_CIFValue: String; +begin + result := DataTable.Fields[idx_EmpresasNIF_CIF].AsString; +end; + +procedure TEmpresasDataTableRules.SetNIF_CIFValue(const aValue: String); +begin + DataTable.Fields[idx_EmpresasNIF_CIF].AsString := aValue; +end; + +function TEmpresasDataTableRules.GetNIF_CIFIsNull: boolean; +begin + result := DataTable.Fields[idx_EmpresasNIF_CIF].IsNull; +end; + +procedure TEmpresasDataTableRules.SetNIF_CIFIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_EmpresasNIF_CIF].AsVariant := Null; +end; + +function TEmpresasDataTableRules.GetNOMBREValue: String; +begin + result := DataTable.Fields[idx_EmpresasNOMBRE].AsString; +end; + +procedure TEmpresasDataTableRules.SetNOMBREValue(const aValue: String); +begin + DataTable.Fields[idx_EmpresasNOMBRE].AsString := aValue; +end; + +function TEmpresasDataTableRules.GetNOMBREIsNull: boolean; +begin + result := DataTable.Fields[idx_EmpresasNOMBRE].IsNull; +end; + +procedure TEmpresasDataTableRules.SetNOMBREIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_EmpresasNOMBRE].AsVariant := Null; +end; + +function TEmpresasDataTableRules.GetRAZON_SOCIALValue: String; +begin + result := DataTable.Fields[idx_EmpresasRAZON_SOCIAL].AsString; +end; + +procedure TEmpresasDataTableRules.SetRAZON_SOCIALValue(const aValue: String); +begin + DataTable.Fields[idx_EmpresasRAZON_SOCIAL].AsString := aValue; +end; + +function TEmpresasDataTableRules.GetRAZON_SOCIALIsNull: boolean; +begin + result := DataTable.Fields[idx_EmpresasRAZON_SOCIAL].IsNull; +end; + +procedure TEmpresasDataTableRules.SetRAZON_SOCIALIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_EmpresasRAZON_SOCIAL].AsVariant := Null; +end; + +function TEmpresasDataTableRules.GetCALLEValue: String; +begin + result := DataTable.Fields[idx_EmpresasCALLE].AsString; +end; + +procedure TEmpresasDataTableRules.SetCALLEValue(const aValue: String); +begin + DataTable.Fields[idx_EmpresasCALLE].AsString := aValue; +end; + +function TEmpresasDataTableRules.GetCALLEIsNull: boolean; +begin + result := DataTable.Fields[idx_EmpresasCALLE].IsNull; +end; + +procedure TEmpresasDataTableRules.SetCALLEIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_EmpresasCALLE].AsVariant := Null; +end; + +function TEmpresasDataTableRules.GetPOBLACIONValue: String; +begin + result := DataTable.Fields[idx_EmpresasPOBLACION].AsString; +end; + +procedure TEmpresasDataTableRules.SetPOBLACIONValue(const aValue: String); +begin + DataTable.Fields[idx_EmpresasPOBLACION].AsString := aValue; +end; + +function TEmpresasDataTableRules.GetPOBLACIONIsNull: boolean; +begin + result := DataTable.Fields[idx_EmpresasPOBLACION].IsNull; +end; + +procedure TEmpresasDataTableRules.SetPOBLACIONIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_EmpresasPOBLACION].AsVariant := Null; +end; + +function TEmpresasDataTableRules.GetPROVINCIAValue: String; +begin + result := DataTable.Fields[idx_EmpresasPROVINCIA].AsString; +end; + +procedure TEmpresasDataTableRules.SetPROVINCIAValue(const aValue: String); +begin + DataTable.Fields[idx_EmpresasPROVINCIA].AsString := aValue; +end; + +function TEmpresasDataTableRules.GetPROVINCIAIsNull: boolean; +begin + result := DataTable.Fields[idx_EmpresasPROVINCIA].IsNull; +end; + +procedure TEmpresasDataTableRules.SetPROVINCIAIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_EmpresasPROVINCIA].AsVariant := Null; +end; + +function TEmpresasDataTableRules.GetCODIGO_POSTALValue: String; +begin + result := DataTable.Fields[idx_EmpresasCODIGO_POSTAL].AsString; +end; + +procedure TEmpresasDataTableRules.SetCODIGO_POSTALValue(const aValue: String); +begin + DataTable.Fields[idx_EmpresasCODIGO_POSTAL].AsString := aValue; +end; + +function TEmpresasDataTableRules.GetCODIGO_POSTALIsNull: boolean; +begin + result := DataTable.Fields[idx_EmpresasCODIGO_POSTAL].IsNull; +end; + +procedure TEmpresasDataTableRules.SetCODIGO_POSTALIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_EmpresasCODIGO_POSTAL].AsVariant := Null; +end; + +function TEmpresasDataTableRules.GetTELEFONO_1Value: String; +begin + result := DataTable.Fields[idx_EmpresasTELEFONO_1].AsString; +end; + +procedure TEmpresasDataTableRules.SetTELEFONO_1Value(const aValue: String); +begin + DataTable.Fields[idx_EmpresasTELEFONO_1].AsString := aValue; +end; + +function TEmpresasDataTableRules.GetTELEFONO_1IsNull: boolean; +begin + result := DataTable.Fields[idx_EmpresasTELEFONO_1].IsNull; +end; + +procedure TEmpresasDataTableRules.SetTELEFONO_1IsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_EmpresasTELEFONO_1].AsVariant := Null; +end; + +function TEmpresasDataTableRules.GetTELEFONO_2Value: String; +begin + result := DataTable.Fields[idx_EmpresasTELEFONO_2].AsString; +end; + +procedure TEmpresasDataTableRules.SetTELEFONO_2Value(const aValue: String); +begin + DataTable.Fields[idx_EmpresasTELEFONO_2].AsString := aValue; +end; + +function TEmpresasDataTableRules.GetTELEFONO_2IsNull: boolean; +begin + result := DataTable.Fields[idx_EmpresasTELEFONO_2].IsNull; +end; + +procedure TEmpresasDataTableRules.SetTELEFONO_2IsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_EmpresasTELEFONO_2].AsVariant := Null; +end; + +function TEmpresasDataTableRules.GetMOVIL_1Value: String; +begin + result := DataTable.Fields[idx_EmpresasMOVIL_1].AsString; +end; + +procedure TEmpresasDataTableRules.SetMOVIL_1Value(const aValue: String); +begin + DataTable.Fields[idx_EmpresasMOVIL_1].AsString := aValue; +end; + +function TEmpresasDataTableRules.GetMOVIL_1IsNull: boolean; +begin + result := DataTable.Fields[idx_EmpresasMOVIL_1].IsNull; +end; + +procedure TEmpresasDataTableRules.SetMOVIL_1IsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_EmpresasMOVIL_1].AsVariant := Null; +end; + +function TEmpresasDataTableRules.GetMOVIL_2Value: String; +begin + result := DataTable.Fields[idx_EmpresasMOVIL_2].AsString; +end; + +procedure TEmpresasDataTableRules.SetMOVIL_2Value(const aValue: String); +begin + DataTable.Fields[idx_EmpresasMOVIL_2].AsString := aValue; +end; + +function TEmpresasDataTableRules.GetMOVIL_2IsNull: boolean; +begin + result := DataTable.Fields[idx_EmpresasMOVIL_2].IsNull; +end; + +procedure TEmpresasDataTableRules.SetMOVIL_2IsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_EmpresasMOVIL_2].AsVariant := Null; +end; + +function TEmpresasDataTableRules.GetFAXValue: String; +begin + result := DataTable.Fields[idx_EmpresasFAX].AsString; +end; + +procedure TEmpresasDataTableRules.SetFAXValue(const aValue: String); +begin + DataTable.Fields[idx_EmpresasFAX].AsString := aValue; +end; + +function TEmpresasDataTableRules.GetFAXIsNull: boolean; +begin + result := DataTable.Fields[idx_EmpresasFAX].IsNull; +end; + +procedure TEmpresasDataTableRules.SetFAXIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_EmpresasFAX].AsVariant := Null; +end; + +function TEmpresasDataTableRules.GetEMAIL_1Value: String; +begin + result := DataTable.Fields[idx_EmpresasEMAIL_1].AsString; +end; + +procedure TEmpresasDataTableRules.SetEMAIL_1Value(const aValue: String); +begin + DataTable.Fields[idx_EmpresasEMAIL_1].AsString := aValue; +end; + +function TEmpresasDataTableRules.GetEMAIL_1IsNull: boolean; +begin + result := DataTable.Fields[idx_EmpresasEMAIL_1].IsNull; +end; + +procedure TEmpresasDataTableRules.SetEMAIL_1IsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_EmpresasEMAIL_1].AsVariant := Null; +end; + +function TEmpresasDataTableRules.GetEMAIL_2Value: String; +begin + result := DataTable.Fields[idx_EmpresasEMAIL_2].AsString; +end; + +procedure TEmpresasDataTableRules.SetEMAIL_2Value(const aValue: String); +begin + DataTable.Fields[idx_EmpresasEMAIL_2].AsString := aValue; +end; + +function TEmpresasDataTableRules.GetEMAIL_2IsNull: boolean; +begin + result := DataTable.Fields[idx_EmpresasEMAIL_2].IsNull; +end; + +procedure TEmpresasDataTableRules.SetEMAIL_2IsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_EmpresasEMAIL_2].AsVariant := Null; +end; + +function TEmpresasDataTableRules.GetPAGINA_WEBValue: String; +begin + result := DataTable.Fields[idx_EmpresasPAGINA_WEB].AsString; +end; + +procedure TEmpresasDataTableRules.SetPAGINA_WEBValue(const aValue: String); +begin + DataTable.Fields[idx_EmpresasPAGINA_WEB].AsString := aValue; +end; + +function TEmpresasDataTableRules.GetPAGINA_WEBIsNull: boolean; +begin + result := DataTable.Fields[idx_EmpresasPAGINA_WEB].IsNull; +end; + +procedure TEmpresasDataTableRules.SetPAGINA_WEBIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_EmpresasPAGINA_WEB].AsVariant := Null; +end; + +function TEmpresasDataTableRules.GetNOTASValue: IROStrings; +begin + result := f_NOTAS; + result.Text := DataTable.Fields[idx_EmpresasNOTAS].AsString; +end; + +function TEmpresasDataTableRules.GetNOTASIsNull: boolean; +begin + result := DataTable.Fields[idx_EmpresasNOTAS].IsNull; +end; + +procedure TEmpresasDataTableRules.SetNOTASIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_EmpresasNOTAS].AsVariant := Null; +end; + +function TEmpresasDataTableRules.GetFECHA_ALTAValue: DateTime; +begin + result := DataTable.Fields[idx_EmpresasFECHA_ALTA].AsDateTime; +end; + +procedure TEmpresasDataTableRules.SetFECHA_ALTAValue(const aValue: DateTime); +begin + DataTable.Fields[idx_EmpresasFECHA_ALTA].AsDateTime := aValue; +end; + +function TEmpresasDataTableRules.GetFECHA_ALTAIsNull: boolean; +begin + result := DataTable.Fields[idx_EmpresasFECHA_ALTA].IsNull; +end; + +procedure TEmpresasDataTableRules.SetFECHA_ALTAIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_EmpresasFECHA_ALTA].AsVariant := Null; +end; + +function TEmpresasDataTableRules.GetFECHA_MODIFICACIONValue: DateTime; +begin + result := DataTable.Fields[idx_EmpresasFECHA_MODIFICACION].AsDateTime; +end; + +procedure TEmpresasDataTableRules.SetFECHA_MODIFICACIONValue(const aValue: DateTime); +begin + DataTable.Fields[idx_EmpresasFECHA_MODIFICACION].AsDateTime := aValue; +end; + +function TEmpresasDataTableRules.GetFECHA_MODIFICACIONIsNull: boolean; +begin + result := DataTable.Fields[idx_EmpresasFECHA_MODIFICACION].IsNull; +end; + +procedure TEmpresasDataTableRules.SetFECHA_MODIFICACIONIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_EmpresasFECHA_MODIFICACION].AsVariant := Null; +end; + +function TEmpresasDataTableRules.GetUSUARIOValue: String; +begin + result := DataTable.Fields[idx_EmpresasUSUARIO].AsString; +end; + +procedure TEmpresasDataTableRules.SetUSUARIOValue(const aValue: String); +begin + DataTable.Fields[idx_EmpresasUSUARIO].AsString := aValue; +end; + +function TEmpresasDataTableRules.GetUSUARIOIsNull: boolean; +begin + result := DataTable.Fields[idx_EmpresasUSUARIO].IsNull; +end; + +procedure TEmpresasDataTableRules.SetUSUARIOIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_EmpresasUSUARIO].AsVariant := Null; +end; + +function TEmpresasDataTableRules.GetLOGOTIPOValue: IROStream; +begin + result := f_LOGOTIPO; + result.Position := 0; + if not Result.InUpdateMode then begin + DataTable.Fields[idx_EmpresasLOGOTIPO].SaveToStream(result); + result.Position := 0; + end; +end; + +function TEmpresasDataTableRules.GetLOGOTIPOIsNull: boolean; +begin + result := DataTable.Fields[idx_EmpresasLOGOTIPO].IsNull; +end; + +procedure TEmpresasDataTableRules.SetLOGOTIPOIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_EmpresasLOGOTIPO].AsVariant := Null; +end; + +function TEmpresasDataTableRules.GetREGISTRO_MERCANTILValue: String; +begin + result := DataTable.Fields[idx_EmpresasREGISTRO_MERCANTIL].AsString; +end; + +procedure TEmpresasDataTableRules.SetREGISTRO_MERCANTILValue(const aValue: String); +begin + DataTable.Fields[idx_EmpresasREGISTRO_MERCANTIL].AsString := aValue; +end; + +function TEmpresasDataTableRules.GetREGISTRO_MERCANTILIsNull: boolean; +begin + result := DataTable.Fields[idx_EmpresasREGISTRO_MERCANTIL].IsNull; +end; + +procedure TEmpresasDataTableRules.SetREGISTRO_MERCANTILIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_EmpresasREGISTRO_MERCANTIL].AsVariant := Null; +end; + +function TEmpresasDataTableRules.GetIVAValue: Float; +begin + result := DataTable.Fields[idx_EmpresasIVA].AsFloat; +end; + +procedure TEmpresasDataTableRules.SetIVAValue(const aValue: Float); +begin + DataTable.Fields[idx_EmpresasIVA].AsFloat := aValue; +end; + +function TEmpresasDataTableRules.GetIVAIsNull: boolean; +begin + result := DataTable.Fields[idx_EmpresasIVA].IsNull; +end; + +procedure TEmpresasDataTableRules.SetIVAIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_EmpresasIVA].AsVariant := Null; +end; + + +{ TEmpresasDatosBancoDataTableRules } +constructor TEmpresasDatosBancoDataTableRules.Create(aDataTable: TDADataTable); +begin + inherited; +end; + +destructor TEmpresasDatosBancoDataTableRules.Destroy; +begin + inherited; +end; + +function TEmpresasDatosBancoDataTableRules.GetIDValue: Integer; +begin + result := DataTable.Fields[idx_EmpresasDatosBancoID].AsInteger; +end; + +procedure TEmpresasDatosBancoDataTableRules.SetIDValue(const aValue: Integer); +begin + DataTable.Fields[idx_EmpresasDatosBancoID].AsInteger := aValue; +end; + +function TEmpresasDatosBancoDataTableRules.GetIDIsNull: boolean; +begin + result := DataTable.Fields[idx_EmpresasDatosBancoID].IsNull; +end; + +procedure TEmpresasDatosBancoDataTableRules.SetIDIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_EmpresasDatosBancoID].AsVariant := Null; +end; + +function TEmpresasDatosBancoDataTableRules.GetID_EMPRESAValue: Integer; +begin + result := DataTable.Fields[idx_EmpresasDatosBancoID_EMPRESA].AsInteger; +end; + +procedure TEmpresasDatosBancoDataTableRules.SetID_EMPRESAValue(const aValue: Integer); +begin + DataTable.Fields[idx_EmpresasDatosBancoID_EMPRESA].AsInteger := aValue; +end; + +function TEmpresasDatosBancoDataTableRules.GetID_EMPRESAIsNull: boolean; +begin + result := DataTable.Fields[idx_EmpresasDatosBancoID_EMPRESA].IsNull; +end; + +procedure TEmpresasDatosBancoDataTableRules.SetID_EMPRESAIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_EmpresasDatosBancoID_EMPRESA].AsVariant := Null; +end; + +function TEmpresasDatosBancoDataTableRules.GetNOMBREValue: String; +begin + result := DataTable.Fields[idx_EmpresasDatosBancoNOMBRE].AsString; +end; + +procedure TEmpresasDatosBancoDataTableRules.SetNOMBREValue(const aValue: String); +begin + DataTable.Fields[idx_EmpresasDatosBancoNOMBRE].AsString := aValue; +end; + +function TEmpresasDatosBancoDataTableRules.GetNOMBREIsNull: boolean; +begin + result := DataTable.Fields[idx_EmpresasDatosBancoNOMBRE].IsNull; +end; + +procedure TEmpresasDatosBancoDataTableRules.SetNOMBREIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_EmpresasDatosBancoNOMBRE].AsVariant := Null; +end; + +function TEmpresasDatosBancoDataTableRules.GetENTIDADValue: String; +begin + result := DataTable.Fields[idx_EmpresasDatosBancoENTIDAD].AsString; +end; + +procedure TEmpresasDatosBancoDataTableRules.SetENTIDADValue(const aValue: String); +begin + DataTable.Fields[idx_EmpresasDatosBancoENTIDAD].AsString := aValue; +end; + +function TEmpresasDatosBancoDataTableRules.GetENTIDADIsNull: boolean; +begin + result := DataTable.Fields[idx_EmpresasDatosBancoENTIDAD].IsNull; +end; + +procedure TEmpresasDatosBancoDataTableRules.SetENTIDADIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_EmpresasDatosBancoENTIDAD].AsVariant := Null; +end; + +function TEmpresasDatosBancoDataTableRules.GetSUCURSALValue: String; +begin + result := DataTable.Fields[idx_EmpresasDatosBancoSUCURSAL].AsString; +end; + +procedure TEmpresasDatosBancoDataTableRules.SetSUCURSALValue(const aValue: String); +begin + DataTable.Fields[idx_EmpresasDatosBancoSUCURSAL].AsString := aValue; +end; + +function TEmpresasDatosBancoDataTableRules.GetSUCURSALIsNull: boolean; +begin + result := DataTable.Fields[idx_EmpresasDatosBancoSUCURSAL].IsNull; +end; + +procedure TEmpresasDatosBancoDataTableRules.SetSUCURSALIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_EmpresasDatosBancoSUCURSAL].AsVariant := Null; +end; + +function TEmpresasDatosBancoDataTableRules.GetDCValue: String; +begin + result := DataTable.Fields[idx_EmpresasDatosBancoDC].AsString; +end; + +procedure TEmpresasDatosBancoDataTableRules.SetDCValue(const aValue: String); +begin + DataTable.Fields[idx_EmpresasDatosBancoDC].AsString := aValue; +end; + +function TEmpresasDatosBancoDataTableRules.GetDCIsNull: boolean; +begin + result := DataTable.Fields[idx_EmpresasDatosBancoDC].IsNull; +end; + +procedure TEmpresasDatosBancoDataTableRules.SetDCIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_EmpresasDatosBancoDC].AsVariant := Null; +end; + +function TEmpresasDatosBancoDataTableRules.GetCUENTAValue: String; +begin + result := DataTable.Fields[idx_EmpresasDatosBancoCUENTA].AsString; +end; + +procedure TEmpresasDatosBancoDataTableRules.SetCUENTAValue(const aValue: String); +begin + DataTable.Fields[idx_EmpresasDatosBancoCUENTA].AsString := aValue; +end; + +function TEmpresasDatosBancoDataTableRules.GetCUENTAIsNull: boolean; +begin + result := DataTable.Fields[idx_EmpresasDatosBancoCUENTA].IsNull; +end; + +procedure TEmpresasDatosBancoDataTableRules.SetCUENTAIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_EmpresasDatosBancoCUENTA].AsVariant := Null; +end; + +function TEmpresasDatosBancoDataTableRules.GetSUFIJO_N19Value: String; +begin + result := DataTable.Fields[idx_EmpresasDatosBancoSUFIJO_N19].AsString; +end; + +procedure TEmpresasDatosBancoDataTableRules.SetSUFIJO_N19Value(const aValue: String); +begin + DataTable.Fields[idx_EmpresasDatosBancoSUFIJO_N19].AsString := aValue; +end; + +function TEmpresasDatosBancoDataTableRules.GetSUFIJO_N19IsNull: boolean; +begin + result := DataTable.Fields[idx_EmpresasDatosBancoSUFIJO_N19].IsNull; +end; + +procedure TEmpresasDatosBancoDataTableRules.SetSUFIJO_N19IsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_EmpresasDatosBancoSUFIJO_N19].AsVariant := Null; +end; + +function TEmpresasDatosBancoDataTableRules.GetSUFIJO_N58Value: String; +begin + result := DataTable.Fields[idx_EmpresasDatosBancoSUFIJO_N58].AsString; +end; + +procedure TEmpresasDatosBancoDataTableRules.SetSUFIJO_N58Value(const aValue: String); +begin + DataTable.Fields[idx_EmpresasDatosBancoSUFIJO_N58].AsString := aValue; +end; + +function TEmpresasDatosBancoDataTableRules.GetSUFIJO_N58IsNull: boolean; +begin + result := DataTable.Fields[idx_EmpresasDatosBancoSUFIJO_N58].IsNull; +end; + +procedure TEmpresasDatosBancoDataTableRules.SetSUFIJO_N58IsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_EmpresasDatosBancoSUFIJO_N58].AsVariant := Null; +end; + + +initialization + RegisterDataTableRules(RID_Empresas, TEmpresasDataTableRules); + RegisterDataTableRules(RID_EmpresasDatosBanco, TEmpresasDatosBancoDataTableRules); + +end. diff --git a/Source/ApplicationBase/Empresas/Model/schEmpresasServer_Intf.pas b/Source/ApplicationBase/Empresas/Model/schEmpresasServer_Intf.pas new file mode 100644 index 00000000..6f076fb5 --- /dev/null +++ b/Source/ApplicationBase/Empresas/Model/schEmpresasServer_Intf.pas @@ -0,0 +1,1490 @@ +unit schEmpresasServer_Intf; + +interface + +uses + Classes, DB, SysUtils, uROClasses, uDADataTable, uDABusinessProcessor, FmtBCD, uROXMLIntf, schEmpresasClient_Intf; + +const + { Delta rules ids + Feel free to change them to something more human readable + but make sure they are unique in the context of your application } + RID_EmpresasDelta = '{AA5637FC-EFD6-42DE-BDA1-C31464CB14D3}'; + RID_EmpresasDatosBancoDelta = '{9C692459-7C4C-4403-8747-2D651CC6D3A2}'; + +type + { IEmpresasDelta } + IEmpresasDelta = interface(IEmpresas) + ['{AA5637FC-EFD6-42DE-BDA1-C31464CB14D3}'] + { 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 + f_NOTAS: IROStrings; + f_LOGOTIPO: IROStream; + procedure NOTAS_OnChange(Sender: TObject); + procedure LOGOTIPO_OnChange(Sender: Tobject); + protected + { Property getters and setters } + function GetIDValue: Integer; virtual; + function GetIDIsNull: Boolean; virtual; + function GetOldIDValue: Integer; virtual; + function GetOldIDIsNull: Boolean; virtual; + procedure SetIDValue(const aValue: Integer); virtual; + procedure SetIDIsNull(const aValue: Boolean); virtual; + function GetNIF_CIFValue: String; virtual; + function GetNIF_CIFIsNull: Boolean; virtual; + function GetOldNIF_CIFValue: String; virtual; + function GetOldNIF_CIFIsNull: Boolean; virtual; + procedure SetNIF_CIFValue(const aValue: String); virtual; + procedure SetNIF_CIFIsNull(const aValue: Boolean); virtual; + function GetNOMBREValue: String; virtual; + function GetNOMBREIsNull: Boolean; virtual; + function GetOldNOMBREValue: String; virtual; + function GetOldNOMBREIsNull: Boolean; virtual; + procedure SetNOMBREValue(const aValue: String); virtual; + procedure SetNOMBREIsNull(const aValue: Boolean); virtual; + function GetRAZON_SOCIALValue: String; virtual; + function GetRAZON_SOCIALIsNull: Boolean; virtual; + function GetOldRAZON_SOCIALValue: String; virtual; + function GetOldRAZON_SOCIALIsNull: Boolean; virtual; + procedure SetRAZON_SOCIALValue(const aValue: String); virtual; + procedure SetRAZON_SOCIALIsNull(const aValue: Boolean); virtual; + function GetCALLEValue: String; virtual; + function GetCALLEIsNull: Boolean; virtual; + function GetOldCALLEValue: String; virtual; + function GetOldCALLEIsNull: Boolean; virtual; + procedure SetCALLEValue(const aValue: String); virtual; + procedure SetCALLEIsNull(const aValue: Boolean); virtual; + function GetPOBLACIONValue: String; virtual; + function GetPOBLACIONIsNull: Boolean; virtual; + function GetOldPOBLACIONValue: String; virtual; + function GetOldPOBLACIONIsNull: Boolean; virtual; + procedure SetPOBLACIONValue(const aValue: String); virtual; + procedure SetPOBLACIONIsNull(const aValue: Boolean); virtual; + function GetPROVINCIAValue: String; virtual; + function GetPROVINCIAIsNull: Boolean; virtual; + function GetOldPROVINCIAValue: String; virtual; + function GetOldPROVINCIAIsNull: Boolean; virtual; + procedure SetPROVINCIAValue(const aValue: String); virtual; + procedure SetPROVINCIAIsNull(const aValue: Boolean); virtual; + function GetCODIGO_POSTALValue: String; virtual; + function GetCODIGO_POSTALIsNull: Boolean; virtual; + function GetOldCODIGO_POSTALValue: String; virtual; + function GetOldCODIGO_POSTALIsNull: Boolean; virtual; + procedure SetCODIGO_POSTALValue(const aValue: String); virtual; + procedure SetCODIGO_POSTALIsNull(const aValue: Boolean); virtual; + function GetTELEFONO_1Value: String; virtual; + function GetTELEFONO_1IsNull: Boolean; virtual; + function GetOldTELEFONO_1Value: String; virtual; + function GetOldTELEFONO_1IsNull: Boolean; virtual; + procedure SetTELEFONO_1Value(const aValue: String); virtual; + procedure SetTELEFONO_1IsNull(const aValue: Boolean); virtual; + function GetTELEFONO_2Value: String; virtual; + function GetTELEFONO_2IsNull: Boolean; virtual; + function GetOldTELEFONO_2Value: String; virtual; + function GetOldTELEFONO_2IsNull: Boolean; virtual; + procedure SetTELEFONO_2Value(const aValue: String); virtual; + procedure SetTELEFONO_2IsNull(const aValue: Boolean); virtual; + function GetMOVIL_1Value: String; virtual; + function GetMOVIL_1IsNull: Boolean; virtual; + function GetOldMOVIL_1Value: String; virtual; + function GetOldMOVIL_1IsNull: Boolean; virtual; + procedure SetMOVIL_1Value(const aValue: String); virtual; + procedure SetMOVIL_1IsNull(const aValue: Boolean); virtual; + function GetMOVIL_2Value: String; virtual; + function GetMOVIL_2IsNull: Boolean; virtual; + function GetOldMOVIL_2Value: String; virtual; + function GetOldMOVIL_2IsNull: Boolean; virtual; + procedure SetMOVIL_2Value(const aValue: String); virtual; + procedure SetMOVIL_2IsNull(const aValue: Boolean); virtual; + function GetFAXValue: String; virtual; + function GetFAXIsNull: Boolean; virtual; + function GetOldFAXValue: String; virtual; + function GetOldFAXIsNull: Boolean; virtual; + procedure SetFAXValue(const aValue: String); virtual; + procedure SetFAXIsNull(const aValue: Boolean); virtual; + function GetEMAIL_1Value: String; virtual; + function GetEMAIL_1IsNull: Boolean; virtual; + function GetOldEMAIL_1Value: String; virtual; + function GetOldEMAIL_1IsNull: Boolean; virtual; + procedure SetEMAIL_1Value(const aValue: String); virtual; + procedure SetEMAIL_1IsNull(const aValue: Boolean); virtual; + function GetEMAIL_2Value: String; virtual; + function GetEMAIL_2IsNull: Boolean; virtual; + function GetOldEMAIL_2Value: String; virtual; + function GetOldEMAIL_2IsNull: Boolean; virtual; + procedure SetEMAIL_2Value(const aValue: String); virtual; + procedure SetEMAIL_2IsNull(const aValue: Boolean); virtual; + function GetPAGINA_WEBValue: String; virtual; + function GetPAGINA_WEBIsNull: Boolean; virtual; + function GetOldPAGINA_WEBValue: String; virtual; + function GetOldPAGINA_WEBIsNull: Boolean; virtual; + procedure SetPAGINA_WEBValue(const aValue: String); virtual; + procedure SetPAGINA_WEBIsNull(const aValue: Boolean); virtual; + function GetNOTASValue: IROStrings; virtual; + function GetNOTASIsNull: Boolean; virtual; + function GetOldNOTASValue: IROStrings; virtual; + function GetOldNOTASIsNull: Boolean; virtual; + procedure SetNOTASIsNull(const aValue: Boolean); virtual; + function GetFECHA_ALTAValue: DateTime; virtual; + function GetFECHA_ALTAIsNull: Boolean; virtual; + function GetOldFECHA_ALTAValue: DateTime; virtual; + function GetOldFECHA_ALTAIsNull: Boolean; virtual; + procedure SetFECHA_ALTAValue(const aValue: DateTime); virtual; + procedure SetFECHA_ALTAIsNull(const aValue: Boolean); virtual; + function GetFECHA_MODIFICACIONValue: DateTime; virtual; + function GetFECHA_MODIFICACIONIsNull: Boolean; virtual; + function GetOldFECHA_MODIFICACIONValue: DateTime; virtual; + function GetOldFECHA_MODIFICACIONIsNull: Boolean; virtual; + procedure SetFECHA_MODIFICACIONValue(const aValue: DateTime); virtual; + procedure SetFECHA_MODIFICACIONIsNull(const aValue: Boolean); virtual; + function GetUSUARIOValue: String; virtual; + function GetUSUARIOIsNull: Boolean; virtual; + function GetOldUSUARIOValue: String; virtual; + function GetOldUSUARIOIsNull: Boolean; virtual; + procedure SetUSUARIOValue(const aValue: String); virtual; + procedure SetUSUARIOIsNull(const aValue: Boolean); virtual; + function GetLOGOTIPOValue: IROStream; virtual; + function GetLOGOTIPOIsNull: Boolean; virtual; + function GetOldLOGOTIPOValue: IROStream; virtual; + function GetOldLOGOTIPOIsNull: Boolean; virtual; + procedure SetLOGOTIPOIsNull(const aValue: Boolean); virtual; + function GetREGISTRO_MERCANTILValue: String; virtual; + function GetREGISTRO_MERCANTILIsNull: Boolean; virtual; + function GetOldREGISTRO_MERCANTILValue: String; virtual; + function GetOldREGISTRO_MERCANTILIsNull: Boolean; virtual; + procedure SetREGISTRO_MERCANTILValue(const aValue: String); virtual; + procedure SetREGISTRO_MERCANTILIsNull(const aValue: Boolean); virtual; + function GetIVAValue: Float; virtual; + function GetIVAIsNull: Boolean; virtual; + function GetOldIVAValue: Float; virtual; + function GetOldIVAIsNull: Boolean; virtual; + procedure SetIVAValue(const aValue: Float); virtual; + procedure SetIVAIsNull(const aValue: Boolean); virtual; + + { Properties } + property ID : Integer read GetIDValue write SetIDValue; + property IDIsNull : Boolean read GetIDIsNull write SetIDIsNull; + property OldID : Integer read GetOldIDValue; + property OldIDIsNull : Boolean read GetOldIDIsNull; + property NIF_CIF : String read GetNIF_CIFValue write SetNIF_CIFValue; + property NIF_CIFIsNull : Boolean read GetNIF_CIFIsNull write SetNIF_CIFIsNull; + property OldNIF_CIF : String read GetOldNIF_CIFValue; + property OldNIF_CIFIsNull : Boolean read GetOldNIF_CIFIsNull; + property NOMBRE : String read GetNOMBREValue write SetNOMBREValue; + property NOMBREIsNull : Boolean read GetNOMBREIsNull write SetNOMBREIsNull; + property OldNOMBRE : String read GetOldNOMBREValue; + property OldNOMBREIsNull : Boolean read GetOldNOMBREIsNull; + property RAZON_SOCIAL : String read GetRAZON_SOCIALValue write SetRAZON_SOCIALValue; + property RAZON_SOCIALIsNull : Boolean read GetRAZON_SOCIALIsNull write SetRAZON_SOCIALIsNull; + property OldRAZON_SOCIAL : String read GetOldRAZON_SOCIALValue; + property OldRAZON_SOCIALIsNull : Boolean read GetOldRAZON_SOCIALIsNull; + property CALLE : String read GetCALLEValue write SetCALLEValue; + property CALLEIsNull : Boolean read GetCALLEIsNull write SetCALLEIsNull; + property OldCALLE : String read GetOldCALLEValue; + property OldCALLEIsNull : Boolean read GetOldCALLEIsNull; + property POBLACION : String read GetPOBLACIONValue write SetPOBLACIONValue; + property POBLACIONIsNull : Boolean read GetPOBLACIONIsNull write SetPOBLACIONIsNull; + property OldPOBLACION : String read GetOldPOBLACIONValue; + property OldPOBLACIONIsNull : Boolean read GetOldPOBLACIONIsNull; + property PROVINCIA : String read GetPROVINCIAValue write SetPROVINCIAValue; + property PROVINCIAIsNull : Boolean read GetPROVINCIAIsNull write SetPROVINCIAIsNull; + property OldPROVINCIA : String read GetOldPROVINCIAValue; + property OldPROVINCIAIsNull : Boolean read GetOldPROVINCIAIsNull; + property CODIGO_POSTAL : String read GetCODIGO_POSTALValue write SetCODIGO_POSTALValue; + property CODIGO_POSTALIsNull : Boolean read GetCODIGO_POSTALIsNull write SetCODIGO_POSTALIsNull; + property OldCODIGO_POSTAL : String read GetOldCODIGO_POSTALValue; + property OldCODIGO_POSTALIsNull : Boolean read GetOldCODIGO_POSTALIsNull; + property TELEFONO_1 : String read GetTELEFONO_1Value write SetTELEFONO_1Value; + property TELEFONO_1IsNull : Boolean read GetTELEFONO_1IsNull write SetTELEFONO_1IsNull; + property OldTELEFONO_1 : String read GetOldTELEFONO_1Value; + property OldTELEFONO_1IsNull : Boolean read GetOldTELEFONO_1IsNull; + property TELEFONO_2 : String read GetTELEFONO_2Value write SetTELEFONO_2Value; + property TELEFONO_2IsNull : Boolean read GetTELEFONO_2IsNull write SetTELEFONO_2IsNull; + property OldTELEFONO_2 : String read GetOldTELEFONO_2Value; + property OldTELEFONO_2IsNull : Boolean read GetOldTELEFONO_2IsNull; + property MOVIL_1 : String read GetMOVIL_1Value write SetMOVIL_1Value; + property MOVIL_1IsNull : Boolean read GetMOVIL_1IsNull write SetMOVIL_1IsNull; + property OldMOVIL_1 : String read GetOldMOVIL_1Value; + property OldMOVIL_1IsNull : Boolean read GetOldMOVIL_1IsNull; + property MOVIL_2 : String read GetMOVIL_2Value write SetMOVIL_2Value; + property MOVIL_2IsNull : Boolean read GetMOVIL_2IsNull write SetMOVIL_2IsNull; + property OldMOVIL_2 : String read GetOldMOVIL_2Value; + property OldMOVIL_2IsNull : Boolean read GetOldMOVIL_2IsNull; + property FAX : String read GetFAXValue write SetFAXValue; + property FAXIsNull : Boolean read GetFAXIsNull write SetFAXIsNull; + property OldFAX : String read GetOldFAXValue; + property OldFAXIsNull : Boolean read GetOldFAXIsNull; + property EMAIL_1 : String read GetEMAIL_1Value write SetEMAIL_1Value; + property EMAIL_1IsNull : Boolean read GetEMAIL_1IsNull write SetEMAIL_1IsNull; + property OldEMAIL_1 : String read GetOldEMAIL_1Value; + property OldEMAIL_1IsNull : Boolean read GetOldEMAIL_1IsNull; + property EMAIL_2 : String read GetEMAIL_2Value write SetEMAIL_2Value; + property EMAIL_2IsNull : Boolean read GetEMAIL_2IsNull write SetEMAIL_2IsNull; + property OldEMAIL_2 : String read GetOldEMAIL_2Value; + property OldEMAIL_2IsNull : Boolean read GetOldEMAIL_2IsNull; + property PAGINA_WEB : String read GetPAGINA_WEBValue write SetPAGINA_WEBValue; + property PAGINA_WEBIsNull : Boolean read GetPAGINA_WEBIsNull write SetPAGINA_WEBIsNull; + property OldPAGINA_WEB : String read GetOldPAGINA_WEBValue; + property OldPAGINA_WEBIsNull : Boolean read GetOldPAGINA_WEBIsNull; + property NOTAS : IROStrings read GetNOTASValue; + property NOTASIsNull : Boolean read GetNOTASIsNull write SetNOTASIsNull; + property OldNOTAS : IROStrings read GetOldNOTASValue; + property OldNOTASIsNull : Boolean read GetOldNOTASIsNull; + property FECHA_ALTA : DateTime read GetFECHA_ALTAValue write SetFECHA_ALTAValue; + property FECHA_ALTAIsNull : Boolean read GetFECHA_ALTAIsNull write SetFECHA_ALTAIsNull; + property OldFECHA_ALTA : DateTime read GetOldFECHA_ALTAValue; + property OldFECHA_ALTAIsNull : Boolean read GetOldFECHA_ALTAIsNull; + property FECHA_MODIFICACION : DateTime read GetFECHA_MODIFICACIONValue write SetFECHA_MODIFICACIONValue; + property FECHA_MODIFICACIONIsNull : Boolean read GetFECHA_MODIFICACIONIsNull write SetFECHA_MODIFICACIONIsNull; + property OldFECHA_MODIFICACION : DateTime read GetOldFECHA_MODIFICACIONValue; + property OldFECHA_MODIFICACIONIsNull : Boolean read GetOldFECHA_MODIFICACIONIsNull; + property USUARIO : String read GetUSUARIOValue write SetUSUARIOValue; + property USUARIOIsNull : Boolean read GetUSUARIOIsNull write SetUSUARIOIsNull; + property OldUSUARIO : String read GetOldUSUARIOValue; + property OldUSUARIOIsNull : Boolean read GetOldUSUARIOIsNull; + property LOGOTIPO : IROStream read GetLOGOTIPOValue; + property LOGOTIPOIsNull : Boolean read GetLOGOTIPOIsNull write SetLOGOTIPOIsNull; + property OldLOGOTIPO : IROStream read GetOldLOGOTIPOValue; + property OldLOGOTIPOIsNull : Boolean read GetOldLOGOTIPOIsNull; + property REGISTRO_MERCANTIL : String read GetREGISTRO_MERCANTILValue write SetREGISTRO_MERCANTILValue; + property REGISTRO_MERCANTILIsNull : Boolean read GetREGISTRO_MERCANTILIsNull write SetREGISTRO_MERCANTILIsNull; + property OldREGISTRO_MERCANTIL : String read GetOldREGISTRO_MERCANTILValue; + property OldREGISTRO_MERCANTILIsNull : Boolean read GetOldREGISTRO_MERCANTILIsNull; + property IVA : Float read GetIVAValue write SetIVAValue; + property IVAIsNull : Boolean read GetIVAIsNull write SetIVAIsNull; + property OldIVA : Float read GetOldIVAValue; + property OldIVAIsNull : Boolean read GetOldIVAIsNull; + + public + constructor Create(aBusinessProcessor: TDABusinessProcessor); override; + destructor Destroy; override; + + end; + + { IEmpresasDatosBancoDelta } + IEmpresasDatosBancoDelta = interface(IEmpresasDatosBanco) + ['{9C692459-7C4C-4403-8747-2D651CC6D3A2}'] + { 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 GetIDIsNull: Boolean; virtual; + function GetOldIDValue: Integer; virtual; + function GetOldIDIsNull: Boolean; virtual; + procedure SetIDValue(const aValue: Integer); virtual; + procedure SetIDIsNull(const aValue: Boolean); virtual; + function GetID_EMPRESAValue: Integer; virtual; + function GetID_EMPRESAIsNull: Boolean; virtual; + function GetOldID_EMPRESAValue: Integer; virtual; + function GetOldID_EMPRESAIsNull: Boolean; virtual; + procedure SetID_EMPRESAValue(const aValue: Integer); virtual; + procedure SetID_EMPRESAIsNull(const aValue: Boolean); virtual; + function GetNOMBREValue: String; virtual; + function GetNOMBREIsNull: Boolean; virtual; + function GetOldNOMBREValue: String; virtual; + function GetOldNOMBREIsNull: Boolean; virtual; + procedure SetNOMBREValue(const aValue: String); virtual; + procedure SetNOMBREIsNull(const aValue: Boolean); virtual; + function GetENTIDADValue: String; virtual; + function GetENTIDADIsNull: Boolean; virtual; + function GetOldENTIDADValue: String; virtual; + function GetOldENTIDADIsNull: Boolean; virtual; + procedure SetENTIDADValue(const aValue: String); virtual; + procedure SetENTIDADIsNull(const aValue: Boolean); virtual; + function GetSUCURSALValue: String; virtual; + function GetSUCURSALIsNull: Boolean; virtual; + function GetOldSUCURSALValue: String; virtual; + function GetOldSUCURSALIsNull: Boolean; virtual; + procedure SetSUCURSALValue(const aValue: String); virtual; + procedure SetSUCURSALIsNull(const aValue: Boolean); virtual; + function GetDCValue: String; virtual; + function GetDCIsNull: Boolean; virtual; + function GetOldDCValue: String; virtual; + function GetOldDCIsNull: Boolean; virtual; + procedure SetDCValue(const aValue: String); virtual; + procedure SetDCIsNull(const aValue: Boolean); virtual; + function GetCUENTAValue: String; virtual; + function GetCUENTAIsNull: Boolean; virtual; + function GetOldCUENTAValue: String; virtual; + function GetOldCUENTAIsNull: Boolean; virtual; + procedure SetCUENTAValue(const aValue: String); virtual; + procedure SetCUENTAIsNull(const aValue: Boolean); virtual; + function GetSUFIJO_N19Value: String; virtual; + function GetSUFIJO_N19IsNull: Boolean; virtual; + function GetOldSUFIJO_N19Value: String; virtual; + function GetOldSUFIJO_N19IsNull: Boolean; virtual; + procedure SetSUFIJO_N19Value(const aValue: String); virtual; + procedure SetSUFIJO_N19IsNull(const aValue: Boolean); virtual; + function GetSUFIJO_N58Value: String; virtual; + function GetSUFIJO_N58IsNull: Boolean; virtual; + function GetOldSUFIJO_N58Value: String; virtual; + function GetOldSUFIJO_N58IsNull: Boolean; virtual; + procedure SetSUFIJO_N58Value(const aValue: String); virtual; + procedure SetSUFIJO_N58IsNull(const aValue: Boolean); virtual; + + { Properties } + property ID : Integer read GetIDValue write SetIDValue; + property IDIsNull : Boolean read GetIDIsNull write SetIDIsNull; + property OldID : Integer read GetOldIDValue; + property OldIDIsNull : Boolean read GetOldIDIsNull; + property ID_EMPRESA : Integer read GetID_EMPRESAValue write SetID_EMPRESAValue; + property ID_EMPRESAIsNull : Boolean read GetID_EMPRESAIsNull write SetID_EMPRESAIsNull; + property OldID_EMPRESA : Integer read GetOldID_EMPRESAValue; + property OldID_EMPRESAIsNull : Boolean read GetOldID_EMPRESAIsNull; + property NOMBRE : String read GetNOMBREValue write SetNOMBREValue; + property NOMBREIsNull : Boolean read GetNOMBREIsNull write SetNOMBREIsNull; + property OldNOMBRE : String read GetOldNOMBREValue; + property OldNOMBREIsNull : Boolean read GetOldNOMBREIsNull; + property ENTIDAD : String read GetENTIDADValue write SetENTIDADValue; + property ENTIDADIsNull : Boolean read GetENTIDADIsNull write SetENTIDADIsNull; + property OldENTIDAD : String read GetOldENTIDADValue; + property OldENTIDADIsNull : Boolean read GetOldENTIDADIsNull; + property SUCURSAL : String read GetSUCURSALValue write SetSUCURSALValue; + property SUCURSALIsNull : Boolean read GetSUCURSALIsNull write SetSUCURSALIsNull; + property OldSUCURSAL : String read GetOldSUCURSALValue; + property OldSUCURSALIsNull : Boolean read GetOldSUCURSALIsNull; + property DC : String read GetDCValue write SetDCValue; + property DCIsNull : Boolean read GetDCIsNull write SetDCIsNull; + property OldDC : String read GetOldDCValue; + property OldDCIsNull : Boolean read GetOldDCIsNull; + property CUENTA : String read GetCUENTAValue write SetCUENTAValue; + property CUENTAIsNull : Boolean read GetCUENTAIsNull write SetCUENTAIsNull; + property OldCUENTA : String read GetOldCUENTAValue; + property OldCUENTAIsNull : Boolean read GetOldCUENTAIsNull; + property SUFIJO_N19 : String read GetSUFIJO_N19Value write SetSUFIJO_N19Value; + property SUFIJO_N19IsNull : Boolean read GetSUFIJO_N19IsNull write SetSUFIJO_N19IsNull; + property OldSUFIJO_N19 : String read GetOldSUFIJO_N19Value; + property OldSUFIJO_N19IsNull : Boolean read GetOldSUFIJO_N19IsNull; + property SUFIJO_N58 : String read GetSUFIJO_N58Value write SetSUFIJO_N58Value; + property SUFIJO_N58IsNull : Boolean read GetSUFIJO_N58IsNull write SetSUFIJO_N58IsNull; + property OldSUFIJO_N58 : String read GetOldSUFIJO_N58Value; + property OldSUFIJO_N58IsNull : Boolean read GetOldSUFIJO_N58IsNull; + + public + constructor Create(aBusinessProcessor: TDABusinessProcessor); override; + destructor Destroy; override; + + end; + +implementation + +uses + Variants, uROBinaryHelpers, uDAInterfaces; + +{ TEmpresasBusinessProcessorRules } +constructor TEmpresasBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor); +var + StrList: TStringList; + ROStream: TROStream; +begin + inherited; + + StrList := TStringList.Create; + StrList.OnChange := NOTAS_OnChange; + f_NOTAS := NewROStrings(StrList,True); + + ROStream := TROStream.Create; + ROStream.OnChange := LOGOTIPO_OnChange; + f_LOGOTIPO := ROStream; +end; + +destructor TEmpresasBusinessProcessorRules.Destroy; +begin + inherited; +end; + +procedure TEmpresasBusinessProcessorRules.NOTAS_OnChange(Sender: TObject); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasNOTAS] := TStringList(Sender).Text; +end; + +procedure TEmpresasBusinessProcessorRules.LOGOTIPO_OnChange(Sender: TObject); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasLOGOTIPO] := VariantBinaryFromBinary((TROStream(Sender) as IROStream).Stream); +end; + +function TEmpresasBusinessProcessorRules.GetIDValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasID]; +end; + +function TEmpresasBusinessProcessorRules.GetIDIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasID]); +end; + +function TEmpresasBusinessProcessorRules.GetOldIDValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_EmpresasID]; +end; + +function TEmpresasBusinessProcessorRules.GetOldIDIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_EmpresasID]); +end; + +procedure TEmpresasBusinessProcessorRules.SetIDValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasID] := aValue; +end; + +procedure TEmpresasBusinessProcessorRules.SetIDIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasID] := Null; +end; + +function TEmpresasBusinessProcessorRules.GetNIF_CIFValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasNIF_CIF]; +end; + +function TEmpresasBusinessProcessorRules.GetNIF_CIFIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasNIF_CIF]); +end; + +function TEmpresasBusinessProcessorRules.GetOldNIF_CIFValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_EmpresasNIF_CIF]; +end; + +function TEmpresasBusinessProcessorRules.GetOldNIF_CIFIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_EmpresasNIF_CIF]); +end; + +procedure TEmpresasBusinessProcessorRules.SetNIF_CIFValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasNIF_CIF] := aValue; +end; + +procedure TEmpresasBusinessProcessorRules.SetNIF_CIFIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasNIF_CIF] := Null; +end; + +function TEmpresasBusinessProcessorRules.GetNOMBREValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasNOMBRE]; +end; + +function TEmpresasBusinessProcessorRules.GetNOMBREIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasNOMBRE]); +end; + +function TEmpresasBusinessProcessorRules.GetOldNOMBREValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_EmpresasNOMBRE]; +end; + +function TEmpresasBusinessProcessorRules.GetOldNOMBREIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_EmpresasNOMBRE]); +end; + +procedure TEmpresasBusinessProcessorRules.SetNOMBREValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasNOMBRE] := aValue; +end; + +procedure TEmpresasBusinessProcessorRules.SetNOMBREIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasNOMBRE] := Null; +end; + +function TEmpresasBusinessProcessorRules.GetRAZON_SOCIALValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasRAZON_SOCIAL]; +end; + +function TEmpresasBusinessProcessorRules.GetRAZON_SOCIALIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasRAZON_SOCIAL]); +end; + +function TEmpresasBusinessProcessorRules.GetOldRAZON_SOCIALValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_EmpresasRAZON_SOCIAL]; +end; + +function TEmpresasBusinessProcessorRules.GetOldRAZON_SOCIALIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_EmpresasRAZON_SOCIAL]); +end; + +procedure TEmpresasBusinessProcessorRules.SetRAZON_SOCIALValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasRAZON_SOCIAL] := aValue; +end; + +procedure TEmpresasBusinessProcessorRules.SetRAZON_SOCIALIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasRAZON_SOCIAL] := Null; +end; + +function TEmpresasBusinessProcessorRules.GetCALLEValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasCALLE]; +end; + +function TEmpresasBusinessProcessorRules.GetCALLEIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasCALLE]); +end; + +function TEmpresasBusinessProcessorRules.GetOldCALLEValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_EmpresasCALLE]; +end; + +function TEmpresasBusinessProcessorRules.GetOldCALLEIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_EmpresasCALLE]); +end; + +procedure TEmpresasBusinessProcessorRules.SetCALLEValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasCALLE] := aValue; +end; + +procedure TEmpresasBusinessProcessorRules.SetCALLEIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasCALLE] := Null; +end; + +function TEmpresasBusinessProcessorRules.GetPOBLACIONValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasPOBLACION]; +end; + +function TEmpresasBusinessProcessorRules.GetPOBLACIONIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasPOBLACION]); +end; + +function TEmpresasBusinessProcessorRules.GetOldPOBLACIONValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_EmpresasPOBLACION]; +end; + +function TEmpresasBusinessProcessorRules.GetOldPOBLACIONIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_EmpresasPOBLACION]); +end; + +procedure TEmpresasBusinessProcessorRules.SetPOBLACIONValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasPOBLACION] := aValue; +end; + +procedure TEmpresasBusinessProcessorRules.SetPOBLACIONIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasPOBLACION] := Null; +end; + +function TEmpresasBusinessProcessorRules.GetPROVINCIAValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasPROVINCIA]; +end; + +function TEmpresasBusinessProcessorRules.GetPROVINCIAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasPROVINCIA]); +end; + +function TEmpresasBusinessProcessorRules.GetOldPROVINCIAValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_EmpresasPROVINCIA]; +end; + +function TEmpresasBusinessProcessorRules.GetOldPROVINCIAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_EmpresasPROVINCIA]); +end; + +procedure TEmpresasBusinessProcessorRules.SetPROVINCIAValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasPROVINCIA] := aValue; +end; + +procedure TEmpresasBusinessProcessorRules.SetPROVINCIAIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasPROVINCIA] := Null; +end; + +function TEmpresasBusinessProcessorRules.GetCODIGO_POSTALValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasCODIGO_POSTAL]; +end; + +function TEmpresasBusinessProcessorRules.GetCODIGO_POSTALIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasCODIGO_POSTAL]); +end; + +function TEmpresasBusinessProcessorRules.GetOldCODIGO_POSTALValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_EmpresasCODIGO_POSTAL]; +end; + +function TEmpresasBusinessProcessorRules.GetOldCODIGO_POSTALIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_EmpresasCODIGO_POSTAL]); +end; + +procedure TEmpresasBusinessProcessorRules.SetCODIGO_POSTALValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasCODIGO_POSTAL] := aValue; +end; + +procedure TEmpresasBusinessProcessorRules.SetCODIGO_POSTALIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasCODIGO_POSTAL] := Null; +end; + +function TEmpresasBusinessProcessorRules.GetTELEFONO_1Value: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasTELEFONO_1]; +end; + +function TEmpresasBusinessProcessorRules.GetTELEFONO_1IsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasTELEFONO_1]); +end; + +function TEmpresasBusinessProcessorRules.GetOldTELEFONO_1Value: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_EmpresasTELEFONO_1]; +end; + +function TEmpresasBusinessProcessorRules.GetOldTELEFONO_1IsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_EmpresasTELEFONO_1]); +end; + +procedure TEmpresasBusinessProcessorRules.SetTELEFONO_1Value(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasTELEFONO_1] := aValue; +end; + +procedure TEmpresasBusinessProcessorRules.SetTELEFONO_1IsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasTELEFONO_1] := Null; +end; + +function TEmpresasBusinessProcessorRules.GetTELEFONO_2Value: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasTELEFONO_2]; +end; + +function TEmpresasBusinessProcessorRules.GetTELEFONO_2IsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasTELEFONO_2]); +end; + +function TEmpresasBusinessProcessorRules.GetOldTELEFONO_2Value: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_EmpresasTELEFONO_2]; +end; + +function TEmpresasBusinessProcessorRules.GetOldTELEFONO_2IsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_EmpresasTELEFONO_2]); +end; + +procedure TEmpresasBusinessProcessorRules.SetTELEFONO_2Value(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasTELEFONO_2] := aValue; +end; + +procedure TEmpresasBusinessProcessorRules.SetTELEFONO_2IsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasTELEFONO_2] := Null; +end; + +function TEmpresasBusinessProcessorRules.GetMOVIL_1Value: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasMOVIL_1]; +end; + +function TEmpresasBusinessProcessorRules.GetMOVIL_1IsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasMOVIL_1]); +end; + +function TEmpresasBusinessProcessorRules.GetOldMOVIL_1Value: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_EmpresasMOVIL_1]; +end; + +function TEmpresasBusinessProcessorRules.GetOldMOVIL_1IsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_EmpresasMOVIL_1]); +end; + +procedure TEmpresasBusinessProcessorRules.SetMOVIL_1Value(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasMOVIL_1] := aValue; +end; + +procedure TEmpresasBusinessProcessorRules.SetMOVIL_1IsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasMOVIL_1] := Null; +end; + +function TEmpresasBusinessProcessorRules.GetMOVIL_2Value: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasMOVIL_2]; +end; + +function TEmpresasBusinessProcessorRules.GetMOVIL_2IsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasMOVIL_2]); +end; + +function TEmpresasBusinessProcessorRules.GetOldMOVIL_2Value: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_EmpresasMOVIL_2]; +end; + +function TEmpresasBusinessProcessorRules.GetOldMOVIL_2IsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_EmpresasMOVIL_2]); +end; + +procedure TEmpresasBusinessProcessorRules.SetMOVIL_2Value(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasMOVIL_2] := aValue; +end; + +procedure TEmpresasBusinessProcessorRules.SetMOVIL_2IsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasMOVIL_2] := Null; +end; + +function TEmpresasBusinessProcessorRules.GetFAXValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasFAX]; +end; + +function TEmpresasBusinessProcessorRules.GetFAXIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasFAX]); +end; + +function TEmpresasBusinessProcessorRules.GetOldFAXValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_EmpresasFAX]; +end; + +function TEmpresasBusinessProcessorRules.GetOldFAXIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_EmpresasFAX]); +end; + +procedure TEmpresasBusinessProcessorRules.SetFAXValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasFAX] := aValue; +end; + +procedure TEmpresasBusinessProcessorRules.SetFAXIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasFAX] := Null; +end; + +function TEmpresasBusinessProcessorRules.GetEMAIL_1Value: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasEMAIL_1]; +end; + +function TEmpresasBusinessProcessorRules.GetEMAIL_1IsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasEMAIL_1]); +end; + +function TEmpresasBusinessProcessorRules.GetOldEMAIL_1Value: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_EmpresasEMAIL_1]; +end; + +function TEmpresasBusinessProcessorRules.GetOldEMAIL_1IsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_EmpresasEMAIL_1]); +end; + +procedure TEmpresasBusinessProcessorRules.SetEMAIL_1Value(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasEMAIL_1] := aValue; +end; + +procedure TEmpresasBusinessProcessorRules.SetEMAIL_1IsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasEMAIL_1] := Null; +end; + +function TEmpresasBusinessProcessorRules.GetEMAIL_2Value: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasEMAIL_2]; +end; + +function TEmpresasBusinessProcessorRules.GetEMAIL_2IsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasEMAIL_2]); +end; + +function TEmpresasBusinessProcessorRules.GetOldEMAIL_2Value: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_EmpresasEMAIL_2]; +end; + +function TEmpresasBusinessProcessorRules.GetOldEMAIL_2IsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_EmpresasEMAIL_2]); +end; + +procedure TEmpresasBusinessProcessorRules.SetEMAIL_2Value(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasEMAIL_2] := aValue; +end; + +procedure TEmpresasBusinessProcessorRules.SetEMAIL_2IsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasEMAIL_2] := Null; +end; + +function TEmpresasBusinessProcessorRules.GetPAGINA_WEBValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasPAGINA_WEB]; +end; + +function TEmpresasBusinessProcessorRules.GetPAGINA_WEBIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasPAGINA_WEB]); +end; + +function TEmpresasBusinessProcessorRules.GetOldPAGINA_WEBValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_EmpresasPAGINA_WEB]; +end; + +function TEmpresasBusinessProcessorRules.GetOldPAGINA_WEBIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_EmpresasPAGINA_WEB]); +end; + +procedure TEmpresasBusinessProcessorRules.SetPAGINA_WEBValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasPAGINA_WEB] := aValue; +end; + +procedure TEmpresasBusinessProcessorRules.SetPAGINA_WEBIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasPAGINA_WEB] := Null; +end; + +function TEmpresasBusinessProcessorRules.GetNOTASValue: IROStrings; +begin + result := f_NOTAS; + result.Text := BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasNOTAS]; +end; + +function TEmpresasBusinessProcessorRules.GetNOTASIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasNOTAS]); +end; + +function TEmpresasBusinessProcessorRules.GetOldNOTASValue: IROStrings; +begin + result := NewROStrings(); + result.Text := BusinessProcessor.CurrentChange.OldValueByName[fld_EmpresasNOTAS]; +end; + +function TEmpresasBusinessProcessorRules.GetOldNOTASIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_EmpresasNOTAS]); +end; + +procedure TEmpresasBusinessProcessorRules.SetNOTASIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasNOTAS] := Null; +end; + +function TEmpresasBusinessProcessorRules.GetFECHA_ALTAValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasFECHA_ALTA]; +end; + +function TEmpresasBusinessProcessorRules.GetFECHA_ALTAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasFECHA_ALTA]); +end; + +function TEmpresasBusinessProcessorRules.GetOldFECHA_ALTAValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_EmpresasFECHA_ALTA]; +end; + +function TEmpresasBusinessProcessorRules.GetOldFECHA_ALTAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_EmpresasFECHA_ALTA]); +end; + +procedure TEmpresasBusinessProcessorRules.SetFECHA_ALTAValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasFECHA_ALTA] := aValue; +end; + +procedure TEmpresasBusinessProcessorRules.SetFECHA_ALTAIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasFECHA_ALTA] := Null; +end; + +function TEmpresasBusinessProcessorRules.GetFECHA_MODIFICACIONValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasFECHA_MODIFICACION]; +end; + +function TEmpresasBusinessProcessorRules.GetFECHA_MODIFICACIONIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasFECHA_MODIFICACION]); +end; + +function TEmpresasBusinessProcessorRules.GetOldFECHA_MODIFICACIONValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_EmpresasFECHA_MODIFICACION]; +end; + +function TEmpresasBusinessProcessorRules.GetOldFECHA_MODIFICACIONIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_EmpresasFECHA_MODIFICACION]); +end; + +procedure TEmpresasBusinessProcessorRules.SetFECHA_MODIFICACIONValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasFECHA_MODIFICACION] := aValue; +end; + +procedure TEmpresasBusinessProcessorRules.SetFECHA_MODIFICACIONIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasFECHA_MODIFICACION] := Null; +end; + +function TEmpresasBusinessProcessorRules.GetUSUARIOValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasUSUARIO]; +end; + +function TEmpresasBusinessProcessorRules.GetUSUARIOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasUSUARIO]); +end; + +function TEmpresasBusinessProcessorRules.GetOldUSUARIOValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_EmpresasUSUARIO]; +end; + +function TEmpresasBusinessProcessorRules.GetOldUSUARIOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_EmpresasUSUARIO]); +end; + +procedure TEmpresasBusinessProcessorRules.SetUSUARIOValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasUSUARIO] := aValue; +end; + +procedure TEmpresasBusinessProcessorRules.SetUSUARIOIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasUSUARIO] := Null; +end; + +function TEmpresasBusinessProcessorRules.GetLOGOTIPOValue: IROStream; +begin + result := f_LOGOTIPO; + result.Position := 0; + if not Result.InUpdateMode then begin + WriteVariantBinaryToBinary(BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasLOGOTIPO], result.Stream); + result.Position := 0; + end; +end; + +function TEmpresasBusinessProcessorRules.GetLOGOTIPOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasLOGOTIPO]); +end; + +function TEmpresasBusinessProcessorRules.GetOldLOGOTIPOValue: IROStream; +begin + result := NewROStream(); + WriteVariantBinaryToBinary(BusinessProcessor.CurrentChange.OldValueByName[fld_EmpresasLOGOTIPO], result.Stream); +end; + +function TEmpresasBusinessProcessorRules.GetOldLOGOTIPOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_EmpresasLOGOTIPO]); +end; + +procedure TEmpresasBusinessProcessorRules.SetLOGOTIPOIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasLOGOTIPO] := Null; +end; + +function TEmpresasBusinessProcessorRules.GetREGISTRO_MERCANTILValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasREGISTRO_MERCANTIL]; +end; + +function TEmpresasBusinessProcessorRules.GetREGISTRO_MERCANTILIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasREGISTRO_MERCANTIL]); +end; + +function TEmpresasBusinessProcessorRules.GetOldREGISTRO_MERCANTILValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_EmpresasREGISTRO_MERCANTIL]; +end; + +function TEmpresasBusinessProcessorRules.GetOldREGISTRO_MERCANTILIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_EmpresasREGISTRO_MERCANTIL]); +end; + +procedure TEmpresasBusinessProcessorRules.SetREGISTRO_MERCANTILValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasREGISTRO_MERCANTIL] := aValue; +end; + +procedure TEmpresasBusinessProcessorRules.SetREGISTRO_MERCANTILIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasREGISTRO_MERCANTIL] := Null; +end; + +function TEmpresasBusinessProcessorRules.GetIVAValue: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasIVA]; +end; + +function TEmpresasBusinessProcessorRules.GetIVAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasIVA]); +end; + +function TEmpresasBusinessProcessorRules.GetOldIVAValue: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_EmpresasIVA]; +end; + +function TEmpresasBusinessProcessorRules.GetOldIVAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_EmpresasIVA]); +end; + +procedure TEmpresasBusinessProcessorRules.SetIVAValue(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasIVA] := aValue; +end; + +procedure TEmpresasBusinessProcessorRules.SetIVAIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasIVA] := Null; +end; + + +{ TEmpresasDatosBancoBusinessProcessorRules } +constructor TEmpresasDatosBancoBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor); +begin + inherited; +end; + +destructor TEmpresasDatosBancoBusinessProcessorRules.Destroy; +begin + inherited; +end; + +function TEmpresasDatosBancoBusinessProcessorRules.GetIDValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasDatosBancoID]; +end; + +function TEmpresasDatosBancoBusinessProcessorRules.GetIDIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasDatosBancoID]); +end; + +function TEmpresasDatosBancoBusinessProcessorRules.GetOldIDValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_EmpresasDatosBancoID]; +end; + +function TEmpresasDatosBancoBusinessProcessorRules.GetOldIDIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_EmpresasDatosBancoID]); +end; + +procedure TEmpresasDatosBancoBusinessProcessorRules.SetIDValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasDatosBancoID] := aValue; +end; + +procedure TEmpresasDatosBancoBusinessProcessorRules.SetIDIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasDatosBancoID] := Null; +end; + +function TEmpresasDatosBancoBusinessProcessorRules.GetID_EMPRESAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasDatosBancoID_EMPRESA]; +end; + +function TEmpresasDatosBancoBusinessProcessorRules.GetID_EMPRESAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasDatosBancoID_EMPRESA]); +end; + +function TEmpresasDatosBancoBusinessProcessorRules.GetOldID_EMPRESAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_EmpresasDatosBancoID_EMPRESA]; +end; + +function TEmpresasDatosBancoBusinessProcessorRules.GetOldID_EMPRESAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_EmpresasDatosBancoID_EMPRESA]); +end; + +procedure TEmpresasDatosBancoBusinessProcessorRules.SetID_EMPRESAValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasDatosBancoID_EMPRESA] := aValue; +end; + +procedure TEmpresasDatosBancoBusinessProcessorRules.SetID_EMPRESAIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasDatosBancoID_EMPRESA] := Null; +end; + +function TEmpresasDatosBancoBusinessProcessorRules.GetNOMBREValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasDatosBancoNOMBRE]; +end; + +function TEmpresasDatosBancoBusinessProcessorRules.GetNOMBREIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasDatosBancoNOMBRE]); +end; + +function TEmpresasDatosBancoBusinessProcessorRules.GetOldNOMBREValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_EmpresasDatosBancoNOMBRE]; +end; + +function TEmpresasDatosBancoBusinessProcessorRules.GetOldNOMBREIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_EmpresasDatosBancoNOMBRE]); +end; + +procedure TEmpresasDatosBancoBusinessProcessorRules.SetNOMBREValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasDatosBancoNOMBRE] := aValue; +end; + +procedure TEmpresasDatosBancoBusinessProcessorRules.SetNOMBREIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasDatosBancoNOMBRE] := Null; +end; + +function TEmpresasDatosBancoBusinessProcessorRules.GetENTIDADValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasDatosBancoENTIDAD]; +end; + +function TEmpresasDatosBancoBusinessProcessorRules.GetENTIDADIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasDatosBancoENTIDAD]); +end; + +function TEmpresasDatosBancoBusinessProcessorRules.GetOldENTIDADValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_EmpresasDatosBancoENTIDAD]; +end; + +function TEmpresasDatosBancoBusinessProcessorRules.GetOldENTIDADIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_EmpresasDatosBancoENTIDAD]); +end; + +procedure TEmpresasDatosBancoBusinessProcessorRules.SetENTIDADValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasDatosBancoENTIDAD] := aValue; +end; + +procedure TEmpresasDatosBancoBusinessProcessorRules.SetENTIDADIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasDatosBancoENTIDAD] := Null; +end; + +function TEmpresasDatosBancoBusinessProcessorRules.GetSUCURSALValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasDatosBancoSUCURSAL]; +end; + +function TEmpresasDatosBancoBusinessProcessorRules.GetSUCURSALIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasDatosBancoSUCURSAL]); +end; + +function TEmpresasDatosBancoBusinessProcessorRules.GetOldSUCURSALValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_EmpresasDatosBancoSUCURSAL]; +end; + +function TEmpresasDatosBancoBusinessProcessorRules.GetOldSUCURSALIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_EmpresasDatosBancoSUCURSAL]); +end; + +procedure TEmpresasDatosBancoBusinessProcessorRules.SetSUCURSALValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasDatosBancoSUCURSAL] := aValue; +end; + +procedure TEmpresasDatosBancoBusinessProcessorRules.SetSUCURSALIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasDatosBancoSUCURSAL] := Null; +end; + +function TEmpresasDatosBancoBusinessProcessorRules.GetDCValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasDatosBancoDC]; +end; + +function TEmpresasDatosBancoBusinessProcessorRules.GetDCIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasDatosBancoDC]); +end; + +function TEmpresasDatosBancoBusinessProcessorRules.GetOldDCValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_EmpresasDatosBancoDC]; +end; + +function TEmpresasDatosBancoBusinessProcessorRules.GetOldDCIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_EmpresasDatosBancoDC]); +end; + +procedure TEmpresasDatosBancoBusinessProcessorRules.SetDCValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasDatosBancoDC] := aValue; +end; + +procedure TEmpresasDatosBancoBusinessProcessorRules.SetDCIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasDatosBancoDC] := Null; +end; + +function TEmpresasDatosBancoBusinessProcessorRules.GetCUENTAValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasDatosBancoCUENTA]; +end; + +function TEmpresasDatosBancoBusinessProcessorRules.GetCUENTAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasDatosBancoCUENTA]); +end; + +function TEmpresasDatosBancoBusinessProcessorRules.GetOldCUENTAValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_EmpresasDatosBancoCUENTA]; +end; + +function TEmpresasDatosBancoBusinessProcessorRules.GetOldCUENTAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_EmpresasDatosBancoCUENTA]); +end; + +procedure TEmpresasDatosBancoBusinessProcessorRules.SetCUENTAValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasDatosBancoCUENTA] := aValue; +end; + +procedure TEmpresasDatosBancoBusinessProcessorRules.SetCUENTAIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasDatosBancoCUENTA] := Null; +end; + +function TEmpresasDatosBancoBusinessProcessorRules.GetSUFIJO_N19Value: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasDatosBancoSUFIJO_N19]; +end; + +function TEmpresasDatosBancoBusinessProcessorRules.GetSUFIJO_N19IsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasDatosBancoSUFIJO_N19]); +end; + +function TEmpresasDatosBancoBusinessProcessorRules.GetOldSUFIJO_N19Value: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_EmpresasDatosBancoSUFIJO_N19]; +end; + +function TEmpresasDatosBancoBusinessProcessorRules.GetOldSUFIJO_N19IsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_EmpresasDatosBancoSUFIJO_N19]); +end; + +procedure TEmpresasDatosBancoBusinessProcessorRules.SetSUFIJO_N19Value(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasDatosBancoSUFIJO_N19] := aValue; +end; + +procedure TEmpresasDatosBancoBusinessProcessorRules.SetSUFIJO_N19IsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasDatosBancoSUFIJO_N19] := Null; +end; + +function TEmpresasDatosBancoBusinessProcessorRules.GetSUFIJO_N58Value: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasDatosBancoSUFIJO_N58]; +end; + +function TEmpresasDatosBancoBusinessProcessorRules.GetSUFIJO_N58IsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasDatosBancoSUFIJO_N58]); +end; + +function TEmpresasDatosBancoBusinessProcessorRules.GetOldSUFIJO_N58Value: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_EmpresasDatosBancoSUFIJO_N58]; +end; + +function TEmpresasDatosBancoBusinessProcessorRules.GetOldSUFIJO_N58IsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_EmpresasDatosBancoSUFIJO_N58]); +end; + +procedure TEmpresasDatosBancoBusinessProcessorRules.SetSUFIJO_N58Value(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasDatosBancoSUFIJO_N58] := aValue; +end; + +procedure TEmpresasDatosBancoBusinessProcessorRules.SetSUFIJO_N58IsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasDatosBancoSUFIJO_N58] := Null; +end; + + +initialization + RegisterBusinessProcessorRules(RID_EmpresasDelta, TEmpresasBusinessProcessorRules); + RegisterBusinessProcessorRules(RID_EmpresasDatosBancoDelta, TEmpresasDatosBancoBusinessProcessorRules); + +end. diff --git a/Source/ApplicationBase/Empresas/Model/uBizEmpresas.pas b/Source/ApplicationBase/Empresas/Model/uBizEmpresas.pas new file mode 100644 index 0000000000000000000000000000000000000000..47f76920a57c4949cfaed588236d0208d34ade5f GIT binary patch literal 2387 zcmc&$O>f#j5bYU>|1dWk2~heW5|ZWs7$QpvsW9}=szMtxB&!G+pf?;0C%rGnC#Svf z>EKguU=M~TgOlU&WM;o~ex>Il5qh|Z1%ivJ%-I@!XMT)uW}?gTnImGUVYhMMDINxJ zSaw+M0J@u(hXzbVNuhe zmp8#29~bC_Vq>{f3yLBpaq-bPgbyeL-_%9_Hz!2#t zS#NY#Ss_g_dLs5zC}2X)QE0KEc}?1AuWV4NEY{XP!+pJc|IWhzxj|`z?IIs{w1=1; z!15Z)?YUCiCwoq`d$mugbj;qldzt;RISF_t(@i#Go{BH0?s^nOiHgr)PQr`EX}3&S zjlcWvO5ASU;vFZpK+EhN^|0!J1E}@;McMFq`nhwJ?w^{Ve$ibxyMRNl2_%=!XsgLR zZ?QqKl3!;e?6>$Dl}pP}i%n@_W*#?pP@&HPW$Y`BX*o80g=1ZFW42d2xM_n^ zvKpvL#RlSG?92ihN3h7ha#y2;bE9h^Tjdt(uVkz*$r0Tk4 + BeforeAcquireConnection = DataAbstractServiceBeforeAcquireConnection + BeforeGetDatasetData = DataAbstractServiceBeforeGetDatasetData + Height = 166 + Width = 351 + object schEmpresas: TDASchema + ConnectionManager = dmServer.ConnectionManager + DataDictionary = DataDictionary + Diagrams = Diagrams + Datasets = < + item + Params = <> + Statements = < + item + Connection = 'IBX' + Default = True + TargetTable = 'EMPRESAS' + Name = 'IBX' + StatementType = stAutoSQL + ColumnMappings = < + item + DatasetField = 'ID' + TableField = 'ID' + end + item + DatasetField = 'NIF_CIF' + TableField = 'NIF_CIF' + end + item + DatasetField = 'NOMBRE' + TableField = 'NOMBRE' + end + item + DatasetField = 'RAZON_SOCIAL' + TableField = 'RAZON_SOCIAL' + end + item + DatasetField = 'CALLE' + TableField = 'CALLE' + end + item + DatasetField = 'POBLACION' + TableField = 'POBLACION' + end + item + DatasetField = 'PROVINCIA' + TableField = 'PROVINCIA' + end + item + DatasetField = 'CODIGO_POSTAL' + TableField = 'CODIGO_POSTAL' + end + item + DatasetField = 'TELEFONO_1' + TableField = 'TELEFONO_1' + end + item + DatasetField = 'TELEFONO_2' + TableField = 'TELEFONO_2' + end + item + DatasetField = 'MOVIL_1' + TableField = 'MOVIL_1' + end + item + DatasetField = 'MOVIL_2' + TableField = 'MOVIL_2' + end + item + DatasetField = 'FAX' + TableField = 'FAX' + end + item + DatasetField = 'EMAIL_1' + TableField = 'EMAIL_1' + end + item + DatasetField = 'EMAIL_2' + TableField = 'EMAIL_2' + end + item + DatasetField = 'PAGINA_WEB' + TableField = 'PAGINA_WEB' + end + item + DatasetField = 'NOTAS' + TableField = 'NOTAS' + end + item + DatasetField = 'FECHA_ALTA' + TableField = 'FECHA_ALTA' + end + item + DatasetField = 'FECHA_MODIFICACION' + TableField = 'FECHA_MODIFICACION' + end + item + DatasetField = 'USUARIO' + TableField = 'USUARIO' + end + item + DatasetField = 'LOGOTIPO' + TableField = 'LOGOTIPO' + end + item + DatasetField = 'REGISTRO_MERCANTIL' + TableField = 'REGISTRO_MERCANTIL' + end + item + DatasetField = 'IVA' + TableField = 'IVA' + end> + end> + Name = 'Empresas' + Fields = < + item + Name = 'ID' + DataType = datAutoInc + GeneratorName = 'GEN_EMPRESAS_ID' + ServerAutoRefresh = True + DictionaryEntry = 'Empresas_ID' + InPrimaryKey = True + end + item + Name = 'NIF_CIF' + DataType = datString + Size = 15 + DictionaryEntry = 'Empresas_NIF_CIF' + end + item + Name = 'NOMBRE' + DataType = datString + Size = 255 + DictionaryEntry = 'Empresas_NOMBRE' + end + item + Name = 'RAZON_SOCIAL' + DataType = datString + Size = 255 + DictionaryEntry = 'Empresas_RAZON_SOCIAL' + end + item + Name = 'CALLE' + DataType = datString + Size = 255 + DictionaryEntry = 'Empresas_CALLE' + end + item + Name = 'POBLACION' + DataType = datString + Size = 255 + DictionaryEntry = 'Empresas_POBLACION' + end + item + Name = 'PROVINCIA' + DataType = datString + Size = 255 + DictionaryEntry = 'Empresas_PROVINCIA' + end + item + Name = 'CODIGO_POSTAL' + DataType = datString + Size = 10 + DictionaryEntry = 'Empresas_CODIGO_POSTAL' + end + item + Name = 'TELEFONO_1' + DataType = datString + Size = 25 + DictionaryEntry = 'Empresas_TELEFONO_1' + end + item + Name = 'TELEFONO_2' + DataType = datString + Size = 25 + DictionaryEntry = 'Empresas_TELEFONO_2' + end + item + Name = 'MOVIL_1' + DataType = datString + Size = 25 + DictionaryEntry = 'Empresas_MOVIL_1' + end + item + Name = 'MOVIL_2' + DataType = datString + Size = 25 + DictionaryEntry = 'Empresas_MOVIL_2' + end + item + Name = 'FAX' + DataType = datString + Size = 25 + DictionaryEntry = 'Empresas_FAX' + end + item + Name = 'EMAIL_1' + DataType = datString + Size = 255 + DictionaryEntry = 'Empresas_EMAIL_1' + end + item + Name = 'EMAIL_2' + DataType = datString + Size = 255 + DictionaryEntry = 'Empresas_EMAIL_2' + end + item + Name = 'PAGINA_WEB' + DataType = datString + Size = 255 + DictionaryEntry = 'Empresas_PAGINA_WEB' + end + item + Name = 'NOTAS' + DataType = datMemo + DictionaryEntry = 'Empresas_NOTAS' + end + item + Name = 'FECHA_ALTA' + DataType = datDateTime + DictionaryEntry = 'Empresas_FECHA_ALTA' + end + item + Name = 'FECHA_MODIFICACION' + DataType = datDateTime + DictionaryEntry = 'Empresas_FECHA_MODIFICACION' + end + item + Name = 'USUARIO' + DataType = datString + Size = 20 + DictionaryEntry = 'Empresas_USUARIO' + end + item + Name = 'LOGOTIPO' + DataType = datBlob + BlobType = dabtBlob + DictionaryEntry = 'Empresas_LOGOTIPO' + end + item + Name = 'REGISTRO_MERCANTIL' + DataType = datString + Size = 255 + DictionaryEntry = 'Empresas_REGISTRO_MERCANTIL' + end + item + Name = 'IVA' + DataType = datFloat + DictionaryEntry = 'Empresas_IVA' + end> + end + item + Params = <> + Statements = < + item + Connection = 'IBX' + Default = True + TargetTable = 'EMPRESAS_DATOS_BANCO' + Name = 'IBX' + StatementType = stAutoSQL + ColumnMappings = < + item + DatasetField = 'ID' + TableField = 'ID' + end + item + DatasetField = 'ID_EMPRESA' + TableField = 'ID_EMPRESA' + end + item + DatasetField = 'NOMBRE' + TableField = 'NOMBRE' + end + item + DatasetField = 'ENTIDAD' + TableField = 'ENTIDAD' + end + item + DatasetField = 'SUCURSAL' + TableField = 'SUCURSAL' + end + item + DatasetField = 'DC' + TableField = 'DC' + end + item + DatasetField = 'CUENTA' + TableField = 'CUENTA' + end + item + DatasetField = 'SUFIJO_N19' + TableField = 'SUFIJO_N19' + end + item + DatasetField = 'SUFIJO_N58' + TableField = 'SUFIJO_N58' + end> + end> + Name = 'EmpresasDatosBanco' + Fields = < + item + Name = 'ID' + DataType = datAutoInc + GeneratorName = 'GEN_EMPRESAS_DATOS_BANCO_ID' + ServerAutoRefresh = True + DictionaryEntry = 'EmpresasDatosBanco_ID' + InPrimaryKey = True + end + item + Name = 'ID_EMPRESA' + DataType = datInteger + DictionaryEntry = 'EmpresasDatosBanco_ID_EMPRESA' + end + item + Name = 'NOMBRE' + DataType = datString + Size = 255 + DictionaryEntry = 'EmpresasDatosBanco_NOMBRE' + end + item + Name = 'ENTIDAD' + DataType = datString + Size = 15 + DictionaryEntry = 'EmpresasDatosBanco_ENTIDAD' + end + item + Name = 'SUCURSAL' + DataType = datString + Size = 15 + DictionaryEntry = 'EmpresasDatosBanco_SUCURSAL' + end + item + Name = 'DC' + DataType = datString + Size = 15 + DictionaryEntry = 'EmpresasDatosBanco_DC' + end + item + Name = 'CUENTA' + DataType = datString + Size = 15 + DictionaryEntry = 'EmpresasDatosBanco_CUENTA' + end + item + Name = 'SUFIJO_N19' + DataType = datString + Size = 3 + DictionaryEntry = 'EmpresasDatosBanco_SUFIJO_N19' + end + item + Name = 'SUFIJO_N58' + DataType = datString + Size = 3 + DictionaryEntry = 'EmpresasDatosBanco_SUFIJO_N58' + end> + end> + JoinDataTables = <> + UnionDataTables = <> + Commands = <> + RelationShips = < + item + Name = 'FK_EmpresasDatosBanco_Empresas' + MasterDatasetName = 'Empresas' + MasterFields = 'ID' + DetailDatasetName = 'EmpresasDatosBanco' + DetailFields = 'ID_EMPRESA' + RelationshipType = rtForeignKey + end> + UpdateRules = < + item + Name = 'Insert Empresas' + DoUpdate = False + DoDelete = False + DatasetName = 'Empresas' + FailureBehavior = fbRaiseException + end + item + Name = 'Insert EmpresasDatosBanco' + DoUpdate = False + DoDelete = False + DatasetName = 'EmpresasDatosBanco' + FailureBehavior = fbRaiseException + end + item + Name = 'Update Empresas' + DoInsert = False + DoDelete = False + DatasetName = 'Empresas' + FailureBehavior = fbRaiseException + end + item + Name = 'Update EmpresasDatosBanco' + DoInsert = False + DoDelete = False + DatasetName = 'EmpresasDatosBanco' + FailureBehavior = fbRaiseException + end + item + Name = 'Delete EmpresasDatosBanco' + DoUpdate = False + DoInsert = False + DatasetName = 'EmpresasDatosBanco' + FailureBehavior = fbRaiseException + end + item + Name = 'Delete Empresas' + DoUpdate = False + DoInsert = False + DatasetName = 'Empresas' + FailureBehavior = fbRaiseException + end> + Version = 0 + Left = 46 + Top = 22 + end + object DataDictionary: TDADataDictionary + Fields = < + item + Name = 'Empresas_NIF_CIF' + DataType = datString + Size = 15 + DisplayLabel = 'CIF' + end + item + Name = 'Empresas_NOMBRE' + DataType = datString + Size = 255 + DisplayLabel = 'Nombre' + end + item + Name = 'Empresas_RAZON_SOCIAL' + DataType = datString + Size = 255 + DisplayLabel = 'Raz'#243'n Social' + end + item + Name = 'Empresas_CALLE' + DataType = datString + Size = 255 + DisplayLabel = 'Calle' + end + item + Name = 'Empresas_POBLACION' + DataType = datString + Size = 255 + DisplayLabel = 'Poblaci'#243'n' + end + item + Name = 'Empresas_PROVINCIA' + DataType = datString + Size = 255 + DisplayLabel = 'Provincia' + end + item + Name = 'Empresas_CODIGO_POSTAL' + DataType = datString + Size = 10 + DisplayLabel = 'C'#243'd. postal' + end + item + Name = 'Empresas_TELEFONO_1' + DataType = datString + Size = 25 + DisplayLabel = 'Tel'#233'fono 1' + end + item + Name = 'Empresas_TELEFONO_2' + DataType = datString + Size = 25 + DisplayLabel = 'Tel'#233'fono 2' + end + item + Name = 'Empresas_MOVIL_1' + DataType = datString + Size = 25 + DisplayLabel = 'M'#243'vil 1' + end + item + Name = 'Empresas_MOVIL_2' + DataType = datString + Size = 25 + DisplayLabel = 'M'#243'vil 2' + end + item + Name = 'Empresas_FAX' + DataType = datString + Size = 25 + DisplayLabel = 'Fax' + end + item + Name = 'Empresas_EMAIL_1' + DataType = datString + Size = 255 + DisplayLabel = 'E-mail 1' + end + item + Name = 'Empresas_EMAIL_2' + DataType = datString + Size = 255 + DisplayLabel = 'E-mail 2' + end + item + Name = 'Empresas_PAGINA_WEB' + DataType = datString + Size = 255 + DisplayLabel = 'P'#225'gina web' + end + item + Name = 'Empresas_NOTAS' + DataType = datMemo + DisplayLabel = 'Notas' + end + item + Name = 'Empresas_FECHA_ALTA' + DataType = datDateTime + end + item + Name = 'Empresas_FECHA_MODIFICACION' + DataType = datDateTime + end + item + Name = 'Empresas_USUARIO' + DataType = datString + Size = 20 + end + item + Name = 'Empresas_LOGOTIPO' + DataType = datBlob + BlobType = dabtBlob + DisplayLabel = 'Logotipo' + end + item + Name = 'Empresas_REGISTRO_MERCANTIL' + DataType = datString + Size = 255 + DisplayLabel = 'Registro mercantil' + end + item + Name = 'Empresas_IVA' + DataType = datFloat + DisplayLabel = 'IVA' + end + item + Name = 'EmpresasDatosBanco_ID_EMPRESA' + DataType = datInteger + end + item + Name = 'EmpresasDatosBanco_NOMBRE' + DataType = datString + Size = 255 + DisplayLabel = 'Nombre del banco' + end + item + Name = 'EmpresasDatosBanco_ENTIDAD' + DataType = datString + Size = 15 + DisplayLabel = 'Entidad' + end + item + Name = 'EmpresasDatosBanco_SUCURSAL' + DataType = datString + Size = 15 + DisplayLabel = 'Sucursal' + end + item + Name = 'EmpresasDatosBanco_DC' + DataType = datString + Size = 15 + DisplayLabel = 'DC' + end + item + Name = 'EmpresasDatosBanco_CUENTA' + DataType = datString + Size = 15 + DisplayLabel = 'Cuenta' + end + item + Name = 'EmpresasDatosBanco_SUFIJO_N19' + DataType = datString + Size = 3 + DisplayLabel = 'Sufijo 19' + end + item + Name = 'EmpresasDatosBanco_SUFIJO_N58' + DataType = datString + Size = 3 + DisplayLabel = 'Sufijo 58' + end + item + Name = 'Empresas_ID' + DataType = datAutoInc + GeneratorName = 'GEN_EMPRESAS_ID' + LogChanges = False + Required = True + DisplayLabel = 'ID' + ReadOnly = True + ServerAutoRefresh = True + end + item + Name = 'EmpresasDatosBanco_ID' + DataType = datAutoInc + GeneratorName = 'GEN_EMPRESAS_DATOS_BANCO_ID' + LogChanges = False + Required = True + DisplayLabel = 'ID' + ReadOnly = True + ServerAutoRefresh = True + end> + Left = 158 + Top = 22 + end + object Diagrams: TDADiagrams + Left = 158 + Top = 90 + DiagramData = + ''#13#10' '#13#10' '#13#10' '#13#10' '#13#10''#13#10 + end + object DABin2DataStreamer: TDABin2DataStreamer + Left = 48 + Top = 88 + end +end diff --git a/Source/ApplicationBase/Empresas/Servidor/srvEmpresas_Impl.pas b/Source/ApplicationBase/Empresas/Servidor/srvEmpresas_Impl.pas new file mode 100644 index 00000000..68407ec0 --- /dev/null +++ b/Source/ApplicationBase/Empresas/Servidor/srvEmpresas_Impl.pas @@ -0,0 +1,81 @@ +unit srvEmpresas_Impl; + +{----------------------------------------------------------------------------} +{ This unit was automatically generated by the RemObjects SDK after reading } +{ the RODL file associated with this project . } +{ } +{ This is where you are supposed to code the implementation of your objects. } +{----------------------------------------------------------------------------} + +interface + +uses + {vcl:} Classes, SysUtils, + {RemObjects:} uROClientIntf, uROTypes, uROServer, uROServerIntf, uROSessions, + {Ancestor Implementation:} DataAbstractService_Impl, + {Used RODLs:} DataAbstract4_Intf, + {Generated:} FactuGES_Intf, uDAScriptingProvider, uDABusinessProcessor, + uDABin2DataStreamer, uDADataStreamer, uDAClasses, uDAInterfaces; + +type + { TsrvEmpresas } + TsrvEmpresas = class(TDataAbstractService, IsrvEmpresas) + Diagrams: TDADiagrams; + DABin2DataStreamer: TDABin2DataStreamer; + schEmpresas: TDASchema; + DataDictionary: TDADataDictionary; + procedure DARemoteServiceCreate(Sender: TObject); + procedure DataAbstractServiceBeforeAcquireConnection(aSender: TObject; + var aConnectionName: string); + procedure DataAbstractServiceBeforeGetDatasetData(aSender: TObject; + const aDataset: IDADataset; const aIncludeSchema: Boolean; + const aMaxRecords: Integer); + private + protected + 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.DARemoteServiceCreate(Sender: TObject); +begin + SessionManager := dmServer.SessionManager; +end; + +procedure TsrvEmpresas.DataAbstractServiceBeforeAcquireConnection( + aSender: TObject; var aConnectionName: string); +begin + ConnectionName := dmServer.ConnectionName; +end; + +procedure TsrvEmpresas.DataAbstractServiceBeforeGetDatasetData(aSender: TObject; + const aDataset: IDADataset; const aIncludeSchema: Boolean; + const aMaxRecords: Integer); +begin + Exit; + if (aDataset.Name <> nme_EmpresasDatosBanco) then + begin + { Aqu se asegura que el usuario slo accede a las empresas a + las que tiene permiso para acceder filtrando DataSet por ID_EMPRESA. } + FiltrarAccesoUsuario(Session, Connection, ServiceSchema, aDataset, fld_EmpresasID); + end; +end; + +initialization + TROClassFactory.Create('srvEmpresas', Create_srvEmpresas, TsrvEmpresas_Invoker); + +finalization + +end. diff --git a/Source/ApplicationBase/Empresas/Test/Empresas_Tests.bdsproj b/Source/ApplicationBase/Empresas/Test/Empresas_Tests.bdsproj new file mode 100644 index 00000000..37154e7a --- /dev/null +++ b/Source/ApplicationBase/Empresas/Test/Empresas_Tests.bdsproj @@ -0,0 +1,496 @@ + + + + + + + + + + + + Empresas_Tests.dpr + + + 7.0 + + + 8 + 0 + 1 + 1 + 0 + 0 + 1 + 1 + 1 + 0 + 0 + 1 + 0 + 1 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 1 + 1 + 1 + True + True + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + False + False + False + True + True + True + True + True + True + + + + 3 + 0 + False + 1 + False + False + False + 16384 + 1048576 + 4194304 + + + + ..\..\..\..\Output\Debug\Cliente + .\ + + ..\..\Lib + ..\..\..\Lib;..\..\Lib + DataAbstract_D10;Base;GUIBase;Empresas_model;Empresas_controller + _CONSOLE_TESTRUNNER;EUREKALOG;EUREKALOG_VER5 + + True + + + + + + False + + + True + False + + + + $00000000 + + + + True + False + 1 + 0 + 0 + 0 + False + False + False + False + False + 3082 + 1252 + + + + Empresas (Test) + 1.0.0.0 + + + + + + 1.0.0.0 + + + + + DUnit / Delphi Win32 + GUI + + + diff --git a/Source/ApplicationBase/Empresas/Test/Empresas_Tests.dpr b/Source/ApplicationBase/Empresas/Test/Empresas_Tests.dpr new file mode 100644 index 00000000..e43b0109 --- /dev/null +++ b/Source/ApplicationBase/Empresas/Test/Empresas_Tests.dpr @@ -0,0 +1,39 @@ +program Empresas_Tests; +{ + + Delphi DUnit Test Project + ------------------------- + This project contains the DUnit test framework and the GUI/Console test runners. + Add "CONSOLE_TESTRUNNER" to the conditional defines entry in the project options + to use the console test runner. Otherwise the GUI test runner will be used by + default. + +} + +{$IFDEF CONSOLE_TESTRUNNER} +{$APPTYPE CONSOLE} +{$ENDIF} + +uses + ExceptionLog, + Forms, + TestFramework, + GUITestRunner, + TextTestRunner, + uEmpresasController_Test in 'uEmpresasController_Test.pas', + uHostMainForm in 'uHostMainForm.pas' {HostMainForm}; + +{$R *.RES} + +begin + Application.Initialize; + Application.CreateForm(THostMainForm, HostMainForm); + Application.Run; + Application.Terminate; + + {if IsConsole then + TextTestRunner.RunRegisteredTests + else + GUITestRunner.RunRegisteredTests;} +end. + diff --git a/Source/ApplicationBase/Empresas/Test/Empresas_Tests.res b/Source/ApplicationBase/Empresas/Test/Empresas_Tests.res new file mode 100644 index 0000000000000000000000000000000000000000..346c5f0c3caa662a366d98820a6c834bcc95f680 GIT binary patch literal 5084 zcmbW5KW`jW6veNTNT4VJ7gRKBA%ubpWTf;9B8i9u1d(jokp&?{Bu-?Uf@=H`@(nfx zLTJ7N8rPA_lt@lN4Jj!Q!};C&?#%3F9c)Ird*7e??m6eaH*Z&KX0{>gx-c~to?q5; z{;Xowd~SXH{Dlm7D?eFhfQ`hckr~UNgiOr@nBPRUjs68If z`N97eA21R-J!8qEnKwS)iC0t4tPzK?IiL2K&4`<;n6%q2`ied7NsL*^OP=J?RJFx; z)B;{$Q-=i(8gqQG>&EOz*hk4hZRK3`fP*#jq1Iko;V>R}!J%u>UpscE__6k;+Vt4a z{!H4X8~t#Y%PZgVLw*cwYTVaZ?d0HIeUBrb@_7Ay4fWsbd7#nvNHu5_3kT0~7Jo!B5PzT4<+)Vt**LBiV5ho6;5tp$!*H*PxJh~fjSLlztfyX`uhp4O1)nLks z4^6>gR+oL2R>w>sLP4JBNeXt*|kz&)RoK z+OPJRB?mZx8QA14_=@A)gULCFHZ?9hC-PIRtAYa>!SMZ0+_rGg`DD&(+I0p8Z|nVF zoEka@u(3((zhjC!oM^+Hr4_^kJOPsL9LmoS|_apQfCJ0SG?*#L)nRArCm#Hju?S_=oY6F>ZF z{a%0Na?Fao4KwLyF7F(#k>=vu%L_a8bM|9@v=)3Bm}$(@=KWi!ec6XNcidlaj9lbH zzwf`===C~P%C9))J!czOKCiWTH!_#+18wiutMTJZqr2=K`K3ScJ$Jzm?3i!ra(Mw2@ODsIU5%6i`T&{ud!MxmWXejtmfAzJuX1t?Wn|Rmy{ejz5aa!y9Bk$+2D(|E? zyUxEm5@Ryle}4YdrzRNuxWCASF0?y0X{Uy%HSdM^4K>tZCBDu=+-vBU z9^sHbG{*TsAHRWk&wX5d?y3H4iWf29a|iNWMXuzdB6^#(t2n%*pYwU7{VLxBwDYd< zGa-(C?uDCY7c9ST3T~c3uz8ZpDtyK`i(c>PQ17h!f}f&0wCB6adj@vTp^i4S7(dMO zUcHJ#f95A(z-8yP5QgtLK0>c*W&AC7*OG(P?<=lfr3umZXt>N#-6IBO>{#X6?WB)=ap zxcKj3_fZpapX5mnuR0Ge@q%y9Hgv=E=OL^|>BT zJzmM>@X+Up%XO#4J1#!+ozx$fXL-CkFzYnN2XcW}0Q%gnZ9UH684ZXeq<`$G1KU6;>i{J#eOX6XNnjSc@-gMUHR z?C}}%e>l2sU3u1g*?7(4GnX`W%Whbu&nxzoTGt$*a=fc*^Za`5&wt1l#z^Fv($sTK z79-yEk3W3ihV9v|-L)ONV^`(x*==Rsv2X2xqMmxpmQ-y?;g($z2N=DhY-<{QVE65z zZ7cpqsoqxab`S8W{$oa`% + ExplicitTop = 535 + ExplicitWidth = 674 + end + inherited EditorActionList: TActionList + Top = 128 + end + inherited SmallImages: TPngImageList + Left = 403 + Top = 176 + end + inherited dsDataTable: TDADataSource [6] + Left = 168 + Top = 120 + end + inherited LargeImages: TPngImageList [7] + Left = 435 + Top = 176 + end + inherited JvFormStorage: TJvFormStorage [8] + Left = 408 + Top = 208 + end + inherited JvAppRegistryStorage: TJvAppRegistryStorage + Left = 440 + Top = 208 + end + object dxLayoutLookAndFeelList1: TdxLayoutLookAndFeelList + Left = 248 + Top = 168 + object dxLayoutOfficeLookAndFeel1: TdxLayoutOfficeLookAndFeel + GroupOptions.CaptionOptions.Font.Charset = DEFAULT_CHARSET + GroupOptions.CaptionOptions.Font.Color = clWindowText + GroupOptions.CaptionOptions.Font.Height = -11 + GroupOptions.CaptionOptions.Font.Name = 'Tahoma' + GroupOptions.CaptionOptions.Font.Style = [fsBold] + GroupOptions.CaptionOptions.TextColor = clHighlight + GroupOptions.CaptionOptions.UseDefaultFont = False + end + end +end diff --git a/Source/ApplicationBase/Empresas/Views/uEditorEmpresa.pas b/Source/ApplicationBase/Empresas/Views/uEditorEmpresa.pas new file mode 100644 index 00000000..8bfcfa6c --- /dev/null +++ b/Source/ApplicationBase/Empresas/Views/uEditorEmpresa.pas @@ -0,0 +1,184 @@ +unit uEditorEmpresa; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uEditorDBItem, ToolWin, ComCtrls, JvExControls, JvComponent, + uBizEmpresas, JvNavigationPane, ActnList, + uEditorBase, StdActns, TB2Dock, TB2Toolbar, TBX, ImgList, PngImageList, + TB2Item, uEditorItem, DB, uDADataTable, uEditorDBBase, JvFormAutoSize, + uDAScriptingProvider, uDACDSDataTable, StdCtrls, pngimage, ExtCtrls, + TBXDkPanels, JvButton, AppEvnts, uCustomView, uViewBase, + JvAppStorage, JvAppRegistryStorage, JvFormPlacement, JvComponentBase, + uViewEmpresa, uIEditorEmpresa, uEmpresasController, dxLayoutLookAndFeels, + JvExComCtrls, JvStatusBar, uViewDetallesGenerico, uViewDatosBancarios, + uDAInterfaces; + +type + TfEditorEmpresa = class(TfEditorDBItem, IEditorEmpresa) + frViewEmpresa1: TfrViewEmpresa; + dxLayoutLookAndFeelList1: TdxLayoutLookAndFeelList; + dxLayoutOfficeLookAndFeel1: TdxLayoutOfficeLookAndFeel; + TabSheet1: TTabSheet; + frViewDatosBancarios1: TfrViewDatosBancarios; + procedure FormShow(Sender: TObject); + procedure actRefrescarUpdate(Sender: TObject); + procedure dsDataTableDataChange(Sender: TObject; Field: TField); + private + FController : IEmpresasController; + FEmpresa: IBizEmpresa; + FViewEmpresa : IViewEmpresa; + protected + function GetEmpresa: IBizEmpresa; virtual; + procedure SetEmpresa(const Value: IBizEmpresa); virtual; + + function GetViewEmpresa: IViewEmpresa; + procedure SetViewEmpresa(const Value: IViewEmpresa); + procedure GuardarInterno; override; + procedure EliminarInterno; override; + property ViewEmpresa: IViewEmpresa read GetViewEmpresa write + SetViewEmpresa; + function GetController : IEmpresasController; virtual; + procedure SetController (const Value : IEmpresasController); virtual; + + public + constructor Create(AOwner: TComponent); override; + procedure PonerTitulos(const ATitulo: string = ''); override; + property Controller : IEmpresasController read GetController + write SetController; + property Empresa: IBizEmpresa read GetEmpresa write SetEmpresa; + destructor Destroy; override; + end; + +implementation + +{$R *.dfm} + +uses + uCustomEditor, uDataModuleEmpresas; + +{ +******************************* TfEditorEmpresa ******************************* +} +function TfEditorEmpresa.GetEmpresa: IBizEmpresa; +begin + Result := FEmpresa; +end; + +function TfEditorEmpresa.GetController: IEmpresasController; +begin + Result := FController; +end; + +function TfEditorEmpresa.GetViewEmpresa: IViewEmpresa; +begin + Result := FViewEmpresa; +end; + +procedure TfEditorEmpresa.GuardarInterno; +begin + inherited; + 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 ningn Empresa asignado'); + + Empresa.DataTable.Active := True; +// FViewEmpresa.ShowEmbedded(pagGeneral); + FViewEmpresa.SetFocus; +end; + +procedure TfEditorEmpresa.actRefrescarUpdate(Sender: TObject); +begin + if Assigned(dsDataTable.DataTable) then + (Sender as TAction).Enabled := (not dsDataTable.DataTable.Fetching) or + (not dsDataTable.DataTable.Opening) or + (not dsDataTable.DataTable.Closing) or + (not FEmpresa.EsNuevo) + else + (Sender as TAction).Enabled := False; +end; + +constructor TfEditorEmpresa.Create(AOwner: TComponent); +begin + inherited; + FViewEmpresa := frViewEmpresa1; +end; + +destructor TfEditorEmpresa.Destroy; +begin + FViewEmpresa := NIL; + FEmpresa := NIL; + inherited; +end; + +procedure TfEditorEmpresa.dsDataTableDataChange(Sender: TObject; Field: TField); +begin + inherited; + if Assigned(FEmpresa) and (not (FEmpresa.DataTable.Fetching) or + not (FEmpresa.DataTable.Opening) or not (FEmpresa.DataTable.Closing)) then + PonerTitulos; +end; + +procedure TfEditorEmpresa.EliminarInterno; +begin + inherited; + FController.Eliminar(FEmpresa); +end; + +end. + diff --git a/Source/ApplicationBase/Empresas/Views/uEmpresasViewRegister.pas b/Source/ApplicationBase/Empresas/Views/uEmpresasViewRegister.pas new file mode 100644 index 00000000..58386775 --- /dev/null +++ b/Source/ApplicationBase/Empresas/Views/uEmpresasViewRegister.pas @@ -0,0 +1,25 @@ +unit uEmpresasViewRegister; + +interface + +procedure RegisterViews; +procedure UnregisterViews; + +implementation + +uses + uEditorRegistryUtils, uEditorEmpresa, uEditorDatosBancariosEmpresa; + +procedure RegisterViews; +begin + EditorRegistry.RegisterClass(TfEditorEmpresa, 'EditorEmpresa'); + EditorRegistry.RegisterClass(TfEditorDatosBancariosEmpresa, 'EditorDatosBancariosEmpresa'); +end; + +procedure UnregisterViews; +begin + EditorRegistry.UnRegisterClass(TfEditorEmpresa); + EditorRegistry.UnRegisterClass(TfEditorDatosBancariosEmpresa); +end; + +end. diff --git a/Source/ApplicationBase/Empresas/Views/uViewDatosBancarios.dfm b/Source/ApplicationBase/Empresas/Views/uViewDatosBancarios.dfm new file mode 100644 index 00000000..0a405dcc --- /dev/null +++ b/Source/ApplicationBase/Empresas/Views/uViewDatosBancarios.dfm @@ -0,0 +1,70 @@ +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 + inherited ToolButton1: TToolButton + Top = 0 + end + inherited ToolButton4: TToolButton + Top = 0 + end + inherited ToolButton5: TToolButton + Top = 0 + end + inherited ToolButton2: TToolButton + Top = 0 + end + inherited ToolButton6: TToolButton + Top = 0 + end + inherited ToolButton7: TToolButton + Top = 0 + end + end +end diff --git a/Source/ApplicationBase/Empresas/Views/uViewDatosBancarios.pas b/Source/ApplicationBase/Empresas/Views/uViewDatosBancarios.pas new file mode 100644 index 00000000..2a70ebe6 --- /dev/null +++ b/Source/ApplicationBase/Empresas/Views/uViewDatosBancarios.pas @@ -0,0 +1,68 @@ +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, + uDAInterfaces; + +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/ApplicationBase/Empresas/Views/uViewEmpresa.dfm b/Source/ApplicationBase/Empresas/Views/uViewEmpresa.dfm new file mode 100644 index 00000000..a2b17571 --- /dev/null +++ b/Source/ApplicationBase/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/ApplicationBase/Empresas/Views/uViewEmpresa.pas b/Source/ApplicationBase/Empresas/Views/uViewEmpresa.pas new file mode 100644 index 00000000..d2e5e583 --- /dev/null +++ b/Source/ApplicationBase/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, uDAInterfaces; + +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/ApplicationBase/Usuarios/Controller/View/uIEditorLogin.pas b/Source/ApplicationBase/Usuarios/Controller/View/uIEditorLogin.pas new file mode 100644 index 00000000..0f3e505f --- /dev/null +++ b/Source/ApplicationBase/Usuarios/Controller/View/uIEditorLogin.pas @@ -0,0 +1,22 @@ +unit uIEditorLogin; + +interface + +uses + uEditorBase, uUsuariosController; + +type + IEditorLogin = interface + ['{96513A0B-679D-4DD6-8821-C99003DAD2A3}'] + function ShowModal : Integer; + procedure Release; + + function GetController : IUsuariosController; + procedure SetController (const AValue : IUsuariosController); + property Controller : IUsuariosController read GetController write SetController; + end; + + +implementation + +end. diff --git a/Source/ApplicationBase/Usuarios/Controller/uUsuariosController.pas b/Source/ApplicationBase/Usuarios/Controller/uUsuariosController.pas new file mode 100644 index 00000000..7d2af283 --- /dev/null +++ b/Source/ApplicationBase/Usuarios/Controller/uUsuariosController.pas @@ -0,0 +1,216 @@ +unit uUsuariosController; + +interface + + +uses + Classes, SysUtils, Forms, uDADataTable, uControllerBase, + uIDataModuleUsuarios, uDataModuleUsuarios, UCBase; + +type + IUsuariosController = interface(IControllerBase) + ['{DD963EEC-5880-4DE7-AF55-B5080B538D84}'] + + procedure Logoff; + function StartLogin : Boolean; + procedure ShowUserManager; + procedure ShowProfileManager; + procedure ShowLogManager; + procedure ShowChangePassword; + function ComprobarUsuario(const User : String; const Password: String): Boolean; + procedure CambiarPassword(const AIDUser: Integer; const ANewPassword: String); + + function GetMaxIntentosLogin: Integer; + procedure SetMaxIntentosLogin(const Value: Integer); + property MaxIntentosLogin : Integer read GetMaxIntentosLogin write SetMaxIntentosLogin; + + function GetCurrentUser: TUCCurrentUser; + property CurrentUser: TUCCurrentUser read GetCurrentUser; + + +{ procedure ChangeUser(IDUser: Integer; Login, Name, Mail: String; Profile,UserExpired,UserDaysSun: Integer; PrivUser: Boolean); + procedure ChangePassword(IDUser: Integer; NewPassword: String); + procedure AddRight(idUser: Integer; ItemRight: TObject; FullPath: Boolean = True); overload; + procedure AddRight(idUser: Integer; ItemRight: String); overload; + procedure AddRightEX(idUser: Integer; Module, FormName, ObjName: String); + function VerificaLogin(User, Password: String): Boolean; + function GetLocalUserName: String; + function GetLocalComputerName: String; + function AddUser(Login, Password, Name, Mail: String; Profile , UserExpired , DaysExpired : Integer; PrivUser: Boolean): Integer; + function ExisteUsuario(Login: String): Boolean; + property CurrentUser: TUCCurrentUser read FCurrentUser write FCurrentUser; + property CurrentEmpresa : TEmpresaDef read FEmpresaAtual write FEmpresaAtual; + property UserSettings: TUCUserSettings read FUserSettings write SetUserSettings;} + + end; + + TUsuariosController = class(TControllerBase, IUsuariosController) + protected + FDataModule : IDataModuleUsuarios; + FUserControl: TUserControl; + + function GetMaxIntentosLogin: Integer; + procedure SetMaxIntentosLogin(const Value: Integer); + + procedure RecibirAviso(ASujeto: ISujeto; ADataTable: IDAStronglyTypedDataTable); override; + function CreateEditor(const AName : String; const IID: TGUID; out Intf): Boolean; + + procedure AsignarDataModule; + procedure InicializarUserControl; + procedure ComprobarUsuarioInicial; + function GetCurrentUser: TUCCurrentUser; + + public + constructor Create; virtual; + destructor Destroy; override; + + procedure Logoff; + function StartLogin : Boolean; + procedure ShowUserManager; + procedure ShowProfileManager; + procedure ShowLogManager; + procedure ShowChangePassword; + function ComprobarUsuario(const User : String; const Password: String): Boolean; + procedure CambiarPassword(const AIDUser: Integer; const ANewPassword: String); + + property UserControl : TUserControl read FUserControl; + property MaxIntentosLogin : Integer read GetMaxIntentosLogin write SetMaxIntentosLogin; + property CurrentUser: TUCCurrentUser read GetCurrentUser; + end; + +implementation + +uses + cxControls, DB, uEditorRegistryUtils, schUsuariosClient_Intf, + uDAInterfaces, uDataTableUtils, uDialogUtils, uFactuGES_App, Dialogs, + uDateUtils, uROTypes, DateUtils, Controls, Windows, uIEditorLogin; + +{ TUsuariosController } + +procedure TUsuariosController.AsignarDataModule; +begin + FDataModule := TDataModuleUsuarios.Create(Nil); +end; + +procedure TUsuariosController.CambiarPassword(const AIDUser: Integer; + const ANewPassword: String); +begin + FUserControl.ChangePassword(AIDUser, ANewPassword); +end; + +function TUsuariosController.ComprobarUsuario(const User, + Password: String): Boolean; +begin + Result := FUserControl.VerificaLogin(User, Password); +end; + +procedure TUsuariosController.ComprobarUsuarioInicial; +begin + // Para que haya un usuario siempre en la BD + if not FUserControl.ExisteUsuario('admin') then + FUserControl.AddUser('admin', '1', 'Administrador', 'admin@correo.net', 0, 0 , 30, True); +end; + +constructor TUsuariosController.Create; +begin + AsignarDataModule; + FUserControl := TUserControl.Create(nil); + InicializarUserControl; + ComprobarUsuarioInicial; +end; + +function TUsuariosController.CreateEditor(const AName: String; const IID: TGUID; out Intf): Boolean; +begin + Result := Supports(EditorRegistry.CreateEditor(AName), IID, Intf); +end; + +destructor TUsuariosController.Destroy; +begin + FreeAndNIL(FUserControl); + FDataModule := NIL; + + inherited; +end; + +function TUsuariosController.GetCurrentUser: TUCCurrentUser; +begin + Result := FUserControl.CurrentUser; +end; + +function TUsuariosController.GetMaxIntentosLogin: Integer; +begin + Result := FUserControl.Login.MaxLoginAttempts; +end; + +procedure TUsuariosController.InicializarUserControl; +begin + with FUserControl do + begin + ApplicationID := AppFactuGES.AppName; + AutoStart := False; + Criptografia := cMD5; + CheckValidationKey := True; + Login.MaxLoginAttempts := 3; + end; + FDataModule.InicializarUserControl(FUserControl); +end; + +procedure TUsuariosController.Logoff; +begin + FUserControl.Logoff; +end; + +procedure TUsuariosController.RecibirAviso(ASujeto: ISujeto; ADataTable: IDAStronglyTypedDataTable); +begin + inherited; +// +end; + +procedure TUsuariosController.SetMaxIntentosLogin(const Value: Integer); +begin + FUserControl.Login.MaxLoginAttempts := Value; +end; + +procedure TUsuariosController.ShowChangePassword; +begin + FUserControl.ShowChangePassword; +end; + +procedure TUsuariosController.ShowLogManager; +begin + FUserControl.ShowLogManager; +end; + +procedure TUsuariosController.ShowProfileManager; +begin + FUserControl.ShowProfileManager; +end; + +procedure TUsuariosController.ShowUserManager; +begin + FUserControl.ShowUserManager; +end; + +function TUsuariosController.StartLogin : Boolean; +var + AEditor : IEditorLogin; +begin + Result := False; + AEditor := NIL; + ShowHourglassCursor; + try + CreateEditor('EditorLogin', IEditorLogin, AEditor); + if Assigned(AEditor) then + with AEditor do + begin + Controller := Self; + Result := (AEditor.ShowModal = mrOk); + Release; + end; + finally + AEditor := NIL; + HideHourglassCursor; + end; +end; + +end. diff --git a/Source/ApplicationBase/Usuarios/Data/uDataModuleUsuarios.dfm b/Source/ApplicationBase/Usuarios/Data/uDataModuleUsuarios.dfm new file mode 100644 index 00000000..1b57dc5b --- /dev/null +++ b/Source/ApplicationBase/Usuarios/Data/uDataModuleUsuarios.dfm @@ -0,0 +1,264 @@ +inherited DataModuleUsuarios: TDataModuleUsuarios + Height = 179 + object srvUsuarios: TRORemoteService + Message = dmConexion.ROMessage + Channel = dmConexion.ROChannel + ServiceName = 'srvUsuarios' + Left = 40 + Top = 72 + end + object UCSettingsSpanish: TUCSettings + AppMessages.MsgsForm_BtNew = '&Nuevo Mensaje' + AppMessages.MsgsForm_BtReplay = '&Responder' + AppMessages.MsgsForm_BtForward = '&Reenviar' + AppMessages.MsgsForm_BtDelete = '&Borrar' + AppMessages.MsgsForm_BtClose = '&Cerrar' + AppMessages.MsgsForm_WindowCaption = 'Mensajes de Sistema' + AppMessages.MsgsForm_ColFrom = 'Remitente' + AppMessages.MsgsForm_ColSubject = 'Asunto' + AppMessages.MsgsForm_ColDate = 'Fecha' + AppMessages.MsgsForm_PromptDelete = #191'Est'#225' seguro de eliminar los mensajes seleccionados?' + AppMessages.MsgsForm_PromptDelete_WindowCaption = 'Eliminar mensajes' + AppMessages.MsgsForm_NoMessagesSelected = '!Ning'#250'n mensaje seleccionado'#161 + AppMessages.MsgsForm_NoMessagesSelected_WindowCaption = 'Informaci'#243'n' + AppMessages.MsgRec_BtClose = '&Cerrar' + AppMessages.MsgRec_WindowCaption = 'Mensaje' + AppMessages.MsgRec_Title = 'Mensaje Recibido' + AppMessages.MsgRec_LabelFrom = 'De:' + AppMessages.MsgRec_LabelDate = 'Fecha' + AppMessages.MsgRec_LabelSubject = 'Asunto' + AppMessages.MsgRec_LabelMessage = 'Mensaje' + AppMessages.MsgSend_BtSend = '&Enviar' + AppMessages.MsgSend_BtCancel = '&Cancelar' + AppMessages.MsgSend_WindowCaption = 'Mensaje' + AppMessages.MsgSend_Title = 'Enviar Nuevo Mensaje' + AppMessages.MsgSend_GroupTo = 'Para:' + AppMessages.MsgSend_RadioUser = 'Usuario:' + AppMessages.MsgSend_RadioAll = 'Todos' + AppMessages.MsgSend_GroupMessage = 'Mensaje' + AppMessages.MsgSend_LabelSubject = 'Asunto' + AppMessages.MsgSend_LabelMessageText = 'Texto del mensaje' + CommonMessages.AutoLogonError = + 'Error de Ingreso Autom'#225'tico!'#13#10'Especifique un Usuario y Contrase'#241 + + 'a V'#225'lidos.' + CommonMessages.ChangePasswordError.InvalidCurrentPassword = #161'Contrase'#241'a Actual Incorrecta!' + CommonMessages.ChangePasswordError.NewPasswordError = + 'Los campos Contrase'#241'a Nueva y Confirme Contrase'#241'a deben ser igua' + + 'les' + CommonMessages.ChangePasswordError.NewEqualCurrent = 'Nueva Contrase'#241'a y Contrase'#241'a Actual deben ser diferentes' + CommonMessages.ChangePasswordError.PasswordRequired = #161'La Contrase'#241'a es obligatoria!' + CommonMessages.ChangePasswordError.MinPasswordLength = 'La Contrase'#241'a debe tener un m'#237'nimo de %d caracteres' + CommonMessages.ChangePasswordError.InvalidNewPassword = #161'Prohibido utilizar contrase'#241'as NO Seguras!' + CommonMessages.InvalidLogin = 'Usuario y/o Contrase'#241'a Incorrectos!' + CommonMessages.InitialMessage.Strings = ( + 'ATENCION! Conecci'#243'n Inicial:' + '' + 'Usuario : :user' + 'Contrase'#241'a : :password' + '' + 'Defina permisos para este usuario') + CommonMessages.MaxLoginAttemptsError = '%d Intentos de conecci'#243'n inv'#225'lidos !' + CommonMessages.PasswordChanged = #161'Se ha cambiado la Contrase'#241'a con '#233'xito!' + CommonMessages.BlankPassword = 'Contrase'#241'a vac'#237'a para el Usuario %s' + CommonMessages.UsuarioExiste = 'O Usu'#225'rio "%s" j'#225' est'#225' cadastrado no sistema !!' + CommonMessages.PasswordExpired = 'Aten'#231#227'o, sua senha expirou, favor troca-la' + CommonMessages.ForcaTrocaSenha = 'Mudan'#231'a de senha obrigat'#243'ria' + Login.WindowCaption = 'Conecci'#243'n' + Login.LabelUser = 'Usuario: ' + Login.LabelPassword = 'Contrase'#241'a:' + Login.BtOk = 'Aceptar' + Login.BtCancel = '&Cancelar' + Login.LeftImage.Data = { + 07544269746D617016090000424D160900000000000036040000280000003200 + 0000180000000100080000000000E00400000000000000000000000100000000 + 000000000000000080000080000000808000800000008000800080800000C0C0 + C000C0DCC000F0CAA6000020400000206000002080000020A0000020C0000020 + E00000400000004020000040400000406000004080000040A0000040C0000040 + E00000600000006020000060400000606000006080000060A0000060C0000060 + E00000800000008020000080400000806000008080000080A0000080C0000080 + E00000A0000000A0200000A0400000A0600000A0800000A0A00000A0C00000A0 + E00000C0000000C0200000C0400000C0600000C0800000C0A00000C0C00000C0 + E00000E0000000E0200000E0400000E0600000E0800000E0A00000E0C00000E0 + E00040000000400020004000400040006000400080004000A0004000C0004000 + E00040200000402020004020400040206000402080004020A0004020C0004020 + E00040400000404020004040400040406000404080004040A0004040C0004040 + E00040600000406020004060400040606000406080004060A0004060C0004060 + E00040800000408020004080400040806000408080004080A0004080C0004080 + E00040A0000040A0200040A0400040A0600040A0800040A0A00040A0C00040A0 + E00040C0000040C0200040C0400040C0600040C0800040C0A00040C0C00040C0 + E00040E0000040E0200040E0400040E0600040E0800040E0A00040E0C00040E0 + E00080000000800020008000400080006000800080008000A0008000C0008000 + E00080200000802020008020400080206000802080008020A0008020C0008020 + E00080400000804020008040400080406000804080008040A0008040C0008040 + E00080600000806020008060400080606000806080008060A0008060C0008060 + E00080800000808020008080400080806000808080008080A0008080C0008080 + E00080A0000080A0200080A0400080A0600080A0800080A0A00080A0C00080A0 + E00080C0000080C0200080C0400080C0600080C0800080C0A00080C0C00080C0 + E00080E0000080E0200080E0400080E0600080E0800080E0A00080E0C00080E0 + E000C0000000C0002000C0004000C0006000C0008000C000A000C000C000C000 + E000C0200000C0202000C0204000C0206000C0208000C020A000C020C000C020 + E000C0400000C0402000C0404000C0406000C0408000C040A000C040C000C040 + E000C0600000C0602000C0604000C0606000C0608000C060A000C060C000C060 + E000C0800000C0802000C0804000C0806000C0808000C080A000C080C000C080 + E000C0A00000C0A02000C0A04000C0A06000C0A08000C0A0A000C0A0C000C0A0 + E000C0C00000C0C02000C0C04000C0C06000C0C08000C0C0A000F0FBFF00A4A0 + A000808080000000FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFF + FF00FDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFD + FDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFD0000FDFDFDFDFDFDFDFDFDFD + FDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFD525252525252525252525252 + 5252FDFDFDFDFDFD0000FDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFD + FDFDFDFDFDFDFDAFB75E5E5E66666767676F6F6F6FB752FDFDFDFDFD0000FDFD + FDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDAFBF6FBFBF + BFBFBFBFBFBFBFBFBFB752FDFDFDFDFD0000FDFDFDFDFDFDFDFDFDFDFDFDFDFD + FDFDFDFDFDFDFDFDFDFDFDFDFDFDFDAFB76F676F6FB7B7B7B7B7776F5EB752FD + FDFDFDFD0000FDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFD + FDFDFDAFBF6FBFBFBFBFBFBFBFBFBFBFBFB752FDFDFDFDFD0000FDFDFDFDFDFD + FDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDAFB76F676F6F6FB7B7 + B7B7776F5EB752FDFDFDFDFD0000FDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFD + FDFDFDFDFDFDFDFDFDFDFDAFBF6FBFBFBFBFBFBFBFBFBFBFBFBF52FDFDFDFDFD + 0000FDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDAF + B76767676F6F6FB7B7B7776F5EB752FDFDFDFDFD0000FDFDFDFDFDFDFDFDFDFD + FDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDAFBF6FBFBFBFBFBFBFBFBFBFBF + BFBF52FDFDFDFDFD0000FDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFD + FDFDFDFDFDFDFDAFB76767676F6F6F6FB7B7776F5EB752FDFDFDFDFD0000FDFD + FDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDAFBF6FBFBF + BFBFBFBFBFBFBFBFBFBF52FDFDFDFDFD0000FDFDFDFDFDFDFDFDFDFDFDFDFDFD + FDFDFDFDFDFDFDFDFDFDFDFDFDFDFDAFBFB7AFAFB7B7B7B7BFBFBFBFB7B752FD + FDFDFDFD0000FDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFD + FDFDFDFDAFB76F675E5E5E5E5E5E676FB7A5FDFDFDFDFDFD0000FDFDFDFDFDFD + FDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDF7F79BFDFDFDFD + FDFDA4F7A3FDFDFDFDFDFDFD0000FDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFD + FDFDFDFDFDFDFDFDFDFDFDFDFDF7F79BFDFDFDFDFDFDA407A3FDFDFDFDFDFDFD + 0000FDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFD + FDF7F79BFDFDFDFDFDFDA407A3FDFDFDFDFDFDFD0000FDFDFDFDFDFDFDFDFDFD + FDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDF7F7A4FDFDFDFDFDFDF707 + A3FDFDFDFDFDFDFD0000FDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFD + FDFDFDFDFDFDFDFDFDF707A49AFDFDFDFDA30707A3FDFDFDFDFDFDFD0000FDFD + FDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDF7F6A4 + A49B9A9AA3A407079AFDFDFDFDFDFDFD0000FDFDFDFDFDFDFDFDFDFDFDFDFDFD + FDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDF7F6F7F7A4A4F70707A3FDFDFDFD + FDFDFDFD0000FDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFD + FDFDFDFDFDFDFDF7F6F6F6F6F607A3FDFDFDFDFDFDFDFDFD0000FDFDFDFDFDFD + FDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDF7A3A3A3 + A3A3FDFDFDFDFDFDFDFDFDFD0000FDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFD + FDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFD + 0000} + Login.LabelTentativa = 'Tentativa : ' + Login.LabelTentativas = 'M'#225'ximo de Tentativas : ' + Log.WindowCaption = 'Seguridad' + Log.LabelDescription = 'Visor de Eventos' + Log.LabelUser = 'Usuario:' + Log.LabelDate = 'Fecha:' + Log.LabelLevel = 'Nivel M'#237'nimo: ' + Log.ColAppID = 'AppID' + Log.ColLevel = 'Nivel' + Log.ColMessage = 'Mensaje' + Log.ColUser = 'Usuario' + Log.ColDate = 'Fecha' + Log.BtFilter = '&Aplicar Filtro' + Log.BtDelete = '&Borrar Bit'#225'cora' + Log.BtClose = '&Cerrar' + Log.PromptDelete = + #191'Est'#225' seguro de Eliminar todos todos los registros de Bit'#225'cora s' + + 'eleccionados?' + Log.PromptDelete_WindowCaption = 'Confirmaci'#243'n' + Log.OptionUserAll = 'Todos' + Log.OptionLevelLow = 'Bajo' + Log.OptionLevelNormal = 'Normal' + Log.OptionLevelHigh = 'Alto' + Log.OptionLevelCritic = 'Cr'#237'tico' + Log.DeletePerformed = + 'Borrado de registros de bit'#225'cora realizado: Usuario = "%s" | Fec' + + 'ha = %s a %s | Nivel <= %s' + UsersForm.WindowCaption = 'Seguridad' + UsersForm.LabelDescription = 'Administraci'#243'n de Usuarios' + UsersForm.ColName = 'Nombre' + UsersForm.ColLogin = 'Usuario' + UsersForm.ColEmail = 'Correo' + UsersForm.BtAdd = '&Nuevo' + UsersForm.BtChange = '&Editar' + UsersForm.BtDelete = 'E&liminar' + UsersForm.PromptDelete = #191'Est'#225' seguro de Eliminar al Usuario "%s"?' + UsersForm.PromptDelete_WindowCaption = 'Eliminar usuario' + UsersForm.BtRights = '&Accesos' + UsersForm.BtPassword = 'C&ontrase'#241'a' + UsersForm.BtClose = '&Cerrar' + AddChangeUser.WindowCaption = 'Administraci'#243'n de Usuarios' + AddChangeUser.LabelAdd = 'Nuevo Usuario' + AddChangeUser.LabelChange = 'Editar Usuario' + AddChangeUser.LabelName = 'Nombre:' + AddChangeUser.LabelLogin = 'Usuario: ' + AddChangeUser.LabelEmail = 'Correo: ' + AddChangeUser.LabelPerfil = 'Perfil: ' + AddChangeUser.CheckPrivileged = 'Usuario Privilegiado' + AddChangeUser.BtSave = '&Guardar' + AddChangeUser.BtCancel = 'Cancelar' + AddChangeUser.CheckExpira = 'Senha do usu'#225'rio n'#227'o expira' + AddChangeUser.Day = 'Dias' + AddChangeUser.ExpiredIn = 'Expira em' + AddChangeProfile.WindowCaption = 'Perfiles de Usuarios' + AddChangeProfile.LabelAdd = 'Nuevo Perfil' + AddChangeProfile.LabelChange = 'Editar Perfil' + AddChangeProfile.LabelName = 'Descripci'#243'n: ' + AddChangeProfile.BtSave = '&Guardar' + AddChangeProfile.BtCancel = 'Cancelar' + UsersProfile.WindowCaption = 'Seguridad' + UsersProfile.LabelDescription = 'Perfil de Usuario' + UsersProfile.ColProfile = 'Perfil' + UsersProfile.BtAdd = '&Nuevo' + UsersProfile.BtChange = '&Editar' + UsersProfile.BtDelete = 'E&liminar' + UsersProfile.BtRights = '&Accesos' + UsersProfile.PromptDelete = + 'Existe(n) usuario(s) con el Perfil "%s". '#191'Est'#225' seguro de elimina' + + 'r el perfil?' + UsersProfile.PromptDelete_WindowCaption = 'Eliminar perfil' + UsersProfile.BtClose = '&Cerrar' + Rights.WindowCaption = 'Seguridad' + Rights.LabelUser = 'Permisos de Usuario : ' + Rights.LabelProfile = 'Permisos del Perfil : ' + Rights.PageMenu = 'Elementos del Men'#250 + Rights.PageActions = 'Acciones' + Rights.PageControls = 'Controles' + Rights.BtUnlock = '&Permitir' + Rights.BtLock = '&Bloquear' + Rights.BtSave = '&Guardar' + Rights.BtCancel = '&Cancelar' + ChangePassword.WindowCaption = 'Seguridad' + ChangePassword.LabelDescription = 'Cambiar Contrase'#241'a' + ChangePassword.LabelCurrentPassword = 'Contrase'#241'a Actual:' + ChangePassword.LabelNewPassword = 'Nueva Contrase'#241'a:' + ChangePassword.LabelConfirm = 'Confirme Contrase'#241'a:' + ChangePassword.BtSave = '&Guardar' + ChangePassword.BtCancel = 'Cancelar' + ResetPassword.WindowCaption = 'Ingrese Contrase'#241'a de Usuario: "%s"' + ResetPassword.LabelPassword = 'Contrase'#241'a: ' + History.Evento_Insert = 'Nuevo' + History.Evento_Delete = 'Eliminar' + History.Evento_Edit = 'Editar' + History.Evento_NewRecord = 'Nuevo registro' + History.Hist_All = 'Todos' + History.Msg_LimpHistorico = 'Excluir el contenido entero del hist'#243'rico ?' + History.Msg_MensConfirma = 'Confirme' + History.Msg_LogEmptyHistory = 'El usuario %s borra la historia de mesa en %s ' + History.LabelDescricao = 'Hist'#243'rico de tabelas' + History.LabelUser = 'Usuario' + History.LabelForm = 'Formul'#225'rio' + History.LabelEvento = 'Evento' + History.LabelTabela = 'Tabela' + History.LabelDataEvento = 'Data' + History.LabelHoraEvento = 'Hora' + History.Msg_NewRecord = '%s Inserte el nuevo registro' + History.Hist_MsgExceptPropr = 'Por favor informe la propiedad %s' + History.Hist_BtnFiltro = '&Aplicar Filtro' + History.Hist_BtnExcluir = '&Borrar Hist'#243'rico' + History.Hist_BtnFechar = '&Cerrar' + TypeFieldsDB.Type_VarChar = 'VarChar' + TypeFieldsDB.Type_Char = 'Char' + TypeFieldsDB.Type_Int = 'Int' + TypeFieldsDB.Type_MemoField = 'BLOB SUB_TYPE 1 SEGMENT SIZE 1024' + Language = ucSpanish + Left = 40 + Top = 16 + end +end diff --git a/Source/ApplicationBase/Usuarios/Data/uDataModuleUsuarios.pas b/Source/ApplicationBase/Usuarios/Data/uDataModuleUsuarios.pas new file mode 100644 index 00000000..70be30ee --- /dev/null +++ b/Source/ApplicationBase/Usuarios/Data/uDataModuleUsuarios.pas @@ -0,0 +1,364 @@ +unit uDataModuleUsuarios; + +interface + +uses + SysUtils, Classes, DB, DBClient, uDADataTable, + FactuGES_Intf, uIntegerListUtils, uBizEmpresas, + UCBase, UCDataConnector, uUCROConn, uDARemoteDataAdapter, + uDARemoteCommand, uROClient, uRORemoteService, uDADataStreamer, + uDABin2DataStreamer, uDAScriptingProvider, uIDataModuleUsuarios, UCSettings, + uDataModuleBase; + +type + TDataModuleUsuarios = class(TDataModuleBase, IDataModuleUsuarios) + srvUsuarios: TRORemoteService; + UCSettingsSpanish: TUCSettings; + private + procedure InicializarCamposUserControl(AUserControl: TUserControl); + procedure InicializarSettingsUserControl(AUserControl: TUserControl); + function CreateConnectorInstance : TUCDataConnector; + public + procedure InicializarUserControl (AUserControl : TUserControl); + end; + + +implementation + +{$R *.DFM} + +uses + Forms, Controls, uDataTableUtils, uDataModuleConexion, + Dialogs, Windows, uEmpresasController, + schUsuariosClient_Intf; + +{ TDAClientDataModule1 } + +function TDataModuleUsuarios.CreateConnectorInstance: TUCDataConnector; +begin + // El propietario (Owner) es Application para que se encarge de la + // liberacin del conector que estamos creando. + Result := TUCROConn.Create(Application); + with TUCROConn(Result) do + begin + ROServiceName := srvUsuarios.ServiceName; + ROChannel := dmConexion.ROChannel; + ROMessage := dmConexion.ROMessage; + end; +end; + +procedure TDataModuleUsuarios.InicializarCamposUserControl( + AUserControl: TUserControl); +begin + if not Assigned(AUserControl) then + raise Exception.Create('UserControl no asignado (InicializarUserControl)'); + + with AUserControl do + begin + DataConnector := CreateConnectorInstance; + + with TableUsers do + begin + TableName := nme_USUARIOS; + FieldUserID := fld_USUARIOSID; + FieldUserName := fld_USUARIOSUSERNAME; + FieldLogin := fld_USUARIOSLOGIN; + FieldPassword := fld_USUARIOSPASS; + FieldEmail := fld_USUARIOSEMAIL; + FieldPrivileged := fld_USUARIOSPRIVILEGED; + FieldTypeRec := fld_USUARIOSTIPO; + FieldProfile := fld_USUARIOSID_PERFIL; + FieldUserExpired := fld_USUARIOSBLOQUEADO; + FieldDateExpired := fld_USUARIOSPASSEXPIRED; + FieldUserDaysSun := fld_USUARIOSUSERDAYSSUN; + FieldKey := fld_USUARIOSCHECKSUM; + end; + + with TableRights do + begin + TableName := nme_PERMISOS; + FieldUserID := fld_PERMISOSID_USUARIO; + FieldModule := fld_PERMISOSMODULO; + FieldComponentName := fld_PERMISOSNOMBRECOMP; + FieldFormName := fld_PERMISOSEXNOMBREFORM; + FieldKey := fld_PERMISOSCHECKSUM; + end; + + with TableUsersLogged do + begin + TableName := nme_USUARIOS_LOGON; + FieldLogonID := fld_USUARIOS_LOGONLOGONID; + FieldUserID := fld_USUARIOS_LOGONID_USUARIO; + FieldApplicationID := fld_USUARIOS_LOGONAPLICACION; + FieldMachineName := fld_USUARIOS_LOGONEQUIPO; + FieldData := fld_USUARIOS_LOGONDATA; + end; + + with TableHistory do + begin + TableName := nme_USUARIOS_EVENTOS; + FieldApplicationID := fld_USUARIOS_EVENTOSAPLICACION; + FieldUserID := fld_USUARIOS_EVENTOSID_USUARIO; + FieldEventDate := fld_USUARIOS_EVENTOSFECHA; + FieldEventTime := fld_USUARIOS_EVENTOSHORA; + FieldForm := fld_USUARIOS_EVENTOSFORM; + FieldCaptionForm := fld_USUARIOS_EVENTOSTITULO_FORM; + FieldEvent := fld_USUARIOS_EVENTOSEVENTO; + FieldObs := fld_USUARIOS_EVENTOSNOTAS; + FieldTableName := fld_USUARIOS_EVENTOSTNAME; + end; + + end; +end; + +procedure TDataModuleUsuarios.InicializarSettingsUserControl( + AUserControl: TUserControl); +var + SourceSettings : TUCSettings; +begin + SourceSettings := UCSettingsSpanish; + + with AUserControl do + begin + with UserSettings.CommonMessages do + begin + BlankPassword := SourceSettings.CommonMessages.BlankPassword; + PasswordChanged := SourceSettings.CommonMessages.PasswordChanged; + InitialMessage.Text := SourceSettings.CommonMessages.InitialMessage.Text; + MaxLoginAttemptsError := SourceSettings.CommonMessages.MaxLoginAttemptsError; + InvalidLogin := SourceSettings.CommonMessages.InvalidLogin; + AutoLogonError := SourceSettings.CommonMessages.AutoLogonError; + UsuarioExiste := SourceSettings.CommonMessages.UsuarioExiste; // Luiz Benevenuto 20/04/06 + PasswordExpired := SourceSettings.CommonMessages.PasswordExpired; // vicente barros leonel + ForcaTrocaSenha := SourceSettings.CommonMessages.ForcaTrocaSenha; + end; + + with UserSettings.Login do + begin + BtCancel := SourceSettings.Login.BtCancel; + BtOK := SourceSettings.Login.BtOK; + LabelPassword := SourceSettings.Login.LabelPassword; + LabelUser := SourceSettings.Login.LabelUser; + WindowCaption := SourceSettings.Login.WindowCaption; + LabelTentativa := SourceSettings.Login.LabelTentativa; + LabelTentativas := SourceSettings.Login.LabelTentativas; + + if Assigned(SourceSettings.Login.LeftImage.Bitmap) then + LeftImage.Bitmap := SourceSettings.Login.LeftImage.Bitmap + else + LeftImage.Bitmap := nil; + + if Assigned(SourceSettings.Login.TopImage.Bitmap) then + TopImage.Bitmap := SourceSettings.Login.TopImage.Bitmap + else + TopImage.Bitmap := nil; + + if Assigned(SourceSettings.Login.BottomImage.Bitmap) then + BottomImage.Bitmap := SourceSettings.Login.BottomImage.Bitmap + else + BottomImage.Bitmap := nil; + end; + + with UserSettings.UsersForm do + begin + WindowCaption := SourceSettings.UsersForm.WindowCaption; + LabelDescription := SourceSettings.UsersForm.LabelDescription; + ColName := SourceSettings.UsersForm.ColName; + ColLogin := SourceSettings.UsersForm.ColLogin; + ColEmail := SourceSettings.UsersForm.ColEmail; + BtAdd := SourceSettings.UsersForm.BtAdd; + BtChange := SourceSettings.UsersForm.BtChange; + BtDelete := SourceSettings.UsersForm.BtDelete; + BtRights := SourceSettings.UsersForm.BtRights; + BtPassword := SourceSettings.UsersForm.BtPassword; + BtClose := SourceSettings.UsersForm.BtClose; + PromptDelete := SourceSettings.UsersForm.PromptDelete; + PromptDelete_WindowCaption := SourceSettings.UsersForm.PromptDelete_WindowCaption; //added by fduenas + end; + + with UserSettings.UsersProfile do + begin + WindowCaption := SourceSettings.UsersProfile.WindowCaption; + LabelDescription := SourceSettings.UsersProfile.LabelDescription; + ColProfile := SourceSettings.UsersProfile.ColProfile; + BtAdd := SourceSettings.UsersProfile.BtAdd; + BtChange := SourceSettings.UsersProfile.BtChange; + BtDelete := SourceSettings.UsersProfile.BtDelete; + BtRights := SourceSettings.UsersProfile.BtRights; //added by fduenas + BtClose := SourceSettings.UsersProfile.BtClose; + PromptDelete := SourceSettings.UsersProfile.PromptDelete; + PromptDelete_WindowCaption := SourceSettings.UsersProfile.PromptDelete_WindowCaption; //added by fduenas + end; + + with UserSettings.AddChangeUser do + begin + WindowCaption := SourceSettings.AddChangeUser.WindowCaption; + LabelAdd := SourceSettings.AddChangeUser.LabelAdd; + LabelChange := SourceSettings.AddChangeUser.LabelChange; + LabelName := SourceSettings.AddChangeUser.LabelName; + LabelLogin := SourceSettings.AddChangeUser.LabelLogin; + LabelEmail := SourceSettings.AddChangeUser.LabelEmail; + CheckPrivileged := SourceSettings.AddChangeUser.CheckPrivileged; + BtSave := SourceSettings.AddChangeUser.BtSave; + BtCancel := SourceSettings.AddChangeUser.BtCancel; + CheckExpira := SourceSettings.AddChangeUser.CheckExpira; + Day := SourceSettings.AddChangeUser.Day; + ExpiredIn := SourceSettings.AddChangeUser.ExpiredIn; + end; + + with UserSettings.AddChangeProfile do + begin + WindowCaption := SourceSettings.AddChangeProfile.WindowCaption; + LabelAdd := SourceSettings.AddChangeProfile.LabelAdd; + LabelChange := SourceSettings.AddChangeProfile.LabelChange; + LabelName := SourceSettings.AddChangeProfile.LabelName; + BtSave := SourceSettings.AddChangeProfile.BtSave; + BtCancel := SourceSettings.AddChangeProfile.BtCancel; + end; + + with UserSettings.Rights do + begin + WindowCaption := SourceSettings.Rights.WindowCaption; + LabelUser := SourceSettings.Rights.LabelUser; + LabelProfile := SourceSettings.Rights.LabelProfile; + PageMenu := SourceSettings.Rights.PageMenu; + PageActions := SourceSettings.Rights.PageActions; + PageControls := SourceSettings.Rights.PageControls; + BtUnlock := SourceSettings.Rights.BtUnlock; + BtLock := SourceSettings.Rights.BtLock; + BtSave := SourceSettings.Rights.BtSave; + BtCancel := SourceSettings.Rights.BtCancel; + end; + + with UserSettings.ChangePassword do + begin + WindowCaption := SourceSettings.ChangePassword.WindowCaption; + LabelDescription := SourceSettings.ChangePassword.LabelDescription; + LabelCurrentPassword := SourceSettings.ChangePassword.LabelCurrentPassword; + LabelNewPassword := SourceSettings.ChangePassword.LabelNewPassword; + LabelConfirm := SourceSettings.ChangePassword.LabelConfirm; + BtSave := SourceSettings.ChangePassword.BtSave; + BtCancel := SourceSettings.ChangePassword.BtCancel; + end; + + with UserSettings.CommonMessages.ChangePasswordError do + begin + InvalidCurrentPassword := SourceSettings.CommonMessages.ChangePasswordError.InvalidCurrentPassword; + NewPasswordError := SourceSettings.CommonMessages.ChangePasswordError.NewPasswordError; + NewEqualCurrent := SourceSettings.CommonMessages.ChangePasswordError.NewEqualCurrent; + PasswordRequired := SourceSettings.CommonMessages.ChangePasswordError.PasswordRequired; + MinPasswordLength := SourceSettings.CommonMessages.ChangePasswordError.MinPasswordLength; + InvalidNewPassword := SourceSettings.CommonMessages.ChangePasswordError.InvalidNewPassword; + end; + + with UserSettings.ResetPassword do + begin + WindowCaption := SourceSettings.ResetPassword.WindowCaption; + LabelPassword := SourceSettings.ResetPassword.LabelPassword; + end; + + with UserSettings.Log do + begin + WindowCaption := SourceSettings.Log.WindowCaption; + LabelDescription := SourceSettings.Log.LabelDescription; + LabelUser := SourceSettings.Log.LabelUser; + LabelDate := SourceSettings.Log.LabelDate; + LabelLevel := SourceSettings.Log.LabelLevel; + ColLevel := SourceSettings.Log.ColLevel; + ColMessage := SourceSettings.Log.ColMessage; + ColUser := SourceSettings.Log.ColUser; + ColDate := SourceSettings.Log.ColDate; + BtFilter := SourceSettings.Log.BtFilter; + BtDelete := SourceSettings.Log.BtDelete; + BtClose := SourceSettings.Log.BtClose; + PromptDelete := SourceSettings.Log.PromptDelete; + PromptDelete_WindowCaption := SourceSettings.Log.PromptDelete_WindowCaption; //added by fduenas + OptionUserAll := SourceSettings.Log.OptionUserAll; //added by fduenas + OptionLevelLow := SourceSettings.Log.OptionLevelLow; //added by fduenas + OptionLevelNormal := SourceSettings.Log.OptionLevelNormal; //added by fduenas + OptionLevelHigh := SourceSettings.Log.OptionLevelHigh; //added by fduenas + OptionLevelCritic := SourceSettings.Log.OptionLevelCritic; //added by fduenas + DeletePerformed := SourceSettings.Log.DeletePerformed; //added by fduenas + end; + + with UserSettings.AppMessages do + begin + MsgsForm_BtNew := SourceSettings.AppMessages.MsgsForm_BtNew; + MsgsForm_BtReplay := SourceSettings.AppMessages.MsgsForm_BtReplay; + MsgsForm_BtForward := SourceSettings.AppMessages.MsgsForm_BtForward; + MsgsForm_BtDelete := SourceSettings.AppMessages.MsgsForm_BtDelete; + MsgsForm_BtClose := SourceSettings.AppMessages.MsgsForm_BtClose; //added by fduenas + MsgsForm_WindowCaption := SourceSettings.AppMessages.MsgsForm_WindowCaption; + MsgsForm_ColFrom := SourceSettings.AppMessages.MsgsForm_ColFrom; + MsgsForm_ColSubject := SourceSettings.AppMessages.MsgsForm_ColSubject; + MsgsForm_ColDate := SourceSettings.AppMessages.MsgsForm_ColDate; + MsgsForm_PromptDelete := SourceSettings.AppMessages.MsgsForm_PromptDelete; + MsgsForm_PromptDelete_WindowCaption := SourceSettings.AppMessages.MsgsForm_PromptDelete_WindowCaption; //added by fduenas + MsgsForm_NoMessagesSelected := SourceSettings.AppMessages.MsgsForm_NoMessagesSelected; //added by fduenas + MsgsForm_NoMessagesSelected_WindowCaption := SourceSettings.AppMessages.MsgsForm_NoMessagesSelected_WindowCaption; //added by fduenas + + MsgRec_BtClose := SourceSettings.AppMessages.MsgRec_BtClose; + MsgRec_WindowCaption := SourceSettings.AppMessages.MsgRec_WindowCaption; + MsgRec_Title := SourceSettings.AppMessages.MsgRec_Title; + MsgRec_LabelFrom := SourceSettings.AppMessages.MsgRec_LabelFrom; + MsgRec_LabelDate := SourceSettings.AppMessages.MsgRec_LabelDate; + MsgRec_LabelSubject := SourceSettings.AppMessages.MsgRec_LabelSubject; + MsgRec_LabelMessage := SourceSettings.AppMessages.MsgRec_LabelMessage; + MsgSend_BtSend := SourceSettings.AppMessages.MsgSend_BtSend; + MsgSend_BtCancel := SourceSettings.AppMessages.MsgSend_BtCancel; + MsgSend_WindowCaption := SourceSettings.AppMessages.MsgSend_WindowCaption; + MsgSend_Title := SourceSettings.AppMessages.MsgSend_Title; + MsgSend_GroupTo := SourceSettings.AppMessages.MsgSend_GroupTo; + MsgSend_RadioUser := SourceSettings.AppMessages.MsgSend_RadioUser; + MsgSend_RadioAll := SourceSettings.AppMessages.MsgSend_RadioAll; + MsgSend_GroupMessage := SourceSettings.AppMessages.MsgSend_GroupMessage; + MsgSend_LabelSubject := SourceSettings.AppMessages.MsgSend_LabelSubject; //added by fduenas + MsgSend_LabelMessageText := SourceSettings.AppMessages.MsgSend_LabelMessageText; //added by fduenas + end; + + With UserSettings.History do + Begin + Evento_edit := SourceSettings.History.Evento_edit; + Evento_NewRecord := SourceSettings.History.Evento_NewRecord; + Evento_Insert := SourceSettings.History.Evento_Insert; + Evento_delete := SourceSettings.History.Evento_Delete; + LabelTabela := SourceSettings.History.LabelTabela; + Msg_LogEmptyHistory := SourceSettings.History.Msg_LogEmptyHistory; + Msg_MensConfirma := SourceSettings.History.Msg_MensConfirma; + LabelDescricao := SourceSettings.History.LabelDescricao; + Hist_BtnExcluir := SourceSettings.History.Hist_BtnExcluir; + Hist_BtnFiltro := SourceSettings.History.Hist_BtnFiltro; + LabelForm := SourceSettings.History.LabelForm; + Hist_BtnFechar := SourceSettings.History.Hist_BtnFechar; + LabelDataEvento := SourceSettings.History.LabelDataEvento; + LabelEvento := SourceSettings.History.LabelEvento; + Msg_NewRecord := SourceSettings.History.Msg_NewRecord; + Hist_All := SourceSettings.History.Hist_All; + Msg_LimpHistorico := SourceSettings.History.Msg_LimpHistorico; + LabelHoraEvento := SourceSettings.History.LabelHoraEvento; + LabelUser := SourceSettings.History.LabelUser; + Hist_MsgExceptPropr := SourceSettings.History.Hist_MsgExceptPropr; + End; + + with UserSettings.TypeFieldsDB do + Begin + Type_VarChar := SourceSettings.TypeFieldsDB.Type_VarChar; + Type_Char := SourceSettings.TypeFieldsDB.Type_Char; + Type_Int := SourceSettings.TypeFieldsDB.Type_Int; + Type_MemoField := SourceSettings.TypeFieldsDB.Type_MemoField; + end; + + UserSettings.WindowsPosition := SourceSettings.WindowsPosition; + end; +end; + +procedure TDataModuleUsuarios.InicializarUserControl(AUserControl: TUserControl); +begin + if Assigned(AUserControl) then + begin + InicializarCamposUserControl(AUserControl); + InicializarSettingsUserControl(AUserControl); + end; +end; + +end. diff --git a/Source/ApplicationBase/Usuarios/Data/uUCROConn.pas b/Source/ApplicationBase/Usuarios/Data/uUCROConn.pas new file mode 100644 index 00000000..c1ed45ba --- /dev/null +++ b/Source/ApplicationBase/Usuarios/Data/uUCROConn.pas @@ -0,0 +1,220 @@ +{----------------------------------------------------------------------------- + Unit Name: UCMidasConn + Author : Luiz Benevenuto + Date : 31/07/2005 + Purpose : Midas Suporte ( DataSnap ) + E-mail : luiz@siffra.com + URL : www.siffra.com + UC : www.usercontrol.com.br + Forum : http://www.usercontrol.com.br/modules.php?name=Forums + + registered in UCMidasConnReg.pas +-----------------------------------------------------------------------------} + +unit uUCROConn; + +interface + +//{$I 'UserControl.inc'} + +uses + Classes, + DB, + DBClient, + SysUtils, + uRORemoteService, uDADataStreamer, uROBinMessage, uROWinInetHttpChannel, + uDABin2DataStreamer, uDARemoteDataAdapter, UCDataConnector; + +type + TUCROConn = class(TUCDataConnector) + private + FMessage: TROBinMessage; + FChannel: TROWinInetHTTPChannel; + FRemoteService: TRORemoteService; + FDataAdapter : TDARemoteDataAdapter; + FDataStreamer : TDABin2DataStreamer; + procedure SetServiceName(const Value: String); + function GetServiceName: String; + procedure SetChannel(const Value: TROWinInetHTTPChannel); + procedure SetMessage(const Value: TROBinMessage); + protected + procedure Notification(AComponent: TComponent; Operation: TOperation); override; + procedure RefreshROConnection; + public + function GetDBObjectName: String; override; + function GetTransObjectName: String; override; + function UCFindDataConnection: Boolean; override; + function UCFindTable(const Tablename: String): Boolean; override; + function UCGetSQLDataset(FSQL: String): TDataset; override; + procedure UCExecSQL(FSQL: String); override; + constructor Create(AOwner: TComponent); override; + destructor Destroy; override; + published + property ROServiceName : String read GetServiceName write SetServiceName; + property ROMessage : TROBinMessage read FMessage write SetMessage; + property ROChannel : TROWinInetHTTPChannel read FChannel write SetChannel; + end; + +implementation + +uses + Forms, Dialogs, FactuGES_Intf, uROTypes, uDAClasses, uDADataTable, + uDACDSDataTable; + +{ TUCROConn } + +constructor TUCROConn.Create(AOwner: TComponent); +begin + inherited; + FRemoteService := TRORemoteService.Create(nil); + FDataStreamer := TDABin2DataStreamer.Create(nil); + FDataAdapter := TDARemoteDataAdapter.Create(nil); + FDataAdapter.DataStreamer := FDataStreamer; + FDataAdapter.SetupDefaultRequest; +end; + +destructor TUCROConn.Destroy; +begin + FreeAndNil(FRemoteService); + FreeAndNil(FDataAdapter); + FreeAndNil(FDataStreamer); + inherited; +end; + +function TUCROConn.GetDBObjectName: String; +begin + if Assigned(FRemoteService) then + begin + if Owner = FRemoteService.Owner then + Result := FRemoteService.Name + else + Result := FRemoteService.Owner.Name + '.' + FRemoteService.Name; + end + else + Result := ''; +end; + +function TUCROConn.GetServiceName: String; +begin + Result := FRemoteService.ServiceName; +end; + +function TUCROConn.GetTransObjectName: String; +begin + Result := ''; +end; + +procedure TUCROConn.Notification(AComponent: TComponent; Operation: TOperation); +begin + if (Operation = opRemove) and (AComponent = FRemoteService) then + begin + FreeAndNil(FDataAdapter); + FRemoteService := nil; + end; + inherited Notification(AComponent, Operation); +end; + +procedure TUCROConn.RefreshROConnection; +begin + with FRemoteService do + begin + FRemoteService.Message := FMessage; + FRemoteService.Channel := FChannel; + with FDataAdapter do + begin + RemoteService := FRemoteService; + GetSchemaCall.RemoteService := FRemoteService; + GetDataCall.RemoteService := FRemoteService; + UpdateDataCall.RemoteService := FRemoteService; + GetScriptsCall.RemoteService := FRemoteService; + end; + end; +end; + +procedure TUCROConn.SetChannel(const Value: TROWinInetHTTPChannel); +begin + FChannel := Value; + RefreshROConnection; +end; + +procedure TUCROConn.SetMessage(const Value: TROBinMessage); +begin + FMessage := Value; + RefreshROConnection; +end; + +procedure TUCROConn.SetServiceName(const Value: String); +begin + FRemoteService.ServiceName := Value; +end; + +procedure TUCROConn.UCExecSQL(FSQL: String); +begin + (FRemoteService as IsrvUsuarios).SQLExecuteCommand(FSQL); +end; + +function TUCROConn.UCFindDataConnection: Boolean; +begin + Result := False; + if Assigned(FRemoteService) then + begin + FRemoteService.CheckCanConnect; + Result := True; + end; +end; + +function TUCROConn.UCFindTable(const Tablename: String): Boolean; +var + ASchema : TDASchema; +begin + ASchema := FDataAdapter.ReadSchema; + try + Result := Assigned(ASchema.FindDataset(TableName)); + finally + FreeAndNil(ASchema); + end; +end; + + +function TUCROConn.UCGetSQLDataset(FSQL: String): TDataset; +var + AStream: TMemoryStream; + ADataStreamer: TDABin2DataStreamer; + ADataTable: TDACDSDataTable; +begin + Result := NIL; + ADataStreamer := TDABin2DataStreamer.Create(NIL); + AStream := (FRemoteService as IsrvUsuarios).SQLGetData(FSQL, True, -1); + + if AStream <> nil then + try + ADataTable := TDACDSDataTable.Create(Application); + + // Generar un nombre aleatorio + Randomize; + ADataTable.Name := 'SQLResult' + '_' + IntToStr(Random(MAXINT)); + + ADataTable.LocalDataStreamer := ADataStreamer; + ADataTable.RemoteFetchEnabled := False; + try + ADataStreamer.ReadDataset(AStream, ADataTable, True); + ADataTable.Open; + + { OJO!! Trapicheo!!!!! + Forzamos a recuperar en Dataset todas las tuplas + recorriendonos toda la tabla.} + ADataTable.Last; + ADataTable.First; + + Result := ADataTable.Dataset; + finally + //FreeAndNIL(ADataTable); <-- No liberar, lo hace Application + end; + finally + FreeAndNIL(AStream); + FreeAndNIL(ADataStreamer); + end; +end; + +end. + diff --git a/Source/ApplicationBase/Usuarios/Model/Data/uIDataModuleUsuarios.pas b/Source/ApplicationBase/Usuarios/Model/Data/uIDataModuleUsuarios.pas new file mode 100644 index 00000000..ce846342 --- /dev/null +++ b/Source/ApplicationBase/Usuarios/Model/Data/uIDataModuleUsuarios.pas @@ -0,0 +1,16 @@ +unit uIDataModuleUsuarios; + +interface + +uses + UCBase, UCSettings; + +type + IDataModuleUsuarios = interface + ['{35907569-6900-4567-91AC-4EAC14F3D43B}'] + procedure InicializarUserControl (AUserControl : TUserControl); + end; + +implementation + +end. diff --git a/Source/ApplicationBase/Usuarios/Model/schUsuariosClient_Intf.pas b/Source/ApplicationBase/Usuarios/Model/schUsuariosClient_Intf.pas new file mode 100644 index 00000000..1d927631 --- /dev/null +++ b/Source/ApplicationBase/Usuarios/Model/schUsuariosClient_Intf.pas @@ -0,0 +1,1464 @@ +unit schUsuariosClient_Intf; + +interface + +uses + Classes, DB, schBase_Intf, SysUtils, uROClasses, uDADataTable, FmtBCD, uROXMLIntf; + +const + { Data table rules ids + Feel free to change them to something more human readable + but make sure they are unique in the context of your application } + RID_USUARIOS = '{1A97AED1-832A-46A9-9894-8CB44D7AFBBD}'; + RID_USUARIOS_EVENTOS = '{16F186E3-A7CF-40DD-B040-EB735A5F1FDD}'; + RID_USUARIOS_LOGON = '{8005FBCF-1276-473D-A3BE-15C8159AB6CE}'; + RID_PERMISOS = '{802AF8DD-DA72-412A-AB43-4D5F0EA5630F}'; + RID_PERMISOSEX = '{B2319D8E-0423-41D1-B166-7BD9EC069549}'; + + { Data table names } + nme_USUARIOS = 'USUARIOS'; + nme_USUARIOS_EVENTOS = 'USUARIOS_EVENTOS'; + nme_USUARIOS_LOGON = 'USUARIOS_LOGON'; + nme_PERMISOS = 'PERMISOS'; + nme_PERMISOSEX = 'PERMISOSEX'; + + { USUARIOS fields } + fld_USUARIOSID = 'ID'; + fld_USUARIOSUSERNAME = 'USERNAME'; + fld_USUARIOSLOGIN = 'LOGIN'; + fld_USUARIOSPASS = 'PASS'; + fld_USUARIOSPASSEXPIRED = 'PASSEXPIRED'; + fld_USUARIOSBLOQUEADO = 'BLOQUEADO'; + fld_USUARIOSEMAIL = 'EMAIL'; + fld_USUARIOSUSERDAYSSUN = 'USERDAYSSUN'; + fld_USUARIOSPRIVILEGED = 'PRIVILEGED'; + fld_USUARIOSTIPO = 'TIPO'; + fld_USUARIOSID_PERFIL = 'ID_PERFIL'; + fld_USUARIOSCHECKSUM = 'CHECKSUM'; + + { USUARIOS field indexes } + idx_USUARIOSID = 0; + idx_USUARIOSUSERNAME = 1; + idx_USUARIOSLOGIN = 2; + idx_USUARIOSPASS = 3; + idx_USUARIOSPASSEXPIRED = 4; + idx_USUARIOSBLOQUEADO = 5; + idx_USUARIOSEMAIL = 6; + idx_USUARIOSUSERDAYSSUN = 7; + idx_USUARIOSPRIVILEGED = 8; + idx_USUARIOSTIPO = 9; + idx_USUARIOSID_PERFIL = 10; + idx_USUARIOSCHECKSUM = 11; + + { USUARIOS_EVENTOS fields } + fld_USUARIOS_EVENTOSAPLICACION = 'APLICACION'; + fld_USUARIOS_EVENTOSID_USUARIO = 'ID_USUARIO'; + fld_USUARIOS_EVENTOSFECHA = 'FECHA'; + fld_USUARIOS_EVENTOSHORA = 'HORA'; + fld_USUARIOS_EVENTOSFORM = 'FORM'; + fld_USUARIOS_EVENTOSTITULO_FORM = 'TITULO_FORM'; + fld_USUARIOS_EVENTOSEVENTO = 'EVENTO'; + fld_USUARIOS_EVENTOSNOTAS = 'NOTAS'; + fld_USUARIOS_EVENTOSTNAME = 'TNAME'; + + { USUARIOS_EVENTOS field indexes } + idx_USUARIOS_EVENTOSAPLICACION = 0; + idx_USUARIOS_EVENTOSID_USUARIO = 1; + idx_USUARIOS_EVENTOSFECHA = 2; + idx_USUARIOS_EVENTOSHORA = 3; + idx_USUARIOS_EVENTOSFORM = 4; + idx_USUARIOS_EVENTOSTITULO_FORM = 5; + idx_USUARIOS_EVENTOSEVENTO = 6; + idx_USUARIOS_EVENTOSNOTAS = 7; + idx_USUARIOS_EVENTOSTNAME = 8; + + { USUARIOS_LOGON fields } + fld_USUARIOS_LOGONLOGONID = 'LOGONID'; + fld_USUARIOS_LOGONID_USUARIO = 'ID_USUARIO'; + fld_USUARIOS_LOGONAPLICACION = 'APLICACION'; + fld_USUARIOS_LOGONEQUIPO = 'EQUIPO'; + fld_USUARIOS_LOGONDATA = 'DATA'; + + { USUARIOS_LOGON field indexes } + idx_USUARIOS_LOGONLOGONID = 0; + idx_USUARIOS_LOGONID_USUARIO = 1; + idx_USUARIOS_LOGONAPLICACION = 2; + idx_USUARIOS_LOGONEQUIPO = 3; + idx_USUARIOS_LOGONDATA = 4; + + { PERMISOS fields } + fld_PERMISOSID_USUARIO = 'ID_USUARIO'; + fld_PERMISOSMODULO = 'MODULO'; + fld_PERMISOSNOMBRECOMP = 'NOMBRECOMP'; + fld_PERMISOSCHECKSUM = 'CHECKSUM'; + + { PERMISOS field indexes } + idx_PERMISOSID_USUARIO = 0; + idx_PERMISOSMODULO = 1; + idx_PERMISOSNOMBRECOMP = 2; + idx_PERMISOSCHECKSUM = 3; + + { PERMISOSEX fields } + fld_PERMISOSEXID_USUARIO = 'ID_USUARIO'; + fld_PERMISOSEXMODULO = 'MODULO'; + fld_PERMISOSEXNOMBRECOMP = 'NOMBRECOMP'; + fld_PERMISOSEXNOMBREFORM = 'NOMBREFORM'; + fld_PERMISOSEXCHECKSUM = 'CHECKSUM'; + + { PERMISOSEX field indexes } + idx_PERMISOSEXID_USUARIO = 0; + idx_PERMISOSEXMODULO = 1; + idx_PERMISOSEXNOMBRECOMP = 2; + idx_PERMISOSEXNOMBREFORM = 3; + idx_PERMISOSEXCHECKSUM = 4; + +type + { IUSUARIOS } + IUSUARIOS = interface(IDAStronglyTypedDataTable) + ['{F248A54E-1181-40E9-B9B4-9A1D9F4DA382}'] + { Property getters and setters } + function GetIDValue: Integer; + procedure SetIDValue(const aValue: Integer); + function GetIDIsNull: Boolean; + procedure SetIDIsNull(const aValue: Boolean); + function GetUSERNAMEValue: String; + procedure SetUSERNAMEValue(const aValue: String); + function GetUSERNAMEIsNull: Boolean; + procedure SetUSERNAMEIsNull(const aValue: Boolean); + function GetLOGINValue: String; + procedure SetLOGINValue(const aValue: String); + function GetLOGINIsNull: Boolean; + procedure SetLOGINIsNull(const aValue: Boolean); + function GetPASSValue: String; + procedure SetPASSValue(const aValue: String); + function GetPASSIsNull: Boolean; + procedure SetPASSIsNull(const aValue: Boolean); + function GetPASSEXPIREDValue: DateTime; + procedure SetPASSEXPIREDValue(const aValue: DateTime); + function GetPASSEXPIREDIsNull: Boolean; + procedure SetPASSEXPIREDIsNull(const aValue: Boolean); + function GetBLOQUEADOValue: SmallInt; + procedure SetBLOQUEADOValue(const aValue: SmallInt); + function GetBLOQUEADOIsNull: Boolean; + procedure SetBLOQUEADOIsNull(const aValue: Boolean); + function GetEMAILValue: String; + procedure SetEMAILValue(const aValue: String); + function GetEMAILIsNull: Boolean; + procedure SetEMAILIsNull(const aValue: Boolean); + function GetUSERDAYSSUNValue: Integer; + procedure SetUSERDAYSSUNValue(const aValue: Integer); + function GetUSERDAYSSUNIsNull: Boolean; + procedure SetUSERDAYSSUNIsNull(const aValue: Boolean); + function GetPRIVILEGEDValue: Integer; + procedure SetPRIVILEGEDValue(const aValue: Integer); + function GetPRIVILEGEDIsNull: Boolean; + procedure SetPRIVILEGEDIsNull(const aValue: Boolean); + function GetTIPOValue: String; + procedure SetTIPOValue(const aValue: String); + function GetTIPOIsNull: Boolean; + procedure SetTIPOIsNull(const aValue: Boolean); + function GetID_PERFILValue: Integer; + procedure SetID_PERFILValue(const aValue: Integer); + function GetID_PERFILIsNull: Boolean; + procedure SetID_PERFILIsNull(const aValue: Boolean); + function GetCHECKSUMValue: String; + procedure SetCHECKSUMValue(const aValue: String); + function GetCHECKSUMIsNull: Boolean; + procedure SetCHECKSUMIsNull(const aValue: Boolean); + + + { Properties } + property ID: Integer read GetIDValue write SetIDValue; + property IDIsNull: Boolean read GetIDIsNull write SetIDIsNull; + property USERNAME: String read GetUSERNAMEValue write SetUSERNAMEValue; + property USERNAMEIsNull: Boolean read GetUSERNAMEIsNull write SetUSERNAMEIsNull; + property LOGIN: String read GetLOGINValue write SetLOGINValue; + property LOGINIsNull: Boolean read GetLOGINIsNull write SetLOGINIsNull; + property PASS: String read GetPASSValue write SetPASSValue; + property PASSIsNull: Boolean read GetPASSIsNull write SetPASSIsNull; + property PASSEXPIRED: DateTime read GetPASSEXPIREDValue write SetPASSEXPIREDValue; + property PASSEXPIREDIsNull: Boolean read GetPASSEXPIREDIsNull write SetPASSEXPIREDIsNull; + property BLOQUEADO: SmallInt read GetBLOQUEADOValue write SetBLOQUEADOValue; + property BLOQUEADOIsNull: Boolean read GetBLOQUEADOIsNull write SetBLOQUEADOIsNull; + property EMAIL: String read GetEMAILValue write SetEMAILValue; + property EMAILIsNull: Boolean read GetEMAILIsNull write SetEMAILIsNull; + property USERDAYSSUN: Integer read GetUSERDAYSSUNValue write SetUSERDAYSSUNValue; + property USERDAYSSUNIsNull: Boolean read GetUSERDAYSSUNIsNull write SetUSERDAYSSUNIsNull; + property PRIVILEGED: Integer read GetPRIVILEGEDValue write SetPRIVILEGEDValue; + property PRIVILEGEDIsNull: Boolean read GetPRIVILEGEDIsNull write SetPRIVILEGEDIsNull; + property TIPO: String read GetTIPOValue write SetTIPOValue; + property TIPOIsNull: Boolean read GetTIPOIsNull write SetTIPOIsNull; + property ID_PERFIL: Integer read GetID_PERFILValue write SetID_PERFILValue; + property ID_PERFILIsNull: Boolean read GetID_PERFILIsNull write SetID_PERFILIsNull; + property CHECKSUM: String read GetCHECKSUMValue write SetCHECKSUMValue; + property CHECKSUMIsNull: Boolean read GetCHECKSUMIsNull write SetCHECKSUMIsNull; + end; + + { TUSUARIOSDataTableRules } + TUSUARIOSDataTableRules = class(TIntfObjectDADataTableRules, IUSUARIOS) + private + protected + { Property getters and setters } + function GetIDValue: Integer; virtual; + procedure SetIDValue(const aValue: Integer); virtual; + function GetIDIsNull: Boolean; virtual; + procedure SetIDIsNull(const aValue: Boolean); virtual; + function GetUSERNAMEValue: String; virtual; + procedure SetUSERNAMEValue(const aValue: String); virtual; + function GetUSERNAMEIsNull: Boolean; virtual; + procedure SetUSERNAMEIsNull(const aValue: Boolean); virtual; + function GetLOGINValue: String; virtual; + procedure SetLOGINValue(const aValue: String); virtual; + function GetLOGINIsNull: Boolean; virtual; + procedure SetLOGINIsNull(const aValue: Boolean); virtual; + function GetPASSValue: String; virtual; + procedure SetPASSValue(const aValue: String); virtual; + function GetPASSIsNull: Boolean; virtual; + procedure SetPASSIsNull(const aValue: Boolean); virtual; + function GetPASSEXPIREDValue: DateTime; virtual; + procedure SetPASSEXPIREDValue(const aValue: DateTime); virtual; + function GetPASSEXPIREDIsNull: Boolean; virtual; + procedure SetPASSEXPIREDIsNull(const aValue: Boolean); virtual; + function GetBLOQUEADOValue: SmallInt; virtual; + procedure SetBLOQUEADOValue(const aValue: SmallInt); virtual; + function GetBLOQUEADOIsNull: Boolean; virtual; + procedure SetBLOQUEADOIsNull(const aValue: Boolean); virtual; + function GetEMAILValue: String; virtual; + procedure SetEMAILValue(const aValue: String); virtual; + function GetEMAILIsNull: Boolean; virtual; + procedure SetEMAILIsNull(const aValue: Boolean); virtual; + function GetUSERDAYSSUNValue: Integer; virtual; + procedure SetUSERDAYSSUNValue(const aValue: Integer); virtual; + function GetUSERDAYSSUNIsNull: Boolean; virtual; + procedure SetUSERDAYSSUNIsNull(const aValue: Boolean); virtual; + function GetPRIVILEGEDValue: Integer; virtual; + procedure SetPRIVILEGEDValue(const aValue: Integer); virtual; + function GetPRIVILEGEDIsNull: Boolean; virtual; + procedure SetPRIVILEGEDIsNull(const aValue: Boolean); virtual; + function GetTIPOValue: String; virtual; + procedure SetTIPOValue(const aValue: String); virtual; + function GetTIPOIsNull: Boolean; virtual; + procedure SetTIPOIsNull(const aValue: Boolean); virtual; + function GetID_PERFILValue: Integer; virtual; + procedure SetID_PERFILValue(const aValue: Integer); virtual; + function GetID_PERFILIsNull: Boolean; virtual; + procedure SetID_PERFILIsNull(const aValue: Boolean); virtual; + function GetCHECKSUMValue: String; virtual; + procedure SetCHECKSUMValue(const aValue: String); virtual; + function GetCHECKSUMIsNull: Boolean; virtual; + procedure SetCHECKSUMIsNull(const aValue: Boolean); virtual; + + { Properties } + property ID: Integer read GetIDValue write SetIDValue; + property IDIsNull: Boolean read GetIDIsNull write SetIDIsNull; + property USERNAME: String read GetUSERNAMEValue write SetUSERNAMEValue; + property USERNAMEIsNull: Boolean read GetUSERNAMEIsNull write SetUSERNAMEIsNull; + property LOGIN: String read GetLOGINValue write SetLOGINValue; + property LOGINIsNull: Boolean read GetLOGINIsNull write SetLOGINIsNull; + property PASS: String read GetPASSValue write SetPASSValue; + property PASSIsNull: Boolean read GetPASSIsNull write SetPASSIsNull; + property PASSEXPIRED: DateTime read GetPASSEXPIREDValue write SetPASSEXPIREDValue; + property PASSEXPIREDIsNull: Boolean read GetPASSEXPIREDIsNull write SetPASSEXPIREDIsNull; + property BLOQUEADO: SmallInt read GetBLOQUEADOValue write SetBLOQUEADOValue; + property BLOQUEADOIsNull: Boolean read GetBLOQUEADOIsNull write SetBLOQUEADOIsNull; + property EMAIL: String read GetEMAILValue write SetEMAILValue; + property EMAILIsNull: Boolean read GetEMAILIsNull write SetEMAILIsNull; + property USERDAYSSUN: Integer read GetUSERDAYSSUNValue write SetUSERDAYSSUNValue; + property USERDAYSSUNIsNull: Boolean read GetUSERDAYSSUNIsNull write SetUSERDAYSSUNIsNull; + property PRIVILEGED: Integer read GetPRIVILEGEDValue write SetPRIVILEGEDValue; + property PRIVILEGEDIsNull: Boolean read GetPRIVILEGEDIsNull write SetPRIVILEGEDIsNull; + property TIPO: String read GetTIPOValue write SetTIPOValue; + property TIPOIsNull: Boolean read GetTIPOIsNull write SetTIPOIsNull; + property ID_PERFIL: Integer read GetID_PERFILValue write SetID_PERFILValue; + property ID_PERFILIsNull: Boolean read GetID_PERFILIsNull write SetID_PERFILIsNull; + property CHECKSUM: String read GetCHECKSUMValue write SetCHECKSUMValue; + property CHECKSUMIsNull: Boolean read GetCHECKSUMIsNull write SetCHECKSUMIsNull; + + public + constructor Create(aDataTable: TDADataTable); override; + destructor Destroy; override; + + end; + + { IUSUARIOS_EVENTOS } + IUSUARIOS_EVENTOS = interface(IDAStronglyTypedDataTable) + ['{8E5D7E37-04E5-4395-8B3E-E0757F5675B4}'] + { Property getters and setters } + function GetAPLICACIONValue: String; + procedure SetAPLICACIONValue(const aValue: String); + function GetAPLICACIONIsNull: Boolean; + procedure SetAPLICACIONIsNull(const aValue: Boolean); + function GetID_USUARIOValue: Integer; + procedure SetID_USUARIOValue(const aValue: Integer); + function GetID_USUARIOIsNull: Boolean; + procedure SetID_USUARIOIsNull(const aValue: Boolean); + function GetFECHAValue: String; + procedure SetFECHAValue(const aValue: String); + function GetFECHAIsNull: Boolean; + procedure SetFECHAIsNull(const aValue: Boolean); + function GetHORAValue: String; + procedure SetHORAValue(const aValue: String); + function GetHORAIsNull: Boolean; + procedure SetHORAIsNull(const aValue: Boolean); + function GetFORMValue: String; + procedure SetFORMValue(const aValue: String); + function GetFORMIsNull: Boolean; + procedure SetFORMIsNull(const aValue: Boolean); + function GetTITULO_FORMValue: String; + procedure SetTITULO_FORMValue(const aValue: String); + function GetTITULO_FORMIsNull: Boolean; + procedure SetTITULO_FORMIsNull(const aValue: Boolean); + function GetEVENTOValue: String; + procedure SetEVENTOValue(const aValue: String); + function GetEVENTOIsNull: Boolean; + procedure SetEVENTOIsNull(const aValue: Boolean); + function GetNOTASValue: IROStrings; + function GetNOTASIsNull: Boolean; + procedure SetNOTASIsNull(const aValue: Boolean); + function GetTNAMEValue: String; + procedure SetTNAMEValue(const aValue: String); + function GetTNAMEIsNull: Boolean; + procedure SetTNAMEIsNull(const aValue: Boolean); + + + { Properties } + property APLICACION: String read GetAPLICACIONValue write SetAPLICACIONValue; + property APLICACIONIsNull: Boolean read GetAPLICACIONIsNull write SetAPLICACIONIsNull; + property ID_USUARIO: Integer read GetID_USUARIOValue write SetID_USUARIOValue; + property ID_USUARIOIsNull: Boolean read GetID_USUARIOIsNull write SetID_USUARIOIsNull; + property FECHA: String read GetFECHAValue write SetFECHAValue; + property FECHAIsNull: Boolean read GetFECHAIsNull write SetFECHAIsNull; + property HORA: String read GetHORAValue write SetHORAValue; + property HORAIsNull: Boolean read GetHORAIsNull write SetHORAIsNull; + property FORM: String read GetFORMValue write SetFORMValue; + property FORMIsNull: Boolean read GetFORMIsNull write SetFORMIsNull; + property TITULO_FORM: String read GetTITULO_FORMValue write SetTITULO_FORMValue; + property TITULO_FORMIsNull: Boolean read GetTITULO_FORMIsNull write SetTITULO_FORMIsNull; + property EVENTO: String read GetEVENTOValue write SetEVENTOValue; + property EVENTOIsNull: Boolean read GetEVENTOIsNull write SetEVENTOIsNull; + property NOTAS: IROStrings read GetNOTASValue; + property NOTASIsNull: Boolean read GetNOTASIsNull write SetNOTASIsNull; + property TNAME: String read GetTNAMEValue write SetTNAMEValue; + property TNAMEIsNull: Boolean read GetTNAMEIsNull write SetTNAMEIsNull; + end; + + { TUSUARIOS_EVENTOSDataTableRules } + TUSUARIOS_EVENTOSDataTableRules = class(TIntfObjectDADataTableRules, IUSUARIOS_EVENTOS) + private + f_NOTAS: IROStrings; + procedure NOTAS_OnChange(Sender: TObject); + protected + { Property getters and setters } + function GetAPLICACIONValue: String; virtual; + procedure SetAPLICACIONValue(const aValue: String); virtual; + function GetAPLICACIONIsNull: Boolean; virtual; + procedure SetAPLICACIONIsNull(const aValue: Boolean); virtual; + function GetID_USUARIOValue: Integer; virtual; + procedure SetID_USUARIOValue(const aValue: Integer); virtual; + function GetID_USUARIOIsNull: Boolean; virtual; + procedure SetID_USUARIOIsNull(const aValue: Boolean); virtual; + function GetFECHAValue: String; virtual; + procedure SetFECHAValue(const aValue: String); virtual; + function GetFECHAIsNull: Boolean; virtual; + procedure SetFECHAIsNull(const aValue: Boolean); virtual; + function GetHORAValue: String; virtual; + procedure SetHORAValue(const aValue: String); virtual; + function GetHORAIsNull: Boolean; virtual; + procedure SetHORAIsNull(const aValue: Boolean); virtual; + function GetFORMValue: String; virtual; + procedure SetFORMValue(const aValue: String); virtual; + function GetFORMIsNull: Boolean; virtual; + procedure SetFORMIsNull(const aValue: Boolean); virtual; + function GetTITULO_FORMValue: String; virtual; + procedure SetTITULO_FORMValue(const aValue: String); virtual; + function GetTITULO_FORMIsNull: Boolean; virtual; + procedure SetTITULO_FORMIsNull(const aValue: Boolean); virtual; + function GetEVENTOValue: String; virtual; + procedure SetEVENTOValue(const aValue: String); virtual; + function GetEVENTOIsNull: Boolean; virtual; + procedure SetEVENTOIsNull(const aValue: Boolean); virtual; + function GetNOTASValue: IROStrings; virtual; + function GetNOTASIsNull: Boolean; virtual; + procedure SetNOTASIsNull(const aValue: Boolean); virtual; + function GetTNAMEValue: String; virtual; + procedure SetTNAMEValue(const aValue: String); virtual; + function GetTNAMEIsNull: Boolean; virtual; + procedure SetTNAMEIsNull(const aValue: Boolean); virtual; + + { Properties } + property APLICACION: String read GetAPLICACIONValue write SetAPLICACIONValue; + property APLICACIONIsNull: Boolean read GetAPLICACIONIsNull write SetAPLICACIONIsNull; + property ID_USUARIO: Integer read GetID_USUARIOValue write SetID_USUARIOValue; + property ID_USUARIOIsNull: Boolean read GetID_USUARIOIsNull write SetID_USUARIOIsNull; + property FECHA: String read GetFECHAValue write SetFECHAValue; + property FECHAIsNull: Boolean read GetFECHAIsNull write SetFECHAIsNull; + property HORA: String read GetHORAValue write SetHORAValue; + property HORAIsNull: Boolean read GetHORAIsNull write SetHORAIsNull; + property FORM: String read GetFORMValue write SetFORMValue; + property FORMIsNull: Boolean read GetFORMIsNull write SetFORMIsNull; + property TITULO_FORM: String read GetTITULO_FORMValue write SetTITULO_FORMValue; + property TITULO_FORMIsNull: Boolean read GetTITULO_FORMIsNull write SetTITULO_FORMIsNull; + property EVENTO: String read GetEVENTOValue write SetEVENTOValue; + property EVENTOIsNull: Boolean read GetEVENTOIsNull write SetEVENTOIsNull; + property NOTAS: IROStrings read GetNOTASValue; + property NOTASIsNull: Boolean read GetNOTASIsNull write SetNOTASIsNull; + property TNAME: String read GetTNAMEValue write SetTNAMEValue; + property TNAMEIsNull: Boolean read GetTNAMEIsNull write SetTNAMEIsNull; + + public + constructor Create(aDataTable: TDADataTable); override; + destructor Destroy; override; + + end; + + { IUSUARIOS_LOGON } + IUSUARIOS_LOGON = interface(IDAStronglyTypedDataTable) + ['{FF8C8388-9397-4FA2-AB70-491B8299DC00}'] + { Property getters and setters } + function GetLOGONIDValue: String; + procedure SetLOGONIDValue(const aValue: String); + function GetLOGONIDIsNull: Boolean; + procedure SetLOGONIDIsNull(const aValue: Boolean); + function GetID_USUARIOValue: Integer; + procedure SetID_USUARIOValue(const aValue: Integer); + function GetID_USUARIOIsNull: Boolean; + procedure SetID_USUARIOIsNull(const aValue: Boolean); + function GetAPLICACIONValue: String; + procedure SetAPLICACIONValue(const aValue: String); + function GetAPLICACIONIsNull: Boolean; + procedure SetAPLICACIONIsNull(const aValue: Boolean); + function GetEQUIPOValue: String; + procedure SetEQUIPOValue(const aValue: String); + function GetEQUIPOIsNull: Boolean; + procedure SetEQUIPOIsNull(const aValue: Boolean); + function GetDATAValue: String; + procedure SetDATAValue(const aValue: String); + function GetDATAIsNull: Boolean; + procedure SetDATAIsNull(const aValue: Boolean); + + + { Properties } + property LOGONID: String read GetLOGONIDValue write SetLOGONIDValue; + property LOGONIDIsNull: Boolean read GetLOGONIDIsNull write SetLOGONIDIsNull; + property ID_USUARIO: Integer read GetID_USUARIOValue write SetID_USUARIOValue; + property ID_USUARIOIsNull: Boolean read GetID_USUARIOIsNull write SetID_USUARIOIsNull; + property APLICACION: String read GetAPLICACIONValue write SetAPLICACIONValue; + property APLICACIONIsNull: Boolean read GetAPLICACIONIsNull write SetAPLICACIONIsNull; + property EQUIPO: String read GetEQUIPOValue write SetEQUIPOValue; + property EQUIPOIsNull: Boolean read GetEQUIPOIsNull write SetEQUIPOIsNull; + property DATA: String read GetDATAValue write SetDATAValue; + property DATAIsNull: Boolean read GetDATAIsNull write SetDATAIsNull; + end; + + { TUSUARIOS_LOGONDataTableRules } + TUSUARIOS_LOGONDataTableRules = class(TIntfObjectDADataTableRules, IUSUARIOS_LOGON) + private + protected + { Property getters and setters } + function GetLOGONIDValue: String; virtual; + procedure SetLOGONIDValue(const aValue: String); virtual; + function GetLOGONIDIsNull: Boolean; virtual; + procedure SetLOGONIDIsNull(const aValue: Boolean); virtual; + function GetID_USUARIOValue: Integer; virtual; + procedure SetID_USUARIOValue(const aValue: Integer); virtual; + function GetID_USUARIOIsNull: Boolean; virtual; + procedure SetID_USUARIOIsNull(const aValue: Boolean); virtual; + function GetAPLICACIONValue: String; virtual; + procedure SetAPLICACIONValue(const aValue: String); virtual; + function GetAPLICACIONIsNull: Boolean; virtual; + procedure SetAPLICACIONIsNull(const aValue: Boolean); virtual; + function GetEQUIPOValue: String; virtual; + procedure SetEQUIPOValue(const aValue: String); virtual; + function GetEQUIPOIsNull: Boolean; virtual; + procedure SetEQUIPOIsNull(const aValue: Boolean); virtual; + function GetDATAValue: String; virtual; + procedure SetDATAValue(const aValue: String); virtual; + function GetDATAIsNull: Boolean; virtual; + procedure SetDATAIsNull(const aValue: Boolean); virtual; + + { Properties } + property LOGONID: String read GetLOGONIDValue write SetLOGONIDValue; + property LOGONIDIsNull: Boolean read GetLOGONIDIsNull write SetLOGONIDIsNull; + property ID_USUARIO: Integer read GetID_USUARIOValue write SetID_USUARIOValue; + property ID_USUARIOIsNull: Boolean read GetID_USUARIOIsNull write SetID_USUARIOIsNull; + property APLICACION: String read GetAPLICACIONValue write SetAPLICACIONValue; + property APLICACIONIsNull: Boolean read GetAPLICACIONIsNull write SetAPLICACIONIsNull; + property EQUIPO: String read GetEQUIPOValue write SetEQUIPOValue; + property EQUIPOIsNull: Boolean read GetEQUIPOIsNull write SetEQUIPOIsNull; + property DATA: String read GetDATAValue write SetDATAValue; + property DATAIsNull: Boolean read GetDATAIsNull write SetDATAIsNull; + + public + constructor Create(aDataTable: TDADataTable); override; + destructor Destroy; override; + + end; + + { IPERMISOS } + IPERMISOS = interface(IDAStronglyTypedDataTable) + ['{7705D3E7-EC27-4CB7-9492-1873D2158F79}'] + { Property getters and setters } + function GetID_USUARIOValue: Integer; + procedure SetID_USUARIOValue(const aValue: Integer); + function GetID_USUARIOIsNull: Boolean; + procedure SetID_USUARIOIsNull(const aValue: Boolean); + function GetMODULOValue: String; + procedure SetMODULOValue(const aValue: String); + function GetMODULOIsNull: Boolean; + procedure SetMODULOIsNull(const aValue: Boolean); + function GetNOMBRECOMPValue: String; + procedure SetNOMBRECOMPValue(const aValue: String); + function GetNOMBRECOMPIsNull: Boolean; + procedure SetNOMBRECOMPIsNull(const aValue: Boolean); + function GetCHECKSUMValue: String; + procedure SetCHECKSUMValue(const aValue: String); + function GetCHECKSUMIsNull: Boolean; + procedure SetCHECKSUMIsNull(const aValue: Boolean); + + + { Properties } + property ID_USUARIO: Integer read GetID_USUARIOValue write SetID_USUARIOValue; + property ID_USUARIOIsNull: Boolean read GetID_USUARIOIsNull write SetID_USUARIOIsNull; + property MODULO: String read GetMODULOValue write SetMODULOValue; + property MODULOIsNull: Boolean read GetMODULOIsNull write SetMODULOIsNull; + property NOMBRECOMP: String read GetNOMBRECOMPValue write SetNOMBRECOMPValue; + property NOMBRECOMPIsNull: Boolean read GetNOMBRECOMPIsNull write SetNOMBRECOMPIsNull; + property CHECKSUM: String read GetCHECKSUMValue write SetCHECKSUMValue; + property CHECKSUMIsNull: Boolean read GetCHECKSUMIsNull write SetCHECKSUMIsNull; + end; + + { TPERMISOSDataTableRules } + TPERMISOSDataTableRules = class(TIntfObjectDADataTableRules, IPERMISOS) + private + protected + { Property getters and setters } + function GetID_USUARIOValue: Integer; virtual; + procedure SetID_USUARIOValue(const aValue: Integer); virtual; + function GetID_USUARIOIsNull: Boolean; virtual; + procedure SetID_USUARIOIsNull(const aValue: Boolean); virtual; + function GetMODULOValue: String; virtual; + procedure SetMODULOValue(const aValue: String); virtual; + function GetMODULOIsNull: Boolean; virtual; + procedure SetMODULOIsNull(const aValue: Boolean); virtual; + function GetNOMBRECOMPValue: String; virtual; + procedure SetNOMBRECOMPValue(const aValue: String); virtual; + function GetNOMBRECOMPIsNull: Boolean; virtual; + procedure SetNOMBRECOMPIsNull(const aValue: Boolean); virtual; + function GetCHECKSUMValue: String; virtual; + procedure SetCHECKSUMValue(const aValue: String); virtual; + function GetCHECKSUMIsNull: Boolean; virtual; + procedure SetCHECKSUMIsNull(const aValue: Boolean); virtual; + + { Properties } + property ID_USUARIO: Integer read GetID_USUARIOValue write SetID_USUARIOValue; + property ID_USUARIOIsNull: Boolean read GetID_USUARIOIsNull write SetID_USUARIOIsNull; + property MODULO: String read GetMODULOValue write SetMODULOValue; + property MODULOIsNull: Boolean read GetMODULOIsNull write SetMODULOIsNull; + property NOMBRECOMP: String read GetNOMBRECOMPValue write SetNOMBRECOMPValue; + property NOMBRECOMPIsNull: Boolean read GetNOMBRECOMPIsNull write SetNOMBRECOMPIsNull; + property CHECKSUM: String read GetCHECKSUMValue write SetCHECKSUMValue; + property CHECKSUMIsNull: Boolean read GetCHECKSUMIsNull write SetCHECKSUMIsNull; + + public + constructor Create(aDataTable: TDADataTable); override; + destructor Destroy; override; + + end; + + { IPERMISOSEX } + IPERMISOSEX = interface(IDAStronglyTypedDataTable) + ['{1636E92E-3A74-4F5F-AF20-5831B0D57A38}'] + { Property getters and setters } + function GetID_USUARIOValue: Integer; + procedure SetID_USUARIOValue(const aValue: Integer); + function GetID_USUARIOIsNull: Boolean; + procedure SetID_USUARIOIsNull(const aValue: Boolean); + function GetMODULOValue: String; + procedure SetMODULOValue(const aValue: String); + function GetMODULOIsNull: Boolean; + procedure SetMODULOIsNull(const aValue: Boolean); + function GetNOMBRECOMPValue: String; + procedure SetNOMBRECOMPValue(const aValue: String); + function GetNOMBRECOMPIsNull: Boolean; + procedure SetNOMBRECOMPIsNull(const aValue: Boolean); + function GetNOMBREFORMValue: String; + procedure SetNOMBREFORMValue(const aValue: String); + function GetNOMBREFORMIsNull: Boolean; + procedure SetNOMBREFORMIsNull(const aValue: Boolean); + function GetCHECKSUMValue: String; + procedure SetCHECKSUMValue(const aValue: String); + function GetCHECKSUMIsNull: Boolean; + procedure SetCHECKSUMIsNull(const aValue: Boolean); + + + { Properties } + property ID_USUARIO: Integer read GetID_USUARIOValue write SetID_USUARIOValue; + property ID_USUARIOIsNull: Boolean read GetID_USUARIOIsNull write SetID_USUARIOIsNull; + property MODULO: String read GetMODULOValue write SetMODULOValue; + property MODULOIsNull: Boolean read GetMODULOIsNull write SetMODULOIsNull; + property NOMBRECOMP: String read GetNOMBRECOMPValue write SetNOMBRECOMPValue; + property NOMBRECOMPIsNull: Boolean read GetNOMBRECOMPIsNull write SetNOMBRECOMPIsNull; + property NOMBREFORM: String read GetNOMBREFORMValue write SetNOMBREFORMValue; + property NOMBREFORMIsNull: Boolean read GetNOMBREFORMIsNull write SetNOMBREFORMIsNull; + property CHECKSUM: String read GetCHECKSUMValue write SetCHECKSUMValue; + property CHECKSUMIsNull: Boolean read GetCHECKSUMIsNull write SetCHECKSUMIsNull; + end; + + { TPERMISOSEXDataTableRules } + TPERMISOSEXDataTableRules = class(TIntfObjectDADataTableRules, IPERMISOSEX) + private + protected + { Property getters and setters } + function GetID_USUARIOValue: Integer; virtual; + procedure SetID_USUARIOValue(const aValue: Integer); virtual; + function GetID_USUARIOIsNull: Boolean; virtual; + procedure SetID_USUARIOIsNull(const aValue: Boolean); virtual; + function GetMODULOValue: String; virtual; + procedure SetMODULOValue(const aValue: String); virtual; + function GetMODULOIsNull: Boolean; virtual; + procedure SetMODULOIsNull(const aValue: Boolean); virtual; + function GetNOMBRECOMPValue: String; virtual; + procedure SetNOMBRECOMPValue(const aValue: String); virtual; + function GetNOMBRECOMPIsNull: Boolean; virtual; + procedure SetNOMBRECOMPIsNull(const aValue: Boolean); virtual; + function GetNOMBREFORMValue: String; virtual; + procedure SetNOMBREFORMValue(const aValue: String); virtual; + function GetNOMBREFORMIsNull: Boolean; virtual; + procedure SetNOMBREFORMIsNull(const aValue: Boolean); virtual; + function GetCHECKSUMValue: String; virtual; + procedure SetCHECKSUMValue(const aValue: String); virtual; + function GetCHECKSUMIsNull: Boolean; virtual; + procedure SetCHECKSUMIsNull(const aValue: Boolean); virtual; + + { Properties } + property ID_USUARIO: Integer read GetID_USUARIOValue write SetID_USUARIOValue; + property ID_USUARIOIsNull: Boolean read GetID_USUARIOIsNull write SetID_USUARIOIsNull; + property MODULO: String read GetMODULOValue write SetMODULOValue; + property MODULOIsNull: Boolean read GetMODULOIsNull write SetMODULOIsNull; + property NOMBRECOMP: String read GetNOMBRECOMPValue write SetNOMBRECOMPValue; + property NOMBRECOMPIsNull: Boolean read GetNOMBRECOMPIsNull write SetNOMBRECOMPIsNull; + property NOMBREFORM: String read GetNOMBREFORMValue write SetNOMBREFORMValue; + property NOMBREFORMIsNull: Boolean read GetNOMBREFORMIsNull write SetNOMBREFORMIsNull; + property CHECKSUM: String read GetCHECKSUMValue write SetCHECKSUMValue; + property CHECKSUMIsNull: Boolean read GetCHECKSUMIsNull write SetCHECKSUMIsNull; + + public + constructor Create(aDataTable: TDADataTable); override; + destructor Destroy; override; + + end; + +implementation + +uses Variants, uROBinaryHelpers; + +{ TUSUARIOSDataTableRules } +constructor TUSUARIOSDataTableRules.Create(aDataTable: TDADataTable); +begin + inherited; +end; + +destructor TUSUARIOSDataTableRules.Destroy; +begin + inherited; +end; + +function TUSUARIOSDataTableRules.GetIDValue: Integer; +begin + result := DataTable.Fields[idx_USUARIOSID].AsInteger; +end; + +procedure TUSUARIOSDataTableRules.SetIDValue(const aValue: Integer); +begin + DataTable.Fields[idx_USUARIOSID].AsInteger := aValue; +end; + +function TUSUARIOSDataTableRules.GetIDIsNull: boolean; +begin + result := DataTable.Fields[idx_USUARIOSID].IsNull; +end; + +procedure TUSUARIOSDataTableRules.SetIDIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_USUARIOSID].AsVariant := Null; +end; + +function TUSUARIOSDataTableRules.GetUSERNAMEValue: String; +begin + result := DataTable.Fields[idx_USUARIOSUSERNAME].AsString; +end; + +procedure TUSUARIOSDataTableRules.SetUSERNAMEValue(const aValue: String); +begin + DataTable.Fields[idx_USUARIOSUSERNAME].AsString := aValue; +end; + +function TUSUARIOSDataTableRules.GetUSERNAMEIsNull: boolean; +begin + result := DataTable.Fields[idx_USUARIOSUSERNAME].IsNull; +end; + +procedure TUSUARIOSDataTableRules.SetUSERNAMEIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_USUARIOSUSERNAME].AsVariant := Null; +end; + +function TUSUARIOSDataTableRules.GetLOGINValue: String; +begin + result := DataTable.Fields[idx_USUARIOSLOGIN].AsString; +end; + +procedure TUSUARIOSDataTableRules.SetLOGINValue(const aValue: String); +begin + DataTable.Fields[idx_USUARIOSLOGIN].AsString := aValue; +end; + +function TUSUARIOSDataTableRules.GetLOGINIsNull: boolean; +begin + result := DataTable.Fields[idx_USUARIOSLOGIN].IsNull; +end; + +procedure TUSUARIOSDataTableRules.SetLOGINIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_USUARIOSLOGIN].AsVariant := Null; +end; + +function TUSUARIOSDataTableRules.GetPASSValue: String; +begin + result := DataTable.Fields[idx_USUARIOSPASS].AsString; +end; + +procedure TUSUARIOSDataTableRules.SetPASSValue(const aValue: String); +begin + DataTable.Fields[idx_USUARIOSPASS].AsString := aValue; +end; + +function TUSUARIOSDataTableRules.GetPASSIsNull: boolean; +begin + result := DataTable.Fields[idx_USUARIOSPASS].IsNull; +end; + +procedure TUSUARIOSDataTableRules.SetPASSIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_USUARIOSPASS].AsVariant := Null; +end; + +function TUSUARIOSDataTableRules.GetPASSEXPIREDValue: DateTime; +begin + result := DataTable.Fields[idx_USUARIOSPASSEXPIRED].AsDateTime; +end; + +procedure TUSUARIOSDataTableRules.SetPASSEXPIREDValue(const aValue: DateTime); +begin + DataTable.Fields[idx_USUARIOSPASSEXPIRED].AsDateTime := aValue; +end; + +function TUSUARIOSDataTableRules.GetPASSEXPIREDIsNull: boolean; +begin + result := DataTable.Fields[idx_USUARIOSPASSEXPIRED].IsNull; +end; + +procedure TUSUARIOSDataTableRules.SetPASSEXPIREDIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_USUARIOSPASSEXPIRED].AsVariant := Null; +end; + +function TUSUARIOSDataTableRules.GetBLOQUEADOValue: SmallInt; +begin + result := DataTable.Fields[idx_USUARIOSBLOQUEADO].AsSmallInt; +end; + +procedure TUSUARIOSDataTableRules.SetBLOQUEADOValue(const aValue: SmallInt); +begin + DataTable.Fields[idx_USUARIOSBLOQUEADO].AsSmallInt := aValue; +end; + +function TUSUARIOSDataTableRules.GetBLOQUEADOIsNull: boolean; +begin + result := DataTable.Fields[idx_USUARIOSBLOQUEADO].IsNull; +end; + +procedure TUSUARIOSDataTableRules.SetBLOQUEADOIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_USUARIOSBLOQUEADO].AsVariant := Null; +end; + +function TUSUARIOSDataTableRules.GetEMAILValue: String; +begin + result := DataTable.Fields[idx_USUARIOSEMAIL].AsString; +end; + +procedure TUSUARIOSDataTableRules.SetEMAILValue(const aValue: String); +begin + DataTable.Fields[idx_USUARIOSEMAIL].AsString := aValue; +end; + +function TUSUARIOSDataTableRules.GetEMAILIsNull: boolean; +begin + result := DataTable.Fields[idx_USUARIOSEMAIL].IsNull; +end; + +procedure TUSUARIOSDataTableRules.SetEMAILIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_USUARIOSEMAIL].AsVariant := Null; +end; + +function TUSUARIOSDataTableRules.GetUSERDAYSSUNValue: Integer; +begin + result := DataTable.Fields[idx_USUARIOSUSERDAYSSUN].AsInteger; +end; + +procedure TUSUARIOSDataTableRules.SetUSERDAYSSUNValue(const aValue: Integer); +begin + DataTable.Fields[idx_USUARIOSUSERDAYSSUN].AsInteger := aValue; +end; + +function TUSUARIOSDataTableRules.GetUSERDAYSSUNIsNull: boolean; +begin + result := DataTable.Fields[idx_USUARIOSUSERDAYSSUN].IsNull; +end; + +procedure TUSUARIOSDataTableRules.SetUSERDAYSSUNIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_USUARIOSUSERDAYSSUN].AsVariant := Null; +end; + +function TUSUARIOSDataTableRules.GetPRIVILEGEDValue: Integer; +begin + result := DataTable.Fields[idx_USUARIOSPRIVILEGED].AsInteger; +end; + +procedure TUSUARIOSDataTableRules.SetPRIVILEGEDValue(const aValue: Integer); +begin + DataTable.Fields[idx_USUARIOSPRIVILEGED].AsInteger := aValue; +end; + +function TUSUARIOSDataTableRules.GetPRIVILEGEDIsNull: boolean; +begin + result := DataTable.Fields[idx_USUARIOSPRIVILEGED].IsNull; +end; + +procedure TUSUARIOSDataTableRules.SetPRIVILEGEDIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_USUARIOSPRIVILEGED].AsVariant := Null; +end; + +function TUSUARIOSDataTableRules.GetTIPOValue: String; +begin + result := DataTable.Fields[idx_USUARIOSTIPO].AsString; +end; + +procedure TUSUARIOSDataTableRules.SetTIPOValue(const aValue: String); +begin + DataTable.Fields[idx_USUARIOSTIPO].AsString := aValue; +end; + +function TUSUARIOSDataTableRules.GetTIPOIsNull: boolean; +begin + result := DataTable.Fields[idx_USUARIOSTIPO].IsNull; +end; + +procedure TUSUARIOSDataTableRules.SetTIPOIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_USUARIOSTIPO].AsVariant := Null; +end; + +function TUSUARIOSDataTableRules.GetID_PERFILValue: Integer; +begin + result := DataTable.Fields[idx_USUARIOSID_PERFIL].AsInteger; +end; + +procedure TUSUARIOSDataTableRules.SetID_PERFILValue(const aValue: Integer); +begin + DataTable.Fields[idx_USUARIOSID_PERFIL].AsInteger := aValue; +end; + +function TUSUARIOSDataTableRules.GetID_PERFILIsNull: boolean; +begin + result := DataTable.Fields[idx_USUARIOSID_PERFIL].IsNull; +end; + +procedure TUSUARIOSDataTableRules.SetID_PERFILIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_USUARIOSID_PERFIL].AsVariant := Null; +end; + +function TUSUARIOSDataTableRules.GetCHECKSUMValue: String; +begin + result := DataTable.Fields[idx_USUARIOSCHECKSUM].AsString; +end; + +procedure TUSUARIOSDataTableRules.SetCHECKSUMValue(const aValue: String); +begin + DataTable.Fields[idx_USUARIOSCHECKSUM].AsString := aValue; +end; + +function TUSUARIOSDataTableRules.GetCHECKSUMIsNull: boolean; +begin + result := DataTable.Fields[idx_USUARIOSCHECKSUM].IsNull; +end; + +procedure TUSUARIOSDataTableRules.SetCHECKSUMIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_USUARIOSCHECKSUM].AsVariant := Null; +end; + + +{ TUSUARIOS_EVENTOSDataTableRules } +constructor TUSUARIOS_EVENTOSDataTableRules.Create(aDataTable: TDADataTable); +var + StrList: TStringList; +begin + inherited; + + StrList := TStringList.Create; + StrList.OnChange := NOTAS_OnChange; + f_NOTAS := NewROStrings(StrList,True); +end; + +destructor TUSUARIOS_EVENTOSDataTableRules.Destroy; +begin + inherited; +end; + +procedure TUSUARIOS_EVENTOSDataTableRules.NOTAS_OnChange(Sender: TObject); +begin + if DataTable.Editing then DataTable.Fields[idx_USUARIOS_EVENTOSNOTAS].AsVariant := TStringList(Sender).Text; +end; + +function TUSUARIOS_EVENTOSDataTableRules.GetAPLICACIONValue: String; +begin + result := DataTable.Fields[idx_USUARIOS_EVENTOSAPLICACION].AsString; +end; + +procedure TUSUARIOS_EVENTOSDataTableRules.SetAPLICACIONValue(const aValue: String); +begin + DataTable.Fields[idx_USUARIOS_EVENTOSAPLICACION].AsString := aValue; +end; + +function TUSUARIOS_EVENTOSDataTableRules.GetAPLICACIONIsNull: boolean; +begin + result := DataTable.Fields[idx_USUARIOS_EVENTOSAPLICACION].IsNull; +end; + +procedure TUSUARIOS_EVENTOSDataTableRules.SetAPLICACIONIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_USUARIOS_EVENTOSAPLICACION].AsVariant := Null; +end; + +function TUSUARIOS_EVENTOSDataTableRules.GetID_USUARIOValue: Integer; +begin + result := DataTable.Fields[idx_USUARIOS_EVENTOSID_USUARIO].AsInteger; +end; + +procedure TUSUARIOS_EVENTOSDataTableRules.SetID_USUARIOValue(const aValue: Integer); +begin + DataTable.Fields[idx_USUARIOS_EVENTOSID_USUARIO].AsInteger := aValue; +end; + +function TUSUARIOS_EVENTOSDataTableRules.GetID_USUARIOIsNull: boolean; +begin + result := DataTable.Fields[idx_USUARIOS_EVENTOSID_USUARIO].IsNull; +end; + +procedure TUSUARIOS_EVENTOSDataTableRules.SetID_USUARIOIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_USUARIOS_EVENTOSID_USUARIO].AsVariant := Null; +end; + +function TUSUARIOS_EVENTOSDataTableRules.GetFECHAValue: String; +begin + result := DataTable.Fields[idx_USUARIOS_EVENTOSFECHA].AsString; +end; + +procedure TUSUARIOS_EVENTOSDataTableRules.SetFECHAValue(const aValue: String); +begin + DataTable.Fields[idx_USUARIOS_EVENTOSFECHA].AsString := aValue; +end; + +function TUSUARIOS_EVENTOSDataTableRules.GetFECHAIsNull: boolean; +begin + result := DataTable.Fields[idx_USUARIOS_EVENTOSFECHA].IsNull; +end; + +procedure TUSUARIOS_EVENTOSDataTableRules.SetFECHAIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_USUARIOS_EVENTOSFECHA].AsVariant := Null; +end; + +function TUSUARIOS_EVENTOSDataTableRules.GetHORAValue: String; +begin + result := DataTable.Fields[idx_USUARIOS_EVENTOSHORA].AsString; +end; + +procedure TUSUARIOS_EVENTOSDataTableRules.SetHORAValue(const aValue: String); +begin + DataTable.Fields[idx_USUARIOS_EVENTOSHORA].AsString := aValue; +end; + +function TUSUARIOS_EVENTOSDataTableRules.GetHORAIsNull: boolean; +begin + result := DataTable.Fields[idx_USUARIOS_EVENTOSHORA].IsNull; +end; + +procedure TUSUARIOS_EVENTOSDataTableRules.SetHORAIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_USUARIOS_EVENTOSHORA].AsVariant := Null; +end; + +function TUSUARIOS_EVENTOSDataTableRules.GetFORMValue: String; +begin + result := DataTable.Fields[idx_USUARIOS_EVENTOSFORM].AsString; +end; + +procedure TUSUARIOS_EVENTOSDataTableRules.SetFORMValue(const aValue: String); +begin + DataTable.Fields[idx_USUARIOS_EVENTOSFORM].AsString := aValue; +end; + +function TUSUARIOS_EVENTOSDataTableRules.GetFORMIsNull: boolean; +begin + result := DataTable.Fields[idx_USUARIOS_EVENTOSFORM].IsNull; +end; + +procedure TUSUARIOS_EVENTOSDataTableRules.SetFORMIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_USUARIOS_EVENTOSFORM].AsVariant := Null; +end; + +function TUSUARIOS_EVENTOSDataTableRules.GetTITULO_FORMValue: String; +begin + result := DataTable.Fields[idx_USUARIOS_EVENTOSTITULO_FORM].AsString; +end; + +procedure TUSUARIOS_EVENTOSDataTableRules.SetTITULO_FORMValue(const aValue: String); +begin + DataTable.Fields[idx_USUARIOS_EVENTOSTITULO_FORM].AsString := aValue; +end; + +function TUSUARIOS_EVENTOSDataTableRules.GetTITULO_FORMIsNull: boolean; +begin + result := DataTable.Fields[idx_USUARIOS_EVENTOSTITULO_FORM].IsNull; +end; + +procedure TUSUARIOS_EVENTOSDataTableRules.SetTITULO_FORMIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_USUARIOS_EVENTOSTITULO_FORM].AsVariant := Null; +end; + +function TUSUARIOS_EVENTOSDataTableRules.GetEVENTOValue: String; +begin + result := DataTable.Fields[idx_USUARIOS_EVENTOSEVENTO].AsString; +end; + +procedure TUSUARIOS_EVENTOSDataTableRules.SetEVENTOValue(const aValue: String); +begin + DataTable.Fields[idx_USUARIOS_EVENTOSEVENTO].AsString := aValue; +end; + +function TUSUARIOS_EVENTOSDataTableRules.GetEVENTOIsNull: boolean; +begin + result := DataTable.Fields[idx_USUARIOS_EVENTOSEVENTO].IsNull; +end; + +procedure TUSUARIOS_EVENTOSDataTableRules.SetEVENTOIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_USUARIOS_EVENTOSEVENTO].AsVariant := Null; +end; + +function TUSUARIOS_EVENTOSDataTableRules.GetNOTASValue: IROStrings; +begin + result := f_NOTAS; + result.Text := DataTable.Fields[idx_USUARIOS_EVENTOSNOTAS].AsString; +end; + +function TUSUARIOS_EVENTOSDataTableRules.GetNOTASIsNull: boolean; +begin + result := DataTable.Fields[idx_USUARIOS_EVENTOSNOTAS].IsNull; +end; + +procedure TUSUARIOS_EVENTOSDataTableRules.SetNOTASIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_USUARIOS_EVENTOSNOTAS].AsVariant := Null; +end; + +function TUSUARIOS_EVENTOSDataTableRules.GetTNAMEValue: String; +begin + result := DataTable.Fields[idx_USUARIOS_EVENTOSTNAME].AsString; +end; + +procedure TUSUARIOS_EVENTOSDataTableRules.SetTNAMEValue(const aValue: String); +begin + DataTable.Fields[idx_USUARIOS_EVENTOSTNAME].AsString := aValue; +end; + +function TUSUARIOS_EVENTOSDataTableRules.GetTNAMEIsNull: boolean; +begin + result := DataTable.Fields[idx_USUARIOS_EVENTOSTNAME].IsNull; +end; + +procedure TUSUARIOS_EVENTOSDataTableRules.SetTNAMEIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_USUARIOS_EVENTOSTNAME].AsVariant := Null; +end; + + +{ TUSUARIOS_LOGONDataTableRules } +constructor TUSUARIOS_LOGONDataTableRules.Create(aDataTable: TDADataTable); +begin + inherited; +end; + +destructor TUSUARIOS_LOGONDataTableRules.Destroy; +begin + inherited; +end; + +function TUSUARIOS_LOGONDataTableRules.GetLOGONIDValue: String; +begin + result := DataTable.Fields[idx_USUARIOS_LOGONLOGONID].AsString; +end; + +procedure TUSUARIOS_LOGONDataTableRules.SetLOGONIDValue(const aValue: String); +begin + DataTable.Fields[idx_USUARIOS_LOGONLOGONID].AsString := aValue; +end; + +function TUSUARIOS_LOGONDataTableRules.GetLOGONIDIsNull: boolean; +begin + result := DataTable.Fields[idx_USUARIOS_LOGONLOGONID].IsNull; +end; + +procedure TUSUARIOS_LOGONDataTableRules.SetLOGONIDIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_USUARIOS_LOGONLOGONID].AsVariant := Null; +end; + +function TUSUARIOS_LOGONDataTableRules.GetID_USUARIOValue: Integer; +begin + result := DataTable.Fields[idx_USUARIOS_LOGONID_USUARIO].AsInteger; +end; + +procedure TUSUARIOS_LOGONDataTableRules.SetID_USUARIOValue(const aValue: Integer); +begin + DataTable.Fields[idx_USUARIOS_LOGONID_USUARIO].AsInteger := aValue; +end; + +function TUSUARIOS_LOGONDataTableRules.GetID_USUARIOIsNull: boolean; +begin + result := DataTable.Fields[idx_USUARIOS_LOGONID_USUARIO].IsNull; +end; + +procedure TUSUARIOS_LOGONDataTableRules.SetID_USUARIOIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_USUARIOS_LOGONID_USUARIO].AsVariant := Null; +end; + +function TUSUARIOS_LOGONDataTableRules.GetAPLICACIONValue: String; +begin + result := DataTable.Fields[idx_USUARIOS_LOGONAPLICACION].AsString; +end; + +procedure TUSUARIOS_LOGONDataTableRules.SetAPLICACIONValue(const aValue: String); +begin + DataTable.Fields[idx_USUARIOS_LOGONAPLICACION].AsString := aValue; +end; + +function TUSUARIOS_LOGONDataTableRules.GetAPLICACIONIsNull: boolean; +begin + result := DataTable.Fields[idx_USUARIOS_LOGONAPLICACION].IsNull; +end; + +procedure TUSUARIOS_LOGONDataTableRules.SetAPLICACIONIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_USUARIOS_LOGONAPLICACION].AsVariant := Null; +end; + +function TUSUARIOS_LOGONDataTableRules.GetEQUIPOValue: String; +begin + result := DataTable.Fields[idx_USUARIOS_LOGONEQUIPO].AsString; +end; + +procedure TUSUARIOS_LOGONDataTableRules.SetEQUIPOValue(const aValue: String); +begin + DataTable.Fields[idx_USUARIOS_LOGONEQUIPO].AsString := aValue; +end; + +function TUSUARIOS_LOGONDataTableRules.GetEQUIPOIsNull: boolean; +begin + result := DataTable.Fields[idx_USUARIOS_LOGONEQUIPO].IsNull; +end; + +procedure TUSUARIOS_LOGONDataTableRules.SetEQUIPOIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_USUARIOS_LOGONEQUIPO].AsVariant := Null; +end; + +function TUSUARIOS_LOGONDataTableRules.GetDATAValue: String; +begin + result := DataTable.Fields[idx_USUARIOS_LOGONDATA].AsString; +end; + +procedure TUSUARIOS_LOGONDataTableRules.SetDATAValue(const aValue: String); +begin + DataTable.Fields[idx_USUARIOS_LOGONDATA].AsString := aValue; +end; + +function TUSUARIOS_LOGONDataTableRules.GetDATAIsNull: boolean; +begin + result := DataTable.Fields[idx_USUARIOS_LOGONDATA].IsNull; +end; + +procedure TUSUARIOS_LOGONDataTableRules.SetDATAIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_USUARIOS_LOGONDATA].AsVariant := Null; +end; + + +{ TPERMISOSDataTableRules } +constructor TPERMISOSDataTableRules.Create(aDataTable: TDADataTable); +begin + inherited; +end; + +destructor TPERMISOSDataTableRules.Destroy; +begin + inherited; +end; + +function TPERMISOSDataTableRules.GetID_USUARIOValue: Integer; +begin + result := DataTable.Fields[idx_PERMISOSID_USUARIO].AsInteger; +end; + +procedure TPERMISOSDataTableRules.SetID_USUARIOValue(const aValue: Integer); +begin + DataTable.Fields[idx_PERMISOSID_USUARIO].AsInteger := aValue; +end; + +function TPERMISOSDataTableRules.GetID_USUARIOIsNull: boolean; +begin + result := DataTable.Fields[idx_PERMISOSID_USUARIO].IsNull; +end; + +procedure TPERMISOSDataTableRules.SetID_USUARIOIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_PERMISOSID_USUARIO].AsVariant := Null; +end; + +function TPERMISOSDataTableRules.GetMODULOValue: String; +begin + result := DataTable.Fields[idx_PERMISOSMODULO].AsString; +end; + +procedure TPERMISOSDataTableRules.SetMODULOValue(const aValue: String); +begin + DataTable.Fields[idx_PERMISOSMODULO].AsString := aValue; +end; + +function TPERMISOSDataTableRules.GetMODULOIsNull: boolean; +begin + result := DataTable.Fields[idx_PERMISOSMODULO].IsNull; +end; + +procedure TPERMISOSDataTableRules.SetMODULOIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_PERMISOSMODULO].AsVariant := Null; +end; + +function TPERMISOSDataTableRules.GetNOMBRECOMPValue: String; +begin + result := DataTable.Fields[idx_PERMISOSNOMBRECOMP].AsString; +end; + +procedure TPERMISOSDataTableRules.SetNOMBRECOMPValue(const aValue: String); +begin + DataTable.Fields[idx_PERMISOSNOMBRECOMP].AsString := aValue; +end; + +function TPERMISOSDataTableRules.GetNOMBRECOMPIsNull: boolean; +begin + result := DataTable.Fields[idx_PERMISOSNOMBRECOMP].IsNull; +end; + +procedure TPERMISOSDataTableRules.SetNOMBRECOMPIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_PERMISOSNOMBRECOMP].AsVariant := Null; +end; + +function TPERMISOSDataTableRules.GetCHECKSUMValue: String; +begin + result := DataTable.Fields[idx_PERMISOSCHECKSUM].AsString; +end; + +procedure TPERMISOSDataTableRules.SetCHECKSUMValue(const aValue: String); +begin + DataTable.Fields[idx_PERMISOSCHECKSUM].AsString := aValue; +end; + +function TPERMISOSDataTableRules.GetCHECKSUMIsNull: boolean; +begin + result := DataTable.Fields[idx_PERMISOSCHECKSUM].IsNull; +end; + +procedure TPERMISOSDataTableRules.SetCHECKSUMIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_PERMISOSCHECKSUM].AsVariant := Null; +end; + + +{ TPERMISOSEXDataTableRules } +constructor TPERMISOSEXDataTableRules.Create(aDataTable: TDADataTable); +begin + inherited; +end; + +destructor TPERMISOSEXDataTableRules.Destroy; +begin + inherited; +end; + +function TPERMISOSEXDataTableRules.GetID_USUARIOValue: Integer; +begin + result := DataTable.Fields[idx_PERMISOSEXID_USUARIO].AsInteger; +end; + +procedure TPERMISOSEXDataTableRules.SetID_USUARIOValue(const aValue: Integer); +begin + DataTable.Fields[idx_PERMISOSEXID_USUARIO].AsInteger := aValue; +end; + +function TPERMISOSEXDataTableRules.GetID_USUARIOIsNull: boolean; +begin + result := DataTable.Fields[idx_PERMISOSEXID_USUARIO].IsNull; +end; + +procedure TPERMISOSEXDataTableRules.SetID_USUARIOIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_PERMISOSEXID_USUARIO].AsVariant := Null; +end; + +function TPERMISOSEXDataTableRules.GetMODULOValue: String; +begin + result := DataTable.Fields[idx_PERMISOSEXMODULO].AsString; +end; + +procedure TPERMISOSEXDataTableRules.SetMODULOValue(const aValue: String); +begin + DataTable.Fields[idx_PERMISOSEXMODULO].AsString := aValue; +end; + +function TPERMISOSEXDataTableRules.GetMODULOIsNull: boolean; +begin + result := DataTable.Fields[idx_PERMISOSEXMODULO].IsNull; +end; + +procedure TPERMISOSEXDataTableRules.SetMODULOIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_PERMISOSEXMODULO].AsVariant := Null; +end; + +function TPERMISOSEXDataTableRules.GetNOMBRECOMPValue: String; +begin + result := DataTable.Fields[idx_PERMISOSEXNOMBRECOMP].AsString; +end; + +procedure TPERMISOSEXDataTableRules.SetNOMBRECOMPValue(const aValue: String); +begin + DataTable.Fields[idx_PERMISOSEXNOMBRECOMP].AsString := aValue; +end; + +function TPERMISOSEXDataTableRules.GetNOMBRECOMPIsNull: boolean; +begin + result := DataTable.Fields[idx_PERMISOSEXNOMBRECOMP].IsNull; +end; + +procedure TPERMISOSEXDataTableRules.SetNOMBRECOMPIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_PERMISOSEXNOMBRECOMP].AsVariant := Null; +end; + +function TPERMISOSEXDataTableRules.GetNOMBREFORMValue: String; +begin + result := DataTable.Fields[idx_PERMISOSEXNOMBREFORM].AsString; +end; + +procedure TPERMISOSEXDataTableRules.SetNOMBREFORMValue(const aValue: String); +begin + DataTable.Fields[idx_PERMISOSEXNOMBREFORM].AsString := aValue; +end; + +function TPERMISOSEXDataTableRules.GetNOMBREFORMIsNull: boolean; +begin + result := DataTable.Fields[idx_PERMISOSEXNOMBREFORM].IsNull; +end; + +procedure TPERMISOSEXDataTableRules.SetNOMBREFORMIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_PERMISOSEXNOMBREFORM].AsVariant := Null; +end; + +function TPERMISOSEXDataTableRules.GetCHECKSUMValue: String; +begin + result := DataTable.Fields[idx_PERMISOSEXCHECKSUM].AsString; +end; + +procedure TPERMISOSEXDataTableRules.SetCHECKSUMValue(const aValue: String); +begin + DataTable.Fields[idx_PERMISOSEXCHECKSUM].AsString := aValue; +end; + +function TPERMISOSEXDataTableRules.GetCHECKSUMIsNull: boolean; +begin + result := DataTable.Fields[idx_PERMISOSEXCHECKSUM].IsNull; +end; + +procedure TPERMISOSEXDataTableRules.SetCHECKSUMIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_PERMISOSEXCHECKSUM].AsVariant := Null; +end; + + +initialization + RegisterDataTableRules(RID_USUARIOS, TUSUARIOSDataTableRules); + RegisterDataTableRules(RID_USUARIOS_EVENTOS, TUSUARIOS_EVENTOSDataTableRules); + RegisterDataTableRules(RID_USUARIOS_LOGON, TUSUARIOS_LOGONDataTableRules); + RegisterDataTableRules(RID_PERMISOS, TPERMISOSDataTableRules); + RegisterDataTableRules(RID_PERMISOSEX, TPERMISOSEXDataTableRules); + +end. diff --git a/Source/ApplicationBase/Usuarios/Model/schUsuariosServer_Intf.pas b/Source/ApplicationBase/Usuarios/Model/schUsuariosServer_Intf.pas new file mode 100644 index 00000000..25699bf6 --- /dev/null +++ b/Source/ApplicationBase/Usuarios/Model/schUsuariosServer_Intf.pas @@ -0,0 +1,1715 @@ +unit schUsuariosServer_Intf; + +interface + +uses + Classes, DB, SysUtils, uROClasses, uDADataTable, uDABusinessProcessor, FmtBCD, uROXMLIntf, schUsuariosClient_Intf; + +const + { Delta rules ids + Feel free to change them to something more human readable + but make sure they are unique in the context of your application } + RID_USUARIOSDelta = '{30AE63B9-1580-4117-9B4F-448F309BD6AC}'; + RID_USUARIOS_EVENTOSDelta = '{81DD56BF-BBB5-4311-9AF3-E72EF8B5EC32}'; + RID_USUARIOS_LOGONDelta = '{BE275431-94DF-4C1C-83D0-C09B4E0DA9D9}'; + RID_PERMISOSDelta = '{F99C6E2E-FE0E-4943-9B69-37B2F48AF314}'; + RID_PERMISOSEXDelta = '{43B62FCB-7C4A-4F3A-9F77-85339308E91A}'; + +type + { IUSUARIOSDelta } + IUSUARIOSDelta = interface(IUSUARIOS) + ['{30AE63B9-1580-4117-9B4F-448F309BD6AC}'] + { Property getters and setters } + function GetOldIDValue : Integer; + function GetOldUSERNAMEValue : String; + function GetOldLOGINValue : String; + function GetOldPASSValue : String; + function GetOldPASSEXPIREDValue : DateTime; + function GetOldBLOQUEADOValue : SmallInt; + function GetOldEMAILValue : String; + function GetOldUSERDAYSSUNValue : Integer; + function GetOldPRIVILEGEDValue : Integer; + function GetOldTIPOValue : String; + function GetOldID_PERFILValue : Integer; + function GetOldCHECKSUMValue : String; + + { Properties } + property OldID : Integer read GetOldIDValue; + property OldUSERNAME : String read GetOldUSERNAMEValue; + property OldLOGIN : String read GetOldLOGINValue; + property OldPASS : String read GetOldPASSValue; + property OldPASSEXPIRED : DateTime read GetOldPASSEXPIREDValue; + property OldBLOQUEADO : SmallInt read GetOldBLOQUEADOValue; + property OldEMAIL : String read GetOldEMAILValue; + property OldUSERDAYSSUN : Integer read GetOldUSERDAYSSUNValue; + property OldPRIVILEGED : Integer read GetOldPRIVILEGEDValue; + property OldTIPO : String read GetOldTIPOValue; + property OldID_PERFIL : Integer read GetOldID_PERFILValue; + property OldCHECKSUM : String read GetOldCHECKSUMValue; + end; + + { TUSUARIOSBusinessProcessorRules } + TUSUARIOSBusinessProcessorRules = class(TDABusinessProcessorRules, IUSUARIOS, IUSUARIOSDelta) + private + protected + { Property getters and setters } + function GetIDValue: Integer; virtual; + function GetIDIsNull: Boolean; virtual; + function GetOldIDValue: Integer; virtual; + function GetOldIDIsNull: Boolean; virtual; + procedure SetIDValue(const aValue: Integer); virtual; + procedure SetIDIsNull(const aValue: Boolean); virtual; + function GetUSERNAMEValue: String; virtual; + function GetUSERNAMEIsNull: Boolean; virtual; + function GetOldUSERNAMEValue: String; virtual; + function GetOldUSERNAMEIsNull: Boolean; virtual; + procedure SetUSERNAMEValue(const aValue: String); virtual; + procedure SetUSERNAMEIsNull(const aValue: Boolean); virtual; + function GetLOGINValue: String; virtual; + function GetLOGINIsNull: Boolean; virtual; + function GetOldLOGINValue: String; virtual; + function GetOldLOGINIsNull: Boolean; virtual; + procedure SetLOGINValue(const aValue: String); virtual; + procedure SetLOGINIsNull(const aValue: Boolean); virtual; + function GetPASSValue: String; virtual; + function GetPASSIsNull: Boolean; virtual; + function GetOldPASSValue: String; virtual; + function GetOldPASSIsNull: Boolean; virtual; + procedure SetPASSValue(const aValue: String); virtual; + procedure SetPASSIsNull(const aValue: Boolean); virtual; + function GetPASSEXPIREDValue: DateTime; virtual; + function GetPASSEXPIREDIsNull: Boolean; virtual; + function GetOldPASSEXPIREDValue: DateTime; virtual; + function GetOldPASSEXPIREDIsNull: Boolean; virtual; + procedure SetPASSEXPIREDValue(const aValue: DateTime); virtual; + procedure SetPASSEXPIREDIsNull(const aValue: Boolean); virtual; + function GetBLOQUEADOValue: SmallInt; virtual; + function GetBLOQUEADOIsNull: Boolean; virtual; + function GetOldBLOQUEADOValue: SmallInt; virtual; + function GetOldBLOQUEADOIsNull: Boolean; virtual; + procedure SetBLOQUEADOValue(const aValue: SmallInt); virtual; + procedure SetBLOQUEADOIsNull(const aValue: Boolean); virtual; + function GetEMAILValue: String; virtual; + function GetEMAILIsNull: Boolean; virtual; + function GetOldEMAILValue: String; virtual; + function GetOldEMAILIsNull: Boolean; virtual; + procedure SetEMAILValue(const aValue: String); virtual; + procedure SetEMAILIsNull(const aValue: Boolean); virtual; + function GetUSERDAYSSUNValue: Integer; virtual; + function GetUSERDAYSSUNIsNull: Boolean; virtual; + function GetOldUSERDAYSSUNValue: Integer; virtual; + function GetOldUSERDAYSSUNIsNull: Boolean; virtual; + procedure SetUSERDAYSSUNValue(const aValue: Integer); virtual; + procedure SetUSERDAYSSUNIsNull(const aValue: Boolean); virtual; + function GetPRIVILEGEDValue: Integer; virtual; + function GetPRIVILEGEDIsNull: Boolean; virtual; + function GetOldPRIVILEGEDValue: Integer; virtual; + function GetOldPRIVILEGEDIsNull: Boolean; virtual; + procedure SetPRIVILEGEDValue(const aValue: Integer); virtual; + procedure SetPRIVILEGEDIsNull(const aValue: Boolean); virtual; + function GetTIPOValue: String; virtual; + function GetTIPOIsNull: Boolean; virtual; + function GetOldTIPOValue: String; virtual; + function GetOldTIPOIsNull: Boolean; virtual; + procedure SetTIPOValue(const aValue: String); virtual; + procedure SetTIPOIsNull(const aValue: Boolean); virtual; + function GetID_PERFILValue: Integer; virtual; + function GetID_PERFILIsNull: Boolean; virtual; + function GetOldID_PERFILValue: Integer; virtual; + function GetOldID_PERFILIsNull: Boolean; virtual; + procedure SetID_PERFILValue(const aValue: Integer); virtual; + procedure SetID_PERFILIsNull(const aValue: Boolean); virtual; + function GetCHECKSUMValue: String; virtual; + function GetCHECKSUMIsNull: Boolean; virtual; + function GetOldCHECKSUMValue: String; virtual; + function GetOldCHECKSUMIsNull: Boolean; virtual; + procedure SetCHECKSUMValue(const aValue: String); virtual; + procedure SetCHECKSUMIsNull(const aValue: Boolean); virtual; + + { Properties } + property ID : Integer read GetIDValue write SetIDValue; + property IDIsNull : Boolean read GetIDIsNull write SetIDIsNull; + property OldID : Integer read GetOldIDValue; + property OldIDIsNull : Boolean read GetOldIDIsNull; + property USERNAME : String read GetUSERNAMEValue write SetUSERNAMEValue; + property USERNAMEIsNull : Boolean read GetUSERNAMEIsNull write SetUSERNAMEIsNull; + property OldUSERNAME : String read GetOldUSERNAMEValue; + property OldUSERNAMEIsNull : Boolean read GetOldUSERNAMEIsNull; + property LOGIN : String read GetLOGINValue write SetLOGINValue; + property LOGINIsNull : Boolean read GetLOGINIsNull write SetLOGINIsNull; + property OldLOGIN : String read GetOldLOGINValue; + property OldLOGINIsNull : Boolean read GetOldLOGINIsNull; + property PASS : String read GetPASSValue write SetPASSValue; + property PASSIsNull : Boolean read GetPASSIsNull write SetPASSIsNull; + property OldPASS : String read GetOldPASSValue; + property OldPASSIsNull : Boolean read GetOldPASSIsNull; + property PASSEXPIRED : DateTime read GetPASSEXPIREDValue write SetPASSEXPIREDValue; + property PASSEXPIREDIsNull : Boolean read GetPASSEXPIREDIsNull write SetPASSEXPIREDIsNull; + property OldPASSEXPIRED : DateTime read GetOldPASSEXPIREDValue; + property OldPASSEXPIREDIsNull : Boolean read GetOldPASSEXPIREDIsNull; + property BLOQUEADO : SmallInt read GetBLOQUEADOValue write SetBLOQUEADOValue; + property BLOQUEADOIsNull : Boolean read GetBLOQUEADOIsNull write SetBLOQUEADOIsNull; + property OldBLOQUEADO : SmallInt read GetOldBLOQUEADOValue; + property OldBLOQUEADOIsNull : Boolean read GetOldBLOQUEADOIsNull; + property EMAIL : String read GetEMAILValue write SetEMAILValue; + property EMAILIsNull : Boolean read GetEMAILIsNull write SetEMAILIsNull; + property OldEMAIL : String read GetOldEMAILValue; + property OldEMAILIsNull : Boolean read GetOldEMAILIsNull; + property USERDAYSSUN : Integer read GetUSERDAYSSUNValue write SetUSERDAYSSUNValue; + property USERDAYSSUNIsNull : Boolean read GetUSERDAYSSUNIsNull write SetUSERDAYSSUNIsNull; + property OldUSERDAYSSUN : Integer read GetOldUSERDAYSSUNValue; + property OldUSERDAYSSUNIsNull : Boolean read GetOldUSERDAYSSUNIsNull; + property PRIVILEGED : Integer read GetPRIVILEGEDValue write SetPRIVILEGEDValue; + property PRIVILEGEDIsNull : Boolean read GetPRIVILEGEDIsNull write SetPRIVILEGEDIsNull; + property OldPRIVILEGED : Integer read GetOldPRIVILEGEDValue; + property OldPRIVILEGEDIsNull : Boolean read GetOldPRIVILEGEDIsNull; + property TIPO : String read GetTIPOValue write SetTIPOValue; + property TIPOIsNull : Boolean read GetTIPOIsNull write SetTIPOIsNull; + property OldTIPO : String read GetOldTIPOValue; + property OldTIPOIsNull : Boolean read GetOldTIPOIsNull; + property ID_PERFIL : Integer read GetID_PERFILValue write SetID_PERFILValue; + property ID_PERFILIsNull : Boolean read GetID_PERFILIsNull write SetID_PERFILIsNull; + property OldID_PERFIL : Integer read GetOldID_PERFILValue; + property OldID_PERFILIsNull : Boolean read GetOldID_PERFILIsNull; + property CHECKSUM : String read GetCHECKSUMValue write SetCHECKSUMValue; + property CHECKSUMIsNull : Boolean read GetCHECKSUMIsNull write SetCHECKSUMIsNull; + property OldCHECKSUM : String read GetOldCHECKSUMValue; + property OldCHECKSUMIsNull : Boolean read GetOldCHECKSUMIsNull; + + public + constructor Create(aBusinessProcessor: TDABusinessProcessor); override; + destructor Destroy; override; + + end; + + { IUSUARIOS_EVENTOSDelta } + IUSUARIOS_EVENTOSDelta = interface(IUSUARIOS_EVENTOS) + ['{81DD56BF-BBB5-4311-9AF3-E72EF8B5EC32}'] + { Property getters and setters } + function GetOldAPLICACIONValue : String; + function GetOldID_USUARIOValue : Integer; + function GetOldFECHAValue : String; + function GetOldHORAValue : String; + function GetOldFORMValue : String; + function GetOldTITULO_FORMValue : String; + function GetOldEVENTOValue : String; + function GetOldNOTASValue : IROStrings; + function GetOldTNAMEValue : String; + + { Properties } + property OldAPLICACION : String read GetOldAPLICACIONValue; + property OldID_USUARIO : Integer read GetOldID_USUARIOValue; + property OldFECHA : String read GetOldFECHAValue; + property OldHORA : String read GetOldHORAValue; + property OldFORM : String read GetOldFORMValue; + property OldTITULO_FORM : String read GetOldTITULO_FORMValue; + property OldEVENTO : String read GetOldEVENTOValue; + property OldNOTAS : IROStrings read GetOldNOTASValue; + property OldTNAME : String read GetOldTNAMEValue; + end; + + { TUSUARIOS_EVENTOSBusinessProcessorRules } + TUSUARIOS_EVENTOSBusinessProcessorRules = class(TDABusinessProcessorRules, IUSUARIOS_EVENTOS, IUSUARIOS_EVENTOSDelta) + private + f_NOTAS: IROStrings; + procedure NOTAS_OnChange(Sender: TObject); + protected + { Property getters and setters } + function GetAPLICACIONValue: String; virtual; + function GetAPLICACIONIsNull: Boolean; virtual; + function GetOldAPLICACIONValue: String; virtual; + function GetOldAPLICACIONIsNull: Boolean; virtual; + procedure SetAPLICACIONValue(const aValue: String); virtual; + procedure SetAPLICACIONIsNull(const aValue: Boolean); virtual; + function GetID_USUARIOValue: Integer; virtual; + function GetID_USUARIOIsNull: Boolean; virtual; + function GetOldID_USUARIOValue: Integer; virtual; + function GetOldID_USUARIOIsNull: Boolean; virtual; + procedure SetID_USUARIOValue(const aValue: Integer); virtual; + procedure SetID_USUARIOIsNull(const aValue: Boolean); virtual; + function GetFECHAValue: String; virtual; + function GetFECHAIsNull: Boolean; virtual; + function GetOldFECHAValue: String; virtual; + function GetOldFECHAIsNull: Boolean; virtual; + procedure SetFECHAValue(const aValue: String); virtual; + procedure SetFECHAIsNull(const aValue: Boolean); virtual; + function GetHORAValue: String; virtual; + function GetHORAIsNull: Boolean; virtual; + function GetOldHORAValue: String; virtual; + function GetOldHORAIsNull: Boolean; virtual; + procedure SetHORAValue(const aValue: String); virtual; + procedure SetHORAIsNull(const aValue: Boolean); virtual; + function GetFORMValue: String; virtual; + function GetFORMIsNull: Boolean; virtual; + function GetOldFORMValue: String; virtual; + function GetOldFORMIsNull: Boolean; virtual; + procedure SetFORMValue(const aValue: String); virtual; + procedure SetFORMIsNull(const aValue: Boolean); virtual; + function GetTITULO_FORMValue: String; virtual; + function GetTITULO_FORMIsNull: Boolean; virtual; + function GetOldTITULO_FORMValue: String; virtual; + function GetOldTITULO_FORMIsNull: Boolean; virtual; + procedure SetTITULO_FORMValue(const aValue: String); virtual; + procedure SetTITULO_FORMIsNull(const aValue: Boolean); virtual; + function GetEVENTOValue: String; virtual; + function GetEVENTOIsNull: Boolean; virtual; + function GetOldEVENTOValue: String; virtual; + function GetOldEVENTOIsNull: Boolean; virtual; + procedure SetEVENTOValue(const aValue: String); virtual; + procedure SetEVENTOIsNull(const aValue: Boolean); virtual; + function GetNOTASValue: IROStrings; virtual; + function GetNOTASIsNull: Boolean; virtual; + function GetOldNOTASValue: IROStrings; virtual; + function GetOldNOTASIsNull: Boolean; virtual; + procedure SetNOTASIsNull(const aValue: Boolean); virtual; + function GetTNAMEValue: String; virtual; + function GetTNAMEIsNull: Boolean; virtual; + function GetOldTNAMEValue: String; virtual; + function GetOldTNAMEIsNull: Boolean; virtual; + procedure SetTNAMEValue(const aValue: String); virtual; + procedure SetTNAMEIsNull(const aValue: Boolean); virtual; + + { Properties } + property APLICACION : String read GetAPLICACIONValue write SetAPLICACIONValue; + property APLICACIONIsNull : Boolean read GetAPLICACIONIsNull write SetAPLICACIONIsNull; + property OldAPLICACION : String read GetOldAPLICACIONValue; + property OldAPLICACIONIsNull : Boolean read GetOldAPLICACIONIsNull; + property ID_USUARIO : Integer read GetID_USUARIOValue write SetID_USUARIOValue; + property ID_USUARIOIsNull : Boolean read GetID_USUARIOIsNull write SetID_USUARIOIsNull; + property OldID_USUARIO : Integer read GetOldID_USUARIOValue; + property OldID_USUARIOIsNull : Boolean read GetOldID_USUARIOIsNull; + property FECHA : String read GetFECHAValue write SetFECHAValue; + property FECHAIsNull : Boolean read GetFECHAIsNull write SetFECHAIsNull; + property OldFECHA : String read GetOldFECHAValue; + property OldFECHAIsNull : Boolean read GetOldFECHAIsNull; + property HORA : String read GetHORAValue write SetHORAValue; + property HORAIsNull : Boolean read GetHORAIsNull write SetHORAIsNull; + property OldHORA : String read GetOldHORAValue; + property OldHORAIsNull : Boolean read GetOldHORAIsNull; + property FORM : String read GetFORMValue write SetFORMValue; + property FORMIsNull : Boolean read GetFORMIsNull write SetFORMIsNull; + property OldFORM : String read GetOldFORMValue; + property OldFORMIsNull : Boolean read GetOldFORMIsNull; + property TITULO_FORM : String read GetTITULO_FORMValue write SetTITULO_FORMValue; + property TITULO_FORMIsNull : Boolean read GetTITULO_FORMIsNull write SetTITULO_FORMIsNull; + property OldTITULO_FORM : String read GetOldTITULO_FORMValue; + property OldTITULO_FORMIsNull : Boolean read GetOldTITULO_FORMIsNull; + property EVENTO : String read GetEVENTOValue write SetEVENTOValue; + property EVENTOIsNull : Boolean read GetEVENTOIsNull write SetEVENTOIsNull; + property OldEVENTO : String read GetOldEVENTOValue; + property OldEVENTOIsNull : Boolean read GetOldEVENTOIsNull; + property NOTAS : IROStrings read GetNOTASValue; + property NOTASIsNull : Boolean read GetNOTASIsNull write SetNOTASIsNull; + property OldNOTAS : IROStrings read GetOldNOTASValue; + property OldNOTASIsNull : Boolean read GetOldNOTASIsNull; + property TNAME : String read GetTNAMEValue write SetTNAMEValue; + property TNAMEIsNull : Boolean read GetTNAMEIsNull write SetTNAMEIsNull; + property OldTNAME : String read GetOldTNAMEValue; + property OldTNAMEIsNull : Boolean read GetOldTNAMEIsNull; + + public + constructor Create(aBusinessProcessor: TDABusinessProcessor); override; + destructor Destroy; override; + + end; + + { IUSUARIOS_LOGONDelta } + IUSUARIOS_LOGONDelta = interface(IUSUARIOS_LOGON) + ['{BE275431-94DF-4C1C-83D0-C09B4E0DA9D9}'] + { Property getters and setters } + function GetOldLOGONIDValue : String; + function GetOldID_USUARIOValue : Integer; + function GetOldAPLICACIONValue : String; + function GetOldEQUIPOValue : String; + function GetOldDATAValue : String; + + { Properties } + property OldLOGONID : String read GetOldLOGONIDValue; + property OldID_USUARIO : Integer read GetOldID_USUARIOValue; + property OldAPLICACION : String read GetOldAPLICACIONValue; + property OldEQUIPO : String read GetOldEQUIPOValue; + property OldDATA : String read GetOldDATAValue; + end; + + { TUSUARIOS_LOGONBusinessProcessorRules } + TUSUARIOS_LOGONBusinessProcessorRules = class(TDABusinessProcessorRules, IUSUARIOS_LOGON, IUSUARIOS_LOGONDelta) + private + protected + { Property getters and setters } + function GetLOGONIDValue: String; virtual; + function GetLOGONIDIsNull: Boolean; virtual; + function GetOldLOGONIDValue: String; virtual; + function GetOldLOGONIDIsNull: Boolean; virtual; + procedure SetLOGONIDValue(const aValue: String); virtual; + procedure SetLOGONIDIsNull(const aValue: Boolean); virtual; + function GetID_USUARIOValue: Integer; virtual; + function GetID_USUARIOIsNull: Boolean; virtual; + function GetOldID_USUARIOValue: Integer; virtual; + function GetOldID_USUARIOIsNull: Boolean; virtual; + procedure SetID_USUARIOValue(const aValue: Integer); virtual; + procedure SetID_USUARIOIsNull(const aValue: Boolean); virtual; + function GetAPLICACIONValue: String; virtual; + function GetAPLICACIONIsNull: Boolean; virtual; + function GetOldAPLICACIONValue: String; virtual; + function GetOldAPLICACIONIsNull: Boolean; virtual; + procedure SetAPLICACIONValue(const aValue: String); virtual; + procedure SetAPLICACIONIsNull(const aValue: Boolean); virtual; + function GetEQUIPOValue: String; virtual; + function GetEQUIPOIsNull: Boolean; virtual; + function GetOldEQUIPOValue: String; virtual; + function GetOldEQUIPOIsNull: Boolean; virtual; + procedure SetEQUIPOValue(const aValue: String); virtual; + procedure SetEQUIPOIsNull(const aValue: Boolean); virtual; + function GetDATAValue: String; virtual; + function GetDATAIsNull: Boolean; virtual; + function GetOldDATAValue: String; virtual; + function GetOldDATAIsNull: Boolean; virtual; + procedure SetDATAValue(const aValue: String); virtual; + procedure SetDATAIsNull(const aValue: Boolean); virtual; + + { Properties } + property LOGONID : String read GetLOGONIDValue write SetLOGONIDValue; + property LOGONIDIsNull : Boolean read GetLOGONIDIsNull write SetLOGONIDIsNull; + property OldLOGONID : String read GetOldLOGONIDValue; + property OldLOGONIDIsNull : Boolean read GetOldLOGONIDIsNull; + property ID_USUARIO : Integer read GetID_USUARIOValue write SetID_USUARIOValue; + property ID_USUARIOIsNull : Boolean read GetID_USUARIOIsNull write SetID_USUARIOIsNull; + property OldID_USUARIO : Integer read GetOldID_USUARIOValue; + property OldID_USUARIOIsNull : Boolean read GetOldID_USUARIOIsNull; + property APLICACION : String read GetAPLICACIONValue write SetAPLICACIONValue; + property APLICACIONIsNull : Boolean read GetAPLICACIONIsNull write SetAPLICACIONIsNull; + property OldAPLICACION : String read GetOldAPLICACIONValue; + property OldAPLICACIONIsNull : Boolean read GetOldAPLICACIONIsNull; + property EQUIPO : String read GetEQUIPOValue write SetEQUIPOValue; + property EQUIPOIsNull : Boolean read GetEQUIPOIsNull write SetEQUIPOIsNull; + property OldEQUIPO : String read GetOldEQUIPOValue; + property OldEQUIPOIsNull : Boolean read GetOldEQUIPOIsNull; + property DATA : String read GetDATAValue write SetDATAValue; + property DATAIsNull : Boolean read GetDATAIsNull write SetDATAIsNull; + property OldDATA : String read GetOldDATAValue; + property OldDATAIsNull : Boolean read GetOldDATAIsNull; + + public + constructor Create(aBusinessProcessor: TDABusinessProcessor); override; + destructor Destroy; override; + + end; + + { IPERMISOSDelta } + IPERMISOSDelta = interface(IPERMISOS) + ['{F99C6E2E-FE0E-4943-9B69-37B2F48AF314}'] + { Property getters and setters } + function GetOldID_USUARIOValue : Integer; + function GetOldMODULOValue : String; + function GetOldNOMBRECOMPValue : String; + function GetOldCHECKSUMValue : String; + + { Properties } + property OldID_USUARIO : Integer read GetOldID_USUARIOValue; + property OldMODULO : String read GetOldMODULOValue; + property OldNOMBRECOMP : String read GetOldNOMBRECOMPValue; + property OldCHECKSUM : String read GetOldCHECKSUMValue; + end; + + { TPERMISOSBusinessProcessorRules } + TPERMISOSBusinessProcessorRules = class(TDABusinessProcessorRules, IPERMISOS, IPERMISOSDelta) + private + protected + { Property getters and setters } + function GetID_USUARIOValue: Integer; virtual; + function GetID_USUARIOIsNull: Boolean; virtual; + function GetOldID_USUARIOValue: Integer; virtual; + function GetOldID_USUARIOIsNull: Boolean; virtual; + procedure SetID_USUARIOValue(const aValue: Integer); virtual; + procedure SetID_USUARIOIsNull(const aValue: Boolean); virtual; + function GetMODULOValue: String; virtual; + function GetMODULOIsNull: Boolean; virtual; + function GetOldMODULOValue: String; virtual; + function GetOldMODULOIsNull: Boolean; virtual; + procedure SetMODULOValue(const aValue: String); virtual; + procedure SetMODULOIsNull(const aValue: Boolean); virtual; + function GetNOMBRECOMPValue: String; virtual; + function GetNOMBRECOMPIsNull: Boolean; virtual; + function GetOldNOMBRECOMPValue: String; virtual; + function GetOldNOMBRECOMPIsNull: Boolean; virtual; + procedure SetNOMBRECOMPValue(const aValue: String); virtual; + procedure SetNOMBRECOMPIsNull(const aValue: Boolean); virtual; + function GetCHECKSUMValue: String; virtual; + function GetCHECKSUMIsNull: Boolean; virtual; + function GetOldCHECKSUMValue: String; virtual; + function GetOldCHECKSUMIsNull: Boolean; virtual; + procedure SetCHECKSUMValue(const aValue: String); virtual; + procedure SetCHECKSUMIsNull(const aValue: Boolean); virtual; + + { Properties } + property ID_USUARIO : Integer read GetID_USUARIOValue write SetID_USUARIOValue; + property ID_USUARIOIsNull : Boolean read GetID_USUARIOIsNull write SetID_USUARIOIsNull; + property OldID_USUARIO : Integer read GetOldID_USUARIOValue; + property OldID_USUARIOIsNull : Boolean read GetOldID_USUARIOIsNull; + property MODULO : String read GetMODULOValue write SetMODULOValue; + property MODULOIsNull : Boolean read GetMODULOIsNull write SetMODULOIsNull; + property OldMODULO : String read GetOldMODULOValue; + property OldMODULOIsNull : Boolean read GetOldMODULOIsNull; + property NOMBRECOMP : String read GetNOMBRECOMPValue write SetNOMBRECOMPValue; + property NOMBRECOMPIsNull : Boolean read GetNOMBRECOMPIsNull write SetNOMBRECOMPIsNull; + property OldNOMBRECOMP : String read GetOldNOMBRECOMPValue; + property OldNOMBRECOMPIsNull : Boolean read GetOldNOMBRECOMPIsNull; + property CHECKSUM : String read GetCHECKSUMValue write SetCHECKSUMValue; + property CHECKSUMIsNull : Boolean read GetCHECKSUMIsNull write SetCHECKSUMIsNull; + property OldCHECKSUM : String read GetOldCHECKSUMValue; + property OldCHECKSUMIsNull : Boolean read GetOldCHECKSUMIsNull; + + public + constructor Create(aBusinessProcessor: TDABusinessProcessor); override; + destructor Destroy; override; + + end; + + { IPERMISOSEXDelta } + IPERMISOSEXDelta = interface(IPERMISOSEX) + ['{43B62FCB-7C4A-4F3A-9F77-85339308E91A}'] + { Property getters and setters } + function GetOldID_USUARIOValue : Integer; + function GetOldMODULOValue : String; + function GetOldNOMBRECOMPValue : String; + function GetOldNOMBREFORMValue : String; + function GetOldCHECKSUMValue : String; + + { Properties } + property OldID_USUARIO : Integer read GetOldID_USUARIOValue; + property OldMODULO : String read GetOldMODULOValue; + property OldNOMBRECOMP : String read GetOldNOMBRECOMPValue; + property OldNOMBREFORM : String read GetOldNOMBREFORMValue; + property OldCHECKSUM : String read GetOldCHECKSUMValue; + end; + + { TPERMISOSEXBusinessProcessorRules } + TPERMISOSEXBusinessProcessorRules = class(TDABusinessProcessorRules, IPERMISOSEX, IPERMISOSEXDelta) + private + protected + { Property getters and setters } + function GetID_USUARIOValue: Integer; virtual; + function GetID_USUARIOIsNull: Boolean; virtual; + function GetOldID_USUARIOValue: Integer; virtual; + function GetOldID_USUARIOIsNull: Boolean; virtual; + procedure SetID_USUARIOValue(const aValue: Integer); virtual; + procedure SetID_USUARIOIsNull(const aValue: Boolean); virtual; + function GetMODULOValue: String; virtual; + function GetMODULOIsNull: Boolean; virtual; + function GetOldMODULOValue: String; virtual; + function GetOldMODULOIsNull: Boolean; virtual; + procedure SetMODULOValue(const aValue: String); virtual; + procedure SetMODULOIsNull(const aValue: Boolean); virtual; + function GetNOMBRECOMPValue: String; virtual; + function GetNOMBRECOMPIsNull: Boolean; virtual; + function GetOldNOMBRECOMPValue: String; virtual; + function GetOldNOMBRECOMPIsNull: Boolean; virtual; + procedure SetNOMBRECOMPValue(const aValue: String); virtual; + procedure SetNOMBRECOMPIsNull(const aValue: Boolean); virtual; + function GetNOMBREFORMValue: String; virtual; + function GetNOMBREFORMIsNull: Boolean; virtual; + function GetOldNOMBREFORMValue: String; virtual; + function GetOldNOMBREFORMIsNull: Boolean; virtual; + procedure SetNOMBREFORMValue(const aValue: String); virtual; + procedure SetNOMBREFORMIsNull(const aValue: Boolean); virtual; + function GetCHECKSUMValue: String; virtual; + function GetCHECKSUMIsNull: Boolean; virtual; + function GetOldCHECKSUMValue: String; virtual; + function GetOldCHECKSUMIsNull: Boolean; virtual; + procedure SetCHECKSUMValue(const aValue: String); virtual; + procedure SetCHECKSUMIsNull(const aValue: Boolean); virtual; + + { Properties } + property ID_USUARIO : Integer read GetID_USUARIOValue write SetID_USUARIOValue; + property ID_USUARIOIsNull : Boolean read GetID_USUARIOIsNull write SetID_USUARIOIsNull; + property OldID_USUARIO : Integer read GetOldID_USUARIOValue; + property OldID_USUARIOIsNull : Boolean read GetOldID_USUARIOIsNull; + property MODULO : String read GetMODULOValue write SetMODULOValue; + property MODULOIsNull : Boolean read GetMODULOIsNull write SetMODULOIsNull; + property OldMODULO : String read GetOldMODULOValue; + property OldMODULOIsNull : Boolean read GetOldMODULOIsNull; + property NOMBRECOMP : String read GetNOMBRECOMPValue write SetNOMBRECOMPValue; + property NOMBRECOMPIsNull : Boolean read GetNOMBRECOMPIsNull write SetNOMBRECOMPIsNull; + property OldNOMBRECOMP : String read GetOldNOMBRECOMPValue; + property OldNOMBRECOMPIsNull : Boolean read GetOldNOMBRECOMPIsNull; + property NOMBREFORM : String read GetNOMBREFORMValue write SetNOMBREFORMValue; + property NOMBREFORMIsNull : Boolean read GetNOMBREFORMIsNull write SetNOMBREFORMIsNull; + property OldNOMBREFORM : String read GetOldNOMBREFORMValue; + property OldNOMBREFORMIsNull : Boolean read GetOldNOMBREFORMIsNull; + property CHECKSUM : String read GetCHECKSUMValue write SetCHECKSUMValue; + property CHECKSUMIsNull : Boolean read GetCHECKSUMIsNull write SetCHECKSUMIsNull; + property OldCHECKSUM : String read GetOldCHECKSUMValue; + property OldCHECKSUMIsNull : Boolean read GetOldCHECKSUMIsNull; + + public + constructor Create(aBusinessProcessor: TDABusinessProcessor); override; + destructor Destroy; override; + + end; + +implementation + +uses + Variants, uROBinaryHelpers, uDAInterfaces; + +{ TUSUARIOSBusinessProcessorRules } +constructor TUSUARIOSBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor); +begin + inherited; +end; + +destructor TUSUARIOSBusinessProcessorRules.Destroy; +begin + inherited; +end; + +function TUSUARIOSBusinessProcessorRules.GetIDValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_USUARIOSID]; +end; + +function TUSUARIOSBusinessProcessorRules.GetIDIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_USUARIOSID]); +end; + +function TUSUARIOSBusinessProcessorRules.GetOldIDValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_USUARIOSID]; +end; + +function TUSUARIOSBusinessProcessorRules.GetOldIDIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_USUARIOSID]); +end; + +procedure TUSUARIOSBusinessProcessorRules.SetIDValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_USUARIOSID] := aValue; +end; + +procedure TUSUARIOSBusinessProcessorRules.SetIDIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_USUARIOSID] := Null; +end; + +function TUSUARIOSBusinessProcessorRules.GetUSERNAMEValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_USUARIOSUSERNAME]; +end; + +function TUSUARIOSBusinessProcessorRules.GetUSERNAMEIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_USUARIOSUSERNAME]); +end; + +function TUSUARIOSBusinessProcessorRules.GetOldUSERNAMEValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_USUARIOSUSERNAME]; +end; + +function TUSUARIOSBusinessProcessorRules.GetOldUSERNAMEIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_USUARIOSUSERNAME]); +end; + +procedure TUSUARIOSBusinessProcessorRules.SetUSERNAMEValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_USUARIOSUSERNAME] := aValue; +end; + +procedure TUSUARIOSBusinessProcessorRules.SetUSERNAMEIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_USUARIOSUSERNAME] := Null; +end; + +function TUSUARIOSBusinessProcessorRules.GetLOGINValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_USUARIOSLOGIN]; +end; + +function TUSUARIOSBusinessProcessorRules.GetLOGINIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_USUARIOSLOGIN]); +end; + +function TUSUARIOSBusinessProcessorRules.GetOldLOGINValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_USUARIOSLOGIN]; +end; + +function TUSUARIOSBusinessProcessorRules.GetOldLOGINIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_USUARIOSLOGIN]); +end; + +procedure TUSUARIOSBusinessProcessorRules.SetLOGINValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_USUARIOSLOGIN] := aValue; +end; + +procedure TUSUARIOSBusinessProcessorRules.SetLOGINIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_USUARIOSLOGIN] := Null; +end; + +function TUSUARIOSBusinessProcessorRules.GetPASSValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_USUARIOSPASS]; +end; + +function TUSUARIOSBusinessProcessorRules.GetPASSIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_USUARIOSPASS]); +end; + +function TUSUARIOSBusinessProcessorRules.GetOldPASSValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_USUARIOSPASS]; +end; + +function TUSUARIOSBusinessProcessorRules.GetOldPASSIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_USUARIOSPASS]); +end; + +procedure TUSUARIOSBusinessProcessorRules.SetPASSValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_USUARIOSPASS] := aValue; +end; + +procedure TUSUARIOSBusinessProcessorRules.SetPASSIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_USUARIOSPASS] := Null; +end; + +function TUSUARIOSBusinessProcessorRules.GetPASSEXPIREDValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_USUARIOSPASSEXPIRED]; +end; + +function TUSUARIOSBusinessProcessorRules.GetPASSEXPIREDIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_USUARIOSPASSEXPIRED]); +end; + +function TUSUARIOSBusinessProcessorRules.GetOldPASSEXPIREDValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_USUARIOSPASSEXPIRED]; +end; + +function TUSUARIOSBusinessProcessorRules.GetOldPASSEXPIREDIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_USUARIOSPASSEXPIRED]); +end; + +procedure TUSUARIOSBusinessProcessorRules.SetPASSEXPIREDValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_USUARIOSPASSEXPIRED] := aValue; +end; + +procedure TUSUARIOSBusinessProcessorRules.SetPASSEXPIREDIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_USUARIOSPASSEXPIRED] := Null; +end; + +function TUSUARIOSBusinessProcessorRules.GetBLOQUEADOValue: SmallInt; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_USUARIOSBLOQUEADO]; +end; + +function TUSUARIOSBusinessProcessorRules.GetBLOQUEADOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_USUARIOSBLOQUEADO]); +end; + +function TUSUARIOSBusinessProcessorRules.GetOldBLOQUEADOValue: SmallInt; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_USUARIOSBLOQUEADO]; +end; + +function TUSUARIOSBusinessProcessorRules.GetOldBLOQUEADOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_USUARIOSBLOQUEADO]); +end; + +procedure TUSUARIOSBusinessProcessorRules.SetBLOQUEADOValue(const aValue: SmallInt); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_USUARIOSBLOQUEADO] := aValue; +end; + +procedure TUSUARIOSBusinessProcessorRules.SetBLOQUEADOIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_USUARIOSBLOQUEADO] := Null; +end; + +function TUSUARIOSBusinessProcessorRules.GetEMAILValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_USUARIOSEMAIL]; +end; + +function TUSUARIOSBusinessProcessorRules.GetEMAILIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_USUARIOSEMAIL]); +end; + +function TUSUARIOSBusinessProcessorRules.GetOldEMAILValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_USUARIOSEMAIL]; +end; + +function TUSUARIOSBusinessProcessorRules.GetOldEMAILIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_USUARIOSEMAIL]); +end; + +procedure TUSUARIOSBusinessProcessorRules.SetEMAILValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_USUARIOSEMAIL] := aValue; +end; + +procedure TUSUARIOSBusinessProcessorRules.SetEMAILIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_USUARIOSEMAIL] := Null; +end; + +function TUSUARIOSBusinessProcessorRules.GetUSERDAYSSUNValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_USUARIOSUSERDAYSSUN]; +end; + +function TUSUARIOSBusinessProcessorRules.GetUSERDAYSSUNIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_USUARIOSUSERDAYSSUN]); +end; + +function TUSUARIOSBusinessProcessorRules.GetOldUSERDAYSSUNValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_USUARIOSUSERDAYSSUN]; +end; + +function TUSUARIOSBusinessProcessorRules.GetOldUSERDAYSSUNIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_USUARIOSUSERDAYSSUN]); +end; + +procedure TUSUARIOSBusinessProcessorRules.SetUSERDAYSSUNValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_USUARIOSUSERDAYSSUN] := aValue; +end; + +procedure TUSUARIOSBusinessProcessorRules.SetUSERDAYSSUNIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_USUARIOSUSERDAYSSUN] := Null; +end; + +function TUSUARIOSBusinessProcessorRules.GetPRIVILEGEDValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_USUARIOSPRIVILEGED]; +end; + +function TUSUARIOSBusinessProcessorRules.GetPRIVILEGEDIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_USUARIOSPRIVILEGED]); +end; + +function TUSUARIOSBusinessProcessorRules.GetOldPRIVILEGEDValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_USUARIOSPRIVILEGED]; +end; + +function TUSUARIOSBusinessProcessorRules.GetOldPRIVILEGEDIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_USUARIOSPRIVILEGED]); +end; + +procedure TUSUARIOSBusinessProcessorRules.SetPRIVILEGEDValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_USUARIOSPRIVILEGED] := aValue; +end; + +procedure TUSUARIOSBusinessProcessorRules.SetPRIVILEGEDIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_USUARIOSPRIVILEGED] := Null; +end; + +function TUSUARIOSBusinessProcessorRules.GetTIPOValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_USUARIOSTIPO]; +end; + +function TUSUARIOSBusinessProcessorRules.GetTIPOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_USUARIOSTIPO]); +end; + +function TUSUARIOSBusinessProcessorRules.GetOldTIPOValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_USUARIOSTIPO]; +end; + +function TUSUARIOSBusinessProcessorRules.GetOldTIPOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_USUARIOSTIPO]); +end; + +procedure TUSUARIOSBusinessProcessorRules.SetTIPOValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_USUARIOSTIPO] := aValue; +end; + +procedure TUSUARIOSBusinessProcessorRules.SetTIPOIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_USUARIOSTIPO] := Null; +end; + +function TUSUARIOSBusinessProcessorRules.GetID_PERFILValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_USUARIOSID_PERFIL]; +end; + +function TUSUARIOSBusinessProcessorRules.GetID_PERFILIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_USUARIOSID_PERFIL]); +end; + +function TUSUARIOSBusinessProcessorRules.GetOldID_PERFILValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_USUARIOSID_PERFIL]; +end; + +function TUSUARIOSBusinessProcessorRules.GetOldID_PERFILIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_USUARIOSID_PERFIL]); +end; + +procedure TUSUARIOSBusinessProcessorRules.SetID_PERFILValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_USUARIOSID_PERFIL] := aValue; +end; + +procedure TUSUARIOSBusinessProcessorRules.SetID_PERFILIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_USUARIOSID_PERFIL] := Null; +end; + +function TUSUARIOSBusinessProcessorRules.GetCHECKSUMValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_USUARIOSCHECKSUM]; +end; + +function TUSUARIOSBusinessProcessorRules.GetCHECKSUMIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_USUARIOSCHECKSUM]); +end; + +function TUSUARIOSBusinessProcessorRules.GetOldCHECKSUMValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_USUARIOSCHECKSUM]; +end; + +function TUSUARIOSBusinessProcessorRules.GetOldCHECKSUMIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_USUARIOSCHECKSUM]); +end; + +procedure TUSUARIOSBusinessProcessorRules.SetCHECKSUMValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_USUARIOSCHECKSUM] := aValue; +end; + +procedure TUSUARIOSBusinessProcessorRules.SetCHECKSUMIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_USUARIOSCHECKSUM] := Null; +end; + + +{ TUSUARIOS_EVENTOSBusinessProcessorRules } +constructor TUSUARIOS_EVENTOSBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor); +var + StrList: TStringList; +begin + inherited; + + StrList := TStringList.Create; + StrList.OnChange := NOTAS_OnChange; + f_NOTAS := NewROStrings(StrList,True); +end; + +destructor TUSUARIOS_EVENTOSBusinessProcessorRules.Destroy; +begin + inherited; +end; + +procedure TUSUARIOS_EVENTOSBusinessProcessorRules.NOTAS_OnChange(Sender: TObject); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_USUARIOS_EVENTOSNOTAS] := TStringList(Sender).Text; +end; + +function TUSUARIOS_EVENTOSBusinessProcessorRules.GetAPLICACIONValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_USUARIOS_EVENTOSAPLICACION]; +end; + +function TUSUARIOS_EVENTOSBusinessProcessorRules.GetAPLICACIONIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_USUARIOS_EVENTOSAPLICACION]); +end; + +function TUSUARIOS_EVENTOSBusinessProcessorRules.GetOldAPLICACIONValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_USUARIOS_EVENTOSAPLICACION]; +end; + +function TUSUARIOS_EVENTOSBusinessProcessorRules.GetOldAPLICACIONIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_USUARIOS_EVENTOSAPLICACION]); +end; + +procedure TUSUARIOS_EVENTOSBusinessProcessorRules.SetAPLICACIONValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_USUARIOS_EVENTOSAPLICACION] := aValue; +end; + +procedure TUSUARIOS_EVENTOSBusinessProcessorRules.SetAPLICACIONIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_USUARIOS_EVENTOSAPLICACION] := Null; +end; + +function TUSUARIOS_EVENTOSBusinessProcessorRules.GetID_USUARIOValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_USUARIOS_EVENTOSID_USUARIO]; +end; + +function TUSUARIOS_EVENTOSBusinessProcessorRules.GetID_USUARIOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_USUARIOS_EVENTOSID_USUARIO]); +end; + +function TUSUARIOS_EVENTOSBusinessProcessorRules.GetOldID_USUARIOValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_USUARIOS_EVENTOSID_USUARIO]; +end; + +function TUSUARIOS_EVENTOSBusinessProcessorRules.GetOldID_USUARIOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_USUARIOS_EVENTOSID_USUARIO]); +end; + +procedure TUSUARIOS_EVENTOSBusinessProcessorRules.SetID_USUARIOValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_USUARIOS_EVENTOSID_USUARIO] := aValue; +end; + +procedure TUSUARIOS_EVENTOSBusinessProcessorRules.SetID_USUARIOIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_USUARIOS_EVENTOSID_USUARIO] := Null; +end; + +function TUSUARIOS_EVENTOSBusinessProcessorRules.GetFECHAValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_USUARIOS_EVENTOSFECHA]; +end; + +function TUSUARIOS_EVENTOSBusinessProcessorRules.GetFECHAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_USUARIOS_EVENTOSFECHA]); +end; + +function TUSUARIOS_EVENTOSBusinessProcessorRules.GetOldFECHAValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_USUARIOS_EVENTOSFECHA]; +end; + +function TUSUARIOS_EVENTOSBusinessProcessorRules.GetOldFECHAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_USUARIOS_EVENTOSFECHA]); +end; + +procedure TUSUARIOS_EVENTOSBusinessProcessorRules.SetFECHAValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_USUARIOS_EVENTOSFECHA] := aValue; +end; + +procedure TUSUARIOS_EVENTOSBusinessProcessorRules.SetFECHAIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_USUARIOS_EVENTOSFECHA] := Null; +end; + +function TUSUARIOS_EVENTOSBusinessProcessorRules.GetHORAValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_USUARIOS_EVENTOSHORA]; +end; + +function TUSUARIOS_EVENTOSBusinessProcessorRules.GetHORAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_USUARIOS_EVENTOSHORA]); +end; + +function TUSUARIOS_EVENTOSBusinessProcessorRules.GetOldHORAValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_USUARIOS_EVENTOSHORA]; +end; + +function TUSUARIOS_EVENTOSBusinessProcessorRules.GetOldHORAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_USUARIOS_EVENTOSHORA]); +end; + +procedure TUSUARIOS_EVENTOSBusinessProcessorRules.SetHORAValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_USUARIOS_EVENTOSHORA] := aValue; +end; + +procedure TUSUARIOS_EVENTOSBusinessProcessorRules.SetHORAIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_USUARIOS_EVENTOSHORA] := Null; +end; + +function TUSUARIOS_EVENTOSBusinessProcessorRules.GetFORMValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_USUARIOS_EVENTOSFORM]; +end; + +function TUSUARIOS_EVENTOSBusinessProcessorRules.GetFORMIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_USUARIOS_EVENTOSFORM]); +end; + +function TUSUARIOS_EVENTOSBusinessProcessorRules.GetOldFORMValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_USUARIOS_EVENTOSFORM]; +end; + +function TUSUARIOS_EVENTOSBusinessProcessorRules.GetOldFORMIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_USUARIOS_EVENTOSFORM]); +end; + +procedure TUSUARIOS_EVENTOSBusinessProcessorRules.SetFORMValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_USUARIOS_EVENTOSFORM] := aValue; +end; + +procedure TUSUARIOS_EVENTOSBusinessProcessorRules.SetFORMIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_USUARIOS_EVENTOSFORM] := Null; +end; + +function TUSUARIOS_EVENTOSBusinessProcessorRules.GetTITULO_FORMValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_USUARIOS_EVENTOSTITULO_FORM]; +end; + +function TUSUARIOS_EVENTOSBusinessProcessorRules.GetTITULO_FORMIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_USUARIOS_EVENTOSTITULO_FORM]); +end; + +function TUSUARIOS_EVENTOSBusinessProcessorRules.GetOldTITULO_FORMValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_USUARIOS_EVENTOSTITULO_FORM]; +end; + +function TUSUARIOS_EVENTOSBusinessProcessorRules.GetOldTITULO_FORMIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_USUARIOS_EVENTOSTITULO_FORM]); +end; + +procedure TUSUARIOS_EVENTOSBusinessProcessorRules.SetTITULO_FORMValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_USUARIOS_EVENTOSTITULO_FORM] := aValue; +end; + +procedure TUSUARIOS_EVENTOSBusinessProcessorRules.SetTITULO_FORMIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_USUARIOS_EVENTOSTITULO_FORM] := Null; +end; + +function TUSUARIOS_EVENTOSBusinessProcessorRules.GetEVENTOValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_USUARIOS_EVENTOSEVENTO]; +end; + +function TUSUARIOS_EVENTOSBusinessProcessorRules.GetEVENTOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_USUARIOS_EVENTOSEVENTO]); +end; + +function TUSUARIOS_EVENTOSBusinessProcessorRules.GetOldEVENTOValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_USUARIOS_EVENTOSEVENTO]; +end; + +function TUSUARIOS_EVENTOSBusinessProcessorRules.GetOldEVENTOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_USUARIOS_EVENTOSEVENTO]); +end; + +procedure TUSUARIOS_EVENTOSBusinessProcessorRules.SetEVENTOValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_USUARIOS_EVENTOSEVENTO] := aValue; +end; + +procedure TUSUARIOS_EVENTOSBusinessProcessorRules.SetEVENTOIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_USUARIOS_EVENTOSEVENTO] := Null; +end; + +function TUSUARIOS_EVENTOSBusinessProcessorRules.GetNOTASValue: IROStrings; +begin + result := f_NOTAS; + result.Text := BusinessProcessor.CurrentChange.NewValueByName[fld_USUARIOS_EVENTOSNOTAS]; +end; + +function TUSUARIOS_EVENTOSBusinessProcessorRules.GetNOTASIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_USUARIOS_EVENTOSNOTAS]); +end; + +function TUSUARIOS_EVENTOSBusinessProcessorRules.GetOldNOTASValue: IROStrings; +begin + result := NewROStrings(); + result.Text := BusinessProcessor.CurrentChange.OldValueByName[fld_USUARIOS_EVENTOSNOTAS]; +end; + +function TUSUARIOS_EVENTOSBusinessProcessorRules.GetOldNOTASIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_USUARIOS_EVENTOSNOTAS]); +end; + +procedure TUSUARIOS_EVENTOSBusinessProcessorRules.SetNOTASIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_USUARIOS_EVENTOSNOTAS] := Null; +end; + +function TUSUARIOS_EVENTOSBusinessProcessorRules.GetTNAMEValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_USUARIOS_EVENTOSTNAME]; +end; + +function TUSUARIOS_EVENTOSBusinessProcessorRules.GetTNAMEIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_USUARIOS_EVENTOSTNAME]); +end; + +function TUSUARIOS_EVENTOSBusinessProcessorRules.GetOldTNAMEValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_USUARIOS_EVENTOSTNAME]; +end; + +function TUSUARIOS_EVENTOSBusinessProcessorRules.GetOldTNAMEIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_USUARIOS_EVENTOSTNAME]); +end; + +procedure TUSUARIOS_EVENTOSBusinessProcessorRules.SetTNAMEValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_USUARIOS_EVENTOSTNAME] := aValue; +end; + +procedure TUSUARIOS_EVENTOSBusinessProcessorRules.SetTNAMEIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_USUARIOS_EVENTOSTNAME] := Null; +end; + + +{ TUSUARIOS_LOGONBusinessProcessorRules } +constructor TUSUARIOS_LOGONBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor); +begin + inherited; +end; + +destructor TUSUARIOS_LOGONBusinessProcessorRules.Destroy; +begin + inherited; +end; + +function TUSUARIOS_LOGONBusinessProcessorRules.GetLOGONIDValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_USUARIOS_LOGONLOGONID]; +end; + +function TUSUARIOS_LOGONBusinessProcessorRules.GetLOGONIDIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_USUARIOS_LOGONLOGONID]); +end; + +function TUSUARIOS_LOGONBusinessProcessorRules.GetOldLOGONIDValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_USUARIOS_LOGONLOGONID]; +end; + +function TUSUARIOS_LOGONBusinessProcessorRules.GetOldLOGONIDIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_USUARIOS_LOGONLOGONID]); +end; + +procedure TUSUARIOS_LOGONBusinessProcessorRules.SetLOGONIDValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_USUARIOS_LOGONLOGONID] := aValue; +end; + +procedure TUSUARIOS_LOGONBusinessProcessorRules.SetLOGONIDIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_USUARIOS_LOGONLOGONID] := Null; +end; + +function TUSUARIOS_LOGONBusinessProcessorRules.GetID_USUARIOValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_USUARIOS_LOGONID_USUARIO]; +end; + +function TUSUARIOS_LOGONBusinessProcessorRules.GetID_USUARIOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_USUARIOS_LOGONID_USUARIO]); +end; + +function TUSUARIOS_LOGONBusinessProcessorRules.GetOldID_USUARIOValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_USUARIOS_LOGONID_USUARIO]; +end; + +function TUSUARIOS_LOGONBusinessProcessorRules.GetOldID_USUARIOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_USUARIOS_LOGONID_USUARIO]); +end; + +procedure TUSUARIOS_LOGONBusinessProcessorRules.SetID_USUARIOValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_USUARIOS_LOGONID_USUARIO] := aValue; +end; + +procedure TUSUARIOS_LOGONBusinessProcessorRules.SetID_USUARIOIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_USUARIOS_LOGONID_USUARIO] := Null; +end; + +function TUSUARIOS_LOGONBusinessProcessorRules.GetAPLICACIONValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_USUARIOS_LOGONAPLICACION]; +end; + +function TUSUARIOS_LOGONBusinessProcessorRules.GetAPLICACIONIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_USUARIOS_LOGONAPLICACION]); +end; + +function TUSUARIOS_LOGONBusinessProcessorRules.GetOldAPLICACIONValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_USUARIOS_LOGONAPLICACION]; +end; + +function TUSUARIOS_LOGONBusinessProcessorRules.GetOldAPLICACIONIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_USUARIOS_LOGONAPLICACION]); +end; + +procedure TUSUARIOS_LOGONBusinessProcessorRules.SetAPLICACIONValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_USUARIOS_LOGONAPLICACION] := aValue; +end; + +procedure TUSUARIOS_LOGONBusinessProcessorRules.SetAPLICACIONIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_USUARIOS_LOGONAPLICACION] := Null; +end; + +function TUSUARIOS_LOGONBusinessProcessorRules.GetEQUIPOValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_USUARIOS_LOGONEQUIPO]; +end; + +function TUSUARIOS_LOGONBusinessProcessorRules.GetEQUIPOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_USUARIOS_LOGONEQUIPO]); +end; + +function TUSUARIOS_LOGONBusinessProcessorRules.GetOldEQUIPOValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_USUARIOS_LOGONEQUIPO]; +end; + +function TUSUARIOS_LOGONBusinessProcessorRules.GetOldEQUIPOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_USUARIOS_LOGONEQUIPO]); +end; + +procedure TUSUARIOS_LOGONBusinessProcessorRules.SetEQUIPOValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_USUARIOS_LOGONEQUIPO] := aValue; +end; + +procedure TUSUARIOS_LOGONBusinessProcessorRules.SetEQUIPOIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_USUARIOS_LOGONEQUIPO] := Null; +end; + +function TUSUARIOS_LOGONBusinessProcessorRules.GetDATAValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_USUARIOS_LOGONDATA]; +end; + +function TUSUARIOS_LOGONBusinessProcessorRules.GetDATAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_USUARIOS_LOGONDATA]); +end; + +function TUSUARIOS_LOGONBusinessProcessorRules.GetOldDATAValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_USUARIOS_LOGONDATA]; +end; + +function TUSUARIOS_LOGONBusinessProcessorRules.GetOldDATAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_USUARIOS_LOGONDATA]); +end; + +procedure TUSUARIOS_LOGONBusinessProcessorRules.SetDATAValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_USUARIOS_LOGONDATA] := aValue; +end; + +procedure TUSUARIOS_LOGONBusinessProcessorRules.SetDATAIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_USUARIOS_LOGONDATA] := Null; +end; + + +{ TPERMISOSBusinessProcessorRules } +constructor TPERMISOSBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor); +begin + inherited; +end; + +destructor TPERMISOSBusinessProcessorRules.Destroy; +begin + inherited; +end; + +function TPERMISOSBusinessProcessorRules.GetID_USUARIOValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PERMISOSID_USUARIO]; +end; + +function TPERMISOSBusinessProcessorRules.GetID_USUARIOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_PERMISOSID_USUARIO]); +end; + +function TPERMISOSBusinessProcessorRules.GetOldID_USUARIOValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PERMISOSID_USUARIO]; +end; + +function TPERMISOSBusinessProcessorRules.GetOldID_USUARIOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_PERMISOSID_USUARIO]); +end; + +procedure TPERMISOSBusinessProcessorRules.SetID_USUARIOValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PERMISOSID_USUARIO] := aValue; +end; + +procedure TPERMISOSBusinessProcessorRules.SetID_USUARIOIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_PERMISOSID_USUARIO] := Null; +end; + +function TPERMISOSBusinessProcessorRules.GetMODULOValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PERMISOSMODULO]; +end; + +function TPERMISOSBusinessProcessorRules.GetMODULOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_PERMISOSMODULO]); +end; + +function TPERMISOSBusinessProcessorRules.GetOldMODULOValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PERMISOSMODULO]; +end; + +function TPERMISOSBusinessProcessorRules.GetOldMODULOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_PERMISOSMODULO]); +end; + +procedure TPERMISOSBusinessProcessorRules.SetMODULOValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PERMISOSMODULO] := aValue; +end; + +procedure TPERMISOSBusinessProcessorRules.SetMODULOIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_PERMISOSMODULO] := Null; +end; + +function TPERMISOSBusinessProcessorRules.GetNOMBRECOMPValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PERMISOSNOMBRECOMP]; +end; + +function TPERMISOSBusinessProcessorRules.GetNOMBRECOMPIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_PERMISOSNOMBRECOMP]); +end; + +function TPERMISOSBusinessProcessorRules.GetOldNOMBRECOMPValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PERMISOSNOMBRECOMP]; +end; + +function TPERMISOSBusinessProcessorRules.GetOldNOMBRECOMPIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_PERMISOSNOMBRECOMP]); +end; + +procedure TPERMISOSBusinessProcessorRules.SetNOMBRECOMPValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PERMISOSNOMBRECOMP] := aValue; +end; + +procedure TPERMISOSBusinessProcessorRules.SetNOMBRECOMPIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_PERMISOSNOMBRECOMP] := Null; +end; + +function TPERMISOSBusinessProcessorRules.GetCHECKSUMValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PERMISOSCHECKSUM]; +end; + +function TPERMISOSBusinessProcessorRules.GetCHECKSUMIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_PERMISOSCHECKSUM]); +end; + +function TPERMISOSBusinessProcessorRules.GetOldCHECKSUMValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PERMISOSCHECKSUM]; +end; + +function TPERMISOSBusinessProcessorRules.GetOldCHECKSUMIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_PERMISOSCHECKSUM]); +end; + +procedure TPERMISOSBusinessProcessorRules.SetCHECKSUMValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PERMISOSCHECKSUM] := aValue; +end; + +procedure TPERMISOSBusinessProcessorRules.SetCHECKSUMIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_PERMISOSCHECKSUM] := Null; +end; + + +{ TPERMISOSEXBusinessProcessorRules } +constructor TPERMISOSEXBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor); +begin + inherited; +end; + +destructor TPERMISOSEXBusinessProcessorRules.Destroy; +begin + inherited; +end; + +function TPERMISOSEXBusinessProcessorRules.GetID_USUARIOValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PERMISOSEXID_USUARIO]; +end; + +function TPERMISOSEXBusinessProcessorRules.GetID_USUARIOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_PERMISOSEXID_USUARIO]); +end; + +function TPERMISOSEXBusinessProcessorRules.GetOldID_USUARIOValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PERMISOSEXID_USUARIO]; +end; + +function TPERMISOSEXBusinessProcessorRules.GetOldID_USUARIOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_PERMISOSEXID_USUARIO]); +end; + +procedure TPERMISOSEXBusinessProcessorRules.SetID_USUARIOValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PERMISOSEXID_USUARIO] := aValue; +end; + +procedure TPERMISOSEXBusinessProcessorRules.SetID_USUARIOIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_PERMISOSEXID_USUARIO] := Null; +end; + +function TPERMISOSEXBusinessProcessorRules.GetMODULOValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PERMISOSEXMODULO]; +end; + +function TPERMISOSEXBusinessProcessorRules.GetMODULOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_PERMISOSEXMODULO]); +end; + +function TPERMISOSEXBusinessProcessorRules.GetOldMODULOValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PERMISOSEXMODULO]; +end; + +function TPERMISOSEXBusinessProcessorRules.GetOldMODULOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_PERMISOSEXMODULO]); +end; + +procedure TPERMISOSEXBusinessProcessorRules.SetMODULOValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PERMISOSEXMODULO] := aValue; +end; + +procedure TPERMISOSEXBusinessProcessorRules.SetMODULOIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_PERMISOSEXMODULO] := Null; +end; + +function TPERMISOSEXBusinessProcessorRules.GetNOMBRECOMPValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PERMISOSEXNOMBRECOMP]; +end; + +function TPERMISOSEXBusinessProcessorRules.GetNOMBRECOMPIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_PERMISOSEXNOMBRECOMP]); +end; + +function TPERMISOSEXBusinessProcessorRules.GetOldNOMBRECOMPValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PERMISOSEXNOMBRECOMP]; +end; + +function TPERMISOSEXBusinessProcessorRules.GetOldNOMBRECOMPIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_PERMISOSEXNOMBRECOMP]); +end; + +procedure TPERMISOSEXBusinessProcessorRules.SetNOMBRECOMPValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PERMISOSEXNOMBRECOMP] := aValue; +end; + +procedure TPERMISOSEXBusinessProcessorRules.SetNOMBRECOMPIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_PERMISOSEXNOMBRECOMP] := Null; +end; + +function TPERMISOSEXBusinessProcessorRules.GetNOMBREFORMValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PERMISOSEXNOMBREFORM]; +end; + +function TPERMISOSEXBusinessProcessorRules.GetNOMBREFORMIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_PERMISOSEXNOMBREFORM]); +end; + +function TPERMISOSEXBusinessProcessorRules.GetOldNOMBREFORMValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PERMISOSEXNOMBREFORM]; +end; + +function TPERMISOSEXBusinessProcessorRules.GetOldNOMBREFORMIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_PERMISOSEXNOMBREFORM]); +end; + +procedure TPERMISOSEXBusinessProcessorRules.SetNOMBREFORMValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PERMISOSEXNOMBREFORM] := aValue; +end; + +procedure TPERMISOSEXBusinessProcessorRules.SetNOMBREFORMIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_PERMISOSEXNOMBREFORM] := Null; +end; + +function TPERMISOSEXBusinessProcessorRules.GetCHECKSUMValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PERMISOSEXCHECKSUM]; +end; + +function TPERMISOSEXBusinessProcessorRules.GetCHECKSUMIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_PERMISOSEXCHECKSUM]); +end; + +function TPERMISOSEXBusinessProcessorRules.GetOldCHECKSUMValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PERMISOSEXCHECKSUM]; +end; + +function TPERMISOSEXBusinessProcessorRules.GetOldCHECKSUMIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_PERMISOSEXCHECKSUM]); +end; + +procedure TPERMISOSEXBusinessProcessorRules.SetCHECKSUMValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PERMISOSEXCHECKSUM] := aValue; +end; + +procedure TPERMISOSEXBusinessProcessorRules.SetCHECKSUMIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_PERMISOSEXCHECKSUM] := Null; +end; + + +initialization + RegisterBusinessProcessorRules(RID_USUARIOSDelta, TUSUARIOSBusinessProcessorRules); + RegisterBusinessProcessorRules(RID_USUARIOS_EVENTOSDelta, TUSUARIOS_EVENTOSBusinessProcessorRules); + RegisterBusinessProcessorRules(RID_USUARIOS_LOGONDelta, TUSUARIOS_LOGONBusinessProcessorRules); + RegisterBusinessProcessorRules(RID_PERMISOSDelta, TPERMISOSBusinessProcessorRules); + RegisterBusinessProcessorRules(RID_PERMISOSEXDelta, TPERMISOSEXBusinessProcessorRules); + +end. diff --git a/Source/ApplicationBase/Usuarios/Model/uUsuarios.pas b/Source/ApplicationBase/Usuarios/Model/uUsuarios.pas new file mode 100644 index 00000000..35d8a386 --- /dev/null +++ b/Source/ApplicationBase/Usuarios/Model/uUsuarios.pas @@ -0,0 +1,13 @@ +unit uUsuarios; + +interface + +uses + UCBase; + +type + TUsuario = TUCCurrentUser; + +implementation + +end. diff --git a/Source/ApplicationBase/Usuarios/Servidor/srvUsuarios_Impl.dfm b/Source/ApplicationBase/Usuarios/Servidor/srvUsuarios_Impl.dfm new file mode 100644 index 00000000..f515805d --- /dev/null +++ b/Source/ApplicationBase/Usuarios/Servidor/srvUsuarios_Impl.dfm @@ -0,0 +1,419 @@ +object srvUsuarios: TsrvUsuarios + OldCreateOrder = True + OnCreate = DataAbstractServiceCreate + SessionManager = dmServer.SessionManager + ServiceSchema = schUsuarios + ServiceDataStreamer = Bin2DataStreamer + AllowExecuteSQL = True + AllowWhereSQL = True + ExportedDataTables = <> + BeforeAcquireConnection = DataAbstractServiceBeforeAcquireConnection + Height = 300 + Width = 300 + object Diagrams: TDADiagrams + Left = 150 + Top = 88 + DiagramData = ''#13#10''#13#10 + end + object DataDictionary: TDADataDictionary + Fields = <> + Left = 150 + Top = 24 + end + object schUsuarios: TDASchema + ConnectionManager = dmServer.ConnectionManager + DataDictionary = DataDictionary + Diagrams = Diagrams + Datasets = < + item + Params = <> + Statements = < + item + Connection = 'IBX' + ConnectionType = 'Interbase' + Default = True + TargetTable = 'USUARIOS' + StatementType = stAutoSQL + ColumnMappings = < + item + DatasetField = 'ID' + TableField = 'ID' + end + item + DatasetField = 'USERNAME' + TableField = 'USERNAME' + end + item + DatasetField = 'LOGIN' + TableField = 'LOGIN' + end + item + DatasetField = 'PASS' + TableField = 'PASS' + end + item + DatasetField = 'PASSEXPIRED' + TableField = 'PASSEXPIRED' + end + item + DatasetField = 'BLOQUEADO' + TableField = 'BLOQUEADO' + end + item + DatasetField = 'EMAIL' + TableField = 'EMAIL' + end + item + DatasetField = 'USERDAYSSUN' + TableField = 'USERDAYSSUN' + end + item + DatasetField = 'PRIVILEGED' + TableField = 'PRIVILEGED' + end + item + DatasetField = 'TIPO' + TableField = 'TIPO' + end + item + DatasetField = 'ID_PERFIL' + TableField = 'ID_PERFIL' + end + item + DatasetField = 'CHECKSUM' + TableField = 'CHECKSUM' + end> + end> + Name = 'USUARIOS' + Fields = < + item + Name = 'ID' + DataType = datInteger + Required = True + InPrimaryKey = True + end + item + Name = 'USERNAME' + DataType = datString + Size = 30 + end + item + Name = 'LOGIN' + DataType = datString + Size = 30 + end + item + Name = 'PASS' + DataType = datString + Size = 250 + end + item + Name = 'PASSEXPIRED' + DataType = datDateTime + end + item + Name = 'BLOQUEADO' + DataType = datSmallInt + end + item + Name = 'EMAIL' + DataType = datString + Size = 150 + end + item + Name = 'USERDAYSSUN' + DataType = datInteger + end + item + Name = 'PRIVILEGED' + DataType = datInteger + end + item + Name = 'TIPO' + DataType = datString + Size = 1 + end + item + Name = 'ID_PERFIL' + DataType = datInteger + end + item + Name = 'CHECKSUM' + DataType = datString + Size = 250 + end> + end + item + Params = <> + Statements = < + item + Connection = 'IBX' + ConnectionType = 'Interbase' + Default = True + TargetTable = 'USUARIOS_EVENTOS' + StatementType = stAutoSQL + ColumnMappings = < + item + DatasetField = 'APLICACION' + TableField = 'APLICACION' + end + item + DatasetField = 'ID_USUARIO' + TableField = 'ID_USUARIO' + end + item + DatasetField = 'FECHA' + TableField = 'FECHA' + end + item + DatasetField = 'HORA' + TableField = 'HORA' + end + item + DatasetField = 'FORM' + TableField = 'FORM' + end + item + DatasetField = 'TITULO_FORM' + TableField = 'TITULO_FORM' + end + item + DatasetField = 'EVENTO' + TableField = 'EVENTO' + end + item + DatasetField = 'NOTAS' + TableField = 'NOTAS' + end + item + DatasetField = 'TNAME' + TableField = 'TNAME' + end> + end> + Name = 'USUARIOS_EVENTOS' + Fields = < + item + Name = 'APLICACION' + DataType = datString + Size = 250 + end + item + Name = 'ID_USUARIO' + DataType = datInteger + end + item + Name = 'FECHA' + DataType = datString + Size = 10 + end + item + Name = 'HORA' + DataType = datString + Size = 8 + end + item + Name = 'FORM' + DataType = datString + Size = 250 + end + item + Name = 'TITULO_FORM' + DataType = datString + Size = 100 + end + item + Name = 'EVENTO' + DataType = datString + Size = 50 + end + item + Name = 'NOTAS' + DataType = datMemo + end + item + Name = 'TNAME' + DataType = datString + Size = 20 + end> + end + item + Params = <> + Statements = < + item + Connection = 'IBX' + ConnectionType = 'Interbase' + Default = True + TargetTable = 'USUARIOS_LOGON' + StatementType = stAutoSQL + ColumnMappings = < + item + DatasetField = 'LOGONID' + TableField = 'LOGONID' + end + item + DatasetField = 'ID_USUARIO' + TableField = 'ID_USUARIO' + end + item + DatasetField = 'APLICACION' + TableField = 'APLICACION' + end + item + DatasetField = 'EQUIPO' + TableField = 'EQUIPO' + end + item + DatasetField = 'DATA' + TableField = 'DATA' + end> + end> + Name = 'USUARIOS_LOGON' + Fields = < + item + Name = 'LOGONID' + DataType = datString + Size = 38 + Required = True + InPrimaryKey = True + end + item + Name = 'ID_USUARIO' + DataType = datInteger + end + item + Name = 'APLICACION' + DataType = datString + Size = 50 + end + item + Name = 'EQUIPO' + DataType = datString + Size = 50 + end + item + Name = 'DATA' + DataType = datString + Size = 14 + end> + end + item + Params = <> + Statements = < + item + Connection = 'IBX' + ConnectionType = 'Interbase' + Default = True + TargetTable = 'PERMISOS' + StatementType = stAutoSQL + ColumnMappings = < + item + DatasetField = 'ID_USUARIO' + TableField = 'ID_USUARIO' + end + item + DatasetField = 'MODULO' + TableField = 'MODULO' + end + item + DatasetField = 'NOMBRECOMP' + TableField = 'NOMBRECOMP' + end + item + DatasetField = 'CHECKSUM' + TableField = 'CHECKSUM' + end> + end> + Name = 'PERMISOS' + Fields = < + item + Name = 'ID_USUARIO' + DataType = datInteger + end + item + Name = 'MODULO' + DataType = datString + Size = 50 + end + item + Name = 'NOMBRECOMP' + DataType = datString + Size = 50 + end + item + Name = 'CHECKSUM' + DataType = datString + Size = 250 + end> + end + item + Params = <> + Statements = < + item + Connection = 'IBX' + ConnectionType = 'Interbase' + Default = True + TargetTable = 'PERMISOSEX' + StatementType = stAutoSQL + ColumnMappings = < + item + DatasetField = 'ID_USUARIO' + TableField = 'ID_USUARIO' + end + item + DatasetField = 'MODULO' + TableField = 'MODULO' + end + item + DatasetField = 'NOMBRECOMP' + TableField = 'NOMBRECOMP' + end + item + DatasetField = 'NOMBREFORM' + TableField = 'NOMBREFORM' + end + item + DatasetField = 'CHECKSUM' + TableField = 'CHECKSUM' + end> + end> + Name = 'PERMISOSEX' + Fields = < + item + Name = 'ID_USUARIO' + DataType = datInteger + end + item + Name = 'MODULO' + DataType = datString + Size = 50 + end + item + Name = 'NOMBRECOMP' + DataType = datString + Size = 50 + end + item + Name = 'NOMBREFORM' + DataType = datString + Size = 50 + end + item + Name = 'CHECKSUM' + DataType = datString + Size = 250 + end> + end> + JoinDataTables = <> + UnionDataTables = <> + Commands = <> + RelationShips = <> + UpdateRules = <> + Version = 0 + Left = 48 + Top = 24 + end + object Bin2DataStreamer: TDABin2DataStreamer + Left = 48 + Top = 88 + end +end diff --git a/Source/ApplicationBase/Usuarios/Servidor/srvUsuarios_Impl.pas b/Source/ApplicationBase/Usuarios/Servidor/srvUsuarios_Impl.pas new file mode 100644 index 00000000..4007ec6c --- /dev/null +++ b/Source/ApplicationBase/Usuarios/Servidor/srvUsuarios_Impl.pas @@ -0,0 +1,65 @@ +unit srvUsuarios_Impl; + +{----------------------------------------------------------------------------} +{ This unit was automatically generated by the RemObjects SDK after reading } +{ the RODL file associated with this project . } +{ } +{ This is where you are supposed to code the implementation of your objects. } +{----------------------------------------------------------------------------} + +{$I Remobjects.inc} + +interface + +uses + {vcl:} Classes, SysUtils, + {RemObjects:} uROXMLIntf, uROClientIntf, uROTypes, uROServer, uROServerIntf, uROSessions, + {Required:} uRORemoteDataModule, + {Ancestor Implementation:} DataAbstractService_Impl, + {Used RODLs:} DataAbstract4_Intf, + {Generated:} FactuGES_Intf, uDADataStreamer, uDABin2DataStreamer, uDAClasses; + +type + { TsrvUsuarios } + TsrvUsuarios = class(TDataAbstractService, IsrvUsuarios) + Diagrams: TDADiagrams; + Bin2DataStreamer: TDABin2DataStreamer; + schUsuarios: TDASchema; + DataDictionary: TDADataDictionary; + procedure DataAbstractServiceBeforeAcquireConnection(aSender: TObject; + var aConnectionName: string); + procedure DataAbstractServiceCreate(Sender: TObject); + private + protected + { IsrvUsuarios methods } + end; + +implementation + +{$R *.dfm} +uses + {Generated:} FactuGES_Invk, uDataModuleServer; + +procedure Create_srvUsuarios(out anInstance : IUnknown); +begin + anInstance := TsrvUsuarios.Create(nil); +end; + +{ srvUsuarios } +procedure TsrvUsuarios.DataAbstractServiceBeforeAcquireConnection( + aSender: TObject; var aConnectionName: string); +begin + ConnectionName := dmServer.ConnectionName; +end; + +procedure TsrvUsuarios.DataAbstractServiceCreate(Sender: TObject); +begin + SessionManager := dmServer.SessionManager; +end; + +initialization + TROClassFactory.Create('srvUsuarios', Create_srvUsuarios, TsrvUsuarios_Invoker); + +finalization + +end. diff --git a/Source/ApplicationBase/Usuarios/Views/uEditorLogin.dfm b/Source/ApplicationBase/Usuarios/Views/uEditorLogin.dfm new file mode 100644 index 00000000..d0bd09c2 --- /dev/null +++ b/Source/ApplicationBase/Usuarios/Views/uEditorLogin.dfm @@ -0,0 +1,1100 @@ +object fEditorLogin: TfEditorLogin + Left = 790 + Top = 387 + ActiveControl = edtUser + BorderStyle = bsDialog + Caption = 'FactuGES' + ClientHeight = 241 + ClientWidth = 385 + Color = clBtnFace + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'MS Sans Serif' + Font.Style = [] + OldCreateOrder = False + Position = poScreenCenter + OnCreate = FormCreate + OnDestroy = FormDestroy + OnShow = FormShow + PixelsPerInch = 96 + TextHeight = 13 + object Label3: TLabel + Left = 24 + Top = 108 + Width = 39 + Height = 13 + Caption = 'Usuario:' + Transparent = False + end + object Label4: TLabel + Left = 24 + Top = 138 + Width = 57 + Height = 13 + Caption = 'Contrase'#241'a:' + Transparent = False + end + object Label1: TLabel + Left = 16 + Top = 72 + Width = 94 + Height = 13 + Caption = 'Inicio de sesi'#243'n:' + Font.Charset = DEFAULT_CHARSET + Font.Color = clMenuHighlight + Font.Height = -11 + Font.Name = 'MS Sans Serif' + Font.Style = [fsBold] + ParentFont = False + end + object JvGradient1: TJvGradient + Left = 0 + Top = 57 + Width = 385 + Height = 4 + Align = alTop + StartColor = 2971346 + EndColor = 4828405 + end + object Panel1: TPanel + Left = 0 + Top = 0 + Width = 385 + Height = 57 + Align = alTop + BevelOuter = bvNone + Color = clWhite + TabOrder = 0 + object Image1: TImage + Left = 0 + Top = 0 + Width = 385 + Height = 57 + Align = alClient + Center = True + Picture.Data = { + 0B544A76474946496D616765F6750000474946383961C201FA00E60000FFFFFF + F5F5F5A92824ECECECEB743DF48545EF7B40DEDEDECD452DEAEAEAD0492EDC5A + 34FAFAFAF2F2F2BC2A26B02724E5E5E5E26236B95B55E1E1E1F8F8F8D95532FC + FCFCF5D6CAD4D4D4F5C8B5D1B5B0F0F0F0E66A39C23428D65131EEEEEEBCBABA + FEFEFEF7B192F49366CB938CD34D30C7726AC63A2AE96E3BC7564CD26958EEB5 + A5F9E9E3D7C5C2C93F2BE46638F8E1D8D2867AC9C5C4E05E35C03027B82725C7 + 453AE79A89B9322ECBA59EF7A47BFCF4F1FCF0EBB93A36D8D5D4B44741BF2D26 + EEE2E0A22925AB3934A7302CFEF8F5FEF9F8C33B33DB5D3DB52724B12E2AD251 + 3AD9CFCDE47D60FEFCFCBC7D75BD2C26EBE9E9D6D6D7FFFEFDF7F1F0FEFBFAFD + FDFDF3F0EFE8DDDCFBF8F7DFDFDFDED7D6D45A43F4F4F4E0E0E0DADADAC94E41 + F9F9F9DF6648EBEBEBF1EBEAE4E4E4D8D8D8EDEDEDD94E2FD95738C53729EFEF + EFFFFFFEF3F3F3E2E2E2EBECEDE8E8E8F7F7F7EFF0F0CDCCCCF1EEEDE7E7E7F1 + F2F3F1E8E5E76035E86B39D1D1D2F2F3F4EEEDEECF3F2AD2D0D0F1F1F12C0000 + 0000C201FA000007FF800582838485868788898A8322173C5300919293949596 + 9798999A9B9C9D9E9FA0A1A2A393560C717F6763670D710C56A4B1B2B3B4B5B1 + 8323B887B982BC05BEC0BABDBBC2BFBF3A193046B6CCCDCECFD0D1A50C011F70 + 1075636B6D71161621E0D2E2B4E02156E7E8E9EAE5E3968BEFF0F1883A8D3BED + F7F8F9FAA2A601677513DC9481A38D5B180BB0F629BC64C502030A7102489C48 + 31401C0A0713EA3336AC23C78FC10C8504590CD808643C16AA5CC9125AC30003 + CA68D1E265421908633E18D4D8529F290A5DFEAC3933A0A8D1A31FFE707BB54F + 9ED3A78B4624EB49B5AAD54DFD621ED8BAD58B9B6C6B5A85796525C4D567211C + 024D05A70E843270FFE3CA850067C0862EDDCAE283CAB76F2F1130CE0A1EDCF3 + A556AE5D05D649F0A141000A0C2C10B665254C805409EA947133C18BE7CF9E27 + 88BEC9F84F808366DBF95DFD54C785296C26CB9E2DAEDF3F2D880FCCD4127031 + ABC7DF688B4A4BA1CD87CC9BBDEC5ECE9CA6CD3A701ABB4A2D8EB5F577272F14 + 7122BCBB77592FCF40505ED38D4037CA0FD88490C02EDEC87ABF33B410A6CB86 + 319A95E35E0E9A79D7E78C75414170D22462006B072A9260010B1E825211B1C9 + 27E18498D8564768742590001C654C3053796580F51E4F1486704A030370881E + 6E5B3967DE8B9C75C6E287E6E1F44737D55DA7E32E52C1C00377140629E44B1F + 5CE8C5408DB5B1C6FF186FA597581DEE0D489D7CE05810C006097488988B37D5 + E1A59710BCB5998C5B0EB4018ED10CB2608387ACA9669B6F1AC2A6200D9E944C + 1542E639615A71AC0107676E24D0401861C4A1247E7079A8DB04741574DA2B53 + D26662351C7AC11588D02530C651638CA1615B6FADC8951603AD110042D0ECA8 + AA21F4C050849EB07AC7E7067FDA344617AF3864E8922A5ACA9B798B49170689 + B3595964194E6AE14686037CB0C6061BFCF107B46B7C4094A76D71C6E2015E45 + 776AA4B53028EE81E48E6B6EB9E89EAB6EBAECAA5B0032F6C42AAF6CE650F047 + 029C95716B59E09862E87DD7ACB8DBB28CB502293B839913C01A00EDC75B8839 + 6DD0461B5D54D445FF1B0D48BBC150F84140E6568C7E100003E0CE42679CE29E + AC72CA2C13E2A69C28BFFC4B062C4032EFCD67D57B6F876524D0C637E5985868 + 5067B4D5A1AF006E13471C631178D5A4D6B871E9570557BCF4D5584B74710319 + 7F304002A1A6A76C1D67E04AAC2CEBA6DDEEDA6AB7CDEE0880155132CE742B64 + 4E180D8CD161A07F8411B4390D3D74D97110B8B15F4D21367B1744929D654535 + 855BAADB57EE5D440146845E0ED1D25A6F3DED0763043CE3047588EC342D32A7 + 1EF3EA2BABDE7A21705FB083CD75D7BED0DD79EF0DC70614F0FB779510357046 + 669CE977A497496D70EA3973EB034E181B5CD8E29170B0C27464D833A03DA161 + 5C1E5144124DDCC0FF50C46F1B72006793E2F6FA6CB7CF3E8376C280A7EDF43B + 5F59DE80C2F147EFBF07AD56000D009D8A6612104611447990499FF318D005BD + 4DAD7AA6699A37B497BDED758F735A9B98508AE6B119B9010E6D600033DC47C2 + F795B05DBF004CBCEAC7C271E82C4B36D1DFB0FAF7B78614AA0DF7A983E166C2 + 2D0336E6348D5B8905FA0410AE7CE50C6D78943796C8C4EC656E7301B818C6A6 + 95A20ECDA80C1FA040F3426100727591415FECA217C70846328AB18C683CA31A + C3C8C60421830555D8620BE7188B17022A017DF31D0DFD770AE3802D39B8395E + 7BFE2020F8C8112DF6FAD37E488744A631511D4C748805A1D805298EAF8A8A52 + 8FA098823A137AF2FF84EF938AEC8044C752D6C28ED4CBE31EFB674343798D43 + 1EA2498D08B28611EDE3710340CFA26C3432F8A80392137448E6302845A1202A + 3D5E80C0194676484E88F199D08CA634A749CD6A5AF3406F7442334DC9CD4CD8 + 312078E4DF2A69D89038D80793DBF20A4E6A09996DD682017FA8038B8E84C791 + 2D9179BF4B47301930CCCE4D917002FBCA1AE2A0C04FACD18C6D7C661ADB5846 + 851E74A1647C1760E2D8CD8A0EE77E7A0BC8EEC4394E1AEAAA0D7F48D15BC8F4 + 1CBB180452D2A8D707CA60C4D201311DE18844D0F4E910615E302295C4D80686 + D7416EE9AB0B418CC535874AD4A256B309B1939B4597FA0913B5610085FBE099 + 80D651720AF3321CFFD4A52C43543057147416698189D474D3B31BF9D27792A8 + E1399648C10B4EA498A0D321D2E0D00092CD62A80DB5665EA3B9D7315ED34E3C + 981F5307EB4D6A14893375182842AADA51FA5C89A7C85A0EC174E2557E35E37E + 7FD28D17C8862B6FA023A6699DE95A9DE8D6286A7028D798408B20B0062DBAF3 + 12468DED350920DB2EC68E07AF252C37ADE4A70EB974B1E5680842F458557F01 + 10A05A7D4E4E4C33A0F8D462880CF350B74CA5BDE15A76126A156E5B6F6A5A9D + 2EA9702C2AC319BA91DB4AD4F6BCE8856613DE958C65E8F6BD941822AD6A643A + 3DD6D4908CED9724E320BC3F1A6F3D1004627931C140A87AC85666F52C5AB12B + 5AE14AB27B10C9A0FF7707A0C3F00E6079B230006D69DBC50D6B588C1CFEB087 + 3DDC611183F8C4252EF1884DCC61418820032B842F7CE5ABA2D2E5858FDD1BCB + 59F36B0E6AFCE1389A91116E7CE89883004D1661F843A5C666BDEA02371CF944 + 075BB7E73D9C8A6F5A458BEC017AD686616538BD6046EFCC5820E332D31858A6 + 7A725A0A15458B60E460F935EEF83A66B84591E60C84F4EA80654AC458226929 + 35C52739D7BA4F7E7A4FC219DB29D814C5B7016578C59066B1A4493CE94A47FA + D21A7E5760CA3CE385C132B1372E87430230C506546C2CC4EDE85A2D631CFCD4 + 994674B10B70F61C02C8E9E7834A73B2A0594968D26ECECA535474E494B5D1A0 + 8A42C5964671A59FFF19624C3B7BD9AED90EA7757B0A3F2156B17AFC09A9B996 + 448BE878B83C1EF5A13453BC992CAB2E7771A47339814B99F83401E9A6A08279 + 4DE8094E929853FCDC31790307C53E5AC3047836A4039E6C81175CD23D8AF1B4 + 2DCADB4F635BB4DB035F4EAD0619AA325698FFFA5A937AB82CB018ECAB94C065 + 9D9309EFF74466DED9AD3705F9595AD3664CDFB0E44D624F250B83DBFCE037C7 + B401EC54B3853315BAB59AB99A67EA0D88943A89154FB5AA1DCB96CDCCC82B8B + 61E7E932D1EE40B227DDDF4679BFA43CE57B5B248A9E839600AD48BA818A3016 + 014FBBDAD7CEF6B6BBFDED708F7BDA33AD0357F97CA90DF7ADC8E0CC4AFA00BB + 62DEAEAED2572938FFCC846DC8109398120BFAB8318CFCEA492494BC7FC9757B + 4F32C219E4DAB4381673D2EDBDE638C739C1731EFAB96F185E7767781CE67BBE + A1E7F3C114907012D5CDE3C059A6BF3A8CA55706D255D4540826EEA6A7D2DEAC + EB5F36F1C1C394F895A935BC20CBDCEC35DFB0DCA74FFDEA4FBF0934A35DEA4B + 69255AF9B66C9149F9EBD90CD23F985ADDBB2E2E35C6879C5806843461111055 + 430EFC4022C93197D3F1C969CA56E473B7BB2FB7316BF03572C56FFE86760067 + 7D6F97806AC780D5E7806EF72E8EA07DDBD74267B62C03D06516471F97835F7C + 14619504786EA63DE9B74A0D113C4BE2162FD2195F511711E40D911207671059 + A4024178917FD813FF49FB847C55F65657B6795E03362B22558E867628A08048 + 9884D6570037A01D15C87D57A222109081A8D12FAC766A7C07380F86535CD300 + 919785E3245C37948280541EECF11B45280914B006E3616E5072176E26793535 + 6592644110F63D60873189B606D522528C465707117D4A388884E8765291124F + 38471738851A185CF5C135155371E0564382536A9168649FC558FE72282AA27B + 93A53C19010EF6822FCAC128091016166139FA775F2BC7723DA87C9A472DD6E2 + 6AE9F1539C440A697784BA4800BB1870BBF88BB9188CC07884BEC88BC6588CC3 + 688CC4788CC6D8042BA00C7B9688F2D17D52380083627182D33912E14816D72F + 86063E60B78D4D33FF78ACC44FA4B60129927B047413E85648FD502407767FDB + 781192D78ADB75875783681AB331D6E25FBAA14CE4258885389085C85E3D278D + F473668C628DA8165C6A614E2FC70D151765B60791D2327B1E585CA660196C01 + 5E1F723CD6C83496315FDC423984348F98638FDC838F5F977989C68F44912D81 + 9458FC5373C97893CA989338B9933AD9933C8902B1333B08693B79B7906DD05C + 35E4585DC06D78713D5AA75F43833114231190B17FE4F83B82A368B9E719BCC1 + 1E1F102DA9504434C11EF13711AAB8924FF48AFE148B02E83588124B811242D1 + 28093FE99376599778799739B9732BC002EE35947BA209D4C0309CC18849874F + A3555A527489DD68FF0EC28479175349DEE67A7B143811114088821EE5E12570 + 902D92432A64A3148077359A539ABF068E79186C02C831FED595E305729C8002 + BA289BBC489BB2799BB6A98CB6899BBB398CBD599BB3199C3AF99B06904D8029 + 2169815296C05BB937850D7098BFE48DA7B094D2E218B4D777A7B06DE68717A1 + 587B9B0864A2F291FA712964A91466499A55C639E09853CBC787D51284CE3736 + BC339774099CF6799BC3299CF8B99FB9E99BFAD99F77999BA2F42AC759155562 + 68E1175FE6F41E30580AABF727CB320609E66043D74ADD6535172178BFF3908B + D994C437898D359214A64BB9911B63A30D5E2899DF9335A8C99E7A382D6D398B + A9B51F7C1306B580FF021C709B392A9B3B8AA3BCF9A33D1AA43FCA9B42CAA33A + 3AA448BAA34D7003198088055A1816B01677E16593C00028E228542A09780343 + 3D038A27F748BED36B6E254553994049F998C056A61919861CC9247556A28861 + 130970061233956679A76F65499AB779EE491442283603D137378AA4848A9B79 + 50A8889AA8B279A885CAA8F80937CA40814F7A0FFA959D21D599224322143083 + 54231D7016066DC024726A2A46765F73F894BA426AD5F985D6954F82439DE699 + 74C515A541E16ADB322A3C444067182D14238216C39E5D282D7CFA01C44A805A + D2225FB17708330A2870A839EAAC43CA017990A3D4EAA3D00AADD55AADD8EAA3 + DA6AADDEFAACDCFAFFAD28600037A04293EA137EB794AF5438FA823E94100709 + 508A5C956B0801AA06D6A58FA25D3785119EF537180776A3498FE1478985B2A0 + 53D990ABA42B44F396255A1E99A42C671816BD9AA72EFAA2FB18A3C31373A3D2 + 2DBFE17BA370A820DBAC3EBAA8221BB2210BAE272BB2E0BAB22A5BB22E6BB2DE + 0AB3204B004D8012E78A0F26B22BE9681E9EE10663E0AE9300AFBBB199DA2020 + 8592371ED3A5EA2649101199DCC82F34A53D11A68718D998A3F510E6346B093B + 9299F9315303266F0A75736A7EBD1A821373B6C17AB1EE692D22F5A61B7B6E9E + 0A9B9630AD79E0ACD3FAAD754BB7752BAD76BBB7758BA3772BADD41AB884EBB7 + 829BB7820BB886ABFFB777DB048DF09737DB0C8E89B5E3566E5C3101FB420901 + 900033627F6F282D5926A7CA137E81137B7A78834DB37F33C54F16E98581F794 + 5562195A3B7E00F40F6E8BABEBC11803F8279F79676B40B667AB87690B2DD4F2 + 9EAAB021E005A72D628ADB604FD7C5097B0BB8D92ABD2DCBB7E17AB8899BBD81 + CBAD843BB879FBB7897BAD742BB848957D91EB0C9B483E2AC8955CA91E991BB4 + 9CFB213CA44E9D89BCE8A1B42453A9B147A695B434B24A7458BB9E80F7BF0EC9 + 4F60080E0FD106CD47A25B22B694456AD63635B19614E6E785E2B3A7305ABC6E + 69349DA1BCA30220783622DBC401824BC2E36BC2D88BA3283CBED34AC22EFCC2 + 307CC2251CC32ECCFFC2D9FBC2742B064CE808F479BED370254C7234E41110E5 + E6B3402B0971300607661E42561E4CAC1CA5C24CAB4B7E2F676A8F6195C6C7BA + AABA9DD7195C30D53FF63A6CB73A39038167F6346AFF20393D341039F12CD539 + BCC5FB9E5F932D99A459EDBB255B856E40D409835BC3348CC37E4CBD33DCBD28 + 2CC8E3CBAD30DCC785ACBD0400A990EBC3A160999791223BE4C45F3252CAF2B3 + 24120703D0195D022A961BA7D91041F855BA10D985185A8F43F73F541B875669 + 82E6D027E361A29BD91E08848D5D10134E529299B20ACE42BC7C48ACD6722D1B + B2BE1F2C10712164251A43212CAB9800C32FE0C2D1FCC2D15CCD1C30CD892CCD + D98CCD896CCDD47CFFCDE0FCCDDC9CC852A17090EC0939DB6A01632900D6C63C + 851E46BCC99D6C8A67C087452357261AA14AD39D930B82C13B954E996D68EA83 + 033CB05EECC5D4201EB72A4B5E699D19690589842C88B17BD840100370066740 + AC185D149E52CC983CD1A4010799A18E25FA30B1868A817809355CCD748BCD2F + 90072F1DD332DCC2D23ACD2DFCD2248CD328ACCD83CCD22B7DCD341DD424EC8C + F273CEA0D00F58D2418BD433CD62C5C22357F1FCAE9D4C39D659BBB0B4CB0F83 + 6E5F18A613B4BF2F679E4E794F90648EF956B5509B898193CBEE7629F7A7675E + 0C347937C666481722AD219FD2166E312658AD5C191D84EBACBC0F132CDC3075 + 9100CED67CD82F70FFD886BDD88ADDD88CFDD88E1DD9906DD88DDC5E46AD09C9 + 197BC2C321CE0117D01131D60914BDE5159A2CD535027E3604C4A06245CBCB7B + 49C19D70B6911171C1002DB020DA63FB7BB6A95CCA95DA402C352A519CD232E5 + 984053195D600D1D52C78B621E7011266112173CABC69A756E110384045838CA + BC25BD911306D1AF9110D3860DD3300DD432CDD2E52DDEE61DDEE75DDE8C3DDE + EB4DDEE81DDF2F8D02632658975D0910DD05BC02480433006E4CB678416A5143 + DA471C099C5C9819787639DB001BE387DA4DDDB916A615E9724C99A193385A18 + 37DB67EB48FDD2DB50F574CAB43C910238CCA32B01C4C1632C9EA2D1195C29D7 + BD51175F099602E8FFA779DDC1B42C1067C85CF90B0089DDE33E5ECD3F1EE442 + 3EE4428E07441EE4467EE43E9EE489CD0162B0A4B273DF94D063A80055020375 + 63A078FE04784F8D2C511DB4B9444FCF6916C411997356800D9C78B06D5D6278 + 99C26AC51FAA6050AB942F277F1D0E38090D01A353077F7076534EE2BD664EE8 + F847CAEDC1266AD204F195C2BAE830BAC1E4369EF9FC6752C2E390EDE3938DD8 + 3D6ED84DDED896FEE38CBDE9950EE48D0DA9042AE5FDA0248B6667BBDA6D5B2E + 116109CFA50DE6F78B47DDF010F6E12C4AA1536DAB5A710A313FB478072ABBFF + 9CCA984874DDA3351C6E0E5B67250ABDBC7CEEE77FEEC5AD74EBF65B3C907EE8 + 5CC22C8ACEE88B2EFF8B03802DE466E313FD4148E465446EE411A0E43E9EEE4C + 9ED8E97EE4EFFE02ECAEEE45DEE3F1EEE36200376466EA96B106C4E37E7441A7 + 162CBCDCD66D61E9E5B18EC4B924BAE1E3EF6132CA6E765CFEB8B1A4E1DFDC09 + 5CDA157BDAB99D93C9E6146AC018DFDBCDBE28A056506F9DAE97143A5E021731 + 021A35F17E5DA22119FD2CC45BF3367FF3FDA882294E3D53C5E3F4FEF3ED6EEF + 4ACEE4F7FEF3F2FEE345FF026240004CBA03F67DBEE5F4D42BA24ED920315696 + 686FDCAB2105D5096FE0613E10FE1D573BB490CF1919470B6447B32D59EDDFF8 + 7756A69C6FAE2BB0BAF6D68829F27A3E3DCA0454F864094949C51B10841E2D26 + 71F1F0D04110190DFF96177BF3C44BB6130152710548131DE2221401949FEE96 + 4FF97860F9F24EF947AFF99EDFF99BFFF9A20FFAA35FFA9C7FF9957FFA2F6000 + 8D805B903C290EBF43E756CFD639DB19FCC6A61614234AE09A1AE61D770DC7DA + 158C6864E6784928FEC15C85672735E7D948A6B53D8E0D165C760FE2542878EB + 165AFA6B5A42E196D8B221F55BD79BD22C347FF3EE59FED0C2F859E3F8A1C3DA + AB7561937FF4E84EFAF21FFFF42FFFA31FFF9A8FFFF06FFFF30F082F11828483 + 2F4D23193046008D8E8F909192939495969798999A92210C011F756E135A5E6E + 75631B017161AC716D1B6B6B1B1B7FB50D0D6D6D7F03A1A563015690140313A5 + 6E65A25E5ACBCA07FF1310630D141656160C14715D7F6B6370651307E107A46E + 1009037F6D710C5621EED50C6171015D6D0DB56D5D01610C16FEFE5602B673F7 + CE5A973310B4842305ED4F1C0AFC0086A05430DE3C7B7F60ADF9F0E18C478F1C + 39C69235ABE4AC912669FDC1A5EA21056CF3B47DF0062EDC843A670230001021 + 029E9E83800A15FA7328D0A246870AFA895450D2A34F813AF549B5E9A11B1958 + 4CDCC4B5ABD7AF6031596170B0CE282F65CCAD51D70F9EAB35673E90ACB532D7 + 065E6E7C017314C2429704CABC286356AE4E9D325E0EA08D368DA0356C0DD60C + 800321AFC28513CAC019B3765F3F6AFEE2050860EF563E5510F97D1618B0E2C1 + 840B17FF6999BAADFFBB4915E58DAE77EB1EDDDFC06BA59C05DCB4BE380F5929 + D7DD6000849ACE20E4B4C0B350A19E53AD4B0D8A9DEA54A14BB907FDAE747CD2 + ECE6C3BF1053002B8F2961E3CB9F4FFF91A733A148693EE390C2E7D0714416D7 + 5CB6D88557290304F0880571AC019B385A9493C007198D5186425E40238D05EF + 30E0E1451B9C91C061A340E886291336A08A87A079A81B3DB9C4881A8BFF0814 + 42357E21741943633884DC8F10D9B61524EFC0130636BB95D61B5DBE05579C69 + A78D06646AAC20D9007E6E8873D3073AF1141550337C09E6984285696604613E + 75669A62AE19159B623471C3053BD467E79D78521407288369B64617FE59139A + 870108281781E9BCFF32462F6EFC124C2771FCE18D388AEDE7D0350D24E00686 + 1AC601DA3FFD30709164245E160E5AE69CB14117AB78F8998B17F9D600ABFE85 + 5A634006E9185B43AAF42A6590D4DCC6C98DA1C913533D31C6D8DBB2CBC6D8C5 + 712D21F7D2B42F2147DA95A168090197D419C566996D0EC5A69B6782DB53B962 + 9E8B6652E86237C20A2C54015F9EF4D61BD68D61487A969F3A718823A801C275 + 2881B770D3CB04094803D94C88693141399BADBACE8D1464BAA962100CD04018 + B70AE48F3C6D70E38D28A64608C16614D24AA30547C2888B3E41BA2A288E64E9 + 3A4E863DFEE82B6DA1B64611B1F1C0E4EBB344174DF46848CF3325B5D52A4DCF + 3D586A59C707EB78FFB9EE0C58839935D6E45E3D66D7E8A6C935D85E8F5B369A + 5B93198118EFC66BEFDB7067D249176324845602A944F40FA86114FAC1000392 + 444BC175E735011C6B34B0C1A21034FC0C1CFCB11A915B7F68AAD0963AFDB777 + B1A4DD35E237A67A91591D906FD0460081F23DCFAFAAC96C6B185D38B723CEB3 + 396DBB4B930F194941D65469ADEDBD02FFE3F0D2BE5425922E678497B6DC0200 + 76516B420F261E664AAF2EB9D2574FF60CD4A3097DF7D1878DE60B2824B28313 + 71A7AFFE820138378A66798726A8FCF234F077E07311DE4B86708C5813397540 + 876770B5390A54EE626E401CEA6CB51A8F89AA0B91E9C6371263A2930D2071AA + D05BEFA8E5AA0E5AFFC3456D90DDAE7236BCE0052F3912A9C48D681634A6C164 + 692E8409D3ACC59B8CC4627936995AD5C6C6C31EFA906B0BF821108548C4221A + D1888398539DD6C744B831E00F6611CCD432C7C25789C67E8013492C6641B8CA + 08E618DF50CC31EA9080CEF48320FF0A8827D600872C69017E0118D407A9E140 + DD6CA31B8D2BD1A9209680C8B50A541D0C64202910C207F1A876D69252D258C7 + 229FE166851F3C5E0C2739496B61A42437CC964DB61547E7F5106D66DA1A1141 + 89441F829294A62C222A45393602ACE0024568A22CE915860F34CC0D09F843EA + 04C5408BFCE16F0308C916556230CB086630285A4BAB3407AAD050A00BA000C7 + 1BC7D00506F2F29AFF4103D119E0D00B4A39CC1490FB833E34B8B750C5C35547 + 6A40DD66D710E2995078C00AD6CF08188F2335AD78337489F19A568F8CA48454 + 59CA21977632C4B105116B072DE80C126AD0853A3488101D22431DDA5084F230 + A2166DE844311AA715C0609620A5CF8D02009852D4610DFDB2E67F44F387338C + 218B0353C90712E0456FDE4463EBA06333551A8F10D621315A38E93A5824485B + 0DCA8E1FA81BE84227A10BAAA856D8FC203A03642176F6285AEFCCEA8F54132C + 611109922EB2E73D8987CF6A8DE6922839090EA3D33C2438D4AD191DA25B8308 + 578ACE60AE0FCDEB46EFCA35BCFE30A11855685C358A3502CC8911214DEC57AC + 90AF3AF0A8019E92FF1F4FE5D1D297C6458B321D515E2074B70D44D6633B2D6A + 002A77A103E012B22B15243683F6B4A4520674E2280504CC91B287341257E6AC + 5F5547E8239D094FABF16C8DEE1A81469A1D8FAC65155A3F35925658AC157304 + 8DA874F54A5D882E60BAD2BD6E7517AA5DEB6277BBDFF5EE7691202718F060B8 + 8A4D2F45EE038152283050AE23AA8B46EB52C05D7624B598694D17528E3354F3 + 5F922DAA6AB2C146706468006D9886548B2AE096E94244A1D02361C82897D34D + 8E9E165167696FC62B9D29F2C33B5B9DB41AE9D5AFE2369B649DE16EEE3192E6 + 3A57936CED6478C14BE319DB58AFDDAD6E8EC51BDE1DCF806D1E8DA57A874C09 + 2B18B08D111A431BFF22A2525EB2D4A563F888306731D36EF257A8D48187933B + B81CDFBD263119E2568019ECBA6265E3979FB34C6CD3B2190CFE51751AB66A6F + 7FA7D53AE34E48E8252E3DC5BAB4D5F106165A1CA65A61BCA5AA5DF7D0884EB4 + A217CDE8463BFAD1908EB4A27F7C0378A18FC8987E84153EF19C0C9D61A84D66 + 60DF2A6BD9CBCA651622AA4CC9CA70D238DEA897E8ECF2713780E4039421014B + 5E2D993DE8220AD0E38E3485EDCD463721D3AD02CEBBE5F0557D6B673B278746 + ED78E4892569D66BD9B0C52E0628F3645C631CDFF8DBDE7EA88FB34BEE70F778 + 011168820E32B0C44C67DA2F0340CC4DD6E0A9A2AE76D4501E807D43826A9A5E + ECCA2865405FB61CFF56E5B83040BC30B0503936E640CA9A155C065195857D33 + 700AB056194EF621DDF9DB8E9FF0D9B699A7719BE6B293607B382F0EA833A6B8 + 93485720D12F6774CC1B3D7345A7610133AFF9A2757E7344BF5CE78A8E799C44 + 004B77BF3B53C540982E172C5F733E790C2FD537480E95EA7F8FC31428F597D3 + EB69F0694D69B4BB3DED3AAAD8E02E37FD1ABF4E6A1DBCC8D4542112321AA71D + 5641BCBA102F5291D2E2EA40F20C80DC200982D76E31CA07ADF267344FD2397F + 34D0612E699C377EF190AE79BA5F2964A3ABF78951BCF5C6984E5427E31BEAFA + B66FE0B6F99C92615D27402B38B55F38BC2ED01AA8D2F92FCD38AFFAE538BC65 + F5904CB0A1438E93FF7D4045C889336F39DE6C8F2B2DEFFF89F6B0E0E16BB49E + 7CF029971AD55A7EDD9F3BBEFA8EB7BEF6B37FE8ED637FFBE0E7BEF7C54FFEF1 + 875FFBE9263A622DAF58066CC0B1CF4030C3ED2D6AFA823EF420B9214DF578F5 + 56FBEBA8AB4756C1134265601370B0010AA66B82F470CAB180BF06619B052137 + 710690552871D76174667CEF94816405715D352C2C431A81E76283A76D9BD43C + 89677DDF477E2B787EDD577EDCD782310883E64783E2D751305005ECA75861B0 + 0617620A1FD0051CB36BB9657F51877F973519A56722AD26705A564F5E477CC7 + F70966310E65A06450554EB4C78010175FD8F060BB4741B6964BFA207CCA3667 + 1AD871BF835CCF06FF1003F108F8F26BCC458225F85C3AB4131590873FA7877C + D8877E88737908887D28887E58887A48888768888A18888B388815D05117A083 + 3B08523DF8832C477BF1F574472875494819FC1721FE472C527524C87577BDB2 + 0109704B5323399A43665C6876BD267123F21CE1804B7F62811B764873677774 + 172D6C986231F381C4C520BA308782067D84B76DD491888CD88C7BF88C82188D + CC088DD3288DCE8888D7588DDA988D798883F332894D544B9B9240018789F1F5 + 799B28751CA1849F787A4E0848A4C86C4E8334A3F14B48162165A40EAD43845C + B71C4CD385B1385AFA951887B31610748124248FC5F78B0CD9861F6801CFB40D + 98858CC361822B37FF7D00D0881AB9911CD99179E8011E19927A485E59B17EE0 + A83EB58418706445F4E721BE466AA117931E8147D0D17F59278AC5F24226448F + 4803418B535A37254EC1032CB0D68F5D472D0D1856CDC746595290F96086BAA8 + 9069D890BF683CB7252AAFB011C7489198F45C9CB48C22199662399664C9876C + 931527C944E2D85929B56B1FF492F916939C884756078A01879339093C3CF92C + 30D25266E1306A810BB7A03245597B47394955828B0E8338A70395B423850B49 + 950C591B1F532873C89515698703050048F091150092A0F999A2199A208906A3 + 799AA4899AAA199AA6599AABF99AA9199BA7D99AAFF988319015DF98966F9392 + 77331BFC28557079FF7F72191767A08496B10C40E86A00E64C3B438F4613236C + 7421110207BF07412F831A49B980B2462D4B032BB1F38378A30F7F8090885477 + E6698AC7279993C90FF2A00DCF87995D49685F0900068004B4299B20E9999E89 + 9FB0599BFDC99F00FA9FAF9906727201EFA19B70B396B7E61043E8962E698431 + 197503E35AAAE6302C87976F59773D5934C9E27AA9A80C98E367CF920FC7C155 + B7E78FDCA94FEC491A55854B42399EB9F898259486BEA89E6CC89DBAF09EF019 + 7D02553524600262900615609AADE901466AA46870A44ABAA44A3A9A46FA994F + 1A9B1E90A44C8A9F557AA5589AA54BCA0505DA6E084A4BB6D49B9EC18F0F0A93 + C3290BBDB101FA85FF0C9AC12D18DA3B896434C8922CBA9070A42054B02282F8 + 90416587A231D40A01808AE3984BF5489E5845A3E969A3C0F8233E29783B1A9F + 85379F1A90034D4000421AA0982AA0991A9AFBA9A99E1AA0041A64B9F9A576A2 + A078B30FE6285FC17984F9B701D7590F9E030770800E63B739A0E26BF4403474 + DA1BB9D052DEB00C6590132CA21BA5112579D7800CF8A7EDC994D3A4226017A3 + ED34A3C557A38A3A3C24D7A8748899165968D4C104931A036280A45A9AA554BA + A4E5AAA4E77AA4E93AAEE2CAAE53AAA5EBEA015C10031EB503A34AAAF3C19BFC + B28F44089709107503323851B262FE244ED3B09C471513749A0BCCA20B49D55E + 63B864AF428A4962FF1CD8A91ADBE942ADD006D1F44608360F302A67BB789E1F + 56AD93A95C8AE3A88FCAA32B476FC1E003DE2A02E0FA91E65AA52550A5F17AA5 + E57AB3EDCAA450AAA43C8BA53B6BB3471AB4430B922AD0362689AFF9FA01E3A8 + 400D4A666F09A1015B17039B9E2D414E9BE392AEB0ABCC720BDBB04D9B72139E + C50EFF62117A9A0E25DA3A198B94A27225A557060856A8D09A9019E86C268B5C + 5128822AFBA8DB9A31D504005F60064CD0021A10030430A4497AB38BEB01416B + A4417BB392FBAE8CEBB8963BB990BBA48F4BB498ABAE96DBB8930BBA97ABB9A3 + EB016930AF1EB5B44C1B1695088A41C8AFAEB8AA558B0BB9C0974A4325F164AB + 7C03234AB22CBF41FF65BFEA69D5341160652C73AA0F7C6A9862F5121FD21C7F + 19ACACF2AC222B955A95B7374A72399AAD5C69912615840C20055FF0053ED002 + 2B30B343FAB9968BAEA43BB9A18BBE9B3BB49BABBEECBBBE94FBAEE25AB9959B + B9F97BA42A50692C7069AB1B1FAD6B0AFE3584B0EB70C1194C5B640BB46BBBB4 + 11332BA5BBEDC9B0BE0B1C54F6A177B3311341409144B1F48871C96A956FEB3E + 68E15FF5988A720699C263BDD78B3C2CA6BD14699100941318E00366E0035B60 + B8E09A068E5B023EFCC33EDCC3920BC4445CC4462CC4420CC4486CC44ACCC43F + 9CC4471CC53EBC04FDCB6E9218C060E17E09117F09E62244D83291211225C1C0 + 0D4C8FC817C1BA8BFF76A5E12474711275937453D40EBA9B9349837146793C5D + 88709D167B208BC2BC35B2E8C9C22DBC3A2FBC95F0699152330018B0C852100E + 3ADC045CB0C4685002933CC98E6BC94F4CC9928BC9419CC9979CC99CBCC9433C + CA92FCC3987CB9981CCA9FBCC469A002AF745E589CC550241857B821E704900B + 380F8A6372C4B1120D8CBCB7CB64D764AB6807784EF24FCEB1298BB131C9C71A + 38B2BCFCFA8ACD4BC2B177C2758B869129C8D65A6D852C387EBB564CC8C81810 + BE3E20031A40024D900668A0004EDCCEEEFCCEF01CCFF23CCF5CA00222C06EB1 + FC15168074A5904BA0C675AE182B3634C650C2975202723B25C11761C1FF9472 + CB306FA8736100B6FF757D6A760CD21CED55C2D18B8AD77CA878ABCDDB2C34DD + BCB2C94829B1B1C8286D06E130072D80CE5C50C94E0CC5F13CC9F37CB9ED4CD3 + F3ACC9335D025CFA4AF69ACF5CE11716F23007F8CFD929607F07B664EC2C7887 + D046B5B56A9C11FE6412282119BF3A0E38711C10BC325A58D1491929162218D5 + 1CA87E7C862ABC8120DD67A331D2248DC8268D017E00D78BFC0507F0057E70CE + 31C00525A0007CFDC3ECFCD7440CD8ED0CD8EC0CC484EDD77B9DD8869DD8828D + D88D7DD890ADD88E5DCF4447057C07D4926001ED831819426FCAEB8A1ECC1B0D + 6BD08C2447CCC439AF50918267D588310E9C742CC89B8550CD60B2F621A425D6 + 5C320F1C3DBD89C4FF8BD40AD25EB7D6DB00C3C8E8D69482D23E80D21800BEE3 + 4BA953FAD88C8DD83E5CD8921DD9D47DD8D31DDDD06DDDDAEDD8DD1DD9D9CDD3 + 4DE0D3008CD99560057B921F9C84ACB008DA7F47C1657CD0C1684DC4EC0AFF84 + 6D233119AD1D549E950DBA50170E99D0B4DD85FE1007B46638ADA6DB65BD71D2 + AA86698D4F843CDC86ACADE06CD25F00D771BDC87A00BE07E0073280CE2A8006 + 7DB0CEDADDD77CCDDD7F6DE2279EE22B0ED92B5EE22DBED72D7EE28C3DE3364E + D82BDED3179005E67D09217064177285090671B5EDA028B61B4653C7C2DC647B + 139126876D5A3400FB87D59E85AB739A347AC353DA49230DF29709940A0ADED1 + D47B3B0F0EE1BA2CFFE1DEBCA3884C0A97E10617AEDC8B6C065FB0057ED00239 + 30022AA0CEDFBDE728CEE77EDEE780FEE7825E0290F8D33D8E1B61D0062DEACF + 41C28064EA3BBD7D34F330DF51B5524E8EDF211112935185FC0DC289640FFA28 + E05BC8550CC227D3D9DF647DCD679DA865BEB7D93BE1DBBB56DF541367E0E6C9 + 1DD7192E0572BE054C900324A0022AB004327EE3C45EECC67EECC89EECCADEE2 + 3D8DCF87CE099EC0275BC28A8E4EA6E8546D664C944D27559C93B21B91E9E02E + E595E1DA08182CCC2782B3B24B99E8703253EA09F14670503B01B0060B2E771E + E6DB65DE670BDDB76A2EEBE5E045F30E0107200518A007CA2D05CC3D071A7003 + 31A002C3BEEC101FFFF1123FF136DED330E004F7FAEC63D1007020D657A5BC47 + CD609E774FB461A295BEBB290BEE1CF1112EC54D6E54071B1006CAD717A22125 + 0C27EA528BDEB6849CFE4C60F51EAD63FEDBC08DBD684ED22C8B16FD93007010 + 028D35F0058FD271CDDCDE7AB8C15E020860EC57CFD759DFE25B7FE35B7FF560 + 6FE35F2FF6271EF65D5FF6CA9EF55C6002AF4405CFBE3B9B5652E4E819AF78C0 + 5F0CE95679F24F0D321299E92C3F93FE46EE32BF15A9D7EE5B4B70AAA5F3D2A9 + 19B5D305D1C9DB5399EF7BCBD62BCBBD81D90000606492E2056650F0C99DDC08 + DFF9857BB8E9FCF061EFF5647FECA7AF0067AFF5588FEC673FF6C4AEE33CFEF6 + 901006B50E9808E6FF1F756FED81D4C149A9F780746670419C2C0F3803D00DD9 + 1254F4D65545E2CC69AC8032A3F83CEF10A4C13029DCE0D5DBEADC5CF46DBD56 + 07D6C58D30166D001852E007B88ED2BAEE03E37BB826F0D27DC0FA0830FF66CF + FAF65FFFF47FFFFA0FF6F30F080A08820883868288878A898C8A85898F8B8B0A + 5C262B1745009A9B9C9D9E9FA0A1A2A3A4A00C1B105E5E6E097F710C61B1B2B3 + 610CB6B7B8B9B916B6B1B7BCB6C00CC216C014010D6B67CBCC03CECE0970106E + 5A5A106701B621DB00DBDE5656C5E2E2BFBAC156716765D565090D71710D6770 + 655E07F75E10637F01F0710100FF0504D8CF9FC18308131AA4C05060833F6B22 + AED940B1A2C58B16FFD70CA8E3E6DE817C03DA5060B06393853803BC489182A1 + A54B295FBE1C6022E3460C1568FA3482246967CF9F3E83027534488150A15C54 + 5CCA52AAA9D3A75045596893C08D970975D6C4A140AB2B2D7360C3F21A3BAC2C + 5906C792395BF6AC6D348EEC06741969C18AB710E0F28EDB6B76D7B093EA0E68 + 2933E65D803F63EAD4F3986FDFC17E90FF299C4C1921430AF002B4812811A367 + 8C1A3932D6F78E018B4C9A2C0480A3E58B143F2E639BF9C2A4C58D265C0AE9DE + CDBBB7EFDFC009F116FE5B3871DFC7811F525042298C2A53A24A9F0E8A9B5374 + 1FE092DEDACBEBD7B0E0FB921DFF975718641ADB0E18C39E7DB469EC0AC3AB75 + 0E6F5E707BC99DFDFF552CC0808E8DFDD1853CD2943141355A4CA00F3FFE44E6 + 6065104E7659669B4934D167186E105A47F86CC740062C1861D21E70B8F10506 + 7AB4E403062BCE465B0B39DC94131ABA25179C728644A29C8DC52157238EC6F1 + C645132BC02022754852875708D785D14002EB9401C71A018C048B77DF85A7CB + 7EE491074B3C1FA8D75E7BEF753458615D00D44517718461817DF7E5A79F7865 + 053006350A8EB1C11F1FD053861B6E4C20A81B0B3E26596411267AD084FF54D8 + 59869F8536C168856523820830EC50456A01AC5186192862009B8A6694CA0413 + 1AC49042097DE0E8AA0BAEEAD6AA72B0CE8AA3ADBFC11AEB6E955CB203934906 + DB5408B030E05408FFAA7D908A820394762596596A295639C100735E03618EB1 + DE98EDC1510704935AD36C005D6CB6411B71BC799F5E721253AD2D5D54A5851B + 758CB10C94135C05A81B7F2E589040900DA4E8C05B35D4286711411AE9461C7E + E4E108226400C31D59301942181B94E1DAA82A62208519F7309103092A7061D4 + AE28A7ACF2CA29DB30E452C2C61C0A5E14B4B14103FD70F5A628C83600872A6E + 4C19402DD076252D785DD20926B76324E0F4D3101828581D1F14A4590373BD09 + 679CEDD2C90B55074AE9343DF608A62FA01024B0C1BF87B64DB0A28C6A86F085 + 0A5FB4A1161D56CA400123E820C2052C44D74D1872D4F1851F29C6E631C83ECC + A1410E2670D16AABFFB52200EBE596675E88AD946BEE79E59863CE79E6A2CBEA + 7921BA22606BE8A49B9E3A022F3F27B8CCB40FDE406275C091C0191BA43B4A08 + AB55039248456379F4B4493310471B1F8CF9F4F3DE5A35F51F6EF6A2B35DDBAC + 8B5FD76315630BD8F3C2117DD91E993D413B541A8AE8DB89C6FD908575833680 + 34933A2CDFDE23F0FD370CA8013095E12B5A51C71667862DC0E8264B50C0E458 + C6C0063AD055B12B49ED6466052741C923F3CA4A1CAC209536B0E61E41A31243 + 8A67B4E36DC96B65595EF312D034E88D0D3E1F4940173868B1BBDC457BE1E0DE + 3818E0C149110A86E5C3E02AE07006AC59AD6D6C631F65260490F73D2A7E15D1 + 4802A691379CEDADFF0058EC9BC48A60310BD8010E0790428A38E6310C98EA71 + 2468C21254D73AD6B9B18D707CA31CE348C739DA918E2E23D2058E3441245981 + 01878112DECA879533B4A14A0C005637D0D28601408052FCB012096561C26905 + 03172A6CA10B75A79803C53000D5B1210E73989F6184E37B0998D4F9A8810F41 + B9D20BD5381F116F4690242A31424C44C6DCA09891F981AB8AAFC022DFF8A603 + 89F16007D1B10205DE700033F8C007645C49A97CD002DBC4C0649DBBA336EBC8 + CD6D7AB39BAD831D91B0C0943E524735F3A8C72031C8AF7AF5CE029BB042A74A + 543FC1D0CB901430CF246751C91392074C9B8CC65B0285B7098C01949FB061F6 + 70D8AEBA14C34970FF085735F041A86F41206A9E1CE2183E60C45BBE2D6E8E4A + 182F29A291120D1224A511A64A21664C3668220E6F3810A812F792D96CA13631 + E2C21AFBE0829E5ACEA7A1E3294F81DA53A1F6F4A83FBDDC5091EA029E5ACEA9 + 4C251D50A17AD4A62AF5A84B2DAA55939A941C5CA09CE67C0AB20270865404F1 + AC07A0D7075EF1C73864679D8C6145EFBAB34F5FF4B31C5E42C61904AABBBE8A + 4F1A5661C719E2B009851A766BECCACF29E3B0818806D10B521AC0199C3186E8 + C5B20CB91BC01A8CB83E8F4AC8607283DF4835C4304806337F59CC623133A589 + 10C4810E3F73A61F02C8A2DA9A01A724CB4D37A11A47A8F2D68DBFAD6370E538 + 5CA0C6D1A7080083FF738CC0C1B096825801C84E3DD15A3E7A0D604F1BD8C874 + 315848E2D5959277F58BB5E2F08779F0F5AFE2FBD6811204813584A1B036EC86 + 61192A8EFBA0A50B652D9B165421258EB6A10DEF4B4CA05C5986B49DE10F87B4 + A5672DD39026EE526122FDC31F367006D1E0434A6BE8421854CAE102AC96629C + 0223A860434633DE1646245B421FB25AD516BBF8C5308EB18C674CE31ABB7809 + 96B880049D3B0A740291BAE54B5081A36620B872571F6B6BD377C11BDE4BF6E2 + 300338EF5FEBF0ADC5ACC21DC66A6D7CB57C43ED8D432FE769EC3AECC92F387C + 402498F94717CA5BA0F50E51B33853F082FDC1C40169E889917A9484295C2276 + D6A18801E83087FDFFB645C12D5363A0EAD88A3EF685C63D4E052A362A516D4C + E9AA26D5D295CEF4A431BD04157895074EE07142C3815FB302F9D4A716DEF9EA + 90800C2B79C94DC68531BAB081CAA237BD54862156B49265C3764294A3144718 + 5488AFFD8A6DA3E8EA0E6634B386CA1679BFF4DADD9E123C67062FDBCEA2C590 + 48F734E10D1D79770D103487B598A94D01E01475686689F5009346A3EA062648 + 41534FA0E97ADBFBDE9556800A6ED002502B52D4DD20EF143D495D23A3BA7C57 + C9D70408E598672D993E77B51605BAD06C6F798BCAB9AB72FD58D1807C7279CB + 1F472CD726FE878D1419B2AD7E08CE0AF698357F20011C59EFAA13006736557B + 21A075E2B6236591FF3DBFFC97F7107266C53DE862EAD8DC0C58C323A1F94CDA + 7ECC99D4D4800914C8E217D31BDF34BE3AD6EFADDC1B64800AE606F8B9375087 + 7C193CE80B27DFC1E3FA27B37BE1CF557A383FC36B1E6263FCEE55969E35B051 + 971AFA3AE422C7CFC45FAE4E63C321C999015840B6020F9BED1586ABC06C023E + C00F39DF12A40F8EDF849BA718F209F9A27520FAB8597A9AD478F00B66800D4D + 4725852D1810725CB0411FE84D7B17D4FEF6B6CF3DEE77AFFBDEF3FEF7BE0F3E + F0876F7B1BA4E0064C6041A8456D8130FCE167059F79D3A6A1F654471BB0780B + 219BE46ED77E8E9740DFC2FBB7027B8009C0817AD83BAC75E4AB7E70288F7926 + F50886E7128634ABFF294D019950B96A0D17B447F666F8576D97B16C21453710 + A60C30576442C42F98257AA31731A7C1245310006FA0127E803802E4313E807A + 3E20031A90462A7602B3277CB97704C1D753B88782BDA78226988224486F2DD8 + 7B3138832FE80231E802CA950319C003FF664E71B006FD87566F07689AD12763 + 866A0952079AF5739372656B3312DC4777681100D93545E2D7497873266D9048 + EA771780274ACDD7057D223DF8403536677FB5544B2DC7668B710FE7A30F1FB0 + 0101C87897C74405688019224551034B70157969E3801D466E3C80741FA005A1 + D2121CF33130511B24106F36700290687B91780247407B952889B407899A6889 + 99B87B974889BB37FF8993F889A3A8899F488A9D0889A8D8752D1022CE750A10 + 70764107016BA5351640017F2048A99627E7D2066BA08B83A13605237711C70B + C4E62D1080777F620FE1D33B34D485D0B850F73586EB242EE8927869988D8B47 + 806B403666B30A10000763B006086679036387DD8667DA363F0A1844D0168E67 + 008882E637170003E564016B30011C382A192805E5474D230369F35683C4377C + 23F87B0749900A5990BA677C37B0022C1076B5435ED08756195435F0144FF1B0 + 5758F858F4A22709D60615563601D20FC41871CA5372C8A88C64A820559348EC + 178DDEF06BBC800CD4E81179E20ACBA68D3C994414470FFC1228FA923B1B558E + E6884B0D612ED916FF29CD430F0417646FA83B1FC06106204C55894557B952AB + 851A0CF0078FC41225E61227F6812A00069B789668898968B9966B89896AC996 + 7019977279966A797C10F92B1334063FF6581AC400CDD55ABC40728E345DE173 + 5DFF95263FC921F302010310490FE770DD271635F98B57B88783E40663D0066E + 22937F575880C47F04157484517987D2933DE90FCCF3344E7959E1A859D43680 + 04D36077485278A821679018ED8841C69636DA3295F228685AA463AD950560B4 + 3117181B8C8601EF1639AAA30673298ACFB9896FF996D1599D72F9962EF39011 + 3941DB15645A90151430935EA8097F845F25A20A43746087542E69928B0D9384 + F8C47DD122166120FF92D2107E1755060A382FAD4001E9C799F1E50D9F493FAA + 202857E60AD8689AA6999414011153044B41176D94774875D8787373213BA721 + 9C477E417615927706096395BFB9522CC5035C040030054662A43826764631A2 + 020AE002CE699D345AA3367AA327600360402499D28349726AF4A21519C9659D + F04736190DBAC33B58532E09861847281884D171F5279F73071EE4B511181735 + 4219A187F70A000A7200704AF3B4188B4965AD667301A3A03C7910F8E78B7A59 + 4F42268E1C9526F0C02895818E7796A15114264EE98E97C56A0310875833A244 + C75230C0031C244F09D04C3EC0121DB31207D06832B0028D287B338AA36B397B + 98BAA9D609063150FF24C8243340F69DBCD65C87255F39742D0DDA000DF05F87 + 79187AE97951DA265C517FB57A9260517F149718C9A8A54F697EBCA6355F6A1D + DB708B54480F27058782EA206AAAA692B115E482184027186F286D145A3006A3 + 10B0B93CE9A8A71A1A659DD7A11E5A2F1F50AE9154005599AEE8BAAEEADAAEEC + 8A45F4C803E449225ED068A2829C1BB8222D902A5C70A99BE89C007B0297AA06 + 044BB0027BB0015BB0086BB09A68B0098BB0070B89012BB110FBB00C6BB1D209 + 06267003C2193316990F6B65313179AAF1A43C02B126AEBA268851076AD70EAE + 30A5B62A9FE0710C253745FAB98C5938445422ACD933ACC80248D8E28DECD00A + 6BA286CD7AB4D8BAFF6CD29A2F8C214BBB538EED83A74B79671F709BD8D7A1ED + 54941236175794952A9595602BA2C2E437875A05DBF0834B171B19582A33912A + 2A900236A0B0131BB115DBB0764BB1189BB775ABB7030BB114FBB77B9BA34DE0 + 5554303B488256F7940DF0058D9C8017E3452E00D6066B16AB83C49FEF00B303 + 78AB8FA90B4598808002A16E9836AEC085DF701F8C5BACC3B6B2D47059678A8D + 8A77B40A8A106B66729E078E7000670591B909C1284AB9731151AEB759264606 + 59F502A250EB26EFEAAECA9BBCEBEA61FB13AA16F0071A4362F74A2ACEB4AF24 + A02A7D50B0DCEBB005DB01DD0BB0DE4BB0E02BBEE41BBE028BBE72FBBDE39BBE + E6AB06E5EBBEE14BFFB047B0A31C8BA8C182566520176160AA3E1B2753C89E93 + 6B6A505A185C91B99721B3B940B3BE64764766486ED277A3148D62BA01038737 + 9095366B70ADA509BB1EFC2F7AE5947CB85FD53AA1B99B668B52A707B3946B50 + B5D050266AC75E9317113863250C10B65829B6CDBBC35E4B6E7869055DF0482C + 729C8BC622FEB805731023296096E17B04F3FBC44E3CBEDD5BBEDC1BC54F7CC5 + 567CC55A3CBF7DA0B11C4B05F97B56B4980D12ECB3DCE0B8689178B743C06722 + A5083C42B86A3DCB935D1CA15FAB903B1FD0053059BADA038D7F347850C28CB2 + 745D74BA6CAFFBC1CD4A6760828CCBE87F728A606C92446FCCADA2F5BB93E51E + E2B38742D40E07C6FFAA88040CCCBBBCA29CBC5A042289A4A807202A34D512EC + 9656480C028D98024E0C041D40C5E45BCBF09BCBB50CBE54CCCBB97CCBBE1CBE + B6ACCBDF8BCB4FECCBBBCCBEDC9BCCBE7C04FB76013C78B867B5BFE84217FF69 + C6A77425353306651064517AC06F9CC0FB640EC730207C82ACF6A4C138B3990B + 35C1BEE6B8714071819CCE6626205693A6888CC899C12767B0A1EB64BB1B752E + DB18CE7293A7544B59EE01C37E662FE5C8159734CA101DCAE83A0225BA034EE0 + 5AE9A638FDC822CFB4AF4F206FBF4CCCC82CD2213DD2E71BCC247DD2254DCCE7 + ABD2BDCCBE28EDCB36D004F76BB85081B8AD46A1117CCD66ECB8C9C2C6DF6CAB + E1ACB9E31C0B9861FFCE0D60C1ACD418A55117A3D4C7BED656D812C8D5605D1B + FC18F99CD504A166AD6A93F404A1EF288E9B45A7758AC0DC9AA71171C94D4326 + 364B3E58B1519B353465110C06A0BC752DD1115D95862A41555081ACAC07ABEC + 315FB00518200339F00465790434A0CBB8BCCB8E0DBF8D1DD9BC2CD9903DD996 + 2DD28E4DD9992DD98D5DD99D9DCC36F0CCF23A1DFA3B255DBD15B5500CE0D0D3 + DF503365554FEDE0C6434DD493B49376F6070FA18B6F27A45DF6D4797158AAA1 + BACC784F0282D55A9DD50D3210F20073759C850BD79A1B6C73657DC0D14AB52E + 9CD0DAB21E30A7770A52CF354C27798DD7E2EDBCD0BC29AA1105AEA107B0D18F + 30E14C8EA3C471DBFF07CCCCD8235DDF986DDF1D7004F85DD9248DCC9FCDDF97 + 6DD226B86F194006CB77D367C50A9B25B95B6D253C3DAC7F741E810142EE00CE + B34DDBD0726DE6B2270FC1CDB0647E1BE09F4BE2DBEBA250E140010D30988384 + 15E3D220877CDC1FEC36F1CC194C988542378E58F3ACA83D6CD856B56ADD1E6E + A1189775BB020D71E381AE775DD7E99AE44CBEE44E8EE44E4E6E54106A0C7027 + 2772AF64542A2F12231210B71D40039B1DE6623EE6645EE6667EE667EECC3100 + 2212D914A5BD59AD9AB226694ABF6DE24F7D43766215C363E1B35D3C0D462E0F + 71671CBEB4E1433DED4CE2A6AB17CA93E2A6C65E8D09C2301EE95B0DE9D16A72 + 04078ED2C6AA0C5EFFA7D19AD6080DE4CDE06C82028FE7D226D45216E19DEACC + DB0414FD37A8410172602219F81204845B2A6003684EE63850E6BB9EEBBECEEB + 65AEE6051E15380DE7FFA5E9F8E7D0A664E7777EC63C749B0C9D33491BCE197E + B20F918E1F3011B85D72E052E85C88E8A6FB0DCD07AB4097418D29DDF82CE9C7 + 8D445CDD27D37AE3CBA0EDD4562161F2E9CFD0CF555B59D3008FE598DA5ED3E4 + 501EF04A2EF0003FF04A5E957FC3023BD01F2AFA1A58DE122C7162B05C9627F0 + E5165FCB608EF1999DF116CFF18E0DE6201FE621FFF1227FE623DFF117BFD929 + F0A941D0E6A3F0E671EEAA87897F727DCDE0BEDAA784C2927CE1704C0BE5BC79 + E51AF40983602557FF7609727EFD7BF3758E17B040850F9A854103682EAEEE54 + 2F309121CF0662C715A53BF632D67676DDEA2159411FBC54268E7268EA97441E + AABEF6CC6BA8857B6E8BBA31C8E9312B712A8F63022A20A31E8FF21CCFF1BB7E + F21A1FF27BAFF124DFEBBB0CF8252FF87CBFF1F9AD02961004074E0AC5DEAA4C + 2AF3C8FEC94EADF4758EAACDC7F308EC1569A10CEC2159FD3CF49BA1E258B101 + 49AFF4D9638CF0778443C451945EF555DF360C21CF55C687677351728A5D2EDC + 16CC80EF69DD4201CD264EF6EF079FFCCABFFCCCDFFC598429AE48014A772263 + 34F731E1032070D82AF0032700043420F838A0F8E2BFF8E30FF2DF4FFEE85FFE + 1D7FFE82CFFEEB9FFFF136F0F8912F0A302FB9327FEC715EC8A9FD9FE00E0821 + 2100008256160C896114718D148F90916193946171017F1F0363630367671F6B + 6B1B7F6D0D0375135A13751B615687B0B2B3B3822116967F6770655E07075A6E + 70670D018D9701C9CACBCCCDCECFD0D1D0718C6D6B1F6709106E5E5ADE5E1365 + 657509A01FD867039E9FE6A1A2679C631F7F5D7161890C8889FAF91606FF000D + 140038F05F418104131A0CA8D0800E111960ECB060A54D1D337E30F8C0C07123 + 0633BF7CC8D04022C69213345276A0B1B225CB972E63C29CD90187CC9B3473E2 + DCA973A60D132B2E382144B468D15F487FB949B0A6419B2E6DA24A9D1AB54B32 + 0AF96869DDBAD582FF57068B1C451A0BA9D2A5066BD27532276A83D35310544D + 80E30A1645AEB442580913608336375A7E791176E68FB1C3C8A4295ECC58DA25 + 645D22EBE235C1173070E3E0AC65D7EE9CBB77EAE6D5BB87A874BED35EFD315C + CDBAB56BD64D46E8C870616296356ECC98F1E191A36F1F5230F86991E3099823 + 2973265FCEBC79F3952A5F3A9FEE1C3AF5EBD157DA48B1224815A3E00124455A + 064ED3A754D337706AD5DEBEBB78E3CB42B4681259B2663169E2E4E95CDBB767 + A4B24A2B14D8259F5DB874B14602654C8054307514664C23873566E185183E46 + A135DAF412183013B801011C09F4E7D967A2A488CD1AF46085DA8BA57DF5DA8C + 34CE58806CB4F160FF01000CBC919B1EC275E49B6E5F30415C0C2AD8909C4BD8 + 353953744E52C76494CCE1201D0D3FAD80C550E111359E524CB1971E55EB5595 + 0C35A45961C8815DF1031623D4DC470125717491C9266BF9B7815BA604C80D2B + 6B14184B7C7AE112C0821058261804096C500F85896128E9A4D34C7849171BA0 + D2CB8321D6A1195B29869A16284D8D06238CA931C0100100B1FA8FAB06C00AEB + 6BB3AE7623442C141102030D9461867019F9C6916EBBCDA1410E49AA41031054 + 360945B3CC3D0BEDB429657981115C86F7E501E59D07D598E04A7555566CCAF7 + D5228CC8F9C82475DEC91F5B7B0258C79F75AC1107457779D515031428A88D83 + BF68E14519097CD0FFC6999426ACB0638C341060191F8258DE18A48A3ACA359F + 3465CC3DFBE0C34FAA0CC451E3C8240744C0AD11F1E044165DC0718014C109C9 + 11CC071429430E26A4801CB3D452CB3373CCFE1CE5CF42370906505850614597 + DB2EE56DB863AEC75E23A4E95B2E57FA542227BBFAC1936728F19AF2012F5E78 + 01C107F75A6DF52C86FE31001CDC041C4E1D036CD0C631152EACF7A489510356 + 1C70A9F2E0381483DDD606A278A6B18BA6359E1A7D01B4D16AAC94B36A79E598 + CB3AF9E5AF6E4EF98D3AD4568513712470C046C10AEB83195FF8606471292C1B + 7472B3A7040510CC3E3B7BEECBD2A0BBEFBDEB8E3BCFBFDFCE7B4AC303CFFBF2 + 40141FFCF329E170FF74504630FD65B762420DB555C66005DFD5B43CAE089C63 + 718D96D7268EC267031F3058F6D971F483202C6B3280C918F3463C010463688C + 77A47B0B20DFECD385F671E343102AC707F6C440C4B1C37F1D6B1C6ACE1500B4 + 94EC821894CD0560C0030654A10110F842CCF4B091126AC40745D2400CB86003 + E4C86E3944EB5DCF902743A0D1AE77459B4E0E9D23B4A3E5E00259D0D6979C96 + 3DED69EF5155FB1EF810343EFC58A2826979979ED637B60699ED0C0148CDFC64 + 9188BE304870C07043841A80A6B03C468068CC903D16E1C5B85826188C3A83FA + F694B88C919171A78A11E4D03280CCF9F17280FCA32039E747038C600410E1C1 + 77BA603A29F8410FFF4012964676D30215E66C670E68DEF036B949E36912779E + 0CE5F03C993C4E9A5276A034E52739494A55D2000C29B8C116AA67946D610F3D + 460C5799DA33278FB1498B6CE3877D247196287E6D147F680054166445086051 + 7E6A430405BCB8A9030C861C0673CF9BF086B0347A331A7E63A35FB6D18D3092 + 438E0CBC063642510C1775EC9DE2E3CBF9C6B01ACDD57346B5AA556B5C558002 + E06A078C904319BE1049497EE40B66785D0C5260031CA83268B8C3A1447737D1 + 894614A218BD282A71A8518A7A74A33C3B420A7EB883A579698861C2652E8FD8 + 1EBF2911418F8B29BE62DA44485CA20D1B409F7F90A94C6B50E68A59D497DAF8 + 85A97F09866006DBFF183ED0F5BFBC7DF3A988B98725DA30B66D54C61B222AC7 + 1CD3E209BBF9CD6379A4201FD531C8B206F2AC66FDE3C91E72813B8421045D08 + 214752373322B92E0724B8A4EF36894ABE96F2A2A7FCEB4307EBD7C00216A37D + E564075210831550E128D7334F11570AB55D06A0973185A94C376B1745D4E789 + 3855CB00764A8A9E32B332CE0C80FC0EE1154B388C6C8B1AC31FE2671ACF3EA2 + A90084AA008F61536B8C010E1028831B54914074220E1D6BB81BC724E8B83DAE + 6113EAD01C5A3B47DDB2766EBA94ABAE21457001165481011B80C0CB4C485E0C + 48C175C7CA590F3A004A87368FA3B973A8F27CE75EE139EFA37FB5EFF34069D1 + DF7D140AF2854207FF6C7083DA9C743C4454296575E994A74CA86AE1DBAC4C59 + EBA6BF45CE98A375476997F9D3D402F32B80D314C0069600323200A69E45179C + 20A5DB34C6891101B0D3077E5B876D3408AB7174C7271678373C32577CD33C1F + 74FB4880221BF9C8483E72AC92BCE4241BB9C94A7E329211998120EC201F1B98 + 407032425798B5CE58C551C1098090492840A1CCEFBD9D9A9B0705256852CD6D + 7EB3261D606636C379CD66CEF39BF3ACE735D319CF727ED69D5FD9581E10C296 + 9255F0828D1899F684616D128E344DA579619D6A3899CBFC2250572B4D87CDAB + 9CC16854FCD4C45A7C8065982BEE668BF556C6695A630009006E8D857BD5FD0D + 23149A388357DD79FF9A77F6C3B9EA08F600D04AECB4165BCA952B7221717401 + 455A600D6538C0AF84151C9899410A66A8240954B0B340A779AF77DEF39FBD2D + E834DBD9CE75C6339FD34DEE76971BC03668EC0EB2D0B4947E6BD1B9949AA3DF + 23E97E3FEE890DF8C3A82AB6610EB9B10C0350ADD5C072285E70AA0E1F50AD2D + 0A55E153DB94C5B95DB585C4729619D7A1C61008B9380EB8BF12B5C3ABCB0D6B + AA2EE12E75A463D84886B29367DE6499CF5CD9373FF28D3290011650A10B5748 + 801BBE3057837EE117DA36C10F68904934A359CF746EBAB8A7BEEEAA5B5DDD57 + BFDDB8FBCCE6A7A71B07F16E010CB610D9A7E17BA596BD442FC945617FD3945F + 37E5EA6879BACC31FF1C7C0C5DE0345FC6E606A49078B616B045DB7B6DDBDB62 + 5CE3927A71BBB2010790873CB8C3F586AD3921C7526893B9BF6E6D1CDA20F097 + BB3CBA99C379B28F2D7ACBE1BCF43547B6E90542659FDB4F0E5A28EF46BCFCE5 + 231D61787F3E3399751FF5DDC3D9EB6676BA9C9DCEFBA9F7DECFBA07F4EF7D3F + 6791DE60054C40A9D9CF7EF6EEEDA3ED6E97293E363F2A6426332A99CADF52DA + 90262B1035400083D019EE96F9499B9A12863F63C6113F8D3935828F0970FCE3 + 836BC555308AF2F4707979F46B2183169A206CC296730AB8800CD88046D6046C + 750701100620740018A007741524C0B1054C80333FD05064E600517766243882 + 4D5782C9878226B8FF7B27B88226A8822C58822C1883BD678222150337D00264 + 471E89766FD48776BBE408CB957D9216329C974C01F707A5D000E10718E3F768 + F9D22FE8173004935C13686A9BF54EF0177FF3477FCDC071153463C0250E65F0 + 78B3365CDD20460AE428B40556F0F41546C8559DB00E09E8804E66737698874D + 003A11910521900563700018182CBDE1653E401C79153B22C88222D888357866 + 22C87B9058838BD8888C688951E7888D98678E28892DA88999F867DB610239C0 + 04470726D3F783F8C63D68C2694448537012634CE8167C247E09407EE4C2701F + 900A4715262D9544DA274C2A760CF2E7855FB846966027D9007264B87FFCC70D + 035307FD138029F7FF63F832551B708008588704800246E68D49068E37278E47 + 268EE4F88DE8188E315700B321115910077CE0051708245D2605ADC304E9A533 + 21088AFCD88FFEF88F001989A1289001098A67D6013F600224D0023EF00BB7E4 + 83AA487D4AF58AFD9608751270A6F05CB6888BF9B27770F30B25B740DF379112 + 46785B488C88618CCA2084C998298DC77FE2E08C90E7066E508605D34E60658D + 202664DB888079F893409973E0B8731740063BE00471151C91D41BE6F50B5B60 + 2C316002C7E18FFBE888558989A0B88F57999558D9749538895CC9956706760A + A98307906010199140C81EDD338414A97D4F940CBE952807300125E63DB0C070 + 6BF09175392297A6FF4CEE51914BC554B8A59262510D2E590764D88CCEB89871 + 849398A7479A670D9ED793C1D68D98E98D9A898E9B59649BF9999C999998E999 + A2D999A5799A10D87359005E13803A0625243E602C24F0043F700435E000B799 + 9BB8D988B72982BAD98FBA199CBBD99BC3B99BBEC99BFC289CCA699CBC09053D + A0020B69060FA9961119190FD67E6F0987E8D2176300317509070DE0229DD570 + 7D674D045331A370308C538483797114E254ABA67817F636B3E698321993D864 + 186BE76BFA205405988D96B98DA4099A043A9A060A9AA439A0079A8E0B9AA0A2 + E94F5A7205DF7506B9E1078F645030C38137B35047E088C4099C0519A222EA8F + 1F8A9CA0789B4760FF0231D00258606FD4A98A65723097558DD909329BC777E1 + 3006E1998B21B3017C3930709061D7C02207A34D1E138C29E69E67D4628F6153 + 32166B30598632B97F9E220F07C331031853AE2577019A8005FAA5A709A6621A + A6644AA006101BA1C302F6F3077520421788A1BAF13A2420014A529CCB79A776 + 9AA778BAA77ADAA77CDA0329F0043A480693F5A28B16A3ACD88AD8992A8CBAA8 + 7F8329BF550E6D80978710327F207482210C42EA1FA5D0525FA5458D7A6AC358 + 98DFC49288B98C8A699F530A0155BA38599A79FC524139D5A5021A9A605A8E65 + 4AA6B8EAA0B71AA688740158700757D005141A33BDB111AC738FF9C874BF99A7 + C7F9ACCC499CD26AFFA27E4AADC209ADD38AAD0E80038C151474D05386FAA2AC + 088C5F1199036891D6C0225D40A91679A9D1060CE5317789C3530D560FEBE97E + 491A7F29E94D65848D63907F221793AB1A7270A0191F500C581A9942D52FD9F8 + 09B4EA939F8902121BB1043AB1167BB1129B9919AB991BABB1183BB1DDF8B104 + 201BD07707F9F0015A705E453724C0C11BE9650364769B49E000495003367BB3 + 385B03339BB3344BB337BBB33A9BB3426BB3335BB3439BB3407BB447CBAD4011 + 048A16AED49776FBC96F84F73139991A7CA10C14305414D000630018E6347788 + A34EA1420A453A09FC063259A3622BD685097398AEB606F813A5523AB0E43000 + 56481A6E3841FAC0FFB0DB5899013AA6829BAB835BB861EA8D28C30271B0031B + 50072F438F32F3115AF0053793333FD0013C7BB3B869B39BAB9C38DBB97EFAB9 + 9A7BA7425BADA37BB34AC0582D10046909B5AA98A86E59AEAFAA47DB84594CD4 + 0603E09D1022B6C775229CAA4CD6C776A18A6A6D0B9F6F2B9FAF3686AA3AA59E + A2191AA3B70A5BA97502A00FDB931B8BB1217BB1D99BBD1FABBD202BB2DFDBBD + D80BB2ACC28E2B00036410320940747390815E96501A000279F5039DABB4F67B + BFF89BBFFA8BBFDCBAA24EEBBA50CB4B1134BBE70A16BF566A5D300010101810 + 220FEA9338E8F04066BB6FDF23BBA21A09A44A2942384D32F65B513AB08F4722 + F280B039892AA9D1FF2FA352BDD6BBBDE1CBB115EBC22C7CBD30FCBD1E1BC333 + ECB17BA803E7CB0259D0066FA005D3568FD87600AF439B1D5ABAA79B9B9C7BBF + A03BB44DBCC450ACC452FCC44AAB04CF190355560A405815004C266C2984036C + AED678A47DEBB5DED9970E4C47EAC419F082695758C1B525AA84D9547CF362F3 + 09B01FBCAA1F47227244C2620C870C0BB82A1C6CE25BC8867CC8889CC8DDCB01 + 286048B3110454100774000152D0BE1988015F2030724AA7F5BBBF44EBC9A01C + CA463BB480BAA249936F4AA84C8DD6C5E9619DD719AA55BBB756AB0897B020E5 + 89C66033B6BEEB193BB64080597ED83798A8C64D6E5B7FF601453416B075ABC7 + 095022791BCB1174FF17218329DA38C808A8C816CBBDD8BCCDDCACBDEC18113B + D00574A005917BACBCE107F8882C0D15CAECDCCEEEFCB9CF4902191005F98638 + DFC7CA47647D624CC0F4D1080A823F82B33F1473311603C19C219256E14E59B8 + B6C384924BBA18AD168600BB98CB2C931F572278CB7EB3FB38282CC8D6AC0E28 + 9007E22BD2164BD2217DB18C2CD22A7DD2129BD228E0D230CDD227BDD28C5CD2 + 337DD3138B3246C9007F500652004916EA1B7E606DF08B3329D00348ABB435BB + D441CBD44C8DB34FFDB34D3DD551FDC94E4DD553ADB9579C0164B03D9C971660 + 73CFABCCCA52E3606D59C2FB1CC770C279BB6819F1BA40635BD0E770D0443A21 + 6B87AF17ACAF0F0DFF4E73C246EC33D1CB6BD155CA636FAC72E732BD1EFDD103 + D0CD236DC826FDD8136BD2D80CD917DB04A9C9023B4081724588E6655EF64849 + 2461023DD0C9417BB4559DD5EFECCEA36CD53500A824700141A0C5ADCCD6F130 + 5A7C32D6F82C158DA6CFFC7C2A4B755B67F0AE9A0AD705AD22BCAC279DAA54ED + 6792277978E0B44641D63EF5C998764B2275A35C594A5317860D8A6DBD22CDC8 + 319D077990D2E37DD32BFDDDE26DDE27CD01E90DD3EDBDDEEAEDD2E27DDEE58D + DE8CEC10DC15047440058118C40665065B7088A17DB9B8B9D44970D5079EE007 + DED40A8ED508EEE00BFEE012AEB3114EE1095E0338009D2CDA6054011539156B + 053BD0F79CDB5E2CFFA353CB9FB2BCB787D0321320D0E859DCA1B2CB6003987D + 7DA4A6D69E5CB892CEC071CAD82181CDBC0930D01A3DCB7CCB70ECD3DD014AD3 + 370DDE2FFDD2E97DDE4BFEDE2B1DD2F21DD2F50DDF50FEDD560EE5ECADE4226D + 48371011B080B2D3A611BE616D2A2B03790506F42BD59FCCDAA31CE76E5EDA58 + FDE6747ED5762EE770DED44A90E1587C0763E2E18C57B09AD11FA55515AD1BAE + 9665D7D5D8DB7A44016E63DBEAB453300EC111CCA98FD28AB09CAFA9967168C2 + 0898B28C740BC27B5C302897DDA9224F5C8AE408D8DEF53DDEB0CEDEB2BEE5B4 + 3EDFE3CD01E0FDE4B03EDF56DEE5E28DEBBAAED2AFFEEBAE4EDEC28EEB2F30B2 + 55460538550729FBFFA65D061222511212000634E0E0165EE1138EE00DBEEDD9 + EEED067EE10A7EE0FDBBBAB3AD0B204EE8CD5C38DF1719243E15AE2C809877E3 + BE0D63C5D4CB956EDC119C31A5B092DEE3DB79DDE93A5E46D3FB36CA0CC266D8 + CC75530F5868D86B8A0EACDE93BE9EEB14FFD2C04EECBFEEE413AFF1F32DEBBB + 5EDE138FEB1AEFE4F61DEB23EFF1BF0EEC2870482BD0738DF001F2A83A9D4D2C + 7E7033464D034A00EED82EE1E3FEE0506DE13B7FE7DACEE7192ECF800EEF9C97 + 0D20FE71A52E0F87FEEE5221B5583AC0F45EF599274F7BF207BD8B221633D70E + 3B774808BCF24E7801EFD067CD176EA3BCD4ADC777BB400C8FEA6235637318F1 + 0888EBC0EEF1B26EFFF77ABFF7B17EF77BCFF779FFF7767FEB82AFF77D8FF785 + 9F076240004D0011C2DA066730014407B9C2C23AE865D43D000544DBF3DFDEF3 + 9EFFF9A0DFF9E32EFAA2EFF945CF0441C0E15081EE844EE8CD1BE49EC022EC81 + DBB9CD3D674DE4568F855F314DC9D0054C880E94DEF5BC0C2F87AEDCB8BF856D + CB928B40553EBEF6F7C9AA412E1A8129CB5A8A09AB4EF7C266F7270FF27F7FF8 + 847FF8776FF281FFF71AEFF783AFFD814FF8DD8FEC2B2F025A72073B4007BEF2 + A6C2E207AC53332231E034CBF9A00F084982493584838583898A8B8C8685888C + 8F87893D2A2417416D9A5D6D7F67090970A2A3A3A109031F1B0D9B9AADAEAFB0 + B1B2B15D01711461FF0C160CBCBDBEBFC0BD616114017F1F671F1F6BCCCDCECE + CAD1CA6B1B7F6DB6B9BADABBBB0CC3C314E1E2E371011B63751065EB10EDEEEF + EE750963677F0114BEDCDBBA16FD0CC61F06081C48B0A0C1830539285CC870E1 + 0B0E0F1F369CE810224585122B4E8C6831E3468D142312687243C4053201EA68 + 31230583CB97307D6CF1A38184891E881E30D2298867129F8D80EE1CDAA8E720 + A1917A98B891E10E2B4FA14891AA5347D4BC33D4FE345835ABABD7595CBBC4B9 + 352C985960FA18946BF0A7ED8635D39E3D93966C9A2AB1B8B6F9EBE6ED9B5F0A + 63396D180047DDBA32F012533DB5C61EBE7DFAFA49F616A041C03108336B2EF8 + 220F45CF10F3741EFF3D113407D3A14F2F342D5A616BD5AE4F8F16FD9A7567D5 + B457AF9648C040C90B777804B852C68C1E3F7E5CFAC0B0DCCC812F7364D80483 + 0352D1EB44B16B5F84B4E803253F4CE4C072A50D27A851A5AA0785799956F35D + 387D9D3FBF96AD5BBDF89EFDA58F58B9005D1C938C5C7249230D350DE0958B64 + 0CEE574E1B1B7C30061CE91C865862F1C833C6070DDCC34B647A4D56CC1F6B9C + B1D9899B75A422472CAEE8E20B30BE28634430C6D8E28D33E6D8190A05307552 + 171B40F0854BC9C184C11766F8E0470B3990F0437535E824E54F544E69659558 + 5EA965965C6EE965964A1CB1D4165150D1C927EAA549CA551FBC47DF9B6FD642 + D67E740213461C10FFC645203406D6D5581B7332E88F361FF2528C656324908E + 61182A764A9B1E122AA9A00C5010A08928668A5044AD714ADA6C9F762AAAA72B + 8E4A1B8BA7A61A2AA8A6AE9A2A07248990010C745001C70466C4F49214CE7DC1 + 444D1250A7445047156B1477C652795D77C41EABEC4FE089D7D499A0A8291555 + 55B1875535ABC4271F9CE0BA62DF2DB864536730DDDCD945036F19B8679F670C + 688D2D79F163811593ED420C408A1A7658A3F1C0718A2A9182C80D83EA463800 + 669A363C508D10472CF1C414576CF1C518675C711E06F8B6020B6AADE1851E18 + 140913AF5FF8300708364930EC9730772973CC34CF5C65B4375C400754D6F66C + 0A668D25E86DB844FF6F621F36E7D2094E65C8D4B5CC9ECD44136F2ADDD2FBA1 + 152184802F2F7732DDAFBFEC00BC182A1D3E66B0BDFEE0B901A60EB73D008E70 + EB38A38D72C76D374474DF4D230A3ACC7AC7151BA894AB72CC31C76B924C3EA1 + C29389F8E478B1533A7BA5E4C93E4EF99692473B1E1D9FA4D7B37A55098C8A2A + 5B156D7A2B72D69B34BA9491484DD450478D8C32D55893BA2E585B51E9836B53 + 0876D88D667B862A718471F6C192DDD9C61A0BBBEDB6C6D0472FFDF4D47746C0 + 084C051107031F1C80C17126632005AF4A6A00C21326FCD083510FB49FA5FB56 + C25FA5FC52C26F7FFDF8CF7CFF4FF0E3A094064140D3E7D44415ABB4272BDD8A + CFE9C035AE72AD0EFF2D6A09007C1A5022A741CD5DCCE0562DF061057C85A132 + C79850852C742180896E0380CA065F5688300996A879CE7358F56648C31A422F + 0F622840DF8240053A4401572E21D9AE306006C469A04912585FE5B0C43E9B5D + CE66316BE2E4A0F5831868000B021BE0E74C71953F0D6D81708A4F00E865AE07 + 0A231CFBF284052F68A068FCC94316B8D33106A0A845FD0B60ED18DB1A525828 + 8335084F2F8CE1F320868717446062878451220D59A34316F2909044E40B0A09 + 3147466C9130A2642323F6C84932529192ECA4239B30821530210864A043190E + D01221EEEA0B4862021390688397BD4F4BFB6B5FFEE2B7CB5CE6727EBBBC5978 + C6632D5368B18070FFA0472ADAC2153032905EE52AE303BBA1B60D589319072A + 90D4A686A06B006830BE031B1E03968054A4F078688B2320CF3006CCC44B909A + A218263F79494646F29E929C67242B29498BE1139FFCFCE7439AD00459D16A00 + 103840920AB79C868ACF0CB39C0E0EA048D19A59B4A25D52420F62D08220A409 + 14201D203205E6CE6E7ED1995E116339C825CDD5E9EB3F1214D01AB539BBA751 + E32DECF41D094B283681D5432C2A840C3FF0A54E089988616C83E7890C190148 + 36B5A9F684EA53997ACFA74E55A057B5271EEEB955AADAD3AB55B5AA58AD0A56 + AA5A15054DD0C10A30F1870DC0E10B7A2059F89893B23934C90412A84194F8A7 + CBBEFAF5AF800DACFF60074BD8C026E10724584119D2D4CE44794E8B06A49A02 + 511AA706B6F48165515E05F5442037466D61A1B0A385C6E98E64A602A8854A6D + 3A3F48C1A42AB561586564274529DBAFE273B6B6CDAD256FABDBDAC656A0B4BD + E7484A9281206C2501B034524BC617CB1668E00936A8C1B080D957BE5617B07C + B5AE2EB3BB5DEC76D797F8C301625B3052920AC4B159146901BBC8CC6652162C + 9B1823192F7B2E6E288F99EDCA2636399B53D19290B455D9D01F808ACEC954AA + 32256AE700DEF9DA4C3575AB0FBEEA56271C010857F8AA1196AA54BB8A61AE5E + 98AA160E71562F9C61129BD8C2207E6A575180BD0C60219575F042AE8EA35C58 + 1E804978ED010EF0FF57D81EFBF8C74056820472C00437AC89610B6B67B5445A + 0A36A9023E937DAF2CC4781FD599B11780B18504D7B660CEC2652E741CE16801 + 6CDA0117AF8F90B9D72EE210A04036B86D61DDB08A9D4A67437258CE510D6B6F + 3F3C56AC4638CF56BDF33FA56AC83CA075042EE60115A2E0BD2239747C664899 + 7349F0841F4C17C898CEB4A675191E531E395E6C432F643F1D342987918C5736 + 0B6BBFDCD9665C134DEDB82399C7D0186C1478326A0BC89B9DD7E75EFBFAD7C0 + 0EB6B0874DEC5FCF200233B8DE0A66150532243488467289737C9038F53960D3 + D8CE3661C3A3812D84EE2AA0C6949297AC5EF32E835B4633F52B9AD94007A65A + 1B87DA0ABBDAE86AFF9C8A9051A46D8769CB969F7E7F08D74012B7405CBB6BCD + CCB9D8084FB8C2175EEC421254042DC00215E2308003808F702D89B419E6C0A4 + E9F052DB20DFB41252F08415789BA4E12EC8B8476D156D510DCAEA9EB29CEE41 + DFD5F9672C4C9B9A9E5E3DA15803AFA702B6B5500FB6353CCDB1E0BC6EEAB197 + FE54A63BBDE95067BAD2914DF5A93FFDD8569F01D6A97E75AE437DEA56F7FAD3 + C33EF63C10E0377738031C14BA9C92C1842510FD550ED237D1C20A00B0776F5F + DE1FB0F7BEEBD2EF7FDD7B6001FF1D0970740B2867F082417DDEC71E93A4EE71 + 6FCCA73C46B294E5DD586E338178AED39F6328C06BE0F7ADD39627A4C790C452 + 8770D72B8C75D507FF5AE97858BAEBADDA7AD9B79EEC5C8F3DB2552FE2AA47BD + EABA1F7BEE59DC379DD1610CDE23D2A3A5F085036CA105E7BB8912424E7D6C8F + 9CA3580037A6C21DEA901EF3DB077C32CC27DF86B0547E2C5636E34B25A80912 + D9C5DE5FF33C3C02CC21380E1D77450FB8E94FAFF5FE8BFDFF5DE77F4ED77F01 + 886C5AC77507388004B8800948800028760EB88008C88048C062117705575007 + 2C116D43C4049376133840787737827FC7772648827A77822A488228B88225C8 + 822698827787031240022DE00651C0789BA1642CD764A39340DF427EE25279E9 + 7765C4100E6A132F379560E1247FEFB06F34A75A2CD44116906BFB174302D880 + 4BA7850678755C28FF815E08860938815DC8805FF8856408865DB886FD474AA6 + 645C01B07652801CD19624D4561395A65DDA26782A587D80A5143980093A6810 + 29075AD5E27804240AF48020A52384AE607E96777957665F6AF30CEC5447F8A6 + 18C9B44701B02043D7206A615457888566588AA6788AA8988AAAB88AACD88AFE + 875637B0023010075700075AD0121CC82B52E08194F62432E88230188CC0388C + C2588CC4C8771A251E4C908304377083B87288D833EE1479E3E788E6215F73F2 + 6EDD9065F3A60CFDE5733C95479B780DF850601D7460F3D68CA38822AED88EEE + F88EF0188F04880704D0373010047750076EF005B858382EC17C07406D39F004 + 499404D3E78731E8FF6307A969E01103E3A1789A9228E9356AA6F083F0618DAF + 903A35875900B10C974815FE327F9BD8219EE847FDE041000191EBD83033B000 + 2DF9922E199330399332599334799336999338B9933AD9933CF9933EB9007820 + 06C485059CE3062D31570FA524B354693D608C50798C51399552898C55D40203 + 100527C27D47855ED1782DEBB588A483919A503A72C25292786596226F6B137F + 3F571503C089E6B242FFE60F1FE4092B2948042893A7E8927BF9925AC7978039 + 98813993A528987E698A89998A36599882F9978BF99262D0622F7606CFE64AFE + 78245E80014824014340582D18782E98827D159A55298CBA448344560728C27D + 03316E5FA926F3B0FF60267552424865E8B7914AB3526CB60609E00E6F090771 + 498EF72719E738226E96976D03930B109440D992CDF99C31199DCE599DCC699D + 41499D34A99D31190162E0865B4006573006D021572713692A030203E9322F78 + 9AEE4995F0B9823D30644C004F2BD783903796649991A886791F12077FE096A5 + 358E67763C82F2416BA38ECA8922D8299D0EDAA010FAA0128A9D5BE586C04106 + 75905C6E5738CC654404890307D977211AA27F37A2A49990225882279AA2A4A9 + 142BE0060EE39A8638913D832D28776E6E126593677ED09496F5A50D008A0E8B + 1230C359A09F381977A96B0BEA3CD7D99CDC499D4EDA934F1AA53949A53539A5 + D7B99D4EDAA456BAFFA5D349A55C0AA5D39906CD3912100703E22924177732CF + F105CE853E96169F72FA9E743A823FF0043718A32A799F14399B58F11EB6799B + 6759844983A0842192B4C64752F86F547897C9B9A40EE3A5560A9D602AA95F4A + A95D7AA95D4AA99C6AA951DAA962FAA99B3AAA934AAA32C93719C0025D400632 + 6624CBD1120DB524BDA804735AAB755A954A7109ACE93C29C783B1F9518F826E + FB893A63844698B516CC134E10A0887BB43DC579A0C6A0A090CAA0996AA51550 + ADD87AADD81AA5DABAADDE9AADDFDA9CDD1AAED54A8FB178012C602910601C6B + FA8F3EF00534D18B3DF08BC528002368AF7C87AFF61A8CFADAAFF7FAAFF90AB0 + FB8A8C43201E58C0FFAB85D858E456A3EBC526A5568DB7797EC6BA9B08860CBF + B90E70B906A865A0220210D32A485F4AAE223BB2245BB2267BB243D923177005 + 0CF007C5D18F0DE5039136131D27013F40AFB76AAB3AFB005759075AF9663CC8 + 725CB4214F16A8824A841BA92E24026A8A82B1B4D60579C1B1A41721D2FAB19B + B100D74AA6598BB55C7BAD5EDBB560FBB562CBB55A0BB6653BB6681BB66A9BB6 + 637BB66B4BB670BBB56DABB664BA0024E16264C0078243246F57443E10514934 + 7D033BB8FEBAAF862BB0877BB8011BB089EBAF8C2B00AAD9513F1B43096B4C90 + 153AC9F4A76E32ACD78896D204180172190B36218AB801504B977D64608064B5 + F024AE4EDAAD63EBFFBAB2CBB5B30BBBAF7BBBB58BBBB4BBBBB1CBBBBA6BBB5F + 9BBBC2EBBBC38B046E8805787206B7F812CB5744BF4202368BB33B3BBDA7C96D + 5B7007F05488497688E56640C9500D46138411BB5256560C9D909C534330466A + 92FD702714A4A4ACEB366FCBB6F35BBFF47BBFF69BBFF8BBBFFA6BBF78D00419 + 700163F01642C2B7E1935C2C63B320DAB88F5BB884ABB80CFCC00DDCB8F84A04 + 771A7157E858BFBA1EECC5B9A8A391861207E958106DB24141C5BE6BD606F01B + BF6EC3BF2EDCBF2F1CC3303CC3329CB6765B4A4CC0023B10076A4A38AF6A065B + F0B747F40429D003B4BA828ECB8249BCC488DBC48B3BB84A50B04CB1ABAFE59A + D0F87D56313ACCE4FFC1830A18AD0543030129E5B81769866BCB03C62CDC3658 + 5B015ECBC66BDCC670CCC66E2CC76F5CC7747CC7729CC778ACC7763CC77E1CC7 + 7B9CC77D0CC76F2CC87AFCC787ECC60BF09D10770701C00765C08F6EE7683EC0 + 7C662003EB19A714BCC99CDCC99EFCC9051B886F26A3DBBBB0D682B97EFA72DE + 22BE93773495A13007B10C1DC20F93622F45B73C559BC69B51C376DCB5730CC3 + 7F1CB6BFECB56980B6C38CB5C54CC3C77CC734FCC6E62A8B77400772C8811870 + 005E7063431CA74FECC04CBCCD4E2CC1E0ACAF166C456540C5196CCA90D5C11E + 5C7EEE97194A78BA648C3CA4B7C2BADC36897CCFF89CCFFABCCFFCDCCFFEFCCF + 007DCF8B7CAE2C40FF0709B581D1A68B1C37909AFCC90EFDD010BDAF43508318 + 5C7032EA95DF972DED21ACE6618D6C41B59BF1018072A42F75C64856CFF61CD0 + 2ABDD22CDDD22E0DD048409426710761B00375E03DE65938332B903160B3FF1A + D1401DD486DB695B607ADA5BCA3DC81E5A0CB131F7D1C8A019F4D00071902FAB + 25C28F8AD20EA3C71E20C75B9DC75BDDD5158006892CD6F90CD6665D015B4DD6 + 689DC8602DD6607DC86DCDD56B7DD66C7CD65F2DD7753DD7727DD779DDD761BD + 001170B730B0037FF0562F6132322BB3186057D0FB034420D4900DD9DC76B0A3 + A878182DB48BB8B98EC82E574D10F4F007CE9A4EBB3022F48CD559FDD26BDDCF + 6F8DD7F8BCDA65CDFFD6FAECDAFCBC04AC7DD7749DDA797CB727710567E00543 + 92D0CCB70572F7A1B41AD9C6EDD04460782D000127BD6B17ADC1344A401ADD65 + C2AAA3EFD5564F9D1998B1019D28DA112420CD6DDA0DA3D7B64DDEE65DDEE87D + DEE4ED01E9DDDEEAEDDEF0FDDEF28DDE1E8006EC3DDF68ED016920066260123B + C0006B3001524063E79924C32D018F6DAF42B0AF0BAEE00CFEE00E1EE102D0E0 + 130EE1152EE1149EE10230D124C004C27985CD286A14696E45CBCA28C5D9D24A + 0F2854A0446501967274E21D43E5EDD7768DDBEE4DE37B2DDF38BEE3E69DD77C + 8DDF330EE47AEDE336BED71E40006B259E7470D3FD98993EF0E46FCA9EC73DE5 + 9CAC043860020094FF97176DB958CC5E8D686A28BE197F7A0F27B96601A76031 + EE3CECBDE66CCEE6F6DDE6701EE772BEE6F93DE76D6EDF62FDE671EED676DEE7 + 7EFEE7807EE76B8E063340942B1004571007DD036D4324054F8EC90499E015BE + E01A4EE9937EE996EEE0969EE917DEE9955EE188559F2B49CA57FC390D5B52E0 + BBCA278E5327B20C6DC041BAC3660A83E669DE36747EEBF7FDD56C5EE7409EEB + 73EDEBF41DECBC7EEBF39DEBC6AEEBC8FEDEC75EE7BB4EECC96EDB317D0317B8 + 0351B0BC98F9E41A2703E7E399C54DE5DE6EB8FF73BDE1BDA012899FA1A0E209 + 4459612EE66D32D5F862295C56EB8214E8F45EEFF67EEFF89EEFFA5EDF683099 + 817807543000CB9BFF1C075C57D1370409FEE99B8EE90CAFE99ECEF00BEFF002 + 30D993ABE53A08DD1B4C210524965A2179A6B3EE27B206DDFDE212E24EB92CEF + 06B1EF2ABFF22CDFF22CBF002A4012E84A0510B0120E75F3527000F16A0243D0 + ED92FEED869BF00F9DDC9750F1A33E88DB1BDD896840B459E2264E1F201FD280 + 22EBD93D7028EF301E500259BFF5F6ADF55E8F065EBFF5613FF6622FF625F0F5 + 649FF6653FF667BFF66EAFF670FFF6721FF75ADFF5737FF7FA6DBCD983816F35 + 871BFA3DCCF705DA4E699FE9F00B7FF8109FF888BFF8973E04786AF4D32A6E22 + 2EB416F9F450CFEAAD690DA278F5F3EEF6EC4DF69F2FF7A11FFA745FF670AEF5 + 6C1EF6A4EFF9AC8FFFFAADBFE6A0BFF5A32FFBB4AFE7AE1FFBAABFE67A9F686D + F006ADEAAA1AB72403D9F386AFF8C6CFF8C80FF1C96D72906FF1BD7AD9A61E96 + A8D04D4513F59AF1BDB36EF59C8FF55EDFF6630FF6737FF6DE0FFE69EFFD590F + F6E6FFFD6C5FFE2500F6E8BFFEE12FFE6FFFFE674FFE77DFFE709FFE72BFDF38 + 0C08645D036E5F18187E8888665F5F3E2D244F434A4202959796999742989D9A + 9F9EA1A09902124F1A5803AAABACADAEAFB0B167B3AD6363090970BABBBCBDBC + B8036B0D6DC4C5C6C7C70D1B6B67B1AE671F1FCDCED4D5D6D7D8B0251EDBDDDC + DFDEE1E0E3E2E5E4E7E6E9E8DC25EAEEECEFF1EBF215624D2B1759716B135289 + 7A3E0E613023C550FF8B1C4F7E0858288408C385A344617A288AA22587A0880C + 9140E2C2986C20B3CD9A762B97AF93BD12046BD005994B64CA98859C49B3A6CD + 55F0DAE9DCA93327CF9F3B7DB6130AB4A8D1A34089225D6A5429539D0AD2DC63 + 42264E17088E30E81198A8A09939087F1091688953D94D684199E5146AAD26B7 + 434CE42813E5A6DD91B406D8C26512651D5D093E7ED8C0B24BCB9788634EA3B6 + 785563BB9023AF0AD70E4DCF1296E171B35C19B367CEE5867ADEDC4D3468D33C + 2D671E7D79B56870AA75828E1D5BF3E7A4A55BA7060ADADE0D265400C41970C0 + DF568152186138F84482C288D0C94A8F9E51420E264124DBCCCBAA24CA5D63CE + 10EE12A07C80C388FF5D2AD6CEBE7DB6A7F0E3CB9F4FBFBEFDFA69C4FCE69185 + 0221337E249208063E980120130839E750276BB1C5D659103E286183694DC8D6 + 0F2668B0857B35E1D5CC5E70F40558786BFCD1451C148411471CE7A5F7D27A1C + C628E364A7C966E34FA0D9E6136CB97516946738DE98DB6CA1F104CE513BB206 + 0F9147EEE6A393A9E9D7020B6184B1070452084420065214F485063990608204 + 435037DD9911B9750911449840021375CC28125EABEC95CB9D2B918762952CB6 + E8224CCB3C26E7A09095A080A188B673E8A13B2D9A28543C395A94A394425AE9 + A59622CA68A49A72BAE94F923EAA68A79B621AEAA7A4768AC40D2D904181050D + B86186565A1E2205FF0820842981040B3AE8EBAFC0062BECB00DFD704A2A84DE + 5452606B9C48C18A1444DB277A7F160363B2D8DA5469A340853AAAA9A266EA6D + AA98723B6EA99D7E1BAEB9DDA6CBA9BAA8B20B2F1A52DE1186707548A1C7715A + E29A6B826556486184035B48B0C0976C745D1D1F655B8D87AAD812DE1F7130C0 + 4095613C3B6DB5C904EAF0C721912B32B8248F6C72C9289FAC72CA2CAF7CF212 + FAAD1004030074518621030AE4EFBFCD0D3116B140072DF40F12685817C8CED0 + C9CA070D0410C6C5D16ACC22B51C5F8BF4D5B12880C6A29C695D6EAAF08AACE8 + D68F6E5B36A4F38E3AF6A55D934B36BA6A9B1CB7D9E8B2CD76CC30EC90451751 + 14B765403BCB90EBFF13098D75968307276EF0E2BF0A40044717C489F535B308 + B367D41A974775B5564FEEB92A0A842EFAE8A4976EFAE9A8A7AEFAEAACB7EEFA + EBB0B38E061731A0B2030014D4F1853F3AEFCC3399870B2DFCF044FC503B1C9F + 3306CD1A6D049022E62B6ACEB1319D278FF42CB12F1ABAA6A593BABDF6A8738F + 72F7A68BFFFDEBE65F4AFEE8DE83CFBEE8E92BC0451322E43D45006F6861C671 + BE8320380891F0195A1007AC8311904207DC44F132842CEBC1A2720DB85CD4A2 + E7A7E9B5A17A0ECCD6484487000E9AAE83AD0321E944383A1192307BAF3B61E8 + 54A80016A2F0851F64DFFC6E70012A848001C4A155FF7616C0E00DEF87C26213 + 47E074B40CB20282FFCECBD804A3B7B93F61D08884A2050CA748C52A5A11755B + BBA2EA66D7041AF2C00914F880160EB14310CC4106609284E180C84661190F15 + 512003141D7306CB3D6F89D2B3E0053D36C76441CC831D0C24205B4848411AB2 + 90883CA42209793A419630918C1C212417F9C8455A7292923421264F78493074 + 31032CB0D81AB4F0851DCA40067368810C22219636BAF257C5AB5D1D54D24724 + DE515A1BD3E313FBE81E0F8D21759A5CA1072BB9C94C42B29191142627597749 + 625E5293941C66323149CC472EA18B176041161870860994F1946794014202F6 + CA720A81682B7043C3E6084109E2328F16DC252F2543A75BC061930878663E0B + B94F43E6F39FFE04FFA8402709507EFE9383FDC4A7400B1AC88532B485FD74E8 + 411B4A51832ED4A20145C035479081203821046D38E50ECF388733B2F267E66C + 63F14880857542D1964AC4E5D4F4B84799CC534623D10B1CEAE0064329F398C5 + 7464249F19D462FEF490472D2A5185BA54A53A95A830BB070CAAC000299CD177 + E09C831FCE08B094AA940824D8C21D78D9CE5B66AE82D393E74DEFF2213840C0 + 0D5A50C11214D00789DAF5AE19C5AB5E2F4A51896274AF800D2844034BD8C222 + 607E2BC0020F0C74D5C0A1720EFB5A654286E05536B6A9050D7C691D9B66560A + 36D1456A5DEB4CE8948BB76AE100311083A1F27A578CFEB5A28A4CA85D13D9DA + BE1A96B5B01DEC43FF6D7BDB81F25601F6C0C7160EF085C6FAEFB125C5C01CD2 + D8CACA12EF141728A211CB1AD3B37E363DA1152D48723A06B7BAC10B07388006 + 622057DDF6F6BCE84DAF7AD7CB5E892256033E68841EE6E02F703E560FA70C0B + 659D2BB4956AA00CB5DC6C12A1C7449A6657BBD8A045774D1BDE032C97044DE0 + C212F06ADE88EE75B0AFB5707BCF5BE1C27678C3B3B5470E348001E22AF794C8 + 2DA98AC549821FF037686C225A0E36C4CECDBAD3BA06E62382B793D3D2C2B5C1 + E17D3079278C001714F9C8F9347292FFA9E4231BF9C94866B240A1DC64805259 + CA576EF295ADECE42E6F39CA5AF63298A73C66282F39CB588EF299BB2C3F15DC + 40034CF8C2017C405B5254DAB9A4F31567E15E1C34633121C0C218301ED15A35 + 1DEF98267859F0774F0B64071F444C5CA82B88274DE94A5B3AB02E58829BE11C + 5E82E499A42A46048B79C567620DE1092D0074043B9BCB781AFAD02151B07719 + 0DE44000003B} + ExplicitWidth = 386 + end + end + object edtPassword: TEdit + Left = 96 + Top = 132 + Width = 278 + Height = 21 + PasswordChar = '*' + TabOrder = 2 + end + object bAceptar: TButton + Left = 208 + Top = 203 + Width = 75 + Height = 25 + Caption = '&Aceptar' + Default = True + TabOrder = 3 + OnClick = bAceptarClick + end + object bCancelar: TButton + Left = 296 + Top = 203 + Width = 75 + Height = 25 + Cancel = True + Caption = '&Salir' + ModalResult = 2 + TabOrder = 4 + end + object edtUser: TEdit + Left = 96 + Top = 104 + Width = 278 + Height = 21 + TabOrder = 1 + end + object Button1: TButton + Left = 16 + Top = 203 + Width = 129 + Height = 25 + Caption = 'C&onfigurar conexi'#243'n...' + TabOrder = 5 + OnClick = ToolButton4Click + end + object Timer1: TTimer + Enabled = False + Interval = 5000 + OnTimer = Timer1Timer + Left = 344 + Top = 64 + end + object JvAppRegistryStorage1: TJvAppRegistryStorage + StorageOptions.BooleanStringTrueValues = 'TRUE, YES, Y' + StorageOptions.BooleanStringFalseValues = 'FALSE, NO, N' + StorageOptions.BooleanAsString = False + Root = 'Software\%APPL_NAME%' + SubStorages = <> + Left = 14 + Top = 168 + end + object JvFormStorage1: TJvFormStorage + AppStorage = JvAppRegistryStorage1 + AppStoragePath = '\' + Options = [] + StoredProps.Strings = ( + 'edtUser.Text' + 'edtPassword.Text') + StoredValues = < + item + Name = 'Ruta' + Value = '' + end> + Left = 48 + Top = 168 + end +end diff --git a/Source/ApplicationBase/Usuarios/Views/uEditorLogin.pas b/Source/ApplicationBase/Usuarios/Views/uEditorLogin.pas new file mode 100644 index 00000000..d274eee1 --- /dev/null +++ b/Source/ApplicationBase/Usuarios/Views/uEditorLogin.pas @@ -0,0 +1,133 @@ +unit uEditorLogin; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, StdCtrls, ExtCtrls, ComCtrls, cxGraphics, cxControls, + cxContainer, cxEdit, cxTextEdit, cxMaskEdit, cxDropDownEdit, + cxImageComboBox, ImgList, PngImageList, pngimage, ToolWin, JvExControls, + JvComponent, JvGradient, JvGIF, JvComponentBase, JvFormPlacement, + JvAppStorage, JvAppRegistryStorage, uIEditorLogin, uUsuariosController; + +type + TfEditorLogin = class(TForm, IEditorLogin) + Panel1: TPanel; + Label3: TLabel; + Label4: TLabel; + edtPassword: TEdit; + bAceptar: TButton; + bCancelar: TButton; + Label1: TLabel; + edtUser: TEdit; + JvGradient1: TJvGradient; + Button1: TButton; + Timer1: TTimer; + JvAppRegistryStorage1: TJvAppRegistryStorage; + JvFormStorage1: TJvFormStorage; + Image1: TImage; + procedure bAceptarClick(Sender: TObject); + procedure ToolButton4Click(Sender: TObject); + procedure FormShow(Sender: TObject); + procedure Timer1Timer(Sender: TObject); + procedure FormCreate(Sender: TObject); + procedure FormDestroy(Sender: TObject); + private + FController : IUsuariosController; + FIntentos : Integer; + function GetController : IUsuariosController; + procedure SetController (const AValue : IUsuariosController); + published + property Controller : IUsuariosController read GetController write SetController; + end; + + +implementation + +uses + uFactuGES_App, uDataModuleConexion; + +{$R *.dfm} + +{ +********************************* TfEditorLogin ********************************** +} +procedure TfEditorLogin.bAceptarClick(Sender: TObject); +var + bOk : Boolean; +begin + Timer1.Enabled := False; + + ShowHourglassCursor; + try + bOK := FController.ComprobarUsuario(edtUser.Text, edtPassword.Text); + finally + HideHourglassCursor; + end; + + if bOk then + ModalResult := mrOK + else begin + Application.MessageBox('Usuario no vlido. Compruebe si ha escrito correctamente' + + #13 + #10 + 'el usuario y la contrasea.', 'Atencin', MB_OK); + Inc(FIntentos); + if (Controller.MaxIntentosLogin > 0) and (FIntentos = Controller.MaxIntentosLogin) then + ModalResult := mrCancel; + end; +end; + +procedure TfEditorLogin.ToolButton4Click(Sender: TObject); +var + ATimer : Boolean; +begin + ATimer := False; + if Timer1.Enabled then + begin + ATimer := True; + Timer1.Enabled := False; + end; + + dmConexion.ConfigurarConexion; + + if ATimer then + Timer1.Enabled := True; +end; + +procedure TfEditorLogin.FormCreate(Sender: TObject); +begin + FIntentos := 0; +end; + +procedure TfEditorLogin.FormDestroy(Sender: TObject); +begin + FController := NIL; +end; + +procedure TfEditorLogin.FormShow(Sender: TObject); +begin + Self.Caption := Self.Caption + ' - ' + AppFactuGES.AppVersion; + JvFormStorage1.RestoreFormPlacement; + + // Hacer login automtica si hay usuario/password y no hay ms de una base + // de datos como opcin para conectarse. + if ((Length(edtUser.Text) > 0) and (Length(edtPassword.Text) > 0)) then + Timer1.Enabled := True; +end; + +function TfEditorLogin.GetController: IUsuariosController; +begin + Result := FController; +end; + +procedure TfEditorLogin.SetController(const AValue: IUsuariosController); +begin + FController := AValue; +end; + +procedure TfEditorLogin.Timer1Timer(Sender: TObject); +begin + Timer1.Enabled := False; + bAceptar.Click; +end; + +end. diff --git a/Source/ApplicationBase/Usuarios/Views/uUsuario.dfm b/Source/ApplicationBase/Usuarios/Views/uUsuario.dfm new file mode 100644 index 00000000..93fcc6e1 --- /dev/null +++ b/Source/ApplicationBase/Usuarios/Views/uUsuario.dfm @@ -0,0 +1,123 @@ +object fUsuario: TfUsuario + Left = 523 + Top = 415 + BorderStyle = bsDialog + Caption = 'Datos del usuario' + ClientHeight = 309 + ClientWidth = 308 + Color = clBtnFace + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'MS Sans Serif' + Font.Style = [] + OldCreateOrder = False + Position = poScreenCenter + PixelsPerInch = 96 + TextHeight = 13 + object Button1: TButton + Left = 138 + Top = 273 + Width = 75 + Height = 25 + Action = actAceptar + TabOrder = 1 + end + object Button2: TButton + Left = 226 + Top = 273 + Width = 75 + Height = 25 + Action = actCancelar + TabOrder = 2 + end + object TabControl1: TPageControl + Left = 8 + Top = 8 + Width = 293 + Height = 257 + ActivePage = pagUsuario + TabOrder = 0 + object pagUsuario: TTabSheet + Caption = 'Usuario' + object GroupBox1: TGroupBox + Left = 6 + Top = 5 + Width = 274 + Height = 99 + Caption = 'GroupBox1' + TabOrder = 0 + DesignSize = ( + 274 + 99) + object Label4: TLabel + Left = 34 + Top = 28 + Width = 39 + Height = 13 + Caption = 'Usuario:' + Transparent = False + end + object Label5: TLabel + Left = 16 + Top = 60 + Width = 57 + Height = 13 + Caption = 'Contrase'#241'a:' + Transparent = False + end + object edtUser: TEdit + Left = 88 + Top = 24 + Width = 169 + Height = 21 + Anchors = [akLeft, akTop, akRight] + TabOrder = 0 + end + object edtPassword: TEdit + Left = 88 + Top = 56 + Width = 169 + Height = 21 + Anchors = [akLeft, akTop, akRight] + PasswordChar = '*' + TabOrder = 1 + end + end + object GroupBox2: TGroupBox + Left = 7 + Top = 111 + Width = 273 + Height = 110 + Caption = 'Permisos y seguridad' + TabOrder = 1 + object Label1: TLabel + Left = 47 + Top = 36 + Width = 26 + Height = 13 + Caption = 'Perfil:' + Transparent = False + end + object cbPerfil: TComboBox + Left = 88 + Top = 28 + Width = 169 + Height = 21 + ItemHeight = 13 + TabOrder = 0 + end + end + end + end + object ActionList: TActionList + Left = 8 + Top = 272 + object actAceptar: TAction + Caption = '&Aceptar' + end + object actCancelar: TAction + Caption = '&Cancelar' + end + end +end diff --git a/Source/ApplicationBase/Usuarios/Views/uUsuario.pas b/Source/ApplicationBase/Usuarios/Views/uUsuario.pas new file mode 100644 index 00000000..90e722c2 --- /dev/null +++ b/Source/ApplicationBase/Usuarios/Views/uUsuario.pas @@ -0,0 +1,39 @@ +unit uUsuario; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, StdCtrls, ComCtrls, ActnList; + +type + TfUsuario = class(TForm) + Button1: TButton; + Button2: TButton; + TabControl1: TPageControl; + pagUsuario: TTabSheet; + GroupBox1: TGroupBox; + Label4: TLabel; + Label5: TLabel; + edtUser: TEdit; + edtPassword: TEdit; + GroupBox2: TGroupBox; + Label1: TLabel; + cbPerfil: TComboBox; + ActionList: TActionList; + actAceptar: TAction; + actCancelar: TAction; + private + { Private declarations } + public + { Public declarations } + end; + +var + fUsuario: TfUsuario; + +implementation + +{$R *.dfm} + +end. diff --git a/Source/ApplicationBase/Usuarios/Views/uUsuarios.dfm b/Source/ApplicationBase/Usuarios/Views/uUsuarios.dfm new file mode 100644 index 00000000..0c3eb30f --- /dev/null +++ b/Source/ApplicationBase/Usuarios/Views/uUsuarios.dfm @@ -0,0 +1,118 @@ +object fUsuarios: TfUsuarios + Left = 490 + Top = 417 + BorderStyle = bsDialog + Caption = 'Administraci'#243'n de usuarios' + ClientHeight = 401 + ClientWidth = 550 + Color = clBtnFace + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'MS Sans Serif' + Font.Style = [] + OldCreateOrder = False + Position = poScreenCenter + OnCreate = FormCreate + PixelsPerInch = 96 + TextHeight = 13 + object Grid: TDBGrid + Left = 8 + Top = 40 + Width = 425 + Height = 313 + DataSource = DADataSource + TabOrder = 0 + TitleFont.Charset = DEFAULT_CHARSET + TitleFont.Color = clWindowText + TitleFont.Height = -11 + TitleFont.Name = 'MS Sans Serif' + TitleFont.Style = [] + end + object JvNavPanelHeader1: TJvNavPanelHeader + Left = 0 + Top = 0 + Width = 550 + Align = alTop + Caption = 'Panel de control' + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindow + Font.Height = -16 + Font.Name = 'Arial' + Font.Style = [fsBold] + ParentFont = False + ColorFrom = 8684164 + ColorTo = 8684164 + ImageIndex = 0 + StyleManager = dmBase.StyleManager + ParentStyleManager = False + end + object Button1: TButton + Left = 448 + Top = 40 + Width = 91 + Height = 25 + Action = actNuevo + TabOrder = 2 + end + object Button2: TButton + Left = 448 + Top = 136 + Width = 91 + Height = 25 + Action = actModificar + TabOrder = 3 + end + object Button3: TButton + Left = 448 + Top = 176 + Width = 91 + Height = 25 + Action = actEliminar + TabOrder = 4 + end + object Button4: TButton + Left = 448 + Top = 368 + Width = 91 + Height = 25 + Action = actCerrar + TabOrder = 5 + end + object Button5: TButton + Left = 448 + Top = 96 + Width = 91 + Height = 25 + Action = actCambiarPassword + TabOrder = 6 + end + object DADataSource: TDADataSource + Left = 368 + Top = 40 + end + object ActionList: TActionList + Left = 8 + Top = 360 + object actCerrar: TAction + Caption = '&Cerrar' + OnExecute = actCerrarExecute + end + object actNuevo: TAction + Caption = 'Nuevo usuario' + OnUpdate = actNuevoUpdate + end + object actCambiarPassword: TAction + Caption = 'Cambiar contrase'#241'a' + OnUpdate = actCambiarPasswordUpdate + end + object actModificar: TAction + Caption = 'Modificar usuario' + OnUpdate = actModificarUpdate + end + object actEliminar: TAction + Caption = 'Eliminar usuario' + OnUpdate = actEliminarUpdate + end + end +end diff --git a/Source/ApplicationBase/Usuarios/Views/uUsuarios.pas b/Source/ApplicationBase/Usuarios/Views/uUsuarios.pas new file mode 100644 index 00000000..9b355e6f --- /dev/null +++ b/Source/ApplicationBase/Usuarios/Views/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, JvExControls, JvComponent, JvNavigationPane, + Grids, DBGrids, ActnList, uDAInterfaces; + +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/ApplicationBase/Usuarios/Views/uUsuariosViewRegister.pas b/Source/ApplicationBase/Usuarios/Views/uUsuariosViewRegister.pas new file mode 100644 index 00000000..86cfb05b --- /dev/null +++ b/Source/ApplicationBase/Usuarios/Views/uUsuariosViewRegister.pas @@ -0,0 +1,23 @@ +unit uUsuariosViewRegister; + +interface + +procedure RegisterViews; +procedure UnregisterViews; + +implementation + +uses + uEditorRegistryUtils, uEditorLogin, Dialogs; + +procedure RegisterViews; +begin + EditorRegistry.RegisterClass(TfEditorLogin, 'EditorLogin'); +end; + +procedure UnregisterViews; +begin + EditorRegistry.UnRegisterClass(TfEditorLogin); +end; + +end. diff --git a/Source/ApplicationBase/_Usuarios_/Usuarios.bdsproj b/Source/ApplicationBase/_Usuarios_/Usuarios.bdsproj new file mode 100644 index 00000000..6a6eb5fa --- /dev/null +++ b/Source/ApplicationBase/_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/ApplicationBase/_Usuarios_/Usuarios.dpk b/Source/ApplicationBase/_Usuarios_/Usuarios.dpk new file mode 100644 index 00000000..b5fa2fda --- /dev/null +++ b/Source/ApplicationBase/_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 'Gestin de usuarios'} +{$IMPLICITBUILD ON} + +requires + vcl, + vcldb, + Base, + Empresas_model, + Empresas_controller, + JvMMD11R; + +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/ApplicationBase/_Usuarios_/Usuarios.dproj b/Source/ApplicationBase/_Usuarios_/Usuarios.dproj new file mode 100644 index 00000000..062fb034 --- /dev/null +++ b/Source/ApplicationBase/_Usuarios_/Usuarios.dproj @@ -0,0 +1,557 @@ + + + + {0e3d28a9-51af-483b-b478-472a086ee120} + Usuarios.dpk + Debug + AnyCPU + DCC32 + ..\..\..\Output\Debug\Cliente\Usuarios.bpl + + + 7.0 + False + False + 0 + 3 + .\ + .\ + .\ + ..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\Lib;..\..\Modulos\Lib + ..\..\Lib;..\..\Modulos\Lib + ..\..\Lib;..\..\Modulos\Lib + ..\..\Lib;..\..\Modulos\Lib + RELEASE + + + 7.0 + 3 + .\ + .\ + .\ + ..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\Lib;..\..\Modulos\Lib + ..\..\Lib;..\..\Modulos\Lib + ..\..\Lib;..\..\Modulos\Lib + ..\..\Lib;..\..\Modulos\Lib + + + Delphi.Personality + Package + +FalseTrueFalseGestión de usuariosTrueFalseFalseC:\Archivos de programa\Borland\Delphi7\Bin\TrueFalse1030FalseFalseFalseFalseFalse308212521.0.3.01.0.0.0Usuarios.dpk + + + + + MainSource + + + + + + + + +
    fCambiarPassword
    +
    + +
    dmUsuarios
    +
    + +
    fLoginForm
    +
    + +
    fUsuario
    +
    + +
    fUsuarios
    +
    +
    +
    + diff --git a/Source/ApplicationBase/_Usuarios_/Usuarios.rc b/Source/ApplicationBase/_Usuarios_/Usuarios.rc new file mode 100644 index 00000000..169f9978 --- /dev/null +++ b/Source/ApplicationBase/_Usuarios_/Usuarios.rc @@ -0,0 +1,22 @@ +1 VERSIONINFO +FILEVERSION 1,0,3,0 +PRODUCTVERSION 1,0,3,0 +FILEFLAGSMASK 0x3FL +FILEFLAGS 0x00L +FILEOS 0x40004L +FILETYPE 0x1L +FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "0C0A04E4" + BEGIN + VALUE "FileVersion", "1.0.3.0\0" + VALUE "ProductVersion", "1.0.0.0\0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x0C0A, 1252 + END +END diff --git a/Source/ApplicationBase/_Usuarios_/Usuarios.res b/Source/ApplicationBase/_Usuarios_/Usuarios.res new file mode 100644 index 0000000000000000000000000000000000000000..73fae82ff2c28b81d1ba7762fd3e17deea3fe650 GIT binary patch literal 5056 zcmbW5&x;&Y5XWn?0VM?8gC{Suh=}YVteAT%#y~)g7$?^zXpF&R6XJUC)cc=I4kFSA z{{!hg%bp}hVRP_qjvmDJ`>A@>-7}euyEfF+`%$mH-*3IwZ-y~5+m`ixn3_w^Pg^;^ zshAC)+uFKtF@xS#V_Wu~Y{Oe>XwCn9=JnhT4i2ns8uzr*et7)Y=GEMY3BNOGPsek9 z^#8>NjKogQSn_BWt^;ub0wIoCblVC`b8wbxcSj0awD=sWZ`j@>JMs=cjuJT|mH zk#^}uKO7eF%D4KE9|M~j4|P^MIk;EfMU!7(*A7k~2gy)@Oti34lIWopi~Q|%Rx?iSoN`Xg`Pv5&za>gsb1n6lzS zQ*f9!WuK+h@zPU&+SxDOCSzIu&`ph+0UJGx$Nm-UT3V_`7I|BA)oSAxs_jg1mFg^G zPfT-d$68`!%0H*y#d`3;Ky&DBtyfI;17EotnQ#w(KlFI?w@vGP>TQkoftVWXYi9~fD@R3P2Pg9ILfUSJ7r$v8qs7C$N+>{sn)Q5LE zc#Qm$mwV{}!?h_txN)~oU%hYOPfhva3>V#X;W86vtT;HG3Oo($8GpIbI{p#krRkcIxNs$Np$7_%blln5WJAw^aMG4{`3ezu*|T$cKL4 zf3?x;b*hzLam;(pF0g!FYx8boF5d^*-f!09$C*ZV**o$}f8u-Yf*;s1-!|p^DsR+Z z+%%S0czz?`)5y761K)#1x!=%G@T30fYj4eXN3%BZt_}MGw@PtZ>-!_`=dmvDq&Vbv zJ8M?)y|25@zdI6RHr{`J{?w-?82q@u$b~MnJ2z>khN(60h4>9M)?qEa&O+R4=$9Vh zkUuoW`9UAQfq2h-Tz&4T;cSW*G2n9t@?Ax)!?`o`f)_uuW=nn1q?(&|2J#c8EO)aJm^SoCt z;xL@~85nSx`ekftJl?akM-E`EK8#`O-i74E9uedBOqF<}kMF&Lqw|ozBh%-3_Z+JP z)Mp$^yc7L#e3x)G&`9056Y0az&yvQczvX=YOAXdQ4?_b7&KPIyG^SX`)S2Y>0|poW zJ?uVeLhjQ%$>Bxk;W=LL9e5m-cM=X~!%lw50q@#QQ3sFfN-dlxqE1LP%zHqFE!n~`sdqeE5y{zbry{XtoiXLO$u}ea~Wbe99e0c7A z?4GdituT1Y@juf19iN5mL-9oI9s61<;|ZQ)+~*(!RgK&{RuwFUPE^PwnXEyuI$aqV}LsgJgKciQaVH$!gq9vp4-D Tgu*?ox~ItLUR=2N$N7H&oG^K` literal 0 HcmV?d00001 diff --git a/Source/ApplicationBase/_Usuarios_/uCambiarPassword.dfm b/Source/ApplicationBase/_Usuarios_/uCambiarPassword.dfm new file mode 100644 index 00000000..91698274 --- /dev/null +++ b/Source/ApplicationBase/_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/ApplicationBase/_Usuarios_/uCambiarPassword.pas b/Source/ApplicationBase/_Usuarios_/uCambiarPassword.pas new file mode 100644 index 00000000..03a158bf --- /dev/null +++ b/Source/ApplicationBase/_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 contrasea en los dos campos') + else + ModalResult := mrOK; +end; + +end. diff --git a/Source/ApplicationBase/_Usuarios_/uDataModuleUsuarios.dfm b/Source/ApplicationBase/_Usuarios_/uDataModuleUsuarios.dfm new file mode 100644 index 00000000..ce6d0400 --- /dev/null +++ b/Source/ApplicationBase/_Usuarios_/uDataModuleUsuarios.dfm @@ -0,0 +1,17 @@ +object dmUsuarios: TdmUsuarios + OldCreateOrder = True + OnCreate = DAClientDataModuleCreate + Height = 205 + Width = 355 + object ROLoginService: TRORemoteService + Message = dmConexion.ROMessage + Channel = dmConexion.ROChannel + ServiceName = 'srvLogin' + Left = 48 + Top = 32 + end + object DABINAdapter: TDABINAdapter + Left = 48 + Top = 104 + end +end diff --git a/Source/ApplicationBase/_Usuarios_/uDataModuleUsuarios.pas b/Source/ApplicationBase/_Usuarios_/uDataModuleUsuarios.pas new file mode 100644 index 00000000..369a5f3c --- /dev/null +++ b/Source/ApplicationBase/_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, uDADataStreamer; + +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 reconexin + + 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 haba 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 informacin del login anterior (sesin, 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 contrasea ha sido cambiada correctamente.', 'Informacin', 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 contrasea');} + Result := True; +end; + +initialization + dmUsuarios := TdmUsuarios.Create(nil); + +finalization + FreeAndNil(dmUsuarios); + +end. diff --git a/Source/ApplicationBase/_Usuarios_/uLoginForm.dfm b/Source/ApplicationBase/_Usuarios_/uLoginForm.dfm new file mode 100644 index 00000000..bfa1641a --- /dev/null +++ b/Source/ApplicationBase/_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/ApplicationBase/_Usuarios_/uLoginForm.pas b/Source/ApplicationBase/_Usuarios_/uLoginForm.pas new file mode 100644 index 00000000..a3814747 --- /dev/null +++ b/Source/ApplicationBase/_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 vlido. Compruebe si ha escrito correctamente' + + #13 + #10 + 'el usuario y la contrasea.', 'Atencin', 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 automtica si hay usuario/password y no hay ms de una base + // de datos como opcin para conectarse. + if ((Length(edtUser.Text) > 0) and (Length(edtPassword.Text) > 0)) then + Timer1.Enabled := True; +end; + +procedure TfLoginForm.Timer1Timer(Sender: TObject); +begin + Timer1.Enabled := False; + bAceptar.Click; +end; + +end. diff --git a/Source/ApplicationBase/_Usuarios_/uUsuario.dfm b/Source/ApplicationBase/_Usuarios_/uUsuario.dfm new file mode 100644 index 00000000..93fcc6e1 --- /dev/null +++ b/Source/ApplicationBase/_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/ApplicationBase/_Usuarios_/uUsuario.pas b/Source/ApplicationBase/_Usuarios_/uUsuario.pas new file mode 100644 index 00000000..90e722c2 --- /dev/null +++ b/Source/ApplicationBase/_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/ApplicationBase/_Usuarios_/uUsuarios.dfm b/Source/ApplicationBase/_Usuarios_/uUsuarios.dfm new file mode 100644 index 00000000..0c3eb30f --- /dev/null +++ b/Source/ApplicationBase/_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 = clWindow + Font.Height = -16 + Font.Name = 'Arial' + Font.Style = [fsBold] + ParentFont = False + ColorFrom = 8684164 + ColorTo = 8684164 + ImageIndex = 0 + StyleManager = dmBase.StyleManager + ParentStyleManager = False + end + object Button1: TButton + Left = 448 + Top = 40 + Width = 91 + Height = 25 + Action = actNuevo + TabOrder = 2 + end + object Button2: TButton + Left = 448 + Top = 136 + Width = 91 + Height = 25 + Action = actModificar + TabOrder = 3 + end + object Button3: TButton + Left = 448 + Top = 176 + Width = 91 + Height = 25 + Action = actEliminar + TabOrder = 4 + end + object Button4: TButton + Left = 448 + Top = 368 + Width = 91 + Height = 25 + Action = actCerrar + TabOrder = 5 + end + object Button5: TButton + Left = 448 + Top = 96 + Width = 91 + Height = 25 + Action = actCambiarPassword + TabOrder = 6 + end + object DADataSource: TDADataSource + Left = 368 + Top = 40 + end + object ActionList: TActionList + Left = 8 + Top = 360 + object actCerrar: TAction + Caption = '&Cerrar' + OnExecute = actCerrarExecute + end + object actNuevo: TAction + Caption = 'Nuevo usuario' + OnUpdate = actNuevoUpdate + end + object actCambiarPassword: TAction + Caption = 'Cambiar contrase'#241'a' + OnUpdate = actCambiarPasswordUpdate + end + object actModificar: TAction + Caption = 'Modificar usuario' + OnUpdate = actModificarUpdate + end + object actEliminar: TAction + Caption = 'Eliminar usuario' + OnUpdate = actEliminarUpdate + end + end +end diff --git a/Source/ApplicationBase/_Usuarios_/uUsuarios.pas b/Source/ApplicationBase/_Usuarios_/uUsuarios.pas new file mode 100644 index 00000000..6fb22fd6 --- /dev/null +++ b/Source/ApplicationBase/_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, uDAInterfaces; + +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/ApplicationBase/uFactuGES_App.pas b/Source/ApplicationBase/uFactuGES_App.pas new file mode 100644 index 00000000..0461b12c --- /dev/null +++ b/Source/ApplicationBase/uFactuGES_App.pas @@ -0,0 +1,371 @@ +unit uFactuGES_App; + +interface + +uses + SysUtils, Classes, Forms, uUsuarios, uBizEmpresas, uControllerBase, + uEmpresasController, JclFileUtils, uUsuariosController, uHostManager; + +type + TDoLoadModulesEvent = procedure; + TDoMainFormEvent = procedure; + + IAppSplashForm = interface + ['{9905DF57-4476-42E6-A7CD-B1479A84E220}'] + procedure Show; + procedure Hide; + procedure Update; + function GetMensaje: String; + procedure SetMensaje(const AMensaje : String); + property Mensaje : String read GetMensaje write SetMensaje; + end; + + IAppFactuGES = interface + ['{FB6A0F3C-C1D1-462D-AFD4-2A368F85E920}'] + function GetMainForm: TCustomForm; + function GetEmpresasController: IEmpresasController; + function GetUsuariosController: IUsuariosController; + function GetAppName: String; + function GetAppVersion: String; + function GetUsuarioActivo: TUsuario; + function GetEmpresaActiva: IBizEmpresa; + function GetModuleManager : THostManager; + function GetTerminated: Boolean; + + function GetLoadModulesEvent : TDoLoadModulesEvent; + procedure SetLoadModulesEvent (ALoadModulesEvent : TDoLoadModulesEvent); + + function GetDoMainFormEvent : TDoMainFormEvent; + procedure SetDoMainFormEvent (AMainFormEvent : TDoMainFormEvent); + + function GetAppSplashForm : IAppSplashForm; + procedure SetAppSplashForm (AAppSplashForm : IAppSplashForm); + + procedure CambiarEmpresa(const AIDEmpresa : Integer); + + procedure ShowSplashForm; + procedure HideSplashForm; + + procedure Run; + procedure Terminate; + + property AppVersion : String read GetAppVersion; + property AppName : String read GetAppName; + property MainForm : TCustomForm read GetMainForm; + property EmpresaActiva : IBizEmpresa read GetEmpresaActiva; + property UsuarioActivo : TUsuario read GetUsuarioActivo; + property EmpresasController : IEmpresasController read GetEmpresasController; + property UsuariosController : IUsuariosController read GetUsuariosController; + property AppSplashForm : IAppSplashForm read GetAppSplashForm write SetAppSplashForm; + property ModuleManager : THostManager read GetModuleManager; + property DoMainFormEvent : TDoMainFormEvent read GetDoMainFormEvent write SetDoMainFormEvent; + property DoLoadModulesEvent : TDoLoadModulesEvent read GetLoadModulesEvent write SetLoadModulesEvent; + property Terminated : Boolean read GetTerminated; + + procedure ShowCapado; + end; + + + TAppFactuGES = class(TInterfacedObject, IAppFactuGES) + private + FAppInfo : TJclFileVersionInfo; + FEmpresasController : IEmpresasController; + FUsuariosController: IUsuariosController; + FEmpresaActiva: IBizEmpresa; + FAppSplashForm : IAppSplashForm; + FHostManager : THostManager; + FTerminated : Boolean; + + FDoMainFormEvent: TDoMainFormEvent; + FDoLoadModulesEvent: TDoMainFormEvent; + + function GetMainForm: TCustomForm; + function GetEmpresasController: IEmpresasController; + function GetUsuariosController: IUsuariosController; + function GetAppName: String; + function GetAppVersion: String; + function GetUsuarioActivo: TUsuario; + function GetEmpresaActiva: IBizEmpresa; + function GetModuleManager : THostManager; + function GetTerminated: Boolean; + + function GetLoadModulesEvent : TDoLoadModulesEvent; + procedure SetLoadModulesEvent (ALoadModulesEvent : TDoLoadModulesEvent); + + function GetDoMainFormEvent : TDoMainFormEvent; + procedure SetDoMainFormEvent (AMainFormEvent : TDoMainFormEvent); + + function GetAppSplashForm : IAppSplashForm; + procedure SetAppSplashForm (AAppSplashForm : IAppSplashForm); + + procedure AfterLoadModule(Sender: TObject; AModuleInfo: TModuleInfo); + procedure RegisterModule(AModuleInfo : TModuleInfo); + protected + procedure DoMainForm; + + procedure CargarModulos; + procedure ShowSplashForm; + procedure HideSplashForm; + procedure UpdateSplashForm; + public + constructor Create; virtual; + destructor Destroy; override; + + procedure Run; + procedure Terminate; + + procedure CambiarEmpresa(const AIDEmpresa : Integer); + + property AppVersion : String read GetAppVersion; + property AppName : String read GetAppName; + property MainForm : TCustomForm read GetMainForm; + property EmpresaActiva : IBizEmpresa read GetEmpresaActiva; + property AppSplashForm : IAppSplashForm read GetAppSplashForm write SetAppSplashForm; + property UsuarioActivo : TUsuario read GetUsuarioActivo; + property EmpresasController : IEmpresasController read GetEmpresasController; + property UsuariosController : IUsuariosController read GetUsuariosController; + property ModuleManager : THostManager read GetModuleManager; + property DoMainFormEvent : TDoMainFormEvent read GetDoMainFormEvent write SetDoMainFormEvent; + property DoLoadModulesEvent : TDoLoadModulesEvent read GetLoadModulesEvent write SetLoadModulesEvent; + property Terminated : Boolean read GetTerminated; + + procedure ShowCapado; + end; + +var + AppFactuGES : IAppFactuGES = nil; + +implementation + +uses + Dialogs, uDialogUtils, cxControls, uUsuariosViewRegister, + uEmpresasViewRegister; + +procedure TAppFactuGES.CambiarEmpresa(const AIDEmpresa: Integer); +var + Aux : IBizEmpresa; +begin + Aux := EmpresasController.Buscar(AIDEmpresa); + if Assigned(Aux) then + begin + Aux.DataTable.Active := True; + if not Aux.IsEmpty then + FEmpresaActiva := Aux; + end; +end; + +procedure TAppFactuGES.CargarModulos; +begin + if not Assigned(FDoLoadModulesEvent) then + raise Exception.Create('Evento para la carga de los mdulos de la aplicacin no asignado (CargarModulos)'); + + FDoLoadModulesEvent(); +end; + +constructor TAppFactuGES.Create; +begin + FTerminated := False; + FDoMainFormEvent := NIL; + FDoLoadModulesEvent := NIL; + FAppSplashForm := NIL; + FEmpresaActiva := NIL; + FUsuariosController := NIL; // Se crea la primera vez que se usa + FEmpresasController := NIL; // Se crea la primera vez que se usa + + FAppInfo := TJclFileVersionInfo.Create(Application.ExeName); + FHostManager := THostManager.Create(NIL); + with FHostManager do + begin + OnAfterLoad := AfterLoadModule; + // Ruta por defecto de los mdulos + BPLPath := ExtractFilePath(Application.ExeName) + '\'; + end; +end; + +destructor TAppFactuGES.Destroy; +begin + FAppSplashForm := NIL; + + FHostManager.UnloadModules; + FreeAndNIL(FHostManager); + + FEmpresaActiva := NIL; + FUsuariosController := NIL; + FEmpresasController := NIL; + + FreeAndNIL(FAppInfo); + inherited; +end; + +procedure TAppFactuGES.DoMainForm; +begin + if not Assigned(FDoMainFormEvent) then + raise Exception.Create('Evento para la creacin del formulario principal no asignado (DoMainForm)'); + + FDoMainFormEvent(); +end; + +function TAppFactuGES.GetMainForm: TCustomForm; +begin + Result := Application.MainForm; +end; + +function TAppFactuGES.GetDoMainFormEvent: TDoMainFormEvent; +begin + Result := FDoMainFormEvent; +end; + +function TAppFactuGES.GetAppName: String; +begin + Result := FAppInfo.ProductName; +end; + +function TAppFactuGES.GetAppSplashForm: IAppSplashForm; +begin + Result := FAppSplashForm; +end; + +function TAppFactuGES.GetAppVersion: String; +begin + Result := FAppInfo.ProductVersion; +end; + +function TAppFactuGES.GetEmpresaActiva: IBizEmpresa; +begin + Result := FEmpresaActiva; +end; + +function TAppFactuGES.GetEmpresasController: IEmpresasController; +begin + if not Assigned(FEmpresasController) then + FEmpresasController := TEmpresasController.Create; + + Result := FEmpresasController; +end; + +function TAppFactuGES.GetLoadModulesEvent: TDoLoadModulesEvent; +begin + Result := FDoLoadModulesEvent; +end; + +function TAppFactuGES.GetModuleManager: THostManager; +begin + Result := FHostManager; +end; + +function TAppFactuGES.GetTerminated: Boolean; +begin + Result := FTerminated; +end; + +function TAppFactuGES.GetUsuarioActivo: TUsuario; +begin + Result := UsuariosController.CurrentUser; +end; + +function TAppFactuGES.GetUsuariosController: IUsuariosController; +begin + if not Assigned(FUsuariosController) then + FUsuariosController := TUsuariosController.Create; + + Result := FUsuariosController; +end; + +procedure TAppFactuGES.HideSplashForm; +begin + if not Assigned(FAppSplashForm) then + raise Exception.Create('AppSplashForm no asignado (HideSplashForm)'); + + FAppSplashForm.Hide; +end; + +procedure TAppFactuGES.AfterLoadModule(Sender: TObject; + AModuleInfo: TModuleInfo); +begin + RegisterModule(AModuleInfo); +end; + +procedure TAppFactuGES.RegisterModule(AModuleInfo: TModuleInfo); +begin + AppSplashForm.Mensaje := 'Cargando ''' + AModuleInfo.Module.ModuleName + '''...'; +end; + +procedure TAppFactuGES.Run; +begin + if UsuariosController.StartLogin then + begin + ShowHourglassCursor; + try + //ShowSplashForm; + CargarModulos; + DoMainForm; + finally + HideHourglassCursor; + HideSplashForm; + end; + + //InicializarUI; + //Application.ProcessMessages; + //Visible := True; + //AplicarPerfil; +// Application.CreateForm(); + end; + Application.Run; + Terminate; +end; + +procedure TAppFactuGES.SetDoMainFormEvent( + AMainFormEvent: TDoMainFormEvent); +begin + FDoMainFormEvent := AMainFormEvent; +end; + +procedure TAppFactuGES.SetAppSplashForm(AAppSplashForm: IAppSplashForm); +begin + FAppSplashForm := AAppSplashForm; +end; + +procedure TAppFactuGES.SetLoadModulesEvent( + ALoadModulesEvent: TDoLoadModulesEvent); +begin + FDoLoadModulesEvent := ALoadModulesEvent; +end; + +procedure TAppFactuGES.ShowCapado; +begin + ShowInfoMessage('Sin Acceso', 'Funcionalidad en desarrollo, disculpen las molestias'); +end; + +procedure TAppFactuGES.ShowSplashForm; +begin + if not Assigned(FAppSplashForm) then + raise Exception.Create('AppSplashForm no asignado (ShowSplashForm)'); + + FAppSplashForm.Show; + FAppSplashForm.Update; +end; + +procedure TAppFactuGES.Terminate; +begin + ModuleManager.UnloadModules; + FTerminated := True; +end; + +procedure TAppFactuGES.UpdateSplashForm; +begin + FAppSplashForm.Update; +end; + +initialization + // Pongo esto aqu por ahora + uUsuariosViewRegister.RegisterViews; + uEmpresasViewRegister.RegisterViews; + +finalization + // Pongo esto aqu por ahora + AppFactuGES := NIL; + + uUsuariosViewRegister.UnregisterViews; + uEmpresasViewRegister.UnregisterViews; + +end. diff --git a/Source/Base/Base.bdsproj b/Source/Base/Base.bdsproj new file mode 100644 index 00000000..7ebf9f74 --- /dev/null +++ b/Source/Base/Base.bdsproj @@ -0,0 +1,674 @@ + + + + + + + + + + + + Base.dpk + + + 7.0 + + + 8 + 0 + 1 + 1 + 0 + 0 + 1 + 1 + 1 + 0 + 0 + 1 + 0 + 1 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 1 + 1 + 1 + 1 + 1 + True + True + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + False + False + False + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + + + + 0 + 0 + False + 1 + False + False + False + 16384 + 1048576 + 4194304 + Libreria base de FactuGES + + + + .\ + ..\..\Output\Debug\Cliente + ..\Lib + + + + + False + + + + + + False + + + True + False + + + False + + + True + False + 1 + 0 + 0 + 0 + False + False + False + False + False + 3082 + 1252 + + + + + 1.0.0.0 + + + + + + 1.0.0.0 + + + VCL for the Web Design Package for CodeGear RAD Studio + CodeGear WebSnap Components + CodeGear SOAP Components + Microsoft Office XP Sample Automation Server Wrapper Components + Microsoft Office 2000 Sample Automation Server Wrapper Components + CodeGear C++Builder Office 2000 Servers Package + CodeGear C++Builder Office XP Servers Package + + + + + diff --git a/Source/Base/Base.cfg b/Source/Base/Base.cfg new file mode 100644 index 00000000..5ce9cb53 --- /dev/null +++ b/Source/Base/Base.cfg @@ -0,0 +1,36 @@ +-$A8 +-$B- +-$C+ +-$D+ +-$E- +-$F- +-$G+ +-$H+ +-$I+ +-$J- +-$K- +-$L+ +-$M- +-$N+ +-$O- +-$P+ +-$Q- +-$R- +-$S- +-$T- +-$U- +-$V+ +-$W+ +-$X+ +-$YD +-$Z1 +-cg +-AWinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; +-H+ +-W+ +-M +-$M16384,1048576 +-K$00400000 +-N0".\" +-LE"..\..\Output\Debug\Cliente" +-LN"..\Lib" diff --git a/Source/Base/Base.dpk b/Source/Base/Base.dpk new file mode 100644 index 00000000..dee53faf --- /dev/null +++ b/Source/Base/Base.dpk @@ -0,0 +1,107 @@ +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 ON} +{$DEFINE DEBUG} + +requires + rtl, + vcl, + TB2k_D10, + GUISDK_D11, + RemObjects_Core_D11, + DataAbstract_Core_D11, + vcljpg, + IndyCore, + IndySystem, + IndyProtocols, + cxLibraryD10, + dxThemeD10, + cxEditorsD10, + cxDataD10, + cxExtEditorsD10, + cxGridD10, + cxPageControlD10, + cxExportD10, + dxPSCoreD10, + PNG_D10, + PngComponentsD10, + tbx_d10, + cxIntlPrintSys3D10, + cxIntl5D10, + Jcl, + JvCoreD11R, + JvSystemD11R, + JvStdCtrlsD11R, + JvDlgsD11R, + JvNetD11R, + JvPageCompsD11R, + JSDialog100, + dbrtl, + vcldb, + dsnap, + adortl, + vclactnband, + vclx, + JclVcl, + JvMMD11R, + JvCtrlsD11R, + pckUCDataConnector, + pckUserControl_RT, + dclIndyCore, + designide, + xmlrtl, + VclSmp, + pckMD5, + JvCmpD11R; + +contains + uDataTableUtils in 'Utiles\uDataTableUtils.pas', + uDBSelectionListUtils in 'Utiles\uDBSelectionListUtils.pas', + uIntegerListUtils in 'Utiles\uIntegerListUtils.pas', + uDMBase in 'uDMBase.pas' {dmBase: TDataModule}, + uDataModuleConexion in 'Conexion\uDataModuleConexion.pas' {dmConexion: TDataModule}, + uConfigurarConexion in 'Conexion\uConfigurarConexion.pas' {fConfigurarConexion: TForm}, + uSistemaFunc in 'Utiles\uSistemaFunc.pas', + FactuGES_Intf in '..\Servicios\FactuGES_Intf.pas', + uGridUtils in 'Utiles\uGridUtils.pas', + uDateUtils in 'Utiles\uDateUtils.pas', + uDataModuleConfiguracion in 'Configuracion\uDataModuleConfiguracion.pas' {dmConfiguracion: TDataModule}, + uViewRegistryUtils in 'Utiles\ClassRegistry\uViewRegistryUtils.pas', + uClassRegistryUtils in 'Utiles\ClassRegistry\uClassRegistryUtils.pas', + uEditorRegistryUtils in 'Utiles\ClassRegistry\uEditorRegistryUtils.pas', + uDialogUtils in 'Utiles\uDialogUtils.pas', + uNumUtils in 'Utiles\uNumUtils.pas', + uMD5 in 'Utiles\uMD5.pas', + uPasswordUtils in 'Utiles\uPasswordUtils.pas', + uInfoProjectUtils in 'Utiles\uInfoProjectUtils.pas', + uInformeRegistryUtils in 'Utiles\ClassRegistry\uInformeRegistryUtils.pas', + uCalculosUtils in 'Utiles\uCalculosUtils.pas', + uControllerBase in 'Controladores\uControllerBase.pas', + uControllerDetallesBase in 'Controladores\uControllerDetallesBase.pas', + schBase_Intf in 'schBase_Intf.pas', + uDataModuleBase in 'uDataModuleBase.pas' {DataModuleBase: TDataModule}; + +end. diff --git a/Source/Base/Base.dproj b/Source/Base/Base.dproj new file mode 100644 index 00000000..3dcc8be0 --- /dev/null +++ b/Source/Base/Base.dproj @@ -0,0 +1,636 @@ + + + + {70a31e92-41c6-4435-a901-d77c3d82951e} + Base.dpk + Debug + AnyCPU + DCC32 + ..\..\Output\Debug\Cliente\Base.bpl + + + 7.0 + False + False + False + True + 0 + .\ + .\ + .\ + ..\..\Output\Release\Cliente + ..\Lib + RELEASE + + + 7.0 + False + True + .\ + .\ + .\ + ..\..\Output\Debug\Cliente + ..\Lib + DEBUG + $(BDS)\lib\Debug;$(BDS)\Lib\Debug\Indy10;T:\COMPON~1\jcl\lib\d11\debug;$(BDSCOMMONDIR)\Dcp + $(BDS)\lib\Debug;$(BDS)\Lib\Debug\Indy10;T:\COMPON~1\jcl\lib\d11\debug;$(BDSCOMMONDIR)\Dcp + $(BDS)\lib\Debug;$(BDS)\Lib\Debug\Indy10;T:\COMPON~1\jcl\lib\d11\debug;$(BDSCOMMONDIR)\Dcp + $(BDS)\lib\Debug;$(BDS)\Lib\Debug\Indy10;T:\COMPON~1\jcl\lib\d11\debug;$(BDSCOMMONDIR)\Dcp + True + True + + + Delphi.Personality + Package + +FalseTrueFalseLibreria base de FactuGESTrueFalseFalseTrueFalse1000FalseFalseFalseFalseFalse308212521.0.0.01.0.0.0 + VCL for the Web Design Package for CodeGear RAD Studio + CodeGear WebSnap Components + CodeGear SOAP Components + Microsoft Office XP Sample Automation Server Wrapper Components + Microsoft Office 2000 Sample Automation Server Wrapper Components + CodeGear C++Builder Office 2000 Servers Package + CodeGear C++Builder Office XP Servers Package + Base.dpk + + + + + MainSource + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    fConfigurarConexion
    + TForm +
    + +
    dmConexion
    + TDataModule +
    + +
    dmConfiguracion
    + TDataModule +
    + + + + +
    DataModuleBase
    + TDataModule +
    + +
    dmBase
    + TDataModule +
    + + + + + + + + + + + + + + + + +
    +
    + diff --git a/Source/Base/Base.identcache b/Source/Base/Base.identcache new file mode 100644 index 0000000000000000000000000000000000000000..b93fc880d59c2cc72899d66182a50c78d3212d0a GIT binary patch literal 1742 zcmbVN$xg#C6zp$szLkys4(!oh9Xi2-e!#gs}bF{FGWj-7@uyD?1X_R7wK zE>BXx`Jh0F+z4ux#GX1~Jg-uYX98k4cKOrcoEF{VYVnRKV? z8f(`f_0H^_z}IeCJ?+lYXUi*5TLr3n=i9tkUEHLpNX;>-Z?Zb=uoQ+=l=UEi)fO&8 zoWsaA+&7zeoGY3sdU7=lMxP`i7a*w);?EOIcy;(Q21z#)NbNN5`-vnSHh0s6FWgaV TRoA$$?z#Vuf8u^V_<}wFb^IPQ literal 0 HcmV?d00001 diff --git a/Source/Base/Base.rc b/Source/Base/Base.rc new file mode 100644 index 00000000..153736af --- /dev/null +++ b/Source/Base/Base.rc @@ -0,0 +1,22 @@ +1 VERSIONINFO +FILEVERSION 1,0,0,0 +PRODUCTVERSION 1,0,0,0 +FILEFLAGSMASK 0x3FL +FILEFLAGS 0x00L +FILEOS 0x40004L +FILETYPE 0x1L +FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "0C0A04E4" + BEGIN + VALUE "FileVersion", "1.0.0.0\0" + VALUE "ProductVersion", "1.0.0.0\0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x0C0A, 1252 + END +END diff --git a/Source/Base/Base.res b/Source/Base/Base.res new file mode 100644 index 0000000000000000000000000000000000000000..8b251f312bcccec5485024f6fe8d80e1cdf25746 GIT binary patch literal 384 zcmZ9HOA3Ne6ox;+L5PEv(4cV`IIrjdPAV##hV&wc1g%+%X(R2Xc{`~7t6e0Ioa?#% zkMj%AQhz>WYy7LeWAUaqx~Kv?-;(-Hs4-^ATIZOBrid9+-6Ne7&88mi>kUR4lo#jxZ;#*s4zxg9yNlk=H9sqkCD2^cEXKpiTBNfgkKpXJBWWaLt(Qkv@0 w5yv*t82((Wlr2{_+FDoDHKW2QCXvc+s**ul{{$ + DispatchOptions = [] + Left = 120 + Top = 112 + end + object ROBinMessage: TROBinMessage + Left = 152 + Top = 112 + end + object CoService: TRORemoteService + Message = ROBinMessage + Channel = HTTPChannel + ServiceName = 'srvLogin' + Left = 184 + Top = 112 + end +end diff --git a/Source/Base/Conexion/uConfigurarConexion.pas b/Source/Base/Conexion/uConfigurarConexion.pas new file mode 100644 index 00000000..d93c9a7e --- /dev/null +++ b/Source/Base/Conexion/uConfigurarConexion.pas @@ -0,0 +1,76 @@ +unit uConfigurarConexion; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, StdCtrls, uROClient, uROWinInetHttpChannel, uRODynamicRequest, + uRORemoteService, uROBinMessage; + +type + TfConfigurarConexion = class(TForm) + bProbar: TButton; + GroupBox1: TGroupBox; + Label1: TLabel; + Label2: TLabel; + edtServer: TEdit; + edtPort: TEdit; + bAceptar: TButton; + bCancelar: TButton; + 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('Conexin vlida con el servidor.') + else + ShowErrorMessage('Error de conexin', 'No se ha podido establecer la conexin con el servidor.') +end; + +procedure TfConfigurarConexion.FormCreate(Sender: TObject); +begin + HTTPChannel.OnFailure := dmConexion.ROChannelFailure; +end; + +end. diff --git a/Source/Base/Conexion/uDataModuleConexion.dfm b/Source/Base/Conexion/uDataModuleConexion.dfm new file mode 100644 index 00000000..831fe536 --- /dev/null +++ b/Source/Base/Conexion/uDataModuleConexion.dfm @@ -0,0 +1,23 @@ +object dmConexion: TdmConexion + OldCreateOrder = False + OnDestroy = DataModuleDestroy + Height = 177 + Width = 121 + object ROChannel: TROWinInetHTTPChannel + OnFailure = ROChannelFailure + OnException = ROChannelFailure + UserAgent = 'RemObjects SDK' + TargetURL = 'http://localhost:8099/bin' + Login.Username = 'Tecsitel' + Login.Password = '1' + KeepConnection = True + ServerLocators = <> + DispatchOptions = [] + Left = 42 + Top = 16 + end + object ROMessage: TROBinMessage + Left = 42 + Top = 88 + end +end diff --git a/Source/Base/Conexion/uDataModuleConexion.pas b/Source/Base/Conexion/uDataModuleConexion.pas new file mode 100644 index 00000000..3461e70c --- /dev/null +++ b/Source/Base/Conexion/uDataModuleConexion.pas @@ -0,0 +1,156 @@ +unit uDataModuleConexion; + +interface + +uses + SysUtils, Classes, uRORemoteService, uDADataTable, + uDABINAdapter, uROClient, uROBinMessage, uROWinInetHttpChannel, + uDADataStreamer; + +const + SERVER_URL = 'http://localhost:8099/bin'; // Direccin por defecto del servidor + +type + TdmConexion = class(TDataModule) + ROChannel: TROWinInetHTTPChannel; + ROMessage: TROBinMessage; + procedure ROChannelFailure(Sender: TROTransportChannel; + anException: Exception; var Retry: Boolean); + procedure DataModuleDestroy(Sender: TObject); + 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, + uDMBase, FactuGES_Intf; + +const + IE_OFFLINE_ERROR = 'Unexpected error in WinInet HTTP Channel (2)'; + +function TdmConexion.HayConexion: Boolean; +begin + Result := ROChannel.Connected; +end; + +procedure TdmConexion.ConfigurarConexion; +begin + with TfConfigurarConexion.Create(NIL) do + try + TargetURL := ROChannel.TargetURL; + if ShowModal = mrOk then + begin + ROChannel.TargetURL := TargetURL; + ROChannel.Connected := False; + ROChannel.Connected := True; + dmBase.SalvarConfiguracion; + end; + finally + Free; + end; +end; + +procedure TdmConexion.DataModuleDestroy(Sender: TObject); +begin + ROChannel.Connected := False; +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'; + ACoService.Message := AROBinMessage; + Channel := AHTTPChannel; + end; + + try + AHTTPChannel.Connected := True; + (ACoService as IsrvLogin).Ping; + AHTTPChannel.Connected := False; + 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 operacin + else + Abort; // Si el usuario pulsa en 'Seguir desconectado' parar todo + end +end; + +procedure TdmConexion.SetTargetURL(const Value: String); +begin + ROChannel.TargetURL := Value; +end; + +end. diff --git a/Source/Base/Configuracion/uDataModuleConfiguracion.dfm b/Source/Base/Configuracion/uDataModuleConfiguracion.dfm new file mode 100644 index 00000000..1f45ec7f --- /dev/null +++ b/Source/Base/Configuracion/uDataModuleConfiguracion.dfm @@ -0,0 +1,27 @@ +object dmConfiguracion: TdmConfiguracion + OldCreateOrder = False + Height = 160 + Width = 220 + object ROChannel: TROWinInetHTTPChannel + UserAgent = 'RemObjects SDK' + TargetURL = 'http://localhost:8099/bin' + Login.Username = '123456' + Login.Password = 'sa' + KeepConnection = True + ServerLocators = <> + DispatchOptions = [] + Left = 42 + Top = 16 + end + object ROMessage: TROBinMessage + Left = 42 + Top = 88 + end + object RORemoteService: TRORemoteService + Message = ROMessage + Channel = ROChannel + ServiceName = 'srvConfiguracion' + Left = 136 + Top = 16 + end +end diff --git a/Source/Base/Configuracion/uDataModuleConfiguracion.pas b/Source/Base/Configuracion/uDataModuleConfiguracion.pas new file mode 100644 index 00000000..f5786008 --- /dev/null +++ b/Source/Base/Configuracion/uDataModuleConfiguracion.pas @@ -0,0 +1,70 @@ +unit uDataModuleConfiguracion; + +interface + +uses + SysUtils, Classes, uRORemoteService, uDADataTable, + uDABINAdapter, uROClient, uROBinMessage, uROWinInetHttpChannel, IniFiles, + uDADataStreamer; + +const + SERVER_URL = 'http://localhost:8099/bin'; + +type + TdmConfiguracion = class(TDataModule) + ROChannel: TROWinInetHTTPChannel; + ROMessage: TROBinMessage; + RORemoteService: TRORemoteService; + private + FIniFile : TIniFile; + public + function DarValor(const CODIGO: String): Variant; + procedure LeerConfiguracion; + procedure SalvarConfiguracion; + constructor Create(AOwner: TComponent); override; + destructor Destroy; override; + end; + +var + dmConfiguracion: TdmConfiguracion; + +implementation + +{$R *.dfm} + +uses + Forms, FactuGES_Intf, Variants, uDataModuleConexion; + + +{ TdmConfiguracion } + +constructor TdmConfiguracion.Create(AOwner: TComponent); +begin + inherited; + FIniFile := TIniFile.Create(ChangeFileExt(Application.ExeName, '.ini' ) ); +end; + +function TdmConfiguracion.DarValor(const CODIGO: String): Variant; +begin + Result := (RORemoteService as IsrvConfiguracion).DarValor(CODIGO); +end; + +destructor TdmConfiguracion.Destroy; +begin + FreeAndNIL(FIniFile); + inherited; +end; + +procedure TdmConfiguracion.LeerConfiguracion; +begin + with FIniFile do + dmConexion.TargetURL := ReadString('Server', 'URL', SERVER_URL); +end; + +procedure TdmConfiguracion.SalvarConfiguracion; +begin + with FIniFile do + WriteString('Server', 'URL', dmConexion.TargetURL); +end; + +end. diff --git a/Source/Base/Controladores/uControllerBase.pas b/Source/Base/Controladores/uControllerBase.pas new file mode 100644 index 00000000..9e825ab3 --- /dev/null +++ b/Source/Base/Controladores/uControllerBase.pas @@ -0,0 +1,280 @@ +unit uControllerBase; + +interface + +uses + Classes, uDADataTable, Forms; + +type + ISujeto = interface; + + IObservador = interface (IInterface) + ['{679D5CF2-D5DC-4A52-9FF3-04AD91402483}'] + procedure AddSujeto(Sujeto: ISujeto); + procedure DeleteSujeto(Sujeto: ISujeto); + procedure RecibirAviso(ASujeto: ISujeto); overload; + procedure RecibirAviso(ASujeto: ISujeto; ADataTable: IDAStronglyTypedDataTable); overload; + end; + + ISujeto = interface (IInterface) + ['{CDB691CD-D1D6-4F2E-AA34-93B1CD0E6030}'] + procedure AddObservador(Observador: IObservador); + procedure DeleteObservador(Observador: IObservador); + end; + + { ******************* PARA PRUEBAS ******************************************} + TMiInterfacedObject = class(TObject, IInterface) + protected + FRefCount: Integer; + function QueryInterface(const IID: TGUID; out Obj): HResult; stdcall; + function _AddRef: Integer; stdcall; + function _Release: Integer; virtual; stdcall; + function GetRefCount : Integer; + public + procedure AfterConstruction; override; + procedure BeforeDestruction; override; + class function NewInstance: TObject; override; + property RefCount: Integer read FRefCount; + end; + + + { ***************************************************************************} + + + TObservador = class(TObject, IObservador) + private + fSujetos: IInterfaceList; + protected + FRefCount: Integer; + procedure RecibirAviso(ASujeto: ISujeto); overload; virtual; + procedure RecibirAviso(ASujeto: ISujeto; ADataTable: IDAStronglyTypedDataTable); overload; virtual; abstract; + function QueryInterface(const IID: TGUID; out Obj): HResult; stdcall; + function _AddRef: Integer; stdcall; + function _Release: Integer; stdcall; + function GetRefCount : Integer; + public + constructor Create; virtual; + procedure AddSujeto(Sujeto: ISujeto); + procedure DeleteSujeto(Sujeto: ISujeto); + destructor Destroy; override; + + procedure AfterConstruction; override; + procedure BeforeDestruction; override; + class function NewInstance: TObject; override; + property RefCount: Integer read FRefCount; + end; + + TSujeto = class(TInterfacedObject, ISujeto) + private + fObservadores: IInterfaceList; + protected + procedure AvisarObservadores; overload; + procedure AvisarObservadores(ADataTable: IDAStronglyTypedDataTable); overload; + public + constructor Create; virtual; + procedure AddObservador(Observador: IObservador); + procedure DeleteObservador(Observador: IObservador); + destructor Destroy; override; + end; + + IControllerBase = IObservador; + TControllerBase = TObservador; + +implementation + +uses + Dialogs, SysUtils; + + +function InterlockedIncrement(var I: Integer): Integer; +asm + MOV EDX,1 + XCHG EAX,EDX + LOCK XADD [EDX],EAX + INC EAX +end; + +function InterlockedDecrement(var I: Integer): Integer; +asm + MOV EDX,-1 + XCHG EAX,EDX + LOCK XADD [EDX],EAX + DEC EAX +end; + +{ TMiInterfacedObject } + +procedure TMiInterfacedObject.AfterConstruction; +begin +// Release the constructor's implicit refcount + InterlockedDecrement(FRefCount); +end; + +procedure TMiInterfacedObject.BeforeDestruction; +begin +// if RefCount <> 0 then +// Error(reInvalidPtr); +end; + +function TMiInterfacedObject.GetRefCount: Integer; +begin + Result := FRefCount; +end; + +// Set an implicit refcount so that refcounting +// during construction won't destroy the object. +class function TMiInterfacedObject.NewInstance: TObject; +begin + Result := inherited NewInstance; + TMiInterfacedObject(Result).FRefCount := 1; +end; + +function TMiInterfacedObject.QueryInterface(const IID: TGUID; out Obj): HResult; +begin + if GetInterface(IID, Obj) then + Result := 0 + else + Result := E_NOINTERFACE; +end; + +function TMiInterfacedObject._AddRef: Integer; +begin + Result := InterlockedIncrement(FRefCount); +// ShowMessage('_AddRef: ' + ClassName + ' - RefCount: ' + IntToStr(FRefCount)); +end; + +function TMiInterfacedObject._Release: Integer; +begin + Result := InterlockedDecrement(FRefCount); +// ShowMessage('_Release: ' + ClassName + ' - RefCount: ' + IntToStr(FRefCount)); + if Result = 0 then + Destroy; +end; + + + +{ TSujeto } + +procedure TSujeto.addObservador(Observador: IObservador); +begin + FObservadores.Add(Observador); + Observador.AddSujeto(Self); +end; + +procedure TSujeto.AvisarObservadores; +var + i: Integer; + AObs : IObservador; +begin + for i := 0 to Pred(FObservadores.Count) do + begin + if Supports(FObservadores[i], IObservador, AObs) then + AObs.RecibirAviso(Self); + end; +end; + +procedure TSujeto.AvisarObservadores(ADataTable: IDAStronglyTypedDataTable); +var + i: Integer; + AObs : IObservador; +begin + for i := 0 to Pred(FObservadores.Count) do + begin + if Supports(FObservadores[i], IObservador, AObs) then + AObs.RecibirAviso(Self, ADataTable); + end; +end; + +constructor TSujeto.Create; +begin + inherited; + FObservadores := TInterfaceList.Create; +end; + +procedure TSujeto.DeleteObservador(Observador: IObservador); +begin + FObservadores.Remove(Observador); +end; + +destructor TSujeto.Destroy; +begin + FObservadores := NIL; + inherited; +end; + +{ TObservador } + +procedure TObservador.RecibirAviso(ASujeto: ISujeto); +begin + // +end; + +function TObservador._AddRef: Integer; +begin + Result := InterlockedIncrement(FRefCount); +// ShowMessage('_AddRef: ' + ClassName + ' - RefCount: ' + IntToStr(FRefCount)); +end; + +function TObservador._Release: Integer; +begin + Result := InterlockedDecrement(FRefCount); +// ShowMessage('_Release: ' + ClassName + ' - RefCount: ' + IntToStr(FRefCount)); +// if (Result = 0) + if (Assigned(fSujetos) and (fSujetos.Count = FRefCount)) then + Destroy; +end; + +procedure TObservador.AddSujeto(Sujeto: ISujeto); +begin + FSujetos.Add(Sujeto); +end; + +procedure TObservador.AfterConstruction; +begin +// Release the constructor's implicit refcount + InterlockedDecrement(FRefCount); +end; + +procedure TObservador.BeforeDestruction; +begin +// if RefCount <> 0 then +// Error(reInvalidPtr); +end; + +constructor TObservador.Create; +begin + inherited; + FSujetos := TInterfaceList.Create; +end; + +procedure TObservador.DeleteSujeto(Sujeto: ISujeto); +begin + FSujetos.Remove(Sujeto); +end; + +destructor TObservador.Destroy; +begin + FSujetos := NIL; + inherited; +end; + +function TObservador.GetRefCount: Integer; +begin + Result := FRefCount; +end; + +class function TObservador.NewInstance: TObject; +begin + Result := inherited NewInstance; + TObservador(Result).FRefCount := 1; +end; + +function TObservador.QueryInterface(const IID: TGUID; out Obj): HResult; +begin + if GetInterface(IID, Obj) then + Result := 0 + else + Result := E_NOINTERFACE; +end; + +end. diff --git a/Source/Base/Controladores/uControllerDetallesBase.pas b/Source/Base/Controladores/uControllerDetallesBase.pas new file mode 100644 index 00000000..8198311e --- /dev/null +++ b/Source/Base/Controladores/uControllerDetallesBase.pas @@ -0,0 +1,577 @@ +unit uControllerDetallesBase; + +interface + +uses Classes, Variants, uDACDSDataTable, uDADataTable, uControllerBase, uCalculosUtils; + +const + 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 mtodo podremos tener en cuenta otras columnas para el calculo del importe total de un concepto + function CalcularImporteTotalConcepto(DataTable: TDADataTable): Double; virtual; + procedure TratamientoDetalleConcepto(DataTable: TDADataTable); virtual; + procedure CalculoDetalleConcepto(DataTable: TDADataTable; var ImporteAcumulado : Double; var ImporteTotal : Double); 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 posicin 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] := 'Ttulo de captulo'; + Result.Values[TIPO_DETALLE_SUBTOTAL] := 'Final de captulo'; + Result.Values[TIPO_DETALLE_SALTO] := 'Salto de pgina'; +end; + +function TControllerDetallesBase.darTotalImporteTotal(ADataTable: IDAStronglyTypedDataTable): Double; +begin + Result := CalcularTotales(False, ADataTable.DataTable); +end; + +procedure TControllerDetallesBase.Delete(ADataTable: IDAStronglyTypedDataTable; Posicion: TIntegerArray); +var + i: integer; + AField: TDAField; + DeletePosicion: Integer; +begin + DeletePosicion := 0; + AField := ADataTable.DataTable.FindField(CAMPO_POSICION); + if not Assigned(AField) then + raise Exception.Create('Campo ' + CAMPO_POSICION + ' no encontrado (Delete)'); + + BeginUpdate(ADataTable); + try + with ADataTable do + begin + for i := 0 to High(POSICION) do + begin + DataTable.First; + DeletePosicion := POSICION[i]; + if DataTable.Locate(CAMPO_POSICION, 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; +{ +Funcin que desplaza NPosiciones el numero de orden a partir del elemento con el +nmero de orden dado. Devuelve el numero de orden del primer elemento del hueco +generado +} +var + AuxNumOrden: Integer; + AuxNumPos: Integer; + AField: TDAField; +begin + + AField := DataTable.FindField(CAMPO_POSICION); + if not Assigned(AField) then + raise Exception.Create('Campo ' + CAMPO_POSICION + ' no encontrado (desplazarNPosiciones)'); + + if VarIsNull(NPosiciones) + then AuxNumPos := 1 + else AuxNumPos := NPosiciones; + + if VarIsNull(NumOrdenIni) + then AuxNumOrden := 0 + else AuxNumOrden := NumOrdenIni + 1; //Aadimos por abajo siempre + + Result := AuxNumOrden; + + with DataTable do + begin + First; + while not EOF do + begin + if (FieldByName(CAMPO_POSICION).AsInteger >= AuxNumOrden) then + begin + if not Editing then Edit; + FieldByName(CAMPO_POSICION).AsInteger := FieldByName(CAMPO_POSICION).AsInteger + AuxNumPos; + Post; + end; + Next; + end; + end; +end; + +destructor TControllerDetallesBase.Destroy; +begin + inherited; +end; + +procedure TControllerDetallesBase.EndUpdate(ADataTable: IDAStronglyTypedDataTable); +begin + Dec(fUpdateCount); + 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 posicin ' + 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 nmero de posiciones (NumPosiciones) pasados por parametro +a la posicion (Posicion) dada, en caso de ser negativo ser hacia arriba y positivo hacia +abajo +} +var + AuxOrden : Integer; + AuxID : Integer; + AField: TDAField; +begin + AField := DataTable.FindField(CAMPO_POSICION); + if not Assigned(AField) then + raise Exception.Create('Campo ' + CAMPO_POSICION + ' no encontrado (mover)'); + + AField := DataTable.FindField(CAMPO_ID); + if not Assigned(AField) then + raise Exception.Create('Campo ' + CAMPO_ID + ' no encontrado (mover)'); + + //Buscamos el elemento con la posicion pasada por parametro + DataTable.First; + if not DataTable.Locate(CAMPO_POSICION, 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 posicin 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 posicin 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/Utiles/ClassRegistry/uClassRegistryUtils.pas b/Source/Base/Utiles/ClassRegistry/uClassRegistryUtils.pas new file mode 100644 index 00000000..d7b679df --- /dev/null +++ b/Source/Base/Utiles/ClassRegistry/uClassRegistryUtils.pas @@ -0,0 +1,336 @@ +unit uClassRegistryUtils; + +interface + +uses + Classes, SysUtils, Forms, uGUIBase; + +type + IClassRegistry = Interface + ['{FD23C946-4103-4C67-9C3F-644B52826833}'] + procedure RegisterClass( aClass: TClass; const aDisplayname: String = ''); + procedure RegisterClasses( const aClasses: array of TClass; + const aDisplaynames: array of String ); + procedure UnRegisterClass( aClass: TClass ); + function FindClass( const aClassOrDisplayname: String ): Tclass; + function IsClassRegistered( aClass: TClass ): Boolean; overload; + function IsClassRegistered( const aDisplayname: String ): Boolean; overload; + procedure GetRegisteredClasses( aList: TStrings; aMinClass: TClass = nil); + function CreateObject( const aClassOrDisplayname: String ): TObject; + end; + + IComponentRegistry = Interface( IClassRegistry ) + ['{04BAA01F-9AF4-4E60-9922-641E127A35C2}'] + function CreateComponent( const aClassOrDisplayname: String; + aOwner:TComponent = nil ): TComponent; + end; + + IFormRegistry = Interface( IComponentRegistry ) + ['{28E3BF72-1378-4136-B1FB-027FBB8FE99B}'] + function CreateForm( const aClassOrDisplayname: String; + aOwner: TComponent = nil ): TForm; + end; + + IDataModuleRegistry = Interface( IComponentRegistry ) + ['{9D8D1D23-6A5C-4351-9393-093CD8B76788}'] + function CreateDatamodule( const aClassOrDisplayname: String; + aOwner: TComponent = nil ): TDatamodule; + end; + + IReportRegistry = Interface( IComponentRegistry ) + ['{49D3C8D5-8FEE-4F15-A6D2-51CB1DB29F8D}'] + function CreateReport( const aClassOrDisplayname: String; + aOwner: TComponent = nil ): TInterfacedObject; + end; + + TClassRegistry = class( TInterfacedObject, IClassRegistry ) + private + FList: TStringlist; + FMinAcceptableClass: TClass; + + function FindClassByClassname( const aClassname: String ): Tclass; + function FindClassByDisplayname( const aDisplayname: String ): TClass; + function IsClassAcceptable( aClass: TClass ): Boolean; + function GetClasses(index: integer): TClass; + function GetCount: Integer; + protected + procedure ValidateMinAcceptableClass(var aMinAcceptableClass: TClass ); virtual; + procedure RegisterClass( aClass: TClass; const aDisplayname: String = ''); + procedure RegisterClasses( const aClasses: array of TClass; + const aDisplaynames: array of String ); + procedure UnRegisterClass( aClass: TClass ); + function FindClass( const aClassOrDisplayname: String ): Tclass; + function IsClassRegistered( aClass: TClass ): Boolean; overload; + function IsClassRegistered( const aDisplayname: String ): Boolean; overload; + procedure GetRegisteredClasses( aList: TStrings; aMinClass: TClass = nil); + function CreateObject( const aClassOrDisplayname: String ): TObject; + property MinAcceptableClass: TClass read FMinAcceptableClass; + property List: TStringlist read FList; + property Count: Integer read GetCount; + property Classes[ index: integer ]: TClass read GetClasses; + public + constructor Create( minAcceptableClass: TClass = nil ); virtual; + destructor Destroy; override; + end; + + TComponentRegistry = class( TClassRegistry, IComponentRegistry ) + protected + procedure ValidateMinAcceptableClass(var aMinAcceptableClass: TClass ); override; + function CreateComponent( const aClassOrDisplayname: String; + aOwner: TComponent = nil ): TComponent; + end; + + TFormRegistry = class( TComponentRegistry, IFormRegistry ) + protected + procedure ValidateMinAcceptableClass(var aMinAcceptableClass: TClass ); override; + function CreateForm( const aClassOrDisplayname: String; + aOwner: TComponent = nil ): TForm; + end; + + TDataModuleRegistry = class( TComponentRegistry, IDataModuleRegistry ) + protected + procedure ValidateMinAcceptableClass(var aMinAcceptableClass: TClass); override; + function CreateDatamodule( const aClassOrDisplayname: String; + aOwner: TComponent = nil ): TDatamodule; + end; + + TReportRegistry = class( TComponentRegistry, IReportRegistry ) + protected + procedure ValidateMinAcceptableClass(var aMinAcceptableClass: TClass ); override; + function CreateReport( const aClassOrDisplayname: String; + aOwner: TComponent = nil ): TInterfacedObject; + end; + + EClassRegistryError = class( Exception ); + +implementation + +{ TClassRegistry } + +ResourceString + eClassnotFound = 'Class "%s" was not found in the registry.'; + +constructor TClassRegistry.Create(minAcceptableClass: TClass); +begin + inherited Create; + FList := Tstringlist.Create; + ValidateMinAcceptableClass( minAcceptableClass ); + FMinAcceptableClass := minAcceptableClass; +end; + +function TClassRegistry.CreateObject( + const aClassOrDisplayname: String): TObject; +begin + Result := FindClass( aClassOrDisplayname ).Create; +end; + +destructor TClassRegistry.Destroy; +begin + Flist.Free; + inherited; +end; + +function TClassRegistry.FindClass( + const aClassOrDisplayname: String): Tclass; +begin + Result := FindClassByDisplayname( aClassOrDisplayname ); + If not Assigned( Result ) Then + Result := FindClassByClassname( aClassOrDisplayname ); + If not Assigned( Result ) Then + raise EClassRegistryError.CreateFmt + ( eClassnotFound, [ aClassOrDisplayname ] ); +end; + +function TClassRegistry.FindClassByClassname( + const aClassname: String): Tclass; +var + i: Integer; +begin + for i:= 0 to count-1 do begin + Result := classes[i]; + If Result.ClassNameIs( aClassname ) Then + Exit; + end; + Result := nil; +end; + +function TClassRegistry.FindClassByDisplayname( + const aDisplayname: String): TClass; +var + i: Integer; +begin + i:= List.IndexOf( aDisplayname ); + If i >= 0 Then + Result := Classes[i] + Else + Result := nil; +end; + +function TClassRegistry.GetClasses(index: integer): TClass; +begin + Result := TClass( List.Objects[index] ); +end; + +function TClassRegistry.GetCount: Integer; +begin + Result := List.Count; +end; + +procedure TClassRegistry.GetRegisteredClasses(aList: TStrings; + aMinClass: TClass); +var + i: Integer; + aClass: TClass; +begin + Assert( Assigned( aList )); + aList.BeginUpdate; + try + aList.Clear; + If not Assigned( aMinClass ) Then + aList.Assign( List ) + else begin + For i:= 0 To Count-1 Do Begin + aClass := Classes[i]; + If aClass.InheritsFrom( aMinClass ) Then + aList.AddObject( List[i], TObject( aClass )); + end; + end; + finally + aList.EndUpdate + end; +end; + +function TClassRegistry.IsClassAcceptable(aClass: TClass): Boolean; +begin + Result := Assigned( aClass ) and + aClass.InheritsFrom( MinAcceptableClass ); +end; + +function TClassRegistry.IsClassRegistered(const aDisplayname: String): Boolean; +begin + Result := List.IndexOf(aDisplayname) >= 0; +end; + +function TClassRegistry.IsClassRegistered(aClass: TClass): Boolean; +begin + Result := List.IndexOfObject( TObject( aClass )) >= 0; +end; + +procedure TClassRegistry.RegisterClass(aClass: TClass; + const aDisplayname: String); +begin + Assert( Assigned( aClass ), 'Cannot register Nil class' ); + If aDisplayname = '' Then + RegisterClass( aClass, aClass.Classname ) + else begin + Assert( IsClassAcceptable( aClass ), + format('Cannot register %s since it does not inherit from %s', + [aclass.classname, MinAcceptableClass.classname] )); + Assert( not IsClassRegistered( aClass ), + Format('Class %s is already registered.', [aClass.Classname])); + List.AddObject( aDisplayname, TObject( aClass )); + end; +end; + +procedure TClassRegistry.RegisterClasses(const aClasses: array of TClass; + const aDisplaynames: array of String); +var + i: Integer; +begin + Assert( High( aClasses ) = High( aDisplaynames ), + 'Size of both parameter arrays has to be the same.' ); + for i:= Low( aClasses ) to High( aClasses ) do + RegisterClass( aClasses[i], aDisplaynames[i] ); +end; + +procedure TClassRegistry.UnRegisterClass(aClass: TClass); +var + i: Integer; +begin + i:= List.IndexOfObject( TObject( aClass )); + If i >= 0 Then + List.Delete( i ); + // does not consider attempt to unregister a class that is not + // registered as an error. +end; + +procedure TClassRegistry.ValidateMinAcceptableClass( + var aMinAcceptableClass: TClass); +begin + If not Assigned( aMinAcceptableClass ) Then + aMinAcceptableClass := TObject; +end; + +{ TComponentRegistry } + +function TComponentRegistry.CreateComponent( + const aClassOrDisplayname: String; aOwner: TComponent): TComponent; +var + aClass: TComponentClass; +begin + aClass := TComponentClass( FindClass( aClassOrDisplayname )); + Result := aClass.Create( aOwner ); +end; + +procedure TComponentRegistry.ValidateMinAcceptableClass( + var aMinAcceptableClass: TClass); +begin + inherited; + If not aMinAcceptableClass.InheritsFrom( TComponent ) + Then + aMinAcceptableClass := TComponent; +end; + +{ TFormRegistry } + +function TFormRegistry.CreateForm(const aClassOrDisplayname: String; + aOwner: TComponent): TForm; +begin + Result := CreateComponent( aClassOrDisplayname, aOwner ) As TForm; +end; + +procedure TFormRegistry.ValidateMinAcceptableClass( + var aMinAcceptableClass: TClass); +begin + inherited; + If not aMinAcceptableClass.InheritsFrom( TForm ) + Then + aMinAcceptableClass := TForm; +end; + +{ TDataModuleRegistry } + +function TDataModuleRegistry.CreateDatamodule( + const aClassOrDisplayname: String; aOwner: TComponent): TDatamodule; +begin + Result := CreateComponent( aClassOrDisplayname, aOwner ) As TDatamodule; +end; + +procedure TDataModuleRegistry.ValidateMinAcceptableClass( + var aMinAcceptableClass: TClass); +begin + inherited; + If not aMinAcceptableClass.InheritsFrom( TDatamodule ) + Then + aMinAcceptableClass := TDatamodule; +end; + +{ TReportRegistry } + +function TReportRegistry.CreateReport(const aClassOrDisplayname: String; + aOwner: TComponent): TInterfacedObject; +begin + Result := CreateObject( aClassOrDisplayname) As TInterfacedObject; +// Result := CreateComponent( aClassOrDisplayname, aOwner ) As TInterfacedObject; +end; + +procedure TReportRegistry.ValidateMinAcceptableClass( + var aMinAcceptableClass: TClass); +begin + inherited; + If not aMinAcceptableClass.InheritsFrom( TInterfacedObject ) + Then + aMinAcceptableClass := TInterfacedObject; +end; + +end. diff --git a/Source/Base/Utiles/ClassRegistry/uEditorRegistryUtils.pas b/Source/Base/Utiles/ClassRegistry/uEditorRegistryUtils.pas new file mode 100644 index 00000000..0dd7333c --- /dev/null +++ b/Source/Base/Utiles/ClassRegistry/uEditorRegistryUtils.pas @@ -0,0 +1,81 @@ +unit uEditorRegistryUtils; + +interface + +uses + Classes, Forms, uClassRegistryUtils, uCustomEditor; + +type +{ + IEditorRegistry = interface (IComponentRegistry) + 22F14B82-AC61-4987-847E-AF8513DE2A10 + function CreateEditor(const aClassOrDisplayname: String; + aOwner: TComponent = NIL): TCustomEditor; + end; + + TEditorRegistry = class(TComponentRegistry, IEditorRegistry) + protected + procedure ValidateMinAcceptableClass(var aMinAcceptableClass: TClass); override; + function CreateEditor(const aClassOrDisplayname: String; + aOwner: TComponent = nil): TCustomEditor; + end; +} + + IEditorRegistry = interface (IFormRegistry) + ['{F6AC050F-5547-4E1F-AA44-DA0D06EDA4D7}'] + function CreateEditor(const aClassOrDisplayname: String; + aOwner: TComponent = NIL): TForm; + end; + + TEditorRegistry = class(TFormRegistry, IEditorRegistry) + protected + function CreateEditor(const aClassOrDisplayname: String; + aOwner: TComponent = nil): TForm; + end; + +function CreateEditor(const AName: String; const IID: TGUID; out Intf): Boolean; + +var + EditorRegistry : IEditorRegistry; + +implementation + +uses + SysUtils, cxControls; + +function CreateEditor(const AName: String; const IID: TGUID; out Intf): Boolean; +begin + ShowHourglassCursor; + try + Result := Supports(EditorRegistry.CreateEditor(AName, Application), IID, Intf); + finally + HideHourglassCursor; + end; +end; + + +{ TEditorRegistry } + +function TEditorRegistry.CreateEditor(const aClassOrDisplayname: String; + aOwner: TComponent): TForm; +begin + if not Assigned(AOwner) then + AOwner := Application; + Result := CreateComponent( aClassOrDisplayname, aOwner ) as TForm; +end; + +{procedure TEditorRegistry.ValidateMinAcceptableClass( + var aMinAcceptableClass: TClass); +begin + inherited; + if not aMinAcceptableClass.InheritsFrom(TCustomEditor) then + aMinAcceptableClass := TCustomEditor; +end;} + +initialization + EditorRegistry := TEditorRegistry.Create; + +finalization + EditorRegistry := NIL; + +end. diff --git a/Source/Base/Utiles/ClassRegistry/uInformeRegistryUtils.pas b/Source/Base/Utiles/ClassRegistry/uInformeRegistryUtils.pas new file mode 100644 index 00000000..72b6e90a --- /dev/null +++ b/Source/Base/Utiles/ClassRegistry/uInformeRegistryUtils.pas @@ -0,0 +1,59 @@ +unit uInformeRegistryUtils; + +interface + +uses + Classes, Forms, uClassRegistryUtils; + +type + IInformeRegistry = interface (IReportRegistry) + ['{F6AC050F-5547-4E1F-AA44-DA0D06EDA4D7}'] + function CreateInforme(const aClassOrDisplayname: String; + aOwner: TComponent = NIL): TInterfacedObject; + end; + + TInformeRegistry = class(TReportRegistry, IInformeRegistry) + protected + function CreateInforme(const aClassOrDisplayname: String; + aOwner: TComponent = nil): TInterfacedObject; + end; + +function CreateInforme(const AName: String; const IID: TGUID; out Intf): Boolean; + +var + InformeRegistry : IInformeRegistry; + +implementation + +uses + SysUtils, cxControls; + +function CreateInforme(const AName: String; const IID: TGUID; out Intf): Boolean; +begin + ShowHourglassCursor; + try + Result := Supports(InformeRegistry.CreateInforme(AName, Application), IID, Intf); + finally + HideHourglassCursor; + end; +end; + + +{ TInformeRegistry } + +function TInformeRegistry.CreateInforme(const aClassOrDisplayname: String; + aOwner: TComponent): TInterfacedObject; +begin +{ if not Assigned(AOwner) then + AOwner := Application;} + Result := CreateObject( aClassOrDisplayname) as TInterfacedObject; +end; + + +initialization + InformeRegistry := TInformeRegistry.Create; + +finalization + InformeRegistry := NIL; + +end. diff --git a/Source/Base/Utiles/ClassRegistry/uViewRegistryUtils.pas b/Source/Base/Utiles/ClassRegistry/uViewRegistryUtils.pas new file mode 100644 index 00000000..458a6810 --- /dev/null +++ b/Source/Base/Utiles/ClassRegistry/uViewRegistryUtils.pas @@ -0,0 +1,50 @@ +unit uViewRegistryUtils; + +interface + +uses + Classes, Forms, uClassRegistryUtils, uCustomView; + +type + IViewRegistry = interface (IComponentRegistry) + ['{F49AE52F-47EC-42AF-8365-A09270E4B45D}'] + function CreateView(const aClassOrDisplayname: String; + aOwner: TComponent = nil): TCustomView; + end; + + + TViewRegistry = class(TComponentRegistry, IViewRegistry) + protected + procedure ValidateMinAcceptableClass(var aMinAcceptableClass: TClass); override; + function CreateView( const aClassOrDisplayname: String; + aOwner: TComponent = nil ): TCustomView; + end; + +var + ViewRegistry : IViewRegistry; + +implementation + +{ TViewRegistry } + +function TViewRegistry.CreateView(const aClassOrDisplayname: String; + aOwner: TComponent): TCustomView; +begin + Result := CreateComponent( aClassOrDisplayname, aOwner ) as TCustomView; +end; + +procedure TViewRegistry.ValidateMinAcceptableClass( + var aMinAcceptableClass: TClass); +begin + inherited; + if not aMinAcceptableClass.InheritsFrom(TCustomView) then + aMinAcceptableClass := TCustomView; +end; + +initialization + ViewRegistry := TViewRegistry.Create; + +finalization + ViewRegistry := NIL; + +end. diff --git a/Source/Base/Utiles/uCalculosUtils.pas b/Source/Base/Utiles/uCalculosUtils.pas new file mode 100644 index 00000000..b5eb6dea --- /dev/null +++ b/Source/Base/Utiles/uCalculosUtils.pas @@ -0,0 +1,153 @@ +unit uCalculosUtils; + +interface + +uses + uDADataTable, uDAInterfaces; + +const + CAMPO_ID = 'ID'; + CAMPO_POSICION = 'POSICION'; + CAMPO_TIPO = 'TIPO_DETALLE'; + CAMPO_ID_ARTICULOS = 'ID_ARTICULO'; + CAMPO_CONCEPTO = 'CONCEPTO'; + CAMPO_CANTIDAD = 'CANTIDAD'; + CAMPO_IMPORTE_UNIDAD = 'IMPORTE_UNIDAD'; + CAMPO_IMPORTE_TOTAL = 'IMPORTE_TOTAL'; + CAMPO_DESCUENTO = 'DESCUENTO'; + CAMPO_IMPORTE_PORTE = 'IMPORTE_PORTE'; + + function CalcularLineaConcepto (const ADataTable : TDADataTable): Double; + procedure ValidarCamposLineaConcepto(DataTable: TDADataTable); + + procedure DesglosarPorte(ImportePorte: Currency; ADetalles: IDAStronglyTypedDataTable); + function DarTotalPorte(ADetalles: IDAStronglyTypedDataTable): Double; + + +implementation + +uses + SysUtils, DB, Variants; + +function CalcularLineaConcepto (const ADataTable : TDADataTable): Double; +var + ImporteTotal : Double; +begin + ImporteTotal := 0; + + with ADataTable 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 ValidarCamposLineaConcepto(DataTable: TDADataTable); +var + AField: TDAField; +begin + //Validamos la existencia de todos los campos necesarios + AField := DataTable.FindField(CAMPO_DESCUENTO); + if not Assigned(AField) then + raise Exception.Create('Campo ' + CAMPO_DESCUENTO + ' no encontrado (validarCampos)'); + + + AField := DataTable.FindField(CAMPO_IMPORTE_PORTE); + if not Assigned(AField) then + raise Exception.Create('Campo ' + CAMPO_IMPORTE_PORTE + ' no encontrado (validarCampos)'); +end; + +procedure DesglosarPorte(ImportePorte: Currency; ADetalles: IDAStronglyTypedDataTable); +var + Unidades: Integer; + ImporteUnidad: Currency; + ImporteSobrante: Currency; + ABookmark : TBookmark; + +begin + + try + ABookmark := ADetalles.DataTable.GetBookMark; + ADetalles.DataTable.DisableControls; + ADetalles.DataTable.DisableEventHandlers; + + ADetalles.DataTable.First; + Unidades := 0; + while not ADetalles.DataTable.eof do + begin + if (ADetalles.DataTable.FieldByName(CAMPO_ID_ARTICULOS).AsInteger > 0) then + Unidades := Unidades + ADetalles.DataTable.FieldByName(CAMPO_CANTIDAD).AsInteger; + ADetalles.DataTable.Next; + end; + + if Unidades > 0 then + begin + ImporteUnidad := StrToCurr(FormatFloat('0000000000.00', (ImportePorte / Unidades))); + ImporteSobrante := ((ImportePorte / Unidades) - ImporteUnidad) * Unidades; + end; + + ADetalles.DataTable.First; + while not ADetalles.DataTable.eof do + begin + if (ADetalles.DataTable.FieldByName(CAMPO_ID_ARTICULOS).AsInteger > 0) then + begin + ADetalles.DataTable.Edit; + ADetalles.DataTable.FieldByName(CAMPO_IMPORTE_PORTE).AsCurrency := ImporteUnidad; + ADetalles.DataTable.Post; + end; + ADetalles.DataTable.Next; + end; + + ADetalles.DataTable.Edit; + ADetalles.DataTable.FieldByName(CAMPO_IMPORTE_PORTE).AsCurrency := ImporteUnidad + ImporteSobrante; + ADetalles.DataTable.Post; + + finally + ADetalles.DataTable.EnableEventHandlers; + ADetalles.DataTable.GotoBookmark(ABookmark); + ADetalles.DataTable.FreeBookmark(ABookmark); + ADetalles.DataTable.EnableControls; + end; +end; + +function DarTotalPorte(ADetalles: IDAStronglyTypedDataTable): Double; +var + ImporteTotal: Currency; + ABookmark : TBookmark; + +begin + try + ABookmark := ADetalles.DataTable.GetBookMark; + ADetalles.DataTable.DisableControls; + ADetalles.DataTable.DisableEventHandlers; + + ADetalles.DataTable.First; + ImporteTotal := 0; + while not ADetalles.DataTable.eof do + begin + if (ADetalles.DataTable.FieldByName(CAMPO_ID_ARTICULOS).AsInteger > 0) then + ImporteTotal := ImporteTotal + (ADetalles.DataTable.FieldByName(CAMPO_CANTIDAD).AsInteger * ADetalles.DataTable.FieldByName(CAMPO_IMPORTE_PORTE).AsFloat); + ADetalles.DataTable.Next; + end; + + finally + ADetalles.DataTable.EnableEventHandlers; + ADetalles.DataTable.GotoBookmark(ABookmark); + ADetalles.DataTable.FreeBookmark(ABookmark); + ADetalles.DataTable.EnableControls; + end; + + Result := ImporteTotal; +end; + + +end. diff --git a/Source/Base/Utiles/uDBSelectionListUtils.pas b/Source/Base/Utiles/uDBSelectionListUtils.pas new file mode 100644 index 00000000..af2a9cf5 --- /dev/null +++ b/Source/Base/Utiles/uDBSelectionListUtils.pas @@ -0,0 +1,194 @@ +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..610cafe4 --- /dev/null +++ b/Source/Base/Utiles/uDataTableUtils.pas @@ -0,0 +1,668 @@ +unit uDataTableUtils; + +interface + +uses + uDACDSDataTable, uDADataTable, uDAInterfaces, uDADelta, uDAMemDataTable; + +const + ID_NULO = -9000; + ID_TODOS = -9001; + ID_PRIMERO = -9002; + +type + +TModoDuplicarRegistros = (mdrTodos, mdrActual, mdrSeleccionados); + +function SetFieldNull(ATarget: TDADataTable; const FieldName: String): Boolean; + +procedure ConectarTabla (ATarget: TDADataTable); +procedure DesconectarTabla (ATarget: TDADataTable); + +procedure CopyDataTableDA5(ASource : TDADataTable; ATarget: TDADataTable; + const OnlySelectedRows : Boolean = False); + +procedure CopyDataTableDA3(ASource : TDADataTable; ATarget : TDADataTable; + const OnlySelectedRows : Boolean = False); + +procedure CloneDataTable(const ASource : TDACDSDataTable; + var ATarget : TDACDSDataTable; + RemoteUpdate: Boolean = True); overload; + +function CloneDataTable(const ASource : TDAMemDataTable; + RemoteUpdate: Boolean = True): TDAMemDataTable; overload; + + +procedure DuplicarRegistro(ASource : TDADataTable; ATarget : TDADataTable; + Const WithKey: Boolean = False); +procedure DuplicarRegistros(ASource : TDADataTable; ATarget : TDADataTable; + AModo : TModoDuplicarRegistros; APermitirRepetidos: Boolean = True; + Const WithDeltas: Boolean = True; Const WithKey: Boolean = False); + +procedure DeleteAllTable(const ADataTable : TDADataTable); + +function DeltaValuesAreDifferent(const aDelta : IDADelta): boolean; + +procedure EnlazarMaestroDetalle(AMasterDataSource : TDADataSource; + ADetail : IDAStronglyTypedDataTable); + +function DataTableModified (const ADataTable : TDADataTable): Boolean; + +procedure SetDataTableReadOnly(ADataTable: TDADataTable; const value: Boolean); + + +implementation + +uses + Classes, DB, uDAClasses, SysUtils, uDABINAdapter, uROTypes, cxControls, + Dialogs, Variants, uDBSelectionListUtils, uROClasses, uDADataStreamer, uDABin2DataStreamer; + + +procedure CopyDataTableDA5(ASource : TDADataTable; + ATarget: TDADataTable; + const OnlySelectedRows : Boolean); +var + AStream : Binary; + AStream2 : Binary; + AFilter : String; + AFiltered : Boolean; + AObj : ISeleccionable; + i : Integer; +begin + AFilter := ''; + AFiltered := False; + + if not Assigned(ASource) then + raise Exception.Create ('No se ha asignado la tabla de origen (CopyDataTable)'); + + if not Assigned(ATarget) then + raise Exception.Create ('No se ha asignado la tabla de destino (CopyDataTable)'); + + if not ATarget.Active then + ATarget.Active := True; + + 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; + + if not ASource.Active then + ASource.Open; + + AStream := Binary.Create; + DesconectarTabla(ATarget); + try + ASource.SaveToStream(AStream); + AStream2 := AStream.Clone; + +// ShowMessage(AStream.ToReadableString); + ATarget.LoadFromStream(AStream2); ///->>>>>>>>>>>>>>>>>>>>>>>>>>ERRORRRR + finally + FreeAndNil(AStream); + ConectarTabla(ATarget); + // 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; + end; +end; + + + +function SetFieldNull(ATarget: TDADataTable; const FieldName: String): Boolean; +begin + Result := False; + if Assigned(ATarget) then + begin + try + ATarget.FieldByName(FieldName).AsVariant := Null; + Result := True; + except + on E: Exception do + Result := False; + end; + end; +end; + +{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; + + +function CloneDataTable(const ASource : TDAMemDataTable; + RemoteUpdate: Boolean = True): TDAMemDataTable; +var + i : Integer; + ATarget : TDAMemDataTable; +begin + if not Assigned(ASource) then + raise Exception.Create ('No se ha asignado la tabla de origen (CloneDataTable)'); + + ATarget := TDAMemDataTable.Create(NIL); + with ATarget do + begin + + { ATENCIN !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + -------------------------------------------------------------------- + DA5 tiene un fallo en el cual las tablas definidas como detalle no + tienen asociados los eventos internos before... y after... por lo + que los campos AutoInc no funcionan (no pone el -1, -2...). + La forma de arreglarlo es llamar a DisableEventHandlers/EnableEventHandlers + que realiza la asociacin de los eventos. + } + ATarget.DisableEventHandlers; // <--- INDISPENSABLE!!!!!!!!!!!!!!!!!!!! + + + try + if not Assigned(ASource.RemoteDataAdapter) then + raise Exception.Create('No est asignado RemoteDataAdapter (' + ASource.Name + ')'); + + LogicalName := ASource.LogicalName; + CustomAttributes.Assign(ASource.CustomAttributes); + Fields.AssignFieldCollection(ASource.Fields); // o tambin ATarget.LoadSchema; + Params.AssignParamCollection(ASource.Params); + + RemoteDataAdapter := ASource.RemoteDataAdapter; + + Randomize; + Name := ASource.Name + '_' + IntToStr(Random(MAXINT)); + + BusinessRulesID := ASource.BusinessRulesID; + + with MasterParamsMappings do + for i := 0 to ASource.MasterParamsMappings.Count - 1 do + Add(ASource.MasterParamsMappings.Strings[i]); + + with MasterRequestMappings do + for i := 0 to ASource.MasterRequestMappings.Count - 1 do + Add(ASource.MasterRequestMappings.Strings[i]); + + MasterMappingMode := ASource.MasterMappingMode; + + MasterFields := ASource.MasterFields; + MasterOptions := ASource.MasterOptions; + + DetailFields := ASource.DetailFields; + DetailOptions := ASource.DetailOptions; + + RemoteUpdatesOptions := ASource.RemoteUpdatesOptions; + StreamingOptions := ASource.StreamingOptions; + RemoteFetchEnabled := ASource.RemoteFetchEnabled; + finally + ATarget.EnableEventHandlers; // <--- INDISPENSABLE!!!!!!!!!!!!!!!!!!!!!!!!! + end; + end; + + if not RemoteUpdate then + begin + ATarget.LogChanges := False; + ATarget.RemoteFetchEnabled := False; + end; + + Result := ATarget; +end; + + +procedure CloneDataTable(const ASource : TDACDSDataTable; + var ATarget : TDACDSDataTable; RemoteUpdate: Boolean); +var + i : Integer; +begin + with ATarget do + begin + // ****** Inicio migracin DA 5 + {RemoteService := ASource.GetRemoteService; + Adapter := ASource.GetAdapter;} + + if not Assigned(ASource.RemoteDataAdapter) then + raise Exception.Create('No est asignado RemoteDataAdapter (' + ASource.Name + ')'); + + RemoteDataAdapter.Assign(ASource.RemoteDataAdapter); + // ****** Fin migracin DA 5 + + 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 + // ****** Inicio migracin DA 5 + { + 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; + } + // ****** Fin migracin DA 5 + ATarget.Fields.AssignFieldCollection(ASource.Fields); // o tambin ATarget.LoadSchema; + end; + + // ****** Inicio migracin DA 5 + { + 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; + } + // ****** Fin migracin DA 5 + + with MasterParamsMappings do + for i := 0 to ASource.MasterParamsMappings.Count - 1 do + Add(ASource.MasterParamsMappings.Strings[i]); + + with MasterRequestMappings do + for i := 0 to ASource.MasterRequestMappings.Count - 1 do + Add(ASource.MasterRequestMappings.Strings[i]); + + MasterMappingMode := ASource.MasterMappingMode; + + MasterFields := ASource.MasterFields; + MasterOptions := ASource.MasterOptions; + + DetailFields := ASource.DetailFields; + DetailOptions := ASource.DetailOptions; + + RemoteUpdatesOptions := ASource.RemoteUpdatesOptions; + StreamingOptions := ASource.StreamingOptions; + RemoteFetchEnabled := ASource.RemoteFetchEnabled; + end; + + if not RemoteUpdate then + begin + ATarget.LogChanges := False; + ATarget.RemoteFetchEnabled := False; + end; +end; + +function DeltaValuesAreDifferent(const aDelta : IDADelta): boolean; +var + i, x : integer; + OldNewAreDifferent: boolean; +begin + OldNewAreDifferent := FALSE; + for i := 0 to (aDelta.Count-1) do + begin + for x := 0 to (aDelta.LoggedFieldCount-1) do + begin + OldNewAreDifferent := (aDelta.Changes[i].OldValues[x] <> aDelta.Changes[i].NewValues[x]); + + if OldNewAreDifferent then + Break; // Abandon iteration at the first difference between old and new. + end; + + if OldNewAreDifferent then + Break; // Abandon iteration at the first difference between old and new. + end; + result := OldNewAreDifferent; +end; + + +procedure CopyDataTableDA3(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.WriteDataset(DABin, ASource, [woRows]); + 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 relacin 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 insercin, 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 insercin, y luego actue como un update + if not WithDeltas then + ConectarTabla(ATarget); + end; +end; + + +procedure EnlazarMaestroDetalle(AMasterDataSource : TDADataSource; + ADetail : IDAStronglyTypedDataTable); +begin + if Assigned(ADetail) then + begin + // MUY IMPORTANTE !!!!!!!!!!!!!!!!!! + //ADetail.DataTable.DisableEventHandlers; + try + ADetail.DataTable.MasterSource := AMasterDataSource; + finally + { Hay que activar los eventos porque dejan de funcionar + las reglas de negocio al establecer la relacin + maestro-detalle. (Fallo de Data Abstract 3) } + //ADetail.DataTable.EnableEventHandlers; + end; + end; +end; + +procedure DesconectarTabla (ATarget: TDADataTable); +begin + ATarget.RemoteFetchEnabled := False; + ATarget.LogChanges := False; +end; + +procedure ConectarTabla (ATarget: TDADataTable); +begin + ATarget.RemoteFetchEnabled := True; + ATarget.LogChanges := True; +end; + +procedure SetDataTableReadOnly(ADataTable: TDADataTable; const value: Boolean); +var + dtDetails : TList; + i : integer; + +begin + if Assigned(ADataTable) + and (ADataTable.ReadOnly <> Value) then + begin + ADataTable.ReadOnly := Value; + dtDetails := ADataTable.GetDetailDataTables; + for i := 0 to dtDetails.Count - 1 do + TDADataTable(dtDetails.Items[i]).ReadOnly := ADataTable.ReadOnly; + end; +end; + +end. diff --git a/Source/Base/Utiles/uDateUtils.pas b/Source/Base/Utiles/uDateUtils.pas new file mode 100644 index 00000000..ac53f0a0 --- /dev/null +++ b/Source/Base/Utiles/uDateUtils.pas @@ -0,0 +1,41 @@ +unit uDateUtils; + +interface + +uses + SysUtils, Classes; + +function DarFechaPrimerDia(Date: TDateTime): TDateTime; +function DarFechaUltimoDia(Date: TDateTime): TDateTime; +function EsFechaVacia(AFecha : TDateTime): Boolean; + +implementation + +const + FECHA_NULA = -700000; + +function EsFechaVacia(AFecha : TDateTime): Boolean; +begin + Result := (AFecha = FECHA_NULA) or (AFecha = 0); +end; + +function DarFechaPrimerDia(Date: TDateTime): TDateTime; +var + Year, Month, Day: Word; +begin + DecodeDate(Date, Year, Month, Day); + Result := EncodeDate(Year, Month, 1); +end; + +function DarFechaUltimoDia(Date: TDateTime): TDateTime; +var + Year, Month, Day: Word; +begin + DecodeDate(Date, Year, Month, Day); + // (if Month < 12 then inc(Month) + // else begin Month := 1; inc(Year) end; + // Result := EncodeDate(Year, Month, 1) - 1; + Result := EncodeDate(Year, Month, + MonthDays[IsLeapYear(Year), Month]); +end; +end. diff --git a/Source/Base/Utiles/uDialogUtils.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('Informacin', AHeader, AMessage, tdiInformation); + try + CreateCustomButtons([TDlgButton_CERRAR], ADialog.CustomButtons); + ADialog.Execute; + finally + FreeAndNIL(ADialog); + end; +end; + +procedure ShowInfoMessage(const AMessage : String); +begin + ShowInfoMessage('', AMessage); +end; + +procedure ShowWarningMessage(const AHeader : String; const AMessage : String); overload; +var + ADialog : TJSDialog; +begin + ADialog := CreateTaskDialog('Atencin!', AHeader, AMessage, tdiWarning); + try + CreateCustomButtons([TDlgButton_CERRAR], ADialog.CustomButtons); + ADialog.Execute; + finally + FreeAndNIL(ADialog); + end; +end; + +procedure ShowWarningMessage(const AMessage : String); +begin + ShowWarningMessage('', AMessage); +end; + +procedure ShowErrorMessage(const AHeader : String; const AMessage : String); +var + ADialog : TJSDialog; +begin + ADialog := CreateTaskDialog(Application.Title, AHeader, AMessage, tdiError); + try + CreateCustomButtons([TDlgButton_CERRAR], ADialog.CustomButtons); + ADialog.Execute; + finally + FreeAndNIL(ADialog); + end; +end; + +procedure ShowErrorMessage(const AHeader : String; const AMessage : String; AException: Exception); +var + ADialog : TJSDialog; +begin + ADialog := CreateTaskDialog(Application.Title, AHeader, AMessage, tdiError); + try + CreateCustomButtons([TDlgButton_CERRAR], ADialog.CustomButtons); + ADialog.Expando.Lines.Text := #13#13 + AException.Message; + ADialog.Expando.ShowText := 'Mostrar informacin sobre el error'; + ADialog.Expando.HideText := 'No mostrar informacin sobre el error'; + ADialog.Expando.Visible := True; + ADialog.Execute; + finally + FreeAndNIL(ADialog); + end; +end; + +function ShowConfirmMessage(const AHeader : String; + const AMessage : String) : TModalResult; +begin + Result := ShowConfirmMessage(Application.Title, AHeader, + AMessage, [TDlgButton_SI, TDlgButton_NO]); +end; + +function ShowConfirmMessage(const ATitle : String; + const AHeader : String; + const AMessage : String; + const AButtonSet: TDlgButtonSet) : TModalResult; +var + ADialog : TJSDialog; +begin + ADialog := CreateTaskDialog(Application.Title, AHeader, AMessage, tdiConfirmation); + try + CreateCustomButtons(AButtonSet, ADialog.CustomButtons); + Result := ADialog.Execute; + finally + FreeAndNIL(ADialog); + end; +end; + +end. + diff --git a/Source/Base/Utiles/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 slo podr ser copiado, distribuido y utilizado, + en su totalidad o en parte, con el permiso escrito de Rodax Software, o de + acuerdo con los trminos y condiciones establecidas en el acuerdo/contrato + bajo el que se suministra. + ----------------------------------------------------------------------------- + Web: www.rodax-software.com +=============================================================================== + Fecha primera versin: 17-05-2005 + Versin actual: 1.0.0 + Fecha versin actual: 17-05-2005 +=============================================================================== + Modificaciones: + + Fecha Comentarios + --------------------------------------------------------------------------- +=============================================================================== +} +unit uInfoProjectUtils; + +interface + +uses + Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs; + +type + TInfoProject = class(TComponent) + private + { Private declarations } + FFVIBuff: Pointer; + FFVISize: DWord; + FHandle: DWord; + FFileName: String; + FLanguage: Word; + FCodePage: Word; + FLanguageCodePage: String; + FCompanyName: String; + FFileDescription: String; + FFileVersion: String; + FInternalName: String; + FLegalCopyright: String; + FLegalTradeMarks: String; + FOriginalFileName: String; + FProductName: String; + FProductVersion: String; + FComments: String; + procedure ReadFixedFileInfo; + function GetLangCPage: String; + function GetStringFileInfo(S: String): String; + procedure SetFileName(const Value: String); + protected + { Protected declarations } + public + { Public declarations } + constructor Create(AOwner: TComponent); override; + function LanguageStr(Language: Word): String; + property FileName: String read FFileName write SetFileName; + property Language: Word read FLanguage; + property CodePage: Word read FCodePage; + property LanguageCodePage: String read FLanguageCodePage; + property CompanyName: String read FCompanyName; + property FileDescription: String read FFileDescription; + property FileVersion: String read FFileVersion; + property InternalName: String read FInternalName; + property LegalCopyright: String read FLegalCopyright; + property LegalTradeMarks: String read FLegalTradeMarks; + property OriginalFileName: String read FOriginalFileName; + property ProductName: String read FProductName; + property ProductVersion: String read FProductVersion; + property Comments: String read FComments; + published + { Published declarations } + end; + +implementation + +{ TInfoProject } + +constructor TInfoProject.Create(AOwner: TComponent); +begin { of TInfoProject.Create } + inherited Create(AOwner); + + { build current EXE filename } + FileName := ParamStr(0); +end; { of TInfoProject.Create } + +procedure TInfoProject.ReadFixedFileInfo; +begin { of TInfoProject.ReadFixedFileInfo } + { determine size of buffer required } + FFVISize := GetFileVersionInfoSize(PChar(FileName), FHandle); + + { create buffer } + GetMem(FFVIBuff, FFVISize); + try + + { load buffer } + GetFileVersionInfo(PChar(FileName), FHandle, FFVISize, FFVIBuff); + + { extract the language/codepage info } + FLanguageCodePage := GetLangCPage; + + { extract the other info } + FCompanyName := GetStringFileInfo('CompanyName'); + FFileDescription := GetStringFileInfo('FileDescription'); + FFileVersion := GetStringFileInfo('FileVersion'); + FInternalName := GetStringFileInfo('InternalName'); + FLegalCopyright := GetStringFileInfo('LegalCopyright'); + FLegalTradeMarks := GetStringFileInfo('LegalTradeMarks'); + FOriginalFileName := GetStringFileInfo('OriginalFileName'); + FProductName := GetStringFileInfo('ProductName'); + FProductVersion := GetStringFileInfo('ProductVersion'); + FComments := GetStringFileInfo('Comments'); + + finally + { dispose buffer } + FreeMem(FFVIBuff, FFVISize); + end; +end; { of TInfoProject.ReadFixedFileInfo } + +function TInfoProject.LanguageStr(Language: Word): String; +var + P: array[0..255] of Char; + Len: Word; +begin { of TInfoProject.LanguageStr } + Len := VerLanguageName(Language, P, SizeOf(P)); + if (Len > SizeOf(P)) then + begin + { if this occurs then the P buffer is too small } + { so we will truncate the returned string } + Len := SizeOf(P); + end; + SetString(Result, P, Len); +end; { of TInfoProject.LanguageStr } + +function TInfoProject.GetLangCPage: String; +var + SearchString: String; + FVILang: array of Byte; + Len: DWORD; +begin { of TInfoProject.GetLangCPage } + Result := '00000000'; + if (FFVIBuff <> NIL) then + begin + SearchString := '\VarFileInfo\Translation'; + if VerQueryValue(FFVIBuff, PChar(SearchString), + Pointer(FVILang), Len) then + begin + FLanguage := FVILang[0] + FVILang[1]*$100; + FCodePage := FVILang[2] + FVILang[3]*$100; + Result := IntToHex(FLanguage, 4) + IntToHex(FCodePage, 4); + end; + end; +end; { of TInfoProject.GetLangCPage } + +function TInfoProject.GetStringFileInfo(S: String): String; +var + SearchString: String; + P: PChar; + Len: DWORD; +begin { of TInfoProject.GetStringFileInfo } + Result := ''; + if (FFVIBuff <> NIL) then + begin + SearchString := '\StringFileInfo\'+FLanguageCodePage+'\'+S; + if VerQueryValue(FFVIBuff, PChar(SearchString), Pointer(P), Len) then + begin + { coded with StrLen to ditch the trailing #0 character } + SetString(Result, P, StrLen(P)); + end; + end; +end; { of TInfoProject.GetStringFileInfo } + +procedure TInfoProject.SetFileName(const Value: String); +begin { of TInfoProject.SetFileName } + FFileName := ExpandUNCFileName(Value); + + { read fileinfo from this new file } + ReadFixedFileInfo; + +end; { of TInfoProject.SetFileName } + +end. + diff --git a/Source/Base/Utiles/uIntegerListUtils.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/uMD5.pas b/Source/Base/Utiles/uMD5.pas new file mode 100644 index 00000000..9f13d52a --- /dev/null +++ b/Source/Base/Utiles/uMD5.pas @@ -0,0 +1,435 @@ +{******************************************************************} +{ MD5 Hashsum Evaluation Unit For Borland Delphi } +{ } +{ Copyright 2002 by Dimka Maslov } +{ E-mail: mail@endimus.com, } +{ Web-site: http://www.endimus.com } +{ } +{ Derived from the RSA Data Security, Inc. } +{ MD5 Message-Digest Algorithm described in RFC 1321 } +{ http://www.faqs.org/rfcs/rfc1321.html } +{******************************************************************} + +unit uMD5; + +interface + +uses Windows, SysUtils, Classes; + +type +{ The TMD5Digest record is the type of results of + the MD5 hashsum evaluation functions. The contents + of a record may be used as four 32-bit integer values + or as an array of 16 bytes } + PMD5Digest = ^TMD5Digest; + TMD5Digest = record + case Integer of + 0: (A, B, C, D: LongInt); + 1: (v: array [0..15] of Byte); + end; + +{ The MD5String function evaluates the MD5 hashsum for + a string. The S parameter specifies a string to + evaluate hashsum } +function MD5String(const S: string): TMD5Digest; + +{ The MD5File function evaluates the MD5 hashsum for + a file. The FileName parameter specifies the name + of a file to evaluate hashsum } +function MD5File(const FileName: string): TMD5Digest; + +{ The MD5Stream function evaluates the MD5 hashsum for + a stream. The Stream parameters specifies the + TStream descendant class object to evaluate hashsum } +function MD5Stream(const Stream: TStream): TMD5Digest; + +{ The MD5Buffer function evaluates the MD5 hashsum for + any memory buffer. The Buffer parameters specifies a + buffer to evaluate hashsum. The Size parameter specifies + the size (in bytes) of a buffer } +function MD5Buffer(const Buffer; Size: Integer): TMD5Digest; + +{ The MD5DigestToStr function converts the result of + a hashsum evaluation function into a string of + hexadecimal digits } +function MD5DigestToStr(const Digest: TMD5Digest): string; + +{ The MD5DigestCompare function compares two + TMD5Digest record variables. This function returns + TRUE if parameters are equal or FALSE otherwise } +function MD5DigestCompare(const Digest1, Digest2: TMD5Digest): Boolean; + +implementation + +{ +Copyright (C) 1991-2, RSA Data Security, Inc. Created 1991. All +rights reserved. + +License to copy and use this software is granted provided that it +is identified as the "RSA Data Security, Inc. MD5 Message-Digest +Algorithm" in all material mentioning or referencing this software +or this function. + +License is also granted to make and use derivative works provided +that such works are identified as "derived from the RSA Data +Security, Inc. MD5 Message-Digest Algorithm" in all material +mentioning or referencing the derived work. + +RSA Data Security, Inc. makes no representations concerning either +the merchantability of this software or the suitability of this +software for any particular purpose. It is provided "as is" +without express or implied warranty of any kind. + +These notices must be retained in any copies of any part of this +documentation and/or software. +} + + +type + UINT4 = LongWord; + + PArray4UINT4 = ^TArray4UINT4; + TArray4UINT4 = array [0..3] of UINT4; + PArray2UINT4 = ^TArray2UINT4; + TArray2UINT4 = array [0..1] of UINT4; + PArray16Byte = ^TArray16Byte; + TArray16Byte = array [0..15] of Byte; + PArray64Byte = ^TArray64Byte; + TArray64Byte = array [0..63] of Byte; + + PByteArray = ^TByteArray; + TByteArray = array [0..0] of Byte; + + PUINT4Array = ^TUINT4Array; + TUINT4Array = array [0..0] of UINT4; + + PMD5Context = ^TMD5Context; + TMD5Context = record + state: TArray4UINT4; + count: TArray2UINT4; + buffer: TArray64Byte; + end; + +const + S11 = 7; + S12 = 12; + S13 = 17; + S14 = 22; + S21 = 5; + S22 = 9; + S23 = 14; + S24 = 20; + S31 = 4; + S32 = 11; + S33 = 16; + S34 = 23; + S41 = 6; + S42 = 10; + S43 = 15; + S44 = 21; + +var + Padding : TArray64Byte = + ($80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); + + +function _F(x, y, z: UINT4): UINT4; +begin + Result := (((x) and (y)) or ((not x) and (z))); +end; + +function _G(x, y, z: UINT4): UINT4; +begin + Result := (((x) and (z)) or ((y) and (not z))); +end; + +function _H(x, y, z: UINT4): UINT4; +begin + Result := ((x) xor (y) xor (z)); +end; + +function _I(x, y, z: UINT4): UINT4; +begin + Result := ((y) xor ((x) or ( not z))); +end; + +function ROTATE_LEFT(x, n: UINT4): UINT4; +begin + Result := (((x) shl (n)) or ((x) shr (32-(n)))); +end; + +procedure FF(var a: UINT4; b, c, d, x, s, ac: UINT4); +begin + a := a + _F(b, c, d) + x + ac; + a := ROTATE_LEFT (a, s); + a := a + b; +end; + +procedure GG(var a: UINT4; b, c, d, x, s, ac: UINT4); +begin + a := a + _G(b, c, d) + x + ac; + a := ROTATE_LEFT(a, s); + a := a + b; +end; + +procedure HH(var a: UINT4; b, c, d, x, s, ac: UINT4); +begin + a := a + _H(b, c, d) + x + ac; + a := ROTATE_LEFT(a, s); + a := a + b; +end; + +procedure II(var a: UINT4; b, c, d, x, s, ac: UINT4); +begin + a := a + _I(b, c, d) + x + ac; + a := ROTATE_LEFT(a, s); + a := a + b; +end; + +procedure MD5Encode(Output: PByteArray; Input: PUINT4Array; Len: LongWord); +var + i, j: LongWord; +begin + j:=0; + i:=0; + while j < Len do begin + output[j] := Byte(input[i] and $ff); + output[j+1] := Byte((input[i] shr 8) and $ff); + output[j+2] := Byte((input[i] shr 16) and $ff); + output[j+3] := Byte((input[i] shr 24) and $ff); + Inc(j, 4); + Inc(i); + end; +end; + +procedure MD5Decode(Output: PUINT4Array; Input: PByteArray; Len: LongWord); +var + i, j: LongWord; +begin + j:=0; + i:=0; + while j < Len do begin + Output[i] := UINT4(input[j]) or (UINT4(input[j+1]) shl 8) or + (UINT4(input[j+2]) shl 16) or ( UINT4(input[j+3]) shl 24); + Inc(j, 4); + Inc(i); + end; +end; + +procedure MD5_memcpy(Output: PByteArray; Input: PByteArray; Len: LongWord); +begin + Move(Input^, Output^, Len); +end; + +procedure MD5_memset(Output: PByteArray; Value: Integer; Len: LongWord); +begin + FillChar(Output^, Len, Byte(Value)); +end; + +procedure MD5Transform(State: PArray4UINT4; Buffer: PArray64Byte); +var + a, b, c, d: UINT4; + x : array[0..15] of UINT4; +begin + a:=State[0]; b:=State[1]; c:=State[2]; d:=State[3]; + MD5Decode(PUINT4Array(@x), PByteArray(Buffer), 64); + + FF (a, b, c, d, x[ 0], S11, $d76aa478); + FF (d, a, b, c, x[ 1], S12, $e8c7b756); + FF (c, d, a, b, x[ 2], S13, $242070db); + FF (b, c, d, a, x[ 3], S14, $c1bdceee); + FF (a, b, c, d, x[ 4], S11, $f57c0faf); + FF (d, a, b, c, x[ 5], S12, $4787c62a); + FF (c, d, a, b, x[ 6], S13, $a8304613); + FF (b, c, d, a, x[ 7], S14, $fd469501); + FF (a, b, c, d, x[ 8], S11, $698098d8); + FF (d, a, b, c, x[ 9], S12, $8b44f7af); + FF (c, d, a, b, x[10], S13, $ffff5bb1); + FF (b, c, d, a, x[11], S14, $895cd7be); + FF (a, b, c, d, x[12], S11, $6b901122); + FF (d, a, b, c, x[13], S12, $fd987193); + FF (c, d, a, b, x[14], S13, $a679438e); + FF (b, c, d, a, x[15], S14, $49b40821); + + GG (a, b, c, d, x[ 1], S21, $f61e2562); + GG (d, a, b, c, x[ 6], S22, $c040b340); + GG (c, d, a, b, x[11], S23, $265e5a51); + GG (b, c, d, a, x[ 0], S24, $e9b6c7aa); + GG (a, b, c, d, x[ 5], S21, $d62f105d); + GG (d, a, b, c, x[10], S22, $2441453); + GG (c, d, a, b, x[15], S23, $d8a1e681); + GG (b, c, d, a, x[ 4], S24, $e7d3fbc8); + GG (a, b, c, d, x[ 9], S21, $21e1cde6); + GG (d, a, b, c, x[14], S22, $c33707d6); + GG (c, d, a, b, x[ 3], S23, $f4d50d87); + + GG (b, c, d, a, x[ 8], S24, $455a14ed); + GG (a, b, c, d, x[13], S21, $a9e3e905); + GG (d, a, b, c, x[ 2], S22, $fcefa3f8); + GG (c, d, a, b, x[ 7], S23, $676f02d9); + GG (b, c, d, a, x[12], S24, $8d2a4c8a); + + HH (a, b, c, d, x[ 5], S31, $fffa3942); + HH (d, a, b, c, x[ 8], S32, $8771f681); + HH (c, d, a, b, x[11], S33, $6d9d6122); + HH (b, c, d, a, x[14], S34, $fde5380c); + HH (a, b, c, d, x[ 1], S31, $a4beea44); + HH (d, a, b, c, x[ 4], S32, $4bdecfa9); + HH (c, d, a, b, x[ 7], S33, $f6bb4b60); + HH (b, c, d, a, x[10], S34, $bebfbc70); + HH (a, b, c, d, x[13], S31, $289b7ec6); + HH (d, a, b, c, x[ 0], S32, $eaa127fa); + HH (c, d, a, b, x[ 3], S33, $d4ef3085); + HH (b, c, d, a, x[ 6], S34, $4881d05); + HH (a, b, c, d, x[ 9], S31, $d9d4d039); + HH (d, a, b, c, x[12], S32, $e6db99e5); + HH (c, d, a, b, x[15], S33, $1fa27cf8); + HH (b, c, d, a, x[ 2], S34, $c4ac5665); + + II (a, b, c, d, x[ 0], S41, $f4292244); + II (d, a, b, c, x[ 7], S42, $432aff97); + II (c, d, a, b, x[14], S43, $ab9423a7); + II (b, c, d, a, x[ 5], S44, $fc93a039); + II (a, b, c, d, x[12], S41, $655b59c3); + II (d, a, b, c, x[ 3], S42, $8f0ccc92); + II (c, d, a, b, x[10], S43, $ffeff47d); + II (b, c, d, a, x[ 1], S44, $85845dd1); + II (a, b, c, d, x[ 8], S41, $6fa87e4f); + II (d, a, b, c, x[15], S42, $fe2ce6e0); + II (c, d, a, b, x[ 6], S43, $a3014314); + II (b, c, d, a, x[13], S44, $4e0811a1); + II (a, b, c, d, x[ 4], S41, $f7537e82); + II (d, a, b, c, x[11], S42, $bd3af235); + II (c, d, a, b, x[ 2], S43, $2ad7d2bb); + II (b, c, d, a, x[ 9], S44, $eb86d391); + + Inc(State[0], a); + Inc(State[1], b); + Inc(State[2], c); + Inc(State[3], d); + + MD5_memset (PByteArray(@x), 0, SizeOf (x)); +end; + + +procedure MD5Init(var Context: TMD5Context); +begin + FillChar(Context, SizeOf(Context), 0); + Context.state[0] := $67452301; + Context.state[1] := $efcdab89; + Context.state[2] := $98badcfe; + Context.state[3] := $10325476; +end; + +procedure MD5Update(var Context: TMD5Context; Input: PByteArray; InputLen: LongWord); +var + i, index, partLen: LongWord; + +begin + index := LongWord( (context.count[0] shr 3) and $3F); + Inc(Context.count[0], UINT4(InputLen) shl 3); + if Context.count[0] < UINT4(InputLen) shl 3 then Inc(Context.count[1]); + Inc(Context.count[1], UINT4(InputLen) shr 29); + partLen := 64 - index; + if inputLen >= partLen then begin + MD5_memcpy(PByteArray(@Context.buffer[index]), Input, PartLen); + MD5Transform(@Context.state, @Context.buffer); + i := partLen; + while i + 63 < inputLen do begin + MD5Transform(@Context.state, PArray64Byte(@Input[i])); + Inc(i, 64); + end; + index := 0; + end else i:=0; + MD5_memcpy(PByteArray(@Context.buffer[index]), PByteArray(@Input[i]), inputLen - i); +end; + + +procedure MD5Final(var Digest: TMD5Digest; var Context: TMD5Context); +var + bits: array [0..7] of Byte; + index, padLen: LongWord; +begin + MD5Encode(PByteArray(@bits), PUINT4Array(@Context.count), 8); + index := LongWord( (Context.count[0] shr 3) and $3F); + if index < 56 then padLen := 56 - index else padLen := 120 - index; + MD5Update(Context, PByteArray(@PADDING), padLen); + MD5Update(Context, PByteArray(@Bits), 8); + MD5Encode(PByteArray(@Digest), PUINT4Array(@Context.state), 16); + MD5_memset(PByteArray(@Context), 0, SizeOf(Context)); +end; + +function MD5DigestToStr(const Digest: TMD5Digest): string; +var + i: Integer; +begin + Result:=''; + for i:=0 to 15 do Result:=Result+IntToHex(Digest.v[i], 2); +end; + +function MD5String(const S: string): TMD5Digest; +begin + Result:=MD5Buffer(PChar(S)^, Length(S)); +end; + +function MD5File(const FileName: string): TMD5Digest; +var + F: TFileStream; +begin + F:=TFileStream.Create(FileName, fmOpenRead); + try + Result:=MD5Stream(F); + finally + F.Free; + end; +end; + +function MD5Stream(const Stream: TStream): TMD5Digest; +var + Context: TMD5Context; + Buffer: array[0..4095] of Byte; + Size: Integer; + ReadBytes : Integer; + TotalBytes : Integer; + SavePos: Integer; +begin + MD5Init(Context); + Size:=Stream.Size; + SavePos:=Stream.Position; + TotalBytes:=0; + try + Stream.Seek(0, soFromBeginning); + repeat + ReadBytes:=Stream.Read(Buffer, SizeOf(Buffer)); + Inc(TotalBytes, ReadBytes); + MD5Update(Context, @Buffer, ReadBytes); + until (ReadBytes = 0) or (TotalBytes = Size); + finally + Stream.Seek(SavePos, soFromBeginning); + end; + MD5Final(Result, Context); +end; + +function MD5Buffer(const Buffer; Size: Integer): TMD5Digest; +var + Context: TMD5Context; +begin + MD5Init(Context); + MD5Update(Context, PByteArray(@Buffer), Size); + MD5Final(Result, Context); +end; + +function MD5DigestCompare(const Digest1, Digest2: TMD5Digest): Boolean; +begin + Result:=False; + if Digest1.A <> Digest2.A then Exit; + if Digest1.B <> Digest2.B then Exit; + if Digest1.C <> Digest2.C then Exit; + if Digest1.D <> Digest2.D then Exit; + Result:=True; +end; + + +end. diff --git a/Source/Base/Utiles/uNumUtils.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 slo podr ser copiado, distribuido y utilizado, + en su totalidad o en parte, con el permiso escrito de Rodax Software, o de + acuerdo con los trminos y condiciones establecidas en el acuerdo/contrato + bajo el que se suministra. + ----------------------------------------------------------------------------- + Web: www.rodax-software.com +=============================================================================== + Fecha primera versin: 01-11-2002 + Versin actual: 1.0.0 + Fecha versin actual: 01-11-2002 +=============================================================================== + Modificaciones: + + Fecha Comentarios + --------------------------------------------------------------------------- +=============================================================================== +} + +unit uNumUtils; + +interface + +Function IntToLetras(Numero:LongInt):String; +Function xxIntToLetras(Valor:LongInt):String; +Function CifraToLetras(Cifra: Double): String; + +implementation + +uses SysUtils, Dialogs; +// SysUtils, Windows, Dialogs, Messages, Classes, Graphics, Controls, Forms, StdCtrls; + +Function xxIntToLetras(Valor:LongInt):String; +const + aUnitat : array[1..15] of String = ('UNO','DOS','TRES','CUATRO','CINCO','SEIS', + 'SIETE','OCHO','NUEVE','DIEZ','ONCE','DOCE', + 'TRECE','CATORCE','QUINCE'); + aCentena: array[1..9] of String = ('CIENTO','DOSCIENTOS','TRESCIENTOS', + 'CUATROCIENTOS','QUINIENTOS','SEISCIENTOS', + 'SETECIENTOS','OCHOCIENTOS','NOVECIENTOS'); + aDecena : array[1..9] of String = ('DIECI','VEINTI','TREINTA','CUARENTA','CINCUENTA', + 'SESENTA','SETENTA','OCHENTA','NOVENTA'); +var + Centena, Decena, Unitat, Doble: LongInt; + Linea: String; +begin + if valor=100 then Linea:=' CIEN ' {Maximo Valor sera 999, ejemplo con 123} + else begin + Linea:=''; + Centena := Valor div 100; {1 } + Doble := Valor - (Centena*100); {23} + Decena := (Valor div 10) - (Centena*10); {2 } + Unitat := Valor - (Decena*10) - (Centena*100); {3 } + + if Centena>0 then Linea:=Linea+Acentena[centena]+' '; + + if Doble>0 then begin + if Doble=20 then Linea:=Linea+' VEINTE ' + else begin + if doble<16 then Linea:=Linea+Aunitat[Doble] + else begin + Linea:=Linea+' '+Adecena[Decena]; + if (Decena>2) and (Unitat<>0) then Linea:=Linea+' Y '; + if Unitat>0 then Linea:=Linea+Aunitat[Unitat]; + end; + end; + end; + + end; + Result:=Linea; +end; + +Function IntToLetras(Numero:LongInt):String; +var + Millions,mils,unitats: Longint; + Linea : String; +begin + {Inicializamos el string que contendra las letras segun el valor numerico} + if numero=0 then Linea:='Cero' + else if numero<0 then Linea:='MENOS ' + else if numero>0 then Linea:=''; + + {Determinamos el N de millones, miles, i unidades de numero en positivo} + Numero := Abs(Numero); + millions := numero div 1000000; + mils := (numero - (millions*1000000)) div 1000; + unitats := numero - ((millions*1000000)+(mils*1000)); + + {Vamos poniendot en el string las cadenas de los numeros(llamando a subfuncion)} + if millions=1 then Linea:= Linea + ' UN MILLON ' + else if millions>1 then Linea := Linea + xxIntToLetras(millions) + ' MILLONES '; + + if mils =1 then Linea:= Linea + ' MIL ' + else if mils>1 then Linea := Linea + xxIntToLetras(mils) + ' MIL '; + + if unitats >0 then Linea:=Linea+xxIntToLetras(unitats); + + IntToLetras:=Linea; +end; + +Function CifraToLetras(Cifra: Double): String; +var + Entero: LongInt; + Decimal: LongInt; + Cadena: String; +begin + Cadena := ''; + Entero := Trunc(Cifra); + Decimal := Trunc(((Cifra - Entero) * 100)); + + if (Decimal > 0) then + Cadena := ' CON ' + IntToLetras(Decimal) + ' CNTIMOS'; + + if (Entero > 0) then + Cadena := IntToLetras(Entero) + ' EUROS ' + Cadena; + + Result := UpperCase(Cadena); +end; + +end. diff --git a/Source/Base/Utiles/uPasswordUtils.pas b/Source/Base/Utiles/uPasswordUtils.pas new file mode 100644 index 00000000..13cae927 --- /dev/null +++ b/Source/Base/Utiles/uPasswordUtils.pas @@ -0,0 +1,22 @@ +unit uPasswordUtils; + +interface + +function EncriptarPassword(const password : string): String; + +implementation + +uses + uMD5, SysUtils; + +function EncriptarPassword(const password : string): String; +var + t : TMD5Digest; + pass_encriptada : String; +begin + t := MD5String(password); + pass_encriptada := MD5DigestToStr(t); + Result := LowerCase(pass_encriptada); +end; + +end. diff --git a/Source/Base/Utiles/uSistemaFunc.pas b/Source/Base/Utiles/uSistemaFunc.pas new file mode 100644 index 00000000..f47dc7de --- /dev/null +++ b/Source/Base/Utiles/uSistemaFunc.pas @@ -0,0 +1,241 @@ +{ +=============================================================================== + Copyright () 2002. Rodax Software. +=============================================================================== + Los contenidos de este fichero son propiedad de Rodax Software titular del + copyright. Este fichero slo podr ser copiado, distribuido y utilizado, + en su totalidad o en parte, con el permiso escrito de Rodax Software, o de + acuerdo con los trminos y condiciones establecidas en el acuerdo/contrato + bajo el que se suministra. + ----------------------------------------------------------------------------- + Web: www.rodax-software.com +=============================================================================== + Fecha primera versin: 01-11-2002 + Versin actual: 1.0.0 + Fecha versin actual: 01-11-2002 +=============================================================================== + Modificaciones: + + Fecha Comentarios + --------------------------------------------------------------------------- +=============================================================================== +} + +unit uSistemaFunc; + +interface + +{ 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, JclFileUtils, + 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 + Obj : TJclFileVersionInfo; +begin + Obj := TJclFileVersionInfo.Create(Application.ExeName); + try + Result := Obj.FileVersion; + finally + FreeAndNil(Obj); + end; +end; + +function DarFechaFichero (Executable : String) : String; +var + FileTime, LocalFileTime : TFileTime; + SystemTime : TSystemTime; + hFile : Integer; +begin + hFile := FileOpen(Executable, fmShareDenyNone); + try + if hFile <> -1 then + begin + Windows.GetFileTime( hFile, nil, nil, @FileTime ); // ftLasWriteTime + // Change the file time to local time + FileTimeToLocalFileTime( FileTime, LocalFileTime ); + if FileTimeToSystemTime(LocalFileTime, SystemTime) then + Result := DateTimeToStr(SystemTimeToDateTime(SystemTime)); + end; // if hFile <> 0 + finally + FileClose( hFile ); + end; // try +end; + + +procedure CopiarFichero(const Origen, Destino: string); +begin + CopyFile(PChar(Origen), PChar(Destino), FALSE); +end; + +procedure DoDelTree(TheDir : String); + Var + Search : TSearchRec; + rec : word; +Begin + If TheDir[Length(TheDir)] <> '\' Then TheDir := TheDir + '\'; + rec := SysUtils.FindFirst(TheDir + '*.*', faAnyFile, Search); + While rec = 0 Do + Begin + If Search.Name[1] <> '.' Then + Begin +// Is this a directory? + If (Search.Attr And faDirectory) = faDirectory Then + Begin +// If so, lets call DelTree again using this new +// directory as the TheDir parameter. + DoDelTree(TheDir + Search.Name); +// Not that all of the files are gone from this directoy, +// we can remove the directory. + RmDir(TheDir + Search.Name); + End + Else + Begin +// We found a file. +// Now lets reset its attributes so we don't have any problems +// deleting them. + SysUtils.FileSetAttr(TheDir + Search.Name, 0); + SysUtils.DeleteFile(TheDir + Search.Name); + Application.ProcessMessages; + End; + End; + rec := SysUtils.FindNext(Search); + End; + SysUtils.FindClose(Search); +End; + +procedure Deltree(DirToKill : String; KillChoosenDir : Boolean); +begin +{$I-} + DoDelTree(DirToKill); +// If we want to delete the choosen directory. + If KillChoosenDir Then + RmDir(DirToKill); + //modified + if IOResult <> 0 then + ShowMessage('Could not delete ' + DirToKill); +//{$I} +end; + + +end. + \ No newline at end of file diff --git a/Source/Base/schBase_Intf.pas b/Source/Base/schBase_Intf.pas new file mode 100644 index 00000000..329bef9a --- /dev/null +++ b/Source/Base/schBase_Intf.pas @@ -0,0 +1,32 @@ +unit schBase_Intf; + +interface + +uses + uDADataTable, Windows; + +type + { TIntfObjectDADataTableRules } + TIntfObjectDADataTableRules = class(TDADataTableRules) + protected + function _AddRef: Integer; override; + function _Release: Integer; override; + end; + +implementation + + { TIntfObjectDADataTableRules } + +function TIntfObjectDADataTableRules._AddRef: Integer; +begin + Result := InterlockedIncrement(FRefCount); +end; + +function TIntfObjectDADataTableRules._Release: Integer; +begin + Result := InterlockedDecrement(FRefCount); + if Result = 0 then + Destroy; +end; + +end. diff --git a/Source/Base/uDMBase.dfm b/Source/Base/uDMBase.dfm new file mode 100644 index 00000000..71da85e0 --- /dev/null +++ b/Source/Base/uDMBase.dfm @@ -0,0 +1,1627 @@ +object dmBase: TdmBase + OldCreateOrder = True + OnCreate = DAClientDataModuleCreate + OnDestroy = DataModuleDestroy + Height = 153 + Width = 270 + 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 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 = 184 + Top = 16 + end + object JvLogFile: TJvLogFile + Left = 184 + Top = 80 + end +end diff --git a/Source/Base/uDMBase.pas b/Source/Base/uDMBase.pas new file mode 100644 index 00000000..b8120f14 --- /dev/null +++ b/Source/Base/uDMBase.pas @@ -0,0 +1,135 @@ +unit uDMBase; + +interface + +uses + Controls, SyncObjs, PngImageList, JvComponent, JvNavigationPane, TBXSwitcher, + TBXOffice2003Theme, Classes, ImgList, + DataAbstract4_Intf, uDADataTable, JvAppStorage, JvAppRegistryStorage, cxintl, + JvComponentBase, cxIntlPrintSys3, JvLogFile; + +type + TdmBase = class(TDataModule) + SmallImages: TPngImageList; + StyleManager: TJvNavPaneStyleManager; + TBXSwitcher: TTBXSwitcher; + cxIntl: TcxIntl; + cxIntlPrintSys31: TcxIntlPrintSys3; + JvLogFile: TJvLogFile; + procedure DAClientDataModuleCreate(Sender: TObject); + procedure DataModuleDestroy(Sender: TObject); + private + FOnThemeChange: TNotifyEvent; + FEscribirLog : TCriticalSection; + procedure IniciarLog; + procedure DetenerLog; + procedure InitStyleManager; + procedure OnTBXThemeChange(Sender: TObject); + procedure LeerConfiguracion; + public + procedure EscribirLog(const AMensaje : String); + procedure SalvarConfiguracion; + property OnThemeChange: TNotifyEvent read FOnThemeChange write + FOnThemeChange; + end; + +var + dmBase: TdmBase = nil; + +implementation + +{$R *.DFM} + +uses + uDataModuleConexion, Dialogs, TBX, TBXThemes, Forms, Windows, + JclFileUtils, cxControls, SysUtils, uDataModuleConfiguracion; + +{ +*********************************** TdmBase ************************************ +} +procedure TdmBase.DAClientDataModuleCreate(Sender: TObject); +begin + IniciarLog; + + TBXSwitcher.OnThemeChange := OnTBXThemeChange; + TBXSetTheme('Office2003'); + + LeerConfiguracion; +end; + +procedure TdmBase.IniciarLog; +begin + FEscribirLog := TCriticalSection.Create; + + JvLogFile.Active := False; + JvLogFile.FileName := ExtractFilePath(Application.ExeName) + 'ClientLog.txt'; + JvLogFile.AutoSave := True; + JvLogFile.Active := True; + JvLogFile.Clear; +end; + +procedure TdmBase.InitStyleManager; +begin + if not USE_THEMES then + begin + TBXSwitcher.EnableXPStyles := False; + StyleManager.Theme := nptStandard; + end + else begin + TBXSwitcher.EnableXPStyles := True; + with StyleManager do + begin + if CurrentTheme is TTBXOffice2003Theme then + begin + case GetOffice2003Scheme of + osBlue : Theme := nptXPBlue; + osMetallic : Theme := nptXPSilver; + osGreen : Theme := nptXPOlive; + else + Theme := nptStandard; + end; + end; + end; + end; +end; + + +procedure TdmBase.LeerConfiguracion; +begin + dmConfiguracion.LeerConfiguracion; +end; + +procedure TdmBase.OnTBXThemeChange(Sender: TObject); +begin + InitStyleManager; + + if Assigned(FOnThemeChange) then + FOnThemeChange(Sender); +end; + +procedure TdmBase.SalvarConfiguracion; +begin + dmConfiguracion.SalvarConfiguracion; +end; + +procedure TdmBase.DataModuleDestroy(Sender: TObject); +begin + DetenerLog; +end; + +procedure TdmBase.DetenerLog; +begin + FreeAndNIL(FEscribirLog); +end; + +procedure TdmBase.EscribirLog(const AMensaje: String); +begin + FEscribirLog.Acquire; + try + JvLogFile.Add(AMensaje); + finally + FEscribirLog.Release; + end; +end; + +end. diff --git a/Source/Base/uDataModuleBase.dfm b/Source/Base/uDataModuleBase.dfm new file mode 100644 index 00000000..2c4cf308 --- /dev/null +++ b/Source/Base/uDataModuleBase.dfm @@ -0,0 +1,5 @@ +object DataModuleBase: TDataModuleBase + OldCreateOrder = True + Height = 240 + Width = 275 +end diff --git a/Source/Base/uDataModuleBase.pas b/Source/Base/uDataModuleBase.pas new file mode 100644 index 00000000..eb1c3176 --- /dev/null +++ b/Source/Base/uDataModuleBase.pas @@ -0,0 +1,51 @@ +unit uDataModuleBase; + +interface + +uses + Classes; + +type + TDataModuleBase = class(TDataModule) + private + FRefCount: Integer; + protected + function QueryInterface(const IID: TGUID; out Obj): HResult; override; stdcall; + function _AddRef: Integer; stdcall; + function _Release: Integer; stdcall; + + public + property RefCount: integer read fRefCount write fRefCount; + + end; + +implementation + + +{$R *.DFM} + +// Set an implicit refcount so that refcounting +// during construction won't destroy the object. + +function TDataModuleBase.QueryInterface( const IID: TGUID; out Obj): HResult; +begin + if GetInterface(IID, Obj) + then Result := 0 + else Result := E_NOINTERFACE; +end; + +function TDataModuleBase._AddRef: Integer; +begin + Inc(fRefCount); + Result := fRefCount; +end; + +function TDataModuleBase._Release: Integer; +begin + Dec(fRefCount); + Result := fRefCount; + if fRefCount = 0 then Destroy; +end; + + +end. diff --git a/Source/Cliente/Actualizacion/uActualizacion.dfm b/Source/Cliente/Actualizacion/uActualizacion.dfm new file mode 100644 index 00000000..a264311c --- /dev/null +++ b/Source/Cliente/Actualizacion/uActualizacion.dfm @@ -0,0 +1,272 @@ +object fActualizacion: TfActualizacion + Left = 447 + Top = 316 + Caption = 'Configuraci'#243'n' + ClientHeight = 340 + ClientWidth = 354 + Color = clBtnFace + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'MS Sans Serif' + Font.Style = [] + OldCreateOrder = False + Position = poOwnerFormCenter + OnActivate = FormActivate + DesignSize = ( + 354 + 340) + PixelsPerInch = 96 + TextHeight = 13 + object Panel2: TPanel + Left = 0 + Top = 306 + Width = 354 + Height = 34 + Align = alBottom + BevelOuter = bvNone + ParentColor = True + TabOrder = 0 + object OKBtn: TButton + Left = 190 + Top = 2 + Width = 75 + Height = 25 + Caption = '&Aceptar' + Default = True + ModalResult = 1 + TabOrder = 0 + OnClick = OKBtnClick + end + object CancelBtn: TButton + Left = 270 + Top = 2 + Width = 75 + Height = 25 + Cancel = True + Caption = '&Cancelar' + ModalResult = 2 + TabOrder = 1 + end + end + object PageControl1: TPageControl + Left = 8 + Top = 8 + Width = 337 + Height = 289 + ActivePage = TabSheet1 + Anchors = [akLeft, akTop, akRight, akBottom] + TabOrder = 1 + object TabSheet1: TTabSheet + Caption = 'Configuraci'#243'n' + object GroupBox1: TGroupBox + Left = 7 + Top = 6 + Width = 313 + Height = 242 + Caption = 'Configuraci'#243'n de acceso' + TabOrder = 0 + object Label2: TLabel + Left = 32 + Top = 115 + Width = 259 + Height = 26 + Margins.Bottom = 0 + Caption = + 'Para poder descargar actualizaciones de FactuGES desde Internet ' + + 'debe introducir su usuario y contrase'#241'a:' + WordWrap = True + end + object Label3: TLabel + Left = 41 + Top = 180 + Width = 39 + Height = 13 + Margins.Bottom = 0 + Caption = 'Usuario:' + end + object Label4: TLabel + Left = 23 + Top = 205 + Width = 57 + Height = 13 + Margins.Bottom = 0 + Caption = 'Contrase'#241'a:' + end + object bDirectorio: TSpeedButton + Left = 272 + Top = 48 + Width = 23 + Height = 22 + Caption = '...' + OnClick = bDirectorioClick + end + object Label6: TLabel + Left = 32 + Top = 155 + Width = 48 + Height = 13 + Margins.Bottom = 0 + Caption = 'Direcci'#243'n:' + end + object edUsuario: TEdit + Left = 87 + Top = 176 + Width = 208 + Height = 21 + TabOrder = 0 + end + object edPassword: TEdit + Left = 87 + Top = 201 + Width = 208 + Height = 21 + PasswordChar = '*' + TabOrder = 1 + end + object edRutaLan: TEdit + Left = 32 + Top = 48 + Width = 241 + Height = 21 + ReadOnly = True + TabOrder = 2 + end + object rbInternet: TRadioButton + Left = 16 + Top = 96 + Width = 257 + Height = 17 + Caption = 'Actualizaci'#243'n por Internet' + TabOrder = 3 + OnClick = Action1Update + end + object rbLan: TRadioButton + Left = 16 + Top = 24 + Width = 265 + Height = 17 + Caption = 'Actualizaci'#243'n por red local' + TabOrder = 4 + OnClick = Action1Update + end + object edLocation: TEdit + Left = 87 + Top = 151 + Width = 208 + Height = 21 + TabOrder = 5 + end + end + end + object TabSheet2: TTabSheet + Caption = 'Opciones avanzadas' + ImageIndex = 1 + object GroupBox2: TGroupBox + Left = 8 + Top = 7 + Width = 313 + Height = 242 + Caption = 'Opciones avanzadas' + TabOrder = 0 + object Label1: TLabel + Left = 16 + Top = 19 + Width = 282 + Height = 13 + Margins.Bottom = 0 + Caption = 'Por favor, s'#243'lo modificar si se sabe lo que se est'#225' haciendo.' + WordWrap = True + end + object Label5: TLabel + Left = 16 + Top = 52 + Width = 177 + Height = 13 + Margins.Bottom = 0 + Caption = 'Nombre del archivo de configuraci'#243'n:' + end + object Label7: TLabel + Left = 200 + Top = 76 + Width = 90 + Height = 13 + Margins.Bottom = 0 + Caption = 'p.e: versionlocal.ini' + end + object edFicheroConfig: TEdit + Left = 16 + Top = 72 + Width = 177 + Height = 21 + TabOrder = 0 + end + end + end + end + object JvAppRegistryStorage1: TJvAppRegistryStorage + StorageOptions.BooleanStringTrueValues = 'TRUE, YES, Y' + StorageOptions.BooleanStringFalseValues = 'FALSE, NO, N' + StorageOptions.BooleanAsString = False + RegRoot = hkLocalMachine + Root = 'Software\FactuGES\Update' + SubStorages = <> + Left = 326 + end + object JvFormStorage1: TJvFormStorage + Active = False + AppStorage = JvAppRegistryStorage1 + AppStoragePath = '\' + Options = [] + StoredProps.Strings = ( + 'edPassword.Text' + 'edUsuario.Text' + 'edRutaLan.Text' + 'rbInternet.Checked' + 'rbLan.Checked' + 'edFicheroConfig.Text' + 'edLocation.Text') + StoredValues = < + item + Name = 'TipoActualizacion' + Value = '' + OnSave = JvFormStorage1StoredValues0Save + end> + Left = 296 + end + object ActionList1: TActionList + Left = 242 + Top = 2 + object Action1: TAction + Caption = 'Action1' + OnUpdate = Action1Update + end + object Action2: TAction + Caption = 'Action2' + end + end + object JvBrowseForFolderDialog1: TJvBrowseForFolderDialog + Options = [odOnlyDirectory, odStatusAvailable, odNewDialogStyle] + Title = 'Ruta de las actualizaciones' + Left = 268 + Top = 1 + end + object JvProgramVersionCheck1: TJvProgramVersionCheck + CheckFrequency = 0 + LocalDirectory = 'update' + LocalVersionInfoFileName = 'versioninfo.ini' + LocationNetwork = JvProgramVersionNetworkLocation1 + LocationType = pvltHTTP + UserOptions = [uoLocalDirectory, uoAllowedReleaseType, uoLocationType, uoLocationNetwork, uoLocationHTTP] + Left = 176 + Top = 48 + end + object JvProgramVersionNetworkLocation1: TJvProgramVersionNetworkLocation + Left = 208 + Top = 48 + end + object JvProgramVersionHTTPLocation1: TJvProgramVersionHTTPLocation + Left = 232 + Top = 48 + end +end diff --git a/Source/Cliente/Actualizacion/uActualizacion.pas b/Source/Cliente/Actualizacion/uActualizacion.pas new file mode 100644 index 00000000..2001f0a5 --- /dev/null +++ b/Source/Cliente/Actualizacion/uActualizacion.pas @@ -0,0 +1,182 @@ +{ +=============================================================================== + Copyright () 2005. Rodax Software. +=============================================================================== + Los contenidos de este fichero son propiedad de Rodax Software titular del + copyright. Este fichero slo podr ser copiado, distribuido y utilizado, + en su totalidad o en parte, con el permiso escrito de Rodax Software, o de + acuerdo con los trminos y condiciones establecidas en el acuerdo/contrato + bajo el que se suministra. + ----------------------------------------------------------------------------- + Web: www.rodax-software.com +=============================================================================== + Fecha primera versin: 17-05-2005 + Versin actual: 1.0.0 + Fecha versin actual: 17-05-2005 +=============================================================================== + Modificaciones: + + Fecha Comentarios + --------------------------------------------------------------------------- +=============================================================================== +} + +unit uActualizacion; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, StdCtrls, ExtCtrls, ComCtrls, JvComponent, JvAppStorage, + JvAppRegistryStorage, JvFormPlacement, JvProgramVersionCheck, JvPropertyStore, + JvBaseDlg, JvBrowseFolder, ActnList, JvComponentBase, Buttons, uInfoProjectUtils; + +type + TfActualizacion = class(TForm) + Panel2: TPanel; + OKBtn: TButton; + CancelBtn: TButton; + PageControl1: TPageControl; + TabSheet1: TTabSheet; + GroupBox1: TGroupBox; + Label2: TLabel; + edUsuario: TEdit; + Label3: TLabel; + edPassword: TEdit; + Label4: TLabel; + JvAppRegistryStorage1: TJvAppRegistryStorage; + JvFormStorage1: TJvFormStorage; + edRutaLan: TEdit; + bDirectorio: TSpeedButton; + rbInternet: TRadioButton; + rbLan: TRadioButton; + ActionList1: TActionList; + Action1: TAction; + Action2: TAction; + TabSheet2: TTabSheet; + GroupBox2: TGroupBox; + Label1: TLabel; + Label5: TLabel; + edFicheroConfig: TEdit; + JvBrowseForFolderDialog1: TJvBrowseForFolderDialog; + JvProgramVersionCheck1: TJvProgramVersionCheck; + JvProgramVersionNetworkLocation1: TJvProgramVersionNetworkLocation; + Label6: TLabel; + edLocation: TEdit; + Label7: TLabel; + procedure bDirectorioClick(Sender: TObject); + procedure Action1Update(Sender: TObject); + procedure FormActivate(Sender: TObject); + procedure OKBtnClick(Sender: TObject); + procedure JvFormStorage1StoredValues0Save(Sender: TJvStoredValue; + var AValue: Variant); + private + InfoProject : TInfoProject; + public + { Public declarations } + function HayConfiguracion: Boolean; + procedure Actualizar; + function darVersion: String; + end; + +var + fActualizacion: TfActualizacion; + +implementation + +{$R *.dfm} + +uses + JclFileUtils; + +procedure TfActualizacion.bDirectorioClick(Sender: TObject); +begin + if Length(edRutaLan.Text) > 0 then + JvBrowseForFolderDialog1.Directory := edRutaLan.Text; + JvBrowseForFolderDialog1.Execute; + if DirectoryExists(JvBrowseForFolderDialog1.Directory) then + edRutaLan.Text := JvBrowseForFolderDialog1.Directory + '\' + else begin + ShowMessage('Directorio no vlido'); + bDirectorio.Click; + end; +end; + +procedure TfActualizacion.Action1Update(Sender: TObject); +begin + edRutaLan.Enabled := rbLan.Checked; + bDirectorio.Enabled := rbLan.Checked; + edLocation.Enabled := rbInternet.Checked; + edUsuario.Enabled := rbInternet.Checked; + edPassword.Enabled := rbInternet.Checked; +end; + +procedure TfActualizacion.FormActivate(Sender: TObject); +begin + JvFormStorage1.RestoreFormPlacement; + PageControl1.TabIndex := 0; +end; + +procedure TfActualizacion.OKBtnClick(Sender: TObject); +begin + JvFormStorage1.SaveFormPlacement; +end; + +procedure TfActualizacion.Actualizar; +begin + JvFormStorage1.RestoreFormPlacement; + + if rbLan.Checked then + begin + JvProgramVersionCheck1.LocationType := pvltNetwork; + with JvProgramVersionNetworkLocation1 do + begin + VersionInfoLocationPathList.Clear; + VersionInfoLocationPathList.Add(edRutaLan.Text); + VersionInfoFileName := edFicheroConfig.Text; + end; + end + else begin + {JvProgramVersionCheck1.LocationType := pvltHTTP; + with JvProgramVersionHTTPLocationIndy1 do + begin + VersionInfoFileName := edFicheroConfig.Text; + VersionInfoLocationPathList.Clear; + VersionInfoLocationPathList.Add(edLocation.Text); + UserName := edUsuario.Text; + Password := edPassword.Text; + end;} + end; + + JvProgramVersionCheck1.LocalVersionInfoFileName := 'versionlocal.ini';//edFicheroConfig.Text; + JvProgramVersionCheck1.Execute; +end; + +procedure TfActualizacion.JvFormStorage1StoredValues0Save( + Sender: TJvStoredValue; var AValue: Variant); +begin + if rbInternet.Checked then + AValue := 'INTERNET' + else + AValue := 'LAN'; +end; + +function TfActualizacion.darVersion: String; +begin + InfoProject := TInfoProject.Create(Self); + try + Result := InfoProject.FileVersion; + finally + FreeAndNil(InfoProject); + end; +end; + +function TfActualizacion.HayConfiguracion: Boolean; +begin + // Cargar la configuracin desde el registro. + JvFormStorage1.RestoreFormPlacement; + + Result := (rbLan.Checked) or (rbInternet.Checked); +end; + +end. diff --git a/Source/Cliente/Cliente_Group.bdsgroup b/Source/Cliente/Cliente_Group.bdsgroup new file mode 100644 index 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/FactuGES.bdsproj b/Source/Cliente/FactuGES.bdsproj new file mode 100644 index 00000000..48e333ed --- /dev/null +++ b/Source/Cliente/FactuGES.bdsproj @@ -0,0 +1,682 @@ + + + + + + + + + + + + FactuGES.dpr + + + 7.0 + + + 8 + 0 + 1 + 1 + 0 + 0 + 1 + 1 + 1 + 0 + 0 + 1 + 0 + 1 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 1 + 1 + 1 + 1 + 1 + True + True + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + False + False + False + True + True + True + True + True + True + + + + 3 + 0 + False + 1 + False + False + False + 16384 + 1048576 + 4194304 + + + + ..\..\Output\Debug\Cliente + .\ + .\ + .\ + ..\Lib;..\Modulos\Lib + PluginSDK_D10R;GUISDK_D10;DataAbstract_D10;Base;GUIBase;Usuarios;Contactos_plugin;Empresas_plugin;Empresas_controller;Empresas_model;rtl + _VER6;EUREKALOG;EUREKALOG_VER6 + T:\Codigo (Luis Leon)\Source\Modulos\Pedidos de cliente\Controller\ + True + + + + + + False + + + True + False + + + + $00000000 + C:\Archivos de programa\Borland\Delphi7\Bin\ + + + True + False + 2 + 2 + 2 + 0 + False + False + False + False + False + 3082 + 1252 + + + Rodax Software S.L. + + 2.2.2.0 + FactuGES + + + + FactuGES + 2.1.4 + + + File c:\archivos de programa\borland\delphi10\Bin\dclIntraweb_80_100.bpl not found + File c:\archivos de programa\borland\delphi10\Bin\dclnet100.bpl not found + File c:\archivos de programa\borland\delphi10\Bin\dclsoap100.bpl not found + File c:\archivos de programa\borland\delphi10\Bin\dclie100.bpl not found + + + + diff --git a/Source/Cliente/FactuGES.dpr b/Source/Cliente/FactuGES.dpr new file mode 100644 index 00000000..ce8466be --- /dev/null +++ b/Source/Cliente/FactuGES.dpr @@ -0,0 +1,38 @@ +program FactuGES; + +uses + Forms, + Windows, + SysUtils, + uFactuGES_App, + Dialogs, + uPantallaPrincipal in 'uPantallaPrincipal.pas' {fPantallaPrincipal}, + uMenuUtils in 'Utiles\uMenuUtils.pas', + uSplash in 'uSplash.pas' {SplashScreen}, + uAcercaDe in 'uAcercaDe.pas', + uNavPaneController in 'uNavPaneController.pas', + uNavPaneUtils in 'Utiles\uNavPaneUtils.pas', + uMainMenuController in 'uMainMenuController.pas', + uClienteUtils in 'Utiles\uClienteUtils.pas', + uBootStrap in 'uBootStrap.pas'; + +{$R *.res} + +begin + Application.Initialize; + Application.ShowMainForm := False; + + + //ReportMemoryLeaksOnShutdown := True; + + // Fallo en Delphi 2007!!! + // Tengo que ponerlo a false porque si no el formulario principal no se puede poner por encima de los formularios hijos. + // Luego, en el formulario principal cambio los paramtros para obligar a que aparezca el icono en la barra de tareas. + + uBootStrap.Initialize; + uBootStrap.Run; // <- Aqu dentro esta Application.Run + uBootStrap.Terminate; + + Application.Terminate; //<- No descomentar para as ver los Memory Leaks +end. + diff --git a/Source/Cliente/FactuGES.dproj b/Source/Cliente/FactuGES.dproj new file mode 100644 index 00000000..94f7a9c8 --- /dev/null +++ b/Source/Cliente/FactuGES.dproj @@ -0,0 +1,573 @@ + + + + {53016ac3-0937-40b6-917c-48fcd13f2260} + FactuGES.dpr + Debug + AnyCPU + PluginSDK_D10R;GUISDK_D11;Base;GUIBase;ApplicationBase;vclx;vcl;rtl;vclactnband;xmlrtl;JSDialog100 + DCC32 + ..\..\Output\Debug\Cliente\FactuGES.exe + true + + + 7.0 + False + False + False + True + 0 + 3 + ..\..\Output\Release\Cliente + .\ + .\ + .\ + .\ + .\ + ..\Lib;..\Modulos\Lib + ..\Lib;..\Modulos\Lib + ..\Lib;..\Modulos\Lib + ..\Lib;..\Modulos\Lib + RELEASE + + + 7.0 + False + True + 3 + ..\..\Output\Debug\Cliente + .\ + .\ + .\ + .\ + .\ + $(BDS)\lib\Debug;$(BDS)\Lib\Debug\Indy10;T:\COMPON~1\jcl\lib\d11\debug;$(BDSCOMMONDIR)\Dcp;..\Lib;..\Modulos\Lib + $(BDS)\lib\Debug;$(BDS)\Lib\Debug\Indy10;T:\COMPON~1\jcl\lib\d11\debug;$(BDSCOMMONDIR)\Dcp;..\Lib;..\Modulos\Lib + $(BDS)\lib\Debug;$(BDS)\Lib\Debug\Indy10;T:\COMPON~1\jcl\lib\d11\debug;$(BDSCOMMONDIR)\Dcp;..\Lib;..\Modulos\Lib + $(BDS)\lib\Debug;$(BDS)\Lib\Debug\Indy10;T:\COMPON~1\jcl\lib\d11\debug;$(BDSCOMMONDIR)\Dcp;..\Lib;..\Modulos\Lib + DEBUG; + True + True + + + Delphi.Personality + VCLApplication + +FalseTrueFalseC:\Archivos de programa\Borland\Delphi7\Bin\TrueFalse1000FalseFalseFalseFalseFalse30821252Rodax Software S.L.1.0.0.0FactuGESFactuGES2.1.4 + + + + + + + + + ExpressPrinting System by Developer Express Inc. + PluginSDK for Delphi 10 (Runtime) + Microsoft Office 2000 Sample Automation Server Wrapper Components + Microsoft Office XP Sample Automation Server Wrapper Components + FactuGES.dprFalse + + + + + MainSource + + + + + + +
    fPantallaPrincipal
    +
    + +
    SplashScreen
    +
    + + + +
    +
    + diff --git a/Source/Cliente/FactuGES.identcache b/Source/Cliente/FactuGES.identcache new file mode 100644 index 0000000000000000000000000000000000000000..edaaf20d70701609204cc5b9967758b21668d4e3 GIT binary patch literal 630 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

    i*uHZk~NTz5&JM>yl)D-(3FTH$b;aOBiqCUUUET zW4}kn29@nu6*KxOk+6zn^uyH8lhOB6KWBR1oNl?&`{s178;0p{uN#J#u2tJP!QD-N z02PsGaUMWUwif3BLQF5?0X$vj0i4sF2XIceJU4VscYd*-bH4kA?jK{enHze3j5e5G z9Alb^Ut_Sem&0n1HW3(eDGJcHuE`+GbSTbLZ zH}uQcr?rY%`bDzz^ZZ3WXO{i{YkgOi-}g`Vv%dcxneU%73!b&J^s}%J`7iVNH~W9} zK0++-#jPkaw($RBWOTR&BMW4&BFVU}d4?-_4wr|%38 zy-K?;=)OG9>FDnFFsJj6=M~lV?iY1N1J8b*G$Ak@jBimSiSm2 zkN1FQIn7;sZBCcZ*F(cbMqj_w8O^wQTEEoK8U5I=&3=gU^Vw(DdpYCPnaOwIO9BeB z@cL;^-e^F2#(I^lv-lRxU(i|Sm|_*QiWXH{+G<6g$d%D!BrbsA%*!igLqn^p)!F*QYHzhYN$;bc kxzk(b7yj`r%26cqS&jG%dRJZe%uV@}8NV}s!N^?y57b}+?EnA( literal 0 HcmV?d00001 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 lnea separadora + and (AMenuItem[ItemIndex].Count = 0)) // y que no sea el padre de un submen + then + with TTBXLink.Create(Application) do + begin + Parent := AParentControl;//APanel; + Align := alTop; + ParentFont := True; + Tag := AMenuItem[ItemIndex].Tag; + Caption := AMenuItem[ItemIndex].Caption; + Action := AMenuItem[ItemIndex].Action; + Images := AImageList; + ImageIndex := AMenuItem[ItemIndex].ImageIndex; + if ItemIndex = 0 then + Margins.Top := 15 + else + Margins.Top := 6; + Margins.Bottom := 6; + Margins.Left := 10; + Margins.Right := 10; + Height := 18; + Invalidate; + AHeight := AHeight + Margins.Top + Margins.Bottom + Height; + end; + end; + AParentControl.Height := AHeight; +end; + +end. diff --git a/Source/Cliente/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 + ' - Versin ' + FileVersion); + memModulos.Lines.Add(CompanyName); + memModulos.Lines.Add(''); +{ memModulos.Lines.Add('Se autoriza el uso de este programa a:'); + memModulos.Lines.Add('VARELA IMAGEN Y DISEO S.L.');} + end; + finally + FreeAndNil(Obj); + end; + + if Assigned(FHostManager) then + begin + memModulos.Lines.Add(''); + memModulos.Lines.Add(''); + memModulos.Lines.Add('Mdulos disponibles:'); + for i := 0 to (HostManager.ModulesCount - 1) do + memModulos.Lines.Add(' - ' + FHostManager.Modules[i].Module.ModuleName + + ' - v. ' + FHostManager.Modules[i].Module.Version); + end; +end; + +end. diff --git a/Source/Cliente/uBootStrap.pas b/Source/Cliente/uBootStrap.pas new file mode 100644 index 00000000..9429a713 --- /dev/null +++ b/Source/Cliente/uBootStrap.pas @@ -0,0 +1,97 @@ +unit uBootStrap; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uSplash, uFactuGES_App, StdCtrls; + +procedure Initialize; +procedure Run; +procedure Terminate; + +implementation + +uses + uDMBase, uDataModuleConexion, uDataModuleConfiguracion, + uMainMenuController, uNavPaneController, uPantallaPrincipal; + +procedure DoAppLoadModules; +begin + with AppFactuGES.ModuleManager do + begin + LoadModule('FormasPago_plugin.bpl'); + LoadModule('TiposIVA_plugin.bpl'); + LoadModule('Familias_plugin.bpl'); + LoadModule('Contactos_plugin.bpl'); + + LoadModule('Almacenes_plugin.bpl'); + LoadModule('Articulos_plugin.bpl'); + + LoadModule('PresupuestosCliente_plugin.bpl'); + LoadModule('AlbaranesCliente_plugin.bpl'); + + LoadModule('RecibosCliente_plugin.bpl'); + LoadModule('FacturasCliente_plugin.bpl'); + + LoadModule('PedidosProveedor_plugin.bpl'); + LoadModule('AlbaranesProveedor_plugin.bpl'); + + LoadModule('RecibosProveedor_plugin.bpl'); + LoadModule('FacturasProveedor_plugin.bpl'); + + LoadModule('RemesasCliente_plugin.bpl'); + LoadModule('RemesasProveedor_plugin.bpl'); + + LoadModule('Inventario_plugin.bpl'); + LoadModule('HistoricoMovimientos_plugin.bpl'); + + LoadModule('Balances_plugin.bpl'); + LoadModule('Ejercicios_plugin.bpl'); + LoadModule('Epigrafes_plugin.bpl'); + end; +end; + +procedure DoAppMainForm; +begin + Application.CreateForm(TfPantallaPrincipal, fPantallaPrincipal); +end; + +procedure Initialize; +begin + dmConexion := TdmConexion.Create(NIL); + dmConfiguracion := TdmConfiguracion.Create(NIL); + dmBase := TdmBase.Create(NIL); + + AppFactuGES := TAppFactuGES.Create; + with AppFactuGES do + begin + AppSplashForm := TAppSplashForm.Create; + DoMainFormEvent := DoAppMainForm; + DoLoadModulesEvent := DoAppLoadModules; + end; + + NavPaneController := TNavPaneController.Create; + MainMenuController := TMainMenuController.Create; +end; + +procedure Run; +begin + AppFactuGES.Run; +end; + +procedure Terminate; +begin + FreeANDNIL(MainMenuController); + FreeANDNIL(NavPaneController); + + AppFactuGES := NIL; + + FreeANDNIL(dmBase); + FreeANDNIL(dmConfiguracion); + FreeAndNil(dmConexion); + + Application.ProcessMessages +end; + +end. diff --git a/Source/Cliente/uMainMenuController.pas b/Source/Cliente/uMainMenuController.pas new file mode 100644 index 00000000..a6eda53b --- /dev/null +++ b/Source/Cliente/uMainMenuController.pas @@ -0,0 +1,135 @@ +unit uMainMenuController; + +interface + +uses + SysUtils, Menus, Controls, Classes, uHostManager, + PngImageList, uPantallaPrincipal; + +type + TMainMenuController = class(TObject) + private + FMainMenu: TMainMenu; + FMainForm: IMainForm; + FLargeImages: TImageList; + FSmallImages: TImageList; + procedure SetMainMenu(const Value: TMainMenu); + procedure CambiarEmpresaClick(Sender: TObject); + public + procedure RegisterModule(AModuleInfo : TModuleInfo); + procedure SortMenuByTag; + procedure InitMainMenu; + + property MainMenu : TMainMenu read FMainMenu write SetMainMenu; + property SmallImages: TImageList read FSmallImages write FSmallImages; + property LargeImages: TImageList read FLargeImages write FLargeImages; + property MainForm : IMainForm read FMainForm write FMainForm; + end; + +procedure CopyImages(const SrcList: TPngImageList; var DstList: + TPngImageList; out Index, Count: Integer); + +var + MainMenuController : TMainMenuController; + +implementation + +uses + Dialogs, PNGImage, uModuleController, uFactuGES_App, + uBizEmpresas, uMenuUtils; + + +{ TMainMenuController } + +procedure CopyImages(const SrcList: TPngImageList; var DstList: + TPngImageList; out Index, Count: Integer); +begin + Index := -1; + Count := 0; + + if not Assigned(SrcList) or not Assigned(DstList) then + Exit; + + DstList.BeginUpdate; + try + Index := DstList.Count; + DstList.AddImages(SrcList); + Count := SrcList.Count; + finally + DstList.EndUpdate; + end; +end; + + +procedure TMainMenuController.CambiarEmpresaClick(Sender: TObject); +begin + AppFactuGES.CambiarEmpresa((Sender as TMenuItem).Tag); +end; + +procedure TMainMenuController.InitMainMenu; +var + AEmpresas : IBizEmpresa; + AEmpresaMenu : TMenuItem; + AListaEmpresasItem : TMenuItem; + AItem: TMenuItem; +begin + AEmpresaMenu := BuscarMenu(FMainMenu, 'Empresa'); + AListaEmpresasItem := AEmpresaMenu.Find('Lista de empresas'); + + if Assigned(AListaEmpresasItem) then + begin + AEmpresas := AppFactuGES.EmpresasController.BuscarTodos; + try + AEmpresas.DataTable.Active := True; + while not AEmpresas.DataTable.EOF do + begin + AItem := TMenuItem.Create(nil); + with AItem do + begin + Caption := AEmpresas.NOMBRE; + Tag := AEmpresas.ID; + AutoCheck := True; + ShortCut := 0; + OnClick := CambiarEmpresaClick; + HelpContext := 0; + RadioItem := True; + Enabled := True; + end; + AListaEmpresasItem.Add(AItem); + AEmpresas.Next; + end; + finally + AEmpresas := NIL; + end; + end; +end; + +procedure TMainMenuController.RegisterModule(AModuleInfo: TModuleInfo); +var + AModule: TModuleController; + AIndex: Integer; + ACount: Integer; +begin + AModule := AModuleInfo.Module; + + if Assigned(AModule.ModuleMenu) then + begin + CopyImages(TPngImageList(AModule.SmallImages), TPngImageList(FSmallImages), AIndex, ACount); + CopyImages(TPngImageList(AModule.LargeImages), TPngImageList(FLargeImages), AIndex, ACount); + + MergeMenus(AModule.ModuleMenu, FMainMenu, AIndex); + end; +end; + +procedure TMainMenuController.SetMainMenu(const Value: TMainMenu); +begin + FMainMenu := Value; +end; + +procedure TMainMenuController.SortMenuByTag; +begin + uMenuUtils.SortMenuByTag(FMainMenu); +end; + + +end. diff --git a/Source/Cliente/uNavPaneController.pas b/Source/Cliente/uNavPaneController.pas new file mode 100644 index 00000000..35206ff3 --- /dev/null +++ b/Source/Cliente/uNavPaneController.pas @@ -0,0 +1,224 @@ +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, uDMBase, + uFactuGES_App, uBizEmpresas, JvPageList; + +{ TNavPaneController } + +function TNavPaneController.CrearDivisor(AParent: TWinControl; + ACaption: String): TJvNavPanelDivider; +begin + Result := TJvNavPanelDivider.Create(AParent); + with Result do + begin + Parent := AParent; + Caption := ACaption; + Cursor := crSizeNS; + Align := alTop; + Enabled := false; + Cursor := crDefault; + StyleManager := dmBase.StyleManager; + end; +end; + +function TNavPaneController.CrearPagina(const APageList : TJvNavigationPane; + ACaption : String; AAction : TAction; AImageIndex : Integer): Integer; +var + APanePage: TJvNavPanelPage; +begin + 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 pginas con empresas y rellenarlas + AEmpresas := AppFactuGES.EmpresasController.BuscarTodos; + try + AEmpresas.DataTable.Active := True; + while not AEmpresas.DataTable.EOF do + begin + ASeccionPadre := NIL; + AIndex := -1; + + // Buscar la pgina si existe + AIndex := EncontrarPagina(FNavigationPane, AEmpresas.NOMBRE); + if AIndex > -1 then + ASeccionPadre := EncontrarSeccionPadre(FNavigationPane.NavPages[AIndex]) + else begin + // Crear la pgina de la empresa + AIndex := CrearPagina(FNavigationPane, AEmpresas.NOMBRE, nil, -1); + + ASeccionPadre := CrearSeccion(FNavigationPane.NavPages[AIndex]); + ASeccionPadre.Align := alClient; + ASeccionPadre.AutoScroll := True; + end; + FNavigationPane.NavPages[AIndex].Tag := AEmpresas.ID; + + + // Crear secciones + for ASeccionCount := 0 to AListaSecciones.Count - 1 do + begin + ASeccion := CrearSeccion(ASeccionPadre); + with ASeccion do + begin + Top := 100 * AEmpresasCount; + Align := alTop; + AutoScroll := False; + end; + + ADivisor := CrearDivisor(ASeccion, AListaSecciones[ASeccionCount]); + + PopulateNavPagePane(ASeccion, TMenuItem(AListaSecciones.Objects[ASeccionCount]), + FLargeImages, dmBase.StyleManager); + ASeccion.Height := ASeccion.Height + ADivisor.Height; + end; + + 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; + + +end. diff --git a/Source/Cliente/uPantallaPrincipal.dfm b/Source/Cliente/uPantallaPrincipal.dfm new file mode 100644 index 00000000..bf3bf4ea --- /dev/null +++ b/Source/Cliente/uPantallaPrincipal.dfm @@ -0,0 +1,680 @@ +object fPantallaPrincipal: TfPantallaPrincipal + Left = 358 + Top = 250 + Caption = 'Pantalla principal' + ClientHeight = 601 + ClientWidth = 751 + Color = clWindow + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + Menu = HostMenu + OldCreateOrder = False + Position = poScreenCenter + Visible = True + WindowState = wsMaximized + OnClose = FormClose + OnCloseQuery = FormCloseQuery + OnCreate = FormCreate + OnShow = FormShow + PixelsPerInch = 96 + TextHeight = 13 + object pnlContenido: TTBXAlignmentPanel + Left = 0 + Top = 0 + Width = 751 + Height = 579 + Margins.Left = 5 + Margins.Top = 5 + Margins.Right = 5 + Margins.Bottom = 5 + ParentColor = True + Align = alClient + TabOrder = 0 + object JvSyncSplitter1: TJvSyncSplitter + Left = 215 + Top = 5 + Width = 5 + Height = 569 + ResizeStyle = rsPattern + ExplicitLeft = 210 + ExplicitHeight = 570 + end + object JvNavigationPane: TJvNavigationPane + Left = 5 + Top = 5 + Width = 210 + Height = 569 + ActivePage = pagInicio + Align = alLeft + AutoHeaders = True + Background.Stretch = False + Background.Proportional = False + Background.Center = False + Background.Tile = False + Background.Transparent = False + ButtonHeight = 32 + Colors.ButtonColorFrom = clWhite + Colors.ButtonColorTo = 12435133 + Colors.ButtonHotColorFrom = 13009540 + Colors.ButtonHotColorTo = 13009540 + Colors.ButtonSelectedColorFrom = 14602190 + Colors.ButtonSelectedColorTo = 14602190 + Colors.SplitterColorFrom = 13026246 + Colors.SplitterColorTo = 9211532 + Colors.DividerColorFrom = 15725551 + Colors.DividerColorTo = 13026246 + Colors.HeaderColorFrom = 8684164 + Colors.HeaderColorTo = 8684164 + Colors.FrameColor = 8684676 + Colors.ToolPanelHeaderColorFrom = clWhite + Colors.ToolPanelHeaderColorTo = 12435133 + StyleManager = dmBase.StyleManager + ParentStyleManager = False + LargeImages = ModulesLargeImageList + MaximizedCount = 1 + NavPanelFont.Charset = DEFAULT_CHARSET + NavPanelFont.Color = clWindowText + NavPanelFont.Height = -13 + NavPanelFont.Name = 'Tahoma' + NavPanelFont.Style = [] + NavPanelHotTrackFont.Charset = DEFAULT_CHARSET + NavPanelHotTrackFont.Color = clWindow + NavPanelHotTrackFont.Height = -13 + NavPanelHotTrackFont.Name = 'Tahoma' + NavPanelHotTrackFont.Style = [] + SmallImages = ModulesSmallImageList + OnChange = JvNavigationPaneChange + object pagInicio: TJvNavPanelPage + Left = 0 + Top = 0 + Width = 208 + Height = 496 + Background.Stretch = False + Background.Proportional = False + Background.Center = False + Background.Tile = False + Background.Transparent = False + Caption = 'Inicio' + ImageIndex = 0 + object Panel1: TPanel + Left = 0 + Top = 410 + Width = 208 + Height = 86 + Align = alBottom + Color = clWindow + ParentBackground = False + TabOrder = 1 + object Label1: TLabel + Left = 38 + Top = 29 + Width = 137 + Height = 52 + Margins.Bottom = 0 + AutoSize = False + Caption = 'Para empezar a trabajar, elija una empresa en la lista de abajo' + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + WordWrap = True + end + object Image1: TImage + Left = 16 + Top = 29 + Width = 16 + Height = 16 + AutoSize = True + Picture.Data = { + 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001000 + 00001008060000001FF3FF610000000774494D45000000000000000973942E00 + 00000970485973000017120000171201679FD2520000000467414D410000B18F + 0BFC6105000001754944415478DA6364C001D6ECBE900CA4E640B92921AE0673 + B1A963C4A739C8598FE1DB8FDF0C33966C67505054C06A08232ECD3EF6BA0C25 + 0B7F315C7FF88F6179E15F86456BF76135841197CD79737F324C4EE1008BF345 + BC63B833959561F13A4C4318D13507BBE833E4CEF9C160ACC1C29060C3029673 + 4D5FCD70F2A333564318B1D90CD20C02D72E9C04D33C92A60CAFDFFF6358B8E7 + 1B86218CE87E866986D90E738186A92FC397EF0C0C6B8FA21A0232E03FBACD5F + BEFF07E30A3F36B801323ABE0C3F7FFF67F8FE938161EFC5EF7043C00678586B + 32F8B7FD61887167836BFEF59B81A12E186180A8BA0F58F3E76FFF194EDDFE01 + 36A07DDA1AB001C90FEE3F98131BE4C4A092FD9BA12A8A07AC19E467582C800C + E051F0C1D06C636994020F44902171214E0CCA99BF19E25DB8E09A91C3011613 + 30CDE040448E46649764D85C473160C6114D0CCD581312B221CEFA9C589D8D35 + 21E13204047069C69B99608680002ECD380D4036E4C98B77383583000005100E + B8572466A60000000049454E44AE426082} + end + end + end + end + object pnlBorde: TJvXPContainer + Left = 220 + Top = 5 + Width = 526 + Height = 569 + BoundColor = clActiveCaption + BoundLines = [blLeft, blTop, blRight, blBottom] + Caption = 'pnlBorde' + Align = alClient + object pnlMain: TTBXAlignmentPanel + Left = 1 + Top = 1 + Width = 524 + Height = 567 + Align = alClient + Color = clWindow + TabOrder = 0 + object lblBienvenido: TLabel + Left = 8 + Top = 8 + Width = 210 + Height = 54 + Margins.Bottom = 0 + Caption = 'Bienvenido' + Font.Charset = DEFAULT_CHARSET + Font.Color = clHighlight + Font.Height = -43 + Font.Name = 'Trebuchet MS' + Font.Style = [] + ParentFont = False + Transparent = True + end + object Label22: TLabel + Left = 116 + Top = 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 = 579 + Width = 751 + Images = StatusPanelImageList + Panels = < + item + ImageIndex = 1 + Size = 250 + Tag = 0 + TextTruncation = twPathEllipsis + end + item + Framed = False + ImageIndex = 0 + Size = 150 + Tag = 0 + TextTruncation = twEndEllipsis + end + item + Size = 200 + Tag = 0 + end> + UseSystemFont = False + end + object XPManifest1: TXPManifest + Left = 248 + Top = 88 + end + object GeneralActionList: TActionList + Left = 288 + Top = 85 + object actSalir: TAction + Tag = -9000 + Category = 'Archivo' + Caption = '&Salir' + OnExecute = actSalirExecute + end + object actLogin: TAction + Tag = -9000 + Category = 'Archivo' + Caption = 'Login' + 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' + 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 + object actVerPanel: TAction + Category = 'Ver' + Caption = 'Panel de exploraci'#243'n' + OnExecute = actVerPanelExecute + OnUpdate = actVerPanelUpdate + end + object actVerBarraEstado: TAction + Category = 'Ver' + Caption = 'Barra de estado' + OnExecute = actVerBarraEstadoExecute + OnUpdate = actVerBarraEstadoUpdate + end + end + object ModulesSmallImageList: TPngImageList + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300004E2000004E2001167D99DE000001504944415478DA + 63FCFFFF3F0325801197C4840C067D207501CA352898C17071060303D8B60C24 + 7D8CF8343B381880F9070E80CD31E098C170E11990D184CF0064CD0776401CE0 + E0610036E42AD009CF81FC2DB80C40D7AC9F70082C7E71851D03580C6808D02B + 28FA18F16976B0B78578E1E061144360610237009F6610F8F9EB0FC3F1E3C7B1 + 1AC2488C6618BE7AF93C862120032009E107035ECD3F80F817106F3F7886E1EF + 314FCC74E01391F57FF3F2A970898999A811E453F91A6CD0BEE31718A6F75533 + 5CBB708E11A701208533F25919321212C0FC190B1630B8163F07BBE2D8D92BF8 + 0D8039797E2927D880EFDF3F322C5CB99EC136F73158FCECE51BB80D58B37022 + DC8065D5BC0C617ECE0C2B0FBC6660FC7489C12CFD3E58FCCACD3BB80D5838A3 + 9B61D92648E20105949F9B29C3B3E7D718CE5CFECAC06CB51D1E1E380DB877E3 + 0403B1006E00A5D919001742F4296979DC590000000049454E44AE426082} + Name = 'PngImage1' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001DD4944415478DA + 63FCFFFF3F032580916203C064C305B24CF95FAFCF0837A0C35205220834EAD7 + EFFF0C9FBEFD67F8FAFD3FC3C7AF0C0C9F81ECF79F80625FFF33FCFC0DD17C4B + F811AA01E8A63771DC6278F9EC21982D2E25CF50F7430DB70B262FDAFE3F27D6 + 032E9193DFC3905C94C0F0879F9FE1E73F26863F9F3F33ACE99BC3505797CEF0 + E7EF3F300E48AC6638B7631AAA018585850C4212560C5C867A0CF9AE6A0C1377 + DF821B6A66A4C87060EE4686772F8E3138F9A730D4774CC53400667B5C431EC3 + CF1F6C0C1F7F32300873323030333130BCFCC5C0B0B3AB87A100E8B2EBF75F62 + 3700E482DFFFA41914BD7D19A494D4199EDDBB097781B7853AC394DA1E0656A6 + A7D85D901EE90AF65B69D94486D0A21486F78C020CB2DC0C0C826C0C0C124057 + FC03C2FEDEB50CBE7E560C8F5F7EC0342029D489E1FD4267864B12C50C5BF7DD + 6188ACCE663871E111D8F6201B1586DECA7EB0ED2080D50581DF5A19441C6218 + 2EED39CD7081C182E1E2AD0F70E783A2D1DBD792E1F79FBF0CBF7FFF6578FFF9 + 3BAA014F66D8FC07697EBA6D1DC39633EC0CE71F9F66086ADA833715C20D8069 + 7EB97723C386A32C60CD17B902894ACA60038A3352FEAB72BE65F8F9F20F58F3 + 82C32F1889CE0BC0740F560C32E4EDD52D2469861900008660FEE14240093000 + 00000049454E44AE426082} + Name = 'PngImage0' + Background = clWindow + end> + Left = 51 + Top = 181 + Bitmap = {} + end + object ModulesActionList: TActionList + Images = ModulesLargeImageList + Left = 19 + Top = 180 + end + object ModulesLargeImageList: TPngImageList + Height = 24 + Width = 24 + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300004E2000004E2001167D99DE000002D14944415478DA + B5965F4853511CC7BF238A120DD9437F1E621B0D7D547AE8C18712F1DF42D1C0 + 87081F7C08121FFA4744B190A0B70211A2B208315965A0CDE58386A5CBD61FC5 + 6C2B373633B76BC66C19AD6DEA74BBF776EECDDDEEDDBDFBF390077E9CB373EF + F97CCEF9FDCE85A95896C56636D5A60BB279A9BD1945A4B3274D179FE980831B + 3C849E0D61969FFC49C228E2661424E0A5A5C59279ABD52E481202864C2C9168 + CD5620867BBD7E84C32BFC7C5E5E0E74BABD82645787DE1E248265F2E307896B + D908C4709F6F910F71D36AF7F0C1497698B6221C896171E3045D990462F89CEF + 17E67D140AEA86A056ABF9E7C160086E7339343A2D749A7C5EE2370154040890 + E723E90492B4CC8741CD7DE1E186EA2AC97BC3CF47E1EA2B8376BF1EDA7DB9BC + C4DA0738498E3EA71248764E919D7B2914127875129C21579BA619BC181985C7 + 5C213949A705F8E8571028E5BCB0EE1981572AC2E3711A71D2DB6C36CCF45748 + 6A02D1155629DD168AFAAE989664381F710693136F3163A98446B35B72BB3889 + 4A69E79AAA27A8AF3F9A153C31FE303106EF609DEC249C8015E7BC80A4C59021 + 2DC9707AA3F738A730FBB44A52135E9000A52B6826384DFF7DEE763AB0306410 + D60B45AE39D6C20E3CBA29812716769CDEA6F831D61A9764F2D793D3B8DD6684 + CB3EA54A2B10EFEADEB9ED686E6AFA772A86C1DDEE6E1CB918909D6CDCEECA2C + 10C3B9455D17720401CB32585B5B46574F1F2ACFFB65697BFFC99D5E900CE77A + D3A55C41108D86B1BA1AC263CB30CACE7E93D5C4E19A492D309B6EC8E05CF45C + DE89138DC7118B45115909612918C5CB57361C3AF55556F069CF6C6A41EFFD76 + 199C1BF75EC94763432DD97D0881DF71B40E14A13CFF164A5A28099C6B69053D + 9D6D3238D7F75F55A3A1E6309F1E2ED663AB181B5FC0C1935E093CA3A0FBCE75 + 3CB08CC9AE23FDC6809AF203041EE14FB11E5BC18423842D25838AD737A560CE + FD0EFFAB0982CDFE57F107B61AA443A57B28CB0000000049454E44AE426082} + Name = 'PngImage1' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000003E74944415478DA + D59559685C5518C77FB364EECCDCE9EC596996491BC618432A28246E041B4DEB + 065553445AA122218D55093E0982425F7C9354903EA9141F24421FB4D4D6B6D4 + A549C198496C163B314D4D3219C634D3244C3B6B26D773679AB4433241213E78 + E0DCE570EEFFF76DE7BB1A4551F82F87E6FF0F587BFA70684B49CA070D9A7580 + 8F9A76AEDBB89C8678522196C8DEA37145DC212ADEA3B1EC7B340EB7E377ED1B + 774DFF33407A458826EE8AC7EE80D4793B96155601AAF8BDEE8F3BF300D699BF + 220869616E4A282D8BFB4A5A751EB47A2890C43482AE202BA3D1E47CBA0EF0C9 + 89EF942307F7AC6D48A552CC06E7189F986572FA16716539B39E5C4AD3505726 + F422B88BEC58AD0E24A3118D56875A2F2BC2A87DAFBF8FEFCCA7F901AAF8E464 + 80A1DF4348F6424AAADD388A2C1408CB171723F80726882F452971E8902D5A01 + 2AC66CB608A886ABD76FF0DED1EEFC80AEAE2EE2F138EED28778F2B956763D50 + CA673F4CE4B8BFFB112F17FAFC38E7FE62D8779648640E93C9844EA763CFCB1D + 9B0392C924BF0E8C31BD20B3BBC543A141CF9248EA4F419813A9D06A411261AF + 7289244F0519EBBD4C5585134FF50E0C46137F06173607747676A22DA8C6F3EC + F399F5B6262F5F5FF6E778B0C3EBE59A3FBBA64C8ED27FF1240E8705A3C8C5DE + B6C39B0382C1203D674678F1600B7F2C6A9909835EEC728AA2A9B18BA2128914 + 91E05A040CB2C29593E7D0256E50DF5087C3E922148EE607BC79A095F6F676EA + 9ADA486FAFCCACBB2ABC84A7733DD8FFA8979EDEEC9A2E30C5A5D327B0DB8DC8 + B2CC33FB3BF3033A5E7D9A5028C4573DBD3CDCFA047265315745EC4B65281753 + 2D5497887F914978229E87C31166468204FCFD548BB0399D6E1622C9FC80432F + 35F3CEDB47588A2478EA85B78814DAA8ABF7323A9CEB41578B978FCFFBA991D2 + 4C8D8E3034F03D7ABD2E53497973D0FDF92965EFE3F7633EFF1AC77C0F5254DF + 4C794D35B58DB5CCA7A54CDB2832804358AF881CCC4ECED17BFA9238E0612A3C + 15949555A03748A26DA436061CEDFE5239241DC7DD7C80D8E059CE056AF02D96 + 73DFAE46E6ADDB723CF0C806C67FF1914ECD3332F823369B15499244096BF39F + 83C0F1C714553CFDDBB78C5D49D1775D62D65285697B1546931BC9EC125563E0 + 6620245AC22D2C36232565A5B80B4B44AB9045ABD08A36A19048A5D70356C593 + 03DFE01F5BCE880FCEF4636D3C4CA567A70098C5E98E914A264489EA31CB16AC + 363B168B95021116F50467C4EE34BC1CC04696ABE2176E7A916DC5184CDB328D + 0C6585B59E2C84548B351B74D1D5B106E83BB64FA975A598184BAE897FF17368 + E3AFFEC558FD156BDEED78437945FC81B6523C07A05E544878F4D49689DF0BF8 + 1B2694FBE012B66F2C0000000049454E44AE426082} + Name = 'PngImage0' + Background = clWindow + end> + Left = 83 + Top = 181 + Bitmap = {} + end + object StyleManagerButtons: TJvNavPaneStyleManager + Colors.ButtonColorFrom = clWindow + Colors.ButtonColorTo = clWindow + Colors.ButtonHotColorFrom = 13009540 + Colors.ButtonHotColorTo = 13009540 + Colors.ButtonSelectedColorFrom = 14602190 + Colors.ButtonSelectedColorTo = 14602190 + Colors.ButtonSeparatorColor = clWindow + Colors.SplitterColorFrom = clWindow + Colors.SplitterColorTo = clWindow + Colors.DividerColorFrom = clWindow + Colors.DividerColorTo = clWindow + Colors.HeaderColorFrom = clWindow + Colors.HeaderColorTo = clWindow + Colors.FrameColor = clWindow + Colors.ToolPanelHeaderColorFrom = clWindow + Colors.ToolPanelHeaderColorTo = clWindow + Fonts.NavPanelFont.Charset = DEFAULT_CHARSET + Fonts.NavPanelFont.Color = clWindowText + Fonts.NavPanelFont.Height = -11 + Fonts.NavPanelFont.Name = 'Tahoma' + Fonts.NavPanelFont.Style = [] + Fonts.NavPanelHotTrackFont.Charset = DEFAULT_CHARSET + Fonts.NavPanelHotTrackFont.Color = clWindow + Fonts.NavPanelHotTrackFont.Height = -11 + Fonts.NavPanelHotTrackFont.Name = 'Tahoma' + Fonts.NavPanelHotTrackFont.Style = [] + Fonts.DividerFont.Charset = DEFAULT_CHARSET + Fonts.DividerFont.Color = clWindowText + Fonts.DividerFont.Height = -11 + Fonts.DividerFont.Name = 'Tahoma' + Fonts.DividerFont.Style = [] + Fonts.HeaderFont.Charset = DEFAULT_CHARSET + Fonts.HeaderFont.Color = clWindow + Fonts.HeaderFont.Height = -16 + Fonts.HeaderFont.Name = 'Arial' + Fonts.HeaderFont.Style = [] + Theme = nptCustom + Left = 120 + Top = 181 + end + object JvFormStorage: TJvFormStorage + AppStorage = JvAppRegistryStorage + AppStoragePath = 'fPantallaPrincipal\' + VersionCheck = fpvcNocheck + StoredProps.Strings = ( + 'JvNavigationPane.Visible' + 'TBXStatusBar1.Visible') + StoredValues = <> + Left = 248 + Top = 128 + end + object JvAppRegistryStorage: TJvAppRegistryStorage + StorageOptions.BooleanStringTrueValues = 'TRUE, YES, Y' + StorageOptions.BooleanStringFalseValues = 'FALSE, NO, N' + Root = 'Software\%APPL_NAME%' + SubStorages = <> + Left = 288 + Top = 128 + end + object ApplicationEvents: TApplicationEvents + OnException = ApplicationEventsException + Left = 160 + Top = 182 + end + object HostMenu: TJvMainMenu + Images = ModulesSmallImageList + Style = msItemPainter + ImageMargin.Left = 0 + ImageMargin.Top = 0 + ImageMargin.Right = 0 + ImageMargin.Bottom = 0 + ImageSize.Height = 0 + ImageSize.Width = 0 + ItemPainter = JvXPMenuItemPainter1 + Left = 248 + Top = 168 + object Archivo2_OLD: TMenuItem + Tag = -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' + object Paneldeexploracin1: TMenuItem + Action = actVerPanel + end + object Paneldeexploracin2: TMenuItem + Tag = 1 + Action = actVerBarraEstado + end + end + object Opciones1_OLD: TMenuItem + Tag = -7000 + Caption = 'Opciones' + object Configuraractualizaciones1: TMenuItem + Tag = 100 + Action = actActualizaciones + end + object Configurarconexin2_OLD: TMenuItem + Tag = 101 + Action = actConexion + end + object N2: TMenuItem + Tag = 2 + Caption = '-' + end + object Administracin1: TMenuItem + Tag = 1 + Caption = 'Administraci'#243'n' + object Usuarios1: TMenuItem + Caption = 'Usuarios' + OnClick = Usuarios1Click + end + object Perfiles1: TMenuItem + Caption = 'Perfiles' + OnClick = Perfiles1Click + end + 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 + object Informacindeempresa1: TMenuItem + Caption = 'Informaci'#243'n de empresa' + OnClick = Informacindeempresa1Click + 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 + SelectionFrameBrush.Color = 13811126 + SelectionFramePen.Color = 6956042 + Left = 288 + Top = 168 + end + object StatusPanelImageList: TPngImageList + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AC400000AC401666D82D4000002A94944415478DA + 7D925D48536118C79FF3B5AF36DD66B639CB924243225010BC49BA914004CDE8 + E32228B482EA4689A22289C8CBA28B32B1061688902912D28D16991F6062B2DC + 45921FB954669BF39C9D6DE7EC9CF3EEBC9D2D8C2CB7079E9BF779FEBFF7F922 + 30C69034822060D3665F5F3A0B90B8C672FCAEC07AD8E35DF0DFBFE3F64EC05F + F647F72FC0DB75AED1E1B43D138438C9B26108B11C0443BC30ECF959D731303F + 9411D0D35C612C2ADBEF3319F5B992AC402412037F9003A4C8E05F17679BDA3E + 976BA9D1F4807B95552E877D90222910250556023170E66481D900F0CD17C0AD + 5DDE63F3CBFC505AC0685B6DE34654762B88009B350B8AF658815011C8521C04 + 518487DD530D9D83BECEB480C98EDA13F9798E5E9A61526F098440D1CA572409 + 24298EEFBA271B7BC756D203FA5A8FE49516EDF3313A5D8AA0AAAAD6BF929A01 + CFC7505DCBBBAAD590349C710BD3EEFA57D916D3A954920648249255283031B3 + 3A7BE1D164A5F61CCC0878D15C917FA8C43165D6334E558B25DBD80847E51BCF + A79B3E7D65DB33AEF1E04D570EE5723DB513C4C966E9006101ED0662043C6697 + 30B7DB3021CE6D5C5EEA58FAB22DE0F0ADBD36D25E38A6E6E2126413E00CAA81 + FAE27AE85FEB876EF10D30DC0E2083542432F3E3F8E2CBC5F7FF01CA5A8E3E21 + 6CC6AB8A264636110C7A80EADC2AE88B0E004474C0B026A035C76BF2B2A7ED43 + 29E671680BA0FC76B50F5BC902641501658B90304BA0EA11100A05544C0774D8 + 0834A7396B04DFE8C8E9B58FC19EAD80EB358B84852E44D9F1DF62930C9856B5 + 6320801419A0A27AA079430AB4303E722530EE6FDF3A838B15E729B3E50195C3 + D855B34A247F074A8BA91A40A2808C91803955E6E70233F36F3D0D58C6DEEDD6 + B8D35040179B9DA602305266AC028925A4A0B822A090C20BAB09BF96F35D736E + 53F70B90E997F07974AFDF0000000049454E44AE426082} + Name = 'PngImage0' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001A54944415478DA + 63FCFFFF3F0308303232322083DA9E05FF19F080A6E278B006466C0680340315 + C0F96F3EFD6178F5F13790FECBB067C75A862DBB4F329CDB310DBB0184344BC9 + AB33CC9AB308BB0120CD26C6A6589D7CE6EC69B06610C06A405DEF429C7EFEF3 + E72F839CB2169C8FD30064A72303238F2C8698A86086DD3BB732F80786E137E0 + EBF75F0CAFDF7D6178F0F41DC3BEC347194AB36218EC037319C48539185CDDBD + 19B8B8B8F11B00A4516CCF488C64F0892A60F070B565387FEE34D89025CBD612 + F6C2E7EF7FC1F81310472517835D6068640A76C1BA8D3B88F782AF7F08437A4E + 2983A99126C3A387F7C186ECD87D18BB0135F9B10C2D1317A378C1C92388A1A8 + B81CEC02397945064E4E2E864347CF6237203F2D9AE1D33788B37FFDF9CFF0F5 + E73F862F3FFE32D4555731A8288831700035737272329C3E771DBB018931110C + F397AC00F36D5C028186800CF8C7D0D55CC3202DCE03B6FDCE83570CE7774E47 + 24406403828343A1B6426C0EBE20C4305BE515C3B4EE7AB0175EBEFD01D60C52 + 8FD5000F9F60B86608FE07969BD3DF00A6619A711A00CA65B800B26664030085 + B441F03700F9CE0000000049454E44AE426082} + Name = 'PngImage1' + Background = clWindow + end> + Left = 251 + Top = 213 + Bitmap = {} + end +end diff --git a/Source/Cliente/uPantallaPrincipal.pas b/Source/Cliente/uPantallaPrincipal.pas new file mode 100644 index 00000000..10f2f4b1 --- /dev/null +++ b/Source/Cliente/uPantallaPrincipal.pas @@ -0,0 +1,576 @@ +unit uPantallaPrincipal; + +interface + +uses + Windows, Forms, SysUtils, Messages, JvMenus, Menus, Graphics, AppEvnts, + JvAppStorage, JvAppRegistryStorage, JvFormPlacement, JvComponentBase, + JvNavigationPane, ImgList, Controls, PngImageList, Classes, ActnList, XPMan, + TBXStatusBars, JvXPCore, JvXPContainer, pngimage, ExtCtrls, StdCtrls, + JvPageList, JvExControls, JvExExtCtrls, JvSplitter, JvSyncSplitter, + TBXDkPanels, uCustomEditor, uHostManager, uGUIBase, + Dialogs; + +type + IMainForm = interface(IHostForm) + ['{7F6F5574-5E5C-486C-AA24-D3AEAA52D243}'] + procedure ReleaseEmbedded; + end; + + + TfPantallaPrincipal = class(TForm, IHostForm, IMainForm) + GeneralActionList: TActionList; + ModulesSmallImageList: TPngImageList; + XPManifest1: TXPManifest; + actSalir: TAction; + ModulesActionList: TActionList; + ModulesLargeImageList: TPngImageList; + pnlContenido: TTBXAlignmentPanel; + JvNavigationPane: TJvNavigationPane; + pnlMain: TTBXAlignmentPanel; + JvSyncSplitter1: TJvSyncSplitter; + actLogin: TAction; + StyleManagerButtons: TJvNavPaneStyleManager; + JvFormStorage: TJvFormStorage; + JvAppRegistryStorage: TJvAppRegistryStorage; + actAdministracion: TAction; + ApplicationEvents: TApplicationEvents; + actCambiarPass: TAction; + actConexion: TAction; + actAcerca: TAction; + pnlBorde: TJvXPContainer; + HostMenu: TJvMainMenu; + JvXPMenuItemPainter1: TJvXPMenuItemPainter; + Archivo2_OLD: TMenuItem; + Ayuda2_OLD: TMenuItem; + Cambiarmicontrasea2_OLD: TMenuItem; + N3_OLD: TMenuItem; + Configurarconexin2_OLD: TMenuItem; + Paneldeadministracin2_OLD: TMenuItem; + N4_OLD: TMenuItem; + Salir2_OLD: TMenuItem; + Acercade2_OLD: TMenuItem; + lblBienvenido: TLabel; + Label22: TLabel; + TBXStatusBar1: TTBXStatusBar; + StatusPanelImageList: TPngImageList; + Empresa1_OLD: TMenuItem; + Listadeempresas1_OLD: TMenuItem; + N1_OLD: TMenuItem; + Opciones1_OLD: TMenuItem; + Edicin1_OLD: TMenuItem; + N1: TMenuItem; + Compras1: TMenuItem; + Ventas1: TMenuItem; + actMenuCompras: TAction; + actLogisticaMenu: TAction; + actVentasMenu: TAction; + Logstica1: TMenuItem; + pagInicio: TJvNavPanelPage; + Panel1: TPanel; + Label1: TLabel; + Image1: TImage; + actActualizaciones: TAction; + Configuraractualizaciones1: TMenuItem; + actVerPanel: TAction; + actVerBarraEstado: TAction; + Paneldeexploracin1: TMenuItem; + Paneldeexploracin2: TMenuItem; + Informacindeempresa1: TMenuItem; + Administracin1: TMenuItem; + N2: TMenuItem; + Usuarios1: TMenuItem; + Perfiles1: TMenuItem; + procedure FormCreate(Sender: TObject); + 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); + procedure actVerPanelUpdate(Sender: TObject); + procedure actVerPanelExecute(Sender: TObject); + procedure actVerBarraEstadoUpdate(Sender: TObject); + procedure actVerBarraEstadoExecute(Sender: TObject); + procedure Acercade1Click(Sender: TObject); + procedure Informacindeempresa1Click(Sender: TObject); + procedure Usuarios1Click(Sender: TObject); + procedure Perfiles1Click(Sender: TObject); + procedure FormShow(Sender: TObject); + procedure FormClose(Sender: TObject; var Action: TCloseAction); + private + FContenido : TCustomEditor; + procedure ShowEmbedded(AEditor : ICustomEditor); + procedure ReleaseEmbedded; + procedure AplicarPerfil; + procedure RefrescarUI; + procedure InicializarUI; + procedure OnThemeChange(Sender: TObject); + procedure ExecuteActionMenu(Sender : TObject); + procedure WMSysCommand(var Msg: TMessage); message WM_SYSCOMMAND; + protected + function GetWorkPanel : TWinControl; + public + function IsShortcut(var Message: TWMKey): Boolean; override; + procedure OnWorkPanelChanged(AEditor : ICustomEditor); + constructor Create(AOwner: TComponent); override; + property WorkPanel : TWinControl read GetWorkPanel; + end; + +var + fPantallaPrincipal: TfPantallaPrincipal; + +implementation + +uses + uSplash, uAcercaDe, UxTheme, Themes, uMenuUtils, uBizEmpresas, + uFactuGES_App, uDMBase, uDataModuleConexion, + uModuleController, uMainMenuController, uNavPaneController, + uDialogUtils, cxControls; + +{$R *.dfm} + + +{ +***************************** TfPantallaPrincipal ****************************** +} + +procedure TfPantallaPrincipal.FormClose(Sender: TObject; var Action: TCloseAction); +begin + //Tiene que ser en este mtodo porque salta antes que liberar la aplicacin, si lo dejamos + //en el evento onDestroy no le da tiempo a liberar el contenido y se pone a liberar la aplicacin + //provocando un error de memoria + ReleaseEmbedded; + ApplicationEvents.CancelDispatch; +end; + +procedure TfPantallaPrincipal.FormCloseQuery(Sender: TObject; + var CanClose: Boolean); +begin + CanClose := True; + if Assigned(FContenido) then + CanClose := FContenido.CloseQuery; +end; + +procedure TfPantallaPrincipal.FormCreate(Sender: TObject); +begin + ApplicationEvents.Activate; + Application.Title := AppFactuGES.AppName + ' ' + AppFactuGES.AppVersion; + Caption := Application.Title; + + JvNavigationPane.StyleManager := dmBase.StyleManager; + dmBase.OnThemeChange := Self.OnThemeChange; + Self.OnThemeChange(Self); // Forzar el refresco de los colores del tema activo + + actLogin.Execute; +end; + +procedure TfPantallaPrincipal.FormShow(Sender: TObject); +begin + InicializarUI; +end; + +procedure TfPantallaPrincipal.RefrescarUI; +var + ATitulo : String; +begin + ATitulo := AppFactuGES.AppName + ' ' + AppFactuGES.AppVersion; + + if Assigned(AppFactuGES.EmpresaActiva) then + ATitulo := AppFactuGES.EmpresaActiva.NOMBRE + ' - ' + ATitulo; + + Application.Title := ATitulo; + Caption := Application.Title; + + if dmConexion.HayConexion then + TBXStatusBar1.Panels[0].Caption := 'Conectado a: ' + dmConexion.TargetURL + else + TBXStatusBar1.Panels[0].Caption := 'Desconectado'; + + if Assigned(AppFactuGES.UsuarioActivo) then + TBXStatusBar1.Panels[1].Caption := AppFactuGES.UsuarioActivo.UserName + else + TBXStatusBar1.Panels[1].Caption := ''; +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.actVerBarraEstadoExecute(Sender: TObject); +begin + TBXStatusBar1.Visible := not TBXStatusBar1.Visible; +end; + +procedure TfPantallaPrincipal.actVerBarraEstadoUpdate(Sender: TObject); +begin + (Sender as TAction).Checked := TBXStatusBar1.Visible; +end; + +procedure TfPantallaPrincipal.actVerPanelExecute(Sender: TObject); +begin + JvNavigationPane.Visible := not JvNavigationPane.Visible; + if (JvNavigationPane.Visible) and (JvNavigationPane.Width = 0) then + JvNavigationPane.Width := 210; +end; + +procedure TfPantallaPrincipal.actVerPanelUpdate(Sender: TObject); +begin + (Sender as TAction).Checked := JvNavigationPane.Visible and (JvNavigationPane.Width > 0); +end; + +procedure TfPantallaPrincipal.OnThemeChange(Sender: TObject); +begin + LockWindowUpdate(Handle); + try + Color := dmBase.StyleManager.Colors.DividerColorTo; + //pnlBorde.Color := dmBase.StyleManager.Colors.FrameColor; + pnlBorde.BoundColor := dmBase.StyleManager.Colors.FrameColor; + with StyleManagerButtons do + begin + Colors.ButtonColorFrom := clWindow; + Colors.ButtonColorTo := clWindow; + Colors.ButtonSeparatorColor := clWindow; + Colors.SplitterColorFrom := clWindow; + Colors.SplitterColorTo := clWindow; + Colors.DividerColorFrom := clWindow; + Colors.DividerColorTo := clWindow; + Colors.HeaderColorFrom := clWindow; + Colors.HeaderColorTo := clWindow; + Colors.FrameColor := clWindow; + Colors.ToolPanelHeaderColorFrom := clWindow; + Colors.ToolPanelHeaderColorTo := clWindow; + + Colors.ButtonHotColorFrom := dmBase.StyleManager.Colors.ButtonHotColorFrom; + Colors.ButtonHotColorTo := dmBase.StyleManager.Colors.ButtonHotColorTo; + + Colors.ButtonSelectedColorFrom := dmBase.StyleManager.Colors.ButtonSelectedColorFrom; + Colors.ButtonSelectedColorTo := dmBase.StyleManager.Colors.ButtonSelectedColorTo; + end; + lblBienvenido.Font.Color := JvNavigationPane.Colors.ButtonColorTo; +{ JvGradient1.StartColor := JvNavigationPane.Colors.ButtonColorFrom; + JvGradient1.EndColor := JvNavigationPane.Colors.ButtonColorTo;} + finally + LockWindowUpdate(0); + Refresh; + end; +end; + +function TfPantallaPrincipal.GetWorkPanel: TWinControl; +begin + Result := pnlMain; +end; + +procedure TfPantallaPrincipal.Informacindeempresa1Click(Sender: TObject); +begin + AppFactuGES.EmpresasController.Ver(AppFactuGES.EmpresaActiva); +end; + +procedure TfPantallaPrincipal.InicializarUI; +var + AListaEmpresas : IBizEmpresa; + i : Integer; +begin + for i := 0 to AppFactuGES.ModuleManager.ModulesCount - 1 do + MainMenuController.RegisterModule(AppFactuGES.ModuleManager.Modules[i]); + + MainMenuController.SortMenuByTag; + MainMenuController.InitMainMenu; + + for i := 0 to AppFactuGES.ModuleManager.ModulesCount - 1 do + NavPaneController.RegisterModule(AppFactuGES.ModuleManager.Modules[i]); + + NavPaneController.InitNavPane; + + try + AListaEmpresas := AppFactuGES.EmpresasController.BuscarTodos; + if Assigned(AListaEmpresas) then + begin + AListaEmpresas.Active := True; + if AListaEmpresas.RecordCount = 1 then + begin + // Oculto la pgina de inicio para que no parezca + // que se pueden manejar varias empresas. + JvNavigationPane.ActivePageIndex := 1; + pagInicio.PageList := NIL; + pagInicio.Visible := False; + end; + end; + + finally + AListaEmpresas.Close; + AListaEmpresas := NIL; + end; + + RefrescarUI; +end; + + +procedure TfPantallaPrincipal.actLoginExecute(Sender: TObject); +begin +//-- HostManager.UnloadModules; + +{-- try + if AppFactuGES.UsuariosController.StartLogin then + begin + ShowHourglassCursor; +// SplashScreen.Update; + Application.ProcessMessages; + CargarModulos; + try + InicializarUI; + Application.ProcessMessages; + Visible := True; + AplicarPerfil; + finally + HideHourglassCursor; + end; + end + else + Close; + finally +// SplashScreen.Update; +// SplashScreen.Hide; +// SplashScreen.Release; + end; +--} +end; + +procedure TfPantallaPrincipal.actMenuComprasExecute(Sender: TObject); +begin + // +end; + +procedure TfPantallaPrincipal.actMenuComprasUpdate(Sender: TObject); +begin + (Sender as TAction).Enabled := Assigned(AppFactuGES.EmpresaActiva); +end; + +procedure TfPantallaPrincipal.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 + // OJOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO + if not dmUsuarios.Login then + ShowMessage(E.Message); + end + else} + ShowMessage(E.Message); + //ShowErrorMessage('Se ha producido un error', '', E); +end; + +procedure TfPantallaPrincipal.OnWorkPanelChanged(AEditor: ICustomEditor); +begin + // +end; + +procedure TfPantallaPrincipal.Perfiles1Click(Sender: TObject); +begin + AppFactuGES.UsuariosController.ShowProfileManager; +end; + +procedure TfPantallaPrincipal.ShowEmbedded(AEditor: ICustomEditor); +begin + if Assigned(FContenido) and not FContenido.CloseQuery then + begin + AEditor.Release; + AEditor := NIL; + Exit; + end; + + ShowHourglassCursor; + LockWindowUpdate(Handle); + ReleaseEmbedded; + try + FContenido := TCustomEditor(AEditor.GetInstance); + with (FContenido) do + begin + Visible := False; + BorderIcons := []; + BorderStyle := bsNone; + Parent := WorkPanel; + FContenido.Show; + Align := alClient; + FContenido.SetFocus; + end; + finally + Application.ProcessMessages; + LockWindowUpdate(0); + HideHourglassCursor; + end; + OnWorkPanelChanged(FContenido); +end; + +procedure TfPantallaPrincipal.Usuarios1Click(Sender: TObject); +begin + AppFactuGES.UsuariosController.ShowUserManager; +end; + +procedure TfPantallaPrincipal.WMSysCommand(var Msg: TMessage); +begin + // No tocar, sirve para recuperar el foco el formulario principal cuando + // tenemos varios formularios hijos abiertos a la vez. + DefaultHandler(Msg); +end; + +constructor TfPantallaPrincipal.Create(AOwner: TComponent); +begin + inherited; + FContenido := NIL; + + with AppFactuGES.ModuleManager do + begin + MainMenu := Self.Menu; + MainForm := Self; + end; + + with NavPaneController do + begin + SmallImages := ModulesSmallImageList; + LargeImages := ModulesLargeImageList; + NavigationPane := JvNavigationPane; + MainForm := Self; + end; + + with MainMenuController do + begin + SmallImages := ModulesSmallImageList; + LargeImages := ModulesLargeImageList; + MainMenu := HostMenu; + MainForm := Self; + end; +end; + +procedure TfPantallaPrincipal.actActualizacionesExecute(Sender: TObject); +begin +{ fActualizacion := TfActualizacion.Create(Self); + try + fActualizacion.ShowModal; + finally + FreeAndNil(fActualizacion); + end;} +end; + +procedure TfPantallaPrincipal.actCambiarPassExecute(Sender: TObject); +begin + AppFactuGES.UsuariosController.ShowChangePassword; + RefrescarUI; +end; + +procedure TfPantallaPrincipal.Acercade1Click(Sender: TObject); +begin + AppFactuGES.UsuariosController.StartLogin; +end; + +procedure TfPantallaPrincipal.actAcercaExecute(Sender: TObject); +begin + with TfAcercaDe.Create(NIL) do + try + //--HostManager := 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; + + AppFactuGES.CambiarEmpresa(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..3c945580 --- /dev/null +++ b/Source/Cliente/uSplash.dfm @@ -0,0 +1,50 @@ +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 + OnClose = FormClose + 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 + end + end +end diff --git a/Source/Cliente/uSplash.pas b/Source/Cliente/uSplash.pas new file mode 100644 index 00000000..05c538cc --- /dev/null +++ b/Source/Cliente/uSplash.pas @@ -0,0 +1,79 @@ +unit uSplash; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, ExtCtrls, JvGIF, StdCtrls, uFactuGES_App; + +type + TSplashScreen = class(TForm) + Panel1: TPanel; + lblTexto: TLabel; + Image1: TImage; + procedure FormClose(Sender: TObject; var Action: TCloseAction); + end; + + TAppSplashForm = class(TInterfacedObject, IAppSplashForm) + private + FSplashScreen: TSplashScreen; + function GetMensaje: String; + procedure SetMensaje(const AMensaje : String); + public + constructor Create; + destructor Destroy; override; + procedure Show; + procedure Hide; + procedure Update; + property Mensaje : String read GetMensaje write SetMensaje; + end; + + +implementation + +{$R *.dfm} + +{ TAppSplash } + +constructor TAppSplashForm.Create; +begin + FSplashScreen := TSplashScreen.Create(NIL) +end; + +destructor TAppSplashForm.Destroy; +begin + FSplashScreen.Release; + inherited; +end; + +function TAppSplashForm.GetMensaje: String; +begin + FSplashScreen.lblTexto.Caption; +end; + +procedure TAppSplashForm.Hide; +begin + FSplashScreen.Hide; +end; + +procedure TAppSplashForm.SetMensaje(const AMensaje: String); +begin + FSplashScreen.lblTexto.Caption := AMensaje; +end; + +procedure TAppSplashForm.Show; +begin + FSplashScreen.Show; +end; + +procedure TAppSplashForm.Update; +begin + FSplashScreen.Update; +end; + +procedure TSplashScreen.FormClose(Sender: TObject; var Action: TCloseAction); +begin + Action := caFree; +end; + +end. diff --git a/Source/FactuGES_Group.bdsgroup b/Source/FactuGES_Group.bdsgroup new file mode 100644 index 00000000..28a572bc --- /dev/null +++ b/Source/FactuGES_Group.bdsgroup @@ -0,0 +1,42 @@ + + + + + + + + + + + Base\Base.bdsproj + Base\ControllerBase\ControllerBase.bdsproj + GUIBase\GUIBase.bdsproj + Modulos\Empresas\Model\Empresas_model.bdsproj + Modulos\Empresas\Data\Empresas_data.bdsproj + Modulos\Empresas\Controller\Empresas_controller.bdsproj + Base\Usuarios\Usuarios.bdsproj + Modulos\Empresas\Views\Empresas_view.bdsproj + Modulos\Empresas\Plugin\Empresas_plugin.bdsproj + Modulos\Formas de pago\Model\FormasPago_model.bdsproj + Modulos\Formas de pago\Data\FormasPago_data.bdsproj + Modulos\Formas de pago\Controller\FormasPago_controller.bdsproj + Modulos\Formas de pago\Views\FormasPago_view.bdsproj + Modulos\Formas de pago\Plugin\FormasPago_plugin.bdsproj + Modulos\Tipos de IVA\Model\TiposIVA_model.bdsproj + Modulos\Tipos de IVA\Data\TiposIVA_data.bdsproj + Modulos\Tipos de IVA\Controller\TiposIVA_controller.bdsproj + Modulos\Tipos de IVA\Views\TiposIVA_view.bdsproj + Modulos\Tipos de IVA\Plugin\TiposIVA_plugin.bdsproj + Modulos\Contactos\Model\Contactos_model.bdsproj + Modulos\Contactos\Data\Contactos_data.bdsproj + Modulos\Contactos\Controller\Contactos_controller.bdsproj + Modulos\Contactos\Views\Contactos_view.bdsproj + Modulos\Contactos\Plugin\Contactos_plugin.bdsproj + Cliente\FactuGES.bdsproj + Servidor\FactuGES_Server.bdsproj + Base.bpl ControllerBase.bpl GUIBase.bpl Empresas_model.bpl Empresas_data.bpl Empresas_controller.bpl Usuarios.bpl Empresas_view.bpl Empresas_plugin.bpl FormasPago_model.bpl FormasPago_data.bpl FormasPago_controller.bpl FormasPago_view.bpl FormasPago_plugin.bpl TiposIVA_model.bpl TiposIVA_data.bpl TiposIVA_controller.bpl TiposIVA_view.bpl TiposIVA_plugin.bpl Contactos_model.bpl Contactos_data.bpl Contactos_controller.bpl Contactos_view.bpl Contactos_plugin.bpl FactuGES.exe FactuGES_Server.exe + + + + diff --git a/Source/FactuGES_Group.groupproj b/Source/FactuGES_Group.groupproj new file mode 100644 index 00000000..84572004 --- /dev/null +++ b/Source/FactuGES_Group.groupproj @@ -0,0 +1,424 @@ + + + {f98b1c11-3200-4f80-b23f-3591938de211} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Default.Personality + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Source/GUIBase/GUIBase.bdsproj b/Source/GUIBase/GUIBase.bdsproj new file mode 100644 index 00000000..1de68a17 --- /dev/null +++ b/Source/GUIBase/GUIBase.bdsproj @@ -0,0 +1,181 @@ + + + + + + + + + + + + GUIBase.dpk + + + 7.0 + + + 8 + 0 + 1 + 1 + 0 + 0 + 1 + 1 + 1 + 0 + 0 + 1 + 0 + 1 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 1 + 1 + 1 + 1 + 1 + True + True + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + False + False + False + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + + + 3 + 0 + False + 1 + True + False + False + 16384 + 1048576 + 4194304 + + + + + .\ + ..\..\Output\Debug\Cliente + ..\Lib + ..\Lib + + + + False + + + + + + False + + + True + False + + + True + False + 1 + 0 + 0 + 0 + False + False + False + False + False + 3082 + 1252 + + + + + 1.0.0.0 + + + + + + 1.0.0.0 + + + False + + + + diff --git a/Source/GUIBase/GUIBase.cfg b/Source/GUIBase/GUIBase.cfg new file mode 100644 index 00000000..5fd05cda --- /dev/null +++ b/Source/GUIBase/GUIBase.cfg @@ -0,0 +1,42 @@ +-$A8 +-$B- +-$C+ +-$D+ +-$E- +-$F- +-$G+ +-$H+ +-$I+ +-$J- +-$K- +-$L+ +-$M- +-$N+ +-$O- +-$P+ +-$Q- +-$R- +-$S- +-$T- +-$U- +-$V+ +-$W+ +-$X+ +-$YD +-$Z1 +-GD +-cg +-vn +-AWinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; +-H+ +-W+ +-M +-$M16384,1048576 +-K$00400000 +-N0".\" +-LE"..\..\Output\Debug\Cliente" +-LN"..\Lib" +-U"..\Lib" +-O"..\Lib" +-I"..\Lib" +-R"..\Lib" diff --git a/Source/GUIBase/GUIBase.dpk b/Source/GUIBase/GUIBase.dpk new file mode 100644 index 00000000..82c968ff --- /dev/null +++ b/Source/GUIBase/GUIBase.dpk @@ -0,0 +1,70 @@ +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 ON} +{$DEFINE DEBUG} + +requires + rtl, + vcl, + dbrtl, + vcldb, + dxBarD10, + dxBarExtItemsD10, + dxPScxCommonD10, + dxPScxGridLnkD10, + dxPsPrVwAdvD10, + dxLayoutControlD10, + frx11, + frxe11, + fs11, + JvAppFrmD11R, + JvCtrlsD11R, + Base; + +contains + uEditorBase in 'uEditorBase.pas' {fEditorBase: TCustomEditor}, + uEditorGridBase in 'uEditorGridBase.pas' {fEditorGridBase: TCustomEditor}, + uEditorItem in 'uEditorItem.pas' {fEditorItem: TCustomEditor}, + uEditorPreview in 'uEditorPreview.pas' {fEditorPreview: TCustomEditor}, + uViewPreview in 'uViewPreview.pas' {frViewPreview: TFrame}, + uViewBase in 'uViewBase.pas' {frViewBase: TFrame}, + uEditorDBBase in 'uEditorDBBase.pas' {fEditorDBBase: TCustomEditor}, + uEditorDBItem in 'uEditorDBItem.pas' {fEditorDBItem: TCustomEditor}, + uViewBarraSeleccion in 'uViewBarraSeleccion.pas' {frViewBarraSeleccion: TFrame}, + uViewGridBase in 'uViewGridBase.pas' {frViewGridBase: TFrame}, + uViewFormaPago in 'uViewFormaPago.pas' {frViewFormaPago: TFrame}, + uViewObservaciones in 'uViewObservaciones.pas' {frViewObservaciones: TFrame}, + uViewTotales in 'uViewTotales.pas' {frViewTotales: TFrame}, + uViewDetallesBase in 'uViewDetallesBase.pas' {frViewDetallesBase: TFrame}, + uViewIncidencias in 'uViewIncidencias.pas' {frViewIncidencias: TFrame}, + uViewDetallesDTO in 'uViewDetallesDTO.pas' {frViewDetallesDTO: TCustomView}, + uViewDetallesGenerico in 'uViewDetallesGenerico.pas' {frViewDetallesGenerico: TFrame}, + uViewGrid2Niveles in 'uViewGrid2Niveles.pas' {frViewGrid2Niveles: TFrame}, + uEditorBasico in 'uEditorBasico.pas' {fEditorBasico}, + uDialogBase in 'uDialogBase.pas' {fDialogBase}, + uViewFiltroBase in 'uViewFiltroBase.pas' {frViewFiltroBase: TFrame}, + uViewGrid in 'uViewGrid.pas' {frViewGrid: TFrame}; + +end. diff --git a/Source/GUIBase/GUIBase.dproj b/Source/GUIBase/GUIBase.dproj new file mode 100644 index 00000000..70b14487 --- /dev/null +++ b/Source/GUIBase/GUIBase.dproj @@ -0,0 +1,646 @@ + + + {0ca27a95-0b81-4724-84bf-8f8ed4e421ae} + GUIBase.dpk + Debug + AnyCPU + DCC32 + ..\..\Output\Debug\Cliente\GUIBase.bpl + + + 7.0 + False + False + False + True + 0 + 3 + True + True + .\ + .\ + .\ + ..\..\Output\Release\Cliente + ..\Lib + ..\Lib + ..\Lib + ..\Lib + ..\Lib + RELEASE + + + 7.0 + False + True + 3 + True + True + .\ + .\ + .\ + ..\..\Output\Debug\Cliente + ..\Lib + $(BDS)\lib\Debug;$(BDS)\Lib\Debug\Indy10;T:\COMPON~1\jcl\lib\d11\debug;$(BDSCOMMONDIR)\Dcp;..\Lib + $(BDS)\lib\Debug;$(BDS)\Lib\Debug\Indy10;T:\COMPON~1\jcl\lib\d11\debug;$(BDSCOMMONDIR)\Dcp;..\Lib + $(BDS)\lib\Debug;$(BDS)\Lib\Debug\Indy10;T:\COMPON~1\jcl\lib\d11\debug;$(BDSCOMMONDIR)\Dcp;..\Lib + $(BDS)\lib\Debug;$(BDS)\Lib\Debug\Indy10;T:\COMPON~1\jcl\lib\d11\debug;$(BDSCOMMONDIR)\Dcp;..\Lib + DEBUG + + + Delphi.Personality + Package + +FalseTrueFalseTrueFalseFalseTrueFalse1000FalseFalseFalseFalseFalse308212521.0.0.01.0.0.0GUIBase.dpk + + + + + MainSource + + + + + + + + + + + + + + + + + + +

    fDialogBase +
    + +
    fEditorBase
    + TCustomEditor +
    + +
    fEditorBasico
    +
    + +
    fEditorDBBase
    + TCustomEditor +
    + +
    fEditorDBItem
    + TCustomEditor +
    + +
    fEditorGridBase
    + TCustomEditor +
    + +
    fEditorItem
    + TCustomEditor +
    + +
    fEditorPreview
    + TCustomEditor +
    + +
    frViewBarraSeleccion
    + TFrame +
    + +
    frViewBase
    + TFrame +
    + +
    frViewDetallesBase
    + TFrame +
    + +
    frViewDetallesDTO
    + TCustomView +
    + +
    frViewDetallesGenerico
    + TFrame +
    + +
    frViewFiltroBase
    + TFrame +
    + +
    frViewFormaPago
    + TFrame +
    + +
    frViewGrid
    + TFrame +
    + +
    frViewGrid2Niveles
    + TFrame +
    + +
    frViewGridBase
    + TFrame +
    + +
    frViewIncidencias
    + TFrame +
    + +
    frViewObservaciones
    + TFrame +
    + +
    frViewPreview
    + TFrame +
    + +
    frViewTotales
    + TFrame +
    + + + diff --git a/Source/GUIBase/GUIBase.identcache b/Source/GUIBase/GUIBase.identcache new file mode 100644 index 0000000000000000000000000000000000000000..2ec462509e6d51e72d10e7a761f49c459c42f82e GIT binary patch literal 1369 zcma)+%}&EW421I(oOu9Lp!^7NBMn5k&`NDNTgnS>(+jx6d;k zPjZoE*~99&UU5S$U%nXVq2BUQ4A$ko%E4lN{2=^Ze_E6g3~`Tk@deg_f6qdj@Y>M8 z;-`h^O&VI{)qsZ(R&@)4j@y{-y{7AzE^vUZLmL}#oibn}IJ!BZ?<97|PJEvAU5aki z8*0$KV0Nopjh}AykMk>y_OX>hO}O$>11DLJ#?nr#i9^Y7sGW3cue^Mx5hIzaJ)6wO zDw=ezQ_qUsI`p2nc#+3ad(uKbFL{YQN+dni!Rh2N2T6U2fofm8>Kk=~a14J;**pgk Y*t&xo|62=_S3i_r2P_BJKs)Q)59FMYG5`Po literal 0 HcmV?d00001 diff --git a/Source/GUIBase/GUIBase.rc b/Source/GUIBase/GUIBase.rc new file mode 100644 index 00000000..153736af --- /dev/null +++ b/Source/GUIBase/GUIBase.rc @@ -0,0 +1,22 @@ +1 VERSIONINFO +FILEVERSION 1,0,0,0 +PRODUCTVERSION 1,0,0,0 +FILEFLAGSMASK 0x3FL +FILEFLAGS 0x00L +FILEOS 0x40004L +FILETYPE 0x1L +FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "0C0A04E4" + BEGIN + VALUE "FileVersion", "1.0.0.0\0" + VALUE "ProductVersion", "1.0.0.0\0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x0C0A, 1252 + END +END diff --git a/Source/GUIBase/GUIBase.res b/Source/GUIBase/GUIBase.res new file mode 100644 index 0000000000000000000000000000000000000000..8b251f312bcccec5485024f6fe8d80e1cdf25746 GIT binary patch literal 384 zcmZ9HOA3Ne6ox;+L5PEv(4cV`IIrjdPAV##hV&wc1g%+%X(R2Xc{`~7t6e0Ioa?#% zkMj%AQhz>WYy7LeWAUaqx~Kv?-;(-Hs4-^ATIZOBrid9+-6Ne7&88mi>kUR4lo#jxZ;#*s4zxg9yNlk=H9sqkCD2^cEXKpiTBNfgkKpXJBWWaLt(Qkv@0 w5yv*t82((Wlr2{_+FDoDHKW2QCXvc+s**ul{{$ + end + object EditorActionList: TActionList + Images = SmallImages + Left = 16 + Top = 144 + object actNuevo: TAction + Category = 'Archivo' + Caption = 'Nuevo' + ShortCut = 45 + OnExecute = actNuevoExecute + end + object actModificar: TAction + Category = 'Archivo' + Caption = 'Modificar' + ImageIndex = 18 + OnExecute = actModificarExecute + OnUpdate = actModificarUpdate + end + object actGuardarCerrar: TAction + Category = 'Archivo' + Caption = 'G&uardar y cerrar' + ImageIndex = 17 + OnExecute = actGuardarCerrarExecute + OnUpdate = actGuardarCerrarUpdate + end + object actGuardar: TAction + Category = 'Archivo' + Caption = '&Guardar' + ImageIndex = 17 + OnExecute = actGuardarExecute + OnUpdate = actGuardarUpdate + end + object actEliminar: TAction + Category = 'Archivo' + Caption = 'Eliminar' + ImageIndex = 4 + ShortCut = 16430 + OnExecute = actEliminarExecute + OnUpdate = actEliminarUpdate + end + object actConfPagina: TAction + Category = 'Archivo' + Caption = '&Configurar p'#225'gina' + ImageIndex = 8 + OnExecute = actConfPaginaExecute + end + object actPrevisualizar: TAction + Category = 'Archivo' + Caption = '&Previsualizar' + ImageIndex = 6 + OnExecute = actPrevisualizarExecute + end + object actImprimir: TAction + Category = 'Archivo' + Caption = 'Imprimir' + ImageIndex = 7 + ShortCut = 16464 + OnExecute = actImprimirExecute + end + object actDeshacer: TEditUndo + Category = 'Edici'#243'n' + Caption = 'Deshacer' + Hint = 'Undo|Reverts the last action' + ImageIndex = 12 + ShortCut = 16474 + end + object actCortar: TEditCut + Category = 'Edici'#243'n' + Caption = 'Cortar' + Hint = 'Cortar|Corta la selecci'#243'n y la coloca en el portapapeles' + ImageIndex = 3 + ShortCut = 16472 + end + object actCerrar: TAction + Category = 'Archivo' + Caption = 'Cerrar' + OnExecute = actCerrarExecute + end + object actCopiar: TEditCopy + Category = 'Edici'#243'n' + Caption = 'Copiar' + Hint = 'Copiar|Copia la selecci'#243'n y la coloca en el portapapeles' + ImageIndex = 2 + ShortCut = 16451 + end + object actPegar: TEditPaste + Category = 'Edici'#243'n' + Caption = 'Pegar' + Hint = 'Pegar|Inserta el contenido del portapapeles' + ImageIndex = 5 + ShortCut = 16470 + end + object actSeleccionarTodo: TEditSelectAll + Category = 'Edici'#243'n' + Caption = 'Seleccionar todo' + Hint = 'Seleccionar todo' + ImageIndex = 11 + ShortCut = 16449 + end + object actLimpiar: TEditDelete + Category = 'Edici'#243'n' + Caption = '&Limpiar' + Hint = 'Limpiar|Borra el texto seleccionado' + ImageIndex = 1 + ShortCut = 46 + end + object actRefrescar: TAction + Category = 'Ver' + Caption = 'Actualizar' + Hint = 'Actualizar los datos' + ImageIndex = 9 + ShortCut = 116 + OnExecute = actRefrescarExecute + end + object actAcercaDe: TAction + Category = 'Ayuda' + Caption = 'Acerca de...' + ImageIndex = 0 + end + object actBuscar: TAction + Category = 'Buscar' + Caption = 'Buscar' + ImageIndex = 10 + ShortCut = 114 + end + object actAnterior: TAction + Category = 'Ver' + Caption = 'Anterior' + ImageIndex = 15 + end + object actSiguiente: TAction + Category = 'Ver' + Caption = 'Siguiente' + ImageIndex = 16 + end + object actCancelarCambios: TAction + Category = 'Archivo' + Caption = 'Cancelar cambios' + OnExecute = actCancelarCambiosExecute + end + object actDuplicar: TAction + Category = 'Archivo' + Caption = 'Duplicar' + ImageIndex = 20 + OnExecute = actDuplicarExecute + end + end + object SmallImages: TPngImageList + 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/GUIBase/uEditorBase.pas b/Source/GUIBase/uEditorBase.pas new file mode 100644 index 00000000..4aded041 --- /dev/null +++ b/Source/GUIBase/uEditorBase.pas @@ -0,0 +1,460 @@ +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; + procedure Show; + end; + + TfEditorBase = class(TCustomEditor, IEditorBase) + actAcercaDe: TAction; + actAnterior: TAction; + actBuscar: TAction; + actCancelarCambios: TAction; + actCerrar: TAction; + actConfPagina: TAction; + actCopiar: TEditCopy; + actCortar: TEditCut; + actDeshacer: TEditUndo; + actEliminar: TAction; + actGuardar: TAction; + actGuardarCerrar: TAction; + actImprimir: TAction; + actLimpiar: TEditDelete; + actModificar: TAction; + actNuevo: TAction; + actPegar: TEditPaste; + actPrevisualizar: TAction; + actRefrescar: TAction; + actSeleccionarTodo: TEditSelectAll; + actSiguiente: TAction; + EditorActionList: TActionList; + JvNavPanelHeader: TJvNavPanelHeader; + LargeImages: TPngImageList; + SmallImages: TPngImageList; + TBXDock: TTBXDock; + TBXItem1: TTBXItem; + TBXItem10: TTBXItem; + TBXItem11: TTBXItem; + TBXItem12: TTBXItem; + TBXItem13: TTBXItem; + TBXItem14: TTBXItem; + TBXItem15: TTBXItem; + TBXItem16: TTBXItem; + TBXItem17: TTBXItem; + TBXItem18: TTBXItem; + TBXItem19: TTBXItem; + TBXItem2: TTBXItem; + TBXItem20: TTBXItem; + TBXItem21: TTBXItem; + TBXItem22: TTBXItem; + TBXItem23: TTBXItem; + TBXItem24: TTBXItem; + TBXItem25: TTBXItem; + TBXItem26: TTBXItem; + TBXItem27: TTBXItem; + TBXItem28: TTBXItem; + TBXItem29: TTBXItem; + TBXItem3: TTBXItem; + TBXItem30: TTBXItem; + TBXItem31: TTBXItem; + TBXItem32: TTBXItem; + TBXItem4: TTBXItem; + TBXItem5: TTBXItem; + TBXItem6: TTBXItem; + TBXItem8: TTBXItem; + TBXItem9: TTBXItem; + tbxMain: TTBXToolbar; + tbxMenu: TTBXToolbar; + TBXSeparatorItem1: TTBXSeparatorItem; + TBXSeparatorItem10: TTBXSeparatorItem; + TBXSeparatorItem11: TTBXSeparatorItem; + TBXSeparatorItem12: TTBXSeparatorItem; + TBXSeparatorItem13: TTBXSeparatorItem; + TBXSeparatorItem2: TTBXSeparatorItem; + TBXSeparatorItem3: TTBXSeparatorItem; + TBXSeparatorItem4: TTBXSeparatorItem; + TBXSeparatorItem5: TTBXSeparatorItem; + TBXSeparatorItem7: TTBXSeparatorItem; + TBXSeparatorItem8: TTBXSeparatorItem; + TBXSeparatorItem9: TTBXSeparatorItem; + TBXSubmenuItem1: TTBXSubmenuItem; + TBXSubmenuItem4: TTBXSubmenuItem; + TBXSubmenuItem5: TTBXSubmenuItem; + TBXSubmenuItem6: TTBXSubmenuItem; + TBXSubmenuItem7: TTBXSubmenuItem; + JvFormStorage: TJvFormStorage; + JvAppRegistryStorage: TJvAppRegistryStorage; + Image1: TImage; + TBXSeparatorItem15: TTBXSeparatorItem; + StatusBarImages: TPngImageList; + StatusBar: TJvStatusBar; + procedure actCerrarExecute(Sender: TObject); + procedure actGuardarCerrarExecute(Sender: TObject); + procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean); + procedure CustomEditorActivate(Sender: TObject); + procedure actModificarExecute(Sender: TObject); + procedure actGuardarExecute(Sender: TObject); + procedure actPrevisualizarExecute(Sender: TObject); + procedure actImprimirExecute(Sender: TObject); + procedure actNuevoExecute(Sender: TObject); + procedure actEliminarExecute(Sender: TObject); + procedure actConfPaginaExecute(Sender: TObject); + procedure actCancelarCambiosExecute(Sender: TObject); + procedure actDuplicarExecute(Sender: TObject); + procedure actRefrescarExecute(Sender: TObject); + procedure actModificarUpdate(Sender: TObject); + procedure actEliminarUpdate(Sender: TObject); + procedure actGuardarCerrarUpdate(Sender: TObject); + procedure actGuardarUpdate(Sender: TObject); + protected + procedure CreateParams(Var params: TCreateParams); override; + procedure ActualizarEstadoEditor; virtual; + function ModifiedQuery : Boolean; + procedure ModificarInterno; virtual; + procedure EliminarInterno; virtual; + procedure GuardarInterno; virtual; + procedure NuevoInterno; virtual; + procedure ImprimirInterno; virtual; + procedure PrevisualizarInterno; virtual; + procedure ConfPaginaInterno; virtual; + procedure RefrescarInterno; virtual; + procedure CancelarCambiosInterno; virtual; + procedure CerrarInterno; virtual; + procedure DuplicarInterno; virtual; + procedure PonerTitulos(const ATitulo: String = ''); virtual; + procedure SetReadOnly(Value: Boolean); override; + public + constructor Create(AOwner: TComponent); override; + function ShowModal : Integer; override; + procedure Show; + published + procedure FormShow(Sender: TObject); + end; + + TfEditorBaseClass = class of TfEditorBase; + +implementation + +{$R *.dfm} + +uses + Menus, uDMBase, 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.actEliminarUpdate(Sender: TObject); +begin + (Sender as TAction).Enabled := not ReadOnly; +end; + +procedure TfEditorBase.actGuardarCerrarExecute(Sender: TObject); +begin + ShowHourglassCursor; + try + if actGuardar.Execute then + actCerrar.Execute; + finally + HideHourglassCursor; + end; +end; + +procedure TfEditorBase.actGuardarCerrarUpdate(Sender: TObject); +begin + (Sender as TAction).Enabled := not ReadOnly; +end; + +procedure TfEditorBase.actGuardarExecute(Sender: TObject); +begin + GuardarInterno; + ActualizarEstadoEditor; +end; + +procedure TfEditorBase.actGuardarUpdate(Sender: TObject); +begin + (Sender as TAction).Enabled := not ReadOnly; +end; + +procedure TfEditorBase.actImprimirExecute(Sender: TObject); +begin + if actImprimir.Enabled then + begin + ImprimirInterno; + ActualizarEstadoEditor; + end; +end; + +procedure TfEditorBase.actModificarExecute(Sender: TObject); +begin + if actModificar.Enabled then + begin + ModificarInterno; + ActualizarEstadoEditor; + end; +end; + +procedure TfEditorBase.actModificarUpdate(Sender: TObject); +begin + (Sender as TAction).Enabled := not ReadOnly; +end; + +procedure TfEditorBase.actNuevoExecute(Sender: TObject); +begin + if actNuevo.Enabled then + begin + NuevoInterno; + ActualizarEstadoEditor; + end; +end; + +procedure TfEditorBase.actPrevisualizarExecute(Sender: TObject); +begin + if actPrevisualizar.Enabled then + begin + 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('Atencin', + 'Se han producido cambios', + 'Desea guardar los cambios que se han producido antes de cerrar?', + [TDlgButton_SI, TDlgButton_NO, TDlgButton_CANCELAR]); + + case Respuesta of + IDYES : actGuardar.Execute; + IDNO : actCancelarCambios.Execute; + else + Result := False; + end; + end +end; + +procedure TfEditorBase.NuevoInterno; +begin + // +end; + +procedure TfEditorBase.PonerTitulos(const ATitulo: String); +begin + if ReadOnly then + begin + JvNavPanelHeader.Caption := ATitulo + ' (NO MODIFICABLE)'; + Caption := ATitulo + ' (NO MODIFICABLE)'; + end + else + begin + JvNavPanelHeader.Caption := ATitulo; + Caption := ATitulo; + end; +end; + +procedure TfEditorBase.PrevisualizarInterno; +begin + // +end; + +procedure TfEditorBase.RefrescarInterno; +begin + // +end; + +procedure TfEditorBase.SetReadOnly(Value: Boolean); +var + i: integer; +begin + inherited; + + if ReadOnly then + for i:=0 to Self.ComponentCount-1 do + begin + If Self.Components[i] Is TfrViewBase then + (Self.Components[i] as TfrViewBase).ReadOnly := ReadOnly + end; +end; + +procedure TfEditorBase.Show; +begin + inherited Show; +// Self.WindowState := wsNormal; +// self.FormStyle := fsNormal; +end; + +procedure TfEditorBase.CreateParams(var params: TCreateParams); +begin + //No tocar, sirve para crear varios formularios hijos abiertos a la vez fuera de la aplicacin principal + inherited CreateParams( params ); + params.Style := params.Style and not WS_POPUP; + params.ExStyle := params.ExStyle and not WS_EX_TOOLWINDOW or WS_EX_APPWINDOW; +end; + +function TfEditorBase.ShowModal: Integer; +var + ABorderIcons : TBorderIcons; +begin + ABorderIcons := Self.BorderIcons; + Self.BorderIcons := Self.BorderIcons - [biMinimize]; + try + Result := inherited ShowModal; + finally + Self.BorderIcons := ABorderIcons; + end; +end; + +initialization + RegisterClass(TfEditorBase); + +finalization + UnRegisterClass(TfEditorBase); + +end. diff --git a/Source/GUIBase/uEditorBasico.dfm b/Source/GUIBase/uEditorBasico.dfm new file mode 100644 index 00000000..ef85a644 --- /dev/null +++ b/Source/GUIBase/uEditorBasico.dfm @@ -0,0 +1,18 @@ +object fEditorBasico: TfEditorBasico + Left = 0 + Top = 0 + Caption = 'fEditorBasico' + ClientHeight = 236 + ClientWidth = 383 + Color = clBtnFace + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + OldCreateOrder = False + InstanceID = 0 + ReadOnly = False + PixelsPerInch = 96 + TextHeight = 13 +end diff --git a/Source/GUIBase/uEditorBasico.pas b/Source/GUIBase/uEditorBasico.pas new file mode 100644 index 00000000..7a8e97d1 --- /dev/null +++ b/Source/GUIBase/uEditorBasico.pas @@ -0,0 +1,26 @@ +unit uEditorBasico; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uGUIBase, uCustomEditor; + +type + IEditorBasico = interface(ICustomEditor) + ['{CE4B2B04-F8DA-4C96-B071-CC5792C14D51}'] + function ShowModal : Integer; + end; + + TfEditorBasico = class(TCustomEditor, IEditorBasico) + end; + +implementation +{$R *.dfm} + +initialization + RegisterClass(TfEditorBasico); + +finalization + UnRegisterClass(TfEditorBasico); +end. diff --git a/Source/GUIBase/uEditorDBBase.dfm b/Source/GUIBase/uEditorDBBase.dfm new file mode 100644 index 00000000..170fdac7 --- /dev/null +++ b/Source/GUIBase/uEditorDBBase.dfm @@ -0,0 +1,59 @@ +inherited fEditorDBBase: TfEditorDBBase + Left = 295 + Top = 247 + Caption = 'fEditorDBBase' + ClientHeight = 456 + ClientWidth = 648 + ExplicitWidth = 656 + ExplicitHeight = 490 + PixelsPerInch = 96 + TextHeight = 13 + inherited JvNavPanelHeader: TJvNavPanelHeader + Width = 648 + ExplicitWidth = 648 + inherited Image1: TImage + Left = 621 + ExplicitLeft = 625 + end + end + inherited TBXDock: TTBXDock + Width = 648 + ExplicitWidth = 648 + inherited tbxMain: TTBXToolbar + ExplicitWidth = 648 + end + inherited tbxMenu: TTBXToolbar + ExplicitWidth = 648 + end + end + inherited StatusBar: TJvStatusBar + Top = 437 + Width = 648 + ExplicitTop = 437 + ExplicitWidth = 648 + end + inherited EditorActionList: TActionList + inherited actPrevisualizar: TAction + OnUpdate = actPrevisualizarUpdate + end + inherited actImprimir: TAction + OnUpdate = actImprimirUpdate + end + inherited actRefrescar: TAction + OnUpdate = actRefrescarUpdate + end + inherited actAnterior: TAction + OnExecute = actAnteriorExecute + OnUpdate = actAnteriorUpdate + end + inherited actSiguiente: TAction + OnExecute = actSiguienteExecute + OnUpdate = actSiguienteUpdate + end + end + object dsDataTable: TDADataSource [7] + OnDataChange = dsDataTableDataChange + Left = 40 + Top = 88 + end +end diff --git a/Source/GUIBase/uEditorDBBase.pas b/Source/GUIBase/uEditorDBBase.pas new file mode 100644 index 00000000..246a4b72 --- /dev/null +++ b/Source/GUIBase/uEditorDBBase.pas @@ -0,0 +1,256 @@ +unit uEditorDBBase; + +interface + +uses + Windows, SysUtils, Variants, Classes, Graphics, Controls, Forms, + uEditorItem, ImgList, PngImageList, StdActns, ActnList, TBX, + TB2Item, TB2Dock, TB2Toolbar, ComCtrls, JvExControls, JvComponent, + JvNavigationPane, DB, uDADataTable, uEditorBase, JvFormAutoSize, + uDAScriptingProvider, uDACDSDataTable, AppEvnts, uCustomView, uViewBase, + JvAppStorage, JvAppRegistryStorage, JvFormPlacement, + pngimage, ExtCtrls, dxLayoutLookAndFeels, JvComponentBase, TBXStatusBars, + JvExComCtrls, JvStatusBar, uDAInterfaces; + +type + IEditorDBBase = interface(IEditorBase) + ['{1F5B318F-F700-4C78-ABCE-E2329AD876B8}'] + end; + + TfEditorDBBase = class(TfEditorBase, IEditorDBBase) + dsDataTable: TDADataSource; + procedure actAnteriorExecute(Sender: TObject); + procedure actSiguienteExecute(Sender: TObject); + procedure actAnteriorUpdate(Sender: TObject); + procedure actSiguienteUpdate(Sender: TObject); + procedure actRefrescarUpdate(Sender: TObject); + procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean); virtual; + procedure actEliminarUpdate(Sender: TObject); + procedure actModificarUpdate(Sender: TObject); + procedure actPrevisualizarUpdate(Sender: TObject); + procedure actImprimirUpdate(Sender: TObject); + procedure actGuardarUpdate(Sender: TObject); + procedure actGuardarCerrarUpdate(Sender: TObject); + procedure dsDataTableDataChange(Sender: TObject; Field: TField); + protected + function HayDatos: Boolean; + function GetModified: Boolean; override; + procedure RefrescarInterno; override; + procedure CancelarCambiosInterno; override; + end; + +implementation + +uses + uDataTableUtils, cxControls, uCustomEditor; + +{$R *.dfm} + +procedure TfEditorDBBase.actAnteriorExecute(Sender: TObject); +begin + inherited; + if Assigned(dsDataTable.DataTable) then + begin + if (not ModifiedQuery) then + Exit; + + dsDataTable.DataTable.Prior; + end; +end; + +procedure TfEditorDBBase.actSiguienteExecute(Sender: TObject); +begin + inherited; + if Assigned(dsDataTable.DataTable) then + begin + if (not ModifiedQuery) then + Exit; + + dsDataTable.DataTable.Next; + end; +end; + +procedure TfEditorDBBase.actAnteriorUpdate(Sender: TObject); +begin + inherited; + if HayDatos then + (Sender as TAction).Enabled := not dsDataTable.DataTable.BOF + else + (Sender as TAction).Enabled := False; +end; + +procedure TfEditorDBBase.actSiguienteUpdate(Sender: TObject); +begin + inherited; + if HayDatos then + (Sender as TAction).Enabled := not dsDataTable.DataTable.EOF + else + (Sender as TAction).Enabled := False; +end; + +procedure TfEditorDBBase.CancelarCambiosInterno; +var + dtDetails : TList; + i : integer; + ABookmark : TBookmark; +begin + inherited; + + if Assigned(dsDataTable.DataTable) then + begin + ABookmark := dsDataTable.DataTable.GetBookMark; + dsDataTable.DataTable.DisableControls; +// dsDataTable.DataTable.DisableEventHandlers; <- No descomentar + + ShowHourglassCursor; + { No lo pongo en try..finally para ver posibles errores } + //try + dsDataTable.DataTable.Cancel; + + dtDetails := dsDataTable.DataTable.GetDetailDataTables; + for i := 0 to dtDetails.Count - 1 do + begin + (TDADataTable(dtDetails.Items[i])).Cancel; + end; + + dsDataTable.DataTable.CancelUpdates; + + { Comprobar si el bookmark no es vlido cuando estamos cancelando la + insercin de una fila nueva. + CUIDADO!! Si no es vlido salta una excepcin. NO devuelve false!!!} + try + if (Assigned(ABookmark)) and + (dsDataTable.DataTable.Dataset.BookmarkValid(ABookmark)) then + dsDataTable.DataTable.GotoBookmark(ABookmark); + except + end; + + //finally + dsDataTable.DataTable.EnableControls; + dsDataTable.DataTable.FreeBookmark(ABookmark); +// dsDataTable.DataTable.EnableEventHandlers; <- No descomentar + HideHourglassCursor + //end; + end; +end; + +procedure TfEditorDBBase.dsDataTableDataChange(Sender: TObject; Field: TField); +begin + inherited; + ActualizarEstadoEditor; +end; + +procedure TfEditorDBBase.actRefrescarUpdate(Sender: TObject); +begin + inherited; + if HayDatos then + (Sender as TAction).Enabled := (not dsDataTable.DataTable.Fetching) and + (not dsDataTable.DataTable.Opening) and + (not dsDataTable.DataTable.Closing) and + (dsDataTable.DataTable.State <> dsInsert) + else + (Sender as TAction).Enabled := False; + + //MODO CONSULTAR ITEM + if (Sender as TAction).Enabled + and Assigned(dsDataTable.DataTable) then + (Sender as TAction).Enabled := not dsDataTable.DataTable.ReadOnly; +end; + +function TfEditorDBBase.GetModified: Boolean; +begin + if ReadOnly then + Result := False + else + Result := DataTableModified(dsDataTable.DataTable) or inherited GetModified; +end; + +function TfEditorDBBase.HayDatos: Boolean; +begin + Result := Assigned(dsDataTable.DataTable) and (dsDataTable.DataTable.State <> dsInactive) + and (not dsDataTable.DataTable.IsEmpty); +end; + +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 ningn dato. } + if Assigned(dsDataTable.DataTable) and (not Modified) then + dsDataTable.DataTable.Cancel; + inherited; +end; + +procedure TfEditorDBBase.actEliminarUpdate(Sender: TObject); +begin + inherited; + if (Sender as TAction).Enabled then + (Sender as TAction).Enabled := HayDatos and (dsDataTable.DataTable.State <> dsInsert) +end; + +procedure TfEditorDBBase.actGuardarCerrarUpdate(Sender: TObject); +begin + inherited; + if (Sender as TAction).Enabled then + (Sender as TAction).Enabled := HayDatos; +end; + +procedure TfEditorDBBase.actGuardarUpdate(Sender: TObject); +begin + inherited; + if (Sender as TAction).Enabled then + (Sender as TAction).Enabled := HayDatos; +end; + +procedure TfEditorDBBase.actModificarUpdate(Sender: TObject); +begin + inherited; + if (Sender as TAction).Enabled then + (Sender as TAction).Enabled := HayDatos; +end; + +procedure TfEditorDBBase.actPrevisualizarUpdate(Sender: TObject); +begin + inherited; + (Sender as TAction).Enabled := HayDatos; +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/GUIBase/uEditorDBItem.dfm b/Source/GUIBase/uEditorDBItem.dfm new file mode 100644 index 00000000..1b4fa877 --- /dev/null +++ b/Source/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 = 605 + 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/GUIBase/uEditorDBItem.pas b/Source/GUIBase/uEditorDBItem.pas new file mode 100644 index 00000000..9ce1e0ad --- /dev/null +++ b/Source/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, uDAInterfaces; + +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 + 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/GUIBase/uEditorGridBase.dfm b/Source/GUIBase/uEditorGridBase.dfm new file mode 100644 index 00000000..23d50433 --- /dev/null +++ b/Source/GUIBase/uEditorGridBase.dfm @@ -0,0 +1,1566 @@ +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 + DragHandleStyle = dhDouble + TabOrder = 1 + ExplicitWidth = 457 + inherited TBXItem29: TTBXItem + Visible = False + end + inherited TBXItem27: TTBXItem + Visible = False + end + object TBXSeparatorItem6: TTBXSeparatorItem [6] + end + object TBXItem7: TTBXItem [7] + Action = actDuplicar + DisplayMode = nbdmImageAndText + end + inherited TBXItem24: TTBXItem [10] + end + inherited TBXItem3: TTBXItem [11] + end + inherited TBXSeparatorItem10: TTBXSeparatorItem [12] + end + 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 = dhDouble + 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 + object TBXTMain2: TTBXToolbar + Left = 337 + Top = 49 + Caption = 'tbxMain' + ChevronHint = 'M'#225's botones|' + DockMode = dmCannotFloatOrChangeDocks + DockPos = 334 + DockRow = 2 + DragHandleStyle = dhDouble + Images = SmallImages + ParentShowHint = False + ShowHint = True + TabOrder = 3 + Visible = False + 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/GUIBase/uEditorGridBase.pas b/Source/GUIBase/uEditorGridBase.pas new file mode 100644 index 00000000..89f07407 --- /dev/null +++ b/Source/GUIBase/uEditorGridBase.pas @@ -0,0 +1,319 @@ +{*******************************************************} +{ } +{ Administracin de puntos de venta } +{ } +{ Copyright (C) 2006 Rodax Software S.L. } +{ } +{*******************************************************} + +unit uEditorGridBase; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uEditorBase, ToolWin, ComCtrls, JvExControls, JvComponent, + JvNavigationPane, ActnList, TB2Dock, TB2Toolbar, TBX, TB2Item, + ImgList, PngImageList, StdActns, TB2ExtItems, TBXExtItems, uViewGridBase, + uEditorDBBase, DB, uDADataTable, Menus, JvFormAutoSize, + uDAScriptingProvider, uDACDSDataTable, AppEvnts, JvAppStorage, + JvAppRegistryStorage, JvFormPlacement, pngimage, ExtCtrls, + JvComponentBase, dxLayoutLookAndFeels, TBXStatusBars, JvExComCtrls, + JvStatusBar, uDAInterfaces; + +type + IEditorGridBase = interface(IEditorDBBase) + ['{CB8CDE00-B225-4A1D-9A5C-EC6FBE2C854B}'] + + procedure SetMultiSelect (AValue : Boolean); + function GetMultiSelect : Boolean; + property MultiSelect : Boolean read GetMultiSelect write SetMultiSelect; + end; + + TfEditorGridBase = class(TfEditorDBBase, IEditorGridBase) + tbxEditFiltro: TTBXEditItem; + tbxFiltro: TTBXToolbar; + GridPopupMenu: TPopupMenu; + Modificar1: TMenuItem; + Eliminar1: TMenuItem; + N1: TMenuItem; + Nuevo1: TMenuItem; + TBXLabelItem1: TTBXLabelItem; + actQuitarFiltro: TAction; + N2: TMenuItem; + Previsualizar1: TMenuItem; + Imprimir1: TMenuItem; + TBXSeparatorItem14: TTBXSeparatorItem; + TBXItem33: TTBXItem; + N3: TMenuItem; + Actualizar1: TMenuItem; + TBXItem34: TTBXItem; + actAnchoAuto: TAction; + TBXSeparatorItem16: TTBXSeparatorItem; + TBXItem35: TTBXItem; + TBXItem36: TTBXItem; + TBXSeparatorItem6: TTBXSeparatorItem; + TBXItem7: TTBXItem; + actFiltrar: TAction; + TBXItem37: TTBXItem; + TBXTMain2: TTBXToolbar; + procedure tbxEditFiltroChange(Sender: TObject; const Text: String); + procedure FormShow(Sender: TObject); + 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 SetMultiSelect (AValue : Boolean); + function GetMultiSelect : Boolean; + + procedure PrevisualizarInterno; override; + procedure ConfPaginaInterno; override; + procedure ImprimirInterno; override; + procedure RefrescarInterno; override; + public + property ViewGrid: IViewGridBase read GetViewGrid write SetViewGrid; + property MultiSelect : Boolean read GetMultiSelect write SetMultiSelect; + + constructor Create(AOwner : TComponent); override; + destructor Destroy; override; + end; + +implementation + +uses + uDMBase, uCustomEditor, cxGridTableView, cxControls; + +{$R *.dfm} + +{ +********************************* TfEditorGridBase ***************************** +} +destructor TfEditorGridBase.Destroy; +begin + FViewGrid := NIL; + inherited; +end; + +function TfEditorGridBase.GetMultiSelect: Boolean; +begin + Result := False; + if Assigned(ViewGrid) then + Result := ViewGrid.MultiSelect; +end; + +function TfEditorGridBase.GetViewGrid: IViewGridBase; +begin + Result := FViewGrid; +end; + +procedure TfEditorGridBase.ImprimirInterno; +begin + inherited; + ViewGrid.Print; +end; + +procedure TfEditorGridBase.SetMultiSelect(AValue: Boolean); +begin + if Assigned(ViewGrid) then + ViewGrid.MultiSelect := AValue; +end; + +procedure TfEditorGridBase.SetViewGrid(const Value: IViewGridBase); +begin + FViewGrid := Value; + if Assigned(FViewGrid) then + begin + FViewGrid.PopupMenu := GridPopupMenu; + FViewGrid.OnDblClick := actModificar.OnExecute; + end; +end; + +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; + + //En el caso de que el grid sea multiseleccin solo se podr modificar si solo se tiene un elemento seleccionado + if (Sender as TAction).Enabled then + if MultiSelect and Assigned(ViewGrid) then + (Sender as TAction).Enabled := (ViewGrid.NumSeleccionados = 1); +end; + +procedure TfEditorGridBase.actNuevoUpdate(Sender: TObject); +begin + inherited; + (Sender as TAction).Enabled := Assigned(dsDataTable.DataTable); +end; + +procedure TfEditorGridBase.actQuitarFiltroExecute(Sender: TObject); +begin + if Assigned(ViewGrid) then + begin + tbxEditFiltro.Text := ''; + ViewGrid.Filter := ''; + end; +end; + +procedure TfEditorGridBase.actRefrescarUpdate(Sender: TObject); +begin + inherited; + (Sender as TAction).Enabled := Assigned(dsDataTable.DataTable); +end; + +procedure TfEditorGridBase.ConfPaginaInterno; +begin + inherited; + ViewGrid.PrintSetup; +end; + +constructor TfEditorGridBase.Create(AOwner: TComponent); +begin + inherited; + 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; + + //En el caso de que el grid sea multiseleccin solo se podr modificar si solo se tiene un elemento seleccionado + if (Sender as TAction).Enabled then + if MultiSelect and Assigned(ViewGrid) then + (Sender as TAction).Enabled := (ViewGrid.NumSeleccionados = 1); +end; + +procedure TfEditorGridBase.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/GUIBase/uEditorItem.dfm b/Source/GUIBase/uEditorItem.dfm new file mode 100644 index 00000000..82c42af3 --- /dev/null +++ b/Source/GUIBase/uEditorItem.dfm @@ -0,0 +1,66 @@ +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' + ExplicitLeft = 0 + ExplicitTop = 0 + ExplicitWidth = 0 + ExplicitHeight = 0 + end + end + inherited TBXDock: TTBXDock + Width = 678 + ExplicitWidth = 678 + inherited tbxMain: TTBXToolbar + ExplicitWidth = 581 + inherited TBXItem5: TTBXItem + Visible = False + end + end + inherited tbxMenu: TTBXToolbar + ExplicitWidth = 678 + inherited TBXSubmenuItem4: TTBXSubmenuItem + inherited TBXItem10: TTBXItem + Visible = False + end + end + end + end + inherited StatusBar: TJvStatusBar + Top = 482 + Width = 678 + ExplicitTop = 482 + ExplicitWidth = 678 + end + inherited EditorActionList: TActionList + Top = 104 + inherited actEliminar: TAction + ShortCut = 0 + end + end +end diff --git a/Source/GUIBase/uEditorItem.pas b/Source/GUIBase/uEditorItem.pas new file mode 100644 index 00000000..72f75353 --- /dev/null +++ b/Source/GUIBase/uEditorItem.pas @@ -0,0 +1,39 @@ + +unit uEditorItem; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uEditorBase, ActnList, JvExControls, JvComponent, + JvNavigationPane, ComCtrls, StdActns, TB2Dock, TB2Toolbar, TBX, TB2Item, + ImgList, PngImageList, JvFormAutoSize, JvAppStorage, + JvAppRegistryStorage, JvFormPlacement, pngimage, ExtCtrls, + JvComponentBase, dxLayoutLookAndFeels, TBXStatusBars, JvExComCtrls, + JvStatusBar; + +type + IEditorItem = interface(IEditorBase) + ['{F6A412D1-59AA-41D2-ADD5-C92687CD5387}'] + end; + + TfEditorItem = class(TfEditorBase, IEditorItem) + pagGeneral: TTabSheet; + pgPaginas: TPageControl; + end; + +implementation + +uses uDMBase; + +{$R *.dfm} + +initialization + RegisterClass(TfEditorItem); + +finalization + + UnRegisterClass(TfEditorItem); + + +end. diff --git a/Source/GUIBase/uEditorPSPreview.dfm b/Source/GUIBase/uEditorPSPreview.dfm new file mode 100644 index 00000000..a3f98e6d --- /dev/null +++ b/Source/GUIBase/uEditorPSPreview.dfm @@ -0,0 +1,15 @@ +object Form1: TForm1 + Left = 580 + Top = 506 + Width = 320 + Height = 240 + Color = clBtnFace + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'MS Sans Serif' + Font.Style = [] + OldCreateOrder = True + PixelsPerInch = 96 + TextHeight = 13 +end diff --git a/Source/GUIBase/uEditorPSPreview.pas b/Source/GUIBase/uEditorPSPreview.pas new file mode 100644 index 00000000..683b4027 --- /dev/null +++ b/Source/GUIBase/uEditorPSPreview.pas @@ -0,0 +1,24 @@ +unit uEditorPSPreview; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, dxPSPrVw; + +type + TForm1 = class(TCustomdxPSPreviewWindow) + private + { Private declarations } + public + { Public declarations } + end; + +var + Form1: TForm1; + +implementation + +{$R *.dfm} + +end. diff --git a/Source/GUIBase/uEditorPreview.dfm b/Source/GUIBase/uEditorPreview.dfm new file mode 100644 index 00000000..5ed93afe --- /dev/null +++ b/Source/GUIBase/uEditorPreview.dfm @@ -0,0 +1,936 @@ +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 + ExplicitLeft = 623 + end + end + inherited TBXDock: TTBXDock + Height = 75 + ExplicitHeight = 75 + inherited tbxMain: TTBXToolbar + Top = 49 + DefaultDock = TBXDock + Visible = False + ExplicitTop = 49 + ExplicitWidth = 248 + end + inherited tbxMenu: TTBXToolbar + DockPos = -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 = 150 + end + item + Width = 50 + end> + 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 = '4.3' + DotMatrixReport = False + EngineOptions.DoublePass = True + IniFile = '\Software\Fast Reports' + PreviewOptions.Buttons = [pbPrint, pbLoad, pbSave, pbExport, pbZoom, pbFind, pbOutline, pbPageSetup, pbTools, pbEdit, pbNavigator] + PreviewOptions.Zoom = 1.000000000000000000 + PrintOptions.Printer = 'Default' + PrintOptions.PrintOnSheet = 0 + ReportOptions.CreateDate = 38658.858023541660000000 + ReportOptions.LastChange = 38658.858023541660000000 + ScriptLanguage = 'PascalScript' + ScriptText.Strings = ( + 'begin' + '' + 'end.') + StoreInDFM = False + Left = 16 + Top = 200 + end + object frxBarCodeObject1: TfrxBarCodeObject + Left = 16 + Top = 240 + end + object frxOLEObject1: TfrxOLEObject + Left = 48 + Top = 240 + end + object frxRichObject1: TfrxRichObject + Left = 48 + Top = 272 + end + object frxCrossObject1: TfrxCrossObject + Left = 80 + Top = 240 + end + object frxCheckBoxObject1: TfrxCheckBoxObject + Left = 80 + Top = 272 + end + object frxGradientObject1: TfrxGradientObject + Left = 16 + Top = 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/GUIBase/uEditorPreview.pas b/Source/GUIBase/uEditorPreview.pas new file mode 100644 index 00000000..414d2c8d --- /dev/null +++ b/Source/GUIBase/uEditorPreview.pas @@ -0,0 +1,355 @@ +unit uEditorPreview; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uEditorBase, ImgList, PngImageList, StdActns, ActnList, TBX, + TB2Item, TB2Dock, TB2Toolbar, JvExControls, JvComponent, JvNavigationPane, + TB2ExtItems, TBXExtItems, uViewPreview, frxClass, ComCtrls, frxPreview, + JvFormAutoSize, JvAppStorage, JvAppRegistryStorage, JvFormPlacement, + pngimage, frxExportImage, frxExportPDF, frxDCtrl, frxDMPExport, + frxGradient, frxChBox, frxCross, frxRich, frxOLE, frxBarcode, + ExtCtrls, JvComponentBase, TBXStatusBars, JvExComCtrls, JvStatusBar; + +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; + 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, + 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; + FreeAndNil(FPreview); +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/GUIBase/uEditorUtils.pas b/Source/GUIBase/uEditorUtils.pas new file mode 100644 index 00000000..68b4b868 --- /dev/null +++ b/Source/GUIBase/uEditorUtils.pas @@ -0,0 +1,108 @@ +unit uEditorUtils; + +interface + +uses + uEditorItem, uDADataTable, Controls; + +type + TFuncItemEditor = function(ABizObject : TDADataTableRules) : TModalResult; + TProcItemEditor = procedure(ABizObject : TDADataTableRules); + TFuncGetEditor = function : IEditorItem; + + TEditorType = (etItem, etItems, etSelectItems); + +procedure RegisterEditor(const IID : TGUID; const AFuncItemEditor : TFuncItemEditor; + const AType : TEditorType); + +function ShowEditor(const IID : TGUID; ABizObject : TDADataTableRules; + const AType : TEditorType) : TModalResult; + + +implementation + +uses + Dialogs, Classes, ComObj, SysUtils; + +var + FBizEditorsList : TList; + +type + PBizEditorsRec = ^TBizEditorsRec; + TBizEditorsRec = record + IID : String; + ItemEditor : TFuncItemEditor; + ItemsEditor : TFuncItemEditor; + SelectItemsEditor : TFuncItemEditor; + end; + + +function FindBizEditors(const IID : TGUID) : PBizEditorsRec; +var + P: PBizEditorsRec; + I: Integer; + AIID : String; +begin + Result := NIL; + AIID := GUIDToString(IID); + if FBizEditorsList <> nil then + for I := 0 to FBizEditorsList.Count-1 do + begin + P := FBizEditorsList[I]; + if (AIID = P^.IID) then + begin + Result := P; + Break; + end; + end; +end; + +procedure RegisterEditor(const IID : TGUID; const AFuncItemEditor : TFuncItemEditor; + const AType : TEditorType); +var + P: PBizEditorsRec; +begin + P := NIL; + if FBizEditorsList = nil then + FBizEditorsList := TList.Create; + + P := FindBizEditors(IID); + if not Assigned(P) then + New(P); + try + P^.IID := GUIDToString(IID); + case AType of + etItem : P^.ItemEditor := AFuncItemEditor; + etItems : P^.ItemsEditor := AFuncItemEditor; + etSelectItems : P^.SelectItemsEditor := AFuncItemEditor; + end; + FBizEditorsList.Insert(0, P); + except + on E: EConvertError do + ShowMessage(E.Message); + end; +end; + +function ShowEditor(const IID : TGUID; ABizObject : TDADataTableRules; + const AType : TEditorType) : TModalResult; +var + P: PBizEditorsRec; +begin + P := FindBizEditors(IID); + + if Assigned(P) then + case AType of + etItem : Result := P.ItemEditor(ABizObject); + etItems : Result := P.ItemsEditor(ABizObject); + etSelectItems : Result := P.SelectItemsEditor(ABizObject); + end; +end; + + +initialization + FBizEditorsList := TList.Create; + +finalization + FBizEditorsList.Free; + +end. diff --git a/Source/GUIBase/uViewBarraSeleccion.dfm b/Source/GUIBase/uViewBarraSeleccion.dfm new file mode 100644 index 00000000..80b9c732 --- /dev/null +++ b/Source/GUIBase/uViewBarraSeleccion.dfm @@ -0,0 +1,65 @@ +inherited frViewBarraSeleccion: TfrViewBarraSeleccion + Width = 451 + Height = 49 + Align = alBottom + ExplicitWidth = 451 + ExplicitHeight = 49 + object JvFooter1: TJvFooter + Left = 0 + Top = 0 + Width = 451 + Height = 49 + Margins.Left = 5 + Margins.Right = 5 + Align = alClient + DesignSize = ( + 451 + 49) + object bSeleccionar: TJvFooterBtn + Left = 239 + Top = 10 + Width = 100 + Height = 29 + Action = actSeleccionar + Anchors = [akRight, akBottom] + Default = True + ModalResult = 1 + TabOrder = 0 + HotTrackFont.Charset = DEFAULT_CHARSET + HotTrackFont.Color = clWindowText + HotTrackFont.Height = -11 + HotTrackFont.Name = 'Tahoma' + HotTrackFont.Style = [] + ButtonIndex = 0 + SpaceInterval = 6 + end + object bCancelar: TJvFooterBtn + Left = 343 + Top = 10 + Width = 100 + Height = 28 + Action = actCancelar + Anchors = [akRight, akBottom] + Cancel = True + ModalResult = 2 + TabOrder = 1 + HotTrackFont.Charset = DEFAULT_CHARSET + HotTrackFont.Color = clWindowText + HotTrackFont.Height = -11 + HotTrackFont.Name = 'Tahoma' + HotTrackFont.Style = [] + ButtonIndex = 1 + SpaceInterval = 6 + end + end + object BarraSeleccionActionList: TActionList + Left = 12 + Top = 3 + object actSeleccionar: TAction + Caption = 'Seleccionar' + end + object actCancelar: TAction + Caption = 'Cancelar' + end + end +end diff --git a/Source/GUIBase/uViewBarraSeleccion.pas b/Source/GUIBase/uViewBarraSeleccion.pas new file mode 100644 index 00000000..01e7549e --- /dev/null +++ b/Source/GUIBase/uViewBarraSeleccion.pas @@ -0,0 +1,28 @@ +unit uViewBarraSeleccion; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uViewBase, StdCtrls, ActnList, ExtCtrls, JvExStdCtrls, JvButton, + JvCtrls, JvFooter, JvExExtCtrls, JvComponent, JvExtComponent; + +type + TfrViewBarraSeleccion = class(TfrViewBase) + JvFooter1: TJvFooter; + bSeleccionar: TJvFooterBtn; + bCancelar: TJvFooterBtn; + BarraSeleccionActionList: TActionList; + actSeleccionar: TAction; + actCancelar: TAction; + private + { Private declarations } + public + { Public declarations } + end; + +implementation + +{$R *.dfm} + +end. diff --git a/Source/GUIBase/uViewBase.dfm b/Source/GUIBase/uViewBase.dfm new file mode 100644 index 00000000..17e1d504 --- /dev/null +++ b/Source/GUIBase/uViewBase.dfm @@ -0,0 +1,14 @@ +object frViewBase: TfrViewBase + Left = 0 + Top = 0 + Width = 445 + Height = 291 + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + TabOrder = 0 + ReadOnly = False +end diff --git a/Source/GUIBase/uViewBase.pas b/Source/GUIBase/uViewBase.pas new file mode 100644 index 00000000..a438e24f --- /dev/null +++ b/Source/GUIBase/uViewBase.pas @@ -0,0 +1,56 @@ +unit uViewBase; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uGUIBase, uCustomView, JvComponent, JvFormAutoSize; + +type + IViewBase = interface(ICustomView) + ['{82FBDF28-9C5F-4922-952E-0E84D67FE4BB}'] + procedure Refresh; + end; + + TfrViewBase = class(TCustomView, IViewBase) + protected + procedure SetReadOnly(Value: Boolean); override; + + public + procedure Refresh; virtual; + end; + +implementation + +{$R *.dfm} + + +uses + cxDBEdit, cxControls, dxLayoutControl; + +{ TfrViewBase } + +procedure TfrViewBase.Refresh; +begin + // +end; + +procedure TfrViewBase.SetReadOnly(Value: Boolean); +var + i: integer; +begin + inherited; + + if ReadOnly then + for i:=0 to Self.ComponentCount-1 do + begin + If (Self.Components[i] Is TfrViewBase) then + (Self.Components[i] as TfrViewBase).ReadOnly := ReadOnly; + + If (Self.Components[i] Is TcxControl) + and (not (Self.Components[i] Is TdxLayoutControl)) then + (Self.Components[i] as TcxControl).Enabled := not ReadOnly; + end; +end; + +end. diff --git a/Source/GUIBase/uViewDetallesBase.dfm b/Source/GUIBase/uViewDetallesBase.dfm new file mode 100644 index 00000000..261580f1 --- /dev/null +++ b/Source/GUIBase/uViewDetallesBase.dfm @@ -0,0 +1,716 @@ +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 = 0 + Action = actAnadir + AutoSize = True + end + object ToolButton2: TToolButton + Left = 62 + Top = 0 + Action = actEliminar + AutoSize = True + end + object ToolButton3: TToolButton + Left = 129 + Top = 0 + Action = actSubir + AutoSize = True + end + object ToolButton4: TToolButton + Left = 184 + Top = 0 + Action = actBajar + AutoSize = True + end + object ToolButton14: TToolButton + Left = 240 + Top = 0 + Action = FontEdit1 + AutoSize = True + Wrap = True + end + object FontName: TJvFontComboBox + Left = 0 + Top = 22 + Width = 145 + Height = 22 + DroppedDownWidth = 145 + MaxMRUCount = 0 + FontName = 'Tahoma' + ItemIndex = 34 + Options = [foTrueTypeOnly, foNoOEMFonts, foScalableOnly, foWysiWyg] + Sorted = True + TabOrder = 2 + Visible = False + OnChange = FontNameChange + OnClick = FontNameChange + end + object FontSize: TEdit + Left = 145 + Top = 22 + 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 = 22 + Width = 16 + Height = 22 + Associate = FontSize + TabOrder = 0 + Visible = False + end + object ToolButton13: TToolButton + Left = 187 + Top = 22 + Width = 8 + Caption = 'ToolButton13' + ImageIndex = 10 + Style = tbsSeparator + end + object ToolButton6: TToolButton + Left = 195 + Top = 22 + Action = RichEditBold1 + AutoSize = True + end + object ToolButton7: TToolButton + Left = 229 + Top = 22 + Action = RichEditItalic1 + AutoSize = True + end + object ToolButton8: TToolButton + Left = 263 + Top = 22 + Action = RichEditUnderline1 + AutoSize = True + end + object ToolButton12: TToolButton + Left = 297 + Top = 22 + Width = 8 + Caption = 'ToolButton12' + ImageIndex = 10 + Style = tbsSeparator + end + object ToolButton9: TToolButton + Left = 305 + Top = 22 + Action = RichEditAlignLeft1 + AutoSize = True + end + object ToolButton10: TToolButton + Left = 339 + Top = 22 + Action = RichEditAlignCenter1 + AutoSize = True + end + object ToolButton11: TToolButton + Left = 373 + Top = 22 + 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 + OptionsView.NewItemRowInfoText = 'Click here to add a new row' + 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 + OnUpdate = actAnadirUpdate + end + object actEliminar: TAction + Category = 'Operaciones' + Caption = 'Eliminar' + ImageIndex = 1 + ShortCut = 16430 + OnExecute = actEliminarExecute + OnUpdate = actEliminarUpdate + end + object actSubir: TAction + Category = 'Operaciones' + Caption = 'Subir' + ImageIndex = 2 + OnExecute = actSubirExecute + OnUpdate = actSubirUpdate + end + object actBajar: TAction + Category = 'Operaciones' + Caption = 'Bajar' + ImageIndex = 3 + OnExecute = actBajarExecute + OnUpdate = actBajarUpdate + end + object RichEditBold1: TRichEditBold + Category = '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/GUIBase/uViewDetallesBase.pas b/Source/GUIBase/uViewDetallesBase.pas new file mode 100644 index 00000000..146a5e37 --- /dev/null +++ b/Source/GUIBase/uViewDetallesBase.pas @@ -0,0 +1,748 @@ +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, uDAInterfaces; + +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 actAnadirUpdate(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; + procedure SeleccionarRowActual; + + 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} + +uses uCalculosUtils; + +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 aadir + bEsMultiSelect := cxGridView.OptionsSelection.MultiSelect; + if bEsMultiSelect then + cxGridView.OptionsSelection.MultiSelect := False; + + cxGridView.BeginUpdate; + try + if cxGridView.Controller.EditingController.IsEditing then + cxGridView.Controller.EditingController.Edit.PostEditValue; + + 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; + + SeleccionarRowActual; +end; + +procedure TfrViewDetallesBase.actEliminarUpdate(Sender: TObject); +begin + if not Assigned(DADataSource.DataTable) then + (Sender as TAction).Enabled := False + else + (Sender as TAction).Enabled := (not ReadOnly) + and (not DADataSource.DataTable.IsEmpty) +end; + +procedure TfrViewDetallesBase.actSubirUpdate(Sender: TObject); +begin + inherited; + if not Assigned(cxGridView.Controller.FocusedRow) then + (Sender as TAction).Enabled := False + else + (Sender as TAction).Enabled := (not ReadOnly) + and (not cxGridView.Controller.FocusedRow.IsFirst) +end; + +procedure TfrViewDetallesBase.AjustarAncho; +begin + if Assigned(_FocusedView) then + _FocusedView.ApplyBestFit; +end; + +procedure TfrViewDetallesBase.BeginUpdate; +begin + if Assigned(_FocusedView) then + _FocusedView.BeginUpdate; +end; + +function TfrViewDetallesBase.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 lgica del controllerDetallesBase + if cxGridView.Controller.IsFinish then + begin + Key := 0; + if Sender.Controller.EditingController.IsEditing then + Sender.Controller.EditingController.Edit.PostEditValue; + actAnadir.Execute; + end; + + //Baja los conceptos seleccionados + if Shift = [ssAlt] then + begin + Key := 0; + actBajar.Execute; + end; + end; + VK_UP : begin + //Sube los conceptos seleccionados + if Shift = [ssAlt] then + begin + Key := 0; + actSubir.Execute; + end; + end; + + VK_RETURN, VK_RIGHT + : begin + //En el caso de ser la ltima fila hacemos un append nosotros no el grid + //ya que se saltaria la lgica del controllerDetallesBase + if 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.SeleccionarRowActual; +begin + //Quitamos lo que hubiera seleccionado + cxGrid.ActiveView.DataController.ClearSelection; + with cxGrid.ActiveView.DataController do + if RowCount > 0 then + SelectRows(GetFocusedRowIndex,GetFocusedRowIndex); +end; + +procedure TfrViewDetallesBase.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.actAnadirUpdate(Sender: TObject); +begin + inherited; + (Sender as TAction).Enabled := not ReadOnly; +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 not Assigned(cxGridView.Controller.FocusedRow) then + (Sender as TAction).Enabled := False + else + (Sender as TAction).Enabled := (not ReadOnly) + and (not cxGridView.Controller.FocusedRow.IsLast) +end; + +procedure TfrViewDetallesBase.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/GUIBase/uViewDetallesDTO.dfm b/Source/GUIBase/uViewDetallesDTO.dfm new file mode 100644 index 00000000..618d7d45 --- /dev/null +++ b/Source/GUIBase/uViewDetallesDTO.dfm @@ -0,0 +1,95 @@ +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.EditFormat = ',0.00;-,0.00' + Properties.MaxValue = 100.000000000000000000 + end + object cxGridViewIMPORTENETO: TcxGridDBColumn [7] + Caption = 'Importe neto' + DataBinding.ValueType = 'Currency' + PropertiesClassName = 'TcxCurrencyEditProperties' + Properties.Alignment.Horz = taRightJustify + Properties.DisplayFormat = ',0.00 '#8364';-,0.00 '#8364 + Properties.EditFormat = ',0.00 '#8364';-,0.00 '#8364 + Properties.ReadOnly = True + Properties.OnValidate = cxGridViewIMPORTENETOPropertiesValidate + 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 + 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/GUIBase/uViewDetallesDTO.pas b/Source/GUIBase/uViewDetallesDTO.pas new file mode 100644 index 00000000..337697dc --- /dev/null +++ b/Source/GUIBase/uViewDetallesDTO.pas @@ -0,0 +1,75 @@ +unit uViewDetallesDTO; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uViewDetallesBase, cxStyles, cxCustomData, cxGraphics, cxFilter, + cxData, cxDataStorage, cxEdit, DB, cxDBData, cxImageComboBox, cxRichEdit, + cxMaskEdit, cxCurrencyEdit, cxCheckBox, ImgList, PngImageList, uDADataTable, + StdActns, ExtActns, ActnList, TB2Item, TBX, TB2Dock, TB2Toolbar, cxGridLevel, + cxGridCustomTableView, cxGridTableView, cxGridDBTableView, cxClasses, + cxControls, cxGridCustomView, cxGrid, ComCtrls, StdCtrls, JvExStdCtrls, + JvCombobox, JvColorCombo, ToolWin, uDAInterfaces; + +type + IViewDetallesDTO = interface(IViewDetallesBase) + ['{0D221FFB-9F43-48FC-9AE7-0AD0F0791AD1}'] + end; + + TfrViewDetallesDTO = class(TfrViewDetallesBase, IViewDetallesDTO) + cxGridViewDESCUENTO: TcxGridDBColumn; + cxGridViewIMPORTEPORTE: TcxGridDBColumn; + cxGridViewIMPORTENETO: TcxGridDBColumn; + procedure cxGridViewIMPORTENETOGetDisplayText(Sender: TcxCustomGridTableItem; ARecord: TcxCustomGridRecord; + var AText: string); + procedure cxGridViewIMPORTENETOPropertiesValidate(Sender: TObject; + var DisplayValue: Variant; var ErrorText: TCaption; var Error: Boolean); + protected + function HayQueRecalcular(AItem: TcxCustomGridTableItem): Boolean; override; + end; + +implementation +{$R *.dfm} + +{ TfrViewDetallesDTO } + +procedure TfrViewDetallesDTO.cxGridViewIMPORTENETOGetDisplayText(Sender: TcxCustomGridTableItem; ARecord: TcxCustomGridRecord; + var AText: string); +var + ImporteNeto : Double; +begin + //Se encarga de mostrar el campo calculado de importe neto + ImporteNeto := -1; + + if not VarIsNull(ARecord.Values[cxGridViewIMPORTEUNIDAD.Index]) then + if not VarIsNull(ARecord.Values[cxGridViewDESCUENTO.Index]) then + ImporteNeto := ARecord.Values[cxGridViewIMPORTEUNIDAD.Index] - ((ARecord.Values[cxGridViewIMPORTEUNIDAD.Index] * ARecord.Values[cxGridViewDESCUENTO.Index])/100) + else + ImporteNeto := ARecord.Values[cxGridViewIMPORTEUNIDAD.Index]; + + if (ImporteNeto <> -1) then + begin + AText := FormatCurr(',0.00 ;-,0.00 ', FloatToCurr(ImporteNeto)) + end; +end; + +procedure TfrViewDetallesDTO.cxGridViewIMPORTENETOPropertiesValidate(Sender: TObject; var DisplayValue: Variant; var ErrorText: TCaption; + var Error: Boolean); +begin + inherited; + if not VarIsNull(DisplayValue) then + begin + cxGridViewDESCUENTO.DataBinding.Field.Value := ((cxGridViewIMPORTEUNIDAD.DataBinding.Field.Value - DisplayValue) * 100) / cxGridViewIMPORTEUNIDAD.DataBinding.Field.Value; + Controller.ActualizarTotales(Detalles); + end; +end; + +function TfrViewDetallesDTO.HayQueRecalcular(AItem: TcxCustomGridTableItem): Boolean; +begin + Result := inherited HayQueRecalcular(AItem); + if not Result then + Result := (AItem = cxGridViewDESCUENTO) or (AItem = cxGridViewIMPORTEPORTE); +end; + +end. diff --git a/Source/GUIBase/uViewDetallesGenerico.dfm b/Source/GUIBase/uViewDetallesGenerico.dfm new file mode 100644 index 00000000..3afdb87e --- /dev/null +++ b/Source/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/GUIBase/uViewDetallesGenerico.pas b/Source/GUIBase/uViewDetallesGenerico.pas new file mode 100644 index 00000000..6261decc --- /dev/null +++ b/Source/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, uDAInterfaces; + +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 aadir + bEsMultiSelect := cxGridView.OptionsSelection.MultiSelect; + if bEsMultiSelect then + cxGridView.OptionsSelection.MultiSelect := False; + + cxGridView.BeginUpdate; + try + if cxGridView.Controller.EditingController.IsEditing then + cxGridView.Controller.EditingController.Edit.PostEditValue; + + AnadirInterno; + finally + cxGridView.EndUpdate; + + // Dejo la propiedad MultiSelect como estaba + if bEsMultiSelect then + cxGridView.OptionsSelection.MultiSelect := bEsMultiSelect; + end; +end; + +procedure TfrViewDetallesGenerico.actAnadirUpdate(Sender: TObject); +begin + inherited; + (Sender as TAction).Enabled := Assigned(dsDetalles.DataTable); +end; + +procedure TfrViewDetallesGenerico.actAnchoAutomaticoExecute(Sender: TObject); +begin + inherited; + cxGridView.ApplyBestFit; +end; + +procedure TfrViewDetallesGenerico.actEliminarExecute(Sender: TObject); +var + AuxTop, AuxRow:Integer; +begin + cxGridView.BeginUpdate; + AuxTop := cxGridView.Controller.TopRowIndex; + AuxRow := cxGridView.DataController.FocusedRowIndex; + try + EliminarInterno; + + //Selecciona en el grid el registro siguiente + if (AuxRow < cxGridView.DataController.RowCount-1) then + Inc(AuxRow) + else + Dec(AuxRow); + + if dsDetalles.DataTable.RecordCount > 0 then + begin + cxGridView.DataController.SelectRows(AuxRow,AuxRow); + cxGridView.Controller.TopRowIndex := AuxTop; + end; + finally + cxGridView.EndUpdate; + end; +end; + +procedure TfrViewDetallesGenerico.actEliminarUpdate(Sender: TObject); +begin + inherited; + (Sender as TAction).Enabled := HayDatos; +end; + +procedure TfrViewDetallesGenerico.actModificarExecute(Sender: TObject); +begin + inherited; + ModificarInterno; +end; + +procedure TfrViewDetallesGenerico.actModificarUpdate(Sender: TObject); +begin + inherited; + (Sender as TAction).Enabled := HayDatos and + (cxGridView.DataController.FocusedRowIndex >= 0) +end; + +procedure TfrViewDetallesGenerico.AnadirInterno; +begin + dsDetalles.DataTable.Insert; +end; + +procedure TfrViewDetallesGenerico.cxGridViewEditKeyDown( + Sender: TcxCustomGridTableView; AItem: TcxCustomGridTableItem; + AEdit: TcxCustomEdit; var Key: Word; Shift: TShiftState); +begin + inherited; + cxGridView.BeginUpdate; + try + Case Key of + VK_DOWN : begin + //En el caso de ser la ltima fila hacemos un append nosotros no el grid + //ya que se saltaria la lgica del controllerDetallesBase + if cxGridView.Controller.IsFinish then + begin + Key := 0; + if Sender.Controller.EditingController.IsEditing then + Sender.Controller.EditingController.Edit.PostEditValue; + actAnadir.Execute; + end; + end; + + VK_RETURN, VK_RIGHT + : begin + //En el caso de ser la ltima fila hacemos un append nosotros no el grid + //ya que se saltaria la lgica del controllerDetallesBase + if cxGridView.Controller.IsFinish + and AItem.IsLast then + begin + Key := 0; + if Sender.Controller.EditingController.IsEditing then + Sender.Controller.EditingController.Edit.PostEditValue; + actAnadir.Execute; + end; + end; + end; + finally + cxGridView.EndUpdate; + end; +end; + +procedure TfrViewDetallesGenerico.EliminarInterno; +begin + dsDetalles.DataTable.Delete; +end; + +function TfrViewDetallesGenerico.GetModified: Boolean; +begin + Result := DataTableModified(dsDetalles.DataTable) or inherited GetModified; +end; + +function TfrViewDetallesGenerico.HayDatos: Boolean; +begin + Result := Assigned(dsDetalles.DataTable) and + (cxGridView.ViewInfo.VisibleRecordCount > 0) +end; + +procedure TfrViewDetallesGenerico.ModificarInterno; +begin + // +end; + +end. diff --git a/Source/GUIBase/uViewFiltroBase.dfm b/Source/GUIBase/uViewFiltroBase.dfm new file mode 100644 index 00000000..5f4f8bf6 --- /dev/null +++ b/Source/GUIBase/uViewFiltroBase.dfm @@ -0,0 +1,198 @@ +object frViewFiltroBase: TfrViewFiltroBase + Left = 0 + Top = 0 + Width = 565 + Height = 102 + TabOrder = 0 + Visible = False + object TBXDockablePanel1: TTBXDockablePanel + Left = 0 + Top = 0 + Align = alClient + Caption = 'TBXDockablePanel1' + CloseButton = False + CloseButtonWhenDocked = False + DockedHeight = 98 + DockMode = dmCannotFloatOrChangeDocks + FloatingWidth = 128 + FloatingHeight = 98 + ShowCaption = False + ShowCaptionWhenDocked = False + SupportedDocks = [dkStandardDock, dkMultiDock] + TabOrder = 0 + ExplicitWidth = 128 + ExplicitHeight = 98 + object dxLayoutControl1: TdxLayoutControl + Left = 0 + Top = 0 + Width = 565 + Height = 68 + Align = alTop + ParentBackground = True + TabOrder = 0 + AutoContentSizes = [acsWidth, acsHeight] + ExplicitWidth = 128 + 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 = 350 + 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 = 565 + Height = 30 + Margins.Left = 10 + Align = alTop + TabOrder = 1 + object tbxBotones: TTBXToolbar + Left = 10 + Top = 0 + Width = 555 + Height = 30 + Align = alTop + AutoResize = False + BorderStyle = bsNone + Caption = 'tbxBotones' + ChevronHint = 'M'#225's botones|' + DockMode = dmCannotFloatOrChangeDocks + DockPos = -23 + DockRow = 1 + DragHandleStyle = dhNone + ParentShowHint = False + ShowHint = True + TabOrder = 0 + object TBXItem2: TTBXItem + Action = actQuitarFiltro + DisplayMode = nbdmImageAndText + Images = PngImageList + end + end + end + end + object dxLayoutLookAndFeelList1: TdxLayoutLookAndFeelList + Left = 136 + Top = 16 + end + object ActionList1: TActionList + Images = PngImageList + Left = 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/GUIBase/uViewFiltroBase.pas b/Source/GUIBase/uViewFiltroBase.pas new file mode 100644 index 00000000..d9fe4f45 --- /dev/null +++ b/Source/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; + 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} + +uses uDialogUtils; + +{ 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 + ShowWarningMessage('La fecha de inicio debe ser anterior a la fecha final'); + edtFechaIniFiltro.SetFocus; + Result := False; + end + end; +end; + +procedure TfrViewFiltroBase.actQuitarFiltroExecute(Sender: TObject); +begin + LimpiarCampos; + if Assigned(FOnFiltrosChange) then + FOnFiltrosChange(Sender); +end; + +function TfrViewFiltroBase.GetTexto: String; +begin + Result := txtFiltroTodo.Text; +end; + +procedure TfrViewFiltroBase.SetTexto(const Value: String); +begin + txtFiltroTodo.Text := Value; +end; + +end. diff --git a/Source/GUIBase/uViewFormaPago.dfm b/Source/GUIBase/uViewFormaPago.dfm new file mode 100644 index 00000000..1660a70a --- /dev/null +++ b/Source/GUIBase/uViewFormaPago.dfm @@ -0,0 +1,47 @@ +inherited frViewFormaPago: TfrViewFormaPago + Width = 300 + ExplicitWidth = 300 + DesignSize = ( + 300 + 291) + object Label5: TLabel + Left = 8 + Top = 8 + Width = 85 + Height = 13 + Caption = 'Forma de pago' + Font.Charset = DEFAULT_CHARSET + Font.Color = clActiveCaption + Font.Height = -11 + Font.Name = 'MS Sans Serif' + Font.Style = [fsBold] + ParentFont = False + end + object Bevel1: TBevel + Left = 96 + Top = 8 + Width = 192 + Height = 9 + Anchors = [akLeft, akTop, akRight] + Shape = bsBottomLine + end + object memFormaPago: TcxDBMemo + Left = 16 + Top = 32 + Anchors = [akLeft, akTop, akRight, akBottom] + DataBinding.DataField = 'FORMA_PAGO' + DataBinding.DataSource = DADataSource + Properties.ScrollBars = ssVertical + Style.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 0 + Height = 175 + Width = 269 + end + object DADataSource: TDADataSource + Left = 16 + Top = 48 + end +end diff --git a/Source/GUIBase/uViewFormaPago.pas b/Source/GUIBase/uViewFormaPago.pas new file mode 100644 index 00000000..fe3d269e --- /dev/null +++ b/Source/GUIBase/uViewFormaPago.pas @@ -0,0 +1,26 @@ +unit uViewFormaPago; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uViewBase, DB, uDADataTable, cxMemo, cxDBEdit, cxControls, + cxContainer, cxEdit, cxTextEdit, ExtCtrls, StdCtrls; + +type + TfrViewFormaPago = class(TfrViewBase) + DADataSource: TDADataSource; + memFormaPago: TcxDBMemo; + Label5: TLabel; + Bevel1: TBevel; + private + { Private declarations } + public + { Public declarations } + end; + +implementation + +{$R *.dfm} + +end. diff --git a/Source/GUIBase/uViewGrid.dfm b/Source/GUIBase/uViewGrid.dfm new file mode 100644 index 00000000..77f34363 --- /dev/null +++ b/Source/GUIBase/uViewGrid.dfm @@ -0,0 +1,323 @@ +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.DataRowHeight = 22 + OptionsView.Footer = True + OptionsView.GridLineColor = clHighlight + OptionsView.GridLines = glHorizontal + OptionsView.GroupByBox = False + OptionsView.HeaderEndEllipsis = True + OptionsView.NewItemRowInfoText = 'Click here to add a new row' + 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 TBXDockablePanel1: TTBXDockablePanel + ExplicitWidth = 554 + ExplicitHeight = 102 + inherited dxLayoutControl1: TdxLayoutControl + Width = 554 + ExplicitWidth = 554 + inherited edtFechaFinFiltro: TcxDateEdit + Left = 343 + ExplicitLeft = 343 + end + end + inherited TBXAlignmentPanel1: TTBXAlignmentPanel + Width = 554 + ExplicitWidth = 554 + inherited tbxBotones: TTBXToolbar + Width = 544 + ExplicitWidth = 544 + 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 + 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 = 39384.477436516200000000 + 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/GUIBase/uViewGrid.pas b/Source/GUIBase/uViewGrid.pas new file mode 100644 index 00000000..34abaae1 --- /dev/null +++ b/Source/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, uDAInterfaces; + +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 + uDMBase, 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/GUIBase/uViewGrid2Niveles.dfm b/Source/GUIBase/uViewGrid2Niveles.dfm new file mode 100644 index 00000000..abc45386 --- /dev/null +++ b/Source/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/GUIBase/uViewGrid2Niveles.pas b/Source/GUIBase/uViewGrid2Niveles.pas new file mode 100644 index 00000000..4d1796f8 --- /dev/null +++ b/Source/GUIBase/uViewGrid2Niveles.pas @@ -0,0 +1,211 @@ +{*******************************************************} +{ } +{ Administracin de puntos de venta } +{ } +{ Copyright (C) 2006 Rodax Software S.L. } +{ } +{*******************************************************} + +unit uViewGrid2Niveles; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uViewBase, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData, + cxDataStorage, cxEdit, DB, cxDBData, uDADataTable, cxGridLevel, + cxClasses, cxControls, cxGridCustomView, cxGridCustomTableView, + cxGridTableView, cxGridDBTableView, cxGrid, Menus, ActnList, Grids, + DBGrids, JvComponent, JvFormAutoSize, dxPSGlbl, dxPSUtl, dxPSEngn, + dxPrnPg, dxBkgnd, dxWrap, dxPrnDev, dxPSCompsProvider, dxPSFillPatterns, + dxPSEdgePatterns, dxPSCore, dxPScxCommon, dxPScxGridLnk, dxPrnDlg, + cxIntlPrintSys3, dxPSPrvwAdv, uViewGridBase, cxGridCustomPopupMenu, + cxGridPopupMenu, uDAInterfaces; + +type + IViewGrid2Niveles = interface(IViewGridBase) + ['{7EA40980-AD73-4590-A53A-932316C7B121}'] + end; + + TfrViewGrid2Niveles = class(TfrViewGridBase, IViewGrid2Niveles) + cxGrid: TcxGrid; + cxGridLevel1N: TcxGridLevel; + cxGridView1N: TcxGridDBTableView; + dxComponentPrinter: TdxComponentPrinter; + dxPSEngineController1: TdxPSEngineController; + cxStyleRepository1: TcxStyleRepository; + cxStyleEven: TcxStyle; + cxStyleOdd: TcxStyle; + cxStyleSelection: TcxStyle; + cxStyleSinOrden: TcxStyle; + cxStyleConOrden: TcxStyle; + cxViewGridPopupMenu: TcxGridPopupMenu; + dxComponentPrinterLink: TdxGridReportLink; + cxStyleFiltered: TcxStyle; + cxStyleFilteredConOrden: TcxStyle; + cxGridLevel: TcxGridLevel; + cxGridView: TcxGridDBTableView; + procedure cxGridViewStylesGetContentStyle( + Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord; + AItem: TcxCustomGridTableItem; out AStyle: TcxStyle); + procedure cxGridView1NDblClick(Sender: TObject); + protected + function GetGrid : TcxGrid; override; + function GetFocusedView : TcxGridDBTableView; override; + procedure SetPopupMenu(const Value: TPopupMenu); override; + procedure FilterChanged(Sender : TObject); override; + function GetFiltered: Boolean; override; + procedure FiltrarGrid(TextoFiltro : String); override; + public + procedure AjustarAncho; override; + procedure ContraerTodo; override; + procedure ExpandirTodo; override; + function IsEmpty : Boolean; override; + procedure RestoreFromRegistry (const Path : String); override; + procedure StoreToRegistry (const Path : String); override; + end; + +implementation + +uses + uDMBase, uDBSelectionListUtils; + +{$R *.dfm} + +{ +********************************* TfrViewGrid ********************************** +} + +{ TfrViewGrid } +function TfrViewGrid2Niveles.GetFiltered: Boolean; +begin + Result := inherited GetFiltered; + Result := Result OR (cxGridView1N.DataController.Filter.Root.Count > 0); +end; + +function TfrViewGrid2Niveles.GetFocusedView: TcxGridDBTableView; +begin + Result := cxGridView; +end; + +function TfrViewGrid2Niveles.GetGrid: TcxGrid; +begin + Result := cxGrid; +end; + +function TfrViewGrid2Niveles.IsEmpty: Boolean; +begin + Result := (cxGridView1N.ViewData.RowCount < 1); +end; + +procedure TfrViewGrid2Niveles.RestoreFromRegistry(const Path: String); +begin + inherited; + cxGridView1N.RestoreFromRegistry(Path + '\\GridSettings\\' + Self.Name, False, False, []); +end; + +procedure TfrViewGrid2Niveles.SetPopupMenu(const Value: TPopupMenu); +begin + inherited; + cxViewGridPopupMenu.PopupMenus[0].PopupMenu := FPopupMenu; +end; + +procedure TfrViewGrid2Niveles.StoreToRegistry(const Path: String); +begin + inherited; + cxGridView1N.StoreToRegistry(Path + '\\GridSettings\\' + Self.Name, False, []); +end; + +procedure TfrViewGrid2Niveles.AjustarAncho; +begin + inherited; + cxGridView1N.ApplyBestFit; +end; + +procedure TfrViewGrid2Niveles.ContraerTodo; +begin + inherited; + cxGridView1N.ViewData.Collapse(True); +end; + +procedure TfrViewGrid2Niveles.cxGridView1NDblClick(Sender: TObject); +begin + inherited; + if Assigned(FOnDblClick) then + FOnDblClick(Sender); +end; + +procedure TfrViewGrid2Niveles.cxGridViewStylesGetContentStyle( + Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord; + AItem: TcxCustomGridTableItem; out AStyle: TcxStyle); +begin + inherited; + if Assigned(AItem) then + begin + if AItem.SortOrder = soNone then + AStyle := cxStyleSinOrden + else begin + AStyle := cxStyleConOrden; + if Filtered then + AStyle := cxStyleFilteredConOrden; + end; + end; +end; + +procedure TfrViewGrid2Niveles.ExpandirTodo; +begin + inherited; + cxGridView1N.ViewData.Expand(True); +end; + +procedure TfrViewGrid2Niveles.FilterChanged(Sender: TObject); +begin + inherited; + if Filtered then + begin + _FocusedView.Styles.Content := cxStyleFiltered; + cxGridView1N.Styles.Content := cxStyleFiltered + end + else + begin + _FocusedView.Styles.Content := nil; + cxGridView1N.Styles.Content := nil + end; +end; + +procedure TfrViewGrid2Niveles.FiltrarGrid(TextoFiltro: String); +var + Columna: TcxGridDBColumn; + i: Integer; + AItemList: TcxFilterCriteriaItemList; +begin + inherited; + + with cxGridView1N.DataController.Filter do + begin + BeginUpdate; + try + Options := [fcoCaseInsensitive, fcoSoftCompare]; + Root.Clear; + if Length(TextoFiltro) > 0 then + begin + AItemList := Root.AddItemList(fboAnd); + AItemList.BoolOperatorKind := fboOr; + for i:=0 to (cxGridView1N as TcxGridDBTableView).ColumnCount - 1 do + begin + Columna := (cxGridView1N as TcxGridDBTableView).Columns[i]; + if (Length(Columna.Caption) > 0) and (Columna.Caption <> 'RecID') then + AItemList.AddItem(Columna, foLike, '%'+TextoFiltro+'%', IntToStr(i)); + end; + Active := True; + end + else + Active := False; + finally + EndUpdate; + end; + end; +end; + +end. + diff --git a/Source/GUIBase/uViewGridBase.dfm b/Source/GUIBase/uViewGridBase.dfm new file mode 100644 index 00000000..56958797 --- /dev/null +++ b/Source/GUIBase/uViewGridBase.dfm @@ -0,0 +1,10 @@ +inherited frViewGridBase: TfrViewGridBase + Width = 441 + Height = 268 + ExplicitWidth = 441 + ExplicitHeight = 268 + object dsDataSource: TDADataSource + Left = 8 + Top = 16 + end +end diff --git a/Source/GUIBase/uViewGridBase.pas b/Source/GUIBase/uViewGridBase.pas new file mode 100644 index 00000000..5bfbdbf0 --- /dev/null +++ b/Source/GUIBase/uViewGridBase.pas @@ -0,0 +1,421 @@ +{*******************************************************} +{ } +{ Administracin de puntos de venta } +{ } +{ Copyright (C) 2006 Rodax Software S.L. } +{ } +{*******************************************************} + +unit uViewGridBase; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uViewBase, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData, + cxDataStorage, cxEdit, DB, cxDBData, uDADataTable, cxGridLevel, + cxClasses, cxControls, cxGridCustomView, cxGridCustomTableView, + cxGridTableView, cxGridDBTableView, cxGrid, Menus, ActnList, Grids, + DBGrids, JvComponent, JvFormAutoSize, dxPSGlbl, dxPSUtl, dxPSEngn, + dxPrnPg, dxBkgnd, dxWrap, dxPrnDev, dxPSCompsProvider, dxPSFillPatterns, + dxPSEdgePatterns, dxPSCore, dxPScxCommon, dxPScxGridLnk, dxPrnDlg, + cxIntlPrintSys3, dxPSPrvwAdv, uGridUtils, uViewFiltroBase, uDAInterfaces; + +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; + + function getNumSeleccionados: Integer; + property NumSeleccionados: Integer read getNumSeleccionados; + + function Locate(const AItemIndex: Integer; const AValue: String; + const APartialCompare: Boolean = False) : 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; + function getNumSeleccionados: Integer; + + procedure SetFilter(const Value: string); virtual; + procedure RefrescarFiltro; + function GetFilter: string; virtual; + function GetFiltered: Boolean; virtual; + procedure FiltrarGrid(TextoFiltro : String); virtual; + function GetViewFiltros: IViewFiltroBase; + procedure SetViewFiltros(const Value: IViewFiltroBase); virtual; + procedure FilterChanged(Sender : TObject); virtual; + + 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; + + function Locate(const AItemIndex: Integer; const AValue: String; + const APartialCompare: Boolean = False) : Boolean; + + property Filter: string read GetFilter write SetFilter; + property Filtered : Boolean read GetFiltered; + + procedure AnadirOtrosFiltros; virtual; + property ViewFiltros: IViewFiltroBase read GetViewFiltros write SetViewFiltros; + + property _FocusedView : TcxGridDBTableView read GetFocusedView; + property _Grid : TcxGrid read GetGrid; + property OnDblClick: TNotifyEvent read GetDblClick write SetDblClick; + property PopupMenu: TPopupMenu read GetPopupMenu write SetPopupMenu; + property MultiSelect : Boolean read GetMultiSelect write SetMultiSelect; + property NumSeleccionados: Integer read getNumSeleccionados; + end; + +procedure Register; + +implementation + +uses + CCReg, uDMBase, 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.getNumSeleccionados: Integer; +begin + Result := _FocusedView.DataController.GetSelectedCount; +end; + +function TfrViewGridBase.GetPopupMenu: TPopupMenu; +begin + Result := FPopupMenu; +end; + +function TfrViewGridBase.GetViewFiltros: IViewFiltroBase; +begin + Result := FViewFiltros; +end; + +procedure TfrViewGridBase.GotoFirst; +begin + if Assigned(_FocusedView) then + _FocusedView.DataController.GotoFirst; +end; + +procedure TfrViewGridBase.GotoLast; +begin + if Assigned(_FocusedView) then + _FocusedView.DataController.GotoLast; +end; + +function TfrViewGridBase.IsEmpty: Boolean; +begin + Result := (_FocusedView.ViewData.RowCount < 1); +end; + +function TfrViewGridBase.Locate(const AItemIndex: Integer; const AValue: String; + const APartialCompare: Boolean): Boolean; +begin +{ if Assigned(_FocusedView) then + Result := _FocusedView.DataController.FindRecordIndexByText(0, AItemIndex, AText, APartialCompare, True, True)} +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 + FFilter := Value; + + //As tendremos el mismo valor en el filtro simple que en el filtro en detalle + if Assigned(ViewFiltros) then + ViewFiltros.Texto := FFilter; + + FiltrarGrid(FFilter); + + //Obliga a generar todos los filtros de las vista hija + AnadirOtrosFiltros; + + if Assigned(FOnFilterChanged) then + FOnFilterChanged(Self); +end; + +procedure TfrViewGridBase.SetMultiSelect(const Value: Boolean); +begin + _FocusedView.OptionsSelection.MultiSelect := Value; +// _FocusedView..OnSelectionChanged := SelectionChanged; +end; + +procedure TfrViewGridBase.SetPopupMenu(const Value: TPopupMenu); +begin + FPopupMenu := Value; +end; + +procedure TfrViewGridBase.SetViewFiltros(const Value: IViewFiltroBase); +begin + if Assigned(FViewFiltros) then + ViewFiltros.OnFiltrosChange := Nil; + + FViewFiltros := Value; +end; + +procedure TfrViewGridBase.ShowEmbedded(const AParent: TWinControl); +begin + inherited; + + // No activar la tabla ya por si acaso tuviera parmetros +{ if not DADataSource.DataTable.Active then + DADataSource.DataTable.Active := True;} + + GotoFirst; + _FocusedView.Focused := True; + if _FocusedView.ViewData.RecordCount > 0 then + begin + _FocusedView.ViewData.Records[0].Selected := True; + _FocusedView.ViewData.Records[0].Focused := True; + end; +end; + +procedure TfrViewGridBase.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/GUIBase/uViewIncidencias.dfm b/Source/GUIBase/uViewIncidencias.dfm new file mode 100644 index 00000000..451339a3 --- /dev/null +++ b/Source/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/GUIBase/uViewIncidencias.pas b/Source/GUIBase/uViewIncidencias.pas new file mode 100644 index 00000000..056ba5ed --- /dev/null +++ b/Source/GUIBase/uViewIncidencias.pas @@ -0,0 +1,30 @@ +unit uViewIncidencias; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uViewBase, ExtCtrls, StdCtrls, DB, uDADataTable, cxGraphics, + cxTextEdit, cxMaskEdit, cxDropDownEdit, cxDBEdit, cxControls, + cxContainer, cxEdit, cxLabel, cxDBLabel, cxCurrencyEdit, cxSpinEdit, + cxCheckBox, cxMemo, uDAInterfaces; + +type + TfrViewIncidencias = class(TfrViewBase) + DADataSource: TDADataSource; + pnlSup: TPanel; + eIncidenciaActiva: TcxDBCheckBox; + eIncidencias: TcxDBMemo; + GroupBox1: TGroupBox; + private + { Private declarations } + public + { Public declarations } + end; + + +implementation + +{$R *.dfm} + +end. diff --git a/Source/GUIBase/uViewObservaciones.dfm b/Source/GUIBase/uViewObservaciones.dfm new file mode 100644 index 00000000..f0b06091 --- /dev/null +++ b/Source/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/GUIBase/uViewObservaciones.pas b/Source/GUIBase/uViewObservaciones.pas new file mode 100644 index 00000000..2430ebac --- /dev/null +++ b/Source/GUIBase/uViewObservaciones.pas @@ -0,0 +1,26 @@ +unit uViewObservaciones; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uViewBase, DB, uDADataTable, cxMemo, cxDBEdit, cxControls, + cxContainer, cxEdit, cxTextEdit, ExtCtrls, StdCtrls; + +type + TfrViewObservaciones = class(TfrViewBase) + Label5: TLabel; + Bevel1: TBevel; + memObservaciones: TcxDBMemo; + DADataSource: TDADataSource; + private + { Private declarations } + public + { Public declarations } + end; + +implementation + +{$R *.dfm} + +end. diff --git a/Source/GUIBase/uViewPreview.dfm b/Source/GUIBase/uViewPreview.dfm new file mode 100644 index 00000000..52e3be36 --- /dev/null +++ b/Source/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/GUIBase/uViewPreview.pas b/Source/GUIBase/uViewPreview.pas new file mode 100644 index 00000000..c16f3764 --- /dev/null +++ b/Source/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/GUIBase/uViewTotales.dfm b/Source/GUIBase/uViewTotales.dfm new file mode 100644 index 00000000..d3e8b6e6 --- /dev/null +++ b/Source/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/GUIBase/uViewTotales.pas b/Source/GUIBase/uViewTotales.pas new file mode 100644 index 00000000..8c992e4e --- /dev/null +++ b/Source/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, uDAInterfaces; + +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/Informes/InfEtiquetasContacto.fr3 b/Source/Informes/InfEtiquetasContacto.fr3 new file mode 100644 index 00000000..f1fcad7c --- /dev/null +++ b/Source/Informes/InfEtiquetasContacto.fr3 @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/Source/Informes/InfFichaEmpleado.fr3 b/Source/Informes/InfFichaEmpleado.fr3 new file mode 100644 index 00000000..75b3433b --- /dev/null +++ b/Source/Informes/InfFichaEmpleado.fr3 @@ -0,0 +1,45 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Source/Informes/InfPresupuestoCliente.fr3 b/Source/Informes/InfPresupuestoCliente.fr3 new file mode 100644 index 00000000..89d9318e --- /dev/null +++ b/Source/Informes/InfPresupuestoCliente.fr3 @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/Source/Informes/InfPresupuestoCliente_anterior.fr3 b/Source/Informes/InfPresupuestoCliente_anterior.fr3 new file mode 100644 index 00000000..a3d4f298 --- /dev/null +++ b/Source/Informes/InfPresupuestoCliente_anterior.fr3 @@ -0,0 +1,37 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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..b3ea12ae --- /dev/null +++ b/Source/Modulos/Albaranes de cliente/AlbaranesCliente_Group.bdsgroup @@ -0,0 +1,28 @@ + + + + + + + + + + + ..\..\DataAbstract_D10\DataAbstract_D10.bdsproj + ..\..\Base\Base.bdsproj + ..\..\Base\ControllerBase\ControllerBase.bdsproj + ..\..\Base\GUIBase\GUIBase.bdsproj + ..\Contactos\Views\Contactos_view.bdsproj + ..\Articulos\Views\Articulos_view.bdsproj + Model\AlbaranesCliente_model.bdsproj + Data\AlbaranesCliente_data.bdsproj + Controller\AlbaranesCliente_controller.bdsproj + Views\AlbaranesCliente_view.bdsproj + Plugin\AlbaranesCliente_plugin.bdsproj + ..\Relaciones\Albaranes de cliente - Facturas de cliente\AlbCli_FacCli_relation.bdsproj + DataAbstract_D10.bpl Base.bpl ControllerBase.bpl GUIBase.bpl Contactos_view.bpl Articulos_view.bpl AlbaranesCliente_model.bpl AlbaranesCliente_data.bpl AlbaranesCliente_controller.bpl AlbaranesCliente_view.bpl AlbaranesCliente_plugin.bpl AlbCli_FacCli_relation.bpl + + + + diff --git a/Source/Modulos/Albaranes de cliente/AlbaranesCliente_Group.groupproj b/Source/Modulos/Albaranes de cliente/AlbaranesCliente_Group.groupproj new file mode 100644 index 00000000..ad79133b --- /dev/null +++ b/Source/Modulos/Albaranes de cliente/AlbaranesCliente_Group.groupproj @@ -0,0 +1,144 @@ + + + {586839ac-ba64-4412-bacf-f6b42162c99d} + + + + + + + + + + + + + + + + + + Default.Personality + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Source/Modulos/Albaranes de cliente/Controller/AlbaranesCliente_controller.bdsproj b/Source/Modulos/Albaranes de cliente/Controller/AlbaranesCliente_controller.bdsproj new file mode 100644 index 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..fb340a4a --- /dev/null +++ b/Source/Modulos/Albaranes de cliente/Controller/AlbaranesCliente_controller.dpk @@ -0,0 +1,47 @@ +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 ON} + +requires + AlbaranesCliente_model, + AlbaranesCliente_data, + Contactos_controller, + Articulos_controller; + +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.dproj b/Source/Modulos/Albaranes de cliente/Controller/AlbaranesCliente_controller.dproj new file mode 100644 index 00000000..252da7f3 --- /dev/null +++ b/Source/Modulos/Albaranes de cliente/Controller/AlbaranesCliente_controller.dproj @@ -0,0 +1,551 @@ + + + {7ed85635-c723-4c0b-bf1d-f719e0ea33ad} + AlbaranesCliente_controller.dpk + Debug + AnyCPU + DCC32 + ..\..\..\..\Output\Debug\Cliente\AlbaranesCliente_controller.bpl + + + 7.0 + False + False + 0 + 3 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + RELEASE + + + 7.0 + 3 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + + + Delphi.Personality + Package + +FalseTrueFalseTrueFalseFalseTrueFalse1000FalseFalseFalseFalseFalse308212521.0.0.01.0.0.0AlbaranesCliente_controller.dpk + + + + + MainSource + + + + + + + + + + + + + + + + + + + + diff --git a/Source/Modulos/Albaranes de cliente/Controller/AlbaranesCliente_controller.identcache b/Source/Modulos/Albaranes de cliente/Controller/AlbaranesCliente_controller.identcache new file mode 100644 index 0000000000000000000000000000000000000000..b4b7e9c56d2d9ef4e7a79739c4203d59e2f9a549 GIT binary patch literal 1403 zcmcJPK~BRk5JhtU4v`aZ0CrW91q&nus4H(=`!@`-GVR!IuU{iVP%SKw;(Gn9=Rfnm z@0zB0?;cdgmPT&hU_1pl^~zBU)Dzq2*sG1(Y0(pWYtb4WYy7LeWAUaqx~Kv?-;(-Hs4-^ATIZOBrid9+-6Ne7&88mi>kUR4lo#jxZ;#*s4zxg9yNlk=H9sqkCD2^cEXKpiTBNfgkKpXJBWWaLt(Qkv@0 w5yv*t82((Wlr2{_+FDoDHKW2QCXvc+s**ul{{$= 0) + Condicion := NewBinaryExpression(NewField('', fld_AlbaranesClienteIMPORTE_TOTAL), NewConstant(0, datCurrency), dboGreaterOrEqual); + + if IsEmpty then + Expression := Condicion + else + Expression := NewBinaryExpression(Expression, Condicion, dboAnd); + end; + + finally + HideHourglassCursor; + end; +end; + +function TAlbaranesClienteController.BuscarTodos: IBizAlbaranCliente; +begin + Result := FDataModule.GetItems; + FiltrarEmpresa(Result); +end; + +function TAlbaranesClienteController.BuscarPendientes: IBizAlbaranCliente; +var + Condicion: TDAWhereExpression; +begin + ShowHourglassCursor; + try + Result := BuscarAlbaranesNormales; + + with Result.DataTable.DynamicWhere do + begin + // (SITUACION = SERVIDO) + Condicion := NewBinaryExpression(NewField('', fld_AlbaranesClienteSITUACION), NewConstant(SITUACION_ALBARAN_SERVIDO, datString), dboEqual); + + if IsEmpty then + Expression := Condicion + else + Expression := NewBinaryExpression(Expression, Condicion, dboAnd); + end; + + finally + HideHourglassCursor; + end; +end; + +function TAlbaranesClienteController.BuscarSinFacturar: IBizAlbaranCliente; +var + Condicion: TDAWhereExpression; +begin + ShowHourglassCursor; + try + Result := BuscarAlbaranesNormales; + + with Result.DataTable.DynamicWhere do + begin + // (ID_FACTURA = NULL) + Condicion := NewBinaryExpression(NewField('', fld_AlbaranesClienteID_FACTURA), NewNull(), dboEqual); + + if IsEmpty then + Expression := Condicion + else + Expression := NewBinaryExpression(Expression, Condicion, dboAnd); + end; + + finally + HideHourglassCursor; + end; +end; + +function TAlbaranesClienteController.CambiarSituacion( + AAlbaran: IBizAlbaranCliente; ANuevaSituacion: String; AFechaEnvio, + AFechaRecibido: TDateTime; DoPost: Boolean): Boolean; +begin + Result := False; + + if not Assigned(AAlbaran) then + raise Exception.Create ('Albarn no asignado (CambiarSituacion)'); + + if not AAlbaran.DataTable.Active then + AAlbaran.DataTable.Active := True; + + // Validar la situacin del albarn + if ValidarSituacion(ANuevaSituacion, AAlbaran.FECHA_ALBARAN, AFechaEnvio, AFechaRecibido) then + begin + ShowHourglassCursor; + AAlbaran.DataTable.DisableControls; + try + AAlbaran.Edit; + AAlbaran.SITUACION := ANuevaSituacion; + AAlbaran.FECHA_ENVIO := AFechaEnvio; + AAlbaran.FECHA_RECEPCION := AFechaRecibido; + AAlbaran.Post; + if DoPost then + Guardar(AAlbaran); + Result := True; + finally + AAlbaran.DataTable.EnableControls; + HideHourglassCursor; + end; + end; +end; + +procedure TAlbaranesClienteController.CopiarDireccionEnvio( + const ADireccionEnvio: IBizDireccionesContacto; AAlbaran: IBizAlbaranCliente); +var + bEnEdicion : Boolean; +begin + if not Assigned(AAlbaran) then + raise Exception.Create ('Albaran no asignado (CopiarDireccionEnvio)'); + + if not Assigned(ADireccionEnvio) then + raise Exception.Create ('No se ha indicado la direccin (CopiarDireccionEnvio)'); + + if AAlbaran.DataTable.Active then + AAlbaran.DataTable.Active := True; + + if ADireccionEnvio.DataTable.Active then + ADireccionEnvio.DataTable.Active := True; + + + bEnEdicion := (AAlbaran.DataTable.State in dsEditModes); + if not bEnEdicion then + AAlbaran.Edit; + + ShowHourglassCursor; + AAlbaran.Edit; + try + AAlbaran.CALLE := ADireccionEnvio.CALLE; + AAlbaran.POBLACION := ADireccionEnvio.POBLACION; + AAlbaran.CODIGO_POSTAL := ADireccionEnvio.CODIGO_POSTAL; + AAlbaran.PROVINCIA := ADireccionEnvio.PROVINCIA; + AAlbaran.TELEFONO := ADireccionEnvio.TELEFONO; + AAlbaran.PERSONA_CONTACTO := ADireccionEnvio.PERSONA_CONTACTO; + + if not bEnEdicion then + AAlbaran.Post; + finally + HideHourglassCursor; + end; +end; + +constructor TAlbaranesClienteController.Create; +begin + inherited; + AsignarDataModule; + + FClienteController := TClientesController.Create; + FDetallesController := TDetallesAlbaranClienteController.Create; + FDetallesController.addObservador(Self); +end; + +function TAlbaranesClienteController.CreateEditor(const AName: String; + const IID: TGUID; out Intf): Boolean; +begin + Result := Supports(EditorRegistry.CreateEditor(AName), IID, Intf); +end; + +procedure TAlbaranesClienteController.DescartarCambios(AAlbaran: IBizAlbaranCliente); +begin + if not Assigned(AAlbaran) then + raise Exception.Create ('Albarn no asignado'); + + ShowHourglassCursor; + try + if (AAlbaran.State in dsEditModes) then + AAlbaran.Cancel; + + AAlbaran.DataTable.CancelUpdates; + finally + HideHourglassCursor; + end; +end; + +destructor TAlbaranesClienteController.Destroy; +begin + FDataModule := Nil; + FClienteController := Nil; + FDetallesController := Nil; + inherited; +end; + +function TAlbaranesClienteController.Duplicar(AAlbaran: IBizAlbaranCliente): IBizAlbaranCliente; +begin + Result := Self._Vacio; + ShowHourglassCursor; + try + DuplicarRegistros(AAlbaran.DataTable, Result.DataTable, mdrActual); + DuplicarRegistros(AAlbaran.Detalles.DataTable, Result.Detalles.DataTable, mdrTodos); + + // Hay que dejar algunos campos como si fuera un presupuesto nuevo + Result.Edit; + with Result do + begin + ID_EMPRESA := AppFactuGES.EmpresaActiva.ID; + USUARIO := AppFactuGES.UsuarioActivo.UserName; + FECHA_ALBARAN := DateOf(Now); + INCIDENCIAS_ACTIVAS := 0; +// INCIDENCIAS := Nil; + REFERENCIA := ''; + FECHA_PREVISTA_ENVIO := 0; + FECHA_ENVIO := 0; + FECHA_RECEPCION := 0; + ID_FACTURA := 0; + ID_PEDIDO := 0; + end; + Result.Post; + finally + HideHourglassCursor; + end; +end; + +function TAlbaranesClienteController.ValidarAlbaran( + AAlbaran: IBizAlbaranCliente): Boolean; +begin + Result := False; + + if not Assigned(AAlbaran) then + raise Exception.Create ('Albarn no asignado'); + + if (AAlbaran.DataTable.State in dsEditModes) then + AAlbaran.DataTable.Post; + + //Tambien hacemos post de sus tablas hija + if (AAlbaran.Detalles.DataTable.State in dsEditModes) then + AAlbaran.Detalles.DataTable.Post; + + if (AAlbaran.ID_Cliente < 0) or (AAlbaran.ID_Cliente = 0) then + // Si hay altas automticas no hay objeto Cliente pero s hay ID_CLIENTE +{ (not Assigned(AAlbaran.Cliente)) or + (AAlbaran.Cliente.IsEmpty) then} + raise Exception.Create('Debe indicar el cliente de este albarn'); + + if (EsFechaVacia(AAlbaran.FECHA_ALBARAN)) then + raise Exception.Create('Debe indicar la fecha de este albarn'); + + if (AAlbaran.Detalles.DataTable.RecordCount = 0) then + raise Exception.Create('El albarn debe tener en su contenido al menos un concepto'); + + //En caso de ser un Albarn no podra tener un importe total negativo + if (AAlbaran.TIPO = CTE_TIPO_ALBARAN) then + if (AAlbaran.IMPORTE_TOTAL < 0) then + raise Exception.Create('Un albarn no puede tener un importe total negativo'); + + //En caso de ser una orden de devolucin no podra tener un importe total positivo + if (AAlbaran.TIPO = CTE_TIPO_ALBARAN_DEV) then + begin + if (AAlbaran.IMPORTE_TOTAL >= 0) then + raise Exception.Create('Una orden de devolucin no puede tener un importe total positivo'); + + //Una orden de devolucin debe tener relleno el almacn de entrada de material + if (AAlbaran.ID_ALMACEN < 0) or (AAlbaran.ID_ALMACEN = 0) then + raise Exception.Create('Debe indicar el almacn de entrada de esta orden de devolucin'); + + //Ponemos la fecha del albaran de devolucin como fecha de envio para que se contabilice segn dicha fecha + AAlbaran.Edit; + AAlbaran.FECHA_ENVIO := AAlbaran.FECHA_ALBARAN; + AAlbaran.Post; + end; + + //Validamos las fechas del albarn +// if not (EsFechaVacia(AAlbaran.FECHA_ENVIO)) then +// if AAlbaran.FECHA_ENVIO < AAlbaran.FECHA_PREVISTA_ENVIO then +// raise Exception.Create('La fecha de envio debe ser posterior a la fecha prevista de envio'); + + if not (EsFechaVacia(AAlbaran.FECHA_RECEPCION)) then + if AAlbaran.FECHA_RECEPCION < AAlbaran.FECHA_ENVIO then + raise Exception.Create('La fecha de recepcion debe ser posterior a la fecha de envio'); + + { Asegurarse de valores en campos "automticos" tanto + en MODIFICACIN como en INSERCIN. } + AAlbaran.Edit; + try + AAlbaran.USUARIO := AppFactuGES.UsuarioActivo.UserName; + +// Lo quitamos temporalmente si no hay mas fallos de cambio de cliente se quita en todos los sitios +// if Assigned(AAlbaran.Cliente) +// and (AAlbaran.ID_CLIENTE <> AAlbaran.Cliente.ID) then +// AAlbaran.ID_CLIENTE := AAlbaran.Cliente.ID; + + Result := True; + finally + AAlbaran.Post; + end; +end; + +function TAlbaranesClienteController.ValidarSituacion(ASituacion: String; + AFechaAlbaran: TDateTime; var AFechaEnvio, + AFechaRecibido: TDateTime): Boolean; +begin + 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 envo del albarn') + end; + if (ASituacion = SITUACION_ALBARAN_SERVIDO) then + begin + if (EsFechaVacia(AFechaEnvio)) then + raise Exception.Create('Hay que indicar la fecha de envo del albarn'); + if (EsFechaVacia(AFechaRecibido)) then + raise Exception.Create('Hay que indicar la fecha de recepcin del albarn'); + if (AFechaRecibido < AFechaEnvio) then + raise Exception.Create('La fecha de recepcin y firma del albarn por parte ' + + 'del cliente no puede ser anterior a la fecha de envio del material del albarn'); + end; + end; + Result := True; +end; + +procedure TAlbaranesClienteController.Ver(AAlbaran: IBizAlbaranCliente); +var + AEditor : IEditorDBItem; +begin + AEditor := NIL; + ShowHourglassCursor; + try + RecuperarObjetos(AAlbaran); + + if (AAlbaran.TIPO = CTE_TIPO_ALBARAN) then + CreateEditor('EditorAlbaranCliente', IEditorAlbaranCliente, AEditor) + else + CreateEditor('EditorAlbaranDevCliente', IEditorAlbaranDevCliente, AEditor); + + if Assigned(AEditor) then + with (AEditor as IEditorAlbaranCliente) do + begin + Controller := Self; //OJO ORDEN MUY IMPORTANTE + Albaran := AAlbaran; + + //MODO CONSULTAR + if not EsModificable(AAlbaran) then + begin + SetDataTableReadOnly(AAlbaran.DataTable, True); + ReadOnly := True; + end; + + ShowModal; + + //MODO CONSULTAR (Se deja la tabla como estaba) + if ReadOnly then + SetDataTableReadOnly(AAlbaran.DataTable, False); + + AEditor.Release; + end; + finally + AEditor := NIL; + HideHourglassCursor; + 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); + if Assigned(AEditor) then + with (AEditor as IEditorDireccionEntregaAlbaranCliente) do + begin + Albaran := AAlbaran; + ShowModal; + Release; + end; + finally + AEditor := NIL; + HideHourglassCursor; + end; +end; + +procedure TAlbaranesClienteController.VerTodosAlbaranes(AAlbarans: IBizAlbaranCliente); +var + AEditor : IEditorAlbaranesCliente; +begin + AEditor := NIL; + ShowHourglassCursor; + try + CreateEditor('EditorAlbaranesCliente', IEditorAlbaranesCliente, AEditor); + if Assigned(AEditor) then + with AEditor do + begin + Controller := Self; //OJO ORDEN MUY IMPORTANTE + Albaranes := AAlbarans; + MultiSelect := True; + ShowEmbedded; + end; + finally + AEditor := NIL; + HideHourglassCursor; + end; +end; + +procedure TAlbaranesClienteController.VerTodosAlbaranesDev(AAlbarans: IBizAlbaranCliente); +var + AEditor : IEditorAlbaranesDevCliente; +begin + AEditor := NIL; + ShowHourglassCursor; + try + CreateEditor('EditorAlbaranesDevCliente', IEditorAlbaranesDevCliente, AEditor); + if Assigned(AEditor) then + with AEditor do + begin + Controller := Self; //OJO ORDEN MUY IMPORTANTE + Albaranes := AAlbarans; + MultiSelect := True; + ShowEmbedded; + end; + finally + AEditor := NIL; + HideHourglassCursor; + end; +end; + +function TAlbaranesClienteController._Vacio: IBizAlbaranCliente; +begin + Result := Buscar(ID_NULO); +end; + +function TAlbaranesClienteController.Eliminar(const ID: Integer): Boolean; +var + AAlbaran : IBizAlbaranCliente; +begin + AAlbaran := Buscar(ID); + + if not Assigned(AAlbaran) then + raise Exception.Create(Format('No se ha encontrado el albarn con ID = %d', [ID])); + + Result := Eliminar(AAlbaran); + AAlbaran := NIL; +end; + +function TAlbaranesClienteController.ElegirAlbaranes(AAlbaran: IBizAlbaranCliente; AMensaje: String; AMultiSelect: Boolean): IBizAlbaranCliente; +var + AEditor : IEditorElegirAlbaranesCliente; +begin + Result := NIL; + ShowHourglassCursor; + try + CreateEditor('EditorElegirAlbaranesCliente', IEditorElegirAlbaranesCliente, AEditor); + if Assigned(AEditor) then + with AEditor do + begin + Controller := Self; + Albaranes := AAlbaran; + MultiSelect := AMultiSelect; + Mensaje := AMensaje; + if IsPositiveResult(ShowModal) then + Result := AlbaranesClienteSeleccionados; + Release; + end; + finally + AEditor := NIL; + HideHourglassCursor; + end; +end; + +function TAlbaranesClienteController.Eliminar(AAlbaran: IBizAlbaranCliente; AllItems: Boolean = false): Boolean; +//En el caso de eliminar almenos un elemento del conjunto se devuelve true +var + bEliminado: Boolean; + +begin + bEliminado := False; + + if not Assigned(AAlbaran) then + raise Exception.Create ('Albarn no asignada'); + + ShowHourglassCursor; + try + if (AAlbaran.State in dsEditModes) then + AAlbaran.Cancel; + + //Siempre eliminaremos el seleccionado + if EsEliminable(AAlbaran) then + begin + AAlbaran.Delete; + bEliminado := True; + end; + + //En el caso de querer eliminar todos los items del objeto AAlbaran + if AllItems then + begin + with AAlbaran.DataTable do + begin + First; + while not EOF do + begin + if EsEliminable(AAlbaran) then + begin + AAlbaran.Delete; + bEliminado := True + end + else Next; + end; + end; + end; + + if bEliminado then + begin + AAlbaran.DataTable.ApplyUpdates; + Result := True; + end + else + Result := False; + + finally + HideHourglassCursor; + end; +end; + +function TAlbaranesClienteController.EsEliminable(AAlbaran: IBizAlbaranCliente): Boolean; +begin + if not Assigned(AAlbaran) then + raise Exception.Create ('Albarn no asignado: EsModificable'); + + Result := EsModificable(AAlbaran); + + if AAlbaran.TIPO = CTE_TIPO_ALBARAN then + Result := Result and (AAlbaran.SITUACION = SITUACION_ALBARAN_PENDIENTE); +end; + +function TAlbaranesClienteController.EsModificable(AAlbaran: IBizAlbaranCliente): Boolean; +begin + if not Assigned(AAlbaran) then + raise Exception.Create ('Albarn no asignado: EsModificable'); + + Result := not (AAlbaran.ID_FACTURA > 0); +end; + +procedure TAlbaranesClienteController.EtiquetasPreview(AAlbaran: IBizAlbaranCliente; Const withRefCliente: Boolean); +var + AReportController : IAlbaranesClienteReportController; +begin + AReportController := TAlbaranesClienteReportController.Create; + try + AReportController.EtiquetasPreview(AAlbaran.ID, withRefCliente); + finally + AReportController := NIL; + end; +end; + +procedure TAlbaranesClienteController.EtiquetasPrint(AAlbaran: IBizAlbaranCliente; Const withRefCliente: Boolean); +var + AReportController : IAlbaranesClienteReportController; +begin + AReportController := TAlbaranesClienteReportController.Create; + try + AReportController.EtiquetasPrint(AAlbaran.ID, withRefCliente); + finally + AReportController := NIL; + end; +end; + +procedure TAlbaranesClienteController.RecibirAviso(ASujeto: ISujeto; ADataTable: IDAStronglyTypedDataTable); +var + AAlbaran : IBizAlbaranCliente; + ADetalles : IBizDetallesAlbaranCliente; +begin + inherited; + + if Supports(ADataTable, IBizDetallesAlbaranCliente, ADetalles) and + Supports(ADetalles.DataTable.MasterSource.DataTable, IBizAlbaranCliente, AAlbaran) then + begin + RecalcularImportes(AAlbaran); + end; +end; + +procedure TAlbaranesClienteController.RecuperarObjetos(AAlbaran: IBizAlbaranCliente); +begin + RecuperarCliente(AAlbaran); +end; + +procedure TAlbaranesClienteController.RecuperarCliente( + AAlbaran: IBizAlbaranCliente); +begin + AAlbaran._Cliente := (FClienteController.Buscar(AAlbaran.ID_Cliente) as IBizCliente); +end; + +function TAlbaranesClienteController.Existe(const ID: Integer): Boolean; +var + AAlbaran : IBizAlbaranCliente; +begin + try + AAlbaran := Buscar(ID); + Result := Assigned(AAlbaran) and (AAlbaran.ID = ID); + finally + AAlbaran := NIL; + end; +end; + +function TAlbaranesClienteController.ExtraerSeleccionados(AAlbaran: IBizAlbaranCliente): IBizAlbaranCliente; +var + ASeleccionados : IBizAlbaranCliente; +begin + ASeleccionados := (Self.Buscar(ID_NULO) as IBizAlbaranCliente); + CopyDataTableDA3(AAlbaran.DataTable, ASeleccionados.DataTable, True); + Result := ASeleccionados; +end; + +procedure TAlbaranesClienteController.FiltrarEmpresa(AAlbaran: IBizAlbaranCliente); +var + Condicion: TDAWhereExpression; +begin + if AAlbaran.DataTable.Active then + AAlbaran.DataTable.Active := False; + + // Filtrar los presupuestos actuales por empresa + with AAlbaran.DataTable.DynamicWhere do + begin + // (ID_EMPRESA >= ID) + Condicion := NewBinaryExpression(NewField('', fld_AlbaranesClienteID_EMPRESA), NewConstant(AppFactuGES.EmpresaActiva.ID, datInteger), dboEqual); + + if IsEmpty then + Expression := Condicion + else + Expression := NewBinaryExpression(Expression, Condicion, dboAnd); + end; + + if AAlbaran.DataTable.Active then + AAlbaran.DataTable.Active := False; +end; + +procedure TAlbaranesClienteController.SetClienteController(const Value: IClientesController); +begin + FClienteController := Value; +end; + +procedure TAlbaranesClienteController.SetDetallesController(const Value: IDetallesAlbaranClienteController); +begin + FDetallesController := Value; +end; + +function TAlbaranesClienteController.Guardar(AAlbaran: IBizAlbaranCliente): Boolean; +var + IDNuevo: Integer; +begin + Result := False; + + if not Assigned(AAlbaran) then + raise Exception.Create ('Albarn no asignada'); + + if not Assigned(FDetallesController) then + raise Exception.Create ('Controller detalles no asignado'); + + if ValidarAlbaran(AAlbaran) then + begin + ShowHourglassCursor; + + // Asegurarnos de que todos los importes estn bien. + RecalcularImportes(AAlbaran); + + try + AAlbaran.DataTable.ApplyUpdates; + Result := True; + finally + HideHourglassCursor; + end; + end; +end; + +function TAlbaranesClienteController.Nuevo: 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 ('Albarn no asignado (QuitarDireccionEnvio)'); + + if AAlbaran.DataTable.Active then + AAlbaran.DataTable.Active := True; + + bEnEdicion := (AAlbaran.DataTable.State in dsEditModes); + if not bEnEdicion then + AAlbaran.Edit; + + ShowHourglassCursor; + AAlbaran.Edit; + try + AAlbaran.DataTable.FieldByName(fld_AlbaranesClienteCALLE).Clear; + AAlbaran.DataTable.FieldByName(fld_AlbaranesClientePOBLACION).Clear; + AAlbaran.DataTable.FieldByName(fld_AlbaranesClienteCODIGO_POSTAL).Clear; + AAlbaran.DataTable.FieldByName(fld_AlbaranesClientePROVINCIA).Clear; + AAlbaran.DataTable.FieldByName(fld_AlbaranesClienteTELEFONO).Clear; + AAlbaran.DataTable.FieldByName(fld_AlbaranesClientePERSONA_CONTACTO).Clear; + + if not bEnEdicion then + AAlbaran.Post; + finally + HideHourglassCursor; + end; +end; + +procedure TAlbaranesClienteController.Preview(AAlbaran: IBizAlbaranCliente; AllItems: Boolean = false); +var + AReportController : IAlbaranesClienteReportController; + ID_Albaranes: TStringList; + +begin + AReportController := TAlbaranesClienteReportController.Create; + try + ID_Albaranes := TStringList.Create; + + //Si deseamos previsualizar todos los items del objeto albaran + if AllItems then + begin + with AAlbaran.DataTable do + begin + First; + while not EOF do + begin + ID_Albaranes.Add(IntToStr(AAlbaran.ID)); + Next; + end; + end; + end + //Solo previsualizamos el item seleccionado + else + ID_Albaranes.Add(IntToStr(AAlbaran.ID)); + + AReportController.Preview(ID_Albaranes.CommaText); + + finally + AReportController := NIL; + ID_Albaranes.Free; + end; +end; + +procedure TAlbaranesClienteController.Print(AAlbaran: IBizAlbaranCliente; AllItems: Boolean = false); +var + AReportController : IAlbaranesClienteReportController; + ID_Albaranes: TStringList; + +begin + AReportController := TAlbaranesClienteReportController.Create; + try + ID_Albaranes := TStringList.Create; + + //Si deseamos previsualizar todos los items del objeto albaran + if AllItems then + begin + with AAlbaran.DataTable do + begin + First; + while not EOF do + begin + ID_Albaranes.Add(IntToStr(AAlbaran.ID)); + Next; + end; + end; + end + //Solo previsualizamos el item seleccionado + else + ID_Albaranes.Add(IntToStr(AAlbaran.ID)); + + AReportController.Print(ID_Albaranes.CommaText); + + finally + AReportController := NIL; + ID_Albaranes.Free; + end; +end; + +procedure TAlbaranesClienteController.RecalcularImportes(AAlbaran: IBizAlbaranCliente); +var + bEnEdicion : Boolean; +begin + if not Assigned(AAlbaran) then + raise Exception.Create ('Albarn no asignado (RecalcularImportes)'); + + 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.IMPORTE_NETO := FDetallesController.DarTotalImporteTotal(AAlbaran.Detalles); + AAlbaran.IMPORTE_PORTE := FDetallesController.DarTotalPorteTotal(AAlbaran.Detalles); + if not bEnEdicion then + AAlbaran.Post; + finally + HideHourglassCursor; + end; +end; + +function TAlbaranesClienteController.GetClienteController: IClientesController; +begin + Result := FClienteController; +end; + +function TAlbaranesClienteController.GetDetallesController: IDetallesAlbaranClienteController; +begin + Result := FDetallesController; +end; + +end. + \ No newline at end of file diff --git a/Source/Modulos/Albaranes de cliente/Controller/uAlbaranesClienteReportController.pas b/Source/Modulos/Albaranes de cliente/Controller/uAlbaranesClienteReportController.pas new file mode 100644 index 00000000..fa80b1c4 --- /dev/null +++ b/Source/Modulos/Albaranes de cliente/Controller/uAlbaranesClienteReportController.pas @@ -0,0 +1,169 @@ +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 : String); + procedure Print(const AID : String); + procedure EtiquetasPreview(const AID : integer; Const withRefCliente: Boolean); + procedure EtiquetasPrint(const AID : integer; Const withRefCliente: Boolean); + 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 : String); + procedure Print(const AID : String); + procedure EtiquetasPreview(const AID : integer; const withRefCliente: Boolean); + procedure EtiquetasPrint(const AID : integer; const withRefCliente: Boolean); + end; + + +implementation + +uses + uROTypes, uEditorRegistryUtils, uIEditorAlbaranesClientePreview, + uEditorPreview, uDataModuleAlbaranesCliente, uEditorBase, cxControls; + +{ 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.EtiquetasPreview(const AID: integer; const withRefCliente: Boolean); +var + AStream: Binary; + AEditor : IEditorAlbaranesClientePreview; +begin + AEditor := NIL; + ShowHourglassCursor; + try + AStream := FDataModule.GetEtiquetas(AID, withRefCliente); + try + CreateEditor('EditorAlbaranesClientePreview', IEditorAlbaranesClientePreview, AEditor); + if Assigned(AEditor) then + with AEditor do + begin + LoadFromStream(AStream); + Preview; + Release; + end; + finally + FreeAndNil(AStream); + AEditor := Nil; + end; + finally + HideHourglassCursor; + end; +end; + +procedure TAlbaranesClienteReportController.EtiquetasPrint(const AID: integer; const withRefCliente: Boolean); +var + AStream: Binary; + AEditor : IEditorAlbaranesClientePreview; +begin + AEditor := NIL; + ShowHourglassCursor; + try + AStream := FDataModule.GetEtiquetas(AID, withRefCliente); + try + CreateEditor('EditorAlbaranesClientePreview', IEditorAlbaranesClientePreview, AEditor); + if Assigned(AEditor) then + with AEditor do + begin + LoadFromStream(AStream); + Print; + Release; + end; + finally + FreeAndNil(AStream); + AEditor := Nil; + end; + finally + HideHourglassCursor; + end; +end; + +procedure TAlbaranesClienteReportController.Preview(const AID : String); +var + AStream: Binary; + AEditor : IEditorAlbaranesClientePreview; +begin + AEditor := NIL; + ShowHourglassCursor; + try + AStream := FDataModule.GetReport(AID); //Lista de seleccionados (Array de integers) + try + CreateEditor('EditorAlbaranesClientePreview', IEditorAlbaranesClientePreview, AEditor); + if Assigned(AEditor) then + with AEditor do + begin + LoadFromStream(AStream); + Preview; + Release; + end; + finally + FreeAndNil(AStream); + AEditor := Nil; + end; + finally + HideHourglassCursor; + end; +end; + +procedure TAlbaranesClienteReportController.Print(const AID : String); +var + AStream: Binary; + AEditor : IEditorAlbaranesClientePreview; +begin + AEditor := NIL; + ShowHourglassCursor; + try + AStream := FDataModule.GetReport(AID); + try + CreateEditor('EditorAlbaranesClientePreview', IEditorAlbaranesClientePreview, AEditor); + if Assigned(AEditor) then + with AEditor do + begin + LoadFromStream(AStream); + Print; + Release; + end; + finally + FreeAndNil(AStream); + AEditor := Nil; + end; + finally + HideHourglassCursor; + end; +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..fa1531ad --- /dev/null +++ b/Source/Modulos/Albaranes de cliente/Controller/uArticulosAlbaranClienteController.pas @@ -0,0 +1,50 @@ +unit uArticulosAlbaranClienteController; + +interface + +uses + uDADataTable, cxControls, uArticulosController, uBizArticulos; + +type + IArticulosAlbaranClienteController = interface(IArticulosController) + ['{727F03DE-C408-4F40-A603-2889F386BDD0}'] + end; + + TArticulosAlbaranClienteController = class(TArticulosController, IArticulosAlbaranClienteController) + public + function ElegirArticulos(AArticulos : IBizArticulo; AMensaje: String; AMultiSelect: Boolean): IBizArticulo; override; + end; + +implementation + +{ TArticulosAlbaranClienteController } + +uses Controls, uIEditorElegirArticulosAlbaranesCliente, uIEditorElegirArticulos; + +function TArticulosAlbaranClienteController.ElegirArticulos(AArticulos: IBizArticulo; AMensaje: String; + AMultiSelect: Boolean): IBizArticulo; +var + AEditor : IEditorElegirArticulosAlbaranesCliente; +begin + Result := NIL; + ShowHourglassCursor; + try + CreateEditor('EditorElegirArticulosAlbaranesCliente', IEditorElegirArticulosAlbaranesCliente, AEditor); + if Assigned(AEditor) then + with AEditor do + begin + Controller := Self; + Articulos := AArticulos; + MultiSelect := AMultiSelect; + Mensaje := AMensaje; + if IsPositiveResult(ShowModal) then + Result := ArticulosSeleccionados; + Release; + end; + finally + AEditor := NIL; + HideHourglassCursor; + 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..0da6cc7a --- /dev/null +++ b/Source/Modulos/Albaranes de cliente/Controller/uDetallesAlbaranClienteController.pas @@ -0,0 +1,148 @@ +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; + procedure DesglosarPorteDetalles(ImportePorte: Currency; ADetalles: IDAStronglyTypedDataTable); + function DarTotalPorteTotal(ADetalles: IDAStronglyTypedDataTable): Double; + end; + + TDetallesAlbaranClienteController = class(TControllerDetallesArticulos, IDetallesAlbaranClienteController) + private + FDataModule : IDataModuleAlbaranesCliente; + protected +// procedure AsignarDatos(ADetalles: IDAStronglyTypedDataTable; IDCabecera: Integer); override; + procedure RellenarOtros(ADetalles: IDAStronglyTypedDataTable; AArticulos: IBizArticulo); override; + procedure RellenarImportes(ADetalles: IDAStronglyTypedDataTable; AArticulos: IBizArticulo); override; + + procedure AsignarController; override; + //Si sobreescribimos este mtodo podremos tener en cuenta otras columnas para el calculo del importe total de un concepto + function CalcularImporteTotalConcepto(DataTable: TDADataTable): Double; override; + procedure ValidarCampos(DataTable: TDADataTable); override; + procedure DesglosarPorteDetalles(ImportePorte: Currency; ADetalles: IDAStronglyTypedDataTable); + function DarTotalPorteTotal(ADetalles: IDAStronglyTypedDataTable): Double; + + public + procedure AnadirArticulos(ADetalles: IDAStronglyTypedDataTable; ACliente: IBizCliente); overload; + procedure ActualizarDetalles(ADetalles: IDAStronglyTypedDataTable; ACliente: IBizCliente); overload; + constructor Create; override; + destructor Destroy; override; + end; + +implementation + +uses Dialogs, uDialogUtils, Variants, uControllerDetallesBase, + uCalculosUtils, uDataModuleAlbaranesCliente, uArticulosAlbaranClienteController; + +{ TDetallesAlbaranClienteController } + +procedure TDetallesAlbaranClienteController.ActualizarDetalles(ADetalles: IDAStronglyTypedDataTable; ACliente: IBizCliente); +var + AArticulos : IBizArticulo; +begin + if Assigned(ADetalles) then + begin + try + AArticulos := (FArticulosController.BuscarTodos(ACliente) as IBizArticulo); + ActualizarDetalles(ADetalles, AArticulos); + ShowInfoMessage('Se 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 artculos que desea aadir a este albarn 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;} + +function TDetallesAlbaranClienteController.CalcularImporteTotalConcepto(DataTable: TDADataTable): Double; +begin + Result := CalcularLineaConcepto(DataTable); +end; + +constructor TDetallesAlbaranClienteController.Create; +begin + inherited; + FDataModule := TDataModuleAlbaranesCliente.Create(Nil); +end; + +function TDetallesAlbaranClienteController.DarTotalPorteTotal(ADetalles: IDAStronglyTypedDataTable): Double; +begin + Result := DarTotalPorte(ADetalles); +end; + +procedure TDetallesAlbaranClienteController.DesglosarPorteDetalles(ImportePorte: Currency; ADetalles: IDAStronglyTypedDataTable); +begin + DesglosarPorte(ImportePorte, ADetalles); + ActualizarTotales(ADetalles); +end; + +destructor TDetallesAlbaranClienteController.Destroy; +begin + FDataModule := Nil; + inherited; +end; + + +procedure TDetallesAlbaranClienteController.RellenarOtros(ADetalles: IDAStronglyTypedDataTable; AArticulos: IBizArticulo); +begin + if Assigned(AArticulos) then + ADetalles.DataTable.FieldByName(CAMPO_DESCUENTO).AsFloat := AArticulos.DESCUENTO + else + ADetalles.DataTable.FieldByName(CAMPO_DESCUENTO).AsFloat := 0; +end; + +procedure TDetallesAlbaranClienteController.ValidarCampos(DataTable: TDADataTable); +begin + inherited; + ValidarCamposLineaConcepto(DataTable); +end; + +procedure TDetallesAlbaranClienteController.RellenarImportes(ADetalles: IDAStronglyTypedDataTable; AArticulos: IBizArticulo); +begin + 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..0b510c03 --- /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 ON} + +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.dproj b/Source/Modulos/Albaranes de cliente/Data/AlbaranesCliente_data.dproj new file mode 100644 index 00000000..76a6a7cd --- /dev/null +++ b/Source/Modulos/Albaranes de cliente/Data/AlbaranesCliente_data.dproj @@ -0,0 +1,588 @@ + + + {38eef566-1895-4bdd-8007-f92f5e32cce6} + AlbaranesCliente_data.dpk + Debug + AnyCPU + DCC32 + ..\..\..\..\Output\Debug\Cliente\AlbaranesCliente_data.bpl + + + 7.0 + False + False + 0 + 3 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + RELEASE + + + 7.0 + 3 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + + + Delphi.Personality + Package + + + False + True + False + + + True + False + False + + + True + False + 1 + 0 + 0 + 0 + False + False + False + False + False + 3082 + 1252 + + + + + 1.0.0.0 + + + + + + 1.0.0.0 + + + + AlbaranesCliente_data.dpk + + + + + + + MainSource + + + + + + + + + +
    DataModuleAlbaranesCliente
    +
    + + +
    +
    + + diff --git a/Source/Modulos/Albaranes de cliente/Data/AlbaranesCliente_data.identcache b/Source/Modulos/Albaranes de cliente/Data/AlbaranesCliente_data.identcache new file mode 100644 index 0000000000000000000000000000000000000000..a7411da904674d4547486b59dcec8673992f9ec8 GIT binary patch literal 108 zcmZQ%U|@)Lwu*7iPsvQrR|rW>F3v1T&4~%lFD*(=jq%M-Db2|*j&aOMN-RpuOD$GN mNmWSB$xO{FNsVzyEJ=(h1(9H7sc=Qk5CwV#iN!$U;Q#>cz#|L* literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..36f26e234a8ac66a47e95cec6d496cf2f1442471 GIT binary patch literal 32 UcmZQzU|>)H;{X347|28c09i@|9RL6T literal 0 HcmV?d00001 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..1d79f053 --- /dev/null +++ b/Source/Modulos/Albaranes de cliente/Data/uDataModuleAlbaranesCliente.dfm @@ -0,0 +1,404 @@ +inherited DataModuleAlbaranesCliente: TDataModuleAlbaranesCliente + OnCreate = DAClientDataModuleCreate + Height = 234 + Width = 484 + object RORemoteService: TRORemoteService + Message = dmConexion.ROMessage + Channel = dmConexion.ROChannel + ServiceName = 'srvAlbaranesCliente' + Left = 40 + Top = 16 + end + object rda_AlbaranesCliente: TDARemoteDataAdapter + GetSchemaCall.RemoteService = RORemoteService + GetDataCall.RemoteService = RORemoteService + UpdateDataCall.RemoteService = RORemoteService + GetScriptsCall.RemoteService = RORemoteService + RemoteService = RORemoteService + DataStreamer = Bin2DataStreamer + Left = 43 + Top = 151 + end + object Bin2DataStreamer: TDABin2DataStreamer + Left = 40 + Top = 84 + end + object tbl_AlbaranesCliente: TDAMemDataTable + RemoteUpdatesOptions = [] + Fields = < + item + Name = 'ID' + DataType = datAutoInc + GeneratorName = 'GEN_ALBARANES_CLI_ID' + Required = True + ServerAutoRefresh = True + DictionaryEntry = 'AlbaranesCliente_ID' + InPrimaryKey = True + end + item + Name = 'ID_EMPRESA' + DataType = datInteger + DictionaryEntry = 'AlbaranesCliente_ID_EMPRESA' + end + item + Name = 'ID_CLIENTE' + DataType = datInteger + DictionaryEntry = 'AlbaranesCliente_ID_CLIENTE' + end + item + Name = 'NOMBRE' + DataType = datString + Size = 255 + DisplayLabel = 'Nombre del cliente' + DictionaryEntry = 'AlbaranesCliente_NOMBRE' + end + item + Name = 'FECHA_ALBARAN' + DataType = datDateTime + DisplayLabel = 'Fecha albar'#195#161'n' + DictionaryEntry = 'AlbaranesCliente_FECHA_ALBARAN' + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + DisplayLabel = 'Referencia' + ServerAutoRefresh = True + DictionaryEntry = 'AlbaranesCliente_REFERENCIA' + end + item + Name = 'REFERENCIA_CLIENTE' + DataType = datString + Size = 255 + DisplayLabel = 'AlbaranesCliente_REFERENCIA_CLIENTE' + DictionaryEntry = 'AlbaranesCliente_REFERENCIA_CLIENTE' + end + item + Name = 'TIPO' + DataType = datString + Size = 1 + DisplayLabel = 'Tipo' + DictionaryEntry = 'AlbaranesCliente_TIPO' + end + item + Name = 'SITUACION' + DataType = datString + Size = 255 + DisplayLabel = 'Situaci'#195#179'n' + DictionaryEntry = 'AlbaranesCliente_SITUACION' + end + item + Name = 'ID_ALMACEN' + DataType = datInteger + DictionaryEntry = 'AlbaranesCliente_ID_ALMACEN' + end + item + Name = 'NOMBRE_ALMACEN' + DataType = datString + Size = 255 + DisplayLabel = 'Almac'#195#169'n' + DictionaryEntry = 'AlbaranesCliente_NOMBRE_ALMACEN' + end + item + Name = 'ID_PEDIDO' + DataType = datInteger + DictionaryEntry = 'AlbaranesCliente_ID_PEDIDO' + end + item + Name = 'REF_PEDIDO' + DataType = datString + Size = 255 + DisplayLabel = 'Ref. pedido cliente' + DictionaryEntry = 'AlbaranesCliente_REF_PEDIDO' + end + item + Name = 'ID_FACTURA' + DataType = datInteger + DictionaryEntry = 'AlbaranesCliente_ID_FACTURA' + end + item + Name = 'REF_FACTURA' + DataType = datString + Size = 255 + DisplayLabel = 'Ref. factura cliente' + DictionaryEntry = 'AlbaranesCliente_REF_FACTURA' + end + item + Name = 'CALLE' + DataType = datString + Size = 255 + DisplayLabel = 'Calle' + DictionaryEntry = 'AlbaranesCliente_CALLE' + end + item + Name = 'CODIGO_POSTAL' + DataType = datString + Size = 10 + DisplayLabel = 'C'#195#179'd. postal' + DictionaryEntry = 'AlbaranesCliente_CODIGO_POSTAL' + end + item + Name = 'POBLACION' + DataType = datString + Size = 255 + DisplayLabel = 'Poblaci'#195#179'n' + DictionaryEntry = 'AlbaranesCliente_POBLACION' + end + item + Name = 'PROVINCIA' + DataType = datString + Size = 255 + DisplayLabel = 'Provincia' + DictionaryEntry = 'AlbaranesCliente_PROVINCIA' + end + item + Name = 'PERSONA_CONTACTO' + DataType = datString + Size = 255 + DisplayLabel = 'Persona de contacto' + DictionaryEntry = 'AlbaranesCliente_PERSONA_CONTACTO' + end + item + Name = 'TELEFONO' + DataType = datString + Size = 25 + DisplayLabel = 'Tel'#195#169'fono' + DictionaryEntry = 'AlbaranesCliente_TELEFONO' + end + item + Name = 'IMPORTE_NETO' + DataType = datCurrency + DisplayLabel = 'Importe neto' + Alignment = taRightJustify + DictionaryEntry = 'AlbaranesCliente_IMPORTE_NETO' + end + item + Name = 'IMPORTE_PORTE' + DataType = datCurrency + DisplayLabel = 'Importe del porte' + Alignment = taRightJustify + DictionaryEntry = 'AlbaranesCliente_IMPORTE_PORTE' + end + item + Name = 'DESCUENTO' + DataType = datFloat + DisplayLabel = 'Descuento' + DisplayFormat = ',0.00 %;-,0.00 %' + Alignment = taRightJustify + DictionaryEntry = 'AlbaranesCliente_DESCUENTO' + end + item + Name = 'IMPORTE_DESCUENTO' + DataType = datCurrency + DisplayLabel = 'Importe dto.' + Alignment = taRightJustify + DictionaryEntry = 'AlbaranesCliente_IMPORTE_DESCUENTO' + end + item + Name = 'BASE_IMPONIBLE' + DataType = datCurrency + DisplayLabel = 'Base imponible' + Alignment = taRightJustify + DictionaryEntry = 'AlbaranesCliente_BASE_IMPONIBLE' + end + item + Name = 'IVA' + DataType = datFloat + DisplayFormat = ',0.00 %;-,0.00 %' + Alignment = taRightJustify + DictionaryEntry = 'AlbaranesCliente_IVA' + end + item + Name = 'IMPORTE_IVA' + DataType = datCurrency + DisplayLabel = 'Importe IVA' + Alignment = taRightJustify + DictionaryEntry = 'AlbaranesCliente_IMPORTE_IVA' + end + item + Name = 'IMPORTE_TOTAL' + DataType = datCurrency + DisplayLabel = 'Importe total' + Alignment = taRightJustify + DictionaryEntry = 'AlbaranesCliente_IMPORTE_TOTAL' + end + item + Name = 'OBSERVACIONES' + DataType = datMemo + DisplayLabel = 'Observaciones' + DictionaryEntry = 'AlbaranesCliente_OBSERVACIONES' + end + item + Name = 'INCIDENCIAS' + DataType = datMemo + DictionaryEntry = 'AlbaranesCliente_INCIDENCIAS' + end + item + Name = 'INCIDENCIAS_ACTIVAS' + DataType = datInteger + DictionaryEntry = 'AlbaranesCliente_INCIDENCIAS_ACTIVAS' + end + item + Name = 'FECHA_ALTA' + DataType = datDateTime + DictionaryEntry = 'AlbaranesCliente_FECHA_ALTA' + end + item + Name = 'FECHA_MODIFICACION' + DataType = datDateTime + DictionaryEntry = 'AlbaranesCliente_FECHA_MODIFICACION' + end + item + Name = 'USUARIO' + DataType = datString + Size = 20 + DictionaryEntry = 'AlbaranesCliente_USUARIO' + end + item + Name = 'ID_FORMA_PAGO' + DataType = datInteger + DictionaryEntry = 'AlbaranesCliente_ID_FORMA_PAGO' + end + item + Name = 'FECHA_PREVISTA_ENVIO' + DataType = datDateTime + DisplayLabel = 'Fecha prevista de envio' + DictionaryEntry = 'AlbaranesCliente_FECHA_PREVISTA_ENVIO' + end + item + Name = 'FECHA_ENVIO' + DataType = datDateTime + DisplayLabel = 'Fecha de env'#195#173'o' + DictionaryEntry = 'AlbaranesCliente_FECHA_ENVIO' + end + item + Name = 'FECHA_RECEPCION' + DataType = datDateTime + DisplayLabel = 'Fecha de recepci'#195#179'n' + DictionaryEntry = 'AlbaranesCliente_FECHA_RECEPCION' + end> + Params = <> + StreamingOptions = [soDisableEventsWhileStreaming] + RemoteDataAdapter = rda_AlbaranesCliente + DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch] + MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates] + LogicalName = 'AlbaranesCliente' + IndexDefs = <> + Left = 232 + Top = 128 + end + object ds_AlbaranesCliente: TDADataSource + DataSet = tbl_AlbaranesCliente.Dataset + DataTable = tbl_AlbaranesCliente + Left = 232 + Top = 56 + end + object tbl_AlbaranesCliente_Detalles: TDAMemDataTable + RemoteUpdatesOptions = [] + Fields = < + item + Name = 'ID' + DataType = datAutoInc + GeneratorName = 'GEN_ALBARANES_CLI_DETALLES_ID' + Required = True + DictionaryEntry = 'AlbaranesCliente_Detalles_ID' + InPrimaryKey = True + end + item + Name = 'ID_ALBARAN' + DataType = datInteger + DictionaryEntry = 'AlbaranesCliente_Detalles_ID_ALBARAN' + end + item + Name = 'POSICION' + DataType = datInteger + DictionaryEntry = 'POSICIONCONCEPTO' + end + item + Name = 'TIPO_DETALLE' + DataType = datString + Size = 10 + DictionaryEntry = 'AlbaranesCliente_Detalles_TIPO_DETALLE' + end + item + Name = 'CONCEPTO' + DataType = datString + Size = 2000 + DictionaryEntry = 'AlbaranesCliente_Detalles_CONCEPTO' + end + item + Name = 'CANTIDAD' + DataType = datInteger + Alignment = taRightJustify + DictionaryEntry = 'CANTIDAD' + end + item + Name = 'IMPORTE_UNIDAD' + DataType = datCurrency + DisplayLabel = 'Importe unidad' + Alignment = taRightJustify + DictionaryEntry = 'AlbaranesCliente_Detalles_IMPORTE_UNIDAD' + end + item + Name = 'DESCUENTO' + DataType = datFloat + DisplayLabel = 'Descuento' + DisplayFormat = ',0.00 %;-,0.00 %' + Alignment = taRightJustify + DictionaryEntry = 'AlbaranesCliente_Detalles_DESCUENTO' + end + item + Name = 'IMPORTE_PORTE' + DataType = datCurrency + DisplayLabel = 'Importe porte' + Alignment = taRightJustify + DictionaryEntry = 'AlbaranesCliente_Detalles_IMPORTE_PORTE' + end + item + Name = 'IMPORTE_TOTAL' + DataType = datCurrency + DisplayLabel = 'Importe total' + Alignment = taRightJustify + DictionaryEntry = 'AlbaranesCliente_Detalles_IMPORTE_TOTAL' + end + item + Name = 'VISIBLE' + DataType = datInteger + DictionaryEntry = 'AlbaranesCliente_Detalles_VISIBLE' + end + item + Name = 'ID_ARTICULO' + DataType = datInteger + DictionaryEntry = 'AlbaranesCliente_Detalles_ID_ARTICULO' + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + end + item + Name = 'REFERENCIA_PROVEEDOR' + DataType = datString + Size = 255 + end> + Params = <> + MasterMappingMode = mmWhere + StreamingOptions = [soDisableEventsWhileStreaming] + RemoteDataAdapter = rda_AlbaranesCliente + MasterSource = ds_AlbaranesCliente + MasterFields = 'ID' + DetailFields = 'ID_ALBARAN' + DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch] + MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates] + LogicalName = 'AlbaranesCliente_Detalles' + IndexDefs = <> + Left = 384 + Top = 128 + end + object ds_AlbaranesCliente_Detalles: TDADataSource + DataSet = tbl_AlbaranesCliente_Detalles.Dataset + DataTable = tbl_AlbaranesCliente_Detalles + Left = 384 + Top = 56 + end +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..c245b3f6 --- /dev/null +++ b/Source/Modulos/Albaranes de cliente/Data/uDataModuleAlbaranesCliente.pas @@ -0,0 +1,142 @@ +unit uDataModuleAlbaranesCliente; + +interface + +uses + DB, Classes, SysUtils, uDADesigntimeCall, uROServiceComponent, + uRORemoteService, uROClient, uROBinMessage, uDAScriptingProvider, + uDACDSDataTable, uROWinInetHttpChannel, uDADataTable, uDABINAdapter, + uDAClientDataModule, uROTypes, + uIDataModuleAlbaranesCliente, uBizAlbaranesCliente, uBizDetallesAlbaranCliente, + uIDataModuleAlbaranesClienteReport, uDataModuleBase, uDABin2DataStreamer, uDAMemDataTable, + uDAInterfaces, uDADataStreamer, uDARemoteDataAdapter; + +type + TDataModuleAlbaranesCliente = class(TDataModuleBase, IDataModuleAlbaranesCliente, IDataModuleAlbaranesClienteReport) + RORemoteService: TRORemoteService; + rda_AlbaranesCliente: TDARemoteDataAdapter; + Bin2DataStreamer: TDABin2DataStreamer; + tbl_AlbaranesCliente: TDAMemDataTable; + ds_AlbaranesCliente: TDADataSource; + tbl_AlbaranesCliente_Detalles: TDAMemDataTable; + ds_AlbaranesCliente_Detalles: TDADataSource; + procedure DAClientDataModuleCreate(Sender: TObject); + + private + function _GetDetalles : IBizDetallesAlbaranCliente; + + protected + procedure AsignarClaseNegocio(AAlbaran: TDADataTable); virtual; + + public + function GetItems : IBizAlbaranCliente; virtual; + function GetItem(const ID : Integer) : IBizAlbaranCliente; + function NewItem : IBizAlbaranCliente; + + // Report + function GetReport(const AID: String): Binary; + function GetEtiquetas(const AID: Integer; withRefCliente: Boolean): Binary; + end; + +implementation + +{$R *.DFM} + +uses + cxControls, FactuGES_Intf, uDataModuleConexion, + uDataTableUtils, schAlbaranesClienteClient_Intf, uBizContactos; + +{ TdmAlbaranesCliente } + +procedure TDataModuleAlbaranesCliente.AsignarClaseNegocio(AAlbaran: TDADataTable); +begin + AAlbaran.BusinessRulesID := BIZ_CLIENT_ALBARAN_CLIENTE; +end; + +procedure TDataModuleAlbaranesCliente.DAClientDataModuleCreate(Sender: TObject); +begin + RORemoteService.Channel := dmConexion.Channel; + RORemoteService.Message := dmConexion.Message; +end; + +function TDataModuleAlbaranesCliente.GetReport(const AID: String): Binary; +begin +// Result := (RORemoteService as IsrvAlbaranesCliente).GenerateReport(AID) +end; + +function TDataModuleAlbaranesCliente.NewItem: IBizAlbaranCliente; +begin + Result := GetItem(ID_NULO) +end; + +function TDataModuleAlbaranesCliente._GetDetalles: IBizDetallesAlbaranCliente; +var + ADetalles : TDAMemDataTable; +begin + ShowHourglassCursor; + try + ADetalles := CloneDataTable(tbl_AlbaranesCliente_Detalles); + with ADetalles do + begin + BusinessRulesID := BIZ_CLIENT_DETALLES_ALBARAN_CLIENTE; + DetailOptions := DetailOptions - [dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates]; + end; + Result := (ADetalles as IBizDetallesAlbaranCliente); + finally + HideHourglassCursor; + end; +end; + +function TDataModuleAlbaranesCliente.GetEtiquetas(const AID: Integer; withRefCliente: Boolean): Binary; +begin +// Result := (RORemoteService as IsrvAlbaranesCliente).GenerateEtiquetas(AID, withRefCliente) +end; + +function TDataModuleAlbaranesCliente.GetItem(const ID: Integer): IBizAlbaranCliente; +var + Condicion: TDAWhereExpression; +begin + ShowHourglassCursor; + try + Result := Self.GetItems; + + with Result.DataTable.DynamicWhere do + begin + // (ID = :ID) + Condicion := NewBinaryExpression(NewField('', fld_AlbaranesClienteID), NewConstant(ID, datInteger), dboEqual); + + if IsEmpty then + Expression := Condicion + else + Expression := NewBinaryExpression(Expression, Condicion, dboAnd); + end; + + finally + HideHourglassCursor; + end; +end; + +function TDataModuleAlbaranesCliente.GetItems: IBizAlbaranCliente; +var + AAlbaran : TDAMemDataTable; +begin + ShowHourglassCursor; + try + AAlbaran := CloneDataTable(tbl_AlbaranesCliente); + AsignarClaseNegocio(AAlbaran); + + // EL CAMPO REFERENCIA TIENE QUE SER AUTOREFRESH!!!!! + AAlbaran.FieldByName(fld_AlbaranesClienteREFERENCIA).ServerAutoRefresh := TRUE; + + with TBizAlbaranCliente(AAlbaran.BusinessEventsObj) do + begin + Detalles := _GetDetalles; + end; + + Result := (AAlbaran as IBizAlbaranCliente); + finally + HideHourglassCursor; + end; +end; + +end. diff --git a/Source/Modulos/Albaranes de cliente/Model/AlbaranesCliente_model.bdsproj b/Source/Modulos/Albaranes de cliente/Model/AlbaranesCliente_model.bdsproj new file mode 100644 index 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..08b6aece --- /dev/null +++ b/Source/Modulos/Albaranes de cliente/Model/AlbaranesCliente_model.dpk @@ -0,0 +1,40 @@ +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 ON} + +requires + Base, + Contactos_model, + ApplicationBase; + +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.dproj b/Source/Modulos/Albaranes de cliente/Model/AlbaranesCliente_model.dproj new file mode 100644 index 00000000..4a0a2e3f --- /dev/null +++ b/Source/Modulos/Albaranes de cliente/Model/AlbaranesCliente_model.dproj @@ -0,0 +1,547 @@ + + + {a7225a8d-f40d-4878-9a27-c5de0e7cb638} + AlbaranesCliente_model.dpk + Debug + AnyCPU + DCC32 + ..\..\..\..\Output\Debug\Cliente\AlbaranesCliente_model.bpl + + + 7.0 + False + False + 0 + 3 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + RELEASE + + + 7.0 + 3 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + + + Delphi.Personality + Package + +FalseTrueFalseTrueFalseFalseTrueFalse1000FalseFalseFalseFalseFalse308212521.0.0.01.0.0.0 + RemObjects Pascal Script - RemObjects SDK 3.0 Integration + EurekaLog 5.1.9 + AlbaranesCliente_model.dpk + + + + + MainSource + + + + + + + + + + + + + diff --git a/Source/Modulos/Albaranes de cliente/Model/AlbaranesCliente_model.identcache b/Source/Modulos/Albaranes de cliente/Model/AlbaranesCliente_model.identcache new file mode 100644 index 0000000000000000000000000000000000000000..ac35d66def952de52ff52676647a585e400511f1 GIT binary patch literal 650 zcmb`^Jr2S!3b($`1plr?jX;1Y!tTJmg8A?6+Zz z^A5D;?}3$8w=97AlAe5yD&gaWYy7LeWAUaqx~Kv?-;(-Hs4-^ATIZOBrid9+-6Ne7&88mi>kUR4lo#jxZ;#*s4zxg9yNlk=H9sqkCD2^cEXKpiTBNfgkKpXJBWWaLt(Qkv@0 w5yv*t82((Wlr2{_+FDoDHKW2QCXvc+s**ul{{$ FCliente.ID then + begin + bEnEdicion := (DataTable.State in dsEditModes); + if not bEnEdicion then + DataTable.Edit; + + ID_CLIENTE := FCliente.ID; + ID_FORMA_PAGO := FCliente.ID_FORMA_PAGO; + + DataTable.Post; //Muy importante ya que es necesario hacer un post de la cabecera antes de aadir detalles + //si se quita el id de la cabecera y los detalles se desincroniza + if bEnEdicion then + DataTable.Edit; + end; + end; +end; + +procedure TBizAlbaranCliente.SetDetalles(Value: IBizDetallesAlbaranCliente); +begin + FDetalles := Value; + EnlazarMaestroDetalle(FDetallesLink, FDetalles); +end; + +procedure TBizAlbaranCliente.SetFECHA_ALBARANValue(const aValue: TDateTime); +begin + if EsFechaVacia(aValue) then + SetFieldNull(DataTable, fld_AlbaranesClienteFECHA_ALBARAN) + else + inherited; +end; + +procedure TBizAlbaranCliente.SetFECHA_ENVIOValue(const aValue: TDateTime); +begin + if EsFechaVacia(aValue) then + SetFieldNull(DataTable, fld_AlbaranesClienteFECHA_ENVIO) + else + inherited; +end; + +procedure TBizAlbaranCliente.SetFECHA_PREVISTA_ENVIOValue(const aValue: TDateTime); +begin + if EsFechaVacia(aValue) then + SetFieldNull(DataTable, fld_AlbaranesClienteFECHA_PREVISTA_ENVIO) + else + inherited; +end; + +procedure TBizAlbaranCliente.SetFECHA_RECEPCIONValue(const aValue: TDateTime); +begin + if EsFechaVacia(aValue) then + SetFieldNull(DataTable, fld_AlbaranesClienteFECHA_RECEPCION) + else + inherited; +end; + +procedure TBizAlbaranCliente.SetID_FACTURAValue(const aValue: Integer); +begin + if (aValue = 0) then + SetFieldNull(DataTable, fld_AlbaranesClienteID_FACTURA) + else + inherited; +end; + +procedure TBizAlbaranCliente.SetID_FORMA_PAGOValue(const aValue: Integer); +begin + if (aValue = 0) then + SetFieldNull(DataTable, fld_AlbaranesClienteID_FORMA_PAGO) + else + inherited; +end; + +procedure TBizAlbaranCliente.SetID_PEDIDOValue(const aValue: Integer); +begin + if (aValue = 0) then + SetFieldNull(DataTable, fld_AlbaranesClienteID_PEDIDO) + else + inherited; +end; +{ +procedure TBizAlbaranCliente.SetINCIDENCIASValue(const aValue: IROStrings); +begin + if not Assigned(aValue) then + SetFieldNull(DataTable, fld_AlbaranesClienteINCIDENCIAS) + else + inherited; +end; +} +function TBizAlbaranCliente._GetCliente: IBizCliente; +begin + Result := FCliente; +end; + +procedure TBizAlbaranCliente._SetCliente(AValue: IBizCliente); +begin + FCliente := AValue; +end; + +initialization + RegisterDataTableRules(BIZ_CLIENT_ALBARAN_CLIENTE, TBizAlbaranCliente); + +finalization + +end. + + \ No newline at end of file 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..c22a13e5 --- /dev/null +++ b/Source/Modulos/Albaranes de cliente/Model/uBizDetallesAlbaranCliente.pas @@ -0,0 +1,42 @@ +unit uBizDetallesAlbaranCliente; + +interface + +uses + uDADataTable, schAlbaranesClienteClient_Intf; + +const + BIZ_CLIENT_DETALLES_ALBARAN_CLIENTE = 'Client.DetallesAlbaran.Cliente'; + + +type + IBizDetallesAlbaranCliente = interface(IAlbaranesCliente_Detalles) + ['{8EC1F1B2-C00D-4B58-9F97-C74DBADA4980}'] + end; + + TBizDetallesAlbaranCliente = class(TAlbaranesCliente_DetallesDataTableRules, IBizDetallesAlbaranCliente) + protected + procedure BeforeInsert(Sender: TDADataTable); override; + end; + +implementation + +uses + DB; + +{ TBizDetallesAlbaranCliente } + +procedure TBizDetallesAlbaranCliente.BeforeInsert(Sender: TDADataTable); +var + AMasterTable : TDADataTable; +begin + inherited; + AMasterTable := DataTable.GetMasterDataTable; + if Assigned(AMasterTable) and (AMasterTable.State = dsInsert) then + AMasterTable.Post; +end; + +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..43082b91 --- /dev/null +++ b/Source/Modulos/Albaranes de cliente/Plugin/AlbaranesCliente_plugin.dpk @@ -0,0 +1,34 @@ +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 ON} + +requires + AlbaranesCliente_view, + AlbaranesCliente_model; + +contains + uPluginAlbaranesCliente in 'uPluginAlbaranesCliente.pas' {PluginAlbaranesCliente}; + +end. diff --git a/Source/Modulos/Albaranes de cliente/Plugin/AlbaranesCliente_plugin.dproj b/Source/Modulos/Albaranes de cliente/Plugin/AlbaranesCliente_plugin.dproj new file mode 100644 index 00000000..26939e98 --- /dev/null +++ b/Source/Modulos/Albaranes de cliente/Plugin/AlbaranesCliente_plugin.dproj @@ -0,0 +1,593 @@ + + + {e7d762a1-3a15-46b2-bd5b-3821d13b8347} + AlbaranesCliente_plugin.dpk + Debug + AnyCPU + DCC32 + ..\..\..\..\Output\Debug\Cliente\AlbaranesCliente_plugin.bpl + + + 7.0 + False + False + 0 + 3 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + RELEASE + + + 7.0 + 3 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + + + Delphi.Personality + Package + + + False + True + False + + + True + False + False + + + True + False + 1 + 0 + 0 + 0 + False + False + False + False + False + 3082 + 1252 + + + + + 1.0.0.0 + + + + + + 1.0.0.0 + + + + + + + + + + + + RemObjects Pascal Script - RemObjects SDK 3.0 Integration + EurekaLog 5.1.9 + + + AlbaranesCliente_plugin.dpk + + + + + + + MainSource + + + + +
    PluginAlbaranesCliente
    +
    +
    +
    + + diff --git a/Source/Modulos/Albaranes de cliente/Plugin/AlbaranesCliente_plugin.identcache b/Source/Modulos/Albaranes de cliente/Plugin/AlbaranesCliente_plugin.identcache new file mode 100644 index 0000000000000000000000000000000000000000..a1536a241f0976d7ccd1da69e877bfd5a5582a85 GIT binary patch literal 106 zcmZQ%U|@)Jwu*7iPsvQrR|rW>F3v1T&4~%lFD*(=jq%M-Db2|*j&aOMN-RpuOD$GN lNmWSB$xO{FNsS4}DNWDJiz$WBa3#(VX}yBPVxZx00065!B8~t6 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..36f26e234a8ac66a47e95cec6d496cf2f1442471 GIT binary patch literal 32 UcmZQzU|>)H;{X347|28c09i@|9RL6T literal 0 HcmV?d00001 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..ac065ea0 --- /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 = 105 + 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..181a7513 --- /dev/null +++ b/Source/Modulos/Albaranes de cliente/Reports/uRptAlbaranesCliente_Server.dfm @@ -0,0 +1,1425 @@ +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.R' + + 'EFERENCIA_CLIENTE,'#10' V_ALBARANES_CLIENTE.ID_PEDIDO,'#10' V_ALBARANE' + + 'S_CLIENTE.REF_PEDIDO,'#10' V_ALBARANES_CLIENTE.CODIGO_POSTAL,'#10' V_A' + + 'LBARANES_CLIENTE.POBLACION,'#10' V_ALBARANES_CLIENTE.PROVINCIA,'#10' V' + + '_ALBARANES_CLIENTE.PERSONA_CONTACTO,'#10' V_ALBARANES_CLIENTE.TELEF' + + 'ONO,'#10' V_ALBARANES_CLIENTE.CALLE,'#10' V_ALBARANES_CLIENTE.OBSERVAC' + + 'IONES,'#10' V_ALBARANES_CLIENTE.IMPORTE_TOTAL,'#10' V_ALBARANES_CLIENT' + + 'E.FECHA_PREVISTA_ENVIO,'#10' EMPRESAS.NIF_CIF AS NIF_CIF_EMPRESA,'#10' ' + + ' EMPRESAS.NOMBRE AS NOMBRE_EMPRESA,'#10' EMPRESAS.RAZON_SOCIAL AS R' + + 'AZON_SOCIAL_EMPRESA,'#10' EMPRESAS.CALLE AS CALLE_EMPRESA,'#10' EMPRES' + + 'AS.CODIGO_POSTAL AS CODIGO_POSTAL_EMPRESA,'#10' EMPRESAS.POBLACION ' + + 'AS POBLACION_EMPRESA,'#10' EMPRESAS.PROVINCIA AS PROVINCIA_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.E' + + 'MAIL_1 AS EMAIL_1_EMPRESA,'#10' EMPRESAS.PAGINA_WEB AS PAGINA_WEB_E' + + 'MPRESA'#10'FROM'#10' V_ALBARANES_CLIENTE'#10' LEFT OUTER JOIN V_CLIENTES' + + ' ON (V_CLIENTES.ID = V_ALBARANES_CLIENTE.ID_CLIENTE)'#10' LEFT OUTE' + + 'R 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 + item + DatasetField = 'REFERENCIA_CLIENTE' + TableField = 'REFERENCIA_CLIENTE' + end + item + DatasetField = 'FECHA_PREVISTA_ENVIO' + TableField = 'FECHA_PREVISTA_ENVIO' + end + item + DatasetField = 'CALLE_EMPRESA' + TableField = 'CALLE_EMPRESA' + end + item + DatasetField = 'CODIGO_POSTAL_EMPRESA' + TableField = 'CODIGO_POSTAL_EMPRESA' + end + item + DatasetField = 'POBLACION_EMPRESA' + TableField = 'POBLACION_EMPRESA' + end + item + DatasetField = 'PROVINCIA_EMPRESA' + TableField = 'PROVINCIA_EMPRESA' + 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 = 'REFERENCIA_CLIENTE' + DataType = datString + Size = 255 + 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 = 'FECHA_PREVISTA_ENVIO' + DataType = datDateTime + 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 = 'CALLE_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 = '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 = '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 + 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' F_RTFTOTEXT(ALBARANES_C' + + 'LIENTE_DETALLES.CONCEPTO) as CONCEPTO, ALBARANES_CLIENTE_DETALLE' + + 'S.CANTIDAD,'#10' ALBARANES_CLIENTE_DETALLES.IMPORTE_UNIDAD, AL' + + 'BARANES_CLIENTE_DETALLES.IMPORTE_TOTAL,'#10' ARTICULOS.REFEREN' + + 'CIA, ARTICULOS.FAMILIA, ARTICULOS.REFERENCIA_PROV as REFERENCIA_' + + 'PROVEEDOR'#10#10#10'FROM ALBARANES_CLIENTE_DETALLES'#10'LEFT JOIN ARTICULOS ' + + 'ON (ALBARANES_CLIENTE_DETALLES.ID_ARTICULO = ARTICULOS.ID)'#10'WHERE' + + ' (ID_ALBARAN = :ID_ALBARAN)'#10'AND (ARTICULOS.INVENTARIABLE = 1)'#10'OR' + + 'DER 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_Etiquetas' + 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 = 39286.749813368060000000 + ScriptLanguage = 'PascalScript' + ScriptText.Strings = ( + '' + 'procedure NombreEmpresaOnBeforePrint(Sender: TfrxComponent);' + 'begin' + ' NombreEmpresa.Lines.Clear;' + ' NombreEmpresa.Lines.Add();' + 'end;' + '' + 'procedure TelefonosEmpresaOnBeforePrint(Sender: TfrxComponent);' + 'var' + ' Cadena: String;' + 'begin' + ' TelefonosEmpresa.Lines.Clear;' + '' + ' if ( <> '#39#39') then' + ' Cadena := '#39'tlf: '#39' + ;' + ' if ( <> '#39#39') then' + + ' Cadena := Cadena + '#39' / fax: '#39' + ;' + ' TelefonosEmpresa.Lines.Add(Cadena);' + 'end;' + '' + 'procedure DireccionEmpresaOnBeforePrint(Sender: TfrxComponent);' + 'var' + ' Cadena: String;' + 'begin' + ' DireccionEmpresa.Lines.Clear;' + '' + ' if ( <> '#39#39') then' + + ' DireccionEmpresa.Lines.Add()' + + ';' + '' + ' if ( <> '#39#39') then' + ' Cadena := ;' + ' if ( <> '#39#39') then' + + ' Cadena := Cadena + '#39', '#39' + ;' + ' DireccionEmpresa.Lines.Add(Cadena);' + '' + ' if ( <> '#39#39') then' + + ' DireccionEmpresa.Lines.Add();' + '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 = 'Style1' + Color = clNone + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -27 + Font.Name = 'Arial' + Font.Style = [] + 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/Albaranes de cliente/Reports/uRptAlbaranesCliente_Server.pas b/Source/Modulos/Albaranes de cliente/Reports/uRptAlbaranesCliente_Server.pas new file mode 100644 index 00000000..732ffa1b --- /dev/null +++ b/Source/Modulos/Albaranes de cliente/Reports/uRptAlbaranesCliente_Server.pas @@ -0,0 +1,155 @@ +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; + schReport: TDASchema; + DataDictionary: TDADataDictionary; + frxReport: TfrxReport; + procedure DataModuleCreate(Sender: TObject); + private + FConnection: IDAConnection; + //Genera cada uno de los albaranes a imprimir + procedure GenerarAlbaran(const ID: integer); overload; + public + function GenerarAlbaran(const AID : String): Binary; overload; + function GenerarEtiquetas(const AID : Integer; withRefCliente: Boolean): Binary; + end; + +implementation + +{$R *.dfm} + +uses + uDataModuleServer, schAlbaranesClienteClient_Intf; + +const + rptInfAlbaran = 'InfAlbaranCliente.fr3'; + rptInfEtiquetas = 'InfEtiquetasAlbaranCliente.fr3'; + + { Dataset names for schReport } + ds_InformeCabecera = 'Informe_Cabecera'; + ds_InformeDetalles = 'Informe_Detalles'; + ds_InformeDetallesEtiquetas = 'Informe_Detalles_Etiquetas'; + + +{ TRptAlbaranesCliente } + + +procedure TRptAlbaranesCliente.DataModuleCreate(Sender: TObject); +begin + schReport.ConnectionManager := dmServer.ConnectionManager; + FConnection := dmServer.DarNuevaConexion; + frxReport.EngineOptions.NewSilentMode := simReThrow; +end; + +function TRptAlbaranesCliente.GenerarAlbaran(const AID: String): Binary; +var + ID_Albaranes: TStringList; + i: Integer; +begin + Result := Binary.Create; + FConnection.BeginTransaction; + + try + ID_Albaranes := TStringList.Create; + ID_Albaranes.CommaText := AID; + + //Vamos generando todos y cada uno de los albaranes recibidos + for i := 0 to ID_Albaranes.Count - 1 do + GenerarAlbaran(StrToInt(ID_Albaranes.Strings[i])); + + frxReport.PreviewPages.SaveToStream(Result); + + finally + FConnection.RollbackTransaction; + end; +end; + +procedure TRptAlbaranesCliente.GenerarAlbaran(const ID: integer); +var + AStream: TMemoryStream; + dsMaster: IDADataset; + dsDetail: IDADataset; +begin + AStream := TMemoryStream.Create; + + try + dsMaster := schReport.NewDataset(FConnection, ds_InformeCabecera, ['ID'], [ID]); + dsDetail := schReport.NewDataset(FConnection, ds_InformeDetalles, ['ID_ALBARAN'], [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 + rptInfAlbaran, True); + frxReport.PrepareReport(False); + + finally + AStream.Free; + dsMaster := Nil; + dsDetail := Nil; + end; +end; + +function TRptAlbaranesCliente.GenerarEtiquetas(const AID: Integer; withRefCliente: Boolean): 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_InformeDetallesEtiquetas, ['ID_ALBARAN'], [AID], False); + + AStream.Clear; + DABINAdapter.WriteDataset(AStream, dsMaster, [woRows, woSchema], -1); + DABINAdapter.ReadDataset(AStream, tbl_Cabecera, TRUE, '', TRUE, TRUE); + + AStream.Clear; + DABINAdapter.WriteDataset(AStream, dsDetail, [woRows, woSchema], -1); + DABINAdapter.ReadDataset(AStream, tbl_Detalles, TRUE, '', TRUE, TRUE); + + frxReport.LoadFromFile(DarRutaInformes + rptInfEtiquetas, True); + if withRefCliente then + frxReport.Variables.Variables['withRefCliente'] := 1 + else + frxReport.Variables.Variables['withRefCliente'] := 0; + frxReport.PrepareReport(False); + frxReport.PreviewPages.SaveToStream(Result); + finally + AStream.Free; + FConnection.RollbackTransaction; + end; +end; + +end. diff --git a/Source/Modulos/Albaranes de cliente/Servidor/srvAlbaranesCliente_Impl.dfm b/Source/Modulos/Albaranes de cliente/Servidor/srvAlbaranesCliente_Impl.dfm new file mode 100644 index 00000000..6502ed78 --- /dev/null +++ b/Source/Modulos/Albaranes de cliente/Servidor/srvAlbaranesCliente_Impl.dfm @@ -0,0 +1,1548 @@ +object srvAlbaranesCliente: TsrvAlbaranesCliente + OldCreateOrder = True + OnCreate = DARemoteServiceCreate + RequiresSession = True + SessionManager = dmServer.SessionManager + ConnectionName = 'IBX' + ServiceSchema = schAlbaranesCliente + ServiceDataStreamer = Bin2DataStreamer + ExportedDataTables = <> + BeforeAcquireConnection = DataAbstractServiceBeforeAcquireConnection + Height = 209 + Width = 347 + object schAlbaranesCliente: TDASchema + ConnectionManager = dmServer.ConnectionManager + DataDictionary = DADataDictionary + Datasets = < + item + Params = < + item + Name = 'CODIGO' + Value = '' + ParamType = daptInput + end + item + Name = 'EMPRESA' + 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 = :EMPRESA'#10 + StatementType = stSQL + ColumnMappings = < + item + DatasetField = 'VALOR' + TableField = 'VALOR' + end> + end> + Name = 'DarReferencia' + Fields = < + item + Name = 'VALOR' + DataType = datString + Size = 255 + end> + end + item + Params = <> + Statements = < + item + Connection = 'IBX' + Default = True + TargetTable = 'V_ALBARANES_CLIENTE' + StatementType = stAutoSQL + ColumnMappings = < + item + DatasetField = 'ID' + TableField = 'ID' + end + item + DatasetField = 'ID_EMPRESA' + TableField = 'ID_EMPRESA' + end + item + DatasetField = 'ID_CLIENTE' + TableField = 'ID_CLIENTE' + end + item + DatasetField = 'NOMBRE' + TableField = 'NOMBRE' + end + item + DatasetField = 'FECHA_ALBARAN' + TableField = 'FECHA_ALBARAN' + end + item + DatasetField = 'REFERENCIA' + TableField = 'REFERENCIA' + end + item + DatasetField = 'REFERENCIA_CLIENTE' + TableField = 'REFERENCIA_CLIENTE' + end + item + DatasetField = 'TIPO' + TableField = 'TIPO' + end + item + DatasetField = 'SITUACION' + TableField = 'SITUACION' + end + item + DatasetField = 'ID_ALMACEN' + TableField = 'ID_ALMACEN' + end + item + DatasetField = 'NOMBRE_ALMACEN' + TableField = 'NOMBRE_ALMACEN' + end + item + DatasetField = 'ID_PEDIDO' + TableField = 'ID_PEDIDO' + end + item + DatasetField = 'REF_PEDIDO' + TableField = 'REF_PEDIDO' + end + item + DatasetField = 'ID_FACTURA' + TableField = 'ID_FACTURA' + end + item + DatasetField = 'REF_FACTURA' + TableField = 'REF_FACTURA' + end + item + DatasetField = 'CALLE' + TableField = 'CALLE' + end + item + DatasetField = 'CODIGO_POSTAL' + TableField = 'CODIGO_POSTAL' + end + item + DatasetField = 'POBLACION' + TableField = 'POBLACION' + end + item + DatasetField = 'PROVINCIA' + TableField = 'PROVINCIA' + end + item + DatasetField = 'PERSONA_CONTACTO' + TableField = 'PERSONA_CONTACTO' + end + item + DatasetField = 'TELEFONO' + TableField = 'TELEFONO' + end + item + DatasetField = 'IMPORTE_NETO' + TableField = 'IMPORTE_NETO' + end + item + DatasetField = 'IMPORTE_PORTE' + TableField = 'IMPORTE_PORTE' + end + item + DatasetField = 'DESCUENTO' + TableField = 'DESCUENTO' + end + item + DatasetField = 'IMPORTE_DESCUENTO' + TableField = 'IMPORTE_DESCUENTO' + end + item + DatasetField = 'BASE_IMPONIBLE' + TableField = 'BASE_IMPONIBLE' + end + item + DatasetField = 'IVA' + TableField = 'IVA' + end + item + DatasetField = 'IMPORTE_IVA' + TableField = 'IMPORTE_IVA' + end + item + DatasetField = 'IMPORTE_TOTAL' + TableField = 'IMPORTE_TOTAL' + end + item + DatasetField = 'OBSERVACIONES' + TableField = 'OBSERVACIONES' + end + item + DatasetField = 'INCIDENCIAS' + TableField = 'INCIDENCIAS' + end + item + DatasetField = 'INCIDENCIAS_ACTIVAS' + TableField = 'INCIDENCIAS_ACTIVAS' + end + item + DatasetField = 'FECHA_ALTA' + TableField = 'FECHA_ALTA' + end + item + DatasetField = 'FECHA_MODIFICACION' + TableField = 'FECHA_MODIFICACION' + end + item + DatasetField = 'USUARIO' + TableField = 'USUARIO' + end + item + DatasetField = 'ID_FORMA_PAGO' + TableField = 'ID_FORMA_PAGO' + end + item + DatasetField = 'FECHA_PREVISTA_ENVIO' + TableField = 'FECHA_PREVISTA_ENVIO' + end + item + DatasetField = 'FECHA_ENVIO' + TableField = 'FECHA_ENVIO' + end + item + DatasetField = 'FECHA_RECEPCION' + TableField = 'FECHA_RECEPCION' + end> + end> + Name = 'AlbaranesCliente' + Fields = < + item + Name = 'ID' + DataType = datAutoInc + GeneratorName = 'GEN_ALBARANES_CLI_ID' + ServerAutoRefresh = True + DictionaryEntry = 'AlbaranesCliente_ID' + InPrimaryKey = True + end + item + Name = 'ID_EMPRESA' + DataType = datInteger + DictionaryEntry = 'AlbaranesCliente_ID_EMPRESA' + end + item + Name = 'ID_CLIENTE' + DataType = datInteger + DictionaryEntry = 'AlbaranesCliente_ID_CLIENTE' + end + item + Name = 'NOMBRE' + DataType = datString + Size = 255 + DictionaryEntry = 'AlbaranesCliente_NOMBRE' + end + item + Name = 'FECHA_ALBARAN' + DataType = datDateTime + DictionaryEntry = 'AlbaranesCliente_FECHA_ALBARAN' + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + ServerAutoRefresh = True + DictionaryEntry = 'AlbaranesCliente_REFERENCIA' + end + item + Name = 'REFERENCIA_CLIENTE' + DataType = datString + Size = 255 + DictionaryEntry = 'AlbaranesCliente_REFERENCIA_CLIENTE' + end + item + Name = 'TIPO' + DataType = datString + Size = 1 + DictionaryEntry = 'AlbaranesCliente_TIPO' + end + item + Name = 'SITUACION' + DataType = datString + Size = 255 + DictionaryEntry = 'AlbaranesCliente_SITUACION' + end + item + Name = 'ID_ALMACEN' + DataType = datInteger + DictionaryEntry = 'AlbaranesCliente_ID_ALMACEN' + end + item + Name = 'NOMBRE_ALMACEN' + DataType = datString + Size = 255 + DictionaryEntry = 'AlbaranesCliente_NOMBRE_ALMACEN' + end + item + Name = 'ID_PEDIDO' + DataType = datInteger + DictionaryEntry = 'AlbaranesCliente_ID_PEDIDO' + end + item + Name = 'REF_PEDIDO' + DataType = datString + Size = 255 + DictionaryEntry = 'AlbaranesCliente_REF_PEDIDO' + end + item + Name = 'ID_FACTURA' + DataType = datInteger + DictionaryEntry = 'AlbaranesCliente_ID_FACTURA' + end + item + Name = 'REF_FACTURA' + DataType = datString + Size = 255 + DictionaryEntry = 'AlbaranesCliente_REF_FACTURA' + end + item + Name = 'CALLE' + DataType = datString + Size = 255 + DictionaryEntry = 'AlbaranesCliente_CALLE' + end + item + Name = 'CODIGO_POSTAL' + DataType = datString + Size = 10 + DictionaryEntry = 'AlbaranesCliente_CODIGO_POSTAL' + end + item + Name = 'POBLACION' + DataType = datString + Size = 255 + DictionaryEntry = 'AlbaranesCliente_POBLACION' + end + item + Name = 'PROVINCIA' + DataType = datString + Size = 255 + DictionaryEntry = 'AlbaranesCliente_PROVINCIA' + end + item + Name = 'PERSONA_CONTACTO' + DataType = datString + Size = 255 + DictionaryEntry = 'AlbaranesCliente_PERSONA_CONTACTO' + end + item + Name = 'TELEFONO' + DataType = datString + Size = 25 + DictionaryEntry = 'AlbaranesCliente_TELEFONO' + end + item + Name = 'IMPORTE_NETO' + DataType = datCurrency + DictionaryEntry = 'AlbaranesCliente_IMPORTE_NETO' + end + item + Name = 'IMPORTE_PORTE' + DataType = datCurrency + DictionaryEntry = 'AlbaranesCliente_IMPORTE_PORTE' + end + item + Name = 'DESCUENTO' + DataType = datFloat + DictionaryEntry = 'AlbaranesCliente_DESCUENTO' + end + item + Name = 'IMPORTE_DESCUENTO' + DataType = datCurrency + DictionaryEntry = 'AlbaranesCliente_IMPORTE_DESCUENTO' + end + item + Name = 'BASE_IMPONIBLE' + DataType = datCurrency + DictionaryEntry = 'AlbaranesCliente_BASE_IMPONIBLE' + end + item + Name = 'IVA' + DataType = datFloat + DictionaryEntry = 'AlbaranesCliente_IVA' + end + item + Name = 'IMPORTE_IVA' + DataType = datCurrency + DictionaryEntry = 'AlbaranesCliente_IMPORTE_IVA' + end + item + Name = 'IMPORTE_TOTAL' + DataType = datCurrency + DictionaryEntry = 'AlbaranesCliente_IMPORTE_TOTAL' + end + item + Name = 'OBSERVACIONES' + DataType = datMemo + DictionaryEntry = 'AlbaranesCliente_OBSERVACIONES' + end + item + Name = 'INCIDENCIAS' + DataType = datMemo + DictionaryEntry = 'AlbaranesCliente_INCIDENCIAS' + end + item + Name = 'INCIDENCIAS_ACTIVAS' + DataType = datInteger + DictionaryEntry = 'AlbaranesCliente_INCIDENCIAS_ACTIVAS' + end + item + Name = 'FECHA_ALTA' + DataType = datDateTime + DictionaryEntry = 'AlbaranesCliente_FECHA_ALTA' + end + item + Name = 'FECHA_MODIFICACION' + DataType = datDateTime + DictionaryEntry = 'AlbaranesCliente_FECHA_MODIFICACION' + end + item + Name = 'USUARIO' + DataType = datString + Size = 20 + DictionaryEntry = 'AlbaranesCliente_USUARIO' + end + item + Name = 'ID_FORMA_PAGO' + DataType = datInteger + DictionaryEntry = 'AlbaranesCliente_ID_FORMA_PAGO' + end + item + Name = 'FECHA_PREVISTA_ENVIO' + DataType = datDateTime + DictionaryEntry = 'AlbaranesCliente_FECHA_PREVISTA_ENVIO' + end + item + Name = 'FECHA_ENVIO' + DataType = datDateTime + DictionaryEntry = 'AlbaranesCliente_FECHA_ENVIO' + end + item + Name = 'FECHA_RECEPCION' + DataType = datDateTime + DictionaryEntry = 'AlbaranesCliente_FECHA_RECEPCION' + end> + end + item + Params = <> + Statements = < + item + Connection = 'IBX' + 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.DESCU' + + 'ENTO,'#10' ALBARANES_CLIENTE_DETALLES.IMPORTE_PORTE, ALBARANES_CL' + + 'IENTE_DETALLES.IMPORTE_TOTAL,'#10' ALBARANES_CLIENTE_DETALLES.VIS' + + 'IBLE,'#10' ALBARANES_CLIENTE_DETALLES.ID_ARTICULO, ARTICULOS.REFE' + + 'RENCIA, ARTICULOS.REFERENCIA_PROV as REFERENCIA_PROVEEDOR'#10#10'FROM ' + + 'ALBARANES_CLIENTE_DETALLES'#10'LEFT JOIN ARTICULOS ON ALBARANES_CLIE' + + 'NTE_DETALLES.ID_ARTICULO = ARTICULOS.ID'#10'where {where}'#10'ORDER BY P' + + 'OSICION;'#10#10 + StatementType = stSQL + ColumnMappings = < + item + DatasetField = 'ID' + TableField = 'ID' + end + item + DatasetField = 'ID_ALBARAN' + TableField = 'ID_ALBARAN' + end + item + DatasetField = 'POSICION' + TableField = 'POSICION' + end + item + DatasetField = 'TIPO_DETALLE' + TableField = 'TIPO_DETALLE' + end + item + DatasetField = 'CONCEPTO' + TableField = 'CONCEPTO' + end + item + DatasetField = 'CANTIDAD' + TableField = 'CANTIDAD' + end + item + DatasetField = 'IMPORTE_UNIDAD' + TableField = 'IMPORTE_UNIDAD' + end + item + DatasetField = 'DESCUENTO' + TableField = 'DESCUENTO' + end + item + DatasetField = 'IMPORTE_PORTE' + TableField = 'IMPORTE_PORTE' + end + item + DatasetField = 'IMPORTE_TOTAL' + TableField = 'IMPORTE_TOTAL' + end + item + DatasetField = 'VISIBLE' + TableField = 'VISIBLE' + end + item + DatasetField = 'ID_ARTICULO' + TableField = 'ID_ARTICULO' + end + item + DatasetField = 'REFERENCIA' + TableField = '' + SQLOrigin = 'REFERENCIA' + end + item + DatasetField = 'REFERENCIA_PROVEEDOR' + TableField = '' + SQLOrigin = 'REFERENCIA_PROVEEDOR' + end> + end> + Name = 'AlbaranesCliente_Detalles' + Fields = < + item + Name = 'ID' + DataType = datAutoInc + GeneratorName = 'GEN_ALBARANES_CLI_DETALLES_ID' + DictionaryEntry = 'AlbaranesCliente_Detalles_ID' + InPrimaryKey = True + end + item + Name = 'ID_ALBARAN' + DataType = datInteger + DictionaryEntry = 'AlbaranesCliente_Detalles_ID_ALBARAN' + end + item + Name = 'POSICION' + DataType = datInteger + DictionaryEntry = 'POSICIONCONCEPTO' + end + item + Name = 'TIPO_DETALLE' + DataType = datString + Size = 10 + DictionaryEntry = 'AlbaranesCliente_Detalles_TIPO_DETALLE' + end + item + Name = 'CONCEPTO' + DataType = datString + Size = 2000 + DictionaryEntry = 'AlbaranesCliente_Detalles_CONCEPTO' + end + item + Name = 'CANTIDAD' + DataType = datInteger + DictionaryEntry = 'CANTIDAD' + end + item + Name = 'IMPORTE_UNIDAD' + DataType = datCurrency + DictionaryEntry = 'AlbaranesCliente_Detalles_IMPORTE_UNIDAD' + end + item + Name = 'DESCUENTO' + DataType = datFloat + DictionaryEntry = 'AlbaranesCliente_Detalles_DESCUENTO' + end + item + Name = 'IMPORTE_PORTE' + DataType = datCurrency + DictionaryEntry = 'AlbaranesCliente_Detalles_IMPORTE_PORTE' + end + item + Name = 'IMPORTE_TOTAL' + DataType = datCurrency + DictionaryEntry = 'AlbaranesCliente_Detalles_IMPORTE_TOTAL' + end + item + Name = 'VISIBLE' + DataType = datInteger + DictionaryEntry = 'AlbaranesCliente_Detalles_VISIBLE' + end + item + Name = 'ID_ARTICULO' + DataType = datInteger + DictionaryEntry = 'AlbaranesCliente_Detalles_ID_ARTICULO' + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + end + item + Name = 'REFERENCIA_PROVEEDOR' + DataType = datString + Size = 255 + end> + end> + JoinDataTables = <> + UnionDataTables = <> + Commands = < + item + Params = < + item + Name = 'VALOR' + Value = '' + end + item + Name = 'CODIGO' + Value = '' + end + item + Name = 'EMPRESA' + Value = '' + end> + Statements = < + item + Connection = 'IBX' + TargetTable = 'REFERENCIAS' + SQL = + 'UPDATE REFERENCIAS SET'#10' VALOR = :VALOR'#10'WHERE CODIGO = :COD' + + 'IGO AND'#10' ID_EMPRESA = :EMPRESA'#10 + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'ModificarReferencia' + end + item + Params = < + item + Name = 'ID' + DataType = datAutoInc + GeneratorName = 'GEN_ALBARANES_CLI_ID' + Value = '' + end + item + Name = 'ID_EMPRESA' + Value = '' + end + item + Name = 'ID_CLIENTE' + Value = '' + end + item + Name = 'FECHA_ALBARAN' + Value = '' + end + item + Name = 'REFERENCIA' + Value = '' + end + item + Name = 'REFERENCIA_CLIENTE' + Value = '' + end + item + Name = 'ID_ALMACEN' + Value = '' + end + item + Name = 'ID_PEDIDO' + Value = '' + end + item + Name = 'ID_FACTURA' + Value = '' + end + item + Name = 'CALLE' + Value = '' + end + item + Name = 'CODIGO_POSTAL' + Value = '' + end + item + Name = 'POBLACION' + Value = '' + end + item + Name = 'PROVINCIA' + Value = '' + end + item + Name = 'PERSONA_CONTACTO' + Value = '' + end + item + Name = 'TELEFONO' + Value = '' + end + item + Name = 'IMPORTE_NETO' + Value = '' + end + item + Name = 'IMPORTE_PORTE' + Value = '' + end + item + Name = 'DESCUENTO' + Value = '' + end + item + Name = 'IMPORTE_DESCUENTO' + Value = '' + end + item + Name = 'BASE_IMPONIBLE' + Value = '' + end + item + Name = 'IVA' + Value = '' + end + item + Name = 'IMPORTE_IVA' + Value = '' + end + item + Name = 'IMPORTE_TOTAL' + Value = '' + end + item + Name = 'OBSERVACIONES' + Value = '' + end + item + Name = 'INCIDENCIAS' + Value = '' + end + item + Name = 'INCIDENCIAS_ACTIVAS' + Value = '' + end + item + Name = 'FECHA_ALTA' + Value = '' + end + item + Name = 'FECHA_MODIFICACION' + Value = '' + end + item + Name = 'USUARIO' + Value = '' + end + item + Name = 'ID_FORMA_PAGO' + Value = '' + end + item + Name = 'FECHA_PREVISTA_ENVIO' + Value = '' + end + item + Name = 'FECHA_ENVIO' + Value = '' + end + item + Name = 'FECHA_RECEPCION' + Value = '' + end> + Statements = < + item + Connection = 'IBX' + Default = True + TargetTable = 'ALBARANES_CLIENTE' + SQL = + 'INSERT'#10' INTO ALBARANES_CLIENTE'#10' (ID, ID_EMPRESA, ID_CLIENTE,' + + ' FECHA_ALBARAN, REFERENCIA,'#10' REFERENCIA_CLIENTE, ID_ALMACEN,' + + ' ID_PEDIDO, ID_FACTURA, CALLE,'#10' CODIGO_POSTAL, POBLACION, PR' + + 'OVINCIA, PERSONA_CONTACTO, '#10' TELEFONO, IMPORTE_NETO, IMPORTE' + + '_PORTE, DESCUENTO, IMPORTE_DESCUENTO, '#10' BASE_IMPONIBLE, IVA,' + + ' IMPORTE_IVA, IMPORTE_TOTAL, OBSERVACIONES, '#10' INCIDENCIAS, I' + + 'NCIDENCIAS_ACTIVAS, FECHA_ALTA, FECHA_MODIFICACION, '#10' USUARI' + + 'O, ID_FORMA_PAGO, FECHA_PREVISTA_ENVIO, FECHA_ENVIO, '#10' FECHA' + + '_RECEPCION)'#10' VALUES'#10' (:ID, :ID_EMPRESA, :ID_CLIENTE, :FECHA_' + + 'ALBARAN, :REFERENCIA,'#10' :REFERENCIA_CLIENTE, :ID_ALMACEN, :ID' + + '_PEDIDO, :ID_FACTURA, :CALLE,'#10' :CODIGO_POSTAL, :POBLACION, :' + + 'PROVINCIA, :PERSONA_CONTACTO,'#10' :TELEFONO, :IMPORTE_NETO, :IM' + + 'PORTE_PORTE, :DESCUENTO, :IMPORTE_DESCUENTO,'#10' :BASE_IMPONIBL' + + 'E, :IVA, :IMPORTE_IVA, :IMPORTE_TOTAL, :OBSERVACIONES,'#10' :INC' + + 'IDENCIAS, :INCIDENCIAS_ACTIVAS, :FECHA_ALTA, :FECHA_MODIFICACION' + + ','#10' :USUARIO, :ID_FORMA_PAGO, :FECHA_PREVISTA_ENVIO, :FECHA_E' + + 'NVIO, :FECHA_RECEPCION)'#10' '#10' '#10#10 + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Insert_AlbaranesCliente' + end + item + Params = < + item + Name = 'OLD_ID' + Value = '' + end> + Statements = < + item + Connection = 'IBX' + Default = True + TargetTable = 'ALBARANES_CLIENTE' + SQL = 'DELETE '#10' FROM'#10' ALBARANES_CLIENTE'#10' WHERE'#10' (ID = :OLD_ID)'#10 + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Delete_AlbaranesCliente' + end + item + Params = < + item + Name = 'ID' + Value = '' + end + item + Name = 'ID_EMPRESA' + Value = '' + end + item + Name = 'ID_CLIENTE' + Value = '' + end + item + Name = 'FECHA_ALBARAN' + Value = '' + end + item + Name = 'REFERENCIA' + Value = '' + end + item + Name = 'REFERENCIA_CLIENTE' + Value = '' + end + item + Name = 'ID_ALMACEN' + Value = '' + end + item + Name = 'ID_PEDIDO' + Value = '' + end + item + Name = 'ID_FACTURA' + Value = '' + end + item + Name = 'CALLE' + Value = '' + end + item + Name = 'CODIGO_POSTAL' + Value = '' + end + item + Name = 'POBLACION' + Value = '' + end + item + Name = 'PROVINCIA' + Value = '' + end + item + Name = 'PERSONA_CONTACTO' + Value = '' + end + item + Name = 'TELEFONO' + Value = '' + end + item + Name = 'IMPORTE_NETO' + Value = '' + end + item + Name = 'IMPORTE_PORTE' + Value = '' + end + item + Name = 'DESCUENTO' + Value = '' + end + item + Name = 'IMPORTE_DESCUENTO' + Value = '' + end + item + Name = 'BASE_IMPONIBLE' + Value = '' + end + item + Name = 'IVA' + Value = '' + end + item + Name = 'IMPORTE_IVA' + Value = '' + end + item + Name = 'IMPORTE_TOTAL' + Value = '' + end + item + Name = 'OBSERVACIONES' + Value = '' + end + item + Name = 'INCIDENCIAS' + Value = '' + end + item + Name = 'INCIDENCIAS_ACTIVAS' + Value = '' + end + item + Name = 'FECHA_ALTA' + Value = '' + end + item + Name = 'FECHA_MODIFICACION' + Value = '' + end + item + Name = 'USUARIO' + Value = '' + end + item + Name = 'ID_FORMA_PAGO' + Value = '' + end + item + Name = 'FECHA_PREVISTA_ENVIO' + Value = '' + end + item + Name = 'FECHA_ENVIO' + Value = '' + end + item + Name = 'FECHA_RECEPCION' + Value = '' + end + item + Name = 'OLD_ID' + Value = '' + end> + Statements = < + item + Connection = 'IBX' + Default = True + TargetTable = 'ALBARANES_CLIENTE' + SQL = + 'UPDATE ALBARANES_CLIENTE'#10' SET '#10' ID = :ID,'#10' ID_EMPRESA = :' + + 'ID_EMPRESA, '#10' ID_CLIENTE = :ID_CLIENTE, '#10' FECHA_ALBARAN = ' + + ':FECHA_ALBARAN,'#10' REFERENCIA = :REFERENCIA, '#10' REFERENCIA_CL' + + 'IENTE = :REFERENCIA_CLIENTE, '#10' ID_ALMACEN = :ID_ALMACEN,'#10' ' + + 'ID_PEDIDO = :ID_PEDIDO,'#10' ID_FACTURA = :ID_FACTURA,'#10' CALLE ' + + '= :CALLE,'#10' CODIGO_POSTAL = :CODIGO_POSTAL, '#10' POBLACION = :' + + 'POBLACION, '#10' PROVINCIA = :PROVINCIA, '#10' PERSONA_CONTACTO = ' + + ':PERSONA_CONTACTO, '#10' TELEFONO = :TELEFONO, '#10' IMPORTE_NETO ' + + '= :IMPORTE_NETO, '#10' IMPORTE_PORTE = :IMPORTE_PORTE, '#10' DESCU' + + 'ENTO = :DESCUENTO, '#10' IMPORTE_DESCUENTO = :IMPORTE_DESCUENTO, ' + + #10' BASE_IMPONIBLE = :BASE_IMPONIBLE, '#10' IVA = :IVA, '#10' IMP' + + 'ORTE_IVA = :IMPORTE_IVA, '#10' IMPORTE_TOTAL = :IMPORTE_TOTAL, '#10' ' + + ' OBSERVACIONES = :OBSERVACIONES, '#10' INCIDENCIAS = :INCIDENCI' + + 'AS, '#10' INCIDENCIAS_ACTIVAS = :INCIDENCIAS_ACTIVAS, '#10' FECHA_' + + 'ALTA = :FECHA_ALTA, '#10' FECHA_MODIFICACION = :FECHA_MODIFICACIO' + + 'N, '#10' USUARIO = :USUARIO, '#10' ID_FORMA_PAGO = :ID_FORMA_PAGO,' + + ' '#10' FECHA_PREVISTA_ENVIO = :FECHA_PREVISTA_ENVIO, '#10' FECHA_E' + + 'NVIO = :FECHA_ENVIO, '#10' FECHA_RECEPCION = :FECHA_RECEPCION'#10' W' + + 'HERE'#10' (ID = :OLD_ID)'#10 + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Update_AlbaranesCliente' + end + item + Params = < + item + Name = 'ID' + DataType = datAutoInc + GeneratorName = 'GEN_ALBARANES_CLI_DETALLES_ID' + Value = '' + end + item + Name = 'ID_ALBARAN' + Value = '' + end + item + Name = 'POSICION' + Value = '' + end + item + Name = 'TIPO_DETALLE' + Value = '' + end + item + Name = 'CONCEPTO' + Value = '' + end + item + Name = 'CANTIDAD' + Value = '' + end + item + Name = 'IMPORTE_UNIDAD' + Value = '' + end + item + Name = 'DESCUENTO' + Value = '' + end + item + Name = 'IMPORTE_PORTE' + Value = '' + end + item + Name = 'IMPORTE_TOTAL' + Value = '' + end + item + Name = 'VISIBLE' + Value = '' + end + item + Name = 'ID_ARTICULO' + Value = '' + end> + Statements = < + item + Connection = 'IBX' + Default = True + TargetTable = 'ALBARANES_CLIENTE_DETALLES' + SQL = + 'INSERT'#10' INTO ALBARANES_CLIENTE_DETALLES'#10' (ID, ID_ALBARAN, PO' + + 'SICION, TIPO_DETALLE, CONCEPTO, CANTIDAD,'#10' IMPORTE_UNIDAD, D' + + 'ESCUENTO, IMPORTE_PORTE, IMPORTE_TOTAL, '#10' VISIBLE, ID_ARTICU' + + 'LO)'#10' VALUES'#10' (:ID, :ID_ALBARAN, :POSICION, :TIPO_DETALLE, :C' + + 'ONCEPTO, :CANTIDAD,'#10' :IMPORTE_UNIDAD, :DESCUENTO, :IMPORTE_P' + + 'ORTE, :IMPORTE_TOTAL, '#10' :VISIBLE, :ID_ARTICULO)'#10 + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Insert_AlbaranesCliente_Detalles' + end + item + Params = < + item + Name = 'OLD_ID' + DataType = datAutoInc + Value = '0' + end> + Statements = < + item + Connection = 'IBX' + Default = True + TargetTable = 'ALBARANES_CLIENTE_DETALLES' + SQL = + 'DELETE '#10' FROM'#10' ALBARANES_CLIENTE_DETALLES'#10' WHERE'#10' (ID = ' + + ':OLD_ID)' + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Delete_AlbaranesCliente_Detalles' + end + item + Params = < + item + Name = 'ID' + Value = '' + end + item + Name = 'ID_ALBARAN' + Value = '' + end + item + Name = 'POSICION' + Value = '' + end + item + Name = 'TIPO_DETALLE' + Value = '' + end + item + Name = 'CONCEPTO' + Value = '' + end + item + Name = 'CANTIDAD' + Value = '' + end + item + Name = 'IMPORTE_UNIDAD' + Value = '' + end + item + Name = 'DESCUENTO' + Value = '' + end + item + Name = 'IMPORTE_PORTE' + Value = '' + end + item + Name = 'IMPORTE_TOTAL' + Value = '' + end + item + Name = 'VISIBLE' + Value = '' + end + item + Name = 'ID_ARTICULO' + Value = '' + end + item + Name = 'OLD_ID' + Value = '' + end> + Statements = < + item + Connection = 'IBX' + Default = True + TargetTable = 'ALBARANES_CLIENTE_DETALLES' + SQL = + 'UPDATE ALBARANES_CLIENTE_DETALLES'#10' SET '#10' ID = :ID,'#10' ID_AL' + + 'BARAN = :ID_ALBARAN, '#10' POSICION = :POSICION, '#10' TIPO_DETALL' + + 'E = :TIPO_DETALLE, '#10' CONCEPTO = :CONCEPTO, '#10' CANTIDAD = :C' + + 'ANTIDAD, '#10' IMPORTE_UNIDAD = :IMPORTE_UNIDAD, '#10' DESCUENTO =' + + ' :DESCUENTO, '#10' IMPORTE_PORTE = :IMPORTE_PORTE, '#10' IMPORTE_T' + + 'OTAL = :IMPORTE_TOTAL, '#10' VISIBLE = :VISIBLE, '#10' ID_ARTICULO' + + ' = :ID_ARTICULO'#10' WHERE'#10' (ID = :OLD_ID)'#10 + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Update_AlbaranesCliente_Detalles' + end> + RelationShips = < + item + Name = 'FK_AlbaranesCliente_Detalles' + MasterDatasetName = 'AlbaranesCliente' + MasterFields = 'ID' + DetailDatasetName = 'AlbaranesCliente_Detalles' + DetailFields = 'ID_ALBARAN' + RelationshipType = rtForeignKey + end> + UpdateRules = < + item + Name = 'Insert AlbaranesCliente' + DoUpdate = False + DoDelete = False + DatasetName = 'AlbaranesCliente' + FailureBehavior = fbRaiseException + end + item + Name = 'Insert AlbaranesCliente_Detalles' + DoUpdate = False + DoDelete = False + DatasetName = 'AlbaranesCliente_Detalles' + FailureBehavior = fbRaiseException + end + item + Name = 'Update AlbaranesCliente' + DoInsert = False + DoDelete = False + DatasetName = 'AlbaranesCliente' + FailureBehavior = fbRaiseException + end + item + Name = 'Update AlbaranesCliente_Detalles' + DoInsert = False + DoDelete = False + DatasetName = 'AlbaranesCliente_Detalles' + FailureBehavior = fbRaiseException + end + item + Name = 'Delete AlbaranesCliente_Detalles' + DoUpdate = False + DoInsert = False + DatasetName = 'AlbaranesCliente_Detalles' + FailureBehavior = fbRaiseException + end + item + Name = 'Delete AlbaranesCliente' + DoUpdate = False + DoInsert = False + DatasetName = 'AlbaranesCliente' + FailureBehavior = fbRaiseException + end> + Version = 0 + Left = 48 + Top = 24 + end + object bpAlbaranesCliente: TDABusinessProcessor + Schema = schAlbaranesCliente + InsertCommandName = 'Insert_AlbaranesCliente' + DeleteCommandName = 'Delete_AlbaranesCliente' + UpdateCommandName = 'Update_AlbaranesCliente' + 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' + ReferencedDataset = 'AlbaranesCliente_Detalles' + ProcessorOptions = [poPrepareCommands] + UpdateMode = updWhereKeyOnly + Left = 200 + Top = 88 + end + object DADataDictionary: TDADataDictionary + Fields = < + item + Name = 'AlbaranesCliente_ID' + DataType = datAutoInc + GeneratorName = 'GEN_ALBARANES_CLI_ID' + Required = True + DisplayLabel = 'ID' + ServerAutoRefresh = True + end + item + Name = 'AlbaranesCliente_ID_EMPRESA' + DataType = datInteger + DisplayLabel = 'ID_EMPRESA' + end + item + Name = 'AlbaranesCliente_ID_CLIENTE' + DataType = datInteger + DisplayLabel = 'ID_CLIENTE' + end + item + Name = 'AlbaranesCliente_NOMBRE' + DataType = datString + Size = 255 + DisplayLabel = 'Nombre del cliente' + end + item + Name = 'AlbaranesCliente_SITUACION' + DataType = datString + Size = 255 + DisplayLabel = 'Situaci'#243'n' + end + item + Name = 'AlbaranesCliente_CALLE' + DataType = datString + Size = 255 + DisplayLabel = 'Calle' + end + item + Name = 'AlbaranesCliente_CODIGO_POSTAL' + DataType = datString + Size = 10 + DisplayLabel = 'C'#243'd. postal' + end + item + Name = 'AlbaranesCliente_POBLACION' + DataType = datString + Size = 255 + DisplayLabel = 'Poblaci'#243'n' + end + item + Name = 'AlbaranesCliente_PROVINCIA' + DataType = datString + Size = 255 + DisplayLabel = 'Provincia' + end + item + Name = 'AlbaranesCliente_PERSONA_CONTACTO' + DataType = datString + Size = 255 + DisplayLabel = 'Persona de contacto' + end + item + Name = 'AlbaranesCliente_TELEFONO' + DataType = datString + Size = 25 + DisplayLabel = 'Tel'#233'fono' + end + item + Name = 'AlbaranesCliente_OBSERVACIONES' + DataType = datMemo + DisplayLabel = 'Observaciones' + end + item + Name = 'AlbaranesCliente_INCIDENCIAS' + DataType = datMemo + DisplayLabel = 'INCIDENCIAS' + end + item + Name = 'AlbaranesCliente_INCIDENCIAS_ACTIVAS' + DataType = datInteger + DisplayLabel = 'INCIDENCIAS_ACTIVAS' + end + item + Name = 'AlbaranesCliente_FECHA_ALTA' + DataType = datDateTime + DisplayLabel = 'FECHA_ALTA' + end + item + Name = 'AlbaranesCliente_FECHA_MODIFICACION' + DataType = datDateTime + DisplayLabel = 'FECHA_MODIFICACION' + end + item + Name = 'AlbaranesCliente_USUARIO' + DataType = datString + Size = 20 + DisplayLabel = 'USUARIO' + end + item + Name = 'AlbaranesCliente_IMPORTE_NETO' + DataType = datCurrency + DisplayLabel = 'Importe neto' + Alignment = taRightJustify + end + item + Name = 'AlbaranesCliente_IMPORTE_PORTE' + DataType = datCurrency + DisplayLabel = 'Importe del porte' + Alignment = taRightJustify + end + item + Name = 'AlbaranesCliente_DESCUENTO' + DataType = datFloat + DisplayLabel = 'Descuento' + DisplayFormat = ',0.00 %;-,0.00 %' + Alignment = taRightJustify + end + item + Name = 'AlbaranesCliente_IMPORTE_DESCUENTO' + DataType = datCurrency + DisplayLabel = 'Importe dto.' + Alignment = taRightJustify + end + item + Name = 'AlbaranesCliente_BASE_IMPONIBLE' + DataType = datCurrency + DisplayLabel = 'Base imponible' + Alignment = taRightJustify + end + item + Name = 'AlbaranesCliente_IVA' + DataType = datFloat + DisplayLabel = 'IVA' + DisplayFormat = ',0.00 %;-,0.00 %' + Alignment = taRightJustify + end + item + Name = 'AlbaranesCliente_IMPORTE_IVA' + DataType = datCurrency + DisplayLabel = 'Importe IVA' + Alignment = taRightJustify + end + item + Name = 'AlbaranesCliente_IMPORTE_TOTAL' + DataType = datCurrency + DisplayLabel = 'Importe total' + Alignment = taRightJustify + end + item + Name = 'AlbaranesCliente_ID_FORMA_PAGO' + DataType = datInteger + DisplayLabel = 'ID_FORMA_PAGO' + end + item + Name = 'AlbaranesCliente_Detalles_ID' + DataType = datAutoInc + GeneratorName = 'GEN_ALBARANES_CLI_DETALLES_ID' + Required = True + DisplayLabel = 'ID' + ServerAutoRefresh = True + end + item + Name = 'AlbaranesCliente_Detalles_ID_PEDIDO' + DataType = datInteger + DisplayLabel = 'ID_PEDIDO' + end + item + Name = 'POSICIONCONCEPTO' + DataType = datInteger + DisplayLabel = 'POSICION' + end + item + Name = 'AlbaranesCliente_Detalles_TIPO_DETALLE' + DataType = datString + Size = 10 + DisplayLabel = 'TIPO_DETALLE' + end + item + Name = 'AlbaranesCliente_Detalles_REFERENCIA' + DataType = datString + Size = 255 + DisplayLabel = 'Referencia' + end + item + Name = 'AlbaranesCliente_Detalles_ID_ARTICULO' + DataType = datInteger + DisplayLabel = 'ID_ARTICULO' + end + item + Name = 'AlbaranesCliente_Detalles_CONCEPTO' + DataType = datString + Size = 2000 + DisplayLabel = 'CONCEPTO' + end + item + Name = 'CANTIDAD' + DataType = datInteger + Alignment = taRightJustify + end + item + Name = 'AlbaranesCliente_Detalles_IMPORTE_UNIDAD' + DataType = datCurrency + DisplayLabel = 'Importe unidad' + Alignment = taRightJustify + end + item + Name = 'AlbaranesCliente_Detalles_IMPORTE_TOTAL' + DataType = datCurrency + DisplayLabel = 'Importe total' + Alignment = taRightJustify + end + item + Name = 'AlbaranesCliente_Detalles_DESCUENTO' + DataType = datFloat + DisplayLabel = 'Descuento' + DisplayFormat = ',0.00 %;-,0.00 %' + Alignment = taRightJustify + end + item + Name = 'AlbaranesCliente_Detalles_IMPORTE_PORTE' + DataType = datCurrency + DisplayLabel = 'Importe porte' + Alignment = taRightJustify + end + item + Name = 'AlbaranesCliente_Detalles_VISIBLE' + DataType = datInteger + DisplayLabel = 'VISIBLE' + end + item + Name = 'AlbaranesCliente_Detalles_REFERENCIA_PROVEEDOR' + DataType = datString + Size = 255 + DisplayLabel = 'Ref. proveedor' + end + item + Name = 'AlbaranesCliente_FECHA_ALBARAN' + DataType = datDateTime + DisplayLabel = 'Fecha albar'#225'n' + end + item + Name = 'AlbaranesCliente_ID_PEDIDO' + DataType = datInteger + DisplayLabel = 'ID_PEDIDO' + end + item + Name = 'AlbaranesCliente_ID_FACTURA' + DataType = datInteger + DisplayLabel = 'ID_FACTURA' + end + item + Name = 'AlbaranesCliente_Detalles_ID_ALBARAN' + DataType = datInteger + DisplayLabel = 'ID_ALBARAN' + end + item + Name = 'AlbaranesCliente_Detalles_Refresh_ID_ALBARAN' + DataType = datInteger + DisplayLabel = 'ID_ALBARAN' + end + item + Name = 'AlbaranesCliente_Detalles_Refresh_DESCUENTO' + DataType = datFloat + DisplayLabel = 'DESCUENTO' + end + item + Name = 'AlbaranesCliente_Detalles_Refresh_IMPORTE_PORTE' + DataType = datFloat + DisplayLabel = 'IMPORTE_PORTE' + end + item + Name = 'AlbaranesCliente_Detalles_Refresh_REFERENCIA_PROVEEDOR' + DataType = datString + Size = 255 + DisplayLabel = 'REFERENCIA_PROVEEDOR' + end + item + Name = 'AlbaranesCliente_ID_ALMACEN' + DataType = datInteger + DisplayLabel = 'ID_ALMACEN' + end + item + Name = 'AlbaranesCliente_FECHA_ENVIO' + DataType = datDateTime + DisplayLabel = 'Fecha de env'#237'o' + end + item + Name = 'AlbaranesCliente_FECHA_RECEPCION' + DataType = datDateTime + DisplayLabel = 'Fecha de recepci'#243'n' + end + item + Name = 'AlbaranesCliente_REF_PEDIDO' + DataType = datString + Size = 255 + DisplayLabel = 'Ref. pedido cliente' + end + item + Name = 'AlbaranesCliente_REF_FACTURA' + DataType = datString + Size = 255 + DisplayLabel = 'Ref. factura cliente' + end + item + Name = 'AlbaranesCliente_REFERENCIA' + DataType = datString + Size = 255 + DisplayLabel = 'Referencia' + ServerAutoRefresh = True + end + item + Name = 'AlbaranesCliente_FECHA_PREVISTA_ENVIO' + DataType = datDateTime + DisplayLabel = 'Fecha prevista de envio' + end + item + Name = 'AlbaranesCliente_NOMBRE_ALMACEN' + DataType = datString + Size = 255 + DisplayLabel = 'Almac'#233'n' + end + item + Name = 'AlbaranesCliente_TIPO' + DataType = datString + Size = 1 + DisplayLabel = 'Tipo' + end + item + Name = 'AlbaranesCliente_REFERENCIA_CLIENTE' + DataType = datString + Size = 255 + end> + Left = 48 + Top = 136 + end + object Bin2DataStreamer: TDABin2DataStreamer + Left = 48 + Top = 80 + end +end diff --git a/Source/Modulos/Albaranes de cliente/Servidor/srvAlbaranesCliente_Impl.pas b/Source/Modulos/Albaranes de cliente/Servidor/srvAlbaranesCliente_Impl.pas new file mode 100644 index 00000000..fb958d66 --- /dev/null +++ b/Source/Modulos/Albaranes de cliente/Servidor/srvAlbaranesCliente_Impl.pas @@ -0,0 +1,113 @@ +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:} DataAbstractService_Impl, + {Used RODLs:} DataAbstract4_Intf, + {Generated:} uDABusinessProcessor, uDABin2DataStreamer, uDADataStreamer, + uDAScriptingProvider, uDAClasses, + FactuGES_Intf, uDAInterfaces; + + +type + { TsrvAlbaranesCliente } + TsrvAlbaranesCliente = class(TDataAbstractService, IsrvAlbaranesCliente) + bpAlbaranesCliente: TDABusinessProcessor; + bpAlbaranesCliente_Detalles: TDABusinessProcessor; + Bin2DataStreamer: TDABin2DataStreamer; + schAlbaranesCliente: TDASchema; + DADataDictionary: TDADataDictionary; + procedure DataAbstractServiceBeforeAcquireConnection(aSender: TObject; var aConnectionName: string); + procedure DARemoteServiceBeforeGetDatasetData(const Dataset: IDADataset; const IncludeSchema: Boolean; const MaxRecords: Integer); + procedure DARemoteServiceCreate(Sender: TObject); + private + protected + { IsrvAlbaranesCliente methods } + function GenerateReport(const ID: String): Binary; + function GenerateEtiquetas(const ID: Integer; const withRefCliente: Boolean): Binary; + end; + +implementation + +{$R *.dfm} +uses + {Generated:} FactuGES_Invk, uDataModuleServer, uDatabaseUtils, + schAlbaranesClienteClient_Intf, uRestriccionesUsuarioUtils, +// uRptAlbaranesCliente_Server, + uBizAlbaranClienteServer; + +procedure Create_srvAlbaranesCliente(out anInstance : IUnknown); +begin + anInstance := TsrvAlbaranesCliente.Create(NIL); +end; + +{ srvAlbaranesCliente } +procedure TsrvAlbaranesCliente.DARemoteServiceBeforeGetDatasetData( + const Dataset: IDADataset; const IncludeSchema: Boolean; + const MaxRecords: Integer); +begin + if DataSet.Name = nme_AlbaranesCliente then + begin + { Aqu se asegura que el usuario slo accede a albaranes + de las empresas a las que tiene permiso para acceder + filtrando DataSet por ID_EMPRESA. } + FiltrarAccesoUsuario(Session, Connection, schAlbaranesCliente, DataSet, fld_AlbaranesClienteID_EMPRESA); + end; +end; + +procedure TsrvAlbaranesCliente.DARemoteServiceCreate(Sender: TObject); +begin + SessionManager := dmServer.SessionManager; + bpAlbaranesCliente.BusinessRulesID := BIZ_SERVER_ALBARAN_CLIENTE; +end; + +procedure TsrvAlbaranesCliente.DataAbstractServiceBeforeAcquireConnection( + aSender: TObject; var aConnectionName: string); +begin + ConnectionName := dmServer.ConnectionName; +end; + +function TsrvAlbaranesCliente.GenerateEtiquetas(const ID: Integer; const withRefCliente: Boolean): Binary; +//var +// AReportGenerator : TRptAlbaranesCliente; +begin +{ + AReportGenerator := TRptAlbaranesCliente.Create(nil); + try + Result := AReportGenerator.GenerarEtiquetas(ID, withRefCliente); + finally + FreeAndNIL(AReportGenerator); + end; +} +end; + +function TsrvAlbaranesCliente.GenerateReport(const ID: String): Binary; +//var +// AReportGenerator : TRptAlbaranesCliente; +begin +{ + AReportGenerator := TRptAlbaranesCliente.Create(nil); + try + Result := AReportGenerator.GenerarAlbaran(ID); + finally + FreeAndNIL(AReportGenerator); + end; +} +end; + +initialization + TROClassFactory.Create('srvAlbaranesCliente', Create_srvAlbaranesCliente, TsrvAlbaranesCliente_Invoker); + +finalization + +end. diff --git a/Source/Modulos/Albaranes de cliente/Views/AlbaranesCliente_view.bdsproj b/Source/Modulos/Albaranes de cliente/Views/AlbaranesCliente_view.bdsproj new file mode 100644 index 00000000..12952742 --- /dev/null +++ b/Source/Modulos/Albaranes de cliente/Views/AlbaranesCliente_view.bdsproj @@ -0,0 +1,497 @@ + + + + + + + + + + + + AlbaranesCliente_view.dpk + + + 7.0 + + + 8 + 0 + 1 + 1 + 0 + 0 + 1 + 1 + 1 + 0 + 0 + 1 + 0 + 1 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 1 + 1 + 1 + True + True + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + False + False + False + True + True + True + True + True + True + + + + 3 + 0 + False + 1 + False + False + False + 16384 + 1048576 + 4194304 + + + + + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + + + + False + + + + + + False + + + True + False + + + + $00000000 + + + + True + False + 1 + 0 + 0 + 0 + False + False + False + False + False + 3082 + 1252 + + + + + 1.0.0.0 + + + + + + 1.0.0.0 + + + File c:\archivos de programa\borland\delphi10\Bin\dclIntraweb_80_100.bpl not found + File c:\archivos de programa\borland\delphi10\Bin\dclnet100.bpl not found + File c:\archivos de programa\borland\delphi10\Bin\dclsoap100.bpl not found + File c:\archivos de programa\borland\delphi10\Bin\dclie100.bpl not found + + + + diff --git a/Source/Modulos/Albaranes de cliente/Views/AlbaranesCliente_view.dpk b/Source/Modulos/Albaranes de cliente/Views/AlbaranesCliente_view.dpk new file mode 100644 index 00000000..15edc505 --- /dev/null +++ b/Source/Modulos/Albaranes de cliente/Views/AlbaranesCliente_view.dpk @@ -0,0 +1,50 @@ +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 ON} + +requires + AlbaranesCliente_model, + AlbaranesCliente_controller, + Articulos_view, + Almacenes_controller; + +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.dproj b/Source/Modulos/Albaranes de cliente/Views/AlbaranesCliente_view.dproj new file mode 100644 index 00000000..bc409ea6 --- /dev/null +++ b/Source/Modulos/Albaranes de cliente/Views/AlbaranesCliente_view.dproj @@ -0,0 +1,653 @@ + + + {9e558626-cf49-4cff-a178-e12c186758ac} + AlbaranesCliente_view.dpk + Debug + AnyCPU + DCC32 + ..\..\..\..\Output\Debug\Cliente\AlbaranesCliente_view.bpl + + + 7.0 + False + False + 0 + 3 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + RELEASE + + + 7.0 + 3 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + + + Delphi.Personality + Package + + + False + True + False + + + True + False + False + + + True + False + 1 + 0 + 0 + 0 + False + False + False + False + False + 3082 + 1252 + + + + + 1.0.0.0 + + + + + + 1.0.0.0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + File c:\archivos de programa\borland\delphi10\Bin\dclIntraweb_80_100.bpl not found + File c:\archivos de programa\borland\delphi10\Bin\dclnet100.bpl not found + File c:\archivos de programa\borland\delphi10\Bin\dclsoap100.bpl not found + File c:\archivos de programa\borland\delphi10\Bin\dclie100.bpl not found + + + AlbaranesCliente_view.dpk + + + + + + + MainSource + + + + + + + +
    fEditorAlbaranCliente
    +
    + +
    fEditorAlbaranDevCliente
    +
    + +
    fEditorAlbaranesCliente
    +
    + +
    fEditorAlbaranesClienteReport
    +
    + +
    fEditorAlbaranesDevCliente
    +
    + +
    fEditorElegirAlbaranesCliente
    +
    + +
    fEditorElegirArticulosAlbaranCliente
    +
    + +
    frViewAlbaranCliente
    +
    + +
    frViewAlbaranDevCliente
    +
    + +
    frViewAlbaranesCliente
    +
    + +
    frViewAlbaranesDevCliente
    +
    + +
    frViewDetallesAlbaranCliente
    +
    + +
    frViewDireccionEntregaAlbaranCliente
    +
    + +
    frViewElegirArticulosAlbaranesCliente
    +
    +
    +
    + + diff --git a/Source/Modulos/Albaranes de cliente/Views/AlbaranesCliente_view.identcache b/Source/Modulos/Albaranes de cliente/Views/AlbaranesCliente_view.identcache new file mode 100644 index 0000000000000000000000000000000000000000..3293fa2057d2d033d2c907a70f8dbf183656cb9a GIT binary patch literal 1575 zcmcJPL2iRE6a~3KuD}U;fb1$@*-eUQqF9w2`w4x?!jWx~>o-QXpM2ky-0v;t!Ar*6hRNPEHh}?@w zysz##v*5@q866j?a!J82*&;||@SCupbL4@tV_O!|JWkBkl7muYr)~-kqf8kKV$4JJ j=Q|Y;%wNPZgY^1{+}-{cKEUNW@A>&&=lWU=P~N}~6v!4) literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..36f26e234a8ac66a47e95cec6d496cf2f1442471 GIT binary patch literal 32 UcmZQzU|>)H;{X347|28c09i@|9RL6T literal 0 HcmV?d00001 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..db46321e --- /dev/null +++ b/Source/Modulos/Albaranes de cliente/Views/uEditorAlbaranCliente.dfm @@ -0,0 +1,480 @@ +inherited fEditorAlbaranCliente: TfEditorAlbaranCliente + Left = 332 + Top = 147 + Caption = 'Nuevo albaran de cliente' + ClientHeight = 585 + ClientWidth = 765 + OnClose = CustomEditorClose + ExplicitWidth = 773 + ExplicitHeight = 612 + 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 = 488 + inherited TBXItem2: TTBXItem + Visible = False + end + inherited TBXSeparatorItem1: TTBXSeparatorItem + Visible = False + end + inherited TBXItem5: TTBXItem + Visible = False + end + end + inherited tbxMenu: TTBXToolbar + ExplicitWidth = 765 + end + end + inherited pgPaginas: TPageControl + Width = 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 + 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 = 369 + Top = 11 + Width = 7 + Height = 54 + ExplicitLeft = 369 + ExplicitTop = 11 + ExplicitWidth = 7 + ExplicitHeight = 54 + end + inherited Bevel4: TBevel + Left = 485 + Top = 92 + Width = 192 + ExplicitLeft = 485 + 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 = 556 + Top = 38 + DataBinding.DataField = '' + Style.IsFontAssigned = True + ExplicitLeft = 556 + ExplicitTop = 38 + ExplicitWidth = 137 + Width = 137 + end + inherited ImporteTotal: TcxDBCurrencyEdit + Left = 486 + Top = 112 + Style.IsFontAssigned = True + ExplicitLeft = 486 + 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 = 485 + Top = 38 + DataBinding.DataField = '' + Style.IsFontAssigned = True + ExplicitLeft = 485 + ExplicitTop = 38 + end + inherited ImporteBase: TcxDBCurrencyEdit + Left = 485 + Top = 11 + Style.IsFontAssigned = True + ExplicitLeft = 485 + ExplicitTop = 11 + ExplicitWidth = 92 + Width = 92 + end + inherited edtRE: TcxDBSpinEdit + Left = 485 + Top = 65 + DataBinding.DataField = '' + Style.IsFontAssigned = True + ExplicitLeft = 485 + ExplicitTop = 65 + end + inherited ImporteRE: TcxDBCurrencyEdit + Left = 556 + Top = 65 + DataBinding.DataField = '' + Style.IsFontAssigned = True + ExplicitLeft = 556 + 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 = '' + ExplicitLeft = 93 + ExplicitTop = 38 + ExplicitWidth = 81 + Width = 81 + end + inherited bTiposIVA: TButton + Left = 221 + Top = 38 + ExplicitLeft = 221 + 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..c54d23d8 --- /dev/null +++ b/Source/Modulos/Albaranes de cliente/Views/uEditorAlbaranCliente.pas @@ -0,0 +1,393 @@ +unit uEditorAlbaranCliente; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + uEditorDBItem, DB, uDADataTable, JvAppStorage, + JvAppRegistryStorage, JvComponent, JvFormPlacement, ImgList, + PngImageList, StdActns, ActnList, ComCtrls, TBX, TB2Item, TB2Dock, + TB2Toolbar, ExtCtrls, JvExControls, JvNavigationPane, + uCustomView, uViewBase, JvComponentBase, + StdCtrls, pngimage, AppEvnts, cxControls, cxContainer, cxEdit, cxTextEdit, cxMemo, cxDBEdit, + uViewIncidencias, uAlbaranesClienteController, uViewDetallesBase, uViewDetallesAlbaranCliente, + dxLayoutLookAndFeels, JvExComCtrls, JvStatusBar, uViewTotales, + uIEditorAlbaranCliente, uBizAlbaranesCliente, uViewAlbaranCliente, + uViewDetallesDTO, uViewDetallesArticulos, uDAInterfaces; + +type + TfEditorAlbaranCliente = class(TfEditorDBItem, IEditorAlbaranCliente) + pagContenido: TTabSheet; + pagInicidencias: TTabSheet; + frViewIncidenciasCli: TfrViewIncidencias; + dxLayoutLookAndFeelList1: TdxLayoutLookAndFeelList; + dxLayoutOfficeLookAndFeel1: TdxLayoutOfficeLookAndFeel; + frViewDetallesAlbaranCliente1: TfrViewDetallesAlbaranCliente; + frViewTotales1: TfrViewTotales; + + procedure FormShow(Sender: TObject); + procedure CustomEditorClose(Sender: TObject; var Action: TCloseAction); + procedure pgPaginasChanging(Sender: TObject; var AllowChange: Boolean); + procedure frViewTotales1ePortePropertiesValidate(Sender: TObject; + var DisplayValue: Variant; var ErrorText: TCaption; var Error: Boolean); + procedure frViewTotales1edtDescuentoPropertiesValidate(Sender: TObject; + var DisplayValue: Variant; var ErrorText: TCaption; var Error: Boolean); + procedure frViewTotales1edtIVAPropertiesValidate(Sender: TObject; + var DisplayValue: Variant; var ErrorText: TCaption; var Error: Boolean); + private + procedure RecalcularPortePorUnidad; + + protected + FAlbaran: IBizAlbaranCliente; + FViewAlbaran: IViewAlbaranCliente; + FController : IAlbaranesClienteController; + + function GetController : IAlbaranesClienteController; + procedure SetController (const Value : IAlbaranesClienteController); virtual; + + function GetAlbaran: IBizAlbaranCliente; + procedure SetAlbaran(const Value: IBizAlbaranCliente); virtual; + + function GetViewAlbaran: IViewAlbaranCliente; + procedure SetViewAlbaran(const Value: IViewAlbaranCliente); + + procedure PrevisualizarInterno; override; + procedure ImprimirInterno; override; + procedure GuardarInterno; override; + procedure EliminarInterno; override; + + property ViewAlbaran: IViewAlbaranCliente read GetViewAlbaran write SetViewAlbaran; + + procedure OnClienteChanged(Sender : TObject); + + //Si queremos crear otra vista para el editor heredado solo tendriamos que + //sobreescribir este metodo + procedure AsignarVista; virtual; + + public + procedure PonerTitulos(const ATitulo: string = ''); override; + property Controller : IAlbaranesClienteController read GetController write SetController; + property Albaran: IBizAlbaranCliente read GetAlbaran write SetAlbaran; + constructor Create(AOwner: TComponent); override; + destructor Destroy; override; + end; + +implementation + +uses + uViewDatosYSeleccionCliente, uDataModuleUsuarios, uClientesController, + uBizDireccionesContacto, schAlbaranesClienteClient_Intf, uDialogUtils, + uEditorDBBase, uDataTableUtils, uFactuGES_App; + +{$R *.dfm} + +{ TfEditorAlbaranCliente } + +{ +**************************** TfEditorAlbaranCliente **************************** +} +procedure TfEditorAlbaranCliente.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 albarn de cliente?', '') = IDYES) then + begin + FController.Eliminar(FAlbaran); + inherited + end +end; + +procedure TfEditorAlbaranCliente.FormShow(Sender: TObject); +var +i:Integer; +begin + inherited; + + if not Assigned(FViewAlbaran) then + raise Exception.Create('No hay ninguna vista asignada'); + + if not Assigned(Albaran) then + raise Exception.Create('No hay ningn Albaran asignado'); + + Albaran.DataTable.Active := True; + pgPaginas.ActivePage := pagGeneral; +end; + +procedure TfEditorAlbaranCliente.frViewTotales1edtDescuentoPropertiesValidate( + Sender: TObject; var DisplayValue: Variant; var ErrorText: TCaption; + var Error: Boolean); +begin + inherited; + FAlbaran.DESCUENTO := DisplayValue; +end; + +procedure TfEditorAlbaranCliente.frViewTotales1edtIVAPropertiesValidate( + Sender: TObject; var DisplayValue: Variant; var ErrorText: TCaption; + var Error: Boolean); +begin + inherited; + FAlbaran.IVA := DisplayValue; +end; + +procedure TfEditorAlbaranCliente.frViewTotales1ePortePropertiesValidate( + Sender: TObject; var DisplayValue: Variant; var ErrorText: TCaption; + var Error: Boolean); +begin + inherited; + if not VarIsNull(DisplayValue) then + FAlbaran.IMPORTE_PORTE := DisplayValue + else + FAlbaran.IMPORTE_PORTE := 0; + + RecalcularPortePorUnidad; +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 + if FAlbaran.TIPO = CTE_TIPO_ALBARAN then + ShowInfoMessage('El albarn se ha dado de alta con el cdigo ' + FAlbaran.REFERENCIA) + else + ShowInfoMessage('La orden de devolucin se ha dado de alta con el cdigo ' + FAlbaran.REFERENCIA); + Modified := False; +end; + +procedure TfEditorAlbaranCliente.ImprimirInterno; +begin +AppFactuGES.ShowCapado; +{ + 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 direccin de envio + case FAlbaran.Cliente.Direcciones.RecordCount of + 0 : begin + ADireccion := NIL; + ShowWarningMessage('Este cliente no tiene ' + #10#13 + 'ninguna direccin de envo en su ficha'); + end; + 1 : begin + ADireccion := FAlbaran.Cliente.Direcciones; + end + else begin + ADireccion := AClientesController.ElegirDireccionEntrega(FAlbaran.Cliente.Direcciones, 'Seleccione la direccin del cliente que quiere utilizar como direccin de envio de este albaran.'); + end; + end; + + // Si hay direccin de envio, copiarla al albarn y poner el coste del porte + if Assigned(ADireccion) then + begin + try + FAlbaran.Edit; + FAlbaran.IMPORTE_PORTE := ADireccion.PORTE; + FController.CopiarDireccionEnvio(ADireccion, FAlbaran); + finally + ADireccion := NIL; + end; + end + else begin + FController.QuitarDireccionEnvio(FAlbaran); + FAlbaran.Edit; + FAlbaran.IMPORTE_PORTE := 0; + end; + + // Si el pedido tiene detalles hay que mirar si los descuentos + // para los artculos hay que cambiarlos. + if (FAlbaran.Detalles.RecordCount > 0) then + begin + FController.DetallesController.ActualizarDetalles(FAlbaran.Detalles, FAlbaran.Cliente); + //En caso de ser una orden de devolucion tambin debe cambiar el signo a los detalles + if (Albaran.TIPO = CTE_TIPO_ALBARAN_DEV) then + Controller.DetallesController.CambiarSignoDetalles(FAlbaran.Detalles); + end; + + 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 albarn'); + AllowChange := False; + end; +end; + +procedure TfEditorAlbaranCliente.PonerTitulos(const ATitulo: string); +var + FTitulo : String; +begin + FTitulo := ATitulo; + if (FTitulo = '') and Assigned(FAlbaran) then + begin + if FAlbaran.EsNuevo then + FTitulo := 'Nuevo albarn de cliente' + else + FTitulo := 'Albarn de cliente' + ' - ' + FAlbaran.Cliente.Nombre + ' - ' + FAlbaran.SITUACION; + end; + + inherited PonerTitulos(FTitulo); + + FTitulo := FTitulo + ' (' + AppFactuGES.EmpresaActiva.NOMBRE + ')'; + Self.Caption := FTitulo; +end; + +procedure TfEditorAlbaranCliente.PrevisualizarInterno; +begin +AppFactuGES.ShowCapado; +{ + inherited; + FController.Preview(FAlbaran); + } +end; + +procedure TfEditorAlbaranCliente.RecalcularPortePorUnidad; +begin + //Esta lgica se llamar en el editor porque es para facilitar el rellenado de informacin del documento + //no puede ir en la clase de negocio porque no es una lgica que tenga sentido fuera del editor. + if Assigned(Controller) + and Assigned(Controller.DetallesController) then + Controller.DetallesController.DesglosarPorteDetalles(FAlbaran.IMPORTE_PORTE, FAlbaran.Detalles) +end; + +procedure TfEditorAlbaranCliente.SetController(const Value: IAlbaranesClienteController); +begin + FController := Value; + + if Assigned(FController) then + 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..d522d565 --- /dev/null +++ b/Source/Modulos/Albaranes de cliente/Views/uEditorAlbaranDevCliente.dfm @@ -0,0 +1,240 @@ +inherited fEditorAlbaranDevCliente: TfEditorAlbaranDevCliente + Caption = 'fEditorAlbaranDevCliente' + PixelsPerInch = 96 + TextHeight = 13 + inherited JvNavPanelHeader: TJvNavPanelHeader + inherited Image1: TImage + Picture.Data = { + 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 + 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 Bevel1: TBevel + Width = 73 + ExplicitWidth = 73 + end + inherited Bevel3: TBevel + Left = 332 + Height = 54 + ExplicitLeft = 332 + ExplicitHeight = 54 + end + inherited Bevel4: TBevel + Left = 448 + Width = 285 + ExplicitLeft = 448 + ExplicitWidth = 285 + end + inherited ImporteDto: TcxDBCurrencyEdit + Style.IsFontAssigned = True + ExplicitWidth = 93 + Width = 93 + end + inherited ImporteIVA: TcxDBCurrencyEdit + Left = 519 + Style.IsFontAssigned = True + ExplicitLeft = 519 + ExplicitWidth = 214 + Width = 214 + end + inherited ImporteTotal: TcxDBCurrencyEdit + Left = 449 + Style.IsFontAssigned = True + ExplicitLeft = 449 + ExplicitWidth = 284 + Width = 284 + end + inherited edtDescuento: TcxDBSpinEdit + Style.IsFontAssigned = True + end + inherited edtIVA: TcxDBSpinEdit + Left = 448 + Style.IsFontAssigned = True + ExplicitLeft = 448 + end + inherited ImporteBase: TcxDBCurrencyEdit + Left = 448 + Style.IsFontAssigned = True + ExplicitLeft = 448 + ExplicitWidth = 285 + Width = 285 + end + inherited edtRE: TcxDBSpinEdit + Left = 448 + Style.IsFontAssigned = True + ExplicitLeft = 448 + end + inherited ImporteRE: TcxDBCurrencyEdit + Left = 519 + Style.IsFontAssigned = True + ExplicitLeft = 519 + ExplicitWidth = 214 + Width = 214 + 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 bTiposIVA: TButton + Left = 184 + ExplicitLeft = 184 + end + inherited cbRecargoEquivalencia: TcxDBCheckBox + ExplicitWidth = 219 + Width = 219 + 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..0178501b --- /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, uDAInterfaces; + +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 devolucin de cliente' + else + FTitulo := 'Orden de devolucin de cliente' + ' - ' + FAlbaran.Cliente.Nombre; + end; + + inherited PonerTitulos(FTitulo); +end; + +end. diff --git a/Source/Modulos/Albaranes de cliente/Views/uEditorAlbaranesCliente.dfm b/Source/Modulos/Albaranes de cliente/Views/uEditorAlbaranesCliente.dfm new file mode 100644 index 00000000..f37530f8 --- /dev/null +++ b/Source/Modulos/Albaranes de cliente/Views/uEditorAlbaranesCliente.dfm @@ -0,0 +1,2905 @@ +inherited fEditorAlbaranesCliente: TfEditorAlbaranesCliente + Caption = 'Lista de albaranes de cliente' + ClientWidth = 583 + ExplicitWidth = 591 + ExplicitHeight = 471 + PixelsPerInch = 96 + TextHeight = 13 + inherited JvNavPanelHeader: TJvNavPanelHeader + Width = 583 + Caption = 'Lista de albaranes de cliente' + ExplicitWidth = 583 + inherited Image1: TImage + Left = 556 + Picture.Data = { + 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001800 + 0000180806000000E0773DF80000000970485973000017120000171201679FD2 + 5200000A4D6943435050686F746F73686F70204943432070726F66696C650000 + 78DA9D53775893F7163EDFF7650F5642D8F0B1976C81002223AC08C81059A210 + 92006184101240C585880A561415119C4855C482D50A489D88E2A028B867418A + 885A8B555C38EE1FDCA7B57D7AEFEDEDFBD7FBBCE79CE7FCCE79CF0F80111226 + 91E6A26A003952853C3AD81F8F4F48C4C9BD80021548E0042010E6CBC26705C5 + 0000F00379787E74B03FFC01AF6F00020070D52E2412C7E1FF83BA5026570020 + 9100E02212E70B01905200C82E54C81400C81800B053B3640A009400006C797C + 422200AA0D00ECF4493E0500D8A993DC1700D8A21CA908008D01009928472402 + 40BB00605581522C02C0C200A0AC40222E04C0AE018059B632470280BD050076 + 8E58900F4060008099422CCC0020380200431E13CD03204C03A030D2BFE0A95F + 7085B8480100C0CB95CD974BD23314B895D01A77F2F0E0E221E2C26CB1426117 + 29106609E4229C979B231348E7034CCE0C00001AF9D1C1FE383F90E7E6E4E1E6 + 66E76CEFF4C5A2FE6BF06F223E21F1DFFEBC8C020400104ECFEFDA5FE5E5D603 + 70C701B075BF6BA95B00DA560068DFF95D33DB09A05A0AD07AF98B7938FC401E + 9EA150C83C1D1C0A0B0BED2562A1BD30E38B3EFF33E16FE08B7EF6FC401EFEDB + 7AF000719A4099ADC0A383FD71616E76AE528EE7CB0442316EF7E723FEC7857F + FD8E29D1E234B15C2C158AF15889B850224DC779B952914421C995E212E97F32 + F11F96FD0993770D00AC864FC04EB607B5CB6CC07EEE01028B0E58D27600407E + F32D8C1A0B91001067343279F7000093BFF98F402B0100CD97A4E30000BCE818 + 5CA894174CC608000044A0812AB041070CC114ACC00E9CC11DBCC01702610644 + 400C24C03C104206E4801C0AA11896411954C03AD804B5B0031AA0119AE110B4 + C131380DE7E0125C81EB70170660189EC218BC86090441C8081361213A881162 + 8ED822CE0817998E04226148349280A420E988145122C5C872A402A9426A915D + 4823F22D7214398D5C40FA90DBC820328AFC8ABC47319481B25103D4027540B9 + A81F1A8AC6A073D174340F5D8096A26BD11AB41E3D80B6A2A7D14BE87574007D + 8A8E6380D1310E668CD9615C8C87456089581A26C71663E55835568F35631D58 + 3776151BC09E61EF0824028B8013EC085E8410C26C82909047584C5843A825EC + 23B412BA085709838431C2272293A84FB4257A12F9C478623AB1905846AC26EE + 211E219E255E270E135F9348240EC992E44E0A21259032490B496B48DB482DA4 + 53A43ED210699C4C26EB906DC9DEE408B280AC209791B7900F904F92FBC9C3E4 + B7143AC588E24C09A22452A494124A35653FE504A59F324299A0AA51CDA99ED4 + 08AA883A9F5A496DA076502F5387A91334759A25CD9B1643CBA42DA3D5D09A69 + 6769F7682FE974BA09DD831E4597D097D26BE807E9E7E983F4770C0D860D83C7 + 486228196B197B19A718B7192F994CA605D39799C85430D7321B9967980F986F + 55582AF62A7C1591CA12953A9556957E95E7AA545573553FD579AA0B54AB550F + AB5E567DA64655B350E3A909D416ABD5A91D55BBA936AECE5277528F50CF515F + A3BE5FFD82FA630DB2868546A08648A35463B7C6198D2116C63265F15842D672 + 5603EB2C6B984D625BB2F9EC4C7605FB1B762F7B4C534373AA66AC6691669DE6 + 71CD010EC6B1E0F039D99C4ACE21CE0DCE7B2D032D3F2DB1D66AAD66AD7EAD37 + DA7ADABEDA62ED72ED16EDEBDAEF75709D409D2C9DF53A6D3AF77509BA36BA51 + BA85BADB75CFEA3ED363EB79E909F5CAF50EE9DDD147F56DF4A3F517EAEFD6EF + D11F373034083690196C313863F0CC9063E86B9869B8D1F084E1A811CB68BA91 + C468A3D149A327B826EE8767E33578173E66AC6F1C62AC34DE65DC6B3C616269 + 32DBA4C4A4C5E4BE29CD946B9A66BAD1B4D374CCCCC82CDCACD8ACC9EC8E39D5 + 9C6B9E61BED9BCDBFC8D85A5459CC54A8B368BC796DA967CCB05964D96F7AC98 + 563E567956F556D7AC49D65CEB2CEB6DD6576C501B579B0C9B3A9BCBB6A8AD9B + ADC4769B6DDF14E2148F29D229F5536EDA31ECFCEC0AEC9AEC06ED39F661F625 + F66DF6CF1DCC1C121DD63B743B7C727475CC766C70BCEBA4E134C3A9C4A9C3E9 + 57671B67A1739DF33517A64B90CB1297769717536DA78AA76E9F7ACB95E51AEE + BAD2B5D3F5A39BBB9BDCADD96DD4DDCC3DC57DABFB4D2E9B1BC95DC33DEF41F4 + F0F758E271CCE39DA79BA7C2F390E72F5E765E595EFBBD1E4FB39C269ED6306D + C8DBC45BE0BDCB7B603A3E3D65FACEE9033EC63E029F7A9F87BEA6BE22DF3DBE + 237ED67E997E07FC9EFB3BFACBFD8FF8BFE179F216F14E056001C101E501BD81 + 1A81B3036B031F049904A50735058D05BB062F0C3E15420C090D591F72936FC0 + 17F21BF96333DC672C9AD115CA089D155A1BFA30CC264C1ED6118E86CF08DF10 + 7E6FA6F94CE9CCB60888E0476C88B81F69199917F97D14292A32AA2EEA51B453 + 747174F72CD6ACE459FB67BD8EF18FA98CB93BDB6AB6727667AC6A6C526C63EC + 9BB880B8AAB8817887F845F1971274132409ED89E4C4D8C43D89E37302E76C9A + 339CE49A54967463AEE5DCA2B917E6E9CECB9E773C593559907C3885981297B2 + 3FE5832042502F184FE5A76E4D1D13F2849B854F45BEA28DA251B1B7B84A3C92 + E69D5695F638DD3B7D43FA68864F4675C633094F522B79911992B923F34D5644 + D6DEACCFD971D92D39949C949CA3520D6996B42BD730B728B74F662B2B930DE4 + 79E66DCA1B9387CAF7E423F973F3DB156C854CD1A3B452AE500E164C2FA82B78 + 5B185B78B848BD485AD433DF66FEEAF9230B82167CBD90B050B8B0B3D8B87859 + F1E022BF45BB16238B5317772E315D52BA647869F0D27DCB68CBB296FD50E258 + 5255F26A79DCF28E5283D2A5A5432B82573495A994C9CB6EAEF45AB963156195 + 6455EF6A97D55B567F2A17955FAC70ACA8AEF8B046B8E6E2574E5FD57CF5796D + DADADE4AB7CAEDEB48EBA4EB6EACF759BFAF4ABD6A41D5D086F00DAD1BF18DE5 + 1B5F6D4ADE74A17A6AF58ECDB4CDCACD03356135ED5BCCB6ACDBF2A136A3F67A + 9D7F5DCB56FDADABB7BED926DAD6BFDD777BF30E831D153BDEEF94ECBCB52B78 + 576BBD457DF56ED2EE82DD8F1A621BBABFE67EDDB847774FC59E8F7BA57B07F6 + 45EFEB6A746F6CDCAFBFBFB2096D52368D1E483A70E59B806FDA9BED9A77B570 + 5A2A0EC241E5C127DFA67C7BE350E8A1CEC3DCC3CDDF997FB7F508EB48792BD2 + 3ABF75AC2DA36DA03DA1BDEFE88CA39D1D5E1D47BEB7FF7EEF31E36375C7358F + 579EA09D283DF1F9E48293E3A764A79E9D4E3F3DD499DC79F74CFC996B5D515D + BD6743CF9E3F1774EE4CB75FF7C9F3DEE78F5DF0BC70F422F762DB25B74BAD3D + AE3D477E70FDE148AF5B6FEB65F7CBED573CAE74F44DEB3BD1EFD37FFA6AC0D5 + 73D7F8D72E5D9F79BDEFC6EC1BB76E26DD1CB825BAF5F876F6ED17770AEE4CDC + 5D7A8F78AFFCBEDAFDEA07FA0FEA7FB4FEB165C06DE0F860C060CFC3590FEF0E + 09879EFE94FFD387E1D247CC47D52346238D8F9D1F1F1B0D1ABDF264CE93E1A7 + B2A713CFCA7E56FF79EB73ABE7DFFDE2FB4BCF58FCD8F00BF98BCFBFAE79A9F3 + 72EFABA9AF3AC723C71FBCCE793DF1A6FCADCEDB7DEFB8EFBADFC7BD1F9928FC + 40FE50F3D1FA63C7A7D04FF73EE77CFEFC2FF784F3FB25D29F33000000046741 + 4D410000B18E7CFB51930000026A4944415478DA63FCFFFF3F032D0123B2054B + B79CA49A6DD13EE68C582D004A906CD8DFBFFF80F83F980601EBC07C86733BA6 + E1B6C0B6683F8A0187FB1C711A8EAC765BB315C3C275FB19E62DDD84DF02525C + EE507A9081455D89E1C08C1D0CEF0FC6312CD97890B005D87C802E06027B3BEC + 189C2B0E311CD97F0BCC7FB32F8661F996C394F9E0FF3F605803F11FA0EB41EC + 3FFFFE41E3E01F98BD7ADB51D27D400C00F9E2F18E70860DBB4E106701CCDBA4 + 80075B431936EF3D459C05F8520E3600D2B3A8508F61EB81D3C45B802BA86096 + C3E4616AE7E7EB32EC387486721F4C2C7064F8CA7E8E41F8D527BCBE7AF2D589 + 341FC02C6D2BE76788F0FBC520C1F883E1D74F0608FEC1C0F0134603F1C91344 + 58800DCC4C6464884D85B0F119CE2FC1C070F52E160B223C4DC1B9139B0F62DE + 3B31B008E28FEC3FEF1186638D8350371370EEC4E60364D783C0A7F71017C330 + C80767CE4082C6CE701FC3A1F3587C10E46CC4E0567D04A70520CD8400C87010 + C06A819FA3018357ED31AC1A414184EC0310F8FB17182CBF19187EFF02FAE23B + 03C38D1B0839AC1678DBE9C1CB155819032A7B40F49E7A51140B4086FE061AFE + E71784BD660D07839AC60F0636163C167858EB60351C54A1EC6F12C3880390C1 + 201F80F0966D1C0C52F2100BD85819184E5CC662818BA51656C341F4A1560914 + 0BDEBE44180EB268E71E0E061169880557EE383134AFDACB886181BDA93AD8B0 + 7F7F11C532CCC2E39DD2700B4006BE7B85301C1454FB0E7230F089FF6078F004 + 6238D6646A63A40A2E11B101D67D9E600B664EE5C09982DEFDB662D8FA491D77 + 59D43B65214ECDF6BCFB187818A5F1265190E12000B300003BBC36ACFF3E8021 + 0000000049454E44AE426082} + ExplicitLeft = 563 + end + end + inherited TBXDock: TTBXDock + Width = 583 + ExplicitWidth = 583 + inherited tbxMain: TTBXToolbar + ExplicitWidth = 583 + object TBXSeparatorItem17: TTBXSeparatorItem [10] + end + end + inherited tbxMenu: TTBXToolbar + ExplicitWidth = 583 + end + inherited TBXTMain2: TTBXToolbar + Visible = True + ExplicitWidth = 246 + object TBXItem42: TTBXItem + Action = actEnviar + DisplayMode = nbdmImageAndText + end + object TBXItem43: TTBXItem + Action = actCancelarEnvio + DisplayMode = nbdmImageAndText + end + object TBXSeparatorItem18: TTBXSeparatorItem + end + object TBXItem44: TTBXItem + Action = actConfirmarRecepcion + DisplayMode = nbdmImageAndText + end + object TBXSeparatorItem19: TTBXSeparatorItem + end + object TBXItem45: TTBXItem + Action = actGenerarFactura + DisplayMode = nbdmImageAndText + end + object TBXItem38: TTBXItem + Action = actGenerarEtiquetas + DisplayMode = nbdmImageAndText + end + end + end + inherited StatusBar: TJvStatusBar + Width = 583 + ExplicitWidth = 583 + end + inherited EditorActionList: TActionList + inherited actNuevo: TAction + ImageIndex = 21 + end + inherited actPrevisualizar: TAction + Visible = True + end + inherited actImprimir: TAction + Visible = True + end + inherited actAnchoAuto: TAction + ImageIndex = 22 + end + object actGenerarFactura: TAction + Category = 'Acciones' + Caption = 'Generar factura...' + ImageIndex = 23 + OnExecute = actGenerarFacturaExecute + OnUpdate = actGenerarFacturaUpdate + end + object actEnviar: TAction + Category = 'Acciones' + Caption = 'Enviar albar'#225'n...' + ImageIndex = 23 + OnExecute = actEnviarExecute + OnUpdate = actEnviarUpdate + end + object actCancelarEnvio: TAction + Category = 'Acciones' + Caption = 'Cancelar envio' + ImageIndex = 23 + OnExecute = actCancelarEnvioExecute + OnUpdate = actCancelarEnvioUpdate + end + object actConfirmarRecepcion: TAction + Category = 'Acciones' + Caption = 'Confirmar recepcion' + ImageIndex = 23 + OnExecute = actConfirmarRecepcionExecute + OnUpdate = actConfirmarRecepcionUpdate + end + object actGenerarEtiquetas: TAction + Category = 'Acciones' + Caption = 'Generar etiquetas' + ImageIndex = 23 + OnExecute = actGenerarEtiquetasExecute + OnUpdate = actGenerarEtiquetasUpdate + end + end + inherited SmallImages: TPngImageList + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000001754944415478DA6364C001D6ECBE900CA4E640B9 + 2921AE0673B1A963C4A739C8598FE1DB8FDF0C33966C67505054C06A08232ECD + 3EF6BA0C250B7F315C7FF88F6179E15F86456BF76135841197CD79737F324C4E + E1008BF345BC63B833959561F13A4C4318D13507BBE833E4CEF9C160ACC1C290 + 60C30296734D5FCD70F2A333564318B1D90CD20C02D72E9C04D33C92A60CAFDF + FF6358B8E71B86218CE87E866986D90E738186A92FC397EF0C0C6B8FA21A0232 + E03FBACD5FBEFF07E30A3F36B801323ABE0C3F7FFF67F8FE938161EFC5EF7043 + C00678586B32F8B7FD61887167836BFEF59B81A12E186180A8BA0F58F3E76FFF + 194EDDFE0136A07DDA1AB001C90FEE3F98131BE4C4A092FD9BA12A8A07AC19E4 + 67582C800CE051F0C1D06C636994020F44902171214E0CCA99BF19E25DB8E09A + 91C301161330CDE040448E46649764D85C473160C6114D0CCD581312B221CEFA + 9C589D8D3521E13204047069C69B99608680002ECD380D4036E4C98B77383583 + 000005100EB8572466A60000000049454E44AE426082} + Name = 'PngImage1' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001074944415478DA + 63FCFFFF3F032580912A06303232E2543079D1766F201505C520B02C37CE331A + C400EBC5670054F3960057330631617E0690B2F357EF336CDA7786A1B5289211 + AF01C89A254505183E7FFDC1F0F5DB0F06311101A021F7184E5DBA733927D643 + 0FAB01E89ADF7EF802D6FCF5FB4F866F406CA6AFC21095DBC6B06C7215238601 + C4689EB27807C3B153E7300D2056F38B371F18B62EDA79EDFCF9F9DA700348D4 + CC70E1C2024420022548D68C128D40C906A0E67A5234631860A6A752AF202346 + B466740396C2521AD020B0A49EA622C39C95BB716AC64889C0405C0A541C2501 + 4C2830804F33D6A40C8A09A0A62DF7EEDD03F3AF1FB98D372301A39191E2DC08 + 0029AC32F01825AACD0000000049454E44AE426082} + Name = 'PngImage2' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001514944415478DA + 635CB5E3DC7F062C20CCC388918108C0083220D4DD104570F5CEF30CEDFDB319 + CEEF9C4ED0109C06D818AB3278C7941134046E40CBAA0760819A3005B80B6000 + 9F21182EF8F1F30F10FF86E05F7F1882926B883300E60264C0C1805D5F69B802 + 238601E836FF04E2CDA7BF339484C9A368EE59F59261D9C1BB0CE7A75933C20D + F0B4D56698B0E5195617601AF09021DA4998C1297307C38D35A18C60031CCDD4 + C036FF84DAFCE7EF3F307DF0FA7FB001112D57C09A57D4E8800D98BBFA346A18 + 58EA2BC235C39C0FC2671EB0A2B8E0DBCF7F0C5F7FFE05E27F60B65DE26C8801 + 7316ADC11A58AEFE69282E4009C8284506F7F4B90C781349F7CA07FF4106A0DB + FCFD171003E980BCF9840D48F5916148EFBB8E2197EC2BCB1059B290B001512E + 92609BC1B602F1EF3FFFC1F437204EAE5A4CD8007F5B71B8E66F480681407AED + 12C20674CCDE884F0903000B1A00979E81F9710000000049454E44AE426082} + Name = 'PngImage3' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000E9C00000E9C01079453DD000002574944415478DA + 63FCFFFF3F03258011D9004646468696696B17FFFECAD0DE581A7C0D596155CF + 0AF77F7FFFD975944755A3E8413760EA929DAF393938D62785D8A7C1C48BBB17 + 711BABAB5C7AF9F6FDDFC2446F354206BC75B6D4E35ABCFE90536B49F87190F8 + E4853B2779DA1BE46EDE7FE62ED00015BC06F4CFDBBA24CACF26FAD0A99B5B42 + BDCC7C6BFA563B057B986FFDFDE72FC7D20D072B26D62574E235A0A26DA999B0 + 98E0F2607713F9251B8E85692A4B5698E9AB9AAEDA7EE2DEBB571F3DDAAB226F + E33500044A3B979507B898B6BF78F3FEA3B1B612FF992BF7FF1F3975336E425D + CC52903C4103EAEBEB5998450D8FAA2A889BC94888306CD977664D675964284C + 1D0103EA99F8DDF50C8CD439E3FFFE67CB7DFFE9DB1F7E3E9EC637DF5977DC98 + B3E73C0343E33F9C0670B8AC555292175BC8F6FF9BEEDF6FEF995E7DF8F95941 + 55EDE5AB17AFBEFCFAC7C2F1ECC5FBEF0C4C4C89FF0F47DDC36A8056F2A103FF + DEDEE465FBFFB5F1D577EECB8C8CFFF72AAA6A7CFFF4F842CED54D7907184CE7 + 4631B0B227FC3F1AE38AD5008D981DDFD9BEDE48BABCA1703983DE226E09891F + D754B4756F7DBC7FBAEFF286BCED0C32BD9C0CB222B7FF1F8B93C16A805ED2EE + D74CEFAF445FDC50B48BC172858E34DFFB6582B2DAFB38BEDCFC7166456A0583 + CE0471063EA103FF8FC66A623540C063F55669B6E747AE3DE3E861E5E158A9C8 + FBF1D1FD6F628BF4147977FC7A79D3E3F2736E39060E9E84FF47A202B0C782ED + 627356C6FF935998FEB349737FB9FE95E975F2F32D8DDF98EC9647B1FCFF55F0 + EB1FD31FA08EC2FF87634F6235801C0000382740F0DFD997BD0000000049454E + 44AE426082} + Name = 'PngImage4' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A000002854944415478DA + A5935D48536118C7FFAFDB8CCD557E7F34B33167F9119617A91596495D781304 + 451021A651362821B1ABA49B6EA4460961D88542055D84DD6545415992174994 + 9625CC8F9C329D9B5F3BE9CED9D9797BCEA1C932A3A0079EC3CBE13CBFE7FF7F + 9FF330CE39FE2798FAB80BA4E61559EB2551E67B07279AE8D51FA98F2CC99546 + 031A3D6E5FF329993F631D80B52227A6D7929F9BAEA459D1D73BE8DC3330D6B8 + 1AD206641414DA5A6224E1E8ECA47779660955D532EF642F1371BD74331A14FA + 9C27A4439F5D88777DAE1B65FD230D11485786B9363D65FD35C1EB4B9817427E + 9F80C335C05BD53E23B2A934132FB23662B71406C2B14698F38AF0E9EB9473E8 + E3C8655BD686D6F858A5DA3F27B04511E37E0195B5C0A00AD6003FE5259758F0 + 3AD1843C15125218CCB6AD707FF34EAC93973217041154ECF608D8770E188BD8 + 5A01A8A1DEC5F60CF4980CB0A890E8A47AFFF477EC3F037C8EBE975F006ADC37 + 60A7351E3D061DE222C522A5270047AD82DBAB27B21AC09EDA373525E9A52BCB + 7E5F4CB4822509BE80848AB3C0C09A806380EE7CA1BDC55EB4CDE17AF2984932 + 75A60CCA088739742A84CE1E49C1010730F41BA03B27CD595C517CB1FFF92B04 + E6035AF142101DCB12DA743AB413243FA468331D0F01E51780D1154057AAF148 + D92E7BE794778E8DB92634C901116FA6451CAA27214EC06802AE5227AA839ED2 + 45A0729AC6A406182DD9329C10A7B7F57D18D63A93DF99D92076905F4FB4DF56 + A08C20ED9476027CD1209C7BD9FBDC947BC1C0E2C9596A4B003E27E2F8E9301E + AEB507B700334968A6631D019C759C5F627780822413BA194312CDFB41958C13 + 7FDB4052739000430ECEDD913F313B568F9B8B326AC8F7CCBFAEB27A073F0058 + 5538F0EAB25B380000000049454E44AE426082} + Name = 'PngImage5' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001934944415478DA + 6364C002662430FC47E6672C606064C001C0122726A06AB870818121A1632A98 + 5D169DCD10E58B90B32840358C11A4D920622A5C604145365833482308D4F5E6 + 3134154F62A8EE4805F35B2B66334CDA8B3004C50098E62F2F6E823581347F7F + FB80E1E58DBD0C8BD67D6588F6656258BAF91F7E03AE3D66C009081A800CD61F + B161C0072243F419711AF0F7F777864D275D192282F5B06A5EB1F23C43D7FCD9 + 0CE7774E67C43000A41984B79EF3C36AC08F9F7F18366CB8CC10116EC860E491 + 85EA0298E6BFBFBE33ECB8120E36C071E64DB8E6ED09CA40037E33ECD87E03EC + 02142F206BFEF7FB07C3AE9BF1282E00D90CD20CC6BFFE30EC3B719561CAECE5 + 100374837B503483E8BDF733305C000333DC04198E9EBB893040CBAF1945F3DF + 3FDF190E3C2E041B806EF34F283E73E52EC200758F2A865B3B3A506CB927739E + C1C75383C177F17D0C17745971325CBEF51062004820CF19352F808065E64506 + 172748A0C16CFDF3F71F9806B9E4F683A70803B081E56B2EFEB7B19663D875F4 + 32CEC444D080AED9331808010085EE16005695A1DA0000000049454E44AE4260 + 82} + Name = 'PngImage6' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000002164944415478DA95D35F4853511CC0F1EFD491DD + D9587F2C83AC8C328DFE4949908BC0AC142A147BC8077B88A01EECA5E718F958 + 410486C384B50A1F7A991023CBEC0F594F81E5D4C211E130D7D4DDCDA15B5EEF + DD5DD74B1B8EA9D90FCEC3EFC0EFC3EF9CF33B06FE46CBE3AE042B886B176B0C + 0B73C342A0A9B17AD9E2FB4F5EE0E878C6E79776C37F03AAAAD2DAD1CDDEDD3B + B96EBB9B425604CC17CB8A4AFBD31EEA6BAC0CFF08A4907F02C962598EE374BD + D58F908C2581442241603C8CCBFD89D86C9C9C9C1C0A365A282DDE446FDF37E6 + AB9277B128F02B10C6DDF385CD074B10D6593019211E9CC2EF1DA5A0C0821895 + 68BE6D5F1A6873BEA6D07A0879951945CD626B1E6C372978BD7EBC5F4710D608 + DC6A712C0EC84A9C7B6DDDECAF3B459E315B3B3B685B9835448DCD30F4BE0FC1 + 94CB9D56672670A5E1A47E590F1EBDE374C3091D88CD4120063359902B4719F9 + D88F201835E0612670E97CA5DE41578F870A6B296BD79B096BC0B8B6C4DF3252 + 4024E81960832071B3FD7926D0587B5C7F32DFE8243FC74214EDD906AB4D4C29 + 1011230487BC1419BFB32BE8E06CE7BE4CE0C299637A07B3928CCF37816F4CD4 + F2040943365234823134C8E1FC094A8A8D4C0DF6B2E5EA8774A0BEFAA80E283A + A21012A791E6E6B4618249FF08AFEC97292B2CA7B64221BFAC9C90E74DFA289F + AB3A42FFB07FD90FE5B255A510B754379D062C1CD3E5E240AC931D9537B03537 + 19FE00839434866373C4BA0000000049454E44AE426082} + Name = 'PngImage7' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000001724944415478DA6364A0103062135CB1E2C26E20 + E5824F63448401235603809AA381D412374F5506413E2EB0D89FBFFF187EFFF9 + 0BC62F3EFD6728A999C0B0795E15A60150CD1540CD3A7B4FDCC5B0D5D94299E1 + CAD3BF0CDD3D53F280064CC666C06EA066176C36FF05B25F7F6544B11DC50098 + D3C3C3F519D6ECBA8C61BBBDA922C38D17FF41B6C384B6020DF261846AFE0FA4 + AE809C0EB21DDD6610FFCF9F7F0CE91553194CF49518A4558D1836AE59037609 + 23C8E6AB4F2E2C2136DAE4B5AC186E9CD9C570F3C1278801B53D0BFE3715C7E3 + D4F0E5C75F86CFDF8118487FF9F18F61C3BA350C12CA260C3B366F4218408CCD + 17AE3D03D3065A520CEC42AA0C278F1CC4EF02749BBF82F0CFBF0CC7F66E64F8 + C92AC970FDE259DC06A06BAE3DEFC390ABB49EE1FEB5530CCF9F3F6778FA919D + E1F5D3FBD80DC066F3AC743D8680EEB30CAFEE9E61D8BEF72C4CA90CD080A770 + 03A62FDB45542C400D006B062724DFA4366920FD84D86844D68C9212C905001F + 16FA1194E3DBC30000000049454E44AE426082} + Name = 'PngImage8' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD2520000015F4944415478DA6364A000FC3060F8CF884D62C5 + 8A0BBB81940BB258E7FC99286A8EBF9CCEC06EE4C5C088457334905AE2E6A9CA + 20C8C70516FBF3F71F8399770E44D3F9FF0C3F0D19219AE76D6364C4A2B902A8 + 5967EF89BB2806B7F54D6738E7C4C1F073793F58B3D1537986F33BA76318B01B + A8D905D9E6DF7FFE82B1437011C3B91DD31818BA8AC07246FB7EA01A00737A78 + B83EC39A5D9731C205E40274003700A8F93F90BA02723AC876649BFF02D920FE + 9F3FFF18D22BA63298E82B3148AB1A316C5CB38661F5B92A064690CD579F5C58 + 4228CAB6EC3E893D166A7B16FC6F2A8EC7A9F1CB8FBF0C9FBFFF65F08E2CC01E + 0B20038849342017608D055C2E80D9FC19487FF9F18F2125B3147B2C6033005D + 73ED791F86E7B334B1C702BA01E89ABF02F1AC743D8680EEB30CAFEE9E61D8BE + F72C4CA9CCE679554FE1064C5FB68B98A0801900D60C6230FA26B54903E92744 + E946B219C661244123560000C9AFE6B31530CB2E0000000049454E44AE426082} + Name = 'PngImage9' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000016A4944415478DA + 63FCFFFF3F03082CDD7212C22000627C2D18616C905E466403A27DCCF16A06AA + 61E89DB290E1FCCEE98C241BF0EFDF3F86E5DB4E33488B093314D5F5810D21DA + 0090E6DF7FFE31ACD97596C1C9429BE1E6BD176043CEED98C688D3804D0F0E30 + F45E6A02B37779EC62E05CC0C6B058EA38D80B3080D30090E6805D4E182E7911 + FC91E1C4E5C70C8F1E3F6298B774137603609AFFA4FC013B1B64738BB13743CD + D9AD0C8FFDDF81C5B6EC3B85DB00A6594C289A91C13DEF3740F1BF0C3B0F9DC5 + 6D0048C1EFDF7F21F49F7F50FA2FC31F181F2877E0E445EC068479988015F02C + E640B1F98EE72BB066CDDD120C676D1E311C3D7B05BB0181CE8660DB049773C3 + FD8DAC3957BB80219A379FE1D4C5EBD80DF0B1D7032B165BCD8B110330CD200B + CE5FBD85DD00776B1DB002E9F502609B13CF8781E50C840DE09A41165CB97907 + BB014EE69A1801060B44986610C06980ADB11AC3A63D2789C994D80D404EA6C4 + 0090010087546EF0ACB0C7920000000049454E44AE426082} + Name = 'PngImage10' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001024944415478DA + 63FCFFFF3F03258071D400064674018780D0A7823C7C09EB97CCDD8D4B535EC3 + C493AF1EDC305B3E7F1A2323BA66090111A9272F9F301CD9BE99119701110999 + FF416A0E6FDB843000A4F9CFCF1F52F834C2808DA72FD8DF700348D18C6C08D8 + 004B77AF69F292F299308987CF1F4E979256DEB076DEE45D207E7052AEDBB3A7 + 770390D58000DC0B20FFCC98D0CE70E1053FC3DBBF3F191E7F66603831A310C5 + B6E533A6311C7CC080228F624046C534B82408AC690C856B9611976140970719 + 20ACA0CB30A53E13624068693F5CF2F2E3F70C37E7A5C163019BFCD7AD4D0C2B + 164C07A72146981F999998C17EFCFBEF2FD630C0260F3660C0933200BCB3BCE1 + CDA578040000000049454E44AE426082} + Name = 'PngImage11' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001C04944415478DA + 63FCFFFF3F0325801164C0C20D47A381F41292353332C6800D58B0FEC8FF8440 + 1BA234FDF9FB8FE1F79FBF60EC105CC4806200A3E14C86FFE7D3C13408E0627F + 3C12CF70ECEC0D86AAB659D80D4007FF806AFEFC41D80CC2672FDFC1340019C8 + 7A2C6178F2F22B98ADAE20C0D09869CCE06E29CD2068B788E1D9AE48868BD7EF + 117601C8E673D7DF309846AF6310E66767B8BE3E8441CC6929C3C36D610CD76E + 3FC46DC0CBB7DF19EA679C613870E619C3C3679F197EFCFA0B36106433C8F97F + 80F8D6FD27B8BD1053BD8F61E9B6DB0C0B9B1C181C4C2518E43D5780C54136CB + 7BAD62B8B12E90E1FEE367D85DF0F75C1A836FDE0E866D471E315C5A15CCF0F1 + CB4F06DBA42D6003EE6E0A6650F65BCB7061B90FC3F357AFB11BF0F3540AC3B1 + 8B2F18A2ABF6313C7BFD8DC1C14412E895E76003AEAEF6077B4123528661FFC4 + F3A806C4F859C1A30839CAE0ECDF10BE41E416860F7F32188E4F453320DCCB9C + 81CB621ED8A6177BA218245C9681D9B7360431A805AC03B37F306430FCF8C3C0 + F0E61B0483D8700382DC4CF0DAFC1B498EDD5785E1FD4A3417F83919319CBA78 + 8BA8FCF0DFCF908171139201A0DC3871C6529273637E46740C00F128724C706C + 80060000000049454E44AE426082} + Name = 'PngImage12' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000E9C00000E9C01079453DD000002324944415478DA + 63FCFFFF3F03258011640023232386C4922BFF0D9818FFC57EFFFE57FDEFBFFF + CC8CFF19BEF0F1B36D5C73E9EAAAD5613ABF60166318505FFF9F4939F077F98B + 97BF6BEFDCFEC6F9EDDB3F86BF7F810A9918192424D9FEF3F1B32FBFFA93236E + 5528C35FB8018D9B7E2C6DF0E38859759581F5E7BF3FD36EDEF89AF4E51B03E3 + B72F7FC0867EF8F897E1EF3F06867F40ACA1C9F96FE392D5BA5737265D831BE0 + 58F9F0BF83A5F83245796696CB973E87FEF9C70CD6FCE2D92B86E78F6EFCFCF7 + EFEF17360E5E4151590326666626067D7DDE65F57E1CD12806288BB3FF676567 + 66E0E062036B7EFEF425C39307576E8A2A19B9EE6A557DA217B2A88E9B5FBA41 + 405C87C1DC9CEF01D0004514031444391804843918409ADFBFFFCE70E7EA91FB + 9F3FF06BDED9E1F513A450357481341FBBD03D611973362B4B2C067CF8C1C060 + A020C0F0E3FB4F86CF1FDEBCBE7FFD84C3B54DC9D760812B13DACB29CAAAF84A + 58C69AC7C61A8B01CF9FFF61E014646190E365627870FD40C3A535718DC8D1AA + E2B1988F5788E7B998823597A5392FA6010C1F1EC0157FF8F081E1DF9F4F0D1C + EC6AFDA7965A7C02899924ED550746C555793523665D1D2ED440C49690D08149 + D2A9764E3ED90A037DEEFF3696BC7161EA0C4B8836402FF6A41A37AFF0690E2E + 7E3E7B5B9E65C08494084C48BF8832402BF40A0F8F30DB3E0E2E4153277B9E65 + 0DFE9C60A7E34CCA280098ACCDDF3C5A2925C913ACAFCBB51CA6997803ECF7B3 + 301C74FC834D0AC5004A000026261CF09ABF155A0000000049454E44AE426082} + Name = 'PngImage13' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A000002E64944415478DA + 8D936B4893511CC6FF67DA74BAC9BC9478C9357338CC4B0EBC1709F929A25414 + A13E48082D8CFC20267E1B925DD004B3120C75919AA99B5DADD485E56DA2791D + 739ABA2D9DB7A953379D6EEF5EDFDE14859C810F3C5F0ECFF33BFFF38783E0FF + 425902A13B668448DCB4C5B658709C40D8F0A4563120A97FB1B61F3AAC291008 + EDB1630ED7ECECA97C6F7F6FAEABB72BCDB46902B54CAD5BD4CCF7AAC68772C5 + 6F8A06C8286E05484EAEB3F10BB6A49FE2B2F2C2628318E0C440063300410050 + 910596D4B344F7BBB63169FBA7B4D6E65AA915205320E47A9EF4ECB89A7CCE85 + CDA021950141E2BD2E9049645029E683BB3301EB2AE5F657E15B4955457EAA15 + 205B5095CD8BE33D0C8BE0523C1002B50120E5C12EE03509D8A60078386EC1B7 + F2066DA3A89C8FFE1DBF9076CADFADFA4A467C829E70829C82AE43B79B97150D + B3522956F3F4C9B3030001DD87C3AE49C84CBCBC646640FCA5D29DF3A0B8A09D + 09F62469E1C3A4B4D7F2EAF1A3DA834FA064DC2D2D8E4DB9984E63F922ED2A02 + 161DE04EE1EE13D4ED7CB090CB5CD9C6E1439978A3FE655189D50E52D37263CE + 4486374725C5D2168DF6C88E2CE414ED02942400030246C6A7087149C5688DF0 + 7EC63EE0F38DB3C79974A8ECB70B7459649E0F64F17854767800C588D390830D + 02172A19226F5E58D211DFEB9AF40DD5CFCB46E5DD0568AFECC6C43FFA470747 + 2CEBF420D2048072C57ED3CB2F846005F9D19CBD4E80C96882B9F16942D1DBA7 + FBD15C2B960F77159355056AB919E0E3E24C17F9C58487E1737218966D429386 + 01F235CB8589854D87D3DCD0448613938D61669B89B1C1099552DEB9AA9B9790 + E559D204FA99C5EBF78D0A0FB5D5ABA0BF6F0D7AA66CA1757CC4B862D808E9D6 + 9826C990236927D236A4B748AF92C6F6FF82243F890861AE817CC8001D6A0A74 + 2A478D1AFD7A926CC6FC058E20743BEDFA2F1ECC70B45A0CDA2614CB5AFDFAAD + BE19B3E828E51D009FCFE710C6F546ED680F473DFF3B7E70DAFCFEA8E5BFFA03 + 503A4EA60D6AAC070000000049454E44AE426082} + Name = 'PngImage14' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A000002E44944415478DA + 8D936B48D35118C6DFB379D9D4C9BC94A8CB399B38CC4B0E9C9A45427D8C5251 + 82FA2021B430F08398F4258650145A615642A12E4A31AF6565795958A69B685E + C7BCB4B92D9D3AA74E7771BAFD37FFFDA728E40A7CE0FDF6FC9E73DE877310FC + 5FA850200CC22C90ECB06EB1EC76870347D8F88C6E7244D4F8D2B06FFA172910 + 082998BBD7154F8A079F11C5E0043002A8D64D2BA8A56AFDB2463BA8928F1537 + BF2D1B21AC0E9780ECEC06323BCE9E17CE61DE4D4C8BA5812F0D996C00380EE0 + 81ECB0A25EC0FBDFF74C4B7E7CCAEDEEAC97B8041408849C906321BD97B24FFB + B36854A43221106B01ECCE007780203F1CCC2AE576BBF09DA8A6BA24C725A048 + 5053C43DCFBD9F98C4210523046A13C0D0320099BCBBF0360920D87B0BBE56B5 + E8DA9AAAF8E8EFEB3FA2864705D65ECC4FCF30E2BE70BB54ECD28F542485D676 + 3E2C482458DDD327CF0E04087CC222597519059917566C34B8F358BC031C94A8 + 8B0F339241FBEB870FEA0FAE40CABFF5A23CEDF2B93C2A3302E9D611307D0002 + 29006EC4D529A4DD2ED6B61DF0A1B279A3F15559854B0739B9C5A92792799D29 + 5969D4650B05791200C31B804A74E046B831C061423E8B3757544FD509EFE5EF + 077CBE76F208DD07DE0C7BC6F82FD3CFC430B95C0F162F9A64715091171981BF + 0761224E5E5AD1E3DF1A3A8C2DB5CF2BA764FDA5680F0EA43B3E469D8A4B5AD5 + 1BA149130DCA35CA66283B1E67C6B2A97EA147C16AB1C2A27C0E9F1C1CD27FEF + AC6F968D8BCB097412755D8F0EF3F7F36962A7F2121D8B3218976E4287860632 + 83FDAC6269D3EB38272193E64B6761988DAC981E55A894B2BE75BD5644C00BC4 + E0E867217738228597E06654C1F090010666DDA05B3E6159336DC4F76BAC3384 + 8968007C8971BE842D62D6C159C5DE5F109564E1F17403C8C64CD0AB26419F72 + CAA2319AB3A4F3B62F7008A19BB9577F71613E52A7C3A04731B9AA339A6F0CCD + DB9A0E03EF04F0F9FC48DC626ED34D0D44AAB5BFD347E76CAD87859DFA0386D8 + 3FA68502A9830000000049454E44AE426082} + Name = 'PngImage0' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A0000032A4944415478DA + 6D937B4814411CC77FB3B7777A5E7276969AA4648A20A5592A4585FE654122BD + 0CAA3FE2841EA45946697591BD8DB27748A2BDA0A43FA2420C893252D2A244B4 + 7C24495986AFBC3BDDDBDB9DDDBDDDDB663714B366F9B2BB33DFCF777E3BB383 + E0DF66235A19342370912538D0CAB2825BF00A6DA4EF2D1133D5A8AA2AA029EF + 4126B3292B2E21BA70697A5262626A9C393422040D0FBAFCAD6F3BF187C68ED6 + 9F5F472E2992524FBCE2F400735884ED40E6BAE58539F6CCD0B9F323009111C5 + EF075191600C7BA0ABEBAB5AF7A071A4ADBEE71CE7C615849126032823B52D77 + EFBAEBF6BDEBAD164B20E941A092EBF89ED75050960C6ECC805B6060D8E984E7 + 379B9C2D8F3AB71353CD4440CC8ACCE49725D7F2626DB3AC60A028C2535092FF + 4A2FCD5E1A0F2E3C062E9E8171D1034303A3F0E24CF3A7910EF72A1230826813 + BDAFF87CEE85ACCD19269AA2C16030C0093273EDC372C8DE92FFD7EACEDDE902 + 06B3D0F1A41777DEED2D5015F5369A1335BBB6ACFA4056745C24A22903941636 + EBF044C38204BCE003FBEE62B0DAFBC1237A61B8C7A9B69DE979ECF3F836A1A4 + 65F15F4EDD2A880BB606A12B45AD93B02C2BE023D2604D79FB8F02B5F533B022 + 078C9B55BBCF7EEBC43F8424B4243DE19BA37C678CC962844A47B71E204F8212 + 09F1EBF783474E02BBB105BC1207DE711EFACA06BE8B7D520C8A8A0D6F70DCD9 + 951E343B1061598067A54EA8AEBAA4435A0826D22A3976B21406B31B80F76160 + FB3975E8E2E84785F12F460166E3E91D17361D8E5D1E45F332062C8BD07EC300 + D7CA4EC1BEA292BF16B177751D6893304D5E9979E0AD5265354FDBC694B4EC05 + 7599FB57844906093862D04CCEBB913AE4D9F01EBC3E1EBC22AF87635680F1FB + EC4FB95DC922DBD8A105A0008BF1444641DAA1A88C8800CE8F8123656AA59A1F + A740FF9A7AF22CE8B0208AC035F258A8911C20C3D5A9BF72D8CC79C197E3D7CE + CBB12D0D09106862D4A13F9F343133F70E63F18D740F7E818330E3D30FD31CA3 + D5986F5B68B55B532DE128923248269F0EF2DF05856FC58372AF52013C5412AF + EB7FA7516B34512232C2063A944E44C1C82C7B14CEEFF2B793929F92B16E2265 + EA71FE0D330BBCF031BDB9A60000000049454E44AE426082} + Name = 'PngImage15' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A0000031C4944415478DA + 6D536B481451143E779D5D5D37D95AD354523445905AB32C0A0DFD653F92252B + 8BFA130A3D40F385D1C3B09766A5652548D23B34FA1115624894A0F6502845CB + 079298A5F8CA75737677E6CECCCEA3BB532DAB75868F3B73EFF77DE7CCBDF720 + F8374C045BFC97F8AD3504F8191D0ECEC639B91E32D741407B13154501E4F5ED + AFD3EBD263E2220A37A5C49BCD1B62F481214BD1F4E49CDCDDD18F3FB4F7758F + 8FCC5C9504A98570F9C506FAE01053715A46526166565AE0CA552180C88A24CB + C04B02FCC476181818519A1BDA677A5A862E32365C473482C740A3D5ECCFCECF + A8C9CADF613418FCC80C02853C678EB4425E5502D8300D368E8669AB155EDE7C + 67FDF8A4FF002135FE35884A4E4B787DFA464EB469B9117C341AA2D78008329C + CF6D55CBB39406C11C4BC33C6F87A989597855FEFEF34C9F6D2B319841948E2A + 387639BB327D6FAA8ED2505056F066C18E363DAE05CBBE5C30E7BBE02767071A + 3BA0EFD930EEBF3F9CA748CA5D141A1ED454F5A8383D22260C511A1FA8287CAF + 8ABC037302ECC92E0263D618D879274C0F59959EF2A1A72EBB6B378ADF1CFBE5 + FC9DBC9800A33F2201D547BB3C06A228818B80E55C2A728A4E01B3AB0B689B43 + 19BCF0B51F7FE7E2D1FA94B8AF25B587A274062DD971173C2C1D560D448F5020 + 26B23A1E3D790EA62C6DE09C6761B46AE21B3F2A44A1F0E8156D25F70EA7F807 + F9212C72F0A2C20ACFEB6B3C62F788094E9496C12411B32E0C8E314699BA32FB + 49A2E575C857AF2D3B58B9FB44745238C58A183AAF890BFEFF5259A947CC082C + B893D0EF9C22DDE0BCAD884A8EFB1813375A5637A71525070B3E023084E02631 + 24136E88564D262DADE0E4DD621EB08383F97AC7B8D82BA59363EC731B205F83 + F66C6ADEC6E3E1A921BE8C8C55B1BB54FDD34418DBD642DE3955CCF13C30ED2C + E61A85127251AE7B5FE5E0659101D5B1DB23334D9B96FA721421AA22FC3BEB9F + CC4C27C6FC5BE101FC8012A2995FDC4CA15AA336D7B4C69865DC605881C2343E + 82CEA50AD96F9CC476E3497158AA03166E11EEDCFFBAD11D1481196961271548 + 995100D28B768991E7E45E52F273B236482079B7F32FB7E1BAF0E8F71C040000 + 000049454E44AE426082} + Name = 'PngImage16' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000019E4944415478DA + 63FCFFFF3F4341F1F9FF0C6402469801BEFE4A0C0B16DD60583CC71CABC21F3F + FF327CFFF90748FF6128ABBCC2A0A5CEC0B072C752E20C40D6FCE3D71F86BAFA + 1B0CEB963B31A85A241336005DF38FDF7F18DA5AEE3098997032CC5D3D07BF01 + D834FFFCF597A1B7EB3E612FE0D20CC253263C625092FFC5B0F1C06AEC06E0D3 + 0CE2CF99F68C4152EC0BC3AE931B310D983EC908A119AA11A409660008CC9FF9 + 9C4180F72DC3E14B3B500D00019021840048F3F7EF3F19CEDCDE8F6AC09F3F40 + DB7EFC024B82E81FDF816C280D11FFC5F0F9D337B03C08DF7C79126180A7B73C + 86E6CF9FBF43C460867DFB09D70C32ECD1A7F308036CEC44C18A976E9A82D7F9 + 7CFF8DC19A4186BCFE7D0D618089193FD896B5BB67311CDA309341504A87E1C9 + ED930CEF3FFD60F8F0F927C3FD671F1956AD59CDF0EC96105833C8BBEFFFDF44 + 18A0A3CB0976EAB6C30B182E1CDDCBA06768C8B073FD02B8CDF79F7E64E89C34 + 87E1EE456EB06610403140599519EC827D6796312447F833F072B130B0B0B2A1 + 387FF5D6430C37CF72C0F9700318191919F49D72C9CAD200FAC9B5C145016BDA + 0000000049454E44AE426082} + Name = 'PngImage17' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000015D4944415478DA + 63FCFFFF3F03082CDD7212C22000627C2D1891F98CC80644FB98E3D50C54C3D0 + 3B6521C3F99DD3194936E0DFBF7F0CCBB79D6690161366B04C57058B715C6060 + 24CA0090E6DF7FFE31ACD9759621A4D68281352A97E1F7B2C90C8B2E10E10298 + E6DFBFFF325C5DC2C1F044E912C39B4B4B19984A3AB17BC171E64DACAEE860D0 + 60D0F399C2F0F2D636868587CC18A41A1A18D218F07801DD669866100E699161 + 10D5F6050726411720DB0CD35CDE369B61DED24DD80DF8FDE72FD856107D6319 + 1786E6ED7B4F311C387911BB01611E260C6E73EF80F9110C1F180C182C18C4D5 + BC5034830C3E7AF60A7603029D0D212E00FA7DEDAA2B0C2D2D210C6B6A9EA068 + 06E15317AF6337C0C75E8F2160D92330FF4E8B0B838B4B0D985D5CE907D70CC2 + E7AFDEC26E80BBB50E5CD11FA84B60E181C0FF18AEDCBC83DD0027734D829A41 + 00A701B6C66A0C9BF69C24265362370094D348012003002CB76B52FA97B19500 + 00000049454E44AE426082} + Name = 'PngImage18' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001B04944415478DA + 63FCFFFF3F03258071D400064674018780D0A7823C7C09EB97CCDD8D4B535EC3 + C493AF1EDC305BB1603A2323BA66090111A9272F9F301CD9BE99119701110999 + FF616A189135FFF9F9430A9F4618B0F1F405FB1B6E0021CDD70CF8FF0B09B0D7 + 481C78D50AE2FF7295B1FBC82F7AF0C585F30C8C96EE5ED3E425E533618A1F3E + 7F385D4A5A79C3DA79937781F8C149B96E6627F7F4F8B23ED3DD226BC2F04840 + 96A19CE72DC3E7E387182EDEF8389911E49F1913DA192EBCE06778FBF727C3E3 + CF0C0C276614A2B860F98C690C9BAA5A1854F7F530282A4830DC7FF08261E657 + 318689B76F33820DC8A89806D70C026B1A43E19A65C46518C0F25F3F3048CE28 + 6050BFBC9A61DB7F198693AE390C535AF220068496F6C3355F7EFC9EE1E6BC34 + 782CC0E47F5EBFC060D7E5C170E8BD208301F73B06BE7F1FFD642E316C6604F9 + F1D9D3BB01CC4CCCE070F8FBEF2F4618FC7D723D22F3EF93C4FB37DE301C1296 + D9E8FBE68198BED87F4BFEBF1FED084619087CB4178BB974FFD3D42B8F7E7801 + 6D390A12DB28C4BA51558ECB8F2803D6F1B2C67CFEF5C728EEE7FF62A006701A + 98C0C0202ECBCDB00A00547CD715F016991D0000000049454E44AE426082} + Name = 'PngImage19' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001034944415478DA + 636498F123988181610D032A0861C8E058CB400460041AF07F8201AA60C10520 + 91C1C1489201604DC40114D7313234DCF84FB4561868D080BB8E71F3BEBBFF7D + 1C9550E4FFFCFDC7F0E7CF5F86DF60FC0F4C83F8DF7EFC66084FAF6738BF733A + 7603D6DEFBC710B2FB378A61732CFF307888FF061B7AEDEE4B86EAD6C9B80D60 + 9CF993015B803EF0FDCAF0EBF75F863B8FDEE036006403EB9CDF0CA40628D800 + 0F3B05B01F393BEE911C9E6003ECCDA4188E9CBBCFF0F70F3B03A9010A36A0AE + B307ACB8A9BC04C5005C9A91031425B52107283ECDC8018AD500429A41F8D1F3 + F7D80D8005283ECDBF81F8F99B4FD80D8005283100AB01B0002516000097A51A + 7A68BA98860000000049454E44AE426082} + Name = 'PngImage20' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD25200000A4D694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53775893F7163EDF + F7650F5642D8F0B1976C81002223AC08C81059A21092006184101240C585880A + 561415119C4855C482D50A489D88E2A028B867418A885A8B555C38EE1FDCA7B5 + 7D7AEFEDEDFBD7FBBCE79CE7FCCE79CF0F8011122691E6A26A003952853C3AD8 + 1F8F4F48C4C9BD80021548E0042010E6CBC26705C50000F00379787E74B03FFC + 01AF6F00020070D52E2412C7E1FF83BA50265700209100E02212E70B01905200 + C82E54C81400C81800B053B3640A009400006C797C422200AA0D00ECF4493E05 + 00D8A993DC1700D8A21CA908008D0100992847240240BB00605581522C02C0C2 + 00A0AC40222E04C0AE018059B632470280BD0500768E58900F4060008099422C + CC0020380200431E13CD03204C03A030D2BFE0A95F7085B8480100C0CB95CD97 + 4BD23314B895D01A77F2F0E0E221E2C26CB142611729106609E4229C979B2313 + 48E7034CCE0C00001AF9D1C1FE383F90E7E6E4E1E666E76CEFF4C5A2FE6BF06F + 223E21F1DFFEBC8C020400104ECFEFDA5FE5E5D60370C701B075BF6BA95B00DA + 560068DFF95D33DB09A05A0AD07AF98B7938FC401E9EA150C83C1D1C0A0B0BED + 2562A1BD30E38B3EFF33E16FE08B7EF6FC401EFEDB7AF000719A4099ADC0A383 + FD71616E76AE528EE7CB0442316EF7E723FEC7857FFD8E29D1E234B15C2C158A + F15889B850224DC779B952914421C995E212E97F32F11F96FD0993770D00AC86 + 4FC04EB607B5CB6CC07EEE01028B0E58D27600407EF32D8C1A0B910010673432 + 79F7000093BFF98F402B0100CD97A4E30000BCE8185CA894174CC608000044A0 + 812AB041070CC114ACC00E9CC11DBCC01702610644400C24C03C104206E4801C + 0AA11896411954C03AD804B5B0031AA0119AE110B4C131380DE7E0125C81EB70 + 170660189EC218BC86090441C8081361213A8811628ED822CE0817998E042261 + 48349280A420E988145122C5C872A402A9426A915D4823F22D7214398D5C40FA + 90DBC820328AFC8ABC47319481B25103D4027540B9A81F1A8AC6A073D174340F + 5D8096A26BD11AB41E3D80B6A2A7D14BE87574007D8A8E6380D1310E668CD961 + 5C8C87456089581A26C71663E55835568F35631D583776151BC09E61EF082402 + 8B8013EC085E8410C26C82909047584C5843A825EC23B412BA085709838431C2 + 272293A84FB4257A12F9C478623AB1905846AC26EE211E219E255E270E135F93 + 48240EC992E44E0A21259032490B496B48DB482DA453A43ED210699C4C26EB90 + 6DC9DEE408B280AC209791B7900F904F92FBC9C3E4B7143AC588E24C09A22452 + A494124A35653FE504A59F324299A0AA51CDA99ED408AA883A9F5A496DA07650 + 2F5387A91334759A25CD9B1643CBA42DA3D5D09A696769F7682FE974BA09DD83 + 1E4597D097D26BE807E9E7E983F4770C0D860D83C7486228196B197B19A718B7 + 192F994CA605D39799C85430D7321B9967980F986F55582AF62A7C1591CA1295 + 3A9556957E95E7AA545573553FD579AA0B54AB550FAB5E567DA64655B350E3A9 + 09D416ABD5A91D55BBA936AECE5277528F50CF515FA3BE5FFD82FA630DB28685 + 46A08648A35463B7C6198D2116C63265F15842D6725603EB2C6B984D625BB2F9 + EC4C7605FB1B762F7B4C534373AA66AC6691669DE671CD010EC6B1E0F039D99C + 4ACE21CE0DCE7B2D032D3F2DB1D66AAD66AD7EAD37DA7ADABEDA62ED72ED16ED + EBDAEF75709D409D2C9DF53A6D3AF77509BA36BA51BA85BADB75CFEA3ED363EB + 79E909F5CAF50EE9DDD147F56DF4A3F517EAEFD6EFD11F373034083690196C31 + 3863F0CC9063E86B9869B8D1F084E1A811CB68BA91C468A3D149A327B826EE87 + 67E33578173E66AC6F1C62AC34DE65DC6B3C61626932DBA4C4A4C5E4BE29CD94 + 6B9A66BAD1B4D374CCCCC82CDCACD8ACC9EC8E39D59C6B9E61BED9BCDBFC8D85 + A5459CC54A8B368BC796DA967CCB05964D96F7AC98563E567956F556D7AC49D6 + 5CEB2CEB6DD6576C501B579B0C9B3A9BCBB6A8AD9BADC4769B6DDF14E2148F29 + D229F5536EDA31ECFCEC0AEC9AEC06ED39F661F625F66DF6CF1DCC1C121DD63B + 743B7C727475CC766C70BCEBA4E134C3A9C4A9C3E957671B67A1739DF33517A6 + 4B90CB1297769717536DA78AA76E9F7ACB95E51AEEBAD2B5D3F5A39BBB9BDCAD + D96DD4DDCC3DC57DABFB4D2E9B1BC95DC33DEF41F4F0F758E271CCE39DA79BA7 + C2F390E72F5E765E595EFBBD1E4FB39C269ED6306DC8DBC45BE0BDCB7B603A3E + 3D65FACEE9033EC63E029F7A9F87BEA6BE22DF3DBE237ED67E997E07FC9EFB3B + FACBFD8FF8BFE179F216F14E056001C101E501BD811A81B3036B031F049904A5 + 0735058D05BB062F0C3E15420C090D591F72936FC017F21BF96333DC672C9AD1 + 15CA089D155A1BFA30CC264C1ED6118E86CF08DF107E6FA6F94CE9CCB60888E0 + 476C88B81F69199917F97D14292A32AA2EEA51B453747174F72CD6ACE459FB67 + BD8EF18FA98CB93BDB6AB6727667AC6A6C526C63EC9BB880B8AAB8817887F845 + F1971274132409ED89E4C4D8C43D89E37302E76C9A339CE49A54967463AEE5DC + A2B917E6E9CECB9E773C593559907C3885981297B23FE5832042502F184FE5A7 + 6E4D1D13F2849B854F45BEA28DA251B1B7B84A3C92E69D5695F638DD3B7D43FA + 68864F4675C633094F522B79911992B923F34D5644D6DEACCFD971D92D39949C + 949CA3520D6996B42BD730B728B74F662B2B930DE479E66DCA1B9387CAF7E423 + F973F3DB156C854CD1A3B452AE500E164C2FA82B785B185B78B848BD485AD433 + DF66FEEAF9230B82167CBD90B050B8B0B3D8B87859F1E022BF45BB16238B5317 + 772E315D52BA647869F0D27DCB68CBB296FD50E2585255F26A79DCF28E5283D2 + A5A5432B82573495A994C9CB6EAEF45AB9631561956455EF6A97D55B567F2A17 + 955FAC70ACA8AEF8B046B8E6E2574E5FD57CF5796DDADADE4AB7CAEDEB48EBA4 + EB6EACF759BFAF4ABD6A41D5D086F00DAD1BF18DE51B5F6D4ADE74A17A6AF58E + CDB4CDCACD03356135ED5BCCB6ACDBF2A136A3F67A9D7F5DCB56FDADABB7BED9 + 26DAD6BFDD777BF30E831D153BDEEF94ECBCB52B78576BBD457DF56ED2EE82DD + 8F1A621BBABFE67EDDB847774FC59E8F7BA57B07F645EFEB6A746F6CDCAFBFBF + B2096D52368D1E483A70E59B806FDA9BED9A77B5705A2A0EC241E5C127DFA67C + 7BE350E8A1CEC3DCC3CDDF997FB7F508EB48792BD23ABF75AC2DA36DA03DA1BD + EFE88CA39D1D5E1D47BEB7FF7EEF31E36375C7358F579EA09D283DF1F9E48293 + E3A764A79E9D4E3F3DD499DC79F74CFC996B5D515DBD6743CF9E3F1774EE4CB7 + 5FF7C9F3DEE78F5DF0BC70F422F762DB25B74BAD3DAE3D477E70FDE148AF5B6F + EB65F7CBED573CAE74F44DEB3BD1EFD37FFA6AC0D573D7F8D72E5D9F79BDEFC6 + EC1BB76E26DD1CB825BAF5F876F6ED17770AEE4CDC5D7A8F78AFFCBEDAFDEA07 + FA0FEA7FB4FEB165C06DE0F860C060CFC3590FEF0E09879EFE94FFD387E1D247 + CC47D52346238D8F9D1F1F1B0D1ABDF264CE93E1A7B2A713CFCA7E56FF79EB73 + ABE7DFFDE2FB4BCF58FCD8F00BF98BCFBFAE79A9F372EFABA9AF3AC723C71FBC + CE793DF1A6FCADCEDB7DEFB8EFBADFC7BD1F9928FC40FE50F3D1FA63C7A7D04F + F73EE77CFEFC2FF784F3FB25D29F33000001744944415478DA63FCFFFF3FC394 + C53BFE33900172623D1819610600394469FAF3F71FC3EF3F7F19ACFDF319CEED + 98866A806DD17E14C587FB1CC134B2F8AE761B86B9ABF632CC5BBA09D3007CE0 + D7EFBF609B4178C98683D80D40770136B0AED69461E59623B80D80391B04FE01 + E5FEFCF907B7D9B7FE04C3AA4A6386B53B8EE13700E692BD9D760CCEE587E036 + 07359F66585A6AC0B069CF49FC06C06CFE7CFB30C3CBC5B1F87CE48261C0C15E + 0706FBE20360D999EC710CCA0D350CECECE9183A7FFE9CC9302FB18501C30090 + B3617E7ED6A6C6A0D5FE18AC180E7EFC00E2EF0CB3771930306F4F45189011E5 + C6E0587A10C516900B500C0069FEF00E62C02927540392C39CC1B6C2423DA4F5 + 0CAA0130CD60037E32CCBE15846A405C90034A9445769E4718F0712242F3870F + 1017BC4A413520CA0FE177B841338C20063CAC47688679E15719AA01A15ED60C + ABB71D450903A76BA9E05898BD4A1E6B1CA218004A18E8409BF70D8315EB719C + 89C05E9EC10500D1295EA9BD5461080000000049454E44AE426082} + Name = 'PngImage23' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001124944415478DA + 63FCFFFF3F03258091620340848147C2FF0B3B1630A24B1223CE08E20CAC0B28 + 0A0098010B361C807BE3E7CF5F0C5FBF7D63F8F2ED3B98D65455C62ADE599ACC + 886240BCBF3D58E19FBFFF18BE7DFFC5F0EDC72F86D6A98B1826D7E760159FD2 + 908B69C0EF3F7F810A7E337C072ABC71FF15C3FC556B1916F69463155FD45B81 + 3060DAF21DFF93835D18BEFF80D8F0FDC71F8647CFDF334C9CB38061E5D446AC + E21B66B7220CE89AB3EE7F6AA80754D16F862F409BDE7FFCC6D0D43F8561DDCC + 76ACE2FB574C4418503771F1FFB4085F86DB0F5EA3847049633BC3C6F97D58C5 + CF6E9B8730A0A86DE6FF6FC0D0FDF4F90BC3E72F5FA1F417867FFFFE33589818 + 601587A78381CF4C941A00005C20FBD97F751C0A0000000049454E44AE426082} + Name = 'PngImage22' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000B3A00000B3A01647F570D0000015D4944415478DA + 63FCFFFF3F030830323232C0C0CEB58DCA2F6E6CBDF3FEF129B818C30F061490 + 3FFF3F58032336032E9C58FD9F8B47904155DB192EF6FFD72B867F9F2F31FCB9 + E3CA3063061E0380B6DBB373F01CB076CD66606165C7AAB96001923E6403809A + 9979F925FEC8299B32482B18E2D40C16C7614032D08039164EA97017810CF875 + 5E1CAC196F18EC5AD7C40F74FA073DB36006411179B8E6FF3F5F32FCBEA687A2 + 196B18000D681797D6AAD06008852B64D5BA0434E4251833000DFBFBA2087718 + 2CEF76FFFFE1E119865F5FDF81F9B993706BC61906D0589056D7D07F2223CE8D + 53332103DAC5C4A52B749438706AC6170BECACAC6C3FF4547918F8397FE3D48C + 3F1A79F9E7982A7F66F8FBBA16A7669C061CDB35E1BF9CAA1D83C84B23BC9AB1 + 1A008C466BA0F38F5888D632CC9AF907AF66AC065C383AF73FC7B7150C3B97ED + 21A819AB0137CE2CFBBF776E2643CE8C4F0435231B00004A4C11F0D3652A8300 + 00000049454E44AE426082} + Name = 'PngImage23' + Background = clWindow + end> + Bitmap = {} + end + inherited LargeImages: TPngImageList + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000003CD4944415478DA8D96ED4F53571CC7BF17EC9315 + 11864234C607C6D4E9408621F88CBA88D0C64D48EA906C3E3459F40FD077666F + 7CEB62A2912C43F0A950A12A3001AD2613810908B46869E69E8B2FBA3087F499 + B6F7B63BF7E0BDB6D2A79BDCDE73EEBDE7F339E7777EE7DC3248E1303C346BC9 + A5812FDBED767AAF51D7B9C9F4A07E22595B2655F8DED202642D5E089F3F88B6 + EE415CF8BE857F9C54C2A402DFBD651D7296C8C5FBD3336EE87F7C8206DDBDA4 + 1226197C57493E96662D9A7BF9F810BD861A4BF1EFB4136D5DFDB8D2DC9550C2 + 2482EF2161C9266111E00D470B611C015A75D7E11FD6E2F51B176EF7FC8CA696 + F812261EFCC0F60D502AA451706DB902A7EB5F60D2F32195B8068EC1E5F1C1D0 + CD4B62878B4904F7F8392C3A3922C2C361D280B438736900B6D94FA9E4D5FD5A + C8A46968E9E8C555FDFC9130EFC3856C8984A72F90E0E31C274AD767A3EBF138 + 7A2D6E64AF2D82C99A4E257FDED320C4B1E87C34881BAD3D511226D1840A70E1 + B09AE7269987FB021CBCE49C9C545089AD5B0387CB03E39351E80C0F44892008 + 278207D830BE297F27FAB6DD41E182A4A9CF0698CDF8BDA31A334E2F7E7A6A42 + F36D2395303C3C56B644F69C09BA3139C5E2ECE11C5AE727DA9791274AF8B3C3 + 64A712ABE17338C9C4F70D3D4757DF2FA0829ACF8AE2C2BD410E013F0397C329 + 0A4E9CEB059B5B4005B38110825C083EF25EDFAFFF518959AF86E5E55F387FB9 + 19CCC5EB3D61AD661F14320915683616A2B24C22C2F9DE05FD0B10F4450B9C59 + 6B299C070B23197FE5A082519D0AD6DFFEC677F56F0599194AA8CA8BB1848429 + BDE40768EABEC6EE923431C6E1800C0C1B2D9852AE8E091FB959058F771643A6 + 0974F7BF04535C716A236963D1D6A95173601B9128A1286BA4924DEB58DA98F5 + C891217347096CD29531E16E12FFC1B109DC6A7F3837C9FCAF20397144854315 + 5B91A15C88CC9DD7A864F90A2F8A729538B6F7DD662748C602B9F37AFE74D422 + C2C5348D941CAF55A19A8C840B315855758B4A64996F909FEE84C7350D960D61 + C6C7D1364D7FC829BCFF4A05A97118187901FD1DE3FC85365FA28646BD132E6F + 0005070DC0E6CD5015E6C58C390F9748D2D03F3C8E9B6DD1AB38E66627488E7E + A942D59E2D9090945DA36EA392B2FCEC28F8B31B9598251FA061B335263CEE76 + 2D48BED25462DFF66228E4527CF4C55D2AA1C75B38CD16027F3F2C49059192BA + 9A0AEC2A2B2212193ED174D2673CDCED9DCB96D6F64771E109059192DAEAFDD8 + 515A08B94C0A8EAC5A9A2D6396A4F0A48248C9113292BC651F807C1260FFE735 + F4778D49E129090449E6B25516C7948DD64919A49CD2DF96FF0126B669571175 + 682F0000000049454E44AE426082} + Name = 'PngImage1' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000032A4944415478DA + BD95CD4F134118877F5B0A22D84205341E30087E24021A45893131F1E2C178F1 + 2A26FE07C6C478319E8D9E8C8926EA49E217D1B328F142A24123070B2E6DB76C + 0B5DB6A585B614CA47BB1F6D7D772CDAD22DA0094C32997476F67966DE79F72D + 97CBE5B0958DDB1601C7719B7EE1D18B8F9768E8A17EB660FA2BF537D7AF5DEC + 2F5CCBD8FF22C8C3DF5FBED04D2F73882FAC40CF64114BA6E1F3F9797AC693E4 + EA7F090AE1FB9AEAD9DCD24A1ABA9E81AA6510239920C530CABB71F7E615EE9F + 0425705A6E80753D4B27C8A0AAD24A630EFE5002E25494242E26D994A01C5C55 + 7528AC6BC866B3A8B7D782B35830198A63C829E2D9BDDEFB4EE7F3DBEB0ACCE0 + AAA617C155EA29458546D2867A1B72D90CDEF67F41DFD37E3709DACB0ACCE00C + AA680CAC685A5EA4B13B38D97E00B14412BC57C2C0E0777C7A37545E50166E80 + F302E324EC37CD7775B4223EBF0861621AA35E19636322BE7D18361798C2159D + ED785550024F2C821F9F82673202419882382A221C0897DEC146F0D59014C213 + 0B4BF0D0CE9D8244F020FC3CC127C31819E92DCE2233785AF90B53F360632E43 + 1FD7098A79742E899F047691C0352621264F63C22D3178D177F0F8E540093C95 + 568BE29EA64C512834468A9EEA6CC34C7C1E6E5F082EA3BBA71097C310F9893F + F0B582D7C78EECEFE9EA6883B5C2C2629C5EB373259F9EDDC70F6226364FE020 + C6082E8E87200B0148A25C045F2B983C77FA684BE7E16696D3A9945A10EBBC48 + FB0D8FC617081CA44B0D421483181F19C7AC3C5B023715B43637D109AC58585C + C64A4A29806B043F84394AC561DE4FE560165E418668C083E6F01281A3CED6D2 + E4D8853D0D75D8595DC52ED2C89E2C8D5D14F34834C1B2E5873B00C123232147 + E017A4B2F0B582C14C8E3B5FBDA30A95560BF6EEB6A3916486A4C16187DD5603 + A77B025E2902371FC072740E9E51DFBAF0926A7AE7415FCE6677C052C1C1565D + 81C6FA5AAA2B39D45111CBD2627F7086761E424494E0F30436849B966B4362AD + AC84BDA69A5295C3F2D21295619D95E5C5E40ABC4E3F8B79FB99F68DD8ACBD7A + 728B332B153722B1F987E170181ADD81F1DCE8AECFDE4D410B1B950A6E7BFEF4 + B7B2FD02BC08E5EFAAF547E00000000049454E44AE426082} + Name = 'PngImage2' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000022C4944415478DA + 63FCFFFF3F032D0123CC82D53BCF13655398871123B18683CC46B120D4DD10AF + 06A01A86F6FED90CE7774E27CA12922CF80754B776D7050651415E86A2BA3EA2 + 2C21DA0290E17FFFFE63D8B0F712838DB12AC3CD7B2F88B284280BFEFDFBCFF0 + 0768F89FBF7F19B61EBC0A0E2218A08A0520D0B3EA2131410E06A5E10A704BB1 + 5AD0B2EA0186260E0646869230798286831CD2317B23C3DB3DF98C382D00F141 + 610E0E963FFF18FEFEFBC7306BEB4BA22D3051F8CD1052BD0D6C098605216E06 + D008FDCFF0FBCF5FB0E1A0C89DBBE335410B7EFDF9CF3069DD23866827617022 + 0059F266771E238A0541AEFA0CED6B1E91144440FBC186FF02FA76F69627E020 + 82010C0BFC1C7519DE7EF88661C8B203EFB15A806C388CDEB9FF2458AE6CC679 + 4C0B3C6DB5C061FF179A2C81084CAF3AFC096E4144CB159CC1D49EA60AB6E4E8 + F133D82D70B5D26098B2FD25C120C2E67264FAF4E9B3D82D70325763F8F8F907 + 8605EB8E7F815B40C87010BE78FE1C760BEC4C5418FEFD852451502A82E4E07F + 0CDBCEFE005B00323CBA0D7710954629327CFBF997E1F6B58BD82DB0355261B8 + FFF41D86C6A3B718180A43E419BEFFFA87D5C520F6CFDF08B187B72E61B760DE + 92B5E0B2071DB8FAA73164F8C912653888FDE2FE654C0B181971975BDD2B1FFC + 4FF292061B5030E5264E75715E32608BDE3DBE4ABA05316E52045DFE0B5CB430 + 307C7C4A8605614E1244190E026459106027CE70E8E869066201C916209731C4 + 02140B6805009C1383EFACA508270000000049454E44AE426082} + Name = 'PngImage3' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000E9C00000E9C01079453DD000004BF4944415478DA + B5D37B4C53571800F0737A5B6ECB4B2F2D2D2D2053408286870CD4C9C0B89989 + 8ACEB041F035064CEB365800D93235C0EA40FD836D380C085B44C7C30993111E + 93199411DE844029B80908586094577B81963EE8E3EE82D311662A35DB97DCE4 + 3CBE737EB9E77C07120401FECF802B010821A8ACACC7BAC453B54A95E6405AE2 + E111631B7C9E7E331102E87431313C76B1FFAFFD9E071492C0A3A109218D8AD4 + 68C68527040281E1799B9FCF2A738306439314971765244598060C3C9E1406FA + BA73EE36F6045E381DD6B672F39339393457C4BE748BFBFAE08AFBED572E9B04 + 94D7B20647645D7111FB7805E58D359DF2817DB97CBE76795E7246717450E096 + 5C7239E5C7AAA62B99C9260039F977B893B3AA9E84A8FD3603C313BA9FAA5B8F + 9C8F0B2D799A73F6AB627B77676E4750A0375BD43B0ACA6ADA7ECE4C8A085935 + 9097574B1F56C89A2342767A6356E6A0AAB6E3E1AF1DFD5B6E0822D5A1A1C588 + D71B66D7DF7B3BE0E862767BCF20A8691265647D1115BF6A6031522E9784B130 + EB9BEF066DA72C68B5C4F5D2BACF5262DF493F935E78684F804FE9C6F53CF8E7 + 040E6E57B7E04A9572DBB7C951FD26018BCDF8B4FCAC5DDB37F377F86C84AD5D + 0353F79A1FECD9ECC22B3EF8E6AB2EB25925B85327D4F70E8DC5640B22AF3E5D + 640A004EA7FCC046D7A06D216F6D73E230AD417E59BD243CF8353B081128FC43 + 0C6A9BBBEF4BF48CBD2582B085970296904B45611C1BEB225F4F67848A40E0FA + 0A178C4864A0F46EEB2C3E33BF332735BA6B79BEC9C062BD5B482D8A5998D5A1 + 0D8E6C60678B01D14331E81D94246509DE4F052BC26400B8FC821E0E5178D9D9 + 326A5BC516E6737225F0B09BEB1892500FB688E7A5A02E52FD72C08E026F3B1E + 2B92CBC676D3E9664E23A313A85EA7910368A6B1E3602C3A1D5DA0D210B14422 + BBFF6860FC3BD018DEB53AC03797C659E79062CF65C6418346AF981AD3E85438 + 9C56D3692C864A6EE1E0A3D62AA6AD0787261A210D250044BCD45A832DB93413 + A8E70544FB49AD5100DB5FF1D14667CE3732F103056A98EBA322C42D8D9ED239 + 348725AEB39CF56438FA2E5066FAB893B8C27D4C4A1D279770C9DF3E09CCE831 + 8002CF12F5C7B28C022E11BF89508DD489AA1ABE26421D12414998FEEF23BBEA + 6683EF46ED7D09BDACD756A61AE2492A05CAA539A73C3A60EB6F03338623D170 + C4D328E01E5DAF21A47D5A864EE92FACFAE49F12F42F28DA84C93CA9F67E2832 + 3FECA4C30739DD5567F067F3BEB9A90035FF9468388A1A053CF8CD7238FDFB3C + 55A7F2E92C8F1D7B329A42A1BCEE52ED8EC9AC11DE56E61A44EE3833DA13DC5D + 9E50B30CB848023124606514F03AD5D24F99E9B5D42B64FEDD5509834B837E37 + 98660CD8E7B616BF2745DD985C267D977E52745D88D49F0025254F8ED0EFFB22 + F21EFC48C0D52860B9B7347B2D9C896252E70E8B2AE24BC1CE142AD0B97ECD36 + 577DCC3197F3BB71762B8FC3CAD8C0D46D958FF59DEA2A4F2804DED99B009D71 + 0B204803D170EC43E3651A50E88F52F4D55C0B45E563B9F597900031185DF381 + BD85A262DA801F5FBAD8C0020F1EDBA61ACE8D40E50225145722C1804AE39355 + 7480A83FDAF8E287E69FCF275BE7C82EC7D152A1C650F5B529037EEE59D52C5D + 7AD166000C17C85610F94D904F2C0D341ECF79E143FBAFE32F16D672EF3D728C + 4A0000000049454E44AE426082} + Name = 'PngImage4' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A0000043D4944415478DA + B5956D6C535518C7FFB7B7ED36B66E5D47D67663731BECD5B18605D8504C084B + 74982DC16468D4F881AD0305E3870550D100EABE482246712A8AA00182BA9828 + 84252006D7264AA2631B461325DD5C9ABDC0686B6F5FB7DEDEE373EF6869C736 + B6189FE4A4A7E79EFBFFF5799EFFE9E11863F83F834BFCF211506AD6A7585DFE + A99E3611BD4B1553DE7FC0DC797B64FC9C13387B883149017C0064549A528F56 + 5A2A9E31AE2CD00EDF700AB62B034DAD22EC8B117E07482B3019F61516E7ED15 + 6F8DA6BB6F79D84D1F0E5A197B8BDB06F06D7A743F5C8827B4997A684A6A804C + 031C7F8D78ED97FA9B5BB130E4531E9B2A2D655D191AA9CAE570201C61CC15C0 + D94911D60EC642DC4915DA9BCA714C97024E6E87C46BA029AE86DA5C08C79F4E + A1F7CAB566AB08DB3DC280C19CA77FBBA42877BB776C940F08018444B0DB3E1C + EE6178AD1B88CAFDE58E02797526D8561BB1324A00519A191A532174E535181A + 1A176C3FF42595EB6360836595E1AB1C9DB660CC39A1EC0F46204E06B0AF4DC2 + BBB17D0A409E1C032AD6E7E3C7223D8C31803C54E999C8B1AC85F3A6CF6BBFFC + 4BB30C3995A2B2D696E6BC2F8602691E6F50D9E79F4298CAD2DE069C4ECC320E + 90E32450BF6605BE37A623231122A9782CAF5A0DF7B44618F869F0FC9A55D94F + BB275DAA6058549EFB66C45BACC085D9654C02C8F1058F268B09DF64A5429B08 + 11A97419463304B707E1E014A669215696093F9EDB097C399701EE01C8714A83 + D60773F1499A1A7C1264D6A0864A54F397A8E65DF3396C4E801C67B4D85F9683 + 4EB50ADC5CE25351B04972CB76865716B2F0BC8083D4DFAA545C2DCEC6BA9868 + 34011096ED18C4E1768657659D2501C8519A2C9DB6AB7A6DB955F8E3376EBE12 + C959F8C238B003E85C3480C497E5E51BCE6C78AA79EBDF17CE21484D5DA80FD3 + 049916B1872047EE0B20F1ACE212F3B71B5B1EDD343E781DA3D7FA93C4C88E1E + 8941CDABA04B5C8F48F289C58BCF2BE76F1E00D55C5DBF42FF5D43D3238F07C3 + 115CEFB90831CAE222816984DD213446818954158E136463ECD413546E428446 + FB2E72FA9C80AF759A37B734D4BC9E663070FDBD5721787C890D955C41B45119 + 3E57F6D29FA31BE8500187E8F1B2B8D80CE459827427014EF0D8FC585DD1C53C + 935E3DEC9CC4B06334A9C6247EC4CAB06776FA1F02D5F4EB8ED3743D77F75EA1 + DE63DB6EE07C1CD05791FB7B6D85B1CAE70FE1D7010722E2DDD2FC13823D1C45 + 039DD4C83C76D61A8197497D3F8DD43B990428BBADF4CE6505602FCAEE7EA826 + BFA56FD0018F371417F747E017A650FB027003F70932482D099FA0A9E5CE9240 + A37127633F739FF16859579ADD3D36E1492A0DB176B72BB7E0E2E23D20450B1C + A0E95ECA86A7526DDEC5582F27A759A6852D330575316708615C1A91B0E50D32 + C9620109BDA9A78F27A9D91D7117D19D6A58AEC6E9340D1AC9350295A796360C + 2D557C76241D34D97E5E4A8F9270ED506EC4FF1E32E05FC9675CEF0AFC725300 + 00000049454E44AE426082} + Name = 'PngImage5' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000027F4944415478DA + 63FCFFFF3F032D0123CC02464646AC0A66243060B820630103230391006EC1C9 + 898CEE406A07B2E4890B40C33AA6A268B8B8229761E9E67F0CD1BE4C1886FD67 + F8E76151C0B0139705FF154C1A18045444212EAFC8061BFEE5C54D86A6E24970 + 0D75BD790C770F4C015BD2B16802C3FFBFBF19FE01F1D7A7BF1836CC69C0F01D + 8A05061153510C7F7D7527032EF0ECF216B025AD73DAC016DCD8D2C870FEC23F + E22C787C6C21C3D64DA70886AFB79F1983988E07D8825B3B3B89B70066092100 + 331C84EFECE923CD027430F9A037410B61A0345C016E095116FCFFFF8F61CA21 + 5F869230798286F7AC7AC8D0317B23C3DB3DF98C445900321C9452A61E0D22DA + 021385DF0C21D5DBC096E0B50066F8BF3FBF18A69F8C2068C1AF3FFF1926AD7B + C410ED24CC70F3DE0BB025382D00451C03D00290E120F6CC33B1382DF8FB0F62 + F8AF3FFF18666F79020E22BC71003210968160ECD91752B05A806C388CDEB9FF + 2458AE6CC6794C0BB0190EF2C5DC2B59700B225AAEE00CA6F63455B025478F9F + C1B4402F740256C341F4BCEBF9283EC0E67264FAF4E9B39816E8067563351CC4 + 5F70AB046E0121C341F8E2F973981668FBB761351C8417DDAD045B00323CBA0D + 7710954629327CFBF997E1F6B58B981668FA346235FCFFBF3F0C8BEFD7321486 + C8337CFFF50FAB8B41EC9FBF11620F6F5DC2B440C3B306ABE120FE92474D0C19 + 7EB244190E62BFB87F19D302559712B8E1E8F4F2E75D0C495ED260030AA6DCC4 + 1944715E32608BDE3DBE8A6981B45E00C3B34B9BB06A3C24798F21C64D8AA0CB + 416C503C7D7C8A6901B8CABC7001BBCB3E7B3E6008739220CA7010C0B00057A5 + 0F03DD2B1FFC0FB013673874F43403B180640B90CB18620100261ED9D6E5FCF2 + FA0000000049454E44AE426082} + Name = 'PngImage6' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000037C4944415478DA + B595DF4F5B6518C73F2DFD4191B66C6C4E8512618376DD28B485B1C126D90F36 + 8D1B1726264B76B53BAF3431DE99F80F18BDD1449399254B644E1747743ADD94 + 48169C428131268366832D631BC838FC687B0A057AEA7B0EB692B562417D9393 + 9C93F33EDFCFFB7D9EE73C47974824F83F976E25A0E59BCE75D1DEFBF00CD72F + 7FA4CB0A70E268DD9AC4450C454F17F2E63BEF6784FC2780EAEDCFF3580A6784 + FC2B403CAE70EEBB007BFD4E22D15846C8BA01AA783C9EE0FC956E0EECDEC1C2 + E2524648D680E1FB9374760E119A95B1D99FA2AECEC5739BED5C68EBD58AFCE4 + CA1A1096635CBC14D084B7941761CECB25321D66EAFE440A343032811C959124 + 498B39DDF275760055BCE5B3761C9E321CDB1D42DC844EA7435114E6E57946FB + 4778187C44D3613F66B3414BDBC5B6AEEC0167CF77905FBC096F4D3936430EF7 + C2301E5D7E67B5409E3EC648D720F353111A1ADC28A226DFB607B203A839FFE1 + 4A0FF5C71B291169B1EBE14E086E882C0813E488E70D3630CA53F48B4EF2EE72 + 512852F6FDD5EEEC00EAE973375AA93C50C55C04CC0A8C89D3CB4B5060165D24 + C242E2DE4A98B1BE2114D1413E7F053FFEDC9B1DE0E34F2E535A5341597529C3 + 63301703530E3C9B07361308034C2E08A09009DD1A606CE801FB1AABF8E9D7BE + 7F06A8C5FAFCC235AC22FFAE3D2E46C661711136E5C266711905A8C0080BC255 + 707A9E4737832CCE84D95959C6D540FFEA80E32FD56A1FD0E8F8B45683FD279B + 90643D2191A62DA2B076215C201C6C109738070392CC2F5F75E0F26CC5969FCB + B59EDF5607BC7AB84673B0245A51EDFF925D4E0A859389591D46B1F519E1C022 + F2633588B489E79B771E70B73B48B5AF428B09DC185C1DF0CA419FB651854833 + B2E6C2DFBC1BEB461BB373A20E8A0EBB69B9931E4F4DD37BA90B5FA59D2F4F9F + E575DF755AF3DE5E1DD0BCBFFACF39B3EC22223EB6E488F01CF163C9B7109989 + 30D0D6A7C544676EE1609CA6E2DB58BC47986CFF9463AD957F0F78F9054F4A3C + 098A2B097E17436C38389A9A455B9D0E0C7A3D5F7CF02E45917BD497C6707B8C + E4541DD320C5AF756406BCD8B0334D3C39399F0427EF4FBD518FD751AB419C6E + 03267F730A920638B4C7BD26F1E4BE336FED4B41563A490334D63AB52075AEA8 + 814BF1BF84944422A37872AD846C739B18948CE980BDBE726D22AE77F59C3A99 + 829C934AD201997E1E6B5D55D1560A771C659BC7CB1F1C73BA92B5793DE80000 + 000049454E44AE426082} + Name = 'PngImage7' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000B3A00000B3A01647F570D000002724944415478DA + 63FCFFFF3F032D01235D2C606464C42AB978D3F10C0E76EEE9E4181CEAAE0731 + 1B9F05AB775E3A1DE2A66B822E0EF2F3BF7FFF19FEFEFB8742FF03D217AE3F67 + E89DB19261F3BC2AFC16C05C0FB480E1E0E97B0CAFDF7FC5E95A51416E067D0D + 49B02513E6AC66D0D3353A03F481295E0B40AEB73751341115E2818BFDFB0F72 + 2DC4A5A82E87E0CBB75E3014D6F6309CDF391D6C204E0B905D4FACE120B9C9F3 + D6C05D8FD70264D713133C5A2AE20CD7EEBC44713D4E0BD05D4F8CCB4172A965 + 5318FC3C6C18EEDDBDCEC0C6C6CEA0A363C400348311C30264D7136BF88D7BAF + C129C7232C99C152959B61FDFA350C17AE3D63D834B712AB05FF41AE07197EF8 + CC7D82C1A3A620C2905E3115C570297975866DDBF7A35A50DBB3E03F30821880 + AE671012E0C69AC681086BFACFAE9ECED0589D07371C04502C689EB8E4FFEF3F + 7FC9C9B070C0CCCCC2202EA30C371C04E016D4F52EFCDF541C4FD0901FBFFE31 + 7CFFFD1F4CFFF8FD8FE1CF5F18FB3FC3E68D88A0F1F27444F5013116A01B0EA6 + A18683F0FE9DEBC0110B321C2388401650143EB060E2E063E0E6E165E0E1E621 + DE07845CFE1D2A7EE1C82686EF7F9818787878C0961C3A749AB005840C5FF4D5 + 8E61C1850B0C4BB5DE30DC38B585E10D304973F3F2822D397BEE067E0B8871B9 + F76901B0DAB9AAAF181E9CDFC670FFD173065E5E3EB025376F3DC16D01B1C1E2 + 9D21C43083D59481B5790BC38B2BDB192E5EB9C1C0C7C7CFF0F1CB7FD4FA0066 + 0138D9C10C40321C268E6C3848FC75B127D841300B4E9FBBC8C0CA210A361C24 + 8E62415D411CC3EC95BBC94E41CF9F3F07275398E12816C08A0A4A92A8B28621 + 43828F3E4AB90FB7809600004F6ECDEFF6DCFB3B0000000049454E44AE426082} + Name = 'PngImage8' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000B3A00000B3A01647F570D000002954944415478DA + B5955F6852511CC7BF3E9882694B723D6450D4A21ED61FB3879EEA295CABA058 + D1CB6A23A315C2A441AC4123368A82FE5011066D63D1ECAF6058291643AC8D60 + 966EB5FE3E64D4966B7B1841B1997A4FF75CF14E773DFE1978E070EE3D1E3F9F + EF399C9FCA082190C964284523F73A88AC54020A8F9E3323A7E0B6EB558352A1 + B2150BAF991C00852B0779742EC143EFDB40CDB64AA3241DDF398EC066F74ABE + 6399372AC2E93B53904ACF0BE00F7CC5C4E45FC99AB15FA3B054AD07ECE781C6 + CB4084876FD743D1DC01D97E736E014DBFC5B8DCA8D3CE17E7387E6D824FCE71 + 9CB083CE07BD387CA94AF84CE1FC88E8EE3550D45961F04411F2DAD882F4F42C + 78821FBB1D3E58E2EF10BD7A425CA7708FC0507F26B7203D3DEB78C423DABA12 + 38DD8868D02D1C0DF6D4C2B0D3CA16CC4E9F2D3927BC13F43CF2C3526B02EE5E + 037E8401F34940AB83C1740C2DC78F0AB74922484F9F0B4EFB1DD70B74D95D59 + 7717ACDF88AC75C00B084D4FE12F5F8799C7439B6EA10AAB962DC291E6EB30ED + 3B84CD152A389D0EB4E9E3D23A3875A19BACAD34804F0F6D994A4C3B939A8EC8 + 987378FA9975B0D770168FBB5A9282F62B3D24164FA0D8565EBE985907BB9E8D + CF085A2FDE226D4D07F302A7FF71988A11619C8E7178EAF531EB40BF64697182 + D9703AF6FAFCCC3A90088A3E9FD41131EAA0E01D644B9E7C267833D0C7AC8382 + 04B9E0B4BF0FF533EB20AF201F7C8A7FAE0E94096B3B2BC6F12DE446F87B046A + B5062AB51A9FBF8CB00585C0E97C75831637E49B206F7F82B1610F86863F41A3 + 5980DF7F8800A7AC0C413C91064883A7E6D3E1747EA2297945538240700872A5 + 4E8467085AAD0770F3FEF3B95C26A14522110C7EF899011705A99F8A39D3F9B6 + 62F506D4ED5827F9E71204A56CFF01E5E2820611E3A8010000000049454E44AE + 426082} + Name = 'PngImage9' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000029E4944415478DA + 63FCFFFF3F032D0123B2054BB79C24CBB6DE290B19CEEF9CCE882C063317C382 + 681F73920C07EA619016136628AAEB43B184AA1618682A30BC7EFB19C512AA58 + F0F7EF3F8615DB4F33D818AB337CF9F613C5128A2D0019FEF7EF7F86D5BBCE30 + 38596833FCFAFD07C592733BA6319265C1FF7FFF19FE02F11FA00520F6BABDE7 + C0918C0E48B2E0D687070C53AF4E62B8F0F6020348B59BB41F43A1661603EF12 + 0E8637E15F188E9C7FC0F0F5DB5786B76FDF82D5CF5BBA89780BE6DC58C0B0FD + D9620C4B4F3FBFCFF0E4EB038697219FC0C1F5E7DF3F30BD79EF29E22D38FDEA + 0283F906230CC303551CC1F4FA3BFB199E057E801BFE0F18275B0F9C26DE0287 + CD4E0C879E1F6028D56B606834AC021B62BEC582415D44106EC123FF7770C341 + 71B3E3D019E22C38F5F20283FB7627860D6EFB18CC8575A0A9E61F83D5762B14 + 0BEEFBBC811B0E8AF83D47CF116741FED12206676064BA49DAC00D1758CE8511 + 5C773D5FC30D07A9D97FE202610B400A6BCEB430D4E95532FC03CA234722321B + E6F2B92FA631C408A581C50E9DBE84DF82084F5370068219C4BF9413C3D5F7BC + DFC033DAD467ED60B164E112B0FA6367AFE0B720D4CD04C595422BB8E1A9E6E6 + 9BF70C5BACF7C00D7FCEFE942160971343B16E1D83277B3058CFE98BD7F15B10 + E46C84121CA2AB79512CD868B10B6CF8DC97D319BA2F3530D8493A30F42A2E84 + EB3977E5267E0BFC1C0D50C25A722D3FDC0274004A454DC67D0CAEAC81703D17 + AFDFC66F81B79D1E4A10C96C106490E15600E75A74806E3828C2AFDCBC83DF02 + 0F6B1D942092DF2CCC70DBE315C3F2D74B18763DDDC400D265206CC020CA2187 + 61380810B4C0C5520B45132C4271255564C389B2C0DE541D258DC33210580C4B + 9E40369C280B6C8C54C125222500AF05D82A0F7200CC0200F191E9EFB5062090 + 0000000049454E44AE426082} + Name = 'PngImage10' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300004E2000004E2001167D99DE0000035A4944415478DA + ED954D4C134114C7DFEC6E0B420B085A6A040DD88A45C0C4602D4A2D281F5589 + F1AB6AA2094A4C5502DC34F160EAD11BF1E4498D462F1A43FC408BA052C11435 + F8890AA222A2601B6B2D94B26DB73BEEB4168B16E1E2C1C4974C7627F37BFFFF + CB9B995D843186BF19E8BFC1940653012693897AF9CEAEA5696825732FE72B6B + 3877F2B6F01A982A77435595F48F0646A351E4E3E3342CE7BDFBD1F6F1E7024D + 957CE6BCED6FCC66EF6485D71D3DDE617FDFAD9ECC00E96B6BC5727FAC9A65DD + 41718EF795A6CBE6F9699A6925738F67ACE091A5A5235AB2C1502DA1E3F108E1 + A219A0CA4A530C15CFE68F7986DB0814F0072AAC2DD71BC9A276FDA69D98E7CE + 7198DFDC616E6C8866A0D6EB13C448E48AB6078278A5209E22888F05C531E075 + F76E5CBB11660B4AD716D30C732BC0F37A6B5363535403B56090F2BB01D209E2 + 4AA96C99DB1D6A0BE251455BD395C6C8E4253A5D929491248F70CCD7A796CBDF + A219E495EE8A4F605CEE09060683412C92CED6F03CB64C26FE830F9F6B4A187C + D41D144EDECAFBF7D50889AC41039D4EC7C83354050850B0721FEB392441D892 + 1827C62C93E892393F7F3863B1F822049142A110CB6473553C254AA431041806 + 80E3001266A7D8ED036FFA3A3333F94237CB1103B4AD72DF0A0A51EDD18AE91F + EA3F2191CCBADA7CE9ECCD88EA614B556DC9E0A7B71BE7CF997FE0579E773B2E + 386C0EAB5CA962D1DE9A835AD273B25873B41E66C602385900DB28C0C008C0F3 + 0127F49C3282D3ED2F7FD16626170C6FDB53534CE140F39FF8A10FB6D573E6A5 + DE463B761FC061F17C39C0A03B34C209244892F9702924C5607DD6E2A501719C + A4793A7C863203D05C450ED6166AE1C8B17A9821F4718C9B5811097A580CC7AA + F38070E1980E1FDC2C7966567ED1AAD50F4945E1707943C3EE9998402A229196 + 9A06D3E159AF6719D2EB6B63B20A942D19E5C6C2746908F0064209E449E0272E + 1BBC3D5F37D865BD6BCCC9CDE5E4694AB3667F3D4CC5B73E7EB020784CD76EDC + BE70C4EBE9D96ABA0831B470DC9CE2F1EA084CFAF9CDE95C33EAF8D49E9D9D0D + 0AC5224D5C72AA85984CC6B37E9FCAD1FFBA7BFCA269CACA14CB57569CEEEC68 + 2EECEBED1B4F50E6A8067BBA7B770F753F89FC4453E5DB77AE1A1D1EBE13C986 + F9AE675D455FDEBDEA0DEEC1BFFF47FBE70DBE03EC16D6DE8FAAF1BC00000000 + 49454E44AE426082} + Name = 'PngImage11' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000003784944415478DA + B5566B48544114FE362D31A3C78F104C7B50145A902FECE15299D12668ADBA61 + AE925AA405811585F4A31745FD308A0A42DB5EBBE96E56AE9AAF30CD2CC5C79A + BB998FCCEDA5640F15823233DC7B9BB9EBBDEEB65BAD5207863967E6CCF7CD39 + 6766EE15B12C8BFF29224AA0CCAF89237DD63F051689E21323C5D91CC1F5BC6A + 96186302A0EB68EC0CC3C2C430309918B34E7A2AF2DD2751A23A21B22210F965 + 9A17EB5304DD9ECD34256382FF25C11EA84D82DB8A6B9CDEFF301E771FE8A0D4 + 94E0E1ED745B020A36F69DD39EC5F4552A7CAA88437155A37D02478421FE96E0 + E6366293C610FD5E75D3F822A0E096B9363116E0C4765FA74677690CCA6B0D63 + 23287EDC850B375BF0A4AD177D9FBF63DA94499086CCC1B15D0198E2EA2C44E1 + 21D1E04DF16654D6373B4E702CF3098E663422FFAC049215B35050F5165BD22A + B8B9D0200FA84FAE11A2F00ACBC1CB42191EE99E395E03D76597F1FD8709BB36 + FB207DEF320E689A58C9CD393B89D0551243C6F81A985357D3D4EA5804F47424 + 1DA982BAD488C329FE48952FC6FDDA77901D28177C68CE79F0F91177D09E2B45 + DDD3F6BF13F005A5EDC730C3919C57B7C063E6645434F40804AF8B64233B67B1 + 28528B67B736A2B1A5E3F704F412D1313EDCEE8F0388492B87FE793FC2C45E50 + 1C0A86A7E4A64060BC1B2D6CC447560083261CFAF64E5B82046930B7800233FC + 1927FADAE462E85A7BB9B9B6DC284C759B08CF0D390241475EA4E0CBF7CD1D46 + FB04F4FA0F356CB75AE0BE2E1B43A4C854CA2E4AA02A3222ABE4A54060D044C0 + 89149BFAFAC616A1E146185A3B5FD912C46F5C8989810A7C23EF8AC9E22229B4 + 1D38AED07360625F77246E5A0065A111F7EB7AE03C4184D80DF3B047EE8D3A6F + 4F81D4455B694B200F5F0E97A02BF85293387A4B99D14233BF1C45ABB490A65B + 321B29CA73C84C48B54F10131664B573BB4056F3E6776778C447BF74EE9F09A2 + D707622AB9407D95F1E6428F000D5B00FFFA06D5FB8CA685CA8E3307A1D877CA + 6A4C2090860660C66A1537D853160B8FF51AC1E9457E14164AB582AD5787C34F + 5E840CC34E6ED7ECE057B0FD1FC0F4BD0778BDD380EB060B8288103F3B69F8F3 + EB49D36229DBB78A7145556D3F024A5058A973E89B604F86A242B02D7C01AE92 + 636C5303FAD1CFD196667D1B1C1A3741EC9DD348F40597168D6C3F92E2A4A31F + 7DF207306E605E3200E1FF6727C90CAFFF0482645308AD8246DC000000004945 + 4E44AE426082} + Name = 'PngImage12' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000E9C00000E9C01079453DD000003DC4944415478DA + BD947F4C1B6518C79F7BEF8EFBD56BAFC7951F33BA75E9822B88520C88D92C93 + 05C410CA70986D3261B1DB3F261B24D3F92331F2A799C6B0F96B666668165D88 + 12E7FE598CC14C639C43D0988D41B69974DD5A680B584A5B68EFFA7AAD81306C + 8D0BE2935CEE9E7B9FE7FB79DEF779DF97C018C35A1AF1BF020882C81978E004 + A6EB6BA106236D0B42E4BD080045E3AA8A35ECA3587A607709717531F60ECD7F + 0378FFDBF806A9807E2734956898F027A94844054D03C86310701C02AB950B47 + E3DA075D4EEEA5BB069CB898DCC671D03F3E1655BCDE0548A520F3A4D332DFFA + 9BA208D8B2D5047351B5EB48BDD09B13F0E27B41E7A580E5870B3D849AF64F5F + 49BA522AEE1B198E48B11806DE40416C4EBDA380A9192D03E278048D0DE61BDE + 49B2FAE5ED309515B0AFD7838D14FFEE3C6DE9AEAD559B6211AD7F642842A91A + B1243E3D1D85D999202416E2C08B0A30BC5907109999382A045C5E2674B6DAE0 + 93AC8096377EC7452C8F79237DB6AC5CAC1BBA14165329B4243EE10B82DF3B06 + 34237E93C2DA607C36F4B849595F67B26C22B03E0B399F82E626F9B3A76CB027 + 27A0D0600235F9D7325034B5241E0C84E1E6F591A02E7870F058D599F4F87AE7 + 295654882F8B37D434D08CA4C7226869967F7CA6143D9A1320911C305C5EC65F + 140F8713E0B9368C3535F5E4D069D7F9E53DB0EF38D526291BFB8DCAFD603090 + B0C3257DB7A79474660534BF12C0884A81C9844056988C7824A24168D283FDDE + AB472F7FD17164E52EB3B77D7C1FCF291EB9F8613D8F84D656F3B95D25A83927 + E076488375051498440C825E5178568399D0ED9F3DD7475CE35FB97D2B01B627 + 3EB218154B405E570D160B05AD2D52DF4E1BDA97133039A3427AD714EA0D33EA + 907455A169350E40BA075EB37CBA12B0A9ADEF1E91C9BF251557C1462B03CEAD + E25BED65E8705640E5013F9E5767F553A4014AA9A07700B4E43CA49271482EC4 + E7584172FD76A66E7039A0F2D9F35588CCFB49904BC1F1100F763B77F0390779 + 3C2BA0F11830E274805EF4037F3BD731F5428F757EF91FC7DEAFBB04B3ED6D82 + 12A0A9D1A4996554ED76D0C35901FF74D965B347BA6F725AD8F73D27592BD3B9 + 9DED66DF956B0B9547DB8489FF0450D171712F6750FA106D440F3EC0E9CBC39C + 7CBE266FFF5DDFA6D9CCDE71B98867F02F2C5F50C43024EC6C312646C763F6E3 + 9DD28D5503CADB7F1568160D7086C27A8AD42FB97A51CDB75087DD0EAA373DBE + 6A40C5FEB10F395674CB324B6C731A4010D09B7E0FF56ACFD34462D580C70E85 + 369BCC7874730987CB4AD9D1C980FAFA0BDBD9CF97C7AC0AE03C3423EDDA2D9C + 5414FADCAD089CEDAE20FE58199313B016B6E6803F0192C0D6E065D4DD9D0000 + 000049454E44AE426082} + Name = 'PngImage13' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A0000053A4944415478DA + AD956B50546518C79F73CE2ECB5ED9B3ECB22C48800A02CA45101BBCA005D9D4 + 4C17758C6FD57899FAE0D4871AB3CC6B5FD2748CA91877600AB3A949CA4427E3 + A65C1409729565B92CEEB2807B935DD80BECB2B773F6F4420A5841493D33E7D3 + 7BDEDFEF39FFF799F760F058C5601F2BAB443E079B0C077DF250304086432117 + CDC6AD3EA77FACAC6CAF77EAA5B93BB07F8B3EFD55A37872CC95C7E5725E6671 + 584F4570D871188E7182815068D2E3354E38DC17273C8E2B9DC33A4D735599E7 + B10495E76FC63B6CCED7F8A4708F58267A429620C5C4B1628C601310F006C06E + 1A656CF7ECA151B3ADDB366256EA07BB2EFEF4CD19FBF427FF13FCA4F29214A3 + 88BD9218F2CDB4DCA531B1F1122C40B0C11B02A0C37F74C822502A011F63EA37 + 33BACEBB8377BBD5A75B9B7EF956A3B9E15C50B063C77922AF20622B29979CC8 + 29484D4C7F428647E038DCF703BC70E826681A34F0F9B15720398F0452C0000F + 0FC1B0C640AB9A3ABA55ED8DEFFD5C5D797541C1A7E5D5F2E024766C59CEB29D + F96B5388380E0BC351CFEE2040E187B3024516096C1680044958FE71467D4D1D + AAABAE52B65D6F38BAA0E0E8890B05B21871E5AAC28C94D8043926A601F80480 + 651260DB47B382F47C12BC14008ED6A2793458D4FDE196CBB53D576BBE7B635E + C1543C2B32A8ED4B33932A5617670929161F761EB9396F330F6519EB49A06C56 + 4655D3EA3A5B7162DF0282C3112969A9AFA7E7A794E61467478E072360FD66E5 + CC7A6671E634746E4D0956AD2301BC4EE8ACFDD5AF2C3DF2C9BC824D9B0EB30A + 3624EF589EBDBC3CB7389B1F2004A06A76CEAC2B5BFA66BA9E5B1B3693601DB6 + 30B7EB5B3D155F1C2B5DF00C0E1CAE2C8C8E8B399BFB744EA2302E16333B3020 + D08E680EC09EE3B367B0BD98041A4D2A9A5AF08469E8EAE8635A2E5D19BCF07D + D9A90505EF1CA84814F1F92757ADCFDC96929F8A8F4DA2F9F7014421C1C62DCA + 9958B622C154518866754E80A6454D55559EA96F69AA3E3EAF40B57FCB726D50 + C0D2466DD9268D4F7C376B6396589A28C7EC1E0218344D7DEDB371BD84040CC6 + 80C31F64746A1DEABECE5873F9EBB33A9DFAB3BF15B41F78A690C7659A3D9152 + D044AE8500AE08B1F83266C593692C91428A071836BA0470E0A2B1E4A10747E1 + 38C6BD8C65C014EEBCFE9BA3B1EEC7DAB6EB57CA298A6AFB8BA0637FF18B3C11 + 5D91B03A534684ECA0712583C61D0316271EE408E4DEA495295162B904E39242 + 60B1D998DFE367D04507F6210BD577476DBD73BBF9467B5BED799FC7D38470EE + 47041D1F146D1788C22715B9EB92843C0A5CDA4EE8B708A163221E8C7E4269F3 + B0FB2339FC2269AC224D1EAF904444B2591E97276C1A1A720E1B740383035DB7 + 7A7B54F5341DB88D702E987BD94D752E10D3A58ABC8D4922AE7F1A6E30B2C130 + 26048DD50A23E38EE7CBEB354D19196B93A3158A748C2696D1B43F0AC5002EF7 + 98C334ACEFF47ADD030835821EDF432EF630733E9FFA217ECD3A998817828981 + 2ED0E93130B824A0350D41B7590F6E7FF0B9BA2E67CD833DE8E6017410403CE0 + 4C4D68706A90E0CF3F1CD5C1E2A24801D1B0243707F85C149AF60E188609E877 + 4483D6A8875E8BDEE5F4516F35F6B8CEC1220AEB39FE2CB3247B25F0055C14CB + 2D1834B2C0E010836678007AAD7ABBCB1B3C78AD775CB918F8B4A0FE5409B366 + 752A50860E1832A1CC4705A0351B416DEC7721F8FBD7FAC6CF2C163E2D38B4EF + 6D2647781F12682F82F3A0CF6C821EF3008C7A03AF2E36964704BB77EF629688 + F9407A6CE01CB987E006704FFA76D575BBBFFCAFF06941494949915020688811 + F1E15E4F2BD82CFA5D63DDEE732A80D0FF21F81D69327688E78891A000000000 + 49454E44AE426082} + Name = 'PngImage14' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A000005234944415478DA + AD956B4C53671880DF7329BD9CB6B4A5174A454005112F205E16DCD46C3097ED + C7B2690CFFB665BAE80FB3FDD8E2DC8C739AFD984EE3C8326203D9702E5B069B + 139D8E9B82283299454AB9147B81DA9BB4D00BB4F476DAB3AF80896E02D3ED24 + 5F4E4ECEF99EE7FDDEEF7DBF83C1135D0CF6B9BA4E18F2B0C4896848118B46C4 + 8958CC1767E1CE90373C5E59B92F98FCE8E119D8BF459FFAB6553435EE5BC7E5 + B25F23D9E4F3296C56068663EC6824169B0A04AD931EFFF9C980E7728FC5A0BB + 5657197822414DED4D95C7E57D93120BDE11C9848B6599524C942EC208160191 + 6004DCB631C675CF1D1BB3BBFA5CA376B571B8F7FCAFDF9F764F2F7921F809F5 + 05294613FB2472F1DEFCE225F27495048B102C08C600E2899908490265251262 + 6C4376C6D07377F86E9FF65447DBEF3FE87437BCF30A76EEAC25D695A4BC2E56 + 488E1795E465AD582CC353701CEE870106BD00D1F84C0E481C40CC678087C7C0 + A233C7356D5D7D9A5BAD1F5EAAAFB932AFE0CBAA7A45740A3BBAB468E9DB1B36 + E612196C12C311D11F05E81E07F044101F9B192C12408224647882D15ED5C69A + EAEBD49DD75B8ECC2B3872FC5C894C2EAA59B5A520373D53818950C41401E098 + 0218F2CD940B8F35B38A200D80A37769BC3838B44389F68B8DFD571A7EDC33A7 + 20999EE505F48E25ABB3ABD796AD11D024056EEFC2BBC6E502D02E27A369E8F0 + 9DA93EBE7F1EC1E194DCFCBCB7566CC8AD282A2BE44C445360EF6737E704EB5A + 7470E9B73D4071D043D00B3D8D7F84D5159F7E31A760EBD6C364C973393B9715 + 2EAB2A2E2BA422041F4AB6AAE78D3E295009019C1607D3DDDC11A8FEFA68C5BC + 0B3E78B8664B5A86FC4CF10B4559828C74ECBE77E1B6C9498D436FD720D37EE1 + F2F0B99F2A4FCE3BE3FD83D559428A3AB1EAD9D5DB7337E4E1E353A8FE4300A9 + 6C00394A059B98ED83590A8DEE4EEF24E8DAB5745DCDE9E6F6B6FA63730A3407 + B62DD347F9A43E75DB76A92AEB83359BD788A4590ACC1D208041D5244896650A + 2A4FD4033896DC7C063CE12863D01A50F44DD6868BDF9D3118B45F3D5670EBE0 + 8B5B785CE65A8023051D67234470658CA464CCF267F249A1528A4718549B0C0E + 5CB4021E1A3824C03311641C265BA2E7FA9F9ED6A65F1A3BAF5FAEA269BAF31F + 82AE0365AFF284F1EACCB5AB6544CC0D3A5F0EE8FC727078F1289BAF0866AFCC + 4D15292418572C0092C5C2C28130830E3A708F38E8C13B5AE79DEE6B376E7536 + D68602813684F33F22E8FAB874075F9838A12CDE942DE0D1E0D3F7C09043005D + 932AB08609B52BC01AE2B0A95269BA325FA1524A52382C32E00B246C23235E8B + D9601A36F5DE1EE8D734C7E3916E8443ADF850DB2423E78BE215CA759BB385DC + F034DC6C6581795C003AA71346273CAF5435EBDA0A0A36E6A429952BB038B134 + 1E0FA7A23480CF3FEEB1598C3DC1A0DF8450A368841E70B10739A728FA67D5FA + 4D32212F0693A65E30183130FB24A0B78D409FDD08FE70F4E5A65E6FC3EC1CB4 + C5903C2488590E3A57219A2C24F8FB0F4773A8AC94C3275A1615170185DADCAF + BF03660B01439E34D05B8D30E030FABC21FADDD67EDFD9059BE03117D67FEC25 + 6651E14AA0F85C9496DB306C25C1EC1181CE628201A7D1ED0B460F5D1D98503F + 0D7C5AD07CB29C59BF360F6873178CD850CEC7F8A0B75B416B1DF221F8475707 + 274E3F2D7C5AF0C9FEF79822C17DC88C07119C0783761BF4DB4D30168CBCF1B4 + 697944B07BF72E6691880271C005DED17B086E06FF546857539FFF9BFF0A9F16 + 949797970AF8FC16B990827BFD1DE07218778DF7F9CF6A0062FF87E02F9F6855 + 88E7298D620000000049454E44AE426082} + Name = 'PngImage0' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A000005A34944415478DA + 8D960B50546514C7CFBDFB625958DC455049C8074A3C44B490C67C8C5A098A8E + 8E61A0E68C363A4C884C5A3E7240D1F1C13496A58E634FCD0AABC9416DB29C18 + D9626C542052234904158170A10576F7DEBBDF7D75BEBB0B3E82F49BF9CF7767 + F7DCFFEF7CCF731918B8E950C1283B6AB8D96C8C62F5AC4994149EF0A4197F6B + 4575A13894D29F81AAAAC00C601EA6D3416A5090F9F9509B65AA2D3C74C490E8 + C121C19620D6E316E4F616678FCBD973C3E5723B445E2CC7F81A94F7710034EB + B17ABD7E516C42744E424AECA8F8F1234D23C63CC10C8D8900539001BC5E1E5A + 6EFD0DF57537D53F6A1BF9FADAC66B6D8D1DC7144529C3776F51DF8100D43CCD + 1E11B626754A52C69CACA9831252464358B815581DA305CB8A028AAA804F26E0 + 1638686DBBAB5EB9F417549EAA71D6573595096E72103DAEF442EE07B0A8F1B6 + 48EB96CC97A6A72F58362B3866F43046A763FBD2A1C6C5F90ED8F8EEB3C0893C + 78509C28809BF74243FD6DF5E7D2AA9ECB3F5DFF9678C91E0C6FF0FBDF034418 + 0CBA4DF397CE5CBD7CCD7C4B544C24A36391C930BDB940D19A735AE0EB7B9F06 + 0FE1347935103EFB38B8D3D0AE3A3EAD72D59737BD8361FB513DBD0093C1C02E + 9B38257157DE9625914F258F445F06588645E1D46048515E399C2E3D08F372F2 + 20B7244933778B5EF05210422888230234D5DC81F3876B9B3AEA5DEBD1F73402 + 240A181E3ED476287BD5EC3959AFA6B366B34903E8581DF66C9F396D14B0724F + 3CB87D1E70138F96B936020471124E57B7176A8F5F93AE7F7FFB33C9236D4440 + 07CE33A4C7A5C41ECDDF9A13999C1AA7654DB3A7806DF9157DE6BD80FE5AD4AA + 0EE071148244A0F9421B5C3DD2D0E469E65620C0C1982C86E21973D336BF5698 + 6D1844774C20FB9D05950F98D31D24490A88921C90FF39B7E02DB0AF6C418080 + 001F74B5F640DD478DA2EBF79E4259944B98109BE5544E6E46E6E2D5E98CDEA0 + 031617F7ED75171ECB9C2A7F7D21985FB901BCE407705E011A4BEFA8CE739D47 + 245E59C9D822C2AAF28AB3274E9FFB0C43E77EDF869AC736F71109DED85C0CCC + 92BAC0088876465ACF38D5B613CE5F658FFC1C631F32A8A660D7D209A93393B4 + 1D7968F3953E407FA6D243CF9B0A77009F558D009F66EE9345E83CD705EDDF74 + D6CA6E790263B5592A96AD9B37EDC5ECC98C04321045842FB7DE8413C7DE7FA4 + 39ED0B8B77C13F0BCE6BD3A3017C22749C76A9DD673DD58AA0A432C1A1410766 + 2C9A949BB576B60E8218201844213FEC76C1E71FEEFD5F73AAED3B4BA0655E05 + F81040307BA18B40676997CAFF269C54457521C31AD8E58993461F78796346A8 + 2DC61A18A61F72699F0A1FECDFDD6758F06651BFDBB431E34704F8DFE11A04E8 + FECACD49B7E5125556B7D383161F1963FB62F6EA2929492FC4323E55BC079125 + 683C6C85F7DEDEAE01E8822AD957B5E9E051DAB468BDDF5CC445F73838953B2B + FCA276AB5BF01C545240A8C1ACDB903C2B6EFDF455A966A3DD0082ECD3168B42 + 44EC5D47A361CF8E426D41DD8B2EF6ED169A756FE634195F1B016F19D72DD5C9 + 5B41828F11E0E9BDECE22DB6A092B4A5E3D3C7A63FA9978D0AC35388F6B27F67 + E8BF4ED602DB321D81D1899A4445F2F76E51E52A0442CAC5E340A010439BEFBF + 4D8DA8CCC1636D45E316C4260E993458279914C6171809096CBFF09393E166C6 + 59CDD01730A72324682E54119138C845F52E6C432F074A7AB8E0846255586C1F + 655D1B3D6D5842449A5DCFD870573DB026FE7511E994507311FF6B2720541322 + 568BD56A3BD0ABFA3B943050C9B4A266996C8615F6C4B099D6849060D3082303 + 363CD1264583116AEA45E05DEC9B7C2AA9177BA4EBF2192CFD9FE0BB9528FE51 + 45DF801AC31AD9857AAB3ED318AE8F3344E843749178EF5A8021DDA24ADA4549 + 724A3DB24BF95375AB65B8A02703F5587A54D1EF6DF477FAC91285953A99D1C3 + 38303276BC074D8A0CBC4A54271EFACBA8AB18D30EFE4F97FF340AF8172272E4 + FE66E507F40000000049454E44AE426082} + Name = 'PngImage16' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000AEB00000AEB01828B0D5A000005A14944415478DA + 8D960B50546514C7CFBD771FC0C2E22E026A8A2F140145B490C65047AC0445D3 + F111A463A38DE608CA949A1A83864C2AD5E8543A4D33659AD360E3E8A036D958 + 069B943D80C8576E12A8BCC28559D8C7DDBBDF7D75BECB2EBE60F49BF9CFBD77 + F7DCFFEF7CE77B5D06066E1C2A0C65450D0F0D350C6375AC5194141FF19166FC + AD0DD58DE2514A7F06AAAA0233807924C7415A4848E8F31116D30C4B54C4A8D8 + 1183C3C34C21ACC72DC81DAD0E97D3E1FAD7E974DB449F7801E3EB50DE2701D0 + ACC7EB74BA25F14923F29252E3C7244E1E6D1C35EE2966485C341843F4E0F5FA + A0F5F67F60BF7E4BBD56DFE8B3D737DE686FEC3CA6284A05BE7B9BFA0E04A0E6 + E9D6E8C882B48C89D9F396CD1894943A1622A3CCC0728C162C2B0A28AA027E99 + 805BE0A1ADFDAE7AE58F7FA0FA4C9DC35ED35421B8C921F4B81284DC0F605193 + 2D31E6A29CA5B3B216AD9C1316377628C3716C5F3AD4B864A30DB61D781678D1 + 071E142F0AE0F679A1C17E47FDA9BCC675F9879B278997ECC3F0865EFF7B8068 + BD9EDBBE7045E6BA55050B4DC3E262188E4526C30473D12EBB0A2AB5E0B57B13 + C14378F06A201E3C7E1E5A1A3A54DB17354EFB85A6FD18F231CA150418F57A76 + E5D48CE43DF945AFC44C48198DBE0CB00C8BC2D260888A5192224169810DCE96 + 1F820579F9F0D2CE58F02284F68482782240535D0BFCF2697D53A7DDB9197DCF + 2240A280E151432C9FE4AE9D3B6FD96B596C68A85103702C87572C11CB8084CF + 7E4584F736546900DA2824638BB1B70708E2252C578F17EA8FDF906E7E7BE74B + C9236D434027D619B21252E38F6EDC9517939296A0654DB32F2DBCD8EFFCA500 + 3AD892A4C0D2570B21219F0737027CD80B4122D0FC5B3B5C3DD2D0E469E65723 + C0C6184DFA92D9F3D3776C28CED50FA2332690FDBB85D57DD9DEDF82E6A2246B + 5AF5FA56B0AE69458080003F74B7B9E0FA678DA2F32F57B12CCA654CB8C57426 + 6F7D76CEF275598C4ECF01CBB25A0FCADEB8F408E061733170BFBEF06D80BC6B + 1A80F70AD058DEA23A2ABB8E483E650D63898EACC92FC99D3A6BFE338C36B808 + A0A37F606BED038081CCA9FC44822D3B4AA07BF1AFDA1A693BE750DB4F392EC9 + 1EF939C61A3BA8AE70CF8A29699913B5A9884B09449C31878BEC7D80FE4CA587 + EEB7179742FB822A0488D055D90D1D27BAEA65B73C85315B4C552BDF5C30F3C5 + DCE98C0432109C2DA22CC189DD2D1AE049CDDB722AB5ECFD7E113ACF3AD59EF3 + 9E5A4550D298B0889083B3974C5BBF6CD35C0E421820184421DFED75C2A9631F + 3D91792BCD1CEB4F307BA19B405779B7EAFB5338AD8AEA6286D5B3AB92A78D3D + F8F2B6EC084B9CB9370BD4CFFB49BFD3F4C3F7773F98399AD3C1F54BBD89F10D + 02F47CEDE6A53B72992AABBBE9424B8C89B37C35775D46EAC417E219BF2AF641 + 08968ABE4402CF3D4747C2077B77DDCB9C9605CD8580B98883EDB1F12A7F5EB8 + A8F6A8453859AA2920421FCABD95322761F3ACB569A106AB1E04D9AF0D163515 + E5205004B97C02EC2B2DD6CC5B727ED4B20E664E93F1B713F056F03DD27519B3 + 80CF11E0096E7689264B4859FA8AC959E3B346EA6483C2F8E460B77BCD697DC3 + 4E3EAD05DFCAFE5E7BA6A2334EBBBA4595AF1208B9201E0702C518D67CFF6E6A + 40E50C1E6FD93969517C72ECB4C19C6454187FA02724D083A8D3D3D1FCBC66E8 + 0F98D31E1234176A88486CE477F52EBC835E3694F4F0811381A7C272EB18F3A6 + 1133872645A75B758C0567D50363D23B2E222D093517F1BF0E02422D2162AD58 + AB7600DDAABF4109031D9966D41CA345BFDA9A1C99694E0A0F338E323060C195 + 6C543418A1A65E04DEC56B935F2576D125DD94CFE1D17F18DFAD46F91E77E8EB + 51E35803BB5867D6E518A27409FA685D381783FBAE0918D223AAA443942487E4 + 929DCADFAA5BADC0013D1D388FA5C71DFAC1467FA79F2CC3F0A44E617430090C + 8C15B729A322834F25AA0317FD65D4558CE980DE4F97471A05FC0F622CD6FE88 + 2F15D20000000049454E44AE426082} + Name = 'PngImage15' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000002814944415478DA + 63FCFFFF3F032D0123C8822F5C7FFED767DC625876E301458645692830B0B2FF + 67E8ECD06184391CCC282EBAF6DFC7478B21AA671BC3F36D5E040DFAF3E71FC3 + EFBF7F19FEFDFB0F66FF01B275A20E32AC28E766F0F2F26250538B63387F7E3A + 235E0B3AD73F25CAD571D6BC60DA28E108C3A783A160365116E07339C4D540FC + 07C1364B3EC6D0E0AFCDF0EBD72F8679F3FA48B7009FE1206C957682A1CA5395 + E1E7AFDF0C4B974CA65E10051AB28169FBACD30CC5CE0A401FFC6658BD6A06F1 + 3E20E4F2DF50BE73DE59862C2B09A0057F18B66C9E4F9C05C41A0E4A45EE8517 + 18524C44C03ED8B573097E0B40C9AF7BE333A282C8550D92DEBD4B2F31C4E9F1 + 03E3E017C3C1FDAB705BF0748B2786EB103EC04CFF3039FF8A2B0CE11A9C601F + 1C3FBA1EB7050F37BAE3351C3DB8FE41732CC882402516B005674F6FC16E0138 + BB032D2107C00C07E583CB1777E1B6E02FD07520853F7FFE82D0504DE86C506A + 8188C1F81039909A5BD7F763B7006678754D0159BE5056B303EB7FFCE038A605 + 6E6EC05CF813E292D6B60A9002AC86FCFEF593E1F7CF9F0CBF8018C4CE2E3A0A + 16BF7DF30083AC822558FFCB6767302DB0B757807BB3BBA70E6C0137373758B3 + 868605C3D9B37B310CFFF3FB17437EF969B805E252266033DEBFB9886981A5A5 + 343C0C274D6A065B2025A5C42029A9C8A0AB6BCD307B563586E1BF81EA4B6A2F + C22D1014D107B3B15A606C2C0A8DC4DF0C336674802D303676061BAEA666C450 + 90EB8461F81F20AE68BE4E9C053ABA02F0208216B70C09097560C385852519C2 + 8395300C07D1B59D77095BC0C8C8C8505478F5BF82222B72718B35CC910DFF07 + CC78F53D0F88B300040C0C32A8D202B87061066A9D4C4B40730B0038C31BFE85 + 5838D40000000049454E44AE426082} + Name = 'PngImage17' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000026D4944415478DA + B5966D48535118C7FF138A455F84588C0A7A27AA1163CDB69168929851CB5806 + 81D5878A7C29412428484264A85006814342E805112DE8436F94F43E74393775 + ABC1552C87B5EA6286B7B01AB4BBD3CE8D0DC57976B7D9038773B8F79CDFEF9C + F33C17AE821082FF198AE982F607CE946C4DCD3731D8D5A2A063FFDA73E4C9FB + 469C8CB0E30A4AF61A928247D660F9D225A8BE7019366F0B0CD595C8186B43AB + 4D9024F322D06E5C8521F75D2CAB2A85E94026E010C00533D1CD09E99D4014C3 + E87CE482F2A717D93B8A305AA381A97F4282D3484B40E1A248F0BAE33486825A + 188D464C0A5FF1A3AA002A9EC0C7837D457957C7124A6A958DD896AF4146C08D + 1B1E23D46A35789E87D56A452010483EC9244C20465A28B27B6767650CFEE5D7 + 38BE8F7F46AF5026C1559BCDB1AA922D48040F0A1E145B57E06C7D2BAEB5DF4B + 4E20176E7778F0F0A54B9E205E0EA6DF793C38DDC463BB5BFE0992D97974DED3 + 9E01798254E0B4745FF47A120BA2354EFB70E47D435D09FE902294177630E1B4 + D95D6FD88243BBB324F8AEEB01E95959A8166F3F4E4137F509CEC515B0AC3922 + C1D7D574CFC8CF95DC050885C370F4FBD88283057A69277432ED2FD51FC5999C + 85F03FE7E00F2A71E7C322D435DF8A9D303A2F3A767939B6C0B253175BD4D556 + 0197E3154EE95663D0FF1B8E491EE50D7D73C2693FE01B660BF6E569638B8E9F + 3886D1110E2B5504872D7AE8CD179970DABCDC085BB027678B34B1F8F604BED9 + CC385FBA1586FD4D33123F179C26DC37FC8E2D28DCAE99B5482E9C464241BE69 + 53CA705982DCAC0DFFEA5F24B36A9C7E132CB82C41B66E3DEE3FEB433AC114D0 + 3F84F988A8E02F75743575B8E251160000000049454E44AE426082} + Name = 'PngImage18' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300004E2000004E2001167D99DE000004124944415478DA + ED955F4C5B551CC77FF7DEFE61D0C204D7758139C15684752C1A565A47D7A983 + 1664449D75337301A7D68D8CBD69F4C11463627858427C30DD8B3A0C8B0FBA10 + 71B8F247470706A6996E93617173C060A56D645DD7526EDBDB7BBCE75E6F2D5A + 46E2E29BBFE4E49ED3F33DDFCFEFFCEE39B7044208FECB20FE07AC0A584DE070 + 38C889EB011345C1101EC798786D77D747DF72DDE46A6B1B0F1E54DE1560B7DB + A57136DB4033B17373FEB9BF262872978F898D5C73B9622B257EB4ED83B1C0B4 + 47BF1280B0B6B6CAD4892C3D4D477873868DD76C543D90A028C9101E47A34BC6 + 1FDD83639916DB6C2D0A2A0785B12E1380686A72C8C91CBA72297A67188B9289 + 64C3E8E0D7BD78D2F4F4B3FB11CB7431887D6ECCD5DB9D09A0B75A7365843494 + E91D70E64D9C790167BEC49B2340F5DF9D397D46D41A6BEA9EA024926F922C6B + 1DEDEBEDCB08D07380827F02083367AE55AAB64522425908966818EEEBE94D5F + BCD56C5EAB9428F2C38CE4D625F797B733012A6A5ECAC9958422CB00369B4D26 + 55AE33B02C72AF64FEA75E3CD724D7D88C6F903B79DBCF9FD7138474940798CD + 6689BAB8CC4800C1671EA7A36F2A08E4CECB96215A921752057D373ADDEE789A + 21A1D168642A5561194B4AF3280449890480610072D7150402B3D7A62E9494B0 + D5119AC100E285A6D71F27097224533233F3334E85E2FEAF064E7DDA2F663F57 + 21DC01DB867AE7A60D9B0EA7EBF3E6273EFB708DFF45DF758F90C9AB47DE30E1 + 9AE3C191B60EB82F0B204803F8170166C3003FCF0661F2633B042309CB956117 + BE60E83897EC6B4E07CC3BDF85503F9DD2FB16A2606F7F14C8DDCDFCDCE9CB1C + 605FF361249A57AA01BC11A189001C18E27ABB06D6CA91B574F3634959B66260 + E709278890E91E9AD737BE550E64FD81947957DD6E200A353A64AA36C13BED1D + B086ABE312B37C0738A83B32686FA900AC1303EB87D5592988BAA41408CBBE94 + F97B1A9D50226EA272E78E277FC03B102314135A20BA1C50AC2DE6C745EB8B40 + D48F3F9805AF580BF9BEDF7B93374FF4B3BC9E8E45B711566BABBCD4A81D2CB6 + D8AB372A05C3585200E02736BF18F2C36F278F7AC747CFD9755BB630EA22ADCB + 70A803B05E1EFE1D2C6D55BC398EEE636C4A3FF4D3F70FF1C7B4EE99BD0F8763 + D1C9E71D9F839CE2DE605096DA0D16E3FADF0E069F5A5CB839525E5E0E1ACD23 + 86ECFCF56EA3FD18B4BCBF19FC37A6F9CCF14E30A82AAA033A112F5B98F9D593 + BA6886DA5A4DD5F6864F2E8C0D544F5D9D4A01B4BA32EFA4E76AF3BCE762FA27 + 9AB4ECDDBFE340E897B37B923EE81CF0420F57B646EE0E8990A2CBC2255EF5FF + 60A548580BF7708F2FB0399344CD87003AF1EFDC1146E9907B01A0D1F1004CCC + 254E70E62FA7CFA543FE3560726B3E3A7BE916EE2A38C0E2DFE731A4A1E21E4A + 745CF86CE838F32B77D3FC01CF05F8A9B438C37F0000000049454E44AE426082} + Name = 'PngImage19' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000001B74944415478DA + B5943D2C044114C7DF6A5CA150894204052AD14B7C14D7701D9D44EB4A854434 + BE3A89E28A0BD128080DA7388ABB444E88904B705710111FA5467D91DB9D9D31 + 6F6677CFB9B998DD75AFD8F9DCFF6FDEBCFDAFC118834686810063BB3CC9FB47 + 8AF52988475241C585B6036089C1DA0D7345FE88478C7F030841FF5137CB0A60 + F5395C2156FA95597A80D3F377161BEBF953C7223694BE4C20361563D324109B + 598442762B3800D75110C54DCB167D14C638CEDEC0CE7E3A3800D76C14E4E284 + C81641160761A4CFF2C100388745213617B628942DC2019801952D9180ECE55D + 30804D2950CAE0F0D586E98BDAFA27064A106D3321775DD4074C8C763B93F2E4 + 16BF92965D06F5FC5118FE84ABDB077DC0F88804C8821271E7AD074D10C61F6C + B639E501A2439D62567E2D4464D09EFC08A4EC65B0DC6754D520B997A9DAD0D5 + D10B61FC719FD9AC0096D6376A5E5C5B988730FEF00086A1FE9F9DE4DE42F9C3 + 37C0AF3F7C035C7FE049F1C41240C518A1652703D71F5A00953F4C47D86BC555 + 71805303D71F5A00953F4C2703B7B5BCB104E48B4FFA00953F7E9E5C05283EBE + F8ABC16F7FE8843640E50FDDF0008D8C6F397A5EEFE9EAF0950000000049454E + 44AE426082} + Name = 'PngImage20' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD252000001BE4944415478DA + 63FCFFFF3F032D0123B2054BB79CA49A6DD13EE68C582D004A906CD8DFBFFF80 + F83F980601EBC07C86733BA6E1B6C0B6683F8A0187FB1C711A8EAC765BB315C3 + C275FB19E62DDD84DF02525CEE507A9081455D89E1C08C1D0CEF0FC6312CD978 + 90B005D87C802E06027B3BEC189C2B0E311CD97F0BCC7FB32F8661F996C394F9 + E0FF3F605803F11FA0EB41EC3FFFFE41E3E01F98BD7ADB51D27D400C00F9E2F1 + 8E70860DBB4E106701CCDBA480075B431936EF3D459C05F8520E3600D2B3A850 + 8F61EB81D3C45B802BA86096C3E4616AE7E7EB32EC387486763E989DA3CDB0E7 + E839DAF96046A626C3FE131768E783A969EA0C874E5FC26F4184A729387792E3 + 838929AA0CC7CE5EC16F41A89B09387792E3839E042586D317AFE3B720C8D988 + C1ADFA08591674C62A309CBB7213BF057E8E060C5EB5C7F01A06B27CC1913F70 + 7E820D0BD882B62839868BD76FE3B7C0DB4E0F5EAEC0CA1850D9032BF393275F + C1881F18BF394296E1CACD3BF82DF0B0D6C16938884E9B760D6BF0116D818BA5 + 164EC3411667CDB88133E888B2C0DE541D6CD8BFBF88621966E1BFFFFFB1061F + 322068818D912AB844A404E0B5A077CA428A0C8701980500619929EF09CFCE42 + 0000000049454E44AE426082} + Name = 'PngImage21' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F8000000097048597300000B3A00000B3A01647F570D000001B94944415478DA + 63FCFFFF3F032D01E38058C0C8C888C2DFB9B651F9C58DAD77DE3F3E85AAF007 + 7643F3E7FF6724C9828B27D7FCE7E0E46350D3754511FFFFEB15C3BFCF9718FE + 7FB90CC40F18FE7D99C43063068916005D6FCEC2CA71C2CE239F8185959DA0E1 + 050B50CD2468C1C903F3FF4B486B32C8A9986375FDBF179B510C07CB116B01D0 + F5C15C3C426BAC5DB3512CC56738D116000D67061AFE4755DB99411CE803620D + 27C5827C0161B90966F6091841F3E7762BDC7064407410ED5AD7C40F8CD80FC6 + D6D10CFC42D22886FFFFF992E1EFA339600B9001497100B4A05B4246BB44CF2C + 18C3F0FFBF209801C4474B3D4407D1F26EF7FF1F1E9E61F8F5F51D5C2C77D225 + A20C272915415392B4BA9ACC13194939A20C27C7826E7131C1126D6521A20C27 + C902A0E1DC2C2CCC5F0CD5051878397E116538A916E40BF0734F3052FCCEF0FF + FB6BA20C27DA027046E364FFA322C5C420CCF28468C349B1C01F68C10633B967 + C0A021DE70A22D38B9A7E7BF28DF1F06A97F1524194E9405C08C660C8CDC3316 + 624D0CB367FE22C970A22CB87864F27FB66F5B18762DDF45B2E1445970E3F4F4 + FF7BE75530E4CCF844B2E14459404D40730B006B5E9AE0A24640FE0000000049 + 454E44AE426082} + Name = 'PngImage22' + Background = clWindow + end> + Bitmap = {} + end + inherited JvAppRegistryStorage: TJvAppRegistryStorage [7] + end + inherited dsDataTable: TDADataSource [8] + end + inherited GridPopupMenu: TPopupMenu + object N4: TMenuItem [5] + Caption = '-' + end + object Serviralbarn1: TMenuItem [6] + Action = actEnviar + end + object Generarfactura1: TMenuItem [7] + Action = actGenerarFactura + end + end + object JsNuevoAlbaranDialog: TJSDialog + Content.Strings = ( + #191'C'#243'mo desea dar de alta el albar'#225'n?') + DialogOptions = [doCommandLinks, doModal] + Glyph.Data = { + 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001C00 + 00001C0806000000720DDF940000000970485973000017120000171201679FD2 + 520000000467414D410000B18E7CFB5193000003104944415478DAAD96FB4B14 + 5114C7CFE463DC1E606444BFF54424D3DC55CA52B1CCD7165A219905054182FD + 1452FD5810FD100406610A669A998FC4F5BDB6266265DAB60F5DD15E58FE03B2 + 3F99D29ABBA7B9779C71C61D9D6177CFCE70CFDCB97B3EF7DCF3BD33C38082FD + B502B2B300CC656020048688A24F036233A0671F40D43160BA87BF62AEEE1010 + 60D7AE293AD8B835815E9B625C80DC8F1E88D4A7C1E8C1FB8F9FD6C3C44035B3 + 21500A65F6D700FE2EA580A5EC551F4A50359316B31D76EFDC0EE5F72A645045 + A067AE0623074B8140891108F1057064CC0D556053DF173812B707E6DCF332A8 + 225080D201DB4AF99BF335B4D502F371415BCC364833C4C29F458F0C2A031281 + 081734AB0B3C88403C1E6E3E2E7960F6A8FFD27A7D3EF07A11DA2C76C84A8D87 + A57FCB32E8B8A54A4C8C21B59365C9015996EF2240B6634DF435B51460A46D1F + 70C093AA46BF09C980C12CA914E6F371ADD707EF1DB3B0B0B8006EB79B8EA96B + EA5106121851245129118FD8BFA2DC5C53C6BAF5EBBBBA97C2D64EC064195B1F + 286C76E956A0EA5C51AEB4764A9929F5750D5A9581D2274B9B651C0BA2F514A8 + 6F28E36B70AD9A4253EF97A9AA55B0CEBA87D03B645B3F43C1DE589C58186D10 + 81150FCAC57B11E161B04517099BB953C78643141B01BA28EEE4DAB0B04DE2B8 + CA460B9C399902E661BB3AB0F5AD038BF30CD4D7E7DD14815A61023027DD00EF + 469C1A80FD1C307F1578FD4A81E665945AD68924181A9D5007B6F4DBF1527E32 + F5C9D3632351F8F549AEE916B14EAA039BCD362C31A6040D23E7887D4A03B0CF + 86C5C6641A24BB7646D3F2D51A77F8C1BCDCFFC79CD3EAC0D7BD56AE86294165 + 4660CB5C6B737DD3062CCA31D00069E76E05241862CF1EDD05E7D40F756063CF + 673C7F5A4F679A59541EF03E4C8C3B0893DF67D481AFBAC7B0F05412CD30EBE2 + ED80F7617CEC0198FEF94B1BF06C6622AD4B4EC99D80F7A1666043D7281A3312 + FD84C20B8417C3AA789405239826E0CBCE4F98979E10344C33B0BE630473D312 + 82866906D6993E62F6F1C3F45D160A5305BE68FF8095CF5B4302134CFE1185EA + 1FB8A1B4FF4FE32FF6FADB8B5E0000000049454E44AE426082} + Instruction.Text = 'Nuevo albar'#225'n de cliente' + Instruction.Glyph.Data = { + 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001C00 + 00001C0806000000720DDF940000000970485973000017120000171201679FD2 + 520000000467414D410000B18E7CFB5193000003104944415478DAAD96FB4B14 + 5114C7CFE463DC1E606444BFF54424D3DC55CA52B1CCD7165A219905054182FD + 1452FD5810FD100406610A669A998FC4F5BDB6266265DAB60F5DD15E58FE03B2 + 3F99D29ABBA7B9779C71C61D9D6177CFCE70CFDCB97B3EF7DCF3BD33C38082FD + B502B2B300CC656020048688A24F036233A0671F40D43160BA87BF62AEEE1010 + 60D7AE293AD8B835815E9B625C80DC8F1E88D4A7C1E8C1FB8F9FD6C3C44035B3 + 21500A65F6D700FE2EA580A5EC551F4A50359316B31D76EFDC0EE5F72A645045 + A067AE0623074B8140891108F1057064CC0D556053DF173812B707E6DCF332A8 + 225080D201DB4AF99BF335B4D502F371415BCC364833C4C29F458F0C2A031281 + 081734AB0B3C88403C1E6E3E2E7960F6A8FFD27A7D3EF07A11DA2C76C84A8D87 + A57FCB32E8B8A54A4C8C21B59365C9015996EF2240B6634DF435B51460A46D1F + 70C093AA46BF09C980C12CA914E6F371ADD707EF1DB3B0B0B8006EB79B8EA96B + EA5106121851245129118FD8BFA2DC5C53C6BAF5EBBBBA97C2D64EC064195B1F + 286C76E956A0EA5C51AEB4764A9929F5750D5A9581D2274B9B651C0BA2F514A8 + 6F28E36B70AD9A4253EF97A9AA55B0CEBA87D03B645B3F43C1DE589C58186D10 + 81150FCAC57B11E161B04517099BB953C78643141B01BA28EEE4DAB0B04DE2B8 + CA460B9C399902E661BB3AB0F5AD038BF30CD4D7E7DD14815A61023027DD00EF + 469C1A80FD1C307F1578FD4A81E665945AD68924181A9D5007B6F4DBF1527E32 + F5C9D3632351F8F549AEE916B14EAA039BCD362C31A6040D23E7887D4A03B0CF + 86C5C6641A24BB7646D3F2D51A77F8C1BCDCFFC79CD3EAC0D7BD56AE86294165 + 4660CB5C6B737DD3062CCA31D00069E76E05241862CF1EDD05E7D40F756063CF + 673C7F5A4F679A59541EF03E4C8C3B0893DF67D481AFBAC7B0F05412CD30EBE2 + ED80F7617CEC0198FEF94B1BF06C6622AD4B4EC99D80F7A1666043D7281A3312 + FD84C20B8417C3AA789405239826E0CBCE4F98979E10344C33B0BE630473D312 + 82866906D6993E62F6F1C3F45D160A5305BE68FF8095CF5B4302134CFE1185EA + 1FB8A1B4FF4FE32FF6FADB8B5E0000000049454E44AE426082} + Instruction.Icon = tdiCustom + CustomButtons = < + item + Caption = 'Albar'#225'n nuevo vac'#237'o.' + Value = 100 + end + item + Caption = 'Utilizar un pedido de cliente.' + Value = 200 + Info.Strings = ( + + 'Puede utilizar un pedido de cliente existente para dar de alta e' + + 'l albar'#225'n nuevo.') + end> + ButtonBar.Buttons = [cbCancel] + MainIcon = tdiCustom + Title = 'FactuGES' + Position = dpMainFormCenter + Icon.Data = { + 0000010003002020100001000400E8020000360000002020000001000800A808 + 00001E0300002020000001002000A8100000C60B000028000000200000004000 + 0000010004000000000000020000000000000000000000000000000000000000 + 000000008000008000000080800080000000800080008080000080808000C0C0 + C0000000FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFFFF000000 + 0000000000000000000000000000000008777777777777777777777700000000 + 0877767777677776777767760000000008F88888888888888888888700000000 + 08F8FF8F8F888888888888860000000008FF8F8F88F8F8888888888C00000000 + 08F88888F8888888888888860000000008F8688878E8888E88E8788700000000 + 08F8688888F8F8FFFFFF88760000000008FF4888888F8FFFFFFF788700000000 + 08F8676767677677677658E50000000008FF8888888887878787888700000000 + 08FF8887887E8888888888860000000008FFE8E8E788C8E8FF8F8F8600000000 + 08FFF8F8F8F8FF8F88F8F8870000000008FFFFFF8FF8F8F8F88F888600000000 + 0FF8477878787878788788860000000008FF68888888F8FF8F8F788700000000 + 08B7588888FF8FFFFFFF78860000083008BB47887776777777776F86000000B7 + 8B9B73BB88788787E87878870000008BB8B9BB78888888EFF8F8FF8600000087 + B8BB8B888E8E8E88FFF8F886000000088BBB888FFFFFFFFFF8F877770000B9BB + B8FFBB9B9BFFFFFFF87466460000BBB9BB8FBBBBB8FFFFFFF88F888700000008 + B8BB88888FFFFFFFF88F8F7700000008BBBBBB8FFFFFFFFFFF8887700000007B + B7B98BB8FFFFFFFFF8887700000000B78B9B87B888F88F88F8877000000007B0 + 08BB883B78888788787700000000000000B9000000000000000000000000FFFF + FFFFF800000FF800000FF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000FF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000F9800000FC000000FC000000FC000000FE000000F0000 + 000F0000000FE000000FE000001FC000003FC000007F980000FFFCFFFFFF2800 + 0000200000004000000001000800000000000004000000000000000000000001 + 00000001000000000000694731007C5D49007E604C0081635000826451008567 + 540085685500886B5900896D5B008A6E5D008B705F008E715F008B7260008C72 + 61008E74640084766C00957A6900977D6D00887B72009A8171009D8272009C84 + 76009D8778009F897B00A28A7900A08B7D00A18C7E00E1B06E00E1B67D003E7A + 970073A0A5007AA2B70074AFBD007BB2BB003CAACE0028A5DB0020ADDF000D9A + E500209EE3000DA6E2001AA4EF0000A6FF000CABFE0009ACFE0010A4F10015AC + FA0000B5FB0000B0FD000CB6FC0000BFF90000BAFD0004BAFD0009BBFB0013B6 + F40015BFFA001CBDFB0026B7FD00589EC50040A4CD0040ABCC0050A2C7005DAE + C00060A3C20062A4C60060B7CB006AB0CD007BB6C80077BAC80061BADD0044AD + E50000C3F80007C6FB0000CAF80000CFFB0000D4F90026C8FA0026CDF8002BCC + F90039C4FB0039C2FC0039CAFA003FCFFB0024D6F80030D2F80039D5F80000F8 + F8001FF8F8002CF6F8003EF4F8005AC6DC0070CDDF0052C0E40054C9E3004DCE + FA005FC7FF004FD2FB004DD9F8005FD9FB006ED3E70063CDFE0060D1FB0060D8 + F90060DDF80046F8F90056F0F8005FFAFA0073E3F80073E4F90073EEF80060F1 + F800958A84009A918C0081999500A68F8200AD968500A3968C00AE988900AD9A + 8D00B19A8B00AF9C9000B09E9200B59F9200B7A29300B2A19600B5A19400B7A4 + 9700BDA79700B4A39800B1A59D00B4A79F00BAA69800BCA79900B4A89F00BCA8 + 9900BAA89C00BDAA9D00BEAC9E0083ADBD00B5A9A100BDABA000BEADA100BFAF + A500A0BABE00C0AB9E00C1AC9E00C6AE9F00E2B98100E4BA8300E4BB8400E5BC + 8500E1BD8E00E3BF9000C0ADA000C2B0A300C2B1A500C4B2A600C1B2A800C3B5 + AB00C8B4A800CCB9AD00CEBCB100D0BEB200D1BFB400E4C19300E5C29400E6C4 + 9600E8C69900D0C9A300CFC1B800D2C1B600D3C3B800D5C4B900D6C6BC00D8C6 + BC00D6C8BE00DAC9BF00ECD3B000EDD4B200EFD6B500E7D1B800E7D3BD00F0D8 + B6008CB7C40080BEC70097C3C70099C3C900ABD7CF00AFD9DD0086E3F90086E7 + F90086ECF8009EE5FB0090E8F900ACEDFC00BCEAFD00BCF1FB00BFF1FD00D7C9 + C000D9CAC100DCCBC200DACCC200DDCCC300DACCC400DDCEC400DED0C600DED1 + C900DED3CC00DFD4CD00E1D1C900E2D5CD00F0DCC200E3D8D200E5D9D200E2DA + D500E6DBD400E5DCD500E8DDD600E6DDD800E9DFD900E6E0DB00EAE0DA00EAE2 + DD00ECE3DE00EBE4DE00ECE4DE00F3E7D900C6E1EF00C9EFFD00D7F6FD00DFF3 + FF00DFFEFE00EBE7E300EDE6E100EFE7E400EEE8E400F0EAE600F2EDE900F2EE + EC00F4EFEC00F5F0EE00F9F4ED00E7FAFD00EBF8FF00F6F2F000F7F4F100F8F4 + F200F9F7F500FAF8F600FBF9F900FCFBFA00FCFCFB00FEFEFE00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000007D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D + 0D0D0000000000000000009C9C19191919191919191919191919191919191919 + 1903000000000000000000ABDECBCBC7C7AFABABABABAAA3A2A2A0A0A0A0A0A0 + 8607000000000000000000ABECEAE9DEDEDEDED7D5D2D2D2CBCBCBCBB0CBB0CB + 9007000000000000000000ABEDECEAE9DEDEDBD7D7D5D2D2D2CDCDCBB0B0B0B0 + 9007000000000000000000AFEDE9A9CFD2CFD2CDCBCBCBB0B0ABACA3A3A3A3B0 + 9007000000000000000000AFF0D5017783838386868686869099909999907BB0 + 9007000000000000000000B0F4D501A0B0CBD2D5DEECEDF7FAFAFAFAFAF77BAA + 9007000000000000000000CBF4DC01A0B0B0B0D2D5DBEAEDF7FAFAFAFAF47BB0 + 9007000000000000000000CBF8DC010404070604090909090D0D110D110D02A3 + 9007000000000000000000CBFAED9E9E9E9C999E8C8C8C868683837E7D7D7ACB + 9007000000000000000000CBFAF1A7A7A6A6A6A69898989898B5DBDBD5D5D2D2 + 9907000000000000000000CDFAF796969696961D961D931D1DB4DEDBD7D5D5D2 + 9C07000000000000000000CFFAFAFAFAF8F7F0F0EDEDEDECE9E9DEDEDED7D5D5 + 9907000000000000000000CDFAFAEAF0EDEDECEAEAE9DEDEDBDCD5D5D5D5D2D5 + 9C07000000000000000000D2FAEC01737D7D7B7D7D7B7D7B7D7B7B7B7D7B7DD2 + 9907000000000000000000CFFAEC019EABB0CBD2D5DCDEECEDF4F4F4F4EA7BD2 + 9C07000000000000000000B9524601A0B0B0CBB5D5DEEAEDF7FAFAFAFAF47DD5 + 9C070000000000213F0000B83226010C3F5C1F111214141616191B1B1B1807D2 + 9C07000000000000253D8A5B322D711E2860BA7E7E7A7E797A797979767676D5 + 9E0700000000000041375E662F2B65314EBBB6B6B6B6B4B4B1E2F4EDEDEDECEA + 9C070000000000008F5D66663232394EC1A81C1C1C1C1C1C1CD3F7F4EDDED7D5 + 9C0700000000000000B7BE6E5758BEBDE4E6E6F3FAFAFAFAFAFAF7F4D5928675 + 7304000000002A2A2A2A4A6AFAE7562F2A2A2A5FFAFAFAFAFAFAF8D577010101 + 0101000000004747472F4A59C5E7564A32474766FAFAFAFAFAFAFADCA0D2CFB0 + A20C00000000000000436C6958686D6BC2C5C5E7FAFAFAFAFAFAFADEAADEDBCB + 1470000000000000004551534A4A5250C0E7FAFAFAFAFAFAFAFAFADEAAD7B514 + 700000000000000042384C54472B613550C3FAFAFAFAFAFAFAFAFADEA1B0196F + 000000000000000024234463322EBC5A3664E3ECE9E9E9E9E9E9E9CF90731300 + 000000000000003A3C00002232298B8B3E3B207E8B7E8B7E827E817E74100000 + 0000000000000000000000003227000000000000000000000000000000000000 + 000000000000FFFFFFFFF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000FF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000FF800000FF800000F9800000FC000000FC000000FC000 + 000FE000000F0000000F0000000FE000000FE000001FC000003FC000007F9800 + 00FFFCFFFFFF2800000020000000400000000100200000000000801000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000007067 + 5F70AA9382E570513CE3735540E3735540E3735540E3735540E3735540E37355 + 40E3735540E3735540E3735540E3735540E3735540E3735540E3735540E37355 + 40E3735540E3735540E3735540E3735540E3735540E3735540E372533EE5BAAB + A070000000000000000000000000000000000000000000000000000000005E54 + 4C7FCAB7ABFFC5B5AAFFA18877FFA28A78FFA28A79FFA28A79FFA28A79FFA28A + 79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A + 79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA58D7CFF7A5B46FFB2A1 + 967F000000000000000000000000000000000000000000000000000000006055 + 4D7ED7C6BBFFEDE4E0FFD9CCC4FFD9CCC4FFD9CBC3FFD8CAC1FFD7C9BFFFD6C7 + BDFFD5C6BBFFD4C4BAFFD3C3B8FFD2C1B7FFD1C0B5FFD0BEB3FFCFBDB2FFCEBC + B0FFCEBBAFFFCEBBAFFFCEBBAFFFCEBBAFFFCEBCB0FFBEAA9CFF82644FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006056 + 4D7ED7C8BCFFF2EBE8FFEFE9E5FFEEE7E2FFECE5E0FFEBE2DEFFEAE0DBFFE9DE + D8FFE7DBD4FFE5D9D1FFE3D7CFFFE2D4CCFFE1D2C9FFDFD0C7FFDDCDC4FFDCCB + C2FFDBC9BFFFDBC9BFFFDBC9BFFFDBC9BFFFDCCAC1FFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006155 + 4E7ED8C9BDFFF3EDE9FFF1EAE6FFF0E9E6FFEEE6E1FFECE4DFFFEBE2DDFFEAE0 + DAFFE9DED7FFE7DBD4FFE5D9D1FFE3D7CFFFE2D4CCFFE1D2C9FFDFD0C7FFDDCD + C4FFDCCBC2FFDBC9BFFFDBC9BFFFDBC9BFFFDCCAC0FFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006157 + 4E7ED9C9BFFFF4EFEDFFEFE8E3FFD0C2B9FFDFD5CEFFE0D5CEFFE0D4CCFFDED3 + CBFFDDD1C8FFDCCFC6FFDACCC4FFD9CBC1FFD8C9BFFFD7C7BDFFD6C5BBFFD5C4 + B9FFD3C2B7FFD2C0B5FFD2BFB4FFD2BFB4FFDAC8BEFFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006256 + 4F7EDACCC0FFF5F2EFFFE5DDD9FF5C3821FFB0998AFFB8A394FFB8A394FFB9A3 + 94FFB8A495FFB9A597FFB9A698FFBAA698FFBBA799FFBBA89AFFBBA89BFFBCA8 + 9BFFBCA89BFFBCA89BFFBBA89AFFB49E8FFFD8C6BBFFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006256 + 4F7EDBCBC1FFF8F4F3FFE7E0DBFF5F3C24FFD0BDB2FFDCCBC1FFDDCCC3FFE2D2 + CBFFE7DBD4FFEDE2DEFFF0E8E6FFF5F0EDFFF9F7F4FFFDFDFDFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFAF8F7FFB39D8DFFD8C6BBFFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006256 + 4F7EDCCEC3FFFAF6F5FFE9E2DDFF5F3C24FFD2BFB5FFDFCDC4FFDECCC3FFE0CE + C6FFE4D4CDFFE9DDD6FFEFE4E0FFF1EAE8FFF7F1EFFFFBF8F6FFFFFEFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFCFBFAFFB5A090FFD9C7BEFFC1AD9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006257 + 4F7EDDCFC4FFFCF9F9FFE9E4E0FF5F3A23FF7C5D49FF7F5F4CFF7E5F4CFF7E60 + 4DFF7F614DFF816350FF826552FF836654FF846856FF856A57FF866B59FF876C + 5BFF876D5BFF876D5BFF866B59FF72523DFFD5C3B9FFC1AFA1FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006357 + 507EDECFC6FFFCFCFBFFF4F1F0FFC3B6AEFFC3B5ADFFC1B4ACFFC0B3AAFFBFB1 + A9FFBEB0A6FFBDAEA5FFBDACA3FFBCABA2FFBBAAA0FFBAA99FFFB8A69AFFB8A4 + 98FFB6A396FFB5A194FFB49F93FFB39D90FFDCCDC4FFC2AEA1FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006357 + 507EDFD2C7FFFEFEFDFFF9F5EFFFE8C696FFE9C799FFE8C697FFE7C596FFE7C4 + 95FFE6C394FFE5C293FFE4C091FFE4C090FFE3BF8FFFE2BD8CFFE9D5BFFFEBE1 + DCFFEADFD8FFE7DCD5FFE5DAD3FFE4D8D0FFE3D4CCFFC2AFA2FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006458 + 517EE0D3C8FFFFFFFFFFFAF5EFFFE3B77CFFE4B97FFFE2B87EFFE3B77DFFE2B7 + 7CFFE2B67BFFE1B57AFFE1B479FFE0B478FFE0B377FFDFB174FFE6D0B7FFEBE1 + DCFFE8DFD9FFE8DDD6FFE6D9D2FFE3D8D1FFE4D7CFFFC3AFA2FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006458 + 517EE1D2C9FFFFFFFFFFFEFEFDFFFEFFFFFFFCFDFEFFFBFBFBFFF9F7F8FFF8F5 + F6FFF7F3F2FFF5F1F0FFF4EFEEFFF1EDEBFFF0EBE9FFEEE9E6FFEDE6E2FFECE3 + DEFFEBE1DBFFE9DFD9FFE8DDD6FFE6DAD3FFE5D9D2FFC3B0A3FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006459 + 517EE1D4CAFFFFFFFFFFFDFDFCFFEEEBE8FFF5F2F0FFF4F0EFFFF3EFECFFF2ED + EAFFF1EBE8FFEEE9E5FFEFE7E3FFECE5E1FFEAE4DEFFEAE1DCFFE8E0DAFFE7DE + D8FFE6DDD6FFE5DBD4FFE4D8D1FFE2D6CEFFE6DBD4FFC3B1A4FF81634EFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006559 + 527EE2D4CAFFFFFFFFFFF0ECEAFF5B361EFFAB9383FFB39D8EFFB39D8DFFB39D + 8DFFB29D8DFFB29C8DFFB29C8CFFB29C8CFFB29C8CFFB29C8CFFB29C8CFFB29C + 8CFFB29C8CFFB29C8CFFB29C8DFFB39D8EFFE3D8D0FFC4B1A4FF81634EFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006559 + 527EE5D4CAFFFFFFFFFFF7F0EBFF5F3B24FFCCB8ADFFD7C5BAFFD9C7BDFFDCCC + C3FFE1D4CCFFE5DAD4FFE8E0DBFFEDE5E1FFF1EBE9FFF5F2EFFFF7F5F3FFF8F6 + F4FFF8F5F4FFF8F6F4FFF1EEEAFFB29C8DFFE6DAD3FFC4B2A5FF81634EFFB2A1 + 967E00000000000000000000000000000000000000000000000000000000685A + 527E9AC6C9FF35CFFEFF3DAEEBFF663E24FFD2BFB4FFE0CBBFFFE0C9BDFFE1CD + C4FFE4D5CDFFE9DED7FFEEE5E0FFF2EBE8FFF6F2F0FFFCF8F8FFFFFFFEFFFFFF + FFFFFFFFFFFFFFFFFFFFFCFAF9FFB49E8FFFE7DED7FFC5B3A6FF81634EFFB2A1 + 967E00000000000000000000000000000000007792910072A7A3001E33366957 + 4C7C86C1C8FF00BFFBFF079AEBFF6A3E23FF926D57FF5FA3C8FF4AC1E8FF6C9C + A2FF917260FF927767FF947A69FF957C6CFF977E6FFF998171FF9A8374FF9B85 + 76FF9C8678FF9C8678FF998274FF7D5E49FFE3D9D4FFC5B3A7FF81634EFFB2A1 + 967E00000000000000000000000000000000005A6F7000A9E5E40075AEAE5C90 + A5BD75D0E0FF00BFFAFF0CA3F4FF8A9A91FF3C7492FF03A4E4FF4AD5FFFF98C4 + CBFFB3A196FFB1A197FFB0A096FFB09F95FFAF9D92FFAF9C91FFAD9A8EFFAC99 + 8CFFAB988AFFAB9789FFAA9688FFA99386FFE8E0DAFFC5B4A7FF81634EFFB2A1 + 967E00000000000000000000000000000000000000002DA5BFC110C2FFFF4DD0 + FDFF64DBF9FF00B3FAFF09A8FEFF68D7FFFF04B5FFFF24CCFBFFAFD8CEFFF7DA + B8FFF3DBBBFFF3DBBAFFF2D9B9FFF1D8B7FFF0D7B4FFEED5B2FFF6EADDFFF9F6 + F4FFF7F3F1FFF5F1EEFFF5EFECFFF4EDEAFFF1EBE7FFC6B4A8FF81634EFFB2A1 + 967E00000000000000000000000000000000000000005F8A909142C7E4E960DE + F8FF64D7FAFF00B6FDFF00B8FDFF21B2FDFF1ECCF7FF93EBFCFFD2C69BFFE1AB + 63FFDFAC66FFDFAC66FFDFAC66FFDFAC66FFDFAC66FFDEA961FFEFDBC0FFF8F6 + F5FFF6F2F0FFF3EDEBFFECE2DCFFE9DFD9FFE5DBD6FFC2B1A4FF81634FFFB2A1 + 967E000000000000000000000000000E171A000E171A00040B145994A4A990EB + FCFF61F1F7FF13FAF7FF23F9F7FF93EDF7FF8CE5F8FFD5F2FDFFE9F8FFFFE7F8 + FFFFF0FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFDFEFFFFFAFAF9FFF9F7 + F5FFF7F2F0FFE8DFD8FFC7AE9FFFBEA998FFAF9888FFB09A8AFF7F604DFFB2A1 + 967E00000000000000000000000000AAFFFF00AAFFFF00AAFFFF00A4FFFF00CD + FAFF5DFCF9FFFFFFFFFFEEFEFEFF00FBF7FF00AAFEFF00A1FFFF00A1FFFF00A0 + FFFF56C3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCFDFBFFFCFBFAFFFBFA + F8FFE6DDD6FFAA9180FF5D3922FF603D26FF613E27FF613E28FF634029FFB4A3 + 987E00000000000000000000000000CAFFFF00CAFFFF00CBFFFF00B0FFFF00CD + FBFF38F5F7FFC3EFFAFFF0FFFEFF00FAF7FF00C8F7FF00C2F7FF00C2F7FF00C1 + F7FF57D7FAFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFDFDFCFFFCFC + FBFFE7DED8FFCCB9ACFFE6DBD5FFE2D7D0FFDCCFC5FFD7C5BBFF8E705DFFB4A2 + 9680000000000000000000000000002E383C002E383C00252F364C99B0B57DE8 + FBFF59F1F7FF25F7F7FF41FAF8FF7CEEF7FF77E4F7FFB5EFFCFFC6F2FDFFC3F2 + FDFFD9F6FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFEFEFFFEFE + FEFFE9E1DAFFCEBCAFFFF1E9E3FFEADFD8FFE4D5CCFF9D816FFF3A291F868985 + 831C00000000000000000000000000000000000000004E7073774AB0DADC37C9 + FBFF22D5F7FF00D3F9FF02C3FBFF37D5F7FF34BEFCFFA2E6FAFFECFBFDFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFF + FFFFEAE2DCFFCDBBADFFEADFD8FFE3D5CBFF9F8271FF3E2D2386050100200000 + 000000000000000000000000000000000000000000003E9CC4C219C0FFFF23C9 + FCFF30D3F8FF00BEF8FF06A8FEFF4FDCF8FF00B8FCFF32C2FBFFC0EBFCFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFEAE3DEFFCDB9ABFFDDCEC4FFA58979FF3E2C1F8F0905041B000000000000 + 000000000000000000000000000000000000003451510099DDDB0091C0C35DAD + BCCF76D7E9FF00BEF9FF10A9FBFFBDDEDEFF5AC8DDFF0AB5F7FF62CEFFFFCBE4 + F1FFF1E7E0FFEFE7E1FFEEE6E1FFEEE6E1FFEEE6E0FFEDE6E0FFEDE5E0FFEEE6 + E1FFE1D4CCFFC5AE9FFFA68D7FF53E2718A10402000E00000000000000000000 + 0000000000000000000000000000000000000075B7AF0099C7C500323E425442 + 3B5C6BA8B1DA00C1FCFF0EA1F3F8A98E80C0AB9081C12698B1C10088C4C14C85 + A3C1A18D80C19E8D81C19E8B81C19D8C80C19B8C7FC19B8A7FC19C897FC19A89 + 7EC19B8B7EC1897769C2432B1BAC000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000045565A00C5FFFF0094E6E2000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000FFFFFFFFF0000007F0000007F0000007F000 + 0007F0000007F0000007F0000007F0000007F0000007F0000007F0000007F000 + 0007F0000007F0000007F0000007F0000007F0000007F0000007800000078000 + 0007C0000007C000000700000007000000070000000700000007C000000FC000 + 001F8000003F800000FFF8FFFFFF} + Left = 144 + Top = 112 + end + object JsImprimirDialog: TJSDialog + Content.Strings = ( + 'Elija una opci'#243'n:') + DialogOptions = [doCommandLinks, doModal] + Glyph.Data = { + 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001C00 + 00001C0806000000720DDF940000000970485973000017120000171201679FD2 + 520000000467414D410000B18E7CFB5193000003104944415478DAAD96FB4B14 + 5114C7CFE463DC1E606444BFF54424D3DC55CA52B1CCD7165A219905054182FD + 1452FD5810FD100406610A669A998FC4F5BDB6266265DAB60F5DD15E58FE03B2 + 3F99D29ABBA7B9779C71C61D9D6177CFCE70CFDCB97B3EF7DCF3BD33C38082FD + B502B2B300CC656020048688A24F036233A0671F40D43160BA87BF62AEEE1010 + 60D7AE293AD8B835815E9B625C80DC8F1E88D4A7C1E8C1FB8F9FD6C3C44035B3 + 21500A65F6D700FE2EA580A5EC551F4A50359316B31D76EFDC0EE5F72A645045 + A067AE0623074B8140891108F1057064CC0D556053DF173812B707E6DCF332A8 + 225080D201DB4AF99BF335B4D502F371415BCC364833C4C29F458F0C2A031281 + 081734AB0B3C88403C1E6E3E2E7960F6A8FFD27A7D3EF07A11DA2C76C84A8D87 + A57FCB32E8B8A54A4C8C21B59365C9015996EF2240B6634DF435B51460A46D1F + 70C093AA46BF09C980C12CA914E6F371ADD707EF1DB3B0B0B8006EB79B8EA96B + EA5106121851245129118FD8BFA2DC5C53C6BAF5EBBBBA97C2D64EC064195B1F + 286C76E956A0EA5C51AEB4764A9929F5750D5A9581D2274B9B651C0BA2F514A8 + 6F28E36B70AD9A4253EF97A9AA55B0CEBA87D03B645B3F43C1DE589C58186D10 + 81150FCAC57B11E161B04517099BB953C78643141B01BA28EEE4DAB0B04DE2B8 + CA460B9C399902E661BB3AB0F5AD038BF30CD4D7E7DD14815A61023027DD00EF + 469C1A80FD1C307F1578FD4A81E665945AD68924181A9D5007B6F4DBF1527E32 + F5C9D3632351F8F549AEE916B14EAA039BCD362C31A6040D23E7887D4A03B0CF + 86C5C6641A24BB7646D3F2D51A77F8C1BCDCFFC79CD3EAC0D7BD56AE86294165 + 4660CB5C6B737DD3062CCA31D00069E76E05241862CF1EDD05E7D40F756063CF + 673C7F5A4F679A59541EF03E4C8C3B0893DF67D481AFBAC7B0F05412CD30EBE2 + ED80F7617CEC0198FEF94B1BF06C6622AD4B4EC99D80F7A1666043D7281A3312 + FD84C20B8417C3AA789405239826E0CBCE4F98979E10344C33B0BE630473D312 + 82866906D6993E62F6F1C3F45D160A5305BE68FF8095CF5B4302134CFE1185EA + 1FB8A1B4FF4FE32FF6FADB8B5E0000000049454E44AE426082} + Instruction.Text = 'Imprimir...' + Instruction.Glyph.Data = { + 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001C00 + 00001C0806000000720DDF940000000970485973000017120000171201679FD2 + 520000000467414D410000B18E7CFB5193000003104944415478DAAD96FB4B14 + 5114C7CFE463DC1E606444BFF54424D3DC55CA52B1CCD7165A219905054182FD + 1452FD5810FD100406610A669A998FC4F5BDB6266265DAB60F5DD15E58FE03B2 + 3F99D29ABBA7B9779C71C61D9D6177CFCE70CFDCB97B3EF7DCF3BD33C38082FD + B502B2B300CC656020048688A24F036233A0671F40D43160BA87BF62AEEE1010 + 60D7AE293AD8B835815E9B625C80DC8F1E88D4A7C1E8C1FB8F9FD6C3C44035B3 + 21500A65F6D700FE2EA580A5EC551F4A50359316B31D76EFDC0EE5F72A645045 + A067AE0623074B8140891108F1057064CC0D556053DF173812B707E6DCF332A8 + 225080D201DB4AF99BF335B4D502F371415BCC364833C4C29F458F0C2A031281 + 081734AB0B3C88403C1E6E3E2E7960F6A8FFD27A7D3EF07A11DA2C76C84A8D87 + A57FCB32E8B8A54A4C8C21B59365C9015996EF2240B6634DF435B51460A46D1F + 70C093AA46BF09C980C12CA914E6F371ADD707EF1DB3B0B0B8006EB79B8EA96B + EA5106121851245129118FD8BFA2DC5C53C6BAF5EBBBBA97C2D64EC064195B1F + 286C76E956A0EA5C51AEB4764A9929F5750D5A9581D2274B9B651C0BA2F514A8 + 6F28E36B70AD9A4253EF97A9AA55B0CEBA87D03B645B3F43C1DE589C58186D10 + 81150FCAC57B11E161B04517099BB953C78643141B01BA28EEE4DAB0B04DE2B8 + CA460B9C399902E661BB3AB0F5AD038BF30CD4D7E7DD14815A61023027DD00EF + 469C1A80FD1C307F1578FD4A81E665945AD68924181A9D5007B6F4DBF1527E32 + F5C9D3632351F8F549AEE916B14EAA039BCD362C31A6040D23E7887D4A03B0CF + 86C5C6641A24BB7646D3F2D51A77F8C1BCDCFFC79CD3EAC0D7BD56AE86294165 + 4660CB5C6B737DD3062CCA31D00069E76E05241862CF1EDD05E7D40F756063CF + 673C7F5A4F679A59541EF03E4C8C3B0893DF67D481AFBAC7B0F05412CD30EBE2 + ED80F7617CEC0198FEF94B1BF06C6622AD4B4EC99D80F7A1666043D7281A3312 + FD84C20B8417C3AA789405239826E0CBCE4F98979E10344C33B0BE630473D312 + 82866906D6993E62F6F1C3F45D160A5305BE68FF8095CF5B4302134CFE1185EA + 1FB8A1B4FF4FE32FF6FADB8B5E0000000049454E44AE426082} + Instruction.Icon = tdiCustom + CustomButtons = < + item + Caption = 'Imprimir el albaran/es seleccionado/s' + Value = 100 + Default = True + end + item + Caption = 'Imprimir la lista de albaranes actual' + Value = 200 + end> + ButtonBar.Buttons = [cbCancel] + MainIcon = tdiCustom + Title = 'FactuGES' + Position = dpMainFormCenter + Icon.Data = { + 0000010003002020100001000400E8020000360000002020000001000800A808 + 00001E0300002020000001002000A8100000C60B000028000000200000004000 + 0000010004000000000000020000000000000000000000000000000000000000 + 000000008000008000000080800080000000800080008080000080808000C0C0 + C0000000FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFFFF000000 + 0000000000000000000000000000000008777777777777777777777700000000 + 0877767777677776777767760000000008F88888888888888888888700000000 + 08F8FF8F8F888888888888860000000008FF8F8F88F8F8888888888C00000000 + 08F88888F8888888888888860000000008F8688878E8888E88E8788700000000 + 08F8688888F8F8FFFFFF88760000000008FF4888888F8FFFFFFF788700000000 + 08F8676767677677677658E50000000008FF8888888887878787888700000000 + 08FF8887887E8888888888860000000008FFE8E8E788C8E8FF8F8F8600000000 + 08FFF8F8F8F8FF8F88F8F8870000000008FFFFFF8FF8F8F8F88F888600000000 + 0FF8477878787878788788860000000008FF68888888F8FF8F8F788700000000 + 08B7588888FF8FFFFFFF78860000083008BB47887776777777776F86000000B7 + 8B9B73BB88788787E87878870000008BB8B9BB78888888EFF8F8FF8600000087 + B8BB8B888E8E8E88FFF8F886000000088BBB888FFFFFFFFFF8F877770000B9BB + B8FFBB9B9BFFFFFFF87466460000BBB9BB8FBBBBB8FFFFFFF88F888700000008 + B8BB88888FFFFFFFF88F8F7700000008BBBBBB8FFFFFFFFFFF8887700000007B + B7B98BB8FFFFFFFFF8887700000000B78B9B87B888F88F88F8877000000007B0 + 08BB883B78888788787700000000000000B9000000000000000000000000FFFF + FFFFF800000FF800000FF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000FF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000F9800000FC000000FC000000FC000000FE000000F0000 + 000F0000000FE000000FE000001FC000003FC000007F980000FFFCFFFFFF2800 + 0000200000004000000001000800000000000004000000000000000000000001 + 00000001000000000000694731007C5D49007E604C0081635000826451008567 + 540085685500886B5900896D5B008A6E5D008B705F008E715F008B7260008C72 + 61008E74640084766C00957A6900977D6D00887B72009A8171009D8272009C84 + 76009D8778009F897B00A28A7900A08B7D00A18C7E00E1B06E00E1B67D003E7A + 970073A0A5007AA2B70074AFBD007BB2BB003CAACE0028A5DB0020ADDF000D9A + E500209EE3000DA6E2001AA4EF0000A6FF000CABFE0009ACFE0010A4F10015AC + FA0000B5FB0000B0FD000CB6FC0000BFF90000BAFD0004BAFD0009BBFB0013B6 + F40015BFFA001CBDFB0026B7FD00589EC50040A4CD0040ABCC0050A2C7005DAE + C00060A3C20062A4C60060B7CB006AB0CD007BB6C80077BAC80061BADD0044AD + E50000C3F80007C6FB0000CAF80000CFFB0000D4F90026C8FA0026CDF8002BCC + F90039C4FB0039C2FC0039CAFA003FCFFB0024D6F80030D2F80039D5F80000F8 + F8001FF8F8002CF6F8003EF4F8005AC6DC0070CDDF0052C0E40054C9E3004DCE + FA005FC7FF004FD2FB004DD9F8005FD9FB006ED3E70063CDFE0060D1FB0060D8 + F90060DDF80046F8F90056F0F8005FFAFA0073E3F80073E4F90073EEF80060F1 + F800958A84009A918C0081999500A68F8200AD968500A3968C00AE988900AD9A + 8D00B19A8B00AF9C9000B09E9200B59F9200B7A29300B2A19600B5A19400B7A4 + 9700BDA79700B4A39800B1A59D00B4A79F00BAA69800BCA79900B4A89F00BCA8 + 9900BAA89C00BDAA9D00BEAC9E0083ADBD00B5A9A100BDABA000BEADA100BFAF + A500A0BABE00C0AB9E00C1AC9E00C6AE9F00E2B98100E4BA8300E4BB8400E5BC + 8500E1BD8E00E3BF9000C0ADA000C2B0A300C2B1A500C4B2A600C1B2A800C3B5 + AB00C8B4A800CCB9AD00CEBCB100D0BEB200D1BFB400E4C19300E5C29400E6C4 + 9600E8C69900D0C9A300CFC1B800D2C1B600D3C3B800D5C4B900D6C6BC00D8C6 + BC00D6C8BE00DAC9BF00ECD3B000EDD4B200EFD6B500E7D1B800E7D3BD00F0D8 + B6008CB7C40080BEC70097C3C70099C3C900ABD7CF00AFD9DD0086E3F90086E7 + F90086ECF8009EE5FB0090E8F900ACEDFC00BCEAFD00BCF1FB00BFF1FD00D7C9 + C000D9CAC100DCCBC200DACCC200DDCCC300DACCC400DDCEC400DED0C600DED1 + C900DED3CC00DFD4CD00E1D1C900E2D5CD00F0DCC200E3D8D200E5D9D200E2DA + D500E6DBD400E5DCD500E8DDD600E6DDD800E9DFD900E6E0DB00EAE0DA00EAE2 + DD00ECE3DE00EBE4DE00ECE4DE00F3E7D900C6E1EF00C9EFFD00D7F6FD00DFF3 + FF00DFFEFE00EBE7E300EDE6E100EFE7E400EEE8E400F0EAE600F2EDE900F2EE + EC00F4EFEC00F5F0EE00F9F4ED00E7FAFD00EBF8FF00F6F2F000F7F4F100F8F4 + F200F9F7F500FAF8F600FBF9F900FCFBFA00FCFCFB00FEFEFE00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000007D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D + 0D0D0000000000000000009C9C19191919191919191919191919191919191919 + 1903000000000000000000ABDECBCBC7C7AFABABABABAAA3A2A2A0A0A0A0A0A0 + 8607000000000000000000ABECEAE9DEDEDEDED7D5D2D2D2CBCBCBCBB0CBB0CB + 9007000000000000000000ABEDECEAE9DEDEDBD7D7D5D2D2D2CDCDCBB0B0B0B0 + 9007000000000000000000AFEDE9A9CFD2CFD2CDCBCBCBB0B0ABACA3A3A3A3B0 + 9007000000000000000000AFF0D5017783838386868686869099909999907BB0 + 9007000000000000000000B0F4D501A0B0CBD2D5DEECEDF7FAFAFAFAFAF77BAA + 9007000000000000000000CBF4DC01A0B0B0B0D2D5DBEAEDF7FAFAFAFAF47BB0 + 9007000000000000000000CBF8DC010404070604090909090D0D110D110D02A3 + 9007000000000000000000CBFAED9E9E9E9C999E8C8C8C868683837E7D7D7ACB + 9007000000000000000000CBFAF1A7A7A6A6A6A69898989898B5DBDBD5D5D2D2 + 9907000000000000000000CDFAF796969696961D961D931D1DB4DEDBD7D5D5D2 + 9C07000000000000000000CFFAFAFAFAF8F7F0F0EDEDEDECE9E9DEDEDED7D5D5 + 9907000000000000000000CDFAFAEAF0EDEDECEAEAE9DEDEDBDCD5D5D5D5D2D5 + 9C07000000000000000000D2FAEC01737D7D7B7D7D7B7D7B7D7B7B7B7D7B7DD2 + 9907000000000000000000CFFAEC019EABB0CBD2D5DCDEECEDF4F4F4F4EA7BD2 + 9C07000000000000000000B9524601A0B0B0CBB5D5DEEAEDF7FAFAFAFAF47DD5 + 9C070000000000213F0000B83226010C3F5C1F111214141616191B1B1B1807D2 + 9C07000000000000253D8A5B322D711E2860BA7E7E7A7E797A797979767676D5 + 9E0700000000000041375E662F2B65314EBBB6B6B6B6B4B4B1E2F4EDEDEDECEA + 9C070000000000008F5D66663232394EC1A81C1C1C1C1C1C1CD3F7F4EDDED7D5 + 9C0700000000000000B7BE6E5758BEBDE4E6E6F3FAFAFAFAFAFAF7F4D5928675 + 7304000000002A2A2A2A4A6AFAE7562F2A2A2A5FFAFAFAFAFAFAF8D577010101 + 0101000000004747472F4A59C5E7564A32474766FAFAFAFAFAFAFADCA0D2CFB0 + A20C00000000000000436C6958686D6BC2C5C5E7FAFAFAFAFAFAFADEAADEDBCB + 1470000000000000004551534A4A5250C0E7FAFAFAFAFAFAFAFAFADEAAD7B514 + 700000000000000042384C54472B613550C3FAFAFAFAFAFAFAFAFADEA1B0196F + 000000000000000024234463322EBC5A3664E3ECE9E9E9E9E9E9E9CF90731300 + 000000000000003A3C00002232298B8B3E3B207E8B7E8B7E827E817E74100000 + 0000000000000000000000003227000000000000000000000000000000000000 + 000000000000FFFFFFFFF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000FF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000FF800000FF800000F9800000FC000000FC000000FC000 + 000FE000000F0000000F0000000FE000000FE000001FC000003FC000007F9800 + 00FFFCFFFFFF2800000020000000400000000100200000000000801000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000007067 + 5F70AA9382E570513CE3735540E3735540E3735540E3735540E3735540E37355 + 40E3735540E3735540E3735540E3735540E3735540E3735540E3735540E37355 + 40E3735540E3735540E3735540E3735540E3735540E3735540E372533EE5BAAB + A070000000000000000000000000000000000000000000000000000000005E54 + 4C7FCAB7ABFFC5B5AAFFA18877FFA28A78FFA28A79FFA28A79FFA28A79FFA28A + 79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A + 79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA58D7CFF7A5B46FFB2A1 + 967F000000000000000000000000000000000000000000000000000000006055 + 4D7ED7C6BBFFEDE4E0FFD9CCC4FFD9CCC4FFD9CBC3FFD8CAC1FFD7C9BFFFD6C7 + BDFFD5C6BBFFD4C4BAFFD3C3B8FFD2C1B7FFD1C0B5FFD0BEB3FFCFBDB2FFCEBC + B0FFCEBBAFFFCEBBAFFFCEBBAFFFCEBBAFFFCEBCB0FFBEAA9CFF82644FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006056 + 4D7ED7C8BCFFF2EBE8FFEFE9E5FFEEE7E2FFECE5E0FFEBE2DEFFEAE0DBFFE9DE + D8FFE7DBD4FFE5D9D1FFE3D7CFFFE2D4CCFFE1D2C9FFDFD0C7FFDDCDC4FFDCCB + C2FFDBC9BFFFDBC9BFFFDBC9BFFFDBC9BFFFDCCAC1FFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006155 + 4E7ED8C9BDFFF3EDE9FFF1EAE6FFF0E9E6FFEEE6E1FFECE4DFFFEBE2DDFFEAE0 + DAFFE9DED7FFE7DBD4FFE5D9D1FFE3D7CFFFE2D4CCFFE1D2C9FFDFD0C7FFDDCD + C4FFDCCBC2FFDBC9BFFFDBC9BFFFDBC9BFFFDCCAC0FFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006157 + 4E7ED9C9BFFFF4EFEDFFEFE8E3FFD0C2B9FFDFD5CEFFE0D5CEFFE0D4CCFFDED3 + CBFFDDD1C8FFDCCFC6FFDACCC4FFD9CBC1FFD8C9BFFFD7C7BDFFD6C5BBFFD5C4 + B9FFD3C2B7FFD2C0B5FFD2BFB4FFD2BFB4FFDAC8BEFFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006256 + 4F7EDACCC0FFF5F2EFFFE5DDD9FF5C3821FFB0998AFFB8A394FFB8A394FFB9A3 + 94FFB8A495FFB9A597FFB9A698FFBAA698FFBBA799FFBBA89AFFBBA89BFFBCA8 + 9BFFBCA89BFFBCA89BFFBBA89AFFB49E8FFFD8C6BBFFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006256 + 4F7EDBCBC1FFF8F4F3FFE7E0DBFF5F3C24FFD0BDB2FFDCCBC1FFDDCCC3FFE2D2 + CBFFE7DBD4FFEDE2DEFFF0E8E6FFF5F0EDFFF9F7F4FFFDFDFDFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFAF8F7FFB39D8DFFD8C6BBFFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006256 + 4F7EDCCEC3FFFAF6F5FFE9E2DDFF5F3C24FFD2BFB5FFDFCDC4FFDECCC3FFE0CE + C6FFE4D4CDFFE9DDD6FFEFE4E0FFF1EAE8FFF7F1EFFFFBF8F6FFFFFEFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFCFBFAFFB5A090FFD9C7BEFFC1AD9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006257 + 4F7EDDCFC4FFFCF9F9FFE9E4E0FF5F3A23FF7C5D49FF7F5F4CFF7E5F4CFF7E60 + 4DFF7F614DFF816350FF826552FF836654FF846856FF856A57FF866B59FF876C + 5BFF876D5BFF876D5BFF866B59FF72523DFFD5C3B9FFC1AFA1FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006357 + 507EDECFC6FFFCFCFBFFF4F1F0FFC3B6AEFFC3B5ADFFC1B4ACFFC0B3AAFFBFB1 + A9FFBEB0A6FFBDAEA5FFBDACA3FFBCABA2FFBBAAA0FFBAA99FFFB8A69AFFB8A4 + 98FFB6A396FFB5A194FFB49F93FFB39D90FFDCCDC4FFC2AEA1FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006357 + 507EDFD2C7FFFEFEFDFFF9F5EFFFE8C696FFE9C799FFE8C697FFE7C596FFE7C4 + 95FFE6C394FFE5C293FFE4C091FFE4C090FFE3BF8FFFE2BD8CFFE9D5BFFFEBE1 + DCFFEADFD8FFE7DCD5FFE5DAD3FFE4D8D0FFE3D4CCFFC2AFA2FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006458 + 517EE0D3C8FFFFFFFFFFFAF5EFFFE3B77CFFE4B97FFFE2B87EFFE3B77DFFE2B7 + 7CFFE2B67BFFE1B57AFFE1B479FFE0B478FFE0B377FFDFB174FFE6D0B7FFEBE1 + DCFFE8DFD9FFE8DDD6FFE6D9D2FFE3D8D1FFE4D7CFFFC3AFA2FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006458 + 517EE1D2C9FFFFFFFFFFFEFEFDFFFEFFFFFFFCFDFEFFFBFBFBFFF9F7F8FFF8F5 + F6FFF7F3F2FFF5F1F0FFF4EFEEFFF1EDEBFFF0EBE9FFEEE9E6FFEDE6E2FFECE3 + DEFFEBE1DBFFE9DFD9FFE8DDD6FFE6DAD3FFE5D9D2FFC3B0A3FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006459 + 517EE1D4CAFFFFFFFFFFFDFDFCFFEEEBE8FFF5F2F0FFF4F0EFFFF3EFECFFF2ED + EAFFF1EBE8FFEEE9E5FFEFE7E3FFECE5E1FFEAE4DEFFEAE1DCFFE8E0DAFFE7DE + D8FFE6DDD6FFE5DBD4FFE4D8D1FFE2D6CEFFE6DBD4FFC3B1A4FF81634EFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006559 + 527EE2D4CAFFFFFFFFFFF0ECEAFF5B361EFFAB9383FFB39D8EFFB39D8DFFB39D + 8DFFB29D8DFFB29C8DFFB29C8CFFB29C8CFFB29C8CFFB29C8CFFB29C8CFFB29C + 8CFFB29C8CFFB29C8CFFB29C8DFFB39D8EFFE3D8D0FFC4B1A4FF81634EFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006559 + 527EE5D4CAFFFFFFFFFFF7F0EBFF5F3B24FFCCB8ADFFD7C5BAFFD9C7BDFFDCCC + C3FFE1D4CCFFE5DAD4FFE8E0DBFFEDE5E1FFF1EBE9FFF5F2EFFFF7F5F3FFF8F6 + F4FFF8F5F4FFF8F6F4FFF1EEEAFFB29C8DFFE6DAD3FFC4B2A5FF81634EFFB2A1 + 967E00000000000000000000000000000000000000000000000000000000685A + 527E9AC6C9FF35CFFEFF3DAEEBFF663E24FFD2BFB4FFE0CBBFFFE0C9BDFFE1CD + C4FFE4D5CDFFE9DED7FFEEE5E0FFF2EBE8FFF6F2F0FFFCF8F8FFFFFFFEFFFFFF + FFFFFFFFFFFFFFFFFFFFFCFAF9FFB49E8FFFE7DED7FFC5B3A6FF81634EFFB2A1 + 967E00000000000000000000000000000000007792910072A7A3001E33366957 + 4C7C86C1C8FF00BFFBFF079AEBFF6A3E23FF926D57FF5FA3C8FF4AC1E8FF6C9C + A2FF917260FF927767FF947A69FF957C6CFF977E6FFF998171FF9A8374FF9B85 + 76FF9C8678FF9C8678FF998274FF7D5E49FFE3D9D4FFC5B3A7FF81634EFFB2A1 + 967E00000000000000000000000000000000005A6F7000A9E5E40075AEAE5C90 + A5BD75D0E0FF00BFFAFF0CA3F4FF8A9A91FF3C7492FF03A4E4FF4AD5FFFF98C4 + CBFFB3A196FFB1A197FFB0A096FFB09F95FFAF9D92FFAF9C91FFAD9A8EFFAC99 + 8CFFAB988AFFAB9789FFAA9688FFA99386FFE8E0DAFFC5B4A7FF81634EFFB2A1 + 967E00000000000000000000000000000000000000002DA5BFC110C2FFFF4DD0 + FDFF64DBF9FF00B3FAFF09A8FEFF68D7FFFF04B5FFFF24CCFBFFAFD8CEFFF7DA + B8FFF3DBBBFFF3DBBAFFF2D9B9FFF1D8B7FFF0D7B4FFEED5B2FFF6EADDFFF9F6 + F4FFF7F3F1FFF5F1EEFFF5EFECFFF4EDEAFFF1EBE7FFC6B4A8FF81634EFFB2A1 + 967E00000000000000000000000000000000000000005F8A909142C7E4E960DE + F8FF64D7FAFF00B6FDFF00B8FDFF21B2FDFF1ECCF7FF93EBFCFFD2C69BFFE1AB + 63FFDFAC66FFDFAC66FFDFAC66FFDFAC66FFDFAC66FFDEA961FFEFDBC0FFF8F6 + F5FFF6F2F0FFF3EDEBFFECE2DCFFE9DFD9FFE5DBD6FFC2B1A4FF81634FFFB2A1 + 967E000000000000000000000000000E171A000E171A00040B145994A4A990EB + FCFF61F1F7FF13FAF7FF23F9F7FF93EDF7FF8CE5F8FFD5F2FDFFE9F8FFFFE7F8 + FFFFF0FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFDFEFFFFFAFAF9FFF9F7 + F5FFF7F2F0FFE8DFD8FFC7AE9FFFBEA998FFAF9888FFB09A8AFF7F604DFFB2A1 + 967E00000000000000000000000000AAFFFF00AAFFFF00AAFFFF00A4FFFF00CD + FAFF5DFCF9FFFFFFFFFFEEFEFEFF00FBF7FF00AAFEFF00A1FFFF00A1FFFF00A0 + FFFF56C3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCFDFBFFFCFBFAFFFBFA + F8FFE6DDD6FFAA9180FF5D3922FF603D26FF613E27FF613E28FF634029FFB4A3 + 987E00000000000000000000000000CAFFFF00CAFFFF00CBFFFF00B0FFFF00CD + FBFF38F5F7FFC3EFFAFFF0FFFEFF00FAF7FF00C8F7FF00C2F7FF00C2F7FF00C1 + F7FF57D7FAFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFDFDFCFFFCFC + FBFFE7DED8FFCCB9ACFFE6DBD5FFE2D7D0FFDCCFC5FFD7C5BBFF8E705DFFB4A2 + 9680000000000000000000000000002E383C002E383C00252F364C99B0B57DE8 + FBFF59F1F7FF25F7F7FF41FAF8FF7CEEF7FF77E4F7FFB5EFFCFFC6F2FDFFC3F2 + FDFFD9F6FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFEFEFFFEFE + FEFFE9E1DAFFCEBCAFFFF1E9E3FFEADFD8FFE4D5CCFF9D816FFF3A291F868985 + 831C00000000000000000000000000000000000000004E7073774AB0DADC37C9 + FBFF22D5F7FF00D3F9FF02C3FBFF37D5F7FF34BEFCFFA2E6FAFFECFBFDFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFF + FFFFEAE2DCFFCDBBADFFEADFD8FFE3D5CBFF9F8271FF3E2D2386050100200000 + 000000000000000000000000000000000000000000003E9CC4C219C0FFFF23C9 + FCFF30D3F8FF00BEF8FF06A8FEFF4FDCF8FF00B8FCFF32C2FBFFC0EBFCFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFEAE3DEFFCDB9ABFFDDCEC4FFA58979FF3E2C1F8F0905041B000000000000 + 000000000000000000000000000000000000003451510099DDDB0091C0C35DAD + BCCF76D7E9FF00BEF9FF10A9FBFFBDDEDEFF5AC8DDFF0AB5F7FF62CEFFFFCBE4 + F1FFF1E7E0FFEFE7E1FFEEE6E1FFEEE6E1FFEEE6E0FFEDE6E0FFEDE5E0FFEEE6 + E1FFE1D4CCFFC5AE9FFFA68D7FF53E2718A10402000E00000000000000000000 + 0000000000000000000000000000000000000075B7AF0099C7C500323E425442 + 3B5C6BA8B1DA00C1FCFF0EA1F3F8A98E80C0AB9081C12698B1C10088C4C14C85 + A3C1A18D80C19E8D81C19E8B81C19D8C80C19B8C7FC19B8A7FC19C897FC19A89 + 7EC19B8B7EC1897769C2432B1BAC000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000045565A00C5FFFF0094E6E2000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000FFFFFFFFF0000007F0000007F0000007F000 + 0007F0000007F0000007F0000007F0000007F0000007F0000007F0000007F000 + 0007F0000007F0000007F0000007F0000007F0000007F0000007800000078000 + 0007C0000007C000000700000007000000070000000700000007C000000FC000 + 001F8000003F800000FFF8FFFFFF} + Width = 500 + Left = 264 + Top = 112 + end + object JsPrevisualizarDialog: TJSDialog + Content.Strings = ( + 'Elija una opci'#243'n:') + DialogOptions = [doCommandLinks, doModal] + Glyph.Data = { + 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001C00 + 00001C0806000000720DDF940000000970485973000017120000171201679FD2 + 520000000467414D410000B18E7CFB5193000003104944415478DAAD96FB4B14 + 5114C7CFE463DC1E606444BFF54424D3DC55CA52B1CCD7165A219905054182FD + 1452FD5810FD100406610A669A998FC4F5BDB6266265DAB60F5DD15E58FE03B2 + 3F99D29ABBA7B9779C71C61D9D6177CFCE70CFDCB97B3EF7DCF3BD33C38082FD + B502B2B300CC656020048688A24F036233A0671F40D43160BA87BF62AEEE1010 + 60D7AE293AD8B835815E9B625C80DC8F1E88D4A7C1E8C1FB8F9FD6C3C44035B3 + 21500A65F6D700FE2EA580A5EC551F4A50359316B31D76EFDC0EE5F72A645045 + A067AE0623074B8140891108F1057064CC0D556053DF173812B707E6DCF332A8 + 225080D201DB4AF99BF335B4D502F371415BCC364833C4C29F458F0C2A031281 + 081734AB0B3C88403C1E6E3E2E7960F6A8FFD27A7D3EF07A11DA2C76C84A8D87 + A57FCB32E8B8A54A4C8C21B59365C9015996EF2240B6634DF435B51460A46D1F + 70C093AA46BF09C980C12CA914E6F371ADD707EF1DB3B0B0B8006EB79B8EA96B + EA5106121851245129118FD8BFA2DC5C53C6BAF5EBBBBA97C2D64EC064195B1F + 286C76E956A0EA5C51AEB4764A9929F5750D5A9581D2274B9B651C0BA2F514A8 + 6F28E36B70AD9A4253EF97A9AA55B0CEBA87D03B645B3F43C1DE589C58186D10 + 81150FCAC57B11E161B04517099BB953C78643141B01BA28EEE4DAB0B04DE2B8 + CA460B9C399902E661BB3AB0F5AD038BF30CD4D7E7DD14815A61023027DD00EF + 469C1A80FD1C307F1578FD4A81E665945AD68924181A9D5007B6F4DBF1527E32 + F5C9D3632351F8F549AEE916B14EAA039BCD362C31A6040D23E7887D4A03B0CF + 86C5C6641A24BB7646D3F2D51A77F8C1BCDCFFC79CD3EAC0D7BD56AE86294165 + 4660CB5C6B737DD3062CCA31D00069E76E05241862CF1EDD05E7D40F756063CF + 673C7F5A4F679A59541EF03E4C8C3B0893DF67D481AFBAC7B0F05412CD30EBE2 + ED80F7617CEC0198FEF94B1BF06C6622AD4B4EC99D80F7A1666043D7281A3312 + FD84C20B8417C3AA789405239826E0CBCE4F98979E10344C33B0BE630473D312 + 82866906D6993E62F6F1C3F45D160A5305BE68FF8095CF5B4302134CFE1185EA + 1FB8A1B4FF4FE32FF6FADB8B5E0000000049454E44AE426082} + Instruction.Text = 'Previsualizar...' + Instruction.Glyph.Data = { + 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001C00 + 00001C0806000000720DDF940000000970485973000017120000171201679FD2 + 520000000467414D410000B18E7CFB5193000003104944415478DAAD96FB4B14 + 5114C7CFE463DC1E606444BFF54424D3DC55CA52B1CCD7165A219905054182FD + 1452FD5810FD100406610A669A998FC4F5BDB6266265DAB60F5DD15E58FE03B2 + 3F99D29ABBA7B9779C71C61D9D6177CFCE70CFDCB97B3EF7DCF3BD33C38082FD + B502B2B300CC656020048688A24F036233A0671F40D43160BA87BF62AEEE1010 + 60D7AE293AD8B835815E9B625C80DC8F1E88D4A7C1E8C1FB8F9FD6C3C44035B3 + 21500A65F6D700FE2EA580A5EC551F4A50359316B31D76EFDC0EE5F72A645045 + A067AE0623074B8140891108F1057064CC0D556053DF173812B707E6DCF332A8 + 225080D201DB4AF99BF335B4D502F371415BCC364833C4C29F458F0C2A031281 + 081734AB0B3C88403C1E6E3E2E7960F6A8FFD27A7D3EF07A11DA2C76C84A8D87 + A57FCB32E8B8A54A4C8C21B59365C9015996EF2240B6634DF435B51460A46D1F + 70C093AA46BF09C980C12CA914E6F371ADD707EF1DB3B0B0B8006EB79B8EA96B + EA5106121851245129118FD8BFA2DC5C53C6BAF5EBBBBA97C2D64EC064195B1F + 286C76E956A0EA5C51AEB4764A9929F5750D5A9581D2274B9B651C0BA2F514A8 + 6F28E36B70AD9A4253EF97A9AA55B0CEBA87D03B645B3F43C1DE589C58186D10 + 81150FCAC57B11E161B04517099BB953C78643141B01BA28EEE4DAB0B04DE2B8 + CA460B9C399902E661BB3AB0F5AD038BF30CD4D7E7DD14815A61023027DD00EF + 469C1A80FD1C307F1578FD4A81E665945AD68924181A9D5007B6F4DBF1527E32 + F5C9D3632351F8F549AEE916B14EAA039BCD362C31A6040D23E7887D4A03B0CF + 86C5C6641A24BB7646D3F2D51A77F8C1BCDCFFC79CD3EAC0D7BD56AE86294165 + 4660CB5C6B737DD3062CCA31D00069E76E05241862CF1EDD05E7D40F756063CF + 673C7F5A4F679A59541EF03E4C8C3B0893DF67D481AFBAC7B0F05412CD30EBE2 + ED80F7617CEC0198FEF94B1BF06C6622AD4B4EC99D80F7A1666043D7281A3312 + FD84C20B8417C3AA789405239826E0CBCE4F98979E10344C33B0BE630473D312 + 82866906D6993E62F6F1C3F45D160A5305BE68FF8095CF5B4302134CFE1185EA + 1FB8A1B4FF4FE32FF6FADB8B5E0000000049454E44AE426082} + Instruction.Icon = tdiCustom + CustomButtons = < + item + Caption = 'Previsualizar el albaran/es seleccionado/s' + Value = 100 + Default = True + end + item + Caption = 'Previsualizar la lista de albaranes actual' + Value = 200 + end> + ButtonBar.Buttons = [cbCancel] + MainIcon = tdiCustom + Title = 'FactuGES' + Position = dpMainFormCenter + Icon.Data = { + 0000010003002020100001000400E8020000360000002020000001000800A808 + 00001E0300002020000001002000A8100000C60B000028000000200000004000 + 0000010004000000000000020000000000000000000000000000000000000000 + 000000008000008000000080800080000000800080008080000080808000C0C0 + C0000000FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFFFF000000 + 0000000000000000000000000000000008777777777777777777777700000000 + 0877767777677776777767760000000008F88888888888888888888700000000 + 08F8FF8F8F888888888888860000000008FF8F8F88F8F8888888888C00000000 + 08F88888F8888888888888860000000008F8688878E8888E88E8788700000000 + 08F8688888F8F8FFFFFF88760000000008FF4888888F8FFFFFFF788700000000 + 08F8676767677677677658E50000000008FF8888888887878787888700000000 + 08FF8887887E8888888888860000000008FFE8E8E788C8E8FF8F8F8600000000 + 08FFF8F8F8F8FF8F88F8F8870000000008FFFFFF8FF8F8F8F88F888600000000 + 0FF8477878787878788788860000000008FF68888888F8FF8F8F788700000000 + 08B7588888FF8FFFFFFF78860000083008BB47887776777777776F86000000B7 + 8B9B73BB88788787E87878870000008BB8B9BB78888888EFF8F8FF8600000087 + B8BB8B888E8E8E88FFF8F886000000088BBB888FFFFFFFFFF8F877770000B9BB + B8FFBB9B9BFFFFFFF87466460000BBB9BB8FBBBBB8FFFFFFF88F888700000008 + B8BB88888FFFFFFFF88F8F7700000008BBBBBB8FFFFFFFFFFF8887700000007B + B7B98BB8FFFFFFFFF8887700000000B78B9B87B888F88F88F8877000000007B0 + 08BB883B78888788787700000000000000B9000000000000000000000000FFFF + FFFFF800000FF800000FF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000FF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000F9800000FC000000FC000000FC000000FE000000F0000 + 000F0000000FE000000FE000001FC000003FC000007F980000FFFCFFFFFF2800 + 0000200000004000000001000800000000000004000000000000000000000001 + 00000001000000000000694731007C5D49007E604C0081635000826451008567 + 540085685500886B5900896D5B008A6E5D008B705F008E715F008B7260008C72 + 61008E74640084766C00957A6900977D6D00887B72009A8171009D8272009C84 + 76009D8778009F897B00A28A7900A08B7D00A18C7E00E1B06E00E1B67D003E7A + 970073A0A5007AA2B70074AFBD007BB2BB003CAACE0028A5DB0020ADDF000D9A + E500209EE3000DA6E2001AA4EF0000A6FF000CABFE0009ACFE0010A4F10015AC + FA0000B5FB0000B0FD000CB6FC0000BFF90000BAFD0004BAFD0009BBFB0013B6 + F40015BFFA001CBDFB0026B7FD00589EC50040A4CD0040ABCC0050A2C7005DAE + C00060A3C20062A4C60060B7CB006AB0CD007BB6C80077BAC80061BADD0044AD + E50000C3F80007C6FB0000CAF80000CFFB0000D4F90026C8FA0026CDF8002BCC + F90039C4FB0039C2FC0039CAFA003FCFFB0024D6F80030D2F80039D5F80000F8 + F8001FF8F8002CF6F8003EF4F8005AC6DC0070CDDF0052C0E40054C9E3004DCE + FA005FC7FF004FD2FB004DD9F8005FD9FB006ED3E70063CDFE0060D1FB0060D8 + F90060DDF80046F8F90056F0F8005FFAFA0073E3F80073E4F90073EEF80060F1 + F800958A84009A918C0081999500A68F8200AD968500A3968C00AE988900AD9A + 8D00B19A8B00AF9C9000B09E9200B59F9200B7A29300B2A19600B5A19400B7A4 + 9700BDA79700B4A39800B1A59D00B4A79F00BAA69800BCA79900B4A89F00BCA8 + 9900BAA89C00BDAA9D00BEAC9E0083ADBD00B5A9A100BDABA000BEADA100BFAF + A500A0BABE00C0AB9E00C1AC9E00C6AE9F00E2B98100E4BA8300E4BB8400E5BC + 8500E1BD8E00E3BF9000C0ADA000C2B0A300C2B1A500C4B2A600C1B2A800C3B5 + AB00C8B4A800CCB9AD00CEBCB100D0BEB200D1BFB400E4C19300E5C29400E6C4 + 9600E8C69900D0C9A300CFC1B800D2C1B600D3C3B800D5C4B900D6C6BC00D8C6 + BC00D6C8BE00DAC9BF00ECD3B000EDD4B200EFD6B500E7D1B800E7D3BD00F0D8 + B6008CB7C40080BEC70097C3C70099C3C900ABD7CF00AFD9DD0086E3F90086E7 + F90086ECF8009EE5FB0090E8F900ACEDFC00BCEAFD00BCF1FB00BFF1FD00D7C9 + C000D9CAC100DCCBC200DACCC200DDCCC300DACCC400DDCEC400DED0C600DED1 + C900DED3CC00DFD4CD00E1D1C900E2D5CD00F0DCC200E3D8D200E5D9D200E2DA + D500E6DBD400E5DCD500E8DDD600E6DDD800E9DFD900E6E0DB00EAE0DA00EAE2 + DD00ECE3DE00EBE4DE00ECE4DE00F3E7D900C6E1EF00C9EFFD00D7F6FD00DFF3 + FF00DFFEFE00EBE7E300EDE6E100EFE7E400EEE8E400F0EAE600F2EDE900F2EE + EC00F4EFEC00F5F0EE00F9F4ED00E7FAFD00EBF8FF00F6F2F000F7F4F100F8F4 + F200F9F7F500FAF8F600FBF9F900FCFBFA00FCFCFB00FEFEFE00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000007D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D + 0D0D0000000000000000009C9C19191919191919191919191919191919191919 + 1903000000000000000000ABDECBCBC7C7AFABABABABAAA3A2A2A0A0A0A0A0A0 + 8607000000000000000000ABECEAE9DEDEDEDED7D5D2D2D2CBCBCBCBB0CBB0CB + 9007000000000000000000ABEDECEAE9DEDEDBD7D7D5D2D2D2CDCDCBB0B0B0B0 + 9007000000000000000000AFEDE9A9CFD2CFD2CDCBCBCBB0B0ABACA3A3A3A3B0 + 9007000000000000000000AFF0D5017783838386868686869099909999907BB0 + 9007000000000000000000B0F4D501A0B0CBD2D5DEECEDF7FAFAFAFAFAF77BAA + 9007000000000000000000CBF4DC01A0B0B0B0D2D5DBEAEDF7FAFAFAFAF47BB0 + 9007000000000000000000CBF8DC010404070604090909090D0D110D110D02A3 + 9007000000000000000000CBFAED9E9E9E9C999E8C8C8C868683837E7D7D7ACB + 9007000000000000000000CBFAF1A7A7A6A6A6A69898989898B5DBDBD5D5D2D2 + 9907000000000000000000CDFAF796969696961D961D931D1DB4DEDBD7D5D5D2 + 9C07000000000000000000CFFAFAFAFAF8F7F0F0EDEDEDECE9E9DEDEDED7D5D5 + 9907000000000000000000CDFAFAEAF0EDEDECEAEAE9DEDEDBDCD5D5D5D5D2D5 + 9C07000000000000000000D2FAEC01737D7D7B7D7D7B7D7B7D7B7B7B7D7B7DD2 + 9907000000000000000000CFFAEC019EABB0CBD2D5DCDEECEDF4F4F4F4EA7BD2 + 9C07000000000000000000B9524601A0B0B0CBB5D5DEEAEDF7FAFAFAFAF47DD5 + 9C070000000000213F0000B83226010C3F5C1F111214141616191B1B1B1807D2 + 9C07000000000000253D8A5B322D711E2860BA7E7E7A7E797A797979767676D5 + 9E0700000000000041375E662F2B65314EBBB6B6B6B6B4B4B1E2F4EDEDEDECEA + 9C070000000000008F5D66663232394EC1A81C1C1C1C1C1C1CD3F7F4EDDED7D5 + 9C0700000000000000B7BE6E5758BEBDE4E6E6F3FAFAFAFAFAFAF7F4D5928675 + 7304000000002A2A2A2A4A6AFAE7562F2A2A2A5FFAFAFAFAFAFAF8D577010101 + 0101000000004747472F4A59C5E7564A32474766FAFAFAFAFAFAFADCA0D2CFB0 + A20C00000000000000436C6958686D6BC2C5C5E7FAFAFAFAFAFAFADEAADEDBCB + 1470000000000000004551534A4A5250C0E7FAFAFAFAFAFAFAFAFADEAAD7B514 + 700000000000000042384C54472B613550C3FAFAFAFAFAFAFAFAFADEA1B0196F + 000000000000000024234463322EBC5A3664E3ECE9E9E9E9E9E9E9CF90731300 + 000000000000003A3C00002232298B8B3E3B207E8B7E8B7E827E817E74100000 + 0000000000000000000000003227000000000000000000000000000000000000 + 000000000000FFFFFFFFF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000FF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000FF800000FF800000F9800000FC000000FC000000FC000 + 000FE000000F0000000F0000000FE000000FE000001FC000003FC000007F9800 + 00FFFCFFFFFF2800000020000000400000000100200000000000801000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000007067 + 5F70AA9382E570513CE3735540E3735540E3735540E3735540E3735540E37355 + 40E3735540E3735540E3735540E3735540E3735540E3735540E3735540E37355 + 40E3735540E3735540E3735540E3735540E3735540E3735540E372533EE5BAAB + A070000000000000000000000000000000000000000000000000000000005E54 + 4C7FCAB7ABFFC5B5AAFFA18877FFA28A78FFA28A79FFA28A79FFA28A79FFA28A + 79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A + 79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA58D7CFF7A5B46FFB2A1 + 967F000000000000000000000000000000000000000000000000000000006055 + 4D7ED7C6BBFFEDE4E0FFD9CCC4FFD9CCC4FFD9CBC3FFD8CAC1FFD7C9BFFFD6C7 + BDFFD5C6BBFFD4C4BAFFD3C3B8FFD2C1B7FFD1C0B5FFD0BEB3FFCFBDB2FFCEBC + B0FFCEBBAFFFCEBBAFFFCEBBAFFFCEBBAFFFCEBCB0FFBEAA9CFF82644FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006056 + 4D7ED7C8BCFFF2EBE8FFEFE9E5FFEEE7E2FFECE5E0FFEBE2DEFFEAE0DBFFE9DE + D8FFE7DBD4FFE5D9D1FFE3D7CFFFE2D4CCFFE1D2C9FFDFD0C7FFDDCDC4FFDCCB + C2FFDBC9BFFFDBC9BFFFDBC9BFFFDBC9BFFFDCCAC1FFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006155 + 4E7ED8C9BDFFF3EDE9FFF1EAE6FFF0E9E6FFEEE6E1FFECE4DFFFEBE2DDFFEAE0 + DAFFE9DED7FFE7DBD4FFE5D9D1FFE3D7CFFFE2D4CCFFE1D2C9FFDFD0C7FFDDCD + C4FFDCCBC2FFDBC9BFFFDBC9BFFFDBC9BFFFDCCAC0FFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006157 + 4E7ED9C9BFFFF4EFEDFFEFE8E3FFD0C2B9FFDFD5CEFFE0D5CEFFE0D4CCFFDED3 + CBFFDDD1C8FFDCCFC6FFDACCC4FFD9CBC1FFD8C9BFFFD7C7BDFFD6C5BBFFD5C4 + B9FFD3C2B7FFD2C0B5FFD2BFB4FFD2BFB4FFDAC8BEFFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006256 + 4F7EDACCC0FFF5F2EFFFE5DDD9FF5C3821FFB0998AFFB8A394FFB8A394FFB9A3 + 94FFB8A495FFB9A597FFB9A698FFBAA698FFBBA799FFBBA89AFFBBA89BFFBCA8 + 9BFFBCA89BFFBCA89BFFBBA89AFFB49E8FFFD8C6BBFFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006256 + 4F7EDBCBC1FFF8F4F3FFE7E0DBFF5F3C24FFD0BDB2FFDCCBC1FFDDCCC3FFE2D2 + CBFFE7DBD4FFEDE2DEFFF0E8E6FFF5F0EDFFF9F7F4FFFDFDFDFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFAF8F7FFB39D8DFFD8C6BBFFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006256 + 4F7EDCCEC3FFFAF6F5FFE9E2DDFF5F3C24FFD2BFB5FFDFCDC4FFDECCC3FFE0CE + C6FFE4D4CDFFE9DDD6FFEFE4E0FFF1EAE8FFF7F1EFFFFBF8F6FFFFFEFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFCFBFAFFB5A090FFD9C7BEFFC1AD9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006257 + 4F7EDDCFC4FFFCF9F9FFE9E4E0FF5F3A23FF7C5D49FF7F5F4CFF7E5F4CFF7E60 + 4DFF7F614DFF816350FF826552FF836654FF846856FF856A57FF866B59FF876C + 5BFF876D5BFF876D5BFF866B59FF72523DFFD5C3B9FFC1AFA1FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006357 + 507EDECFC6FFFCFCFBFFF4F1F0FFC3B6AEFFC3B5ADFFC1B4ACFFC0B3AAFFBFB1 + A9FFBEB0A6FFBDAEA5FFBDACA3FFBCABA2FFBBAAA0FFBAA99FFFB8A69AFFB8A4 + 98FFB6A396FFB5A194FFB49F93FFB39D90FFDCCDC4FFC2AEA1FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006357 + 507EDFD2C7FFFEFEFDFFF9F5EFFFE8C696FFE9C799FFE8C697FFE7C596FFE7C4 + 95FFE6C394FFE5C293FFE4C091FFE4C090FFE3BF8FFFE2BD8CFFE9D5BFFFEBE1 + DCFFEADFD8FFE7DCD5FFE5DAD3FFE4D8D0FFE3D4CCFFC2AFA2FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006458 + 517EE0D3C8FFFFFFFFFFFAF5EFFFE3B77CFFE4B97FFFE2B87EFFE3B77DFFE2B7 + 7CFFE2B67BFFE1B57AFFE1B479FFE0B478FFE0B377FFDFB174FFE6D0B7FFEBE1 + DCFFE8DFD9FFE8DDD6FFE6D9D2FFE3D8D1FFE4D7CFFFC3AFA2FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006458 + 517EE1D2C9FFFFFFFFFFFEFEFDFFFEFFFFFFFCFDFEFFFBFBFBFFF9F7F8FFF8F5 + F6FFF7F3F2FFF5F1F0FFF4EFEEFFF1EDEBFFF0EBE9FFEEE9E6FFEDE6E2FFECE3 + DEFFEBE1DBFFE9DFD9FFE8DDD6FFE6DAD3FFE5D9D2FFC3B0A3FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006459 + 517EE1D4CAFFFFFFFFFFFDFDFCFFEEEBE8FFF5F2F0FFF4F0EFFFF3EFECFFF2ED + EAFFF1EBE8FFEEE9E5FFEFE7E3FFECE5E1FFEAE4DEFFEAE1DCFFE8E0DAFFE7DE + D8FFE6DDD6FFE5DBD4FFE4D8D1FFE2D6CEFFE6DBD4FFC3B1A4FF81634EFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006559 + 527EE2D4CAFFFFFFFFFFF0ECEAFF5B361EFFAB9383FFB39D8EFFB39D8DFFB39D + 8DFFB29D8DFFB29C8DFFB29C8CFFB29C8CFFB29C8CFFB29C8CFFB29C8CFFB29C + 8CFFB29C8CFFB29C8CFFB29C8DFFB39D8EFFE3D8D0FFC4B1A4FF81634EFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006559 + 527EE5D4CAFFFFFFFFFFF7F0EBFF5F3B24FFCCB8ADFFD7C5BAFFD9C7BDFFDCCC + C3FFE1D4CCFFE5DAD4FFE8E0DBFFEDE5E1FFF1EBE9FFF5F2EFFFF7F5F3FFF8F6 + F4FFF8F5F4FFF8F6F4FFF1EEEAFFB29C8DFFE6DAD3FFC4B2A5FF81634EFFB2A1 + 967E00000000000000000000000000000000000000000000000000000000685A + 527E9AC6C9FF35CFFEFF3DAEEBFF663E24FFD2BFB4FFE0CBBFFFE0C9BDFFE1CD + C4FFE4D5CDFFE9DED7FFEEE5E0FFF2EBE8FFF6F2F0FFFCF8F8FFFFFFFEFFFFFF + FFFFFFFFFFFFFFFFFFFFFCFAF9FFB49E8FFFE7DED7FFC5B3A6FF81634EFFB2A1 + 967E00000000000000000000000000000000007792910072A7A3001E33366957 + 4C7C86C1C8FF00BFFBFF079AEBFF6A3E23FF926D57FF5FA3C8FF4AC1E8FF6C9C + A2FF917260FF927767FF947A69FF957C6CFF977E6FFF998171FF9A8374FF9B85 + 76FF9C8678FF9C8678FF998274FF7D5E49FFE3D9D4FFC5B3A7FF81634EFFB2A1 + 967E00000000000000000000000000000000005A6F7000A9E5E40075AEAE5C90 + A5BD75D0E0FF00BFFAFF0CA3F4FF8A9A91FF3C7492FF03A4E4FF4AD5FFFF98C4 + CBFFB3A196FFB1A197FFB0A096FFB09F95FFAF9D92FFAF9C91FFAD9A8EFFAC99 + 8CFFAB988AFFAB9789FFAA9688FFA99386FFE8E0DAFFC5B4A7FF81634EFFB2A1 + 967E00000000000000000000000000000000000000002DA5BFC110C2FFFF4DD0 + FDFF64DBF9FF00B3FAFF09A8FEFF68D7FFFF04B5FFFF24CCFBFFAFD8CEFFF7DA + B8FFF3DBBBFFF3DBBAFFF2D9B9FFF1D8B7FFF0D7B4FFEED5B2FFF6EADDFFF9F6 + F4FFF7F3F1FFF5F1EEFFF5EFECFFF4EDEAFFF1EBE7FFC6B4A8FF81634EFFB2A1 + 967E00000000000000000000000000000000000000005F8A909142C7E4E960DE + F8FF64D7FAFF00B6FDFF00B8FDFF21B2FDFF1ECCF7FF93EBFCFFD2C69BFFE1AB + 63FFDFAC66FFDFAC66FFDFAC66FFDFAC66FFDFAC66FFDEA961FFEFDBC0FFF8F6 + F5FFF6F2F0FFF3EDEBFFECE2DCFFE9DFD9FFE5DBD6FFC2B1A4FF81634FFFB2A1 + 967E000000000000000000000000000E171A000E171A00040B145994A4A990EB + FCFF61F1F7FF13FAF7FF23F9F7FF93EDF7FF8CE5F8FFD5F2FDFFE9F8FFFFE7F8 + FFFFF0FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFDFEFFFFFAFAF9FFF9F7 + F5FFF7F2F0FFE8DFD8FFC7AE9FFFBEA998FFAF9888FFB09A8AFF7F604DFFB2A1 + 967E00000000000000000000000000AAFFFF00AAFFFF00AAFFFF00A4FFFF00CD + FAFF5DFCF9FFFFFFFFFFEEFEFEFF00FBF7FF00AAFEFF00A1FFFF00A1FFFF00A0 + FFFF56C3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCFDFBFFFCFBFAFFFBFA + F8FFE6DDD6FFAA9180FF5D3922FF603D26FF613E27FF613E28FF634029FFB4A3 + 987E00000000000000000000000000CAFFFF00CAFFFF00CBFFFF00B0FFFF00CD + FBFF38F5F7FFC3EFFAFFF0FFFEFF00FAF7FF00C8F7FF00C2F7FF00C2F7FF00C1 + F7FF57D7FAFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFDFDFCFFFCFC + FBFFE7DED8FFCCB9ACFFE6DBD5FFE2D7D0FFDCCFC5FFD7C5BBFF8E705DFFB4A2 + 9680000000000000000000000000002E383C002E383C00252F364C99B0B57DE8 + FBFF59F1F7FF25F7F7FF41FAF8FF7CEEF7FF77E4F7FFB5EFFCFFC6F2FDFFC3F2 + FDFFD9F6FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFEFEFFFEFE + FEFFE9E1DAFFCEBCAFFFF1E9E3FFEADFD8FFE4D5CCFF9D816FFF3A291F868985 + 831C00000000000000000000000000000000000000004E7073774AB0DADC37C9 + FBFF22D5F7FF00D3F9FF02C3FBFF37D5F7FF34BEFCFFA2E6FAFFECFBFDFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFF + FFFFEAE2DCFFCDBBADFFEADFD8FFE3D5CBFF9F8271FF3E2D2386050100200000 + 000000000000000000000000000000000000000000003E9CC4C219C0FFFF23C9 + FCFF30D3F8FF00BEF8FF06A8FEFF4FDCF8FF00B8FCFF32C2FBFFC0EBFCFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFEAE3DEFFCDB9ABFFDDCEC4FFA58979FF3E2C1F8F0905041B000000000000 + 000000000000000000000000000000000000003451510099DDDB0091C0C35DAD + BCCF76D7E9FF00BEF9FF10A9FBFFBDDEDEFF5AC8DDFF0AB5F7FF62CEFFFFCBE4 + F1FFF1E7E0FFEFE7E1FFEEE6E1FFEEE6E1FFEEE6E0FFEDE6E0FFEDE5E0FFEEE6 + E1FFE1D4CCFFC5AE9FFFA68D7FF53E2718A10402000E00000000000000000000 + 0000000000000000000000000000000000000075B7AF0099C7C500323E425442 + 3B5C6BA8B1DA00C1FCFF0EA1F3F8A98E80C0AB9081C12698B1C10088C4C14C85 + A3C1A18D80C19E8D81C19E8B81C19D8C80C19B8C7FC19B8A7FC19C897FC19A89 + 7EC19B8B7EC1897769C2432B1BAC000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000045565A00C5FFFF0094E6E2000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000FFFFFFFFF0000007F0000007F0000007F000 + 0007F0000007F0000007F0000007F0000007F0000007F0000007F0000007F000 + 0007F0000007F0000007F0000007F0000007F0000007F0000007800000078000 + 0007C0000007C000000700000007000000070000000700000007C000000FC000 + 001F8000003F800000FFF8FFFFFF} + Width = 500 + Left = 232 + Top = 112 + end + object JsListaAlbaranesNoEliminados: TJSDialog + Glyph.Data = { + 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001C00 + 00001C0806000000720DDF940000000970485973000017120000171201679FD2 + 520000000467414D410000B18E7CFB5193000003104944415478DAAD96FB4B14 + 5114C7CFE463DC1E606444BFF54424D3DC55CA52B1CCD7165A219905054182FD + 1452FD5810FD100406610A669A998FC4F5BDB6266265DAB60F5DD15E58FE03B2 + 3F99D29ABBA7B9779C71C61D9D6177CFCE70CFDCB97B3EF7DCF3BD33C38082FD + B502B2B300CC656020048688A24F036233A0671F40D43160BA87BF62AEEE1010 + 60D7AE293AD8B835815E9B625C80DC8F1E88D4A7C1E8C1FB8F9FD6C3C44035B3 + 21500A65F6D700FE2EA580A5EC551F4A50359316B31D76EFDC0EE5F72A645045 + A067AE0623074B8140891108F1057064CC0D556053DF173812B707E6DCF332A8 + 225080D201DB4AF99BF335B4D502F371415BCC364833C4C29F458F0C2A031281 + 081734AB0B3C88403C1E6E3E2E7960F6A8FFD27A7D3EF07A11DA2C76C84A8D87 + A57FCB32E8B8A54A4C8C21B59365C9015996EF2240B6634DF435B51460A46D1F + 70C093AA46BF09C980C12CA914E6F371ADD707EF1DB3B0B0B8006EB79B8EA96B + EA5106121851245129118FD8BFA2DC5C53C6BAF5EBBBBA97C2D64EC064195B1F + 286C76E956A0EA5C51AEB4764A9929F5750D5A9581D2274B9B651C0BA2F514A8 + 6F28E36B70AD9A4253EF97A9AA55B0CEBA87D03B645B3F43C1DE589C58186D10 + 81150FCAC57B11E161B04517099BB953C78643141B01BA28EEE4DAB0B04DE2B8 + CA460B9C399902E661BB3AB0F5AD038BF30CD4D7E7DD14815A61023027DD00EF + 469C1A80FD1C307F1578FD4A81E665945AD68924181A9D5007B6F4DBF1527E32 + F5C9D3632351F8F549AEE916B14EAA039BCD362C31A6040D23E7887D4A03B0CF + 86C5C6641A24BB7646D3F2D51A77F8C1BCDCFFC79CD3EAC0D7BD56AE86294165 + 4660CB5C6B737DD3062CCA31D00069E76E05241862CF1EDD05E7D40F756063CF + 673C7F5A4F679A59541EF03E4C8C3B0893DF67D481AFBAC7B0F05412CD30EBE2 + ED80F7617CEC0198FEF94B1BF06C6622AD4B4EC99D80F7A1666043D7281A3312 + FD84C20B8417C3AA789405239826E0CBCE4F98979E10344C33B0BE630473D312 + 82866906D6993E62F6F1C3F45D160A5305BE68FF8095CF5B4302134CFE1185EA + 1FB8A1B4FF4FE32FF6FADB8B5E0000000049454E44AE426082} + Instruction.Text = + 'Los siguientes albaranes no han podido ser eliminados, porque es' + + 't'#225'n enviados o tiene una factura asociada' + Instruction.Glyph.Data = { + 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001C00 + 00001C0806000000720DDF940000000970485973000017120000171201679FD2 + 520000000467414D410000B18E7CFB5193000003104944415478DAAD96FB4B14 + 5114C7CFE463DC1E606444BFF54424D3DC55CA52B1CCD7165A219905054182FD + 1452FD5810FD100406610A669A998FC4F5BDB6266265DAB60F5DD15E58FE03B2 + 3F99D29ABBA7B9779C71C61D9D6177CFCE70CFDCB97B3EF7DCF3BD33C38082FD + B502B2B300CC656020048688A24F036233A0671F40D43160BA87BF62AEEE1010 + 60D7AE293AD8B835815E9B625C80DC8F1E88D4A7C1E8C1FB8F9FD6C3C44035B3 + 21500A65F6D700FE2EA580A5EC551F4A50359316B31D76EFDC0EE5F72A645045 + A067AE0623074B8140891108F1057064CC0D556053DF173812B707E6DCF332A8 + 225080D201DB4AF99BF335B4D502F371415BCC364833C4C29F458F0C2A031281 + 081734AB0B3C88403C1E6E3E2E7960F6A8FFD27A7D3EF07A11DA2C76C84A8D87 + A57FCB32E8B8A54A4C8C21B59365C9015996EF2240B6634DF435B51460A46D1F + 70C093AA46BF09C980C12CA914E6F371ADD707EF1DB3B0B0B8006EB79B8EA96B + EA5106121851245129118FD8BFA2DC5C53C6BAF5EBBBBA97C2D64EC064195B1F + 286C76E956A0EA5C51AEB4764A9929F5750D5A9581D2274B9B651C0BA2F514A8 + 6F28E36B70AD9A4253EF97A9AA55B0CEBA87D03B645B3F43C1DE589C58186D10 + 81150FCAC57B11E161B04517099BB953C78643141B01BA28EEE4DAB0B04DE2B8 + CA460B9C399902E661BB3AB0F5AD038BF30CD4D7E7DD14815A61023027DD00EF + 469C1A80FD1C307F1578FD4A81E665945AD68924181A9D5007B6F4DBF1527E32 + F5C9D3632351F8F549AEE916B14EAA039BCD362C31A6040D23E7887D4A03B0CF + 86C5C6641A24BB7646D3F2D51A77F8C1BCDCFFC79CD3EAC0D7BD56AE86294165 + 4660CB5C6B737DD3062CCA31D00069E76E05241862CF1EDD05E7D40F756063CF + 673C7F5A4F679A59541EF03E4C8C3B0893DF67D481AFBAC7B0F05412CD30EBE2 + ED80F7617CEC0198FEF94B1BF06C6622AD4B4EC99D80F7A1666043D7281A3312 + FD84C20B8417C3AA789405239826E0CBCE4F98979E10344C33B0BE630473D312 + 82866906D6993E62F6F1C3F45D160A5305BE68FF8095CF5B4302134CFE1185EA + 1FB8A1B4FF4FE32FF6FADB8B5E0000000049454E44AE426082} + Instruction.Icon = tdiCustom + ButtonBar.Buttons = [cbOK] + ButtonBar.Cancel = cbOK + ButtonBar.UseCancel = False + MainIcon = tdiCustom + Title = 'FactuGES' + Position = dpMainFormCenter + Icon.Data = { + 0000010003002020100001000400E8020000360000002020000001000800A808 + 00001E0300002020000001002000A8100000C60B000028000000200000004000 + 0000010004000000000000020000000000000000000000000000000000000000 + 000000008000008000000080800080000000800080008080000080808000C0C0 + C0000000FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFFFF000000 + 0000000000000000000000000000000008777777777777777777777700000000 + 0877767777677776777767760000000008F88888888888888888888700000000 + 08F8FF8F8F888888888888860000000008FF8F8F88F8F8888888888C00000000 + 08F88888F8888888888888860000000008F8688878E8888E88E8788700000000 + 08F8688888F8F8FFFFFF88760000000008FF4888888F8FFFFFFF788700000000 + 08F8676767677677677658E50000000008FF8888888887878787888700000000 + 08FF8887887E8888888888860000000008FFE8E8E788C8E8FF8F8F8600000000 + 08FFF8F8F8F8FF8F88F8F8870000000008FFFFFF8FF8F8F8F88F888600000000 + 0FF8477878787878788788860000000008FF68888888F8FF8F8F788700000000 + 08B7588888FF8FFFFFFF78860000083008BB47887776777777776F86000000B7 + 8B9B73BB88788787E87878870000008BB8B9BB78888888EFF8F8FF8600000087 + B8BB8B888E8E8E88FFF8F886000000088BBB888FFFFFFFFFF8F877770000B9BB + B8FFBB9B9BFFFFFFF87466460000BBB9BB8FBBBBB8FFFFFFF88F888700000008 + B8BB88888FFFFFFFF88F8F7700000008BBBBBB8FFFFFFFFFFF8887700000007B + B7B98BB8FFFFFFFFF8887700000000B78B9B87B888F88F88F8877000000007B0 + 08BB883B78888788787700000000000000B9000000000000000000000000FFFF + FFFFF800000FF800000FF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000FF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000F9800000FC000000FC000000FC000000FE000000F0000 + 000F0000000FE000000FE000001FC000003FC000007F980000FFFCFFFFFF2800 + 0000200000004000000001000800000000000004000000000000000000000001 + 00000001000000000000694731007C5D49007E604C0081635000826451008567 + 540085685500886B5900896D5B008A6E5D008B705F008E715F008B7260008C72 + 61008E74640084766C00957A6900977D6D00887B72009A8171009D8272009C84 + 76009D8778009F897B00A28A7900A08B7D00A18C7E00E1B06E00E1B67D003E7A + 970073A0A5007AA2B70074AFBD007BB2BB003CAACE0028A5DB0020ADDF000D9A + E500209EE3000DA6E2001AA4EF0000A6FF000CABFE0009ACFE0010A4F10015AC + FA0000B5FB0000B0FD000CB6FC0000BFF90000BAFD0004BAFD0009BBFB0013B6 + F40015BFFA001CBDFB0026B7FD00589EC50040A4CD0040ABCC0050A2C7005DAE + C00060A3C20062A4C60060B7CB006AB0CD007BB6C80077BAC80061BADD0044AD + E50000C3F80007C6FB0000CAF80000CFFB0000D4F90026C8FA0026CDF8002BCC + F90039C4FB0039C2FC0039CAFA003FCFFB0024D6F80030D2F80039D5F80000F8 + F8001FF8F8002CF6F8003EF4F8005AC6DC0070CDDF0052C0E40054C9E3004DCE + FA005FC7FF004FD2FB004DD9F8005FD9FB006ED3E70063CDFE0060D1FB0060D8 + F90060DDF80046F8F90056F0F8005FFAFA0073E3F80073E4F90073EEF80060F1 + F800958A84009A918C0081999500A68F8200AD968500A3968C00AE988900AD9A + 8D00B19A8B00AF9C9000B09E9200B59F9200B7A29300B2A19600B5A19400B7A4 + 9700BDA79700B4A39800B1A59D00B4A79F00BAA69800BCA79900B4A89F00BCA8 + 9900BAA89C00BDAA9D00BEAC9E0083ADBD00B5A9A100BDABA000BEADA100BFAF + A500A0BABE00C0AB9E00C1AC9E00C6AE9F00E2B98100E4BA8300E4BB8400E5BC + 8500E1BD8E00E3BF9000C0ADA000C2B0A300C2B1A500C4B2A600C1B2A800C3B5 + AB00C8B4A800CCB9AD00CEBCB100D0BEB200D1BFB400E4C19300E5C29400E6C4 + 9600E8C69900D0C9A300CFC1B800D2C1B600D3C3B800D5C4B900D6C6BC00D8C6 + BC00D6C8BE00DAC9BF00ECD3B000EDD4B200EFD6B500E7D1B800E7D3BD00F0D8 + B6008CB7C40080BEC70097C3C70099C3C900ABD7CF00AFD9DD0086E3F90086E7 + F90086ECF8009EE5FB0090E8F900ACEDFC00BCEAFD00BCF1FB00BFF1FD00D7C9 + C000D9CAC100DCCBC200DACCC200DDCCC300DACCC400DDCEC400DED0C600DED1 + C900DED3CC00DFD4CD00E1D1C900E2D5CD00F0DCC200E3D8D200E5D9D200E2DA + D500E6DBD400E5DCD500E8DDD600E6DDD800E9DFD900E6E0DB00EAE0DA00EAE2 + DD00ECE3DE00EBE4DE00ECE4DE00F3E7D900C6E1EF00C9EFFD00D7F6FD00DFF3 + FF00DFFEFE00EBE7E300EDE6E100EFE7E400EEE8E400F0EAE600F2EDE900F2EE + EC00F4EFEC00F5F0EE00F9F4ED00E7FAFD00EBF8FF00F6F2F000F7F4F100F8F4 + F200F9F7F500FAF8F600FBF9F900FCFBFA00FCFCFB00FEFEFE00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000007D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D + 0D0D0000000000000000009C9C19191919191919191919191919191919191919 + 1903000000000000000000ABDECBCBC7C7AFABABABABAAA3A2A2A0A0A0A0A0A0 + 8607000000000000000000ABECEAE9DEDEDEDED7D5D2D2D2CBCBCBCBB0CBB0CB + 9007000000000000000000ABEDECEAE9DEDEDBD7D7D5D2D2D2CDCDCBB0B0B0B0 + 9007000000000000000000AFEDE9A9CFD2CFD2CDCBCBCBB0B0ABACA3A3A3A3B0 + 9007000000000000000000AFF0D5017783838386868686869099909999907BB0 + 9007000000000000000000B0F4D501A0B0CBD2D5DEECEDF7FAFAFAFAFAF77BAA + 9007000000000000000000CBF4DC01A0B0B0B0D2D5DBEAEDF7FAFAFAFAF47BB0 + 9007000000000000000000CBF8DC010404070604090909090D0D110D110D02A3 + 9007000000000000000000CBFAED9E9E9E9C999E8C8C8C868683837E7D7D7ACB + 9007000000000000000000CBFAF1A7A7A6A6A6A69898989898B5DBDBD5D5D2D2 + 9907000000000000000000CDFAF796969696961D961D931D1DB4DEDBD7D5D5D2 + 9C07000000000000000000CFFAFAFAFAF8F7F0F0EDEDEDECE9E9DEDEDED7D5D5 + 9907000000000000000000CDFAFAEAF0EDEDECEAEAE9DEDEDBDCD5D5D5D5D2D5 + 9C07000000000000000000D2FAEC01737D7D7B7D7D7B7D7B7D7B7B7B7D7B7DD2 + 9907000000000000000000CFFAEC019EABB0CBD2D5DCDEECEDF4F4F4F4EA7BD2 + 9C07000000000000000000B9524601A0B0B0CBB5D5DEEAEDF7FAFAFAFAF47DD5 + 9C070000000000213F0000B83226010C3F5C1F111214141616191B1B1B1807D2 + 9C07000000000000253D8A5B322D711E2860BA7E7E7A7E797A797979767676D5 + 9E0700000000000041375E662F2B65314EBBB6B6B6B6B4B4B1E2F4EDEDEDECEA + 9C070000000000008F5D66663232394EC1A81C1C1C1C1C1C1CD3F7F4EDDED7D5 + 9C0700000000000000B7BE6E5758BEBDE4E6E6F3FAFAFAFAFAFAF7F4D5928675 + 7304000000002A2A2A2A4A6AFAE7562F2A2A2A5FFAFAFAFAFAFAF8D577010101 + 0101000000004747472F4A59C5E7564A32474766FAFAFAFAFAFAFADCA0D2CFB0 + A20C00000000000000436C6958686D6BC2C5C5E7FAFAFAFAFAFAFADEAADEDBCB + 1470000000000000004551534A4A5250C0E7FAFAFAFAFAFAFAFAFADEAAD7B514 + 700000000000000042384C54472B613550C3FAFAFAFAFAFAFAFAFADEA1B0196F + 000000000000000024234463322EBC5A3664E3ECE9E9E9E9E9E9E9CF90731300 + 000000000000003A3C00002232298B8B3E3B207E8B7E8B7E827E817E74100000 + 0000000000000000000000003227000000000000000000000000000000000000 + 000000000000FFFFFFFFF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000FF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000FF800000FF800000F9800000FC000000FC000000FC000 + 000FE000000F0000000F0000000FE000000FE000001FC000003FC000007F9800 + 00FFFCFFFFFF2800000020000000400000000100200000000000801000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000007067 + 5F70AA9382E570513CE3735540E3735540E3735540E3735540E3735540E37355 + 40E3735540E3735540E3735540E3735540E3735540E3735540E3735540E37355 + 40E3735540E3735540E3735540E3735540E3735540E3735540E372533EE5BAAB + A070000000000000000000000000000000000000000000000000000000005E54 + 4C7FCAB7ABFFC5B5AAFFA18877FFA28A78FFA28A79FFA28A79FFA28A79FFA28A + 79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A + 79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA58D7CFF7A5B46FFB2A1 + 967F000000000000000000000000000000000000000000000000000000006055 + 4D7ED7C6BBFFEDE4E0FFD9CCC4FFD9CCC4FFD9CBC3FFD8CAC1FFD7C9BFFFD6C7 + BDFFD5C6BBFFD4C4BAFFD3C3B8FFD2C1B7FFD1C0B5FFD0BEB3FFCFBDB2FFCEBC + B0FFCEBBAFFFCEBBAFFFCEBBAFFFCEBBAFFFCEBCB0FFBEAA9CFF82644FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006056 + 4D7ED7C8BCFFF2EBE8FFEFE9E5FFEEE7E2FFECE5E0FFEBE2DEFFEAE0DBFFE9DE + D8FFE7DBD4FFE5D9D1FFE3D7CFFFE2D4CCFFE1D2C9FFDFD0C7FFDDCDC4FFDCCB + C2FFDBC9BFFFDBC9BFFFDBC9BFFFDBC9BFFFDCCAC1FFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006155 + 4E7ED8C9BDFFF3EDE9FFF1EAE6FFF0E9E6FFEEE6E1FFECE4DFFFEBE2DDFFEAE0 + DAFFE9DED7FFE7DBD4FFE5D9D1FFE3D7CFFFE2D4CCFFE1D2C9FFDFD0C7FFDDCD + C4FFDCCBC2FFDBC9BFFFDBC9BFFFDBC9BFFFDCCAC0FFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006157 + 4E7ED9C9BFFFF4EFEDFFEFE8E3FFD0C2B9FFDFD5CEFFE0D5CEFFE0D4CCFFDED3 + CBFFDDD1C8FFDCCFC6FFDACCC4FFD9CBC1FFD8C9BFFFD7C7BDFFD6C5BBFFD5C4 + B9FFD3C2B7FFD2C0B5FFD2BFB4FFD2BFB4FFDAC8BEFFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006256 + 4F7EDACCC0FFF5F2EFFFE5DDD9FF5C3821FFB0998AFFB8A394FFB8A394FFB9A3 + 94FFB8A495FFB9A597FFB9A698FFBAA698FFBBA799FFBBA89AFFBBA89BFFBCA8 + 9BFFBCA89BFFBCA89BFFBBA89AFFB49E8FFFD8C6BBFFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006256 + 4F7EDBCBC1FFF8F4F3FFE7E0DBFF5F3C24FFD0BDB2FFDCCBC1FFDDCCC3FFE2D2 + CBFFE7DBD4FFEDE2DEFFF0E8E6FFF5F0EDFFF9F7F4FFFDFDFDFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFAF8F7FFB39D8DFFD8C6BBFFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006256 + 4F7EDCCEC3FFFAF6F5FFE9E2DDFF5F3C24FFD2BFB5FFDFCDC4FFDECCC3FFE0CE + C6FFE4D4CDFFE9DDD6FFEFE4E0FFF1EAE8FFF7F1EFFFFBF8F6FFFFFEFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFCFBFAFFB5A090FFD9C7BEFFC1AD9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006257 + 4F7EDDCFC4FFFCF9F9FFE9E4E0FF5F3A23FF7C5D49FF7F5F4CFF7E5F4CFF7E60 + 4DFF7F614DFF816350FF826552FF836654FF846856FF856A57FF866B59FF876C + 5BFF876D5BFF876D5BFF866B59FF72523DFFD5C3B9FFC1AFA1FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006357 + 507EDECFC6FFFCFCFBFFF4F1F0FFC3B6AEFFC3B5ADFFC1B4ACFFC0B3AAFFBFB1 + A9FFBEB0A6FFBDAEA5FFBDACA3FFBCABA2FFBBAAA0FFBAA99FFFB8A69AFFB8A4 + 98FFB6A396FFB5A194FFB49F93FFB39D90FFDCCDC4FFC2AEA1FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006357 + 507EDFD2C7FFFEFEFDFFF9F5EFFFE8C696FFE9C799FFE8C697FFE7C596FFE7C4 + 95FFE6C394FFE5C293FFE4C091FFE4C090FFE3BF8FFFE2BD8CFFE9D5BFFFEBE1 + DCFFEADFD8FFE7DCD5FFE5DAD3FFE4D8D0FFE3D4CCFFC2AFA2FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006458 + 517EE0D3C8FFFFFFFFFFFAF5EFFFE3B77CFFE4B97FFFE2B87EFFE3B77DFFE2B7 + 7CFFE2B67BFFE1B57AFFE1B479FFE0B478FFE0B377FFDFB174FFE6D0B7FFEBE1 + DCFFE8DFD9FFE8DDD6FFE6D9D2FFE3D8D1FFE4D7CFFFC3AFA2FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006458 + 517EE1D2C9FFFFFFFFFFFEFEFDFFFEFFFFFFFCFDFEFFFBFBFBFFF9F7F8FFF8F5 + F6FFF7F3F2FFF5F1F0FFF4EFEEFFF1EDEBFFF0EBE9FFEEE9E6FFEDE6E2FFECE3 + DEFFEBE1DBFFE9DFD9FFE8DDD6FFE6DAD3FFE5D9D2FFC3B0A3FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006459 + 517EE1D4CAFFFFFFFFFFFDFDFCFFEEEBE8FFF5F2F0FFF4F0EFFFF3EFECFFF2ED + EAFFF1EBE8FFEEE9E5FFEFE7E3FFECE5E1FFEAE4DEFFEAE1DCFFE8E0DAFFE7DE + D8FFE6DDD6FFE5DBD4FFE4D8D1FFE2D6CEFFE6DBD4FFC3B1A4FF81634EFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006559 + 527EE2D4CAFFFFFFFFFFF0ECEAFF5B361EFFAB9383FFB39D8EFFB39D8DFFB39D + 8DFFB29D8DFFB29C8DFFB29C8CFFB29C8CFFB29C8CFFB29C8CFFB29C8CFFB29C + 8CFFB29C8CFFB29C8CFFB29C8DFFB39D8EFFE3D8D0FFC4B1A4FF81634EFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006559 + 527EE5D4CAFFFFFFFFFFF7F0EBFF5F3B24FFCCB8ADFFD7C5BAFFD9C7BDFFDCCC + C3FFE1D4CCFFE5DAD4FFE8E0DBFFEDE5E1FFF1EBE9FFF5F2EFFFF7F5F3FFF8F6 + F4FFF8F5F4FFF8F6F4FFF1EEEAFFB29C8DFFE6DAD3FFC4B2A5FF81634EFFB2A1 + 967E00000000000000000000000000000000000000000000000000000000685A + 527E9AC6C9FF35CFFEFF3DAEEBFF663E24FFD2BFB4FFE0CBBFFFE0C9BDFFE1CD + C4FFE4D5CDFFE9DED7FFEEE5E0FFF2EBE8FFF6F2F0FFFCF8F8FFFFFFFEFFFFFF + FFFFFFFFFFFFFFFFFFFFFCFAF9FFB49E8FFFE7DED7FFC5B3A6FF81634EFFB2A1 + 967E00000000000000000000000000000000007792910072A7A3001E33366957 + 4C7C86C1C8FF00BFFBFF079AEBFF6A3E23FF926D57FF5FA3C8FF4AC1E8FF6C9C + A2FF917260FF927767FF947A69FF957C6CFF977E6FFF998171FF9A8374FF9B85 + 76FF9C8678FF9C8678FF998274FF7D5E49FFE3D9D4FFC5B3A7FF81634EFFB2A1 + 967E00000000000000000000000000000000005A6F7000A9E5E40075AEAE5C90 + A5BD75D0E0FF00BFFAFF0CA3F4FF8A9A91FF3C7492FF03A4E4FF4AD5FFFF98C4 + CBFFB3A196FFB1A197FFB0A096FFB09F95FFAF9D92FFAF9C91FFAD9A8EFFAC99 + 8CFFAB988AFFAB9789FFAA9688FFA99386FFE8E0DAFFC5B4A7FF81634EFFB2A1 + 967E00000000000000000000000000000000000000002DA5BFC110C2FFFF4DD0 + FDFF64DBF9FF00B3FAFF09A8FEFF68D7FFFF04B5FFFF24CCFBFFAFD8CEFFF7DA + B8FFF3DBBBFFF3DBBAFFF2D9B9FFF1D8B7FFF0D7B4FFEED5B2FFF6EADDFFF9F6 + F4FFF7F3F1FFF5F1EEFFF5EFECFFF4EDEAFFF1EBE7FFC6B4A8FF81634EFFB2A1 + 967E00000000000000000000000000000000000000005F8A909142C7E4E960DE + F8FF64D7FAFF00B6FDFF00B8FDFF21B2FDFF1ECCF7FF93EBFCFFD2C69BFFE1AB + 63FFDFAC66FFDFAC66FFDFAC66FFDFAC66FFDFAC66FFDEA961FFEFDBC0FFF8F6 + F5FFF6F2F0FFF3EDEBFFECE2DCFFE9DFD9FFE5DBD6FFC2B1A4FF81634FFFB2A1 + 967E000000000000000000000000000E171A000E171A00040B145994A4A990EB + FCFF61F1F7FF13FAF7FF23F9F7FF93EDF7FF8CE5F8FFD5F2FDFFE9F8FFFFE7F8 + FFFFF0FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFDFEFFFFFAFAF9FFF9F7 + F5FFF7F2F0FFE8DFD8FFC7AE9FFFBEA998FFAF9888FFB09A8AFF7F604DFFB2A1 + 967E00000000000000000000000000AAFFFF00AAFFFF00AAFFFF00A4FFFF00CD + FAFF5DFCF9FFFFFFFFFFEEFEFEFF00FBF7FF00AAFEFF00A1FFFF00A1FFFF00A0 + FFFF56C3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCFDFBFFFCFBFAFFFBFA + F8FFE6DDD6FFAA9180FF5D3922FF603D26FF613E27FF613E28FF634029FFB4A3 + 987E00000000000000000000000000CAFFFF00CAFFFF00CBFFFF00B0FFFF00CD + FBFF38F5F7FFC3EFFAFFF0FFFEFF00FAF7FF00C8F7FF00C2F7FF00C2F7FF00C1 + F7FF57D7FAFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFDFDFCFFFCFC + FBFFE7DED8FFCCB9ACFFE6DBD5FFE2D7D0FFDCCFC5FFD7C5BBFF8E705DFFB4A2 + 9680000000000000000000000000002E383C002E383C00252F364C99B0B57DE8 + FBFF59F1F7FF25F7F7FF41FAF8FF7CEEF7FF77E4F7FFB5EFFCFFC6F2FDFFC3F2 + FDFFD9F6FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFEFEFFFEFE + FEFFE9E1DAFFCEBCAFFFF1E9E3FFEADFD8FFE4D5CCFF9D816FFF3A291F868985 + 831C00000000000000000000000000000000000000004E7073774AB0DADC37C9 + FBFF22D5F7FF00D3F9FF02C3FBFF37D5F7FF34BEFCFFA2E6FAFFECFBFDFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFF + FFFFEAE2DCFFCDBBADFFEADFD8FFE3D5CBFF9F8271FF3E2D2386050100200000 + 000000000000000000000000000000000000000000003E9CC4C219C0FFFF23C9 + FCFF30D3F8FF00BEF8FF06A8FEFF4FDCF8FF00B8FCFF32C2FBFFC0EBFCFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFEAE3DEFFCDB9ABFFDDCEC4FFA58979FF3E2C1F8F0905041B000000000000 + 000000000000000000000000000000000000003451510099DDDB0091C0C35DAD + BCCF76D7E9FF00BEF9FF10A9FBFFBDDEDEFF5AC8DDFF0AB5F7FF62CEFFFFCBE4 + F1FFF1E7E0FFEFE7E1FFEEE6E1FFEEE6E1FFEEE6E0FFEDE6E0FFEDE5E0FFEEE6 + E1FFE1D4CCFFC5AE9FFFA68D7FF53E2718A10402000E00000000000000000000 + 0000000000000000000000000000000000000075B7AF0099C7C500323E425442 + 3B5C6BA8B1DA00C1FCFF0EA1F3F8A98E80C0AB9081C12698B1C10088C4C14C85 + A3C1A18D80C19E8D81C19E8B81C19D8C80C19B8C7FC19B8A7FC19C897FC19A89 + 7EC19B8B7EC1897769C2432B1BAC000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000045565A00C5FFFF0094E6E2000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000FFFFFFFFF0000007F0000007F0000007F000 + 0007F0000007F0000007F0000007F0000007F0000007F0000007F0000007F000 + 0007F0000007F0000007F0000007F0000007F0000007F0000007800000078000 + 0007C0000007C000000700000007000000070000000700000007C000000FC000 + 001F8000003F800000FFF8FFFFFF} + Width = 450 + Left = 184 + Top = 112 + end +end diff --git a/Source/Modulos/Albaranes de cliente/Views/uEditorAlbaranesCliente.pas b/Source/Modulos/Albaranes de cliente/Views/uEditorAlbaranesCliente.pas new file mode 100644 index 00000000..9a3661b0 --- /dev/null +++ b/Source/Modulos/Albaranes de cliente/Views/uEditorAlbaranesCliente.pas @@ -0,0 +1,525 @@ +unit uEditorAlbaranesCliente; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, Menus, DB, uDADataTable, JvAppStorage, + JvAppRegistryStorage, JvComponent, JvFormPlacement, ImgList, + PngImageList, StdActns, ActnList, ComCtrls, TB2ExtItems, TBXExtItems, + TBX, TB2Item, TB2Dock, TB2Toolbar, ExtCtrls, JvExControls, + JvNavigationPane, uViewGrid, pngimage, JvComponentBase, + uEditorGridBase, + uBizAlbaranesCliente, uIEditorAlbaranesCliente, uAlbaranesClienteController, + uCustomView, uViewBase, uViewBarraSeleccion, uViewGridBase, + uViewAlbaranesCliente, JvExComCtrls, JvStatusBar, JSDialog, uDAInterfaces; + +type + TfEditorAlbaranesCliente = class(TfEditorGridBase, IEditorAlbaranesCliente) + JsNuevoAlbaranDialog: TJSDialog; + actGenerarFactura: TAction; + N4: TMenuItem; + Generarfactura1: TMenuItem; + TBXSeparatorItem17: TTBXSeparatorItem; + actEnviar: TAction; + Serviralbarn1: TMenuItem; + JsImprimirDialog: TJSDialog; + JsPrevisualizarDialog: TJSDialog; + actCancelarEnvio: TAction; + actConfirmarRecepcion: TAction; + TBXItem42: TTBXItem; + TBXItem43: TTBXItem; + TBXItem44: TTBXItem; + TBXSeparatorItem18: TTBXSeparatorItem; + TBXItem45: TTBXItem; + TBXSeparatorItem19: TTBXSeparatorItem; + actGenerarEtiquetas: TAction; + TBXItem38: TTBXItem; + JsListaAlbaranesNoEliminados: TJSDialog; + procedure FormShow(Sender: TObject); + procedure actGenerarFacturaUpdate(Sender: TObject); + procedure actGenerarFacturaExecute(Sender: TObject); + procedure actEnviarUpdate(Sender: TObject); + procedure actEnviarExecute(Sender: TObject); + procedure actEliminarUpdate(Sender: TObject); + procedure actCancelarEnvioExecute(Sender: TObject); + procedure actCancelarEnvioUpdate(Sender: TObject); + procedure actConfirmarRecepcionExecute(Sender: TObject); + procedure actConfirmarRecepcionUpdate(Sender: TObject); + procedure actGenerarEtiquetasExecute(Sender: TObject); + procedure actGenerarEtiquetasUpdate(Sender: TObject); + + 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, uFactuGES_App, +//En tecsitel no estaran habilitados los pedidos +// uPedidosClienteController, uBizPedidosCliente, + uDialogUtils, schAlbaranesClienteClient_Intf, +// uFacturasClienteController, uBizFacturasCliente, uGenerarFacturasCliAlbCliUtils, +// uInventarioController, uGenerarAlbaranesCliUtils, + uEditorBase, + cxCustomData, uGridUtils, uDBSelectionListUtils; + +{$R *.dfm} + +{ +*************************** TfEditorAlbaranesCliente *************************** +} +procedure TfEditorAlbaranesCliente.actCancelarEnvioExecute(Sender: TObject); +begin +AppFactuGES.ShowCapado; +{ + inherited; + + if (ShowConfirmMessage('Envío de albarán de cliente', '¿Desea cancelar el envío de este albarán de cliente?') = IDYES) then + begin + try + FController.CambiarSituacion(FAlbaranes, SITUACION_ALBARAN_PENDIENTE); + except + on E : Exception do + ShowErrorMessage('Error al cambiar la situación del albarán', E.Message, E); + end; + end; + actRefrescar.Execute; +} +end; + +procedure TfEditorAlbaranesCliente.actCancelarEnvioUpdate(Sender: TObject); +begin + inherited; + (Sender as TAction).Enabled := HayDatos + and not (ViewGrid.NumSeleccionados > 1) + and ViewGrid.esSeleccionCeldaDatos + and (FAlbaranes.SITUACION = SITUACION_ALBARAN_ENVIADO); +end; + +procedure TfEditorAlbaranesCliente.actConfirmarRecepcionExecute(Sender: TObject); +begin +AppFactuGES.ShowCapado; +{ + inherited; + + try + FController.CambiarSituacion(FAlbaranes, SITUACION_ALBARAN_SERVIDO, FAlbaranes.FECHA_ENVIO, Now); + except + on E : Exception do + ShowErrorMessage('Error al cambiar la situación del albarán', E.Message, E); + end; + actRefrescar.Execute; +} +end; + +procedure TfEditorAlbaranesCliente.actConfirmarRecepcionUpdate(Sender: TObject); +begin + inherited; + (Sender as TAction).Enabled := HayDatos + and not (ViewGrid.NumSeleccionados > 1) + and ViewGrid.esSeleccionCeldaDatos + and (FAlbaranes.SITUACION = SITUACION_ALBARAN_ENVIADO); +end; + +procedure TfEditorAlbaranesCliente.actEliminarUpdate(Sender: TObject); +begin + inherited; + if (Sender as TAction).Enabled then + (Sender as TAction).Enabled := (FAlbaranes.SITUACION = SITUACION_ALBARAN_PENDIENTE) + and not (FAlbaranes.ID_FACTURA > 0) +end; + +procedure TfEditorAlbaranesCliente.actGenerarEtiquetasExecute(Sender: TObject); +begin +AppFactuGES.ShowCapado; +{ + inherited; + //Miramos si viene de un pedido previo, si no es asi le preguntamos si desea imprimir la referencia del cliente + if (FAlbaranes.ID_PEDIDO > 0) then + FController.EtiquetasPreview(FAlbaranes, True) + else + begin + if (Application.MessageBox('¿El albarán seleccionado no está asociado a un pedido por internet, ¿desea imprimir la referencia del cliente para las etiquetas de este albarán?', 'Atención', MB_YESNO) = IDYES) then + FController.EtiquetasPreview(FAlbaranes, True) + else + FController.EtiquetasPreview(FAlbaranes, False); + end; +} +end; + +procedure TfEditorAlbaranesCliente.actGenerarEtiquetasUpdate(Sender: TObject); +begin + inherited; + (Sender as TAction).Enabled := HayDatos + and not (ViewGrid.NumSeleccionados > 1) + and ViewGrid.esSeleccionCeldaDatos; +end; + +procedure TfEditorAlbaranesCliente.actGenerarFacturaExecute(Sender: TObject); +begin +AppFactuGES.ShowCapado; +// GenerarFacturaCli(Albaranes.ID); +// actRefrescar.Execute; +end; + +procedure TfEditorAlbaranesCliente.actGenerarFacturaUpdate(Sender: TObject); +begin + inherited; + (Sender as TAction).Enabled := HayDatos + and not (ViewGrid.NumSeleccionados > 1) + and (FAlbaranes.REF_FACTURA = '') + and ViewGrid.esSeleccionCeldaDatos; +end; + +procedure TfEditorAlbaranesCliente.actEnviarExecute(Sender: TObject); +//var +// AInventarioController : IInventarioController; +// bCambiarEstado : Boolean; +// AFactura : IBizFacturaCliente; +// AFacturasController : IFacturasClienteController; +// AAlbaran : IBizAlbaranCliente; +begin +AppFactuGES.ShowCapado; +{ + inherited; + bCambiarEstado := False; + + // ¿Hay almacén asociado al albarán? + if FAlbaranes.ID_ALMACEN = 0 then + begin + if (ShowConfirmMessage('Envío de albarán de cliente', 'Este albarán no tiene un almacén asociado por lo que no se realizará ningún cambio en el stock de los almacenes.' + + #10#13 + #10#13 + '¿Desea realizar el envío de este albarán de cliente?') = IDYES) then + bCambiarEstado := True // No hay almacén. Cambiamos el estado y ya está. + end + else begin + AInventarioController := TInventarioController.Create; + try + bCambiarEstado := AInventarioController.SalidaAlbaran(NIL, FAlbaranes.ID_ALMACEN, FAlbaranes.Detalles); + finally + AInventarioController := NIL; + end; + end; + + if bCambiarEstado then + begin + try + FController.CambiarSituacion(FAlbaranes, SITUACION_ALBARAN_ENVIADO, Now); +{ + if (ShowConfirmMessage('', 'Se ha realizado correctamente la salida del albarán de cliente. ¿Desea generar la factura de cliente correspondiente?') = IDYES) then + begin + AAlbaran := FController.Buscar(FAlbaranes.ID); + AAlbaran.DataTable.Active := True; + + AFacturasController := TFacturasClienteController.Create; + AFactura := AFacturasController.Nuevo; + try + if AFacturasController.Anadir(AFactura, AAlbaran) then + AFacturasController.Ver(AFactura) + finally + AFacturasController := NIL; + AAlbaran := NIL; + AFactura := NIL; + end; + end; +} + + +{ + except + on E : Exception do + ShowErrorMessage('Error al cambiar la situación del albarán', E.Message, E); + end; + end; + actRefrescar.Execute; +} +end; + +procedure TfEditorAlbaranesCliente.actEnviarUpdate(Sender: TObject); +begin + inherited; + (Sender as TAction).Enabled := HayDatos + and not (ViewGrid.NumSeleccionados > 1) + and ViewGrid.esSeleccionCeldaDatos + and (FAlbaranes.SITUACION = SITUACION_ALBARAN_PENDIENTE); +end; + +procedure TfEditorAlbaranesCliente.AsignarVista; +begin + ViewGrid := CreateView(TfrViewAlbaranesCliente) as IViewAlbaranesCliente; +end; + +constructor TfEditorAlbaranesCliente.Create(AOwner: TComponent); +begin + inherited; + AsignarVista; +end; + +destructor TfEditorAlbaranesCliente.Destroy; +begin + FAlbaranes := NIL; + FController := NIL; + inherited; +end; + +procedure TfEditorAlbaranesCliente.DuplicarInterno; +var + APedido : IBizAlbaranCliente; +begin +AppFactuGES.ShowCapado; +{ + inherited; + APedido := FController.Duplicar(Albaranes); + try + FController.Ver(APedido); + finally + actRefrescar.Execute; + end; +} +end; + +procedure TfEditorAlbaranesCliente.EliminarInterno; +var + AAlbaranes: IBizAlbaranCliente; + AllItems: Boolean; +begin + AAlbaranes := Nil; + AllItems := False; + + if MultiSelect and Assigned(ViewGrid) then + AllItems := (ViewGrid.NumSeleccionados > 1); + + if AllItems then + begin + if (Application.MessageBox('¿Desea borrar los albaranes de cliente seleccionados?', 'Atención', MB_YESNO) = IDYES) then + begin + SeleccionarFilasDesdeGrid(ViewGrid._FocusedView, (Albaranes as ISeleccionable).SelectedRecords); + AAlbaranes := (Controller as IAlbaranesClienteController).ExtraerSeleccionados(Albaranes) as IBizAlbaranCliente; + end + end + else begin + if (Application.MessageBox('¿Desea borrar el albarán de cliente seleccionado?', 'Atención', MB_YESNO) = IDYES) then + AAlbaranes := Albaranes; + end; + + if Assigned(AAlbaranes) then + begin + FController.Eliminar(AAlbaranes, AllItems); + if AllItems then + begin + if (AAlbaranes.DataTable.RecordCount > 0) then + begin + with AAlbaranes.DataTable do + begin + First; + while not EOF do + begin + JsListaAlbaranesNoEliminados.Content.Add('Ref. albarán: ' + AAlbaranes.REFERENCIA + ' ' + AAlbaranes.NOMBRE); + Next; + end; + end; + JsListaAlbaranesNoEliminados.Execute; + end; + actRefrescar.Execute; + end; + end; + + ViewGrid.GotoFirst; +end; + +procedure TfEditorAlbaranesCliente.FormShow(Sender: TObject); +begin + inherited; + + if not Assigned(ViewGrid) then + raise Exception.Create('No hay ninguna vista asignada'); + + if not Assigned(Albaranes) then + raise Exception.Create('No hay ningún albarán asignado'); + + Albaranes.DataTable.Active := True; + ViewGrid.GotoFirst; +end; + +function TfEditorAlbaranesCliente.GetController: IAlbaranesClienteController; +begin + Result := FController; +end; + +function TfEditorAlbaranesCliente.GetAlbaranes: IBizAlbaranCliente; +begin + Result := FAlbaranes; +end; + +procedure TfEditorAlbaranesCliente.ImprimirInterno; +var + Respuesta : Integer; + AAlbaranes: IBizAlbaranCliente; + AllItems: Boolean; + +begin +AppFactuGES.ShowCapado; +{ + AAlbaranes := Nil; + AllItems := False; + + if MultiSelect and Assigned(ViewGrid) then + AllItems := (ViewGrid.NumSeleccionados > 1); + + //Si esta agrupado solo podré imprimir la lista de elementos visibles + if not ViewGrid.esSeleccionCeldaDatos then + inherited + else + begin + Respuesta := JsImprimirDialog.Execute; + if Respuesta <> IDCANCEL then + begin + case JsImprimirDialog.CustomButtonResult of + 200 : begin // Lista de elementos visibles + inherited; + end; + 100 : begin // Elemento Seleccionado + if AllItems then + begin + SeleccionarFilasDesdeGrid(ViewGrid._FocusedView, (Albaranes as ISeleccionable).SelectedRecords); + AAlbaranes := (Controller as IAlbaranesClienteController).ExtraerSeleccionados(Albaranes) as IBizAlbaranCliente; + end + else + AAlbaranes := Albaranes; + + if Assigned(AAlbaranes) then + FController.Print(AAlbaranes, AllItems); + end; + end; + end; + end; +} +end; + +procedure TfEditorAlbaranesCliente.ModificarInterno; +begin + inherited; + FController.Ver(Albaranes); +end; + +procedure TfEditorAlbaranesCliente.NuevoInterno; +var + Respuesta : Integer; + AAlbaran : IBizAlbaranCliente; + IDAlbaranAux: Integer; +begin + inherited; + + Respuesta := JsNuevoAlbaranDialog.Execute; + + if Respuesta <> IDCANCEL then + begin + case JsNuevoAlbaranDialog.CustomButtonResult of + 200 : begin // Utilizar un pedido +// if ElegirPedidoYGenerarAlbaranCli(IDAlbaranAux) then + actRefrescar.Execute; + end; + 100 : begin // Albaran nuevo vacio + if FController.Anadir(Albaranes) then + FController.Ver(Albaranes); + end; + end; + end; +end; + +procedure TfEditorAlbaranesCliente.PonerTitulos(const ATitulo: string); +var + FTitulo : String; +begin + if (ATitulo = '') then + FTitulo := 'Lista de albaranes de cliente - ' + AppFactuGES.EmpresaActiva.NOMBRE + else + FTitulo := ATitulo; + + inherited PonerTitulos(FTitulo); +end; + +procedure TfEditorAlbaranesCliente.PrevisualizarInterno; +var + Respuesta : Integer; + AAlbaranes: IBizAlbaranCliente; + AllItems: Boolean; +begin +AppFactuGES.ShowCapado; +{ + AAlbaranes := Nil; + AllItems := False; + + if MultiSelect and Assigned(ViewGrid) then + AllItems := (ViewGrid.NumSeleccionados > 1); + + //Si esta agrupado solo podré imprimir la lista de elementos visibles + if not ViewGrid.esSeleccionCeldaDatos then + inherited + else + begin + Respuesta := JsPrevisualizarDialog.Execute; + if Respuesta <> IDCANCEL then + begin + case JsPrevisualizarDialog.CustomButtonResult of + 200 : begin // Lista de elementos visibles + inherited; + end; + 100 : begin // Elemento Seleccionado + if AllItems then + begin + SeleccionarFilasDesdeGrid(ViewGrid._FocusedView, (Albaranes as ISeleccionable).SelectedRecords); + AAlbaranes := (Controller as IAlbaranesClienteController).ExtraerSeleccionados(Albaranes) as IBizAlbaranCliente; + end + else + AAlbaranes := Albaranes; + + if Assigned(AAlbaranes) then + FController.Preview(AAlbaranes, AllItems); + end; + end; + end; + end; +} +end; + +procedure TfEditorAlbaranesCliente.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..a86c9b1e --- /dev/null +++ b/Source/Modulos/Albaranes de cliente/Views/uEditorAlbaranesClienteReport.pas @@ -0,0 +1,25 @@ +unit uEditorAlbaranesClienteReport; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uEditorPreview, frxExportImage, frxExportPDF, frxDCtrl, frxClass, +// frxDMPExport, frxGradient, frxChBox, frxCross, frxRich, frxChart, frxOLE, +// frxBarcode, JvAppStorage, JvAppRegistryStorage, JvComponentBase, + JvFormPlacement, ImgList, PngImageList, StdActns, ActnList, ComCtrls, + TB2ExtItems, TBXExtItems, TBX, TB2Item, TB2Dock, TB2Toolbar, pngimage, + ExtCtrls, JvExControls, JvComponent, JvNavigationPane, uIEditorAlbaranesClientePreview, + JvExComCtrls, JvStatusBar, frxDMPExport, frxGradient, frxChBox, frxCross, + frxRich, frxOLE, frxBarcode, JvAppStorage, JvAppRegistryStorage, + JvComponentBase; + +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..f7cd9edd --- /dev/null +++ b/Source/Modulos/Albaranes de cliente/Views/uEditorAlbaranesDevCliente.dfm @@ -0,0 +1,912 @@ +inherited fEditorAlbaranesDevCliente: TfEditorAlbaranesDevCliente + Caption = 'Lista de '#243'rdenes de devoluci'#243'n a cliente' + ExplicitWidth = 320 + 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 TBXTMain2: TTBXToolbar + ExplicitWidth = 124 + inherited TBXItem43: TTBXItem + Visible = False + end + inherited TBXItem44: TTBXItem + Visible = False + end + end + end + inherited EditorActionList: TActionList + inherited actNuevo: TAction + ImageIndex = 24 + end + inherited actGenerarFactura: TAction + Caption = 'Generar abono...' + end + inherited actEnviar: TAction + Visible = False + end + inherited actGenerarEtiquetas: TAction + Enabled = False + Visible = False + end + end + inherited SmallImages: TPngImageList + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000001754944415478DA6364C001D6ECBE900CA4E640B9 + 2921AE0673B1A963C4A739C8598FE1DB8FDF0C33966C67505054C06A08232ECD + 3EF6BA0C250B7F315C7FF88F6179E15F86456BF76135841197CD79737F324C4E + E1008BF345BC63B833959561F13A4C4318D13507BBE833E4CEF9C160ACC1C290 + 60C30296734D5FCD70F2A333564318B1D90CD20C02D72E9C04D33C92A60CAFDF + FF6358B8E71B86218CE87E866986D90E738186A92FC397EF0C0C6B8FA21A0232 + E03FBACD5FBEFF07E30A3F36B801323ABE0C3F7FFF67F8FE938161EFC5EF7043 + C00678586B32F8B7FD61887167836BFEF59B81A12E186180A8BA0F58F3E76FFF + 194EDDFE0136A07DDA1AB001C90FEE3F98131BE4C4A092FD9BA12A8A07AC19E4 + 67582C800CE051F0C1D06C636994020F44902171214E0CCA99BF19E25DB8E09A + 91C301161330CDE040448E46649764D85C473160C6114D0CCD581312B221CEFA + 9C589D8D3521E13204047069C69B99608680002ECD380D4036E4C98B77383583 + 000005100EB8572466A60000000049454E44AE426082} + Name = 'PngImage1' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001074944415478DA + 63FCFFFF3F032580912A06303232E2543079D1766F201505C520B02C37CE331A + C400EBC5670054F3960057330631617E0690B2F357EF336CDA7786A1B5289211 + AF01C89A254505183E7FFDC1F0F5DB0F06311101A021F7184E5DBA733927D643 + 0FAB01E89ADF7EF802D6FCF5FB4F866F406CA6AFC21095DBC6B06C7215238601 + C4689EB27807C3B153E7300D2056F38B371F18B62EDA79EDFCF9F9DA700348D4 + CC70E1C2024420022548D68C128D40C906A0E67A5234631860A6A752AF202346 + B466740396C2521AD020B0A49EA622C39C95BB716AC64889C0405C0A541C2501 + 4C2830804F33D6A40C8A09A0A62DF7EEDD03F3AF1FB98D372301A39191E2DC08 + 0029AC32F01825AACD0000000049454E44AE426082} + Name = 'PngImage2' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001514944415478DA + 635CB5E3DC7F062C20CCC388918108C0083220D4DD104570F5CEF30CEDFDB319 + CEEF9C4ED0109C06D818AB3278C7941134046E40CBAA0760819A3005B80B6000 + 9F21182EF8F1F30F10FF86E05F7F1882926B883300E60264C0C1805D5F69B802 + 238601E836FF04E2CDA7BF339484C9A368EE59F59261D9C1BB0CE7A75933C20D + F0B4D56698B0E5195617601AF09021DA4998C1297307C38D35A18C60031CCDD4 + C036FF84DAFCE7EF3F307DF0FA7FB001112D57C09A57D4E8800D98BBFA346A18 + 58EA2BC235C39C0FC2671EB0A2B8E0DBCF7F0C5F7FFE05E27F60B65DE26C8801 + 7316ADC11A58AEFE69282E4009C8284506F7F4B90C781349F7CA07FF4106A0DB + FCFD171003E980BCF9840D48F5916148EFBB8E2197EC2BCB1059B290B001512E + 92609BC1B602F1EF3FFFC1F437204EAE5A4CD8007F5B71B8E66F480681407AED + 12C20674CCDE884F0903000B1A00979E81F9710000000049454E44AE426082} + Name = 'PngImage3' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000E9C00000E9C01079453DD000002574944415478DA + 63FCFFFF3F03258011D9004646468696696B17FFFECAD0DE581A7C0D596155CF + 0AF77F7FFFD975944755A3E8413760EA929DAF393938D62785D8A7C1C48BBB17 + 711BABAB5C7AF9F6FDDFC2446F354206BC75B6D4E35ABCFE90536B49F87190F8 + E4853B2779DA1BE46EDE7FE62ED00015BC06F4CFDBBA24CACF26FAD0A99B5B42 + BDCC7C6BFA563B057B986FFDFDE72FC7D20D072B26D62574E235A0A26DA999B0 + 98E0F2607713F9251B8E85692A4B5698E9AB9AAEDA7EE2DEBB571F3DDAAB226F + E33500044A3B979507B898B6BF78F3FEA3B1B612FF992BF7FF1F3975336E425D + CC52903C4103EAEBEB5998450D8FAA2A889BC94888306CD977664D675964284C + 1D0103EA99F8DDF50C8CD439E3FFFE67CB7DFFE9DB1F7E3E9EC637DF5977DC98 + B3E73C0343E33F9C0670B8AC555292175BC8F6FF9BEEDF6FEF995E7DF8F95941 + 55EDE5AB17AFBEFCFAC7C2F1ECC5FBEF0C4C4C89FF0F47DDC36A8056F2A103FF + DEDEE465FBFFB5F1D577EECB8C8CFFF72AAA6A7CFFF4F842CED54D7907184CE7 + 4631B0B227FC3F1AE38AD5008D981DDFD9BEDE48BABCA1703983DE226E09891F + D754B4756F7DBC7FBAEFF286BCED0C32BD9C0CB222B7FF1F8B93C16A805ED2EE + D74CEFAF445FDC50B48BC172858E34DFFB6582B2DAFB38BEDCFC7166456A0583 + CE0471063EA103FF8FC66A623540C063F55669B6E747AE3DE3E861E5E158A9C8 + FBF1D1FD6F628BF4147977FC7A79D3E3F2736E39060E9E84FF47A202B0C782ED + 627356C6FF935998FEB349737FB9FE95E975F2F32D8DDF98EC9647B1FCFF55F0 + EB1FD31FA08EC2FF87634F6235801C0000382740F0DFD997BD0000000049454E + 44AE426082} + Name = 'PngImage4' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A000002854944415478DA + A5935D48536118C7FFAFDB8CCD557E7F34B33167F9119617A91596495D781304 + 451021A651362821B1ABA49B6EA4460961D88542055D84DD6545415992174994 + 9625CC8F9C329D9B5F3BE9CED9D9797BCEA1C932A3A0079EC3CBE13CBFE7FF7F + 9FF330CE39FE2798FAB80BA4E61559EB2551E67B07279AE8D51FA98F2CC99546 + 031A3D6E5FF329993F631D80B52227A6D7929F9BAEA459D1D73BE8DC3330D6B8 + 1AD206641414DA5A6224E1E8ECA47779660955D532EF642F1371BD74331A14FA + 9C27A4439F5D88777DAE1B65FD230D11485786B9363D65FD35C1EB4B9817427E + 9F80C335C05BD53E23B2A934132FB23662B71406C2B14698F38AF0E9EB9473E8 + E3C8655BD686D6F858A5DA3F27B04511E37E0195B5C0A00AD6003FE5259758F0 + 3AD1843C15125218CCB6AD707FF34EAC93973217041154ECF608D8770E188BD8 + 5A01A8A1DEC5F60CF4980CB0A890E8A47AFFF477EC3F037C8EBE975F006ADC37 + 60A7351E3D061DE222C522A5270047AD82DBAB27B21AC09EDA373525E9A52BCB + 7E5F4CB4822509BE80848AB3C0C09A806380EE7CA1BDC55EB4CDE17AF2984932 + 75A60CCA088739742A84CE1E49C1010730F41BA03B27CD595C517CB1FFF92B04 + E6035AF142101DCB12DA743AB413243FA468331D0F01E51780D1154057AAF148 + D92E7BE794778E8DB92634C901116FA6451CAA27214EC06802AE5227AA839ED2 + 45A0729AC6A406182DD9329C10A7B7F57D18D63A93DF99D92076905F4FB4DF56 + A08C20ED9476027CD1209C7BD9FBDC947BC1C0E2C9596A4B003E27E2F8E9301E + AEB507B700334968A6631D019C759C5F627780822413BA194312CDFB41958C13 + 7FDB4052739000430ECEDD913F313B568F9B8B326AC8F7CCBFAEB27A073F0058 + 5538F0EAB25B380000000049454E44AE426082} + Name = 'PngImage5' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001934944415478DA + 6364C002662430FC47E6672C606064C001C0122726A06AB870818121A1632A98 + 5D169DCD10E58B90B32840358C11A4D920622A5C604145365833482308D4F5E6 + 3134154F62A8EE4805F35B2B66334CDA8B3004C50098E62F2F6E823581347F7F + FB80E1E58DBD0C8BD67D6588F6656258BAF91F7E03AE3D66C009081A800CD61F + B161C0072243F419711AF0F7F777864D275D192282F5B06A5EB1F23C43D7FCD9 + 0CE7774E67C43000A41984B79EF3C36AC08F9F7F18366CB8CC10116EC860E491 + 85EA0298E6BFBFBE33ECB8120E36C071E64DB8E6ED09CA40037E33ECD87E03EC + 02142F206BFEF7FB07C3AE9BF1282E00D90CD20CC6BFFE30EC3B719561CAECE5 + 100374837B503483E8BDF733305C000333DC04198E9EBB893040CBAF1945F3DF + 3FDF190E3C2E041B806EF34F283E73E52EC200758F2A865B3B3A506CB927739E + C1C75383C177F17D0C17745971325CBEF51062004820CF19352F808065E64506 + 172748A0C16CFDF3F71F9806B9E4F683A70803B081E56B2EFEB7B19663D875F4 + 32CEC444D080AED9331808010085EE16005695A1DA0000000049454E44AE4260 + 82} + Name = 'PngImage6' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000002164944415478DA95D35F4853511CC0F1EFD491DD + D9587F2C83AC8C328DFE4949908BC0AC142A147BC8077B88A01EECA5E718F958 + 410486C384B50A1F7A991023CBEC0F594F81E5D4C211E130D7D4DDCDA15B5EEF + DD5DD74B1B8EA9D90FCEC3EFC0EFC3EF9CF33B06FE46CBE3AE042B886B176B0C + 0B73C342A0A9B17AD9E2FB4F5EE0E878C6E79776C37F03AAAAD2DAD1CDDEDD3B + B96EBB9B425604CC17CB8A4AFBD31EEA6BAC0CFF08A4907F02C962598EE374BD + D58F908C2581442241603C8CCBFD89D86C9C9C9C1C0A365A282DDE446FDF37E6 + AB9277B128F02B10C6DDF385CD074B10D6593019211E9CC2EF1DA5A0C0821895 + 68BE6D5F1A6873BEA6D07A0879951945CD626B1E6C372978BD7EBC5F4710D608 + DC6A712C0EC84A9C7B6DDDECAF3B459E315B3B3B685B9835448DCD30F4BE0FC1 + 94CB9D56672670A5E1A47E590F1EBDE374C3091D88CD4120063359902B4719F9 + D88F201835E0612670E97CA5DE41578F870A6B296BD79B096BC0B8B6C4DF3252 + 4024E81960832071B3FD7926D0587B5C7F32DFE8243FC74214EDD906AB4D4C29 + 1011230487BC1419BFB32BE8E06CE7BE4CE0C299637A07B3928CCF37816F4CD4 + F2040943365234823134C8E1FC094A8A8D4C0DF6B2E5EA8774A0BEFAA80E283A + A21012A791E6E6B4618249FF08AFEC97292B2CA7B64221BFAC9C90E74DFA289F + AB3A42FFB07FD90FE5B255A510B754379D062C1CD3E5E240AC931D9537B03537 + 19FE00839434866373C4BA0000000049454E44AE426082} + Name = 'PngImage7' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000001724944415478DA6364A0103062135CB1E2C26E20 + E5824F63448401235603809AA381D412374F5506413E2EB0D89FBFFF187EFFF9 + 0BC62F3EFD6728A999C0B0795E15A60150CD1540CD3A7B4FDCC5B0D5D94299E1 + CAD3BF0CDD3D53F280064CC666C06EA066176C36FF05B25F7F6544B11DC50098 + D3C3C3F519D6ECBA8C61BBBDA922C38D17FF41B6C384B6020DF261846AFE0FA4 + AE809C0EB21DDD6610FFCF9F7F0CE91553194CF49518A4558D1836AE59037609 + 23C8E6AB4F2E2C2136DAE4B5AC186E9CD9C570F3C1278801B53D0BFE3715C7E3 + D4F0E5C75F86CFDF8118487FF9F18F61C3BA350C12CA260C3B366F4218408CCD + 17AE3D03D3065A520CEC42AA0C278F1CC4EF02749BBF82F0CFBF0CC7F66E64F8 + C92AC970FDE259DC06A06BAE3DEFC390ABB49EE1FEB5530CCF9F3F6778FA919D + E1F5D3FBD80DC066F3AC743D8680EEB30CAFEE9E61D8BEF72C4CA90CD080A770 + 03A62FDB45542C400D006B062724DFA4366920FD84D86844D68C9212C905001F + 16FA1194E3DBC30000000049454E44AE426082} + Name = 'PngImage8' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD2520000015F4944415478DA6364A000FC3060F8CF884D62C5 + 8A0BBB81940BB258E7FC99286A8EBF9CCEC06EE4C5C088457334905AE2E6A9CA + 20C8C70516FBF3F71F8399770E44D3F9FF0C3F0D19219AE76D6364C4A2B902A8 + 5967EF89BB2806B7F54D6738E7C4C1F073793F58B3D1537986F33BA76318B01B + A8D905D9E6DF7FFE82B1437011C3B91DD31818BA8AC07246FB7EA01A00737A78 + B83EC39A5D9731C205E40274003700A8F93F90BA02723AC876649BFF02D920FE + 9F3FFF18D22BA63298E82B3148AB1A316C5CB38661F5B92A064690CD579F5C58 + 4228CAB6EC3E893D166A7B16FC6F2A8EC7A9F1CB8FBF0C9FBFFF65F08E2CC01E + 0B20038849342017608D055C2E80D9FC19487FF9F18F2125B3147B2C6033005D + 73ED791F86E7B334B1C702BA01E89ABF02F1AC743D8680EEB30CAFEE9E61D8BE + F72C4CA9CCE679554FE1064C5FB68B98A0801900D60C6230FA26B54903E92744 + E946B219C661244123560000C9AFE6B31530CB2E0000000049454E44AE426082} + Name = 'PngImage9' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000016A4944415478DA + 63FCFFFF3F03082CDD7212C22000627C2D18616C905E466403A27DCCF16A06AA + 61E89DB290E1FCCEE98C241BF0EFDF3F86E5DB4E33488B093314D5F5810D21DA + 0090E6DF7FFE31ACD97596C1C9429BE1E6BD176043CEED98C688D3804D0F0E30 + F45E6A02B37779EC62E05CC0C6B058EA38D80B3080D30090E6805D4E182E7911 + FC91E1C4E5C70C8F1E3F6298B774137603609AFFA4FC013B1B64738BB13743CD + D9AD0C8FFDDF81C5B6EC3B85DB00A6594C289A91C13DEF3740F1BF0C3B0F9DC5 + 6D0048C1EFDF7F21F49F7F50FA2FC31F181F2877E0E445EC068479988015F02C + E640B1F98EE72BB066CDDD120C676D1E311C3D7B05BB0181CE8660DB049773C3 + FD8DAC3957BB80219A379FE1D4C5EBD80DF0B1D7032B165BCD8B110330CD200B + CE5FBD85DD00776B1DB002E9F502609B13CF8781E50C840DE09A41165CB97907 + BB014EE69A1801060B44986610C06980ADB11AC3A63D2789C994D80D404EA6C4 + 0090010087546EF0ACB0C7920000000049454E44AE426082} + Name = 'PngImage10' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001024944415478DA + 63FCFFFF3F03258071D400064674018780D0A7823C7C09EB97CCDD8D4B535EC3 + C493AF1EDC305B3E7F1A2323BA66090111A9272F9F301CD9BE99119701110999 + FF416A0E6FDB843000A4F9CFCF1F52F834C2808DA72FD8DF700348D18C6C08D8 + 004B77AF69F292F299308987CF1F4E979256DEB076DEE45D207E7052AEDBB3A7 + 770390D58000DC0B20FFCC98D0CE70E1053FC3DBBF3F191E7F66603831A310C5 + B6E533A6311C7CC080228F624046C534B82408AC690C856B9611976140970719 + 20ACA0CB30A53E13624068693F5CF2F2E3F70C37E7A5C163019BFCD7AD4D0C2B + 164C07A72146981F999998C17EFCFBEF2FD630C0260F3660C0933200BCB3BCE1 + CDA578040000000049454E44AE426082} + Name = 'PngImage11' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001C04944415478DA + 63FCFFFF3F0325801164C0C20D47A381F41292353332C6800D58B0FEC8FF8440 + 1BA234FDF9FB8FE1F79FBF60EC105CC4806200A3E14C86FFE7D3C13408E0627F + 3C12CF70ECEC0D86AAB659D80D4007FF806AFEFC41D80CC2672FDFC1340019C8 + 7A2C6178F2F22B98ADAE20C0D09869CCE06E29CD2068B788E1D9AE48868BD7EF + 117601C8E673D7DF309846AF6310E66767B8BE3E8441CC6929C3C36D610CD76E + 3FC46DC0CBB7DF19EA679C613870E619C3C3679F197EFCFA0B36106433C8F97F + 80F8D6FD27B8BD1053BD8F61E9B6DB0C0B9B1C181C4C2518E43D5780C54136CB + 7BAD62B8B12E90E1FEE367D85DF0F75C1A836FDE0E866D471E315C5A15CCF0F1 + CB4F06DBA42D6003EE6E0A6650F65BCB7061B90FC3F357AFB11BF0F3540AC3B1 + 8B2F18A2ABF6313C7BFD8DC1C14412E895E76003AEAEF6077B4123528661FFC4 + F3A806C4F859C1A30839CAE0ECDF10BE41E416860F7F32188E4F453320DCCB9C + 81CB621ED8A6177BA218245C9681D9B7360431A805AC03B37F306430FCF8C3C0 + F0E61B0483D8700382DC4CF0DAFC1B498EDD5785E1FD4A3417F83919319CBA78 + 8BA8FCF0DFCF908171139201A0DC3871C6529273637E46740C00F128724C706C + 80060000000049454E44AE426082} + Name = 'PngImage12' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000E9C00000E9C01079453DD000002324944415478DA + 63FCFFFF3F03258011640023232386C4922BFF0D9818FFC57EFFFE57FDEFBFFF + CC8CFF19BEF0F1B36D5C73E9EAAAD5613ABF60166318505FFF9F4939F077F98B + 97BF6BEFDCFEC6F9EDDB3F86BF7F810A9918192424D9FEF3F1B32FBFFA93236E + 5528C35FB8018D9B7E2C6DF0E38859759581F5E7BF3FD36EDEF89AF4E51B03E3 + B72F7FC0867EF8F897E1EF3F06867F40ACA1C9F96FE392D5BA5737265D831BE0 + 58F9F0BF83A5F83245796696CB973E87FEF9C70CD6FCE2D92B86E78F6EFCFCF7 + EFEF17360E5E4151590326666626067D7DDE65F57E1CD12806288BB3FF676567 + 66E0E062036B7EFEF425C39307576E8A2A19B9EE6A557DA217B2A88E9B5FBA41 + 405C87C1DC9CEF01D0004514031444391804843918409ADFBFFFCE70E7EA91FB + 9F3FF06BDED9E1F513A450357481341FBBD03D611973362B4B2C067CF8C1C060 + A020C0F0E3FB4F86CF1FDEBCBE7FFD84C3B54DC9D760812B13DACB29CAAAF84A + 58C69AC7C61A8B01CF9FFF61E014646190E365627870FD40C3A535718DC8D1AA + E2B1988F5788E7B998823597A5392FA6010C1F1EC0157FF8F081E1DF9F4F0D1C + EC6AFDA7965A7C02899924ED550746C555793523665D1D2ED440C49690D08149 + D2A9764E3ED90A037DEEFF3696BC7161EA0C4B8836402FF6A41A37AFF0690E2E + 7E3E7B5B9E65C08494084C48BF8832402BF40A0F8F30DB3E0E2E4153277B9E65 + 0DFE9C60A7E34CCA280098ACCDDF3C5A2925C913ACAFCBB51CA6997803ECF7B3 + 301C74FC834D0AC5004A000026261CF09ABF155A0000000049454E44AE426082} + Name = 'PngImage13' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A000002E64944415478DA + 8D936B4893511CC6FF67DA74BAC9BC9478C9357338CC4B0EBC1709F929A25414 + A13E48082D8CFC20267E1B925DD004B3120C75919AA99B5DADD485E56DA2791D + 739ABA2D9DB7A953379D6EEF5EDFDE14859C810F3C5F0ECFF33BFFF38783E0FF + 425902A13B668448DCB4C5B658709C40D8F0A4563120A97FB1B61F3AAC291008 + EDB1630ED7ECECA97C6F7F6FAEABB72BCDB46902B54CAD5BD4CCF7AAC68772C5 + 6F8A06C8286E05484EAEB3F10BB6A49FE2B2F2C2628318E0C440063300410050 + 910596D4B344F7BBB63169FBA7B4D6E65AA915205320E47A9EF4ECB89A7CCE85 + CDA021950141E2BD2E9049645029E683BB3301EB2AE5F657E15B4955457EAA15 + 205B5095CD8BE33D0C8BE0523C1002B50120E5C12EE03509D8A60078386EC1B7 + F2066DA3A89C8FFE1DBF9076CADFADFA4A467C829E70829C82AE43B79B97150D + B3522956F3F4C9B3030001DD87C3AE49C84CBCBC646640FCA5D29DF3A0B8A09D + 09F62469E1C3A4B4D7F2EAF1A3DA834FA064DC2D2D8E4DB9984E63F922ED2A02 + 161DE04EE1EE13D4ED7CB090CB5CD9C6E1439978A3FE655189D50E52D37263CE + 4486374725C5D2168DF6C88E2CE414ED02942400030246C6A7087149C5688DF0 + 7EC63EE0F38DB3C79974A8ECB70B7459649E0F64F17854767800C588D390830D + 02172A19226F5E58D211DFEB9AF40DD5CFCB46E5DD0568AFECC6C43FFA470747 + 2CEBF420D2048072C57ED3CB2F846005F9D19CBD4E80C96882B9F16942D1DBA7 + FBD15C2B960F77159355056AB919E0E3E24C17F9C58487E1737218966D429386 + 01F235CB8589854D87D3DCD0448613938D61669B89B1C1099552DEB9AA9B9790 + E559D204FA99C5EBF78D0A0FB5D5ABA0BF6F0D7AA66CA1757CC4B862D808E9D6 + 9826C990236927D236A4B748AF92C6F6FF82243F890861AE817CC8001D6A0A74 + 2A478D1AFD7A926CC6FC058E20743BEDFA2F1ECC70B45A0CDA2614CB5AFDFAAD + BE19B3E828E51D009FCFE710C6F546ED680F473DFF3B7E70DAFCFEA8E5BFFA03 + 503A4EA60D6AAC070000000049454E44AE426082} + Name = 'PngImage14' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A000002E44944415478DA + 8D936B48D35118C6DFB379D9D4C9BC94A8CB399B38CC4B0E9C9A45427D8C5251 + 82FA2021B430F08398F4258650145A615642A12E4A31AF6565795958A69B685E + C7BCB4B92D9D3AA74E7771BAFD37FFFDA728E40A7CE0FDF6FC9E73DE877310FC + 5FA850200CC22C90ECB06EB1EC76870347D8F88C6E7244D4F8D2B06FFA172910 + 082998BBD7154F8A079F11C5E0043002A8D64D2BA8A56AFDB2463BA8928F1537 + BF2D1B21AC0E9780ECEC06323BCE9E17CE61DE4D4C8BA5812F0D996C00380EE0 + 81ECB0A25EC0FBDFF74C4B7E7CCAEDEEAC97B8041408849C906321BD97B24FFB + B36854A43221106B01ECCE007780203F1CCC2AE576BBF09DA8A6BA24C725A048 + 5053C43DCFBD9F98C4210523046A13C0D0320099BCBBF0360920D87B0BBE56B5 + E8DA9AAAF8E8EFEB3FA2864705D65ECC4FCF30E2BE70BB54ECD28F542485D676 + 3E2C482458DDD327CF0E04087CC222597519059917566C34B8F358BC031C94A8 + 8B0F339241FBEB870FEA0FAE40CABFF5A23CEDF2B93C2A3302E9D611307D0002 + 29006EC4D529A4DD2ED6B61DF0A1B279A3F15559854B0739B9C5A92792799D29 + 5969D4650B05791200C31B804A74E046B831C061423E8B3757544FD509EFE5EF + 077CBE76F208DD07DE0C7BC6F82FD3CFC430B95C0F162F9A64715091171981BF + 0761224E5E5AD1E3DF1A3A8C2DB5CF2BA764FDA5680F0EA43B3E469D8A4B5AD5 + 1BA149130DCA35CA66283B1E67C6B2A97EA147C16AB1C2A27C0E9F1C1CD27FEF + AC6F968D8BCB097412755D8F0EF3F7F36962A7F2121D8B3218976E4287860632 + 83FDAC6269D3EB38272193E64B6761988DAC981E55A894B2BE75BD5644C00BC4 + E0E867217738228597E06654C1F090010666DDA05B3E6159336DC4F76BAC3384 + 8968007C8971BE842D62D6C159C5DE5F109564E1F17403C8C64CD0AB26419F72 + CAA2319AB3A4F3B62F7008A19BB9577F71613E52A7C3A04731B9AA339A6F0CCD + DB9A0E03EF04F0F9FC48DC626ED34D0D44AAB5BFD347E76CAD87859DFA0386D8 + 3FA68502A9830000000049454E44AE426082} + Name = 'PngImage0' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A0000032A4944415478DA + 6D937B4814411CC77FB3B7777A5E7276969AA4648A20A5592A4585FE654122BD + 0CAA3FE2841EA45946697591BD8DB27748A2BDA0A43FA2420C893252D2A244B4 + 7C24495986AFBC3BDDDBDB9DDDBDDDDB663714B366F9B2BB33DFCF777E3BB383 + E0DF66235A19342370912538D0CAB2825BF00A6DA4EF2D1133D5A8AA2AA029EF + 4126B3292B2E21BA70697A5262626A9C393422040D0FBAFCAD6F3BF187C68ED6 + 9F5F472E2992524FBCE2F400735884ED40E6BAE58539F6CCD0B9F323009111C5 + EF075191600C7BA0ABEBAB5AF7A071A4ADBEE71CE7C615849126032823B52D77 + EFBAEBF6BDEBAD164B20E941A092EBF89ED75050960C6ECC805B6060D8E984E7 + 379B9C2D8F3AB71353CD4440CC8ACCE49725D7F2626DB3AC60A028C2535092FF + 4A2FCD5E1A0F2E3C062E9E8171D1034303A3F0E24CF3A7910EF72A1230826813 + BDAFF87CEE85ACCD19269AA2C16030C0093273EDC372C8DE92FFD7EACEDDE902 + 06B3D0F1A41777DEED2D5015F5369A1335BBB6ACFA4056745C24A22903941636 + EBF044C38204BCE003FBEE62B0DAFBC1237A61B8C7A9B69DE979ECF3F836A1A4 + 65F15F4EDD2A880BB606A12B45AD93B02C2BE023D2604D79FB8F02B5F533B022 + 078C9B55BBCF7EEBC43F8424B4243DE19BA37C678CC962844A47B71E204F8212 + 09F1EBF783474E02BBB105BC1207DE711EFACA06BE8B7D520C8A8A0D6F70DCD9 + 951E343B1061598067A54EA8AEBAA4435A0826D22A3976B21406B31B80F76160 + FB3975E8E2E84785F12F460166E3E91D17361D8E5D1E45F332062C8BD07EC300 + D7CA4EC1BEA292BF16B177751D6893304D5E9979E0AD5265354FDBC694B4EC05 + 7599FB57844906093862D04CCEBB913AE4D9F01EBC3E1EBC22AF87635680F1FB + EC4FB95DC922DBD8A105A0008BF1444641DAA1A88C8800CE8F8123656AA59A1F + A740FF9A7AF22CE8B0208AC035F258A8911C20C3D5A9BF72D8CC79C197E3D7CE + CBB12D0D09106862D4A13F9F343133F70E63F18D740F7E818330E3D30FD31CA3 + D5986F5B68B55B532DE128923248269F0EF2DF05856FC58372AF52013C5412AF + EB7FA7516B34512232C2063A944E44C1C82C7B14CEEFF2B793929F92B16E2265 + EA71FE0D330BBCF031BDB9A60000000049454E44AE426082} + Name = 'PngImage15' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A0000031C4944415478DA + 6D536B481451143E779D5D5D37D95AD354523445905AB32C0A0DFD653F92252B + 8BFA130A3D40F385D1C3B09766A5652548D23B34FA1115624894A0F6502845CB + 079298A5F8CA75737677E6CECCCEA3BB532DAB75868F3B73EFF77DE7CCBDF720 + F8374C045BFC97F8AD3504F8191D0ECEC639B91E32D741407B13154501E4F5ED + AFD3EBD263E2220A37A5C49BCD1B62F481214BD1F4E49CDCDDD18F3FB4F7758F + 8FCC5C9504A98570F9C506FAE01053715A46526166565AE0CA552180C88A24CB + C04B02FCC476181818519A1BDA677A5A862E32365C473482C740A3D5ECCFCECF + A8C9CADF613418FCC80C02853C678EB4425E5502D8300D368E8669AB155EDE7C + 67FDF8A4FF002135FE35884A4E4B787DFA464EB469B9117C341AA2D78008329C + CF6D55CBB39406C11C4BC33C6F87A989597855FEFEF34C9F6D2B319841948E2A + 387639BB327D6FAA8ED2505056F066C18E363DAE05CBBE5C30E7BBE02767071A + 3BA0EFD930EEBF3F9CA748CA5D141A1ED454F5A8383D22260C511A1FA8287CAF + 8ABC037302ECC92E0263D618D879274C0F59959EF2A1A72EBB6B378ADF1CFBE5 + FC9DBC9800A33F2201D547BB3C06A228818B80E55C2A728A4E01B3AB0B689B43 + 19BCF0B51F7FE7E2D1FA94B8AF25B587A274062DD971173C2C1D560D448F5020 + 26B23A1E3D790EA62C6DE09C6761B46AE21B3F2A44A1F0E8156D25F70EA7F807 + F9212C72F0A2C20ACFEB6B3C62F788094E9496C12411B32E0C8E314699BA32FB + 49A2E575C857AF2D3B58B9FB44745238C58A183AAF890BFEFF5259A947CC082C + B893D0EF9C22DDE0BCAD884A8EFB1813375A5637A71525070B3E023084E02631 + 24136E88564D262DADE0E4DD621EB08383F97AC7B8D82BA59363EC731B205F83 + F66C6ADEC6E3E1A921BE8C8C55B1BB54FDD34418DBD642DE3955CCF13C30ED2C + E61A85127251AE7B5FE5E0659101D5B1DB23334D9B96FA721421AA22FC3BEB9F + CC4C27C6FC5BE101FC8012A2995FDC4CA15AA336D7B4C69865DC605881C2343E + 82CEA50AD96F9CC476E3497158AA03166E11EEDCFFBAD11D1481196961271548 + 995100D28B768991E7E45E52F273B236482079B7F32FB7E1BAF0E8F71C040000 + 000049454E44AE426082} + Name = 'PngImage16' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000019E4944415478DA + 63FCFFFF3F4341F1F9FF0C6402469801BEFE4A0C0B16DD60583CC71CABC21F3F + FF327CFFF90748FF6128ABBCC2A0A5CEC0B072C752E20C40D6FCE3D71F86BAFA + 1B0CEB963B31A85A241336005DF38FDF7F18DA5AEE3098997032CC5D3D07BF01 + D834FFFCF597A1B7EB3E612FE0D20CC253263C625092FFC5B0F1C06AEC06E0D3 + 0CE2CF99F68C4152EC0BC3AE931B310D983EC908A119AA11A409660008CC9FF9 + 9C4180F72DC3E14B3B500D00019021840048F3F7EF3F19CEDCDE8F6AC09F3F40 + DB7EFC024B82E81FDF816C280D11FFC5F0F9D337B03C08DF7C79126180A7B73C + 86E6CF9FBF43C460867DFB09D70C32ECD1A7F308036CEC44C18A976E9A82D7F9 + 7CFF8DC19A4186BCFE7D0D618089193FD896B5BB67311CDA309341504A87E1C9 + ED930CEF3FFD60F8F0F927C3FD671F1956AD59CDF0EC96105833C8BBEFFFDF44 + 18A0A3CB0976EAB6C30B182E1CDDCBA06768C8B073FD02B8CDF79F7E64E89C34 + 87E1EE456EB06610403140599519EC827D6796312447F833F072B130B0B0B2A1 + 387FF5D6430C37CF72C0F9700318191919F49D72C9CAD200FAC9B5C145016BDA + 0000000049454E44AE426082} + Name = 'PngImage17' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000015D4944415478DA + 63FCFFFF3F03082CDD7212C22000627C2D1891F98CC80644FB98E3D50C54C3D0 + 3B6521C3F99DD3194936E0DFBF7F0CCBB79D6690161366B04C57058B715C6060 + 24CA0090E6DF7FFE31ACD9759621A4D68281352A97E1F7B2C90C8B2E10E10298 + E6DFBFFF325C5DC2C1F044E912C39B4B4B19984A3AB17BC171E64DACAEE860D0 + 60D0F399C2F0F2D636868587CC18A41A1A18D218F07801DD669866100E699161 + 10D5F6050726411720DB0CD35CDE369B61DED24DD80DF8FDE72FD856107D6319 + 1786E6ED7B4F311C387911BB01611E260C6E73EF80F9110C1F180C182C18C4D5 + BC5034830C3E7AF60A7603029D0D212E00FA7DEDAA2B0C2D2D210C6B6A9EA068 + 06E15317AF6337C0C75E8F2160D92330FF4E8B0B838B4B0D985D5CE907D70CC2 + E7AFDEC26E80BBB50E5CD11FA84B60E181C0FF18AEDCBC83DD0027734D829A41 + 00A701B6C66A0C9BF69C24265362370094D348012003002CB76B52FA97B19500 + 00000049454E44AE426082} + Name = 'PngImage18' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001B04944415478DA + 63FCFFFF3F03258071D400064674018780D0A7823C7C09EB97CCDD8D4B535EC3 + C493AF1EDC305BB1603A2323BA66090111A9272F9F301CD9BE99119701110999 + FF616A189135FFF9F9430A9F4618B0F1F405FB1B6E0021CDD70CF8FF0B09B0D7 + 481C78D50AE2FF7295B1FBC82F7AF0C585F30C8C96EE5ED3E425E533618A1F3E + 7F385D4A5A79C3DA79937781F8C149B96E6627F7F4F8B23ED3DD226BC2F04840 + 96A19CE72DC3E7E387182EDEF8389911E49F1913DA192EBCE06778FBF727C3E3 + CF0C0C276614A2B860F98C690C9BAA5A1854F7F530282A4830DC7FF08261E657 + 318689B76F33820DC8A89806D70C026B1A43E19A65C46518C0F25F3F3048CE28 + 6050BFBC9A61DB7F198693AE390C535AF220068496F6C3355F7EFC9EE1E6BC34 + 782CC0E47F5EBFC060D7E5C170E8BD208301F73B06BE7F1FFD642E316C6604F9 + F1D9D3BB01CC4CCCE070F8FBEF2F4618FC7D723D22F3EF93C4FB37DE301C1296 + D9E8FBE68198BED87F4BFEBF1FED084619087CB4178BB974FFD3D42B8F7E7801 + 6D390A12DB28C4BA51558ECB8F2803D6F1B2C67CFEF5C728EEE7FF62A006701A + 98C0C0202ECBCDB00A00547CD715F016991D0000000049454E44AE426082} + Name = 'PngImage19' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001034944415478DA + 636498F123988181610D032A0861C8E058CB400460041AF07F8201AA60C10520 + 91C1C1489201604DC40114D7313234DCF84FB4561868D080BB8E71F3BEBBFF7D + 1C9550E4FFFCFDC7F0E7CF5F86DF60FC0F4C83F8DF7EFC66084FAF6738BF733A + 7603D6DEFBC710B2FB378A61732CFF307888FF061B7AEDEE4B86EAD6C9B80D60 + 9CF993015B803EF0FDCAF0EBF75F863B8FDEE036006403EB9CDF0CA40628D800 + 0F3B05B01F393BEE911C9E6003ECCDA4188E9CBBCFF0F70F3B03A9010A36A0AE + B307ACB8A9BC04C5005C9A91031425B52107283ECDC8018AD500429A41F8D1F3 + F7D80D8005283ECDBF81F8F99B4FD80D8005283100AB01B0002516000097A51A + 7A68BA98860000000049454E44AE426082} + Name = 'PngImage20' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD25200000A4D694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53775893F7163EDF + F7650F5642D8F0B1976C81002223AC08C81059A21092006184101240C585880A + 561415119C4855C482D50A489D88E2A028B867418A885A8B555C38EE1FDCA7B5 + 7D7AEFEDEDFBD7FBBCE79CE7FCCE79CF0F8011122691E6A26A003952853C3AD8 + 1F8F4F48C4C9BD80021548E0042010E6CBC26705C50000F00379787E74B03FFC + 01AF6F00020070D52E2412C7E1FF83BA50265700209100E02212E70B01905200 + C82E54C81400C81800B053B3640A009400006C797C422200AA0D00ECF4493E05 + 00D8A993DC1700D8A21CA908008D0100992847240240BB00605581522C02C0C2 + 00A0AC40222E04C0AE018059B632470280BD0500768E58900F4060008099422C + CC0020380200431E13CD03204C03A030D2BFE0A95F7085B8480100C0CB95CD97 + 4BD23314B895D01A77F2F0E0E221E2C26CB142611729106609E4229C979B2313 + 48E7034CCE0C00001AF9D1C1FE383F90E7E6E4E1E666E76CEFF4C5A2FE6BF06F + 223E21F1DFFEBC8C020400104ECFEFDA5FE5E5D60370C701B075BF6BA95B00DA + 560068DFF95D33DB09A05A0AD07AF98B7938FC401E9EA150C83C1D1C0A0B0BED + 2562A1BD30E38B3EFF33E16FE08B7EF6FC401EFEDB7AF000719A4099ADC0A383 + FD71616E76AE528EE7CB0442316EF7E723FEC7857FFD8E29D1E234B15C2C158A + F15889B850224DC779B952914421C995E212E97F32F11F96FD0993770D00AC86 + 4FC04EB607B5CB6CC07EEE01028B0E58D27600407EF32D8C1A0B910010673432 + 79F7000093BFF98F402B0100CD97A4E30000BCE8185CA894174CC608000044A0 + 812AB041070CC114ACC00E9CC11DBCC01702610644400C24C03C104206E4801C + 0AA11896411954C03AD804B5B0031AA0119AE110B4C131380DE7E0125C81EB70 + 170660189EC218BC86090441C8081361213A8811628ED822CE0817998E042261 + 48349280A420E988145122C5C872A402A9426A915D4823F22D7214398D5C40FA + 90DBC820328AFC8ABC47319481B25103D4027540B9A81F1A8AC6A073D174340F + 5D8096A26BD11AB41E3D80B6A2A7D14BE87574007D8A8E6380D1310E668CD961 + 5C8C87456089581A26C71663E55835568F35631D583776151BC09E61EF082402 + 8B8013EC085E8410C26C82909047584C5843A825EC23B412BA085709838431C2 + 272293A84FB4257A12F9C478623AB1905846AC26EE211E219E255E270E135F93 + 48240EC992E44E0A21259032490B496B48DB482DA453A43ED210699C4C26EB90 + 6DC9DEE408B280AC209791B7900F904F92FBC9C3E4B7143AC588E24C09A22452 + A494124A35653FE504A59F324299A0AA51CDA99ED408AA883A9F5A496DA07650 + 2F5387A91334759A25CD9B1643CBA42DA3D5D09A696769F7682FE974BA09DD83 + 1E4597D097D26BE807E9E7E983F4770C0D860D83C7486228196B197B19A718B7 + 192F994CA605D39799C85430D7321B9967980F986F55582AF62A7C1591CA1295 + 3A9556957E95E7AA545573553FD579AA0B54AB550FAB5E567DA64655B350E3A9 + 09D416ABD5A91D55BBA936AECE5277528F50CF515FA3BE5FFD82FA630DB28685 + 46A08648A35463B7C6198D2116C63265F15842D6725603EB2C6B984D625BB2F9 + EC4C7605FB1B762F7B4C534373AA66AC6691669DE671CD010EC6B1E0F039D99C + 4ACE21CE0DCE7B2D032D3F2DB1D66AAD66AD7EAD37DA7ADABEDA62ED72ED16ED + EBDAEF75709D409D2C9DF53A6D3AF77509BA36BA51BA85BADB75CFEA3ED363EB + 79E909F5CAF50EE9DDD147F56DF4A3F517EAEFD6EFD11F373034083690196C31 + 3863F0CC9063E86B9869B8D1F084E1A811CB68BA91C468A3D149A327B826EE87 + 67E33578173E66AC6F1C62AC34DE65DC6B3C61626932DBA4C4A4C5E4BE29CD94 + 6B9A66BAD1B4D374CCCCC82CDCACD8ACC9EC8E39D59C6B9E61BED9BCDBFC8D85 + A5459CC54A8B368BC796DA967CCB05964D96F7AC98563E567956F556D7AC49D6 + 5CEB2CEB6DD6576C501B579B0C9B3A9BCBB6A8AD9BADC4769B6DDF14E2148F29 + D229F5536EDA31ECFCEC0AEC9AEC06ED39F661F625F66DF6CF1DCC1C121DD63B + 743B7C727475CC766C70BCEBA4E134C3A9C4A9C3E957671B67A1739DF33517A6 + 4B90CB1297769717536DA78AA76E9F7ACB95E51AEEBAD2B5D3F5A39BBB9BDCAD + D96DD4DDCC3DC57DABFB4D2E9B1BC95DC33DEF41F4F0F758E271CCE39DA79BA7 + C2F390E72F5E765E595EFBBD1E4FB39C269ED6306DC8DBC45BE0BDCB7B603A3E + 3D65FACEE9033EC63E029F7A9F87BEA6BE22DF3DBE237ED67E997E07FC9EFB3B + FACBFD8FF8BFE179F216F14E056001C101E501BD811A81B3036B031F049904A5 + 0735058D05BB062F0C3E15420C090D591F72936FC017F21BF96333DC672C9AD1 + 15CA089D155A1BFA30CC264C1ED6118E86CF08DF107E6FA6F94CE9CCB60888E0 + 476C88B81F69199917F97D14292A32AA2EEA51B453747174F72CD6ACE459FB67 + BD8EF18FA98CB93BDB6AB6727667AC6A6C526C63EC9BB880B8AAB8817887F845 + F1971274132409ED89E4C4D8C43D89E37302E76C9A339CE49A54967463AEE5DC + A2B917E6E9CECB9E773C593559907C3885981297B23FE5832042502F184FE5A7 + 6E4D1D13F2849B854F45BEA28DA251B1B7B84A3C92E69D5695F638DD3B7D43FA + 68864F4675C633094F522B79911992B923F34D5644D6DEACCFD971D92D39949C + 949CA3520D6996B42BD730B728B74F662B2B930DE479E66DCA1B9387CAF7E423 + F973F3DB156C854CD1A3B452AE500E164C2FA82B785B185B78B848BD485AD433 + DF66FEEAF9230B82167CBD90B050B8B0B3D8B87859F1E022BF45BB16238B5317 + 772E315D52BA647869F0D27DCB68CBB296FD50E2585255F26A79DCF28E5283D2 + A5A5432B82573495A994C9CB6EAEF45AB9631561956455EF6A97D55B567F2A17 + 955FAC70ACA8AEF8B046B8E6E2574E5FD57CF5796DDADADE4AB7CAEDEB48EBA4 + EB6EACF759BFAF4ABD6A41D5D086F00DAD1BF18DE51B5F6D4ADE74A17A6AF58E + CDB4CDCACD03356135ED5BCCB6ACDBF2A136A3F67A9D7F5DCB56FDADABB7BED9 + 26DAD6BFDD777BF30E831D153BDEEF94ECBCB52B78576BBD457DF56ED2EE82DD + 8F1A621BBABFE67EDDB847774FC59E8F7BA57B07F645EFEB6A746F6CDCAFBFBF + B2096D52368D1E483A70E59B806FDA9BED9A77B5705A2A0EC241E5C127DFA67C + 7BE350E8A1CEC3DCC3CDDF997FB7F508EB48792BD23ABF75AC2DA36DA03DA1BD + EFE88CA39D1D5E1D47BEB7FF7EEF31E36375C7358F579EA09D283DF1F9E48293 + E3A764A79E9D4E3F3DD499DC79F74CFC996B5D515DBD6743CF9E3F1774EE4CB7 + 5FF7C9F3DEE78F5DF0BC70F422F762DB25B74BAD3DAE3D477E70FDE148AF5B6F + EB65F7CBED573CAE74F44DEB3BD1EFD37FFA6AC0D573D7F8D72E5D9F79BDEFC6 + EC1BB76E26DD1CB825BAF5F876F6ED17770AEE4CDC5D7A8F78AFFCBEDAFDEA07 + FA0FEA7FB4FEB165C06DE0F860C060CFC3590FEF0E09879EFE94FFD387E1D247 + CC47D52346238D8F9D1F1F1B0D1ABDF264CE93E1A7B2A713CFCA7E56FF79EB73 + ABE7DFFDE2FB4BCF58FCD8F00BF98BCFBFAE79A9F372EFABA9AF3AC723C71FBC + CE793DF1A6FCADCEDB7DEFB8EFBADFC7BD1F9928FC40FE50F3D1FA63C7A7D04F + F73EE77CFEFC2FF784F3FB25D29F33000001744944415478DA63FCFFFF3FC394 + C53BFE33900172623D1819610600394469FAF3F71FC3EF3F7F19ACFDF319CEED + 98866A806DD17E14C587FB1CC134B2F8AE761B86B9ABF632CC5BBA09D3007CE0 + D7EFBF609B4178C98683D80D40770136B0AED69461E59623B80D80391B04FE01 + E5FEFCF907B7D9B7FE04C3AA4A6386B53B8EE13700E692BD9D760CCEE587E036 + 07359F66585A6AC0B069CF49FC06C06CFE7CFB30C3CBC5B1F87CE48261C0C15E + 0706FBE20360D999EC710CCA0D350CECECE9183A7FFE9CC9302FB18501C30090 + B3617E7ED6A6C6A0D5FE18AC180E7EFC00E2EF0CB3771930306F4F45189011E5 + C6E0587A10C516900B500C0069FEF00E62C02927540392C39CC1B6C2423DA4F5 + 0CAA0130CD60037E32CCBE15846A405C90034A9445769E4718F0712242F3870F + 1017BC4A413520CA0FE177B841338C20063CAC47688679E15719AA01A15ED60C + ABB71D450903A76BA9E05898BD4A1E6B1CA218004A18E8409BF70D8315EB719C + 89C05E9EC10500D1295EA9BD5461080000000049454E44AE426082} + Name = 'PngImage23' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001124944415478DA + 63FCFFFF3F03258091620340848147C2FF0B3B1630A24B1223CE08E20CAC0B28 + 0A0098010B361C807BE3E7CF5F0C5FBF7D63F8F2ED3B98D65455C62ADE599ACC + 886240BCBF3D58E19FBFFF18BE7DFFC5F0EDC72F86D6A98B1826D7E760159FD2 + 908B69C0EF3F7F810A7E337C072ABC71FF15C3FC556B1916F69463155FD45B81 + 3060DAF21DFF93835D18BEFF80D8F0FDC71F8647CFDF334C9CB38061E5D446AC + E21B66B7220CE89AB3EE7F6AA80754D16F862F409BDE7FFCC6D0D43F8561DDCC + 76ACE2FB574C4418503771F1FFB4085F86DB0F5EA3847049633BC3C6F97D58C5 + CF6E9B8730A0A86DE6FF6FC0D0FDF4F90BC3E72F5FA1F417867FFFFE33589818 + 601587A78381CF4C941A00005C20FBD97F751C0A0000000049454E44AE426082} + Name = 'PngImage22' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000B3A00000B3A01647F570D0000015D4944415478DA + 63FCFFFF3F030830323232C0C0CEB58DCA2F6E6CBDF3FEF129B818C30F061490 + 3FFF3F58032336032E9C58FD9F8B47904155DB192EF6FFD72B867F9F2F31FCB9 + E3CA3063061E0380B6DBB373F01CB076CD66606165C7AAB96001923E6403809A + 9979F925FEC8299B32482B18E2D40C16C7614032D08039164EA97017810CF875 + 5E1CAC196F18EC5AD7C40F74FA073DB36006411179B8E6FF3F5F32FCBEA687A2 + 196B18000D681797D6AAD06008852B64D5BA0434E4251833000DFBFBA2087718 + 2CEF76FFFFE1E119865F5FDF81F9B993706BC61906D0589056D7D07F2223CE8D + 53332103DAC5C4A52B749438706AC6170BECACAC6C3FF4547918F8397FE3D48C + 3F1A79F9E7982A7F66F8FBBA16A7669C061CDB35E1BF9CAA1D83C84B23BC9AB1 + 1A008C466BA0F38F5888D632CC9AF907AF66AC065C383AF73FC7B7150C3B97ED + 21A819AB0137CE2CFBBF776E2643CE8C4F0435231B00004A4C11F0D3652A8300 + 00000049454E44AE426082} + Name = 'PngImage23' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 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/es de devoluci'#243'n seleccionada/s' + Value = 100 + Default = True + end + item + Caption = 'Imprimir la lista de ordenes de devoluci'#243'n actual' + Value = 200 + end> + end + inherited JsPrevisualizarDialog: TJSDialog + CustomButtons = < + item + Caption = 'Previsualizar la orden/es de devoluci'#243'n seleccionada/s' + Value = 100 + Default = True + end + item + Caption = 'Previsualizar la lista de '#243'rdenes de devoluci'#243'n actual' + Value = 200 + end> + end + inherited JsListaAlbaranesNoEliminados: TJSDialog + Instruction.Text = + 'Las siguientes ordenes de devoluci'#243'n no han podido ser eliminada' + + 's, porque tiene una factura asociada' + end +end diff --git a/Source/Modulos/Albaranes de cliente/Views/uEditorAlbaranesDevCliente.pas b/Source/Modulos/Albaranes de cliente/Views/uEditorAlbaranesDevCliente.pas new file mode 100644 index 00000000..8c5ded50 --- /dev/null +++ b/Source/Modulos/Albaranes de cliente/Views/uEditorAlbaranesDevCliente.pas @@ -0,0 +1,57 @@ +unit uEditorAlbaranesDevCliente; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uEditorAlbaranesCliente, JSDialog, Menus, DB, uDADataTable, + JvAppStorage, JvAppRegistryStorage, JvComponentBase, JvFormPlacement, ImgList, + PngImageList, StdActns, ActnList, ComCtrls, JvExComCtrls, JvStatusBar, TBX, + TB2ExtItems, TBXExtItems, TB2Item, TB2Dock, TB2Toolbar, pngimage, ExtCtrls, + JvExControls, JvComponent, JvNavigationPane, uIEditorAlbaranesDevCliente, + uDAInterfaces; + +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, uFactuGES_App; + +{ 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 devolucin a cliente - ' + AppFactuGES.EmpresaActiva.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..4a1ad303 --- /dev/null +++ b/Source/Modulos/Albaranes de cliente/Views/uEditorElegirAlbaranesCliente.dfm @@ -0,0 +1,220 @@ +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 + ExplicitTop = 87 + ExplicitWidth = 790 + inherited tbxMain: TTBXToolbar + ExplicitWidth = 126 + inherited TBXItem2: TTBXItem + Visible = False + end + inherited TBXSeparatorItem1: TTBXSeparatorItem + Visible = False + end + inherited TBXItem5: TTBXItem + Visible = False + end + inherited TBXItem4: TTBXItem + Visible = False + end + inherited TBXSeparatorItem6: TTBXSeparatorItem + Visible = False + end + inherited TBXItem7: TTBXItem + Visible = False + end + inherited TBXSeparatorItem3: TTBXSeparatorItem + Visible = False + end + inherited TBXItem23: TTBXItem + Visible = False + end + inherited TBXSeparatorItem17: TTBXSeparatorItem + Visible = False + end + inherited TBXItem3: TTBXItem + Visible = False + end + inherited TBXSeparatorItem10: TTBXSeparatorItem + Visible = False + end + inherited TBXSeparatorItem2: TTBXSeparatorItem + Visible = False + end + inherited TBXItem6: TTBXItem + Visible = False + end + inherited TBXItem36: TTBXItem + Action = actAnchoAuto2 + end + end + inherited tbxFiltro: TTBXToolbar + Left = 126 + Top = 23 + DockPos = 104 + DockRow = 1 + ExplicitLeft = 126 + ExplicitTop = 23 + ExplicitWidth = 269 + inherited TBXItem34: TTBXItem + Action = actQuitarFiltro2 + end + inherited TBXItem37: TTBXItem + Visible = False + end + end + inherited tbxMenu: TTBXToolbar + ExplicitWidth = 790 + end + inherited TBXTMain2: TTBXToolbar + Left = 206 + Visible = False + ExplicitLeft = 206 + ExplicitWidth = 584 + 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 + inherited JsImprimirDialog: TJSDialog [15] + end + object EditorSeleccionActionList: TActionList + Images = SmallImages + Left = 152 + Top = 192 + object actBuscar2: TAction + Category = 'Buscar' + Caption = 'Buscar' + ImageIndex = 10 + ShortCut = 114 + end + object actQuitarFiltro2: TAction + Category = 'Buscar' + Caption = 'Quitar filtro y ver todo' + ImageIndex = 19 + OnExecute = actQuitarFiltro2Execute + end + object actAnchoAuto2: TAction + Category = 'Ver' + Caption = 'Ancho autom'#225'tico' + ImageIndex = 21 + OnExecute = actAnchoAuto2Execute + end + end +end diff --git a/Source/Modulos/Albaranes de cliente/Views/uEditorElegirAlbaranesCliente.pas b/Source/Modulos/Albaranes de cliente/Views/uEditorElegirAlbaranesCliente.pas new file mode 100644 index 00000000..4ce9e0a5 --- /dev/null +++ b/Source/Modulos/Albaranes de cliente/Views/uEditorElegirAlbaranesCliente.pas @@ -0,0 +1,116 @@ +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 + function GetAlbaranesClienteSeleccionados: IBizAlbaranCliente; + procedure SetViewGrid(const Value: IViewGridBase); override; + procedure SetMensaje (const AValue: String); + function GetMensaje: String; + + public + property Mensaje : String read GetMensaje write SetMensaje; + property AlbaranesClienteSeleccionados: IBizAlbaranCliente read GetAlbaranesClienteSeleccionados; + end; + +implementation + +uses + uEditorGridBase, cxGridCustomTableView, uIntegerListUtils, uDBSelectionListUtils, + 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; + +procedure TfEditorElegirAlbaranesCliente.SetMensaje(const AValue: String); +begin + JvgWizardHeader1.Comments.Text := AValue; +end; + +procedure TfEditorElegirAlbaranesCliente.SetViewGrid(const Value: IViewGridBase); +begin + inherited; + //Para que no salgan las pestaas de filtrado + ViewGrid._Grid.RootLevelOptions.DetailTabsPosition := dtpNone; + ViewGrid.OnDblClick := frViewBarraSeleccion1.actSeleccionar.OnExecute; +end; + +end. diff --git a/Source/Modulos/Albaranes de cliente/Views/uEditorElegirArticulosAlbaranCliente.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/uViewAlbaranCliente.dfm b/Source/Modulos/Albaranes de cliente/Views/uViewAlbaranCliente.dfm new file mode 100644 index 00000000..1b7177a7 --- /dev/null +++ b/Source/Modulos/Albaranes de cliente/Views/uViewAlbaranCliente.dfm @@ -0,0 +1,777 @@ +inherited frViewAlbaranCliente: TfrViewAlbaranCliente + Width = 822 + Height = 550 + OnCreate = CustomViewCreate + OnDestroy = CustomViewDestroy + ExplicitWidth = 822 + ExplicitHeight = 550 + object dxLayoutControl1: TdxLayoutControl + Left = 0 + Top = 0 + Width = 822 + Height = 550 + Align = alClient + ParentBackground = True + TabOrder = 0 + AutoContentSizes = [acsWidth, acsHeight] + DesignSize = ( + 822 + 550) + object Label1: TLabel + Left = 22 + Top = 450 + Width = 299 + Height = 26 + Caption = + 'Si el proveedor entrega los materiales directamente al cliente, ' + + 'no se necesario asociar el albar'#225'n a un almac'#233'n.' + WordWrap = True + end + object edtFechaAlbaran: TcxDBDateEdit + Left = 116 + Top = 82 + Anchors = [akLeft, akTop, akRight] + DataBinding.DataField = 'FECHA_ALBARAN' + DataBinding.DataSource = DADataSource + Properties.ImmediatePost = True + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.Color = clInfoBk + Style.HotTrack = False + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + Style.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 = 2 + Width = 119 + end + object memObservaciones: TcxDBMemo + Left = 440 + Top = 387 + 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 = 440 + 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 = 17 + ReadOnly = False + ExplicitLeft = 440 + 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 = 268 + ExplicitLeft = 268 + end + inherited Button3: TBitBtn + Left = 158 + ExplicitLeft = 158 + 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 = 224 + 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 = 8 + Width = 263 + end + object ePoblacion: TcxDBTextEdit + Left = 116 + Top = 251 + 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 = 9 + Width = 162 + end + object eCodigoPostal: TcxDBTextEdit + Left = 345 + Top = 251 + DataBinding.DataField = 'CODIGO_POSTAL' + DataBinding.DataSource = DADataSource + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.HotTrack = False + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + 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 = 65 + end + object eProvincia: TcxDBTextEdit + Left = 116 + Top = 278 + 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 = 11 + Width = 263 + end + object ePersonaContacto: TcxDBTextEdit + Left = 116 + Top = 305 + DataBinding.DataField = 'PERSONA_CONTACTO' + DataBinding.DataSource = DADataSource + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.Color = clWindow + Style.HotTrack = False + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + 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 = 84 + end + object eTlfTrabajo: TcxDBTextEdit + Left = 116 + Top = 332 + DataBinding.DataField = 'TELEFONO' + DataBinding.DataSource = DADataSource + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.HotTrack = False + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + 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 = 122 + end + object bElegirDireccion: TBitBtn + Left = 238 + Top = 359 + Width = 172 + Height = 23 + Action = actElegirDireccion + Caption = 'Elegir una direcci'#243'n de env'#237'o...' + TabOrder = 14 + end + object Button1: TButton + Left = 278 + Top = 138 + Width = 132 + Height = 23 + Action = actVerPedidoCli + TabOrder = 6 + end + object eReferenciaPedidoCli: TcxTextEdit + Left = 116 + Top = 138 + Anchors = [akLeft, akTop, akRight] + Enabled = False + Properties.ReadOnly = False + Properties.ValidateOnEnter = True + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.Color = clWindow + Style.HotTrack = False + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + 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 = 16 + 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 = 32 + end + object bFormasPago: TButton + Left = 278 + Top = 109 + Width = 132 + Height = 23 + Caption = 'Ver las formas de pago...' + TabOrder = 4 + OnClick = bFormasPagoClick + end + object eFechaRecepcion: TcxDBDateEdit + Left = 574 + Top = 330 + Anchors = [akLeft, akTop, akRight] + DataBinding.DataField = 'FECHA_RECEPCION' + DataBinding.DataSource = DADataSource + Properties.ImmediatePost = True + Properties.OnValidate = eFechaRecepcionPropertiesValidate + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.Color = clWindow + Style.HotTrack = False + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + Style.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 cbConAlmacen: TCheckBox + Left = 32 + Top = 418 + Width = 179 + Height = 21 + Caption = 'Asociar este albar'#225'n al almac'#233'n:' + TabOrder = 15 + OnClick = cbConAlmacenClick + end + object cbAlmacen: TcxDBLookupComboBox + Left = 217 + Top = 418 + DataBinding.DataField = 'ID_ALMACEN' + DataBinding.DataSource = DADataSource + Properties.KeyFieldNames = 'ID' + Properties.ListColumns = < + item + FieldName = 'NOMBRE' + end> + Properties.ListOptions.GridLines = glNone + Properties.ListOptions.ShowHeader = False + Properties.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 = 16 + Width = 69 + end + object eRefFacturaCli: TcxDBTextEdit + Left = 116 + Top = 167 + Anchors = [akLeft, akTop, akRight] + DataBinding.DataField = 'REF_FACTURA' + DataBinding.DataSource = DADataSource + Enabled = False + Properties.ReadOnly = False + Properties.ValidateOnEnter = True + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.Color = clWindow + Style.HotTrack = False + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + 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 = 7 + Width = 207 + end + object eFechaPrevista: TcxDBDateEdit + Left = 574 + Top = 276 + Anchors = [akLeft, akTop, akRight] + DataBinding.DataField = 'FECHA_PREVISTA_ENVIO' + DataBinding.DataSource = DADataSource + Properties.ImmediatePost = True + Properties.OnValidate = eFechaPrevistaPropertiesValidate + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.Color = clWindow + Style.HotTrack = False + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + Style.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 = 18 + Width = 122 + end + object eRefCliente: TcxDBTextEdit + Left = 116 + Top = 55 + Anchors = [akLeft, akTop, akRight] + DataBinding.DataField = 'REFERENCIA_CLIENTE' + DataBinding.DataSource = DADataSource + Properties.ReadOnly = False + Properties.ValidateOnEnter = True + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.Color = clInfoBk + Style.HotTrack = False + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + 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 = 284 + end + object eFechaEnvio: TcxDBDateEdit + Left = 574 + Top = 303 + Anchors = [akLeft, akTop, akRight] + DataBinding.DataField = 'FECHA_ENVIO' + DataBinding.DataSource = DADataSource + Properties.ImmediatePost = True + Properties.OnValidate = eFechaEnvioPropertiesValidate + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.Color = clWindow + Style.HotTrack = False + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + Style.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 = 19 + Width = 217 + end + object dxLayoutControl1Group_Root: TdxLayoutGroup + ShowCaption = False + Hidden = True + LayoutDirection = ldHorizontal + ShowBorder = False + object dxLayoutControl1Group6: TdxLayoutGroup + AutoAligns = [aaVertical] + AlignHorz = ahClient + ShowCaption = False + Hidden = True + ShowBorder = False + object dxLayoutControl1Group1: TdxLayoutGroup + AutoAligns = [] + AlignHorz = ahClient + Caption = 'Datos del albar'#225'n' + object dxLayoutControl1Item3: TdxLayoutItem + Caption = 'Referencia:' + Control = eReferencia + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item23: TdxLayoutItem + Caption = 'Ref. cliente:' + Control = eRefCliente + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item2: TdxLayoutItem + Caption = 'Fecha del albar'#225'n:' + Control = edtFechaAlbaran + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Group5: TdxLayoutGroup + ShowCaption = False + Hidden = True + ShowBorder = False + object dxLayoutControl1Group14: TdxLayoutGroup + ShowCaption = False + Visible = False + Hidden = True + LayoutDirection = ldHorizontal + ShowBorder = False + object dxLayoutControl1Item4: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahClient + Caption = 'Forma de pago' + Control = cbFormaPago + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item15: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahRight + ShowCaption = False + Control = bFormasPago + ControlOptions.ShowBorder = False + end + end + object dxLayoutControl1Group13: TdxLayoutGroup + ShowCaption = False + Hidden = True + ShowBorder = False + object dxLayoutControl1Group15: TdxLayoutGroup + ShowCaption = False + Hidden = True + LayoutDirection = ldHorizontal + ShowBorder = False + object dxLayoutControl1Item7: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahClient + Caption = 'Ref. del pedido:' + Control = eReferenciaPedidoCli + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item5: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahRight + Caption = 'Button1' + ShowCaption = False + Control = Button1 + ControlOptions.ShowBorder = False + end + end + object dxLayoutControl1Item22: TdxLayoutItem + Caption = 'Ref. factura:' + Control = eRefFacturaCli + ControlOptions.ShowBorder = False + end + end + end + end + object dxLayoutControl1Group8: TdxLayoutGroup + AutoAligns = [] + AlignHorz = ahClient + Caption = 'Direcci'#243'n de entrega' + 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 envio:' + Offsets.Left = 10 + Control = eFechaPrevista + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item21: TdxLayoutItem + Caption = 'Fecha de envio:' + Offsets.Left = 10 + Control = eFechaEnvio + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item16: TdxLayoutItem + AutoAligns = [] + AlignHorz = ahClient + Caption = 'Fecha de recepci'#243'n:' + Offsets.Left = 10 + Control = eFechaRecepcion + ControlOptions.ShowBorder = False + end + end + object dxLayoutControl1Group7: TdxLayoutGroup + AutoAligns = [aaHorizontal] + AlignVert = avClient + Caption = 'Observaciones' + object dxLayoutControl1Item6: TdxLayoutItem + AutoAligns = [aaHorizontal] + AlignVert = avClient + Control = memObservaciones + ControlOptions.ShowBorder = False + end + end + end + end + end + object DADataSource: TDADataSource + Left = 48 + end + object ActionList1: TActionList + Left = 24 + Top = 48 + object actElegirDireccion: TAction + Caption = 'Elegir una direcci'#243'n de env'#237'o...' + OnExecute = actElegirDireccionExecute + OnUpdate = actElegirDireccionUpdate + end + object actVerPedidoCli: TAction + Caption = 'Ver el pedido de cliente...' + OnExecute = actVerPedidoCliExecute + OnUpdate = actVerPedidoCliUpdate + end + end + object dsFormaPago: TDADataSource + Left = 16 + end + object dsAlmacenes: TDADataSource + Left = 64 + Top = 192 + end +end diff --git a/Source/Modulos/Albaranes de cliente/Views/uViewAlbaranCliente.pas b/Source/Modulos/Albaranes de cliente/Views/uViewAlbaranCliente.pas new file mode 100644 index 00000000..6ec24540 --- /dev/null +++ b/Source/Modulos/Albaranes de cliente/Views/uViewAlbaranCliente.pas @@ -0,0 +1,427 @@ +unit uViewAlbaranCliente; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uViewBase, uBizAlbaranesCliente, DB, uDADataTable, uCustomView, + AppEvnts, StdCtrls, Mask, DBCtrls, + + uViewObservaciones, uViewDatosYSeleccionCliente, + cxGraphics, cxDropDownEdit, cxImageComboBox, cxDBEdit, cxContainer, cxEdit, + cxTextEdit, cxMaskEdit, cxCalendar, dxLayoutControl, cxControls, cxMemo, + uViewDireccionEntregaAlbaranCliente, Buttons, ActnList, + +// uBizPedidosCliente, uPedidosClienteController, + + ExtCtrls, cxLookupEdit, cxDBLookupEdit, uBizFormasPago, + cxDBLookupComboBox, uFormasPagoController, uAlmacenesController, uDAInterfaces; + +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; + dxLayoutControl1Item19: TdxLayoutItem; + cbConAlmacen: TCheckBox; + dxLayoutControl1Item20: TdxLayoutItem; + cbAlmacen: TcxDBLookupComboBox; + dsAlmacenes: TDADataSource; + dxLayoutControl1Item18: TdxLayoutItem; + Label1: TLabel; + dxLayoutControl1Group12: TdxLayoutGroup; + dxLayoutControl1Group10: TdxLayoutGroup; + dxLayoutControl1Item22: TdxLayoutItem; + eRefFacturaCli: TcxDBTextEdit; + dxLayoutControl1Group15: TdxLayoutGroup; + dxLayoutControl1Item24: TdxLayoutItem; + eFechaPrevista: TcxDBDateEdit; + dxLayoutControl1Item23: TdxLayoutItem; + eRefCliente: TcxDBTextEdit; + dxLayoutControl1Item21: TdxLayoutItem; + eFechaEnvio: TcxDBDateEdit; + procedure CustomViewCreate(Sender: TObject); + procedure CustomViewDestroy(Sender: TObject); + procedure actElegirDireccionExecute(Sender: TObject); + procedure actVerPedidoCliExecute(Sender: TObject); + + procedure bFormasPagoClick(Sender: TObject); + procedure cbConAlmacenClick(Sender: TObject); + procedure eFechaPrevistaPropertiesValidate(Sender: TObject; + var DisplayValue: Variant; var ErrorText: TCaption; var Error: Boolean); + procedure eFechaEnvioPropertiesValidate(Sender: TObject; + var DisplayValue: Variant; var ErrorText: TCaption; var Error: Boolean); + procedure eFechaRecepcionPropertiesValidate(Sender: TObject; + var DisplayValue: Variant; var ErrorText: TCaption; var Error: Boolean); + procedure frViewClienteAlbaranactElegirContactoUpdate(Sender: TObject); + procedure actElegirDireccionUpdate(Sender: TObject); + procedure actVerPedidoCliUpdate(Sender: TObject); + procedure frViewClienteAlbaranButton1Click(Sender: TObject); + procedure frViewClienteAlbaranButton2Click(Sender: TObject); + procedure frViewClienteAlbaranactAnadirContactoUpdate(Sender: TObject); + + protected + FAlbaran : IBizAlbaranCliente; + FAlmacenesController : IAlmacenesController; +// FPedidoAsociado : IBizPedidoCliente; +// FPedidoController : IPedidosClienteController; + FViewClienteAlbaran : TfrViewDatosYSeleccionCliente; + FFormasPago : IBizFormaPago; + 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, uBizAlmacenes, uDateUtils, + uDialogUtils; + + +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 direccin del cliente que quiere utilizar como direccin de envio de este albaran.'); + if Assigned(ADireccion) then + begin + AAlbaranController.CopiarDireccionEnvio(ADireccion, FAlbaran); + FAlbaran.Edit; + FAlbaran.IMPORTE_PORTE := ADireccion.PORTE; + end; + finally + AClientesController := NIL; + AAlbaranController := NIL; + end; +end; + +procedure TfrViewAlbaranCliente.actElegirDireccionUpdate(Sender: TObject); +begin + inherited; + if (Sender as TAction).Enabled then + (Sender as TAction).Enabled := (not ReadOnly) and + Assigned(FAlbaran) and + Assigned(FViewClienteAlbaran) and + FAlbaran.DataTable.Active and + Assigned(FAlbaran.Cliente) and + Assigned(FAlbaran.Cliente) and + Assigned(FAlbaran.Cliente.Direcciones) and + FAlbaran.Cliente.Direcciones.DataTable.Active and + (FAlbaran.Cliente.Direcciones.DataTable.RecordCount > 0); +end; + +procedure TfrViewAlbaranCliente.actVerPedidoCliExecute(Sender: TObject); +begin + inherited; +// FPedidoController.Ver(FPedidoAsociado); +end; + +procedure TfrViewAlbaranCliente.actVerPedidoCliUpdate(Sender: TObject); +begin + inherited; + if (Sender as TAction).Enabled then + (Sender as TAction).Enabled := (Albaran.REF_PEDIDO <> '') + end; + +procedure TfrViewAlbaranCliente.bFormasPagoClick(Sender: TObject); +begin + inherited; + if Assigned(FFormasPago) then + FFormasPagoController.VerTodos(FFormasPago); +end; + +procedure TfrViewAlbaranCliente.cbConAlmacenClick(Sender: TObject); +begin + inherited; + + //Para que no me cambie el estilo del campo + if ReadOnly then Exit; + + if cbConAlmacen.Checked then + begin + cbAlmacen.Enabled := True; + cbAlmacen.DroppedDown := True; + end + else begin + cbAlmacen.Enabled := False; + FAlbaran.Edit; + FAlbaran.ID_ALMACEN := 0; + end; +end; + +procedure TfrViewAlbaranCliente.CustomViewCreate(Sender: TObject); +begin + inherited; + FFormasPago := Nil; + 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; + FFormasPago := Nil; + FFormasPagoController := NIL; + FViewClienteAlbaran := Nil; +// FPedidoController := NIL; +// FPedidoAsociado := NIL; + FAlmacenesController := NIL; +end; + +procedure TfrViewAlbaranCliente.eFechaEnvioPropertiesValidate(Sender: TObject; + var DisplayValue: Variant; var ErrorText: TCaption; var Error: Boolean); +begin + inherited; + + if VarIsNull(DisplayValue) or (DisplayValue = '') then + begin + if (ShowConfirmMessage('Si elimina la fecha prevista de envio, se eliminarn tambien las fechas de envio y recepcin en caso de tenerlas. Desea continuar?', '') = IDYES) then + begin + eFechaRecepcion.Clear; + eFechaRecepcion.Enabled := false; + end + else + DisplayValue := DateToStr(eFechaEnvio.Date); + end + else + eFechaRecepcion.Enabled := true; +end; + +procedure TfrViewAlbaranCliente.eFechaPrevistaPropertiesValidate(Sender: TObject; var DisplayValue: Variant; var ErrorText: TCaption; + var Error: Boolean); +begin + inherited; + if VarIsNull(DisplayValue) or (DisplayValue = '') then + begin + if (ShowConfirmMessage('Si elimina la fecha prevista de envio, se eliminarn tambien las fechas de envio y recepcin en caso de tenerlas. Desea continuar?', '') = IDYES) then + begin + eFechaEnvio.Clear; + eFechaEnvio.Enabled := false; + eFechaRecepcion.Clear; + eFechaRecepcion.Enabled := false; + end + else + DisplayValue := DateToStr(eFechaPrevista.Date); + end + else + eFechaEnvio.Enabled := true; +end; + +procedure TfrViewAlbaranCliente.eFechaRecepcionPropertiesValidate( + Sender: TObject; var DisplayValue: Variant; var ErrorText: TCaption; + var Error: Boolean); +begin + inherited; + if not (VarIsNull(DisplayValue) or (DisplayValue = '')) then + begin + if (eFechaRecepcion.Date < eFechaEnvio.Date) then + begin + ShowWarningMessage('La fecha de recepcin debe ser posterior a la fecha de envio'); + eFechaRecepcion.SetFocus; + end; + + end; +end; + +procedure TfrViewAlbaranCliente.frViewClienteAlbaranactAnadirContactoUpdate(Sender: TObject); +begin +{ + if (Sender as TAction).Enabled then + (Sender as TAction).Enabled := not Assigned(FPedidoAsociado); +} +end; + +procedure TfrViewAlbaranCliente.frViewClienteAlbaranactElegirContactoUpdate(Sender: TObject); +begin +{ + if (Sender as TAction).Enabled then + (Sender as TAction).Enabled := not Assigned(FPedidoAsociado); +} +end; + +procedure TfrViewAlbaranCliente.frViewClienteAlbaranButton1Click(Sender: TObject); +begin + if Assigned(Albaran) and Assigned(Albaran.Cliente) and + Assigned (Albaran.Detalles) and (Albaran.Detalles.RecordCount > 0) then + begin + if (Application.MessageBox('Los descuentos de los artculos del albarn sern actualizados con los del nuevo cliente seleccionado, Desea continuar?', 'Atencin', MB_YESNO) = IDNO) then + Exit; + end; + frViewClienteAlbaran.actElegirContacto.Execute; +end; + +procedure TfrViewAlbaranCliente.frViewClienteAlbaranButton2Click(Sender: TObject); +begin + if Assigned(Albaran) and Assigned(Albaran.Cliente) and + Assigned (Albaran.Detalles) and (Albaran.Detalles.RecordCount > 0) then + begin + if (Application.MessageBox('Los descuentos de los artculos del albarn sern actualizados con los del nuevo cliente seleccionado, Desea continuar?', 'Atencin', MB_YESNO) = IDNO) then + Exit; + end; + frViewClienteAlbaran.actAnadirContacto.Execute; +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; + + FFormasPago := FFormasPagoController.BuscarTodos; + dsFormaPago.DataTable := FFormasPago.DataTable; + dsFormaPago.DataTable.Active := True; + + dsAlmacenes.DataTable := (FAlmacenesController.BuscarTodos).DataTable; + dsAlmacenes.DataTable.Active := True; + + //Para que no me cambie el estilo del campo + if not ReadOnly then + begin + cbConAlmacen.Checked := (FAlbaran.ID_ALMACEN > 0); + cbAlmacen.Enabled := cbConAlmacen.Checked; + + eReferenciaPedidoCli.Enabled := False; + eRefFacturaCli.Enabled := False; + + if EsFechaVacia(FAlbaran.FECHA_PREVISTA_ENVIO) then + begin + eFechaEnvio.Enabled := false; + eFechaRecepcion.Enabled := false; + end + else + begin + eFechaEnvio.Enabled := true; + if EsFechaVacia(FAlbaran.FECHA_ENVIO) then + eFechaRecepcion.Enabled := false + else + eFechaRecepcion.Enabled := true; + end; + end; + +{ + FPedidoAsociado := NIL; + if (FAlbaran.ID_PEDIDO > 0) then + begin + FPedidoAsociado := FPedidoController.Buscar(FAlbaran.ID_PEDIDO); + if Assigned(FPedidoAsociado) then + begin + FPedidoAsociado.DataTable.Active := True; + eReferenciaPedidoCli.Text := FPedidoAsociado.REFERENCIA + end + else + eReferenciaPedidoCli.Text := ''; + end + else + eReferenciaPedidoCli.Text := 'No hay pedido asociado'; +} + end + else begin + DADataSource.DataTable := NIL; + 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..1847ac0f --- /dev/null +++ b/Source/Modulos/Albaranes de cliente/Views/uViewAlbaranDevCliente.dfm @@ -0,0 +1,127 @@ +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 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..2cad9133 --- /dev/null +++ b/Source/Modulos/Albaranes de cliente/Views/uViewAlbaranesCliente.dfm @@ -0,0 +1,356 @@ +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 + OnMouseMove = cxGridViewMouseMove + 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 = 'Pasados de fecha' + Options.DetailFrameColor = clNone + Options.DetailFrameWidth = 0 + end + end + inherited frViewFiltroBase1: TfrViewFiltroBase + Width = 596 + ExplicitWidth = 596 + inherited TBXDockablePanel1: TTBXDockablePanel + ExplicitWidth = 596 + inherited dxLayoutControl1: TdxLayoutControl + Width = 596 + ExplicitWidth = 596 + inherited edtFechaFinFiltro: TcxDateEdit + Left = 251 + ExplicitLeft = 251 + ExplicitWidth = 294 + Width = 294 + end + end + inherited TBXAlignmentPanel1: TTBXAlignmentPanel + Width = 596 + ExplicitWidth = 596 + inherited tbxBotones: TTBXToolbar + Width = 586 + ExplicitWidth = 586 + end + end + end + inherited dxLayoutLookAndFeelList1: TdxLayoutLookAndFeelList + Left = 104 + Top = 72 + 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 = 72 + end + inherited dxComponentPrinter: TdxComponentPrinter + inherited dxComponentPrinterLink: TdxGridReportLink + ReportDocument.CreationDate = 39217.578907326390000000 + BuiltInReportLink = True + end + end + inherited cxStyleRepository1: TcxStyleRepository + Left = 248 + object cxStyleProximosAEnviar: TcxStyle + AssignedValues = [svColor, svTextColor] + Color = clFuchsia + TextColor = clBlue + end + object cxStylePENDIENTES: TcxStyle + AssignedValues = [svTextColor] + TextColor = clGreen + end + object cxStyleENVIADOS: TcxStyle + AssignedValues = [svTextColor] + TextColor = clBlue + end + object cxStyleSERVIDOS: TcxStyle + end + object cxStyleRETRASADOS: TcxStyle + AssignedValues = [svColor, svTextColor] + Color = 15527167 + TextColor = clRed + end + end + inherited 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 = 64 + Top = 72 + 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..da3149b9 --- /dev/null +++ b/Source/Modulos/Albaranes de cliente/Views/uViewAlbaranesCliente.pas @@ -0,0 +1,291 @@ +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); + procedure cxGridViewMouseMove(Sender: TObject; Shift: TShiftState; X, + Y: Integer); + + 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_PREVISTA_ENVIO'); + FFiltro.AddItem(Columna, foBetween, varArrayOf([Fecha1, Fecha2]), VarToStr(Fecha1) + ' and ' + VarToStr(Fecha2)); + +// FFiltro.BoolOperatorKind := fboOr; +// Columna := (cxGridView as TcxGridDBTableView).GetColumnByFieldName('FECHA_ALBARAN'); +// FFiltro.AddItem(Columna, foBetween, varArrayOf([Fecha1, Fecha2]), VarToStr(Fecha1) + ' and ' + VarToStr(Fecha2)); + end; +end; + +procedure TfrViewAlbaranesCliente.AnadirFiltroSituaciones; +var + FFiltro : TcxFilterCriteriaItemList; +begin + FFiltro := AddFilterGrid(fboAnd); + + case cxGrid.ActiveLevel.Index of + 1 : FFiltro.AddItem(cxGridViewSITUACION, foEqual, SITUACION_ALBARAN_PENDIENTE, SITUACION_ALBARAN_PENDIENTE); + 2 : FFiltro.AddItem(cxGridViewSITUACION, foEqual, SITUACION_ALBARAN_ENVIADO, SITUACION_ALBARAN_ENVIADO); + 3 : FFiltro.AddItem(cxGridViewSITUACION, foEqual, SITUACION_ALBARAN_SERVIDO, SITUACION_ALBARAN_SERVIDO); + 4 : begin + FFiltro.AddItem(cxGridViewSITUACION, foEqual, SITUACION_ALBARAN_PENDIENTE, SITUACION_ALBARAN_PENDIENTE); + FFiltro := AddFilterGrid(fboAnd); + FFiltro.AddItem(cxGridViewFECHA_PREVISTA_ENVIO, foNotEqual, null, 'NO_NULO'); + FFiltro := AddFilterGrid(fboAnd); + FFiltro.AddItem(cxGridViewFECHA_PREVISTA_ENVIO, foLess, DateOf(Now), 'RETRASADOS'); + end; + end; +end; + +procedure TfrViewAlbaranesCliente.AnadirOtrosFiltros; +begin + inherited; + + AnadirFiltroSituaciones; + AnadirFiltroFechas; + + //Finalmente activamos el filtro si tenemos algo + if cxGridView.DataController.Filter.IsEmpty + then cxGridView.DataController.Filter.Active := False + else cxGridView.DataController.Filter.Active := True; + cxGrid.ActiveLevel.GridView := cxGridView; +end; + +procedure TfrViewAlbaranesCliente.cxGridActiveTabChanged(Sender: TcxCustomGrid; ALevel: TcxGridLevel); +begin + inherited; + RefrescarFiltro; +end; + +procedure TfrViewAlbaranesCliente.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.cxGridViewMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); +var + Site : TcxGridSite; + HitTest : TcxCustomGridHitTest; + Item : TcxCustomGridTableItem; + Rec : TcxCustomGridRecord; + sNewHint : string; +begin +{Este mtodo desaparecer cuando se migre la aplicacin, es para sacar la causa de la incidencia sin necesidad de entrar en el documento} + Site := Sender as TcxGridSite; + HitTest := Site.GridView.ViewInfo.GetHitTest(X, Y); + if HitTest is TcxGridRecordCellHitTest then begin + Item := TcxGridRecordCellHitTest(HitTest).Item; + Rec := TcxGridRecordCellHitTest(HitTest).GridRecord; + + if (Item.Index = cxGridView.GetColumnByFieldName(fld_AlbaranesClienteINCIDENCIAS_ACTIVAS).Index) + and (Rec.Selected) + and (Albaranes.DataTable.FieldByName(fld_AlbaranesClienteINCIDENCIAS_ACTIVAS).AsInteger = 1) then begin + sNewHint := Albaranes.DataTable.FieldByName(fld_AlbaranesClienteINCIDENCIAS).AsString; + if (cxGrid.Hint <> sNewHint) then begin + cxGrid.ShowHint := false; + cxGrid.Hint := sNewHint; + end + else cxGrid.ShowHint := true; + end + else begin + cxGrid.ShowHint := false; + end; + end; +end; + +procedure TfrViewAlbaranesCliente.cxGridViewStylesGetContentStyle(Sender: + TcxCustomGridTableView; ARecord: TcxCustomGridRecord; AItem: + TcxCustomGridTableItem; out AStyle: TcxStyle); +var + IndiceCol: Integer; + ASituacion: string; +begin + inherited; + if Assigned(ARecord) then + begin + if Assigned((Sender as TcxGridDBTableView).GetColumnByFieldName(fld_AlbaranesClienteSITUACION)) then + begin + IndiceCol := (Sender as TcxGridDBTableView).GetColumnByFieldName(fld_AlbaranesClienteSITUACION).Index; + ASituacion := VarToStr(ARecord.DisplayTexts[IndiceCol]); + if ASituacion = SITUACION_ALBARAN_PENDIENTE then + begin + if not VarIsNull(ARecord.Values[cxGridViewFECHA_PREVISTA_ENVIO.Index]) then + if (StrToDate(ARecord.DisplayTexts[cxGridViewFECHA_PREVISTA_ENVIO.Index]) < DateOf(Now)) then + AStyle := 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..26331b76 --- /dev/null +++ b/Source/Modulos/Albaranes de cliente/Views/uViewAlbaranesDevCliente.dfm @@ -0,0 +1,42 @@ +inherited frViewAlbaranesDevCliente: TfrViewAlbaranesDevCliente + OnCreate = CustomViewCreate + inherited cxGrid: TcxGrid + inherited cxGridView: TcxGridDBTableView + inherited cxGridViewFECHA_ALBARAN: TcxGridDBColumn + Caption = 'Fecha' + end + inherited cxGridViewREF_FACTURA: TcxGridDBColumn + Caption = 'Ref. abono' + end + end + end + inherited frViewFiltroBase1: TfrViewFiltroBase + inherited TBXDockablePanel1: TTBXDockablePanel + inherited dxLayoutControl1: TdxLayoutControl + inherited txtFiltroTodo: TcxTextEdit + ExplicitWidth = 273 + Width = 273 + end + inherited edtFechaIniFiltro: TcxDateEdit + ExplicitWidth = 121 + Width = 121 + end + inherited edtFechaFinFiltro: TcxDateEdit + ExplicitWidth = 121 + Width = 121 + end + end + end + end + inherited 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..1ef65893 --- /dev/null +++ b/Source/Modulos/Albaranes de cliente/Views/uViewDetallesAlbaranCliente.dfm @@ -0,0 +1,18 @@ +inherited frViewDetallesAlbaranCliente: TfrViewDetallesAlbaranCliente + inherited cxGrid: TcxGrid + inherited cxGridView: TcxGridDBTableView + inherited cxGridViewID: TcxGridDBColumn + Visible = False + end + inherited cxGridViewPOSICION: TcxGridDBColumn + Visible = False + end + inherited cxGridViewTIPO: TcxGridDBColumn + Visible = False + end + 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..a422d87c --- /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, uDAInterfaces; + +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..e9b8ebf5 --- /dev/null +++ b/Source/Modulos/Albaranes de cliente/Views/uViewElegirArticulosAlbaranesCliente.dfm @@ -0,0 +1,41 @@ +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 TBXDockablePanel1: TTBXDockablePanel + inherited dxLayoutControl1: TdxLayoutControl + inherited txtFiltroTodo: TcxTextEdit + ExplicitWidth = 273 + Width = 273 + end + inherited edtFechaIniFiltro: TcxDateEdit + ExplicitWidth = 121 + Width = 121 + end + inherited edtFechaFinFiltro: TcxDateEdit + ExplicitWidth = 121 + Width = 121 + end + end + end + end + inherited 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..3074cdce --- /dev/null +++ b/Source/Modulos/Albaranes de proveedor/AlbaranesProveedor_Group.bdsgroup @@ -0,0 +1,29 @@ + + + + + + + + + + + ..\..\DataAbstract_D10\DataAbstract_D10.bdsproj + ..\..\Base\Base.bdsproj + ..\..\Base\ControllerBase\ControllerBase.bdsproj + ..\..\Base\GUIBase\GUIBase.bdsproj + ..\Contactos\Views\Contactos_view.bdsproj + ..\Articulos\Views\Articulos_view.bdsproj + Model\AlbaranesProveedor_model.bdsproj + Data\AlbaranesProveedor_data.bdsproj + Controller\AlbaranesProveedor_controller.bdsproj + Views\AlbaranesProveedor_view.bdsproj + Plugin\AlbaranesProveedor_plugin.bdsproj + ..\Relaciones\Pedidos de proveedor - Albaranes de proveedor\PedProv_AlbProv_relation.bdsproj + ..\..\Cliente\FactuGES.bdsproj + DataAbstract_D10.bpl Base.bpl ControllerBase.bpl GUIBase.bpl Contactos_view.bpl Articulos_view.bpl AlbaranesProveedor_model.bpl AlbaranesProveedor_data.bpl AlbaranesProveedor_controller.bpl AlbaranesProveedor_view.bpl AlbaranesProveedor_plugin.bpl PedProv_AlbProv_relation.bpl FactuGES.exe + + + + diff --git a/Source/Modulos/Albaranes de proveedor/AlbaranesProveedor_Group.config b/Source/Modulos/Albaranes de proveedor/AlbaranesProveedor_Group.config new file mode 100644 index 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/AlbaranesProveedor_Group.groupproj b/Source/Modulos/Albaranes de proveedor/AlbaranesProveedor_Group.groupproj new file mode 100644 index 00000000..bf664b70 --- /dev/null +++ b/Source/Modulos/Albaranes de proveedor/AlbaranesProveedor_Group.groupproj @@ -0,0 +1,134 @@ + + + {0af568ea-6f3b-4d54-9677-6a3d38322778} + + + + + + + + + + + + + + + + + Default.Personality + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Source/Modulos/Albaranes de proveedor/Controller/AlbaranesProveedor_controller.bdsproj b/Source/Modulos/Albaranes de proveedor/Controller/AlbaranesProveedor_controller.bdsproj new file mode 100644 index 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..3483d773 --- /dev/null +++ b/Source/Modulos/Albaranes de proveedor/Controller/AlbaranesProveedor_controller.dpk @@ -0,0 +1,50 @@ +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 ON} + +requires + GUIBase, + AlbaranesProveedor_model, + AlbaranesProveedor_data, + Contactos_controller, + Articulos_controller, + PedidosProveedor_model, + PedidosProveedor_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', + uAlbaranesProveedorReportController in 'uAlbaranesProveedorReportController.pas', + uIEditorAlbaranesProveedorPreview in 'View\uIEditorAlbaranesProveedorPreview.pas'; + +end. diff --git a/Source/Modulos/Albaranes de proveedor/Controller/AlbaranesProveedor_controller.dproj b/Source/Modulos/Albaranes de proveedor/Controller/AlbaranesProveedor_controller.dproj new file mode 100644 index 00000000..a3146d32 --- /dev/null +++ b/Source/Modulos/Albaranes de proveedor/Controller/AlbaranesProveedor_controller.dproj @@ -0,0 +1,555 @@ + + + {7ed85635-c723-4c0b-bf1d-f719e0ea33ad} + AlbaranesProveedor_controller.dpk + Debug + AnyCPU + DCC32 + ..\..\..\..\Output\Debug\Cliente\AlbaranesProveedor_controller.bpl + + + 7.0 + False + False + 0 + 3 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + RELEASE + + + 7.0 + 3 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + + + Delphi.Personality + Package + +FalseTrueFalseTrueFalseFalseTrueFalse1000FalseFalseFalseFalseFalse308212521.0.0.01.0.0.0AlbaranesProveedor_controller.dpk + + + + + MainSource + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Source/Modulos/Albaranes de proveedor/Controller/AlbaranesProveedor_controller.identcache b/Source/Modulos/Albaranes de proveedor/Controller/AlbaranesProveedor_controller.identcache new file mode 100644 index 0000000000000000000000000000000000000000..38f7e83144462c41058012a7331d96eb0d6ae1d7 GIT binary patch literal 1451 zcmcK4K~BRk5Cza2fJ5X29H6_Z$)bx&RY6^OW9+YBa5K@^4%f#>AqBT7LYihjdXuj| zeyFPIv{|VQS=Ukh3=>?0S5K7KK<&sTPeHByi)P&;)E4!?Gy;}5PxX<>d$2k>e5kZ- zt&7C1N9TAR+J6r`4mxCT{(5ow(%dt~yjw|o2|BGgI`fs#g-fN}$fZ}6Ac-AhDR%=ulyObw#WNA-_Vy-B#&N`-K%R--sO cy&T0^-97QCOFx_g2I9DU#v*-Am+rFo35BfuPXGV_ literal 0 HcmV?d00001 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..153736af --- /dev/null +++ b/Source/Modulos/Albaranes de proveedor/Controller/AlbaranesProveedor_controller.rc @@ -0,0 +1,22 @@ +1 VERSIONINFO +FILEVERSION 1,0,0,0 +PRODUCTVERSION 1,0,0,0 +FILEFLAGSMASK 0x3FL +FILEFLAGS 0x00L +FILEOS 0x40004L +FILETYPE 0x1L +FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "0C0A04E4" + BEGIN + VALUE "FileVersion", "1.0.0.0\0" + VALUE "ProductVersion", "1.0.0.0\0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x0C0A, 1252 + END +END diff --git a/Source/Modulos/Albaranes de proveedor/Controller/AlbaranesProveedor_controller.res b/Source/Modulos/Albaranes de proveedor/Controller/AlbaranesProveedor_controller.res new file mode 100644 index 0000000000000000000000000000000000000000..8b251f312bcccec5485024f6fe8d80e1cdf25746 GIT binary patch literal 384 zcmZ9HOA3Ne6ox;+L5PEv(4cV`IIrjdPAV##hV&wc1g%+%X(R2Xc{`~7t6e0Ioa?#% zkMj%AQhz>WYy7LeWAUaqx~Kv?-;(-Hs4-^ATIZOBrid9+-6Ne7&88mi>kUR4lo#jxZ;#*s4zxg9yNlk=H9sqkCD2^cEXKpiTBNfgkKpXJBWWaLt(Qkv@0 w5yv*t82((Wlr2{_+FDoDHKW2QCXvc+s**ul{{$ 0) then + begin + ADetallesController.Add(ADetalles, TIPO_DETALLE_CONCEPTO); +//Se cambia porque puede haber articulos del pedido que no tengan referencia de proveedor +// ADetallesController.AnadirArticulo(ADetalles, AInventarioRecibido.REFERENCIA, tCliente); + ADetallesController.AnadirArticulo(ADetalles, AInventarioRecibido.ID_ARTICULO); + ADetalles.Edit; + + APedido.Detalles.First; +//Se cambia porque puede haber articulos del pedido que no tengan referencia de proveedor +// if not APedido.Detalles.DataTable.Locate(fld_ArticulosREFERENCIA, ADetalles.REFERENCIA, []) then + if not APedido.Detalles.DataTable.Locate(fld_INVENTARIOID_ARTICULO, ADetalles.ID_ARTICULO, []) then + raise Exception.Create(Format('No se ha encontrado el artculo del pedido con REFERENCIA %s (CopiarArticulosAAlbaran)', [ADetalles.REFERENCIA])); + ADetalles.IMPORTE_UNIDAD := APedido.Detalles.IMPORTE_UNIDAD; + ADetalles.DESCUENTO := APedido.Detalles.DESCUENTO; + ADetalles.IMPORTE_PORTE := APedido.Detalles.IMPORTE_PORTE; + + ADetalles.CANTIDAD := AInventarioRecibido.CANTIDAD; + ADetalles.Post; + end; + + AInventarioRecibido.Next; + end; + + finally + ADetallesController := NIL; + AArticulosController := NIL; + end; + end + else begin + // AInventarioRecibido = NIL + + // El albarn tiene que venir ya abierto y posicionado donde hay que copiar + + ADetalles := AAlbaran.Detalles; + ADetallesController := TDetallesAlbaranProveedorController.Create; + AArticulosController := TArticulosController.Create; + try + APedido.Detalles.DataTable.First; + for i := 0 to APedido.Detalles.DataTable.RecordCount - 1 do + begin + AArticulo := AArticulosController.Buscar(APedido.Detalles.ID_ARTICULO); + if not Assigned(AArticulo) then + raise Exception.Create(Format('No se ha encontrado el artculo con ID %d (CopiarArticulosAAlbaran)', [APedido.Detalles.ID_ARTICULO])); + + if (APedido.Detalles.CANTIDAD <> 0) then + begin + ADetallesController.Add(ADetalles, TIPO_DETALLE_CONCEPTO); + ADetallesController.AnadirArticulo(ADetalles, APedido.Detalles.REFERENCIA, tCliente); + ADetalles.Edit; + ADetalles.IMPORTE_UNIDAD := APedido.Detalles.IMPORTE_UNIDAD; + ADetalles.DESCUENTO := APedido.Detalles.DESCUENTO; + ADetalles.IMPORTE_PORTE := APedido.Detalles.IMPORTE_PORTE; + ADetalles.CANTIDAD := APedido.Detalles.CANTIDAD; + ADetalles.Post; + end; + APedido.Detalles.Next; + end; + finally + ADetallesController := NIL; + AArticulosController := NIL; + end; + end; +end; +} + +{ TAlbaranesProveedorController } + +function TAlbaranesProveedorController.Anadir(AAlbaran: IBizAlbaranProveedor) : Boolean; +begin + if not Assigned(AAlbaran) then + raise Exception.Create ('Albarn no asignado (Anadir)'); + + if not AAlbaran.DataTable.Active then + AAlbaran.DataTable.Active := True; + + AAlbaran.Insert; + Result := True; +end; + +{ +function TAlbaranesProveedorController.Anadir(AAlbaran: IBizAlbaranProveedor; + const IDPedido: Integer; + AInventarioRecibido: IBizInventario): Boolean; +var + APedidosController : TPedidosProveedorController; + APedido : IBizPedidoProveedor; +begin + Result := False; + if not Assigned(AAlbaran) then + raise Exception.Create ('Albarn no asignado (Anadir)'); + + if (IDPedido < 0) or (IDPedido = 0) then + raise Exception.Create (Format('ID de pedido (%d) incorrecto (Anadir)', [IDPedido])); + + if not AAlbaran.DataTable.Active then + AAlbaran.DataTable.Active := True; + + ShowHourglassCursor; + Application.ProcessMessages; + + APedido := NIL; + APedidosController := TPedidosProveedorController.Create; + try + APedido := APedidosController.Buscar(IDPedido); + if not Assigned(APedido) then + raise Exception.Create (Format('No se ha encontrado un pedido de proveedor con ID %d (Anadir)', [IDPedido])); + + APedido.DataTable.Active := True; + + if not Assigned(AInventarioRecibido) then + begin + if (APedido.ID_ALMACEN > 0) then + raise Exception.Create ('Inventario recibido no asignado (Anadir)') + end + else begin + if not AInventarioRecibido.DataTable.Active then + AInventarioRecibido.DataTable.Active := True; + end; + + Self.Anadir(AAlbaran); + CopiarPedidoAAlbaran(APedido, AAlbaran); + CopiarArticulosAAlbaran(APedido, AAlbaran, AInventarioRecibido); + RecalcularImportes(AAlbaran); + Result := True; + finally + APedido := NIL; + APedidosController := NIL; + HideHourglassCursor; + Application.ProcessMessages; + end; +end; +} + +function TAlbaranesProveedorController.AnadirAlbaranDev(AAlbaran: IBizAlbaranProveedor): Boolean; +begin + Result := Anadir(AAlbaran); + AAlbaran.TIPO := CTE_TIPO_ALBARAN_DEV; +end; + +procedure TAlbaranesProveedorController.AsignarDataModule; +begin + FDataModule := TDataModuleAlbaranesProveedor.Create(Nil); +end; + +function TAlbaranesProveedorController.Buscar(const ID: Integer): IBizAlbaranProveedor; +begin + Result := FDataModule.GetItem(ID); + FiltrarEmpresa(Result); +end; + +function TAlbaranesProveedorController.BuscarAlbaranesDevolucion: IBizAlbaranProveedor; +var + Condicion: TDAWhereExpression; +begin + ShowHourglassCursor; + try + Result := BuscarTodos; + + with Result.DataTable.DynamicWhere do + begin + // (IMPORTE_TOTAL < 0) + Condicion := NewBinaryExpression(NewField('', fld_AlbaranesProveedorIMPORTE_TOTAL), NewConstant(0, datCurrency), dboLess); + + if IsEmpty then + Expression := Condicion + else + Expression := NewBinaryExpression(Expression, Condicion, dboAnd); + end; + finally + HideHourglassCursor; + end; +end; + +function TAlbaranesProveedorController.BuscarAlbaranesNormales: IBizAlbaranProveedor; +var + Condicion: TDAWhereExpression; +begin + ShowHourglassCursor; + try + Result := BuscarTodos; + + with Result.DataTable.DynamicWhere do + begin + // (IMPORTE_TOTAL >= 0) + Condicion := NewBinaryExpression(NewField('', fld_AlbaranesProveedorIMPORTE_TOTAL), NewConstant(0, datCurrency), dboGreaterOrEqual); + + if IsEmpty then + Expression := Condicion + else + Expression := NewBinaryExpression(Expression, Condicion, dboAnd); + end; + + finally + HideHourglassCursor; + end; +end; + +function TAlbaranesProveedorController.BuscarTodos: IBizAlbaranProveedor; +begin + Result := FDataModule.GetItems; + FiltrarEmpresa(Result); +end; + +function TAlbaranesProveedorController.BuscarSinFacturar: IBizAlbaranProveedor; +var + Condicion: TDAWhereExpression; +begin + ShowHourglassCursor; + try + Result := BuscarAlbaranesNormales; + + with Result.DataTable.DynamicWhere do + begin + // (ID_FACTURA = NULL) + Condicion := NewBinaryExpression(NewField('', fld_AlbaranesProveedorID_FACTURA), NewNull(), dboEqual); + + if IsEmpty then + Expression := Condicion + else + Expression := NewBinaryExpression(Expression, Condicion, dboAnd); + end; + + finally + HideHourglassCursor; + end; +end; + +procedure TAlbaranesProveedorController.CopiarDireccionEnvio( + const ADireccionEnvio: IBizDireccionesContacto; AAlbaran: IBizAlbaranProveedor); +var + bEnEdicion : Boolean; +begin + if not Assigned(AAlbaran) then + raise Exception.Create ('Albaran no asignado (CopiarDireccionEnvio)'); + + if not Assigned(ADireccionEnvio) then + raise Exception.Create ('No se ha indicado la direccin (CopiarDireccionEnvio)'); + + if AAlbaran.DataTable.Active then + AAlbaran.DataTable.Active := True; + + if ADireccionEnvio.DataTable.Active then + ADireccionEnvio.DataTable.Active := True; + + + bEnEdicion := (AAlbaran.DataTable.State in dsEditModes); + if not bEnEdicion then + AAlbaran.Edit; + + ShowHourglassCursor; + AAlbaran.Edit; + try + AAlbaran.CALLE := ADireccionEnvio.CALLE; + AAlbaran.POBLACION := ADireccionEnvio.POBLACION; + AAlbaran.CODIGO_POSTAL := ADireccionEnvio.CODIGO_POSTAL; + AAlbaran.PROVINCIA := ADireccionEnvio.PROVINCIA; + AAlbaran.TELEFONO := ADireccionEnvio.TELEFONO; + AAlbaran.PERSONA_CONTACTO := ADireccionEnvio.PERSONA_CONTACTO; + + if not bEnEdicion then + AAlbaran.Post; + finally + HideHourglassCursor; + end; +end; + +constructor TAlbaranesProveedorController.Create; +begin + inherited; + AsignarDataModule; + + FProveedorController := TProveedoresController.Create; + FDetallesController := TDetallesAlbaranProveedorController.Create; + FDetallesController.addObservador(Self); +end; + +function TAlbaranesProveedorController.CreateEditor(const AName: String; + const IID: TGUID; out Intf): Boolean; +begin + Result := Supports(EditorRegistry.CreateEditor(AName), IID, Intf); +end; + +procedure TAlbaranesProveedorController.DescartarCambios(AAlbaran: IBizAlbaranProveedor); +begin + if not Assigned(AAlbaran) then + raise Exception.Create ('Albarn no asignado'); + + ShowHourglassCursor; + try + if (AAlbaran.State in dsEditModes) then + AAlbaran.Cancel; + + AAlbaran.DataTable.CancelUpdates; + finally + HideHourglassCursor; + end; +end; + +destructor TAlbaranesProveedorController.Destroy; +begin + FDataModule := Nil; + FProveedorController := Nil; + FDetallesController := Nil; + inherited; +end; + +function TAlbaranesProveedorController.Duplicar(AAlbaran: IBizAlbaranProveedor): IBizAlbaranProveedor; +begin + Result := Self._Vacio; + ShowHourglassCursor; + try + DuplicarRegistros(AAlbaran.DataTable, Result.DataTable, mdrActual); + DuplicarRegistros(AAlbaran.Detalles.DataTable, Result.Detalles.DataTable, mdrTodos); + + // Hay que dejar algunos campos como si fuera un presupuesto nuevo + Result.Edit; + with Result do + begin + ID_EMPRESA := AppFactuGES.EmpresaActiva.ID; + USUARIO := AppFactuGES.UsuarioActivo.UserName; + FECHA_ALBARAN := DateOf(Now); + INCIDENCIAS_ACTIVAS := 0; + REFERENCIA := ''; + ID_PEDIDO := 0; + ID_FACTURA := 0; + end; + Result.Post; + finally + HideHourglassCursor; + end; +end; + +function TAlbaranesProveedorController.ValidarAlbaran(AAlbaran: IBizAlbaranProveedor): Boolean; +begin + Result := False; + + if not Assigned(AAlbaran) then + raise Exception.Create ('Albarn no asignado'); + + if (AAlbaran.DataTable.State in dsEditModes) then + AAlbaran.DataTable.Post; + + //Tambien hacemos post de sus tablas hija + if (AAlbaran.Detalles.DataTable.State in dsEditModes) then + AAlbaran.Detalles.DataTable.Post; + + if (AAlbaran.ID_PROVEEDOR < 0) or (AAlbaran.ID_PROVEEDOR = 0) then + // Si hay altas automticas no hay objeto Proveedor pero s hay ID_PROVEEDOR +{ (not Assigned(AAlbaran.Proveedor)) or + (AAlbaran.Proveedor.IsEmpty) then} + raise Exception.Create('Debe indicar el proveedor de este albarn'); + + if (EsFechaVacia(AAlbaran.FECHA_ALBARAN)) then + raise Exception.Create('Debe indicar la fecha de este albarn'); + + if (Length(AAlbaran.CALLE) = 0) and (AAlbaran.ID_ALMACEN = 0) then + raise Exception.Create('Debe indicar una direccin de entrega o almacn para este albarn'); + + //Tambien hacemos post de sus tablas hija + if (AAlbaran.Detalles.DataTable.RecordCount = 0) then + raise Exception.Create('El albarn de de tener al menos un concepto en su contenido'); + + //En caso de ser un Albarn no podra tener un importe total negativo + if (AAlbaran.TIPO = CTE_TIPO_ALBARAN) then + if (AAlbaran.IMPORTE_TOTAL < 0) then + raise Exception.Create('Un albarn no puede tener un importe total negativo'); + + //En caso de ser una orden de devolucin no podra tener un importe total positivo + if (AAlbaran.TIPO = CTE_TIPO_ALBARAN_DEV) then + begin + if (AAlbaran.IMPORTE_TOTAL >= 0) then + raise Exception.Create('Una orden de devolucin no puede tener un importe total positivo'); + + //Una orden de devolucin debe tener relleno el almacn de salida de material + if (AAlbaran.ID_ALMACEN < 0) or (AAlbaran.ID_ALMACEN = 0) then + raise Exception.Create('Debe indicar el almacn de salida de esta orden de devolucin'); + end; + + { Asegurarse de valores en campos "automticos" tanto + en MODIFICACIN como en INSERCIN. } + AAlbaran.Edit; + try + AAlbaran.USUARIO := AppFactuGES.UsuarioActivo.UserName; + + if Assigned(AAlbaran.Proveedor) + and (AAlbaran.ID_PROVEEDOR <> AAlbaran.Proveedor.ID) then + AAlbaran.ID_PROVEEDOR := AAlbaran.Proveedor.ID; + + Result := True; + finally + AAlbaran.Post; + end; +end; + +procedure TAlbaranesProveedorController.Ver(AAlbaran: IBizAlbaranProveedor); +var + AEditor : IEditorDBItem; +begin + AEditor := NIL; + ShowHourglassCursor; + try + RecuperarObjetos(AAlbaran); + + if (AAlbaran.TIPO = CTE_TIPO_ALBARAN) then + CreateEditor('EditorAlbaranProveedor', IEditorAlbaranProveedor, AEditor) + else + CreateEditor('EditorAlbaranDevProveedor', IEditorAlbaranDevProveedor, AEditor); + + if Assigned(AEditor) then + with (AEditor as IEditorAlbaranProveedor) do + begin + Controller := Self; //OJO ORDEN MUY IMPORTANTE + Albaran := AAlbaran; + + //MODO CONSULTAR + if not EsModificable(AAlbaran) then + begin + SetDataTableReadOnly(AAlbaran.DataTable, True); + ReadOnly := True; + end; + + ShowModal; + + //MODO CONSULTAR (Se deja la tabla como estaba) + if ReadOnly then + SetDataTableReadOnly(AAlbaran.DataTable, False); + + AEditor.Release; + end; + finally + AEditor := NIL; + HideHourglassCursor; + 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); + if Assigned(AEditor) then + with (AEditor as IEditorDireccionEntregaAlbaranProveedor) do + begin + Albaran := AAlbaran; + ShowModal; + Release; + end; + finally + AEditor := NIL; + HideHourglassCursor; + end; +end; + +procedure TAlbaranesProveedorController.VerTodosAlbaranes(AAlbarans: IBizAlbaranProveedor); +var + AEditor : IEditorAlbaranesProveedor; +begin + AEditor := NIL; + ShowHourglassCursor; + try + CreateEditor('EditorAlbaranesProveedor', IEditorAlbaranesProveedor, AEditor); + if Assigned(AEditor) then + with AEditor do + begin + Controller := Self; //OJO ORDEN MUY IMPORTANTE + Albaranes := AAlbarans; + MultiSelect := True; + ShowEmbedded; + end; + finally + AEditor := NIL; + HideHourglassCursor; + end; +end; + +procedure TAlbaranesProveedorController.VerTodosAlbaranesDev(AAlbarans: IBizAlbaranProveedor); +var + AEditor : IEditorAlbaranesDevProveedor; +begin + AEditor := NIL; + ShowHourglassCursor; + try + CreateEditor('EditorAlbaranesDevProveedor', IEditorAlbaranesDevProveedor, AEditor); + if Assigned(AEditor) then + with AEditor do + begin + Controller := Self; //OJO ORDEN MUY IMPORTANTE + Albaranes := AAlbarans; + MultiSelect := True; + ShowEmbedded; + end; + finally + AEditor := NIL; + HideHourglassCursor; + end; +end; + +function TAlbaranesProveedorController._Vacio: IBizAlbaranProveedor; +begin + Result := Buscar(ID_NULO); +end; + +function TAlbaranesProveedorController.Eliminar(const ID: Integer): Boolean; +var + AAlbaran : IBizAlbaranProveedor; +begin + AAlbaran := Buscar(ID); + + if not Assigned(AAlbaran) then + raise Exception.Create(Format('No se ha encontrado el albarn con ID = %d', [ID])); + + Result := Eliminar(AAlbaran); + AAlbaran := NIL; +end; + +function TAlbaranesProveedorController.ElegirAlbaranes(AAlbaran: IBizAlbaranProveedor; AMensaje: String; AMultiSelect: Boolean): IBizAlbaranProveedor; +var + AEditor : IEditorElegirAlbaranesProveedor; +begin + Result := NIL; + ShowHourglassCursor; + try + CreateEditor('EditorElegirAlbaranesProveedor', IEditorElegirAlbaranesProveedor, AEditor); + if Assigned(AEditor) then + with AEditor do + begin + Controller := Self; + Albaranes := AAlbaran; + MultiSelect := AMultiSelect; + Mensaje := AMensaje; + if IsPositiveResult(ShowModal) then + Result := AlbaranesProveedorSeleccionados; + Release; + end; + finally + AEditor := NIL; + HideHourglassCursor; + end; +end; + +function TAlbaranesProveedorController.Eliminar(AAlbaran: IBizAlbaranProveedor; AllItems: Boolean = false): Boolean; +//En el caso de eliminar almenos un elemento del conjunto se devuelve true +var + bEliminado: Boolean; + +begin + bEliminado := False; + + if not Assigned(AAlbaran) then + raise Exception.Create ('Albarn no asignada'); + + ShowHourglassCursor; + try + if (AAlbaran.State in dsEditModes) then + AAlbaran.Cancel; + + //Siempre eliminaremos el seleccionado + if EsEliminable(AAlbaran) then + begin + AAlbaran.Delete; + bEliminado := True; + end; + + //En el caso de querer eliminar todos los items del objeto AAlbaran + if AllItems then + begin + with AAlbaran.DataTable do + begin + First; + while not EOF do + begin + if EsEliminable(AAlbaran) then + begin + AAlbaran.Delete; + bEliminado := True + end + else Next; + end; + end; + end; + + if bEliminado then + begin + AAlbaran.DataTable.ApplyUpdates; + Result := True; + end + else + Result := False; + + finally + HideHourglassCursor; + end; +end; +function TAlbaranesProveedorController.EsEliminable(AAlbaran: IBizAlbaranProveedor): Boolean; +begin + if not Assigned(AAlbaran) then + raise Exception.Create ('Albarn no asignado: EsModificable'); + + Result := EsModificable(AAlbaran); +end; + +function TAlbaranesProveedorController.EsModificable(AAlbaran: IBizAlbaranProveedor): Boolean; +begin + if not Assigned(AAlbaran) then + raise Exception.Create ('Albarn no asignado: EsModificable'); + + Result := not (AAlbaran.ID_FACTURA > 0); +end; + +procedure TAlbaranesProveedorController.RecalcularImportes( + AAlbaran: IBizAlbaranProveedor); +var + bEnEdicion : Boolean; +begin + if not Assigned(AAlbaran) then + raise Exception.Create ('Albarn no asignado (RecalcularImportes)'); + + 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.IMPORTE_NETO := FDetallesController.DarTotalImporteTotal(AAlbaran.Detalles); + AAlbaran.IMPORTE_PORTE := FDetallesController.DarTotalPorteTotal(AAlbaran.Detalles); + if not bEnEdicion then + AAlbaran.Post; + 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 + RecalcularImportes(AAlbaran); + end; +end; + +procedure TAlbaranesProveedorController.RecuperarObjetos(AAlbaran: IBizAlbaranProveedor); +begin + RecuperarProveedor(AAlbaran); +end; + +procedure TAlbaranesProveedorController.RecuperarProveedor(AAlbaran: IBizAlbaranProveedor); +begin + AAlbaran._Proveedor := (FProveedorController.Buscar(AAlbaran.ID_PROVEEDOR) as IBizProveedor); +end; + +function TAlbaranesProveedorController.Existe(const ID: Integer): Boolean; +var + AAlbaran : IBizAlbaranProveedor; +begin + try + AAlbaran := Buscar(ID); + Result := Assigned(AAlbaran) and (AAlbaran.ID = ID); + finally + AAlbaran := NIL; + end; +end; + +function TAlbaranesProveedorController.ExtraerSeleccionados(AAlbaran: IBizAlbaranProveedor): IBizAlbaranProveedor; +var + ASeleccionados : IBizAlbaranProveedor; +begin + ASeleccionados := (Self.Buscar(ID_NULO) as IBizAlbaranProveedor); + CopyDataTableDA3(AAlbaran.DataTable, ASeleccionados.DataTable, True); + Result := ASeleccionados; +end; + +procedure TAlbaranesProveedorController.FiltrarEmpresa(AAlbaran: IBizAlbaranProveedor); +var + Condicion: TDAWhereExpression; +begin + if AAlbaran.DataTable.Active then + AAlbaran.DataTable.Active := False; + + // Filtrar los presupuestos actuales por empresa + with AAlbaran.DataTable.DynamicWhere do + begin + // (ID_EMPRESA >= ID) + Condicion := NewBinaryExpression(NewField('', fld_AlbaranesProveedorID_EMPRESA), NewConstant(AppFactuGES.EmpresaActiva.ID, datInteger), dboEqual); + + if IsEmpty then + Expression := Condicion + else + Expression := NewBinaryExpression(Expression, Condicion, dboAnd); + end; +end; + +procedure TAlbaranesProveedorController.SetProveedorController(const Value: IProveedoresController); +begin + FProveedorController := Value; +end; + +procedure TAlbaranesProveedorController.SetDetallesController(const Value: IDetallesAlbaranProveedorController); +begin + FDetallesController := Value; +end; + +function TAlbaranesProveedorController.Guardar(AAlbaran: IBizAlbaranProveedor): Boolean; +var + IDNuevo: Integer; +begin + Result := False; + + if not Assigned(AAlbaran) then + raise Exception.Create ('Albarn no asignada'); + + if not Assigned(FDetallesController) then + raise Exception.Create ('Controller detalles no asignado'); + + if ValidarAlbaran(AAlbaran) then + begin + ShowHourglassCursor; + + // Asegurarnos de que todos los importes estn bien. + RecalcularImportes(AAlbaran); + + try + AAlbaran.DataTable.ApplyUpdates; + Result := True; + finally + HideHourglassCursor; + end; + end; +end; + +function TAlbaranesProveedorController.Nuevo: IBizAlbaranProveedor; +var + AAlbaran : IBizAlbaranProveedor; +begin + AAlbaran := FDataModule.NewItem; + FiltrarEmpresa(AAlbaran); + AAlbaran.DataTable.Active := True; + AAlbaran.Insert; + Result := AAlbaran; +end; + +procedure TAlbaranesProveedorController.Preview(AAlbaran: IBizAlbaranProveedor; AllItems: Boolean = false); +var + AReportController : IAlbaranesProveedorReportController; + ID_Albaranes: TStringList; + +begin + AReportController := TAlbaranesProveedorReportController.Create; + try + ID_Albaranes := TStringList.Create; + + //Si deseamos previsualizar todos los items del objeto albaran + if AllItems then + begin + with AAlbaran.DataTable do + begin + First; + while not EOF do + begin + ID_Albaranes.Add(IntToStr(AAlbaran.ID)); + Next; + end; + end; + end + //Solo previsualizamos el item seleccionado + else + ID_Albaranes.Add(IntToStr(AAlbaran.ID)); + + AReportController.Preview(ID_Albaranes.CommaText); + + finally + AReportController := NIL; + ID_Albaranes.Free; + end; +end; + +procedure TAlbaranesProveedorController.Print(AAlbaran: IBizAlbaranProveedor; AllItems: Boolean = false); +var + AReportController : IAlbaranesProveedorReportController; + ID_Albaranes: TStringList; + +begin + AReportController := TAlbaranesProveedorReportController.Create; + try + ID_Albaranes := TStringList.Create; + + //Si deseamos previsualizar todos los items del objeto albaran + if AllItems then + begin + with AAlbaran.DataTable do + begin + First; + while not EOF do + begin + ID_Albaranes.Add(IntToStr(AAlbaran.ID)); + Next; + end; + end; + end + //Solo previsualizamos el item seleccionado + else + ID_Albaranes.Add(IntToStr(AAlbaran.ID)); + + AReportController.Print(ID_Albaranes.CommaText); + + finally + AReportController := NIL; + ID_Albaranes.Free; + end; +end; + +procedure TAlbaranesProveedorController.QuitarDireccionEnvio( + AAlbaran: IBizAlbaranProveedor); +var + bEnEdicion : Boolean; +begin + if not Assigned(AAlbaran) then + raise Exception.Create ('Albarn no asignado (QuitarDireccionEnvio)'); + + if AAlbaran.DataTable.Active then + AAlbaran.DataTable.Active := True; + + bEnEdicion := (AAlbaran.DataTable.State in dsEditModes); + if not bEnEdicion then + AAlbaran.Edit; + + ShowHourglassCursor; + AAlbaran.Edit; + try + AAlbaran.DataTable.FieldByName(fld_AlbaranesProveedorCALLE).Clear; + AAlbaran.DataTable.FieldByName(fld_AlbaranesProveedorPOBLACION).Clear; + AAlbaran.DataTable.FieldByName(fld_AlbaranesProveedorCODIGO_POSTAL).Clear; + AAlbaran.DataTable.FieldByName(fld_AlbaranesProveedorPROVINCIA).Clear; + AAlbaran.DataTable.FieldByName(fld_AlbaranesProveedorTELEFONO).Clear; + AAlbaran.DataTable.FieldByName(fld_AlbaranesProveedorPERSONA_CONTACTO).Clear; + + if not bEnEdicion then + AAlbaran.Post; + finally + HideHourglassCursor; + end; +end; + +function TAlbaranesProveedorController.GetProveedorController: IProveedoresController; +begin + Result := FProveedorController; +end; + +function TAlbaranesProveedorController.GetDetallesController: IDetallesAlbaranProveedorController; +begin + Result := FDetallesController; +end; + +end. + \ No newline at end of file diff --git a/Source/Modulos/Albaranes de proveedor/Controller/uAlbaranesProveedorReportController.pas b/Source/Modulos/Albaranes de proveedor/Controller/uAlbaranesProveedorReportController.pas new file mode 100644 index 00000000..d8c36da4 --- /dev/null +++ b/Source/Modulos/Albaranes de proveedor/Controller/uAlbaranesProveedorReportController.pas @@ -0,0 +1,110 @@ +unit uAlbaranesProveedorReportController; + +interface + +uses + Classes, SysUtils, uDADataTable, uControllerBase, uIDataModuleAlbaranesProveedorReport, + uAlbaranesProveedorController, uDetallesAlbaranProveedorController, + uBizAlbaranesProveedor; + +type + IAlbaranesProveedorReportController = interface + ['{AAE252CE-D407-4FF4-AF2A-350C5A421C89}'] + procedure Preview(const AID : String); + procedure Print(const AID : String); + end; + + TAlbaranesProveedorReportController = class(TInterfacedObject, IAlbaranesProveedorReportController) + private + FDataModule : IDataModuleAlbaranesProveedorReport; + function CreateEditor(const AName: String; const IID: TGUID; out Intf): Boolean; + public + constructor Create; + destructor Destroy; override; + + procedure Preview(const AID : String); + procedure Print(const AID : String); + end; + + +implementation + +uses + uROTypes, uEditorRegistryUtils, uIEditorAlbaranesProveedorPreview, + uEditorPreview, uDataModuleAlbaranesProveedor, uEditorBase, cxControls; + +{ TAlbaranesProveedorReportController } + +constructor TAlbaranesProveedorReportController.Create; +begin + FDataModule := TDataModuleAlbaranesProveedor.Create(Nil); +end; + +function TAlbaranesProveedorReportController.CreateEditor(const AName: String; + const IID: TGUID; out Intf): Boolean; +begin + Result := Supports(EditorRegistry.CreateEditor(AName), IID, Intf); +end; + + +destructor TAlbaranesProveedorReportController.Destroy; +begin + FDataModule := NIL; + inherited; +end; + +procedure TAlbaranesProveedorReportController.Preview(const AID : String); +var + AStream: Binary; + AEditor : IEditorAlbaranesProveedorPreview; +begin + AEditor := NIL; + ShowHourglassCursor; + try + AStream := FDataModule.GetReport(AID); + try + CreateEditor('EditorAlbaranesProveedorPreview', IEditorAlbaranesProveedorPreview, AEditor); + if Assigned(AEditor) then + with AEditor do + begin + LoadFromStream(AStream); + Preview; + Release; + end; + finally + FreeAndNil(AStream); + AEditor := Nil; + end; + finally + HideHourglassCursor; + end; +end; + +procedure TAlbaranesProveedorReportController.Print(const AID : String); +var + AStream: Binary; + AEditor : IEditorAlbaranesProveedorPreview; +begin + AEditor := NIL; + ShowHourglassCursor; + try + AStream := FDataModule.GetReport(AID); + try + CreateEditor('EditorAlbaranesProveedorPreview', IEditorAlbaranesProveedorPreview, AEditor); + if Assigned(AEditor) then + with AEditor do + begin + LoadFromStream(AStream); + Print; + Release; + end; + finally + FreeAndNil(AStream); + AEditor := Nil; + end; + finally + HideHourglassCursor; + end; +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..f500c3f3 --- /dev/null +++ b/Source/Modulos/Albaranes de proveedor/Controller/uArticulosAlbaranProveedorController.pas @@ -0,0 +1,51 @@ +unit uArticulosAlbaranProveedorController; + +interface + +uses + uDADataTable, uArticulosController, uBizArticulos, uBizContactos; + +type + IArticulosAlbaranProveedorController = interface(IArticulosController) + ['{8E3C2FF0-9D42-461C-BF14-6E77843E4173}'] + function ElegirArticulos(AArticulos : IBizArticulo; AMensaje: String; AMultiSelect: Boolean; const AProveedor: IBizProveedor): IBizArticulo; + end; + + TArticulosAlbaranProveedorController = class(TArticulosController, IArticulosAlbaranProveedorController) + public + function ElegirArticulos(AArticulos : IBizArticulo; AMensaje: String; AMultiSelect: Boolean; const AProveedor: IBizProveedor): IBizArticulo; overload; + end; + +implementation + +{ TArticulosAlbaranProveedorController } + +uses Controls, cxControls, uIEditorElegirArticulosAlbaranesProveedor, uIEditorElegirArticulos; + +function TArticulosAlbaranProveedorController.ElegirArticulos(AArticulos: IBizArticulo; AMensaje: String; AMultiSelect: Boolean; const AProveedor: IBizProveedor): IBizArticulo; +var + AEditor : IEditorElegirArticulosAlbaranesProveedor; +begin + Result := NIL; + ShowHourglassCursor; + try + CreateEditor('EditorElegirArticulosAlbaranesProveedor', IEditorElegirArticulosAlbaranesProveedor, AEditor); + if Assigned(AEditor) then + with AEditor do + begin + Controller := Self; + Articulos := AArticulos; + Proveedor := AProveedor; + MultiSelect := AMultiSelect; + Mensaje := AMensaje; + if IsPositiveResult(ShowModal) then + Result := ArticulosSeleccionados; + Release; + end; + finally + AEditor := NIL; + HideHourglassCursor; + 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..b94a5020 --- /dev/null +++ b/Source/Modulos/Albaranes de proveedor/Controller/uDetallesAlbaranProveedorController.pas @@ -0,0 +1,142 @@ +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; + procedure DesglosarPorteDetalles(ImportePorte: Currency; ADetalles: IDAStronglyTypedDataTable); + function DarTotalPorteTotal(ADetalles: IDAStronglyTypedDataTable): Double; + end; + + TDetallesAlbaranProveedorController = class(TControllerDetallesArticulos, IDetallesAlbaranProveedorController) + private + FDataModule : IDataModuleAlbaranesProveedor; + protected + + procedure RellenarOtros(ADetalles: IDAStronglyTypedDataTable; AArticulos: IBizArticulo); override; + procedure RellenarImportes(ADetalles: IDAStronglyTypedDataTable; AArticulos: IBizArticulo); override; + + procedure AsignarController; override; + //Si sobreescribimos este mtodo podremos tener en cuenta otras columnas para el calculo del importe total de un concepto + function CalcularImporteTotalConcepto(DataTable: TDADataTable): Double; override; + procedure ValidarCampos(DataTable: TDADataTable); override; + procedure DesglosarPorteDetalles(ImportePorte: Currency; ADetalles: IDAStronglyTypedDataTable); + function DarTotalPorteTotal(ADetalles: IDAStronglyTypedDataTable): Double; + + public + procedure AnadirArticulos(ADetalles: IDAStronglyTypedDataTable; AProveedor: IBizProveedor); overload; + procedure ActualizarDetalles(ADetalles: IDAStronglyTypedDataTable; AProveedor: IBizProveedor); overload; + constructor Create; override; + destructor Destroy; override; + end; + +implementation + +uses Variants, uDialogUtils, uControllerDetallesBase, uDataModuleAlbaranesProveedor, uArticulosAlbaranProveedorController, + uDataTableUtils, uCalculosUtils; + +{ TDetallesAlbaranProveedorController } + +procedure TDetallesAlbaranProveedorController.ActualizarDetalles(ADetalles: IDAStronglyTypedDataTable; AProveedor: IBizProveedor); +var + AArticulos : IBizArticulo; +begin + if Assigned(ADetalles) then + begin + try + AArticulos := (FArticulosController.BuscarTodos(AProveedor) as IBizArticulo); + ActualizarDetalles(ADetalles, AArticulos); + EliminarArticulosProveedor(ADetalles); + ShowInfoMessage('Se han eliminado todos los artculos que no pertenecen al nuevo proveedor seleccionado, y los que pertenecen sus descuentos han sido adaptados al proveedor seleccionado'); + finally + AArticulos := Nil; + end; + end; +end; + +procedure TDetallesAlbaranProveedorController.AnadirArticulos(ADetalles: IDAStronglyTypedDataTable; AProveedor: IBizProveedor); +var + AArticulos: IBizArticulo; +begin + if Assigned(ADetalles) then + begin + try + AArticulos := (FArticulosController.BuscarTodos as IBizArticulo); + AArticulos := (FArticulosController as IArticulosAlbaranProveedorController).ElegirArticulos(AArticulos, 'Elija los artculos que desea aadir a este albarn de proveedor', True, AProveedor); + Add(ADetalles, AArticulos); + finally + AArticulos := Nil; + end; + end; +end; + +procedure TDetallesAlbaranProveedorController.AsignarController; +begin + FArticulosController := TArticulosAlbaranProveedorController.Create; +end; + +function TDetallesAlbaranProveedorController.CalcularImporteTotalConcepto(DataTable: TDADataTable): Double; +begin + Result := CalcularLineaConcepto(DataTable); +end; + +constructor TDetallesAlbaranProveedorController.Create; +begin + inherited; + FDataModule := TDataModuleAlbaranesProveedor.Create(Nil); +end; + +function TDetallesAlbaranProveedorController.DarTotalPorteTotal(ADetalles: IDAStronglyTypedDataTable): Double; +begin + Result := DarTotalPorte(ADetalles); +end; + +procedure TDetallesAlbaranProveedorController.DesglosarPorteDetalles(ImportePorte: Currency; ADetalles: IDAStronglyTypedDataTable); +begin + DesglosarPorte(ImportePorte, ADetalles); + ActualizarTotales(ADetalles); +end; + +destructor TDetallesAlbaranProveedorController.Destroy; +begin + FDataModule := Nil; + inherited; +end; + + +procedure TDetallesAlbaranProveedorController.RellenarOtros(ADetalles: IDAStronglyTypedDataTable; AArticulos: IBizArticulo); +begin + if Assigned(AArticulos) then + ADetalles.DataTable.FieldByName(CAMPO_DESCUENTO).AsFloat := AArticulos.DESCUENTO + else + ADetalles.DataTable.FieldByName(CAMPO_DESCUENTO).AsFloat := 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; + +procedure TDetallesAlbaranProveedorController.ValidarCampos(DataTable: TDADataTable); +begin + inherited; + ValidarCamposLineaConcepto(DataTable); +end; + +end. diff --git a/Source/Modulos/Albaranes de proveedor/Data/AlbaranesProveedor_data.bdsproj b/Source/Modulos/Albaranes de proveedor/Data/AlbaranesProveedor_data.bdsproj new file mode 100644 index 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..d871fcc7 --- /dev/null +++ b/Source/Modulos/Albaranes de proveedor/Data/AlbaranesProveedor_data.dpk @@ -0,0 +1,33 @@ +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 ON} + +requires + AlbaranesProveedor_model; + +contains + uDataModuleAlbaranesProveedor in 'uDataModuleAlbaranesProveedor.pas' {DataModuleAlbaranesProveedor}; + +end. diff --git a/Source/Modulos/Albaranes de proveedor/Data/AlbaranesProveedor_data.dproj b/Source/Modulos/Albaranes de proveedor/Data/AlbaranesProveedor_data.dproj new file mode 100644 index 00000000..4bc4a55e --- /dev/null +++ b/Source/Modulos/Albaranes de proveedor/Data/AlbaranesProveedor_data.dproj @@ -0,0 +1,580 @@ + + + {38eef566-1895-4bdd-8007-f92f5e32cce6} + AlbaranesProveedor_data.dpk + Debug + AnyCPU + DCC32 + ..\..\..\..\Output\Debug\Cliente\AlbaranesProveedor_data.bpl + + + 7.0 + False + False + 0 + 3 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + RELEASE + + + 7.0 + 3 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + + + Delphi.Personality + Package + + + False + True + False + + + True + False + False + + + True + False + 1 + 0 + 0 + 0 + False + False + False + False + False + 3082 + 1252 + + + + + 1.0.0.0 + + + + + + 1.0.0.0 + + + + AlbaranesProveedor_data.dpk + + + + + + + MainSource + + + +
    DataModuleAlbaranesProveedor
    +
    +
    +
    + + diff --git a/Source/Modulos/Albaranes de proveedor/Data/AlbaranesProveedor_data.identcache b/Source/Modulos/Albaranes de proveedor/Data/AlbaranesProveedor_data.identcache new file mode 100644 index 0000000000000000000000000000000000000000..703513653ebad7ec57600bc70559097fc4138e47 GIT binary patch literal 112 zcmZQ%U|@)Mwu*7iPsvQrR|rW>F3v1T&4~%lFD*(=jq%M-Db2|*j&aOMN-RpuOD$GN oNmVE)$}dYzP025caY-ymj41_?V1=o0WdSfHdIgEaKr7$?0HDVt^Z)<= literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..36f26e234a8ac66a47e95cec6d496cf2f1442471 GIT binary patch literal 32 UcmZQzU|>)H;{X347|28c09i@|9RL6T literal 0 HcmV?d00001 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..ca646582 --- /dev/null +++ b/Source/Modulos/Albaranes de proveedor/Data/uDataModuleAlbaranesProveedor.dfm @@ -0,0 +1,388 @@ +inherited DataModuleAlbaranesProveedor: TDataModuleAlbaranesProveedor + OnCreate = DAClientDataModuleCreate + Width = 462 + object RORemoteService: TRORemoteService + Message = dmConexion.ROMessage + Channel = dmConexion.ROChannel + ServiceName = 'srvAlbaranesProveedor' + Left = 48 + Top = 32 + end + object Bin2DataStreamer: TDABin2DataStreamer + Left = 48 + Top = 92 + end + object rda_AlbaranesProveedor: TDARemoteDataAdapter + GetSchemaCall.RemoteService = RORemoteService + GetDataCall.RemoteService = RORemoteService + UpdateDataCall.RemoteService = RORemoteService + GetScriptsCall.RemoteService = RORemoteService + RemoteService = RORemoteService + DataStreamer = Bin2DataStreamer + Left = 51 + Top = 151 + end + object tbl_AlbaranesProveedor: TDAMemDataTable + RemoteUpdatesOptions = [] + Fields = < + item + Name = 'ID' + DataType = datAutoInc + GeneratorName = 'GEN_ALBARANES_PRO_ID' + Required = True + ServerAutoRefresh = True + DictionaryEntry = 'AlbaranesProveedor_ID' + InPrimaryKey = True + end + item + Name = 'ID_EMPRESA' + DataType = datInteger + DictionaryEntry = 'AlbaranesProveedor_ID_EMPRESA' + end + item + Name = 'ID_PROVEEDOR' + DataType = datInteger + DictionaryEntry = 'AlbaranesProveedor_ID_PROVEEDOR' + end + item + Name = 'NOMBRE' + DataType = datString + Size = 255 + DisplayLabel = 'Proveedor' + DictionaryEntry = 'AlbaranesProveedor_NOMBRE' + end + item + Name = 'FECHA_ALBARAN' + DataType = datDateTime + DisplayLabel = 'Fecha albar'#195#161'n' + DictionaryEntry = 'AlbaranesProveedor_FECHA_ALBARAN' + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + DisplayLabel = 'Referencia' + DictionaryEntry = 'AlbaranesProveedor_REFERENCIA' + end + item + Name = 'REFERENCIA_PROVEEDOR' + DataType = datString + Size = 255 + DisplayLabel = 'Ref. provedor' + DictionaryEntry = 'AlbaranesProveedor_REFERENCIA_PROVEEDOR' + end + item + Name = 'TIPO' + DataType = datString + Size = 1 + DisplayLabel = 'Tipo' + DictionaryEntry = 'AlbaranesProveedor_TIPO' + end + item + Name = 'ID_ALMACEN' + DataType = datInteger + DictionaryEntry = 'AlbaranesProveedor_ID_ALMACEN' + end + item + Name = 'NOMBRE_ALMACEN' + DataType = datString + Size = 255 + DisplayLabel = 'Almac'#195#169'n' + DictionaryEntry = 'AlbaranesProveedor_NOMBRE_ALMACEN' + end + item + Name = 'ID_PEDIDO' + DataType = datInteger + DictionaryEntry = 'AlbaranesProveedor_ID_PEDIDO' + end + item + Name = 'REF_PED_PROVEEDOR' + DataType = datString + Size = 255 + DisplayLabel = 'Ped. proveedor' + DictionaryEntry = 'AlbaranesProveedor_REF_PED_PROVEEDOR' + end + item + Name = 'ID_FACTURA' + DataType = datInteger + DictionaryEntry = 'AlbaranesProveedor_ID_FACTURA' + end + item + Name = 'REF_FACTURA' + DataType = datString + Size = 255 + DisplayLabel = 'Referencia factura' + DictionaryEntry = 'AlbaranesProveedor_REF_FACTURA' + end + item + Name = 'REF_FACTURA_PROV' + DataType = datString + Size = 255 + DisplayLabel = 'Ref. factura prov' + DictionaryEntry = 'AlbaranesProveedor_REF_FACTURA_PROV' + end + item + Name = 'CALLE' + DataType = datString + Size = 255 + DisplayLabel = 'Calle' + DictionaryEntry = 'AlbaranesProveedor_CALLE' + end + item + Name = 'CODIGO_POSTAL' + DataType = datString + Size = 10 + DisplayLabel = 'C'#195#179'd. postal' + DictionaryEntry = 'AlbaranesProveedor_CODIGO_POSTAL' + end + item + Name = 'POBLACION' + DataType = datString + Size = 255 + DisplayLabel = 'Poblaci'#195#179'n' + DictionaryEntry = 'AlbaranesProveedor_POBLACION' + end + item + Name = 'PROVINCIA' + DataType = datString + Size = 255 + DisplayLabel = 'Provincia' + DictionaryEntry = 'AlbaranesProveedor_PROVINCIA' + end + item + Name = 'PERSONA_CONTACTO' + DataType = datString + Size = 255 + DisplayLabel = 'Persona de contacto' + DictionaryEntry = 'AlbaranesProveedor_PERSONA_CONTACTO' + end + item + Name = 'TELEFONO' + DataType = datString + Size = 25 + DisplayLabel = 'Tel'#195#169'fono' + DictionaryEntry = 'AlbaranesProveedor_TELEFONO' + end + item + Name = 'IMPORTE_NETO' + DataType = datCurrency + DisplayLabel = 'Importe neto' + Alignment = taRightJustify + DictionaryEntry = 'AlbaranesProveedor_IMPORTE_NETO' + end + item + Name = 'IMPORTE_PORTE' + DataType = datCurrency + DisplayLabel = 'Importe del porte' + Alignment = taRightJustify + DictionaryEntry = 'AlbaranesProveedor_IMPORTE_PORTE' + end + item + Name = 'DESCUENTO' + DataType = datFloat + DisplayLabel = 'Descuento' + DisplayFormat = ',0.00 %;-,0.00 %' + Alignment = taRightJustify + DictionaryEntry = 'AlbaranesProveedor_DESCUENTO' + end + item + Name = 'IMPORTE_DESCUENTO' + DataType = datCurrency + DisplayLabel = 'Importe dto.' + Alignment = taRightJustify + DictionaryEntry = 'AlbaranesProveedor_IMPORTE_DESCUENTO' + end + item + Name = 'BASE_IMPONIBLE' + DataType = datCurrency + DisplayLabel = 'Base imponible' + Alignment = taRightJustify + DictionaryEntry = 'AlbaranesProveedor_BASE_IMPONIBLE' + end + item + Name = 'IVA' + DataType = datFloat + DisplayFormat = ',0.00 %;-,0.00 %' + Alignment = taRightJustify + DictionaryEntry = 'AlbaranesProveedor_IVA' + end + item + Name = 'IMPORTE_IVA' + DataType = datCurrency + DisplayLabel = 'Importe IVA' + Alignment = taRightJustify + DictionaryEntry = 'AlbaranesProveedor_IMPORTE_IVA' + end + item + Name = 'IMPORTE_TOTAL' + DataType = datCurrency + DisplayLabel = 'Importe total' + Alignment = taRightJustify + DictionaryEntry = 'AlbaranesProveedor_IMPORTE_TOTAL' + end + item + Name = 'OBSERVACIONES' + DataType = datMemo + DisplayLabel = 'Observaciones' + DictionaryEntry = 'AlbaranesProveedor_OBSERVACIONES' + end + item + Name = 'INCIDENCIAS' + DataType = datMemo + DictionaryEntry = 'AlbaranesProveedor_INCIDENCIAS' + end + item + Name = 'INCIDENCIAS_ACTIVAS' + DataType = datInteger + DictionaryEntry = 'AlbaranesProveedor_INCIDENCIAS_ACTIVAS' + end + item + Name = 'FECHA_ALTA' + DataType = datDateTime + DictionaryEntry = 'AlbaranesProveedor_FECHA_ALTA' + end + item + Name = 'FECHA_MODIFICACION' + DataType = datDateTime + DictionaryEntry = 'AlbaranesProveedor_FECHA_MODIFICACION' + end + item + Name = 'USUARIO' + DataType = datString + Size = 20 + DictionaryEntry = 'AlbaranesProveedor_USUARIO' + end + item + Name = 'ID_FORMA_PAGO' + DataType = datInteger + DictionaryEntry = 'AlbaranesProveedor_ID_FORMA_PAGO' + end> + Params = <> + StreamingOptions = [soDisableEventsWhileStreaming] + RemoteDataAdapter = rda_AlbaranesProveedor + DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch] + MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates] + LogicalName = 'AlbaranesProveedor' + IndexDefs = <> + Left = 168 + Top = 104 + end + object ds_AlbaranesProveedor: TDADataSource + DataSet = tbl_AlbaranesProveedor.Dataset + DataTable = tbl_AlbaranesProveedor + Left = 168 + Top = 40 + end + object tbl_AlbaranesProveedor_Detalles: TDAMemDataTable + RemoteUpdatesOptions = [] + Fields = < + item + Name = 'ID' + DataType = datAutoInc + GeneratorName = 'GEN_ALBARANES_PRO_DETALLES_ID' + Required = True + ServerAutoRefresh = True + DictionaryEntry = 'AlbaranesProveedor_Detalles_ID' + InPrimaryKey = True + end + item + Name = 'ID_ALBARAN' + DataType = datInteger + DictionaryEntry = 'AlbaranesProveedor_Detalles_ID_ALBARAN' + end + item + Name = 'POSICION' + DataType = datInteger + DictionaryEntry = 'POSICIONCONCEPTO' + end + item + Name = 'TIPO_DETALLE' + DataType = datString + Size = 10 + DictionaryEntry = 'AlbaranesProveedor_Detalles_TIPO_DETALLE' + end + item + Name = 'CONCEPTO' + DataType = datString + Size = 2000 + DictionaryEntry = 'AlbaranesProveedor_Detalles_CONCEPTO' + end + item + Name = 'CANTIDAD' + DataType = datInteger + DictionaryEntry = 'CANTIDAD' + end + item + Name = 'IMPORTE_UNIDAD' + DataType = datCurrency + DisplayLabel = 'Importe unidad' + Alignment = taRightJustify + DictionaryEntry = 'AlbaranesProveedor_Detalles_IMPORTE_UNIDAD' + end + item + Name = 'IMPORTE_TOTAL' + DataType = datCurrency + DisplayLabel = 'Importe total' + Alignment = taRightJustify + DictionaryEntry = 'AlbaranesProveedor_Detalles_IMPORTE_TOTAL' + end + item + Name = 'VISIBLE' + DataType = datInteger + DictionaryEntry = 'AlbaranesProveedor_Detalles_VISIBLE' + end + item + Name = 'ID_ARTICULO' + DataType = datInteger + DictionaryEntry = 'AlbaranesProveedor_Detalles_ID_ARTICULO' + end + item + Name = 'DESCUENTO' + DataType = datFloat + DisplayLabel = 'Descuento' + DisplayFormat = ',0.00 %;-,0.00 %' + Alignment = taRightJustify + DictionaryEntry = 'AlbaranesProveedor_Detalles_DESCUENTO' + end + item + Name = 'IMPORTE_PORTE' + DataType = datCurrency + DisplayLabel = 'Importe porte' + Alignment = taRightJustify + DictionaryEntry = 'AlbaranesProveedor_Detalles_IMPORTE_PORTE' + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + DisplayLabel = 'Referencia' + DictionaryEntry = 'AlbaranesProveedor_Detalles_REFERENCIA' + end + item + Name = 'REFERENCIA_PROVEEDOR' + DataType = datString + Size = 255 + DisplayLabel = 'Ref. proveedor' + DictionaryEntry = 'AlbaranesProveedor_Detalles_REFERENCIA_PROVEEDOR' + end> + Params = <> + MasterMappingMode = mmWhere + StreamingOptions = [soDisableEventsWhileStreaming] + RemoteDataAdapter = rda_AlbaranesProveedor + 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 = 328 + Top = 104 + end + object ds_AlbaranesProveedor_Detalles: TDADataSource + DataSet = tbl_AlbaranesProveedor_Detalles.Dataset + DataTable = tbl_AlbaranesProveedor_Detalles + Left = 328 + Top = 40 + 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..3e2474ba --- /dev/null +++ b/Source/Modulos/Albaranes de proveedor/Data/uDataModuleAlbaranesProveedor.pas @@ -0,0 +1,136 @@ +unit uDataModuleAlbaranesProveedor; + +interface + +uses + DB, Classes, SysUtils, uDADesigntimeCall, uROServiceComponent, + uRORemoteService, uROClient, uROBinMessage, uDAScriptingProvider, + uDACDSDataTable, uROWinInetHttpChannel, uDADataTable, uDABINAdapter, + uDAClientDataModule, uROTypes, uIDataModuleAlbaranesProveedorReport, uDataModuleBase, + uIDataModuleAlbaranesProveedor, uBizAlbaranesProveedor, uBizDetallesAlbaranProveedor, + uDARemoteDataAdapter, uDADataStreamer, uDABin2DataStreamer, uDAInterfaces, + uDAMemDataTable; + +type + TDataModuleAlbaranesProveedor = class(TDataModuleBase, IDataModuleAlbaranesProveedor, IDataModuleAlbaranesProveedorReport) + RORemoteService: TRORemoteService; + Bin2DataStreamer: TDABin2DataStreamer; + rda_AlbaranesProveedor: TDARemoteDataAdapter; + tbl_AlbaranesProveedor: TDAMemDataTable; + ds_AlbaranesProveedor: TDADataSource; + tbl_AlbaranesProveedor_Detalles: TDAMemDataTable; + ds_AlbaranesProveedor_Detalles: TDADataSource; + procedure DAClientDataModuleCreate(Sender: TObject); + + private + function _GetDetalles : IBizDetallesAlbaranProveedor; + + protected + procedure AsignarClaseNegocio(var APedido: TDAMemDataTable); virtual; + + public + function GetItems : IBizAlbaranProveedor; virtual; + function GetItem(const ID : Integer) : IBizAlbaranProveedor; + function NewItem : IBizAlbaranProveedor; + + // Report + function GetReport(const AID: String): Binary; + end; + +implementation + +{$R *.DFM} + +uses + cxControls, FactuGES_Intf, uDataModuleConexion, + uDataTableUtils, schAlbaranesProveedorClient_Intf, uBizContactos; + +{ TdmAlbaranesProveedor } + +procedure TDataModuleAlbaranesProveedor.AsignarClaseNegocio(var APedido: TDAMemDataTable); +begin + APedido.BusinessRulesID := BIZ_CLIENT_ALBARAN_PROVEEDOR; +end; + +procedure TDataModuleAlbaranesProveedor.DAClientDataModuleCreate(Sender: TObject); +begin + RORemoteService.Channel := dmConexion.Channel; + RORemoteService.Message := dmConexion.Message; +end; + +function TDataModuleAlbaranesProveedor.GetReport(const AID: String): Binary; +begin +// Result := (RORemoteService as IsrvAlbaranesProveedor).GenerateReport(AID) +end; + +function TDataModuleAlbaranesProveedor.NewItem: IBizAlbaranProveedor; +begin + Result := GetItem(ID_NULO) +end; + +function TDataModuleAlbaranesProveedor._GetDetalles: IBizDetallesAlbaranProveedor; +var + ADetalles : TDAMemDataTable; +begin + ShowHourglassCursor; + try + ADetalles := CloneDataTable(tbl_AlbaranesProveedor_Detalles); + with ADetalles do + begin + BusinessRulesID := BIZ_CLIENT_DETALLES_ALBARAN_PROVEEDOR; + DetailOptions := DetailOptions - [dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates]; + end; + Result := (ADetalles as IBizDetallesAlbaranProveedor); + finally + HideHourglassCursor; + end; +end; + +function TDataModuleAlbaranesProveedor.GetItem(const ID: Integer): IBizAlbaranProveedor; +var + Condicion: TDAWhereExpression; +begin + ShowHourglassCursor; + try + Result := Self.GetItems; + + with Result.DataTable.DynamicWhere do + begin + // (ID = :ID) + Condicion := NewBinaryExpression(NewField('', fld_AlbaranesProveedorID), NewConstant(ID, datInteger), dboEqual); + + if IsEmpty then + Expression := Condicion + else + Expression := NewBinaryExpression(Expression, Condicion, dboAnd); + end; + + finally + HideHourglassCursor; + end; +end; + +function TDataModuleAlbaranesProveedor.GetItems: IBizAlbaranProveedor; +var + AAlbaran : TDAMemDataTable; +begin + ShowHourglassCursor; + try + AAlbaran := CloneDataTable(tbl_AlbaranesProveedor); + AsignarClaseNegocio(AAlbaran); + + // EL CAMPO REFERENCIA TIENE QUE SER AUTOREFRESH!!!!! + AAlbaran.FieldByName(fld_AlbaranesProveedorREFERENCIA).ServerAutoRefresh := TRUE; + + with TBizAlbaranProveedor(AAlbaran.BusinessEventsObj) do + begin + Detalles := _GetDetalles; + end; + + Result := (AAlbaran as IBizAlbaranProveedor); + finally + HideHourglassCursor; + end; +end; + +end. diff --git a/Source/Modulos/Albaranes de proveedor/Model/AlbaranesProveedor_model.bdsproj b/Source/Modulos/Albaranes de proveedor/Model/AlbaranesProveedor_model.bdsproj new file mode 100644 index 00000000..b34bab20 --- /dev/null +++ b/Source/Modulos/Albaranes de proveedor/Model/AlbaranesProveedor_model.bdsproj @@ -0,0 +1,496 @@ + + + + + + + + + + + + AlbaranesProveedor_model.dpk + + + 7.0 + + + 8 + 0 + 1 + 1 + 0 + 0 + 1 + 1 + 1 + 0 + 0 + 1 + 0 + 1 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 1 + 1 + 1 + True + True + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + False + False + False + True + True + True + True + True + True + + + + 3 + 0 + False + 1 + False + False + False + 16384 + 1048576 + 4194304 + + + + + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + + + + False + + + + + + False + + + True + False + + + + $00000000 + + + + True + False + 1 + 0 + 0 + 0 + False + False + False + False + False + 3082 + 1252 + + + + + 1.0.0.0 + + + + + + 1.0.0.0 + + + RemObjects Pascal Script - RemObjects SDK 3.0 Integration + EurekaLog 5.1.9 + + + + True + diff --git a/Source/Modulos/Albaranes de proveedor/Model/AlbaranesProveedor_model.dpk b/Source/Modulos/Albaranes de proveedor/Model/AlbaranesProveedor_model.dpk new file mode 100644 index 00000000..eef7c303 --- /dev/null +++ b/Source/Modulos/Albaranes de proveedor/Model/AlbaranesProveedor_model.dpk @@ -0,0 +1,39 @@ +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 ON} + +requires + Base, + Contactos_model; + +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', + uIDataModuleAlbaranesProveedorReport in 'Data\uIDataModuleAlbaranesProveedorReport.pas'; + +end. diff --git a/Source/Modulos/Albaranes de proveedor/Model/AlbaranesProveedor_model.dproj b/Source/Modulos/Albaranes de proveedor/Model/AlbaranesProveedor_model.dproj new file mode 100644 index 00000000..d9cab517 --- /dev/null +++ b/Source/Modulos/Albaranes de proveedor/Model/AlbaranesProveedor_model.dproj @@ -0,0 +1,605 @@ + + + {a7225a8d-f40d-4878-9a27-c5de0e7cb638} + AlbaranesProveedor_model.dpk + Debug + AnyCPU + DCC32 + ..\..\..\..\Output\Debug\Cliente\AlbaranesProveedor_model.bpl + + + 7.0 + False + False + 0 + 3 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + RELEASE + + + 7.0 + 3 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + + + Delphi.Personality + Package + + + False + True + False + + + True + False + False + + + True + False + 1 + 0 + 0 + 0 + False + False + False + False + False + 3082 + 1252 + + + + + 1.0.0.0 + + + + + + 1.0.0.0 + + + + + + + + + + + + + + + + + + + + RemObjects Pascal Script - RemObjects SDK 3.0 Integration + EurekaLog 5.1.9 + + + AlbaranesProveedor_model.dpk + + + + + + + MainSource + + + + + + + + + + + + + + diff --git a/Source/Modulos/Albaranes de proveedor/Model/AlbaranesProveedor_model.identcache b/Source/Modulos/Albaranes de proveedor/Model/AlbaranesProveedor_model.identcache new file mode 100644 index 0000000000000000000000000000000000000000..052219356a929f17121123575a9407106d44b236 GIT binary patch literal 674 zcmcK1u?oU45C-5*K1ZLx2XNDN=^%)@2!RrlzZy7t<&t#p>1{>6w%=GGoUOc#0iJ*z#zwpGS7A>?&9khzo_)H;{X347|28c09i@|9RL6T literal 0 HcmV?d00001 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..169b0e0f --- /dev/null +++ b/Source/Modulos/Albaranes de proveedor/Model/Data/uIDataModuleAlbaranesProveedor.pas @@ -0,0 +1,18 @@ +unit uIDataModuleAlbaranesProveedor; + +interface + +uses + uBizAlbaranesProveedor; + +type + IDataModuleAlbaranesProveedor = interface + ['{2BAD8B3B-B57D-475C-B528-F82B320B2332}'] + function GetItems: IBizAlbaranProveedor; + function GetItem(const ID : Integer) : IBizAlbaranProveedor; + function NewItem : IBizAlbaranProveedor; + end; + +implementation + +end. diff --git a/Source/Modulos/Albaranes de proveedor/Model/Data/uIDataModuleAlbaranesProveedorReport.pas b/Source/Modulos/Albaranes de proveedor/Model/Data/uIDataModuleAlbaranesProveedorReport.pas new file mode 100644 index 00000000..9095d6ff --- /dev/null +++ b/Source/Modulos/Albaranes de proveedor/Model/Data/uIDataModuleAlbaranesProveedorReport.pas @@ -0,0 +1,16 @@ +unit uIDataModuleAlbaranesProveedorReport; + +interface + +uses + uROTypes; + +type + IDataModuleAlbaranesProveedorReport = interface + ['{AF3C54C4-A892-46FD-9689-081A637DE321}'] + function GetReport(const AID: String): Binary; + end; + +implementation + +end. diff --git a/Source/Modulos/Albaranes de proveedor/Model/ModelSupport_AlbaranesProveedor_model/AlbaranesProveedor_model.prjconfig b/Source/Modulos/Albaranes de proveedor/Model/ModelSupport_AlbaranesProveedor_model/AlbaranesProveedor_model.prjconfig new file mode 100644 index 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..d7a3411a --- /dev/null +++ b/Source/Modulos/Albaranes de proveedor/Model/schAlbaranesProveedorClient_Intf.pas @@ -0,0 +1,1945 @@ +unit schAlbaranesProveedorClient_Intf; + +interface + +uses + Classes, DB, schBase_Intf, SysUtils, uROClasses, uDADataTable, FmtBCD, uROXMLIntf; + +const + { Data table rules ids + Feel free to change them to something more human readable + but make sure they are unique in the context of your application } + RID_DarReferencia = '{E264DAAA-A65A-4F97-8399-054CD6715754}'; + RID_AlbaranesProveedor = '{8070DE55-5BC2-4DCA-B26F-B6E77353CD13}'; + RID_AlbaranesProveedor_Detalles = '{B5916447-B176-439A-8E99-A6CDA1527B86}'; + + { Data table names } + nme_DarReferencia = 'DarReferencia'; + nme_AlbaranesProveedor = 'AlbaranesProveedor'; + nme_AlbaranesProveedor_Detalles = 'AlbaranesProveedor_Detalles'; + + { 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_AlbaranesProveedorREFERENCIA_PROVEEDOR = 'REFERENCIA_PROVEEDOR'; + 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_FACTURA = 'REF_FACTURA'; + fld_AlbaranesProveedorREF_FACTURA_PROV = 'REF_FACTURA_PROV'; + fld_AlbaranesProveedorCALLE = 'CALLE'; + fld_AlbaranesProveedorCODIGO_POSTAL = 'CODIGO_POSTAL'; + fld_AlbaranesProveedorPOBLACION = 'POBLACION'; + fld_AlbaranesProveedorPROVINCIA = 'PROVINCIA'; + fld_AlbaranesProveedorPERSONA_CONTACTO = 'PERSONA_CONTACTO'; + fld_AlbaranesProveedorTELEFONO = 'TELEFONO'; + fld_AlbaranesProveedorIMPORTE_NETO = 'IMPORTE_NETO'; + fld_AlbaranesProveedorIMPORTE_PORTE = 'IMPORTE_PORTE'; + fld_AlbaranesProveedorDESCUENTO = 'DESCUENTO'; + fld_AlbaranesProveedorIMPORTE_DESCUENTO = 'IMPORTE_DESCUENTO'; + fld_AlbaranesProveedorBASE_IMPONIBLE = 'BASE_IMPONIBLE'; + fld_AlbaranesProveedorIVA = 'IVA'; + fld_AlbaranesProveedorIMPORTE_IVA = 'IMPORTE_IVA'; + fld_AlbaranesProveedorIMPORTE_TOTAL = 'IMPORTE_TOTAL'; + fld_AlbaranesProveedorOBSERVACIONES = 'OBSERVACIONES'; + fld_AlbaranesProveedorINCIDENCIAS = 'INCIDENCIAS'; + fld_AlbaranesProveedorINCIDENCIAS_ACTIVAS = 'INCIDENCIAS_ACTIVAS'; + fld_AlbaranesProveedorFECHA_ALTA = 'FECHA_ALTA'; + fld_AlbaranesProveedorFECHA_MODIFICACION = 'FECHA_MODIFICACION'; + fld_AlbaranesProveedorUSUARIO = 'USUARIO'; + fld_AlbaranesProveedorID_FORMA_PAGO = 'ID_FORMA_PAGO'; + + { 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_AlbaranesProveedorREFERENCIA_PROVEEDOR = 6; + idx_AlbaranesProveedorTIPO = 7; + idx_AlbaranesProveedorID_ALMACEN = 8; + idx_AlbaranesProveedorNOMBRE_ALMACEN = 9; + idx_AlbaranesProveedorID_PEDIDO = 10; + idx_AlbaranesProveedorREF_PED_PROVEEDOR = 11; + idx_AlbaranesProveedorID_FACTURA = 12; + idx_AlbaranesProveedorREF_FACTURA = 13; + idx_AlbaranesProveedorREF_FACTURA_PROV = 14; + idx_AlbaranesProveedorCALLE = 15; + idx_AlbaranesProveedorCODIGO_POSTAL = 16; + idx_AlbaranesProveedorPOBLACION = 17; + idx_AlbaranesProveedorPROVINCIA = 18; + idx_AlbaranesProveedorPERSONA_CONTACTO = 19; + idx_AlbaranesProveedorTELEFONO = 20; + idx_AlbaranesProveedorIMPORTE_NETO = 21; + idx_AlbaranesProveedorIMPORTE_PORTE = 22; + idx_AlbaranesProveedorDESCUENTO = 23; + idx_AlbaranesProveedorIMPORTE_DESCUENTO = 24; + idx_AlbaranesProveedorBASE_IMPONIBLE = 25; + idx_AlbaranesProveedorIVA = 26; + idx_AlbaranesProveedorIMPORTE_IVA = 27; + idx_AlbaranesProveedorIMPORTE_TOTAL = 28; + idx_AlbaranesProveedorOBSERVACIONES = 29; + idx_AlbaranesProveedorINCIDENCIAS = 30; + idx_AlbaranesProveedorINCIDENCIAS_ACTIVAS = 31; + idx_AlbaranesProveedorFECHA_ALTA = 32; + idx_AlbaranesProveedorFECHA_MODIFICACION = 33; + idx_AlbaranesProveedorUSUARIO = 34; + idx_AlbaranesProveedorID_FORMA_PAGO = 35; + + { AlbaranesProveedor_Detalles fields } + fld_AlbaranesProveedor_DetallesID = 'ID'; + fld_AlbaranesProveedor_DetallesID_ALBARAN = 'ID_ALBARAN'; + fld_AlbaranesProveedor_DetallesPOSICION = 'POSICION'; + fld_AlbaranesProveedor_DetallesTIPO_DETALLE = 'TIPO_DETALLE'; + fld_AlbaranesProveedor_DetallesCONCEPTO = 'CONCEPTO'; + fld_AlbaranesProveedor_DetallesCANTIDAD = 'CANTIDAD'; + fld_AlbaranesProveedor_DetallesIMPORTE_UNIDAD = 'IMPORTE_UNIDAD'; + fld_AlbaranesProveedor_DetallesIMPORTE_TOTAL = 'IMPORTE_TOTAL'; + fld_AlbaranesProveedor_DetallesVISIBLE = 'VISIBLE'; + fld_AlbaranesProveedor_DetallesID_ARTICULO = 'ID_ARTICULO'; + fld_AlbaranesProveedor_DetallesDESCUENTO = 'DESCUENTO'; + fld_AlbaranesProveedor_DetallesIMPORTE_PORTE = 'IMPORTE_PORTE'; + fld_AlbaranesProveedor_DetallesREFERENCIA = 'REFERENCIA'; + fld_AlbaranesProveedor_DetallesREFERENCIA_PROVEEDOR = 'REFERENCIA_PROVEEDOR'; + + { AlbaranesProveedor_Detalles field indexes } + idx_AlbaranesProveedor_DetallesID = 0; + idx_AlbaranesProveedor_DetallesID_ALBARAN = 1; + idx_AlbaranesProveedor_DetallesPOSICION = 2; + idx_AlbaranesProveedor_DetallesTIPO_DETALLE = 3; + idx_AlbaranesProveedor_DetallesCONCEPTO = 4; + idx_AlbaranesProveedor_DetallesCANTIDAD = 5; + idx_AlbaranesProveedor_DetallesIMPORTE_UNIDAD = 6; + idx_AlbaranesProveedor_DetallesIMPORTE_TOTAL = 7; + idx_AlbaranesProveedor_DetallesVISIBLE = 8; + idx_AlbaranesProveedor_DetallesID_ARTICULO = 9; + idx_AlbaranesProveedor_DetallesDESCUENTO = 10; + idx_AlbaranesProveedor_DetallesIMPORTE_PORTE = 11; + idx_AlbaranesProveedor_DetallesREFERENCIA = 12; + idx_AlbaranesProveedor_DetallesREFERENCIA_PROVEEDOR = 13; + +type + { IDarReferencia } + IDarReferencia = interface(IDAStronglyTypedDataTable) + ['{87BCEB3E-3FAF-44FF-A992-70B549FF79CE}'] + { Property getters and setters } + function GetVALORValue: String; + procedure SetVALORValue(const aValue: String); + function GetVALORIsNull: Boolean; + procedure SetVALORIsNull(const aValue: Boolean); + + + { Properties } + property VALOR: String read GetVALORValue write SetVALORValue; + property VALORIsNull: Boolean read GetVALORIsNull write SetVALORIsNull; + end; + + { TDarReferenciaDataTableRules } + TDarReferenciaDataTableRules = class(TIntfObjectDADataTableRules, IDarReferencia) + private + protected + { Property getters and setters } + function GetVALORValue: String; virtual; + procedure SetVALORValue(const aValue: String); virtual; + function GetVALORIsNull: Boolean; virtual; + procedure SetVALORIsNull(const aValue: Boolean); virtual; + + { Properties } + property VALOR: String read GetVALORValue write SetVALORValue; + property VALORIsNull: Boolean read GetVALORIsNull write SetVALORIsNull; + + public + constructor Create(aDataTable: TDADataTable); override; + destructor Destroy; override; + + end; + + { IAlbaranesProveedor } + IAlbaranesProveedor = interface(IDAStronglyTypedDataTable) + ['{91E3DC89-DDB4-4727-88A3-1931B49B7F08}'] + { Property getters and setters } + function GetIDValue: Integer; + procedure SetIDValue(const aValue: Integer); + function GetIDIsNull: Boolean; + procedure SetIDIsNull(const aValue: Boolean); + function GetID_EMPRESAValue: Integer; + procedure SetID_EMPRESAValue(const aValue: Integer); + function GetID_EMPRESAIsNull: Boolean; + procedure SetID_EMPRESAIsNull(const aValue: Boolean); + function GetID_PROVEEDORValue: Integer; + procedure SetID_PROVEEDORValue(const aValue: Integer); + function GetID_PROVEEDORIsNull: Boolean; + procedure SetID_PROVEEDORIsNull(const aValue: Boolean); + function GetNOMBREValue: String; + procedure SetNOMBREValue(const aValue: String); + function GetNOMBREIsNull: Boolean; + procedure SetNOMBREIsNull(const aValue: Boolean); + function GetFECHA_ALBARANValue: DateTime; + procedure SetFECHA_ALBARANValue(const aValue: DateTime); + function GetFECHA_ALBARANIsNull: Boolean; + procedure SetFECHA_ALBARANIsNull(const aValue: Boolean); + function GetREFERENCIAValue: String; + procedure SetREFERENCIAValue(const aValue: String); + function GetREFERENCIAIsNull: Boolean; + procedure SetREFERENCIAIsNull(const aValue: Boolean); + function GetREFERENCIA_PROVEEDORValue: String; + procedure SetREFERENCIA_PROVEEDORValue(const aValue: String); + function GetREFERENCIA_PROVEEDORIsNull: Boolean; + procedure SetREFERENCIA_PROVEEDORIsNull(const aValue: Boolean); + function GetTIPOValue: String; + procedure SetTIPOValue(const aValue: String); + function GetTIPOIsNull: Boolean; + procedure SetTIPOIsNull(const aValue: Boolean); + function GetID_ALMACENValue: Integer; + procedure SetID_ALMACENValue(const aValue: Integer); + function GetID_ALMACENIsNull: Boolean; + procedure SetID_ALMACENIsNull(const aValue: Boolean); + function GetNOMBRE_ALMACENValue: String; + procedure SetNOMBRE_ALMACENValue(const aValue: String); + function GetNOMBRE_ALMACENIsNull: Boolean; + procedure SetNOMBRE_ALMACENIsNull(const aValue: Boolean); + function GetID_PEDIDOValue: Integer; + procedure SetID_PEDIDOValue(const aValue: Integer); + function GetID_PEDIDOIsNull: Boolean; + procedure SetID_PEDIDOIsNull(const aValue: Boolean); + function GetREF_PED_PROVEEDORValue: String; + procedure SetREF_PED_PROVEEDORValue(const aValue: String); + function GetREF_PED_PROVEEDORIsNull: Boolean; + procedure SetREF_PED_PROVEEDORIsNull(const aValue: Boolean); + function GetID_FACTURAValue: Integer; + procedure SetID_FACTURAValue(const aValue: Integer); + function GetID_FACTURAIsNull: Boolean; + procedure SetID_FACTURAIsNull(const aValue: Boolean); + function GetREF_FACTURAValue: String; + procedure SetREF_FACTURAValue(const aValue: String); + function GetREF_FACTURAIsNull: Boolean; + procedure SetREF_FACTURAIsNull(const aValue: Boolean); + function GetREF_FACTURA_PROVValue: String; + procedure SetREF_FACTURA_PROVValue(const aValue: String); + function GetREF_FACTURA_PROVIsNull: Boolean; + procedure SetREF_FACTURA_PROVIsNull(const aValue: Boolean); + function GetCALLEValue: String; + procedure SetCALLEValue(const aValue: String); + function GetCALLEIsNull: Boolean; + procedure SetCALLEIsNull(const aValue: Boolean); + function GetCODIGO_POSTALValue: String; + procedure SetCODIGO_POSTALValue(const aValue: String); + function GetCODIGO_POSTALIsNull: Boolean; + procedure SetCODIGO_POSTALIsNull(const aValue: Boolean); + function GetPOBLACIONValue: String; + procedure SetPOBLACIONValue(const aValue: String); + function GetPOBLACIONIsNull: Boolean; + procedure SetPOBLACIONIsNull(const aValue: Boolean); + function GetPROVINCIAValue: String; + procedure SetPROVINCIAValue(const aValue: String); + function GetPROVINCIAIsNull: Boolean; + procedure SetPROVINCIAIsNull(const aValue: Boolean); + function GetPERSONA_CONTACTOValue: String; + procedure SetPERSONA_CONTACTOValue(const aValue: String); + function GetPERSONA_CONTACTOIsNull: Boolean; + procedure SetPERSONA_CONTACTOIsNull(const aValue: Boolean); + function GetTELEFONOValue: String; + procedure SetTELEFONOValue(const aValue: String); + function GetTELEFONOIsNull: Boolean; + procedure SetTELEFONOIsNull(const aValue: Boolean); + function GetIMPORTE_NETOValue: Currency; + procedure SetIMPORTE_NETOValue(const aValue: Currency); + function GetIMPORTE_NETOIsNull: Boolean; + procedure SetIMPORTE_NETOIsNull(const aValue: Boolean); + function GetIMPORTE_PORTEValue: Currency; + procedure SetIMPORTE_PORTEValue(const aValue: Currency); + function GetIMPORTE_PORTEIsNull: Boolean; + procedure SetIMPORTE_PORTEIsNull(const aValue: Boolean); + function GetDESCUENTOValue: Float; + procedure SetDESCUENTOValue(const aValue: Float); + function GetDESCUENTOIsNull: Boolean; + procedure SetDESCUENTOIsNull(const aValue: Boolean); + function GetIMPORTE_DESCUENTOValue: Currency; + procedure SetIMPORTE_DESCUENTOValue(const aValue: Currency); + function GetIMPORTE_DESCUENTOIsNull: Boolean; + procedure SetIMPORTE_DESCUENTOIsNull(const aValue: Boolean); + function GetBASE_IMPONIBLEValue: Currency; + procedure SetBASE_IMPONIBLEValue(const aValue: Currency); + function GetBASE_IMPONIBLEIsNull: Boolean; + procedure SetBASE_IMPONIBLEIsNull(const aValue: Boolean); + function GetIVAValue: Float; + procedure SetIVAValue(const aValue: Float); + function GetIVAIsNull: Boolean; + procedure SetIVAIsNull(const aValue: Boolean); + function GetIMPORTE_IVAValue: Currency; + procedure SetIMPORTE_IVAValue(const aValue: Currency); + function GetIMPORTE_IVAIsNull: Boolean; + procedure SetIMPORTE_IVAIsNull(const aValue: Boolean); + function GetIMPORTE_TOTALValue: Currency; + procedure SetIMPORTE_TOTALValue(const aValue: Currency); + function GetIMPORTE_TOTALIsNull: Boolean; + procedure SetIMPORTE_TOTALIsNull(const aValue: Boolean); + function GetOBSERVACIONESValue: IROStrings; + function GetOBSERVACIONESIsNull: Boolean; + procedure SetOBSERVACIONESIsNull(const aValue: Boolean); + function GetINCIDENCIASValue: IROStrings; + function GetINCIDENCIASIsNull: Boolean; + procedure SetINCIDENCIASIsNull(const aValue: Boolean); + function GetINCIDENCIAS_ACTIVASValue: Integer; + procedure SetINCIDENCIAS_ACTIVASValue(const aValue: Integer); + function GetINCIDENCIAS_ACTIVASIsNull: Boolean; + procedure SetINCIDENCIAS_ACTIVASIsNull(const aValue: Boolean); + function GetFECHA_ALTAValue: DateTime; + procedure SetFECHA_ALTAValue(const aValue: DateTime); + function GetFECHA_ALTAIsNull: Boolean; + procedure SetFECHA_ALTAIsNull(const aValue: Boolean); + function GetFECHA_MODIFICACIONValue: DateTime; + procedure SetFECHA_MODIFICACIONValue(const aValue: DateTime); + function GetFECHA_MODIFICACIONIsNull: Boolean; + procedure SetFECHA_MODIFICACIONIsNull(const aValue: Boolean); + function GetUSUARIOValue: String; + procedure SetUSUARIOValue(const aValue: String); + function GetUSUARIOIsNull: Boolean; + procedure SetUSUARIOIsNull(const aValue: Boolean); + function GetID_FORMA_PAGOValue: Integer; + procedure SetID_FORMA_PAGOValue(const aValue: Integer); + function GetID_FORMA_PAGOIsNull: Boolean; + procedure SetID_FORMA_PAGOIsNull(const aValue: Boolean); + + + { Properties } + property ID: Integer read GetIDValue write SetIDValue; + property IDIsNull: Boolean read GetIDIsNull write SetIDIsNull; + property ID_EMPRESA: Integer read GetID_EMPRESAValue write SetID_EMPRESAValue; + property ID_EMPRESAIsNull: Boolean read GetID_EMPRESAIsNull write SetID_EMPRESAIsNull; + property ID_PROVEEDOR: Integer read GetID_PROVEEDORValue write SetID_PROVEEDORValue; + property ID_PROVEEDORIsNull: Boolean read GetID_PROVEEDORIsNull write SetID_PROVEEDORIsNull; + property NOMBRE: String read GetNOMBREValue write SetNOMBREValue; + property NOMBREIsNull: Boolean read GetNOMBREIsNull write SetNOMBREIsNull; + property FECHA_ALBARAN: DateTime read GetFECHA_ALBARANValue write SetFECHA_ALBARANValue; + property FECHA_ALBARANIsNull: Boolean read GetFECHA_ALBARANIsNull write SetFECHA_ALBARANIsNull; + property REFERENCIA: String read GetREFERENCIAValue write SetREFERENCIAValue; + property REFERENCIAIsNull: Boolean read GetREFERENCIAIsNull write SetREFERENCIAIsNull; + property REFERENCIA_PROVEEDOR: String read GetREFERENCIA_PROVEEDORValue write SetREFERENCIA_PROVEEDORValue; + property REFERENCIA_PROVEEDORIsNull: Boolean read GetREFERENCIA_PROVEEDORIsNull write SetREFERENCIA_PROVEEDORIsNull; + property TIPO: String read GetTIPOValue write SetTIPOValue; + property TIPOIsNull: Boolean read GetTIPOIsNull write SetTIPOIsNull; + property ID_ALMACEN: Integer read GetID_ALMACENValue write SetID_ALMACENValue; + property ID_ALMACENIsNull: Boolean read GetID_ALMACENIsNull write SetID_ALMACENIsNull; + property NOMBRE_ALMACEN: String read GetNOMBRE_ALMACENValue write SetNOMBRE_ALMACENValue; + property NOMBRE_ALMACENIsNull: Boolean read GetNOMBRE_ALMACENIsNull write SetNOMBRE_ALMACENIsNull; + property ID_PEDIDO: Integer read GetID_PEDIDOValue write SetID_PEDIDOValue; + property ID_PEDIDOIsNull: Boolean read GetID_PEDIDOIsNull write SetID_PEDIDOIsNull; + property REF_PED_PROVEEDOR: String read GetREF_PED_PROVEEDORValue write SetREF_PED_PROVEEDORValue; + property REF_PED_PROVEEDORIsNull: Boolean read GetREF_PED_PROVEEDORIsNull write SetREF_PED_PROVEEDORIsNull; + property ID_FACTURA: Integer read GetID_FACTURAValue write SetID_FACTURAValue; + property ID_FACTURAIsNull: Boolean read GetID_FACTURAIsNull write SetID_FACTURAIsNull; + property REF_FACTURA: String read GetREF_FACTURAValue write SetREF_FACTURAValue; + property REF_FACTURAIsNull: Boolean read GetREF_FACTURAIsNull write SetREF_FACTURAIsNull; + property REF_FACTURA_PROV: String read GetREF_FACTURA_PROVValue write SetREF_FACTURA_PROVValue; + property REF_FACTURA_PROVIsNull: Boolean read GetREF_FACTURA_PROVIsNull write SetREF_FACTURA_PROVIsNull; + property CALLE: String read GetCALLEValue write SetCALLEValue; + property CALLEIsNull: Boolean read GetCALLEIsNull write SetCALLEIsNull; + property CODIGO_POSTAL: String read GetCODIGO_POSTALValue write SetCODIGO_POSTALValue; + property CODIGO_POSTALIsNull: Boolean read GetCODIGO_POSTALIsNull write SetCODIGO_POSTALIsNull; + property POBLACION: String read GetPOBLACIONValue write SetPOBLACIONValue; + property POBLACIONIsNull: Boolean read GetPOBLACIONIsNull write SetPOBLACIONIsNull; + property PROVINCIA: String read GetPROVINCIAValue write SetPROVINCIAValue; + property PROVINCIAIsNull: Boolean read GetPROVINCIAIsNull write SetPROVINCIAIsNull; + property PERSONA_CONTACTO: String read GetPERSONA_CONTACTOValue write SetPERSONA_CONTACTOValue; + property PERSONA_CONTACTOIsNull: Boolean read GetPERSONA_CONTACTOIsNull write SetPERSONA_CONTACTOIsNull; + property TELEFONO: String read GetTELEFONOValue write SetTELEFONOValue; + property TELEFONOIsNull: Boolean read GetTELEFONOIsNull write SetTELEFONOIsNull; + property IMPORTE_NETO: Currency read GetIMPORTE_NETOValue write SetIMPORTE_NETOValue; + property IMPORTE_NETOIsNull: Boolean read GetIMPORTE_NETOIsNull write SetIMPORTE_NETOIsNull; + property IMPORTE_PORTE: Currency read GetIMPORTE_PORTEValue write SetIMPORTE_PORTEValue; + property IMPORTE_PORTEIsNull: Boolean read GetIMPORTE_PORTEIsNull write SetIMPORTE_PORTEIsNull; + property DESCUENTO: Float read GetDESCUENTOValue write SetDESCUENTOValue; + property DESCUENTOIsNull: Boolean read GetDESCUENTOIsNull write SetDESCUENTOIsNull; + property IMPORTE_DESCUENTO: Currency read GetIMPORTE_DESCUENTOValue write SetIMPORTE_DESCUENTOValue; + property IMPORTE_DESCUENTOIsNull: Boolean read GetIMPORTE_DESCUENTOIsNull write SetIMPORTE_DESCUENTOIsNull; + property BASE_IMPONIBLE: Currency read GetBASE_IMPONIBLEValue write SetBASE_IMPONIBLEValue; + property BASE_IMPONIBLEIsNull: Boolean read GetBASE_IMPONIBLEIsNull write SetBASE_IMPONIBLEIsNull; + property IVA: Float read GetIVAValue write SetIVAValue; + property IVAIsNull: Boolean read GetIVAIsNull write SetIVAIsNull; + property IMPORTE_IVA: Currency read GetIMPORTE_IVAValue write SetIMPORTE_IVAValue; + property IMPORTE_IVAIsNull: Boolean read GetIMPORTE_IVAIsNull write SetIMPORTE_IVAIsNull; + property IMPORTE_TOTAL: Currency read GetIMPORTE_TOTALValue write SetIMPORTE_TOTALValue; + property IMPORTE_TOTALIsNull: Boolean read GetIMPORTE_TOTALIsNull write SetIMPORTE_TOTALIsNull; + property OBSERVACIONES: IROStrings read GetOBSERVACIONESValue; + property OBSERVACIONESIsNull: Boolean read GetOBSERVACIONESIsNull write SetOBSERVACIONESIsNull; + property INCIDENCIAS: IROStrings read GetINCIDENCIASValue; + property INCIDENCIASIsNull: Boolean read GetINCIDENCIASIsNull write SetINCIDENCIASIsNull; + property INCIDENCIAS_ACTIVAS: Integer read GetINCIDENCIAS_ACTIVASValue write SetINCIDENCIAS_ACTIVASValue; + property INCIDENCIAS_ACTIVASIsNull: Boolean read GetINCIDENCIAS_ACTIVASIsNull write SetINCIDENCIAS_ACTIVASIsNull; + property FECHA_ALTA: DateTime read GetFECHA_ALTAValue write SetFECHA_ALTAValue; + property FECHA_ALTAIsNull: Boolean read GetFECHA_ALTAIsNull write SetFECHA_ALTAIsNull; + property FECHA_MODIFICACION: DateTime read GetFECHA_MODIFICACIONValue write SetFECHA_MODIFICACIONValue; + property FECHA_MODIFICACIONIsNull: Boolean read GetFECHA_MODIFICACIONIsNull write SetFECHA_MODIFICACIONIsNull; + property USUARIO: String read GetUSUARIOValue write SetUSUARIOValue; + property USUARIOIsNull: Boolean read GetUSUARIOIsNull write SetUSUARIOIsNull; + property ID_FORMA_PAGO: Integer read GetID_FORMA_PAGOValue write SetID_FORMA_PAGOValue; + property ID_FORMA_PAGOIsNull: Boolean read GetID_FORMA_PAGOIsNull write SetID_FORMA_PAGOIsNull; + end; + + { TAlbaranesProveedorDataTableRules } + TAlbaranesProveedorDataTableRules = class(TIntfObjectDADataTableRules, IAlbaranesProveedor) + private + f_OBSERVACIONES: IROStrings; + f_INCIDENCIAS: IROStrings; + procedure OBSERVACIONES_OnChange(Sender: TObject); + procedure INCIDENCIAS_OnChange(Sender: TObject); + protected + { Property getters and setters } + function GetIDValue: Integer; virtual; + procedure SetIDValue(const aValue: Integer); virtual; + function GetIDIsNull: Boolean; virtual; + procedure SetIDIsNull(const aValue: Boolean); virtual; + function GetID_EMPRESAValue: Integer; virtual; + procedure SetID_EMPRESAValue(const aValue: Integer); virtual; + function GetID_EMPRESAIsNull: Boolean; virtual; + procedure SetID_EMPRESAIsNull(const aValue: Boolean); virtual; + function GetID_PROVEEDORValue: Integer; virtual; + procedure SetID_PROVEEDORValue(const aValue: Integer); virtual; + function GetID_PROVEEDORIsNull: Boolean; virtual; + procedure SetID_PROVEEDORIsNull(const aValue: Boolean); virtual; + function GetNOMBREValue: String; virtual; + procedure SetNOMBREValue(const aValue: String); virtual; + function GetNOMBREIsNull: Boolean; virtual; + procedure SetNOMBREIsNull(const aValue: Boolean); virtual; + function GetFECHA_ALBARANValue: DateTime; virtual; + procedure SetFECHA_ALBARANValue(const aValue: DateTime); virtual; + function GetFECHA_ALBARANIsNull: Boolean; virtual; + procedure SetFECHA_ALBARANIsNull(const aValue: Boolean); virtual; + function GetREFERENCIAValue: String; virtual; + procedure SetREFERENCIAValue(const aValue: String); virtual; + function GetREFERENCIAIsNull: Boolean; virtual; + procedure SetREFERENCIAIsNull(const aValue: Boolean); virtual; + function GetREFERENCIA_PROVEEDORValue: String; virtual; + procedure SetREFERENCIA_PROVEEDORValue(const aValue: String); virtual; + function GetREFERENCIA_PROVEEDORIsNull: Boolean; virtual; + procedure SetREFERENCIA_PROVEEDORIsNull(const aValue: Boolean); virtual; + function GetTIPOValue: String; virtual; + procedure SetTIPOValue(const aValue: String); virtual; + function GetTIPOIsNull: Boolean; virtual; + procedure SetTIPOIsNull(const aValue: Boolean); virtual; + function GetID_ALMACENValue: Integer; virtual; + procedure SetID_ALMACENValue(const aValue: Integer); virtual; + function GetID_ALMACENIsNull: Boolean; virtual; + procedure SetID_ALMACENIsNull(const aValue: Boolean); virtual; + function GetNOMBRE_ALMACENValue: String; virtual; + procedure SetNOMBRE_ALMACENValue(const aValue: String); virtual; + function GetNOMBRE_ALMACENIsNull: Boolean; virtual; + procedure SetNOMBRE_ALMACENIsNull(const aValue: Boolean); virtual; + function GetID_PEDIDOValue: Integer; virtual; + procedure SetID_PEDIDOValue(const aValue: Integer); virtual; + function GetID_PEDIDOIsNull: Boolean; virtual; + procedure SetID_PEDIDOIsNull(const aValue: Boolean); virtual; + function GetREF_PED_PROVEEDORValue: String; virtual; + procedure SetREF_PED_PROVEEDORValue(const aValue: String); virtual; + function GetREF_PED_PROVEEDORIsNull: Boolean; virtual; + procedure SetREF_PED_PROVEEDORIsNull(const aValue: Boolean); virtual; + function GetID_FACTURAValue: Integer; virtual; + procedure SetID_FACTURAValue(const aValue: Integer); virtual; + function GetID_FACTURAIsNull: Boolean; virtual; + procedure SetID_FACTURAIsNull(const aValue: Boolean); virtual; + function GetREF_FACTURAValue: String; virtual; + procedure SetREF_FACTURAValue(const aValue: String); virtual; + function GetREF_FACTURAIsNull: Boolean; virtual; + procedure SetREF_FACTURAIsNull(const aValue: Boolean); virtual; + function GetREF_FACTURA_PROVValue: String; virtual; + procedure SetREF_FACTURA_PROVValue(const aValue: String); virtual; + function GetREF_FACTURA_PROVIsNull: Boolean; virtual; + procedure SetREF_FACTURA_PROVIsNull(const aValue: Boolean); virtual; + function GetCALLEValue: String; virtual; + procedure SetCALLEValue(const aValue: String); virtual; + function GetCALLEIsNull: Boolean; virtual; + procedure SetCALLEIsNull(const aValue: Boolean); virtual; + function GetCODIGO_POSTALValue: String; virtual; + procedure SetCODIGO_POSTALValue(const aValue: String); virtual; + function GetCODIGO_POSTALIsNull: Boolean; virtual; + procedure SetCODIGO_POSTALIsNull(const aValue: Boolean); virtual; + function GetPOBLACIONValue: String; virtual; + procedure SetPOBLACIONValue(const aValue: String); virtual; + function GetPOBLACIONIsNull: Boolean; virtual; + procedure SetPOBLACIONIsNull(const aValue: Boolean); virtual; + function GetPROVINCIAValue: String; virtual; + procedure SetPROVINCIAValue(const aValue: String); virtual; + function GetPROVINCIAIsNull: Boolean; virtual; + procedure SetPROVINCIAIsNull(const aValue: Boolean); virtual; + function GetPERSONA_CONTACTOValue: String; virtual; + procedure SetPERSONA_CONTACTOValue(const aValue: String); virtual; + function GetPERSONA_CONTACTOIsNull: Boolean; virtual; + procedure SetPERSONA_CONTACTOIsNull(const aValue: Boolean); virtual; + function GetTELEFONOValue: String; virtual; + procedure SetTELEFONOValue(const aValue: String); virtual; + function GetTELEFONOIsNull: Boolean; virtual; + procedure SetTELEFONOIsNull(const aValue: Boolean); virtual; + function GetIMPORTE_NETOValue: Currency; virtual; + procedure SetIMPORTE_NETOValue(const aValue: Currency); virtual; + function GetIMPORTE_NETOIsNull: Boolean; virtual; + procedure SetIMPORTE_NETOIsNull(const aValue: Boolean); virtual; + function GetIMPORTE_PORTEValue: Currency; virtual; + procedure SetIMPORTE_PORTEValue(const aValue: Currency); virtual; + function GetIMPORTE_PORTEIsNull: Boolean; virtual; + procedure SetIMPORTE_PORTEIsNull(const aValue: Boolean); virtual; + function GetDESCUENTOValue: Float; virtual; + procedure SetDESCUENTOValue(const aValue: Float); virtual; + function GetDESCUENTOIsNull: Boolean; virtual; + procedure SetDESCUENTOIsNull(const aValue: Boolean); virtual; + function GetIMPORTE_DESCUENTOValue: Currency; virtual; + procedure SetIMPORTE_DESCUENTOValue(const aValue: Currency); virtual; + function GetIMPORTE_DESCUENTOIsNull: Boolean; virtual; + procedure SetIMPORTE_DESCUENTOIsNull(const aValue: Boolean); virtual; + function GetBASE_IMPONIBLEValue: Currency; virtual; + procedure SetBASE_IMPONIBLEValue(const aValue: Currency); virtual; + function GetBASE_IMPONIBLEIsNull: Boolean; virtual; + procedure SetBASE_IMPONIBLEIsNull(const aValue: Boolean); virtual; + function GetIVAValue: Float; virtual; + procedure SetIVAValue(const aValue: Float); virtual; + function GetIVAIsNull: Boolean; virtual; + procedure SetIVAIsNull(const aValue: Boolean); virtual; + function GetIMPORTE_IVAValue: Currency; virtual; + procedure SetIMPORTE_IVAValue(const aValue: Currency); virtual; + function GetIMPORTE_IVAIsNull: Boolean; virtual; + procedure SetIMPORTE_IVAIsNull(const aValue: Boolean); virtual; + function GetIMPORTE_TOTALValue: Currency; virtual; + procedure SetIMPORTE_TOTALValue(const aValue: Currency); virtual; + function GetIMPORTE_TOTALIsNull: Boolean; virtual; + procedure SetIMPORTE_TOTALIsNull(const aValue: Boolean); virtual; + function GetOBSERVACIONESValue: IROStrings; virtual; + function GetOBSERVACIONESIsNull: Boolean; virtual; + procedure SetOBSERVACIONESIsNull(const aValue: Boolean); virtual; + function GetINCIDENCIASValue: IROStrings; virtual; + function GetINCIDENCIASIsNull: Boolean; virtual; + procedure SetINCIDENCIASIsNull(const aValue: Boolean); virtual; + function GetINCIDENCIAS_ACTIVASValue: Integer; virtual; + procedure SetINCIDENCIAS_ACTIVASValue(const aValue: Integer); virtual; + function GetINCIDENCIAS_ACTIVASIsNull: Boolean; virtual; + procedure SetINCIDENCIAS_ACTIVASIsNull(const aValue: Boolean); virtual; + function GetFECHA_ALTAValue: DateTime; virtual; + procedure SetFECHA_ALTAValue(const aValue: DateTime); virtual; + function GetFECHA_ALTAIsNull: Boolean; virtual; + procedure SetFECHA_ALTAIsNull(const aValue: Boolean); virtual; + function GetFECHA_MODIFICACIONValue: DateTime; virtual; + procedure SetFECHA_MODIFICACIONValue(const aValue: DateTime); virtual; + function GetFECHA_MODIFICACIONIsNull: Boolean; virtual; + procedure SetFECHA_MODIFICACIONIsNull(const aValue: Boolean); virtual; + function GetUSUARIOValue: String; virtual; + procedure SetUSUARIOValue(const aValue: String); virtual; + function GetUSUARIOIsNull: Boolean; virtual; + procedure SetUSUARIOIsNull(const aValue: Boolean); virtual; + function GetID_FORMA_PAGOValue: Integer; virtual; + procedure SetID_FORMA_PAGOValue(const aValue: Integer); virtual; + function GetID_FORMA_PAGOIsNull: Boolean; virtual; + procedure SetID_FORMA_PAGOIsNull(const aValue: Boolean); virtual; + + { Properties } + property ID: Integer read GetIDValue write SetIDValue; + property IDIsNull: Boolean read GetIDIsNull write SetIDIsNull; + property ID_EMPRESA: Integer read GetID_EMPRESAValue write SetID_EMPRESAValue; + property ID_EMPRESAIsNull: Boolean read GetID_EMPRESAIsNull write SetID_EMPRESAIsNull; + property ID_PROVEEDOR: Integer read GetID_PROVEEDORValue write SetID_PROVEEDORValue; + property ID_PROVEEDORIsNull: Boolean read GetID_PROVEEDORIsNull write SetID_PROVEEDORIsNull; + property NOMBRE: String read GetNOMBREValue write SetNOMBREValue; + property NOMBREIsNull: Boolean read GetNOMBREIsNull write SetNOMBREIsNull; + property FECHA_ALBARAN: DateTime read GetFECHA_ALBARANValue write SetFECHA_ALBARANValue; + property FECHA_ALBARANIsNull: Boolean read GetFECHA_ALBARANIsNull write SetFECHA_ALBARANIsNull; + property REFERENCIA: String read GetREFERENCIAValue write SetREFERENCIAValue; + property REFERENCIAIsNull: Boolean read GetREFERENCIAIsNull write SetREFERENCIAIsNull; + property REFERENCIA_PROVEEDOR: String read GetREFERENCIA_PROVEEDORValue write SetREFERENCIA_PROVEEDORValue; + property REFERENCIA_PROVEEDORIsNull: Boolean read GetREFERENCIA_PROVEEDORIsNull write SetREFERENCIA_PROVEEDORIsNull; + property TIPO: String read GetTIPOValue write SetTIPOValue; + property TIPOIsNull: Boolean read GetTIPOIsNull write SetTIPOIsNull; + property ID_ALMACEN: Integer read GetID_ALMACENValue write SetID_ALMACENValue; + property ID_ALMACENIsNull: Boolean read GetID_ALMACENIsNull write SetID_ALMACENIsNull; + property NOMBRE_ALMACEN: String read GetNOMBRE_ALMACENValue write SetNOMBRE_ALMACENValue; + property NOMBRE_ALMACENIsNull: Boolean read GetNOMBRE_ALMACENIsNull write SetNOMBRE_ALMACENIsNull; + property ID_PEDIDO: Integer read GetID_PEDIDOValue write SetID_PEDIDOValue; + property ID_PEDIDOIsNull: Boolean read GetID_PEDIDOIsNull write SetID_PEDIDOIsNull; + property REF_PED_PROVEEDOR: String read GetREF_PED_PROVEEDORValue write SetREF_PED_PROVEEDORValue; + property REF_PED_PROVEEDORIsNull: Boolean read GetREF_PED_PROVEEDORIsNull write SetREF_PED_PROVEEDORIsNull; + property ID_FACTURA: Integer read GetID_FACTURAValue write SetID_FACTURAValue; + property ID_FACTURAIsNull: Boolean read GetID_FACTURAIsNull write SetID_FACTURAIsNull; + property REF_FACTURA: String read GetREF_FACTURAValue write SetREF_FACTURAValue; + property REF_FACTURAIsNull: Boolean read GetREF_FACTURAIsNull write SetREF_FACTURAIsNull; + property REF_FACTURA_PROV: String read GetREF_FACTURA_PROVValue write SetREF_FACTURA_PROVValue; + property REF_FACTURA_PROVIsNull: Boolean read GetREF_FACTURA_PROVIsNull write SetREF_FACTURA_PROVIsNull; + property CALLE: String read GetCALLEValue write SetCALLEValue; + property CALLEIsNull: Boolean read GetCALLEIsNull write SetCALLEIsNull; + property CODIGO_POSTAL: String read GetCODIGO_POSTALValue write SetCODIGO_POSTALValue; + property CODIGO_POSTALIsNull: Boolean read GetCODIGO_POSTALIsNull write SetCODIGO_POSTALIsNull; + property POBLACION: String read GetPOBLACIONValue write SetPOBLACIONValue; + property POBLACIONIsNull: Boolean read GetPOBLACIONIsNull write SetPOBLACIONIsNull; + property PROVINCIA: String read GetPROVINCIAValue write SetPROVINCIAValue; + property PROVINCIAIsNull: Boolean read GetPROVINCIAIsNull write SetPROVINCIAIsNull; + property PERSONA_CONTACTO: String read GetPERSONA_CONTACTOValue write SetPERSONA_CONTACTOValue; + property PERSONA_CONTACTOIsNull: Boolean read GetPERSONA_CONTACTOIsNull write SetPERSONA_CONTACTOIsNull; + property TELEFONO: String read GetTELEFONOValue write SetTELEFONOValue; + property TELEFONOIsNull: Boolean read GetTELEFONOIsNull write SetTELEFONOIsNull; + property IMPORTE_NETO: Currency read GetIMPORTE_NETOValue write SetIMPORTE_NETOValue; + property IMPORTE_NETOIsNull: Boolean read GetIMPORTE_NETOIsNull write SetIMPORTE_NETOIsNull; + property IMPORTE_PORTE: Currency read GetIMPORTE_PORTEValue write SetIMPORTE_PORTEValue; + property IMPORTE_PORTEIsNull: Boolean read GetIMPORTE_PORTEIsNull write SetIMPORTE_PORTEIsNull; + property DESCUENTO: Float read GetDESCUENTOValue write SetDESCUENTOValue; + property DESCUENTOIsNull: Boolean read GetDESCUENTOIsNull write SetDESCUENTOIsNull; + property IMPORTE_DESCUENTO: Currency read GetIMPORTE_DESCUENTOValue write SetIMPORTE_DESCUENTOValue; + property IMPORTE_DESCUENTOIsNull: Boolean read GetIMPORTE_DESCUENTOIsNull write SetIMPORTE_DESCUENTOIsNull; + property BASE_IMPONIBLE: Currency read GetBASE_IMPONIBLEValue write SetBASE_IMPONIBLEValue; + property BASE_IMPONIBLEIsNull: Boolean read GetBASE_IMPONIBLEIsNull write SetBASE_IMPONIBLEIsNull; + property IVA: Float read GetIVAValue write SetIVAValue; + property IVAIsNull: Boolean read GetIVAIsNull write SetIVAIsNull; + property IMPORTE_IVA: Currency read GetIMPORTE_IVAValue write SetIMPORTE_IVAValue; + property IMPORTE_IVAIsNull: Boolean read GetIMPORTE_IVAIsNull write SetIMPORTE_IVAIsNull; + property IMPORTE_TOTAL: Currency read GetIMPORTE_TOTALValue write SetIMPORTE_TOTALValue; + property IMPORTE_TOTALIsNull: Boolean read GetIMPORTE_TOTALIsNull write SetIMPORTE_TOTALIsNull; + property OBSERVACIONES: IROStrings read GetOBSERVACIONESValue; + property OBSERVACIONESIsNull: Boolean read GetOBSERVACIONESIsNull write SetOBSERVACIONESIsNull; + property INCIDENCIAS: IROStrings read GetINCIDENCIASValue; + property INCIDENCIASIsNull: Boolean read GetINCIDENCIASIsNull write SetINCIDENCIASIsNull; + property INCIDENCIAS_ACTIVAS: Integer read GetINCIDENCIAS_ACTIVASValue write SetINCIDENCIAS_ACTIVASValue; + property INCIDENCIAS_ACTIVASIsNull: Boolean read GetINCIDENCIAS_ACTIVASIsNull write SetINCIDENCIAS_ACTIVASIsNull; + property FECHA_ALTA: DateTime read GetFECHA_ALTAValue write SetFECHA_ALTAValue; + property FECHA_ALTAIsNull: Boolean read GetFECHA_ALTAIsNull write SetFECHA_ALTAIsNull; + property FECHA_MODIFICACION: DateTime read GetFECHA_MODIFICACIONValue write SetFECHA_MODIFICACIONValue; + property FECHA_MODIFICACIONIsNull: Boolean read GetFECHA_MODIFICACIONIsNull write SetFECHA_MODIFICACIONIsNull; + property USUARIO: String read GetUSUARIOValue write SetUSUARIOValue; + property USUARIOIsNull: Boolean read GetUSUARIOIsNull write SetUSUARIOIsNull; + property ID_FORMA_PAGO: Integer read GetID_FORMA_PAGOValue write SetID_FORMA_PAGOValue; + property ID_FORMA_PAGOIsNull: Boolean read GetID_FORMA_PAGOIsNull write SetID_FORMA_PAGOIsNull; + + public + constructor Create(aDataTable: TDADataTable); override; + destructor Destroy; override; + + end; + + { IAlbaranesProveedor_Detalles } + IAlbaranesProveedor_Detalles = interface(IDAStronglyTypedDataTable) + ['{A644C742-27E7-449C-9A6B-ED24143E13CD}'] + { Property getters and setters } + function GetIDValue: Integer; + procedure SetIDValue(const aValue: Integer); + function GetIDIsNull: Boolean; + procedure SetIDIsNull(const aValue: Boolean); + function GetID_ALBARANValue: Integer; + procedure SetID_ALBARANValue(const aValue: Integer); + function GetID_ALBARANIsNull: Boolean; + procedure SetID_ALBARANIsNull(const aValue: Boolean); + function GetPOSICIONValue: Integer; + procedure SetPOSICIONValue(const aValue: Integer); + function GetPOSICIONIsNull: Boolean; + procedure SetPOSICIONIsNull(const aValue: Boolean); + function GetTIPO_DETALLEValue: String; + procedure SetTIPO_DETALLEValue(const aValue: String); + function GetTIPO_DETALLEIsNull: Boolean; + procedure SetTIPO_DETALLEIsNull(const aValue: Boolean); + function GetCONCEPTOValue: String; + procedure SetCONCEPTOValue(const aValue: String); + function GetCONCEPTOIsNull: Boolean; + procedure SetCONCEPTOIsNull(const aValue: Boolean); + function GetCANTIDADValue: Integer; + procedure SetCANTIDADValue(const aValue: Integer); + function GetCANTIDADIsNull: Boolean; + procedure SetCANTIDADIsNull(const aValue: Boolean); + function GetIMPORTE_UNIDADValue: Currency; + procedure SetIMPORTE_UNIDADValue(const aValue: Currency); + function GetIMPORTE_UNIDADIsNull: Boolean; + procedure SetIMPORTE_UNIDADIsNull(const aValue: Boolean); + function GetIMPORTE_TOTALValue: Currency; + procedure SetIMPORTE_TOTALValue(const aValue: Currency); + function GetIMPORTE_TOTALIsNull: Boolean; + procedure SetIMPORTE_TOTALIsNull(const aValue: Boolean); + function GetVISIBLEValue: Integer; + procedure SetVISIBLEValue(const aValue: Integer); + function GetVISIBLEIsNull: Boolean; + procedure SetVISIBLEIsNull(const aValue: Boolean); + function GetID_ARTICULOValue: Integer; + procedure SetID_ARTICULOValue(const aValue: Integer); + function GetID_ARTICULOIsNull: Boolean; + procedure SetID_ARTICULOIsNull(const aValue: Boolean); + function GetDESCUENTOValue: Float; + procedure SetDESCUENTOValue(const aValue: Float); + function GetDESCUENTOIsNull: Boolean; + procedure SetDESCUENTOIsNull(const aValue: Boolean); + function GetIMPORTE_PORTEValue: Currency; + procedure SetIMPORTE_PORTEValue(const aValue: Currency); + function GetIMPORTE_PORTEIsNull: Boolean; + procedure SetIMPORTE_PORTEIsNull(const aValue: Boolean); + function GetREFERENCIAValue: String; + procedure SetREFERENCIAValue(const aValue: String); + function GetREFERENCIAIsNull: Boolean; + procedure SetREFERENCIAIsNull(const aValue: Boolean); + function GetREFERENCIA_PROVEEDORValue: String; + procedure SetREFERENCIA_PROVEEDORValue(const aValue: String); + function GetREFERENCIA_PROVEEDORIsNull: Boolean; + procedure SetREFERENCIA_PROVEEDORIsNull(const aValue: Boolean); + + + { Properties } + property ID: Integer read GetIDValue write SetIDValue; + property IDIsNull: Boolean read GetIDIsNull write SetIDIsNull; + property ID_ALBARAN: Integer read GetID_ALBARANValue write SetID_ALBARANValue; + property ID_ALBARANIsNull: Boolean read GetID_ALBARANIsNull write SetID_ALBARANIsNull; + property POSICION: Integer read GetPOSICIONValue write SetPOSICIONValue; + property POSICIONIsNull: Boolean read GetPOSICIONIsNull write SetPOSICIONIsNull; + property TIPO_DETALLE: String read GetTIPO_DETALLEValue write SetTIPO_DETALLEValue; + property TIPO_DETALLEIsNull: Boolean read GetTIPO_DETALLEIsNull write SetTIPO_DETALLEIsNull; + property CONCEPTO: String read GetCONCEPTOValue write SetCONCEPTOValue; + property CONCEPTOIsNull: Boolean read GetCONCEPTOIsNull write SetCONCEPTOIsNull; + property CANTIDAD: Integer read GetCANTIDADValue write SetCANTIDADValue; + property CANTIDADIsNull: Boolean read GetCANTIDADIsNull write SetCANTIDADIsNull; + property IMPORTE_UNIDAD: Currency read GetIMPORTE_UNIDADValue write SetIMPORTE_UNIDADValue; + property IMPORTE_UNIDADIsNull: Boolean read GetIMPORTE_UNIDADIsNull write SetIMPORTE_UNIDADIsNull; + property IMPORTE_TOTAL: Currency read GetIMPORTE_TOTALValue write SetIMPORTE_TOTALValue; + property IMPORTE_TOTALIsNull: Boolean read GetIMPORTE_TOTALIsNull write SetIMPORTE_TOTALIsNull; + property VISIBLE: Integer read GetVISIBLEValue write SetVISIBLEValue; + property VISIBLEIsNull: Boolean read GetVISIBLEIsNull write SetVISIBLEIsNull; + property ID_ARTICULO: Integer read GetID_ARTICULOValue write SetID_ARTICULOValue; + property ID_ARTICULOIsNull: Boolean read GetID_ARTICULOIsNull write SetID_ARTICULOIsNull; + property DESCUENTO: Float read GetDESCUENTOValue write SetDESCUENTOValue; + property DESCUENTOIsNull: Boolean read GetDESCUENTOIsNull write SetDESCUENTOIsNull; + property IMPORTE_PORTE: Currency read GetIMPORTE_PORTEValue write SetIMPORTE_PORTEValue; + property IMPORTE_PORTEIsNull: Boolean read GetIMPORTE_PORTEIsNull write SetIMPORTE_PORTEIsNull; + property REFERENCIA: String read GetREFERENCIAValue write SetREFERENCIAValue; + property REFERENCIAIsNull: Boolean read GetREFERENCIAIsNull write SetREFERENCIAIsNull; + property REFERENCIA_PROVEEDOR: String read GetREFERENCIA_PROVEEDORValue write SetREFERENCIA_PROVEEDORValue; + property REFERENCIA_PROVEEDORIsNull: Boolean read GetREFERENCIA_PROVEEDORIsNull write SetREFERENCIA_PROVEEDORIsNull; + end; + + { TAlbaranesProveedor_DetallesDataTableRules } + TAlbaranesProveedor_DetallesDataTableRules = class(TIntfObjectDADataTableRules, IAlbaranesProveedor_Detalles) + private + protected + { Property getters and setters } + function GetIDValue: Integer; virtual; + procedure SetIDValue(const aValue: Integer); virtual; + function GetIDIsNull: Boolean; virtual; + procedure SetIDIsNull(const aValue: Boolean); virtual; + function GetID_ALBARANValue: Integer; virtual; + procedure SetID_ALBARANValue(const aValue: Integer); virtual; + function GetID_ALBARANIsNull: Boolean; virtual; + procedure SetID_ALBARANIsNull(const aValue: Boolean); virtual; + function GetPOSICIONValue: Integer; virtual; + procedure SetPOSICIONValue(const aValue: Integer); virtual; + function GetPOSICIONIsNull: Boolean; virtual; + procedure SetPOSICIONIsNull(const aValue: Boolean); virtual; + function GetTIPO_DETALLEValue: String; virtual; + procedure SetTIPO_DETALLEValue(const aValue: String); virtual; + function GetTIPO_DETALLEIsNull: Boolean; virtual; + procedure SetTIPO_DETALLEIsNull(const aValue: Boolean); virtual; + function GetCONCEPTOValue: String; virtual; + procedure SetCONCEPTOValue(const aValue: String); virtual; + function GetCONCEPTOIsNull: Boolean; virtual; + procedure SetCONCEPTOIsNull(const aValue: Boolean); virtual; + function GetCANTIDADValue: Integer; virtual; + procedure SetCANTIDADValue(const aValue: Integer); virtual; + function GetCANTIDADIsNull: Boolean; virtual; + procedure SetCANTIDADIsNull(const aValue: Boolean); virtual; + function GetIMPORTE_UNIDADValue: Currency; virtual; + procedure SetIMPORTE_UNIDADValue(const aValue: Currency); virtual; + function GetIMPORTE_UNIDADIsNull: Boolean; virtual; + procedure SetIMPORTE_UNIDADIsNull(const aValue: Boolean); virtual; + function GetIMPORTE_TOTALValue: Currency; virtual; + procedure SetIMPORTE_TOTALValue(const aValue: Currency); virtual; + function GetIMPORTE_TOTALIsNull: Boolean; virtual; + procedure SetIMPORTE_TOTALIsNull(const aValue: Boolean); virtual; + function GetVISIBLEValue: Integer; virtual; + procedure SetVISIBLEValue(const aValue: Integer); virtual; + function GetVISIBLEIsNull: Boolean; virtual; + procedure SetVISIBLEIsNull(const aValue: Boolean); virtual; + function GetID_ARTICULOValue: Integer; virtual; + procedure SetID_ARTICULOValue(const aValue: Integer); virtual; + function GetID_ARTICULOIsNull: Boolean; virtual; + procedure SetID_ARTICULOIsNull(const aValue: Boolean); virtual; + function GetDESCUENTOValue: Float; virtual; + procedure SetDESCUENTOValue(const aValue: Float); virtual; + function GetDESCUENTOIsNull: Boolean; virtual; + procedure SetDESCUENTOIsNull(const aValue: Boolean); virtual; + function GetIMPORTE_PORTEValue: Currency; virtual; + procedure SetIMPORTE_PORTEValue(const aValue: Currency); virtual; + function GetIMPORTE_PORTEIsNull: Boolean; virtual; + procedure SetIMPORTE_PORTEIsNull(const aValue: Boolean); virtual; + function GetREFERENCIAValue: String; virtual; + procedure SetREFERENCIAValue(const aValue: String); virtual; + function GetREFERENCIAIsNull: Boolean; virtual; + procedure SetREFERENCIAIsNull(const aValue: Boolean); virtual; + function GetREFERENCIA_PROVEEDORValue: String; virtual; + procedure SetREFERENCIA_PROVEEDORValue(const aValue: String); virtual; + function GetREFERENCIA_PROVEEDORIsNull: Boolean; virtual; + procedure SetREFERENCIA_PROVEEDORIsNull(const aValue: Boolean); virtual; + + { Properties } + property ID: Integer read GetIDValue write SetIDValue; + property IDIsNull: Boolean read GetIDIsNull write SetIDIsNull; + property ID_ALBARAN: Integer read GetID_ALBARANValue write SetID_ALBARANValue; + property ID_ALBARANIsNull: Boolean read GetID_ALBARANIsNull write SetID_ALBARANIsNull; + property POSICION: Integer read GetPOSICIONValue write SetPOSICIONValue; + property POSICIONIsNull: Boolean read GetPOSICIONIsNull write SetPOSICIONIsNull; + property TIPO_DETALLE: String read GetTIPO_DETALLEValue write SetTIPO_DETALLEValue; + property TIPO_DETALLEIsNull: Boolean read GetTIPO_DETALLEIsNull write SetTIPO_DETALLEIsNull; + property CONCEPTO: String read GetCONCEPTOValue write SetCONCEPTOValue; + property CONCEPTOIsNull: Boolean read GetCONCEPTOIsNull write SetCONCEPTOIsNull; + property CANTIDAD: Integer read GetCANTIDADValue write SetCANTIDADValue; + property CANTIDADIsNull: Boolean read GetCANTIDADIsNull write SetCANTIDADIsNull; + property IMPORTE_UNIDAD: Currency read GetIMPORTE_UNIDADValue write SetIMPORTE_UNIDADValue; + property IMPORTE_UNIDADIsNull: Boolean read GetIMPORTE_UNIDADIsNull write SetIMPORTE_UNIDADIsNull; + property IMPORTE_TOTAL: Currency read GetIMPORTE_TOTALValue write SetIMPORTE_TOTALValue; + property IMPORTE_TOTALIsNull: Boolean read GetIMPORTE_TOTALIsNull write SetIMPORTE_TOTALIsNull; + property VISIBLE: Integer read GetVISIBLEValue write SetVISIBLEValue; + property VISIBLEIsNull: Boolean read GetVISIBLEIsNull write SetVISIBLEIsNull; + property ID_ARTICULO: Integer read GetID_ARTICULOValue write SetID_ARTICULOValue; + property ID_ARTICULOIsNull: Boolean read GetID_ARTICULOIsNull write SetID_ARTICULOIsNull; + property DESCUENTO: Float read GetDESCUENTOValue write SetDESCUENTOValue; + property DESCUENTOIsNull: Boolean read GetDESCUENTOIsNull write SetDESCUENTOIsNull; + property IMPORTE_PORTE: Currency read GetIMPORTE_PORTEValue write SetIMPORTE_PORTEValue; + property IMPORTE_PORTEIsNull: Boolean read GetIMPORTE_PORTEIsNull write SetIMPORTE_PORTEIsNull; + property REFERENCIA: String read GetREFERENCIAValue write SetREFERENCIAValue; + property REFERENCIAIsNull: Boolean read GetREFERENCIAIsNull write SetREFERENCIAIsNull; + property REFERENCIA_PROVEEDOR: String read GetREFERENCIA_PROVEEDORValue write SetREFERENCIA_PROVEEDORValue; + property REFERENCIA_PROVEEDORIsNull: Boolean read GetREFERENCIA_PROVEEDORIsNull write SetREFERENCIA_PROVEEDORIsNull; + + public + constructor Create(aDataTable: TDADataTable); override; + destructor Destroy; override; + + end; + +implementation + +uses Variants, uROBinaryHelpers; + +{ 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; + +function TDarReferenciaDataTableRules.GetVALORIsNull: boolean; +begin + result := DataTable.Fields[idx_DarReferenciaVALOR].IsNull; +end; + +procedure TDarReferenciaDataTableRules.SetVALORIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_DarReferenciaVALOR].AsVariant := Null; +end; + + +{ TAlbaranesProveedorDataTableRules } +constructor TAlbaranesProveedorDataTableRules.Create(aDataTable: TDADataTable); +var + StrList: TStringList; +begin + inherited; + + StrList := TStringList.Create; + StrList.OnChange := OBSERVACIONES_OnChange; + f_OBSERVACIONES := NewROStrings(StrList,True); + + StrList := TStringList.Create; + StrList.OnChange := INCIDENCIAS_OnChange; + f_INCIDENCIAS := NewROStrings(StrList,True); +end; + +destructor TAlbaranesProveedorDataTableRules.Destroy; +begin + inherited; +end; + +procedure TAlbaranesProveedorDataTableRules.OBSERVACIONES_OnChange(Sender: TObject); +begin + if DataTable.Editing then DataTable.Fields[idx_AlbaranesProveedorOBSERVACIONES].AsVariant := TStringList(Sender).Text; +end; + +procedure TAlbaranesProveedorDataTableRules.INCIDENCIAS_OnChange(Sender: TObject); +begin + if DataTable.Editing then DataTable.Fields[idx_AlbaranesProveedorINCIDENCIAS].AsVariant := TStringList(Sender).Text; +end; + +function TAlbaranesProveedorDataTableRules.GetIDValue: Integer; +begin + result := DataTable.Fields[idx_AlbaranesProveedorID].AsInteger; +end; + +procedure TAlbaranesProveedorDataTableRules.SetIDValue(const aValue: Integer); +begin + DataTable.Fields[idx_AlbaranesProveedorID].AsInteger := aValue; +end; + +function TAlbaranesProveedorDataTableRules.GetIDIsNull: boolean; +begin + result := DataTable.Fields[idx_AlbaranesProveedorID].IsNull; +end; + +procedure TAlbaranesProveedorDataTableRules.SetIDIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_AlbaranesProveedorID].AsVariant := Null; +end; + +function TAlbaranesProveedorDataTableRules.GetID_EMPRESAValue: Integer; +begin + result := DataTable.Fields[idx_AlbaranesProveedorID_EMPRESA].AsInteger; +end; + +procedure TAlbaranesProveedorDataTableRules.SetID_EMPRESAValue(const aValue: Integer); +begin + DataTable.Fields[idx_AlbaranesProveedorID_EMPRESA].AsInteger := aValue; +end; + +function TAlbaranesProveedorDataTableRules.GetID_EMPRESAIsNull: boolean; +begin + result := DataTable.Fields[idx_AlbaranesProveedorID_EMPRESA].IsNull; +end; + +procedure TAlbaranesProveedorDataTableRules.SetID_EMPRESAIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_AlbaranesProveedorID_EMPRESA].AsVariant := Null; +end; + +function TAlbaranesProveedorDataTableRules.GetID_PROVEEDORValue: Integer; +begin + result := DataTable.Fields[idx_AlbaranesProveedorID_PROVEEDOR].AsInteger; +end; + +procedure TAlbaranesProveedorDataTableRules.SetID_PROVEEDORValue(const aValue: Integer); +begin + DataTable.Fields[idx_AlbaranesProveedorID_PROVEEDOR].AsInteger := aValue; +end; + +function TAlbaranesProveedorDataTableRules.GetID_PROVEEDORIsNull: boolean; +begin + result := DataTable.Fields[idx_AlbaranesProveedorID_PROVEEDOR].IsNull; +end; + +procedure TAlbaranesProveedorDataTableRules.SetID_PROVEEDORIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_AlbaranesProveedorID_PROVEEDOR].AsVariant := Null; +end; + +function TAlbaranesProveedorDataTableRules.GetNOMBREValue: String; +begin + result := DataTable.Fields[idx_AlbaranesProveedorNOMBRE].AsString; +end; + +procedure TAlbaranesProveedorDataTableRules.SetNOMBREValue(const aValue: String); +begin + DataTable.Fields[idx_AlbaranesProveedorNOMBRE].AsString := aValue; +end; + +function TAlbaranesProveedorDataTableRules.GetNOMBREIsNull: boolean; +begin + result := DataTable.Fields[idx_AlbaranesProveedorNOMBRE].IsNull; +end; + +procedure TAlbaranesProveedorDataTableRules.SetNOMBREIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_AlbaranesProveedorNOMBRE].AsVariant := Null; +end; + +function TAlbaranesProveedorDataTableRules.GetFECHA_ALBARANValue: DateTime; +begin + result := DataTable.Fields[idx_AlbaranesProveedorFECHA_ALBARAN].AsDateTime; +end; + +procedure TAlbaranesProveedorDataTableRules.SetFECHA_ALBARANValue(const aValue: DateTime); +begin + DataTable.Fields[idx_AlbaranesProveedorFECHA_ALBARAN].AsDateTime := aValue; +end; + +function TAlbaranesProveedorDataTableRules.GetFECHA_ALBARANIsNull: boolean; +begin + result := DataTable.Fields[idx_AlbaranesProveedorFECHA_ALBARAN].IsNull; +end; + +procedure TAlbaranesProveedorDataTableRules.SetFECHA_ALBARANIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_AlbaranesProveedorFECHA_ALBARAN].AsVariant := Null; +end; + +function TAlbaranesProveedorDataTableRules.GetREFERENCIAValue: String; +begin + result := DataTable.Fields[idx_AlbaranesProveedorREFERENCIA].AsString; +end; + +procedure TAlbaranesProveedorDataTableRules.SetREFERENCIAValue(const aValue: String); +begin + DataTable.Fields[idx_AlbaranesProveedorREFERENCIA].AsString := aValue; +end; + +function TAlbaranesProveedorDataTableRules.GetREFERENCIAIsNull: boolean; +begin + result := DataTable.Fields[idx_AlbaranesProveedorREFERENCIA].IsNull; +end; + +procedure TAlbaranesProveedorDataTableRules.SetREFERENCIAIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_AlbaranesProveedorREFERENCIA].AsVariant := Null; +end; + +function TAlbaranesProveedorDataTableRules.GetREFERENCIA_PROVEEDORValue: String; +begin + result := DataTable.Fields[idx_AlbaranesProveedorREFERENCIA_PROVEEDOR].AsString; +end; + +procedure TAlbaranesProveedorDataTableRules.SetREFERENCIA_PROVEEDORValue(const aValue: String); +begin + DataTable.Fields[idx_AlbaranesProveedorREFERENCIA_PROVEEDOR].AsString := aValue; +end; + +function TAlbaranesProveedorDataTableRules.GetREFERENCIA_PROVEEDORIsNull: boolean; +begin + result := DataTable.Fields[idx_AlbaranesProveedorREFERENCIA_PROVEEDOR].IsNull; +end; + +procedure TAlbaranesProveedorDataTableRules.SetREFERENCIA_PROVEEDORIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_AlbaranesProveedorREFERENCIA_PROVEEDOR].AsVariant := Null; +end; + +function TAlbaranesProveedorDataTableRules.GetTIPOValue: String; +begin + result := DataTable.Fields[idx_AlbaranesProveedorTIPO].AsString; +end; + +procedure TAlbaranesProveedorDataTableRules.SetTIPOValue(const aValue: String); +begin + DataTable.Fields[idx_AlbaranesProveedorTIPO].AsString := aValue; +end; + +function TAlbaranesProveedorDataTableRules.GetTIPOIsNull: boolean; +begin + result := DataTable.Fields[idx_AlbaranesProveedorTIPO].IsNull; +end; + +procedure TAlbaranesProveedorDataTableRules.SetTIPOIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_AlbaranesProveedorTIPO].AsVariant := Null; +end; + +function TAlbaranesProveedorDataTableRules.GetID_ALMACENValue: Integer; +begin + result := DataTable.Fields[idx_AlbaranesProveedorID_ALMACEN].AsInteger; +end; + +procedure TAlbaranesProveedorDataTableRules.SetID_ALMACENValue(const aValue: Integer); +begin + DataTable.Fields[idx_AlbaranesProveedorID_ALMACEN].AsInteger := aValue; +end; + +function TAlbaranesProveedorDataTableRules.GetID_ALMACENIsNull: boolean; +begin + result := DataTable.Fields[idx_AlbaranesProveedorID_ALMACEN].IsNull; +end; + +procedure TAlbaranesProveedorDataTableRules.SetID_ALMACENIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_AlbaranesProveedorID_ALMACEN].AsVariant := Null; +end; + +function TAlbaranesProveedorDataTableRules.GetNOMBRE_ALMACENValue: String; +begin + result := DataTable.Fields[idx_AlbaranesProveedorNOMBRE_ALMACEN].AsString; +end; + +procedure TAlbaranesProveedorDataTableRules.SetNOMBRE_ALMACENValue(const aValue: String); +begin + DataTable.Fields[idx_AlbaranesProveedorNOMBRE_ALMACEN].AsString := aValue; +end; + +function TAlbaranesProveedorDataTableRules.GetNOMBRE_ALMACENIsNull: boolean; +begin + result := DataTable.Fields[idx_AlbaranesProveedorNOMBRE_ALMACEN].IsNull; +end; + +procedure TAlbaranesProveedorDataTableRules.SetNOMBRE_ALMACENIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_AlbaranesProveedorNOMBRE_ALMACEN].AsVariant := Null; +end; + +function TAlbaranesProveedorDataTableRules.GetID_PEDIDOValue: Integer; +begin + result := DataTable.Fields[idx_AlbaranesProveedorID_PEDIDO].AsInteger; +end; + +procedure TAlbaranesProveedorDataTableRules.SetID_PEDIDOValue(const aValue: Integer); +begin + DataTable.Fields[idx_AlbaranesProveedorID_PEDIDO].AsInteger := aValue; +end; + +function TAlbaranesProveedorDataTableRules.GetID_PEDIDOIsNull: boolean; +begin + result := DataTable.Fields[idx_AlbaranesProveedorID_PEDIDO].IsNull; +end; + +procedure TAlbaranesProveedorDataTableRules.SetID_PEDIDOIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_AlbaranesProveedorID_PEDIDO].AsVariant := Null; +end; + +function TAlbaranesProveedorDataTableRules.GetREF_PED_PROVEEDORValue: String; +begin + result := DataTable.Fields[idx_AlbaranesProveedorREF_PED_PROVEEDOR].AsString; +end; + +procedure TAlbaranesProveedorDataTableRules.SetREF_PED_PROVEEDORValue(const aValue: String); +begin + DataTable.Fields[idx_AlbaranesProveedorREF_PED_PROVEEDOR].AsString := aValue; +end; + +function TAlbaranesProveedorDataTableRules.GetREF_PED_PROVEEDORIsNull: boolean; +begin + result := DataTable.Fields[idx_AlbaranesProveedorREF_PED_PROVEEDOR].IsNull; +end; + +procedure TAlbaranesProveedorDataTableRules.SetREF_PED_PROVEEDORIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_AlbaranesProveedorREF_PED_PROVEEDOR].AsVariant := Null; +end; + +function TAlbaranesProveedorDataTableRules.GetID_FACTURAValue: Integer; +begin + result := DataTable.Fields[idx_AlbaranesProveedorID_FACTURA].AsInteger; +end; + +procedure TAlbaranesProveedorDataTableRules.SetID_FACTURAValue(const aValue: Integer); +begin + DataTable.Fields[idx_AlbaranesProveedorID_FACTURA].AsInteger := aValue; +end; + +function TAlbaranesProveedorDataTableRules.GetID_FACTURAIsNull: boolean; +begin + result := DataTable.Fields[idx_AlbaranesProveedorID_FACTURA].IsNull; +end; + +procedure TAlbaranesProveedorDataTableRules.SetID_FACTURAIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_AlbaranesProveedorID_FACTURA].AsVariant := Null; +end; + +function TAlbaranesProveedorDataTableRules.GetREF_FACTURAValue: String; +begin + result := DataTable.Fields[idx_AlbaranesProveedorREF_FACTURA].AsString; +end; + +procedure TAlbaranesProveedorDataTableRules.SetREF_FACTURAValue(const aValue: String); +begin + DataTable.Fields[idx_AlbaranesProveedorREF_FACTURA].AsString := aValue; +end; + +function TAlbaranesProveedorDataTableRules.GetREF_FACTURAIsNull: boolean; +begin + result := DataTable.Fields[idx_AlbaranesProveedorREF_FACTURA].IsNull; +end; + +procedure TAlbaranesProveedorDataTableRules.SetREF_FACTURAIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_AlbaranesProveedorREF_FACTURA].AsVariant := Null; +end; + +function TAlbaranesProveedorDataTableRules.GetREF_FACTURA_PROVValue: String; +begin + result := DataTable.Fields[idx_AlbaranesProveedorREF_FACTURA_PROV].AsString; +end; + +procedure TAlbaranesProveedorDataTableRules.SetREF_FACTURA_PROVValue(const aValue: String); +begin + DataTable.Fields[idx_AlbaranesProveedorREF_FACTURA_PROV].AsString := aValue; +end; + +function TAlbaranesProveedorDataTableRules.GetREF_FACTURA_PROVIsNull: boolean; +begin + result := DataTable.Fields[idx_AlbaranesProveedorREF_FACTURA_PROV].IsNull; +end; + +procedure TAlbaranesProveedorDataTableRules.SetREF_FACTURA_PROVIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_AlbaranesProveedorREF_FACTURA_PROV].AsVariant := Null; +end; + +function TAlbaranesProveedorDataTableRules.GetCALLEValue: String; +begin + result := DataTable.Fields[idx_AlbaranesProveedorCALLE].AsString; +end; + +procedure TAlbaranesProveedorDataTableRules.SetCALLEValue(const aValue: String); +begin + DataTable.Fields[idx_AlbaranesProveedorCALLE].AsString := aValue; +end; + +function TAlbaranesProveedorDataTableRules.GetCALLEIsNull: boolean; +begin + result := DataTable.Fields[idx_AlbaranesProveedorCALLE].IsNull; +end; + +procedure TAlbaranesProveedorDataTableRules.SetCALLEIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_AlbaranesProveedorCALLE].AsVariant := Null; +end; + +function TAlbaranesProveedorDataTableRules.GetCODIGO_POSTALValue: String; +begin + result := DataTable.Fields[idx_AlbaranesProveedorCODIGO_POSTAL].AsString; +end; + +procedure TAlbaranesProveedorDataTableRules.SetCODIGO_POSTALValue(const aValue: String); +begin + DataTable.Fields[idx_AlbaranesProveedorCODIGO_POSTAL].AsString := aValue; +end; + +function TAlbaranesProveedorDataTableRules.GetCODIGO_POSTALIsNull: boolean; +begin + result := DataTable.Fields[idx_AlbaranesProveedorCODIGO_POSTAL].IsNull; +end; + +procedure TAlbaranesProveedorDataTableRules.SetCODIGO_POSTALIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_AlbaranesProveedorCODIGO_POSTAL].AsVariant := Null; +end; + +function TAlbaranesProveedorDataTableRules.GetPOBLACIONValue: String; +begin + result := DataTable.Fields[idx_AlbaranesProveedorPOBLACION].AsString; +end; + +procedure TAlbaranesProveedorDataTableRules.SetPOBLACIONValue(const aValue: String); +begin + DataTable.Fields[idx_AlbaranesProveedorPOBLACION].AsString := aValue; +end; + +function TAlbaranesProveedorDataTableRules.GetPOBLACIONIsNull: boolean; +begin + result := DataTable.Fields[idx_AlbaranesProveedorPOBLACION].IsNull; +end; + +procedure TAlbaranesProveedorDataTableRules.SetPOBLACIONIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_AlbaranesProveedorPOBLACION].AsVariant := Null; +end; + +function TAlbaranesProveedorDataTableRules.GetPROVINCIAValue: String; +begin + result := DataTable.Fields[idx_AlbaranesProveedorPROVINCIA].AsString; +end; + +procedure TAlbaranesProveedorDataTableRules.SetPROVINCIAValue(const aValue: String); +begin + DataTable.Fields[idx_AlbaranesProveedorPROVINCIA].AsString := aValue; +end; + +function TAlbaranesProveedorDataTableRules.GetPROVINCIAIsNull: boolean; +begin + result := DataTable.Fields[idx_AlbaranesProveedorPROVINCIA].IsNull; +end; + +procedure TAlbaranesProveedorDataTableRules.SetPROVINCIAIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_AlbaranesProveedorPROVINCIA].AsVariant := Null; +end; + +function TAlbaranesProveedorDataTableRules.GetPERSONA_CONTACTOValue: String; +begin + result := DataTable.Fields[idx_AlbaranesProveedorPERSONA_CONTACTO].AsString; +end; + +procedure TAlbaranesProveedorDataTableRules.SetPERSONA_CONTACTOValue(const aValue: String); +begin + DataTable.Fields[idx_AlbaranesProveedorPERSONA_CONTACTO].AsString := aValue; +end; + +function TAlbaranesProveedorDataTableRules.GetPERSONA_CONTACTOIsNull: boolean; +begin + result := DataTable.Fields[idx_AlbaranesProveedorPERSONA_CONTACTO].IsNull; +end; + +procedure TAlbaranesProveedorDataTableRules.SetPERSONA_CONTACTOIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_AlbaranesProveedorPERSONA_CONTACTO].AsVariant := Null; +end; + +function TAlbaranesProveedorDataTableRules.GetTELEFONOValue: String; +begin + result := DataTable.Fields[idx_AlbaranesProveedorTELEFONO].AsString; +end; + +procedure TAlbaranesProveedorDataTableRules.SetTELEFONOValue(const aValue: String); +begin + DataTable.Fields[idx_AlbaranesProveedorTELEFONO].AsString := aValue; +end; + +function TAlbaranesProveedorDataTableRules.GetTELEFONOIsNull: boolean; +begin + result := DataTable.Fields[idx_AlbaranesProveedorTELEFONO].IsNull; +end; + +procedure TAlbaranesProveedorDataTableRules.SetTELEFONOIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_AlbaranesProveedorTELEFONO].AsVariant := Null; +end; + +function TAlbaranesProveedorDataTableRules.GetIMPORTE_NETOValue: Currency; +begin + result := DataTable.Fields[idx_AlbaranesProveedorIMPORTE_NETO].AsCurrency; +end; + +procedure TAlbaranesProveedorDataTableRules.SetIMPORTE_NETOValue(const aValue: Currency); +begin + DataTable.Fields[idx_AlbaranesProveedorIMPORTE_NETO].AsCurrency := aValue; +end; + +function TAlbaranesProveedorDataTableRules.GetIMPORTE_NETOIsNull: boolean; +begin + result := DataTable.Fields[idx_AlbaranesProveedorIMPORTE_NETO].IsNull; +end; + +procedure TAlbaranesProveedorDataTableRules.SetIMPORTE_NETOIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_AlbaranesProveedorIMPORTE_NETO].AsVariant := Null; +end; + +function TAlbaranesProveedorDataTableRules.GetIMPORTE_PORTEValue: Currency; +begin + result := DataTable.Fields[idx_AlbaranesProveedorIMPORTE_PORTE].AsCurrency; +end; + +procedure TAlbaranesProveedorDataTableRules.SetIMPORTE_PORTEValue(const aValue: Currency); +begin + DataTable.Fields[idx_AlbaranesProveedorIMPORTE_PORTE].AsCurrency := aValue; +end; + +function TAlbaranesProveedorDataTableRules.GetIMPORTE_PORTEIsNull: boolean; +begin + result := DataTable.Fields[idx_AlbaranesProveedorIMPORTE_PORTE].IsNull; +end; + +procedure TAlbaranesProveedorDataTableRules.SetIMPORTE_PORTEIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_AlbaranesProveedorIMPORTE_PORTE].AsVariant := Null; +end; + +function TAlbaranesProveedorDataTableRules.GetDESCUENTOValue: Float; +begin + result := DataTable.Fields[idx_AlbaranesProveedorDESCUENTO].AsFloat; +end; + +procedure TAlbaranesProveedorDataTableRules.SetDESCUENTOValue(const aValue: Float); +begin + DataTable.Fields[idx_AlbaranesProveedorDESCUENTO].AsFloat := aValue; +end; + +function TAlbaranesProveedorDataTableRules.GetDESCUENTOIsNull: boolean; +begin + result := DataTable.Fields[idx_AlbaranesProveedorDESCUENTO].IsNull; +end; + +procedure TAlbaranesProveedorDataTableRules.SetDESCUENTOIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_AlbaranesProveedorDESCUENTO].AsVariant := Null; +end; + +function TAlbaranesProveedorDataTableRules.GetIMPORTE_DESCUENTOValue: Currency; +begin + result := DataTable.Fields[idx_AlbaranesProveedorIMPORTE_DESCUENTO].AsCurrency; +end; + +procedure TAlbaranesProveedorDataTableRules.SetIMPORTE_DESCUENTOValue(const aValue: Currency); +begin + DataTable.Fields[idx_AlbaranesProveedorIMPORTE_DESCUENTO].AsCurrency := aValue; +end; + +function TAlbaranesProveedorDataTableRules.GetIMPORTE_DESCUENTOIsNull: boolean; +begin + result := DataTable.Fields[idx_AlbaranesProveedorIMPORTE_DESCUENTO].IsNull; +end; + +procedure TAlbaranesProveedorDataTableRules.SetIMPORTE_DESCUENTOIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_AlbaranesProveedorIMPORTE_DESCUENTO].AsVariant := Null; +end; + +function TAlbaranesProveedorDataTableRules.GetBASE_IMPONIBLEValue: Currency; +begin + result := DataTable.Fields[idx_AlbaranesProveedorBASE_IMPONIBLE].AsCurrency; +end; + +procedure TAlbaranesProveedorDataTableRules.SetBASE_IMPONIBLEValue(const aValue: Currency); +begin + DataTable.Fields[idx_AlbaranesProveedorBASE_IMPONIBLE].AsCurrency := aValue; +end; + +function TAlbaranesProveedorDataTableRules.GetBASE_IMPONIBLEIsNull: boolean; +begin + result := DataTable.Fields[idx_AlbaranesProveedorBASE_IMPONIBLE].IsNull; +end; + +procedure TAlbaranesProveedorDataTableRules.SetBASE_IMPONIBLEIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_AlbaranesProveedorBASE_IMPONIBLE].AsVariant := Null; +end; + +function TAlbaranesProveedorDataTableRules.GetIVAValue: Float; +begin + result := DataTable.Fields[idx_AlbaranesProveedorIVA].AsFloat; +end; + +procedure TAlbaranesProveedorDataTableRules.SetIVAValue(const aValue: Float); +begin + DataTable.Fields[idx_AlbaranesProveedorIVA].AsFloat := aValue; +end; + +function TAlbaranesProveedorDataTableRules.GetIVAIsNull: boolean; +begin + result := DataTable.Fields[idx_AlbaranesProveedorIVA].IsNull; +end; + +procedure TAlbaranesProveedorDataTableRules.SetIVAIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_AlbaranesProveedorIVA].AsVariant := Null; +end; + +function TAlbaranesProveedorDataTableRules.GetIMPORTE_IVAValue: Currency; +begin + result := DataTable.Fields[idx_AlbaranesProveedorIMPORTE_IVA].AsCurrency; +end; + +procedure TAlbaranesProveedorDataTableRules.SetIMPORTE_IVAValue(const aValue: Currency); +begin + DataTable.Fields[idx_AlbaranesProveedorIMPORTE_IVA].AsCurrency := aValue; +end; + +function TAlbaranesProveedorDataTableRules.GetIMPORTE_IVAIsNull: boolean; +begin + result := DataTable.Fields[idx_AlbaranesProveedorIMPORTE_IVA].IsNull; +end; + +procedure TAlbaranesProveedorDataTableRules.SetIMPORTE_IVAIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_AlbaranesProveedorIMPORTE_IVA].AsVariant := Null; +end; + +function TAlbaranesProveedorDataTableRules.GetIMPORTE_TOTALValue: Currency; +begin + result := DataTable.Fields[idx_AlbaranesProveedorIMPORTE_TOTAL].AsCurrency; +end; + +procedure TAlbaranesProveedorDataTableRules.SetIMPORTE_TOTALValue(const aValue: Currency); +begin + DataTable.Fields[idx_AlbaranesProveedorIMPORTE_TOTAL].AsCurrency := aValue; +end; + +function TAlbaranesProveedorDataTableRules.GetIMPORTE_TOTALIsNull: boolean; +begin + result := DataTable.Fields[idx_AlbaranesProveedorIMPORTE_TOTAL].IsNull; +end; + +procedure TAlbaranesProveedorDataTableRules.SetIMPORTE_TOTALIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_AlbaranesProveedorIMPORTE_TOTAL].AsVariant := Null; +end; + +function TAlbaranesProveedorDataTableRules.GetOBSERVACIONESValue: IROStrings; +begin + result := f_OBSERVACIONES; + result.Text := DataTable.Fields[idx_AlbaranesProveedorOBSERVACIONES].AsString; +end; + +function TAlbaranesProveedorDataTableRules.GetOBSERVACIONESIsNull: boolean; +begin + result := DataTable.Fields[idx_AlbaranesProveedorOBSERVACIONES].IsNull; +end; + +procedure TAlbaranesProveedorDataTableRules.SetOBSERVACIONESIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_AlbaranesProveedorOBSERVACIONES].AsVariant := Null; +end; + +function TAlbaranesProveedorDataTableRules.GetINCIDENCIASValue: IROStrings; +begin + result := f_INCIDENCIAS; + result.Text := DataTable.Fields[idx_AlbaranesProveedorINCIDENCIAS].AsString; +end; + +function TAlbaranesProveedorDataTableRules.GetINCIDENCIASIsNull: boolean; +begin + result := DataTable.Fields[idx_AlbaranesProveedorINCIDENCIAS].IsNull; +end; + +procedure TAlbaranesProveedorDataTableRules.SetINCIDENCIASIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_AlbaranesProveedorINCIDENCIAS].AsVariant := Null; +end; + +function TAlbaranesProveedorDataTableRules.GetINCIDENCIAS_ACTIVASValue: Integer; +begin + result := DataTable.Fields[idx_AlbaranesProveedorINCIDENCIAS_ACTIVAS].AsInteger; +end; + +procedure TAlbaranesProveedorDataTableRules.SetINCIDENCIAS_ACTIVASValue(const aValue: Integer); +begin + DataTable.Fields[idx_AlbaranesProveedorINCIDENCIAS_ACTIVAS].AsInteger := aValue; +end; + +function TAlbaranesProveedorDataTableRules.GetINCIDENCIAS_ACTIVASIsNull: boolean; +begin + result := DataTable.Fields[idx_AlbaranesProveedorINCIDENCIAS_ACTIVAS].IsNull; +end; + +procedure TAlbaranesProveedorDataTableRules.SetINCIDENCIAS_ACTIVASIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_AlbaranesProveedorINCIDENCIAS_ACTIVAS].AsVariant := Null; +end; + +function TAlbaranesProveedorDataTableRules.GetFECHA_ALTAValue: DateTime; +begin + result := DataTable.Fields[idx_AlbaranesProveedorFECHA_ALTA].AsDateTime; +end; + +procedure TAlbaranesProveedorDataTableRules.SetFECHA_ALTAValue(const aValue: DateTime); +begin + DataTable.Fields[idx_AlbaranesProveedorFECHA_ALTA].AsDateTime := aValue; +end; + +function TAlbaranesProveedorDataTableRules.GetFECHA_ALTAIsNull: boolean; +begin + result := DataTable.Fields[idx_AlbaranesProveedorFECHA_ALTA].IsNull; +end; + +procedure TAlbaranesProveedorDataTableRules.SetFECHA_ALTAIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_AlbaranesProveedorFECHA_ALTA].AsVariant := Null; +end; + +function TAlbaranesProveedorDataTableRules.GetFECHA_MODIFICACIONValue: DateTime; +begin + result := DataTable.Fields[idx_AlbaranesProveedorFECHA_MODIFICACION].AsDateTime; +end; + +procedure TAlbaranesProveedorDataTableRules.SetFECHA_MODIFICACIONValue(const aValue: DateTime); +begin + DataTable.Fields[idx_AlbaranesProveedorFECHA_MODIFICACION].AsDateTime := aValue; +end; + +function TAlbaranesProveedorDataTableRules.GetFECHA_MODIFICACIONIsNull: boolean; +begin + result := DataTable.Fields[idx_AlbaranesProveedorFECHA_MODIFICACION].IsNull; +end; + +procedure TAlbaranesProveedorDataTableRules.SetFECHA_MODIFICACIONIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_AlbaranesProveedorFECHA_MODIFICACION].AsVariant := Null; +end; + +function TAlbaranesProveedorDataTableRules.GetUSUARIOValue: String; +begin + result := DataTable.Fields[idx_AlbaranesProveedorUSUARIO].AsString; +end; + +procedure TAlbaranesProveedorDataTableRules.SetUSUARIOValue(const aValue: String); +begin + DataTable.Fields[idx_AlbaranesProveedorUSUARIO].AsString := aValue; +end; + +function TAlbaranesProveedorDataTableRules.GetUSUARIOIsNull: boolean; +begin + result := DataTable.Fields[idx_AlbaranesProveedorUSUARIO].IsNull; +end; + +procedure TAlbaranesProveedorDataTableRules.SetUSUARIOIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_AlbaranesProveedorUSUARIO].AsVariant := Null; +end; + +function TAlbaranesProveedorDataTableRules.GetID_FORMA_PAGOValue: Integer; +begin + result := DataTable.Fields[idx_AlbaranesProveedorID_FORMA_PAGO].AsInteger; +end; + +procedure TAlbaranesProveedorDataTableRules.SetID_FORMA_PAGOValue(const aValue: Integer); +begin + DataTable.Fields[idx_AlbaranesProveedorID_FORMA_PAGO].AsInteger := aValue; +end; + +function TAlbaranesProveedorDataTableRules.GetID_FORMA_PAGOIsNull: boolean; +begin + result := DataTable.Fields[idx_AlbaranesProveedorID_FORMA_PAGO].IsNull; +end; + +procedure TAlbaranesProveedorDataTableRules.SetID_FORMA_PAGOIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_AlbaranesProveedorID_FORMA_PAGO].AsVariant := Null; +end; + + +{ TAlbaranesProveedor_DetallesDataTableRules } +constructor TAlbaranesProveedor_DetallesDataTableRules.Create(aDataTable: TDADataTable); +begin + inherited; +end; + +destructor TAlbaranesProveedor_DetallesDataTableRules.Destroy; +begin + inherited; +end; + +function TAlbaranesProveedor_DetallesDataTableRules.GetIDValue: Integer; +begin + result := DataTable.Fields[idx_AlbaranesProveedor_DetallesID].AsInteger; +end; + +procedure TAlbaranesProveedor_DetallesDataTableRules.SetIDValue(const aValue: Integer); +begin + DataTable.Fields[idx_AlbaranesProveedor_DetallesID].AsInteger := aValue; +end; + +function TAlbaranesProveedor_DetallesDataTableRules.GetIDIsNull: boolean; +begin + result := DataTable.Fields[idx_AlbaranesProveedor_DetallesID].IsNull; +end; + +procedure TAlbaranesProveedor_DetallesDataTableRules.SetIDIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_AlbaranesProveedor_DetallesID].AsVariant := Null; +end; + +function TAlbaranesProveedor_DetallesDataTableRules.GetID_ALBARANValue: Integer; +begin + result := DataTable.Fields[idx_AlbaranesProveedor_DetallesID_ALBARAN].AsInteger; +end; + +procedure TAlbaranesProveedor_DetallesDataTableRules.SetID_ALBARANValue(const aValue: Integer); +begin + DataTable.Fields[idx_AlbaranesProveedor_DetallesID_ALBARAN].AsInteger := aValue; +end; + +function TAlbaranesProveedor_DetallesDataTableRules.GetID_ALBARANIsNull: boolean; +begin + result := DataTable.Fields[idx_AlbaranesProveedor_DetallesID_ALBARAN].IsNull; +end; + +procedure TAlbaranesProveedor_DetallesDataTableRules.SetID_ALBARANIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_AlbaranesProveedor_DetallesID_ALBARAN].AsVariant := Null; +end; + +function TAlbaranesProveedor_DetallesDataTableRules.GetPOSICIONValue: Integer; +begin + result := DataTable.Fields[idx_AlbaranesProveedor_DetallesPOSICION].AsInteger; +end; + +procedure TAlbaranesProveedor_DetallesDataTableRules.SetPOSICIONValue(const aValue: Integer); +begin + DataTable.Fields[idx_AlbaranesProveedor_DetallesPOSICION].AsInteger := aValue; +end; + +function TAlbaranesProveedor_DetallesDataTableRules.GetPOSICIONIsNull: boolean; +begin + result := DataTable.Fields[idx_AlbaranesProveedor_DetallesPOSICION].IsNull; +end; + +procedure TAlbaranesProveedor_DetallesDataTableRules.SetPOSICIONIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_AlbaranesProveedor_DetallesPOSICION].AsVariant := Null; +end; + +function TAlbaranesProveedor_DetallesDataTableRules.GetTIPO_DETALLEValue: String; +begin + result := DataTable.Fields[idx_AlbaranesProveedor_DetallesTIPO_DETALLE].AsString; +end; + +procedure TAlbaranesProveedor_DetallesDataTableRules.SetTIPO_DETALLEValue(const aValue: String); +begin + DataTable.Fields[idx_AlbaranesProveedor_DetallesTIPO_DETALLE].AsString := aValue; +end; + +function TAlbaranesProveedor_DetallesDataTableRules.GetTIPO_DETALLEIsNull: boolean; +begin + result := DataTable.Fields[idx_AlbaranesProveedor_DetallesTIPO_DETALLE].IsNull; +end; + +procedure TAlbaranesProveedor_DetallesDataTableRules.SetTIPO_DETALLEIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_AlbaranesProveedor_DetallesTIPO_DETALLE].AsVariant := Null; +end; + +function TAlbaranesProveedor_DetallesDataTableRules.GetCONCEPTOValue: String; +begin + result := DataTable.Fields[idx_AlbaranesProveedor_DetallesCONCEPTO].AsString; +end; + +procedure TAlbaranesProveedor_DetallesDataTableRules.SetCONCEPTOValue(const aValue: String); +begin + DataTable.Fields[idx_AlbaranesProveedor_DetallesCONCEPTO].AsString := aValue; +end; + +function TAlbaranesProveedor_DetallesDataTableRules.GetCONCEPTOIsNull: boolean; +begin + result := DataTable.Fields[idx_AlbaranesProveedor_DetallesCONCEPTO].IsNull; +end; + +procedure TAlbaranesProveedor_DetallesDataTableRules.SetCONCEPTOIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_AlbaranesProveedor_DetallesCONCEPTO].AsVariant := Null; +end; + +function TAlbaranesProveedor_DetallesDataTableRules.GetCANTIDADValue: 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.GetCANTIDADIsNull: boolean; +begin + result := DataTable.Fields[idx_AlbaranesProveedor_DetallesCANTIDAD].IsNull; +end; + +procedure TAlbaranesProveedor_DetallesDataTableRules.SetCANTIDADIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_AlbaranesProveedor_DetallesCANTIDAD].AsVariant := Null; +end; + +function TAlbaranesProveedor_DetallesDataTableRules.GetIMPORTE_UNIDADValue: Currency; +begin + result := DataTable.Fields[idx_AlbaranesProveedor_DetallesIMPORTE_UNIDAD].AsCurrency; +end; + +procedure TAlbaranesProveedor_DetallesDataTableRules.SetIMPORTE_UNIDADValue(const aValue: Currency); +begin + DataTable.Fields[idx_AlbaranesProveedor_DetallesIMPORTE_UNIDAD].AsCurrency := aValue; +end; + +function TAlbaranesProveedor_DetallesDataTableRules.GetIMPORTE_UNIDADIsNull: boolean; +begin + result := DataTable.Fields[idx_AlbaranesProveedor_DetallesIMPORTE_UNIDAD].IsNull; +end; + +procedure TAlbaranesProveedor_DetallesDataTableRules.SetIMPORTE_UNIDADIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_AlbaranesProveedor_DetallesIMPORTE_UNIDAD].AsVariant := Null; +end; + +function TAlbaranesProveedor_DetallesDataTableRules.GetIMPORTE_TOTALValue: Currency; +begin + result := DataTable.Fields[idx_AlbaranesProveedor_DetallesIMPORTE_TOTAL].AsCurrency; +end; + +procedure TAlbaranesProveedor_DetallesDataTableRules.SetIMPORTE_TOTALValue(const aValue: Currency); +begin + DataTable.Fields[idx_AlbaranesProveedor_DetallesIMPORTE_TOTAL].AsCurrency := aValue; +end; + +function TAlbaranesProveedor_DetallesDataTableRules.GetIMPORTE_TOTALIsNull: boolean; +begin + result := DataTable.Fields[idx_AlbaranesProveedor_DetallesIMPORTE_TOTAL].IsNull; +end; + +procedure TAlbaranesProveedor_DetallesDataTableRules.SetIMPORTE_TOTALIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_AlbaranesProveedor_DetallesIMPORTE_TOTAL].AsVariant := Null; +end; + +function TAlbaranesProveedor_DetallesDataTableRules.GetVISIBLEValue: Integer; +begin + result := DataTable.Fields[idx_AlbaranesProveedor_DetallesVISIBLE].AsInteger; +end; + +procedure TAlbaranesProveedor_DetallesDataTableRules.SetVISIBLEValue(const aValue: Integer); +begin + DataTable.Fields[idx_AlbaranesProveedor_DetallesVISIBLE].AsInteger := aValue; +end; + +function TAlbaranesProveedor_DetallesDataTableRules.GetVISIBLEIsNull: boolean; +begin + result := DataTable.Fields[idx_AlbaranesProveedor_DetallesVISIBLE].IsNull; +end; + +procedure TAlbaranesProveedor_DetallesDataTableRules.SetVISIBLEIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_AlbaranesProveedor_DetallesVISIBLE].AsVariant := Null; +end; + +function TAlbaranesProveedor_DetallesDataTableRules.GetID_ARTICULOValue: Integer; +begin + result := DataTable.Fields[idx_AlbaranesProveedor_DetallesID_ARTICULO].AsInteger; +end; + +procedure TAlbaranesProveedor_DetallesDataTableRules.SetID_ARTICULOValue(const aValue: Integer); +begin + DataTable.Fields[idx_AlbaranesProveedor_DetallesID_ARTICULO].AsInteger := aValue; +end; + +function TAlbaranesProveedor_DetallesDataTableRules.GetID_ARTICULOIsNull: boolean; +begin + result := DataTable.Fields[idx_AlbaranesProveedor_DetallesID_ARTICULO].IsNull; +end; + +procedure TAlbaranesProveedor_DetallesDataTableRules.SetID_ARTICULOIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_AlbaranesProveedor_DetallesID_ARTICULO].AsVariant := Null; +end; + +function TAlbaranesProveedor_DetallesDataTableRules.GetDESCUENTOValue: Float; +begin + result := DataTable.Fields[idx_AlbaranesProveedor_DetallesDESCUENTO].AsFloat; +end; + +procedure TAlbaranesProveedor_DetallesDataTableRules.SetDESCUENTOValue(const aValue: Float); +begin + DataTable.Fields[idx_AlbaranesProveedor_DetallesDESCUENTO].AsFloat := aValue; +end; + +function TAlbaranesProveedor_DetallesDataTableRules.GetDESCUENTOIsNull: boolean; +begin + result := DataTable.Fields[idx_AlbaranesProveedor_DetallesDESCUENTO].IsNull; +end; + +procedure TAlbaranesProveedor_DetallesDataTableRules.SetDESCUENTOIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_AlbaranesProveedor_DetallesDESCUENTO].AsVariant := Null; +end; + +function TAlbaranesProveedor_DetallesDataTableRules.GetIMPORTE_PORTEValue: Currency; +begin + result := DataTable.Fields[idx_AlbaranesProveedor_DetallesIMPORTE_PORTE].AsCurrency; +end; + +procedure TAlbaranesProveedor_DetallesDataTableRules.SetIMPORTE_PORTEValue(const aValue: Currency); +begin + DataTable.Fields[idx_AlbaranesProveedor_DetallesIMPORTE_PORTE].AsCurrency := aValue; +end; + +function TAlbaranesProveedor_DetallesDataTableRules.GetIMPORTE_PORTEIsNull: boolean; +begin + result := DataTable.Fields[idx_AlbaranesProveedor_DetallesIMPORTE_PORTE].IsNull; +end; + +procedure TAlbaranesProveedor_DetallesDataTableRules.SetIMPORTE_PORTEIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_AlbaranesProveedor_DetallesIMPORTE_PORTE].AsVariant := Null; +end; + +function TAlbaranesProveedor_DetallesDataTableRules.GetREFERENCIAValue: String; +begin + result := DataTable.Fields[idx_AlbaranesProveedor_DetallesREFERENCIA].AsString; +end; + +procedure TAlbaranesProveedor_DetallesDataTableRules.SetREFERENCIAValue(const aValue: String); +begin + DataTable.Fields[idx_AlbaranesProveedor_DetallesREFERENCIA].AsString := aValue; +end; + +function TAlbaranesProveedor_DetallesDataTableRules.GetREFERENCIAIsNull: boolean; +begin + result := DataTable.Fields[idx_AlbaranesProveedor_DetallesREFERENCIA].IsNull; +end; + +procedure TAlbaranesProveedor_DetallesDataTableRules.SetREFERENCIAIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_AlbaranesProveedor_DetallesREFERENCIA].AsVariant := Null; +end; + +function TAlbaranesProveedor_DetallesDataTableRules.GetREFERENCIA_PROVEEDORValue: String; +begin + result := DataTable.Fields[idx_AlbaranesProveedor_DetallesREFERENCIA_PROVEEDOR].AsString; +end; + +procedure TAlbaranesProveedor_DetallesDataTableRules.SetREFERENCIA_PROVEEDORValue(const aValue: String); +begin + DataTable.Fields[idx_AlbaranesProveedor_DetallesREFERENCIA_PROVEEDOR].AsString := aValue; +end; + +function TAlbaranesProveedor_DetallesDataTableRules.GetREFERENCIA_PROVEEDORIsNull: boolean; +begin + result := DataTable.Fields[idx_AlbaranesProveedor_DetallesREFERENCIA_PROVEEDOR].IsNull; +end; + +procedure TAlbaranesProveedor_DetallesDataTableRules.SetREFERENCIA_PROVEEDORIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_AlbaranesProveedor_DetallesREFERENCIA_PROVEEDOR].AsVariant := Null; +end; + + +initialization + RegisterDataTableRules(RID_DarReferencia, TDarReferenciaDataTableRules); + RegisterDataTableRules(RID_AlbaranesProveedor, TAlbaranesProveedorDataTableRules); + RegisterDataTableRules(RID_AlbaranesProveedor_Detalles, TAlbaranesProveedor_DetallesDataTableRules); + +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..678de95e --- /dev/null +++ b/Source/Modulos/Albaranes de proveedor/Model/schAlbaranesProveedorServer_Intf.pas @@ -0,0 +1,2338 @@ +unit schAlbaranesProveedorServer_Intf; + +interface + +uses + Classes, DB, SysUtils, uROClasses, uDADataTable, uDABusinessProcessor, FmtBCD, uROXMLIntf, schAlbaranesProveedorClient_Intf; + +const + { Delta rules ids + Feel free to change them to something more human readable + but make sure they are unique in the context of your application } + RID_DarReferenciaDelta = '{AD9EC61F-92A8-4757-A729-430A9C0F1014}'; + RID_AlbaranesProveedorDelta = '{6120285E-A519-4B85-96C3-9568FD81A17F}'; + RID_AlbaranesProveedor_DetallesDelta = '{CEDDEB44-9AE4-468F-A241-3235B7D100D6}'; + +type + { IDarReferenciaDelta } + IDarReferenciaDelta = interface(IDarReferencia) + ['{AD9EC61F-92A8-4757-A729-430A9C0F1014}'] + { 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 GetVALORIsNull: Boolean; virtual; + function GetOldVALORValue: String; virtual; + function GetOldVALORIsNull: Boolean; virtual; + procedure SetVALORValue(const aValue: String); virtual; + procedure SetVALORIsNull(const aValue: Boolean); virtual; + + { Properties } + property VALOR : String read GetVALORValue write SetVALORValue; + property VALORIsNull : Boolean read GetVALORIsNull write SetVALORIsNull; + property OldVALOR : String read GetOldVALORValue; + property OldVALORIsNull : Boolean read GetOldVALORIsNull; + + public + constructor Create(aBusinessProcessor: TDABusinessProcessor); override; + destructor Destroy; override; + + end; + + { IAlbaranesProveedorDelta } + IAlbaranesProveedorDelta = interface(IAlbaranesProveedor) + ['{6120285E-A519-4B85-96C3-9568FD81A17F}'] + { 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 GetOldREFERENCIA_PROVEEDORValue : 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_FACTURAValue : String; + function GetOldREF_FACTURA_PROVValue : String; + function GetOldCALLEValue : String; + function GetOldCODIGO_POSTALValue : String; + function GetOldPOBLACIONValue : String; + function GetOldPROVINCIAValue : String; + function GetOldPERSONA_CONTACTOValue : String; + function GetOldTELEFONOValue : String; + function GetOldIMPORTE_NETOValue : Currency; + function GetOldIMPORTE_PORTEValue : Currency; + function GetOldDESCUENTOValue : Float; + function GetOldIMPORTE_DESCUENTOValue : Currency; + function GetOldBASE_IMPONIBLEValue : Currency; + function GetOldIVAValue : Float; + function GetOldIMPORTE_IVAValue : Currency; + function GetOldIMPORTE_TOTALValue : Currency; + function GetOldOBSERVACIONESValue : IROStrings; + function GetOldINCIDENCIASValue : IROStrings; + function GetOldINCIDENCIAS_ACTIVASValue : Integer; + function GetOldFECHA_ALTAValue : DateTime; + function GetOldFECHA_MODIFICACIONValue : DateTime; + function GetOldUSUARIOValue : String; + function GetOldID_FORMA_PAGOValue : Integer; + + { 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 OldREFERENCIA_PROVEEDOR : String read GetOldREFERENCIA_PROVEEDORValue; + 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_FACTURA : String read GetOldREF_FACTURAValue; + property OldREF_FACTURA_PROV : String read GetOldREF_FACTURA_PROVValue; + property OldCALLE : String read GetOldCALLEValue; + property OldCODIGO_POSTAL : String read GetOldCODIGO_POSTALValue; + property OldPOBLACION : String read GetOldPOBLACIONValue; + property OldPROVINCIA : String read GetOldPROVINCIAValue; + property OldPERSONA_CONTACTO : String read GetOldPERSONA_CONTACTOValue; + property OldTELEFONO : String read GetOldTELEFONOValue; + property OldIMPORTE_NETO : Currency read GetOldIMPORTE_NETOValue; + property OldIMPORTE_PORTE : Currency read GetOldIMPORTE_PORTEValue; + property OldDESCUENTO : Float read GetOldDESCUENTOValue; + property OldIMPORTE_DESCUENTO : Currency read GetOldIMPORTE_DESCUENTOValue; + property OldBASE_IMPONIBLE : Currency read GetOldBASE_IMPONIBLEValue; + property OldIVA : Float read GetOldIVAValue; + property OldIMPORTE_IVA : Currency read GetOldIMPORTE_IVAValue; + property OldIMPORTE_TOTAL : Currency read GetOldIMPORTE_TOTALValue; + property OldOBSERVACIONES : IROStrings read GetOldOBSERVACIONESValue; + property OldINCIDENCIAS : IROStrings read GetOldINCIDENCIASValue; + property OldINCIDENCIAS_ACTIVAS : Integer read GetOldINCIDENCIAS_ACTIVASValue; + property OldFECHA_ALTA : DateTime read GetOldFECHA_ALTAValue; + property OldFECHA_MODIFICACION : DateTime read GetOldFECHA_MODIFICACIONValue; + property OldUSUARIO : String read GetOldUSUARIOValue; + property OldID_FORMA_PAGO : Integer read GetOldID_FORMA_PAGOValue; + end; + + { TAlbaranesProveedorBusinessProcessorRules } + TAlbaranesProveedorBusinessProcessorRules = class(TDABusinessProcessorRules, IAlbaranesProveedor, IAlbaranesProveedorDelta) + private + f_OBSERVACIONES: IROStrings; + f_INCIDENCIAS: IROStrings; + procedure OBSERVACIONES_OnChange(Sender: TObject); + procedure INCIDENCIAS_OnChange(Sender: TObject); + protected + { Property getters and setters } + function GetIDValue: Integer; virtual; + function GetIDIsNull: Boolean; virtual; + function GetOldIDValue: Integer; virtual; + function GetOldIDIsNull: Boolean; virtual; + procedure SetIDValue(const aValue: Integer); virtual; + procedure SetIDIsNull(const aValue: Boolean); virtual; + function GetID_EMPRESAValue: Integer; virtual; + function GetID_EMPRESAIsNull: Boolean; virtual; + function GetOldID_EMPRESAValue: Integer; virtual; + function GetOldID_EMPRESAIsNull: Boolean; virtual; + procedure SetID_EMPRESAValue(const aValue: Integer); virtual; + procedure SetID_EMPRESAIsNull(const aValue: Boolean); virtual; + function GetID_PROVEEDORValue: Integer; virtual; + function GetID_PROVEEDORIsNull: Boolean; virtual; + function GetOldID_PROVEEDORValue: Integer; virtual; + function GetOldID_PROVEEDORIsNull: Boolean; virtual; + procedure SetID_PROVEEDORValue(const aValue: Integer); virtual; + procedure SetID_PROVEEDORIsNull(const aValue: Boolean); virtual; + function GetNOMBREValue: String; virtual; + function GetNOMBREIsNull: Boolean; virtual; + function GetOldNOMBREValue: String; virtual; + function GetOldNOMBREIsNull: Boolean; virtual; + procedure SetNOMBREValue(const aValue: String); virtual; + procedure SetNOMBREIsNull(const aValue: Boolean); virtual; + function GetFECHA_ALBARANValue: DateTime; virtual; + function GetFECHA_ALBARANIsNull: Boolean; virtual; + function GetOldFECHA_ALBARANValue: DateTime; virtual; + function GetOldFECHA_ALBARANIsNull: Boolean; virtual; + procedure SetFECHA_ALBARANValue(const aValue: DateTime); virtual; + procedure SetFECHA_ALBARANIsNull(const aValue: Boolean); virtual; + function GetREFERENCIAValue: String; virtual; + function GetREFERENCIAIsNull: Boolean; virtual; + function GetOldREFERENCIAValue: String; virtual; + function GetOldREFERENCIAIsNull: Boolean; virtual; + procedure SetREFERENCIAValue(const aValue: String); virtual; + procedure SetREFERENCIAIsNull(const aValue: Boolean); virtual; + function GetREFERENCIA_PROVEEDORValue: String; virtual; + function GetREFERENCIA_PROVEEDORIsNull: Boolean; virtual; + function GetOldREFERENCIA_PROVEEDORValue: String; virtual; + function GetOldREFERENCIA_PROVEEDORIsNull: Boolean; virtual; + procedure SetREFERENCIA_PROVEEDORValue(const aValue: String); virtual; + procedure SetREFERENCIA_PROVEEDORIsNull(const aValue: Boolean); virtual; + function GetTIPOValue: String; virtual; + function GetTIPOIsNull: Boolean; virtual; + function GetOldTIPOValue: String; virtual; + function GetOldTIPOIsNull: Boolean; virtual; + procedure SetTIPOValue(const aValue: String); virtual; + procedure SetTIPOIsNull(const aValue: Boolean); virtual; + function GetID_ALMACENValue: Integer; virtual; + function GetID_ALMACENIsNull: Boolean; virtual; + function GetOldID_ALMACENValue: Integer; virtual; + function GetOldID_ALMACENIsNull: Boolean; virtual; + procedure SetID_ALMACENValue(const aValue: Integer); virtual; + procedure SetID_ALMACENIsNull(const aValue: Boolean); virtual; + function GetNOMBRE_ALMACENValue: String; virtual; + function GetNOMBRE_ALMACENIsNull: Boolean; virtual; + function GetOldNOMBRE_ALMACENValue: String; virtual; + function GetOldNOMBRE_ALMACENIsNull: Boolean; virtual; + procedure SetNOMBRE_ALMACENValue(const aValue: String); virtual; + procedure SetNOMBRE_ALMACENIsNull(const aValue: Boolean); virtual; + function GetID_PEDIDOValue: Integer; virtual; + function GetID_PEDIDOIsNull: Boolean; virtual; + function GetOldID_PEDIDOValue: Integer; virtual; + function GetOldID_PEDIDOIsNull: Boolean; virtual; + procedure SetID_PEDIDOValue(const aValue: Integer); virtual; + procedure SetID_PEDIDOIsNull(const aValue: Boolean); virtual; + function GetREF_PED_PROVEEDORValue: String; virtual; + function GetREF_PED_PROVEEDORIsNull: Boolean; virtual; + function GetOldREF_PED_PROVEEDORValue: String; virtual; + function GetOldREF_PED_PROVEEDORIsNull: Boolean; virtual; + procedure SetREF_PED_PROVEEDORValue(const aValue: String); virtual; + procedure SetREF_PED_PROVEEDORIsNull(const aValue: Boolean); virtual; + function GetID_FACTURAValue: Integer; virtual; + function GetID_FACTURAIsNull: Boolean; virtual; + function GetOldID_FACTURAValue: Integer; virtual; + function GetOldID_FACTURAIsNull: Boolean; virtual; + procedure SetID_FACTURAValue(const aValue: Integer); virtual; + procedure SetID_FACTURAIsNull(const aValue: Boolean); virtual; + function GetREF_FACTURAValue: String; virtual; + function GetREF_FACTURAIsNull: Boolean; virtual; + function GetOldREF_FACTURAValue: String; virtual; + function GetOldREF_FACTURAIsNull: Boolean; virtual; + procedure SetREF_FACTURAValue(const aValue: String); virtual; + procedure SetREF_FACTURAIsNull(const aValue: Boolean); virtual; + function GetREF_FACTURA_PROVValue: String; virtual; + function GetREF_FACTURA_PROVIsNull: Boolean; virtual; + function GetOldREF_FACTURA_PROVValue: String; virtual; + function GetOldREF_FACTURA_PROVIsNull: Boolean; virtual; + procedure SetREF_FACTURA_PROVValue(const aValue: String); virtual; + procedure SetREF_FACTURA_PROVIsNull(const aValue: Boolean); virtual; + function GetCALLEValue: String; virtual; + function GetCALLEIsNull: Boolean; virtual; + function GetOldCALLEValue: String; virtual; + function GetOldCALLEIsNull: Boolean; virtual; + procedure SetCALLEValue(const aValue: String); virtual; + procedure SetCALLEIsNull(const aValue: Boolean); virtual; + function GetCODIGO_POSTALValue: String; virtual; + function GetCODIGO_POSTALIsNull: Boolean; virtual; + function GetOldCODIGO_POSTALValue: String; virtual; + function GetOldCODIGO_POSTALIsNull: Boolean; virtual; + procedure SetCODIGO_POSTALValue(const aValue: String); virtual; + procedure SetCODIGO_POSTALIsNull(const aValue: Boolean); virtual; + function GetPOBLACIONValue: String; virtual; + function GetPOBLACIONIsNull: Boolean; virtual; + function GetOldPOBLACIONValue: String; virtual; + function GetOldPOBLACIONIsNull: Boolean; virtual; + procedure SetPOBLACIONValue(const aValue: String); virtual; + procedure SetPOBLACIONIsNull(const aValue: Boolean); virtual; + function GetPROVINCIAValue: String; virtual; + function GetPROVINCIAIsNull: Boolean; virtual; + function GetOldPROVINCIAValue: String; virtual; + function GetOldPROVINCIAIsNull: Boolean; virtual; + procedure SetPROVINCIAValue(const aValue: String); virtual; + procedure SetPROVINCIAIsNull(const aValue: Boolean); virtual; + function GetPERSONA_CONTACTOValue: String; virtual; + function GetPERSONA_CONTACTOIsNull: Boolean; virtual; + function GetOldPERSONA_CONTACTOValue: String; virtual; + function GetOldPERSONA_CONTACTOIsNull: Boolean; virtual; + procedure SetPERSONA_CONTACTOValue(const aValue: String); virtual; + procedure SetPERSONA_CONTACTOIsNull(const aValue: Boolean); virtual; + function GetTELEFONOValue: String; virtual; + function GetTELEFONOIsNull: Boolean; virtual; + function GetOldTELEFONOValue: String; virtual; + function GetOldTELEFONOIsNull: Boolean; virtual; + procedure SetTELEFONOValue(const aValue: String); virtual; + procedure SetTELEFONOIsNull(const aValue: Boolean); virtual; + function GetIMPORTE_NETOValue: Currency; virtual; + function GetIMPORTE_NETOIsNull: Boolean; virtual; + function GetOldIMPORTE_NETOValue: Currency; virtual; + function GetOldIMPORTE_NETOIsNull: Boolean; virtual; + procedure SetIMPORTE_NETOValue(const aValue: Currency); virtual; + procedure SetIMPORTE_NETOIsNull(const aValue: Boolean); virtual; + function GetIMPORTE_PORTEValue: Currency; virtual; + function GetIMPORTE_PORTEIsNull: Boolean; virtual; + function GetOldIMPORTE_PORTEValue: Currency; virtual; + function GetOldIMPORTE_PORTEIsNull: Boolean; virtual; + procedure SetIMPORTE_PORTEValue(const aValue: Currency); virtual; + procedure SetIMPORTE_PORTEIsNull(const aValue: Boolean); virtual; + function GetDESCUENTOValue: Float; virtual; + function GetDESCUENTOIsNull: Boolean; virtual; + function GetOldDESCUENTOValue: Float; virtual; + function GetOldDESCUENTOIsNull: Boolean; virtual; + procedure SetDESCUENTOValue(const aValue: Float); virtual; + procedure SetDESCUENTOIsNull(const aValue: Boolean); virtual; + function GetIMPORTE_DESCUENTOValue: Currency; virtual; + function GetIMPORTE_DESCUENTOIsNull: Boolean; virtual; + function GetOldIMPORTE_DESCUENTOValue: Currency; virtual; + function GetOldIMPORTE_DESCUENTOIsNull: Boolean; virtual; + procedure SetIMPORTE_DESCUENTOValue(const aValue: Currency); virtual; + procedure SetIMPORTE_DESCUENTOIsNull(const aValue: Boolean); virtual; + function GetBASE_IMPONIBLEValue: Currency; virtual; + function GetBASE_IMPONIBLEIsNull: Boolean; virtual; + function GetOldBASE_IMPONIBLEValue: Currency; virtual; + function GetOldBASE_IMPONIBLEIsNull: Boolean; virtual; + procedure SetBASE_IMPONIBLEValue(const aValue: Currency); virtual; + procedure SetBASE_IMPONIBLEIsNull(const aValue: Boolean); virtual; + function GetIVAValue: Float; virtual; + function GetIVAIsNull: Boolean; virtual; + function GetOldIVAValue: Float; virtual; + function GetOldIVAIsNull: Boolean; virtual; + procedure SetIVAValue(const aValue: Float); virtual; + procedure SetIVAIsNull(const aValue: Boolean); virtual; + function GetIMPORTE_IVAValue: Currency; virtual; + function GetIMPORTE_IVAIsNull: Boolean; virtual; + function GetOldIMPORTE_IVAValue: Currency; virtual; + function GetOldIMPORTE_IVAIsNull: Boolean; virtual; + procedure SetIMPORTE_IVAValue(const aValue: Currency); virtual; + procedure SetIMPORTE_IVAIsNull(const aValue: Boolean); virtual; + function GetIMPORTE_TOTALValue: Currency; virtual; + function GetIMPORTE_TOTALIsNull: Boolean; virtual; + function GetOldIMPORTE_TOTALValue: Currency; virtual; + function GetOldIMPORTE_TOTALIsNull: Boolean; virtual; + procedure SetIMPORTE_TOTALValue(const aValue: Currency); virtual; + procedure SetIMPORTE_TOTALIsNull(const aValue: Boolean); virtual; + function GetOBSERVACIONESValue: IROStrings; virtual; + function GetOBSERVACIONESIsNull: Boolean; virtual; + function GetOldOBSERVACIONESValue: IROStrings; virtual; + function GetOldOBSERVACIONESIsNull: Boolean; virtual; + procedure SetOBSERVACIONESIsNull(const aValue: Boolean); virtual; + function GetINCIDENCIASValue: IROStrings; virtual; + function GetINCIDENCIASIsNull: Boolean; virtual; + function GetOldINCIDENCIASValue: IROStrings; virtual; + function GetOldINCIDENCIASIsNull: Boolean; virtual; + procedure SetINCIDENCIASIsNull(const aValue: Boolean); virtual; + function GetINCIDENCIAS_ACTIVASValue: Integer; virtual; + function GetINCIDENCIAS_ACTIVASIsNull: Boolean; virtual; + function GetOldINCIDENCIAS_ACTIVASValue: Integer; virtual; + function GetOldINCIDENCIAS_ACTIVASIsNull: Boolean; virtual; + procedure SetINCIDENCIAS_ACTIVASValue(const aValue: Integer); virtual; + procedure SetINCIDENCIAS_ACTIVASIsNull(const aValue: Boolean); virtual; + function GetFECHA_ALTAValue: DateTime; virtual; + function GetFECHA_ALTAIsNull: Boolean; virtual; + function GetOldFECHA_ALTAValue: DateTime; virtual; + function GetOldFECHA_ALTAIsNull: Boolean; virtual; + procedure SetFECHA_ALTAValue(const aValue: DateTime); virtual; + procedure SetFECHA_ALTAIsNull(const aValue: Boolean); virtual; + function GetFECHA_MODIFICACIONValue: DateTime; virtual; + function GetFECHA_MODIFICACIONIsNull: Boolean; virtual; + function GetOldFECHA_MODIFICACIONValue: DateTime; virtual; + function GetOldFECHA_MODIFICACIONIsNull: Boolean; virtual; + procedure SetFECHA_MODIFICACIONValue(const aValue: DateTime); virtual; + procedure SetFECHA_MODIFICACIONIsNull(const aValue: Boolean); virtual; + function GetUSUARIOValue: String; virtual; + function GetUSUARIOIsNull: Boolean; virtual; + function GetOldUSUARIOValue: String; virtual; + function GetOldUSUARIOIsNull: Boolean; virtual; + procedure SetUSUARIOValue(const aValue: String); virtual; + procedure SetUSUARIOIsNull(const aValue: Boolean); virtual; + function GetID_FORMA_PAGOValue: Integer; virtual; + function GetID_FORMA_PAGOIsNull: Boolean; virtual; + function GetOldID_FORMA_PAGOValue: Integer; virtual; + function GetOldID_FORMA_PAGOIsNull: Boolean; virtual; + procedure SetID_FORMA_PAGOValue(const aValue: Integer); virtual; + procedure SetID_FORMA_PAGOIsNull(const aValue: Boolean); virtual; + + { Properties } + property ID : Integer read GetIDValue write SetIDValue; + property IDIsNull : Boolean read GetIDIsNull write SetIDIsNull; + property OldID : Integer read GetOldIDValue; + property OldIDIsNull : Boolean read GetOldIDIsNull; + property ID_EMPRESA : Integer read GetID_EMPRESAValue write SetID_EMPRESAValue; + property ID_EMPRESAIsNull : Boolean read GetID_EMPRESAIsNull write SetID_EMPRESAIsNull; + property OldID_EMPRESA : Integer read GetOldID_EMPRESAValue; + property OldID_EMPRESAIsNull : Boolean read GetOldID_EMPRESAIsNull; + property ID_PROVEEDOR : Integer read GetID_PROVEEDORValue write SetID_PROVEEDORValue; + property ID_PROVEEDORIsNull : Boolean read GetID_PROVEEDORIsNull write SetID_PROVEEDORIsNull; + property OldID_PROVEEDOR : Integer read GetOldID_PROVEEDORValue; + property OldID_PROVEEDORIsNull : Boolean read GetOldID_PROVEEDORIsNull; + property NOMBRE : String read GetNOMBREValue write SetNOMBREValue; + property NOMBREIsNull : Boolean read GetNOMBREIsNull write SetNOMBREIsNull; + property OldNOMBRE : String read GetOldNOMBREValue; + property OldNOMBREIsNull : Boolean read GetOldNOMBREIsNull; + property FECHA_ALBARAN : DateTime read GetFECHA_ALBARANValue write SetFECHA_ALBARANValue; + property FECHA_ALBARANIsNull : Boolean read GetFECHA_ALBARANIsNull write SetFECHA_ALBARANIsNull; + property OldFECHA_ALBARAN : DateTime read GetOldFECHA_ALBARANValue; + property OldFECHA_ALBARANIsNull : Boolean read GetOldFECHA_ALBARANIsNull; + property REFERENCIA : String read GetREFERENCIAValue write SetREFERENCIAValue; + property REFERENCIAIsNull : Boolean read GetREFERENCIAIsNull write SetREFERENCIAIsNull; + property OldREFERENCIA : String read GetOldREFERENCIAValue; + property OldREFERENCIAIsNull : Boolean read GetOldREFERENCIAIsNull; + property REFERENCIA_PROVEEDOR : String read GetREFERENCIA_PROVEEDORValue write SetREFERENCIA_PROVEEDORValue; + property REFERENCIA_PROVEEDORIsNull : Boolean read GetREFERENCIA_PROVEEDORIsNull write SetREFERENCIA_PROVEEDORIsNull; + property OldREFERENCIA_PROVEEDOR : String read GetOldREFERENCIA_PROVEEDORValue; + property OldREFERENCIA_PROVEEDORIsNull : Boolean read GetOldREFERENCIA_PROVEEDORIsNull; + property TIPO : String read GetTIPOValue write SetTIPOValue; + property TIPOIsNull : Boolean read GetTIPOIsNull write SetTIPOIsNull; + property OldTIPO : String read GetOldTIPOValue; + property OldTIPOIsNull : Boolean read GetOldTIPOIsNull; + property ID_ALMACEN : Integer read GetID_ALMACENValue write SetID_ALMACENValue; + property ID_ALMACENIsNull : Boolean read GetID_ALMACENIsNull write SetID_ALMACENIsNull; + property OldID_ALMACEN : Integer read GetOldID_ALMACENValue; + property OldID_ALMACENIsNull : Boolean read GetOldID_ALMACENIsNull; + property NOMBRE_ALMACEN : String read GetNOMBRE_ALMACENValue write SetNOMBRE_ALMACENValue; + property NOMBRE_ALMACENIsNull : Boolean read GetNOMBRE_ALMACENIsNull write SetNOMBRE_ALMACENIsNull; + property OldNOMBRE_ALMACEN : String read GetOldNOMBRE_ALMACENValue; + property OldNOMBRE_ALMACENIsNull : Boolean read GetOldNOMBRE_ALMACENIsNull; + property ID_PEDIDO : Integer read GetID_PEDIDOValue write SetID_PEDIDOValue; + property ID_PEDIDOIsNull : Boolean read GetID_PEDIDOIsNull write SetID_PEDIDOIsNull; + property OldID_PEDIDO : Integer read GetOldID_PEDIDOValue; + property OldID_PEDIDOIsNull : Boolean read GetOldID_PEDIDOIsNull; + property REF_PED_PROVEEDOR : String read GetREF_PED_PROVEEDORValue write SetREF_PED_PROVEEDORValue; + property REF_PED_PROVEEDORIsNull : Boolean read GetREF_PED_PROVEEDORIsNull write SetREF_PED_PROVEEDORIsNull; + property OldREF_PED_PROVEEDOR : String read GetOldREF_PED_PROVEEDORValue; + property OldREF_PED_PROVEEDORIsNull : Boolean read GetOldREF_PED_PROVEEDORIsNull; + property ID_FACTURA : Integer read GetID_FACTURAValue write SetID_FACTURAValue; + property ID_FACTURAIsNull : Boolean read GetID_FACTURAIsNull write SetID_FACTURAIsNull; + property OldID_FACTURA : Integer read GetOldID_FACTURAValue; + property OldID_FACTURAIsNull : Boolean read GetOldID_FACTURAIsNull; + property REF_FACTURA : String read GetREF_FACTURAValue write SetREF_FACTURAValue; + property REF_FACTURAIsNull : Boolean read GetREF_FACTURAIsNull write SetREF_FACTURAIsNull; + property OldREF_FACTURA : String read GetOldREF_FACTURAValue; + property OldREF_FACTURAIsNull : Boolean read GetOldREF_FACTURAIsNull; + property REF_FACTURA_PROV : String read GetREF_FACTURA_PROVValue write SetREF_FACTURA_PROVValue; + property REF_FACTURA_PROVIsNull : Boolean read GetREF_FACTURA_PROVIsNull write SetREF_FACTURA_PROVIsNull; + property OldREF_FACTURA_PROV : String read GetOldREF_FACTURA_PROVValue; + property OldREF_FACTURA_PROVIsNull : Boolean read GetOldREF_FACTURA_PROVIsNull; + property CALLE : String read GetCALLEValue write SetCALLEValue; + property CALLEIsNull : Boolean read GetCALLEIsNull write SetCALLEIsNull; + property OldCALLE : String read GetOldCALLEValue; + property OldCALLEIsNull : Boolean read GetOldCALLEIsNull; + property CODIGO_POSTAL : String read GetCODIGO_POSTALValue write SetCODIGO_POSTALValue; + property CODIGO_POSTALIsNull : Boolean read GetCODIGO_POSTALIsNull write SetCODIGO_POSTALIsNull; + property OldCODIGO_POSTAL : String read GetOldCODIGO_POSTALValue; + property OldCODIGO_POSTALIsNull : Boolean read GetOldCODIGO_POSTALIsNull; + property POBLACION : String read GetPOBLACIONValue write SetPOBLACIONValue; + property POBLACIONIsNull : Boolean read GetPOBLACIONIsNull write SetPOBLACIONIsNull; + property OldPOBLACION : String read GetOldPOBLACIONValue; + property OldPOBLACIONIsNull : Boolean read GetOldPOBLACIONIsNull; + property PROVINCIA : String read GetPROVINCIAValue write SetPROVINCIAValue; + property PROVINCIAIsNull : Boolean read GetPROVINCIAIsNull write SetPROVINCIAIsNull; + property OldPROVINCIA : String read GetOldPROVINCIAValue; + property OldPROVINCIAIsNull : Boolean read GetOldPROVINCIAIsNull; + property PERSONA_CONTACTO : String read GetPERSONA_CONTACTOValue write SetPERSONA_CONTACTOValue; + property PERSONA_CONTACTOIsNull : Boolean read GetPERSONA_CONTACTOIsNull write SetPERSONA_CONTACTOIsNull; + property OldPERSONA_CONTACTO : String read GetOldPERSONA_CONTACTOValue; + property OldPERSONA_CONTACTOIsNull : Boolean read GetOldPERSONA_CONTACTOIsNull; + property TELEFONO : String read GetTELEFONOValue write SetTELEFONOValue; + property TELEFONOIsNull : Boolean read GetTELEFONOIsNull write SetTELEFONOIsNull; + property OldTELEFONO : String read GetOldTELEFONOValue; + property OldTELEFONOIsNull : Boolean read GetOldTELEFONOIsNull; + property IMPORTE_NETO : Currency read GetIMPORTE_NETOValue write SetIMPORTE_NETOValue; + property IMPORTE_NETOIsNull : Boolean read GetIMPORTE_NETOIsNull write SetIMPORTE_NETOIsNull; + property OldIMPORTE_NETO : Currency read GetOldIMPORTE_NETOValue; + property OldIMPORTE_NETOIsNull : Boolean read GetOldIMPORTE_NETOIsNull; + property IMPORTE_PORTE : Currency read GetIMPORTE_PORTEValue write SetIMPORTE_PORTEValue; + property IMPORTE_PORTEIsNull : Boolean read GetIMPORTE_PORTEIsNull write SetIMPORTE_PORTEIsNull; + property OldIMPORTE_PORTE : Currency read GetOldIMPORTE_PORTEValue; + property OldIMPORTE_PORTEIsNull : Boolean read GetOldIMPORTE_PORTEIsNull; + property DESCUENTO : Float read GetDESCUENTOValue write SetDESCUENTOValue; + property DESCUENTOIsNull : Boolean read GetDESCUENTOIsNull write SetDESCUENTOIsNull; + property OldDESCUENTO : Float read GetOldDESCUENTOValue; + property OldDESCUENTOIsNull : Boolean read GetOldDESCUENTOIsNull; + property IMPORTE_DESCUENTO : Currency read GetIMPORTE_DESCUENTOValue write SetIMPORTE_DESCUENTOValue; + property IMPORTE_DESCUENTOIsNull : Boolean read GetIMPORTE_DESCUENTOIsNull write SetIMPORTE_DESCUENTOIsNull; + property OldIMPORTE_DESCUENTO : Currency read GetOldIMPORTE_DESCUENTOValue; + property OldIMPORTE_DESCUENTOIsNull : Boolean read GetOldIMPORTE_DESCUENTOIsNull; + property BASE_IMPONIBLE : Currency read GetBASE_IMPONIBLEValue write SetBASE_IMPONIBLEValue; + property BASE_IMPONIBLEIsNull : Boolean read GetBASE_IMPONIBLEIsNull write SetBASE_IMPONIBLEIsNull; + property OldBASE_IMPONIBLE : Currency read GetOldBASE_IMPONIBLEValue; + property OldBASE_IMPONIBLEIsNull : Boolean read GetOldBASE_IMPONIBLEIsNull; + property IVA : Float read GetIVAValue write SetIVAValue; + property IVAIsNull : Boolean read GetIVAIsNull write SetIVAIsNull; + property OldIVA : Float read GetOldIVAValue; + property OldIVAIsNull : Boolean read GetOldIVAIsNull; + property IMPORTE_IVA : Currency read GetIMPORTE_IVAValue write SetIMPORTE_IVAValue; + property IMPORTE_IVAIsNull : Boolean read GetIMPORTE_IVAIsNull write SetIMPORTE_IVAIsNull; + property OldIMPORTE_IVA : Currency read GetOldIMPORTE_IVAValue; + property OldIMPORTE_IVAIsNull : Boolean read GetOldIMPORTE_IVAIsNull; + property IMPORTE_TOTAL : Currency read GetIMPORTE_TOTALValue write SetIMPORTE_TOTALValue; + property IMPORTE_TOTALIsNull : Boolean read GetIMPORTE_TOTALIsNull write SetIMPORTE_TOTALIsNull; + property OldIMPORTE_TOTAL : Currency read GetOldIMPORTE_TOTALValue; + property OldIMPORTE_TOTALIsNull : Boolean read GetOldIMPORTE_TOTALIsNull; + property OBSERVACIONES : IROStrings read GetOBSERVACIONESValue; + property OBSERVACIONESIsNull : Boolean read GetOBSERVACIONESIsNull write SetOBSERVACIONESIsNull; + property OldOBSERVACIONES : IROStrings read GetOldOBSERVACIONESValue; + property OldOBSERVACIONESIsNull : Boolean read GetOldOBSERVACIONESIsNull; + property INCIDENCIAS : IROStrings read GetINCIDENCIASValue; + property INCIDENCIASIsNull : Boolean read GetINCIDENCIASIsNull write SetINCIDENCIASIsNull; + property OldINCIDENCIAS : IROStrings read GetOldINCIDENCIASValue; + property OldINCIDENCIASIsNull : Boolean read GetOldINCIDENCIASIsNull; + property INCIDENCIAS_ACTIVAS : Integer read GetINCIDENCIAS_ACTIVASValue write SetINCIDENCIAS_ACTIVASValue; + property INCIDENCIAS_ACTIVASIsNull : Boolean read GetINCIDENCIAS_ACTIVASIsNull write SetINCIDENCIAS_ACTIVASIsNull; + property OldINCIDENCIAS_ACTIVAS : Integer read GetOldINCIDENCIAS_ACTIVASValue; + property OldINCIDENCIAS_ACTIVASIsNull : Boolean read GetOldINCIDENCIAS_ACTIVASIsNull; + property FECHA_ALTA : DateTime read GetFECHA_ALTAValue write SetFECHA_ALTAValue; + property FECHA_ALTAIsNull : Boolean read GetFECHA_ALTAIsNull write SetFECHA_ALTAIsNull; + property OldFECHA_ALTA : DateTime read GetOldFECHA_ALTAValue; + property OldFECHA_ALTAIsNull : Boolean read GetOldFECHA_ALTAIsNull; + property FECHA_MODIFICACION : DateTime read GetFECHA_MODIFICACIONValue write SetFECHA_MODIFICACIONValue; + property FECHA_MODIFICACIONIsNull : Boolean read GetFECHA_MODIFICACIONIsNull write SetFECHA_MODIFICACIONIsNull; + property OldFECHA_MODIFICACION : DateTime read GetOldFECHA_MODIFICACIONValue; + property OldFECHA_MODIFICACIONIsNull : Boolean read GetOldFECHA_MODIFICACIONIsNull; + property USUARIO : String read GetUSUARIOValue write SetUSUARIOValue; + property USUARIOIsNull : Boolean read GetUSUARIOIsNull write SetUSUARIOIsNull; + property OldUSUARIO : String read GetOldUSUARIOValue; + property OldUSUARIOIsNull : Boolean read GetOldUSUARIOIsNull; + property ID_FORMA_PAGO : Integer read GetID_FORMA_PAGOValue write SetID_FORMA_PAGOValue; + property ID_FORMA_PAGOIsNull : Boolean read GetID_FORMA_PAGOIsNull write SetID_FORMA_PAGOIsNull; + property OldID_FORMA_PAGO : Integer read GetOldID_FORMA_PAGOValue; + property OldID_FORMA_PAGOIsNull : Boolean read GetOldID_FORMA_PAGOIsNull; + + public + constructor Create(aBusinessProcessor: TDABusinessProcessor); override; + destructor Destroy; override; + + end; + + { IAlbaranesProveedor_DetallesDelta } + IAlbaranesProveedor_DetallesDelta = interface(IAlbaranesProveedor_Detalles) + ['{CEDDEB44-9AE4-468F-A241-3235B7D100D6}'] + { Property getters and setters } + function GetOldIDValue : Integer; + function GetOldID_ALBARANValue : Integer; + function GetOldPOSICIONValue : Integer; + function GetOldTIPO_DETALLEValue : String; + function GetOldCONCEPTOValue : String; + function GetOldCANTIDADValue : Integer; + function GetOldIMPORTE_UNIDADValue : Currency; + function GetOldIMPORTE_TOTALValue : Currency; + function GetOldVISIBLEValue : Integer; + function GetOldID_ARTICULOValue : Integer; + function GetOldDESCUENTOValue : Float; + function GetOldIMPORTE_PORTEValue : Currency; + function GetOldREFERENCIAValue : String; + function GetOldREFERENCIA_PROVEEDORValue : String; + + { Properties } + property OldID : Integer read GetOldIDValue; + property OldID_ALBARAN : Integer read GetOldID_ALBARANValue; + 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 OldIMPORTE_TOTAL : Currency read GetOldIMPORTE_TOTALValue; + property OldVISIBLE : Integer read GetOldVISIBLEValue; + property OldID_ARTICULO : Integer read GetOldID_ARTICULOValue; + property OldDESCUENTO : Float read GetOldDESCUENTOValue; + property OldIMPORTE_PORTE : Currency read GetOldIMPORTE_PORTEValue; + property OldREFERENCIA : String read GetOldREFERENCIAValue; + property OldREFERENCIA_PROVEEDOR : String read GetOldREFERENCIA_PROVEEDORValue; + end; + + { TAlbaranesProveedor_DetallesBusinessProcessorRules } + TAlbaranesProveedor_DetallesBusinessProcessorRules = class(TDABusinessProcessorRules, IAlbaranesProveedor_Detalles, IAlbaranesProveedor_DetallesDelta) + private + protected + { Property getters and setters } + function GetIDValue: Integer; virtual; + function GetIDIsNull: Boolean; virtual; + function GetOldIDValue: Integer; virtual; + function GetOldIDIsNull: Boolean; virtual; + procedure SetIDValue(const aValue: Integer); virtual; + procedure SetIDIsNull(const aValue: Boolean); virtual; + function GetID_ALBARANValue: Integer; virtual; + function GetID_ALBARANIsNull: Boolean; virtual; + function GetOldID_ALBARANValue: Integer; virtual; + function GetOldID_ALBARANIsNull: Boolean; virtual; + procedure SetID_ALBARANValue(const aValue: Integer); virtual; + procedure SetID_ALBARANIsNull(const aValue: Boolean); virtual; + function GetPOSICIONValue: Integer; virtual; + function GetPOSICIONIsNull: Boolean; virtual; + function GetOldPOSICIONValue: Integer; virtual; + function GetOldPOSICIONIsNull: Boolean; virtual; + procedure SetPOSICIONValue(const aValue: Integer); virtual; + procedure SetPOSICIONIsNull(const aValue: Boolean); virtual; + function GetTIPO_DETALLEValue: String; virtual; + function GetTIPO_DETALLEIsNull: Boolean; virtual; + function GetOldTIPO_DETALLEValue: String; virtual; + function GetOldTIPO_DETALLEIsNull: Boolean; virtual; + procedure SetTIPO_DETALLEValue(const aValue: String); virtual; + procedure SetTIPO_DETALLEIsNull(const aValue: Boolean); virtual; + function GetCONCEPTOValue: String; virtual; + function GetCONCEPTOIsNull: Boolean; virtual; + function GetOldCONCEPTOValue: String; virtual; + function GetOldCONCEPTOIsNull: Boolean; virtual; + procedure SetCONCEPTOValue(const aValue: String); virtual; + procedure SetCONCEPTOIsNull(const aValue: Boolean); virtual; + function GetCANTIDADValue: Integer; virtual; + function GetCANTIDADIsNull: Boolean; virtual; + function GetOldCANTIDADValue: Integer; virtual; + function GetOldCANTIDADIsNull: Boolean; virtual; + procedure SetCANTIDADValue(const aValue: Integer); virtual; + procedure SetCANTIDADIsNull(const aValue: Boolean); virtual; + function GetIMPORTE_UNIDADValue: Currency; virtual; + function GetIMPORTE_UNIDADIsNull: Boolean; virtual; + function GetOldIMPORTE_UNIDADValue: Currency; virtual; + function GetOldIMPORTE_UNIDADIsNull: Boolean; virtual; + procedure SetIMPORTE_UNIDADValue(const aValue: Currency); virtual; + procedure SetIMPORTE_UNIDADIsNull(const aValue: Boolean); virtual; + function GetIMPORTE_TOTALValue: Currency; virtual; + function GetIMPORTE_TOTALIsNull: Boolean; virtual; + function GetOldIMPORTE_TOTALValue: Currency; virtual; + function GetOldIMPORTE_TOTALIsNull: Boolean; virtual; + procedure SetIMPORTE_TOTALValue(const aValue: Currency); virtual; + procedure SetIMPORTE_TOTALIsNull(const aValue: Boolean); virtual; + function GetVISIBLEValue: Integer; virtual; + function GetVISIBLEIsNull: Boolean; virtual; + function GetOldVISIBLEValue: Integer; virtual; + function GetOldVISIBLEIsNull: Boolean; virtual; + procedure SetVISIBLEValue(const aValue: Integer); virtual; + procedure SetVISIBLEIsNull(const aValue: Boolean); virtual; + function GetID_ARTICULOValue: Integer; virtual; + function GetID_ARTICULOIsNull: Boolean; virtual; + function GetOldID_ARTICULOValue: Integer; virtual; + function GetOldID_ARTICULOIsNull: Boolean; virtual; + procedure SetID_ARTICULOValue(const aValue: Integer); virtual; + procedure SetID_ARTICULOIsNull(const aValue: Boolean); virtual; + function GetDESCUENTOValue: Float; virtual; + function GetDESCUENTOIsNull: Boolean; virtual; + function GetOldDESCUENTOValue: Float; virtual; + function GetOldDESCUENTOIsNull: Boolean; virtual; + procedure SetDESCUENTOValue(const aValue: Float); virtual; + procedure SetDESCUENTOIsNull(const aValue: Boolean); virtual; + function GetIMPORTE_PORTEValue: Currency; virtual; + function GetIMPORTE_PORTEIsNull: Boolean; virtual; + function GetOldIMPORTE_PORTEValue: Currency; virtual; + function GetOldIMPORTE_PORTEIsNull: Boolean; virtual; + procedure SetIMPORTE_PORTEValue(const aValue: Currency); virtual; + procedure SetIMPORTE_PORTEIsNull(const aValue: Boolean); virtual; + function GetREFERENCIAValue: String; virtual; + function GetREFERENCIAIsNull: Boolean; virtual; + function GetOldREFERENCIAValue: String; virtual; + function GetOldREFERENCIAIsNull: Boolean; virtual; + procedure SetREFERENCIAValue(const aValue: String); virtual; + procedure SetREFERENCIAIsNull(const aValue: Boolean); virtual; + function GetREFERENCIA_PROVEEDORValue: String; virtual; + function GetREFERENCIA_PROVEEDORIsNull: Boolean; virtual; + function GetOldREFERENCIA_PROVEEDORValue: String; virtual; + function GetOldREFERENCIA_PROVEEDORIsNull: Boolean; virtual; + procedure SetREFERENCIA_PROVEEDORValue(const aValue: String); virtual; + procedure SetREFERENCIA_PROVEEDORIsNull(const aValue: Boolean); virtual; + + { Properties } + property ID : Integer read GetIDValue write SetIDValue; + property IDIsNull : Boolean read GetIDIsNull write SetIDIsNull; + property OldID : Integer read GetOldIDValue; + property OldIDIsNull : Boolean read GetOldIDIsNull; + property ID_ALBARAN : Integer read GetID_ALBARANValue write SetID_ALBARANValue; + property ID_ALBARANIsNull : Boolean read GetID_ALBARANIsNull write SetID_ALBARANIsNull; + property OldID_ALBARAN : Integer read GetOldID_ALBARANValue; + property OldID_ALBARANIsNull : Boolean read GetOldID_ALBARANIsNull; + property POSICION : Integer read GetPOSICIONValue write SetPOSICIONValue; + property POSICIONIsNull : Boolean read GetPOSICIONIsNull write SetPOSICIONIsNull; + property OldPOSICION : Integer read GetOldPOSICIONValue; + property OldPOSICIONIsNull : Boolean read GetOldPOSICIONIsNull; + property TIPO_DETALLE : String read GetTIPO_DETALLEValue write SetTIPO_DETALLEValue; + property TIPO_DETALLEIsNull : Boolean read GetTIPO_DETALLEIsNull write SetTIPO_DETALLEIsNull; + property OldTIPO_DETALLE : String read GetOldTIPO_DETALLEValue; + property OldTIPO_DETALLEIsNull : Boolean read GetOldTIPO_DETALLEIsNull; + property CONCEPTO : String read GetCONCEPTOValue write SetCONCEPTOValue; + property CONCEPTOIsNull : Boolean read GetCONCEPTOIsNull write SetCONCEPTOIsNull; + property OldCONCEPTO : String read GetOldCONCEPTOValue; + property OldCONCEPTOIsNull : Boolean read GetOldCONCEPTOIsNull; + property CANTIDAD : Integer read GetCANTIDADValue write SetCANTIDADValue; + property CANTIDADIsNull : Boolean read GetCANTIDADIsNull write SetCANTIDADIsNull; + property OldCANTIDAD : Integer read GetOldCANTIDADValue; + property OldCANTIDADIsNull : Boolean read GetOldCANTIDADIsNull; + property IMPORTE_UNIDAD : Currency read GetIMPORTE_UNIDADValue write SetIMPORTE_UNIDADValue; + property IMPORTE_UNIDADIsNull : Boolean read GetIMPORTE_UNIDADIsNull write SetIMPORTE_UNIDADIsNull; + property OldIMPORTE_UNIDAD : Currency read GetOldIMPORTE_UNIDADValue; + property OldIMPORTE_UNIDADIsNull : Boolean read GetOldIMPORTE_UNIDADIsNull; + property IMPORTE_TOTAL : Currency read GetIMPORTE_TOTALValue write SetIMPORTE_TOTALValue; + property IMPORTE_TOTALIsNull : Boolean read GetIMPORTE_TOTALIsNull write SetIMPORTE_TOTALIsNull; + property OldIMPORTE_TOTAL : Currency read GetOldIMPORTE_TOTALValue; + property OldIMPORTE_TOTALIsNull : Boolean read GetOldIMPORTE_TOTALIsNull; + property VISIBLE : Integer read GetVISIBLEValue write SetVISIBLEValue; + property VISIBLEIsNull : Boolean read GetVISIBLEIsNull write SetVISIBLEIsNull; + property OldVISIBLE : Integer read GetOldVISIBLEValue; + property OldVISIBLEIsNull : Boolean read GetOldVISIBLEIsNull; + property ID_ARTICULO : Integer read GetID_ARTICULOValue write SetID_ARTICULOValue; + property ID_ARTICULOIsNull : Boolean read GetID_ARTICULOIsNull write SetID_ARTICULOIsNull; + property OldID_ARTICULO : Integer read GetOldID_ARTICULOValue; + property OldID_ARTICULOIsNull : Boolean read GetOldID_ARTICULOIsNull; + property DESCUENTO : Float read GetDESCUENTOValue write SetDESCUENTOValue; + property DESCUENTOIsNull : Boolean read GetDESCUENTOIsNull write SetDESCUENTOIsNull; + property OldDESCUENTO : Float read GetOldDESCUENTOValue; + property OldDESCUENTOIsNull : Boolean read GetOldDESCUENTOIsNull; + property IMPORTE_PORTE : Currency read GetIMPORTE_PORTEValue write SetIMPORTE_PORTEValue; + property IMPORTE_PORTEIsNull : Boolean read GetIMPORTE_PORTEIsNull write SetIMPORTE_PORTEIsNull; + property OldIMPORTE_PORTE : Currency read GetOldIMPORTE_PORTEValue; + property OldIMPORTE_PORTEIsNull : Boolean read GetOldIMPORTE_PORTEIsNull; + property REFERENCIA : String read GetREFERENCIAValue write SetREFERENCIAValue; + property REFERENCIAIsNull : Boolean read GetREFERENCIAIsNull write SetREFERENCIAIsNull; + property OldREFERENCIA : String read GetOldREFERENCIAValue; + property OldREFERENCIAIsNull : Boolean read GetOldREFERENCIAIsNull; + property REFERENCIA_PROVEEDOR : String read GetREFERENCIA_PROVEEDORValue write SetREFERENCIA_PROVEEDORValue; + property REFERENCIA_PROVEEDORIsNull : Boolean read GetREFERENCIA_PROVEEDORIsNull write SetREFERENCIA_PROVEEDORIsNull; + property OldREFERENCIA_PROVEEDOR : String read GetOldREFERENCIA_PROVEEDORValue; + property OldREFERENCIA_PROVEEDORIsNull : Boolean read GetOldREFERENCIA_PROVEEDORIsNull; + + public + constructor Create(aBusinessProcessor: TDABusinessProcessor); override; + destructor Destroy; override; + + end; + +implementation + +uses + Variants, uROBinaryHelpers, uDAInterfaces; + +{ 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.GetVALORIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_DarReferenciaVALOR]); +end; + +function TDarReferenciaBusinessProcessorRules.GetOldVALORValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_DarReferenciaVALOR]; +end; + +function TDarReferenciaBusinessProcessorRules.GetOldVALORIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_DarReferenciaVALOR]); +end; + +procedure TDarReferenciaBusinessProcessorRules.SetVALORValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_DarReferenciaVALOR] := aValue; +end; + +procedure TDarReferenciaBusinessProcessorRules.SetVALORIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_DarReferenciaVALOR] := Null; +end; + + +{ TAlbaranesProveedorBusinessProcessorRules } +constructor TAlbaranesProveedorBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor); +var + StrList: TStringList; +begin + inherited; + + StrList := TStringList.Create; + StrList.OnChange := OBSERVACIONES_OnChange; + f_OBSERVACIONES := NewROStrings(StrList,True); + + StrList := TStringList.Create; + StrList.OnChange := INCIDENCIAS_OnChange; + f_INCIDENCIAS := NewROStrings(StrList,True); +end; + +destructor TAlbaranesProveedorBusinessProcessorRules.Destroy; +begin + inherited; +end; + +procedure TAlbaranesProveedorBusinessProcessorRules.OBSERVACIONES_OnChange(Sender: TObject); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorOBSERVACIONES] := TStringList(Sender).Text; +end; + +procedure TAlbaranesProveedorBusinessProcessorRules.INCIDENCIAS_OnChange(Sender: TObject); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorINCIDENCIAS] := TStringList(Sender).Text; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetIDValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorID]; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetIDIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorID]); +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetOldIDValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedorID]; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetOldIDIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedorID]); +end; + +procedure TAlbaranesProveedorBusinessProcessorRules.SetIDValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorID] := aValue; +end; + +procedure TAlbaranesProveedorBusinessProcessorRules.SetIDIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorID] := Null; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetID_EMPRESAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorID_EMPRESA]; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetID_EMPRESAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorID_EMPRESA]); +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetOldID_EMPRESAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedorID_EMPRESA]; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetOldID_EMPRESAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedorID_EMPRESA]); +end; + +procedure TAlbaranesProveedorBusinessProcessorRules.SetID_EMPRESAValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorID_EMPRESA] := aValue; +end; + +procedure TAlbaranesProveedorBusinessProcessorRules.SetID_EMPRESAIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorID_EMPRESA] := Null; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetID_PROVEEDORValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorID_PROVEEDOR]; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetID_PROVEEDORIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorID_PROVEEDOR]); +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetOldID_PROVEEDORValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedorID_PROVEEDOR]; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetOldID_PROVEEDORIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedorID_PROVEEDOR]); +end; + +procedure TAlbaranesProveedorBusinessProcessorRules.SetID_PROVEEDORValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorID_PROVEEDOR] := aValue; +end; + +procedure TAlbaranesProveedorBusinessProcessorRules.SetID_PROVEEDORIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorID_PROVEEDOR] := Null; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetNOMBREValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorNOMBRE]; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetNOMBREIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorNOMBRE]); +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetOldNOMBREValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedorNOMBRE]; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetOldNOMBREIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedorNOMBRE]); +end; + +procedure TAlbaranesProveedorBusinessProcessorRules.SetNOMBREValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorNOMBRE] := aValue; +end; + +procedure TAlbaranesProveedorBusinessProcessorRules.SetNOMBREIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorNOMBRE] := Null; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetFECHA_ALBARANValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorFECHA_ALBARAN]; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetFECHA_ALBARANIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorFECHA_ALBARAN]); +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetOldFECHA_ALBARANValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedorFECHA_ALBARAN]; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetOldFECHA_ALBARANIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedorFECHA_ALBARAN]); +end; + +procedure TAlbaranesProveedorBusinessProcessorRules.SetFECHA_ALBARANValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorFECHA_ALBARAN] := aValue; +end; + +procedure TAlbaranesProveedorBusinessProcessorRules.SetFECHA_ALBARANIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorFECHA_ALBARAN] := Null; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetREFERENCIAValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorREFERENCIA]; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetREFERENCIAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorREFERENCIA]); +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetOldREFERENCIAValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedorREFERENCIA]; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetOldREFERENCIAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedorREFERENCIA]); +end; + +procedure TAlbaranesProveedorBusinessProcessorRules.SetREFERENCIAValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorREFERENCIA] := aValue; +end; + +procedure TAlbaranesProveedorBusinessProcessorRules.SetREFERENCIAIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorREFERENCIA] := Null; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetREFERENCIA_PROVEEDORValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorREFERENCIA_PROVEEDOR]; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetREFERENCIA_PROVEEDORIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorREFERENCIA_PROVEEDOR]); +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetOldREFERENCIA_PROVEEDORValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedorREFERENCIA_PROVEEDOR]; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetOldREFERENCIA_PROVEEDORIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedorREFERENCIA_PROVEEDOR]); +end; + +procedure TAlbaranesProveedorBusinessProcessorRules.SetREFERENCIA_PROVEEDORValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorREFERENCIA_PROVEEDOR] := aValue; +end; + +procedure TAlbaranesProveedorBusinessProcessorRules.SetREFERENCIA_PROVEEDORIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorREFERENCIA_PROVEEDOR] := Null; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetTIPOValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorTIPO]; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetTIPOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorTIPO]); +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetOldTIPOValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedorTIPO]; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetOldTIPOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedorTIPO]); +end; + +procedure TAlbaranesProveedorBusinessProcessorRules.SetTIPOValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorTIPO] := aValue; +end; + +procedure TAlbaranesProveedorBusinessProcessorRules.SetTIPOIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorTIPO] := Null; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetID_ALMACENValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorID_ALMACEN]; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetID_ALMACENIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorID_ALMACEN]); +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetOldID_ALMACENValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedorID_ALMACEN]; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetOldID_ALMACENIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedorID_ALMACEN]); +end; + +procedure TAlbaranesProveedorBusinessProcessorRules.SetID_ALMACENValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorID_ALMACEN] := aValue; +end; + +procedure TAlbaranesProveedorBusinessProcessorRules.SetID_ALMACENIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorID_ALMACEN] := Null; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetNOMBRE_ALMACENValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorNOMBRE_ALMACEN]; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetNOMBRE_ALMACENIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorNOMBRE_ALMACEN]); +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetOldNOMBRE_ALMACENValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedorNOMBRE_ALMACEN]; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetOldNOMBRE_ALMACENIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedorNOMBRE_ALMACEN]); +end; + +procedure TAlbaranesProveedorBusinessProcessorRules.SetNOMBRE_ALMACENValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorNOMBRE_ALMACEN] := aValue; +end; + +procedure TAlbaranesProveedorBusinessProcessorRules.SetNOMBRE_ALMACENIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorNOMBRE_ALMACEN] := Null; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetID_PEDIDOValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorID_PEDIDO]; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetID_PEDIDOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorID_PEDIDO]); +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetOldID_PEDIDOValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedorID_PEDIDO]; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetOldID_PEDIDOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedorID_PEDIDO]); +end; + +procedure TAlbaranesProveedorBusinessProcessorRules.SetID_PEDIDOValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorID_PEDIDO] := aValue; +end; + +procedure TAlbaranesProveedorBusinessProcessorRules.SetID_PEDIDOIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorID_PEDIDO] := Null; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetREF_PED_PROVEEDORValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorREF_PED_PROVEEDOR]; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetREF_PED_PROVEEDORIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorREF_PED_PROVEEDOR]); +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetOldREF_PED_PROVEEDORValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedorREF_PED_PROVEEDOR]; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetOldREF_PED_PROVEEDORIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedorREF_PED_PROVEEDOR]); +end; + +procedure TAlbaranesProveedorBusinessProcessorRules.SetREF_PED_PROVEEDORValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorREF_PED_PROVEEDOR] := aValue; +end; + +procedure TAlbaranesProveedorBusinessProcessorRules.SetREF_PED_PROVEEDORIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorREF_PED_PROVEEDOR] := Null; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetID_FACTURAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorID_FACTURA]; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetID_FACTURAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorID_FACTURA]); +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetOldID_FACTURAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedorID_FACTURA]; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetOldID_FACTURAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedorID_FACTURA]); +end; + +procedure TAlbaranesProveedorBusinessProcessorRules.SetID_FACTURAValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorID_FACTURA] := aValue; +end; + +procedure TAlbaranesProveedorBusinessProcessorRules.SetID_FACTURAIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorID_FACTURA] := Null; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetREF_FACTURAValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorREF_FACTURA]; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetREF_FACTURAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorREF_FACTURA]); +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetOldREF_FACTURAValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedorREF_FACTURA]; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetOldREF_FACTURAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedorREF_FACTURA]); +end; + +procedure TAlbaranesProveedorBusinessProcessorRules.SetREF_FACTURAValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorREF_FACTURA] := aValue; +end; + +procedure TAlbaranesProveedorBusinessProcessorRules.SetREF_FACTURAIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorREF_FACTURA] := Null; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetREF_FACTURA_PROVValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorREF_FACTURA_PROV]; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetREF_FACTURA_PROVIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorREF_FACTURA_PROV]); +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetOldREF_FACTURA_PROVValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedorREF_FACTURA_PROV]; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetOldREF_FACTURA_PROVIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedorREF_FACTURA_PROV]); +end; + +procedure TAlbaranesProveedorBusinessProcessorRules.SetREF_FACTURA_PROVValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorREF_FACTURA_PROV] := aValue; +end; + +procedure TAlbaranesProveedorBusinessProcessorRules.SetREF_FACTURA_PROVIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorREF_FACTURA_PROV] := Null; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetCALLEValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorCALLE]; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetCALLEIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorCALLE]); +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetOldCALLEValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedorCALLE]; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetOldCALLEIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedorCALLE]); +end; + +procedure TAlbaranesProveedorBusinessProcessorRules.SetCALLEValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorCALLE] := aValue; +end; + +procedure TAlbaranesProveedorBusinessProcessorRules.SetCALLEIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorCALLE] := Null; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetCODIGO_POSTALValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorCODIGO_POSTAL]; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetCODIGO_POSTALIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorCODIGO_POSTAL]); +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetOldCODIGO_POSTALValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedorCODIGO_POSTAL]; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetOldCODIGO_POSTALIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedorCODIGO_POSTAL]); +end; + +procedure TAlbaranesProveedorBusinessProcessorRules.SetCODIGO_POSTALValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorCODIGO_POSTAL] := aValue; +end; + +procedure TAlbaranesProveedorBusinessProcessorRules.SetCODIGO_POSTALIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorCODIGO_POSTAL] := Null; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetPOBLACIONValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorPOBLACION]; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetPOBLACIONIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorPOBLACION]); +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetOldPOBLACIONValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedorPOBLACION]; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetOldPOBLACIONIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedorPOBLACION]); +end; + +procedure TAlbaranesProveedorBusinessProcessorRules.SetPOBLACIONValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorPOBLACION] := aValue; +end; + +procedure TAlbaranesProveedorBusinessProcessorRules.SetPOBLACIONIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorPOBLACION] := Null; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetPROVINCIAValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorPROVINCIA]; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetPROVINCIAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorPROVINCIA]); +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetOldPROVINCIAValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedorPROVINCIA]; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetOldPROVINCIAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedorPROVINCIA]); +end; + +procedure TAlbaranesProveedorBusinessProcessorRules.SetPROVINCIAValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorPROVINCIA] := aValue; +end; + +procedure TAlbaranesProveedorBusinessProcessorRules.SetPROVINCIAIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorPROVINCIA] := Null; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetPERSONA_CONTACTOValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorPERSONA_CONTACTO]; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetPERSONA_CONTACTOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorPERSONA_CONTACTO]); +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetOldPERSONA_CONTACTOValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedorPERSONA_CONTACTO]; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetOldPERSONA_CONTACTOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedorPERSONA_CONTACTO]); +end; + +procedure TAlbaranesProveedorBusinessProcessorRules.SetPERSONA_CONTACTOValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorPERSONA_CONTACTO] := aValue; +end; + +procedure TAlbaranesProveedorBusinessProcessorRules.SetPERSONA_CONTACTOIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorPERSONA_CONTACTO] := Null; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetTELEFONOValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorTELEFONO]; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetTELEFONOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorTELEFONO]); +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetOldTELEFONOValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedorTELEFONO]; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetOldTELEFONOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedorTELEFONO]); +end; + +procedure TAlbaranesProveedorBusinessProcessorRules.SetTELEFONOValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorTELEFONO] := aValue; +end; + +procedure TAlbaranesProveedorBusinessProcessorRules.SetTELEFONOIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorTELEFONO] := Null; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetIMPORTE_NETOValue: Currency; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorIMPORTE_NETO]; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetIMPORTE_NETOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorIMPORTE_NETO]); +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetOldIMPORTE_NETOValue: Currency; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedorIMPORTE_NETO]; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetOldIMPORTE_NETOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedorIMPORTE_NETO]); +end; + +procedure TAlbaranesProveedorBusinessProcessorRules.SetIMPORTE_NETOValue(const aValue: Currency); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorIMPORTE_NETO] := aValue; +end; + +procedure TAlbaranesProveedorBusinessProcessorRules.SetIMPORTE_NETOIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorIMPORTE_NETO] := Null; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetIMPORTE_PORTEValue: Currency; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorIMPORTE_PORTE]; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetIMPORTE_PORTEIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorIMPORTE_PORTE]); +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetOldIMPORTE_PORTEValue: Currency; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedorIMPORTE_PORTE]; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetOldIMPORTE_PORTEIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedorIMPORTE_PORTE]); +end; + +procedure TAlbaranesProveedorBusinessProcessorRules.SetIMPORTE_PORTEValue(const aValue: Currency); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorIMPORTE_PORTE] := aValue; +end; + +procedure TAlbaranesProveedorBusinessProcessorRules.SetIMPORTE_PORTEIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorIMPORTE_PORTE] := Null; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetDESCUENTOValue: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorDESCUENTO]; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetDESCUENTOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorDESCUENTO]); +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetOldDESCUENTOValue: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedorDESCUENTO]; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetOldDESCUENTOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedorDESCUENTO]); +end; + +procedure TAlbaranesProveedorBusinessProcessorRules.SetDESCUENTOValue(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorDESCUENTO] := aValue; +end; + +procedure TAlbaranesProveedorBusinessProcessorRules.SetDESCUENTOIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorDESCUENTO] := Null; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetIMPORTE_DESCUENTOValue: Currency; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorIMPORTE_DESCUENTO]; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetIMPORTE_DESCUENTOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorIMPORTE_DESCUENTO]); +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetOldIMPORTE_DESCUENTOValue: Currency; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedorIMPORTE_DESCUENTO]; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetOldIMPORTE_DESCUENTOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedorIMPORTE_DESCUENTO]); +end; + +procedure TAlbaranesProveedorBusinessProcessorRules.SetIMPORTE_DESCUENTOValue(const aValue: Currency); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorIMPORTE_DESCUENTO] := aValue; +end; + +procedure TAlbaranesProveedorBusinessProcessorRules.SetIMPORTE_DESCUENTOIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorIMPORTE_DESCUENTO] := Null; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetBASE_IMPONIBLEValue: Currency; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorBASE_IMPONIBLE]; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetBASE_IMPONIBLEIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorBASE_IMPONIBLE]); +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetOldBASE_IMPONIBLEValue: Currency; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedorBASE_IMPONIBLE]; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetOldBASE_IMPONIBLEIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedorBASE_IMPONIBLE]); +end; + +procedure TAlbaranesProveedorBusinessProcessorRules.SetBASE_IMPONIBLEValue(const aValue: Currency); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorBASE_IMPONIBLE] := aValue; +end; + +procedure TAlbaranesProveedorBusinessProcessorRules.SetBASE_IMPONIBLEIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorBASE_IMPONIBLE] := Null; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetIVAValue: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorIVA]; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetIVAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorIVA]); +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetOldIVAValue: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedorIVA]; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetOldIVAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedorIVA]); +end; + +procedure TAlbaranesProveedorBusinessProcessorRules.SetIVAValue(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorIVA] := aValue; +end; + +procedure TAlbaranesProveedorBusinessProcessorRules.SetIVAIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorIVA] := Null; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetIMPORTE_IVAValue: Currency; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorIMPORTE_IVA]; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetIMPORTE_IVAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorIMPORTE_IVA]); +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetOldIMPORTE_IVAValue: Currency; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedorIMPORTE_IVA]; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetOldIMPORTE_IVAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedorIMPORTE_IVA]); +end; + +procedure TAlbaranesProveedorBusinessProcessorRules.SetIMPORTE_IVAValue(const aValue: Currency); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorIMPORTE_IVA] := aValue; +end; + +procedure TAlbaranesProveedorBusinessProcessorRules.SetIMPORTE_IVAIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorIMPORTE_IVA] := Null; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetIMPORTE_TOTALValue: Currency; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorIMPORTE_TOTAL]; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetIMPORTE_TOTALIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorIMPORTE_TOTAL]); +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetOldIMPORTE_TOTALValue: Currency; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedorIMPORTE_TOTAL]; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetOldIMPORTE_TOTALIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedorIMPORTE_TOTAL]); +end; + +procedure TAlbaranesProveedorBusinessProcessorRules.SetIMPORTE_TOTALValue(const aValue: Currency); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorIMPORTE_TOTAL] := aValue; +end; + +procedure TAlbaranesProveedorBusinessProcessorRules.SetIMPORTE_TOTALIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorIMPORTE_TOTAL] := Null; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetOBSERVACIONESValue: IROStrings; +begin + result := f_OBSERVACIONES; + result.Text := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorOBSERVACIONES]; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetOBSERVACIONESIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorOBSERVACIONES]); +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetOldOBSERVACIONESValue: IROStrings; +begin + result := NewROStrings(); + result.Text := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedorOBSERVACIONES]; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetOldOBSERVACIONESIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedorOBSERVACIONES]); +end; + +procedure TAlbaranesProveedorBusinessProcessorRules.SetOBSERVACIONESIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorOBSERVACIONES] := Null; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetINCIDENCIASValue: IROStrings; +begin + result := f_INCIDENCIAS; + result.Text := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorINCIDENCIAS]; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetINCIDENCIASIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorINCIDENCIAS]); +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetOldINCIDENCIASValue: IROStrings; +begin + result := NewROStrings(); + result.Text := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedorINCIDENCIAS]; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetOldINCIDENCIASIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedorINCIDENCIAS]); +end; + +procedure TAlbaranesProveedorBusinessProcessorRules.SetINCIDENCIASIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorINCIDENCIAS] := Null; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetINCIDENCIAS_ACTIVASValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorINCIDENCIAS_ACTIVAS]; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetINCIDENCIAS_ACTIVASIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorINCIDENCIAS_ACTIVAS]); +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetOldINCIDENCIAS_ACTIVASValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedorINCIDENCIAS_ACTIVAS]; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetOldINCIDENCIAS_ACTIVASIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedorINCIDENCIAS_ACTIVAS]); +end; + +procedure TAlbaranesProveedorBusinessProcessorRules.SetINCIDENCIAS_ACTIVASValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorINCIDENCIAS_ACTIVAS] := aValue; +end; + +procedure TAlbaranesProveedorBusinessProcessorRules.SetINCIDENCIAS_ACTIVASIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorINCIDENCIAS_ACTIVAS] := Null; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetFECHA_ALTAValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorFECHA_ALTA]; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetFECHA_ALTAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorFECHA_ALTA]); +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetOldFECHA_ALTAValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedorFECHA_ALTA]; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetOldFECHA_ALTAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedorFECHA_ALTA]); +end; + +procedure TAlbaranesProveedorBusinessProcessorRules.SetFECHA_ALTAValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorFECHA_ALTA] := aValue; +end; + +procedure TAlbaranesProveedorBusinessProcessorRules.SetFECHA_ALTAIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorFECHA_ALTA] := Null; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetFECHA_MODIFICACIONValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorFECHA_MODIFICACION]; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetFECHA_MODIFICACIONIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorFECHA_MODIFICACION]); +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetOldFECHA_MODIFICACIONValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedorFECHA_MODIFICACION]; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetOldFECHA_MODIFICACIONIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedorFECHA_MODIFICACION]); +end; + +procedure TAlbaranesProveedorBusinessProcessorRules.SetFECHA_MODIFICACIONValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorFECHA_MODIFICACION] := aValue; +end; + +procedure TAlbaranesProveedorBusinessProcessorRules.SetFECHA_MODIFICACIONIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorFECHA_MODIFICACION] := Null; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetUSUARIOValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorUSUARIO]; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetUSUARIOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorUSUARIO]); +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetOldUSUARIOValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedorUSUARIO]; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetOldUSUARIOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedorUSUARIO]); +end; + +procedure TAlbaranesProveedorBusinessProcessorRules.SetUSUARIOValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorUSUARIO] := aValue; +end; + +procedure TAlbaranesProveedorBusinessProcessorRules.SetUSUARIOIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorUSUARIO] := Null; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetID_FORMA_PAGOValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorID_FORMA_PAGO]; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetID_FORMA_PAGOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorID_FORMA_PAGO]); +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetOldID_FORMA_PAGOValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedorID_FORMA_PAGO]; +end; + +function TAlbaranesProveedorBusinessProcessorRules.GetOldID_FORMA_PAGOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedorID_FORMA_PAGO]); +end; + +procedure TAlbaranesProveedorBusinessProcessorRules.SetID_FORMA_PAGOValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorID_FORMA_PAGO] := aValue; +end; + +procedure TAlbaranesProveedorBusinessProcessorRules.SetID_FORMA_PAGOIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedorID_FORMA_PAGO] := Null; +end; + + +{ TAlbaranesProveedor_DetallesBusinessProcessorRules } +constructor TAlbaranesProveedor_DetallesBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor); +begin + inherited; +end; + +destructor TAlbaranesProveedor_DetallesBusinessProcessorRules.Destroy; +begin + inherited; +end; + +function TAlbaranesProveedor_DetallesBusinessProcessorRules.GetIDValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedor_DetallesID]; +end; + +function TAlbaranesProveedor_DetallesBusinessProcessorRules.GetIDIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedor_DetallesID]); +end; + +function TAlbaranesProveedor_DetallesBusinessProcessorRules.GetOldIDValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedor_DetallesID]; +end; + +function TAlbaranesProveedor_DetallesBusinessProcessorRules.GetOldIDIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedor_DetallesID]); +end; + +procedure TAlbaranesProveedor_DetallesBusinessProcessorRules.SetIDValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedor_DetallesID] := aValue; +end; + +procedure TAlbaranesProveedor_DetallesBusinessProcessorRules.SetIDIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedor_DetallesID] := Null; +end; + +function TAlbaranesProveedor_DetallesBusinessProcessorRules.GetID_ALBARANValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedor_DetallesID_ALBARAN]; +end; + +function TAlbaranesProveedor_DetallesBusinessProcessorRules.GetID_ALBARANIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedor_DetallesID_ALBARAN]); +end; + +function TAlbaranesProveedor_DetallesBusinessProcessorRules.GetOldID_ALBARANValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedor_DetallesID_ALBARAN]; +end; + +function TAlbaranesProveedor_DetallesBusinessProcessorRules.GetOldID_ALBARANIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedor_DetallesID_ALBARAN]); +end; + +procedure TAlbaranesProveedor_DetallesBusinessProcessorRules.SetID_ALBARANValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedor_DetallesID_ALBARAN] := aValue; +end; + +procedure TAlbaranesProveedor_DetallesBusinessProcessorRules.SetID_ALBARANIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedor_DetallesID_ALBARAN] := Null; +end; + +function TAlbaranesProveedor_DetallesBusinessProcessorRules.GetPOSICIONValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedor_DetallesPOSICION]; +end; + +function TAlbaranesProveedor_DetallesBusinessProcessorRules.GetPOSICIONIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedor_DetallesPOSICION]); +end; + +function TAlbaranesProveedor_DetallesBusinessProcessorRules.GetOldPOSICIONValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedor_DetallesPOSICION]; +end; + +function TAlbaranesProveedor_DetallesBusinessProcessorRules.GetOldPOSICIONIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedor_DetallesPOSICION]); +end; + +procedure TAlbaranesProveedor_DetallesBusinessProcessorRules.SetPOSICIONValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedor_DetallesPOSICION] := aValue; +end; + +procedure TAlbaranesProveedor_DetallesBusinessProcessorRules.SetPOSICIONIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedor_DetallesPOSICION] := Null; +end; + +function TAlbaranesProveedor_DetallesBusinessProcessorRules.GetTIPO_DETALLEValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedor_DetallesTIPO_DETALLE]; +end; + +function TAlbaranesProveedor_DetallesBusinessProcessorRules.GetTIPO_DETALLEIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedor_DetallesTIPO_DETALLE]); +end; + +function TAlbaranesProveedor_DetallesBusinessProcessorRules.GetOldTIPO_DETALLEValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedor_DetallesTIPO_DETALLE]; +end; + +function TAlbaranesProveedor_DetallesBusinessProcessorRules.GetOldTIPO_DETALLEIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedor_DetallesTIPO_DETALLE]); +end; + +procedure TAlbaranesProveedor_DetallesBusinessProcessorRules.SetTIPO_DETALLEValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedor_DetallesTIPO_DETALLE] := aValue; +end; + +procedure TAlbaranesProveedor_DetallesBusinessProcessorRules.SetTIPO_DETALLEIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedor_DetallesTIPO_DETALLE] := Null; +end; + +function TAlbaranesProveedor_DetallesBusinessProcessorRules.GetCONCEPTOValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedor_DetallesCONCEPTO]; +end; + +function TAlbaranesProveedor_DetallesBusinessProcessorRules.GetCONCEPTOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedor_DetallesCONCEPTO]); +end; + +function TAlbaranesProveedor_DetallesBusinessProcessorRules.GetOldCONCEPTOValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedor_DetallesCONCEPTO]; +end; + +function TAlbaranesProveedor_DetallesBusinessProcessorRules.GetOldCONCEPTOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedor_DetallesCONCEPTO]); +end; + +procedure TAlbaranesProveedor_DetallesBusinessProcessorRules.SetCONCEPTOValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedor_DetallesCONCEPTO] := aValue; +end; + +procedure TAlbaranesProveedor_DetallesBusinessProcessorRules.SetCONCEPTOIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedor_DetallesCONCEPTO] := Null; +end; + +function TAlbaranesProveedor_DetallesBusinessProcessorRules.GetCANTIDADValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedor_DetallesCANTIDAD]; +end; + +function TAlbaranesProveedor_DetallesBusinessProcessorRules.GetCANTIDADIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedor_DetallesCANTIDAD]); +end; + +function TAlbaranesProveedor_DetallesBusinessProcessorRules.GetOldCANTIDADValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedor_DetallesCANTIDAD]; +end; + +function TAlbaranesProveedor_DetallesBusinessProcessorRules.GetOldCANTIDADIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedor_DetallesCANTIDAD]); +end; + +procedure TAlbaranesProveedor_DetallesBusinessProcessorRules.SetCANTIDADValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedor_DetallesCANTIDAD] := aValue; +end; + +procedure TAlbaranesProveedor_DetallesBusinessProcessorRules.SetCANTIDADIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedor_DetallesCANTIDAD] := Null; +end; + +function TAlbaranesProveedor_DetallesBusinessProcessorRules.GetIMPORTE_UNIDADValue: Currency; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedor_DetallesIMPORTE_UNIDAD]; +end; + +function TAlbaranesProveedor_DetallesBusinessProcessorRules.GetIMPORTE_UNIDADIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedor_DetallesIMPORTE_UNIDAD]); +end; + +function TAlbaranesProveedor_DetallesBusinessProcessorRules.GetOldIMPORTE_UNIDADValue: Currency; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedor_DetallesIMPORTE_UNIDAD]; +end; + +function TAlbaranesProveedor_DetallesBusinessProcessorRules.GetOldIMPORTE_UNIDADIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedor_DetallesIMPORTE_UNIDAD]); +end; + +procedure TAlbaranesProveedor_DetallesBusinessProcessorRules.SetIMPORTE_UNIDADValue(const aValue: Currency); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedor_DetallesIMPORTE_UNIDAD] := aValue; +end; + +procedure TAlbaranesProveedor_DetallesBusinessProcessorRules.SetIMPORTE_UNIDADIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedor_DetallesIMPORTE_UNIDAD] := Null; +end; + +function TAlbaranesProveedor_DetallesBusinessProcessorRules.GetIMPORTE_TOTALValue: Currency; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedor_DetallesIMPORTE_TOTAL]; +end; + +function TAlbaranesProveedor_DetallesBusinessProcessorRules.GetIMPORTE_TOTALIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedor_DetallesIMPORTE_TOTAL]); +end; + +function TAlbaranesProveedor_DetallesBusinessProcessorRules.GetOldIMPORTE_TOTALValue: Currency; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedor_DetallesIMPORTE_TOTAL]; +end; + +function TAlbaranesProveedor_DetallesBusinessProcessorRules.GetOldIMPORTE_TOTALIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedor_DetallesIMPORTE_TOTAL]); +end; + +procedure TAlbaranesProveedor_DetallesBusinessProcessorRules.SetIMPORTE_TOTALValue(const aValue: Currency); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedor_DetallesIMPORTE_TOTAL] := aValue; +end; + +procedure TAlbaranesProveedor_DetallesBusinessProcessorRules.SetIMPORTE_TOTALIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedor_DetallesIMPORTE_TOTAL] := Null; +end; + +function TAlbaranesProveedor_DetallesBusinessProcessorRules.GetVISIBLEValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedor_DetallesVISIBLE]; +end; + +function TAlbaranesProveedor_DetallesBusinessProcessorRules.GetVISIBLEIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedor_DetallesVISIBLE]); +end; + +function TAlbaranesProveedor_DetallesBusinessProcessorRules.GetOldVISIBLEValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedor_DetallesVISIBLE]; +end; + +function TAlbaranesProveedor_DetallesBusinessProcessorRules.GetOldVISIBLEIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedor_DetallesVISIBLE]); +end; + +procedure TAlbaranesProveedor_DetallesBusinessProcessorRules.SetVISIBLEValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedor_DetallesVISIBLE] := aValue; +end; + +procedure TAlbaranesProveedor_DetallesBusinessProcessorRules.SetVISIBLEIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedor_DetallesVISIBLE] := Null; +end; + +function TAlbaranesProveedor_DetallesBusinessProcessorRules.GetID_ARTICULOValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedor_DetallesID_ARTICULO]; +end; + +function TAlbaranesProveedor_DetallesBusinessProcessorRules.GetID_ARTICULOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedor_DetallesID_ARTICULO]); +end; + +function TAlbaranesProveedor_DetallesBusinessProcessorRules.GetOldID_ARTICULOValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedor_DetallesID_ARTICULO]; +end; + +function TAlbaranesProveedor_DetallesBusinessProcessorRules.GetOldID_ARTICULOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedor_DetallesID_ARTICULO]); +end; + +procedure TAlbaranesProveedor_DetallesBusinessProcessorRules.SetID_ARTICULOValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedor_DetallesID_ARTICULO] := aValue; +end; + +procedure TAlbaranesProveedor_DetallesBusinessProcessorRules.SetID_ARTICULOIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedor_DetallesID_ARTICULO] := Null; +end; + +function TAlbaranesProveedor_DetallesBusinessProcessorRules.GetDESCUENTOValue: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedor_DetallesDESCUENTO]; +end; + +function TAlbaranesProveedor_DetallesBusinessProcessorRules.GetDESCUENTOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedor_DetallesDESCUENTO]); +end; + +function TAlbaranesProveedor_DetallesBusinessProcessorRules.GetOldDESCUENTOValue: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedor_DetallesDESCUENTO]; +end; + +function TAlbaranesProveedor_DetallesBusinessProcessorRules.GetOldDESCUENTOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedor_DetallesDESCUENTO]); +end; + +procedure TAlbaranesProveedor_DetallesBusinessProcessorRules.SetDESCUENTOValue(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedor_DetallesDESCUENTO] := aValue; +end; + +procedure TAlbaranesProveedor_DetallesBusinessProcessorRules.SetDESCUENTOIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedor_DetallesDESCUENTO] := Null; +end; + +function TAlbaranesProveedor_DetallesBusinessProcessorRules.GetIMPORTE_PORTEValue: Currency; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedor_DetallesIMPORTE_PORTE]; +end; + +function TAlbaranesProveedor_DetallesBusinessProcessorRules.GetIMPORTE_PORTEIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedor_DetallesIMPORTE_PORTE]); +end; + +function TAlbaranesProveedor_DetallesBusinessProcessorRules.GetOldIMPORTE_PORTEValue: Currency; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedor_DetallesIMPORTE_PORTE]; +end; + +function TAlbaranesProveedor_DetallesBusinessProcessorRules.GetOldIMPORTE_PORTEIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedor_DetallesIMPORTE_PORTE]); +end; + +procedure TAlbaranesProveedor_DetallesBusinessProcessorRules.SetIMPORTE_PORTEValue(const aValue: Currency); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedor_DetallesIMPORTE_PORTE] := aValue; +end; + +procedure TAlbaranesProveedor_DetallesBusinessProcessorRules.SetIMPORTE_PORTEIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedor_DetallesIMPORTE_PORTE] := Null; +end; + +function TAlbaranesProveedor_DetallesBusinessProcessorRules.GetREFERENCIAValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedor_DetallesREFERENCIA]; +end; + +function TAlbaranesProveedor_DetallesBusinessProcessorRules.GetREFERENCIAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedor_DetallesREFERENCIA]); +end; + +function TAlbaranesProveedor_DetallesBusinessProcessorRules.GetOldREFERENCIAValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedor_DetallesREFERENCIA]; +end; + +function TAlbaranesProveedor_DetallesBusinessProcessorRules.GetOldREFERENCIAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedor_DetallesREFERENCIA]); +end; + +procedure TAlbaranesProveedor_DetallesBusinessProcessorRules.SetREFERENCIAValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedor_DetallesREFERENCIA] := aValue; +end; + +procedure TAlbaranesProveedor_DetallesBusinessProcessorRules.SetREFERENCIAIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedor_DetallesREFERENCIA] := Null; +end; + +function TAlbaranesProveedor_DetallesBusinessProcessorRules.GetREFERENCIA_PROVEEDORValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedor_DetallesREFERENCIA_PROVEEDOR]; +end; + +function TAlbaranesProveedor_DetallesBusinessProcessorRules.GetREFERENCIA_PROVEEDORIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedor_DetallesREFERENCIA_PROVEEDOR]); +end; + +function TAlbaranesProveedor_DetallesBusinessProcessorRules.GetOldREFERENCIA_PROVEEDORValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedor_DetallesREFERENCIA_PROVEEDOR]; +end; + +function TAlbaranesProveedor_DetallesBusinessProcessorRules.GetOldREFERENCIA_PROVEEDORIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_AlbaranesProveedor_DetallesREFERENCIA_PROVEEDOR]); +end; + +procedure TAlbaranesProveedor_DetallesBusinessProcessorRules.SetREFERENCIA_PROVEEDORValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedor_DetallesREFERENCIA_PROVEEDOR] := aValue; +end; + +procedure TAlbaranesProveedor_DetallesBusinessProcessorRules.SetREFERENCIA_PROVEEDORIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_AlbaranesProveedor_DetallesREFERENCIA_PROVEEDOR] := Null; +end; + + +initialization + RegisterBusinessProcessorRules(RID_DarReferenciaDelta, TDarReferenciaBusinessProcessorRules); + RegisterBusinessProcessorRules(RID_AlbaranesProveedorDelta, TAlbaranesProveedorBusinessProcessorRules); + RegisterBusinessProcessorRules(RID_AlbaranesProveedor_DetallesDelta, TAlbaranesProveedor_DetallesBusinessProcessorRules); + +end. diff --git a/Source/Modulos/Albaranes de proveedor/Model/uBizAlbaranProveedorServer.PAS b/Source/Modulos/Albaranes de proveedor/Model/uBizAlbaranProveedorServer.PAS new file mode 100644 index 00000000..e4ef8edd --- /dev/null +++ b/Source/Modulos/Albaranes de proveedor/Model/uBizAlbaranProveedorServer.PAS @@ -0,0 +1,81 @@ +unit uBizAlbaranProveedorServer; + +interface + +uses + schFacturasClienteServer_Intf, uDAInterfaces, uDADelta, + 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 BeforeProcessDelta(Sender: TDABusinessProcessor; const aDelta: IDADelta); override; + end; + +implementation + +uses + Dialogs, SysUtils, Variants, uDataModuleServer, uDAClasses, DARemoteService_Impl, + schAlbaranesProveedorClient_Intf, uBusinessUtils, uReferenciasUtils, uROClasses; + +{ TBizFacturasClienteServer } + +procedure TBizAlbaranProveedorServer.BeforeProcessDelta(Sender: TDABusinessProcessor; const aDelta: IDADelta); +var + ASchema : TDASchema; + ACurrentConn : IDAConnection; + dsData: IDADataset; + Empresa : Variant; + CodigoReferencia: String; + +begin + inherited; + case Sender.CurrentChange.ChangeType of + ctInsert, ctUpdate: begin + //Si la referencia no ha sido asignada le asignamos una nosotros + if (VarIsNull(Sender.CurrentChange.NewValueByName[fld_AlbaranesProveedorREFERENCIA])) + or (VarToStr(Sender.CurrentChange.NewValueByName[fld_AlbaranesProveedorREFERENCIA]) = '') then + begin + ASchema := BusinessProcessor.Schema; + ACurrentConn := GetBusinessProcessorConnection(BusinessProcessor); + + try + //Siempre va a estar rellena + Empresa := Sender.CurrentChange.NewValueByName[fld_AlbaranesProveedorID_EMPRESA]; + if Sender.CurrentChange.NewValueByName[fld_AlbaranesProveedorIMPORTE_TOTAL] < 0 then + CodigoReferencia := REF_ALBARANES_DEV_PROVEEDOR + else + CodigoReferencia := REF_ALBARANES_PROVEEDOR; + + dsData := ASchema.NewDataset(ACurrentConn, 'DarReferencia', ['CODIGO', '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', '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..2e4bacf7 --- /dev/null +++ b/Source/Modulos/Albaranes de proveedor/Model/uBizAlbaranesProveedor.pas @@ -0,0 +1,299 @@ +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, DB, uFactuGES_App; + +{ TBizAlbaranProveedor } + +procedure TBizAlbaranProveedor.CalcularBaseImponible; +begin + if not Self.DataTable.Editing then + Edit; + IMPORTE_DESCUENTO := IMPORTE_NETO * (DESCUENTO/100); + BASE_IMPONIBLE := IMPORTE_NETO - IMPORTE_DESCUENTO; //+ IMPORTE_PORTE; ya no se tiene en cuenta porque se desglosa por artculo +end; + +procedure TBizAlbaranProveedor.CalcularImporteTotal; +begin + DataTable.DisableControls; + DataTable.Fields.FieldEventsDisabled := True; + try + CalcularBaseImponible; + CalcularIVA; + + if not Self.DataTable.Editing then + Edit; + IMPORTE_TOTAL := BASE_IMPONIBLE + IMPORTE_IVA; + finally + DataTable.Fields.FieldEventsDisabled := False; + DataTable.EnableControls; + end; +end; + +procedure TBizAlbaranProveedor.CalcularIVA; +begin + if not Self.DataTable.Editing then + Edit; + IMPORTE_IVA := (IVA / 100) * (BASE_IMPONIBLE); +end; + +constructor TBizAlbaranProveedor.Create(aDataTable: TDADataTable); +begin + inherited; + FProveedor := Nil; + + with DataTable do + begin + FieldByName(fld_AlbaranesProveedorIMPORTE_NETO).OnChange := IMPORTE_NETOOnChange; + FieldByName(fld_AlbaranesProveedorIMPORTE_PORTE).OnChange := IMPORTE_PORTEOnChange; + FieldByName(fld_AlbaranesProveedorDESCUENTO).OnChange := DESCUENTOOnChange; + FieldByName(fld_AlbaranesProveedorIVA).OnChange := IVAOnChange; + end; + + FDetallesLink := TDADataSource.Create(NIL); + FDetallesLink.DataTable := aDataTable; + + FSeleccionableInterface := TSeleccionable.Create(aDataTable); +end; + +procedure TBizAlbaranProveedor.DESCUENTOOnChange(Sender: TDACustomField); +begin + CalcularImporteTotal; +end; + +destructor TBizAlbaranProveedor.Destroy; +begin + FProveedor := NIL; + FDetalles := NIL; + FDetallesLink.Free; + + FSeleccionableInterface := NIL; + inherited; +end; + +function TBizAlbaranProveedor.EsNuevo: Boolean; +begin + Result := (ID < 0); +end; + +function TBizAlbaranProveedor.GetProveedor: IBizProveedor; +begin + Result := FProveedor; +end; + +procedure TBizAlbaranProveedor.IMPORTE_NETOOnChange(Sender: TDACustomField); +begin + CalcularImporteTotal; +end; + +procedure TBizAlbaranProveedor.IMPORTE_PORTEOnChange(Sender: TDACustomField); +begin + CalcularImporteTotal; +end; + +procedure TBizAlbaranProveedor.IniciarValoresAlbaranNuevo; +begin + ID_EMPRESA := AppFactuGES.EmpresaActiva.ID; + USUARIO := AppFactuGES.UsuarioActivo.UserName; + FECHA_ALBARAN := DateOf(Date); + INCIDENCIAS_ACTIVAS := 0; + TIPO := CTE_TIPO_ALBARAN; + // OJOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO + // ALMACN PUESTO A CAPN 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); +var + bEnEdicion : Boolean; + +begin + FProveedor := AValue; + + if Assigned(FProveedor) then + begin + if not FProveedor.DataTable.Active then + FProveedor.DataTable.Active := True; + + if ID_PROVEEDOR <> FProveedor.ID then + begin + bEnEdicion := (DataTable.State in dsEditModes); + if not bEnEdicion then + DataTable.Edit; + + ID_PROVEEDOR := FProveedor.ID; + + DataTable.Post; //Muy importante ya que es necesario hacer un post de la cabecera antes de aadir detalles + //si se quita el id de la cabecera y los detalles se desincroniza + if bEnEdicion then + DataTable.Edit; + end; + end; +end; + +function TBizAlbaranProveedor._GetProveedor: IBizProveedor; +begin + Result := FProveedor; +end; + +procedure TBizAlbaranProveedor._SetProveedor(AValue: IBizProveedor); +begin + FProveedor := AValue; +end; + +procedure TBizAlbaranProveedor.SetDetalles(Value: IBizDetallesAlbaranProveedor); +begin + FDetalles := Value; + EnlazarMaestroDetalle(FDetallesLink, FDetalles); +end; + +procedure TBizAlbaranProveedor.SetFECHA_ALBARANValue(const aValue: TDateTime); +begin + if EsFechaVacia(aValue) then + SetFieldNull(DataTable, fld_AlbaranesProveedorFECHA_ALBARAN) + else + inherited; +end; + +procedure TBizAlbaranProveedor.SetID_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. + + \ No newline at end of file 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..efc314bf --- /dev/null +++ b/Source/Modulos/Albaranes de proveedor/Model/uBizDetallesAlbaranProveedor.pas @@ -0,0 +1,48 @@ +unit uBizDetallesAlbaranProveedor; + +interface + +uses + uDADataTable, schAlbaranesProveedorClient_Intf, uDataTableUtils; + +const + BIZ_CLIENT_DETALLES_ALBARAN_PROVEEDOR = 'Client.DetallesAlbaran.Proveedor'; + + +type + IBizDetallesAlbaranProveedor = interface(IAlbaranesProveedor_Detalles) + ['{B0D734DF-6734-4959-B200-1574E10D7673}'] + end; + + TBizDetallesAlbaranProveedor = class(TAlbaranesProveedor_DetallesDataTableRules, IBizDetallesAlbaranProveedor) + private + ContIdAux: Integer; + + protected + procedure OnNewRecord(Sender: TDADataTable); override; + + public + constructor Create(aDataTable: TDADataTable); override; + end; + +implementation + +{ TBizDetallesAlbaranProveedor } + +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..5ab08db6 --- /dev/null +++ b/Source/Modulos/Albaranes de proveedor/Plugin/AlbaranesProveedor_plugin.dpk @@ -0,0 +1,34 @@ +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 ON} + +requires + AlbaranesProveedor_view, + AlbaranesProveedor_model; + +contains + uPluginAlbaranesProveedor in 'uPluginAlbaranesProveedor.pas' {PluginAlbaranesProveedor}; + +end. diff --git a/Source/Modulos/Albaranes de proveedor/Plugin/AlbaranesProveedor_plugin.dproj b/Source/Modulos/Albaranes de proveedor/Plugin/AlbaranesProveedor_plugin.dproj new file mode 100644 index 00000000..190c5ea6 --- /dev/null +++ b/Source/Modulos/Albaranes de proveedor/Plugin/AlbaranesProveedor_plugin.dproj @@ -0,0 +1,550 @@ + + + {e7d762a1-3a15-46b2-bd5b-3821d13b8347} + AlbaranesProveedor_plugin.dpk + Debug + AnyCPU + DCC32 + ..\..\..\..\Output\Debug\Cliente\AlbaranesProveedor_plugin.bpl + + + 7.0 + False + False + 0 + 3 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + RELEASE + + + 7.0 + 3 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + + + Delphi.Personality + Package + +FalseTrueFalseTrueFalseFalseTrueFalse1000FalseFalseFalseFalseFalse308212521.0.0.01.0.0.0 + + + + + + + RemObjects Pascal Script - RemObjects SDK 3.0 Integration + EurekaLog 5.1.9 + AlbaranesProveedor_plugin.dpk + + + + + MainSource + + + + +
    PluginAlbaranesProveedor
    +
    +
    +
    + + diff --git a/Source/Modulos/Albaranes de proveedor/Plugin/AlbaranesProveedor_plugin.rc b/Source/Modulos/Albaranes de proveedor/Plugin/AlbaranesProveedor_plugin.rc new file mode 100644 index 00000000..153736af --- /dev/null +++ b/Source/Modulos/Albaranes de proveedor/Plugin/AlbaranesProveedor_plugin.rc @@ -0,0 +1,22 @@ +1 VERSIONINFO +FILEVERSION 1,0,0,0 +PRODUCTVERSION 1,0,0,0 +FILEFLAGSMASK 0x3FL +FILEFLAGS 0x00L +FILEOS 0x40004L +FILETYPE 0x1L +FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "0C0A04E4" + BEGIN + VALUE "FileVersion", "1.0.0.0\0" + VALUE "ProductVersion", "1.0.0.0\0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x0C0A, 1252 + END +END diff --git a/Source/Modulos/Albaranes de proveedor/Plugin/AlbaranesProveedor_plugin.res b/Source/Modulos/Albaranes de proveedor/Plugin/AlbaranesProveedor_plugin.res new file mode 100644 index 0000000000000000000000000000000000000000..8b251f312bcccec5485024f6fe8d80e1cdf25746 GIT binary patch literal 384 zcmZ9HOA3Ne6ox;+L5PEv(4cV`IIrjdPAV##hV&wc1g%+%X(R2Xc{`~7t6e0Ioa?#% zkMj%AQhz>WYy7LeWAUaqx~Kv?-;(-Hs4-^ATIZOBrid9+-6Ne7&88mi>kUR4lo#jxZ;#*s4zxg9yNlk=H9sqkCD2^cEXKpiTBNfgkKpXJBWWaLt(Qkv@0 w5yv*t82((Wlr2{_+FDoDHKW2QCXvc+s**ul{{$ + 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/Reports/uRptAlbaranesProveedor_Server.dfm b/Source/Modulos/Albaranes de proveedor/Reports/uRptAlbaranesProveedor_Server.dfm new file mode 100644 index 00000000..1b7f47b8 --- /dev/null +++ b/Source/Modulos/Albaranes de proveedor/Reports/uRptAlbaranesProveedor_Server.dfm @@ -0,0 +1,1158 @@ +object RptAlbaranesProveedor: TRptAlbaranesProveedor + 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 = 'V_ALBARANES_PROVEEDOR' + SQL = + 'SELECT'#10' V_ALBARANES_PROVEEDOR.ID,'#10' V_ALBARANES_PROVEEDOR.ID_EM' + + 'PRESA,'#10' V_ALBARANES_PROVEEDOR.ID_PROVEEDOR,'#10' V_ALBARANES_PROVE' + + 'EDOR.NOMBRE,'#10' V_ALBARANES_PROVEEDOR.FECHA_ALBARAN,'#10' V_ALBARANE' + + 'S_PROVEEDOR.REFERENCIA,'#10' V_ALBARANES_PROVEEDOR.ID_PEDIDO,'#10' V_A' + + 'LBARANES_PROVEEDOR.REF_PED_PROVEEDOR,'#10' V_ALBARANES_PROVEEDOR.CO' + + 'DIGO_POSTAL,'#10' V_ALBARANES_PROVEEDOR.POBLACION,'#10' V_ALBARANES_PR' + + 'OVEEDOR.PROVINCIA,'#10' V_ALBARANES_PROVEEDOR.PERSONA_CONTACTO,'#10' V' + + '_ALBARANES_PROVEEDOR.TELEFONO,'#10' V_ALBARANES_PROVEEDOR.CALLE,'#10' ' + + 'V_ALBARANES_PROVEEDOR.OBSERVACIONES,'#10' V_ALBARANES_PROVEEDOR.IMP' + + 'ORTE_TOTAL,'#10' EMPRESAS.NIF_CIF AS NIF_CIF_EMPRESA,'#10' EMPRESAS.NO' + + 'MBRE AS NOMBRE_EMPRESA,'#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' EM' + + 'PRESAS.EMAIL_1 AS EMAIL_1_EMPRESA,'#10' EMPRESAS.PAGINA_WEB AS PAGI' + + 'NA_WEB_EMPRESA'#10'FROM'#10' V_ALBARANES_PROVEEDOR'#10' LEFT OUTER JOIN ' + + 'V_PROVEEDORES ON (V_PROVEEDORES.ID = V_ALBARANES_PROVEEDOR.ID_PR' + + 'OVEEDOR)'#10' LEFT OUTER JOIN EMPRESAS ON (EMPRESAS.ID = V_ALBARANE' + + 'S_PROVEEDOR.ID_EMPRESA)'#10'WHERE V_ALBARANES_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 = '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 = 'FECHA_ALBARAN' + TableField = 'FECHA_ALBARAN' + end + item + DatasetField = 'ID_PEDIDO' + TableField = 'ID_PEDIDO' + end + item + DatasetField = 'IMPORTE_TOTAL' + TableField = 'IMPORTE_TOTAL' + end + item + DatasetField = 'ID_PROVEEDOR' + TableField = 'ID_PROVEEDOR' + end + item + DatasetField = 'REF_PED_PROVEEDOR' + TableField = 'REF_PED_PROVEEDOR' + 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_PROVEEDOR' + 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_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_PED_PROVEEDOR' + 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_PROVEEDOR_DETALLES.ID, ALBARANES_PROVEEDOR_DETA' + + 'LLES.ID_ALBARAN,'#10' ALBARANES_PROVEEDOR_DETALLES.POSICION, A' + + 'LBARANES_PROVEEDOR_DETALLES.TIPO_DETALLE,'#10' ALBARANES_PROVE' + + 'EDOR_DETALLES.CONCEPTO, ALBARANES_PROVEEDOR_DETALLES.CANTIDAD,'#10' ' + + ' ALBARANES_PROVEEDOR_DETALLES.IMPORTE_UNIDAD, ALBARANES_PRO' + + 'VEEDOR_DETALLES.IMPORTE_TOTAL,'#10' ARTICULOS.REFERENCIA, ARTI' + + 'CULOS.FAMILIA, ARTICULOS.REFERENCIA_PROV as REFERENCIA_PROVEEDOR' + + #10#10'FROM ALBARANES_PROVEEDOR_DETALLES'#10'LEFT JOIN ARTICULOS ON (ALBA' + + 'RANES_PROVEEDOR_DETALLES.ID_ARTICULO = ARTICULOS.ID)'#10'WHERE ID_AL' + + 'BARAN = :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 = 39290.783958333330000000 + ScriptLanguage = 'PascalScript' + ScriptText.Strings = ( + '' + 'procedure DatosEmpresaOnBeforePrint(Sender: TfrxComponent);' + 'var' + ' Cadena: String;' + 'begin' + ' DatosEmpresa.Lines.Clear;' + ' if ( <> '#39#39') then' + ' Cadena := '#39'TLF: '#39' + ;' + ' if ( <> '#39#39') then' + + ' Cadena := Cadena + '#39' FAX: '#39' + ;' + ' DatosEmpresa.Lines.Add(Cadena);' + 'end;' + '' + 'procedure NombreEmpresaOnBeforePrint(Sender: TfrxComponent);' + 'begin' + ' NombreEmpresa.Lines.Clear;' + ' NombreEmpresa.Lines.Add();' + 'end;' + '' + 'procedure DireccionEnvioOnBeforePrint(Sender: TfrxComponent);' + 'var' + ' ACadena : String;' + 'begin' + ' ACadena := '#39#39';' + ' DireccionEnvio.Lines.Clear;' + '' + ' if ( <> '#39#39') then' + ' ACadena := ;' + ' if ( <> '#39#39') then' + + ' ACadena := ACadena + '#39' (tlf: '#39' + ' + + ' + '#39' )'#39';' + '' + ' DireccionEnvio.Lines.Add(ACadena);' + ' ACadena := '#39#39';' + ' DireccionEnvio.Lines.Add(ACadena);' + '' + ' 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();' + '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 PROVEEDOR'#39')' + 'end;' + '' + 'procedure Memo5OnBeforePrint(Sender: TfrxComponent);' + 'begin' + ' if (StrToFloat() < 0) then' + ' begin' + ' Memo5.Lines.Clear;' + ' Memo5.Lines.Add('#39'N'#186' orden:'#39');' + ' end;' + 'end;' + '' + 'procedure Memo1OnBeforePrint(Sender: TfrxComponent);' + 'begin' + ' if (StrToFloat() < 0) then' + ' begin' + ' Memo1.Lines.Clear;' + ' Memo1.Lines.Add('#39'Fecha orden:'#39');' + ' end;' + 'end;' + '' + 'procedure PageHeader1OnBeforePrint(Sender: TfrxComponent);' + 'begin' + ' if not Engine.FinalPass then' + ' Set('#39'TotalPaginas'#39', ( + 1));' + '' + ' if Engine.FinalPass then' + ' Set('#39'Pagina'#39', ( + 1));' + 'end;' + '' + 'procedure frxReportOnStartReport(Sender: TfrxComponent);' + 'begin' + ' Set('#39'Pagina'#39', 0);' + ' Set('#39'TotalPaginas'#39', 0);' + 'end;' + '' + '' + 'begin' + '' + 'end.') + ShowProgress = False + StoreInDFM = False + OnStartReport = 'frxReportOnStartReport' + Left = 169 + Top = 16 + Datasets = < + item + DataSet = frxDBCabecera + DataSetName = 'frxDBCabecera' + end + item + DataSet = frxDBDetalles + DataSetName = 'frxDBDetalles' + end> + Variables = < + item + Name = ' Paginacion' + Value = Null + end + item + Name = 'TotalPaginas' + Value = Null + end + item + Name = 'Pagina' + Value = Null + end> + 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 proveedor/Reports/uRptAlbaranesProveedor_Server.pas b/Source/Modulos/Albaranes de proveedor/Reports/uRptAlbaranesProveedor_Server.pas new file mode 100644 index 00000000..92a56823 --- /dev/null +++ b/Source/Modulos/Albaranes de proveedor/Reports/uRptAlbaranesProveedor_Server.pas @@ -0,0 +1,118 @@ +unit uRptAlbaranesProveedor_Server; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, frxClass, frxDBSet, uDAScriptingProvider, + uDADataTable, uDACDSDataTable, DB, uDAClasses, frxChart, frxGradient, + frxChBox, frxCross, frxOLE, frxBarcode, frxRich, uDABINAdapter, uROTypes, + uDAInterfaces; + +type + TRptAlbaranesProveedor = 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; + //Genera cada uno de los albaranes a imprimir + procedure GenerarAlbaran(const ID: integer); overload; + public + function GenerarAlbaran(const AID : String): Binary; overload; + end; + +implementation + +{$R *.dfm} + +uses + uDataModuleServer, schAlbaranesProveedorClient_Intf; + +const + rptInforme = 'InfAlbaranProveedor.fr3'; + + { Dataset names for schReport } + ds_InformeCabecera = 'Informe_Cabecera'; + ds_InformeDetalles = 'Informe_Detalles'; + + +{ TRptAlbaranesCliente } + + +procedure TRptAlbaranesProveedor.DataModuleCreate(Sender: TObject); +begin + schReport.ConnectionManager := dmServer.ConnectionManager; + FConnection := dmServer.DarNuevaConexion; + frxReport.EngineOptions.NewSilentMode := simReThrow; +end; + +function TRptAlbaranesProveedor.GenerarAlbaran(const AID: String): Binary; +var + ID_Albaranes: TStringList; + i: Integer; +begin + Result := Binary.Create; + FConnection.BeginTransaction; + + try + ID_Albaranes := TStringList.Create; + ID_Albaranes.CommaText := AID; + + //Vamos generando todos y cada uno de los albaranes recibidos + for i := 0 to ID_Albaranes.Count - 1 do + GenerarAlbaran(StrToInt(ID_Albaranes.Strings[i])); + + frxReport.PreviewPages.SaveToStream(Result); + + finally + FConnection.RollbackTransaction; + end; +end; + +procedure TRptAlbaranesProveedor.GenerarAlbaran(const ID: integer); +var + AStream: TMemoryStream; + dsMaster: IDADataset; + dsDetail: IDADataset; +begin + AStream := TMemoryStream.Create; + + try + dsMaster := schReport.NewDataset(FConnection, ds_InformeCabecera, ['ID'], [ID]); + dsDetail := schReport.NewDataset(FConnection, ds_InformeDetalles, ['ID_ALBARAN'], [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(False); + + finally + AStream.Free; + dsMaster := Nil; + dsDetail := Nil; + end; +end; + +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..edda8c75 --- /dev/null +++ b/Source/Modulos/Albaranes de proveedor/Servidor/srvAlbaranesProveedor_Impl.dfm @@ -0,0 +1,1506 @@ +object srvAlbaranesProveedor: TsrvAlbaranesProveedor + OldCreateOrder = True + OnCreate = DARemoteServiceCreate + RequiresSession = True + SessionManager = dmServer.SessionManager + ConnectionName = 'IBX' + ServiceSchema = schAlbaranesProveedor + ServiceDataStreamer = Bin2DataStreamer + ExportedDataTables = <> + BeforeAcquireConnection = DataAbstractServiceBeforeAcquireConnection + Height = 208 + Width = 384 + object schAlbaranesProveedor: TDASchema + ConnectionManager = dmServer.ConnectionManager + DataDictionary = DADataDictionary + Datasets = < + item + Params = < + item + Name = 'CODIGO' + Value = '' + ParamType = daptInput + end + item + Name = 'EMPRESA' + 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 = :EMPRESA'#10 + StatementType = stSQL + ColumnMappings = < + item + DatasetField = 'VALOR' + TableField = 'VALOR' + end> + end> + Name = 'DarReferencia' + Fields = < + item + Name = 'VALOR' + DataType = datString + Size = 255 + end> + end + item + Params = <> + Statements = < + item + Connection = 'IBX' + TargetTable = 'V_ALBARANES_PROVEEDOR' + StatementType = stAutoSQL + ColumnMappings = < + item + DatasetField = 'ID' + TableField = 'ID' + end + item + DatasetField = 'ID_EMPRESA' + TableField = 'ID_EMPRESA' + end + item + DatasetField = 'ID_PROVEEDOR' + TableField = 'ID_PROVEEDOR' + end + item + DatasetField = 'NOMBRE' + TableField = 'NOMBRE' + end + item + DatasetField = 'FECHA_ALBARAN' + TableField = 'FECHA_ALBARAN' + end + item + DatasetField = 'REFERENCIA' + TableField = 'REFERENCIA' + end + item + DatasetField = 'REFERENCIA_PROVEEDOR' + TableField = 'REFERENCIA_PROVEEDOR' + end + item + DatasetField = 'TIPO' + TableField = 'TIPO' + end + item + DatasetField = 'ID_ALMACEN' + TableField = 'ID_ALMACEN' + end + item + DatasetField = 'NOMBRE_ALMACEN' + TableField = 'NOMBRE_ALMACEN' + end + item + DatasetField = 'ID_PEDIDO' + TableField = 'ID_PEDIDO' + end + item + DatasetField = 'REF_PED_PROVEEDOR' + TableField = 'REF_PED_PROVEEDOR' + end + item + DatasetField = 'ID_FACTURA' + TableField = 'ID_FACTURA' + end + item + DatasetField = 'REF_FACTURA' + TableField = 'REF_FACTURA' + end + item + DatasetField = 'REF_FACTURA_PROV' + TableField = 'REF_FACTURA_PROV' + end + item + DatasetField = 'CALLE' + TableField = 'CALLE' + end + item + DatasetField = 'CODIGO_POSTAL' + TableField = 'CODIGO_POSTAL' + end + item + DatasetField = 'POBLACION' + TableField = 'POBLACION' + end + item + DatasetField = 'PROVINCIA' + TableField = 'PROVINCIA' + end + item + DatasetField = 'PERSONA_CONTACTO' + TableField = 'PERSONA_CONTACTO' + end + item + DatasetField = 'TELEFONO' + TableField = 'TELEFONO' + end + item + DatasetField = 'IMPORTE_NETO' + TableField = 'IMPORTE_NETO' + end + item + DatasetField = 'IMPORTE_PORTE' + TableField = 'IMPORTE_PORTE' + end + item + DatasetField = 'DESCUENTO' + TableField = 'DESCUENTO' + end + item + DatasetField = 'IMPORTE_DESCUENTO' + TableField = 'IMPORTE_DESCUENTO' + end + item + DatasetField = 'BASE_IMPONIBLE' + TableField = 'BASE_IMPONIBLE' + end + item + DatasetField = 'IVA' + TableField = 'IVA' + end + item + DatasetField = 'IMPORTE_IVA' + TableField = 'IMPORTE_IVA' + end + item + DatasetField = 'IMPORTE_TOTAL' + TableField = 'IMPORTE_TOTAL' + end + item + DatasetField = 'OBSERVACIONES' + TableField = 'OBSERVACIONES' + end + item + DatasetField = 'INCIDENCIAS' + TableField = 'INCIDENCIAS' + end + item + DatasetField = 'INCIDENCIAS_ACTIVAS' + TableField = 'INCIDENCIAS_ACTIVAS' + end + item + DatasetField = 'FECHA_ALTA' + TableField = 'FECHA_ALTA' + end + item + DatasetField = 'FECHA_MODIFICACION' + TableField = 'FECHA_MODIFICACION' + end + item + DatasetField = 'USUARIO' + TableField = 'USUARIO' + end + item + DatasetField = 'ID_FORMA_PAGO' + TableField = 'ID_FORMA_PAGO' + end> + end> + Name = 'AlbaranesProveedor' + Fields = < + item + Name = 'ID' + DataType = datAutoInc + GeneratorName = 'GEN_ALBARANES_PRO_ID' + ServerAutoRefresh = True + DictionaryEntry = 'AlbaranesProveedor_ID' + InPrimaryKey = True + end + item + Name = 'ID_EMPRESA' + DataType = datInteger + DictionaryEntry = 'AlbaranesProveedor_ID_EMPRESA' + end + item + Name = 'ID_PROVEEDOR' + DataType = datInteger + DictionaryEntry = 'AlbaranesProveedor_ID_PROVEEDOR' + end + item + Name = 'NOMBRE' + DataType = datString + Size = 255 + DictionaryEntry = 'AlbaranesProveedor_NOMBRE' + end + item + Name = 'FECHA_ALBARAN' + DataType = datDateTime + DictionaryEntry = 'AlbaranesProveedor_FECHA_ALBARAN' + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + DictionaryEntry = 'AlbaranesProveedor_REFERENCIA' + end + item + Name = 'REFERENCIA_PROVEEDOR' + DataType = datString + Size = 255 + DictionaryEntry = 'AlbaranesProveedor_REFERENCIA_PROVEEDOR' + end + item + Name = 'TIPO' + DataType = datString + Size = 1 + DictionaryEntry = 'AlbaranesProveedor_TIPO' + end + item + Name = 'ID_ALMACEN' + DataType = datInteger + DictionaryEntry = 'AlbaranesProveedor_ID_ALMACEN' + end + item + Name = 'NOMBRE_ALMACEN' + DataType = datString + Size = 255 + DictionaryEntry = 'AlbaranesProveedor_NOMBRE_ALMACEN' + end + item + Name = 'ID_PEDIDO' + DataType = datInteger + DictionaryEntry = 'AlbaranesProveedor_ID_PEDIDO' + end + item + Name = 'REF_PED_PROVEEDOR' + DataType = datString + Size = 255 + DictionaryEntry = 'AlbaranesProveedor_REF_PED_PROVEEDOR' + end + item + Name = 'ID_FACTURA' + DataType = datInteger + DictionaryEntry = 'AlbaranesProveedor_ID_FACTURA' + end + item + Name = 'REF_FACTURA' + DataType = datString + Size = 255 + DictionaryEntry = 'AlbaranesProveedor_REF_FACTURA' + end + item + Name = 'REF_FACTURA_PROV' + DataType = datString + Size = 255 + DictionaryEntry = 'AlbaranesProveedor_REF_FACTURA_PROV' + end + item + Name = 'CALLE' + DataType = datString + Size = 255 + DictionaryEntry = 'AlbaranesProveedor_CALLE' + end + item + Name = 'CODIGO_POSTAL' + DataType = datString + Size = 10 + DictionaryEntry = 'AlbaranesProveedor_CODIGO_POSTAL' + end + item + Name = 'POBLACION' + DataType = datString + Size = 255 + DictionaryEntry = 'AlbaranesProveedor_POBLACION' + end + item + Name = 'PROVINCIA' + DataType = datString + Size = 255 + DictionaryEntry = 'AlbaranesProveedor_PROVINCIA' + end + item + Name = 'PERSONA_CONTACTO' + DataType = datString + Size = 255 + DictionaryEntry = 'AlbaranesProveedor_PERSONA_CONTACTO' + end + item + Name = 'TELEFONO' + DataType = datString + Size = 25 + DictionaryEntry = 'AlbaranesProveedor_TELEFONO' + end + item + Name = 'IMPORTE_NETO' + DataType = datCurrency + DictionaryEntry = 'AlbaranesProveedor_IMPORTE_NETO' + end + item + Name = 'IMPORTE_PORTE' + DataType = datCurrency + DictionaryEntry = 'AlbaranesProveedor_IMPORTE_PORTE' + end + item + Name = 'DESCUENTO' + DataType = datFloat + DictionaryEntry = 'AlbaranesProveedor_DESCUENTO' + end + item + Name = 'IMPORTE_DESCUENTO' + DataType = datCurrency + DictionaryEntry = 'AlbaranesProveedor_IMPORTE_DESCUENTO' + end + item + Name = 'BASE_IMPONIBLE' + DataType = datCurrency + DictionaryEntry = 'AlbaranesProveedor_BASE_IMPONIBLE' + end + item + Name = 'IVA' + DataType = datFloat + DictionaryEntry = 'AlbaranesProveedor_IVA' + end + item + Name = 'IMPORTE_IVA' + DataType = datCurrency + DictionaryEntry = 'AlbaranesProveedor_IMPORTE_IVA' + end + item + Name = 'IMPORTE_TOTAL' + DataType = datCurrency + DictionaryEntry = 'AlbaranesProveedor_IMPORTE_TOTAL' + end + item + Name = 'OBSERVACIONES' + DataType = datMemo + DictionaryEntry = 'AlbaranesProveedor_OBSERVACIONES' + end + item + Name = 'INCIDENCIAS' + DataType = datMemo + DictionaryEntry = 'AlbaranesProveedor_INCIDENCIAS' + end + item + Name = 'INCIDENCIAS_ACTIVAS' + DataType = datInteger + DictionaryEntry = 'AlbaranesProveedor_INCIDENCIAS_ACTIVAS' + end + item + Name = 'FECHA_ALTA' + DataType = datDateTime + DictionaryEntry = 'AlbaranesProveedor_FECHA_ALTA' + end + item + Name = 'FECHA_MODIFICACION' + DataType = datDateTime + DictionaryEntry = 'AlbaranesProveedor_FECHA_MODIFICACION' + end + item + Name = 'USUARIO' + DataType = datString + Size = 20 + DictionaryEntry = 'AlbaranesProveedor_USUARIO' + end + item + Name = 'ID_FORMA_PAGO' + DataType = datInteger + DictionaryEntry = 'AlbaranesProveedor_ID_FORMA_PAGO' + end> + end + item + Params = <> + 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 {where}'#10'ORDER BY POSICION;'#10 + StatementType = stSQL + ColumnMappings = < + item + DatasetField = 'ID' + TableField = 'ID' + end + item + DatasetField = 'ID_ALBARAN' + TableField = 'ID_ALBARAN' + end + item + DatasetField = 'POSICION' + TableField = 'POSICION' + end + item + DatasetField = 'TIPO_DETALLE' + TableField = 'TIPO_DETALLE' + end + item + DatasetField = 'CONCEPTO' + TableField = 'CONCEPTO' + end + item + DatasetField = 'CANTIDAD' + TableField = 'CANTIDAD' + end + item + DatasetField = 'IMPORTE_UNIDAD' + TableField = 'IMPORTE_UNIDAD' + end + item + DatasetField = 'IMPORTE_TOTAL' + TableField = 'IMPORTE_TOTAL' + end + item + DatasetField = 'VISIBLE' + TableField = 'VISIBLE' + end + item + DatasetField = 'ID_ARTICULO' + TableField = 'ID_ARTICULO' + end + item + DatasetField = 'DESCUENTO' + TableField = 'DESCUENTO' + end + item + DatasetField = 'IMPORTE_PORTE' + TableField = 'IMPORTE_PORTE' + end + item + DatasetField = 'REFERENCIA' + TableField = '' + SQLOrigin = 'REFERENCIA' + end + item + DatasetField = 'REFERENCIA_PROVEEDOR' + TableField = '' + SQLOrigin = 'REFERENCIA_PROVEEDOR' + end> + end> + Name = 'AlbaranesProveedor_Detalles' + Fields = < + item + Name = 'ID' + DataType = datAutoInc + GeneratorName = 'GEN_ALBARANES_PRO_DETALLES_ID' + ServerAutoRefresh = True + DictionaryEntry = 'AlbaranesProveedor_Detalles_ID' + InPrimaryKey = True + end + item + Name = 'ID_ALBARAN' + DataType = datInteger + DictionaryEntry = 'AlbaranesProveedor_Detalles_ID_ALBARAN' + end + item + Name = 'POSICION' + DataType = datInteger + DictionaryEntry = 'POSICIONCONCEPTO' + end + item + Name = 'TIPO_DETALLE' + DataType = datString + Size = 10 + DictionaryEntry = 'AlbaranesProveedor_Detalles_TIPO_DETALLE' + end + item + Name = 'CONCEPTO' + DataType = datString + Size = 2000 + DictionaryEntry = 'AlbaranesProveedor_Detalles_CONCEPTO' + end + item + Name = 'CANTIDAD' + DataType = datInteger + DictionaryEntry = 'CANTIDAD' + end + item + Name = 'IMPORTE_UNIDAD' + DataType = datCurrency + DictionaryEntry = 'AlbaranesProveedor_Detalles_IMPORTE_UNIDAD' + end + item + Name = 'IMPORTE_TOTAL' + DataType = datCurrency + DictionaryEntry = 'AlbaranesProveedor_Detalles_IMPORTE_TOTAL' + end + item + Name = 'VISIBLE' + DataType = datInteger + DictionaryEntry = 'AlbaranesProveedor_Detalles_VISIBLE' + end + item + Name = 'ID_ARTICULO' + DataType = datInteger + DictionaryEntry = 'AlbaranesProveedor_Detalles_ID_ARTICULO' + end + item + Name = 'DESCUENTO' + DataType = datFloat + DictionaryEntry = 'AlbaranesProveedor_Detalles_DESCUENTO' + end + item + Name = 'IMPORTE_PORTE' + DataType = datCurrency + DictionaryEntry = 'AlbaranesProveedor_Detalles_IMPORTE_PORTE' + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + DictionaryEntry = 'AlbaranesProveedor_Detalles_REFERENCIA' + end + item + Name = 'REFERENCIA_PROVEEDOR' + DataType = datString + Size = 255 + DictionaryEntry = 'AlbaranesProveedor_Detalles_REFERENCIA_PROVEEDOR' + end> + end> + JoinDataTables = <> + UnionDataTables = <> + Commands = < + item + Params = < + item + Name = 'VALOR' + Value = '' + end + item + Name = 'CODIGO' + Value = '' + end + item + Name = 'EMPRESA' + Value = '' + end> + Statements = < + item + Connection = 'IBX' + TargetTable = 'REFERENCIAS' + SQL = + 'UPDATE REFERENCIAS SET'#10' VALOR = :VALOR'#10'WHERE CODIGO = :COD' + + 'IGO AND'#10' ID_EMPRESA = :EMPRESA'#10 + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'ModificarReferencia' + end + item + Params = < + item + Name = 'ID' + DataType = datAutoInc + GeneratorName = 'GEN_ALBARANES_PRO_ID' + Value = '' + end + item + Name = 'ID_EMPRESA' + Value = '' + end + item + Name = 'ID_PROVEEDOR' + Value = '' + end + item + Name = 'FECHA_ALBARAN' + Value = '' + end + item + Name = 'ID_PEDIDO' + Value = '' + end + item + Name = 'ID_FACTURA' + Value = '' + end + item + Name = 'REFERENCIA' + Value = '' + end + item + Name = 'REFERENCIA_PROVEEDOR' + Value = '' + end + item + Name = 'REF_FACTURA_PROV' + Value = '' + end + item + Name = 'CALLE' + Value = '' + end + item + Name = 'CODIGO_POSTAL' + Value = '' + end + item + Name = 'POBLACION' + Value = '' + end + item + Name = 'PROVINCIA' + Value = '' + end + item + Name = 'PERSONA_CONTACTO' + Value = '' + end + item + Name = 'TELEFONO' + Value = '' + end + item + Name = 'BASE_IMPONIBLE' + Value = '' + end + item + Name = 'DESCUENTO' + Value = '' + end + item + Name = 'IMPORTE_DESCUENTO' + Value = '' + end + item + Name = 'IVA' + Value = '' + end + item + Name = 'IMPORTE_IVA' + Value = '' + end + item + Name = 'IMPORTE_TOTAL' + Value = '' + end + item + Name = 'OBSERVACIONES' + Value = '' + end + item + Name = 'INCIDENCIAS' + Value = '' + end + item + Name = 'INCIDENCIAS_ACTIVAS' + Value = '' + end + item + Name = 'FECHA_ALTA' + Value = '' + end + item + Name = 'FECHA_MODIFICACION' + Value = '' + end + item + Name = 'USUARIO' + Value = '' + end + item + Name = 'ID_ALMACEN' + Value = '' + end + item + Name = 'ID_FORMA_PAGO' + Value = '' + end + item + Name = 'IMPORTE_NETO' + Value = '' + end + item + Name = 'IMPORTE_PORTE' + Value = '' + end> + 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' REFERENCIA_PROVEEDOR,'#10' REF_FACTURA_PROV,'#10' ' + + ' CALLE,'#10' CODIGO_POSTAL,'#10' POBLACION,'#10' PROVINCIA,'#10' PE' + + 'RSONA_CONTACTO,'#10' TELEFONO,'#10' BASE_IMPONIBLE,'#10' DESCUENTO,' + + #10' IMPORTE_DESCUENTO,'#10' IVA,'#10' IMPORTE_IVA,'#10' IMPORTE_TO' + + 'TAL,'#10' OBSERVACIONES,'#10' INCIDENCIAS,'#10' INCIDENCIAS_ACTIVAS' + + ','#10' FECHA_ALTA,'#10' FECHA_MODIFICACION,'#10' USUARIO,'#10' ID_AL' + + 'MACEN,'#10' ID_FORMA_PAGO,'#10' IMPORTE_NETO,'#10' IMPORTE_PORTE)'#10' ' + + ' VALUES ('#10' :ID,'#10' :ID_EMPRESA,'#10' :ID_PROVEEDOR,'#10' :FECH' + + 'A_ALBARAN,'#10' :ID_PEDIDO,'#10' :ID_FACTURA,'#10' :REFERENCIA,'#10' ' + + ' :REFERENCIA_PROVEEDOR,'#10' :REF_FACTURA_PROV,'#10' :CALLE,'#10' :' + + 'CODIGO_POSTAL,'#10' :POBLACION,'#10' :PROVINCIA,'#10' :PERSONA_CONT' + + 'ACTO,'#10' :TELEFONO,'#10' :BASE_IMPONIBLE,'#10' :DESCUENTO,'#10' :I' + + 'MPORTE_DESCUENTO,'#10' :IVA,'#10' :IMPORTE_IVA,'#10' :IMPORTE_TOTAL' + + ','#10' :OBSERVACIONES,'#10' :INCIDENCIAS,'#10' :INCIDENCIAS_ACTIVAS' + + ','#10' :FECHA_ALTA,'#10' :FECHA_MODIFICACION,'#10' :USUARIO,'#10' :I' + + 'D_ALMACEN,'#10' :ID_FORMA_PAGO,'#10' :IMPORTE_NETO,'#10' :IMPORTE_P' + + 'ORTE);' + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Insert_AlbaranesProveedor' + end + item + Params = < + item + Name = 'OLD_ID' + Value = '' + end> + Statements = < + item + Connection = 'IBX' + TargetTable = 'ALBARANES_PROVEEDOR' + SQL = + 'DELETE '#10' FROM'#10' ALBARANES_PROVEEDOR'#10' WHERE'#10' (ID = :OLD_ID' + + ')' + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Delete_AlbaranesProveedor' + end + item + Params = < + item + Name = 'ID' + Value = '' + end + item + Name = 'ID_EMPRESA' + Value = '' + end + item + Name = 'ID_PROVEEDOR' + Value = '' + end + item + Name = 'FECHA_ALBARAN' + Value = '' + end + item + Name = 'ID_PEDIDO' + Value = '' + end + item + Name = 'ID_FACTURA' + Value = '' + end + item + Name = 'REFERENCIA' + Value = '' + end + item + Name = 'REFERENCIA_PROVEEDOR' + Value = '' + end + item + Name = 'REF_FACTURA_PROV' + Value = '' + end + item + Name = 'CALLE' + Value = '' + end + item + Name = 'CODIGO_POSTAL' + Value = '' + end + item + Name = 'POBLACION' + Value = '' + end + item + Name = 'PROVINCIA' + Value = '' + end + item + Name = 'PERSONA_CONTACTO' + Value = '' + end + item + Name = 'TELEFONO' + Value = '' + end + item + Name = 'BASE_IMPONIBLE' + Value = '' + end + item + Name = 'DESCUENTO' + Value = '' + end + item + Name = 'IMPORTE_DESCUENTO' + Value = '' + end + item + Name = 'IVA' + Value = '' + end + item + Name = 'IMPORTE_IVA' + Value = '' + end + item + Name = 'IMPORTE_TOTAL' + Value = '' + end + item + Name = 'OBSERVACIONES' + Value = '' + end + item + Name = 'INCIDENCIAS' + Value = '' + end + item + Name = 'INCIDENCIAS_ACTIVAS' + Value = '' + end + item + Name = 'FECHA_ALTA' + Value = '' + end + item + Name = 'FECHA_MODIFICACION' + Value = '' + end + item + Name = 'USUARIO' + Value = '' + end + item + Name = 'ID_ALMACEN' + Value = '' + end + item + Name = 'ID_FORMA_PAGO' + Value = '' + end + item + Name = 'IMPORTE_NETO' + Value = '' + end + item + Name = 'IMPORTE_PORTE' + Value = '' + end + item + Name = 'OLD_ID' + Value = '' + end> + Statements = < + item + Connection = 'IBX' + TargetTable = 'ALBARANES_PROVEEDOR' + SQL = + 'UPDATE ALBARANES_PROVEEDOR'#10' SET'#10' ID = :ID,'#10' ID_EMPRESA = ' + + ':ID_EMPRESA,'#10' ID_PROVEEDOR = :ID_PROVEEDOR,'#10' FECHA_ALBARAN' + + ' = :FECHA_ALBARAN,'#10' ID_PEDIDO = :ID_PEDIDO,'#10' ID_FACTURA = ' + + ':ID_FACTURA,'#10' REFERENCIA = :REFERENCIA,'#10' REFERENCIA_PROVEE' + + 'DOR = :REFERENCIA_PROVEEDOR,'#10' REF_FACTURA_PROV = :REF_FACTURA' + + '_PROV,'#10' CALLE = :CALLE,'#10' CODIGO_POSTAL = :CODIGO_POSTAL,'#10' ' + + ' POBLACION = :POBLACION,'#10' PROVINCIA = :PROVINCIA,'#10' PERSO' + + 'NA_CONTACTO = :PERSONA_CONTACTO,'#10' TELEFONO = :TELEFONO,'#10' B' + + 'ASE_IMPONIBLE = :BASE_IMPONIBLE,'#10' DESCUENTO = :DESCUENTO,'#10' ' + + ' IMPORTE_DESCUENTO = :IMPORTE_DESCUENTO,'#10' IVA = :IVA,'#10' IMP' + + 'ORTE_IVA = :IMPORTE_IVA,'#10' IMPORTE_TOTAL = :IMPORTE_TOTAL,'#10' ' + + ' OBSERVACIONES = :OBSERVACIONES,'#10' INCIDENCIAS = :INCIDENCIAS,' + + #10' INCIDENCIAS_ACTIVAS = :INCIDENCIAS_ACTIVAS,'#10' FECHA_ALTA ' + + '= :FECHA_ALTA,'#10' FECHA_MODIFICACION = :FECHA_MODIFICACION,'#10' ' + + ' USUARIO = :USUARIO,'#10' ID_ALMACEN = :ID_ALMACEN,'#10' ID_FORMA_' + + 'PAGO = :ID_FORMA_PAGO,'#10' IMPORTE_NETO = :IMPORTE_NETO,'#10' IMP' + + 'ORTE_PORTE = :IMPORTE_PORTE'#10' WHERE'#10' (ID = :OLD_ID);'#10 + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Update_AlbaranesProveedor' + end + item + Params = < + item + Name = 'CANTIDAD' + Value = '' + end + item + Name = 'POSICION' + Value = '' + end + item + Name = 'ID' + DataType = datAutoInc + GeneratorName = 'GEN_ALBARANES_PRO_DETALLES_ID' + Value = '' + end + item + Name = 'TIPO_DETALLE' + Value = '' + end + item + Name = 'CONCEPTO' + Value = '' + end + item + Name = 'IMPORTE_UNIDAD' + Value = '' + end + item + Name = 'IMPORTE_TOTAL' + Value = '' + end + item + Name = 'VISIBLE' + Value = '' + end + item + Name = 'ID_ALBARAN' + Value = '' + end + item + Name = 'ID_ARTICULO' + Value = '' + end + item + Name = 'DESCUENTO' + Value = '' + end + item + Name = 'IMPORTE_PORTE' + Value = '' + end> + 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_TOT' + + 'AL, VISIBLE, ID_ALBARAN,'#10' ID_ARTICULO, DESCUENTO, IMPORTE_PO' + + 'RTE)'#10' VALUES'#10' (:CANTIDAD, :POSICION, :ID, :TIPO_DETALLE, :CO' + + 'NCEPTO,'#10' :IMPORTE_UNIDAD, :IMPORTE_TOTAL, :VISIBLE, :ID_ALBA' + + 'RAN,'#10' :ID_ARTICULO, :DESCUENTO, :IMPORTE_PORTE)'#10 + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Insert_AlbaranesProveedor_Detalles' + end + item + Params = < + item + Name = 'OLD_ID' + Value = '' + end> + Statements = < + item + Connection = 'IBX' + TargetTable = 'ALBARANES_PROVEEDOR_DETALLES' + SQL = + 'DELETE '#10' FROM'#10' ALBARANES_PROVEEDOR_DETALLES'#10' WHERE'#10' (ID ' + + '= :OLD_ID)' + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Delete_AlbaranesProveedor_Detalles' + end + item + Params = < + item + Name = 'CANTIDAD' + Value = '' + end + item + Name = 'POSICION' + Value = '' + end + item + Name = 'ID' + Value = '' + end + item + Name = 'TIPO_DETALLE' + Value = '' + end + item + Name = 'CONCEPTO' + Value = '' + end + item + Name = 'IMPORTE_UNIDAD' + Value = '' + end + item + Name = 'IMPORTE_TOTAL' + Value = '' + end + item + Name = 'VISIBLE' + Value = '' + end + item + Name = 'ID_ALBARAN' + Value = '' + end + item + Name = 'ID_ARTICULO' + Value = '' + end + item + Name = 'DESCUENTO' + Value = '' + end + item + Name = 'IMPORTE_PORTE' + Value = '' + end + item + Name = 'OLD_ID' + Value = '' + 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 = < + item + Name = 'FK_AlbaranesProveedor_Detalles' + MasterDatasetName = 'AlbaranesProveedor' + MasterFields = 'ID' + DetailDatasetName = 'AlbaranesProveedor_Detalles' + DetailFields = 'ID_ALBARAN' + RelationshipType = rtForeignKey + end> + UpdateRules = < + item + Name = 'Insert AlbaranesProveedor' + DoUpdate = False + DoDelete = False + DatasetName = 'AlbaranesProveedor' + FailureBehavior = fbRaiseException + end + item + Name = 'Insert AlbaranesProveedor_Detalles' + DoUpdate = False + DoDelete = False + DatasetName = 'AlbaranesProveedor_Detalles' + FailureBehavior = fbRaiseException + end + item + Name = 'Update AlbaranesProveedor' + DoInsert = False + DoDelete = False + DatasetName = 'AlbaranesProveedor' + FailureBehavior = fbRaiseException + end + item + Name = 'Update AlbaranesProveedor_Detalles' + DoInsert = False + DoDelete = False + DatasetName = 'AlbaranesProveedor_Detalles' + FailureBehavior = fbRaiseException + end + item + Name = 'Delete AlbaranesProveedor_Detalles' + DoUpdate = False + DoInsert = False + DatasetName = 'AlbaranesProveedor_Detalles' + FailureBehavior = fbRaiseException + end + item + Name = 'Delete AlbaranesProveedor' + DoUpdate = False + DoInsert = False + DatasetName = 'AlbaranesProveedor' + FailureBehavior = fbRaiseException + end> + Version = 0 + Left = 48 + Top = 24 + end + object bpAlbaranesProveedor: TDABusinessProcessor + Schema = schAlbaranesProveedor + InsertCommandName = 'Insert_AlbaranesProveedor' + DeleteCommandName = 'Delete_AlbaranesProveedor' + UpdateCommandName = 'Update_AlbaranesProveedor' + 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 + GeneratorName = 'GEN_ALBARANES_PRO_ID' + Required = True + DisplayLabel = 'ID' + ServerAutoRefresh = True + end + item + Name = 'AlbaranesProveedor_ID_EMPRESA' + DataType = datInteger + DisplayLabel = 'ID_EMPRESA' + end + item + Name = 'AlbaranesProveedor_ID_CLIENTE' + DataType = datInteger + DisplayLabel = 'ID_CLIENTE' + end + item + Name = 'AlbaranesProveedor_NOMBRE' + DataType = datString + Size = 255 + DisplayLabel = 'Proveedor' + end + item + Name = 'AlbaranesProveedor_SITUACION' + DataType = datString + Size = 9 + DisplayLabel = 'Situaci'#243'n' + end + item + Name = 'AlbaranesProveedor_CALLE' + DataType = datString + Size = 255 + DisplayLabel = 'Calle' + end + item + Name = 'AlbaranesProveedor_CODIGO_POSTAL' + DataType = datString + Size = 10 + DisplayLabel = 'C'#243'd. postal' + end + item + Name = 'AlbaranesProveedor_POBLACION' + DataType = datString + Size = 255 + DisplayLabel = 'Poblaci'#243'n' + end + item + Name = 'AlbaranesProveedor_PROVINCIA' + DataType = datString + Size = 255 + DisplayLabel = 'Provincia' + end + item + Name = 'AlbaranesProveedor_PERSONA_CONTACTO' + DataType = datString + Size = 255 + DisplayLabel = 'Persona de contacto' + end + item + Name = 'AlbaranesProveedor_TELEFONO' + DataType = datString + Size = 25 + DisplayLabel = 'Tel'#233'fono' + end + item + Name = 'AlbaranesProveedor_OBSERVACIONES' + DataType = datMemo + DisplayLabel = 'Observaciones' + end + item + Name = 'AlbaranesProveedor_INCIDENCIAS' + DataType = datMemo + DisplayLabel = 'INCIDENCIAS' + end + item + Name = 'AlbaranesProveedor_INCIDENCIAS_ACTIVAS' + DataType = datInteger + DisplayLabel = 'INCIDENCIAS_ACTIVAS' + end + item + Name = 'AlbaranesProveedor_FECHA_ALTA' + DataType = datDateTime + DisplayLabel = 'FECHA_ALTA' + end + item + Name = 'AlbaranesProveedor_FECHA_MODIFICACION' + DataType = datDateTime + DisplayLabel = 'FECHA_MODIFICACION' + end + item + Name = 'AlbaranesProveedor_USUARIO' + DataType = datString + Size = 20 + DisplayLabel = 'USUARIO' + end + item + Name = 'AlbaranesProveedor_IMPORTE_NETO' + DataType = datCurrency + DisplayLabel = 'Importe neto' + Alignment = taRightJustify + end + item + Name = 'AlbaranesProveedor_IMPORTE_PORTE' + DataType = datCurrency + DisplayLabel = 'Importe del porte' + Alignment = taRightJustify + end + item + Name = 'AlbaranesProveedor_DESCUENTO' + DataType = datFloat + DisplayLabel = 'Descuento' + DisplayFormat = ',0.00 %;-,0.00 %' + Alignment = taRightJustify + end + item + Name = 'AlbaranesProveedor_IMPORTE_DESCUENTO' + DataType = datCurrency + DisplayLabel = 'Importe dto.' + Alignment = taRightJustify + end + item + Name = 'AlbaranesProveedor_BASE_IMPONIBLE' + DataType = datCurrency + DisplayLabel = 'Base imponible' + Alignment = taRightJustify + end + item + Name = 'AlbaranesProveedor_IVA' + DataType = datFloat + DisplayLabel = 'IVA' + DisplayFormat = ',0.00 %;-,0.00 %' + Alignment = taRightJustify + end + item + Name = 'AlbaranesProveedor_IMPORTE_IVA' + DataType = datCurrency + DisplayLabel = 'Importe IVA' + Alignment = taRightJustify + end + item + Name = 'AlbaranesProveedor_IMPORTE_TOTAL' + DataType = datCurrency + DisplayLabel = 'Importe total' + Alignment = taRightJustify + end + item + Name = 'AlbaranesProveedor_ID_FORMA_PAGO' + DataType = datInteger + DisplayLabel = 'ID_FORMA_PAGO' + end + item + Name = 'AlbaranesProveedor_Detalles_ID' + DataType = datAutoInc + GeneratorName = 'GEN_ALBARANES_PRO_DETALLES_ID' + Required = True + DisplayLabel = 'ID' + ServerAutoRefresh = True + end + item + Name = 'AlbaranesProveedor_Detalles_ID_PEDIDO' + DataType = datInteger + DisplayLabel = 'ID_PEDIDO' + end + item + Name = 'AlbaranesProveedor_Detalles_TIPO_DETALLE' + DataType = datString + Size = 10 + DisplayLabel = 'TIPO_DETALLE' + end + item + Name = 'AlbaranesProveedor_Detalles_REFERENCIA' + DataType = datString + Size = 255 + DisplayLabel = 'Referencia' + end + item + Name = 'AlbaranesProveedor_Detalles_ID_ARTICULO' + DataType = datInteger + DisplayLabel = 'ID_ARTICULO' + end + item + Name = 'AlbaranesProveedor_Detalles_CONCEPTO' + DataType = datString + Size = 2000 + DisplayLabel = 'CONCEPTO' + end + item + Name = 'AlbaranesProveedor_Detalles_IMPORTE_UNIDAD' + DataType = datCurrency + DisplayLabel = 'Importe unidad' + Alignment = taRightJustify + end + item + Name = 'AlbaranesProveedor_Detalles_IMPORTE_TOTAL' + DataType = datCurrency + DisplayLabel = 'Importe total' + Alignment = taRightJustify + end + item + Name = 'AlbaranesProveedor_Detalles_DESCUENTO' + DataType = datFloat + DisplayLabel = 'Descuento' + DisplayFormat = ',0.00 %;-,0.00 %' + Alignment = taRightJustify + end + item + Name = 'AlbaranesProveedor_Detalles_IMPORTE_PORTE' + DataType = datCurrency + DisplayLabel = 'Importe porte' + Alignment = taRightJustify + end + item + Name = 'AlbaranesProveedor_Detalles_VISIBLE' + DataType = datInteger + DisplayLabel = 'VISIBLE' + end + item + Name = 'AlbaranesProveedor_Detalles_REFERENCIA_PROVEEDOR' + DataType = datString + Size = 255 + DisplayLabel = 'Ref. proveedor' + end + item + Name = 'AlbaranesProveedor_FECHA_ALBARAN' + DataType = datDateTime + DisplayLabel = 'Fecha albar'#225'n' + end + item + Name = 'AlbaranesProveedor_ID_PEDIDO' + DataType = datInteger + DisplayLabel = 'ID_PEDIDO' + end + item + Name = 'AlbaranesProveedor_ID_FACTURA' + DataType = datInteger + DisplayLabel = 'ID_FACTURA' + end + item + Name = 'AlbaranesProveedor_Detalles_ID_ALBARAN' + DataType = datInteger + DisplayLabel = 'ID_ALBARAN' + end + item + Name = 'AlbaranesProveedor_Detalles_Refresh_ID_ALBARAN' + DataType = datInteger + DisplayLabel = 'ID_ALBARAN' + end + item + Name = 'AlbaranesProveedor_Detalles_Refresh_DESCUENTO' + DataType = datFloat + DisplayLabel = 'DESCUENTO' + end + item + Name = 'AlbaranesProveedor_Detalles_Refresh_IMPORTE_PORTE' + DataType = datFloat + DisplayLabel = 'IMPORTE_PORTE' + end + item + Name = 'AlbaranesProveedor_Detalles_Refresh_REFERENCIA_PROVEEDOR' + DataType = datString + Size = 255 + DisplayLabel = 'REFERENCIA_PROVEEDOR' + end + item + Name = 'AlbaranesProveedor_ID_ALMACEN' + DataType = datInteger + DisplayLabel = 'ID_ALMACEN' + end + item + Name = 'AlbaranesProveedor_FECHA_ENVIO' + DataType = datDateTime + DisplayLabel = 'Fecha de env'#237'o' + end + item + Name = 'AlbaranesProveedor_FECHA_RECEPCION' + DataType = datDateTime + DisplayLabel = 'Fecha de recepci'#243'n' + end + item + Name = 'AlbaranesProveedor_ID_PROVEEDOR' + DataType = datInteger + DisplayLabel = 'ID_PROVEEDOR' + end + item + Name = 'AlbaranesProveedor_NOMBRE_ALMACEN' + DataType = datString + Size = 255 + DisplayLabel = 'Almac'#233'n' + end + item + Name = 'AlbaranesProveedor_REF_PED_PROVEEDOR' + DataType = datString + Size = 255 + DisplayLabel = 'Ped. proveedor' + end + item + Name = 'AlbaranesProveedor_REFERENCIA' + DataType = datString + Size = 255 + DisplayLabel = 'Referencia' + ServerAutoRefresh = True + end + item + Name = 'AlbaranesProveedor_TIPO' + DataType = datString + Size = 1 + DisplayLabel = 'Tipo' + end + item + Name = 'AlbaranesProveedor_REF_FAC_PROVEEDOR' + DataType = datString + Size = 255 + DisplayLabel = 'REF_FAC_PROVEEDOR' + end + item + Name = 'AlbaranesProveedor_REFERENCIA_PROVEEDOR' + DataType = datString + Size = 255 + DisplayLabel = 'Ref. provedor' + end + item + Name = 'AlbaranesProveedor_REF_FACTURA' + DataType = datString + Size = 255 + DisplayLabel = 'Referencia factura' + end + item + Name = 'AlbaranesProveedor_REF_FACTURA_PROV' + DataType = datString + Size = 255 + DisplayLabel = 'Ref. factura prov' + end> + Left = 48 + Top = 128 + end + object Bin2DataStreamer: TDABin2DataStreamer + Left = 48 + Top = 80 + end +end diff --git a/Source/Modulos/Albaranes de proveedor/Servidor/srvAlbaranesProveedor_Impl.pas b/Source/Modulos/Albaranes de proveedor/Servidor/srvAlbaranesProveedor_Impl.pas new file mode 100644 index 00000000..2f826c39 --- /dev/null +++ b/Source/Modulos/Albaranes de proveedor/Servidor/srvAlbaranesProveedor_Impl.pas @@ -0,0 +1,99 @@ +unit srvAlbaranesProveedor_Impl; + +{----------------------------------------------------------------------------} +{ This unit was automatically generated by the RemObjects SDK after reading } +{ the RODL file associated with this project . } +{ } +{ This is where you are supposed to code the implementation of your objects. } +{----------------------------------------------------------------------------} + +interface + +uses + {vcl:} Classes, SysUtils, + {RemObjects:} uROClientIntf, uROTypes, uROServer, uROServerIntf, uROSessions, + {Ancestor Implementation:} DataAbstractService_Impl, + {Used RODLs:} DataAbstract4_Intf, + {Generated:} uDABusinessProcessor, uDABin2DataStreamer, uDADataStreamer, + uDAScriptingProvider, uDAClasses, + FactuGES_Intf, uDAInterfaces; + +type + { TsrvAlbaranesProveedor } + TsrvAlbaranesProveedor = class(TDataAbstractService, IsrvAlbaranesProveedor) + bpAlbaranesProveedor: TDABusinessProcessor; + bpAlbaranesProveedor_Detalles: TDABusinessProcessor; + Bin2DataStreamer: TDABin2DataStreamer; + schAlbaranesProveedor: TDASchema; + DADataDictionary: TDADataDictionary; + procedure DARemoteServiceBeforeGetDatasetData(const Dataset: IDADataset; + const IncludeSchema: Boolean; const MaxRecords: Integer); + procedure DARemoteServiceCreate(Sender: TObject); + procedure DataAbstractServiceBeforeAcquireConnection(aSender: TObject; + var aConnectionName: string); + protected + { IsrvAlbaranesProveedor methods } + function GenerateReport(const ID: String): Binary; + end; + +implementation + +{$R *.dfm} +uses + Dialogs, + {Generated:} FactuGES_Invk, uDataModuleServer, uDatabaseUtils, + schAlbaranesProveedorClient_Intf, uRestriccionesUsuarioUtils, + uBizAlbaranProveedorServer; +// uRptAlbaranesProveedor_Server; + +procedure Create_srvAlbaranesProveedor(out anInstance : IUnknown); +begin + anInstance := TsrvAlbaranesProveedor.Create(NIL); +end; + +{ srvAlbaranesProveedor } + +procedure TsrvAlbaranesProveedor.DARemoteServiceBeforeGetDatasetData( + const Dataset: IDADataset; const IncludeSchema: Boolean; + const MaxRecords: Integer); +begin +{ if DataSet.Name = nme_AlbaranesProveedor then + begin + { Aqu se asegura que el usuario slo accede a pedidos + de las empresas a las que tiene permiso para acceder + filtrando DataSet por ID_EMPRESA. } +{ FiltrarAccesoUsuario(Session, Connection, schAlbaranesProveedor, DataSet, fld_AlbaranesProveedorID_EMPRESA); + end; +} +end; + +procedure TsrvAlbaranesProveedor.DARemoteServiceCreate(Sender: TObject); +begin + SessionManager := dmServer.SessionManager; + bpAlbaranesProveedor.BusinessRulesID := BIZ_SERVER_ALBARAN_PROVEEDOR; +end; + +procedure TsrvAlbaranesProveedor.DataAbstractServiceBeforeAcquireConnection(aSender: TObject; var aConnectionName: string); +begin + ConnectionName := dmServer.ConnectionName; +end; + +function TsrvAlbaranesProveedor.GenerateReport(const ID: String): Binary; +//var +// AReportGenerator : TRptAlbaranesProveedor; +begin +{ AReportGenerator := TRptAlbaranesProveedor.Create(nil); + try + Result := AReportGenerator.GenerarAlbaran(ID); + finally + FreeAndNIL(AReportGenerator); + end; +} +end; + +initialization + TROClassFactory.Create('srvAlbaranesProveedor', Create_srvAlbaranesProveedor, TsrvAlbaranesProveedor_Invoker); + +finalization + +end. diff --git a/Source/Modulos/Albaranes de proveedor/Views/AlbaranesProveedor_view.bdsproj b/Source/Modulos/Albaranes de proveedor/Views/AlbaranesProveedor_view.bdsproj new file mode 100644 index 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..f613151d --- /dev/null +++ b/Source/Modulos/Albaranes de proveedor/Views/AlbaranesProveedor_view.dpk @@ -0,0 +1,53 @@ +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 ON} + +requires + GUIBase, + AlbaranesProveedor_model, + AlbaranesProveedor_controller, + Articulos_view, + Almacenes_model, + Almacenes_controller; + +contains + uAlbaranesProveedorViewRegister in 'uAlbaranesProveedorViewRegister.pas', + uEditorAlbaranesProveedor in 'uEditorAlbaranesProveedor.pas' {fEditorAlbaranesProveedor: TfEditorPedidosCliente}, + uViewAlbaranesProveedor in 'uViewAlbaranesProveedor.pas' {frViewAlbaranesProveedor: TFrame}, + uViewAlbaranProveedor in 'uViewAlbaranProveedor.pas' {frViewAlbaranProveedor: TFrame}, + uViewDetallesAlbaranProveedor in 'uViewDetallesAlbaranProveedor.pas' {frViewDetallesAlbaranProveedor: TFrame}, + uEditorAlbaranProveedor in 'uEditorAlbaranProveedor.pas' {fEditorAlbaranProveedor: TfEditorAlbaranCliente}, + uViewElegirArticulosAlbaranesProveedor in 'uViewElegirArticulosAlbaranesProveedor.pas' {frViewElegirArticulosAlbaranesProveedor: TFrame}, + uEditorElegirArticulosAlbaranProveedor in 'uEditorElegirArticulosAlbaranProveedor.pas' {fEditorElegirArticulosAlbaranProveedor: TfEditorElegirArticulosAlbaranProveedor}, + uViewDireccionEntregaAlbaranProv in 'uViewDireccionEntregaAlbaranProv.pas' {frViewDireccionEntregaAlbaranProv: TFrame}, + uEditorDireccionEntregaAlbaranProveedor in 'uEditorDireccionEntregaAlbaranProveedor.pas' {fEditorDireccionEntregaAlbaranProveedor: TfEditorDireccionEntregaAlbaranProveedor}, + uEditorElegirAlbaranesProveedor in 'uEditorElegirAlbaranesProveedor.pas' {fEditorElegirAlbaranesProveedor: TfEditorElegirAlbaranesProveedor}, + uEditorAlbaranesDevProveedor in 'uEditorAlbaranesDevProveedor.pas' {fEditorAlbaranesDevProveedor: TCustomEditor}, + uViewAlbaranDevProveedor in 'uViewAlbaranDevProveedor.pas' {frViewAlbaranDevProveedor: TCustomView}, + uEditorAlbaranDevProveedor in 'uEditorAlbaranDevProveedor.pas' {fEditorAlbaranDevProveedor: TCustomEditor}, + uViewAlbaranesDevProveedor in 'uViewAlbaranesDevProveedor.pas' {frViewAlbaranesDevProveedor: TCustomView}, + uEditorAlbaranesProveedorReport in 'uEditorAlbaranesProveedorReport.pas' {fEditorAlbaranesProveedorReport: TEditorAlbaranesProveedorReport}; + +end. diff --git a/Source/Modulos/Albaranes de proveedor/Views/AlbaranesProveedor_view.dproj b/Source/Modulos/Albaranes de proveedor/Views/AlbaranesProveedor_view.dproj new file mode 100644 index 00000000..4e523cbc --- /dev/null +++ b/Source/Modulos/Albaranes de proveedor/Views/AlbaranesProveedor_view.dproj @@ -0,0 +1,603 @@ + + + {9e558626-cf49-4cff-a178-e12c186758ac} + AlbaranesProveedor_view.dpk + Debug + AnyCPU + DCC32 + ..\..\..\..\Output\Debug\Cliente\AlbaranesProveedor_view.bpl + + + 7.0 + False + False + 0 + 3 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + RELEASE + + + 7.0 + 3 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + + + Delphi.Personality + Package + +FalseTrueFalseTrueFalseFalseTrueFalse1000FalseFalseFalseFalseFalse308212521.0.0.01.0.0.0AlbaranesProveedor_view.dpk + + + + + MainSource + + + + + + + + + +
    fEditorAlbaranDevProveedor
    + TCustomEditor +
    + +
    fEditorAlbaranesDevProveedor
    + TCustomEditor +
    + +
    fEditorAlbaranesProveedor
    + TfEditorPedidosCliente +
    + +
    fEditorAlbaranesProveedorReport
    + TEditorAlbaranesProveedorReport +
    + +
    fEditorAlbaranProveedor
    + TfEditorAlbaranCliente +
    + +
    fEditorDireccionEntregaAlbaranProveedor
    + TfEditorDireccionEntregaAlbaranProveedor +
    + +
    fEditorElegirAlbaranesProveedor
    + TfEditorElegirAlbaranesProveedor +
    + +
    fEditorElegirArticulosAlbaranProveedor
    + TfEditorElegirArticulosAlbaranProveedor +
    + +
    frViewAlbaranDevProveedor
    + TCustomView +
    + +
    frViewAlbaranesDevProveedor
    + TCustomView +
    + +
    frViewAlbaranesProveedor
    + TFrame +
    + +
    frViewAlbaranProveedor
    + TFrame +
    + +
    frViewDetallesAlbaranProveedor
    + TFrame +
    + +
    frViewDireccionEntregaAlbaranProv
    + TFrame +
    + +
    frViewElegirArticulosAlbaranesProveedor
    + TFrame +
    +
    +
    + + diff --git a/Source/Modulos/Albaranes de proveedor/Views/AlbaranesProveedor_view.identcache b/Source/Modulos/Albaranes de proveedor/Views/AlbaranesProveedor_view.identcache new file mode 100644 index 0000000000000000000000000000000000000000..0a1c837692021e1142c3ba299766402937e5b21e GIT binary patch literal 1749 zcmcJPK~BRk5JhtYj*t^@fbOa`%Su&22!RoG?NKzy%0y$QT%WpaEXCk#CS>D9B0v9^ zKYpmH>TR=98?x9^{S3xq0H>a4U;}DLc5vj?+MP7(4t#B)?wQU2mRP+Ye0w#-C4I3U z-#+%*Uv^K=>w=gfg$L)r2)iLTRelg~maPyyk!=wkJg_ zx_n=PddJMA6E}V0u^8thjq}@B)OxsB^#M2^EF;Cm&9}&43{uy0fuYs+BgBk3Pu!84 z#lKtfe^MvZ@jff!zNAubxEZb2D>Qd|lwz;{5`uOP#=$FQ6!&y84&W2$06lTYvngq| I5-tb*0PX`?YybcN literal 0 HcmV?d00001 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..153736af --- /dev/null +++ b/Source/Modulos/Albaranes de proveedor/Views/AlbaranesProveedor_view.rc @@ -0,0 +1,22 @@ +1 VERSIONINFO +FILEVERSION 1,0,0,0 +PRODUCTVERSION 1,0,0,0 +FILEFLAGSMASK 0x3FL +FILEFLAGS 0x00L +FILEOS 0x40004L +FILETYPE 0x1L +FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "0C0A04E4" + BEGIN + VALUE "FileVersion", "1.0.0.0\0" + VALUE "ProductVersion", "1.0.0.0\0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x0C0A, 1252 + END +END diff --git a/Source/Modulos/Albaranes de proveedor/Views/AlbaranesProveedor_view.res b/Source/Modulos/Albaranes de proveedor/Views/AlbaranesProveedor_view.res new file mode 100644 index 0000000000000000000000000000000000000000..8b251f312bcccec5485024f6fe8d80e1cdf25746 GIT binary patch literal 384 zcmZ9HOA3Ne6ox;+L5PEv(4cV`IIrjdPAV##hV&wc1g%+%X(R2Xc{`~7t6e0Ioa?#% zkMj%AQhz>WYy7LeWAUaqx~Kv?-;(-Hs4-^ATIZOBrid9+-6Ne7&88mi>kUR4lo#jxZ;#*s4zxg9yNlk=H9sqkCD2^cEXKpiTBNfgkKpXJBWWaLt(Qkv@0 w5yv*t82((Wlr2{_+FDoDHKW2QCXvc+s**ul{{$ + ExplicitTop = 600 + ExplicitWidth = 765 + end + inline frViewTotales1: TfrViewTotales [4] + Left = 0 + Top = 536 + Width = 765 + Height = 64 + Align = alBottom + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + TabOrder = 4 + ReadOnly = False + ExplicitTop = 536 + ExplicitWidth = 765 + ExplicitHeight = 64 + 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 + inherited dxLayoutControl1Item8: TdxLayoutItem + Visible = False + end + 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 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 + 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..67e6a6bf --- /dev/null +++ b/Source/Modulos/Albaranes de proveedor/Views/uEditorAlbaranProveedor.pas @@ -0,0 +1,334 @@ +unit uEditorAlbaranProveedor; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uEditorDBItem, DB, uDADataTable, JvAppStorage, + JvAppRegistryStorage, JvComponent, JvFormPlacement, ImgList, + PngImageList, StdActns, ActnList, ComCtrls, TBX, TB2Item, TB2Dock, + TB2Toolbar, ExtCtrls, JvExControls, JvNavigationPane, + uCustomView, uViewBase, JvComponentBase, + StdCtrls, pngimage, AppEvnts, cxControls, cxContainer, cxEdit, cxTextEdit, cxMemo, cxDBEdit, + uViewIncidencias, + uAlbaranesProveedorController, + uViewDetallesBase, uViewDetallesAlbaranProveedor, + dxLayoutLookAndFeels, JvExComCtrls, JvStatusBar, uViewTotales, + uIEditorAlbaranProveedor, uBizAlbaranesProveedor, uViewAlbaranProveedor, + uViewDetallesDTO, uViewDetallesArticulos, uDAInterfaces; + +type + TfEditorAlbaranProveedor = class(TfEditorDBItem, IEditorAlbaranProveedor) + pagContenido: TTabSheet; + pagInicidencias: TTabSheet; + frViewIncidenciasCli: TfrViewIncidencias; + dxLayoutLookAndFeelList1: TdxLayoutLookAndFeelList; + dxLayoutOfficeLookAndFeel1: TdxLayoutOfficeLookAndFeel; + frViewDetallesAlbaranProveedor1: TfrViewDetallesAlbaranProveedor; + frViewTotales1: TfrViewTotales; + + procedure FormShow(Sender: TObject); + procedure CustomEditorClose(Sender: TObject; var Action: TCloseAction); + procedure pgPaginasChanging(Sender: TObject; var AllowChange: Boolean); + procedure frViewTotales1edtDescuentoPropertiesValidate(Sender: TObject; + var DisplayValue: Variant; var ErrorText: TCaption; var Error: Boolean); + procedure frViewTotales1edtIVAPropertiesValidate(Sender: TObject; + var DisplayValue: Variant; var ErrorText: TCaption; var Error: Boolean); + procedure frViewTotales1ePortePropertiesValidate(Sender: TObject; + var DisplayValue: Variant; var ErrorText: TCaption; var Error: Boolean); + +// procedure frViewDatosYSeleccionContactoedtlNombrePropertiesChange(Sender: TObject); + private + procedure RecalcularPortePorUnidad; + + protected + FAlbaran: IBizAlbaranProveedor; + FViewAlbaran: IViewAlbaranProveedor; + FController : IAlbaranesProveedorController; + + function GetController : IAlbaranesProveedorController; + procedure SetController (const Value : IAlbaranesProveedorController); virtual; + + function GetAlbaran: IBizAlbaranProveedor; + procedure SetAlbaran(const Value: IBizAlbaranProveedor); virtual; + + function GetViewAlbaran: IViewAlbaranProveedor; + procedure SetViewAlbaran(const Value: IViewAlbaranProveedor); + + procedure GuardarInterno; override; + procedure EliminarInterno; override; + procedure PrevisualizarInterno; override; + procedure ImprimirInterno; override; + + property ViewAlbaran: IViewAlbaranProveedor read GetViewAlbaran write SetViewAlbaran; + + procedure OnProveedorChanged(Sender : TObject); + + //Si queremos crear otra vista para el editor heredado solo tendriamos que + //sobreescribir este metodo + procedure AsignarVista; virtual; + + public + procedure PonerTitulos(const ATitulo: string = ''); override; + property Controller : IAlbaranesProveedorController read GetController write SetController; + property Albaran: IBizAlbaranProveedor read GetAlbaran write SetAlbaran; + constructor Create(AOwner: TComponent); override; + destructor Destroy; override; + end; + +implementation + +uses + uViewDatosYSeleccionProveedor, uDataModuleUsuarios, uProveedoresController, + uBizDireccionesContacto, uDialogUtils, uDataTableUtils, uFactuGES_App; + +{$R *.dfm} + +{ TfEditorAlbaranProveedor } + +{ +**************************** TfEditorAlbaranProveedor **************************** +} +procedure TfEditorAlbaranProveedor.AsignarVista; +var + AViewAlbaranProveedor: TfrViewAlbaranProveedor; + +begin + AViewAlbaranProveedor := TfrViewAlbaranProveedor.create(Self); + with AViewAlbaranProveedor do + begin + Parent := pagGeneral; + Align := alClient; + dxLayoutControl1.LookAndFeel := dxLayoutOfficeLookAndFeel1; + end; + ViewAlbaran := AViewAlbaranProveedor; +end; + +constructor TfEditorAlbaranProveedor.Create(AOwner: TComponent); +begin + inherited; + AsignarVista; + pgPaginas.ActivePageIndex := 0; +end; + +procedure TfEditorAlbaranProveedor.CustomEditorClose(Sender: TObject; + var Action: TCloseAction); +begin + inherited; + FViewAlbaran := NIL; + FAlbaran := NIL; +end; + +destructor TfEditorAlbaranProveedor.Destroy; +begin + // Utilizar mejor OnClose; + inherited; +end; + +procedure TfEditorAlbaranProveedor.EliminarInterno; +begin + if (Application.MessageBox('¿Desea borrar este albarán de proveedor?', 'Atención', MB_YESNO) = IDYES) then + begin + FController.Eliminar(FAlbaran); + inherited + end +end; + +procedure TfEditorAlbaranProveedor.FormShow(Sender: TObject); +begin + inherited; + + if not Assigned(FViewAlbaran) then + raise Exception.Create('No hay ninguna vista asignada'); + + if not Assigned(Albaran) then + raise Exception.Create('No hay ningún Albaran asignado'); + + Albaran.DataTable.Active := True; + pgPaginas.ActivePage := pagGeneral; +end; + +procedure TfEditorAlbaranProveedor.frViewTotales1edtDescuentoPropertiesValidate( + Sender: TObject; var DisplayValue: Variant; var ErrorText: TCaption; + var Error: Boolean); +begin + inherited; + FAlbaran.DESCUENTO := DisplayValue; +end; + +procedure TfEditorAlbaranProveedor.frViewTotales1edtIVAPropertiesValidate( + Sender: TObject; var DisplayValue: Variant; var ErrorText: TCaption; + var Error: Boolean); +begin + inherited; + FAlbaran.IVA := DisplayValue; +end; + +procedure TfEditorAlbaranProveedor.frViewTotales1ePortePropertiesValidate( + Sender: TObject; var DisplayValue: Variant; var ErrorText: TCaption; + var Error: Boolean); +begin + inherited; + if not VarIsNull(DisplayValue) then + FAlbaran.IMPORTE_PORTE := DisplayValue + else + FAlbaran.IMPORTE_PORTE := 0; + + RecalcularPortePorUnidad; +end; + +function TfEditorAlbaranProveedor.GetController: IAlbaranesProveedorController; +begin + Result := FController; +end; + +function TfEditorAlbaranProveedor.GetAlbaran: IBizAlbaranProveedor; +begin + Result := FAlbaran; +end; + +function TfEditorAlbaranProveedor.GetViewAlbaran: IViewAlbaranProveedor; +begin + Result := FViewAlbaran; +end; + +procedure TfEditorAlbaranProveedor.GuardarInterno; +var + bEsNuevo : Boolean; +begin + inherited; + 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.ImprimirInterno; +begin +AppFactuGES.ShowCapado; +{ + inherited; + FController.Print(FAlbaran); +} +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 + begin + FController.DetallesController.ActualizarDetalles(FAlbaran.Detalles, FAlbaran.Proveedor); + //En caso de ser una orden de devolucion también debe cambiar el signo a los detalles + if (Albaran.TIPO = CTE_TIPO_ALBARAN_DEV) then + Controller.DetallesController.CambiarSignoDetalles(FAlbaran.Detalles); + end; + 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 + ' (' + AppFactuGES.EmpresaActiva.NOMBRE + ')'; +end; + +procedure TfEditorAlbaranProveedor.PrevisualizarInterno; +begin +AppFactuGES.ShowCapado; +{ + inherited; + FController.Preview(FAlbaran); +} +end; + +procedure TfEditorAlbaranProveedor.RecalcularPortePorUnidad; +begin + //Esta lógica se llamará en el editor porque es para facilitar el rellenado de información del documento + //no puede ir en la clase de negocio porque no es una lógica que tenga sentido fuera del editor. + if Assigned(Controller) + and Assigned(Controller.DetallesController) then + Controller.DetallesController.DesglosarPorteDetalles(FAlbaran.IMPORTE_PORTE, FAlbaran.Detalles) +end; + +procedure TfEditorAlbaranProveedor.SetController(const Value: IAlbaranesProveedorController); +begin + FController := Value; + + if Assigned(FController) then + begin + 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..6e998086 --- /dev/null +++ b/Source/Modulos/Albaranes de proveedor/Views/uEditorAlbaranesDevProveedor.dfm @@ -0,0 +1,924 @@ +inherited fEditorAlbaranesDevProveedor: TfEditorAlbaranesDevProveedor + Caption = 'Lista de '#243'rdenes de devoluci'#243'n de proveedor' + ClientWidth = 872 + ExplicitWidth = 880 + ExplicitHeight = 478 + PixelsPerInch = 96 + TextHeight = 13 + inherited JvNavPanelHeader: TJvNavPanelHeader + Width = 872 + Caption = 'Lista de '#243'rdenes de devoluci'#243'n de proveedor' + ExplicitWidth = 872 + inherited Image1: TImage + Left = 845 + 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} + ExplicitLeft = 845 + end + end + inherited TBXDock: TTBXDock + Width = 872 + ExplicitWidth = 872 + inherited tbxMain: TTBXToolbar + ExplicitWidth = 632 + end + inherited tbxMenu: TTBXToolbar + ExplicitWidth = 872 + end + inherited TBXTMain2: TTBXToolbar + ExplicitWidth = 112 + end + end + inherited StatusBar: TJvStatusBar + Width = 872 + ExplicitWidth = 872 + end + inherited EditorActionList: TActionList + inherited actNuevo: TAction + ImageIndex = 24 + end + inherited actGenerarFactura: TAction + Caption = 'Generar abono' + end + 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 GridPopupMenu: TPopupMenu + object N4: TMenuItem [5] + Caption = '-' + end + object Acercade1: TMenuItem [6] + Action = actGenerarFactura + end + end + inherited JsPrevisualizarDialog: TJSDialog + CustomButtons = < + item + Caption = 'Previsualizar la orden/es de devoluci'#243'n seleccionada/s' + Value = 100 + Default = True + end + item + Caption = 'Previsualizar la lista de ordenes de devoluci'#243'n actual' + Value = 200 + end> + end + inherited JsImprimirDialog: TJSDialog + CustomButtons = < + item + Caption = 'Imprimir la orden/es de devoluci'#243'n seleccionada/s' + Value = 100 + Default = True + end + item + Caption = 'Imprimir la lista de ordenes de devouci'#243'n actual' + Value = 200 + end> + end + inherited JsListaAlbaranesNoEliminados: TJSDialog + Instruction.Text = + 'Las siguientes ordenes de devoluci'#243'n no han podido ser eliminada' + + 's, porque est'#225'n asociadas a un abono' + end +end diff --git a/Source/Modulos/Albaranes de proveedor/Views/uEditorAlbaranesDevProveedor.pas b/Source/Modulos/Albaranes de proveedor/Views/uEditorAlbaranesDevProveedor.pas new file mode 100644 index 00000000..f5b00e19 --- /dev/null +++ b/Source/Modulos/Albaranes de proveedor/Views/uEditorAlbaranesDevProveedor.pas @@ -0,0 +1,54 @@ +unit uEditorAlbaranesDevProveedor; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uEditorAlbaranesProveedor, JSDialog, Menus, DB, uDADataTable, + JvAppStorage, JvAppRegistryStorage, JvComponentBase, JvFormPlacement, ImgList, + PngImageList, StdActns, ActnList, ComCtrls, JvExComCtrls, JvStatusBar, TBX, + TB2ExtItems, TBXExtItems, TB2Item, TB2Dock, TB2Toolbar, pngimage, ExtCtrls, + JvExControls, JvComponent, JvNavigationPane, uIEditorAlbaranesDevProveedor, + uDAInterfaces; + +type + + TfEditorAlbaranesDevProveedor = class(TfEditorAlbaranesProveedor, IEditorAlbaranesDevProveedor) + N4: TMenuItem; + Acercade1: TMenuItem; + protected + procedure AsignarVista; override; + procedure NuevoInterno; override; + public + procedure PonerTitulos(const ATitulo: string = ''); override; + end; + +implementation +{$R *.dfm} + +uses + uDataModuleUsuarios, uViewAlbaranesDevProveedor, uFactuGES_App; + +{ 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 - ' + AppFactuGES.EmpresaActiva.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..106f2c7c --- /dev/null +++ b/Source/Modulos/Albaranes de proveedor/Views/uEditorAlbaranesProveedor.dfm @@ -0,0 +1,2828 @@ +inherited fEditorAlbaranesProveedor: TfEditorAlbaranesProveedor + Caption = 'Lista de albaranes de proveedor' + ClientWidth = 606 + ExplicitWidth = 614 + ExplicitHeight = 471 + PixelsPerInch = 96 + TextHeight = 13 + inherited JvNavPanelHeader: TJvNavPanelHeader + Width = 606 + Caption = 'Lista de albaranes de proveedor' + ExplicitWidth = 606 + inherited Image1: TImage + Left = 579 + Picture.Data = { + 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001800 + 0000180806000000E0773DF80000000970485973000017120000171201679FD2 + 5200000A4D6943435050686F746F73686F70204943432070726F66696C650000 + 78DA9D53775893F7163EDFF7650F5642D8F0B1976C81002223AC08C81059A210 + 92006184101240C585880A561415119C4855C482D50A489D88E2A028B867418A + 885A8B555C38EE1FDCA7B57D7AEFEDEDFBD7FBBCE79CE7FCCE79CF0F80111226 + 91E6A26A003952853C3AD81F8F4F48C4C9BD80021548E0042010E6CBC26705C5 + 0000F00379787E74B03FFC01AF6F00020070D52E2412C7E1FF83BA5026570020 + 9100E02212E70B01905200C82E54C81400C81800B053B3640A009400006C797C + 422200AA0D00ECF4493E0500D8A993DC1700D8A21CA908008D01009928472402 + 40BB00605581522C02C0C200A0AC40222E04C0AE018059B632470280BD050076 + 8E58900F4060008099422CCC0020380200431E13CD03204C03A030D2BFE0A95F + 7085B8480100C0CB95CD974BD23314B895D01A77F2F0E0E221E2C26CB1426117 + 29106609E4229C979B231348E7034CCE0C00001AF9D1C1FE383F90E7E6E4E1E6 + 66E76CEFF4C5A2FE6BF06F223E21F1DFFEBC8C020400104ECFEFDA5FE5E5D603 + 70C701B075BF6BA95B00DA560068DFF95D33DB09A05A0AD07AF98B7938FC401E + 9EA150C83C1D1C0A0B0BED2562A1BD30E38B3EFF33E16FE08B7EF6FC401EFEDB + 7AF000719A4099ADC0A383FD71616E76AE528EE7CB0442316EF7E723FEC7857F + FD8E29D1E234B15C2C158AF15889B850224DC779B952914421C995E212E97F32 + F11F96FD0993770D00AC864FC04EB607B5CB6CC07EEE01028B0E58D27600407E + F32D8C1A0B91001067343279F7000093BFF98F402B0100CD97A4E30000BCE818 + 5CA894174CC608000044A0812AB041070CC114ACC00E9CC11DBCC01702610644 + 400C24C03C104206E4801C0AA11896411954C03AD804B5B0031AA0119AE110B4 + C131380DE7E0125C81EB70170660189EC218BC86090441C8081361213A881162 + 8ED822CE0817998E04226148349280A420E988145122C5C872A402A9426A915D + 4823F22D7214398D5C40FA90DBC820328AFC8ABC47319481B25103D4027540B9 + A81F1A8AC6A073D174340F5D8096A26BD11AB41E3D80B6A2A7D14BE87574007D + 8A8E6380D1310E668CD9615C8C87456089581A26C71663E55835568F35631D58 + 3776151BC09E61EF0824028B8013EC085E8410C26C82909047584C5843A825EC + 23B412BA085709838431C2272293A84FB4257A12F9C478623AB1905846AC26EE + 211E219E255E270E135F9348240EC992E44E0A21259032490B496B48DB482DA4 + 53A43ED210699C4C26EB906DC9DEE408B280AC209791B7900F904F92FBC9C3E4 + B7143AC588E24C09A22452A494124A35653FE504A59F324299A0AA51CDA99ED4 + 08AA883A9F5A496DA076502F5387A91334759A25CD9B1643CBA42DA3D5D09A69 + 6769F7682FE974BA09DD831E4597D097D26BE807E9E7E983F4770C0D860D83C7 + 486228196B197B19A718B7192F994CA605D39799C85430D7321B9967980F986F + 55582AF62A7C1591CA12953A9556957E95E7AA545573553FD579AA0B54AB550F + AB5E567DA64655B350E3A909D416ABD5A91D55BBA936AECE5277528F50CF515F + A3BE5FFD82FA630DB2868546A08648A35463B7C6198D2116C63265F15842D672 + 5603EB2C6B984D625BB2F9EC4C7605FB1B762F7B4C534373AA66AC6691669DE6 + 71CD010EC6B1E0F039D99C4ACE21CE0DCE7B2D032D3F2DB1D66AAD66AD7EAD37 + DA7ADABEDA62ED72ED16EDEBDAEF75709D409D2C9DF53A6D3AF77509BA36BA51 + BA85BADB75CFEA3ED363EB79E909F5CAF50EE9DDD147F56DF4A3F517EAEFD6EF + D11F373034083690196C313863F0CC9063E86B9869B8D1F084E1A811CB68BA91 + C468A3D149A327B826EE8767E33578173E66AC6F1C62AC34DE65DC6B3C616269 + 32DBA4C4A4C5E4BE29CD946B9A66BAD1B4D374CCCCC82CDCACD8ACC9EC8E39D5 + 9C6B9E61BED9BCDBFC8D85A5459CC54A8B368BC796DA967CCB05964D96F7AC98 + 563E567956F556D7AC49D65CEB2CEB6DD6576C501B579B0C9B3A9BCBB6A8AD9B + ADC4769B6DDF14E2148F29D229F5536EDA31ECFCEC0AEC9AEC06ED39F661F625 + F66DF6CF1DCC1C121DD63B743B7C727475CC766C70BCEBA4E134C3A9C4A9C3E9 + 57671B67A1739DF33517A64B90CB1297769717536DA78AA76E9F7ACB95E51AEE + BAD2B5D3F5A39BBB9BDCADD96DD4DDCC3DC57DABFB4D2E9B1BC95DC33DEF41F4 + F0F758E271CCE39DA79BA7C2F390E72F5E765E595EFBBD1E4FB39C269ED6306D + C8DBC45BE0BDCB7B603A3E3D65FACEE9033EC63E029F7A9F87BEA6BE22DF3DBE + 237ED67E997E07FC9EFB3BFACBFD8FF8BFE179F216F14E056001C101E501BD81 + 1A81B3036B031F049904A50735058D05BB062F0C3E15420C090D591F72936FC0 + 17F21BF96333DC672C9AD115CA089D155A1BFA30CC264C1ED6118E86CF08DF10 + 7E6FA6F94CE9CCB60888E0476C88B81F69199917F97D14292A32AA2EEA51B453 + 747174F72CD6ACE459FB67BD8EF18FA98CB93BDB6AB6727667AC6A6C526C63EC + 9BB880B8AAB8817887F845F1971274132409ED89E4C4D8C43D89E37302E76C9A + 339CE49A54967463AEE5DCA2B917E6E9CECB9E773C593559907C3885981297B2 + 3FE5832042502F184FE5A76E4D1D13F2849B854F45BEA28DA251B1B7B84A3C92 + E69D5695F638DD3B7D43FA68864F4675C633094F522B79911992B923F34D5644 + D6DEACCFD971D92D39949C949CA3520D6996B42BD730B728B74F662B2B930DE4 + 79E66DCA1B9387CAF7E423F973F3DB156C854CD1A3B452AE500E164C2FA82B78 + 5B185B78B848BD485AD433DF66FEEAF9230B82167CBD90B050B8B0B3D8B87859 + F1E022BF45BB16238B5317772E315D52BA647869F0D27DCB68CBB296FD50E258 + 5255F26A79DCF28E5283D2A5A5432B82573495A994C9CB6EAEF45AB963156195 + 6455EF6A97D55B567F2A17955FAC70ACA8AEF8B046B8E6E2574E5FD57CF5796D + DADADE4AB7CAEDEB48EBA4EB6EACF759BFAF4ABD6A41D5D086F00DAD1BF18DE5 + 1B5F6D4ADE74A17A6AF58ECDB4CDCACD03356135ED5BCCB6ACDBF2A136A3F67A + 9D7F5DCB56FDADABB7BED926DAD6BFDD777BF30E831D153BDEEF94ECBCB52B78 + 576BBD457DF56ED2EE82DD8F1A621BBABFE67EDDB847774FC59E8F7BA57B07F6 + 45EFEB6A746F6CDCAFBFBFB2096D52368D1E483A70E59B806FDA9BED9A77B570 + 5A2A0EC241E5C127DFA67C7BE350E8A1CEC3DCC3CDDF997FB7F508EB48792BD2 + 3ABF75AC2DA36DA03DA1BDEFE88CA39D1D5E1D47BEB7FF7EEF31E36375C7358F + 579EA09D283DF1F9E48293E3A764A79E9D4E3F3DD499DC79F74CFC996B5D515D + BD6743CF9E3F1774EE4CB75FF7C9F3DEE78F5DF0BC70F422F762DB25B74BAD3D + AE3D477E70FDE148AF5B6FEB65F7CBED573CAE74F44DEB3BD1EFD37FFA6AC0D5 + 73D7F8D72E5D9F79BDEFC6EC1BB76E26DD1CB825BAF5F876F6ED17770AEE4CDC + 5D7A8F78AFFCBEDAFDEA07FA0FEA7FB4FEB165C06DE0F860C060CFC3590FEF0E + 09879EFE94FFD387E1D247CC47D52346238D8F9D1F1F1B0D1ABDF264CE93E1A7 + B2A713CFCA7E56FF79EB73ABE7DFFDE2FB4BCF58FCD8F00BF98BCFBFAE79A9F3 + 72EFABA9AF3AC723C71FBCCE793DF1A6FCADCEDB7DEFB8EFBADFC7BD1F9928FC + 40FE50F3D1FA63C7A7D04FF73EE77CFEFC2FF784F3FB25D29F33000000046741 + 4D410000B18E7CFB51930000026A4944415478DA63FCFFFF3F032D0123B2054B + B79CA49A6DD13EE68C582D004A906CD8DFBFFF80F83F980601EBC07C86733BA6 + E1B6C0B6683F8A0187FB1C711A8EAC765BB315C3C275FB19E62DDD84DF02525C + EE507A9081455D89E1C08C1D0CEF0FC6312CD97890B005D87C802E06027B3BEC + 189C2B0E311CD97F0BCC7FB32F8661F996C394F9E0FF3F605803F11FA0EB41EC + 3FFFFE41E3E01F98BD7ADB51D27D400C00F9E2F18E70860DBB4E106701CCDBA4 + 80075B431936EF3D459C05F8520E3600D2B3A8508F61EB81D3C45B802BA86096 + C3E4616AE7E7EB32EC387486721F4C2C7064F8CA7E8E41F8D527BCBE7AF2D589 + 341FC02C6D2BE76788F0FBC520C1F883E1D74F0608FEC1C0F0134603F1C91344 + 58800DCC4C6464884D85B0F119CE2FC1C070F52E160B223C4DC1B9139B0F62DE + 3B31B008E28FEC3FEF1186638D8350371370EEC4E60364D783C0A7F71017C330 + C80767CE4082C6CE701FC3A1F3587C10E46CC4E0567D04A70520CD8400C87010 + C06A819FA3018357ED31AC1A414184EC0310F8FB17182CBF19187EFF02FAE23B + 03C38D1B0839AC1678DBE9C1CB155819032A7B40F49E7A51140B4086FE061AFE + E71784BD660D07839AC60F0636163C167858EB60351C54A1EC6F12C3880390C1 + 201F80F0966D1C0C52F2100BD85819184E5CC662818BA51656C341F4A1560914 + 0BDEBE44180EB268E71E0E061169880557EE383134AFDACB886181BDA93AD8B0 + 7F7F11C532CCC2E39DD2700B4006BE7B85301C1454FB0E7230F089FF6078F004 + 6238D6646A63A40A2E11B101D67D9E600B664EE5C09982DEFDB662D8FA491D77 + 59D43B65214ECDF6BCFB187818A5F1265190E12000B300003BBC36ACFF3E8021 + 0000000049454E44AE426082} + ExplicitLeft = 579 + end + end + inherited TBXDock: TTBXDock + Width = 606 + ExplicitWidth = 606 + inherited tbxMain: TTBXToolbar + ExplicitWidth = 606 + end + inherited tbxMenu: TTBXToolbar + ExplicitWidth = 606 + end + inherited TBXTMain2: TTBXToolbar + Visible = True + ExplicitWidth = 117 + object TBXItem39: TTBXItem + Action = actGenerarFactura + DisplayMode = nbdmImageAndText + end + end + end + inherited StatusBar: TJvStatusBar + Width = 606 + ExplicitWidth = 606 + end + inherited EditorActionList: TActionList + inherited actNuevo: TAction + ImageIndex = 21 + end + inherited actConfPagina: TAction + Visible = False + end + inherited actPrevisualizar: TAction + Visible = True + end + inherited actImprimir: TAction + Visible = True + end + inherited actAnchoAuto: TAction + ImageIndex = 22 + end + object actGenerarFactura: TAction + 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 + object JsPrevisualizarDialog: TJSDialog + Content.Strings = ( + 'Elija una opci'#243'n:') + DialogOptions = [doCommandLinks, doModal] + Glyph.Data = { + 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001C00 + 00001C0806000000720DDF940000000970485973000017120000171201679FD2 + 520000000467414D410000B18E7CFB5193000003104944415478DAAD96FB4B14 + 5114C7CFE463DC1E606444BFF54424D3DC55CA52B1CCD7165A219905054182FD + 1452FD5810FD100406610A669A998FC4F5BDB6266265DAB60F5DD15E58FE03B2 + 3F99D29ABBA7B9779C71C61D9D6177CFCE70CFDCB97B3EF7DCF3BD33C38082FD + B502B2B300CC656020048688A24F036233A0671F40D43160BA87BF62AEEE1010 + 60D7AE293AD8B835815E9B625C80DC8F1E88D4A7C1E8C1FB8F9FD6C3C44035B3 + 21500A65F6D700FE2EA580A5EC551F4A50359316B31D76EFDC0EE5F72A645045 + A067AE0623074B8140891108F1057064CC0D556053DF173812B707E6DCF332A8 + 225080D201DB4AF99BF335B4D502F371415BCC364833C4C29F458F0C2A031281 + 081734AB0B3C88403C1E6E3E2E7960F6A8FFD27A7D3EF07A11DA2C76C84A8D87 + A57FCB32E8B8A54A4C8C21B59365C9015996EF2240B6634DF435B51460A46D1F + 70C093AA46BF09C980C12CA914E6F371ADD707EF1DB3B0B0B8006EB79B8EA96B + EA5106121851245129118FD8BFA2DC5C53C6BAF5EBBBBA97C2D64EC064195B1F + 286C76E956A0EA5C51AEB4764A9929F5750D5A9581D2274B9B651C0BA2F514A8 + 6F28E36B70AD9A4253EF97A9AA55B0CEBA87D03B645B3F43C1DE589C58186D10 + 81150FCAC57B11E161B04517099BB953C78643141B01BA28EEE4DAB0B04DE2B8 + CA460B9C399902E661BB3AB0F5AD038BF30CD4D7E7DD14815A61023027DD00EF + 469C1A80FD1C307F1578FD4A81E665945AD68924181A9D5007B6F4DBF1527E32 + F5C9D3632351F8F549AEE916B14EAA039BCD362C31A6040D23E7887D4A03B0CF + 86C5C6641A24BB7646D3F2D51A77F8C1BCDCFFC79CD3EAC0D7BD56AE86294165 + 4660CB5C6B737DD3062CCA31D00069E76E05241862CF1EDD05E7D40F756063CF + 673C7F5A4F679A59541EF03E4C8C3B0893DF67D481AFBAC7B0F05412CD30EBE2 + ED80F7617CEC0198FEF94B1BF06C6622AD4B4EC99D80F7A1666043D7281A3312 + FD84C20B8417C3AA789405239826E0CBCE4F98979E10344C33B0BE630473D312 + 82866906D6993E62F6F1C3F45D160A5305BE68FF8095CF5B4302134CFE1185EA + 1FB8A1B4FF4FE32FF6FADB8B5E0000000049454E44AE426082} + Instruction.Text = 'Previsualizar...' + Instruction.Glyph.Data = { + 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001C00 + 00001C0806000000720DDF940000000970485973000017120000171201679FD2 + 520000000467414D410000B18E7CFB5193000003104944415478DAAD96FB4B14 + 5114C7CFE463DC1E606444BFF54424D3DC55CA52B1CCD7165A219905054182FD + 1452FD5810FD100406610A669A998FC4F5BDB6266265DAB60F5DD15E58FE03B2 + 3F99D29ABBA7B9779C71C61D9D6177CFCE70CFDCB97B3EF7DCF3BD33C38082FD + B502B2B300CC656020048688A24F036233A0671F40D43160BA87BF62AEEE1010 + 60D7AE293AD8B835815E9B625C80DC8F1E88D4A7C1E8C1FB8F9FD6C3C44035B3 + 21500A65F6D700FE2EA580A5EC551F4A50359316B31D76EFDC0EE5F72A645045 + A067AE0623074B8140891108F1057064CC0D556053DF173812B707E6DCF332A8 + 225080D201DB4AF99BF335B4D502F371415BCC364833C4C29F458F0C2A031281 + 081734AB0B3C88403C1E6E3E2E7960F6A8FFD27A7D3EF07A11DA2C76C84A8D87 + A57FCB32E8B8A54A4C8C21B59365C9015996EF2240B6634DF435B51460A46D1F + 70C093AA46BF09C980C12CA914E6F371ADD707EF1DB3B0B0B8006EB79B8EA96B + EA5106121851245129118FD8BFA2DC5C53C6BAF5EBBBBA97C2D64EC064195B1F + 286C76E956A0EA5C51AEB4764A9929F5750D5A9581D2274B9B651C0BA2F514A8 + 6F28E36B70AD9A4253EF97A9AA55B0CEBA87D03B645B3F43C1DE589C58186D10 + 81150FCAC57B11E161B04517099BB953C78643141B01BA28EEE4DAB0B04DE2B8 + CA460B9C399902E661BB3AB0F5AD038BF30CD4D7E7DD14815A61023027DD00EF + 469C1A80FD1C307F1578FD4A81E665945AD68924181A9D5007B6F4DBF1527E32 + F5C9D3632351F8F549AEE916B14EAA039BCD362C31A6040D23E7887D4A03B0CF + 86C5C6641A24BB7646D3F2D51A77F8C1BCDCFFC79CD3EAC0D7BD56AE86294165 + 4660CB5C6B737DD3062CCA31D00069E76E05241862CF1EDD05E7D40F756063CF + 673C7F5A4F679A59541EF03E4C8C3B0893DF67D481AFBAC7B0F05412CD30EBE2 + ED80F7617CEC0198FEF94B1BF06C6622AD4B4EC99D80F7A1666043D7281A3312 + FD84C20B8417C3AA789405239826E0CBCE4F98979E10344C33B0BE630473D312 + 82866906D6993E62F6F1C3F45D160A5305BE68FF8095CF5B4302134CFE1185EA + 1FB8A1B4FF4FE32FF6FADB8B5E0000000049454E44AE426082} + Instruction.Icon = tdiCustom + CustomButtons = < + item + Caption = 'Previsualizar el albaran/es seleccionado/s' + Value = 100 + Default = True + end + item + Caption = 'Previsualizar la lista de albaranes actual' + Value = 200 + end> + ButtonBar.Buttons = [cbCancel] + MainIcon = tdiCustom + Title = 'FactuGES' + Position = dpMainFormCenter + Icon.Data = { + 0000010003002020100001000400E8020000360000002020000001000800A808 + 00001E0300002020000001002000A8100000C60B000028000000200000004000 + 0000010004000000000000020000000000000000000000000000000000000000 + 000000008000008000000080800080000000800080008080000080808000C0C0 + C0000000FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFFFF000000 + 0000000000000000000000000000000008777777777777777777777700000000 + 0877767777677776777767760000000008F88888888888888888888700000000 + 08F8FF8F8F888888888888860000000008FF8F8F88F8F8888888888C00000000 + 08F88888F8888888888888860000000008F8688878E8888E88E8788700000000 + 08F8688888F8F8FFFFFF88760000000008FF4888888F8FFFFFFF788700000000 + 08F8676767677677677658E50000000008FF8888888887878787888700000000 + 08FF8887887E8888888888860000000008FFE8E8E788C8E8FF8F8F8600000000 + 08FFF8F8F8F8FF8F88F8F8870000000008FFFFFF8FF8F8F8F88F888600000000 + 0FF8477878787878788788860000000008FF68888888F8FF8F8F788700000000 + 08B7588888FF8FFFFFFF78860000083008BB47887776777777776F86000000B7 + 8B9B73BB88788787E87878870000008BB8B9BB78888888EFF8F8FF8600000087 + B8BB8B888E8E8E88FFF8F886000000088BBB888FFFFFFFFFF8F877770000B9BB + B8FFBB9B9BFFFFFFF87466460000BBB9BB8FBBBBB8FFFFFFF88F888700000008 + B8BB88888FFFFFFFF88F8F7700000008BBBBBB8FFFFFFFFFFF8887700000007B + B7B98BB8FFFFFFFFF8887700000000B78B9B87B888F88F88F8877000000007B0 + 08BB883B78888788787700000000000000B9000000000000000000000000FFFF + FFFFF800000FF800000FF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000FF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000F9800000FC000000FC000000FC000000FE000000F0000 + 000F0000000FE000000FE000001FC000003FC000007F980000FFFCFFFFFF2800 + 0000200000004000000001000800000000000004000000000000000000000001 + 00000001000000000000694731007C5D49007E604C0081635000826451008567 + 540085685500886B5900896D5B008A6E5D008B705F008E715F008B7260008C72 + 61008E74640084766C00957A6900977D6D00887B72009A8171009D8272009C84 + 76009D8778009F897B00A28A7900A08B7D00A18C7E00E1B06E00E1B67D003E7A + 970073A0A5007AA2B70074AFBD007BB2BB003CAACE0028A5DB0020ADDF000D9A + E500209EE3000DA6E2001AA4EF0000A6FF000CABFE0009ACFE0010A4F10015AC + FA0000B5FB0000B0FD000CB6FC0000BFF90000BAFD0004BAFD0009BBFB0013B6 + F40015BFFA001CBDFB0026B7FD00589EC50040A4CD0040ABCC0050A2C7005DAE + C00060A3C20062A4C60060B7CB006AB0CD007BB6C80077BAC80061BADD0044AD + E50000C3F80007C6FB0000CAF80000CFFB0000D4F90026C8FA0026CDF8002BCC + F90039C4FB0039C2FC0039CAFA003FCFFB0024D6F80030D2F80039D5F80000F8 + F8001FF8F8002CF6F8003EF4F8005AC6DC0070CDDF0052C0E40054C9E3004DCE + FA005FC7FF004FD2FB004DD9F8005FD9FB006ED3E70063CDFE0060D1FB0060D8 + F90060DDF80046F8F90056F0F8005FFAFA0073E3F80073E4F90073EEF80060F1 + F800958A84009A918C0081999500A68F8200AD968500A3968C00AE988900AD9A + 8D00B19A8B00AF9C9000B09E9200B59F9200B7A29300B2A19600B5A19400B7A4 + 9700BDA79700B4A39800B1A59D00B4A79F00BAA69800BCA79900B4A89F00BCA8 + 9900BAA89C00BDAA9D00BEAC9E0083ADBD00B5A9A100BDABA000BEADA100BFAF + A500A0BABE00C0AB9E00C1AC9E00C6AE9F00E2B98100E4BA8300E4BB8400E5BC + 8500E1BD8E00E3BF9000C0ADA000C2B0A300C2B1A500C4B2A600C1B2A800C3B5 + AB00C8B4A800CCB9AD00CEBCB100D0BEB200D1BFB400E4C19300E5C29400E6C4 + 9600E8C69900D0C9A300CFC1B800D2C1B600D3C3B800D5C4B900D6C6BC00D8C6 + BC00D6C8BE00DAC9BF00ECD3B000EDD4B200EFD6B500E7D1B800E7D3BD00F0D8 + B6008CB7C40080BEC70097C3C70099C3C900ABD7CF00AFD9DD0086E3F90086E7 + F90086ECF8009EE5FB0090E8F900ACEDFC00BCEAFD00BCF1FB00BFF1FD00D7C9 + C000D9CAC100DCCBC200DACCC200DDCCC300DACCC400DDCEC400DED0C600DED1 + C900DED3CC00DFD4CD00E1D1C900E2D5CD00F0DCC200E3D8D200E5D9D200E2DA + D500E6DBD400E5DCD500E8DDD600E6DDD800E9DFD900E6E0DB00EAE0DA00EAE2 + DD00ECE3DE00EBE4DE00ECE4DE00F3E7D900C6E1EF00C9EFFD00D7F6FD00DFF3 + FF00DFFEFE00EBE7E300EDE6E100EFE7E400EEE8E400F0EAE600F2EDE900F2EE + EC00F4EFEC00F5F0EE00F9F4ED00E7FAFD00EBF8FF00F6F2F000F7F4F100F8F4 + F200F9F7F500FAF8F600FBF9F900FCFBFA00FCFCFB00FEFEFE00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000007D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D + 0D0D0000000000000000009C9C19191919191919191919191919191919191919 + 1903000000000000000000ABDECBCBC7C7AFABABABABAAA3A2A2A0A0A0A0A0A0 + 8607000000000000000000ABECEAE9DEDEDEDED7D5D2D2D2CBCBCBCBB0CBB0CB + 9007000000000000000000ABEDECEAE9DEDEDBD7D7D5D2D2D2CDCDCBB0B0B0B0 + 9007000000000000000000AFEDE9A9CFD2CFD2CDCBCBCBB0B0ABACA3A3A3A3B0 + 9007000000000000000000AFF0D5017783838386868686869099909999907BB0 + 9007000000000000000000B0F4D501A0B0CBD2D5DEECEDF7FAFAFAFAFAF77BAA + 9007000000000000000000CBF4DC01A0B0B0B0D2D5DBEAEDF7FAFAFAFAF47BB0 + 9007000000000000000000CBF8DC010404070604090909090D0D110D110D02A3 + 9007000000000000000000CBFAED9E9E9E9C999E8C8C8C868683837E7D7D7ACB + 9007000000000000000000CBFAF1A7A7A6A6A6A69898989898B5DBDBD5D5D2D2 + 9907000000000000000000CDFAF796969696961D961D931D1DB4DEDBD7D5D5D2 + 9C07000000000000000000CFFAFAFAFAF8F7F0F0EDEDEDECE9E9DEDEDED7D5D5 + 9907000000000000000000CDFAFAEAF0EDEDECEAEAE9DEDEDBDCD5D5D5D5D2D5 + 9C07000000000000000000D2FAEC01737D7D7B7D7D7B7D7B7D7B7B7B7D7B7DD2 + 9907000000000000000000CFFAEC019EABB0CBD2D5DCDEECEDF4F4F4F4EA7BD2 + 9C07000000000000000000B9524601A0B0B0CBB5D5DEEAEDF7FAFAFAFAF47DD5 + 9C070000000000213F0000B83226010C3F5C1F111214141616191B1B1B1807D2 + 9C07000000000000253D8A5B322D711E2860BA7E7E7A7E797A797979767676D5 + 9E0700000000000041375E662F2B65314EBBB6B6B6B6B4B4B1E2F4EDEDEDECEA + 9C070000000000008F5D66663232394EC1A81C1C1C1C1C1C1CD3F7F4EDDED7D5 + 9C0700000000000000B7BE6E5758BEBDE4E6E6F3FAFAFAFAFAFAF7F4D5928675 + 7304000000002A2A2A2A4A6AFAE7562F2A2A2A5FFAFAFAFAFAFAF8D577010101 + 0101000000004747472F4A59C5E7564A32474766FAFAFAFAFAFAFADCA0D2CFB0 + A20C00000000000000436C6958686D6BC2C5C5E7FAFAFAFAFAFAFADEAADEDBCB + 1470000000000000004551534A4A5250C0E7FAFAFAFAFAFAFAFAFADEAAD7B514 + 700000000000000042384C54472B613550C3FAFAFAFAFAFAFAFAFADEA1B0196F + 000000000000000024234463322EBC5A3664E3ECE9E9E9E9E9E9E9CF90731300 + 000000000000003A3C00002232298B8B3E3B207E8B7E8B7E827E817E74100000 + 0000000000000000000000003227000000000000000000000000000000000000 + 000000000000FFFFFFFFF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000FF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000FF800000FF800000F9800000FC000000FC000000FC000 + 000FE000000F0000000F0000000FE000000FE000001FC000003FC000007F9800 + 00FFFCFFFFFF2800000020000000400000000100200000000000801000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000007067 + 5F70AA9382E570513CE3735540E3735540E3735540E3735540E3735540E37355 + 40E3735540E3735540E3735540E3735540E3735540E3735540E3735540E37355 + 40E3735540E3735540E3735540E3735540E3735540E3735540E372533EE5BAAB + A070000000000000000000000000000000000000000000000000000000005E54 + 4C7FCAB7ABFFC5B5AAFFA18877FFA28A78FFA28A79FFA28A79FFA28A79FFA28A + 79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A + 79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA58D7CFF7A5B46FFB2A1 + 967F000000000000000000000000000000000000000000000000000000006055 + 4D7ED7C6BBFFEDE4E0FFD9CCC4FFD9CCC4FFD9CBC3FFD8CAC1FFD7C9BFFFD6C7 + BDFFD5C6BBFFD4C4BAFFD3C3B8FFD2C1B7FFD1C0B5FFD0BEB3FFCFBDB2FFCEBC + B0FFCEBBAFFFCEBBAFFFCEBBAFFFCEBBAFFFCEBCB0FFBEAA9CFF82644FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006056 + 4D7ED7C8BCFFF2EBE8FFEFE9E5FFEEE7E2FFECE5E0FFEBE2DEFFEAE0DBFFE9DE + D8FFE7DBD4FFE5D9D1FFE3D7CFFFE2D4CCFFE1D2C9FFDFD0C7FFDDCDC4FFDCCB + C2FFDBC9BFFFDBC9BFFFDBC9BFFFDBC9BFFFDCCAC1FFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006155 + 4E7ED8C9BDFFF3EDE9FFF1EAE6FFF0E9E6FFEEE6E1FFECE4DFFFEBE2DDFFEAE0 + DAFFE9DED7FFE7DBD4FFE5D9D1FFE3D7CFFFE2D4CCFFE1D2C9FFDFD0C7FFDDCD + C4FFDCCBC2FFDBC9BFFFDBC9BFFFDBC9BFFFDCCAC0FFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006157 + 4E7ED9C9BFFFF4EFEDFFEFE8E3FFD0C2B9FFDFD5CEFFE0D5CEFFE0D4CCFFDED3 + CBFFDDD1C8FFDCCFC6FFDACCC4FFD9CBC1FFD8C9BFFFD7C7BDFFD6C5BBFFD5C4 + B9FFD3C2B7FFD2C0B5FFD2BFB4FFD2BFB4FFDAC8BEFFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006256 + 4F7EDACCC0FFF5F2EFFFE5DDD9FF5C3821FFB0998AFFB8A394FFB8A394FFB9A3 + 94FFB8A495FFB9A597FFB9A698FFBAA698FFBBA799FFBBA89AFFBBA89BFFBCA8 + 9BFFBCA89BFFBCA89BFFBBA89AFFB49E8FFFD8C6BBFFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006256 + 4F7EDBCBC1FFF8F4F3FFE7E0DBFF5F3C24FFD0BDB2FFDCCBC1FFDDCCC3FFE2D2 + CBFFE7DBD4FFEDE2DEFFF0E8E6FFF5F0EDFFF9F7F4FFFDFDFDFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFAF8F7FFB39D8DFFD8C6BBFFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006256 + 4F7EDCCEC3FFFAF6F5FFE9E2DDFF5F3C24FFD2BFB5FFDFCDC4FFDECCC3FFE0CE + C6FFE4D4CDFFE9DDD6FFEFE4E0FFF1EAE8FFF7F1EFFFFBF8F6FFFFFEFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFCFBFAFFB5A090FFD9C7BEFFC1AD9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006257 + 4F7EDDCFC4FFFCF9F9FFE9E4E0FF5F3A23FF7C5D49FF7F5F4CFF7E5F4CFF7E60 + 4DFF7F614DFF816350FF826552FF836654FF846856FF856A57FF866B59FF876C + 5BFF876D5BFF876D5BFF866B59FF72523DFFD5C3B9FFC1AFA1FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006357 + 507EDECFC6FFFCFCFBFFF4F1F0FFC3B6AEFFC3B5ADFFC1B4ACFFC0B3AAFFBFB1 + A9FFBEB0A6FFBDAEA5FFBDACA3FFBCABA2FFBBAAA0FFBAA99FFFB8A69AFFB8A4 + 98FFB6A396FFB5A194FFB49F93FFB39D90FFDCCDC4FFC2AEA1FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006357 + 507EDFD2C7FFFEFEFDFFF9F5EFFFE8C696FFE9C799FFE8C697FFE7C596FFE7C4 + 95FFE6C394FFE5C293FFE4C091FFE4C090FFE3BF8FFFE2BD8CFFE9D5BFFFEBE1 + DCFFEADFD8FFE7DCD5FFE5DAD3FFE4D8D0FFE3D4CCFFC2AFA2FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006458 + 517EE0D3C8FFFFFFFFFFFAF5EFFFE3B77CFFE4B97FFFE2B87EFFE3B77DFFE2B7 + 7CFFE2B67BFFE1B57AFFE1B479FFE0B478FFE0B377FFDFB174FFE6D0B7FFEBE1 + DCFFE8DFD9FFE8DDD6FFE6D9D2FFE3D8D1FFE4D7CFFFC3AFA2FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006458 + 517EE1D2C9FFFFFFFFFFFEFEFDFFFEFFFFFFFCFDFEFFFBFBFBFFF9F7F8FFF8F5 + F6FFF7F3F2FFF5F1F0FFF4EFEEFFF1EDEBFFF0EBE9FFEEE9E6FFEDE6E2FFECE3 + DEFFEBE1DBFFE9DFD9FFE8DDD6FFE6DAD3FFE5D9D2FFC3B0A3FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006459 + 517EE1D4CAFFFFFFFFFFFDFDFCFFEEEBE8FFF5F2F0FFF4F0EFFFF3EFECFFF2ED + EAFFF1EBE8FFEEE9E5FFEFE7E3FFECE5E1FFEAE4DEFFEAE1DCFFE8E0DAFFE7DE + D8FFE6DDD6FFE5DBD4FFE4D8D1FFE2D6CEFFE6DBD4FFC3B1A4FF81634EFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006559 + 527EE2D4CAFFFFFFFFFFF0ECEAFF5B361EFFAB9383FFB39D8EFFB39D8DFFB39D + 8DFFB29D8DFFB29C8DFFB29C8CFFB29C8CFFB29C8CFFB29C8CFFB29C8CFFB29C + 8CFFB29C8CFFB29C8CFFB29C8DFFB39D8EFFE3D8D0FFC4B1A4FF81634EFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006559 + 527EE5D4CAFFFFFFFFFFF7F0EBFF5F3B24FFCCB8ADFFD7C5BAFFD9C7BDFFDCCC + C3FFE1D4CCFFE5DAD4FFE8E0DBFFEDE5E1FFF1EBE9FFF5F2EFFFF7F5F3FFF8F6 + F4FFF8F5F4FFF8F6F4FFF1EEEAFFB29C8DFFE6DAD3FFC4B2A5FF81634EFFB2A1 + 967E00000000000000000000000000000000000000000000000000000000685A + 527E9AC6C9FF35CFFEFF3DAEEBFF663E24FFD2BFB4FFE0CBBFFFE0C9BDFFE1CD + C4FFE4D5CDFFE9DED7FFEEE5E0FFF2EBE8FFF6F2F0FFFCF8F8FFFFFFFEFFFFFF + FFFFFFFFFFFFFFFFFFFFFCFAF9FFB49E8FFFE7DED7FFC5B3A6FF81634EFFB2A1 + 967E00000000000000000000000000000000007792910072A7A3001E33366957 + 4C7C86C1C8FF00BFFBFF079AEBFF6A3E23FF926D57FF5FA3C8FF4AC1E8FF6C9C + A2FF917260FF927767FF947A69FF957C6CFF977E6FFF998171FF9A8374FF9B85 + 76FF9C8678FF9C8678FF998274FF7D5E49FFE3D9D4FFC5B3A7FF81634EFFB2A1 + 967E00000000000000000000000000000000005A6F7000A9E5E40075AEAE5C90 + A5BD75D0E0FF00BFFAFF0CA3F4FF8A9A91FF3C7492FF03A4E4FF4AD5FFFF98C4 + CBFFB3A196FFB1A197FFB0A096FFB09F95FFAF9D92FFAF9C91FFAD9A8EFFAC99 + 8CFFAB988AFFAB9789FFAA9688FFA99386FFE8E0DAFFC5B4A7FF81634EFFB2A1 + 967E00000000000000000000000000000000000000002DA5BFC110C2FFFF4DD0 + FDFF64DBF9FF00B3FAFF09A8FEFF68D7FFFF04B5FFFF24CCFBFFAFD8CEFFF7DA + B8FFF3DBBBFFF3DBBAFFF2D9B9FFF1D8B7FFF0D7B4FFEED5B2FFF6EADDFFF9F6 + F4FFF7F3F1FFF5F1EEFFF5EFECFFF4EDEAFFF1EBE7FFC6B4A8FF81634EFFB2A1 + 967E00000000000000000000000000000000000000005F8A909142C7E4E960DE + F8FF64D7FAFF00B6FDFF00B8FDFF21B2FDFF1ECCF7FF93EBFCFFD2C69BFFE1AB + 63FFDFAC66FFDFAC66FFDFAC66FFDFAC66FFDFAC66FFDEA961FFEFDBC0FFF8F6 + F5FFF6F2F0FFF3EDEBFFECE2DCFFE9DFD9FFE5DBD6FFC2B1A4FF81634FFFB2A1 + 967E000000000000000000000000000E171A000E171A00040B145994A4A990EB + FCFF61F1F7FF13FAF7FF23F9F7FF93EDF7FF8CE5F8FFD5F2FDFFE9F8FFFFE7F8 + FFFFF0FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFDFEFFFFFAFAF9FFF9F7 + F5FFF7F2F0FFE8DFD8FFC7AE9FFFBEA998FFAF9888FFB09A8AFF7F604DFFB2A1 + 967E00000000000000000000000000AAFFFF00AAFFFF00AAFFFF00A4FFFF00CD + FAFF5DFCF9FFFFFFFFFFEEFEFEFF00FBF7FF00AAFEFF00A1FFFF00A1FFFF00A0 + FFFF56C3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCFDFBFFFCFBFAFFFBFA + F8FFE6DDD6FFAA9180FF5D3922FF603D26FF613E27FF613E28FF634029FFB4A3 + 987E00000000000000000000000000CAFFFF00CAFFFF00CBFFFF00B0FFFF00CD + FBFF38F5F7FFC3EFFAFFF0FFFEFF00FAF7FF00C8F7FF00C2F7FF00C2F7FF00C1 + F7FF57D7FAFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFDFDFCFFFCFC + FBFFE7DED8FFCCB9ACFFE6DBD5FFE2D7D0FFDCCFC5FFD7C5BBFF8E705DFFB4A2 + 9680000000000000000000000000002E383C002E383C00252F364C99B0B57DE8 + FBFF59F1F7FF25F7F7FF41FAF8FF7CEEF7FF77E4F7FFB5EFFCFFC6F2FDFFC3F2 + FDFFD9F6FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFEFEFFFEFE + FEFFE9E1DAFFCEBCAFFFF1E9E3FFEADFD8FFE4D5CCFF9D816FFF3A291F868985 + 831C00000000000000000000000000000000000000004E7073774AB0DADC37C9 + FBFF22D5F7FF00D3F9FF02C3FBFF37D5F7FF34BEFCFFA2E6FAFFECFBFDFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFF + FFFFEAE2DCFFCDBBADFFEADFD8FFE3D5CBFF9F8271FF3E2D2386050100200000 + 000000000000000000000000000000000000000000003E9CC4C219C0FFFF23C9 + FCFF30D3F8FF00BEF8FF06A8FEFF4FDCF8FF00B8FCFF32C2FBFFC0EBFCFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFEAE3DEFFCDB9ABFFDDCEC4FFA58979FF3E2C1F8F0905041B000000000000 + 000000000000000000000000000000000000003451510099DDDB0091C0C35DAD + BCCF76D7E9FF00BEF9FF10A9FBFFBDDEDEFF5AC8DDFF0AB5F7FF62CEFFFFCBE4 + F1FFF1E7E0FFEFE7E1FFEEE6E1FFEEE6E1FFEEE6E0FFEDE6E0FFEDE5E0FFEEE6 + E1FFE1D4CCFFC5AE9FFFA68D7FF53E2718A10402000E00000000000000000000 + 0000000000000000000000000000000000000075B7AF0099C7C500323E425442 + 3B5C6BA8B1DA00C1FCFF0EA1F3F8A98E80C0AB9081C12698B1C10088C4C14C85 + A3C1A18D80C19E8D81C19E8B81C19D8C80C19B8C7FC19B8A7FC19C897FC19A89 + 7EC19B8B7EC1897769C2432B1BAC000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000045565A00C5FFFF0094E6E2000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000FFFFFFFFF0000007F0000007F0000007F000 + 0007F0000007F0000007F0000007F0000007F0000007F0000007F0000007F000 + 0007F0000007F0000007F0000007F0000007F0000007F0000007800000078000 + 0007C0000007C000000700000007000000070000000700000007C000000FC000 + 001F8000003F800000FFF8FFFFFF} + Width = 500 + Left = 232 + Top = 112 + end + object JsImprimirDialog: TJSDialog + Content.Strings = ( + 'Elija una opci'#243'n:') + DialogOptions = [doCommandLinks, doModal] + Glyph.Data = { + 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001C00 + 00001C0806000000720DDF940000000970485973000017120000171201679FD2 + 520000000467414D410000B18E7CFB5193000003104944415478DAAD96FB4B14 + 5114C7CFE463DC1E606444BFF54424D3DC55CA52B1CCD7165A219905054182FD + 1452FD5810FD100406610A669A998FC4F5BDB6266265DAB60F5DD15E58FE03B2 + 3F99D29ABBA7B9779C71C61D9D6177CFCE70CFDCB97B3EF7DCF3BD33C38082FD + B502B2B300CC656020048688A24F036233A0671F40D43160BA87BF62AEEE1010 + 60D7AE293AD8B835815E9B625C80DC8F1E88D4A7C1E8C1FB8F9FD6C3C44035B3 + 21500A65F6D700FE2EA580A5EC551F4A50359316B31D76EFDC0EE5F72A645045 + A067AE0623074B8140891108F1057064CC0D556053DF173812B707E6DCF332A8 + 225080D201DB4AF99BF335B4D502F371415BCC364833C4C29F458F0C2A031281 + 081734AB0B3C88403C1E6E3E2E7960F6A8FFD27A7D3EF07A11DA2C76C84A8D87 + A57FCB32E8B8A54A4C8C21B59365C9015996EF2240B6634DF435B51460A46D1F + 70C093AA46BF09C980C12CA914E6F371ADD707EF1DB3B0B0B8006EB79B8EA96B + EA5106121851245129118FD8BFA2DC5C53C6BAF5EBBBBA97C2D64EC064195B1F + 286C76E956A0EA5C51AEB4764A9929F5750D5A9581D2274B9B651C0BA2F514A8 + 6F28E36B70AD9A4253EF97A9AA55B0CEBA87D03B645B3F43C1DE589C58186D10 + 81150FCAC57B11E161B04517099BB953C78643141B01BA28EEE4DAB0B04DE2B8 + CA460B9C399902E661BB3AB0F5AD038BF30CD4D7E7DD14815A61023027DD00EF + 469C1A80FD1C307F1578FD4A81E665945AD68924181A9D5007B6F4DBF1527E32 + F5C9D3632351F8F549AEE916B14EAA039BCD362C31A6040D23E7887D4A03B0CF + 86C5C6641A24BB7646D3F2D51A77F8C1BCDCFFC79CD3EAC0D7BD56AE86294165 + 4660CB5C6B737DD3062CCA31D00069E76E05241862CF1EDD05E7D40F756063CF + 673C7F5A4F679A59541EF03E4C8C3B0893DF67D481AFBAC7B0F05412CD30EBE2 + ED80F7617CEC0198FEF94B1BF06C6622AD4B4EC99D80F7A1666043D7281A3312 + FD84C20B8417C3AA789405239826E0CBCE4F98979E10344C33B0BE630473D312 + 82866906D6993E62F6F1C3F45D160A5305BE68FF8095CF5B4302134CFE1185EA + 1FB8A1B4FF4FE32FF6FADB8B5E0000000049454E44AE426082} + Instruction.Text = 'Imprimir...' + Instruction.Glyph.Data = { + 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001C00 + 00001C0806000000720DDF940000000970485973000017120000171201679FD2 + 520000000467414D410000B18E7CFB5193000003104944415478DAAD96FB4B14 + 5114C7CFE463DC1E606444BFF54424D3DC55CA52B1CCD7165A219905054182FD + 1452FD5810FD100406610A669A998FC4F5BDB6266265DAB60F5DD15E58FE03B2 + 3F99D29ABBA7B9779C71C61D9D6177CFCE70CFDCB97B3EF7DCF3BD33C38082FD + B502B2B300CC656020048688A24F036233A0671F40D43160BA87BF62AEEE1010 + 60D7AE293AD8B835815E9B625C80DC8F1E88D4A7C1E8C1FB8F9FD6C3C44035B3 + 21500A65F6D700FE2EA580A5EC551F4A50359316B31D76EFDC0EE5F72A645045 + A067AE0623074B8140891108F1057064CC0D556053DF173812B707E6DCF332A8 + 225080D201DB4AF99BF335B4D502F371415BCC364833C4C29F458F0C2A031281 + 081734AB0B3C88403C1E6E3E2E7960F6A8FFD27A7D3EF07A11DA2C76C84A8D87 + A57FCB32E8B8A54A4C8C21B59365C9015996EF2240B6634DF435B51460A46D1F + 70C093AA46BF09C980C12CA914E6F371ADD707EF1DB3B0B0B8006EB79B8EA96B + EA5106121851245129118FD8BFA2DC5C53C6BAF5EBBBBA97C2D64EC064195B1F + 286C76E956A0EA5C51AEB4764A9929F5750D5A9581D2274B9B651C0BA2F514A8 + 6F28E36B70AD9A4253EF97A9AA55B0CEBA87D03B645B3F43C1DE589C58186D10 + 81150FCAC57B11E161B04517099BB953C78643141B01BA28EEE4DAB0B04DE2B8 + CA460B9C399902E661BB3AB0F5AD038BF30CD4D7E7DD14815A61023027DD00EF + 469C1A80FD1C307F1578FD4A81E665945AD68924181A9D5007B6F4DBF1527E32 + F5C9D3632351F8F549AEE916B14EAA039BCD362C31A6040D23E7887D4A03B0CF + 86C5C6641A24BB7646D3F2D51A77F8C1BCDCFFC79CD3EAC0D7BD56AE86294165 + 4660CB5C6B737DD3062CCA31D00069E76E05241862CF1EDD05E7D40F756063CF + 673C7F5A4F679A59541EF03E4C8C3B0893DF67D481AFBAC7B0F05412CD30EBE2 + ED80F7617CEC0198FEF94B1BF06C6622AD4B4EC99D80F7A1666043D7281A3312 + FD84C20B8417C3AA789405239826E0CBCE4F98979E10344C33B0BE630473D312 + 82866906D6993E62F6F1C3F45D160A5305BE68FF8095CF5B4302134CFE1185EA + 1FB8A1B4FF4FE32FF6FADB8B5E0000000049454E44AE426082} + Instruction.Icon = tdiCustom + CustomButtons = < + item + Caption = 'Imprimir el albaran/es seleccionado/s' + Value = 100 + Default = True + end + item + Caption = 'Imprimir la lista de albaranes actual' + Value = 200 + end> + ButtonBar.Buttons = [cbCancel] + MainIcon = tdiCustom + Title = 'FactuGES' + Position = dpMainFormCenter + Icon.Data = { + 0000010003002020100001000400E8020000360000002020000001000800A808 + 00001E0300002020000001002000A8100000C60B000028000000200000004000 + 0000010004000000000000020000000000000000000000000000000000000000 + 000000008000008000000080800080000000800080008080000080808000C0C0 + C0000000FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFFFF000000 + 0000000000000000000000000000000008777777777777777777777700000000 + 0877767777677776777767760000000008F88888888888888888888700000000 + 08F8FF8F8F888888888888860000000008FF8F8F88F8F8888888888C00000000 + 08F88888F8888888888888860000000008F8688878E8888E88E8788700000000 + 08F8688888F8F8FFFFFF88760000000008FF4888888F8FFFFFFF788700000000 + 08F8676767677677677658E50000000008FF8888888887878787888700000000 + 08FF8887887E8888888888860000000008FFE8E8E788C8E8FF8F8F8600000000 + 08FFF8F8F8F8FF8F88F8F8870000000008FFFFFF8FF8F8F8F88F888600000000 + 0FF8477878787878788788860000000008FF68888888F8FF8F8F788700000000 + 08B7588888FF8FFFFFFF78860000083008BB47887776777777776F86000000B7 + 8B9B73BB88788787E87878870000008BB8B9BB78888888EFF8F8FF8600000087 + B8BB8B888E8E8E88FFF8F886000000088BBB888FFFFFFFFFF8F877770000B9BB + B8FFBB9B9BFFFFFFF87466460000BBB9BB8FBBBBB8FFFFFFF88F888700000008 + B8BB88888FFFFFFFF88F8F7700000008BBBBBB8FFFFFFFFFFF8887700000007B + B7B98BB8FFFFFFFFF8887700000000B78B9B87B888F88F88F8877000000007B0 + 08BB883B78888788787700000000000000B9000000000000000000000000FFFF + FFFFF800000FF800000FF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000FF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000F9800000FC000000FC000000FC000000FE000000F0000 + 000F0000000FE000000FE000001FC000003FC000007F980000FFFCFFFFFF2800 + 0000200000004000000001000800000000000004000000000000000000000001 + 00000001000000000000694731007C5D49007E604C0081635000826451008567 + 540085685500886B5900896D5B008A6E5D008B705F008E715F008B7260008C72 + 61008E74640084766C00957A6900977D6D00887B72009A8171009D8272009C84 + 76009D8778009F897B00A28A7900A08B7D00A18C7E00E1B06E00E1B67D003E7A + 970073A0A5007AA2B70074AFBD007BB2BB003CAACE0028A5DB0020ADDF000D9A + E500209EE3000DA6E2001AA4EF0000A6FF000CABFE0009ACFE0010A4F10015AC + FA0000B5FB0000B0FD000CB6FC0000BFF90000BAFD0004BAFD0009BBFB0013B6 + F40015BFFA001CBDFB0026B7FD00589EC50040A4CD0040ABCC0050A2C7005DAE + C00060A3C20062A4C60060B7CB006AB0CD007BB6C80077BAC80061BADD0044AD + E50000C3F80007C6FB0000CAF80000CFFB0000D4F90026C8FA0026CDF8002BCC + F90039C4FB0039C2FC0039CAFA003FCFFB0024D6F80030D2F80039D5F80000F8 + F8001FF8F8002CF6F8003EF4F8005AC6DC0070CDDF0052C0E40054C9E3004DCE + FA005FC7FF004FD2FB004DD9F8005FD9FB006ED3E70063CDFE0060D1FB0060D8 + F90060DDF80046F8F90056F0F8005FFAFA0073E3F80073E4F90073EEF80060F1 + F800958A84009A918C0081999500A68F8200AD968500A3968C00AE988900AD9A + 8D00B19A8B00AF9C9000B09E9200B59F9200B7A29300B2A19600B5A19400B7A4 + 9700BDA79700B4A39800B1A59D00B4A79F00BAA69800BCA79900B4A89F00BCA8 + 9900BAA89C00BDAA9D00BEAC9E0083ADBD00B5A9A100BDABA000BEADA100BFAF + A500A0BABE00C0AB9E00C1AC9E00C6AE9F00E2B98100E4BA8300E4BB8400E5BC + 8500E1BD8E00E3BF9000C0ADA000C2B0A300C2B1A500C4B2A600C1B2A800C3B5 + AB00C8B4A800CCB9AD00CEBCB100D0BEB200D1BFB400E4C19300E5C29400E6C4 + 9600E8C69900D0C9A300CFC1B800D2C1B600D3C3B800D5C4B900D6C6BC00D8C6 + BC00D6C8BE00DAC9BF00ECD3B000EDD4B200EFD6B500E7D1B800E7D3BD00F0D8 + B6008CB7C40080BEC70097C3C70099C3C900ABD7CF00AFD9DD0086E3F90086E7 + F90086ECF8009EE5FB0090E8F900ACEDFC00BCEAFD00BCF1FB00BFF1FD00D7C9 + C000D9CAC100DCCBC200DACCC200DDCCC300DACCC400DDCEC400DED0C600DED1 + C900DED3CC00DFD4CD00E1D1C900E2D5CD00F0DCC200E3D8D200E5D9D200E2DA + D500E6DBD400E5DCD500E8DDD600E6DDD800E9DFD900E6E0DB00EAE0DA00EAE2 + DD00ECE3DE00EBE4DE00ECE4DE00F3E7D900C6E1EF00C9EFFD00D7F6FD00DFF3 + FF00DFFEFE00EBE7E300EDE6E100EFE7E400EEE8E400F0EAE600F2EDE900F2EE + EC00F4EFEC00F5F0EE00F9F4ED00E7FAFD00EBF8FF00F6F2F000F7F4F100F8F4 + F200F9F7F500FAF8F600FBF9F900FCFBFA00FCFCFB00FEFEFE00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000007D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D + 0D0D0000000000000000009C9C19191919191919191919191919191919191919 + 1903000000000000000000ABDECBCBC7C7AFABABABABAAA3A2A2A0A0A0A0A0A0 + 8607000000000000000000ABECEAE9DEDEDEDED7D5D2D2D2CBCBCBCBB0CBB0CB + 9007000000000000000000ABEDECEAE9DEDEDBD7D7D5D2D2D2CDCDCBB0B0B0B0 + 9007000000000000000000AFEDE9A9CFD2CFD2CDCBCBCBB0B0ABACA3A3A3A3B0 + 9007000000000000000000AFF0D5017783838386868686869099909999907BB0 + 9007000000000000000000B0F4D501A0B0CBD2D5DEECEDF7FAFAFAFAFAF77BAA + 9007000000000000000000CBF4DC01A0B0B0B0D2D5DBEAEDF7FAFAFAFAF47BB0 + 9007000000000000000000CBF8DC010404070604090909090D0D110D110D02A3 + 9007000000000000000000CBFAED9E9E9E9C999E8C8C8C868683837E7D7D7ACB + 9007000000000000000000CBFAF1A7A7A6A6A6A69898989898B5DBDBD5D5D2D2 + 9907000000000000000000CDFAF796969696961D961D931D1DB4DEDBD7D5D5D2 + 9C07000000000000000000CFFAFAFAFAF8F7F0F0EDEDEDECE9E9DEDEDED7D5D5 + 9907000000000000000000CDFAFAEAF0EDEDECEAEAE9DEDEDBDCD5D5D5D5D2D5 + 9C07000000000000000000D2FAEC01737D7D7B7D7D7B7D7B7D7B7B7B7D7B7DD2 + 9907000000000000000000CFFAEC019EABB0CBD2D5DCDEECEDF4F4F4F4EA7BD2 + 9C07000000000000000000B9524601A0B0B0CBB5D5DEEAEDF7FAFAFAFAF47DD5 + 9C070000000000213F0000B83226010C3F5C1F111214141616191B1B1B1807D2 + 9C07000000000000253D8A5B322D711E2860BA7E7E7A7E797A797979767676D5 + 9E0700000000000041375E662F2B65314EBBB6B6B6B6B4B4B1E2F4EDEDEDECEA + 9C070000000000008F5D66663232394EC1A81C1C1C1C1C1C1CD3F7F4EDDED7D5 + 9C0700000000000000B7BE6E5758BEBDE4E6E6F3FAFAFAFAFAFAF7F4D5928675 + 7304000000002A2A2A2A4A6AFAE7562F2A2A2A5FFAFAFAFAFAFAF8D577010101 + 0101000000004747472F4A59C5E7564A32474766FAFAFAFAFAFAFADCA0D2CFB0 + A20C00000000000000436C6958686D6BC2C5C5E7FAFAFAFAFAFAFADEAADEDBCB + 1470000000000000004551534A4A5250C0E7FAFAFAFAFAFAFAFAFADEAAD7B514 + 700000000000000042384C54472B613550C3FAFAFAFAFAFAFAFAFADEA1B0196F + 000000000000000024234463322EBC5A3664E3ECE9E9E9E9E9E9E9CF90731300 + 000000000000003A3C00002232298B8B3E3B207E8B7E8B7E827E817E74100000 + 0000000000000000000000003227000000000000000000000000000000000000 + 000000000000FFFFFFFFF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000FF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000FF800000FF800000F9800000FC000000FC000000FC000 + 000FE000000F0000000F0000000FE000000FE000001FC000003FC000007F9800 + 00FFFCFFFFFF2800000020000000400000000100200000000000801000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000007067 + 5F70AA9382E570513CE3735540E3735540E3735540E3735540E3735540E37355 + 40E3735540E3735540E3735540E3735540E3735540E3735540E3735540E37355 + 40E3735540E3735540E3735540E3735540E3735540E3735540E372533EE5BAAB + A070000000000000000000000000000000000000000000000000000000005E54 + 4C7FCAB7ABFFC5B5AAFFA18877FFA28A78FFA28A79FFA28A79FFA28A79FFA28A + 79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A + 79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA58D7CFF7A5B46FFB2A1 + 967F000000000000000000000000000000000000000000000000000000006055 + 4D7ED7C6BBFFEDE4E0FFD9CCC4FFD9CCC4FFD9CBC3FFD8CAC1FFD7C9BFFFD6C7 + BDFFD5C6BBFFD4C4BAFFD3C3B8FFD2C1B7FFD1C0B5FFD0BEB3FFCFBDB2FFCEBC + B0FFCEBBAFFFCEBBAFFFCEBBAFFFCEBBAFFFCEBCB0FFBEAA9CFF82644FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006056 + 4D7ED7C8BCFFF2EBE8FFEFE9E5FFEEE7E2FFECE5E0FFEBE2DEFFEAE0DBFFE9DE + D8FFE7DBD4FFE5D9D1FFE3D7CFFFE2D4CCFFE1D2C9FFDFD0C7FFDDCDC4FFDCCB + C2FFDBC9BFFFDBC9BFFFDBC9BFFFDBC9BFFFDCCAC1FFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006155 + 4E7ED8C9BDFFF3EDE9FFF1EAE6FFF0E9E6FFEEE6E1FFECE4DFFFEBE2DDFFEAE0 + DAFFE9DED7FFE7DBD4FFE5D9D1FFE3D7CFFFE2D4CCFFE1D2C9FFDFD0C7FFDDCD + C4FFDCCBC2FFDBC9BFFFDBC9BFFFDBC9BFFFDCCAC0FFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006157 + 4E7ED9C9BFFFF4EFEDFFEFE8E3FFD0C2B9FFDFD5CEFFE0D5CEFFE0D4CCFFDED3 + CBFFDDD1C8FFDCCFC6FFDACCC4FFD9CBC1FFD8C9BFFFD7C7BDFFD6C5BBFFD5C4 + B9FFD3C2B7FFD2C0B5FFD2BFB4FFD2BFB4FFDAC8BEFFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006256 + 4F7EDACCC0FFF5F2EFFFE5DDD9FF5C3821FFB0998AFFB8A394FFB8A394FFB9A3 + 94FFB8A495FFB9A597FFB9A698FFBAA698FFBBA799FFBBA89AFFBBA89BFFBCA8 + 9BFFBCA89BFFBCA89BFFBBA89AFFB49E8FFFD8C6BBFFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006256 + 4F7EDBCBC1FFF8F4F3FFE7E0DBFF5F3C24FFD0BDB2FFDCCBC1FFDDCCC3FFE2D2 + CBFFE7DBD4FFEDE2DEFFF0E8E6FFF5F0EDFFF9F7F4FFFDFDFDFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFAF8F7FFB39D8DFFD8C6BBFFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006256 + 4F7EDCCEC3FFFAF6F5FFE9E2DDFF5F3C24FFD2BFB5FFDFCDC4FFDECCC3FFE0CE + C6FFE4D4CDFFE9DDD6FFEFE4E0FFF1EAE8FFF7F1EFFFFBF8F6FFFFFEFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFCFBFAFFB5A090FFD9C7BEFFC1AD9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006257 + 4F7EDDCFC4FFFCF9F9FFE9E4E0FF5F3A23FF7C5D49FF7F5F4CFF7E5F4CFF7E60 + 4DFF7F614DFF816350FF826552FF836654FF846856FF856A57FF866B59FF876C + 5BFF876D5BFF876D5BFF866B59FF72523DFFD5C3B9FFC1AFA1FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006357 + 507EDECFC6FFFCFCFBFFF4F1F0FFC3B6AEFFC3B5ADFFC1B4ACFFC0B3AAFFBFB1 + A9FFBEB0A6FFBDAEA5FFBDACA3FFBCABA2FFBBAAA0FFBAA99FFFB8A69AFFB8A4 + 98FFB6A396FFB5A194FFB49F93FFB39D90FFDCCDC4FFC2AEA1FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006357 + 507EDFD2C7FFFEFEFDFFF9F5EFFFE8C696FFE9C799FFE8C697FFE7C596FFE7C4 + 95FFE6C394FFE5C293FFE4C091FFE4C090FFE3BF8FFFE2BD8CFFE9D5BFFFEBE1 + DCFFEADFD8FFE7DCD5FFE5DAD3FFE4D8D0FFE3D4CCFFC2AFA2FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006458 + 517EE0D3C8FFFFFFFFFFFAF5EFFFE3B77CFFE4B97FFFE2B87EFFE3B77DFFE2B7 + 7CFFE2B67BFFE1B57AFFE1B479FFE0B478FFE0B377FFDFB174FFE6D0B7FFEBE1 + DCFFE8DFD9FFE8DDD6FFE6D9D2FFE3D8D1FFE4D7CFFFC3AFA2FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006458 + 517EE1D2C9FFFFFFFFFFFEFEFDFFFEFFFFFFFCFDFEFFFBFBFBFFF9F7F8FFF8F5 + F6FFF7F3F2FFF5F1F0FFF4EFEEFFF1EDEBFFF0EBE9FFEEE9E6FFEDE6E2FFECE3 + DEFFEBE1DBFFE9DFD9FFE8DDD6FFE6DAD3FFE5D9D2FFC3B0A3FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006459 + 517EE1D4CAFFFFFFFFFFFDFDFCFFEEEBE8FFF5F2F0FFF4F0EFFFF3EFECFFF2ED + EAFFF1EBE8FFEEE9E5FFEFE7E3FFECE5E1FFEAE4DEFFEAE1DCFFE8E0DAFFE7DE + D8FFE6DDD6FFE5DBD4FFE4D8D1FFE2D6CEFFE6DBD4FFC3B1A4FF81634EFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006559 + 527EE2D4CAFFFFFFFFFFF0ECEAFF5B361EFFAB9383FFB39D8EFFB39D8DFFB39D + 8DFFB29D8DFFB29C8DFFB29C8CFFB29C8CFFB29C8CFFB29C8CFFB29C8CFFB29C + 8CFFB29C8CFFB29C8CFFB29C8DFFB39D8EFFE3D8D0FFC4B1A4FF81634EFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006559 + 527EE5D4CAFFFFFFFFFFF7F0EBFF5F3B24FFCCB8ADFFD7C5BAFFD9C7BDFFDCCC + C3FFE1D4CCFFE5DAD4FFE8E0DBFFEDE5E1FFF1EBE9FFF5F2EFFFF7F5F3FFF8F6 + F4FFF8F5F4FFF8F6F4FFF1EEEAFFB29C8DFFE6DAD3FFC4B2A5FF81634EFFB2A1 + 967E00000000000000000000000000000000000000000000000000000000685A + 527E9AC6C9FF35CFFEFF3DAEEBFF663E24FFD2BFB4FFE0CBBFFFE0C9BDFFE1CD + C4FFE4D5CDFFE9DED7FFEEE5E0FFF2EBE8FFF6F2F0FFFCF8F8FFFFFFFEFFFFFF + FFFFFFFFFFFFFFFFFFFFFCFAF9FFB49E8FFFE7DED7FFC5B3A6FF81634EFFB2A1 + 967E00000000000000000000000000000000007792910072A7A3001E33366957 + 4C7C86C1C8FF00BFFBFF079AEBFF6A3E23FF926D57FF5FA3C8FF4AC1E8FF6C9C + A2FF917260FF927767FF947A69FF957C6CFF977E6FFF998171FF9A8374FF9B85 + 76FF9C8678FF9C8678FF998274FF7D5E49FFE3D9D4FFC5B3A7FF81634EFFB2A1 + 967E00000000000000000000000000000000005A6F7000A9E5E40075AEAE5C90 + A5BD75D0E0FF00BFFAFF0CA3F4FF8A9A91FF3C7492FF03A4E4FF4AD5FFFF98C4 + CBFFB3A196FFB1A197FFB0A096FFB09F95FFAF9D92FFAF9C91FFAD9A8EFFAC99 + 8CFFAB988AFFAB9789FFAA9688FFA99386FFE8E0DAFFC5B4A7FF81634EFFB2A1 + 967E00000000000000000000000000000000000000002DA5BFC110C2FFFF4DD0 + FDFF64DBF9FF00B3FAFF09A8FEFF68D7FFFF04B5FFFF24CCFBFFAFD8CEFFF7DA + B8FFF3DBBBFFF3DBBAFFF2D9B9FFF1D8B7FFF0D7B4FFEED5B2FFF6EADDFFF9F6 + F4FFF7F3F1FFF5F1EEFFF5EFECFFF4EDEAFFF1EBE7FFC6B4A8FF81634EFFB2A1 + 967E00000000000000000000000000000000000000005F8A909142C7E4E960DE + F8FF64D7FAFF00B6FDFF00B8FDFF21B2FDFF1ECCF7FF93EBFCFFD2C69BFFE1AB + 63FFDFAC66FFDFAC66FFDFAC66FFDFAC66FFDFAC66FFDEA961FFEFDBC0FFF8F6 + F5FFF6F2F0FFF3EDEBFFECE2DCFFE9DFD9FFE5DBD6FFC2B1A4FF81634FFFB2A1 + 967E000000000000000000000000000E171A000E171A00040B145994A4A990EB + FCFF61F1F7FF13FAF7FF23F9F7FF93EDF7FF8CE5F8FFD5F2FDFFE9F8FFFFE7F8 + FFFFF0FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFDFEFFFFFAFAF9FFF9F7 + F5FFF7F2F0FFE8DFD8FFC7AE9FFFBEA998FFAF9888FFB09A8AFF7F604DFFB2A1 + 967E00000000000000000000000000AAFFFF00AAFFFF00AAFFFF00A4FFFF00CD + FAFF5DFCF9FFFFFFFFFFEEFEFEFF00FBF7FF00AAFEFF00A1FFFF00A1FFFF00A0 + FFFF56C3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCFDFBFFFCFBFAFFFBFA + F8FFE6DDD6FFAA9180FF5D3922FF603D26FF613E27FF613E28FF634029FFB4A3 + 987E00000000000000000000000000CAFFFF00CAFFFF00CBFFFF00B0FFFF00CD + FBFF38F5F7FFC3EFFAFFF0FFFEFF00FAF7FF00C8F7FF00C2F7FF00C2F7FF00C1 + F7FF57D7FAFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFDFDFCFFFCFC + FBFFE7DED8FFCCB9ACFFE6DBD5FFE2D7D0FFDCCFC5FFD7C5BBFF8E705DFFB4A2 + 9680000000000000000000000000002E383C002E383C00252F364C99B0B57DE8 + FBFF59F1F7FF25F7F7FF41FAF8FF7CEEF7FF77E4F7FFB5EFFCFFC6F2FDFFC3F2 + FDFFD9F6FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFEFEFFFEFE + FEFFE9E1DAFFCEBCAFFFF1E9E3FFEADFD8FFE4D5CCFF9D816FFF3A291F868985 + 831C00000000000000000000000000000000000000004E7073774AB0DADC37C9 + FBFF22D5F7FF00D3F9FF02C3FBFF37D5F7FF34BEFCFFA2E6FAFFECFBFDFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFF + FFFFEAE2DCFFCDBBADFFEADFD8FFE3D5CBFF9F8271FF3E2D2386050100200000 + 000000000000000000000000000000000000000000003E9CC4C219C0FFFF23C9 + FCFF30D3F8FF00BEF8FF06A8FEFF4FDCF8FF00B8FCFF32C2FBFFC0EBFCFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFEAE3DEFFCDB9ABFFDDCEC4FFA58979FF3E2C1F8F0905041B000000000000 + 000000000000000000000000000000000000003451510099DDDB0091C0C35DAD + BCCF76D7E9FF00BEF9FF10A9FBFFBDDEDEFF5AC8DDFF0AB5F7FF62CEFFFFCBE4 + F1FFF1E7E0FFEFE7E1FFEEE6E1FFEEE6E1FFEEE6E0FFEDE6E0FFEDE5E0FFEEE6 + E1FFE1D4CCFFC5AE9FFFA68D7FF53E2718A10402000E00000000000000000000 + 0000000000000000000000000000000000000075B7AF0099C7C500323E425442 + 3B5C6BA8B1DA00C1FCFF0EA1F3F8A98E80C0AB9081C12698B1C10088C4C14C85 + A3C1A18D80C19E8D81C19E8B81C19D8C80C19B8C7FC19B8A7FC19C897FC19A89 + 7EC19B8B7EC1897769C2432B1BAC000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000045565A00C5FFFF0094E6E2000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000FFFFFFFFF0000007F0000007F0000007F000 + 0007F0000007F0000007F0000007F0000007F0000007F0000007F0000007F000 + 0007F0000007F0000007F0000007F0000007F0000007F0000007800000078000 + 0007C0000007C000000700000007000000070000000700000007C000000FC000 + 001F8000003F800000FFF8FFFFFF} + Width = 500 + Left = 264 + Top = 112 + end + object JsListaAlbaranesNoEliminados: TJSDialog + Glyph.Data = { + 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001C00 + 00001C0806000000720DDF940000000970485973000017120000171201679FD2 + 520000000467414D410000B18E7CFB5193000003104944415478DAAD96FB4B14 + 5114C7CFE463DC1E606444BFF54424D3DC55CA52B1CCD7165A219905054182FD + 1452FD5810FD100406610A669A998FC4F5BDB6266265DAB60F5DD15E58FE03B2 + 3F99D29ABBA7B9779C71C61D9D6177CFCE70CFDCB97B3EF7DCF3BD33C38082FD + B502B2B300CC656020048688A24F036233A0671F40D43160BA87BF62AEEE1010 + 60D7AE293AD8B835815E9B625C80DC8F1E88D4A7C1E8C1FB8F9FD6C3C44035B3 + 21500A65F6D700FE2EA580A5EC551F4A50359316B31D76EFDC0EE5F72A645045 + A067AE0623074B8140891108F1057064CC0D556053DF173812B707E6DCF332A8 + 225080D201DB4AF99BF335B4D502F371415BCC364833C4C29F458F0C2A031281 + 081734AB0B3C88403C1E6E3E2E7960F6A8FFD27A7D3EF07A11DA2C76C84A8D87 + A57FCB32E8B8A54A4C8C21B59365C9015996EF2240B6634DF435B51460A46D1F + 70C093AA46BF09C980C12CA914E6F371ADD707EF1DB3B0B0B8006EB79B8EA96B + EA5106121851245129118FD8BFA2DC5C53C6BAF5EBBBBA97C2D64EC064195B1F + 286C76E956A0EA5C51AEB4764A9929F5750D5A9581D2274B9B651C0BA2F514A8 + 6F28E36B70AD9A4253EF97A9AA55B0CEBA87D03B645B3F43C1DE589C58186D10 + 81150FCAC57B11E161B04517099BB953C78643141B01BA28EEE4DAB0B04DE2B8 + CA460B9C399902E661BB3AB0F5AD038BF30CD4D7E7DD14815A61023027DD00EF + 469C1A80FD1C307F1578FD4A81E665945AD68924181A9D5007B6F4DBF1527E32 + F5C9D3632351F8F549AEE916B14EAA039BCD362C31A6040D23E7887D4A03B0CF + 86C5C6641A24BB7646D3F2D51A77F8C1BCDCFFC79CD3EAC0D7BD56AE86294165 + 4660CB5C6B737DD3062CCA31D00069E76E05241862CF1EDD05E7D40F756063CF + 673C7F5A4F679A59541EF03E4C8C3B0893DF67D481AFBAC7B0F05412CD30EBE2 + ED80F7617CEC0198FEF94B1BF06C6622AD4B4EC99D80F7A1666043D7281A3312 + FD84C20B8417C3AA789405239826E0CBCE4F98979E10344C33B0BE630473D312 + 82866906D6993E62F6F1C3F45D160A5305BE68FF8095CF5B4302134CFE1185EA + 1FB8A1B4FF4FE32FF6FADB8B5E0000000049454E44AE426082} + Instruction.Text = + 'Los siguientes albaranes no han podido ser eliminados, porque es' + + 't'#225'n asociados a una factura' + Instruction.Glyph.Data = { + 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001C00 + 00001C0806000000720DDF940000000970485973000017120000171201679FD2 + 520000000467414D410000B18E7CFB5193000003104944415478DAAD96FB4B14 + 5114C7CFE463DC1E606444BFF54424D3DC55CA52B1CCD7165A219905054182FD + 1452FD5810FD100406610A669A998FC4F5BDB6266265DAB60F5DD15E58FE03B2 + 3F99D29ABBA7B9779C71C61D9D6177CFCE70CFDCB97B3EF7DCF3BD33C38082FD + B502B2B300CC656020048688A24F036233A0671F40D43160BA87BF62AEEE1010 + 60D7AE293AD8B835815E9B625C80DC8F1E88D4A7C1E8C1FB8F9FD6C3C44035B3 + 21500A65F6D700FE2EA580A5EC551F4A50359316B31D76EFDC0EE5F72A645045 + A067AE0623074B8140891108F1057064CC0D556053DF173812B707E6DCF332A8 + 225080D201DB4AF99BF335B4D502F371415BCC364833C4C29F458F0C2A031281 + 081734AB0B3C88403C1E6E3E2E7960F6A8FFD27A7D3EF07A11DA2C76C84A8D87 + A57FCB32E8B8A54A4C8C21B59365C9015996EF2240B6634DF435B51460A46D1F + 70C093AA46BF09C980C12CA914E6F371ADD707EF1DB3B0B0B8006EB79B8EA96B + EA5106121851245129118FD8BFA2DC5C53C6BAF5EBBBBA97C2D64EC064195B1F + 286C76E956A0EA5C51AEB4764A9929F5750D5A9581D2274B9B651C0BA2F514A8 + 6F28E36B70AD9A4253EF97A9AA55B0CEBA87D03B645B3F43C1DE589C58186D10 + 81150FCAC57B11E161B04517099BB953C78643141B01BA28EEE4DAB0B04DE2B8 + CA460B9C399902E661BB3AB0F5AD038BF30CD4D7E7DD14815A61023027DD00EF + 469C1A80FD1C307F1578FD4A81E665945AD68924181A9D5007B6F4DBF1527E32 + F5C9D3632351F8F549AEE916B14EAA039BCD362C31A6040D23E7887D4A03B0CF + 86C5C6641A24BB7646D3F2D51A77F8C1BCDCFFC79CD3EAC0D7BD56AE86294165 + 4660CB5C6B737DD3062CCA31D00069E76E05241862CF1EDD05E7D40F756063CF + 673C7F5A4F679A59541EF03E4C8C3B0893DF67D481AFBAC7B0F05412CD30EBE2 + ED80F7617CEC0198FEF94B1BF06C6622AD4B4EC99D80F7A1666043D7281A3312 + FD84C20B8417C3AA789405239826E0CBCE4F98979E10344C33B0BE630473D312 + 82866906D6993E62F6F1C3F45D160A5305BE68FF8095CF5B4302134CFE1185EA + 1FB8A1B4FF4FE32FF6FADB8B5E0000000049454E44AE426082} + Instruction.Icon = tdiCustom + ButtonBar.Buttons = [cbOK] + ButtonBar.Cancel = cbOK + ButtonBar.UseCancel = False + MainIcon = tdiCustom + Title = 'FactuGES' + Position = dpMainFormCenter + Icon.Data = { + 0000010003002020100001000400E8020000360000002020000001000800A808 + 00001E0300002020000001002000A8100000C60B000028000000200000004000 + 0000010004000000000000020000000000000000000000000000000000000000 + 000000008000008000000080800080000000800080008080000080808000C0C0 + C0000000FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFFFF000000 + 0000000000000000000000000000000008777777777777777777777700000000 + 0877767777677776777767760000000008F88888888888888888888700000000 + 08F8FF8F8F888888888888860000000008FF8F8F88F8F8888888888C00000000 + 08F88888F8888888888888860000000008F8688878E8888E88E8788700000000 + 08F8688888F8F8FFFFFF88760000000008FF4888888F8FFFFFFF788700000000 + 08F8676767677677677658E50000000008FF8888888887878787888700000000 + 08FF8887887E8888888888860000000008FFE8E8E788C8E8FF8F8F8600000000 + 08FFF8F8F8F8FF8F88F8F8870000000008FFFFFF8FF8F8F8F88F888600000000 + 0FF8477878787878788788860000000008FF68888888F8FF8F8F788700000000 + 08B7588888FF8FFFFFFF78860000083008BB47887776777777776F86000000B7 + 8B9B73BB88788787E87878870000008BB8B9BB78888888EFF8F8FF8600000087 + B8BB8B888E8E8E88FFF8F886000000088BBB888FFFFFFFFFF8F877770000B9BB + B8FFBB9B9BFFFFFFF87466460000BBB9BB8FBBBBB8FFFFFFF88F888700000008 + B8BB88888FFFFFFFF88F8F7700000008BBBBBB8FFFFFFFFFFF8887700000007B + B7B98BB8FFFFFFFFF8887700000000B78B9B87B888F88F88F8877000000007B0 + 08BB883B78888788787700000000000000B9000000000000000000000000FFFF + FFFFF800000FF800000FF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000FF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000F9800000FC000000FC000000FC000000FE000000F0000 + 000F0000000FE000000FE000001FC000003FC000007F980000FFFCFFFFFF2800 + 0000200000004000000001000800000000000004000000000000000000000001 + 00000001000000000000694731007C5D49007E604C0081635000826451008567 + 540085685500886B5900896D5B008A6E5D008B705F008E715F008B7260008C72 + 61008E74640084766C00957A6900977D6D00887B72009A8171009D8272009C84 + 76009D8778009F897B00A28A7900A08B7D00A18C7E00E1B06E00E1B67D003E7A + 970073A0A5007AA2B70074AFBD007BB2BB003CAACE0028A5DB0020ADDF000D9A + E500209EE3000DA6E2001AA4EF0000A6FF000CABFE0009ACFE0010A4F10015AC + FA0000B5FB0000B0FD000CB6FC0000BFF90000BAFD0004BAFD0009BBFB0013B6 + F40015BFFA001CBDFB0026B7FD00589EC50040A4CD0040ABCC0050A2C7005DAE + C00060A3C20062A4C60060B7CB006AB0CD007BB6C80077BAC80061BADD0044AD + E50000C3F80007C6FB0000CAF80000CFFB0000D4F90026C8FA0026CDF8002BCC + F90039C4FB0039C2FC0039CAFA003FCFFB0024D6F80030D2F80039D5F80000F8 + F8001FF8F8002CF6F8003EF4F8005AC6DC0070CDDF0052C0E40054C9E3004DCE + FA005FC7FF004FD2FB004DD9F8005FD9FB006ED3E70063CDFE0060D1FB0060D8 + F90060DDF80046F8F90056F0F8005FFAFA0073E3F80073E4F90073EEF80060F1 + F800958A84009A918C0081999500A68F8200AD968500A3968C00AE988900AD9A + 8D00B19A8B00AF9C9000B09E9200B59F9200B7A29300B2A19600B5A19400B7A4 + 9700BDA79700B4A39800B1A59D00B4A79F00BAA69800BCA79900B4A89F00BCA8 + 9900BAA89C00BDAA9D00BEAC9E0083ADBD00B5A9A100BDABA000BEADA100BFAF + A500A0BABE00C0AB9E00C1AC9E00C6AE9F00E2B98100E4BA8300E4BB8400E5BC + 8500E1BD8E00E3BF9000C0ADA000C2B0A300C2B1A500C4B2A600C1B2A800C3B5 + AB00C8B4A800CCB9AD00CEBCB100D0BEB200D1BFB400E4C19300E5C29400E6C4 + 9600E8C69900D0C9A300CFC1B800D2C1B600D3C3B800D5C4B900D6C6BC00D8C6 + BC00D6C8BE00DAC9BF00ECD3B000EDD4B200EFD6B500E7D1B800E7D3BD00F0D8 + B6008CB7C40080BEC70097C3C70099C3C900ABD7CF00AFD9DD0086E3F90086E7 + F90086ECF8009EE5FB0090E8F900ACEDFC00BCEAFD00BCF1FB00BFF1FD00D7C9 + C000D9CAC100DCCBC200DACCC200DDCCC300DACCC400DDCEC400DED0C600DED1 + C900DED3CC00DFD4CD00E1D1C900E2D5CD00F0DCC200E3D8D200E5D9D200E2DA + D500E6DBD400E5DCD500E8DDD600E6DDD800E9DFD900E6E0DB00EAE0DA00EAE2 + DD00ECE3DE00EBE4DE00ECE4DE00F3E7D900C6E1EF00C9EFFD00D7F6FD00DFF3 + FF00DFFEFE00EBE7E300EDE6E100EFE7E400EEE8E400F0EAE600F2EDE900F2EE + EC00F4EFEC00F5F0EE00F9F4ED00E7FAFD00EBF8FF00F6F2F000F7F4F100F8F4 + F200F9F7F500FAF8F600FBF9F900FCFBFA00FCFCFB00FEFEFE00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000007D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D + 0D0D0000000000000000009C9C19191919191919191919191919191919191919 + 1903000000000000000000ABDECBCBC7C7AFABABABABAAA3A2A2A0A0A0A0A0A0 + 8607000000000000000000ABECEAE9DEDEDEDED7D5D2D2D2CBCBCBCBB0CBB0CB + 9007000000000000000000ABEDECEAE9DEDEDBD7D7D5D2D2D2CDCDCBB0B0B0B0 + 9007000000000000000000AFEDE9A9CFD2CFD2CDCBCBCBB0B0ABACA3A3A3A3B0 + 9007000000000000000000AFF0D5017783838386868686869099909999907BB0 + 9007000000000000000000B0F4D501A0B0CBD2D5DEECEDF7FAFAFAFAFAF77BAA + 9007000000000000000000CBF4DC01A0B0B0B0D2D5DBEAEDF7FAFAFAFAF47BB0 + 9007000000000000000000CBF8DC010404070604090909090D0D110D110D02A3 + 9007000000000000000000CBFAED9E9E9E9C999E8C8C8C868683837E7D7D7ACB + 9007000000000000000000CBFAF1A7A7A6A6A6A69898989898B5DBDBD5D5D2D2 + 9907000000000000000000CDFAF796969696961D961D931D1DB4DEDBD7D5D5D2 + 9C07000000000000000000CFFAFAFAFAF8F7F0F0EDEDEDECE9E9DEDEDED7D5D5 + 9907000000000000000000CDFAFAEAF0EDEDECEAEAE9DEDEDBDCD5D5D5D5D2D5 + 9C07000000000000000000D2FAEC01737D7D7B7D7D7B7D7B7D7B7B7B7D7B7DD2 + 9907000000000000000000CFFAEC019EABB0CBD2D5DCDEECEDF4F4F4F4EA7BD2 + 9C07000000000000000000B9524601A0B0B0CBB5D5DEEAEDF7FAFAFAFAF47DD5 + 9C070000000000213F0000B83226010C3F5C1F111214141616191B1B1B1807D2 + 9C07000000000000253D8A5B322D711E2860BA7E7E7A7E797A797979767676D5 + 9E0700000000000041375E662F2B65314EBBB6B6B6B6B4B4B1E2F4EDEDEDECEA + 9C070000000000008F5D66663232394EC1A81C1C1C1C1C1C1CD3F7F4EDDED7D5 + 9C0700000000000000B7BE6E5758BEBDE4E6E6F3FAFAFAFAFAFAF7F4D5928675 + 7304000000002A2A2A2A4A6AFAE7562F2A2A2A5FFAFAFAFAFAFAF8D577010101 + 0101000000004747472F4A59C5E7564A32474766FAFAFAFAFAFAFADCA0D2CFB0 + A20C00000000000000436C6958686D6BC2C5C5E7FAFAFAFAFAFAFADEAADEDBCB + 1470000000000000004551534A4A5250C0E7FAFAFAFAFAFAFAFAFADEAAD7B514 + 700000000000000042384C54472B613550C3FAFAFAFAFAFAFAFAFADEA1B0196F + 000000000000000024234463322EBC5A3664E3ECE9E9E9E9E9E9E9CF90731300 + 000000000000003A3C00002232298B8B3E3B207E8B7E8B7E827E817E74100000 + 0000000000000000000000003227000000000000000000000000000000000000 + 000000000000FFFFFFFFF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000FF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000FF800000FF800000F9800000FC000000FC000000FC000 + 000FE000000F0000000F0000000FE000000FE000001FC000003FC000007F9800 + 00FFFCFFFFFF2800000020000000400000000100200000000000801000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000007067 + 5F70AA9382E570513CE3735540E3735540E3735540E3735540E3735540E37355 + 40E3735540E3735540E3735540E3735540E3735540E3735540E3735540E37355 + 40E3735540E3735540E3735540E3735540E3735540E3735540E372533EE5BAAB + A070000000000000000000000000000000000000000000000000000000005E54 + 4C7FCAB7ABFFC5B5AAFFA18877FFA28A78FFA28A79FFA28A79FFA28A79FFA28A + 79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A + 79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA58D7CFF7A5B46FFB2A1 + 967F000000000000000000000000000000000000000000000000000000006055 + 4D7ED7C6BBFFEDE4E0FFD9CCC4FFD9CCC4FFD9CBC3FFD8CAC1FFD7C9BFFFD6C7 + BDFFD5C6BBFFD4C4BAFFD3C3B8FFD2C1B7FFD1C0B5FFD0BEB3FFCFBDB2FFCEBC + B0FFCEBBAFFFCEBBAFFFCEBBAFFFCEBBAFFFCEBCB0FFBEAA9CFF82644FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006056 + 4D7ED7C8BCFFF2EBE8FFEFE9E5FFEEE7E2FFECE5E0FFEBE2DEFFEAE0DBFFE9DE + D8FFE7DBD4FFE5D9D1FFE3D7CFFFE2D4CCFFE1D2C9FFDFD0C7FFDDCDC4FFDCCB + C2FFDBC9BFFFDBC9BFFFDBC9BFFFDBC9BFFFDCCAC1FFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006155 + 4E7ED8C9BDFFF3EDE9FFF1EAE6FFF0E9E6FFEEE6E1FFECE4DFFFEBE2DDFFEAE0 + DAFFE9DED7FFE7DBD4FFE5D9D1FFE3D7CFFFE2D4CCFFE1D2C9FFDFD0C7FFDDCD + C4FFDCCBC2FFDBC9BFFFDBC9BFFFDBC9BFFFDCCAC0FFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006157 + 4E7ED9C9BFFFF4EFEDFFEFE8E3FFD0C2B9FFDFD5CEFFE0D5CEFFE0D4CCFFDED3 + CBFFDDD1C8FFDCCFC6FFDACCC4FFD9CBC1FFD8C9BFFFD7C7BDFFD6C5BBFFD5C4 + B9FFD3C2B7FFD2C0B5FFD2BFB4FFD2BFB4FFDAC8BEFFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006256 + 4F7EDACCC0FFF5F2EFFFE5DDD9FF5C3821FFB0998AFFB8A394FFB8A394FFB9A3 + 94FFB8A495FFB9A597FFB9A698FFBAA698FFBBA799FFBBA89AFFBBA89BFFBCA8 + 9BFFBCA89BFFBCA89BFFBBA89AFFB49E8FFFD8C6BBFFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006256 + 4F7EDBCBC1FFF8F4F3FFE7E0DBFF5F3C24FFD0BDB2FFDCCBC1FFDDCCC3FFE2D2 + CBFFE7DBD4FFEDE2DEFFF0E8E6FFF5F0EDFFF9F7F4FFFDFDFDFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFAF8F7FFB39D8DFFD8C6BBFFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006256 + 4F7EDCCEC3FFFAF6F5FFE9E2DDFF5F3C24FFD2BFB5FFDFCDC4FFDECCC3FFE0CE + C6FFE4D4CDFFE9DDD6FFEFE4E0FFF1EAE8FFF7F1EFFFFBF8F6FFFFFEFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFCFBFAFFB5A090FFD9C7BEFFC1AD9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006257 + 4F7EDDCFC4FFFCF9F9FFE9E4E0FF5F3A23FF7C5D49FF7F5F4CFF7E5F4CFF7E60 + 4DFF7F614DFF816350FF826552FF836654FF846856FF856A57FF866B59FF876C + 5BFF876D5BFF876D5BFF866B59FF72523DFFD5C3B9FFC1AFA1FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006357 + 507EDECFC6FFFCFCFBFFF4F1F0FFC3B6AEFFC3B5ADFFC1B4ACFFC0B3AAFFBFB1 + A9FFBEB0A6FFBDAEA5FFBDACA3FFBCABA2FFBBAAA0FFBAA99FFFB8A69AFFB8A4 + 98FFB6A396FFB5A194FFB49F93FFB39D90FFDCCDC4FFC2AEA1FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006357 + 507EDFD2C7FFFEFEFDFFF9F5EFFFE8C696FFE9C799FFE8C697FFE7C596FFE7C4 + 95FFE6C394FFE5C293FFE4C091FFE4C090FFE3BF8FFFE2BD8CFFE9D5BFFFEBE1 + DCFFEADFD8FFE7DCD5FFE5DAD3FFE4D8D0FFE3D4CCFFC2AFA2FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006458 + 517EE0D3C8FFFFFFFFFFFAF5EFFFE3B77CFFE4B97FFFE2B87EFFE3B77DFFE2B7 + 7CFFE2B67BFFE1B57AFFE1B479FFE0B478FFE0B377FFDFB174FFE6D0B7FFEBE1 + DCFFE8DFD9FFE8DDD6FFE6D9D2FFE3D8D1FFE4D7CFFFC3AFA2FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006458 + 517EE1D2C9FFFFFFFFFFFEFEFDFFFEFFFFFFFCFDFEFFFBFBFBFFF9F7F8FFF8F5 + F6FFF7F3F2FFF5F1F0FFF4EFEEFFF1EDEBFFF0EBE9FFEEE9E6FFEDE6E2FFECE3 + DEFFEBE1DBFFE9DFD9FFE8DDD6FFE6DAD3FFE5D9D2FFC3B0A3FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006459 + 517EE1D4CAFFFFFFFFFFFDFDFCFFEEEBE8FFF5F2F0FFF4F0EFFFF3EFECFFF2ED + EAFFF1EBE8FFEEE9E5FFEFE7E3FFECE5E1FFEAE4DEFFEAE1DCFFE8E0DAFFE7DE + D8FFE6DDD6FFE5DBD4FFE4D8D1FFE2D6CEFFE6DBD4FFC3B1A4FF81634EFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006559 + 527EE2D4CAFFFFFFFFFFF0ECEAFF5B361EFFAB9383FFB39D8EFFB39D8DFFB39D + 8DFFB29D8DFFB29C8DFFB29C8CFFB29C8CFFB29C8CFFB29C8CFFB29C8CFFB29C + 8CFFB29C8CFFB29C8CFFB29C8DFFB39D8EFFE3D8D0FFC4B1A4FF81634EFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006559 + 527EE5D4CAFFFFFFFFFFF7F0EBFF5F3B24FFCCB8ADFFD7C5BAFFD9C7BDFFDCCC + C3FFE1D4CCFFE5DAD4FFE8E0DBFFEDE5E1FFF1EBE9FFF5F2EFFFF7F5F3FFF8F6 + F4FFF8F5F4FFF8F6F4FFF1EEEAFFB29C8DFFE6DAD3FFC4B2A5FF81634EFFB2A1 + 967E00000000000000000000000000000000000000000000000000000000685A + 527E9AC6C9FF35CFFEFF3DAEEBFF663E24FFD2BFB4FFE0CBBFFFE0C9BDFFE1CD + C4FFE4D5CDFFE9DED7FFEEE5E0FFF2EBE8FFF6F2F0FFFCF8F8FFFFFFFEFFFFFF + FFFFFFFFFFFFFFFFFFFFFCFAF9FFB49E8FFFE7DED7FFC5B3A6FF81634EFFB2A1 + 967E00000000000000000000000000000000007792910072A7A3001E33366957 + 4C7C86C1C8FF00BFFBFF079AEBFF6A3E23FF926D57FF5FA3C8FF4AC1E8FF6C9C + A2FF917260FF927767FF947A69FF957C6CFF977E6FFF998171FF9A8374FF9B85 + 76FF9C8678FF9C8678FF998274FF7D5E49FFE3D9D4FFC5B3A7FF81634EFFB2A1 + 967E00000000000000000000000000000000005A6F7000A9E5E40075AEAE5C90 + A5BD75D0E0FF00BFFAFF0CA3F4FF8A9A91FF3C7492FF03A4E4FF4AD5FFFF98C4 + CBFFB3A196FFB1A197FFB0A096FFB09F95FFAF9D92FFAF9C91FFAD9A8EFFAC99 + 8CFFAB988AFFAB9789FFAA9688FFA99386FFE8E0DAFFC5B4A7FF81634EFFB2A1 + 967E00000000000000000000000000000000000000002DA5BFC110C2FFFF4DD0 + FDFF64DBF9FF00B3FAFF09A8FEFF68D7FFFF04B5FFFF24CCFBFFAFD8CEFFF7DA + B8FFF3DBBBFFF3DBBAFFF2D9B9FFF1D8B7FFF0D7B4FFEED5B2FFF6EADDFFF9F6 + F4FFF7F3F1FFF5F1EEFFF5EFECFFF4EDEAFFF1EBE7FFC6B4A8FF81634EFFB2A1 + 967E00000000000000000000000000000000000000005F8A909142C7E4E960DE + F8FF64D7FAFF00B6FDFF00B8FDFF21B2FDFF1ECCF7FF93EBFCFFD2C69BFFE1AB + 63FFDFAC66FFDFAC66FFDFAC66FFDFAC66FFDFAC66FFDEA961FFEFDBC0FFF8F6 + F5FFF6F2F0FFF3EDEBFFECE2DCFFE9DFD9FFE5DBD6FFC2B1A4FF81634FFFB2A1 + 967E000000000000000000000000000E171A000E171A00040B145994A4A990EB + FCFF61F1F7FF13FAF7FF23F9F7FF93EDF7FF8CE5F8FFD5F2FDFFE9F8FFFFE7F8 + FFFFF0FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFDFEFFFFFAFAF9FFF9F7 + F5FFF7F2F0FFE8DFD8FFC7AE9FFFBEA998FFAF9888FFB09A8AFF7F604DFFB2A1 + 967E00000000000000000000000000AAFFFF00AAFFFF00AAFFFF00A4FFFF00CD + FAFF5DFCF9FFFFFFFFFFEEFEFEFF00FBF7FF00AAFEFF00A1FFFF00A1FFFF00A0 + FFFF56C3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCFDFBFFFCFBFAFFFBFA + F8FFE6DDD6FFAA9180FF5D3922FF603D26FF613E27FF613E28FF634029FFB4A3 + 987E00000000000000000000000000CAFFFF00CAFFFF00CBFFFF00B0FFFF00CD + FBFF38F5F7FFC3EFFAFFF0FFFEFF00FAF7FF00C8F7FF00C2F7FF00C2F7FF00C1 + F7FF57D7FAFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFDFDFCFFFCFC + FBFFE7DED8FFCCB9ACFFE6DBD5FFE2D7D0FFDCCFC5FFD7C5BBFF8E705DFFB4A2 + 9680000000000000000000000000002E383C002E383C00252F364C99B0B57DE8 + FBFF59F1F7FF25F7F7FF41FAF8FF7CEEF7FF77E4F7FFB5EFFCFFC6F2FDFFC3F2 + FDFFD9F6FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFEFEFFFEFE + FEFFE9E1DAFFCEBCAFFFF1E9E3FFEADFD8FFE4D5CCFF9D816FFF3A291F868985 + 831C00000000000000000000000000000000000000004E7073774AB0DADC37C9 + FBFF22D5F7FF00D3F9FF02C3FBFF37D5F7FF34BEFCFFA2E6FAFFECFBFDFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFF + FFFFEAE2DCFFCDBBADFFEADFD8FFE3D5CBFF9F8271FF3E2D2386050100200000 + 000000000000000000000000000000000000000000003E9CC4C219C0FFFF23C9 + FCFF30D3F8FF00BEF8FF06A8FEFF4FDCF8FF00B8FCFF32C2FBFFC0EBFCFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFEAE3DEFFCDB9ABFFDDCEC4FFA58979FF3E2C1F8F0905041B000000000000 + 000000000000000000000000000000000000003451510099DDDB0091C0C35DAD + BCCF76D7E9FF00BEF9FF10A9FBFFBDDEDEFF5AC8DDFF0AB5F7FF62CEFFFFCBE4 + F1FFF1E7E0FFEFE7E1FFEEE6E1FFEEE6E1FFEEE6E0FFEDE6E0FFEDE5E0FFEEE6 + E1FFE1D4CCFFC5AE9FFFA68D7FF53E2718A10402000E00000000000000000000 + 0000000000000000000000000000000000000075B7AF0099C7C500323E425442 + 3B5C6BA8B1DA00C1FCFF0EA1F3F8A98E80C0AB9081C12698B1C10088C4C14C85 + A3C1A18D80C19E8D81C19E8B81C19D8C80C19B8C7FC19B8A7FC19C897FC19A89 + 7EC19B8B7EC1897769C2432B1BAC000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000045565A00C5FFFF0094E6E2000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000FFFFFFFFF0000007F0000007F0000007F000 + 0007F0000007F0000007F0000007F0000007F0000007F0000007F0000007F000 + 0007F0000007F0000007F0000007F0000007F0000007F0000007800000078000 + 0007C0000007C000000700000007000000070000000700000007C000000FC000 + 001F8000003F800000FFF8FFFFFF} + Width = 450 + Left = 184 + Top = 112 + end +end diff --git a/Source/Modulos/Albaranes de proveedor/Views/uEditorAlbaranesProveedor.pas b/Source/Modulos/Albaranes de proveedor/Views/uEditorAlbaranesProveedor.pas new file mode 100644 index 00000000..4e3625fe --- /dev/null +++ b/Source/Modulos/Albaranes de proveedor/Views/uEditorAlbaranesProveedor.pas @@ -0,0 +1,349 @@ +unit uEditorAlbaranesProveedor; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, Menus, DB, uDADataTable, JvAppStorage, + JvAppRegistryStorage, JvComponent, JvFormPlacement, ImgList, + PngImageList, StdActns, ActnList, ComCtrls, TB2ExtItems, TBXExtItems, + TBX, TB2Item, TB2Dock, TB2Toolbar, ExtCtrls, JvExControls, + JvNavigationPane, uViewGrid, pngimage, JvComponentBase, + uEditorGridBase, + uBizAlbaranesProveedor, uIEditorAlbaranesProveedor, uAlbaranesProveedorController, + uCustomView, uViewBase, uViewBarraSeleccion, uViewGridBase, + uViewAlbaranesProveedor, JvExComCtrls, JvStatusBar, JSDialog, uDAInterfaces; + +type + TfEditorAlbaranesProveedor = class(TfEditorGridBase, IEditorAlbaranesProveedor) + actGenerarFactura: TAction; + JsNuevoAlbaranDialog: TJSDialog; + JsPrevisualizarDialog: TJSDialog; + JsImprimirDialog: TJSDialog; + TBXItem39: TTBXItem; + JsListaAlbaranesNoEliminados: TJSDialog; + 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, uFactuGES_App, +// uGenerarFacturasProvAlbProvUtils, uGenerarAlbaranesProvUtils, + uEditorBase, schAlbaranesProveedorClient_Intf, + uGridUtils, uDBSelectionListUtils; + +{$R *.dfm} + +{ +*************************** TfEditorAlbaranesProveedor *************************** +} +procedure TfEditorAlbaranesProveedor.actEliminarUpdate(Sender: TObject); +begin + inherited; + if (Sender as TAction).Enabled then + (Sender as TAction).Enabled := not (FAlbaranes.ID_FACTURA > 0) +end; + +procedure TfEditorAlbaranesProveedor.actGenerarFacturaExecute(Sender: TObject); +begin +AppFactuGES.ShowCapado; +{ + inherited; +// GenerarFacturaProv(Albaranes.ID); + actRefrescar.Execute; +} +end; + +procedure TfEditorAlbaranesProveedor.actGenerarFacturaUpdate(Sender: TObject); +begin + inherited; + (Sender as TAction).Enabled := HayDatos + and not (ViewGrid.NumSeleccionados > 1) + and (Albaranes.REF_FACTURA = '') + and ViewGrid.esSeleccionCeldaDatos; +end; + +procedure TfEditorAlbaranesProveedor.AsignarVista; +begin + ViewGrid := CreateView(TfrViewAlbaranesProveedor) as IViewAlbaranesProveedor; +end; + +constructor TfEditorAlbaranesProveedor.Create(AOwner: TComponent); +begin + inherited; + AsignarVista; +end; + +destructor TfEditorAlbaranesProveedor.Destroy; +begin + FAlbaranes := NIL; + FController := NIL; + inherited; +end; + +procedure TfEditorAlbaranesProveedor.DuplicarInterno; +var + AAlbaran : IBizAlbaranProveedor; +begin +AppFactuGES.ShowCapado; +{ + inherited; + AAlbaran := FController.Duplicar(Albaranes); + try + FController.Ver(AAlbaran); + finally + actRefrescar.Execute; + end; +} +end; + +procedure TfEditorAlbaranesProveedor.EliminarInterno; +var + AAlbaranes: IBizAlbaranProveedor; + AllItems: Boolean; +begin + AAlbaranes := Nil; + AllItems := False; + + if MultiSelect and Assigned(ViewGrid) then + AllItems := (ViewGrid.NumSeleccionados > 1); + + if AllItems then + begin + if (Application.MessageBox('Desea borrar los albaranes de proveedor seleccionados?', 'Atencin', MB_YESNO) = IDYES) then + begin + SeleccionarFilasDesdeGrid(ViewGrid._FocusedView, (Albaranes as ISeleccionable).SelectedRecords); + AAlbaranes := (Controller as IAlbaranesProveedorController).ExtraerSeleccionados(Albaranes) as IBizAlbaranProveedor; + end + end + else begin + if (Application.MessageBox('Desea borrar el albarn de proveedor seleccionado?', 'Atencin', MB_YESNO) = IDYES) then + AAlbaranes := Albaranes; + end; + + if Assigned(AAlbaranes) then + begin + FController.Eliminar(AAlbaranes, AllItems); + if AllItems then + begin + if (AAlbaranes.DataTable.RecordCount > 0) then + begin + with AAlbaranes.DataTable do + begin + First; + while not EOF do + begin + JsListaAlbaranesNoEliminados.Content.Add('Ref. albarn: ' + AAlbaranes.REFERENCIA + ' ' + AAlbaranes.NOMBRE); + Next; + end; + end; + JsListaAlbaranesNoEliminados.Execute; + end; + actRefrescar.Execute; + end; + end; + + ViewGrid.GotoFirst; +end; + +procedure TfEditorAlbaranesProveedor.FormShow(Sender: TObject); +begin + inherited; + + if not Assigned(ViewGrid) then + raise Exception.Create('No hay ninguna vista asignada'); + + if not Assigned(Albaranes) then + raise Exception.Create('No hay ningn albarn asignado'); + + Albaranes.DataTable.Active := True; + ViewGrid.GotoFirst; +end; + +function TfEditorAlbaranesProveedor.GetController: IAlbaranesProveedorController; +begin + Result := FController; +end; + +procedure TfEditorAlbaranesProveedor.ImprimirInterno; +var + Respuesta : Integer; + AAlbaranes: IBizAlbaranProveedor; + AllItems: Boolean; + +begin +AppFactuGES.ShowCapado; +{ + AAlbaranes := Nil; + AllItems := False; + + if MultiSelect and Assigned(ViewGrid) then + AllItems := (ViewGrid.NumSeleccionados > 1); + + //Si esta agrupado solo podr imprimir la lista de elementos visibles + if not ViewGrid.esSeleccionCeldaDatos then + inherited + else + begin + Respuesta := JsImprimirDialog.Execute; + if Respuesta <> IDCANCEL then + begin + case JsImprimirDialog.CustomButtonResult of + 200 : begin // Lista de elementos visibles + inherited; + end; + 100 : begin // Elemento Seleccionado + if AllItems then + begin + SeleccionarFilasDesdeGrid(ViewGrid._FocusedView, (Albaranes as ISeleccionable).SelectedRecords); + AAlbaranes := (Controller as IAlbaranesProveedorController).ExtraerSeleccionados(Albaranes) as IBizAlbaranProveedor; + end + else + AAlbaranes := Albaranes; + + if Assigned(AAlbaranes) then + FController.Print(AAlbaranes, AllItems); + end; + end; + end; + end; +} +end; + +function TfEditorAlbaranesProveedor.GetAlbaranes: IBizAlbaranProveedor; +begin + Result := FAlbaranes; +end; + +procedure TfEditorAlbaranesProveedor.ModificarInterno; +begin + inherited; + FController.Ver(Albaranes); +end; + +procedure TfEditorAlbaranesProveedor.NuevoInterno; +var + Respuesta : Integer; + +begin + inherited; + + Respuesta := JsNuevoAlbaranDialog.Execute; + + if Respuesta <> IDCANCEL then + begin + case JsNuevoAlbaranDialog.CustomButtonResult of + 200 : begin // Utilizar un pedido +// GenerarAlbaranProv; + actRefrescar.Execute; + end; + 100 : begin // Albaran nuevo vacio + if FController.Anadir(Albaranes) then + FController.Ver(Albaranes); + end; + end; + end; +end; + +procedure TfEditorAlbaranesProveedor.PonerTitulos(const ATitulo: string); +var + FTitulo : String; +begin + if (ATitulo = '') then + FTitulo := 'Lista de albaranes de proveedor - ' + AppFactuGES.EmpresaActiva.NOMBRE + else + FTitulo := ATitulo; + + inherited PonerTitulos(FTitulo); +end; + +procedure TfEditorAlbaranesProveedor.PrevisualizarInterno; +var + Respuesta : Integer; + AAlbaranes: IBizAlbaranProveedor; + AllItems: Boolean; +begin +AppFactuGES.ShowCapado; +{ + AAlbaranes := Nil; + AllItems := False; + + if MultiSelect and Assigned(ViewGrid) then + AllItems := (ViewGrid.NumSeleccionados > 1); + + //Si esta agrupado solo podr imprimir la lista de elementos visibles + if not ViewGrid.esSeleccionCeldaDatos then + inherited + else + begin + Respuesta := JsPrevisualizarDialog.Execute; + if Respuesta <> IDCANCEL then + begin + case JsPrevisualizarDialog.CustomButtonResult of + 200 : begin // Lista de elementos visibles + inherited; + end; + 100 : begin // Elemento Seleccionado + if AllItems then + begin + SeleccionarFilasDesdeGrid(ViewGrid._FocusedView, (Albaranes as ISeleccionable).SelectedRecords); + AAlbaranes := (Controller as IAlbaranesProveedorController).ExtraerSeleccionados(Albaranes) as IBizAlbaranProveedor; + end + else + AAlbaranes := Albaranes; + + if Assigned(AAlbaranes) then + FController.Preview(AAlbaranes, AllItems); + end; + end; + end; + end; +} +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/uEditorAlbaranesProveedorReport.dfm b/Source/Modulos/Albaranes de proveedor/Views/uEditorAlbaranesProveedorReport.dfm new file mode 100644 index 00000000..bb2e7869 --- /dev/null +++ b/Source/Modulos/Albaranes de proveedor/Views/uEditorAlbaranesProveedorReport.dfm @@ -0,0 +1,12 @@ +inherited fEditorAlbaranesProveedorPreview: TfEditorAlbaranesProveedorPreview + Caption = 'Previsualizar el albar'#225'n de proveedor' + ExplicitWidth = 320 + ExplicitHeight = 240 + PixelsPerInch = 96 + TextHeight = 13 + inherited frxReport1: TfrxReport + Datasets = <> + Variables = <> + Style = <> + end +end diff --git a/Source/Modulos/Albaranes de proveedor/Views/uEditorAlbaranesProveedorReport.pas b/Source/Modulos/Albaranes de proveedor/Views/uEditorAlbaranesProveedorReport.pas new file mode 100644 index 00000000..dfd52dfd --- /dev/null +++ b/Source/Modulos/Albaranes de proveedor/Views/uEditorAlbaranesProveedorReport.pas @@ -0,0 +1,22 @@ +unit uEditorAlbaranesProveedorReport; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uEditorPreview, JvAppStorage, JvAppRegistryStorage, JvComponentBase, + JvFormPlacement, ImgList, PngImageList, StdActns, ActnList, ComCtrls, + TB2ExtItems, TBXExtItems, TBX, TB2Item, TB2Dock, TB2Toolbar, pngimage, + ExtCtrls, JvExControls, JvComponent, JvNavigationPane, uIEditorAlbaranesProveedorPreview, + JvExComCtrls, JvStatusBar, frxExportImage, frxExportPDF, frxDCtrl, frxClass, + frxDMPExport, frxGradient, frxChBox, frxCross, frxRich, frxOLE, frxBarcode; + +type + TfEditorAlbaranesProveedorPreview = class(TfEditorPreview, IEditorAlbaranesProveedorPreview) + end; + + +implementation +{$R *.dfm} + +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..e34b8b62 --- /dev/null +++ b/Source/Modulos/Albaranes de proveedor/Views/uEditorElegirArticulosAlbaranProveedor.dfm @@ -0,0 +1,5 @@ +inherited fEditorElegirArticulosAlbaranProveedor: TfEditorElegirArticulosAlbaranProveedor + Caption = 'fEditorElegirArticulosAlbaranProveedor' + 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..2851ce73 --- /dev/null +++ b/Source/Modulos/Albaranes de proveedor/Views/uEditorElegirArticulosAlbaranProveedor.pas @@ -0,0 +1,65 @@ +unit uEditorElegirArticulosAlbaranProveedor; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uEditorElegirArticulos, Menus, DB, uDADataTable, JvAppStorage, + JvAppRegistryStorage, JvComponentBase, JvFormPlacement, ImgList, PngImageList, + StdActns, ActnList, uCustomView, uViewBase, uViewBarraSeleccion, ComCtrls, + JvExComCtrls, JvStatusBar, TBX, TB2ExtItems, TBXExtItems, TB2Item, TB2Dock, + TB2Toolbar, pngimage, ExtCtrls, JvExControls, JvComponent, JvNavigationPane, + JvgWizardHeader, uIEditorElegirArticulosAlbaranesProveedor, uBizContactos; + +type + TfEditorElegirArticulosAlbaranProveedor = class(TfEditorElegirArticulos, IEditorElegirArticulosAlbaranesProveedor) + procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean); + private + FProveedor: IBizProveedor; + function GetProveedor: IBizProveedor; + procedure SetProveedor(const Value: IBizProveedor); + + protected + procedure AsignarVista; override; + + public + property Proveedor: IBizProveedor read GetProveedor write SetProveedor; + + end; + + +implementation +{$R *.dfm} + +uses uViewElegirArticulosAlbaranesProveedor; + +{ TfEditorElegirArticulosAlbaranProveedor } + +procedure TfEditorElegirArticulosAlbaranProveedor.AsignarVista; +begin + ViewGrid := CreateView(TfrViewElegirArticulosAlbaranesProveedor) as IViewElegirArticulosAlbaranesProveedor; +end; + +procedure TfEditorElegirArticulosAlbaranProveedor.FormCloseQuery( + Sender: TObject; var CanClose: Boolean); +begin + FProveedor := Nil; + inherited; +end; + +function TfEditorElegirArticulosAlbaranProveedor.GetProveedor: IBizProveedor; +begin + Result := FProveedor; +end; + +procedure TfEditorElegirArticulosAlbaranProveedor.SetProveedor(const Value: IBizProveedor); +begin + FProveedor := Value; + if Assigned(FProveedor) then + begin + if Assigned(Self.ViewGrid) then + (Self.ViewGrid as IViewElegirArticulosAlbaranesProveedor).Proveedor := FProveedor; + end; +end; + +end. diff --git a/Source/Modulos/Albaranes de proveedor/Views/uViewAlbaranDevProveedor.dfm b/Source/Modulos/Albaranes de proveedor/Views/uViewAlbaranDevProveedor.dfm new file mode 100644 index 00000000..1d97ed99 --- /dev/null +++ b/Source/Modulos/Albaranes de proveedor/Views/uViewAlbaranDevProveedor.dfm @@ -0,0 +1,144 @@ +inherited frViewAlbaranDevProveedor: TfrViewAlbaranDevProveedor + Height = 349 + ExplicitHeight = 349 + inherited dxLayoutControl1: TdxLayoutControl + Height = 349 + ExplicitHeight = 349 + inherited edtFechaAlbaran: TcxDBDateEdit + Left = 114 + ExplicitLeft = 114 + ExplicitWidth = 119 + Width = 119 + end + inherited memObservaciones: TcxDBMemo + ExplicitWidth = 186 + ExplicitHeight = 162 + Height = 162 + Width = 186 + end + inherited eReferencia: TcxDBTextEdit + Left = 114 + ExplicitLeft = 114 + ExplicitWidth = 143 + Width = 143 + end + inherited frViewProveedorAlbaran: TfrViewDatosYSeleccionProveedor + 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 + end + inherited frViewDireccionEntregaAlbaranProv1: TfrViewDireccionEntregaAlbaranProv + Width = 445 + Height = 175 + ExplicitWidth = 445 + ExplicitHeight = 175 + inherited dxLayoutControl1: TdxLayoutControl + Width = 445 + Height = 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 = 109 + Top = 109 + ExplicitLeft = 109 + ExplicitTop = 109 + end + inherited txtDireccion: TStaticText + Width = 549 + Height = 110 + ExplicitWidth = 549 + ExplicitHeight = 110 + 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 = 114 + ExplicitLeft = 114 + ExplicitWidth = 90 + Width = 90 + end + inherited eReferenciaPedidoCli: TcxTextEdit + Left = 114 + ExplicitLeft = 114 + ExplicitWidth = 69 + Width = 69 + end + inherited eRefFactura: TcxDBTextEdit + ExplicitWidth = 172 + Width = 172 + end + inherited eReferenciaProveedor: TcxDBTextEdit + ExplicitWidth = 172 + Width = 172 + end + inherited eReferenciaFacturaProveedor: TcxDBTextEdit + ExplicitWidth = 172 + Width = 172 + end + inherited dxLayoutControl1Group_Root: TdxLayoutGroup + inherited dxLayoutControl1Group6: TdxLayoutGroup + inherited dxLayoutControl1Group1: TdxLayoutGroup + Caption = 'Datos de la orden' + inherited dxLayoutControl1Item2: TdxLayoutItem + Caption = 'Fecha de orden:' + end + inherited dxLayoutControl1Group5: TdxLayoutGroup + Visible = False + end + inherited dxLayoutControl1Item10: TdxLayoutItem + Caption = 'Ref. abono:' + end + inherited dxLayoutControl1Item12: TdxLayoutItem + Caption = 'Ref. abono prov.:' + end + end + inherited dxLayoutControl1Group8: TdxLayoutGroup + Caption = 'Almac'#233'n de salida' + end + end + end + end +end diff --git a/Source/Modulos/Albaranes de proveedor/Views/uViewAlbaranDevProveedor.pas b/Source/Modulos/Albaranes de proveedor/Views/uViewAlbaranDevProveedor.pas new file mode 100644 index 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..667de217 --- /dev/null +++ b/Source/Modulos/Albaranes de proveedor/Views/uViewAlbaranProveedor.dfm @@ -0,0 +1,479 @@ +inherited frViewAlbaranProveedor: TfrViewAlbaranProveedor + Width = 827 + Height = 585 + OnCreate = CustomViewCreate + OnDestroy = CustomViewDestroy + ExplicitWidth = 827 + ExplicitHeight = 585 + object dxLayoutControl1: TdxLayoutControl + Left = 0 + Top = 0 + Width = 827 + Height = 585 + Align = alClient + ParentBackground = True + TabOrder = 0 + AutoContentSizes = [acsWidth, acsHeight] + DesignSize = ( + 827 + 585) + object edtFechaAlbaran: TcxDBDateEdit + Left = 119 + Top = 82 + Anchors = [akLeft, akTop, akRight] + DataBinding.DataField = 'FECHA_ALBARAN' + DataBinding.DataSource = DADataSource + Properties.ImmediatePost = True + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.Color = clInfoBk + Style.HotTrack = False + Style.LookAndFeel.NativeStyle = True + Style.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 = 119 + end + object memObservaciones: TcxDBMemo + Left = 474 + 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 = 11 + Height = 253 + Width = 186 + end + object eReferencia: TcxDBTextEdit + Left = 119 + Top = 28 + Anchors = [akLeft, akTop, akRight] + DataBinding.DataField = 'REFERENCIA' + DataBinding.DataSource = DADataSource + Enabled = False + Properties.ReadOnly = False + Properties.ValidateOnEnter = True + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.Color = clWindow + Style.HotTrack = False + Style.LookAndFeel.NativeStyle = True + 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 = 474 + Top = 28 + Width = 350 + Height = 212 + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + TabOrder = 10 + ReadOnly = False + ExplicitLeft = 474 + 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 + inherited edtCodigoPostal: TcxDBTextEdit + Left = 239 + ExplicitLeft = 239 + end + inherited Button3: TBitBtn + Left = 123 + ExplicitLeft = 123 + 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 = 249 + Width = 445 + Height = 175 + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + TabOrder = 9 + ReadOnly = False + ExplicitLeft = 22 + ExplicitTop = 249 + ExplicitWidth = 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 = 284 + Top = 279 + ExplicitLeft = 284 + ExplicitTop = 279 + end + inherited txtDireccion: TStaticText + Height = 110 + ExplicitHeight = 110 + end + end + inherited ActionList1: TActionList + Left = 32 + Top = 40 + end + end + object cbFormaPago: TcxDBLookupComboBox + Left = 119 + Top = 192 + DataBinding.DataField = 'ID_FORMA_PAGO' + DataBinding.DataSource = DADataSource + Properties.KeyFieldNames = 'ID' + Properties.ListColumns = < + item + FieldName = 'REFERENCIA' + end> + Properties.ListOptions.GridLines = glNone + Properties.ListOptions.ShowHeader = False + Properties.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 = 7 + Width = 90 + end + object bFormasPago: TButton + Left = 312 + Top = 192 + Width = 132 + Height = 21 + Caption = 'Ver las formas de pago...' + TabOrder = 8 + OnClick = bFormasPagoClick + end + object eReferenciaPedidoCli: TcxTextEdit + Left = 119 + Top = 109 + Anchors = [akLeft, akTop, akRight] + Enabled = False + Properties.ReadOnly = False + Properties.ValidateOnEnter = True + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.Color = clWindow + Style.HotTrack = False + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + 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 = 122 + end + object Button1: TButton + Left = 312 + Top = 109 + Width = 132 + Height = 23 + Action = actVerPedido + TabOrder = 4 + end + object eRefFactura: TcxDBTextEdit + Left = 119 + Top = 138 + Anchors = [akLeft, akTop, akRight] + DataBinding.DataField = 'REF_FACTURA' + DataBinding.DataSource = DADataSource + Enabled = False + Properties.ReadOnly = False + Properties.ValidateOnEnter = True + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.Color = clWindow + Style.HotTrack = False + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + 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 = 216 + end + object eReferenciaProveedor: TcxDBTextEdit + Left = 119 + Top = 55 + Anchors = [akLeft, akTop, akRight] + DataBinding.DataField = 'REFERENCIA_PROVEEDOR' + DataBinding.DataSource = DADataSource + Properties.ReadOnly = False + Properties.ValidateOnEnter = True + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.Color = clWindow + Style.HotTrack = False + Style.LookAndFeel.NativeStyle = True + StyleDisabled.Color = clMenuBar + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.TextColor = clWindowText + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 1 + Width = 170 + end + object eReferenciaFacturaProveedor: TcxDBTextEdit + Left = 119 + Top = 165 + Anchors = [akLeft, akTop, akRight] + DataBinding.DataField = 'REF_FACTURA_PROV' + DataBinding.DataSource = DADataSource + Properties.ReadOnly = False + Properties.ValidateOnEnter = True + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.Color = clWindow + Style.HotTrack = False + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + 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 = 170 + end + object dxLayoutControl1Group_Root: TdxLayoutGroup + ShowCaption = False + Hidden = True + LayoutDirection = ldHorizontal + ShowBorder = False + object dxLayoutControl1Group6: TdxLayoutGroup + AutoAligns = [aaVertical] + AlignHorz = ahClient + ShowCaption = False + Hidden = True + ShowBorder = False + object dxLayoutControl1Group1: TdxLayoutGroup + AutoAligns = [] + AlignHorz = ahClient + Caption = 'Datos del albar'#225'n' + object dxLayoutControl1Item3: TdxLayoutItem + Caption = 'Referencia:' + Control = eReferencia + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item11: TdxLayoutItem + Caption = 'Ref. proveedor:' + Control = eReferenciaProveedor + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item2: TdxLayoutItem + Caption = 'Fecha del albar'#225'n:' + Control = edtFechaAlbaran + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Group5: TdxLayoutGroup + ShowCaption = False + Hidden = True + LayoutDirection = ldHorizontal + ShowBorder = False + object dxLayoutControl1Item8: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahClient + Caption = 'Ref. del pedido:' + Control = eReferenciaPedidoCli + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item9: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahRight + ShowCaption = False + Control = Button1 + ControlOptions.ShowBorder = False + end + end + object dxLayoutControl1Item10: TdxLayoutItem + Caption = 'Ref. factura:' + Control = eRefFactura + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item12: TdxLayoutItem + Caption = 'Ref. factura prov.:' + Control = eReferenciaFacturaProveedor + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Group4: TdxLayoutGroup + ShowCaption = False + Visible = False + Hidden = True + LayoutDirection = ldHorizontal + ShowBorder = False + object dxLayoutControl1Item5: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahClient + Caption = 'Forma pago:' + Control = cbFormaPago + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item7: TdxLayoutItem + ShowCaption = False + Control = bFormasPago + ControlOptions.ShowBorder = False + end + end + end + object dxLayoutControl1Group8: TdxLayoutGroup + AutoAligns = [] + AlignHorz = ahClient + AlignVert = avClient + Caption = 'Direcci'#243'n de entrega' + object dxLayoutControl1Item4: TdxLayoutItem + AutoAligns = [aaHorizontal] + AlignVert = avClient + Control = frViewDireccionEntregaAlbaranProv1 + ControlOptions.AutoColor = True + ControlOptions.ShowBorder = False + end + end + end + object dxLayoutControl1Group3: TdxLayoutGroup + AutoAligns = [aaVertical] + AlignHorz = ahClient + ShowCaption = False + Hidden = True + ShowBorder = False + object dxLayoutControl1Group2: TdxLayoutGroup + Caption = 'Datos del proveedor' + object dxLayoutControl1Item1: TdxLayoutItem + 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..4e871317 --- /dev/null +++ b/Source/Modulos/Albaranes de proveedor/Views/uViewAlbaranProveedor.pas @@ -0,0 +1,280 @@ +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, uBizFormasPago, + uDAInterfaces; + +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; + eRefFactura: TcxDBTextEdit; + dxLayoutControl1Item11: TdxLayoutItem; + eReferenciaProveedor: TcxDBTextEdit; + dxLayoutControl1Item12: TdxLayoutItem; + eReferenciaFacturaProveedor: TcxDBTextEdit; + procedure CustomViewCreate(Sender: TObject); + procedure CustomViewDestroy(Sender: TObject); + procedure actElegirDireccionExecute(Sender: TObject); + procedure frViewProveedorAlbaranButton1Click(Sender: TObject); + procedure frViewProveedorAlbaranButton2Click(Sender: TObject); + procedure bFormasPagoClick(Sender: TObject); + procedure actVerPedidoExecute(Sender: TObject); + + procedure frViewProveedorAlbaranactElegirContactoUpdate(Sender: TObject); + procedure frViewProveedorAlbaranactAnadirContactoUpdate(Sender: TObject); + procedure actElegirDireccionUpdate(Sender: TObject); + procedure actVerPedidoUpdate(Sender: TObject); + + protected + FAlbaran : IBizAlbaranProveedor; + FViewProveedorAlbaran : TfrViewDatosYSeleccionProveedor; + FFormasPago : IBizFormaPago; + 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, + schAlbaranesProveedorClient_Intf; + + +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 direccin del Proveedor que quiere utilizar como direccin 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; + if (Sender as TAction).Enabled then + (Sender as TAction).Enabled := (not ReadOnly) and + Assigned(FAlbaran) and + Assigned(FViewProveedorAlbaran) and + FAlbaran.DataTable.Active and + Assigned(FAlbaran.Proveedor) and + Assigned(FAlbaran.Proveedor) and + Assigned(FAlbaran.Proveedor.Direcciones) and + FAlbaran.Proveedor.Direcciones.DataTable.Active and + (FAlbaran.Proveedor.Direcciones.DataTable.RecordCount > 0); +end; + +procedure TfrViewAlbaranProveedor.actVerPedidoExecute(Sender: TObject); +begin + inherited; + FPedidoController.Ver(FPedidoAsociado); +end; + +procedure TfrViewAlbaranProveedor.actVerPedidoUpdate(Sender: TObject); +begin + inherited; + if (Sender as TAction).Enabled then + (Sender as TAction).Enabled := (Albaran.REF_PED_PROVEEDOR <> '') +end; + +procedure TfrViewAlbaranProveedor.bFormasPagoClick(Sender: TObject); +begin + inherited; + if Assigned(FFormasPago) then + FFormasPagoController.VerTodos(FFormasPago); +end; + +procedure TfrViewAlbaranProveedor.CustomViewCreate(Sender: TObject); +begin + inherited; + FPedidoAsociado := NIL; + FPedidoController := TPedidosProveedorController.Create; + FFormasPago := Nil; + FFormasPagoController := TFormasPagoController.Create; + FViewProveedorAlbaran := frViewProveedorAlbaran; + FViewProveedorAlbaran.MsgElegirProveedor := 'Elija el proveedor de este albarn.'; + + eReferencia.Enabled := False; +end; + +procedure TfrViewAlbaranProveedor.CustomViewDestroy(Sender: TObject); +begin + FPedidoController := NIL; + FFormasPago := Nil; + FFormasPagoController := NIL; + FPedidoAsociado := NIL; + FViewProveedorAlbaran := Nil; + inherited; +end; + +procedure TfrViewAlbaranProveedor.frViewProveedorAlbaranactAnadirContactoUpdate(Sender: TObject); +begin + if (Sender as TAction).Enabled then + (Sender as TAction).Enabled := not Assigned(FPedidoAsociado); +end; + +procedure TfrViewAlbaranProveedor.frViewProveedorAlbaranactElegirContactoUpdate(Sender: TObject); +begin + if (Sender as TAction).Enabled then + (Sender as TAction).Enabled := (not Assigned(FPedidoAsociado)); +end; + +procedure TfrViewAlbaranProveedor.frViewProveedorAlbaranButton1Click(Sender: TObject); +begin + if Assigned(Albaran) and Assigned(Albaran.Proveedor) and + Assigned (Albaran.Detalles) and (Albaran.Detalles.RecordCount > 0) then + begin + if (Application.MessageBox('Si cambia de proveedor, se eliminarn todos sus artculos de la orden de devolucin actual, Desea continuar?', 'Atencin', MB_YESNO) = IDNO) then + Exit; + end; + 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 eliminarn todos sus artculos del la orden de devolucin actual, Desea continuar?', 'Atencin', MB_YESNO) = IDNO) then + Exit; + end; + frViewProveedorAlbaran.actAnadirContacto.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; + + FFormasPago := FFormasPagoController.BuscarTodos; + dsFormaPago.DataTable := FFormasPago.DataTable; + dsFormaPago.DataTable.Active := True; + + frViewProveedorAlbaran.Proveedor := FAlbaran.Proveedor; + frViewDireccionEntregaAlbaranProv1.AlbaranProveedor := FAlbaran; + + eReferenciaPedidoCli.Enabled := False; + eRefFactura.Enabled := False; + + FPedidoAsociado := NIL; + if (FAlbaran.ID_PEDIDO > 0) then + begin + FPedidoAsociado := FPedidoController.Buscar(FAlbaran.ID_PEDIDO); + if Assigned(FPedidoAsociado) then + begin + FPedidoAsociado.DataTable.Active := True; + eReferenciaPedidoCli.Text := FPedidoAsociado.REFERENCIA + end + else + eReferenciaPedidoCli.Text := ''; + end + else + eReferenciaPedidoCli.Text := 'No hay pedido asociado'; + end + else begin + DADataSource.DataTable := NIL; + dsFormaPago.DataTable := NIL; + 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..2b717fb0 --- /dev/null +++ b/Source/Modulos/Albaranes de proveedor/Views/uViewAlbaranesDevProveedor.dfm @@ -0,0 +1,44 @@ +inherited frViewAlbaranesDevProveedor: TfrViewAlbaranesDevProveedor + OnCreate = CustomViewCreate + inherited cxGrid: TcxGrid + inherited cxGridView: TcxGridDBTableView + inherited cxGridViewREF_FACTURA: TcxGridDBColumn + Caption = 'Ref. abono' + end + end + end + inherited frViewFiltroBase1: TfrViewFiltroBase + inherited TBXDockablePanel1: TTBXDockablePanel + inherited dxLayoutControl1: TdxLayoutControl + inherited txtFiltroTodo: TcxTextEdit + ExplicitWidth = 273 + Width = 273 + end + inherited edtFechaIniFiltro: TcxDateEdit + ExplicitWidth = 121 + Width = 121 + end + inherited edtFechaFinFiltro: TcxDateEdit + ExplicitWidth = 217 + Width = 217 + end + end + inherited TBXAlignmentPanel1: TTBXAlignmentPanel + inherited tbxBotones: TTBXToolbar + Width = 586 + 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..2ead872b --- /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, cxTextEdit; + +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..e0a1359e --- /dev/null +++ b/Source/Modulos/Albaranes de proveedor/Views/uViewAlbaranesProveedor.dfm @@ -0,0 +1,312 @@ +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 + OnMouseMove = cxGridViewMouseMove + 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 cxGridViewREFERENCIA_PROVEEDOR: TcxGridDBColumn + DataBinding.FieldName = 'REFERENCIA_PROVEEDOR' + 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_FACTURA: TcxGridDBColumn + Caption = 'Ref. factura' + DataBinding.FieldName = 'REF_FACTURA' + PropertiesClassName = 'TcxTextEditProperties' + Properties.Alignment.Horz = taRightJustify + HeaderAlignmentHorz = taRightJustify + Width = 24 + end + object cxGridViewREF_FACTURA_PROV: TcxGridDBColumn + DataBinding.FieldName = 'REF_FACTURA_PROV' + PropertiesClassName = 'TcxTextEditProperties' + Properties.Alignment.Horz = 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 = 114 + end + end + inherited cxGridLevel: TcxGridLevel + Caption = 'Todos' + end + end + inherited frViewFiltroBase1: TfrViewFiltroBase + Width = 596 + ExplicitWidth = 596 + inherited TBXDockablePanel1: TTBXDockablePanel + ExplicitWidth = 596 + inherited dxLayoutControl1: TdxLayoutControl + Width = 596 + ExplicitWidth = 596 + inherited txtFiltroTodo: TcxTextEdit + ExplicitWidth = 273 + Width = 273 + end + inherited edtFechaIniFiltro: TcxDateEdit + ExplicitWidth = 121 + Width = 121 + end + inherited edtFechaFinFiltro: TcxDateEdit + Left = 292 + ExplicitLeft = 292 + ExplicitWidth = 217 + Width = 217 + end + end + inherited TBXAlignmentPanel1: TTBXAlignmentPanel + Width = 596 + ExplicitWidth = 596 + inherited tbxBotones: TTBXToolbar + Width = 586 + ExplicitWidth = 586 + end + end + end + end + inherited pnlAgrupaciones: TTBXDockablePanel + Top = 453 + Visible = True + ExplicitTop = 453 + ExplicitWidth = 596 + inherited TBXAlignmentPanel1: TTBXAlignmentPanel + Width = 596 + ExplicitWidth = 596 + inherited TBXToolbar1: TTBXToolbar + Width = 586 + ExplicitWidth = 586 + object TBXSeparatorItem2: TTBXSeparatorItem + end + object TBXItem3: TTBXItem + Action = actProveedor + end + object TBXSeparatorItem1: TTBXSeparatorItem + end + object TBXItem2: TTBXItem + Action = actAlmacen + end + end + end + end + inherited dxComponentPrinter: TdxComponentPrinter + inherited dxComponentPrinterLink: TdxGridReportLink + ReportDocument.CreationDate = 38673.741107951390000000 + BuiltInReportLink = True + end + end + inherited cxStyleRepository1: TcxStyleRepository + Left = 248 + end + inherited ActionList1: TActionList + Left = 392 + Top = 448 + object actProveedor: TAction + Caption = 'Proveedor' + OnExecute = actProveedorExecute + OnUpdate = actProveedorUpdate + end + object actAlmacen: TAction + Caption = 'Almac'#233'n' + OnExecute = actAlmacenExecute + OnUpdate = actAlmacenUpdate + end + end + inherited 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..4fe86c32 --- /dev/null +++ b/Source/Modulos/Albaranes de proveedor/Views/uViewAlbaranesProveedor.pas @@ -0,0 +1,238 @@ +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, cxTextEdit; + +type + IViewAlbaranesProveedor = interface(IViewGrid) + ['{DFD9B90C-E3AE-48E1-A13F-AA75A05BBF3E}'] + function GetAlbaranes: IBizAlbaranProveedor; + procedure SetAlbaranes(const Value: IBizAlbaranProveedor); + property Albaranes: IBizAlbaranProveedor read GetAlbaranes write SetAlbaranes; + end; + + TfrViewAlbaranesProveedor = class(TfrViewGrid, IViewAlbaranesProveedor) + PngImageList: TPngImageList; + cxGridViewREFERENCIA: TcxGridDBColumn; + cxGridViewFECHA_ALBARAN: TcxGridDBColumn; + cxGridViewINCIDENCIAS_ACTIVAS: TcxGridDBColumn; + cxGridViewNOMBRE: TcxGridDBColumn; + cxGridViewCALLE: TcxGridDBColumn; + cxGridViewCODIGO_POSTAL: TcxGridDBColumn; + cxGridViewPOBLACION: TcxGridDBColumn; + cxGridViewPROVINCIA: TcxGridDBColumn; + cxGridViewPERSONA_CONTACTO: TcxGridDBColumn; + cxGridViewTELEFONO: TcxGridDBColumn; + cxGridViewNOMBRE_ALMACEN: TcxGridDBColumn; + cxGridViewREF_PED_PROVEEDOR: TcxGridDBColumn; + cxGridViewREF_FACTURA: TcxGridDBColumn; + cxGridViewIMPORTE_TOTAL: TcxGridDBColumn; + actProveedor: TAction; + actAlmacen: TAction; + TBXItem2: TTBXItem; + TBXSeparatorItem1: TTBXSeparatorItem; + TBXItem3: TTBXItem; + TBXSeparatorItem2: TTBXSeparatorItem; + cxGridViewREFERENCIA_PROVEEDOR: TcxGridDBColumn; + cxGridViewREF_FACTURA_PROV: TcxGridDBColumn; + 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); + procedure cxGridViewMouseMove(Sender: TObject; Shift: TShiftState; X, + Y: Integer); + + private + //Filtros relativos a la vista + procedure AnadirFiltroFechas; + + protected + FAlbaranes: IBizAlbaranProveedor; + function GetAlbaranes: IBizAlbaranProveedor; + procedure SetAlbaranes(const Value: IBizAlbaranProveedor); + public + procedure AnadirOtrosFiltros; override; + property Albaranes: IBizAlbaranProveedor read GetAlbaranes write SetAlbaranes; + end; + +implementation + +uses SysUtils, variants, windows, uDataModuleAlbaranesProveedor, schAlbaranesProveedorClient_Intf, + uViewGridBase; + +{$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.cxGridViewMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); +var + Site : TcxGridSite; + HitTest : TcxCustomGridHitTest; + Item : TcxCustomGridTableItem; + Rec : TcxCustomGridRecord; + sNewHint : string; +begin +{Este mtodo desaparecer cuando se migre la aplicacin, es para sacar la causa de la incidencia sin necesidad de entrar en el documento} + Site := Sender as TcxGridSite; + HitTest := Site.GridView.ViewInfo.GetHitTest(X, Y); + if HitTest is TcxGridRecordCellHitTest then begin + Item := TcxGridRecordCellHitTest(HitTest).Item; + Rec := TcxGridRecordCellHitTest(HitTest).GridRecord; + + if (Item.Index = cxGridView.GetColumnByFieldName(fld_AlbaranesProveedorINCIDENCIAS_ACTIVAS).Index) + and (Rec.Selected) + and (Albaranes.DataTable.FieldByName(fld_AlbaranesProveedorINCIDENCIAS_ACTIVAS).AsInteger = 1) then begin + sNewHint := Albaranes.DataTable.FieldByName(fld_AlbaranesProveedorINCIDENCIAS).AsString; + if (cxGrid.Hint <> sNewHint) then begin + cxGrid.ShowHint := false; + cxGrid.Hint := sNewHint; + end + else cxGrid.ShowHint := true; + end + else begin + cxGrid.ShowHint := false; + end; + end; +end; + +procedure TfrViewAlbaranesProveedor.cxGridViewStylesGetContentStyle(Sender: + TcxCustomGridTableView; ARecord: TcxCustomGridRecord; AItem: + TcxCustomGridTableItem; out AStyle: TcxStyle); +{var + IndiceCol: Integer; + ASituacion: string;} +begin +{ inherited; + if Assigned(ARecord) then + begin + IndiceCol := (Sender as TcxGridDBTableView).GetColumnByFieldName(fld_PresupuestosSITUACION).Index; + ASituacion := VarToStr(ARecord.DisplayTexts[IndiceCol]); + if ASituacion = SITUACION_ACEPTADO then + AStyle := cxStyleAceptado + else if ASituacion = SITUACION_RECHAZADO then + AStyle := cxStyleRechazado; + end; +} +end; + +function TfrViewAlbaranesProveedor.GetAlbaranes: IBizAlbaranProveedor; +begin + Result := FAlbaranes; +end; + +procedure TfrViewAlbaranesProveedor.SetAlbaranes(const Value: IBizAlbaranProveedor); +begin + FAlbaranes := Value; + if Assigned(FAlbaranes) then + dsDataSource.DataTable := FAlbaranes.DataTable; +end; + +end. diff --git a/Source/Modulos/Albaranes de proveedor/Views/uViewDetallesAlbaranProveedor.dfm b/Source/Modulos/Albaranes de proveedor/Views/uViewDetallesAlbaranProveedor.dfm new file mode 100644 index 00000000..2c1e05af --- /dev/null +++ b/Source/Modulos/Albaranes de proveedor/Views/uViewDetallesAlbaranProveedor.dfm @@ -0,0 +1,9 @@ +inherited frViewDetallesAlbaranProveedor: TfrViewDetallesAlbaranProveedor + inherited cxGrid: TcxGrid + inherited cxGridView: TcxGridDBTableView + inherited cxGridViewIMPORTENETO: TcxGridDBColumn + Properties.ReadOnly = False + end + end + end +end diff --git a/Source/Modulos/Albaranes de proveedor/Views/uViewDetallesAlbaranProveedor.pas b/Source/Modulos/Albaranes de proveedor/Views/uViewDetallesAlbaranProveedor.pas new file mode 100644 index 00000000..714c4a65 --- /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, uDAInterfaces; + +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..d2c3b2d6 --- /dev/null +++ b/Source/Modulos/Albaranes de proveedor/Views/uViewDireccionEntregaAlbaranProv.pas @@ -0,0 +1,218 @@ +unit uViewDireccionEntregaAlbaranProv; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uViewBase, uBizAlbaranesProveedor, cxGraphics, dxLayoutControl, cxMemo, + cxContainer, cxEdit, cxTextEdit, cxMaskEdit, cxDropDownEdit, cxLookupEdit, + cxDBLookupEdit, cxDBLookupComboBox, StdCtrls, cxControls, DB, uDADataTable, + ActnList, uBizAlmacenes, uAlmacenesController, uAlbaranesProveedorController, + Buttons, uDAInterfaces; + +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; + procedure SetReadOnly(Value: Boolean); override; + + public + property AlbaranProveedor: IBizAlbaranProveedor read GetAlbaranProveedor write SetAlbaranProveedor; + constructor Create(AOwner: TComponent); override; + destructor Destroy; override; + end; + +implementation +{$R *.dfm} + +uses + uEditorRegistryUtils, uCustomView; + +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; + if Assigned(FAlbaran) then + begin + dsAlbaran.DataTable := FAlbaran.DataTable; + cbLista.Properties.OnValidate := cbListaPropertiesValidate; + + { Para poder inicializar con el almacn por defecto en el caso de un + almacn nuevo, antes hay que comprobar que la direccin alternativa + est vacia porque puede ser que el albarn se haya generado + automticamente a partir de un pedido a proveedor con una direccin + que no es un almacn. + } + if (FAlbaran.EsNuevo) and + ((Length(FAlbaran.CALLE) = 0) and + (Length(FAlbaran.CODIGO_POSTAL) = 0) and + (Length(FAlbaran.POBLACION) = 0) and + (Length(FAlbaran.PROVINCIA) = 0)) then + CambioDireccionAlmacen + else + if (FAlbaran.ID_ALMACEN < 1) then + actOtro.Checked := True; + + RefrescarDireccion; + end; +end; + +procedure TfrViewDireccionEntregaAlbaranProv.SetReadOnly(Value: Boolean); +begin + inherited; + if ReadOnly then + begin + rdxDestino1.Enabled := False; + rdxDestino2.Enabled := False; + end; +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..f056b8b8 --- /dev/null +++ b/Source/Modulos/Albaranes de proveedor/Views/uViewElegirArticulosAlbaranesProveedor.dfm @@ -0,0 +1,53 @@ +inherited frViewElegirArticulosAlbaranesProveedor: TfrViewElegirArticulosAlbaranesProveedor + Height = 414 + OnDestroy = CustomViewDestroy + ExplicitHeight = 414 + inherited cxGrid: TcxGrid + Height = 286 + RootLevelOptions.DetailTabsPosition = dtpTop + OnActiveTabChanged = cxGridActiveTabChanged + ExplicitHeight = 286 + inherited cxGridView: TcxGridDBTableView + object cxGridViewID_PROVEEDOR: TcxGridDBColumn + DataBinding.FieldName = 'ID_PROVEEDOR' + Visible = False + end + end + object cxGridLevel1: TcxGridLevel + Caption = 'Otros proveedores' + end + end + inherited frViewFiltroBase1: TfrViewFiltroBase + inherited TBXDockablePanel1: TTBXDockablePanel + inherited dxLayoutControl1: TdxLayoutControl + inherited txtFiltroTodo: TcxTextEdit + ExplicitWidth = 273 + Width = 273 + end + inherited edtFechaIniFiltro: TcxDateEdit + ExplicitWidth = 121 + Width = 121 + end + inherited edtFechaFinFiltro: TcxDateEdit + ExplicitWidth = 121 + Width = 121 + end + end + end + end + inherited pnlAgrupaciones: TTBXDockablePanel + Top = 388 + ExplicitTop = 388 + end + inherited dxComponentPrinter: TdxComponentPrinter + inherited dxComponentPrinterLink: TdxGridReportLink + ReportDocument.CreationDate = 39252.489745000000000000 + BuiltInReportLink = True + end + end + inherited dxPrintStyleManager1: TdxPrintStyleManager + inherited dxPrintStyleManager1Style1: TdxPSPrintStyle + BuiltInStyle = 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..27cbc174 --- /dev/null +++ b/Source/Modulos/Albaranes de proveedor/Views/uViewElegirArticulosAlbaranesProveedor.pas @@ -0,0 +1,108 @@ +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, uBizContactos, + dxPgsDlg, ActnList, TB2Item, TBX, TB2Toolbar, TBXDkPanels, TB2Dock, + uViewFiltroBase; + +type + IViewElegirArticulosAlbaranesProveedor = interface(IViewArticulos) + ['{93C55517-8F37-4EDF-A1B0-95461D0AD807}'] + function GetProveedor: IBizProveedor; + procedure SetProveedor(const Value: IBizProveedor); + property Proveedor: IBizProveedor read GetProveedor write SetProveedor; + end; + + TfrViewElegirArticulosAlbaranesProveedor = class(TfrViewArticulos, IViewElegirArticulosAlbaranesProveedor) + cxGridLevel1: TcxGridLevel; + cxGridViewID_PROVEEDOR: TcxGridDBColumn; + procedure cxGridActiveTabChanged(Sender: TcxCustomGrid; + ALevel: TcxGridLevel); + procedure CustomViewDestroy(Sender: TObject); + + private + FProveedor: IBizProveedor; + function GetProveedor: IBizProveedor; + procedure SetProveedor(const Value: IBizProveedor); + + //Filtros relativos a la vista + procedure AnadirFiltroProveedor; + + public + property Proveedor: IBizProveedor read GetProveedor write SetProveedor; + procedure AnadirOtrosFiltros; override; + + end; + +implementation +{$R *.dfm} + +{ TfrViewElegirArticulosAlbaranesProveedor } + +procedure TfrViewElegirArticulosAlbaranesProveedor.AnadirFiltroProveedor; +var + FFiltro : TcxFilterCriteriaItemList; +begin + FFiltro := AddFilterGrid(fboAnd); + + case cxGrid.ActiveLevel.Index of + 0 : if Assigned(FProveedor) then + FFiltro.AddItem(cxGridViewID_PROVEEDOR, foEqual, FProveedor.ID, FProveedor.NOMBRE); + 1 : if Assigned(FProveedor) then + FFiltro.AddItem(cxGridViewID_PROVEEDOR, foNotEqual, FProveedor.ID, FProveedor.NOMBRE); + end; +end; + +procedure TfrViewElegirArticulosAlbaranesProveedor.AnadirOtrosFiltros; +begin + inherited; + + AnadirFiltroProveedor; + + //Finalmente activamos el filtro si tenemos algo + if cxGridView.DataController.Filter.IsEmpty + then cxGridView.DataController.Filter.Active := False + else cxGridView.DataController.Filter.Active := True; + cxGrid.ActiveLevel.GridView := cxGridView; +end; + +procedure TfrViewElegirArticulosAlbaranesProveedor.CustomViewDestroy( + Sender: TObject); +begin + inherited; + FProveedor := Nil; +end; + +procedure TfrViewElegirArticulosAlbaranesProveedor.cxGridActiveTabChanged( + Sender: TcxCustomGrid; ALevel: TcxGridLevel); +begin + inherited; + RefrescarFiltro; +end; + +function TfrViewElegirArticulosAlbaranesProveedor.GetProveedor: IBizProveedor; +begin + Result := FProveedor; +end; + +procedure TfrViewElegirArticulosAlbaranesProveedor.SetProveedor( + const Value: IBizProveedor); +begin + FProveedor := Value; + if Assigned(FProveedor) then + begin + cxGridLevel.Caption := FProveedor.NOMBRE; + RefrescarFiltro; + end; +end; + +end. diff --git a/Source/Modulos/Almacenes/Almacenes_Group.bdsgroup b/Source/Modulos/Almacenes/Almacenes_Group.bdsgroup new file mode 100644 index 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/Almacenes_Group.groupproj b/Source/Modulos/Almacenes/Almacenes_Group.groupproj new file mode 100644 index 00000000..cc5e0b7e --- /dev/null +++ b/Source/Modulos/Almacenes/Almacenes_Group.groupproj @@ -0,0 +1,104 @@ + + + {d11a1db7-eff8-4cb6-8678-b1928036ff3f} + + + + + + + + + + + + + + Default.Personality + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Source/Modulos/Almacenes/Controller/Almacenes_controller.bdsproj b/Source/Modulos/Almacenes/Controller/Almacenes_controller.bdsproj new file mode 100644 index 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..d2916243 --- /dev/null +++ b/Source/Modulos/Almacenes/Controller/Almacenes_controller.dpk @@ -0,0 +1,39 @@ +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 ON} + +requires + Almacenes_data, + Almacenes_model, + GUIBase, + ApplicationBase; + +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.dproj b/Source/Modulos/Almacenes/Controller/Almacenes_controller.dproj new file mode 100644 index 00000000..4f3e6ef8 --- /dev/null +++ b/Source/Modulos/Almacenes/Controller/Almacenes_controller.dproj @@ -0,0 +1,582 @@ + + + {9697e623-37d9-4e64-8d4c-74d7748385d4} + Almacenes_controller.dpk + Debug + AnyCPU + DCC32 + ..\..\..\..\Output\Debug\Cliente\Almacenes_controller.bpl + + + 7.0 + False + False + 0 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + RELEASE + + + 7.0 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + + + Delphi.Personality + Package + + + False + True + False + + + True + False + False + + + True + False + 1 + 0 + 0 + 0 + False + False + False + False + False + 3082 + 1252 + + + + + 1.0.0.0 + + + + + + 1.0.0.0 + + + + Almacenes_controller.dpk + + + + + + + MainSource + + + + + + + + + + + + + diff --git a/Source/Modulos/Almacenes/Controller/Almacenes_controller.identcache b/Source/Modulos/Almacenes/Controller/Almacenes_controller.identcache new file mode 100644 index 0000000000000000000000000000000000000000..214767d0405b23126468dc9c5bd3def0fc685ebc GIT binary patch literal 381 zcmZQ!U|{ffwu*7iPsvQrR|rW>F3v1T&4~%lFD*(=jq%M-Db2|*j&aP%O-xSBODzT} z%quC%&&f$GiYbMQA_Vmc5{rRG!a*3BW`|{_mdBKOx~627)H;{X347|28c09i@|9RL6T literal 0 HcmV?d00001 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..067bd912 --- /dev/null +++ b/Source/Modulos/Almacenes/Controller/uAlmacenesController.pas @@ -0,0 +1,418 @@ +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 mtodos a sobre escribir si se desea heredar toda la logica de + //este controller + procedure AsignarDataModule; virtual; + procedure RecuperarObjetos(AAlmacen: IBizAlmacen); virtual; + + procedure ValidarObjetos; virtual; +// procedure AsignarCodigo(AAlmacen: IBizAlmacen); virtual; + + public + constructor Create; override; + destructor Destroy; override; + + function Eliminar(const ID : Integer): Boolean; overload; + function Eliminar(AAlmacen : IBizAlmacen): Boolean; overload; + function Guardar(AAlmacen : IBizAlmacen): Boolean; + procedure DescartarCambios(AAlmacen : IBizAlmacen); virtual; + function Existe(const ID: Integer) : Boolean; virtual; + procedure Anadir(AAlmacen : IBizAlmacen); + function Buscar(const ID: Integer): IBizAlmacen; + function BuscarTodos: IBizAlmacen; + function Nuevo : IBizAlmacen; overload; + procedure Ver(AAlmacen : IBizAlmacen); + procedure VerTodos(AAlmacenes: IBizAlmacen); + function VerLista(AAlmacenes: IBizAlmacen): IBizAlmacen; + function Duplicar(AAlmacen: IBizAlmacen): IBizAlmacen; + procedure Preview(AAlmacen : IBizAlmacen); + procedure Print(AAlmacen : IBizAlmacen); + end; + +implementation + +uses + cxControls, DB, uEditorRegistryUtils, schAlmacenesClient_Intf, + uIEditorAlmacenes, uIEditorAlmacen, uDataModuleAlmacenes, + uDataModuleUsuarios, uDAInterfaces, uDataTableUtils, uFactuGES_App, + uDateUtils, uROTypes, DateUtils, Controls, Windows, uIEditorListaAlmacenes; + +{ TAlmacenesController } + +procedure TAlmacenesController.Anadir(AAlmacen: IBizAlmacen); +begin + AAlmacen.Insert; +end; + +{procedure TAlmacenesController.AsignarCodigo(AAlmacen: IBizAlmacen); +begin + if (AAlmacen.EsNuevo) then + AssignarID(AAlmacen, (FDataModule as IDataModuleAlmacenes)); +end;} + +procedure TAlmacenesController.AsignarDataModule; +begin + FDataModule := TDataModuleAlmacenes.Create(Nil); +end; + +{procedure TAlmacenesController.AssignarID(AAlmacen: IBizAlmacen; ADataModule : IDataModuleAlmacenes); +var + NuevoIDCabecera : Integer; +begin + if not Assigned(AAlmacen) then + raise Exception.Create ('Almacen no asignada'); + + NuevoIDCabecera := ADataModule.GetNextID(AAlmacen.DataTable.LogicalName); + + AAlmacen.Edit; + AAlmacen.ID := NuevoIDCabecera; + AAlmacen.Post; +end;} + +function TAlmacenesController.Buscar(const ID: Integer): IBizAlmacen; +begin + Result := (FDataModule as IDataModuleAlmacenes).GetItem(ID); + FiltrarEmpresa(Result); +end; + +function TAlmacenesController.BuscarTodos: IBizAlmacen; +begin + Result := FDataModule.GetItems; + FiltrarEmpresa(Result); +end; + +constructor TAlmacenesController.Create; +begin + inherited; + AsignarDataModule; +end; + +function TAlmacenesController.CreateEditor(const AName: String; + const IID: TGUID; out Intf): Boolean; +begin + Result := Supports(EditorRegistry.CreateEditor(AName), IID, Intf); +end; + +procedure TAlmacenesController.DescartarCambios(AAlmacen: IBizAlmacen); +begin + if not Assigned(AAlmacen) then + raise Exception.Create ('Almacen no asignado'); + + ShowHourglassCursor; + try + if (AAlmacen.State in dsEditModes) then + AAlmacen.Cancel; + + AAlmacen.DataTable.CancelUpdates; + finally + HideHourglassCursor; + end; +end; + +destructor TAlmacenesController.Destroy; +begin + FDataModule := Nil; + inherited; +end; + +function TAlmacenesController.Duplicar(AAlmacen: IBizAlmacen): IBizAlmacen; +begin + Result := Self._Vacio; + ShowHourglassCursor; + try + DuplicarRegistros(AAlmacen.DataTable, Result.DataTable, mdrActual); + + // Hay que dejar algunos campos como si fuera un almacen nuevo + Result.Edit; + with Result do + begin + ID_EMPRESA := AppFactuGES.EmpresaActiva.ID; + USUARIO := AppFactuGES.UsuarioActivo.UserName; + end; + + Result.Post; + finally + HideHourglassCursor; + end; +end; + +function TAlmacenesController.ValidarAlmacen(AAlmacen: IBizAlmacen): Boolean; +begin + Result := False; + + if Length(AAlmacen.NOMBRE) = 0 then + raise Exception.Create('Debe indicar al menos el nombre de este almacn.'); + + // Asegurarse de valores en campos "automticos" + AAlmacen.Edit; + try + AAlmacen.USUARIO := AppFactuGES.UsuarioActivo.UserName; + + Result := True; + finally + AAlmacen.Post; + end; +end; + +procedure TAlmacenesController.ValidarObjetos; +begin +// +end; + +procedure TAlmacenesController.Ver(AAlmacen: IBizAlmacen); +var + AEditor : IEditorDBItem; +begin + AEditor := NIL; + ShowHourglassCursor; + try + RecuperarObjetos(AAlmacen); + CreateEditor('EditorAlmacen', IEditorAlmacen, AEditor); + if Assigned(AEditor) then + with (AEditor as IEditorAlmacen) do + begin + Controller := Self; //OJO ORDEN MUY IMPORTANTE + Almacen := AAlmacen; + ShowModal; + Release; + end; + finally + AEditor := NIL; + HideHourglassCursor; + end; +end; + +function TAlmacenesController.VerLista(AAlmacenes: IBizAlmacen): IBizAlmacen; +var + AEditor : IEditorListaAlmacenes; +begin + AEditor := NIL; + Result := NIL; + ShowHourglassCursor; + try + CreateEditor('EditorListaAlmacenes', IEditorListaAlmacenes, AEditor); + if Assigned(AEditor) then + with AEditor do + begin + Almacenes := AAlmacenes; + if IsPositiveResult(ShowModal) then + Result := AlmacenSeleccionado; + Release; + end; + finally + AEditor := NIL; + HideHourglassCursor; + end; +end; + +procedure TAlmacenesController.VerTodos(AAlmacenes: IBizAlmacen); +var + AEditor : IEditorAlmacenes; +begin + AEditor := NIL; + ShowHourglassCursor; + try + CreateEditor('EditorAlmacenes', IEditorAlmacenes, AEditor); + if Assigned(AEditor) then + with AEditor do + begin + Controller := Self; //OJO ORDEN MUY IMPORTANTE + Almacenes := AAlmacenes; + ShowEmbedded; + end; + finally + HideHourglassCursor; + end; +end; + +function TAlmacenesController._Vacio: IBizAlmacen; +begin + Result := Buscar(ID_NULO); +end; + +function TAlmacenesController.Eliminar(const ID: Integer): Boolean; +var + AAlmacen : IBizAlmacen; +begin + AAlmacen := Buscar(ID); + + if not Assigned(AAlmacen) then + raise Exception.Create(Format('No se ha encontrado el almacen con ID = %d', [ID])); + + Result := Eliminar(AAlmacen); + AAlmacen := NIL; +end; + +function TAlmacenesController.Eliminar(AAlmacen: IBizAlmacen): Boolean; +begin + Result := False; + + if not Assigned(AAlmacen) then + raise Exception.Create ('Almacen no asignada'); + + ShowHourglassCursor; + try + if (AAlmacen.State in dsEditModes) then + AAlmacen.Cancel; + + AAlmacen.Delete; + AAlmacen.DataTable.ApplyUpdates; + HideHourglassCursor; + Result := True; + except + on E: Exception do + begin + AAlmacen.DataTable.CancelUpdates; + HideHourglassCursor; + if (Pos('FOREIGN KEY', E.Message) > 0) then + MessageBox(0, 'No se puede borrar este almacen porque tiene artculos', 'Atencin', MB_ICONWARNING or MB_OK); + end; + end; +end; + +procedure TAlmacenesController.RecibirAviso(ASujeto: ISujeto; ADataTable: IDAStronglyTypedDataTable); +begin + inherited; +// +end; + +procedure TAlmacenesController.RecuperarObjetos(AAlmacen: IBizAlmacen); +begin +// +end; + +function TAlmacenesController.Existe(const ID: Integer): Boolean; +var + AAlmacen : IBizAlmacen; +begin + try + AAlmacen := Buscar(ID); + Result := Assigned(AAlmacen) and (AAlmacen.ID = ID); + finally + AAlmacen := NIL; + end; +end; + +procedure TAlmacenesController.FiltrarEmpresa(AAlmacen: IBizAlmacen); +var + Condicion: TDAWhereExpression; +begin + if AAlmacen.DataTable.Active then + AAlmacen.DataTable.Active := False; + + // Filtrar los Almacenes actuales por empresa + with AAlmacen.DataTable.DynamicWhere do + begin + // (ID_EMPRESA >= ID) + Condicion := NewBinaryExpression(NewField('', fld_AlmacenesID_EMPRESA), NewConstant(AppFactuGES.EmpresaActiva.ID, datInteger), dboEqual); + + if IsEmpty then + Expression := Condicion + else + Expression := NewBinaryExpression(Expression, Condicion, dboAnd); + end; +end; + +function TAlmacenesController.Guardar(AAlmacen: IBizAlmacen): Boolean; +begin + Result := False; + + if not Assigned(AAlmacen) then + raise Exception.Create ('Almacen no asignada'); + + ValidarObjetos; + + if ValidarAlmacen(AAlmacen) then + begin + ShowHourglassCursor; + try + if (AAlmacen.DataTable.State in dsEditModes) then + AAlmacen.DataTable.Post; + +// AsignarCodigo(AAlmacen); + AAlmacen.DataTable.ApplyUpdates; + + Result := True; + finally + HideHourglassCursor; + end; + end; +end; + +function TAlmacenesController.Nuevo: IBizAlmacen; +var + AAlmacen : IBizAlmacen; +begin + AAlmacen := FDataModule.NewItem; + 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..86ca2005 --- /dev/null +++ b/Source/Modulos/Almacenes/Data/Almacenes_data.dpk @@ -0,0 +1,33 @@ +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 ON} + +requires + Almacenes_model; + +contains + uDataModuleAlmacenes in 'uDataModuleAlmacenes.pas' {DataModuleAlmacenes}; + +end. diff --git a/Source/Modulos/Almacenes/Data/Almacenes_data.dproj b/Source/Modulos/Almacenes/Data/Almacenes_data.dproj new file mode 100644 index 00000000..533682e1 --- /dev/null +++ b/Source/Modulos/Almacenes/Data/Almacenes_data.dproj @@ -0,0 +1,579 @@ + + + + {c8118762-09b6-432f-ba26-058fa36c39d9} + Almacenes_data.dpk + Debug + AnyCPU + DCC32 + ..\..\..\..\Output\Debug\Cliente\Almacenes_data.bpl + + + 7.0 + False + False + 0 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + RELEASE + + + 7.0 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + + + Delphi.Personality + Package + + + False + True + False + + + True + False + False + + + True + False + 1 + 0 + 0 + 0 + False + False + False + False + False + 3082 + 1252 + + + + + 1.0.0.0 + + + + + + 1.0.0.0 + + + + Almacenes_data.dpk + + + + + + + MainSource + + + +
    DataModuleAlmacenes
    +
    +
    +
    + + diff --git a/Source/Modulos/Almacenes/Data/Almacenes_data.identcache b/Source/Modulos/Almacenes/Data/Almacenes_data.identcache new file mode 100644 index 0000000000000000000000000000000000000000..67be76108f8db3c788dfe4ba33a33b8c3605040d GIT binary patch literal 90 zcmZQ%U|{fcwu*7iPsvQrR|rW>F3v1T&4~%lFD*(=jq%M-Db2|*j&aP%O-xSBOD&FZ YNi0c>DFu;Wxm37}UO{3p&@eav0A`FFNdN!< literal 0 HcmV?d00001 diff --git a/Source/Modulos/Almacenes/Data/Almacenes_data.rc b/Source/Modulos/Almacenes/Data/Almacenes_data.rc new file mode 100644 index 00000000..153736af --- /dev/null +++ b/Source/Modulos/Almacenes/Data/Almacenes_data.rc @@ -0,0 +1,22 @@ +1 VERSIONINFO +FILEVERSION 1,0,0,0 +PRODUCTVERSION 1,0,0,0 +FILEFLAGSMASK 0x3FL +FILEFLAGS 0x00L +FILEOS 0x40004L +FILETYPE 0x1L +FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "0C0A04E4" + BEGIN + VALUE "FileVersion", "1.0.0.0\0" + VALUE "ProductVersion", "1.0.0.0\0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x0C0A, 1252 + END +END diff --git a/Source/Modulos/Almacenes/Data/Almacenes_data.res b/Source/Modulos/Almacenes/Data/Almacenes_data.res new file mode 100644 index 0000000000000000000000000000000000000000..8b251f312bcccec5485024f6fe8d80e1cdf25746 GIT binary patch literal 384 zcmZ9HOA3Ne6ox;+L5PEv(4cV`IIrjdPAV##hV&wc1g%+%X(R2Xc{`~7t6e0Ioa?#% zkMj%AQhz>WYy7LeWAUaqx~Kv?-;(-Hs4-^ATIZOBrid9+-6Ne7&88mi>kUR4lo#jxZ;#*s4zxg9yNlk=H9sqkCD2^cEXKpiTBNfgkKpXJBWWaLt(Qkv@0 w5yv*t82((Wlr2{_+FDoDHKW2QCXvc+s**ul{{$ + Params = <> + StreamingOptions = [soDisableEventsWhileStreaming] + RemoteDataAdapter = rda_Almacenes + DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch] + MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates] + LogicalName = 'Almacenes' + IndexDefs = <> + Left = 192 + Top = 80 + end + object ds_Almacenes: TDADataSource + DataSet = tbl_Almacenes.Dataset + DataTable = tbl_Almacenes + Left = 192 + Top = 16 + end +end diff --git a/Source/Modulos/Almacenes/Data/uDataModuleAlmacenes.pas b/Source/Modulos/Almacenes/Data/uDataModuleAlmacenes.pas new file mode 100644 index 00000000..9ee8d311 --- /dev/null +++ b/Source/Modulos/Almacenes/Data/uDataModuleAlmacenes.pas @@ -0,0 +1,100 @@ +unit uDataModuleAlmacenes; + +interface + +uses + SysUtils, Classes, DB, uDAClientDataModule, uDADataTable, uDABINAdapter, + uDAScriptingProvider, uDACDSDataTable, uROWinInetHttpChannel, uROTypes, + uROServiceComponent, uRORemoteService, uROClient, uROBinMessage, + uDADesigntimeCall, + uIDataModuleAlmacenes, uBizAlmacenes, uDataModuleBase, uDARemoteDataAdapter, + uDADataStreamer, uDABin2DataStreamer, uDAInterfaces, uDAMemDataTable, + uRODynamicRequest; + + +type + TDataModuleAlmacenes = class(TDataModuleBase, IDataModuleAlmacenes) + RORemoteService: TRORemoteService; + Bin2DataStreamer: TDABin2DataStreamer; + rda_Almacenes: TDARemoteDataAdapter; + tbl_Almacenes: TDAMemDataTable; + ds_Almacenes: TDADataSource; + procedure DAClientDataModuleCreate(Sender: TObject); + + protected + procedure AsignarClaseNegocio(AAlmacen: TDADataTable); virtual; + public + function GetItems : IBizAlmacen; + function GetItem(const ID : Integer) : IBizAlmacen; + function NewItem : IBizAlmacen; + end; + +implementation + +{$R *.DFM} + +uses + FactuGES_Intf, uDataModuleConexion, uDataTableUtils, cxControls, + schAlmacenesClient_Intf; + +{ TdmAlmacens } + +procedure TDataModuleAlmacenes.AsignarClaseNegocio(AAlmacen: TDADataTable); +begin + AAlmacen.BusinessRulesID := BIZ_CLIENT_ALMACEN; +end; + +procedure TDataModuleAlmacenes.DAClientDataModuleCreate(Sender: TObject); +begin + RORemoteService.Channel := dmConexion.Channel; + RORemoteService.Message := dmConexion.Message; +end; + +function TDataModuleAlmacenes.NewItem: IBizAlmacen; +begin + Result := GetItem(ID_NULO) +end; + +function TDataModuleAlmacenes.GetItem(const ID: Integer): IBizAlmacen; +var + Condicion: TDAWhereExpression; +begin + ShowHourglassCursor; + try + Result := Self.GetItems; + + with Result.DataTable.DynamicWhere do + begin + // (ID = :ID) + Condicion := NewBinaryExpression(NewField('', fld_AlmacenesID), NewConstant(ID, datInteger), dboEqual); + + if IsEmpty then + Expression := Condicion + else + Expression := NewBinaryExpression(Expression, Condicion, dboAnd); + end; + + finally + HideHourglassCursor; + end; +end; + +function TDataModuleAlmacenes.GetItems: IBizAlmacen; +var + AAlmacen : TDAMemDataTable; +begin + ShowHourglassCursor; + try + AAlmacen := CloneDataTable(tbl_Almacenes); + + AsignarClaseNegocio(AAlmacen); + + Result := (AAlmacen as IBizAlmacen); + + finally + HideHourglassCursor; + end; +end; + + +end. diff --git a/Source/Modulos/Almacenes/Model/Almacenes_model.bdsproj b/Source/Modulos/Almacenes/Model/Almacenes_model.bdsproj new file mode 100644 index 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..fa9ae514 --- /dev/null +++ b/Source/Modulos/Almacenes/Model/Almacenes_model.dpk @@ -0,0 +1,36 @@ +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 ON} + +requires + Base, + ApplicationBase; + +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.dproj b/Source/Modulos/Almacenes/Model/Almacenes_model.dproj new file mode 100644 index 00000000..a17ac897 --- /dev/null +++ b/Source/Modulos/Almacenes/Model/Almacenes_model.dproj @@ -0,0 +1,549 @@ + + + + {6f3570f5-74ad-4a33-a639-70dc8f299b3f} + Almacenes_model.dpk + Debug + AnyCPU + DCC32 + ..\..\..\..\Output\Debug\Cliente\Almacenes_model.bpl + + + 7.0 + False + False + 0 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + RELEASE + + + 7.0 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + 3 + + + Delphi.Personality + Package + +FalseTrueFalseTrueFalseFalseTrueFalse1000FalseFalseFalseFalseFalse308212521.0.0.01.0.0.0Almacenes_model.dpk + Internet Explorer Hosting Support Package + CodeGear Control Panel Applet Package + CodeGear WebSnap Components + CodeGear SOAP Components + Microsoft Office XP Sample Automation Server Wrapper Components + VCL for the Web Design Package for CodeGear RAD Studio + Microsoft Office 2000 Sample Automation Server Wrapper Components + CodeGear C++Builder Internet Explorer 5 Components Package + Borland Sample Controls Design Time Package + CodeGear C++Builder Office 2000 Servers Package + CodeGear C++Builder Office XP Servers Package + + + + + + MainSource + + + + + + diff --git a/Source/Modulos/Almacenes/Model/Almacenes_model.rc b/Source/Modulos/Almacenes/Model/Almacenes_model.rc new file mode 100644 index 00000000..153736af --- /dev/null +++ b/Source/Modulos/Almacenes/Model/Almacenes_model.rc @@ -0,0 +1,22 @@ +1 VERSIONINFO +FILEVERSION 1,0,0,0 +PRODUCTVERSION 1,0,0,0 +FILEFLAGSMASK 0x3FL +FILEFLAGS 0x00L +FILEOS 0x40004L +FILETYPE 0x1L +FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "0C0A04E4" + BEGIN + VALUE "FileVersion", "1.0.0.0\0" + VALUE "ProductVersion", "1.0.0.0\0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x0C0A, 1252 + END +END diff --git a/Source/Modulos/Almacenes/Model/Almacenes_model.res b/Source/Modulos/Almacenes/Model/Almacenes_model.res new file mode 100644 index 0000000000000000000000000000000000000000..8b251f312bcccec5485024f6fe8d80e1cdf25746 GIT binary patch literal 384 zcmZ9HOA3Ne6ox;+L5PEv(4cV`IIrjdPAV##hV&wc1g%+%X(R2Xc{`~7t6e0Ioa?#% zkMj%AQhz>WYy7LeWAUaqx~Kv?-;(-Hs4-^ATIZOBrid9+-6Ne7&88mi>kUR4lo#jxZ;#*s4zxg9yNlk=H9sqkCD2^cEXKpiTBNfgkKpXJBWWaLt(Qkv@0 w5yv*t82((Wlr2{_+FDoDHKW2QCXvc+s**ul{{$ + + + + + + + + + + + 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..1acdb927 --- /dev/null +++ b/Source/Modulos/Almacenes/Plugin/Almacenes_plugin.dpk @@ -0,0 +1,35 @@ +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 ON} + +requires + Almacenes_model, + Almacenes_controller, + Almacenes_view; + +contains + uPluginAlmacenes in 'uPluginAlmacenes.pas'; + +end. diff --git a/Source/Modulos/Almacenes/Plugin/Almacenes_plugin.dproj b/Source/Modulos/Almacenes/Plugin/Almacenes_plugin.dproj new file mode 100644 index 00000000..aa58321f --- /dev/null +++ b/Source/Modulos/Almacenes/Plugin/Almacenes_plugin.dproj @@ -0,0 +1,578 @@ + + + {93c484bb-2c1d-4afb-b75d-3ce39b2b3e1c} + Almacenes_plugin.dpk + Debug + AnyCPU + DCC32 + ..\..\..\..\Output\Debug\Cliente\Almacenes_plugin.bpl + + + 7.0 + False + False + 0 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + RELEASE + + + 7.0 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + + + Delphi.Personality + Package + + + False + True + False + + + True + False + False + + + True + False + 1 + 0 + 0 + 0 + False + False + False + False + False + 3082 + 1252 + + + + + 1.0.0.0 + + + + + + 1.0.0.0 + + + + Almacenes_plugin.dpk + + + + + + + MainSource + + + + + + + + + diff --git a/Source/Modulos/Almacenes/Plugin/Almacenes_plugin.rc b/Source/Modulos/Almacenes/Plugin/Almacenes_plugin.rc new file mode 100644 index 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 0000000000000000000000000000000000000000..36f26e234a8ac66a47e95cec6d496cf2f1442471 GIT binary patch literal 32 UcmZQzU|>)H;{X347|28c09i@|9RL6T literal 0 HcmV?d00001 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..02977aca --- /dev/null +++ b/Source/Modulos/Almacenes/Servidor/srvAlmacenes_Impl.dfm @@ -0,0 +1,288 @@ +object srvAlmacenes: TsrvAlmacenes + OldCreateOrder = True + OnCreate = DARemoteServiceCreate + RequiresSession = True + SessionManager = dmServer.SessionManager + ConnectionName = 'IBX' + ServiceSchema = schAlmacenes + ServiceDataStreamer = Bin2DataStreamer + ExportedDataTables = <> + BeforeAcquireConnection = DataAbstractServiceBeforeAcquireConnection + Height = 249 + Width = 343 + object Diagrams: TDADiagrams + Left = 150 + Top = 74 + DiagramData = ''#13#10''#13#10 + end + object DataDictionary: TDADataDictionary + Fields = < + item + Name = 'Almacenes_CALLE' + DataType = datString + Size = 255 + DisplayLabel = 'Calle' + end + item + Name = 'Almacenes_PROVINCIA' + DataType = datString + Size = 255 + DisplayLabel = 'Provincia' + end + item + Name = 'Almacenes_POBLACION' + DataType = datString + Size = 255 + DisplayLabel = 'Poblaci'#243'n' + end + item + Name = 'Almacenes_CODIGO_POSTAL' + DataType = datString + Size = 10 + DisplayLabel = 'C'#243'digo postal' + end + item + Name = 'Almacenes_TELEFONO' + DataType = datString + Size = 25 + DisplayLabel = 'Tel'#233'fono' + end + item + Name = 'Almacenes_MOVIL' + DataType = datString + Size = 25 + DisplayLabel = 'M'#243'vil' + end + item + Name = 'Almacenes_FAX' + DataType = datString + Size = 25 + DisplayLabel = 'Fax' + end + item + Name = 'Almacenes_OBSERVACIONES' + DataType = datMemo + DisplayLabel = 'Observaciones' + end + item + Name = 'Almacenes_ID' + DataType = datAutoInc + GeneratorName = 'GEN_ALMACENES_ID' + Required = True + DisplayLabel = 'ID' + end + item + Name = 'Almacenes_ID_EMPRESA' + DataType = datInteger + DisplayLabel = 'ID_EMPRESA' + end + item + Name = 'Almacenes_FECHA_ALTA' + DataType = datDateTime + DisplayLabel = 'FECHA_ALTA' + end + item + Name = 'Almacenes_PERSONA_CONTACTO' + DataType = datString + Size = 255 + DisplayLabel = 'Persona de contacto' + end + item + Name = 'Almacenes_FECHA_MODIFICACION' + DataType = datDateTime + DisplayLabel = 'FECHA_MODIFICACION' + end + item + Name = 'Almacenes_USUARIO' + DataType = datString + Size = 20 + DisplayLabel = 'USUARIO' + end + item + Name = 'Almacenes_NOMBRE' + DataType = datString + Size = 255 + DisplayLabel = 'Nombre' + end> + Left = 150 + Top = 22 + end + object schAlmacenes: TDASchema + ConnectionManager = dmServer.ConnectionManager + DataDictionary = DataDictionary + Diagrams = Diagrams + Datasets = < + item + Params = <> + Statements = < + item + Connection = 'IBX' + TargetTable = 'ALMACENES' + StatementType = stAutoSQL + ColumnMappings = < + item + DatasetField = 'ID' + TableField = 'ID' + end + item + DatasetField = 'ID_EMPRESA' + TableField = 'ID_EMPRESA' + end + item + DatasetField = 'NOMBRE' + TableField = 'NOMBRE' + end + item + DatasetField = 'CALLE' + TableField = 'CALLE' + end + item + DatasetField = 'PROVINCIA' + TableField = 'PROVINCIA' + end + item + DatasetField = 'POBLACION' + TableField = 'POBLACION' + end + item + DatasetField = 'CODIGO_POSTAL' + TableField = 'CODIGO_POSTAL' + end + item + DatasetField = 'TELEFONO' + TableField = 'TELEFONO' + end + item + DatasetField = 'MOVIL' + TableField = 'MOVIL' + end + item + DatasetField = 'FAX' + TableField = 'FAX' + end + item + DatasetField = 'PERSONA_CONTACTO' + TableField = 'PERSONA_CONTACTO' + end + item + DatasetField = 'OBSERVACIONES' + TableField = 'OBSERVACIONES' + end + item + DatasetField = 'FECHA_ALTA' + TableField = 'FECHA_ALTA' + end + item + DatasetField = 'FECHA_MODIFICACION' + TableField = 'FECHA_MODIFICACION' + end + item + DatasetField = 'USUARIO' + TableField = 'USUARIO' + end> + end> + Name = 'Almacenes' + Fields = < + item + Name = 'ID' + DataType = datAutoInc + GeneratorName = 'GEN_ALMACENES_ID' + ServerAutoRefresh = True + DictionaryEntry = 'Almacenes_ID' + InPrimaryKey = True + end + item + Name = 'ID_EMPRESA' + DataType = datInteger + DictionaryEntry = 'Almacenes_ID_EMPRESA' + end + item + Name = 'NOMBRE' + DataType = datString + Size = 255 + DictionaryEntry = 'Almacenes_NOMBRE' + end + item + Name = 'CALLE' + DataType = datString + Size = 255 + DictionaryEntry = 'Almacenes_CALLE' + end + item + Name = 'PROVINCIA' + DataType = datString + Size = 255 + DictionaryEntry = 'Almacenes_PROVINCIA' + end + item + Name = 'POBLACION' + DataType = datString + Size = 255 + DictionaryEntry = 'Almacenes_POBLACION' + end + item + Name = 'CODIGO_POSTAL' + DataType = datString + Size = 10 + DictionaryEntry = 'Almacenes_CODIGO_POSTAL' + end + item + Name = 'TELEFONO' + DataType = datString + Size = 25 + DictionaryEntry = 'Almacenes_TELEFONO' + end + item + Name = 'MOVIL' + DataType = datString + Size = 25 + DictionaryEntry = 'Almacenes_MOVIL' + end + item + Name = 'FAX' + DataType = datString + Size = 25 + DictionaryEntry = 'Almacenes_FAX' + end + item + Name = 'PERSONA_CONTACTO' + DataType = datString + Size = 255 + DictionaryEntry = 'Almacenes_PERSONA_CONTACTO' + end + item + Name = 'OBSERVACIONES' + DataType = datMemo + DictionaryEntry = 'Almacenes_OBSERVACIONES' + end + item + Name = 'FECHA_ALTA' + DataType = datDateTime + DictionaryEntry = 'Almacenes_FECHA_ALTA' + end + item + Name = 'FECHA_MODIFICACION' + DataType = datDateTime + DictionaryEntry = 'Almacenes_FECHA_MODIFICACION' + end + item + Name = 'USUARIO' + DataType = datString + Size = 20 + DictionaryEntry = 'Almacenes_USUARIO' + end> + end> + JoinDataTables = <> + UnionDataTables = <> + Commands = <> + RelationShips = <> + UpdateRules = <> + Version = 0 + Left = 48 + Top = 24 + end + object Bin2DataStreamer: TDABin2DataStreamer + Left = 48 + Top = 80 + 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..0f9b948e --- /dev/null +++ b/Source/Modulos/Almacenes/Servidor/srvAlmacenes_Impl.pas @@ -0,0 +1,77 @@ +unit srvAlmacenes_Impl; + +{----------------------------------------------------------------------------} +{ This unit was automatically generated by the RemObjects SDK after reading } +{ the RODL file associated with this project . } +{ } +{ This is where you are supposed to code the implementation of your objects. } +{----------------------------------------------------------------------------} + +interface + +uses + {vcl:} Classes, SysUtils, + {RemObjects:} uROClientIntf, uROTypes, uROServer, uROServerIntf, uROSessions, + {Ancestor Implementation:} DataAbstractService_Impl, + {Used RODLs:} DataAbstract4_Intf, + {Generated:} uDABusinessProcessor, uDABin2DataStreamer, uDADataStreamer, + uDAScriptingProvider, uDAClasses, + FactuGES_Intf, uDAInterfaces; + +type + { TsrvAlmacenes } + TsrvAlmacenes = class(TDataAbstractService, IsrvAlmacenes) + Diagrams: TDADiagrams; + Bin2DataStreamer: TDABin2DataStreamer; + schAlmacenes: TDASchema; + DataDictionary: TDADataDictionary; + procedure DARemoteServiceAfterGetDatasetData(const Dataset: IDADataset; + const IncludeSchema: Boolean; const MaxRecords: Integer); + procedure DARemoteServiceCreate(Sender: TObject); + procedure DataAbstractServiceBeforeAcquireConnection(aSender: TObject; + var aConnectionName: string); + 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 slo accede a los almacenes + de las empresas a las que tiene permiso para acceder + filtrando DataSet por ID_EMPRESA. } + FiltrarAccesoUsuario(Session, Connection, schAlmacenes, DataSet, fld_AlmacenesID_EMPRESA); + end; +end; + +procedure TsrvAlmacenes.DARemoteServiceCreate(Sender: TObject); +begin + SessionManager := dmServer.SessionManager; +end; + +procedure TsrvAlmacenes.DataAbstractServiceBeforeAcquireConnection( + aSender: TObject; var aConnectionName: string); +begin + ConnectionName := dmServer.ConnectionName; +end; + +initialization + TROClassFactory.Create('srvAlmacenes', Create_srvAlmacenes, TsrvAlmacenes_Invoker); + +finalization + +end. diff --git a/Source/Modulos/Almacenes/Views/Almacenes_view.bdsproj b/Source/Modulos/Almacenes/Views/Almacenes_view.bdsproj new file mode 100644 index 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..14fc453a --- /dev/null +++ b/Source/Modulos/Almacenes/Views/Almacenes_view.dpk @@ -0,0 +1,40 @@ +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 ON} + +requires + Almacenes_controller, + Almacenes_model, + ApplicationBase; + +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.dproj b/Source/Modulos/Almacenes/Views/Almacenes_view.dproj new file mode 100644 index 00000000..1db5c026 --- /dev/null +++ b/Source/Modulos/Almacenes/Views/Almacenes_view.dproj @@ -0,0 +1,593 @@ + + + {09ecb9ec-6de2-404d-984b-cc7d73caea9a} + Almacenes_view.dpk + Debug + AnyCPU + DCC32 + ..\..\..\..\Output\Debug\Cliente\Almacenes_view.bpl + + + 7.0 + False + False + 0 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + RELEASE + + + 7.0 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + + + Delphi.Personality + Package + + + False + True + False + + + True + False + False + + + True + False + 1 + 0 + 0 + 0 + False + False + False + False + False + 3082 + 1252 + + + + + 1.0.0.0 + + + + + + 1.0.0.0 + + + + Almacenes_view.dpk + + + + + + + MainSource + + + + + + +
    fEditorAlmacen
    +
    + +
    fEditorAlmacenes
    +
    + +
    fEditorListaAlmacenes
    +
    + +
    frViewAlmacen
    +
    + +
    frViewAlmacenes
    +
    +
    +
    + + diff --git a/Source/Modulos/Almacenes/Views/Almacenes_view.identcache b/Source/Modulos/Almacenes/Views/Almacenes_view.identcache new file mode 100644 index 0000000000000000000000000000000000000000..f523f01e51618a295497a8c267a61fb1514ac4bf GIT binary patch literal 505 zcmZQ$U|{fZwu*7iPsvQrR|rW>F3v1T&4~%lFD*(=jq%M-Db2|*j&aP%O-xSBOD&EG z%S6yhPsYQAPiN!$k;J}3pgF)uO4M#W7i82GxjU&f>t|^%%`9)9{ bq8sQ&hWk(qOf5z?(wl4}eSmS2h%+bwt}vx? literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..36f26e234a8ac66a47e95cec6d496cf2f1442471 GIT binary patch literal 32 UcmZQzU|>)H;{X347|28c09i@|9RL6T literal 0 HcmV?d00001 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..39370ccd --- /dev/null +++ b/Source/Modulos/Almacenes/Views/uEditorAlmacen.dfm @@ -0,0 +1,144 @@ +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 + ExplicitHeight = 488 + PixelsPerInch = 96 + TextHeight = 13 + inherited JvNavPanelHeader: TJvNavPanelHeader + Width = 632 + Caption = 'Almac'#233'n' + ExplicitWidth = 632 + inherited Image1: TImage + Left = 605 + Picture.Data = { + 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001C00 + 00001C0806000000720DDF940000000970485973000017120000171201679FD2 + 520000000467414D410000B18E7CFB51930000020F4944415478DAE5D4DB2B04 + 511800F06FB659D7CD2D892816B984258992242129E5924BDEE49147FF81571E + 9495072F44BB1EF69127CAA5DC436E895C4A92AC6CC48E9961EC3963C7EEEC65 + CEAC6D5F7CF575E69C33F3FD3AA773861204014219D4FF02298AF2FAD2709B5E + B8BEBF0E18195B17A4C28A20C2FA8D16E059065EACF7F0FE6203FBAB986B9619 + D0EB93A169D0E8757E7A6C089ED2BBC1643291814E4C2CF0EC13F3368FB0AE8E + 5618DF0E27038381A1200283851181C1C414C191F6CC3F611DED2DA0D150E4E0 + 402515F0A56CACAF83C8A808A069DA0DF50B8EF65242437D1F11C0B13C701C87 + DBA58555282E2B045A4B83D691AE685040578C6339585DDC8082923C0CC9D13F + 83728CE378D858D981DC826C8CC9D189DD88C0C10F86151119BAB77D08593919 + 222843270F74EAC1AFCF2FBC126F181A3FDA3F85F4CC34097245A74EE2D4814A + 18EA9F1D5F404A6A1284858779A0B3E789E42009869E2FCF6F203129016FA11C + 9DBB4A26034931D691B73777101B1F8341396AB94D53064930C6FE21818F0F56 + 88D6454907C589CE5BB3C16C36BBFF3EE5605D6DAF072616E781E7C53196FD5D + 1DEADB9E6D18D06A7F4FE73263C018AAEB17ACAAEC715FCD4F515F186ADFDFDE + 1C975C23615B9A720953042BCA3A556168FB19C68EBF47E8A1AEDA0D53044B0D + ADAA30144EF038A6C60353048BF29B55614ED017A6086E32DD1048F8C2FC82A1 + 889083DF93D867F65E51168D0000000049454E44AE426082} + ExplicitLeft = 607 + end + end + inherited TBXDock: TTBXDock + Width = 632 + ExplicitWidth = 632 + inherited tbxMain: TTBXToolbar + ExplicitWidth = 330 + inherited TBXItem2: TTBXItem + Visible = False + end + inherited TBXItem5: TTBXItem + Visible = False + end + inherited TBXItem23: TTBXItem + Visible = False + end + inherited TBXItem3: TTBXItem + Visible = False + end + end + inherited tbxMenu: TTBXToolbar + DockPos = 0 + ExplicitWidth = 632 + inherited TBXSubmenuItem4: TTBXSubmenuItem + inherited TBXItem8: TTBXItem + Visible = False + end + inherited TBXSeparatorItem5: TTBXSeparatorItem + Visible = False + end + inherited TBXItem10: TTBXItem + Visible = False + end + inherited TBXItem21: TTBXItem + Visible = False + end + inherited TBXItem22: TTBXItem + Visible = False + end + inherited TBXItem9: TTBXItem + Visible = False + end + end + inherited TBXSubmenuItem1: TTBXSubmenuItem + inherited TBXItem32: TTBXItem + Visible = False + end + inherited TBXItem31: TTBXItem + Visible = False + end + inherited TBXSeparatorItem13: TTBXSeparatorItem + Visible = False + end + end + end + end + inherited pgPaginas: TPageControl + Width = 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..338325fc --- /dev/null +++ b/Source/Modulos/Almacenes/Views/uEditorAlmacen.pas @@ -0,0 +1,204 @@ +unit uEditorAlmacen; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uEditorDBItem, ToolWin, ComCtrls, JvExControls, JvComponent, + uViewAlmacen, uBizAlmacenes, JvNavigationPane, ActnList, + uEditorBase, StdActns, TB2Dock, TB2Toolbar, TBX, ImgList, PngImageList, + TB2Item, uEditorItem, DB, uDADataTable, uEditorDBBase, JvFormAutoSize, + uDAScriptingProvider, uDACDSDataTable, StdCtrls, pngimage, ExtCtrls, + TBXDkPanels, JvButton, AppEvnts, uCustomView, uViewBase, + JvAppStorage, JvAppRegistryStorage, JvFormPlacement, JvComponentBase, + + uViewAlmacenes, uIEditorAlmacen, uAlmacenesController, JvExComCtrls, + JvStatusBar, dxLayoutLookAndFeels, uDAInterfaces; + +type + TfEditorAlmacen = class(TfEditorDBItem, IEditorAlmacen) + dxLayoutLookAndFeelList1: TdxLayoutLookAndFeelList; + dxLayoutOfficeLookAndFeel1: TdxLayoutOfficeLookAndFeel; + procedure FormShow(Sender: TObject); + procedure dsDataTableDataChange(Sender: TObject; Field: TField); + procedure CustomEditorClose(Sender: TObject; var Action: TCloseAction); + protected + FController : IAlmacenesController; + FAlmacen: IBizAlmacen; + FViewAlmacen : IViewAlmacen; + + function GetController : IAlmacenesController; + procedure SetController (const Value : IAlmacenesController); virtual; + function GetAlmacen: IBizAlmacen; virtual; + procedure SetAlmacen(const Value: IBizAlmacen); virtual; + function GetViewAlmacen: IViewAlmacen; + procedure SetViewAlmacen(const Value: IViewAlmacen); + property ViewAlmacen: IViewAlmacen read GetViewAlmacen write SetViewAlmacen; + + procedure GuardarInterno; override; + procedure EliminarInterno; override; + + procedure PonerTitulos(const ATitulo: string = ''); override; + + //Si queremos crear otra vista para el editor heredado solo tendriamos que + //sobreescribir este metodo + procedure AsignarVista; virtual; + + public + property Almacen: IBizAlmacen read GetAlmacen write SetAlmacen; + constructor Create(AOwner: TComponent); override; + destructor Destroy; override; + end; + +implementation + +{$R *.dfm} + +uses + uCustomEditor, uDataModuleAlmacenes, uDataModuleBase; + +function ShowEditorAlmacen (ABizObject : TDADataTableRules): TModalResult; +var + AEditor: TfEditorAlmacen; +begin + AEditor := TfEditorAlmacen.Create(Application); + try + AEditor.Almacen := (ABizObject as IBizAlmacen); + Result := AEditor.ShowModal; + finally + AEditor.Release; + end; +end; + +{ +******************************* TfEditorAlmacen ******************************* +} +function TfEditorAlmacen.GetAlmacen: IBizAlmacen; +begin + Result := FAlmacen; +end; + +function TfEditorAlmacen.GetController: IAlmacenesController; +begin + Result := FController; +end; + +function TfEditorAlmacen.GetViewAlmacen: IViewAlmacen; +begin + Result := FViewAlmacen; +end; + +procedure TfEditorAlmacen.GuardarInterno; +begin + inherited; + FController.Guardar(FAlmacen); + Modified := False; +end; + +procedure TfEditorAlmacen.PonerTitulos(const ATitulo: string); +var + FTitulo : String; +begin + if Assigned(Almacen) then + begin + if Almacen.EsNuevo then + FTitulo := 'Nuevo almacn' + else + FTitulo := 'Almacn' + ' - ' + Almacen.NOMBRE; + end; + + inherited PonerTitulos(FTitulo); +end; + +procedure TfEditorAlmacen.SetAlmacen(const Value: IBizAlmacen); +begin + FAlmacen := Value; + dsDataTable.DataTable := FAlmacen.DataTable; + + if Assigned(FViewAlmacen) and Assigned(Almacen) then + FViewAlmacen.Almacen := Almacen; +end; + +procedure TfEditorAlmacen.SetController(const Value: IAlmacenesController); +begin + FController := Value; +end; + +procedure TfEditorAlmacen.SetViewAlmacen(const Value: IViewAlmacen); +begin + FViewAlmacen := Value; + + if Assigned(FViewAlmacen) and Assigned(Almacen) then + FViewAlmacen.Almacen := Almacen; +end; + +procedure TfEditorAlmacen.FormShow(Sender: TObject); +begin + inherited; + + if not Assigned(FViewAlmacen) then + raise Exception.Create('No hay ninguna vista asignada'); + + if not Assigned(Almacen) then + raise Exception.Create('No hay ningn almacn asignado'); + + Almacen.DataTable.Active := True; +end; + +destructor TfEditorAlmacen.Destroy; +begin + // Utilizar mejor OnClose; + inherited; +end; + +procedure TfEditorAlmacen.AsignarVista; +var + AViewAlmacen: TfrViewAlmacen; +begin + AViewAlmacen := TfrViewAlmacen.create(Self); + with AViewAlmacen do + begin + Parent := pagGeneral; + Align := alClient; + dxLayoutControlAlmacen.LookAndFeel := dxLayoutOfficeLookAndFeel1; + end; + ViewAlmacen := AViewAlmacen; +end; + +constructor TfEditorAlmacen.Create(AOwner: TComponent); +begin + inherited; + pgPaginas.ActivePageIndex := 0; + AsignarVista; +end; + +procedure TfEditorAlmacen.CustomEditorClose(Sender: TObject; + var Action: TCloseAction); +begin + inherited; + dsDataTable.DataTable := NIL; + FViewAlmacen := NIL; + FAlmacen := NIL; +end; + +procedure TfEditorAlmacen.dsDataTableDataChange(Sender: TObject; + Field: TField); +begin + inherited; + if Assigned(FAlmacen) and (not (FAlmacen.DataTable.Fetching) or + not (FAlmacen.DataTable.Opening) or not (FAlmacen.DataTable.Closing)) then + PonerTitulos; +end; + +procedure TfEditorAlmacen.EliminarInterno; +begin + if (Application.MessageBox('Desea borrar este almacen?', 'Atencin', MB_YESNO) = IDYES) then + begin + inherited; + if not FController.Eliminar(FAlmacen) then + actRefrescar.Execute; + end; +end; + +end. + diff --git a/Source/Modulos/Almacenes/Views/uEditorAlmacenes.dfm b/Source/Modulos/Almacenes/Views/uEditorAlmacenes.dfm new file mode 100644 index 00000000..fc7db98c --- /dev/null +++ b/Source/Modulos/Almacenes/Views/uEditorAlmacenes.dfm @@ -0,0 +1,1508 @@ +inherited fEditorAlmacenes: TfEditorAlmacenes + Left = 489 + Top = 325 + Caption = 'Lista de almacenes' + ExplicitHeight = 471 + PixelsPerInch = 96 + TextHeight = 13 + inherited JvNavPanelHeader: TJvNavPanelHeader + Caption = 'Lista de almacenes' + inherited Image1: TImage + Picture.Data = { + 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001800 + 0000180806000000E0773DF80000000970485973000017120000171201679FD2 + 520000000467414D410000B18E7CFB5193000001D44944415478DAB5D4BD4B02 + 7118C0F1E737D552D0105843616F838519166551345443A32D2E0DD15863FF41 + 6B2141353544144A2004114144431695841445D00BE950E7905618742F2257CF + D9D9EFCE3BEF4EF001797E9CFAFD1C8A125114A19C43648010A2F98205AF5D7C + 611296C3FE33961802189F5909C13B1383EFF427B05FB94738B40976BB0DC6E7 + 56FEAE7D289EF7EF3E422010280E941ADF589E8754A3AF3820C7F10DA9D798A5 + 785D8D0D6EAB87F5013A8E81D46BDC521C471750C731F0CEC44DC55B1B9A41E0 + 0510848C36B038D15410C7F3C1FAB261BCABC3998BF31969472B070A81D97E52 + D20F62D0E381CCEF5DF3129043CE494F21B03445C4B1D169C360369B95223C27 + C0D17E181CCE36E963A19163C1551A40C731747274019DDDED529C460EBF1CD6 + 01751CCF91D328F40DBA81653905B2976CB10668C5715F5DDEC2D088473AD3C8 + 0ED3681ED08BE3BEBBB997001C1AD98ED79B038AC5F14E9FEE9FF3008D6C3DD4 + 1A03EA38FBCDE501FE6F332F090520236BD755C5013A22A8367D3DF9962C0056 + 2315100C06FFFF21D480D938EE743AAD00E4389E3581E1A149D371FC0E388ECD + 03745C17F0F4FA4CC77164401DD705DC2EAFE9B80CE03FA73AAE0B9C733EB03A + 5A714DA05C5376E00756B52DFEBD3C9AE50000000049454E44AE426082} + end + end + inherited TBXDock: TTBXDock + inherited tbxMain: TTBXToolbar + ExplicitWidth = 474 + end + inherited tbxFiltro: TTBXToolbar + ExplicitWidth = 269 + inherited tbxEditFiltro: TTBXEditItem + EditOptions = [tboUseEditWhenVertical] + end + inherited TBXItem37: TTBXItem + Visible = False + end + end + inherited TBXTMain2: TTBXToolbar + Left = 275 + DockPos = 275 + ExplicitLeft = 275 + end + end + inline frViewAlmacenes1: TfrViewAlmacenes [3] + Left = 0 + Top = 102 + Width = 543 + Height = 323 + Align = alClient + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + TabOrder = 3 + ReadOnly = False + ExplicitTop = 102 + ExplicitWidth = 543 + ExplicitHeight = 323 + inherited cxGrid: TcxGrid + Width = 543 + Height = 195 + ExplicitWidth = 543 + ExplicitHeight = 195 + inherited cxGridView: TcxGridDBTableView + DataController.Summary.FooterSummaryItems = < + item + Format = '0 almacenes' + Kind = skCount + Column = frViewAlmacenes1.cxGridViewNOMBRE + end> + inherited cxGridViewID: TcxGridDBColumn + IsCaptionAssigned = True + end + end + end + inherited frViewFiltroBase1: TfrViewFiltroBase + Width = 543 + ExplicitWidth = 543 + inherited TBXDockablePanel1: TTBXDockablePanel + ExplicitWidth = 543 + inherited dxLayoutControl1: TdxLayoutControl + Width = 543 + ExplicitWidth = 543 + inherited txtFiltroTodo: TcxTextEdit + ExplicitWidth = 273 + Width = 273 + end + inherited edtFechaIniFiltro: TcxDateEdit + ExplicitWidth = 121 + Width = 121 + end + inherited edtFechaFinFiltro: TcxDateEdit + Left = 337 + ExplicitLeft = 337 + ExplicitWidth = 121 + Width = 121 + end + end + inherited TBXAlignmentPanel1: TTBXAlignmentPanel + Width = 543 + ExplicitWidth = 543 + inherited tbxBotones: TTBXToolbar + Width = 533 + ExplicitWidth = 533 + end + end + end + end + inherited pnlAgrupaciones: TTBXDockablePanel + Top = 297 + ExplicitTop = 297 + ExplicitWidth = 543 + inherited TBXAlignmentPanel1: TTBXAlignmentPanel + Width = 543 + ExplicitWidth = 543 + inherited TBXToolbar1: TTBXToolbar + Width = 533 + ExplicitWidth = 533 + end + end + end + inherited dxComponentPrinter: TdxComponentPrinter + inherited dxComponentPrinterLink: TdxGridReportLink + ReportDocument.CreationDate = 39213.829884791670000000 + BuiltInReportLink = True + end + end + 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 0000000000000000000000000000000000000000..24ed174e48ffaf7929fa0e70aea987a2e25e2a73 GIT binary patch literal 4378 zcmb_f%WfMt6wTUz|KTnQSaMYv$3 z1ZX~}ztD5%!Qn`<;sOnfXviVYeV=>hpTEB3S~<$cv2w-^l7)z*mf6wn&hC!VPTCnZ zc#&r^+ub4hN$J?!XFWQXStjNZPt(Wjty2k}-U+LOc6d5YM1~tZI<+FbQxR_&?X2Nr zC&n(a9;1zvNX#5tl>$SN$sXMplRyq%SsXjdSI(B>hX&wmi8rayQo91?YH}Lj8cZXrQm6F%%9^E$CFElFcr4AmR)5EJ3Tv{rPd8IkR9F0iS;gcW?-+m9=6j6B$JaL61^BSL_`e zo~)!6w#ps$wMPjeS~}W?qgwjlRaua*rDaxBIl{`EEvHVnJR7qA;fG0`!evIg#}vs- zbTeB~ie6L18QZDfc;#qS|1JX%&1@^fULFFpy@eX$gQ+!lPJgoIa}R0Kq;3Uy()fVz-k)u@D@5Y}FXKw%Tt{3WbSj;{vI)M? zcp9ASL`G*0C7$H6b*oe#9trRpO`cMamdd(ZBx_!R%;0t?^$Do%QGm7T^NU#AtLdS_(C@t)_Pl628OhwN*I?B`JsgtZ{n&0C6s>WBKHG896o|vq%eo!tC z3FV4PN3!ni!D?>}kq1eob&s?;ykw<_ThXU`tDK}T%#CYGs2~=bQ_Z6WCp~PlSK&sS zL^h8=Msy5)oa_uP?_n{j!E<_OTWMJ={jCu{n#aI=K7xvZ1oW&$niT9+^n$Q)RTNeh zK9hrIcJHm$?%OO!H#23QYWGJ^VWVNiPA4LA`RRE29=uvGZ1hmH5-NX7_AGduS>uQf z4uHX}LwMnZ`X9f$ru}|ATYO^GKkn}AZ~eD{$hMx}-{0KT~|jf#CRbdwC|f|9}QbAB^|z|8=IHJQCrtP zHO`zUn>i?1C!lA+b=Pj=UGLg!ndOONc})*^HhfcVn`;$7n*=r20!iDFWQ_y^+%PxL z$QtbaJ83)K#T?k$XWK-z2>e-M21p#WBI$on zPyoe}L_K-a541<$6L_TNl>T^;TA7I=6Gi{x@_cwb24GNz)Kabz@LUgv>>swT4TnF*&eG& zUUp_(VSMqM@g-<-~JjWrcGoAN%Vb+W~Fr4SJq8n9TvqSUH+57tof+Pjq8hq4P!n{${ z=hx5r$Gsly4V=`G`uc~);(Yl2m+|!CvWux~GQwlikbJ%bm0Flf=>J#33i>^lm|RFE z6p73*4`@TF!N&nwC8nc9eSiXqAcJ8{6e6j3!|uW5s*U{<79IQ)-JYVem4ZY&g9 zsjNm@$~7R1Pd-C}K{JVt8;dePRSOS;T01ZZYS7OS)Ne$p4pJ1%eCq|VWeW5WTXkUF lfw^8*zPeuWa8+XRDSXhizskDnOoEuys^YiL1ILRO{{mpyr3U~2 literal 0 HcmV?d00001 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..bf4d6e84 --- /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, uDAInterfaces; + +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..a5e01319 --- /dev/null +++ b/Source/Modulos/Almacenes/Views/uViewAlmacenes.dfm @@ -0,0 +1,121 @@ +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 TBXDockablePanel1: TTBXDockablePanel + inherited dxLayoutControl1: TdxLayoutControl + inherited txtFiltroTodo: TcxTextEdit + ExplicitWidth = 273 + Width = 273 + end + inherited edtFechaIniFiltro: TcxDateEdit + ExplicitWidth = 121 + Width = 121 + end + inherited edtFechaFinFiltro: TcxDateEdit + ExplicitWidth = 121 + Width = 121 + end + end + end + end + inherited 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..02f5ec31 --- /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, uDAInterfaces; + +type + IViewAlmacenes = interface(IViewGrid) + ['{E6798DF7-011C-40EC-B368-160C48697445}'] + function GetAlmacenes: IBizAlmacen; + procedure SetAlmacenes(const Value: IBizAlmacen); + property Almacenes: IBizAlmacen read GetAlmacenes write SetAlmacenes; + end; + + TfrViewAlmacenes = class(TfrViewGrid, IViewAlmacenes) + cxGridViewPERSONACONTACTO: TcxGridDBColumn; + cxGridViewNOMBRE: TcxGridDBColumn; + cxGridViewTELEFONO: TcxGridDBColumn; + 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/Articulos_Group.groupproj b/Source/Modulos/Articulos/Articulos_Group.groupproj new file mode 100644 index 00000000..3f402ca4 --- /dev/null +++ b/Source/Modulos/Articulos/Articulos_Group.groupproj @@ -0,0 +1,124 @@ + + + {6fa7160e-0b4c-4f7c-9c55-08938cd225c4} + + + + + + + + + + + + + + + + Default.Personality + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Source/Modulos/Articulos/Controller/Articulos_controller.bdsproj b/Source/Modulos/Articulos/Controller/Articulos_controller.bdsproj new file mode 100644 index 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..68180bc1 --- /dev/null +++ b/Source/Modulos/Articulos/Controller/Articulos_controller.dpk @@ -0,0 +1,41 @@ +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 ON} + +requires + GUIBase, + Articulos_model, + Contactos_model, + Contactos_controller, + Articulos_data; + +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.dproj b/Source/Modulos/Articulos/Controller/Articulos_controller.dproj new file mode 100644 index 00000000..62f4616e --- /dev/null +++ b/Source/Modulos/Articulos/Controller/Articulos_controller.dproj @@ -0,0 +1,594 @@ + + + {ff8e8509-28f4-4aa9-88e5-13f60fe956a6} + Articulos_controller.dpk + Debug + AnyCPU + DCC32 + ..\..\..\..\Output\Debug\Cliente\Articulos_controller.bpl + + + 7.0 + False + False + False + True + 0 + True + True + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + RELEASE + + + 7.0 + False + True + True + True + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + DEBUG + + + Delphi.Personality + Package + + + False + True + False + + + True + False + False + + + True + False + 1 + 0 + 0 + 0 + False + False + False + False + False + 3082 + 1252 + + + + + 1.0.0.0 + + + + + + 1.0.0.0 + + + + Articulos_controller.dpk + + + + + + + MainSource + + + + + + + + + + + + + + + + diff --git a/Source/Modulos/Articulos/Controller/Articulos_controller.identcache b/Source/Modulos/Articulos/Controller/Articulos_controller.identcache new file mode 100644 index 0000000000000000000000000000000000000000..5398ede4de1d9731803f6498bf9bf67d438b5a3d GIT binary patch literal 483 zcmZQ&U|F3v1T&4~%lFD*(=jq%M-Db2|*j&Uq1$xH^bob&Ta zit=-EQj223GE>WAN)H;{X347|28c09i@|9RL6T literal 0 HcmV?d00001 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..ba2961a4 --- /dev/null +++ b/Source/Modulos/Articulos/Controller/uArticulosController.pas @@ -0,0 +1,644 @@ +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; + function CreateEditor(const AName : String; const IID: TGUID; out Intf): Boolean; + function _Vacio : IBizArticulo; + + procedure FiltrarEmpresa(AArticulo: IBizArticulo); + function ValidarArticulo(AArticulo: IBizArticulo): Boolean; virtual; + + procedure RecuperarObjetos(AArticulo: IBizArticulo); virtual; + procedure AsignarDataModule; virtual; + + public + property ProveedoresController: IProveedoresController read GetProveedoresController; + + constructor Create; override; + destructor Destroy; override; + + function Eliminar(const ID : Integer): Boolean; overload; + function Eliminar(AArticulo : IBizArticulo): Boolean; overload; + function Guardar(AArticulo : IBizArticulo): Boolean; + procedure DescartarCambios(AArticulo : IBizArticulo); virtual; + function Existe(const ID: Integer) : Boolean; virtual; + procedure Anadir(AArticulo : IBizArticulo); virtual; + function Buscar(const ID: Integer; AClienteID: Integer = -1): IBizArticulo; virtual; + function BuscarTodos: IBizArticulo; overload; + function 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, uFactuGES_App, + 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; + +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; +var + Condicion: TDAWhereExpression; +begin + ShowHourglassCursor; + try + Result := BuscarTodos; + + // Filtrar los articulos inventariables + with Result.DataTable.DynamicWhere do + begin + // (ID_EMPRESA >= ID) + Condicion := NewBinaryExpression(NewField('', fld_ArticulosINVENTARIABLE), NewConstant(1, datInteger), dboEqual); + + if IsEmpty then + Expression := Condicion + else + Expression := NewBinaryExpression(Expression, Condicion, dboAnd); + end; + + finally + HideHourglassCursor; + end; +end; + +function TArticulosController.BuscarReferencia(const Ref: String; AClienteID: Integer = -1): IBizArticulo; +var + Condicion: TDAWhereExpression; +begin + ShowHourglassCursor; + try + if (AClienteID = -1) then + Result := BuscarTodos + else + Result := BuscarTodos(AClienteID); + + // Filtrar por referencia + with Result.DataTable.DynamicWhere do + begin + // (REFERENCIA >= Ref) + Condicion := NewBinaryExpression(NewField('', fld_ArticulosREFERENCIA), NewConstant(UpperCase(Ref), datString), dboEqual); + + if IsEmpty then + Expression := Condicion + else + Expression := NewBinaryExpression(Expression, Condicion, dboAnd); + end; + + finally + HideHourglassCursor; + end; +end; + +function TArticulosController.BuscarReferenciaProveedor(const Ref: String; AClienteID: Integer = -1): IBizArticulo; +var + Condicion: TDAWhereExpression; +begin + ShowHourglassCursor; + try + if (AClienteID = -1) then + Result := BuscarTodos + else + Result := BuscarTodos(AClienteID); + + // Filtrar por referencia + with Result.DataTable.DynamicWhere do + begin + // (REFERENCIA >= Ref) + Condicion := NewBinaryExpression(NewField('', fld_ArticulosREFERENCIA_PROV), NewConstant(UpperCase(Ref), datString), dboEqual); + + if IsEmpty then + Expression := Condicion + else + Expression := NewBinaryExpression(Expression, Condicion, dboAnd); + end; + + finally + HideHourglassCursor; + end; +end; + +function TArticulosController.BuscarTodos(ACliente: Integer): IBizArticulo; +begin + Result := FDataModule.GetItems(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; +var + Condicion: TDAWhereExpression; +begin + if Assigned(AProveedor) then + begin + ShowHourglassCursor; + try + Result := BuscarTodos; + + // Filtrar los articulos del proveedor + with Result.DataTable.DynamicWhere do + begin + // (ID_PROVEEDOR = ID) + Condicion := NewBinaryExpression(NewField('', fld_ArticulosID_PROVEEDOR), NewConstant(AProveedor.ID, datInteger), dboEqual); + + if IsEmpty then + Expression := Condicion + else + Expression := NewBinaryExpression(Expression, Condicion, dboAnd); + end; + finally + HideHourglassCursor; + end; + end; +end; + +function TArticulosController.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 + inherited; + 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 artculo nuevo + Result.Edit; + with Result do + begin + ID_EMPRESA := AppFactuGES.EmpresaActiva.ID; + USUARIO := AppFactuGES.UsuarioActivo.UserName; + end; + + Result.Post; + finally + HideHourglassCursor; + end; +end; + +function TArticulosController.ValidarArticulo(AArticulo: IBizArticulo): Boolean; +begin + Result := False; + + if not Assigned(AArticulo) then + raise Exception.Create ('Artculo no asignado'); + + if (AArticulo.DataTable.State in dsEditModes) then + AArticulo.DataTable.Post; + + if Length(AArticulo.DESCRIPCION) = 0 then + raise Exception.Create('Debe indicar al menos la descripcin de este artculo.'); + + // Asegurarse de valores en campos "automticos" + AArticulo.Edit; + try + AArticulo.USUARIO := AppFactuGES.UsuarioActivo.UserName; + + Result := True; + finally + AArticulo.Post; + end; +end; + +procedure TArticulosController.Ver(AArticulo: IBizArticulo); +var + AEditor : IEditorArticulo; +begin + AEditor := NIL; + ShowHourglassCursor; + try + RecuperarObjetos(AArticulo); + + CreateEditor('EditorArticulo', IEditorArticulo, AEditor); + if Assigned(AEditor) then + with (AEditor as IEditorArticulo) do + begin + Controller := Self; //OJO ORDEN MUY IMPORTANTE + Articulo := AArticulo; + ShowModal; + Release; + end; + finally + AEditor := NIL; + HideHourglassCursor; + 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); + if Assigned(AEditor) then + with (AEditor as IEditorArticulos) do + begin + Controller := Self; //OJO ORDEN MUY IMPORTANTE + Articulos := AArticulos; + ShowEmbedded; + end; + finally + AEditor := Nil; + HideHourglassCursor; + end; +end; + +function TArticulosController._Vacio: IBizArticulo; +begin + Result := Buscar(ID_NULO); +end; + +function TArticulosController.Eliminar(const ID: Integer): Boolean; +var + AArticulo : IBizArticulo; +begin + AArticulo := Buscar(ID); + + if not Assigned(AArticulo) then + raise Exception.Create(Format('No se ha encontrado el artculo con ID = %d', [ID])); + + Result := Eliminar(AArticulo); + AArticulo := NIL; +end; + +function TArticulosController.ElegirArticulos(AArticulos: IBizArticulo; AMensaje: String; AMultiSelect: Boolean): IBizArticulo; +var + AEditor : IEditorElegirArticulos; +begin + Result := NIL; + ShowHourglassCursor; + try + CreateEditor('EditorElegirArticulos', IEditorElegirArticulos, AEditor); + if Assigned(AEditor) then + with AEditor do + begin + Controller := Self; + Articulos := AArticulos; + MultiSelect := AMultiSelect; + Mensaje := AMensaje; + if IsPositiveResult(ShowModal) then + Result := ArticulosSeleccionados; + Release; + end; + finally + AEditor := NIL; + HideHourglassCursor; + end; +end; + +procedure TArticulosController.ElegirProveedor(AArticulo: IBizArticulo); +var + AProveedor : IBizContacto; +begin + inherited; + AProveedor := (FProveedoresController.ElegirContacto(FProveedoresController.BuscarTodos, '', False) as IBizProveedor); + if Assigned(AProveedor) then + begin + if not AArticulo.DataTable.Editing then + AArticulo.Edit; + AArticulo.ID_PROVEEDOR := AProveedor.ID; + AArticulo.NOMBRE_PROVEEDOR := AProveedor.NOMBRE; + end; + AProveedor := Nil; +end; + +function TArticulosController.Eliminar(AArticulo: IBizArticulo): Boolean; +begin + Result := False; + + if not Assigned(AArticulo) then + raise Exception.Create ('Articulo no asignada'); + + ShowHourglassCursor; + try + if (AArticulo.State in dsEditModes) then + AArticulo.Cancel; + + AArticulo.Delete; + AArticulo.DataTable.ApplyUpdates; + HideHourglassCursor; + Result := True; + except + on E: Exception do + begin + AArticulo.DataTable.CancelUpdates; + HideHourglassCursor; + if (Pos('FOREIGN KEY', E.Message) > 0) then + MessageBox(0, 'No se puede borrar este artculo porque tiene artculos', 'Atencin', MB_ICONWARNING or MB_OK); + end; + end; +end; + +procedure TArticulosController.RecibirAviso(ASujeto: ISujeto; ADataTable: IDAStronglyTypedDataTable); +begin + inherited; +// +end; + +procedure TArticulosController.RecuperarObjetos(AArticulo: IBizArticulo); +begin + // +end; + +function TArticulosController.Existe(const ID: Integer): Boolean; +var + AArticulo : IBizArticulo; +begin + try + AArticulo := Buscar(ID); + Result := Assigned(AArticulo) and (AArticulo.ID = ID); + finally + AArticulo := NIL; + end; +end; + +function TArticulosController.ExtraerSeleccionados(AArticulos: IBizArticulo): IBizArticulo; +var + ASeleccionados : IBizArticulo; +begin + ASeleccionados := (Self.Buscar(ID_NULO) as IBizArticulo); + CopyDataTableDA3(AArticulos.DataTable, ASeleccionados.DataTable, True); + Result := ASeleccionados; +end; + +procedure TArticulosController.FiltrarEmpresa(AArticulo: IBizArticulo); +var + Condicion: TDAWhereExpression; +begin + if AArticulo.DataTable.Active then + AArticulo.DataTable.Active := False; + + // Filtrar los Articulos actuales por empresa + with AArticulo.DataTable.DynamicWhere do + begin + // (ID_EMPRESA >= ID) + Condicion := NewBinaryExpression(NewField('', fld_ArticulosID_EMPRESA), NewConstant(AppFactuGES.EmpresaActiva.ID, datInteger), dboEqual); + + if IsEmpty then + Expression := Condicion + else + Expression := NewBinaryExpression(Expression, Condicion, dboAnd); + end; +end; + +function TArticulosController.GetProveedoresController: IProveedoresController; +begin + Result := FProveedoresController; +end; + +function TArticulosController.Guardar(AArticulo: IBizArticulo): Boolean; +var + NuevoID: Integer; +begin + Result := False; + + if ValidarArticulo(AArticulo) then + begin + ShowHourglassCursor; + try + 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..98cecb7a --- /dev/null +++ b/Source/Modulos/Articulos/Controller/uControllerDetallesArticulos.pas @@ -0,0 +1,334 @@ +unit uControllerDetallesArticulos; + +interface + +uses Classes, Variants, uDACDSDataTable, uDADataTable, uControllerDetallesBase, + uBizArticulos, uArticulosController; + +const + CAMPO_REFERENCIA = 'REFERENCIA'; //Campo ficticio + CAMPO_REFERENCIA_PROVEEDOR = 'REFERENCIA_PROVEEDOR'; //Campo ficticio + +type + TEnumReferencia = (tCliente, tProveedor); + + IControllerDetallesArticulos = interface(IControllerDetallesBase) + ['{6E156796-DB1F-4727-BBFB-FBAEF2E5C098}'] + procedure AnadirArticulos(ADetalles: IDAStronglyTypedDataTable); + 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 (TControllerDetallesBase, IControllerDetallesArticulos) + protected + FArticulosController: IArticulosController; + + procedure EliminarArticulosProveedor(ADetalles: IDAStronglyTypedDataTable); + procedure AsignarDatos(ADetalles: IDAStronglyTypedDataTable; IDCabecera: Integer); virtual; + procedure RellenarOtros(ADetalles: IDAStronglyTypedDataTable; AArticulos: IBizArticulo); virtual; + procedure RellenarImportes(ADetalles: IDAStronglyTypedDataTable; AArticulos: IBizArticulo); virtual; + procedure RellenarGenerales(ADetalles: IDAStronglyTypedDataTable; AArticulos: IBizArticulo); virtual; + procedure RellenarDetalle(ADetalles: IDAStronglyTypedDataTable; AArticulos: IBizArticulo); virtual; + procedure Add(ADetalles: IDAStronglyTypedDataTable; AArticulos: IBizArticulo); overload; + + procedure AsignarController; virtual; + + public + 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 DB, Dialogs, cxControls, SysUtils, uDAInterfaces, uCalculosUtils, 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 +{ + Aade el artculo con la referencia pasada por parametro a los detalles pasados por parametro + En el caso de asignar un AClienteID el articulo debe contener el descuento para ese cliente +} + + Result := False; + BeginUpdate(ADetalles); + ShowHourglassCursor; + try + AArticulo := FArticulosController.Buscar(IDArticulo, AClienteID); + + if Assigned(AArticulo) then + begin + AArticulo.DataTable.Active := True; + if (AArticulo.RecordCount > 0) then + begin + RellenarDetalle(ADetalles, AArticulo); + 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 artculos que desea aadir', 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); + //Aadimos linea en blanco + Add(ADetalles, TIPO_DETALLE_CONCEPTO); + Edit; + FieldByName(CAMPO_CONCEPTO).AsString := ''; + Post; +// First; + end; + end; +end; + +procedure TControllerDetallesArticulos.AsignarController; +begin + FArticulosController := TArticulosController.Create; +end; + +procedure TControllerDetallesArticulos.AsignarDatos(ADetalles: IDAStronglyTypedDataTable; IDCabecera: Integer); +begin +// +end; + +procedure TControllerDetallesArticulos.CambiarSignoDetalles(ADetalles: IDAStronglyTypedDataTable); +begin +//Cambia de signo los detalles de la pasados por parmetro + if Assigned(ADetalles) then + begin + try + BeginUpdate(ADetalles); + + if not ADetalles.DataTable.Active then + ADetalles.DataTable.Active := True; + + with ADetalles.DataTable do + begin + 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 +{ + Aade el artculo con la referencia pasada por parametro a los detalles pasados por parametro + En el caso de asignar un AClienteID el articulo debe contener el descuento para ese cliente +} + Result := False; + BeginUpdate(ADetalles); + ShowHourglassCursor; + try + case TipoReferencia of + tCliente: AArticulo := FArticulosController.BuscarReferencia(Referencia, AClienteID); + tProveedor: AArticulo := FArticulosController.BuscarReferenciaProveedor(Referencia, AClienteID) + end; + + if Assigned(AArticulo) then + begin + AArticulo.DataTable.Active := True; + if (AArticulo.RecordCount > 0) then + begin + RellenarDetalle(ADetalles, AArticulo); + Result := True; + end; + end; + finally + EndUpdate(ADetalles); + HideHourglassCursor; + end; +end; + +procedure TControllerDetallesArticulos.RellenarOtros(ADetalles: IDAStronglyTypedDataTable; AArticulos: IBizArticulo); +begin +// Procedimiento que en los hijos se sobreescribir para rellenar otros campos segn necesidades +end; + +procedure TControllerDetallesArticulos.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); + RellenarOtros(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 segn necesidades +end; + +end. diff --git a/Source/Modulos/Articulos/Data/Articulos_data.bdsproj b/Source/Modulos/Articulos/Data/Articulos_data.bdsproj new file mode 100644 index 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..41ff3507 --- /dev/null +++ b/Source/Modulos/Articulos/Data/Articulos_data.dpk @@ -0,0 +1,33 @@ +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 ON} + +requires + Articulos_model; + +contains + uDataModuleArticulos in 'uDataModuleArticulos.pas' {DataModuleArticulos}; + +end. diff --git a/Source/Modulos/Articulos/Data/Articulos_data.dproj b/Source/Modulos/Articulos/Data/Articulos_data.dproj new file mode 100644 index 00000000..449c44e3 --- /dev/null +++ b/Source/Modulos/Articulos/Data/Articulos_data.dproj @@ -0,0 +1,588 @@ + + + {568778b1-e82d-41e9-b198-b7c58140e81b} + Articulos_data.dpk + Debug + AnyCPU + DCC32 + ..\..\..\..\Output\Debug\Cliente\Articulos_data.bpl + + + 7.0 + False + False + False + True + 0 + True + True + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + RELEASE + + + 7.0 + False + True + True + True + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + DEBUG + + + Delphi.Personality + Package + + + False + True + False + + + True + False + False + + + True + False + 1 + 0 + 0 + 0 + False + False + False + False + False + 3082 + 1252 + + + + + 1.0.0.0 + + + + + + 1.0.0.0 + + + + Articulos_data.dpk + + + + + + + MainSource + + + +
    DataModuleArticulos
    +
    +
    + +
    + + diff --git a/Source/Modulos/Articulos/Data/Articulos_data.identcache b/Source/Modulos/Articulos/Data/Articulos_data.identcache new file mode 100644 index 0000000000000000000000000000000000000000..87c68c5ff69552cf0c5696020f24ef4b47dfa2e9 GIT binary patch literal 90 zcmZQ%U|{fcwu*7iPsvQrR|rW>F3v1T&4~%lFD*(=jq%M-Db2|*j&Uq1$xH^bToOwX UV@g3JSS}SVqgRkv3^WW50CIdBqW}N^ literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..36f26e234a8ac66a47e95cec6d496cf2f1442471 GIT binary patch literal 32 UcmZQzU|>)H;{X347|28c09i@|9RL6T literal 0 HcmV?d00001 diff --git a/Source/Modulos/Articulos/Data/uDataModuleArticulos.dfm b/Source/Modulos/Articulos/Data/uDataModuleArticulos.dfm new file mode 100644 index 00000000..edf41a27 --- /dev/null +++ b/Source/Modulos/Articulos/Data/uDataModuleArticulos.dfm @@ -0,0 +1,267 @@ +inherited DataModuleArticulos: TDataModuleArticulos + OnCreate = DAClientDataModuleCreate + Height = 219 + Width = 518 + object RORemoteService: TRORemoteService + Message = dmConexion.ROMessage + Channel = dmConexion.ROChannel + ServiceName = 'srvArticulos' + Left = 48 + Top = 24 + end + object Bin2DataStreamer: TDABin2DataStreamer + Left = 48 + Top = 84 + end + object rda_Articulos: TDARemoteDataAdapter + GetSchemaCall.RemoteService = RORemoteService + GetDataCall.RemoteService = RORemoteService + UpdateDataCall.RemoteService = RORemoteService + GetScriptsCall.RemoteService = RORemoteService + RemoteService = RORemoteService + DataStreamer = Bin2DataStreamer + Left = 51 + Top = 151 + end + object tbl_Articulos: TDAMemDataTable + RemoteUpdatesOptions = [] + Fields = < + item + Name = 'ID' + DataType = datAutoInc + GeneratorName = 'GEN_ARTICULOS_ID' + Required = True + ServerAutoRefresh = True + DictionaryEntry = 'Articulos_ID' + InPrimaryKey = True + end + item + Name = 'ID_EMPRESA' + DataType = datInteger + DictionaryEntry = 'Articulos_ID_EMPRESA' + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + DisplayLabel = 'Referencia' + DictionaryEntry = 'Articulos_REFERENCIA' + end + item + Name = 'DESCRIPCION' + DataType = datString + Size = 255 + DisplayLabel = 'Descripci'#243'n' + DictionaryEntry = 'Articulos_DESCRIPCION' + end + item + Name = 'FAMILIA' + DataType = datString + Size = 255 + DisplayLabel = 'Familia' + DictionaryEntry = 'Articulos_FAMILIA' + end + item + Name = 'IMAGEN' + DataType = datBlob + DisplayLabel = 'Foto' + DictionaryEntry = 'Articulos_IMAGEN' + end + item + Name = 'COMISIONABLE' + DataType = datInteger + DisplayLabel = 'Comisionable' + DictionaryEntry = 'Articulos_COMISIONABLE' + end + item + Name = 'FECHA_ALTA' + DataType = datDateTime + DictionaryEntry = 'Articulos_FECHA_ALTA' + end + item + Name = 'FECHA_MODIFICACION' + DataType = datDateTime + DictionaryEntry = 'Articulos_FECHA_MODIFICACION' + end + item + Name = 'USUARIO' + DataType = datString + Size = 20 + DictionaryEntry = 'Articulos_USUARIO' + end + item + Name = 'REFERENCIA_PROV' + DataType = datString + Size = 255 + DisplayLabel = 'Ref. proveedor' + DictionaryEntry = 'Articulos_REFERENCIA_PROVEEDOR' + end + item + Name = 'PRECIO_COSTE' + DataType = datCurrency + DisplayLabel = 'Importe' + DictionaryEntry = 'Articulos_PRECIO_COSTE' + end + item + Name = 'PRECIO_PORTE' + DataType = datCurrency + DisplayLabel = 'Porte' + DictionaryEntry = 'Articulos_PRECIO_PORTE' + end + item + Name = 'DESCUENTO' + DataType = datFloat + DisplayLabel = 'Descuento' + DictionaryEntry = 'Articulos_DESCUENTO' + end + item + Name = 'PRECIO_NETO' + DataType = datCurrency + DictionaryEntry = 'Articulos_PRECIO_NETO' + end + item + Name = 'INVENTARIABLE' + DataType = datSmallInt + end + item + Name = 'ID_PROVEEDOR' + DataType = datInteger + DictionaryEntry = 'Articulos_ID_PROVEEDOR' + end + item + Name = 'NOMBRE_PROVEEDOR' + DataType = datString + Size = 255 + DisplayLabel = 'Nombre' + DictionaryEntry = 'Articulos_NOMBRE_PROVEEDOR' + end + item + Name = 'ELIMINADO' + DataType = datSmallInt + DisplayLabel = 'Eliminado' + end> + Params = <> + StreamingOptions = [soDisableEventsWhileStreaming] + RemoteDataAdapter = rda_Articulos + DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch] + MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates] + LogicalName = 'Articulos' + IndexDefs = <> + Left = 232 + Top = 112 + end + object ds_Articulos: TDADataSource + DataSet = tbl_Articulos.Dataset + DataTable = tbl_Articulos + Left = 232 + Top = 32 + end + object tbl_ArticulosParaCliente: TDAMemDataTable + RemoteUpdatesOptions = [] + Fields = < + item + Name = 'ID' + DataType = datInteger + InPrimaryKey = True + end + item + Name = 'ID_EMPRESA' + DataType = datInteger + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + end + item + Name = 'DESCRIPCION' + DataType = datString + Size = 255 + end + item + Name = 'FAMILIA' + DataType = datString + Size = 255 + end + item + Name = 'IMAGEN' + DataType = datBlob + end + item + Name = 'COMISIONABLE' + DataType = datSmallInt + end + item + Name = 'FECHA_ALTA' + DataType = datDateTime + end + item + Name = 'FECHA_MODIFICACION' + DataType = datDateTime + end + item + Name = 'USUARIO' + DataType = datString + Size = 30 + end + item + Name = 'REFERENCIA_PROV' + DataType = datString + Size = 255 + end + item + Name = 'PRECIO_COSTE' + DataType = datCurrency + end + item + Name = 'PRECIO_PORTE' + DataType = datCurrency + end + item + Name = 'DESCUENTO' + DataType = datFloat + end + item + Name = 'PRECIO_NETO' + DataType = datCurrency + end + item + Name = 'INVENTARIABLE' + DataType = datSmallInt + end + item + Name = 'ID_PROVEEDOR' + DataType = datInteger + end + item + Name = 'NOMBRE_PROVEEDOR' + DataType = datString + Size = 255 + end + item + Name = 'ELIMINADO' + DataType = datSmallInt + DisplayLabel = 'Eliminado' + end> + Params = < + item + Name = 'ID_CLIENTE' + Value = '' + ParamType = daptInput + end> + StreamingOptions = [soDisableEventsWhileStreaming] + RemoteDataAdapter = rda_Articulos + DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch] + MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates] + LogicalName = 'ArticulosParaCliente' + IndexDefs = <> + Left = 400 + Top = 112 + end + object ds_ArticulosParaCliente: TDADataSource + DataSet = tbl_ArticulosParaCliente.Dataset + DataTable = tbl_ArticulosParaCliente + Left = 400 + Top = 32 + end +end diff --git a/Source/Modulos/Articulos/Data/uDataModuleArticulos.pas b/Source/Modulos/Articulos/Data/uDataModuleArticulos.pas new file mode 100644 index 00000000..b7ac930d --- /dev/null +++ b/Source/Modulos/Articulos/Data/uDataModuleArticulos.pas @@ -0,0 +1,125 @@ +unit uDataModuleArticulos; + +interface + +uses + SysUtils, Classes, DB, uDADataTable, uDABINAdapter, + uDAScriptingProvider, uROWinInetHttpChannel, uROTypes, + uRORemoteService, uROClient, uROBinMessage, + uDADesigntimeCall, + uIDataModuleArticulos, uBizArticulos, uDataModuleBase, uDARemoteDataAdapter, + uDADataStreamer, uDABin2DataStreamer, uDAInterfaces, uDAMemDataTable; + +type + TDataModuleArticulos = class(TDataModuleBase, IDataModuleArticulos) + RORemoteService: TRORemoteService; + Bin2DataStreamer: TDABin2DataStreamer; + rda_Articulos: TDARemoteDataAdapter; + tbl_Articulos: TDAMemDataTable; + ds_Articulos: TDADataSource; + tbl_ArticulosParaCliente: TDAMemDataTable; + ds_ArticulosParaCliente: TDADataSource; + procedure DAClientDataModuleCreate(Sender: TObject); + + protected + procedure AsignarClaseNegocio(AArticulo: TDADataTable); virtual; + + public + function GetItems : IBizArticulo; overload; + function GetItems (IDCliente: Integer) : IBizArticulo; overload; + function GetItem(const ID : Integer; AClienteID: Integer = -1) : IBizArticulo; + function NewItem : IBizArticulo; + end; + +implementation + +{$R *.DFM} + +uses + FactuGES_Intf, uDataModuleConexion, uDataTableUtils, cxControls, + schArticulosClient_Intf; + +{ TdmArticulos } + +procedure TDataModuleArticulos.AsignarClaseNegocio(AArticulo: TDADataTable); +begin + AArticulo.BusinessRulesID := BIZ_CLIENT_ARTICULO; +end; + +procedure TDataModuleArticulos.DAClientDataModuleCreate(Sender: TObject); +begin + RORemoteService.Channel := dmConexion.Channel; + RORemoteService.Message := dmConexion.Message; +end; + +function TDataModuleArticulos.NewItem: IBizArticulo; +begin + Result := GetItem(ID_NULO) +end; + +function TDataModuleArticulos.GetItem(const ID: Integer; AClienteID: Integer = -1): IBizArticulo; +var + Condicion: TDAWhereExpression; +begin + ShowHourglassCursor; + try + if (AClienteID = -1) then + Result := Self.GetItems + else + Result := Self.GetItems(AClienteID); + + with Result.DataTable.DynamicWhere do + begin + // (ID = :ID) + Condicion := NewBinaryExpression(NewField('', fld_ArticulosID), NewConstant(ID, datInteger), dboEqual); + + if IsEmpty then + Expression := Condicion + else + Expression := NewBinaryExpression(Expression, Condicion, dboAnd); + end; + + finally + HideHourglassCursor; + end; +end; + +function TDataModuleArticulos.GetItems(IDCliente: Integer): IBizArticulo; +var + AArticulo : TDAMemDataTable; +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 : TDAMemDataTable; +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..6526bfc6 --- /dev/null +++ b/Source/Modulos/Articulos/Model/Articulos_model.dpk @@ -0,0 +1,37 @@ +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 ON} + +requires + Base, + ApplicationBase; + +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.dproj b/Source/Modulos/Articulos/Model/Articulos_model.dproj new file mode 100644 index 00000000..de17dbaa --- /dev/null +++ b/Source/Modulos/Articulos/Model/Articulos_model.dproj @@ -0,0 +1,547 @@ + + + {e4f81792-84cf-4900-a6ab-18f6dd2c7ada} + Articulos_model.dpk + Debug + AnyCPU + DCC32 + ..\..\..\..\Output\Debug\Cliente\Articulos_model.bpl + + + 7.0 + False + False + False + True + 0 + True + True + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + RELEASE + + + 7.0 + False + True + True + True + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + + + Delphi.Personality + Package + +FalseTrueFalseTrueFalseFalseTrueFalse1000FalseFalseFalseFalseFalse308212521.0.0.01.0.0.0Articulos_model.dpk + + + + + MainSource + + + + + + + + + + diff --git a/Source/Modulos/Articulos/Model/Articulos_model.identcache b/Source/Modulos/Articulos/Model/Articulos_model.identcache new file mode 100644 index 0000000000000000000000000000000000000000..3339859e786cfc55c4b724d82da2c64cbdef87f6 GIT binary patch literal 357 zcmZQ!U|?`|wu*7iPsvQrR|rW>F3v1T&4~%lFD*(=jq%M-Db2|*j&Uq1$xH^bfFeNY zQm4!+xR_o+VlmJdIPfLiyyD~xxN*)onW=dt@t%1lY3L>gkZ!U|Vo735sV9g6dnOfb S54zzLIy*SEs4TSztFr;;@pf7O literal 0 HcmV?d00001 diff --git a/Source/Modulos/Articulos/Model/Articulos_model.rc b/Source/Modulos/Articulos/Model/Articulos_model.rc new file mode 100644 index 00000000..153736af --- /dev/null +++ b/Source/Modulos/Articulos/Model/Articulos_model.rc @@ -0,0 +1,22 @@ +1 VERSIONINFO +FILEVERSION 1,0,0,0 +PRODUCTVERSION 1,0,0,0 +FILEFLAGSMASK 0x3FL +FILEFLAGS 0x00L +FILEOS 0x40004L +FILETYPE 0x1L +FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "0C0A04E4" + BEGIN + VALUE "FileVersion", "1.0.0.0\0" + VALUE "ProductVersion", "1.0.0.0\0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x0C0A, 1252 + END +END diff --git a/Source/Modulos/Articulos/Model/Articulos_model.res b/Source/Modulos/Articulos/Model/Articulos_model.res new file mode 100644 index 0000000000000000000000000000000000000000..8b251f312bcccec5485024f6fe8d80e1cdf25746 GIT binary patch literal 384 zcmZ9HOA3Ne6ox;+L5PEv(4cV`IIrjdPAV##hV&wc1g%+%X(R2Xc{`~7t6e0Ioa?#% zkMj%AQhz>WYy7LeWAUaqx~Kv?-;(-Hs4-^ATIZOBrid9+-6Ne7&88mi>kUR4lo#jxZ;#*s4zxg9yNlk=H9sqkCD2^cEXKpiTBNfgkKpXJBWWaLt(Qkv@0 w5yv*t82((Wlr2{_+FDoDHKW2QCXvc+s**ul{{$6)VPIzX1?On@V2mfeRHg~3QSDFIqCNXnfP^uLd! zK1?}rl07a!07<^QJonsl4_RbXLNTHb9+xyJST2U$PPaodiTsWvs9y?!qT2x|#$H%| z7d`ztCXy`3EyEs&@#0j+eLZ;`TzI34v(Z`KKR^G_ z|LxahoCJCA^GsOts)mD8q=X@e*RmX?A~F<=wCH3BUjEtNtpetXG+o zn5Bj=fJK|Cgb^W}MMG25#CgF`_0?upy_x1Es(HH4hEfGps(xZxGBRmJGzwA7wbwo= zbe2WsQ#5Ng#Vw;rx#^y+Frx`2{0m_@M^RU0nm2?k z<+31b2=G7ao+Y$nN;HDvMIv(!K1U+aAx$q|W)dJpA*;1x{h03#$OcdpZ;;C!ys^Ka zFr;uq4JG}0fPQc)@mLtp^@ibExrca8J+-ErD571Z>;F zccOYK<}+VUf|h*sVCLnqJug3X_PyHdS#sYxskeAf70O3YHuW8K{dzP38gOoqQhD%c zLXoATo%Ranj-{(w*&@95u7c>)o#rH+@O-Tu#c6z{^pkz&n_S4DDx#*&R!zH@*Cf>K zRCOGdairyN`56{1?YK{5s?pZSEJ?P2)%vvde__WcoEjo+rt2LV?{4L<=F7J6rqDTx zf=OM86OQ3`7}$WHPxtJ(@TkrK-EmKuK9aTa#>F+RbG|Fz4PtLTYkm#uXWhEJe46Eo zS$lm&>|q)eRp+UxuQK#tLYTl(ERyfa@!YHCRq@4Si;KL(>omyAd;k`0&2Mf@9}xa1 zDOC1GGs0N4aTBDOt~&@Y;fP+Ast-3r#6Xh>BTiSa79zL^KHr#Dxw zQ9FnmtT*aJA)dMrY>69=4ZSMT4`-{J*?bY`1q1u5Ka1_J;~@5z>Q*y*5*P*cM}Kx5 z#^EgTMpKjX%;XHF;dK~!V{7#?UV8J;e6WEoML{^t4ba?O3gp@~RFYcwM;Lnj0JeCt z2THT1Yq~ZayT~`Y#jJ~Mi72tMVFZbmY$OqS){b=m9d(2D4 zSDOBFXrtd;UtR9FA$*_W&@_+m_tyJeg;H^3S^gVG?5Vrg3{iD;r-adm>JZdpcdstk h$eTjUjm~-IdfjUsa(b$|9W#+lHX|O@#%|}Ae*skz-s=DW literal 0 HcmV?d00001 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..325d708c --- /dev/null +++ b/Source/Modulos/Articulos/Plugin/Articulos_plugin.dpk @@ -0,0 +1,35 @@ +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 ON} + +requires + PluginSDK_D10R, + Articulos_controller, + Articulos_view; + +contains + uPluginArticulos in 'uPluginArticulos.pas'; + +end. diff --git a/Source/Modulos/Articulos/Plugin/Articulos_plugin.dproj b/Source/Modulos/Articulos/Plugin/Articulos_plugin.dproj new file mode 100644 index 00000000..088d1bf5 --- /dev/null +++ b/Source/Modulos/Articulos/Plugin/Articulos_plugin.dproj @@ -0,0 +1,580 @@ + + + {e4a70e78-dcab-415c-9e35-1956bd41ae1a} + Articulos_plugin.dpk + Debug + AnyCPU + DCC32 + ..\..\..\..\Output\Debug\Cliente\Articulos_plugin.bpl + + + 7.0 + False + False + 0 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + RELEASE + + + 7.0 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + DEBUG + + + Delphi.Personality + Package + + + False + True + False + + + True + False + False + + + True + False + 1 + 0 + 0 + 0 + False + False + False + False + False + 3082 + 1252 + + + + + 1.0.0.0 + + + + + + 1.0.0.0 + + + + Articulos_plugin.dpk + + + + + + + MainSource + + + + + + + + + + diff --git a/Source/Modulos/Articulos/Plugin/Articulos_plugin.rc b/Source/Modulos/Articulos/Plugin/Articulos_plugin.rc new file mode 100644 index 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 0000000000000000000000000000000000000000..36f26e234a8ac66a47e95cec6d496cf2f1442471 GIT binary patch literal 32 UcmZQzU|>)H;{X347|28c09i@|9RL6T literal 0 HcmV?d00001 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..b2df3907 --- /dev/null +++ b/Source/Modulos/Articulos/Servidor/srvArticulos_Impl.dfm @@ -0,0 +1,758 @@ +object srvArticulos: TsrvArticulos + OldCreateOrder = True + OnCreate = DARemoteServiceCreate + RequiresSession = True + SessionManager = dmServer.SessionManager + ConnectionName = 'IBX' + ServiceSchema = schArticulos + ServiceDataStreamer = Bin2DataStreamer + ExportedDataTables = <> + BeforeAcquireConnection = DataAbstractServiceBeforeAcquireConnection + Height = 229 + Width = 349 + 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 + DisplayLabel = 'Referencia' + end + item + Name = 'Articulos_DESCRIPCION' + DataType = datString + Size = 255 + DisplayLabel = 'Descripci'#243'n' + end + item + Name = 'Articulos_FAMILIA' + DataType = datString + Size = 255 + DisplayLabel = 'Familia' + end + item + Name = 'Articulos_IMAGEN' + DataType = datBlob + DisplayLabel = 'Foto' + end + item + Name = 'Articulos_COMISIONABLE' + DataType = datInteger + DisplayLabel = 'Comisionable' + end + item + Name = 'Articulos_FECHA_ALTA' + DataType = datDateTime + DisplayLabel = 'FECHA_ALTA' + end + item + Name = 'Articulos_FECHA_MODIFICACION' + DataType = datDateTime + DisplayLabel = 'FECHA_MODIFICACION' + end + item + Name = 'Articulos_USUARIO' + DataType = datString + Size = 20 + DisplayLabel = 'USUARIO' + end + item + Name = 'Articulos_REFERENCIA_PROVEEDOR' + DataType = datString + Size = 255 + DisplayLabel = 'Ref. proveedor' + end + item + Name = 'Articulos_PRECIO_COSTE' + DataType = datCurrency + DisplayLabel = 'Importe' + end + item + Name = 'Articulos_PRECIO_PORTE' + DataType = datCurrency + DisplayLabel = 'Porte' + end + item + Name = 'Articulos_DESCUENTO' + DataType = datFloat + DisplayLabel = 'Descuento' + end + item + Name = 'Articulos_ID' + DataType = datAutoInc + GeneratorName = 'GEN_ARTICULOS_ID' + Required = True + DisplayLabel = 'ID' + ServerAutoRefresh = True + end + item + Name = 'Articulos_ID_EMPRESA' + DataType = datInteger + DisplayLabel = 'ID_EMPRESA' + end + item + Name = 'Articulos_PRECIO_NETO' + DataType = datCurrency + DisplayLabel = 'PRECIO_NETO' + end + item + Name = 'Articulos_ID_PROVEEDOR' + DataType = datInteger + DisplayLabel = 'ID_PROVEEDOR' + ServerAutoRefresh = True + end + item + Name = 'Articulos_NOMBRE_PROVEEDOR' + DataType = datString + Size = 255 + DisplayLabel = 'Nombre' + ServerAutoRefresh = True + end> + Left = 150 + Top = 22 + end + object schArticulos: TDASchema + ConnectionManager = dmServer.ConnectionManager + DataDictionary = DataDictionary + Diagrams = Diagrams + Datasets = < + item + Params = <> + Statements = < + item + Connection = 'IBX' + TargetTable = 'V_ARTICULOS' + StatementType = stAutoSQL + ColumnMappings = < + item + DatasetField = 'ID' + TableField = 'ID' + end + item + DatasetField = 'ID_EMPRESA' + TableField = 'ID_EMPRESA' + end + item + DatasetField = 'REFERENCIA' + TableField = 'REFERENCIA' + end + item + DatasetField = 'DESCRIPCION' + TableField = 'DESCRIPCION' + end + item + DatasetField = '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 + item + DatasetField = 'ELIMINADO' + TableField = 'ELIMINADO' + end> + end> + Name = 'Articulos' + Fields = < + item + Name = 'ID' + DataType = datAutoInc + GeneratorName = 'GEN_ARTICULOS_ID' + ServerAutoRefresh = True + DictionaryEntry = 'Articulos_ID' + InPrimaryKey = True + end + item + Name = 'ID_EMPRESA' + DataType = datInteger + DictionaryEntry = 'Articulos_ID_EMPRESA' + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + DictionaryEntry = 'Articulos_REFERENCIA' + end + item + Name = 'DESCRIPCION' + DataType = datString + Size = 255 + DictionaryEntry = 'Articulos_DESCRIPCION' + end + item + Name = 'FAMILIA' + DataType = datString + Size = 255 + DictionaryEntry = 'Articulos_FAMILIA' + end + item + Name = 'IMAGEN' + DataType = datBlob + DictionaryEntry = 'Articulos_IMAGEN' + end + item + Name = 'COMISIONABLE' + DataType = datInteger + DictionaryEntry = 'Articulos_COMISIONABLE' + end + item + Name = 'FECHA_ALTA' + DataType = datDateTime + DictionaryEntry = 'Articulos_FECHA_ALTA' + end + item + Name = 'FECHA_MODIFICACION' + DataType = datDateTime + DictionaryEntry = 'Articulos_FECHA_MODIFICACION' + end + item + Name = 'USUARIO' + DataType = datString + Size = 20 + DictionaryEntry = 'Articulos_USUARIO' + end + item + Name = 'REFERENCIA_PROV' + DataType = datString + Size = 255 + DictionaryEntry = 'Articulos_REFERENCIA_PROVEEDOR' + end + item + Name = 'PRECIO_COSTE' + DataType = datCurrency + DictionaryEntry = 'Articulos_PRECIO_COSTE' + end + item + Name = 'PRECIO_PORTE' + DataType = datCurrency + DictionaryEntry = 'Articulos_PRECIO_PORTE' + end + item + Name = 'DESCUENTO' + DataType = datFloat + DictionaryEntry = 'Articulos_DESCUENTO' + end + item + Name = 'PRECIO_NETO' + DataType = datCurrency + DictionaryEntry = 'Articulos_PRECIO_NETO' + end + item + Name = 'INVENTARIABLE' + DataType = datSmallInt + end + item + Name = 'ID_PROVEEDOR' + DataType = datInteger + DictionaryEntry = 'Articulos_ID_PROVEEDOR' + end + item + Name = 'NOMBRE_PROVEEDOR' + DataType = datString + Size = 255 + DictionaryEntry = 'Articulos_NOMBRE_PROVEEDOR' + end + item + Name = 'ELIMINADO' + DataType = datSmallInt + DisplayLabel = 'Eliminado' + end> + end + item + Params = < + item + Name = 'ID_CLIENTE' + Value = '' + ParamType = daptInput + end> + Statements = < + item + Connection = 'IBX' + TargetTable = 'ARTICULOS' + SQL = + 'SELECT V_ARTICULOS.ID, V_ARTICULOS.ID_EMPRESA, V_ARTICULOS.REFER' + + 'ENCIA, V_ARTICULOS.DESCRIPCION,'#10' V_ARTICULOS.FAMILIA, V_AR' + + 'TICULOS.IMAGEN, V_ARTICULOS.COMISIONABLE, V_ARTICULOS.FECHA_ALTA' + + ','#10' V_ARTICULOS.FECHA_MODIFICACION, V_ARTICULOS.USUARIO,'#10' ' + + ' V_ARTICULOS.REFERENCIA_PROV,'#10' V_ARTICULOS.PRECIO_COST' + + 'E,'#10' V_ARTICULOS.PRECIO_PORTE,'#10' CLIENTES_DTOS_PROVEED' + + 'ORES.DESCUENTO,'#10' V_ARTICULOS.PRECIO_NETO,'#10' V_ARTICUL' + + 'OS.INVENTARIABLE,'#10' V_ARTICULOS.ID_PROVEEDOR,'#10' V_ARTI' + + 'CULOS.NOMBRE_PROVEEDOR,'#10' V_ARTICULOS.ELIMINADO'#10'FROM V_ARTI' + + 'CULOS'#10'LEFT OUTER JOIN CLIENTES_DTOS_PROVEEDORES'#10'ON ((CLIENTES_DT' + + 'OS_PROVEEDORES.ID_PROVEEDOR = V_ARTICULOS.ID_PROVEEDOR)'#10'AND (CLI' + + 'ENTES_DTOS_PROVEEDORES.ID_CLIENTE = :ID_CLIENTE))'#10'where {where}'#10 + StatementType = stSQL + ColumnMappings = < + item + DatasetField = 'ID' + TableField = 'ID' + end + item + DatasetField = 'ID_EMPRESA' + TableField = 'ID_EMPRESA' + end + item + DatasetField = 'REFERENCIA' + TableField = 'REFERENCIA' + end + item + DatasetField = '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 = 'INVENTARIABLE' + TableField = 'INVENTARIABLE' + end + item + DatasetField = 'ID_PROVEEDOR' + TableField = 'ID_PROVEEDOR' + end + item + DatasetField = 'NOMBRE_PROVEEDOR' + TableField = '' + SQLOrigin = 'NOMBRE_PROVEEDOR' + end + item + DatasetField = 'ELIMINADO' + TableField = 'ELIMINADO' + end> + end> + Name = 'ArticulosParaCliente' + Fields = < + item + Name = 'ID' + DataType = datInteger + InPrimaryKey = True + end + item + Name = 'ID_EMPRESA' + DataType = datInteger + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + end + item + Name = 'DESCRIPCION' + DataType = datString + Size = 255 + end + item + Name = 'FAMILIA' + DataType = datString + Size = 255 + end + item + Name = 'IMAGEN' + DataType = datBlob + end + item + Name = 'COMISIONABLE' + DataType = datSmallInt + end + item + Name = 'FECHA_ALTA' + DataType = datDateTime + end + item + Name = 'FECHA_MODIFICACION' + DataType = datDateTime + end + item + Name = 'USUARIO' + DataType = datString + Size = 30 + end + item + Name = 'REFERENCIA_PROV' + DataType = datString + Size = 255 + end + item + Name = 'PRECIO_COSTE' + DataType = datCurrency + end + item + Name = 'PRECIO_PORTE' + DataType = datCurrency + end + item + Name = 'DESCUENTO' + DataType = datFloat + end + item + Name = 'PRECIO_NETO' + DataType = datCurrency + end + item + Name = 'INVENTARIABLE' + DataType = datSmallInt + end + item + Name = 'ID_PROVEEDOR' + DataType = datInteger + end + item + Name = 'NOMBRE_PROVEEDOR' + DataType = datString + Size = 255 + end + item + Name = 'ELIMINADO' + DataType = datSmallInt + DisplayLabel = 'Eliminado' + end> + end> + JoinDataTables = <> + UnionDataTables = <> + Commands = < + item + Params = < + item + Name = 'ID' + DataType = datAutoInc + GeneratorName = 'GEN_ARTICULOS_ID' + Value = '' + end + item + Name = 'ID_EMPRESA' + Value = '' + end + item + Name = 'REFERENCIA' + Value = '' + end + item + Name = 'DESCRIPCION' + Value = '' + end + item + Name = 'FAMILIA' + Value = '' + end + item + Name = 'IMAGEN' + Value = '' + end + item + Name = 'COMISIONABLE' + Value = '' + end + item + Name = 'FECHA_ALTA' + Value = '' + end + item + Name = 'FECHA_MODIFICACION' + Value = '' + end + item + Name = 'USUARIO' + Value = '' + end + item + Name = 'PRECIO_COSTE' + Value = '' + end + item + Name = 'PRECIO_PORTE' + Value = '' + end + item + Name = 'DESCUENTO' + Value = '' + end + item + Name = 'ID_PROVEEDOR' + Value = '' + end + item + Name = 'PRECIO_NETO' + Value = '' + end + item + Name = 'REFERENCIA_PROV' + Value = '' + end + item + Name = 'INVENTARIABLE' + Value = '' + end + item + Name = 'ELIMINADO' + Value = '' + 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' + + ', ELIMINADO)'#10' VALUES'#10' (:ID, :ID_EMPRESA, :REFERENCIA, :DESCR' + + 'IPCION, :FAMILIA, '#10' :IMAGEN, :COMISIONABLE, :FECHA_ALTA, :FE' + + 'CHA_MODIFICACION, '#10' :USUARIO, :PRECIO_COSTE, :PRECIO_PORTE, ' + + ':DESCUENTO, '#10' :ID_PROVEEDOR, :PRECIO_NETO, :REFERENCIA_PROV,' + + #10' :INVENTARIABLE, :ELIMINADO)' + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Insert_Articulos' + end + item + Params = < + item + Name = 'OLD_ID' + DataType = datInteger + Value = '' + ParamType = daptInput + end> + Statements = < + item + Connection = 'IBX' + TargetTable = 'ARTICULOS' + SQL = 'UPDATE ARTICULOS'#10'SET ELIMINADO = 1'#10'WHERE (ID = :OLD_ID)' + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Delete_Articulos' + end + item + Params = < + item + Name = 'ID_EMPRESA' + Value = '' + end + item + Name = 'REFERENCIA' + Value = '' + end + item + Name = 'DESCRIPCION' + Value = '' + end + item + Name = 'FAMILIA' + Value = '' + end + item + Name = 'IMAGEN' + Value = '' + end + item + Name = 'COMISIONABLE' + Value = '' + end + item + Name = 'FECHA_ALTA' + Value = '' + end + item + Name = 'FECHA_MODIFICACION' + Value = '' + end + item + Name = 'USUARIO' + Value = '' + end + item + Name = 'PRECIO_COSTE' + Value = '' + end + item + Name = 'PRECIO_PORTE' + Value = '' + end + item + Name = 'DESCUENTO' + Value = '' + end + item + Name = 'ID_PROVEEDOR' + Value = '' + end + item + Name = 'PRECIO_NETO' + Value = '' + end + item + Name = 'INVENTARIABLE' + Value = '' + end + item + Name = 'REFERENCIA_PROV' + Value = '' + end + item + Name = 'ELIMINADO' + Value = '' + end + item + Name = 'OLD_ID' + Value = '' + end> + Statements = < + item + Connection = 'IBX' + TargetTable = 'ARTICULOS' + SQL = + 'UPDATE ARTICULOS'#10' SET '#10' ID_EMPRESA = :ID_EMPRESA,'#10' REFERE' + + 'NCIA = :REFERENCIA, '#10' DESCRIPCION = :DESCRIPCION, '#10' FAMILI' + + 'A = :FAMILIA, '#10' IMAGEN = :IMAGEN, '#10' COMISIONABLE = :COMISI' + + 'ONABLE, '#10' FECHA_ALTA = :FECHA_ALTA, '#10' FECHA_MODIFICACION =' + + ' :FECHA_MODIFICACION, '#10' USUARIO = :USUARIO, '#10' PRECIO_COSTE' + + ' = :PRECIO_COSTE, '#10' PRECIO_PORTE = :PRECIO_PORTE, '#10' DESCUE' + + 'NTO = :DESCUENTO, '#10' ID_PROVEEDOR = :ID_PROVEEDOR, '#10' PRECIO' + + '_NETO = :PRECIO_NETO,'#10' INVENTARIABLE = :INVENTARIABLE,'#10' RE' + + 'FERENCIA_PROV = :REFERENCIA_PROV,'#10' ELIMINADO = :ELIMINADO'#10' W' + + 'HERE'#10' (ID = :OLD_ID)'#10 + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Update_Articulos' + end> + RelationShips = <> + UpdateRules = < + item + Name = 'Insert Articulos' + DoUpdate = False + DoDelete = False + DatasetName = 'Articulos' + FailureBehavior = fbRaiseException + end + item + Name = 'Update Articulos' + DoInsert = False + DoDelete = False + DatasetName = 'Articulos' + FailureBehavior = fbRaiseException + end + item + Name = 'Delete Articulos' + DoUpdate = False + DoInsert = False + DatasetName = 'Articulos' + FailureBehavior = fbRaiseException + end> + Version = 0 + Left = 48 + Top = 24 + end + object Bin2DataStreamer: TDABin2DataStreamer + Left = 48 + Top = 80 + end + object bpArticulos: TDABusinessProcessor + Schema = schArticulos + InsertCommandName = 'Insert_Articulos' + DeleteCommandName = 'Delete_Articulos' + UpdateCommandName = 'Update_Articulos' + ReferencedDataset = 'Articulos' + ProcessorOptions = [poAutoGenerateRefreshDataset, poPrepareCommands] + UpdateMode = updWhereKeyOnly + Left = 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..c59e56db --- /dev/null +++ b/Source/Modulos/Articulos/Servidor/srvArticulos_Impl.pas @@ -0,0 +1,78 @@ +unit srvArticulos_Impl; + +{----------------------------------------------------------------------------} +{ This unit was automatically generated by the RemObjects SDK after reading } +{ the RODL file associated with this project . } +{ } +{ This is where you are supposed to code the implementation of your objects. } +{----------------------------------------------------------------------------} + +interface + +uses + {vcl:} Classes, SysUtils, + {RemObjects:} uROClientIntf, uROTypes, uROServer, uROServerIntf, uROSessions, + {Ancestor Implementation:} DataAbstractService_Impl, + {Used RODLs:} DataAbstract4_Intf, + {Generated:} uDABusinessProcessor, uDABin2DataStreamer, uDADataStreamer, + uDAScriptingProvider, uDAClasses, + FactuGES_Intf, uDAInterfaces; + +type + { TsrvArticulos } + TsrvArticulos = class(TDataAbstractService, IsrvArticulos) + Diagrams: TDADiagrams; + bpArticulos: TDABusinessProcessor; + Bin2DataStreamer: TDABin2DataStreamer; + schArticulos: TDASchema; + DataDictionary: TDADataDictionary; + procedure DARemoteServiceBeforeGetDatasetData(const Dataset: IDADataset; + const IncludeSchema: Boolean; const MaxRecords: Integer); + procedure DARemoteServiceCreate(Sender: TObject); + procedure DataAbstractServiceBeforeAcquireConnection(aSender: TObject; + var aConnectionName: string); + 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.DARemoteServiceBeforeGetDatasetData( + const Dataset: IDADataset; const IncludeSchema: Boolean; + const MaxRecords: Integer); +begin + if DataSet.Name = nme_Articulos then + begin + { Aqu se asegura que el usuario slo accede a los Articulos + de las empresas a las que tiene permiso para acceder + filtrando DataSet por ID_EMPRESA. } + FiltrarAccesoUsuario(Session, Connection, schArticulos, DataSet, fld_ArticulosID_EMPRESA); + end; +end; + +procedure TsrvArticulos.DARemoteServiceCreate(Sender: TObject); +begin + SessionManager := dmServer.SessionManager; +end; + +procedure TsrvArticulos.DataAbstractServiceBeforeAcquireConnection( + aSender: TObject; var aConnectionName: string); +begin + ConnectionName := dmServer.ConnectionName; +end; + +initialization + TROClassFactory.Create('srvArticulos', Create_srvArticulos, TsrvArticulos_Invoker); + +finalization + +end. diff --git a/Source/Modulos/Articulos/Views/Articulos_view.bdsproj b/Source/Modulos/Articulos/Views/Articulos_view.bdsproj new file mode 100644 index 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..68d2370c --- /dev/null +++ b/Source/Modulos/Articulos/Views/Articulos_view.dpk @@ -0,0 +1,43 @@ +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 ON} + +requires + GUIBase, + Articulos_model, + Articulos_controller, + Familias_controller, + 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.dproj b/Source/Modulos/Articulos/Views/Articulos_view.dproj new file mode 100644 index 00000000..c3b541f2 --- /dev/null +++ b/Source/Modulos/Articulos/Views/Articulos_view.dproj @@ -0,0 +1,608 @@ + + + {5e4bdd4d-597f-407c-8b0c-32e37fbd6267} + Articulos_view.dpk + Debug + AnyCPU + DCC32 + ..\..\..\..\Output\Debug\Cliente\Articulos_view.bpl + + + 7.0 + False + False + False + True + 0 + True + True + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + RELEASE + + + 7.0 + False + True + True + True + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + DEBUG + + + Delphi.Personality + Package + + + False + True + False + + + True + False + False + + + True + False + 1 + 0 + 0 + 0 + False + False + False + False + False + 3082 + 1252 + + + + + 1.0.0.0 + + + + + + 1.0.0.0 + + + + Articulos_view.dpk + + + + + + + MainSource + + + + + + + + +
    fEditorArticulo
    +
    + +
    fEditorArticulos
    +
    + +
    fEditorElegirArticulos
    +
    + +
    frViewArticulo
    +
    + +
    frViewArticulos
    +
    + +
    frViewDetallesArticulos
    +
    +
    + +
    + + diff --git a/Source/Modulos/Articulos/Views/Articulos_view.identcache b/Source/Modulos/Articulos/Views/Articulos_view.identcache new file mode 100644 index 0000000000000000000000000000000000000000..1ae8f7db0fef63763a03183b9b02fb42bfdfcdf1 GIT binary patch literal 597 zcmZQ)U|?`@wu*7iPsvQrR|rW>F3v1T&4~%lFD*(=jq%M-Db2|*j&Uq1$xH^b!ZK6K zi(^Vb6kJfRAh8%|4jlN9X`oALNn%b;YB5fOUCA)mH6^nozX)a|HJl1Fs~8jrL86*Z=?k literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..36f26e234a8ac66a47e95cec6d496cf2f1442471 GIT binary patch literal 32 UcmZQzU|>)H;{X347|28c09i@|9RL6T literal 0 HcmV?d00001 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 artculo' + else + FTitulo := 'Artculo'; + 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 ningn almacn asignado'); + + Articulo.DataTable.Active := True; +end; + +destructor TfEditorArticulo.Destroy; +begin + // Utilizar mejor OnClose; + inherited; +end; + +procedure TfEditorArticulo.actFamiliasExecute(Sender: TObject); +var + AFamiliasController : IFamiliasController; + AFamilias : IBizFamilia; +begin + AFamiliasController := TFamiliasController.Create; + try + AFamilias := (AFamiliasController.BuscarTodos as IBizFamilia); + AFamiliasController.VerTodos(AFamilias); + finally + AFamilias := NIL; + AFamiliasController := NIL; + end; +end; + +procedure TfEditorArticulo.AsignarVista; +var + AViewArticulo: TfrViewArticulo; +begin + AViewArticulo := TfrViewArticulo.create(Self); + with AViewArticulo do + begin + Parent := pagGeneral; + Align := alClient; + dxLayoutControlArticulo.LookAndFeel := dxLayoutOfficeLookAndFeel1; + end; + ViewArticulo := AViewArticulo; +end; + +constructor TfEditorArticulo.Create(AOwner: TComponent); +begin + inherited; + pgPaginas.ActivePageIndex := 0; + AsignarVista; +end; + +procedure TfEditorArticulo.CustomEditorClose(Sender: TObject; + var Action: TCloseAction); +begin + inherited; + dsDataTable.DataTable := NIL; + FViewArticulo := NIL; + FArticulo := NIL; +end; + +procedure TfEditorArticulo.dsDataTableDataChange(Sender: TObject; + Field: TField); +begin + inherited; + if Assigned(FArticulo) and (not (FArticulo.DataTable.Fetching) or + not (FArticulo.DataTable.Opening) or not (FArticulo.DataTable.Closing)) then + PonerTitulos; +end; + +procedure TfEditorArticulo.EliminarInterno; +begin + if (Application.MessageBox('Desea borrar este articulo?', 'Atencin', MB_YESNO) = IDYES) then + begin + inherited; + if not FController.Eliminar(FArticulo) then + actRefrescar.Execute; + end; +end; + +end. + diff --git a/Source/Modulos/Articulos/Views/uEditorArticulos.dfm b/Source/Modulos/Articulos/Views/uEditorArticulos.dfm new file mode 100644 index 00000000..4d3a0ba5 --- /dev/null +++ b/Source/Modulos/Articulos/Views/uEditorArticulos.dfm @@ -0,0 +1,1425 @@ +inherited fEditorArticulos: TfEditorArticulos + Left = 489 + Top = 325 + Caption = 'Lista de art'#237'culos' + ExplicitHeight = 471 + 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 = 269 + inherited tbxEditFiltro: TTBXEditItem + EditOptions = [tboUseEditWhenVertical] + end + inherited TBXItem37: TTBXItem + Visible = False + end + end + inherited TBXTMain2: TTBXToolbar + Left = 275 + DockPos = 275 + ExplicitLeft = 275 + end + end + 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 0000000000000000000000000000000000000000..17f14d2de5cb10ad8cad9b705d88c0b1fa225a96 GIT binary patch literal 5406 zcmb_gOK%%D5YE|v|HB*#_)%8|a#5&xce&I`R#YH?5$|$2-@HD~3|-{PQ87rB)23^jN{UR|^ZmX3J(W9YrXrF2QdnvC z_lSN`d8(i630+HT#Z2O9^kP3cmEq|@7$tItr;AKjNSx4>5sOEa@RH7*(Y)jB z!~gPa+xt?OoPC z7L!a?esbu#h0`PTnZ4|HM~P7jr}EjI(My#|=*8+qf7D1Kc-_Tfg#5zZ3I_}Ka)t<) zm-+*?G5TGGjL$i;1gom>7Z-(fdd?vNKL7IJ;1pJG#)y&3WRf5SC$z|Cilc+g!xpu$ zRIYHW14@+9GSDF%)oVyz#e$4IEm=`968|%+vE5n4#S$lC8OQT0%Rr{Pg_RO zJ4%?bhxM0W9JTE~VgMqMxJxltnG*Jl#z-st#;M^?3!@X67Djraj~?~Y;Yj944L06R zewT?mTH6`H4W4CEIJsG7VboGM?*!3h2+A1^BZ8l^6{RhgO}Ge~f-2bTfUwV zsu>C)&ho(l^1PnEg*5JkULiEW?{tOm^kft)kBQxIp~Q;FxA}Ah)M#gbZPqH>gpZ9W z5|nDXfIX-J-P+dBA3q4 z_d>W*DDF$~xMF!^0%cz8h2d zyKF$d6>|GIr_)o2a`zR%Lhs|3AMWY6lTPPf*}pIQd&gVFgbi zO;MK9+Plt`cKT8o>tJNf($E{$L%X#fh1lLpTV#$EHXU+j{Dy^_Pc(owDQd(bP1{(~ zF8Bc!$EZG19j4KRSfJbj^-G&K;9(uJZJO4)P*Al>Lktv+7o7)b4nsDXL%XP2>7YBQ z>ElU{UgZm)ay0{}*$rWNBV1-nLgWA_jC#)fGpaUiX`d~4Y{TS)kmH1$ST4MaChPH%3Rsk<0 zsMSWzdcD5Y?K_4G`WWqI_`!!JI;rJyhM|9jWjlJ>9uLEz=+=69l8!GI!M5GWMiil; zDmM}8)cRLz4G}J;?9PT#P}{{pCz@gs&$4PSCXstN#qq<)-Kp+Tepea%uN9{h#$NkJ2h%WyUJimFold~iYsT};b~`X|Tpb??(} zgVD|H5vJ8)ACFBF4n&GdhIfK6^W5<;j!Bzj&NF!;tmcB0Yg%aBFfkrrZ1gt+$^>al zse(0<|G<%fY&A`so??WiR5<*P;X&ia5(MT7L%*!m2?lT%GC zaYF0ZMG1{Y7$o!?N!lepfT-ukEw|;Wx_9fX4eOZF>#IJ 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..aa1fc46d --- /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, uDAInterfaces; + +type + IViewArticulo = interface(IViewBase) + ['{65206152-786D-47AE-A037-5EF480BC056C}'] + function GetArticulo: IBizArticulo; + procedure SetArticulo(const Value: IBizArticulo); + property Articulo: IBizArticulo read GetArticulo write SetArticulo; + + function GetController : IArticulosController; + procedure SetController (const Value : IArticulosController); + property Controller : IArticulosController read GetController write SetController; + end; + + TfrViewArticulo = class(TfrViewBase, IViewArticulo) + dsViewArticulo: TDADataSource; + dxLayoutControlArticuloGroup_Root: TdxLayoutGroup; + dxLayoutControlArticulo: TdxLayoutControl; + dxLayoutControlArticuloGroup1: TdxLayoutGroup; + dxLayoutControlArticuloItem3: TdxLayoutItem; + eReferencia: TcxDBTextEdit; + dxLayoutControlArticuloItem8: TdxLayoutItem; + eDescripcion: TcxDBTextEdit; + dxLayoutControlArticuloGroup2: TdxLayoutGroup; + dxLayoutControlArticuloItem1: TdxLayoutItem; + eNoComisionable: TcxDBCheckBox; + dxLayoutControlArticuloGroup4: TdxLayoutGroup; + OpenDialog1: TOpenDialog; + SmallImages: TPngImageList; + ActionList1: TActionList; + actAnadir: TAction; + actEliminar: TAction; + dxLayoutControlArticuloItem2: TdxLayoutItem; + PngSpeedButton2: TPngSpeedButton; + dxLayoutControlArticuloItem5: TdxLayoutItem; + PngSpeedButton1: TPngSpeedButton; + dxLayoutControlArticuloGroup3: TdxLayoutGroup; + 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..3bd34949 --- /dev/null +++ b/Source/Modulos/Articulos/Views/uViewArticulos.dfm @@ -0,0 +1,245 @@ +inherited frViewArticulos: TfrViewArticulos + inherited cxGrid: TcxGrid + inherited cxGridView: TcxGridDBTableView + OnMouseMove = cxGridViewMouseMove + 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 frViewFiltroBase1: TfrViewFiltroBase + inherited TBXDockablePanel1: TTBXDockablePanel + inherited dxLayoutControl1: TdxLayoutControl + inherited txtFiltroTodo: TcxTextEdit + ExplicitWidth = 273 + Width = 273 + end + inherited edtFechaIniFiltro: TcxDateEdit + ExplicitWidth = 121 + Width = 121 + end + inherited edtFechaFinFiltro: TcxDateEdit + ExplicitWidth = 121 + Width = 121 + end + end + end + end + inherited pnlAgrupaciones: TTBXDockablePanel + 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..3f4b77b0 --- /dev/null +++ b/Source/Modulos/Articulos/Views/uViewArticulos.pas @@ -0,0 +1,173 @@ +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, uDAInterfaces; + +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); + procedure cxGridViewMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); + protected + FArticulos: IBizArticulo; + function GetArticulos: IBizArticulo; virtual; + procedure SetArticulos(const Value: IBizArticulo); virtual; + public + property Articulos: IBizArticulo read GetArticulos write SetArticulos; + end; + +implementation +{$R *.dfm} + +uses //uDataModuleArticulos, + +schArticulosClient_Intf; + + +{ 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; + +procedure TfrViewArticulos.cxGridViewMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); +var + Site : TcxGridSite; + HitTest : TcxCustomGridHitTest; + Item : TcxCustomGridTableItem; + Rec : TcxCustomGridRecord; + sNewHint : string; +begin +{Este mtodo desaparecer cuando se migre la aplicacin, es para sacar la causa de la incidencia sin necesidad de entrar en el documento} + Site := Sender as TcxGridSite; + HitTest := Site.GridView.ViewInfo.GetHitTest(X, Y); + if HitTest is TcxGridRecordCellHitTest then begin + Item := TcxGridRecordCellHitTest(HitTest).Item; + Rec := TcxGridRecordCellHitTest(HitTest).GridRecord; + + if (Item.Index = cxGridView.GetColumnByFieldName(fld_ArticulosCOMISIONABLE).Index) then begin + sNewHint := 'Todo artculo comisionable se tendr en cuenta para la liquidacin de comisiones de los agentes'; + if (cxGrid.Hint <> sNewHint) then begin + cxGrid.ShowHint := false; + cxGrid.Hint := sNewHint; + end + else cxGrid.ShowHint := true; + end + else if (Item.Index = cxGridView.GetColumnByFieldName(fld_ArticulosINVENTARIABLE).Index) then begin + sNewHint := 'Todo artculo inventariable se tendr en cuenta para el control de almacenes (inventario de almacn)'; + if (cxGrid.Hint <> sNewHint) then begin + cxGrid.ShowHint := false; + cxGrid.Hint := sNewHint; + end + else cxGrid.ShowHint := true; + end + else begin + cxGrid.ShowHint := false; + end; + end; +end; + +end. diff --git a/Source/Modulos/Articulos/Views/uViewDetallesArticulos.dfm b/Source/Modulos/Articulos/Views/uViewDetallesArticulos.dfm new file mode 100644 index 00000000..a3f7fd72 --- /dev/null +++ b/Source/Modulos/Articulos/Views/uViewDetallesArticulos.dfm @@ -0,0 +1,358 @@ +inherited frViewDetallesArticulos: TfrViewDetallesArticulos + ParentBiDiMode = False + OnShow = CustomViewShow + inherited ToolBar1: TToolBar + inherited ToolButton4: TToolButton + Wrap = True + end + inherited ToolButton14: TToolButton + Left = 0 + Top = 22 + Wrap = False + ExplicitLeft = 0 + ExplicitTop = 22 + 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 + HeaderAlignmentHorz = taRightJustify + Width = 25 + end + inherited cxGridViewIMPORTEPORTE: TcxGridDBColumn + Caption = 'Porte unidad' + end + inherited cxGridViewIMPORTETOTAL: TcxGridDBColumn + Width = 49 + end + end + end + inherited TBXDock1: TTBXDock + 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 + OnUpdate = actAnadirArticulosUpdate + 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..7fe67bd5 --- /dev/null +++ b/Source/Modulos/Articulos/Views/uViewDetallesArticulos.pas @@ -0,0 +1,135 @@ +unit uViewDetallesArticulos; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uViewDetallesDTO, cxStyles, cxCustomData, cxGraphics, cxFilter, + cxData, cxDataStorage, cxEdit, DB, cxDBData, cxImageComboBox, cxRichEdit, + cxMaskEdit, cxCurrencyEdit, cxCheckBox, ImgList, PngImageList, uDADataTable, + StdActns, ExtActns, ActnList, TB2Item, TBX, TB2Dock, TB2Toolbar, cxGridLevel, + cxGridCustomTableView, cxGridTableView, cxGridDBTableView, cxClasses, + cxControls, cxGridCustomView, cxGrid, ComCtrls, StdCtrls, JvExStdCtrls, + JvCombobox, JvColorCombo, ToolWin, uControllerDetallesArticulos, + cxTextEdit, uDAInterfaces; + +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 actAnadirArticulosUpdate(Sender: TObject); + procedure OnValidateReferencia(Sender: TObject; var DisplayValue: Variant; var ErrorText: TCaption; var Error: Boolean); + procedure OnValidateReferenciaProveedor(Sender: TObject; var DisplayValue: Variant; var ErrorText: TCaption; var Error: Boolean); + procedure CustomViewShow(Sender: TObject); + + 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; + + SeleccionarRowActual; +end; + +procedure TfrViewDetallesArticulos.AnadirArticulosInterno; +begin + (Controller as IControllerDetallesArticulos).AnadirArticulos(Detalles); +end; + +procedure TfrViewDetallesArticulos.CustomViewCreate(Sender: TObject); +begin + inherited; + cxGridViewREFERENCIA.Properties.OnValidate := OnValidateReferencia; + cxGridViewREFERENCIA_PROVEEDOR.Properties.OnValidate := OnValidateReferenciaProveedor; +end; + +procedure TfrViewDetallesArticulos.CustomViewDestroy(Sender: TObject); +begin + inherited; + cxGridViewREFERENCIA.Properties.OnValidate := Nil; + cxGridViewREFERENCIA_PROVEEDOR.Properties.OnValidate := Nil; +end; + +procedure TfrViewDetallesArticulos.CustomViewShow(Sender: TObject); +begin + inherited; + SeleccionarRowActual; +end; + +procedure TfrViewDetallesArticulos.OnValidateReferencia(Sender: TObject; var DisplayValue: Variant; var ErrorText: TCaption; var Error: Boolean); +var + lsReferencia : String; +begin + //En el caso de cadena vacia no validamos + if (VarIsNull(DisplayValue)) then + Exit; + + lsReferencia := VarToStr(DisplayValue); + if (length(trim(lsReferencia)) = 0) then + Exit; + + + if not AnadirArticulo(lsReferencia, tCliente) then + begin + ErrorText := 'La referencia introducida no exite en el catlogo'; + Error := True; + end; +end; + +procedure TfrViewDetallesArticulos.OnValidateReferenciaProveedor(Sender: TObject; var DisplayValue: Variant; var ErrorText: TCaption; var Error: Boolean); +var + lsReferencia : String; +begin + //En el caso de cadena vacia no validamos + if (VarIsNull(DisplayValue)) then + Exit; + + lsReferencia := VarToStr(DisplayValue); + if (length(trim(lsReferencia)) = 0) then + Exit; + + if not AnadirArticulo(lsReferencia, tProveedor) then + begin + ErrorText := 'La referencia introducida no exite en el catlogo'; + Error := True; + end; +end; + +procedure TfrViewDetallesArticulos.actAnadirArticulosUpdate(Sender: TObject); +begin + inherited; + (Sender as TAction).Enabled := actAnadir.Enabled; +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..81589b61 --- /dev/null +++ b/Source/Modulos/Banca electronica/Controller/BancaElectronica_controller.dpk @@ -0,0 +1,44 @@ +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 ON} + +requires + GUIBase, + Base, + ApplicationBase, + Contactos_model, + Contactos_controller, + RemesasCliente_controller, + RemesasCliente_model; + +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.dproj b/Source/Modulos/Banca electronica/Controller/BancaElectronica_controller.dproj new file mode 100644 index 00000000..fc7cd11d --- /dev/null +++ b/Source/Modulos/Banca electronica/Controller/BancaElectronica_controller.dproj @@ -0,0 +1,587 @@ + + + {d465978e-860e-4eb2-9a25-2afb559e8e07} + BancaElectronica_controller.dpk + Debug + AnyCPU + DCC32 + ..\..\..\..\Output\Debug\Cliente\BancaElectronica_controller.bpl + + + 7.0 + False + False + 0 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + RELEASE + + + 7.0 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + + + Delphi.Personality + Package + + + False + True + False + + + True + False + False + + + True + False + 1 + 0 + 0 + 0 + False + False + False + False + False + 3082 + 1252 + + + + + 1.0.0.0 + + + + + + 1.0.0.0 + + + + BancaElectronica_controller.dpk + + + + + + + MainSource + + + + + + + + + + + + + + + + + + diff --git a/Source/Modulos/Banca electronica/Controller/BancaElectronica_controller.identcache b/Source/Modulos/Banca electronica/Controller/BancaElectronica_controller.identcache new file mode 100644 index 0000000000000000000000000000000000000000..948cd92d0131eda049241b175ac96e5232d2f604 GIT binary patch literal 575 zcmb`Ey9&ZU5Jgk@9e#ljR4|rVf(V)>nraZ%%^(BoPS^+f`NkARmQ>Mc2hQQ%J4=$} zAhsa5p&QRns2q9JP;syd;mA$U>>!s$$vJ9N-m)Pj;p|DH15xKC+q+z@M3paE={nx$ zu2aB*P3O=WE!2b$2>YTT&$f8BY`s*(rZ=WptouifG#klLPRS7!lxFMA2zvJ$`YmyB T50@#-ui8Vub}@`S{9@G$g@e36 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..36f26e234a8ac66a47e95cec6d496cf2f1442471 GIT binary patch literal 32 UcmZQzU|>)H;{X347|28c09i@|9RL6T literal 0 HcmV?d00001 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..ab1b1509 --- /dev/null +++ b/Source/Modulos/Banca electronica/Controller/uBancaElectronicaController.pas @@ -0,0 +1,213 @@ +{ +=============================================================================== + Copyright () 2007. Rodax Software. +=============================================================================== + Los contenidos de este fichero son propiedad de Rodax Software titular del + copyright. Este fichero slo podr ser copiado, distribuido y utilizado, + en su totalidad o en parte, con el permiso escrito de Rodax Software, o de + acuerdo con los trminos y condiciones establecidas en el acuerdo/contrato + bajo el que se suministra. + ----------------------------------------------------------------------------- + Web: www.rodax-software.com +=============================================================================== + Fecha primera versin: + Versin actual: 1.0.0 + Fecha versin actual: +=============================================================================== + Modificaciones: + + Fecha Comentarios + --------------------------------------------------------------------------- +=============================================================================== +} + +unit 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 generacin del fichero + //FecVcto := ARemesa.FECHA_REMESA; // <= slo para norma 58 + + // PRESENTADOR + Presentador := AEmpresa.NIF_CIF; + SufijoPres := ARemesa.SUFIJO_N19; + NomCliPres := AEmpresa.NOMBRE; + + CompCabecera; + + // el que cobra + Ordenante := AEmpresa.NIF_CIF; + SufijoOrd:= ARemesa.SUFIJO_N19; + NomCliOrd:= AEmpresa.NOMBRE; + EntOrde:= ARemesa.ENTIDAD; + OfiOrde:= ARemesa.SUCURSAL; + DcOrde:= ARemesa.DC; + CcOrde:= ARemesa.CUENTA; + LocalidadOrd:= ''; + CodLocalOrd:= ''; + //FecOrigFormCred:= <= Slo para norma 58 + + CompOrdenante; + + ARemesa.Recibos.DataTable.First; + for I := 0 to (ARemesa.Recibos.DataTable.RecordCount - 1) do + begin + ACliente := (AClientesController.Buscar(ARemesa.Recibos.ID_CLIENTE) as IBizCliente); + ACliente.DataTable.Active := True; + + // el que paga + Referencia := ACliente.REFERENCIA; + NomTitDom := ARemesa.Recibos.NOMBRE_CLIENTE; + EntTitDom := ARemesa.Recibos.ENTIDAD_CLIENTE; + OfiTitDom := ARemesa.Recibos.SUCURSAL_CLIENTE; + DcTitDom := ARemesa.Recibos.DC_CLIENTE; + CcTitDom := ARemesa.Recibos.CUENTA_CLIENTE; + NomTitCta := ARemesa.Recibos.NOMBRE_CLIENTE; + DomTitCta := ''; + PlzTitCta := ''; + CPtTitCta := ''; + CampConc1 := 'Recibo ' + ARemesa.Recibos.REFERENCIA; + fImporteEu := ARemesa.Recibos.IMPORTE_TOTAL; + + CompRegistro; + + ARemesa.Recibos.DataTable.Next; + end; + + FinOrdenan; + Cerrar; + end; + finally + ARemesasController := NIL; + AEmpresasController := NIL; + AClientesController := NIL; + + AEmpresa := NIL; + + FreeAndNil(ANorma19); + end; +end; + +function TBancaElectronicaController.DarParametrosParaExportar ( + var Entidad : Integer; var Oficina : Integer; var AFechaCargo : TDateTime; + var AFileName : String): Boolean; +var + AEditor : IEditorExportacionNorma19; +begin + Result := False; + AEditor := NIL; + ShowHourglassCursor; + try + CreateEditor('EditorExportacionNorma19', IEditorExportacionNorma19, AEditor); + if Assigned(AEditor) then + with AEditor do + begin + CodigoEntidad := Entidad; + CodigoAgencia := Oficina; + FechaCargo := AFechaCargo; + Fichero := AFileName; + + if (ShowModal = mrOk) then + begin + Entidad := CodigoEntidad; + Oficina := CodigoAgencia; + AFechaCargo := FechaCargo; + AFileName := Fichero; + Result := True; + end; + Release; + end; + finally + AEditor := NIL; + HideHourglassCursor; + 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/BancaElectronica_data.dproj b/Source/Modulos/Banca electronica/Data/BancaElectronica_data.dproj new file mode 100644 index 00000000..34d7284d --- /dev/null +++ b/Source/Modulos/Banca electronica/Data/BancaElectronica_data.dproj @@ -0,0 +1,116 @@ + + + {a790c41f-c58c-4960-9333-616896fc3b42} + BancaElectronica_data.dpk + Debug + AnyCPU + DCC32 + ..\..\..\..\Output\Debug\Cliente\BancaElectronica_data.bpl + + + 7.0 + False + False + 0 + 3 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + RELEASE + + + 7.0 + 3 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + DEBUG + + + Delphi.Personality + Package + + + False + True + False + + + False + False + False + + + True + False + 1 + 0 + 0 + 0 + False + False + False + False + False + 3082 + 1252 + + + + + 1.0.0.0 + + + + + + 1.0.0.0 + + + + BancaElectronica_data.dpk + + + + + + + MainSource + + + + + + + + + + + + + + + + +
    DataModuleBancaElectronica
    + TDAClientDataModule +
    + + + + +
    + +
    \ No newline at end of file diff --git a/Source/Modulos/Banca electronica/Data/BancaElectronica_data.res b/Source/Modulos/Banca electronica/Data/BancaElectronica_data.res new file mode 100644 index 0000000000000000000000000000000000000000..86c94e6ada7b3c85f6761b1ee234a9f34ef3c861 GIT binary patch literal 5056 zcmbW5&x;&Y5XWnifD(f4!IPI+L`3!=E9BmaF%VEA#@TDLXpF&R6XJUC)cc=I4kFSA z{{!hg%bp}hVRP_qjvmDJ`>A@>-7}euyEfF+`%$mH-*3IwZ-y~5+miKtn3_w^Pn$V^ zQ861nx4C)wN(Q~H#+K|o*@m~&(3=1I%Llk7>S*pvE7;Yjz^+ljNYba;|&8!P>=GYp<9J^QiRC`-*du(Wb zBJI+RemE@Tm2dSSKL$269_p-ia&WJ{$B|EYy#Bt1`fm?B(CB-l8nlXqgY!6fUOzP@ zr|Te|e4cZxgJWuLF8<`}dughP69?9a%ha4}r`jtX-7UCl^he&nV;_S<)Ya!2FlEJu zrr{t12%dXkNqpywX{@?Eb_MKs@29XRNI;2D%DxW zo|xv^jnf#kFIDZr^e=W==PW{#^6Ao{deqzuxId;ujOZ~3;otiwSzBXu3^t3 z&$C~D3=Umz@OQRR9+}nP>x>=u115dAI{rd2#Mbgv81-@e%IA6)a8SDwHm3Di`~F1x z)jhG~04Fd5o4f^Iah!WFIS0|E#)aohzS6onIG_;>-~Ytz3J0A}=DenTZ*cIo-Ves9 zp>qHmo5lV+rntk2He9_1!t%2yZsF;l)>iGc4jkU$0bBWEPmBKKP>uSjxhXIDsSodT z@EG|gFZa>|hHF!PaN};FzIxxlpPKT;87{i(!eu7T%H?}r^yeP=K2c}If`cyKd-3DW z_4ib`jDt-MZ?C~;z1O=EKN(!YbpFJR_c`u>(C=ph9O_Y*Jz5Z>`Zs7T9Mn$y@ay$^ z{gulxYxXwGq@TIGbG$~Hi*qk8?9|WMkNweF@MU18F;AQKZ>jcWAL86`f59r^Yh;+XfGU10gV*5=*FT)q#qz2B_Ik28(#vUlW{{>1m(1wXK3zHQ3+RoHfz^$cuqg(^F;eqz6WUMUE^m$ z9R1u2H_t9ue%}<_JcD5KB$svgjBysd-ql#|toxF$&>h1Qc)Vw6j~u{SeHg>my$i{SJtD^MnJV!{AK!ZgN9Q4bN2bs7?m1Qo zsLwc-c&GZ4_%7jWppm+9C(?(bpCye?f6Mv)ml~{r9)<=EoH5SYSxm8xsWZv%2MjL$ zd)R%{gxqI&lEaJ6!*jggJMcIz?<5?~hn@VA1Kzcrp$;C`m0CzQdy{!G?|FT$$5W3N zaydTsdE#>2dGSt*&wOX~r{!54?~lxS4gM|rOZH6mRCZMCP#!z)bEv-^up_gJ*i*BY zl>1d-%!E}5v+s{C_OF@Qj;!xrv5)P2yJ4TmKCqke`Aq-U;NJ}WpRu*&|7!3r$c7zU zF#m_6?>Cia!E%D)b;IaF{ zzPG~QEyw>z^LKm}whzS>Dx3Ct`1w98?Y5 + + + + + + + + + + + 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..15bb6ce8 --- /dev/null +++ b/Source/Modulos/Banca electronica/Model/BancaElectronica_model.dpk @@ -0,0 +1,36 @@ +package BancaElectronica_model; + +{$R *.res} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST OFF} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$IMPLICITBUILD OFF} + +requires + Base; + +contains + uIDataModuleBancaElectronica in 'Data\uIDataModuleBancaElectronica.pas', + schBancaElectronicaClient_Intf in 'schBancaElectronicaClient_Intf.pas', + schBancaElectronicaServer_Intf in 'schBancaElectronicaServer_Intf.pas', + uBizBancaElectronica in 'uBizBancaElectronica.pas'; + +end. diff --git a/Source/Modulos/Banca electronica/Model/BancaElectronica_model.dproj b/Source/Modulos/Banca electronica/Model/BancaElectronica_model.dproj new file mode 100644 index 00000000..c22ba8c6 --- /dev/null +++ b/Source/Modulos/Banca electronica/Model/BancaElectronica_model.dproj @@ -0,0 +1,539 @@ + + + {36741ce3-2830-49dc-8b68-8b189bf8229f} + BancaElectronica_model.dpk + Debug + AnyCPU + DCC32 + ..\..\..\..\Output\Debug\Cliente\BancaElectronica_model.bpl + + + 7.0 + False + False + 0 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + RELEASE + + + 7.0 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + + + Delphi.Personality + Package + +FalseTrueFalseFalseFalseFalseTrueFalse1000FalseFalseFalseFalseFalse308212521.0.0.01.0.0.0BancaElectronica_model.dpk + + + + + MainSource + + + + + + + + + + diff --git a/Source/Modulos/Banca electronica/Model/BancaElectronica_model.identcache b/Source/Modulos/Banca electronica/Model/BancaElectronica_model.identcache new file mode 100644 index 0000000000000000000000000000000000000000..e65586ecf81b47c58c0edf9dfe3fbd4c49eeb038 GIT binary patch literal 417 zcmZQ!U|F3v1T&4~%lFD*(=jq%M-Db2|*j&VxNOHNcs%}Grz zDay~wOil#J0F{+GWmbXZToF=w1&PH#Q{f eWvNA2Es7`KM=psai7};~APO9|sp$Sg_Y?rV#f#Pe literal 0 HcmV?d00001 diff --git a/Source/Modulos/Banca electronica/Model/BancaElectronica_model.res b/Source/Modulos/Banca electronica/Model/BancaElectronica_model.res new file mode 100644 index 0000000000000000000000000000000000000000..86c94e6ada7b3c85f6761b1ee234a9f34ef3c861 GIT binary patch literal 5056 zcmbW5&x;&Y5XWnifD(f4!IPI+L`3!=E9BmaF%VEA#@TDLXpF&R6XJUC)cc=I4kFSA z{{!hg%bp}hVRP_qjvmDJ`>A@>-7}euyEfF+`%$mH-*3IwZ-y~5+miKtn3_w^Pn$V^ zQ861nx4C)wN(Q~H#+K|o*@m~&(3=1I%Llk7>S*pvE7;Yjz^+ljNYba;|&8!P>=GYp<9J^QiRC`-*du(Wb zBJI+RemE@Tm2dSSKL$269_p-ia&WJ{$B|EYy#Bt1`fm?B(CB-l8nlXqgY!6fUOzP@ zr|Te|e4cZxgJWuLF8<`}dughP69?9a%ha4}r`jtX-7UCl^he&nV;_S<)Ya!2FlEJu zrr{t12%dXkNqpywX{@?Eb_MKs@29XRNI;2D%DxW zo|xv^jnf#kFIDZr^e=W==PW{#^6Ao{deqzuxId;ujOZ~3;otiwSzBXu3^t3 z&$C~D3=Umz@OQRR9+}nP>x>=u115dAI{rd2#Mbgv81-@e%IA6)a8SDwHm3Di`~F1x z)jhG~04Fd5o4f^Iah!WFIS0|E#)aohzS6onIG_;>-~Ytz3J0A}=DenTZ*cIo-Ves9 zp>qHmo5lV+rntk2He9_1!t%2yZsF;l)>iGc4jkU$0bBWEPmBKKP>uSjxhXIDsSodT z@EG|gFZa>|hHF!PaN};FzIxxlpPKT;87{i(!eu7T%H?}r^yeP=K2c}If`cyKd-3DW z_4ib`jDt-MZ?C~;z1O=EKN(!YbpFJR_c`u>(C=ph9O_Y*Jz5Z>`Zs7T9Mn$y@ay$^ z{gulxYxXwGq@TIGbG$~Hi*qk8?9|WMkNweF@MU18F;AQKZ>jcWAL86`f59r^Yh;+XfGU10gV*5=*FT)q#qz2B_Ik28(#vUlW{{>1m(1wXK3zHQ3+RoHfz^$cuqg(^F;eqz6WUMUE^m$ z9R1u2H_t9ue%}<_JcD5KB$svgjBysd-ql#|toxF$&>h1Qc)Vw6j~u{SeHg>my$i{SJtD^MnJV!{AK!ZgN9Q4bN2bs7?m1Qo zsLwc-c&GZ4_%7jWppm+9C(?(bpCye?f6Mv)ml~{r9)<=EoH5SYSxm8xsWZv%2MjL$ zd)R%{gxqI&lEaJ6!*jggJMcIz?<5?~hn@VA1Kzcrp$;C`m0CzQdy{!G?|FT$$5W3N zaydTsdE#>2dGSt*&wOX~r{!54?~lxS4gM|rOZH6mRCZMCP#!z)bEv-^up_gJ*i*BY zl>1d-%!E}5v+s{C_OF@Qj;!xrv5)P2yJ4TmKCqke`Aq-U;NJ}WpRu*&|7!3r$c7zU zF#m_6?>Cia!E%D)b;IaF{ zzPG~QEyw>z^LKm}whzS>Dx3Ct`1w98?Y5 + + {63bda8d7-1426-4a34-849f-51032a5e877d} + + + + + + + + + + + + + Default.Personality + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file 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..0db2e976 --- /dev/null +++ b/Source/Modulos/Banca electronica/Plugin/BancaElectronica_plugin.dpk @@ -0,0 +1,34 @@ +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 ON} + +requires + BancaElectronica_view, + BancaElectronica_controller; + +contains + uPluginBancaElectronica in 'uPluginBancaElectronica.pas'; + +end. diff --git a/Source/Modulos/Banca electronica/Plugin/BancaElectronica_plugin.dproj b/Source/Modulos/Banca electronica/Plugin/BancaElectronica_plugin.dproj new file mode 100644 index 00000000..9e3699fb --- /dev/null +++ b/Source/Modulos/Banca electronica/Plugin/BancaElectronica_plugin.dproj @@ -0,0 +1,577 @@ + + + {e4a70e78-dcab-415c-9e35-1956bd41ae1a} + BancaElectronica_plugin.dpk + Debug + AnyCPU + DCC32 + ..\..\..\..\Output\Debug\Cliente\BancaElectronica_plugin.bpl + + + 7.0 + False + False + 0 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + RELEASE + + + 7.0 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + + + Delphi.Personality + Package + + + False + True + False + + + True + False + False + + + True + False + 1 + 0 + 0 + 0 + False + False + False + False + False + 3082 + 1252 + + + + + 1.0.0.0 + + + + + + 1.0.0.0 + + + + BancaElectronica_plugin.dpk + + + + + + + MainSource + + + + + + + + diff --git a/Source/Modulos/Banca electronica/Plugin/BancaElectronica_plugin.rc b/Source/Modulos/Banca electronica/Plugin/BancaElectronica_plugin.rc new file mode 100644 index 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 0000000000000000000000000000000000000000..36f26e234a8ac66a47e95cec6d496cf2f1442471 GIT binary patch literal 32 UcmZQzU|>)H;{X347|28c09i@|9RL6T literal 0 HcmV?d00001 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 ms por el /0 + + _LL_: integer; // Longitud Lnea. Aqu almacenamos el valor 164 para usarlo + // en el resto del componente. + + _INDICA_: string; + + _CERO_, _SPCE_: char; + + _MSK_PT_, _MSK_EU_: string; + + prProced: TProcedimiento; + HayError: boolean; + + iTotOrd: integer; + iTotRem: integer; + + FEuro: boolean; + FDepura: boolean; + + sPrimerosDigitos: string; + NFic: file; + + fTotImpOrdEu: double; + iTotImpOrdPts: integer; + iTotDomOrd: integer; + iTotRegOrd: integer; + + fTotImpCinEu: double; + iTotImpCinPts: integer; + iTotDomCin: integer; + iTotRegCin: integer; + FEnCasoError: TNotifyEvent; + sReg: string; + + _19_, _58_: integer; + + + { Private declarations } + protected + procedure ChequearDatos(iParte: integer); + procedure Error(iErr: integer); dynamic; + { Protected declarations } + public + + + (* Norma = 19 = recibos al cobro + norma = 58 = recibos al descuento + *) + _NORMA_: integer; + + + + NrError: integer; + CRLF: string; + { El PRESENTADOR (el que fsicamente hace la presentacin del soporte magntico + a la Entidad de Deposito. Puede ser el mismo Cliente Ordenante, pero no necesariamente + y a su vez ser una persona fsica o jurdica } + + + FNomFic: string; // Nombre del archivo en disco + + + Presentador: string; //9 + SufijoPres: string; //3 + NomCliPres: string; //40 + EntRecepPres: string; //4 + OfiRecepPres: string; //4 + + + { El ordenante (El que emite y en nombre del cual se adeudan las domiciliaciones. Puede ser + una persona fsica o jurdica} + // el que cobra + Ordenante: string; //9 + SufijoOrd: string; //3 + NomCliOrd: string; //40 + EntOrde: string; //4 + OfiOrde: string; //4 + DcOrde: string; //2 + CcOrde: string; //2 + LocalidadOrd: string; // 38 + CodLocalOrd: string; // 2 + FecOrigFormCred: TDateTime; // 6 + + // Datos Generales + + + // FecSoporte: TDateTime; // En pantalla pone 'Fecha'. Fecha creacin remesa + FecCargo: TDateTime; // En pantalla pone 'Fecha entrega' + FecAbono: TDateTime; + // En pantalla pone 'Fecha abono'. Fecha para cobrarlos + + FecVcto: TDateTime; + TProc: string; //2 + + // el que paga + Referencia: string; //12 + NomTitDom: string; //40 + EntTitDom: string; //4 + OfiTitDom: string; //4 + DcTitDom: string; //2 + CcTitDom: string; //10 + NomTitCta: string; //40 + DomTitCta: string; //40 + PlzTitCta: string; //35 + CPtTitCta: string; //5 + + fImportePts: double; + fImporteEu: double; + CodDevol: string; // 6 + CodRefInt: string; // 10 + + CampConc: string; //40 + CampConc1: string; //40 + CampConc2: string; //40 + CampConc3: string; //40 + CampConc4: string; //40 + CampConc5: string; //40 + CampConc6: string; //40 + CampConc7: string; //40 + CampConc8: string; //40 + CampConc9: string; //40 + CampConc10: string; //40 + CampConc11: string; //40 + CampConc12: string; //40 + CampConc13: string; //40 + CampConc14: string; //40 + CampConc15: string; //40 + CampConc16: string; //40 + + + + constructor Create(AOwner: TComponent); override; + //destructor free; + procedure Abrir; + procedure IniOrdenan; + procedure IniRegistro; + procedure CompCabecera; + procedure CompOrdenante; + procedure CompRegistro; + procedure FinOrdenan; + procedure Cerrar; + property TotOrd: integer Read iTotOrd; + property TotRem: integer Read iTotRem; + { Public declarations } + published + property NomFichero: string Read FNomFic Write FNomFic; + property Procedimiento: TProcedimiento + Read prProced Write prProced default prPrimero; + property Euros: boolean Read FEuro Write FEuro default False; + property Depura: boolean Read FDepura Write FDepura default False; + property EnCasoError: TNotifyEvent Read FEnCasoError Write FEnCasoError; + { Published declarations } + end; + +procedure Register; + +implementation + +constructor TCVBNorma1958CSB.Create(AOwner: TComponent); +begin + inherited Create(AOwner); + {Asignar la propiedades por defecto} + + _19_ := 19; + _58_ := 58; + + _LL_ := high(pReg); + + _INDICA_ := '<--'; + _CERO_ := '0'; + _SPCE_ := ' '; + + _MSK_PT_ := '0000000000'; + _MSK_EU_ := '00000000.00'; + +end; + +//******************************************************************************* + +procedure TCVBNorma1958CSB.Abrir; +begin + HayError := False; + + AssignFile(NFic, FNomFic); +{$I+} + rewrite(Nfic, _LL_); +{$I-} + if IOResult <> 0 then + error(0); + + fTotImpOrdEu := 0; + iTotImpOrdPts := 0; + iTotDomOrd := 0; + iTotRegOrd := 0; + + fTotImpCinEu := 0; + iTotImpCinPts := 0; + iTotDomCin := 0; + iTotRegCin := 0; + + IniOrdenan; + IniRegistro; + + if CRLF = '' then + CRLF := #13 + #10; + + if FEuro = False then + sPrimerosDigitos := '01' + else + sPrimerosDigitos := '51'; +end; + +procedure TCVBNorma1958CSB.IniOrdenan; +begin + + fTotImpOrdEu := 0; + iTotImpOrdPts := 0; + iTotDomOrd := 0; + iTotRegOrd := 0; + Ordenante := ''; + NomCliOrd := ''; + EntOrde := ''; + OfiOrde := ''; + DcOrde := ''; + CcOrde := ''; + LocalidadOrd := ''; + CodLocalOrd := ''; + + if _NORMA_ = _19_ then + TProc := '01' + else + if _NORMA_ = _58_ then + TProc := '06'; + +end; + +procedure TCVBNorma1958CSB.IniRegistro; +begin + NomTitDom := ''; //40 + EntTitDom := ''; //4 + OfiTitDom := ''; //4 + DcTitDom := ''; //2 + CcTitDom := ''; //10 + fImportePts := 0; + fImporteEu := 0; + CodDevol := ''; //6 + CodRefInt := ''; //10 + CampConc1 := ''; //40 + CampConc2 := ''; //40 + CampConc3 := ''; //40 + CampConc4 := ''; //40 + CampConc5 := ''; //40 + CampConc6 := ''; //40 + CampConc7 := ''; //40 + CampConc8 := ''; //40 + CampConc9 := ''; //40 + CampConc10 := ''; //40 + CampConc11 := ''; //40 + CampConc12 := ''; //40 + CampConc13 := ''; //40 + CampConc14 := ''; //40 + CampConc15 := ''; //40 + CampConc16 := ''; //40 + NomTitCta := ''; //40 + DomTitCta := ''; //40 + PlzTitCta := ''; //35 + CPtTitCta := ''; //5 +end; + +procedure TCVBNorma1958CSB.CompCabecera; +var + cT, cIT: string; +begin + HayError := False; + + sReg := ''; + + ChequearDatos(1); +(* + Presentador + NomCliPres + EntRecepPres + OfiRecepPres +*) + + if _NORMA_ = _19_ then + sReg := sPrimerosDigitos + '80' + else + if _NORMA_ = _58_ then + sReg := sPrimerosDigitos + '70'; + + Presentador := AjustaCIF(Presentador); + + sReg := sReg + Ajusta(Presentador, 'I', 9, _CERO_); //9 + sReg := sReg + Ajusta(SufijoPres, 'I', 3, _CERO_); //3 + // if FecSoporte = 0 then + // FecSoporte := now; + sReg := sReg + Ajusta(FormatDateTime('ddmmyy', FecCargo), 'I', 6, _SPCE_); //6 + sReg := sReg + Ajusta('', 'I', 6, _SPCE_); //6 + sReg := sReg + Ajusta(NomCliPres, 'D', 40, _SPCE_); //40 + sReg := sReg + Ajusta('', 'I', 20, _SPCE_); //20 + sReg := sReg + Ajusta(EntRecepPres, 'I', 4, _CERO_); //4 + sReg := sReg + Ajusta(OfiRecepPres, 'I', 4, _CERO_); //4 + sReg := sReg + Ajusta('', 'I', 12, _SPCE_); //12 + sReg := sReg + Ajusta('', 'I', 40, _SPCE_); //40 + sReg := sReg + Ajusta('', 'I', 14, _SPCE_); //14 + sReg := sReg + CRLF; //2 + + if not (length(sReg) = _LL_) then + Error(_LL_); + + StrPCopy(@pReg, sReg); + BlockWrite(NFic, pReg, 1); + + Inc(iTotRegCin); + +end; + + +procedure TCVBNorma1958CSB.CompOrdenante; +var + cT: string; +begin + HayError := False; + sReg := ''; + + ChequearDatos(2); +(* + Ordenante + NomCliOrd + EntOrde + OfiOrde + CcOrde +*) + + // Cdigo de Dato + if FEuro = False then + sPrimerosDigitos := '03' + else + sPrimerosDigitos := '53'; + + if _NORMA_ = _19_ then + sReg := sPrimerosDigitos + '80' + else + if _NORMA_ = _58_ then + sReg := sPrimerosDigitos + '70'; + + Ordenante := AjustaCIF(Ordenante); + + sReg := sReg + Ajusta(Ordenante, 'I', 9, _CERO_); //9 + sReg := sReg + Ajusta(SufijoOrd, 'I', 3, _CERO_); //3 + + if FecCargo = 0 then + FecCargo := now; // Fecha entrega soporte + if FecAbono = 0 then + FecAbono := now; // Fecha para cobrar + + sReg := sReg + Ajusta(FormatDateTime('ddmmyy', FecCargo), 'I', 6, _CERO_); // 6 + + if _NORMA_ = _19_ then + sReg := sReg + Ajusta(FormatDateTime('ddmmyy', FecAbono), 'I', 6, _CERO_) //6 + else + if _NORMA_ = _58_ then + sReg := sReg + Ajusta('', 'I', 6, _SPCE_); //6 + + sReg := sReg + Ajusta(NomCliOrd, 'D', 40, _SPCE_); //40 + sReg := sReg + Ajusta(EntOrde, 'I', 4, _CERO_); //4 + sReg := sReg + Ajusta(OfiOrde, 'I', 4, _CERO_); // 4 + sReg := sReg + Ajusta(DcOrde, 'I', 2, _CERO_); // 2 + sReg := sReg + Ajusta(CcOrde, 'I', 10, _CERO_); // 10 + sReg := sReg + Ajusta('', 'I', 8, _SPCE_); // 8 + + if _NORMA_ = _19_ then + TProc := '01' + else + if _NORMA_ = _58_ then + TProc := '06'; + + sReg := sReg + Ajusta(TProc, 'I', 2, _SPCE_); + // Norma 19="01", norma 58="06" // 2 + sReg := sReg + Ajusta('', 'I', 10, _SPCE_); // 10 + sReg := sReg + Ajusta('', 'I', 40, _SPCE_); // 40 + + if _NORMA_ = _58_ then + begin + sReg := sReg + Ajusta('', 'I', 2, _SPCE_); + sReg := sReg + Ajusta('', 'I', 9, _SPCE_); // provincia 9 caracteres + sReg := sReg + Ajusta('', 'I', 3, _SPCE_); + end + else + if _NORMA_ = _19_ then + sReg := sReg + Ajusta('', 'I', 14, _SPCE_); // 14 + + sReg := sReg + CRLF; //2 + + if not (length(sReg) = _LL_) then + Error(_LL_); + StrPCopy(@pReg, sReg); + BlockWrite(NFic, pReg, 1); + + Inc(iTotRegOrd); + Inc(iTotRegCin); + +end; + + +procedure TCVBNorma1958CSB.CompRegistro; +var + sImporteEu, cT, cIT: string; + iP: integer; + bTieneCuentaBanco: boolean; +begin + HayError := False; + sReg := ''; + bTieneCuentaBanco := True; + + ChequearDatos(3); +(* + Referencia + NomTitDom + EntTitDom + OfiTitDom + CcTitDom + (fImportePts=0) and (FEuro=False) + (fImporteEu=0) and (FEuro=True) +*) + + if (prProced = prSegundo) and ((CampConc1 <> '') or + (CampConc2 <> '') or (CampConc3 <> '') or + (CampConc4 <> '') or (CampConc5 <> '') or + (CampConc6 <> '') or (CampConc7 <> '') or + (CampConc8 <> '') or (CampConc9 <> '') or + (CampConc10 <> '') or (CampConc11 <> '') or + (CampConc12 <> '') or (CampConc13 <> '') or + (CampConc14 <> '') or (CampConc15 <> '') or (CampConc16 <> '')) then + Error(210); + (* + if (prProced=prPrimero) and + ( + (NomTitCta<>'') or (DomTitCta<>'') or (PlzTitCta<>'') or (CPtTitCta<>'') + ) then Error(211); + *) + + if prProced = prPrimero then + begin + if FEuro = False then + sPrimerosDigitos := '06' // Ptas + else + sPrimerosDigitos := '56'; // Euros + + if _NORMA_ = _19_ then + sReg := sPrimerosDigitos + '80' + else + if _NORMA_ = _58_ then + sReg := sPrimerosDigitos + '70'; + + ChequearDatos(4); + cT := EntTitDom + OfiTitDom + DcTitDom + CcTitDom; + if pos(_INDICA_, cT) > 0 then + begin + bTieneCuentaBanco := False; + + EntTitDom := ''; // Si no va domiciliado, entonces debe ir todo a blanco. + OfiTitDom := ''; + DcTitDom := ''; + CcTitDom := ''; + end; + + sReg := sReg + Ajusta(Ordenante, 'I', 9, _CERO_); //9 + sReg := sReg + Ajusta(SufijoOrd, 'I', 3, _CERO_); //3 + sReg := sReg + Ajusta(Referencia, 'D', 12, _CERO_); //12 + sReg := sReg + Ajusta(NomTitDom, 'D', 40, _SPCE_); //40 + sReg := sReg + Ajusta(EntTitDom, 'I', 4, _CERO_); //4 + sReg := sReg + Ajusta(OfiTitDom, 'I', 4, _CERO_); //4 + sReg := sReg + Ajusta(DcTitDom, 'I', 2, _CERO_); + // Creo que es:** //2 + sReg := sReg + Ajusta(CcTitDom, 'I', 10, _CERO_); //10 + + if FEuro = False then + begin + cIT := FormatFloat(_MSK_PT_, fImportePts); + sReg := sReg + Ajusta(cIT, 'I', 10, _CERO_); //10 + end + else + begin + (* Creo que en Euros deben de ir los 2 decimales siempre, pero + no debe salir el punto decimal. O sea, los 2 ltimos dgitos son + siempre los decimales. Repito: Creo. + *) + sImporteEu := FormatFloat(_MSK_EU_, fImporteEu); + iP := pos(',', sImporteEu); + if iP < 1 then + iP := pos('.', sImporteEu); + cIT := copy(sImporteEu, 1, iP - 1); + sImporteEu := cIT + copy(sImporteEu, iP + 1, 2); + sReg := sReg + Ajusta(sImporteEu, 'I', 10, _CERO_); //10 + end; + + sReg := sReg + Ajusta(CodDevol, 'I', 6, _SPCE_); //6 + sReg := sReg + Ajusta(CodRefInt, 'I', 10, _SPCE_); //10 + sReg := sReg + Ajusta(CampConc1, 'D', 40, _SPCE_); //40 + + if _NORMA_ = _58_ then + sReg := sReg + Ajusta(FormatDateTime('ddmmyy', FecVcto), 'D', 8, _SPCE_) + else + if _NORMA_ = _19_ then + sReg := sReg + Ajusta('', 'I', 8, _SPCE_); // 8 + + sReg := sReg + CRLF; //2 + + if not (length(sReg) = _LL_) then + Error(_LL_); + + StrPCopy(@pReg, sReg); + BlockWrite(NFic, pReg, 1); + + Inc(iTotRegOrd); // Registros Ordenantes + Inc(iTotRegCin); // Registros Disco + Inc(iTotDomOrd); // Recibos Ordenante + Inc(iTotDomCin); // Recibos Disco + + if FEuro = False then + begin + iTotImpOrdPts := iTotImpOrdPts + StrToInt(cIT); //fImportePts; + iTotImpCinPts := iTotImpCinPts + StrToInt(FloatToStr(fImportePts)); + end + else + begin + fTotImpOrdEu := fTotImpOrdEu + fImporteEu; + fTotImpCinEu := fTotImpCinEu + fImporteEu; + end; + + + if (CampConc2 <> '') or (CampConc3 <> '') or (CampConc4 <> '') then + begin + sReg := ''; + if FEuro = False then + sPrimerosDigitos := '06' // Ptas + else + sPrimerosDigitos := '56'; // Euros + sReg := sPrimerosDigitos + '81'; + sReg := sReg + Ajusta(Ordenante, 'I', 9, _SPCE_); //9 + sReg := sReg + Ajusta(SufijoOrd, 'I', 3, _CERO_); //3 + sReg := sReg + Ajusta(Referencia, 'D', 12, _SPCE_); //12 + sReg := sReg + Ajusta(CampConc2, 'D', 40, _SPCE_); //40 + sReg := sReg + Ajusta(CampConc3, 'D', 40, _SPCE_); //40 + sReg := sReg + Ajusta(CampConc4, 'D', 40, _SPCE_); //40 + sReg := sReg + Ajusta('', 'I', 14, _SPCE_); //14 + sReg := sReg + CRLF; //2 + + if not (length(sReg) = _LL_) then + Error(_LL_); + + StrPCopy(@pReg, sReg); + BlockWrite(NFic, pReg, 1); + + Inc(iTotRegOrd); + Inc(iTotRegCin); + end; + + if (CampConc5 <> '') or (CampConc6 <> '') or (CampConc7 <> '') then + begin + sReg := ''; + if FEuro = False then + sPrimerosDigitos := '06' // Ptas + else + sPrimerosDigitos := '56'; // Euros + sReg := sPrimerosDigitos + '82'; + sReg := sReg + Ajusta(Ordenante, 'I', 9, _SPCE_); //9 + sReg := sReg + Ajusta(SufijoOrd, 'I', 3, _CERO_); //3 + sReg := sReg + Ajusta(Referencia, 'D', 12, _SPCE_); //12 + sReg := sReg + Ajusta(CampConc5, 'D', 40, _SPCE_); //40 + sReg := sReg + Ajusta(CampConc6, 'D', 40, _SPCE_); //40 + sReg := sReg + Ajusta(CampConc7, 'D', 40, _SPCE_); //40 + sReg := sReg + Ajusta('', 'I', 14, _SPCE_); //14 + sReg := sReg + CRLF; //2 + + if not (length(sReg) = _LL_) then + Error(_LL_); + + StrPCopy(@pReg, sReg); + BlockWrite(NFic, pReg, 1); + + Inc(iTotRegOrd); + Inc(iTotRegCin); + end; + + if (CampConc8 <> '') or (CampConc9 <> '') or (CampConc10 <> '') then + begin + sReg := ''; + if FEuro = False then + sPrimerosDigitos := '06' // Ptas + else + sPrimerosDigitos := '56'; // Euros + sReg := sPrimerosDigitos + '83'; + sReg := sReg + Ajusta(Ordenante, 'I', 9, _SPCE_); //9 + sReg := sReg + Ajusta(SufijoOrd, 'I', 3, _CERO_); //3 + sReg := sReg + Ajusta(Referencia, 'D', 12, _SPCE_); //12 + sReg := sReg + Ajusta(CampConc8, 'D', 40, _SPCE_); //40 + sReg := sReg + Ajusta(CampConc9, 'D', 40, _SPCE_); //40 + sReg := sReg + Ajusta(CampConc10, 'D', 40, _SPCE_); //40 + sReg := sReg + Ajusta('', 'I', 14, _SPCE_); //14 + sReg := sReg + CRLF; //2 + + if not (length(sReg) = _LL_) then + Error(_LL_); + + StrPCopy(@pReg, sReg); + BlockWrite(NFic, pReg, 1); + + Inc(iTotRegOrd); + Inc(iTotRegCin); + end; + + if (CampConc11 <> '') or (CampConc12 <> '') or (CampConc13 <> '') then + begin + sReg := ''; + if FEuro = False then + sPrimerosDigitos := '06' // Ptas + else + sPrimerosDigitos := '56'; // Euros + sReg := sPrimerosDigitos + '84'; + sReg := sReg + Ajusta(Ordenante, 'I', 9, _SPCE_); //9 + sReg := sReg + Ajusta(SufijoOrd, 'I', 3, _CERO_); //3 + sReg := sReg + Ajusta(Referencia, 'D', 12, _SPCE_); //12 + sReg := sReg + Ajusta(CampConc11, 'D', 40, _SPCE_); //40 + sReg := sReg + Ajusta(CampConc12, 'D', 40, _SPCE_); //40 + sReg := sReg + Ajusta(CampConc13, 'D', 40, _SPCE_); //40 + sReg := sReg + Ajusta('', 'I', 14, _SPCE_); //14 + sReg := sReg + CRLF; //2 + + if not (length(sReg) = _LL_) then + Error(_LL_); + + StrPCopy(@pReg, sReg); + BlockWrite(NFic, pReg, 1); + + Inc(iTotRegOrd); + Inc(iTotRegCin); + end; + + + if (CampConc14 <> '') or (CampConc15 <> '') or (CampConc16 <> '') then + begin + sReg := ''; + if FEuro = False then + sPrimerosDigitos := '06' // Ptas + else + sPrimerosDigitos := '56'; // Euros + sReg := sPrimerosDigitos + '85'; + sReg := sReg + Ajusta(Ordenante, 'I', 9, _SPCE_); //9 + sReg := sReg + Ajusta(SufijoOrd, 'I', 3, _CERO_); //3 + sReg := sReg + Ajusta(Referencia, 'D', 12, _SPCE_); //12 + sReg := sReg + Ajusta(CampConc14, 'D', 40, _SPCE_); //40 + sReg := sReg + Ajusta(CampConc15, 'D', 40, _SPCE_); //40 + sReg := sReg + Ajusta(CampConc16, 'D', 40, _SPCE_); //40 + sReg := sReg + Ajusta('', 'I', 14, _SPCE_); //14 + sReg := sReg + CRLF; //2 + + if not (length(sReg) = _LL_) then + Error(_LL_); + + StrPCopy(@pReg, sReg); + BlockWrite(NFic, pReg, 1); + + Inc(iTotRegOrd); + Inc(iTotRegCin); + end; + + + if (_NORMA_ = _58_) and (bTieneCuentaBanco = False) then + begin + // if (NomTitCta<>'') or (DomTitCta<>'') or (PlzTitCta<>'') or (CPtTitCta<>'') then + begin + sReg := ''; + if FEuro = False then + sPrimerosDigitos := '06' // Ptas + else + sPrimerosDigitos := '56'; // Euros + sReg := sPrimerosDigitos + '76'; + sReg := sReg + Ajusta(Ordenante, 'I', 9, _SPCE_); //9 + sReg := sReg + Ajusta(SufijoOrd, 'I', 3, _CERO_); //3 + sReg := sReg + Ajusta(Referencia, 'D', 12, _CERO_); //12 + sReg := sReg + Ajusta(DomTitCta, 'D', 40, _SPCE_); //40 + sReg := sReg + Ajusta(PlzTitCta, 'D', 35, _SPCE_); //35 + sReg := sReg + Ajusta(CPtTitCta, 'D', 5, _SPCE_); //5 + sReg := sReg + Ajusta(LocalidadOrd, 'D', 38, _SPCE_); // 38 + sReg := sReg + Ajusta(CodLocalOrd, 'I', 2, _CERO_); // 2 + sReg := sReg + + Ajusta(FormatDateTime('ddmmyy', FecOrigFormCred), 'I', 6, _SPCE_); + sReg := sReg + Ajusta('', 'I', 8, _SPCE_); // 8 + sReg := sReg + CRLF; //2 + + if not (length(sReg) = _LL_) then + Error(_LL_); + + StrPCopy(@pReg, sReg); + BlockWrite(NFic, pReg, 1); + + Inc(iTotRegOrd); + Inc(iTotRegCin); + end; + end; + end; + + if prProced = prSegundo then + begin + if FEuro = False then + sPrimerosDigitos := '06' // Ptas + else + sPrimerosDigitos := '56'; // Euros + + sReg := sPrimerosDigitos + '80'; + sReg := sReg + Ajusta(Ordenante, 'I', 9, _SPCE_); //9 + sReg := sReg + Ajusta(SufijoOrd, 'I', 3, _CERO_); //3 + sReg := sReg + Ajusta(Referencia, 'D', 12, _SPCE_); //12 + sReg := sReg + Ajusta(NomTitDom, 'D', 40, _SPCE_); //40 + sReg := sReg + Ajusta(EntTitDom, 'I', 4, _CERO_); //4 + sReg := sReg + Ajusta(OfiTitDom, 'I', 4, _CERO_); //4 + sReg := sReg + Ajusta(DcTitDom, 'I', 2, _CERO_); //2 + sReg := sReg + Ajusta(CcTitDom, 'I', 10, _CERO_); //10 + if FEuro = False then + begin + cIT := FormatFloat(_MSK_PT_, fImportePts); + sReg := sReg + Ajusta(cIT, 'I', 10, _CERO_); //10 + end + else + begin + (* Creo que en Euros deben de ir los 2 decimales siempre, pero + no debe salir el punto decimal. O sea, los 2 ltimos dgitos son + siempre los decimales. Repito: Creo. + *) + sImporteEu := FormatFloat(_MSK_EU_, fImporteEu); + iP := pos(',', sImporteEu); + if iP < 1 then + iP := pos('.', sImporteEu); + cIT := copy(sImporteEu, 1, iP - 1); + sImporteEu := cIT + copy(sImporteEu, iP + 1, 2); + sReg := sReg + Ajusta(sImporteEu, 'I', 10, _CERO_); //10 + end; + + sReg := sReg + Ajusta(CodDevol, 'D', 6, _SPCE_); //6 + sReg := sReg + Ajusta(CodRefInt, 'D', 10, _SPCE_); //10 + sReg := sReg + Ajusta(CampConc, 'D', 17, _SPCE_); //17 + sReg := sReg + Ajusta('', 'I', 23, _SPCE_); //23 + sReg := sReg + Ajusta('', 'I', 8, _SPCE_); //8 + sReg := sReg + CRLF; //2 + + if not (length(sReg) = _LL_) then + Error(_LL_); + + StrPCopy(@pReg, sReg); + BlockWrite(NFic, pReg, 1); + + Inc(iTotRegOrd); + Inc(iTotRegCin); + + if FEuro = False then + begin + iTotImpOrdPts := iTotImpOrdPts + StrToInt(cIT); //fImportePts; + iTotImpCinPts := iTotImpCinPts + StrToInt(FloaTtoStr(fImportePts)); + end + else + begin + fTotImpOrdEu := fTotImpOrdEu + fImporteEu; + fTotImpCinEu := fTotImpCinEu + fImporteEu; + end; + + if (NomTitCta <> '') or (DomTitCta <> '') or (PlzTitCta <> '') or (CPtTitCta <> '') then + begin + sReg := ''; + if NomTitCta = '' then + error(210); + + if FEuro = False then + sPrimerosDigitos := '06' // Ptas + else + sPrimerosDigitos := '56'; // Euros + + sReg := sPrimerosDigitos + '86'; + sReg := sReg + Ajusta(Ordenante, 'I', 9, _SPCE_); //9 + sReg := sReg + Ajusta(SufijoOrd, 'I', 3, _CERO_); //3 + sReg := sReg + Ajusta(Referencia, 'D', 12, _SPCE_); //12 + sReg := sReg + Ajusta(NomTitCta, 'D', 40, _SPCE_); //40 + sReg := sReg + Ajusta(DomTitCta, 'D', 40, _SPCE_); //40 + sReg := sReg + Ajusta(PlzTitCta, 'D', 35, _SPCE_); //35 + sReg := sReg + Ajusta(CPtTitCta, 'D', 5, _SPCE_); //5 + sReg := sReg + Ajusta('', 'I', 14, _SPCE_); //14 + sReg := sReg + CRLF; //2 + + if not (length(sReg) = _LL_) then + Error(_LL_); + StrPCopy(@pReg, sReg); + BlockWrite(NFic, pReg, 1); + + Inc(iTotRegOrd); + Inc(iTotRegCin); + end; + + end; + + IniRegistro; +end; + + +procedure TCVBNorma1958CSB.FinOrdenan; +var + sTotImpOrdEu, cT, cIT: string; + iP: integer; +begin + HayError := False; + sReg := ''; + + Inc(iTotRegOrd); + Inc(iTotRegCin); + + if FEuro = False then + sPrimerosDigitos := '08' // Ptas + else + sPrimerosDigitos := '58'; // Euros + + + if _NORMA_ = _19_ then + sReg := sPrimerosDigitos + '80' // Norma 19 / Norma 58=70 + else + if _NORMA_ = _58_ then + sReg := sPrimerosDigitos + '70'; + + Ordenante := AjustaCif(Ordenante); + sReg := sReg + Ajusta(Ordenante, 'I', 9, _CERO_); //9 + sReg := sReg + Ajusta(SufijoOrd, 'I', 3, _CERO_); //3 + sReg := sReg + Ajusta('', 'D', 12, _SPCE_); //12 + sReg := sReg + Ajusta('', 'D', 40, _SPCE_); //40 + sReg := sReg + Ajusta('', 'D', 20, _SPCE_); //20 + if FEuro = False then {float} + sReg := sReg + Ajusta(IntToStr(iTotImpOrdPts), 'I', 10, _CERO_) //10 + else + begin + (* Creo que en Euros deben de ir los 2 decimales siempre, pero + no debe salir el punto decimal. O sea, los 2 ltimos dgitos son + siempre los decimales. Repito: Creo. + *) + sTotImpOrdEu := FormatFloat(_MSK_EU_, fTotImpOrdEu); + iP := pos(',', sTotImpOrdEu); + if iP < 1 then + iP := pos('.', sTotImpOrdEu); + cIT := copy(sTotImpOrdEu, 1, iP - 1); + sTotImpOrdEu := cIT + copy(sTotImpOrdEu, iP + 1, 2); + sReg := sReg + Ajusta(sTotImpOrdEu, 'I', 10, _CERO_); //10 + end; + + sReg := sReg + Ajusta('', 'D', 6, _SPCE_); //6 + sReg := sReg + Ajusta(IntToStr(iTotDomOrd), 'I', 10, _CERO_); //10 + sReg := sReg + Ajusta(IntToStr(iTotRegOrd), 'I', 10, _CERO_); //10 + sReg := sReg + Ajusta('', 'I', 20, _SPCE_); //20 + sReg := sReg + Ajusta('', 'I', 18, _SPCE_); //18 + sReg := sReg + CRLF; //2 + + if not (length(sReg) = _LL_) then + Error(_LL_); + + StrPCopy(@pReg, sReg); + BlockWrite(NFic, pReg, 1); + + IniOrdenan; +end; + + +procedure TCVBNorma1958CSB.Cerrar; +var + sTotImpCinEu, cT, cIT: string; + iP: integer; +begin + HayError := False; + sReg := ''; + + Inc(iTotRegCin); + + if FEuro = False then + sPrimerosDigitos := '09' + else + sPrimerosDigitos := '59'; + + if _NORMA_ = _19_ then + sReg := sPrimerosDigitos + '80' // 70 en norma 58 + else + if _NORMA_ = _58_ then + sReg := sPrimerosDigitos + '70'; + + Presentador := AjustaCIF(Presentador); + sReg := sReg + Ajusta(Presentador, 'I', 9, _CERO_); //9 + sReg := sReg + Ajusta(SufijoPres, 'I', 3, _CERO_); //3 + sReg := sReg + Ajusta('', 'D', 12, _SPCE_); //12 + sReg := sReg + Ajusta('', 'D', 40, _SPCE_); //40 + sReg := sReg + Ajusta('1', 'I', 4, _CERO_); + // Ordenantes. En este programa ser siempre = 1 // 4 + sReg := sReg + Ajusta('', 'D', 16, _SPCE_); //16 + + if FEuro = False then + begin + cIT := FormatFloat(_MSK_PT_, iTotImpCinPts); + sReg := sReg + Ajusta(cIT, 'I', 10, _CERO_); //10 + end + else + begin + (* Creo que en Euros deben de ir los 2 decimales siempre, pero + no debe salir el punto decimal. O sea, los 2 ltimos dgitos son + siempre los decimales. Repito: Creo. No tengo aqu las normas actualizadas para el euro. + *) + sTotImpCinEu := FormatFloat(_MSK_EU_, fTotImpCinEu); + iP := pos(',', sTotImpCinEu); + if iP < 1 then + iP := pos('.', sTotImpCinEu); + cIT := copy(sTotImpCinEu, 1, iP - 1); + sTotImpCinEu := cIT + copy(sTotImpCinEu, iP + 1, 2); + sReg := sReg + Ajusta(sTotImpCinEu, 'I', 10, _CERO_); //10 + end; + sReg := sReg + Ajusta('', 'I', 6, _SPCE_); //6 + sReg := sReg + Ajusta(IntToStr(iTotDomCin), 'I', 10, _CERO_); //10 + sReg := sReg + Ajusta(IntToStr(iTotRegCin), 'I', 10, _CERO_); //10 + sReg := sReg + Ajusta('', 'D', 20, _SPCE_); //20 + sReg := sReg + Ajusta('', 'D', 18, _SPCE_); //18 + sReg := sReg + CRLF; //2 + + if not (length(sReg) = _LL_) then + Error(_LL_); + + StrPCopy(@pReg, sReg); + BlockWrite(NFic, pReg, 1); + + CloseFile(NFic); +end; + + +procedure TCVBNorma1958CSB.Error(iErr: integer); +begin + NrError := iErr; + HayError := True; + if Assigned(FEnCasoError) then + FEnCasoError(Self) + else + if FDepura = False then + begin + CloseFile(NFic); + if NrError = _LL_ then + raise Exception.Create('Error en la longitud de la lnea') + else + raise Exception.Create('Error en la generacin del fichero'); + end; +end; + + +procedure TCVBNorma1958CSB.ChequearDatos(iParte: integer); +var + bError: boolean; +begin + bError := False; + + if iParte = 1 then + begin + if ((Presentador = '') or (NomCliPres = '') or + (EntRecepPres = '') or (OfiRecepPres = '')) then + begin + if Presentador = '' then + Presentador := _INDICA_; + if NomCliPres = '' then + NomCliPres := _INDICA_; + if EntRecepPres = '' then + EntRecepPres := _INDICA_; + if OfiRecepPres = '' then + OfiRecepPres := _INDICA_; + bError := True; + end; + end + else + if iParte = 2 then + begin + if ((Ordenante = '') or (NomCliOrd = '') or + (EntOrde = '') or (OfiOrde = '') or + (CcOrde = '')) then + begin + if Ordenante = '' then + Ordenante := _INDICA_; + if NomCliOrd = '' then + NomCliOrd := _INDICA_; + if EntOrde = '' then + EntOrde := _INDICA_; + if OfiOrde = '' then + OfiOrde := _INDICA_; + if CcOrde = '' then + CcOrde := _INDICA_; + bError := True; + end; + end + else + if (iParte = 3) or (iParte = 4) then + begin + if ((Referencia = '') or (NomTitDom = '') or + (EntTitDom = '') or (OfiTitDom = '') or + (ccTitDom = '')) then + begin + if Referencia = '' then + Referencia := _INDICA_; + if NomTitDom = '' then + NomTitDom := _INDICA_; + if EntTitDom = '' then + EntTitDom := _INDICA_; + if OfiTitDom = '' then + OfiTitDom := _INDICA_; + if ccTitDom = '' then + ccTitDom := _INDICA_; + bError := True; + end; + end; + + if bError then + ShowMessage('' + CRLF + + 'Faltan datos al procesar el siguiente registro: ' + CRLF + CRLF + + 'Cdigo Cli/Pro: ' + Referencia + CRLF + + 'Nombre Titular: ' + NomTitDom + CRLF + + 'Entidad Domiciliar: ' + EntTitDom + CRLF + + 'Oficina Domiciliar: ' + OfiTitDom + CRLF + + 'Cuenta Domiciliar: ' + ccTitDom + CRLF + + 'Presentador: ' + Presentador + CRLF + + 'Nombre Cliente Pres:' + NomCliPres + CRLF + + 'Entidad Receptora P:' + EntRecepPres + CRLF + + 'Oficina Receptora P:' + OfiRecepPres + CRLF + + 'Ordenante: ' + Ordenante + CRLF + + 'Nombre Cliente Ord.:' + NomCliOrd + CRLF + + 'Entidad Ordenante: ' + EntOrde + CRLF + + 'Oficina Ordenante: ' + OfiOrde + CRLF + + 'Cuenta Ordenante: ' + CcOrde + ); + + if iParte = 3 then + begin + if bError then + begin + if ((fImportePts = 0) and (FEuro = False)) or + ((fImporteEu = 0) and (FEuro = True)) then + begin + ShowMessage(' El importe no puede ser cero !!!'); + Error(27); + end; + end; + end; +end; + + +procedure Register; +begin + RegisterComponents('CVB', [TCVBNORMA1958CSB]); +end; + + +end. diff --git a/Source/Modulos/Banca electronica/Utiles/CVBNorma19CSB.pas b/Source/Modulos/Banca electronica/Utiles/CVBNorma19CSB.pas new file mode 100644 index 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 ms por el /0 + prProced: TProcedimiento; + HayError: boolean; + + FTotOrd: integer; + FTotRem: integer; + FEuro: boolean; + FDepura: boolean; + + sPrimerosDigitos: string; + NFic: file; + + iTotImpOrdEu: double; + iTotImpOrdPts: integer; + iTotDomOrd: integer; + iTotRegOrd: integer; + + iTotImpCinEu: double; + iTotImpCinPts: double; + iTotDomCin: integer; + iTotRegCin: integer; + FEnCasoError: TNotifyEvent; + sReg: string; + + _19_, _58_: integer; + + + { Private declarations } + protected + procedure ChequearDatos(iParte: integer); + procedure Error(iErr: integer); dynamic; + { Protected declarations } + public + // Impresion19: Procedure (O: TCVBNorma19CSB; Ordenante,NomCliOrd:String;Importe:String); + + + + (* Intento reutilizar esta norma para generar tambin la norma 58 + Norma = 19 = recibos al cobro + norma = 58 = recibos al descuento + *) + _NORMA_: integer; + + + NrError: integer; + CRLF: string; + { El PRESENTADOR (el que fsicamente hace la presentacin del soporte magntico + a la Entidad de Deposito. Puede ser el mismo Cliente Ordenante, pero no necesariamente + y a su vez ser una persona fsica o jurdica } + + + FNomFic: string; // Nombre del archivo en disco + + + Presentador: string; //9 + SufijoPres: string; //3 + NomCliPres: string; //40 + EntRecepPres: string; //4 + OfiRecepPres: string; //4 + + + { El ordenante (El que emite y en nombre del cual se adeudan las domiciliaciones. Puede ser + una persona fsica o jurdica} + // el que cobra + Ordenante: string; //9 + SufijoOrd: string; //3 + NomCliOrd: string; //40 + EntOrde: string; //4 + OfiOrde: string; //4 + DcOrde: string; //2 + CcOrde: string; //2 + + // Datos Generales + + FecCargo: TDateTime; + FecSoporte: TDateTime; + TProc: string; //2 + + // el que paga + Referencia: string; //12 + NomTitDom: string; //40 + EntTitDom: string; //4 + OfiTitDom: string; //4 + DcTitDom: string; //2 + CcTitDom: string; //10 + NomTitCta: string; //40 + DomTitCta: string; //40 + PlzTitCta: string; //35 + CPtTitCta: string; //5 + + ImportePts: double; + ImporteEu: double; + CodDevol: string; // 6 + CodRefInt: string; // 10 + + CampConc: string; //40 + CampConc1: string; //40 + CampConc2: string; //40 + CampConc3: string; //40 + CampConc4: string; //40 + CampConc5: string; //40 + CampConc6: string; //40 + CampConc7: string; //40 + CampConc8: string; //40 + CampConc9: string; //40 + CampConc10: string; //40 + CampConc11: string; //40 + CampConc12: string; //40 + CampConc13: string; //40 + CampConc14: string; //40 + CampConc15: string; //40 + CampConc16: string; //40 + + + + constructor Create(AOwner: TComponent); override; + //destructor free; + procedure Abrir; + procedure IniOrdenan; + procedure IniRegistro; + procedure CompCabecera; + procedure CompOrdenante; + procedure CompRegistro; + procedure FinOrdenan; + procedure Cerrar; + property TotOrd: integer Read FTotOrd; + property TotRem: integer Read FTotRem; + { Public declarations } + published + property NomFichero: string Read FNomFic Write FNomFic; + property Procedimiento: TProcedimiento + Read prProced Write prProced default prPrimero; + property Euros: boolean Read FEuro Write FEuro default False; + property Depura: boolean Read FDepura Write FDepura default False; + property EnCasoError: TNotifyEvent Read FEnCasoError Write FEnCasoError; + { Published declarations } + end; + +procedure Register; + +implementation + +constructor TCVBNorma19CSB.Create(AOwner: TComponent); +begin + inherited Create(AOwner); + {Asignar la propiedades por defecto} + + _19_ := 19; + _58_ := 58; + +end; + +//******************************************************************************* + +procedure TCVBNorma19CSB.Abrir; +begin + HayError := False; + + + AssignFile(NFic, FNomFic); +{$I+} + rewrite(Nfic, 164); +{$I-} + if IOResult <> 0 then + error(0); + + iTotImpOrdEu := 0; + iTotImpOrdPts := 0; + iTotDomOrd := 0; + iTotRegOrd := 0; + + iTotImpCinEu := 0; + iTotImpCinPts := 0; + iTotDomCin := 0; + iTotRegCin := 0; + + IniOrdenan; + IniRegistro; + + if CRLF = '' then + CRLF := #13 + #10; + + if FEuro = False then + sPrimerosDigitos := '01' + else + sPrimerosDigitos := '51'; +end; + +procedure TCVBNorma19CSB.IniOrdenan; +begin + iTotImpOrdEu := 0; + iTotImpOrdPts := 0; + iTotDomOrd := 0; + iTotRegOrd := 0; + Ordenante := ''; + NomCliOrd := ''; + EntOrde := ''; + OfiOrde := ''; + DcOrde := ''; + CcOrde := ''; + + if _NORMA_ = _19_ then + TProc := '01' + else + if _NORMA_ = _58_ then + TProc := '06'; + +end; + +procedure TCVBNorma19CSB.IniRegistro; +begin + NomTitDom := ''; //40 + EntTitDom := ''; //4 + OfiTitDom := ''; //4 + DcTitDom := ''; //2 + CcTitDom := ''; //10 + ImportePts := 0; + ImporteEu := 0; + CodDevol := ''; //6 + CodRefInt := ''; //10 + CampConc1 := ''; //40 + CampConc2 := ''; //40 + CampConc3 := ''; //40 + CampConc4 := ''; //40 + CampConc5 := ''; //40 + CampConc6 := ''; //40 + CampConc7 := ''; //40 + CampConc8 := ''; //40 + CampConc9 := ''; //40 + CampConc10 := ''; //40 + CampConc11 := ''; //40 + CampConc12 := ''; //40 + CampConc13 := ''; //40 + CampConc14 := ''; //40 + CampConc15 := ''; //40 + CampConc16 := ''; //40 + NomTitCta := ''; //40 + DomTitCta := ''; //40 + PlzTitCta := ''; //35 + CPtTitCta := ''; //5 +end; + +procedure TCVBNorma19CSB.CompCabecera; +var + iX: integer; + cT, cIT: string; +begin + HayError := False; + + sReg := ''; + + ChequearDatos(1); +(* + if Presentador='' then Error(1); + if NomCliPres='' then Error(2); + if EntRecepPres='' then Error(4); + if OfiRecepPres='' then Error(5); +*) + + if _NORMA_ = _19_ then + sReg := sPrimerosDigitos + '80' + else + if _NORMA_ = _58_ then + sReg := sPrimerosDigitos + '70'; + + + Presentador := AjustaCIF(Presentador); + + sReg := sReg + Ajusta(Presentador, 'I', 9, '0'); //9 + sReg := sReg + Ajusta(SufijoPres, 'I', 3, '0'); //3 + sReg := sReg + Ajusta(FormatDateTime('ddmmyy', FecSoporte), 'I', 6, ' '); //6 + sReg := sReg + Ajusta('', 'I', 6, ' '); //6 + sReg := sReg + Ajusta(NomCliPres, 'D', 40, ' '); //40 + sReg := sReg + Ajusta('', 'I', 20, ' '); //20 + sReg := sReg + Ajusta(EntRecepPres, 'I', 4, '0'); //4 + sReg := sReg + Ajusta(OfiRecepPres, 'I', 4, '0'); //4 + sReg := sReg + Ajusta('', 'I', 12, ' '); //12 + sReg := sReg + Ajusta('', 'I', 40, ' '); //40 + sReg := sReg + Ajusta('', 'I', 14, ' '); //14 + sReg := sReg + CRLF; //2 + + if not (length(sReg) = 164) then + Error(6); + + StrPCopy(@pReg, sReg); + BlockWrite(NFic, pReg, 1); + Inc(iTotRegCin); + +end; + +procedure TCVBNorma19CSB.CompOrdenante; +begin + HayError := False; + sReg := ''; + + ChequearDatos(2); +(* + if Ordenante='' then Error(10); + if NomCliOrd='' then Error(13); + if EntOrde='' then Error(14); + if OfiOrde='' then Error(15); + if CcOrde='' then Error(17); +*) + + // Cdigo de Dato + if FEuro = False then + sPrimerosDigitos := '03' + else + sPrimerosDigitos := '53'; + + if _NORMA_ = _19_ then + sReg := sPrimerosDigitos + '80' + else + if _NORMA_ = _58_ then + sReg := sPrimerosDigitos + '70'; + + Ordenante := AjustaCIF(Ordenante); + + sReg := sReg + Ajusta(Ordenante, 'I', 9, '0'); //9 + sReg := sReg + Ajusta(SufijoOrd, 'I', 3, '0'); //3 + sReg := sReg + Ajusta(FormatDateTime('ddmmyy', FecSoporte), 'I', 6, ' '); //6 + + if _NORMA_ = _19_ then + sReg := sReg + Ajusta(FormatDateTime('ddmmyy', FecCargo), 'I', 6, '0') //6 + else + if _NORMA_ = _58_ then + sReg := sReg + Ajusta('', 'I', 6, ' '); //6 + + sReg := sReg + Ajusta(NomCliOrd, 'D', 40, ' '); //40 + sReg := sReg + Ajusta(EntOrde, 'I', 4, '0'); //4 + sReg := sReg + Ajusta(OfiOrde, 'I', 4, '0'); // 4 + sReg := sReg + Ajusta(DcOrde, 'I', 2, '0'); // 2 + sReg := sReg + Ajusta(CcOrde, 'I', 10, '0'); // 10 + sReg := sReg + Ajusta('', 'I', 8, ' '); // 8 + + if _NORMA_ = _19_ then + TProc := '01' + else + if _NORMA_ = _58_ then + TProc := '06'; + + sReg := sReg + Ajusta(TProc, 'I', 2, ' '); // Norma 19="01", norma 58="06" // 2 + sReg := sReg + Ajusta('', 'I', 10, ' '); // 10 + sReg := sReg + Ajusta('', 'I', 40, ' '); // 40 + + if _NORMA_ = _58_ then + begin + sReg := sReg + Ajusta('', 'I', 2, ' '); + sReg := sReg + Ajusta('', 'I', 9, ' '); // provincia 9 caracteres + sReg := sReg + Ajusta('', 'I', 3, ' '); + end + else + if _NORMA_ = _19_ then + sReg := sReg + Ajusta('', 'I', 14, ' '); // 14 + + sReg := sReg + CRLF; //2 + + if not (length(sReg) = 164) then + Error(18); + StrPCopy(@pReg, sReg); + BlockWrite(NFic, pReg, 1); + Inc(iTotRegOrd); + Inc(iTotRegCin); + +end; + +procedure TCVBNorma19CSB.CompRegistro; +var + sImporteEu, cT, cIT: string; + iP: integer; +begin + HayError := False; + sReg := ''; + + ChequearDatos(3); +(* + if Referencia='' then Error(21); + if NomTitDom='' then Error(22); + if EntTitDom='' then Error(23); + if OfiTitDom='' then Error(24); + if CcTitDom='' then Error(26); + if (ImportePts=0) and (FEuro=False) then Error(27); + if (ImporteEu=0) and (FEuro=True) then Error(28); +*) + + if (prProced = prSegundo) and ((CampConc1 <> '') or + (CampConc2 <> '') or (CampConc3 <> '') or + (CampConc4 <> '') or (CampConc5 <> '') or + (CampConc6 <> '') or (CampConc7 <> '') or + (CampConc8 <> '') or (CampConc9 <> '') or + (CampConc10 <> '') or (CampConc11 <> '') or + (CampConc12 <> '') or (CampConc13 <> '') or + (CampConc14 <> '') or (CampConc15 <> '') or (CampConc16 <> '')) then + Error(210); + if (prProced = prPrimero) and ((NomTitCta <> '') or + (DomTitCta <> '') or (PlzTitCta <> '') or (CPtTitCta <> '')) then + Error(211); + + + + if prProced = prPrimero then + begin + if FEuro = False then + sPrimerosDigitos := '06' // Ptas + else + sPrimerosDigitos := '56'; // Euros + + if _NORMA_ = _19_ then + sReg := sPrimerosDigitos + '80' + else + if _NORMA_ = _58_ then + sReg := sPrimerosDigitos + '70'; + + sReg := sReg + Ajusta(Ordenante, 'I', 9, '0'); //9 + sReg := sReg + Ajusta(SufijoOrd, 'I', 3, '0'); //3 + sReg := sReg + Ajusta(Referencia, 'D', 12, '0'); //12 + sReg := sReg + Ajusta(NomTitDom, 'D', 40, ' '); //40 + sReg := sReg + Ajusta(EntTitDom, 'I', 4, '0'); //4 + sReg := sReg + Ajusta(OfiTitDom, 'I', 4, '0'); //4 + sReg := sReg + Ajusta(DcTitDom, 'I', 2, '0'); // Creo que es:** //2 + sReg := sReg + Ajusta(CcTitDom, 'I', 10, '0'); //10 + + cT := EntTitDom + OfiTitDom + DcTitDom + CcTitDom; + if pos('0000000000', cT) > 0 then + if not (_NORMA_ = _58_) then + ChequearDatos(4); + + + if FEuro = False then {float} + begin + cIT := FormatFloat('0000000000', ImportePts); + + // sReg := sReg + Ajusta (IntToStr(ImportePts),'I',10,'0') //10 + sReg := sReg + Ajusta(cIT, 'I', 10, '0'); //10 + + end + else + begin + (* Creo que en Euros deben de ir los 2 decimales siempre, pero + no debe salir el punto decimal. O sea, los 2 ltimos dgitos son + siempre los decimales. Repito: Creo. + *) + Str(ImporteEu: 10: 2, sImporteEu); + iP := pos(',', sImporteEu); + if iP < 1 then + iP := pos('.', sImporteEu); + cT := copy(sImporteEu, 1, iP - 1); + sImporteEu := cT + copy(sImporteEu, iP + 1, 2); + + sReg := sReg + Ajusta(sImporteEu, 'I', 10, '0'); //10 + end; + + sReg := sReg + Ajusta(CodDevol, 'D', 6, ' '); //6 + sReg := sReg + Ajusta(CodRefInt, 'D', 10, ' '); //10 + sReg := sReg + Ajusta(CampConc1, 'D', 40, ' '); //40 + + if _NORMA_ = _58_ then + sReg := sReg + Ajusta(FormatDateTime('ddmmyy', FecCargo), 'D', 8, ' ') + else + if _NORMA_ = _19_ then + sReg := sReg + Ajusta('', 'I', 8, ' '); // 8 + + sReg := sReg + CRLF; //2 + + if not (length(sReg) = 164) then + Error(200); + + StrPCopy(@pReg, sReg); + BlockWrite(NFic, pReg, 1); + + Inc(iTotRegOrd); + Inc(iTotRegCin); + + + Inc(iTotDomOrd); ///////////////----------------- + Inc(iTotDomCin); ///////////////----------------- + + + iTotImpOrdPts := iTotImpOrdPts + StrToInt(cIT); //ImportePts; + iTotImpCinPts := iTotImpCinPts + ImportePts; + iTotImpOrdEu := iTotImpOrdEu + ImporteEu; + iTotImpCinEu := iTotImpCinEu + ImporteEu; + + + if (CampConc2 <> '') or (CampConc3 <> '') or (CampConc4 <> '') then + begin + sReg := ''; + if FEuro = False then + sPrimerosDigitos := '06' // Ptas + else + sPrimerosDigitos := '56'; // Euros + sReg := sPrimerosDigitos + '81'; + sReg := sReg + Ajusta(Ordenante, 'I', 9, ' '); //9 + sReg := sReg + Ajusta(SufijoOrd, 'I', 3, '0'); //3 + sReg := sReg + Ajusta(Referencia, 'D', 12, ' '); //12 + sReg := sReg + Ajusta(CampConc2, 'D', 40, ' '); //40 + sReg := sReg + Ajusta(CampConc3, 'D', 40, ' '); //40 + sReg := sReg + Ajusta(CampConc4, 'D', 40, ' '); //40 + sReg := sReg + Ajusta('', 'I', 14, ' '); //14 + sReg := sReg + CRLF; //2 + + if not (length(sReg) = 164) then + Error(201); + + StrPCopy(@pReg, sReg); + BlockWrite(NFic, pReg, 1); + Inc(iTotRegOrd); + Inc(iTotRegCin); + end; + + if (CampConc5 <> '') or (CampConc6 <> '') or (CampConc7 <> '') then + begin + sReg := ''; + if FEuro = False then + sPrimerosDigitos := '06' // Ptas + else + sPrimerosDigitos := '56'; // Euros + sReg := sPrimerosDigitos + '82'; + sReg := sReg + Ajusta(Ordenante, 'I', 9, ' '); //9 + sReg := sReg + Ajusta(SufijoOrd, 'I', 3, '0'); //3 + sReg := sReg + Ajusta(Referencia, 'D', 12, ' '); //12 + sReg := sReg + Ajusta(CampConc5, 'D', 40, ' '); //40 + sReg := sReg + Ajusta(CampConc6, 'D', 40, ' '); //40 + sReg := sReg + Ajusta(CampConc7, 'D', 40, ' '); //40 + sReg := sReg + Ajusta('', 'I', 14, ' '); //14 + sReg := sReg + CRLF; //2 + + if not (length(sReg) = 164) then + Error(202); + + StrPCopy(@pReg, sReg); + BlockWrite(NFic, pReg, 1); + Inc(iTotRegOrd); + Inc(iTotRegCin); + end; + + if (CampConc8 <> '') or (CampConc9 <> '') or (CampConc10 <> '') then + begin + sReg := ''; + if FEuro = False then + sPrimerosDigitos := '06' // Ptas + else + sPrimerosDigitos := '56'; // Euros + sReg := sPrimerosDigitos + '83'; + sReg := sReg + Ajusta(Ordenante, 'I', 9, ' '); //9 + sReg := sReg + Ajusta(SufijoOrd, 'I', 3, '0'); //3 + sReg := sReg + Ajusta(Referencia, 'D', 12, ' '); //12 + sReg := sReg + Ajusta(CampConc8, 'D', 40, ' '); //40 + sReg := sReg + Ajusta(CampConc9, 'D', 40, ' '); //40 + sReg := sReg + Ajusta(CampConc10, 'D', 40, ' '); //40 + sReg := sReg + Ajusta('', 'I', 14, ' '); //14 + sReg := sReg + CRLF; //2 + + if not (length(sReg) = 164) then + Error(203); + + StrPCopy(@pReg, sReg); + BlockWrite(NFic, pReg, 1); + Inc(iTotRegOrd); + Inc(iTotRegCin); + end; + + if (CampConc11 <> '') or (CampConc12 <> '') or (CampConc13 <> '') then + begin + sReg := ''; + if FEuro = False then + sPrimerosDigitos := '06' // Ptas + else + sPrimerosDigitos := '56'; // Euros + sReg := sPrimerosDigitos + '84'; + sReg := sReg + Ajusta(Ordenante, 'I', 9, ' '); //9 + sReg := sReg + Ajusta(SufijoOrd, 'I', 3, '0'); //3 + sReg := sReg + Ajusta(Referencia, 'D', 12, ' '); //12 + sReg := sReg + Ajusta(CampConc11, 'D', 40, ' '); //40 + sReg := sReg + Ajusta(CampConc12, 'D', 40, ' '); //40 + sReg := sReg + Ajusta(CampConc13, 'D', 40, ' '); //40 + sReg := sReg + Ajusta('', 'I', 14, ' '); //14 + sReg := sReg + CRLF; //2 + + if not (length(sReg) = 164) then + Error(204); + + StrPCopy(@pReg, sReg); + BlockWrite(NFic, pReg, 1); + Inc(iTotRegOrd); + Inc(iTotRegCin); + end; + + + if (CampConc14 <> '') or (CampConc15 <> '') or (CampConc16 <> '') then + begin + sReg := ''; + if FEuro = False then + sPrimerosDigitos := '06' // Ptas + else + sPrimerosDigitos := '56'; // Euros + sReg := sPrimerosDigitos + '85'; + sReg := sReg + Ajusta(Ordenante, 'I', 9, ' '); //9 + sReg := sReg + Ajusta(SufijoOrd, 'I', 3, '0'); //3 + sReg := sReg + Ajusta(Referencia, 'D', 12, ' '); //12 + sReg := sReg + Ajusta(CampConc14, 'D', 40, ' '); //40 + sReg := sReg + Ajusta(CampConc15, 'D', 40, ' '); //40 + sReg := sReg + Ajusta(CampConc16, 'D', 40, ' '); //40 + sReg := sReg + Ajusta('', 'I', 14, ' '); //14 + sReg := sReg + CRLF; //2 + + if not (length(sReg) = 164) then + Error(205); + + StrPCopy(@pReg, sReg); + BlockWrite(NFic, pReg, 1); + Inc(iTotRegOrd); + Inc(iTotRegCin); + end; + + if (NomTitCta <> '') or (DomTitCta <> '') or (PlzTitCta <> '') or (CPtTitCta <> '') then + begin + sReg := ''; + if FEuro = False then + sPrimerosDigitos := '06' // Ptas + else + sPrimerosDigitos := '56'; // Euros + sReg := sPrimerosDigitos + '86'; + sReg := sReg + Ajusta(Ordenante, 'I', 9, ' '); //9 + sReg := sReg + Ajusta(SufijoOrd, 'I', 3, '0'); //3 + sReg := sReg + Ajusta(Referencia, 'D', 12, ' '); //12 + sReg := sReg + Ajusta(NomTitCta, 'D', 40, ' '); //40 + sReg := sReg + Ajusta(DomTitCta, 'D', 40, ' '); //40 + sReg := sReg + Ajusta(PlzTitCta, 'D', 35, ' '); //35 + sReg := sReg + Ajusta(CPtTitCta, 'D', 5, ' '); //5 + sReg := sReg + Ajusta('', 'I', 14, ' '); //14 + sReg := sReg + CRLF; //2 + + if not (length(sReg) = 164) then + Error(206); + + StrPCopy(@pReg, sReg); + BlockWrite(NFic, pReg, 1); + Inc(iTotRegOrd); + Inc(iTotRegCin); + end; + end; + + if prProced = prSegundo then + begin + if FEuro = False then + sPrimerosDigitos := '06' // Ptas + else + sPrimerosDigitos := '56'; // Euros + + sReg := sPrimerosDigitos + '80'; + sReg := sReg + Ajusta(Ordenante, 'I', 9, ' '); //9 + sReg := sReg + Ajusta(SufijoOrd, 'I', 3, '0'); //3 + sReg := sReg + Ajusta(Referencia, 'D', 12, ' '); //12 + sReg := sReg + Ajusta(NomTitDom, 'D', 40, ' '); //40 + sReg := sReg + Ajusta(EntTitDom, 'I', 4, '0'); //4 + sReg := sReg + Ajusta(OfiTitDom, 'I', 4, '0'); //4 + sReg := sReg + Ajusta(DcTitDom, 'I', 2, '0'); //2 + sReg := sReg + Ajusta(CcTitDom, 'I', 10, '0'); //10 + if FEuro = False then {float} + begin + cIT := FormatFloat('0000000000', ImportePts); + // sReg := sReg + Ajusta (IntToStr(ImportePts),'I',10,'0') //10 + sReg := sReg + Ajusta(cIT, 'I', 10, '0'); //10 + end + else + begin + (* Creo que en Euros deben de ir los 2 decimales siempre, pero + no debe salir el punto decimal. O sea, los 2 ltimos dgitos son + siempre los decimales. Repito: Creo. + *) + Str(ImporteEu: 10: 2, sImporteEu); + iP := pos(',', sImporteEu); + if iP < 1 then + iP := pos('.', sImporteEu); + cT := copy(sImporteEu, 1, iP - 1); + sImporteEu := cT + copy(sImporteEu, iP + 1, 2); + + sReg := sReg + Ajusta(sImporteEu, 'I', 10, '0'); //10 + end; + + sReg := sReg + Ajusta(CodDevol, 'D', 6, ' '); //6 + sReg := sReg + Ajusta(CodRefInt, 'D', 10, ' '); //10 + sReg := sReg + Ajusta(CampConc, 'D', 17, ' '); //17 + sReg := sReg + Ajusta('', 'I', 23, ' '); //23 + sReg := sReg + Ajusta('', 'I', 8, ' '); //8 + sReg := sReg + CRLF; //2 + + if not (length(sReg) = 164) then + Error(207); + + StrPCopy(@pReg, sReg); + BlockWrite(NFic, pReg, 1); + Inc(iTotRegOrd); + Inc(iTotRegCin); + iTotImpOrdPts := iTotImpOrdPts + StrToInt(cIT); //ImportePts; + iTotImpCinPts := iTotImpCinPts + ImportePts; + iTotImpOrdEu := iTotImpOrdEu + ImporteEu; + iTotImpCinEu := iTotImpCinEu + ImporteEu; + + + if (NomTitCta <> '') or (DomTitCta <> '') or (PlzTitCta <> '') or (CPtTitCta <> '') then + begin + sReg := ''; + if NomTitCta = '' then + error(210); + + if FEuro = False then + sPrimerosDigitos := '06' // Ptas + else + sPrimerosDigitos := '56'; // Euros + + sReg := sPrimerosDigitos + '86'; + sReg := sReg + Ajusta(Ordenante, 'I', 9, ' '); //9 + sReg := sReg + Ajusta(SufijoOrd, 'I', 3, '0'); //3 + sReg := sReg + Ajusta(Referencia, 'D', 12, ' '); //12 + sReg := sReg + Ajusta(NomTitCta, 'D', 40, ' '); //40 + sReg := sReg + Ajusta(DomTitCta, 'D', 40, ' '); //40 + sReg := sReg + Ajusta(PlzTitCta, 'D', 35, ' '); //35 + sReg := sReg + Ajusta(CPtTitCta, 'D', 5, ' '); //5 + sReg := sReg + Ajusta('', 'I', 14, ' '); //14 + sReg := sReg + CRLF; //2 + + if not (length(sReg) = 164) then + Error(208); + StrPCopy(@pReg, sReg); + BlockWrite(NFic, pReg, 1); + Inc(iTotRegOrd); + Inc(iTotRegCin); + end; + + end; + + IniRegistro; +end; + + +procedure TCVBNorma19CSB.FinOrdenan; +var + sTotImpOrdEu, cT: string; + iP: integer; +begin + HayError := False; + sReg := ''; + + Inc(iTotRegOrd); + Inc(iTotRegCin); + + if FEuro = False then + sPrimerosDigitos := '08' // Ptas + else + sPrimerosDigitos := '58'; // Euros + + + if _NORMA_ = _19_ then + sReg := sPrimerosDigitos + '80' // Norma 19 / Norma 58=70 + else + if _NORMA_ = _58_ then + sReg := sPrimerosDigitos + '70'; + + Ordenante := AjustaCif(Ordenante); + sReg := sReg + Ajusta(Ordenante, 'I', 9, '0'); //9 + sReg := sReg + Ajusta(SufijoOrd, 'I', 3, '0'); //3 + sReg := sReg + Ajusta('', 'D', 12, ' '); //12 + sReg := sReg + Ajusta('', 'D', 40, ' '); //40 + sReg := sReg + Ajusta('', 'D', 20, ' '); //20 + if FEuro = False then {float} + sReg := sReg + Ajusta(IntToStr(iTotImpOrdPts), 'I', 10, '0') //10 + else + begin + (* Creo que en Euros deben de ir los 2 decimales siempre, pero + no debe salir el punto decimal. O sea, los 2 ltimos dgitos son + siempre los decimales. Repito: Creo. + *) + Str(iTotImpOrdEu: 10: 2, sTotImpOrdEu); + iP := pos(',', sTotImpOrdEu); + if iP < 1 then + iP := pos('.', sTotImpOrdEu); + cT := copy(sTotImpOrdEu, 1, iP - 1); + sTotImpOrdEu := cT + copy(sTotImpOrdEu, iP + 1, 2); + sReg := sReg + Ajusta(sTotImpOrdEu, 'I', 10, '0'); //10 + end; + + sReg := sReg + Ajusta('', 'D', 6, ' '); //6 + sReg := sReg + Ajusta(IntToStr(iTotDomOrd), 'I', 10, '0'); //10 + sReg := sReg + Ajusta(IntToStr(iTotRegOrd), 'I', 10, '0'); //10 + sReg := sReg + Ajusta('', 'I', 20, ' '); //20 + sReg := sReg + Ajusta('', 'I', 18, ' '); //18 + sReg := sReg + CRLF; //2 + + if not (length(sReg) = 164) then + Error(30); + + StrPCopy(@pReg, sReg); + BlockWrite(NFic, pReg, 1); +(* + if Assigned (Impresion19) then + if FEuro=False + then Impresion19 (Self,Ordenante,NomCliOrd,IntToStr(iTotImpOrdPts)) + else Impresion19 (Self,Ordenante,NomCliOrd,sTotImpOrdEu); +*) + IniOrdenan; + +end; + +procedure TCVBNorma19CSB.Cerrar; +var + sTotImpCinEu, cT, cIT: string; + iP: integer; +begin + HayError := False; + sReg := ''; + + Inc(iTotRegCin); + + if FEuro = False then + sPrimerosDigitos := '09' + else + sPrimerosDigitos := '59'; + + if _NORMA_ = _19_ then + sReg := sPrimerosDigitos + '80' // 70 en norma 58 + else + if _NORMA_ = _58_ then + sReg := sPrimerosDigitos + '70'; + + Presentador := AjustaCIF(Presentador); + sReg := sReg + Ajusta(Presentador, 'I', 9, '0'); //9 + sReg := sReg + Ajusta(SufijoPres, 'I', 3, '0'); //3 + sReg := sReg + Ajusta('', 'D', 12, ' '); //12 + sReg := sReg + Ajusta('', 'D', 40, ' '); //40 + sReg := sReg + Ajusta('1', 'I', 4, '0'); + // Ordenantes. En este programa ser siempre = 1 // 4 + sReg := sReg + Ajusta('', 'D', 16, ' '); //16 + + if FEuro = False then {float} + begin + cIT := FormatFloat('0000000000', iTotImpCinPts); + // sReg := sReg + Ajusta (intToStr(iTotImpCinPts),'I',10,'0') //10 + sReg := sReg + Ajusta(cIT, 'I', 10, '0'); //10 + end + else + begin + (* Creo que en Euros deben de ir los 2 decimales siempre, pero + no debe salir el punto decimal. O sea, los 2 ltimos dgitos son + siempre los decimales. Repito: Creo. No tengo aqu las normas actualizadas para el euro. + *) + Str(iTotImpCinEu: 10: 2, sTotImpCinEu); + iP := pos(',', sTotImpCinEu); + if iP < 1 then + iP := pos('.', sTotImpCinEu); + cT := copy(sTotImpCinEu, 1, iP - 1); + sTotImpCinEu := cT + copy(sTotImpCinEu, iP + 1, 2); + sReg := sReg + Ajusta(sTotImpCinEu, 'I', 10, '0'); //10 + end; + sReg := sReg + Ajusta('', 'I', 6, ' '); //6 + sReg := sReg + Ajusta(IntToStr(iTotDomCin), 'I', 10, '0'); //10 + sReg := sReg + Ajusta(IntToStr(iTotRegCin), 'I', 10, '0'); //10 + sReg := sReg + Ajusta('', 'D', 20, ' '); //20 + sReg := sReg + Ajusta('', 'D', 18, ' '); //18 + sReg := sReg + CRLF; //2 + + if not (length(sReg) = 164) then + Error(40); + + StrPCopy(@pReg, sReg); + BlockWrite(NFic, pReg, 1); + + + CloseFile(NFic); +end; + +procedure TCVBNorma19CSB.Error(iErr: integer); +begin + NrError := iErr; + HayError := True; + if Assigned(FEnCasoError) then + FEnCasoError(Self) + else + if FDepura = False then + begin + CloseFile(NFic); + raise Exception.Create('Error en la generacin del fichero'); + end; +end; + + + +procedure TCVBNorma19CSB.ChequearDatos(iParte: integer); +var + bError: boolean; +begin + bError := False; + + if iParte = 1 then + begin + if ((Presentador = '') or (NomCliPres = '') or + (EntRecepPres = '') or (OfiRecepPres = '')) then + begin + if Presentador = '' then + Presentador := '<--'; + if NomCliPres = '' then + NomCliPres := '<--'; + if EntRecepPres = '' then + EntRecepPres := '<--'; + if OfiRecepPres = '' then + OfiRecepPres := '<--'; + bError := True; + end; + end + else + if iParte = 2 then + begin + if ((Ordenante = '') or (NomCliOrd = '') or + (EntOrde = '') or (OfiOrde = '') or + (CcOrde = '')) then + begin + if Ordenante = '' then + Ordenante := '<--'; + if NomCliOrd = '' then + NomCliOrd := '<--'; + if EntOrde = '' then + EntOrde := '<--'; + if OfiOrde = '' then + OfiOrde := '<--'; + if CcOrde = '' then + CcOrde := '<--'; + bError := True; + end; + end + else + if (iParte = 3) or (iParte = 4) then + begin + if ((Referencia = '') or (NomTitDom = '') or + (EntTitDom = '') or (OfiTitDom = '') or + (ccTitDom = '')) then + begin + if Referencia = '' then + Referencia := '<--'; + if NomTitDom = '' then + NomTitDom := '<--'; + if EntTitDom = '' then + EntTitDom := '<--'; + if OfiTitDom = '' then + OfiTitDom := '<--'; + if ccTitDom = '' then + ccTitDom := '<--'; + bError := True; + end; + end; + + if bError then + ShowMessage('' + CRLF + + 'Faltan datos al procesar el siguiente registro: ' + CRLF + CRLF + + 'Cdigo Cli/Pro: ' + Referencia + CRLF + + 'Nombre Titular: ' + NomTitDom + CRLF + + 'Entidad Domiciliar: ' + EntTitDom + CRLF + + 'Oficina Domiciliar: ' + OfiTitDom + CRLF + + 'Cuenta Domiciliar: ' + ccTitDom + CRLF + + 'Presentador: ' + Presentador + CRLF + + 'Nombre Cliente Pres:' + NomCliPres + CRLF + + 'Entidad Receptora P:' + EntRecepPres + CRLF + + 'Oficina Receptora P:' + OfiRecepPres + CRLF + + 'Ordenante: ' + Ordenante + CRLF + + 'Nombre Cliente Ord.:' + NomCliOrd + CRLF + + 'Entidad Ordenante: ' + EntOrde + CRLF + + 'Oficina Ordenante: ' + OfiOrde + CRLF + + 'Cuenta Ordenante: ' + CcOrde + ); + + if iParte = 3 then + begin + if bError then + begin + if ((ImportePts = 0) and (FEuro = False)) or + ((ImporteEu = 0) and (FEuro = True)) then + begin + ShowMessage(' El importe no puede ser cero !!!'); + Error(27); + end; + end; + end; +end; + + +procedure Register; +begin + RegisterComponents('CVB', [TCVBNORMA19CSB]); +end; + + +end. diff --git a/Source/Modulos/Banca electronica/Utiles/CVBNorma34CSB.pas b/Source/Modulos/Banca electronica/Utiles/CVBNorma34CSB.pas new file mode 100644 index 00000000..ef5d73c4 --- /dev/null +++ b/Source/Modulos/Banca electronica/Utiles/CVBNorma34CSB.pas @@ -0,0 +1,780 @@ +{------------------------------------------------------------------ + * + * Proyecto : + * Unit : CVBNorma34CSB + * Propsito: Solucionar mltiples problemas con este componente y + * adaptarlo para la norma34 del BSCH + * + * + * Autor : + * Historia : + * Fecha : + * Notas : + * + ------------------------------------------------------------------} + +unit CVBNorma34CSB; + +interface + +uses + Messages, SysUtils, Classes, Dialogs, CVBUtils; + // const CVBVerNorma34CSB = 'D2 - V 1.0.0'; + // primera version 01 de Febrero de 1999 + +type + TModalidad = (moTransfer, moCheques); + TTipoNorma = (tnEstandar, tnBSCH); + + TCVBNorma34CSB = class(TComponent) + private + pReg: array[0..73] of char; // 72 + CRLF + moModalidad: TModalidad; + + tnTipoNorma: TTipoNorma; + + HayError: boolean; + + FTotOrd: integer; + FEuro: boolean; + FDepura: boolean; + FNomFic: string; + + s1DigCodReg: string; // 1 + s2DigCodReg: string; // 1 + sCodOpera: string; // 2 + NFic: file; + sReg: string; + + _MSK_EU_: string; + _LL_: integer; + + iTotImpCinEu: double; + // iTotImpCinPts: Integer; + iTot010Cin: integer; + iTotRegCin: integer; + FEnCasoError: TNotifyEvent; + + { Private declarations } + protected + procedure Error(iErr: integer); dynamic; + { Protected declarations } + public + Impresion34: + procedure(O: TCVBNorma34CSB; Ordenante, NomOrd: string; Importe: string); + + NrError: integer; + FinRegistro: string; + iLotes: integer; + bEsPrimerLote: boolean; + + + { El ordenante (El que emite y en nombre del cual se pagan las Transferencias. Puede ser + una persona fsica o jurdica} + + // el que paga + Ordenante: string; //10 + + FecEnvSoporte: TDateTime; + FecEmiOrdenes: TDateTime; + EntOrd: string; //4 + SucOrd: string; //4 + CtaOrd: string; //10 + DetallCgo: string; //1 + cccOrd: string; //2 + + NomOrd: string; //36 + DomOrd: string; //36 + PlzOrd: string; //36 + Nom2Ord: string; //36 + Dom2Ord: string; //36 + + + + Referencia: string; //12 + // el que cobra + + Beneficiario: string; //12 + // ImportePts: Integer; + ImporteEu: double; + EntBen: string; //4 + SucBen: string; //4 + CtaBen: string; //10 + cccBen: string; //2 + Gastos: string; //1 + Concepto: string; //1 + + FecConcepto: TDateTime; // Fecha de libramiento del recibo + // Lo uso en fechadelconcepto del BSCH 1 reg.de beneficiario + + NomBen: string; //36 + DomBen1: string; //36 + DomBen2: string; //36 + CPTLPlzBen: string; //36 + ProvBen: string; //36 + ConcepBen1: string; //36 + ConcepBen2: string; //36 + DNIBen: string; //18 + NIdBen: string; //18 + + + constructor Create(AOwner: TComponent); override; + //destructor free; + procedure Abrir; + procedure IniRegistro; + procedure CompCabecera; + procedure CompRegistro; + procedure Cerrar; + property TotOrd: integer Read FTotOrd; + { Public declarations } + published + property NomFichero: string Read FNomFic Write FNomFic; + property Modalidad: TModalidad Read moModalidad Write moModalidad default moTransfer; + property Euros: boolean Read FEuro Write FEuro default False; + property Depura: boolean Read FDepura Write FDepura default False; + property EnCasoError: TNotifyEvent Read FEnCasoError Write FEnCasoError; + property TipoNorma: TTipoNorma Read tnTipoNorma Write tnTipoNorma default + tnEstandar; + { Published declarations } + end; + +procedure Register; + +implementation + +const + _ESP_ = ' '; + +const + _CERO_ = '0'; + + +constructor TCVBNorma34CSB.Create(AOwner: TComponent); +begin + inherited Create(AOwner); + {Asignar la propiedades por defecto} + FNomFic := 'CSB34.TXT'; + + _MSK_EU_ := '0000000000.00'; + + _LL_ := 74; // 72 + CRLF +end; + +//******************************************************************************* + +procedure TCVBNorma34CSB.Abrir; +begin + HayError := False; + + AssignFile(NFic, FNomFic); +{$I+} + rewrite(Nfic, _LL_); +{$I-} + if IOResult <> 0 then + error(0); + + iTotImpCinEu := 0; + // iTotImpCinPts:=0; + iTotRegCin := 0; + + IniRegistro; + + if FinRegistro = '' then + FinRegistro := #13 + #10; + + if FEuro = False then + s1DigCodReg := _CERO_ + else + s1DigCodReg := '5'; +end; + + +procedure TCVBNorma34CSB.IniRegistro; +begin + Beneficiario := ''; //12 + // ImportePts := 0; + ImporteEu := 0; + + EntBen := ''; //4 + SucBen := ''; //4 + CtaBen := ''; //10 + cccBen := ''; //2 + + Gastos := ''; //1 + Concepto := ''; //1 + DetallCgo := _ESP_; + + NomBen := ''; //36 + DomBen1 := ''; //36 + DomBen2 := ''; //36 + CPTLPlzBen := ''; //36 + ProvBen := ''; //36 + ConcepBen1 := ''; //36 + ConCepBen2 := ''; //36 + DNIBen := ''; //18 + NIdBen := ''; //18 + +end; + +procedure TCVBNorma34CSB.CompCabecera; +begin + iTotImpCinEu := 0; + iTot010Cin := 0; + iTotRegCin := 0; + + + HayError := False; + //0356 + //Obligatorios + if Ordenante = '' then + Ordenante := _CERO_; + if EntOrd = '' then + EntOrd := _CERO_; + if SucOrd = '' then + SucOrd := _CERO_; + if CtaOrd = '' then + CtaOrd := _CERO_; + if (DetallCgo <> _ESP_) and (DetallCgo <> _CERO_) and (DetallCgo <> '1') then + Error(5); + s2DigCodReg := '03'; + sCodOpera := '56'; + sReg := s2DigCodReg + sCodOpera; //4 + + Ordenante := AjustaCif(Ordenante); + sReg := sReg + Ajusta(Ordenante, 'D', 10, _ESP_); //10 + + case TipoNorma of + tnEstandar: sReg := sReg + Ajusta('', 'I', 12, _ESP_); //12 + tnBSCH: sReg := sReg + 'PAGOCTABANCO'; + end; + + sReg := sReg + '001'; //3 + sReg := sReg + Ajusta(FormatDateTime('ddmmyy', FecEnvSoporte), 'I', 6, _ESP_); //6 + sReg := sReg + Ajusta(FormatDateTime('ddmmyy', FecEmiOrdenes), 'I', 6, _ESP_); //6 + + case TipoNorma of + tnEstandar: sReg := sReg + Ajusta(EntOrd, 'I', 4, _CERO_); //4 + tnBSCH: sReg := sReg + '0049'; + end; + + sReg := sReg + Ajusta(SucOrd, 'I', 4, _CERO_); //4 + sReg := sReg + Ajusta(CtaOrd, 'I', 10, _CERO_); //10 + + case TipoNorma of + tnEstandar: sReg := sReg + Ajusta(DetallCgo, 'D', 1, _ESP_); //1 + tnBSCH: sReg := sReg + Ajusta(DetallCgo, 'D', 1, _CERO_); + end; + + case TipoNorma of + tnEstandar: sReg := sReg + Ajusta('', 'I', 3, _ESP_); //3 + tnBSCH: + begin + sReg := sReg + Ajusta('', 'I', 2, _ESP_); + sReg := sReg + 'N'; + end; + end; + + sReg := sReg + Ajusta(cccOrd, 'I', 2, _ESP_); //2 + + case TipoNorma of + tnEstandar: sReg := sReg + Ajusta('', 'I', 7, _ESP_); //7 + tnBSCH: + begin + sReg := sReg + 'T 8'; // T--8 cuatro caracteres + + // /////////////////////////////////////////////////////////////////////////////////////// + + + { + if iLotes > 0 then + begin + if ((iLotes>1) and bEsPrimerLote) then + sReg := sReg + Ajusta( IntToStr(iLotes), 'I', 2, _CERO_ ) + else + sReg := sReg + Ajusta( '', 'I', 2, _CERO_ ); + end + else + sReg := sReg + Ajusta( '', 'I',2,_CERO_); + } + sReg := sReg + '01'; //Ajusta(IntToStr(iLotes),'I',2,_CERO_); + // Esta lnea de arriba sustituye a todo lo que hay en comentarios. Porque de momento + // se v a hacer un slo vencimiento para todos los pagos. El da que se quiera enviar + // distintos vencimientos, habr que quitar esta lnea, des'comentar' lo de arriba y + // cambiar en Remesas para que haga bucles segn las fechas de vencimientos y vaya + // creando cabecera->cuerpo->pie por cada uno de los vencimientos. + + + // /////////////////////////////////////////////////////////////////////////////////////// + + + sReg := sReg + '3'; + end; + end; + + sReg := sReg + FinRegistro; //2 + + if not (length(sReg) = _LL_) then + Error(6); + + StrPCopy(@pReg, sReg); + BlockWrite(NFic, pReg, 1); + Inc(iTotRegCin); + + sReg := s2DigCodReg + sCodOpera; + sReg := sReg + Ajusta(Ordenante, 'D', 10, _ESP_); //10 + + case TipoNorma of + tnEstandar: sReg := sReg + Ajusta('', 'I', 12, _ESP_); //12 + tnBSCH: sReg := sReg + 'PAGOCTABANCO'; + end; + + sReg := sReg + '002'; //3 + sReg := sReg + Ajusta(NomOrd, 'D', 36, _ESP_); //36 + sReg := sReg + Ajusta('', 'I', 7, _ESP_); //7 + sReg := sReg + FinRegistro; //2 + + if not (length(sReg) = _LL_) then + Error(7); + + StrPCopy(@pReg, sReg); + BlockWrite(NFic, pReg, 1); + Inc(iTotRegCin); + + sReg := s2DigCodReg + sCodOpera; + sReg := sReg + Ajusta(Ordenante, 'D', 10, _ESP_); //10 + + case TipoNorma of + tnEstandar: sReg := sReg + Ajusta('', 'I', 12, _ESP_); //12 + tnBSCH: sReg := sReg + 'PAGOCTABANCO'; + end; + + sReg := sReg + '003'; //3 + sReg := sReg + Ajusta(DomOrd, 'D', 36, _ESP_); //36 + sReg := sReg + Ajusta('', 'I', 7, _ESP_); //7 + sReg := sReg + FinRegistro; //2 + + if not (length(sReg) = _LL_) then + Error(8); + + StrPCopy(@pReg, sReg); + BlockWrite(NFic, pReg, 1); + Inc(iTotRegCin); + + sReg := s2DigCodReg + sCodOpera; + sReg := sReg + Ajusta(Ordenante, 'D', 10, _ESP_); //10 + + case TipoNorma of + tnEstandar: sReg := sReg + Ajusta('', 'I', 12, _ESP_); //12 + tnBSCH: sReg := sReg + 'PAGOCTABANCO'; + end; + + sReg := sReg + '004'; //3 + sReg := sReg + Ajusta(PlzOrd, 'D', 36, _ESP_); //36 + sReg := sReg + Ajusta('', 'I', 7, _ESP_); //7 + sReg := sReg + FinRegistro; //2 + + if not (length(sReg) = _LL_) then + Error(9); + + StrPCopy(@pReg, sReg); + BlockWrite(NFic, pReg, 1); + Inc(iTotRegCin); + + if TipoNorma = tnEstandar then + begin + // Opcionales + if (Nom2Ord = '') and (Dom2Ord <> '') then + Error(12); + if Nom2Ord <> '' then + begin + sReg := s2DigCodReg + sCodOpera; + sReg := sReg + Ajusta(Ordenante, 'D', 10, _ESP_); //10 + sReg := sReg + Ajusta('', 'D', 12, _ESP_); //12 + sReg := sReg + '007'; //3 + sReg := sReg + Ajusta(Nom2Ord, 'D', 36, _ESP_); //36 + sReg := sReg + Ajusta('', 'I', 7, _ESP_); //7 + sReg := sReg + FinRegistro; //2 + + if not (length(sReg) = _LL_) then + Error(10); + + StrPCopy(@pReg, sReg); + BlockWrite(NFic, pReg, 1); + Inc(iTotRegCin); + end; + + if Dom2Ord <> '' then + begin + sReg := s2DigCodReg + sCodOpera; + sReg := sReg + Ajusta(Ordenante, 'D', 10, _ESP_); //10 + sReg := sReg + Ajusta('', 'D', 12, _ESP_); //12 + sReg := sReg + '008'; //3 + sReg := sReg + Ajusta(Dom2Ord, 'D', 36, _ESP_); //36 + sReg := sReg + Ajusta('', 'I', 7, _ESP_); //7 + sReg := sReg + FinRegistro; //2 + + if not (length(sReg) = _LL_) then + Error(11); + + StrPCopy(@pReg, sReg); + BlockWrite(NFic, pReg, 1); + Inc(iTotRegCin); + end; + end; +end; + + + + +procedure TCVBNorma34CSB.CompRegistro; +var + sImporteEu, cIT: string; + iP: integer; +begin + HayError := False; + sReg := ''; + if Ordenante = '' then + Ordenante := _CERO_; + if Referencia = '' then + Referencia := _CERO_; + + Referencia := AjustaCif(Referencia); + DNIBen := AjustaCif(DNIBen); + +(* + if (ImportePts=0) and (FEuro=False) then + Error(23); +*) + if (ImporteEu = 0) and (FEuro = True) then + Error(24); + if (Gastos <> '1') and (Gastos <> '2') then + Error(25); + if (Concepto <> '1') and (Concepto <> '8') and (Concepto <> '9') then + Error(26); + + s2DigCodReg := '06'; + + case TipoNorma of + tnEstandar: + begin + if moModalidad = moTransfer then + sCodOpera := '56' + else + if moModalidad = moCheques then + sCodOpera := '57'; + end; + tnBSCH: sCodOpera := '57'; + end; + sReg := s2DigCodReg + sCodOpera; + + sReg := sReg + Ajusta(Ordenante, 'D', 10, _ESP_); //10 + sReg := sReg + Ajusta(Referencia, 'D', 12, _ESP_); //12 + sReg := sReg + '010'; //3 + + // if FEuro=False then + // sReg := sReg + Ajusta (IntToStr(ImportePts),'D',12,_CERO_) //12 + // else + begin + // Str(ImporteEu:12:2,sImporteEu); + + sImporteEu := FormatFloat(_MSK_EU_, ImporteEu); + iP := pos(',', sImporteEu); + if iP < 1 then + iP := pos('.', sImporteEu); + cIT := copy(sImporteEu, 1, iP - 1); + sImporteEu := cIT + copy(sImporteEu, iP + 1, 2); + sReg := sReg + Ajusta(sImporteEu, 'I', 12, _CERO_); + + end; + + case TipoNorma of + tnEstandar: + begin + sReg := sReg + Ajusta(EntBen, 'I', 4, _CERO_); + //4 + sReg := sReg + Ajusta(SucBen, 'I', 4, _CERO_); + //4 + sReg := sReg + Ajusta(CtaBen, 'I', 10, _CERO_); + //10 + end; + tnBSCH: sReg := sReg + Ajusta('', 'I', 4 + 4 + 10, _ESP_); + end; + + case TipoNorma of + tnEstandar: sReg := sReg + Ajusta(Gastos, 'D', 1, _ESP_); //1 + tnBSCH: sReg := sReg + '1'; + end; + case TipoNorma of + tnEstandar: sReg := sReg + Ajusta(Concepto, 'D', 1, _ESP_); //1 + tnBSCH: sReg := sReg + '9'; + end; + case TipoNorma of + tnEstandar: sReg := sReg + Ajusta('', 'I', 2, _ESP_); //2 + tnBSCH: + begin + if ImporteEu >= 0 then + sReg := sReg + _CERO_ // si es positivo el importe + else + sReg := sReg + '1'; // si es negativo el importe + sReg := sReg + _ESP_; + end; + end; + case TipoNorma of + tnEstandar: sReg := sReg + Ajusta(cccBen, 'D', 2, _CERO_); //2 + tnBSCH: sReg := sReg + Ajusta('', 'D', 2, _ESP_); + end; + case TipoNorma of + tnEstandar: sReg := sReg + Ajusta('', 'I', 7, _ESP_); //7 + tnBSCH: + begin + sReg := sReg + FormatDateTime('ddmmyy', FecConcepto); + sReg := sReg + _ESP_; + end; + end; + + sReg := sReg + FinRegistro; //2 + + if not (length(sReg) = _LL_) then + Error(27); + + StrPCopy(@pReg, sReg); + BlockWrite(NFic, pReg, 1); + + Inc(iTot010Cin); + Inc(iTotRegCin); + // iTotImpCinPts := iTotImpCinPts+ImportePts; + iTotImpCinEu := iTotImpCinEu + StrToFloat(sImporteEu); + + + sReg := s2DigCodReg + sCodOpera; //4 + sReg := sReg + Ajusta(Ordenante, 'D', 10, _ESP_); //10 + sReg := sReg + Ajusta(Referencia, 'D', 12, _ESP_); //12 + sReg := sReg + '011'; //3 + sReg := sReg + Ajusta(NomBen, 'D', 36, _ESP_); //36 + sReg := sReg + Ajusta('', 'I', 7, _ESP_); //7 + sReg := sReg + FinRegistro; //2 + + if not (length(sReg) = _LL_) then + Error(28); + + StrPCopy(@pReg, sReg); + BlockWrite(NFic, pReg, 1); + Inc(iTotRegCin); + + //obligatorio en transferencias + if (DomBen1 <> '') or (moModalidad = moTransfer) then + begin + sReg := s2DigCodReg + sCodOpera; //4 + sReg := sReg + Ajusta(Ordenante, 'D', 10, _ESP_); //10 + sReg := sReg + Ajusta(Referencia, 'D', 12, _ESP_); //12 + sReg := sReg + '012'; //3 + sReg := sReg + Ajusta(DomBen1, 'D', 36, _ESP_); //36 + sReg := sReg + Ajusta('', 'I', 7, _ESP_); //7 + sReg := sReg + FinRegistro; //2 + + if not (length(sReg) = _LL_) then + Error(29); + + StrPCopy(@pReg, sReg); + BlockWrite(NFic, pReg, 1); + Inc(iTotRegCin); + end; + + if DomBen2 <> '' then + begin + sReg := s2DigCodReg + sCodOpera; //4 + sReg := sReg + Ajusta(Ordenante, 'D', 10, _ESP_); //10 + sReg := sReg + Ajusta(Referencia, 'D', 12, _ESP_); //12 + sReg := sReg + '013'; //3 + sReg := sReg + Ajusta(DomBen2, 'D', 36, _ESP_); //36 + sReg := sReg + Ajusta('', 'I', 7, _ESP_); //7 + sReg := sReg + FinRegistro; //2 + + if not (length(sReg) = _LL_) then + Error(200); + + StrPCopy(@pReg, sReg); + BlockWrite(NFic, pReg, 1); + Inc(iTotRegCin); + end; + + // Obligatorio en transferencias + if (DomBen1 <> '') or (moModalidad = moTransfer) then + begin + sReg := s2DigCodReg + sCodOpera; //4 + sReg := sReg + Ajusta(Ordenante, 'D', 10, _ESP_); //10 + sReg := sReg + Ajusta(Referencia, 'D', 12, _ESP_); //12 + sReg := sReg + '014'; //3 + sReg := sReg + Ajusta(CPTLPlzBen, 'D', 36, _ESP_); //36 + sReg := sReg + Ajusta('', 'I', 7, _ESP_); //7 + sReg := sReg + FinRegistro; //2 + + if not (length(sReg) = _LL_) then + Error(201); + + StrPCopy(@pReg, sReg); + BlockWrite(NFic, pReg, 1); + Inc(iTotRegCin); + end; + + + if ProvBen <> '' then + begin + sReg := s2DigCodReg + sCodOpera; //4 + sReg := sReg + Ajusta(Ordenante, 'D', 10, _ESP_); //10 + sReg := sReg + Ajusta(Referencia, 'D', 12, _ESP_); //12 + sReg := sReg + '015'; //3 + sReg := sReg + Ajusta(ProvBen, 'D', 36, _ESP_); //36 + sReg := sReg + Ajusta('', 'I', 7, _ESP_); //7 + sReg := sReg + FinRegistro; //2 + + if not (length(sReg) = _LL_) then + Error(202); + + StrPCopy(@pReg, sReg); + BlockWrite(NFic, pReg, 1); + Inc(iTotRegCin); + end; + + + if ConcepBen1 <> '' then + begin + sReg := s2DigCodReg + sCodOpera; //4 + sReg := sReg + Ajusta(Ordenante, 'D', 10, _ESP_); //10 + sReg := sReg + Ajusta(Referencia, 'D', 12, _ESP_); //12 + sReg := sReg + '016'; //3 + sReg := sReg + Ajusta(ConcepBen1, 'D', 36, _ESP_); //36 + sReg := sReg + Ajusta('', 'I', 7, _ESP_); //7 + sReg := sReg + FinRegistro; //2 + + if not (length(sReg) = _LL_) then + Error(203); + + StrPCopy(@pReg, sReg); + BlockWrite(NFic, pReg, 1); + Inc(iTotRegCin); + end; + + if (ConcepBen2 <> '') or (TipoNorma = tnBSCH) then + begin + sReg := s2DigCodReg + sCodOpera; //4 + sReg := sReg + Ajusta(Ordenante, 'D', 10, _ESP_); //10 + sReg := sReg + Ajusta(Referencia, 'D', 12, _ESP_); //12 + sReg := sReg + '017'; //3 + + case TipoNorma of + tnEstandar: sReg := sReg + Ajusta(ConcepBen2, 'D', 36, _ESP_); //36 + tnBSCH: sReg := sReg + Ajusta(Referencia, 'D', 36, _ESP_); + // ???????????????? aqu qu v?????? + end; + + sReg := sReg + Ajusta('', 'I', 7, _ESP_); //7 + sReg := sReg + FinRegistro; //2 + + if not (length(sReg) = _LL_) then + Error(204); + + StrPCopy(@pReg, sReg); + BlockWrite(NFic, pReg, 1); + Inc(iTotRegCin); + end; + + if TipoNorma = tnEstandar then + begin + if (DNIBen <> '') or (NIdBen <> '') then + begin + sReg := s2DigCodReg + sCodOpera; //4 + sReg := sReg + Ajusta(Ordenante, 'D', 10, _ESP_); //10 + sReg := sReg + Ajusta(Referencia, 'D', 12, _ESP_); //12 + sReg := sReg + '018'; //3 + sReg := sReg + Ajusta(DNIBen, 'D', 18, _ESP_); //18 + sReg := sReg + Ajusta(NIdBen, 'D', 18, _ESP_); //18 + sReg := sReg + Ajusta('', 'I', 7, _ESP_); //7 + sReg := sReg + FinRegistro; //2 + + if not (length(sReg) = _LL_) then + Error(205); + + StrPCopy(@pReg, sReg); + BlockWrite(NFic, pReg, 1); + Inc(iTotRegCin); + end; + end; + + IniRegistro; +end; + +procedure TCVBNorma34CSB.Cerrar; +var + sTotImpCinEu, cIT: string; + iP: integer; +begin + HayError := False; + sReg := ''; + + Inc(iTotRegCin); + + case TipoNorma of + tnEstandar: sReg := '0856'; + //+ s1DigCodReg + s2DigCodReg + sCodOpera; //4 + tnBSCH: sReg := '0856'; //'0356'; + end; + + sReg := sReg + Ajusta(Ordenante, 'D', 10, _ESP_); //9 + sReg := sReg + Ajusta('', 'D', 12, _ESP_); //3 + sReg := sReg + Ajusta('', 'D', 3, _ESP_); //3 + // if FEuro=False then + // sReg := sReg + Ajusta (IntToStr(iTotImpCinPts),'I',12,_CERO_) //10 + // else + begin + sTotImpCinEu := FormatFloat(_MSK_EU_, iTotImpCinEu); + iP := pos(',', sTotImpCinEu); + if iP < 1 then + iP := pos('.', sTotImpCinEu); + cIT := copy(sTotImpCinEu, 1, iP - 1); + sTotImpCinEu := cIT + copy(sTotImpCinEu, iP + 1, 2); + sReg := sReg + Ajusta(sTotImpCinEu, 'I', 12, _CERO_); + end; + sReg := sReg + Ajusta(IntToStr(iTot010Cin), 'I', 8, _CERO_); //10 + sReg := sReg + Ajusta(IntToStr(iTotRegCin), 'I', 10, _CERO_); //10 + sReg := sReg + Ajusta('', 'D', 6, _ESP_); //20 + sReg := sReg + Ajusta('', 'D', 7, _ESP_); //18 + sReg := sReg + FinRegistro; //2 + + if not (length(sReg) = _LL_) then + Error(30); + + StrPCopy(@pReg, sReg); + BlockWrite(NFic, pReg, 1); + if Assigned(Impresion34) then + // if FEuro=False + // then Impresion34 (Self,Ordenante,NomOrd,IntToStr(iTotImpCinPts)) + // else + Impresion34(Self, Ordenante, NomOrd, sTotImpCinEu); + + + + + CloseFile(NFic); +end; + +procedure TCVBNorma34CSB.Error(iErr: integer); +begin + NrError := iErr; + HayError := True; + if Assigned(FEnCasoError) then + FEnCasoError(Self) + else + if FDepura = False then + begin + CloseFile(NFic); + raise Exception.Create('Error en la generacin del fichero'); + end; +end; + +procedure Register; +begin + RegisterComponents('CVB', [TCVBNORMA34CSB]); +end; + +end. diff --git a/Source/Modulos/Banca electronica/Utiles/CVBReg.pas b/Source/Modulos/Banca electronica/Utiles/CVBReg.pas new file mode 100644 index 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 carcter no vlido del cif,nif +var + iX: integer; +begin + Result := ''; + sCampo := UpperCase(sCampo); + + if length(sCampo) < 1 then + sCampo := '0'; + + for iX := 0 to length(sCampo) do + if (sCampo[iX] in ['0'..'9', 'A'..'Z']) then + Result := Result + sCampo[iX]; +end; + + +function Trim(const cString: string): string; +var + I: integer; +begin + Result := TrimLeft(TrimRight(cString)); +end; + +function Replicate(c: char; nLen: integer): string; +begin + Result := stringOfChar(c, nLen); +end; + +function Ajusta(sCampo, sOrientacion: string; iLongitud: integer; sRelleno: char): string; +begin + sCampo := Trim(sCampo); + if uppercase(sOrientacion) = 'I' then + Result := Replicate(sRelleno, iLongitud - Length(sCampo)) + sCampo + else + Result := sCampo + Replicate(sRelleno, iLongitud - Length(sCampo)); + + if length(Result) > iLongitud then + Result := copy(Result, 1, iLongitud); +end; + +end. diff --git a/Source/Modulos/Banca electronica/Views/BancaElectronica_view.bdsproj b/Source/Modulos/Banca electronica/Views/BancaElectronica_view.bdsproj new file mode 100644 index 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..79b6efa6 --- /dev/null +++ b/Source/Modulos/Banca electronica/Views/BancaElectronica_view.dpk @@ -0,0 +1,35 @@ +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 ON} + +requires + BancaElectronica_controller, + JvGlobusD11R; + +contains + uBancaElectronicaViewRegister in 'uBancaElectronicaViewRegister.pas', + uEditorExportacionNorma19 in 'uEditorExportacionNorma19.pas' {fEditorExportacionNorma19}; + +end. diff --git a/Source/Modulos/Banca electronica/Views/BancaElectronica_view.dproj b/Source/Modulos/Banca electronica/Views/BancaElectronica_view.dproj new file mode 100644 index 00000000..c213c82d --- /dev/null +++ b/Source/Modulos/Banca electronica/Views/BancaElectronica_view.dproj @@ -0,0 +1,580 @@ + + + {318cdb6c-0c6b-444c-81a7-75d2547d33e7} + BancaElectronica_view.dpk + Debug + AnyCPU + DCC32 + ..\..\..\..\Output\Debug\Cliente\BancaElectronica_view.bpl + + + 7.0 + False + False + 0 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + RELEASE + + + 7.0 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + + + Delphi.Personality + Package + + + False + True + False + + + True + False + False + + + True + False + 1 + 0 + 0 + 0 + False + False + False + False + False + 3082 + 1252 + + + + + 1.0.0.0 + + + + + + 1.0.0.0 + + + + BancaElectronica_view.dpk + + + + + + + MainSource + + + + + +
    fEditorExportacionNorma19
    +
    +
    +
    + + diff --git a/Source/Modulos/Banca electronica/Views/BancaElectronica_view.rc b/Source/Modulos/Banca electronica/Views/BancaElectronica_view.rc new file mode 100644 index 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 0000000000000000000000000000000000000000..36f26e234a8ac66a47e95cec6d496cf2f1442471 GIT binary patch literal 32 UcmZQzU|>)H;{X347|28c09i@|9RL6T literal 0 HcmV?d00001 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 slo podr ser copiado, distribuido y utilizado, + en su totalidad o en parte, con el permiso escrito de Rodax Software, o de + acuerdo con los trminos y condiciones establecidas en el acuerdo/contrato + bajo el que se suministra. + ----------------------------------------------------------------------------- + Web: www.rodax-software.com +=============================================================================== + Fecha primera versin: + Versin actual: 1.0.0 + Fecha versin actual: +=============================================================================== + Modificaciones: + + Fecha Comentarios + --------------------------------------------------------------------------- +=============================================================================== +} + +unit uBancaElectronicaViewRegister; + +interface + +procedure RegisterViews; +procedure UnregisterViews; + +implementation + +uses + uEditorRegistryUtils, uEditorExportacionNorma19; + +procedure RegisterViews; +begin + EditorRegistry.RegisterClass(TfEditorExportacionNorma19, 'EditorExportacionNorma19'); +end; + +procedure UnregisterViews; +begin + EditorRegistry.UnRegisterClass(TfEditorExportacionNorma19); +end; + +end. diff --git a/Source/Modulos/Banca electronica/Views/uEditorExportacionNorma19.dfm b/Source/Modulos/Banca electronica/Views/uEditorExportacionNorma19.dfm new file mode 100644 index 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 0000000000000000000000000000000000000000..36f26e234a8ac66a47e95cec6d496cf2f1442471 GIT binary patch literal 32 UcmZQzU|>)H;{X347|28c09i@|9RL6T literal 0 HcmV?d00001 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..2f2ed5ee --- /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); + function Anadir(AComision : IBizComisiones): Boolean; + function Eliminar(AComision : IBizComisiones): Boolean; + function Guardar(AComision : IBizComisiones): Boolean; + procedure DescartarCambios(AComision : IBizComisiones); + procedure Preview(AComision : IBizComisiones; const DesglosadoProv: Boolean); + procedure Print(AComision : IBizComisiones; const DesglosadoProv: Boolean); + + 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 mtodos a sobre escribir si se desea heredar toda la logica de + //este controller + procedure AsignarDataModule; virtual; + + public + constructor Create; override; + destructor Destroy; override; + + function Eliminar(AComision : IBizComisiones): Boolean; + function Guardar(AComision : IBizComisiones): Boolean; + procedure DescartarCambios(AComision : IBizComisiones); + function Anadir(AComision : IBizComisiones): Boolean; + function BuscarTodos: IBizComisiones; + procedure VerTodos(AComision: IBizComisiones); + procedure Ver(AComision: IBizComisiones); + procedure Preview(AComision : IBizComisiones; const DesglosadoProv: Boolean); + procedure Print(AComision : IBizComisiones; const DesglosadoProv: Boolean); + 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, uDialogUtils; + +{ TComisionesController } + +function TComisionesController.Anadir(AComision: IBizComisiones): Boolean; +begin + if not Assigned(AComision) then + raise Exception.Create ('Comision no asignado (Anadir)'); + + if not AComision.DataTable.Active then + AComision.DataTable.Active := True; + + AComision.Insert; + Result := True; +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 condicin de la relacion: + Master.ID = Detail.ID_PRESUPUESTO. + + Por esa razn no sirve hacer un recorrido + desde el principio hasta el final porque + las detalles van desapareciendo segn asignamos + el valor al campo ID y nos mueve aleatoriamente + la posicin 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 + inherited; + 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 liquidacin de comisiones.'); + + if AComision.DataTable.FieldByName(fld_ComisionesFECHA).IsNull then + raise Exception.Create('Debe indicar la fecha de esta liquidacin de comisiones.'); + + if AComision.DataTable.FieldByName(fld_ComisionesDESCRIPCION).IsNull then + raise Exception.Create('Debe indicar una descripcin para la liquidacin de comisin.'); + + // Asegurarse de valores en campos "automticos" + AComision.Edit; + try + AComision.USUARIO := AppFactuGES.UsuarioActivo.UserName; + 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); + if Assigned(AEditor) then + with (AEditor as IEditorComision) do + begin + Controller := Self; //OJO ORDEN MUY IMPORTANTE + Comision := AComision; + ShowModal; + Release; + end; + finally + AEditor := NIL; + HideHourglassCursor; + end; +end; + +procedure TComisionesController.VerTodos(AComision: IBizComisiones); +var + AEditor : IEditorComisiones; +begin + AEditor := NIL; + ShowHourglassCursor; + try + CreateEditor('EditorComisiones', IEditorComisiones, AEditor); + if Assigned(AEditor) then + with AEditor do + begin + Controller := Self; //OJO ORDEN MUY IMPORTANTE + Comisiones := AComision; + ShowEmbedded; + end; + finally + AEditor := NIL; + HideHourglassCursor; + 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 ms facturas para incluirlos en esta liquidacin 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 + ShowWarningMessage('Debe elegir primero el agente asociado a la liquidacin'); +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 estn declarados como maestro-detalles debemos hacer el applyupdates nosotros +// RecibosClienteController.AsignarRemesa(ARemesaCliente.Recibos, NuevoID); +// ARemesaCliente.Recibos.DataTable.ApplyUpdates; //En este applyupdates tambien se realizarn todos los cambios acumulados sobre los recibos asociados (EliminarReciboCliente/ ElegirRecibosCliente) + + Result := True; + finally + HideHourglassCursor; + end; + end; +end; +procedure TComisionesController.Preview(AComision: IBizComisiones; const DesglosadoProv: Boolean); +var + AReportController : IComisionesReportController; +begin + AReportController := TComisionesReportController.Create; + try + if Assigned(AComision) then + AReportController.Preview(AComision.ID, DesglosadoProv) + else + AReportController.Preview(Null, DesglosadoProv) + finally + AReportController := NIL; + end; +end; + +procedure TComisionesController.Print(AComision: IBizComisiones; const DesglosadoProv: Boolean); +var + AReportController : IComisionesReportController; +begin + AReportController := TComisionesReportController.Create; + try + if Assigned(AComision) then + AReportController.Print(AComision.ID, DesglosadoProv) + else + AReportController.Print(Null, DesglosadoProv); + 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..20f8a757 --- /dev/null +++ b/Source/Modulos/Comisiones/Controller/uComisionesReportController.pas @@ -0,0 +1,111 @@ +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; const DesglosadoProv: Boolean); + procedure Print(const AComisionID : Variant; const DesglosadoProv: Boolean); + 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; const DesglosadoProv: Boolean); + procedure Print(const AComisionID : Variant; const DesglosadoProv: Boolean); + 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; const DesglosadoProv: Boolean); +var + AStream: Binary; + AEditor : IEditorComisionesPreview; +begin + AEditor := NIL; + ShowHourglassCursor; + try + AStream := FDataModule.GetReport(AComisionID, DesglosadoProv,'', '', Null); + try + CreateEditor('EditorComisionesPreview', IEditorComisionesPreview, AEditor); + if Assigned(AEditor) then + with AEditor do + begin + DataModule := FDataModule; + LoadFromStream(AStream); + Preview; + Release; + end; + finally + FreeAndNil(AStream); + AEditor := Nil; + end; + finally + HideHourglassCursor; + end; +end; + +procedure TComisionesReportController.Print(const AComisionID : Variant; const DesglosadoProv: Boolean); +var + AStream: Binary; + AEditor : IEditorComisionesPreview; +begin + AEditor := NIL; + ShowHourglassCursor; + try + AStream := FDataModule.GetReport(AComisionID, DesglosadoProv, '', '', Null); + try + CreateEditor('EditorComisionesPreview', IEditorComisionesPreview, AEditor); + if Assigned(AEditor) then + with AEditor do + begin + DataModule := FDataModule; + LoadFromStream(AStream); + Print; + end; + finally + FreeAndNil(AStream); + AEditor := Nil; + end; + finally + HideHourglassCursor; + end; +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 0000000000000000000000000000000000000000..36f26e234a8ac66a47e95cec6d496cf2f1442471 GIT binary patch literal 32 UcmZQzU|>)H;{X347|28c09i@|9RL6T literal 0 HcmV?d00001 diff --git a/Source/Modulos/Comisiones/Data/uDataModuleComisiones.dfm b/Source/Modulos/Comisiones/Data/uDataModuleComisiones.dfm new file mode 100644 index 00000000..9d1d8a7a --- /dev/null +++ b/Source/Modulos/Comisiones/Data/uDataModuleComisiones.dfm @@ -0,0 +1,309 @@ +inherited DataModuleComisiones: TDataModuleComisiones + OnCreate = DAClientDataModuleCreate + Height = 414 + Width = 518 + object RORemoteService: TRORemoteService + ServiceName = 'srvComisiones' + Left = 48 + Top = 24 + end + object tbl_Comisiones: TDACDSDataTable + RemoteUpdatesOptions = [] + Fields = < + item + Name = 'ID' + DataType = datInteger + DictionaryEntry = 'Comisiones_ID' + InPrimaryKey = True + end + item + Name = 'ID_EMPRESA' + DataType = datInteger + DictionaryEntry = 'Comisiones_ID_EMPRESA' + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + DisplayLabel = 'Comisiones_REFERENCIA' + DictionaryEntry = 'Comisiones_REFERENCIA' + end + item + Name = 'ID_AGENTE' + DataType = datInteger + end + item + Name = 'DESCRIPCION' + DataType = datString + Size = 255 + DictionaryEntry = 'Comisiones_DESCRIPCION' + end + item + Name = 'FECHA' + DataType = datDateTime + DictionaryEntry = 'Comisiones_FECHA' + end + item + Name = 'IMPORTE_TOTAL' + DataType = datFloat + end + item + Name = 'USUARIO' + DataType = datString + Size = 20 + DictionaryEntry = 'Comisiones_USUARIO' + end + item + Name = 'NOMBRE' + DataType = datString + Size = 255 + end> + Params = <> + MasterMappingMode = mmDataRequest + StreamingOptions = [soDisableEventsWhileStreaming] + 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 + DataSet = tbl_Comisiones.Dataset + DataTable = tbl_Comisiones + Left = 216 + Top = 80 + end + object tbl_Facturas_Comision: TDACDSDataTable + RemoteUpdatesOptions = [] + Fields = < + item + Name = 'ID_EMPRESA' + DataType = datInteger + DictionaryEntry = 'Comisiones_Detalles_ID_EMPRESA' + end + item + Name = 'ID_AGENTE' + DataType = datInteger + DictionaryEntry = 'Comisiones_Detalles_ID_AGENTE' + end + item + Name = 'AGENTE' + DataType = datString + Size = 255 + DictionaryEntry = 'Comisiones_Detalles_AGENTE' + end + item + Name = 'ID_FACTURA' + DataType = datInteger + DictionaryEntry = 'Facturas_Comision_ID_FACTURA' + end + item + Name = 'ID_COMISION_LIQUIDADA' + DataType = datInteger + DictionaryEntry = 'Facturas_Comision_ID_COMISION_LIQUIDADA' + end + item + Name = 'FECHA' + DataType = datDateTime + DictionaryEntry = 'Comisiones_Detalles_FECHA' + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + DictionaryEntry = 'Comisiones_Detalles_REFERENCIA' + end + item + Name = 'SITUACION' + DataType = datString + Size = 19 + DictionaryEntry = 'Comisiones_Detalles_SITUACION' + end + item + Name = 'ID_CLIENTE' + DataType = datInteger + DisplayLabel = 'Facturas_Comision_ID_CLIENTE' + DictionaryEntry = 'Facturas_Comision_ID_CLIENTE' + end + item + Name = 'CLIENTE' + DataType = datString + Size = 255 + DisplayLabel = 'Facturas_Comision_CLIENTE' + DictionaryEntry = 'Facturas_Comision_CLIENTE' + end + item + Name = 'ID_PROVEEDOR' + DataType = datInteger + DictionaryEntry = 'Comisiones_Detalles_ID_PROVEEDOR' + end + item + Name = 'PROVEEDOR' + DataType = datString + Size = 255 + DictionaryEntry = 'Comisiones_Detalles_PROVEEDOR' + end + item + Name = 'COMISION' + DataType = datFloat + DictionaryEntry = 'Comisiones_Detalles_COMISION' + end + item + Name = 'IMPORTE_COMISIONABLE' + DataType = datCurrency + DisplayLabel = 'Facturas_Comision_IMPORTE_COMISIONABLE' + Alignment = taRightJustify + DictionaryEntry = 'Facturas_Comision_IMPORTE_COMISIONABLE' + end + item + Name = 'IMPORTE_COMISION' + DataType = datCurrency + DisplayLabel = 'Facturas_Comision_IMPORTE_COMISION' + Alignment = taRightJustify + DictionaryEntry = 'Facturas_Comision_IMPORTE_COMISION' + end> + Params = < + item + Name = 'ID_COMISION' + Value = 18 + ParamType = daptInput + end> + MasterParamsMappings.Strings = ( + 'ID_COMISION=ID') + StreamingOptions = [soDisableEventsWhileStreaming] + 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 + DataSet = tbl_Facturas_Comision.Dataset + DataTable = tbl_Facturas_Comision + Left = 368 + Top = 80 + end + object tbl_V_Detalles_Facturas_Comision: TDACDSDataTable + RemoteUpdatesOptions = [] + Fields = < + item + Name = 'ID_EMPRESA' + DataType = datInteger + DictionaryEntry = 'Comisiones_Detalles_ID_EMPRESA' + end + item + Name = 'ID_AGENTE' + DataType = datInteger + DictionaryEntry = 'Comisiones_Detalles_ID_AGENTE' + end + item + Name = 'AGENTE' + DataType = datString + Size = 255 + DictionaryEntry = 'Comisiones_Detalles_AGENTE' + end + item + Name = 'ID_FACTURA' + DataType = datInteger + end + item + Name = 'ID_COMISION_LIQUIDADA' + DataType = datInteger + DictionaryEntry = 'V_Detalles_Facturas_Comision_ID_COMISION_LIQUIDADA' + end + item + Name = 'FECHA' + DataType = datDateTime + DictionaryEntry = 'Comisiones_Detalles_FECHA' + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 255 + DictionaryEntry = 'Comisiones_Detalles_REFERENCIA' + end + item + Name = 'SITUACION' + DataType = datString + Size = 19 + DictionaryEntry = 'Comisiones_Detalles_SITUACION' + end + item + Name = 'ID_CLIENTE' + DataType = datInteger + DisplayLabel = 'Facturas_Comision_ID_CLIENTE' + DictionaryEntry = 'Facturas_Comision_ID_CLIENTE' + end + item + Name = 'CLIENTE' + DataType = datString + Size = 255 + DisplayLabel = 'Facturas_Comision_CLIENTE' + DictionaryEntry = 'Facturas_Comision_CLIENTE' + end + item + Name = 'ID_PROVEEDOR' + DataType = datInteger + DictionaryEntry = 'Comisiones_Detalles_ID_PROVEEDOR' + end + item + Name = 'PROVEEDOR' + DataType = datString + Size = 255 + DictionaryEntry = 'Comisiones_Detalles_PROVEEDOR' + end + item + Name = 'COMISION' + DataType = datFloat + DictionaryEntry = 'Comisiones_Detalles_COMISION' + end + item + Name = 'IMPORTE_COMISIONABLE' + DataType = datCurrency + DisplayLabel = 'V_Detalles_Facturas_Comision_IMPORTE_COMISIONABLE' + Alignment = taRightJustify + DictionaryEntry = 'V_Detalles_Facturas_Comision_IMPORTE_COMISIONABLE' + end + item + Name = 'IMPORTE_COMISION' + DataType = datCurrency + DisplayLabel = 'V_Detalles_Facturas_Comision_IMPORTE_COMISION' + Alignment = taRightJustify + DictionaryEntry = 'V_Detalles_Facturas_Comision_IMPORTE_COMISION' + end> + Params = <> + MasterMappingMode = mmDataRequest + StreamingOptions = [soDisableEventsWhileStreaming] + 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 + DataSet = tbl_V_Detalles_Facturas_Comision.Dataset + DataTable = tbl_V_Detalles_Facturas_Comision + Left = 312 + Top = 256 + end + object Bin2DataStreamer: TDABin2DataStreamer + Left = 48 + Top = 84 + end + object rda_Comisiones: TDARemoteDataAdapter + GetSchemaCall.RemoteService = RORemoteService + GetDataCall.RemoteService = RORemoteService + UpdateDataCall.RemoteService = RORemoteService + GetScriptsCall.RemoteService = RORemoteService + RemoteService = RORemoteService + DataStreamer = Bin2DataStreamer + Left = 51 + Top = 143 + end +end diff --git a/Source/Modulos/Comisiones/Data/uDataModuleComisiones.pas b/Source/Modulos/Comisiones/Data/uDataModuleComisiones.pas new file mode 100644 index 00000000..25700876 --- /dev/null +++ b/Source/Modulos/Comisiones/Data/uDataModuleComisiones.pas @@ -0,0 +1,141 @@ +unit uDataModuleComisiones; + +interface + +uses + SysUtils, Classes, DB, uDAClientDataModule, uDADataTable, uDABINAdapter, + uDAScriptingProvider, uDACDSDataTable, uROWinInetHttpChannel, uROTypes, + uROServiceComponent, uRORemoteService, uROClient, uROBinMessage, + uDADesigntimeCall, uIDataModuleComisiones, uBizComisiones, uDataModuleBase, + uIDataModuleComisionesReport, uDARemoteDataAdapter, uDADataStreamer, + uDABin2DataStreamer, uDAInterfaces; + +type + TDataModuleComisiones = class(TDataModuleBase, IDataModuleComisiones, IDataModuleComisionesReport) + RORemoteService: TRORemoteService; + 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; + Bin2DataStreamer: TDABin2DataStreamer; + rda_Comisiones: TDARemoteDataAdapter; + procedure DAClientDataModuleCreate(Sender: TObject); + protected + function _GetFacturas : IBizFacturasComision; + public + function GetItems : IBizComisiones; overload; + function GetFacturasDesglosadas : IBizFacturasComision; + function GetItem(const ID : Integer) : IBizComisiones; + function NewItem : IBizComisiones; + + // Report + function GetReport(const AComisionID: Variant; const DesglosadoProv: Boolean; 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.GetItems: IBizComisiones; +var + AComisiones : TDACDSDataTable; +begin + ShowHourglassCursor; + try + AComisiones := CloneDataTable(tbl_Comisiones); + AComisiones.BusinessRulesID := BIZ_CLIENT_COMISIONES; + + // EL CAMPO REFERENCIA TIENE QUE SER AUTOREFRESH!!!!! + AComisiones.FieldByName(fld_ComisionesREFERENCIA).ServerAutoRefresh := TRUE; + + with TBizComisiones(AComisiones.BusinessEventsObj) do + begin + Facturas := _GetFacturas; + end; + + Result := (AComisiones as IBizComisiones); + finally + HideHourglassCursor; + end; +end; + +function TDataModuleComisiones._GetFacturas: IBizFacturasComision; +var + AFacturas : TDAMemDataTable; +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 : TDAMemDataTable; +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; +var + Condicion: TDAWhereExpression; +begin + ShowHourglassCursor; + try + Result := Self.GetItems; + + with Result.DataTable.DynamicWhere do + begin + // (ID = :ID) + Condicion := NewBinaryExpression(NewField('', fld_ComisionesID), NewConstant(ID, datInteger), dboEqual); + + if IsEmpty then + Expression := Condicion + else + Expression := NewBinaryExpression(Expression, Condicion, dboAnd); + end; + + finally + HideHourglassCursor; + end; +end; + +function TDataModuleComisiones.GetReport(const AComisionID: Variant; const DesglosadoProv: Boolean; FechaIni: String; FechaFin: String; AAgenteID: Variant): Binary; +begin +// Result := (RORemoteService as IsrvComisiones).GenerateReport(AComisionID, DesglosadoProv, 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 0000000000000000000000000000000000000000..36f26e234a8ac66a47e95cec6d496cf2f1442471 GIT binary patch literal 32 UcmZQzU|>)H;{X347|28c09i@|9RL6T literal 0 HcmV?d00001 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..ce025e5b --- /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; const DesglosadoProv: Boolean; 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..2c8306ed --- /dev/null +++ b/Source/Modulos/Comisiones/Model/schComisionesClient_Intf.pas @@ -0,0 +1,1114 @@ +unit schComisionesClient_Intf; + +interface + +uses + Classes, DB, schBase_Intf, 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(TIntfObjectDADataTableRules, 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(TIntfObjectDADataTableRules, 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(TIntfObjectDADataTableRules, 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(TIntfObjectDADataTableRules, 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(TIntfObjectDADataTableRules, 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..d01d71f8 --- /dev/null +++ b/Source/Modulos/Comisiones/Model/schReportClient_Intf.pas @@ -0,0 +1,622 @@ +unit schReportClient_Intf; + +interface + +uses + Classes, DB, schBase_Intf, 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(TIntfObjectDADataTableRules, 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..fb493ef7 --- /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 := AppFactuGES.EmpresaActiva.ID; + FECHA := Date; + USUARIO := AppFactuGES.UsuarioActivo.UserName; + DESCRIPCION := 'Liquidacin 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..97670418 --- /dev/null +++ b/Source/Modulos/Comisiones/Model/uBizComisionesServer.pas @@ -0,0 +1,76 @@ +unit uBizComisionesServer; + +interface + +uses + uDAInterfaces, uDADelta, uDABusinessProcessor, + schComisionesServer_Intf; + +const + BIZ_SERVER_COMISIONES = 'Server.Comisiones'; + REF_COMISIONES = 'REF_COMISIONES'; + +type + TBizComisionesServer = class(TComisionesBusinessProcessorRules) + protected + procedure BeforeProcessDelta(Sender: TDABusinessProcessor; const aDelta: IDADelta); override; + end; + +implementation + +uses + Variants, uDAClasses, uReferenciasUtils, uBusinessUtils, uROClasses, uDataModuleServer, + schComisionesClient_Intf,; + +{ TBizComisionesServer } + +procedure TBizComisionesServer.BeforeProcessDelta(Sender: TDABusinessProcessor; + const aDelta: IDADelta); +var + ASchema : TDASchema; + ACurrentConn : IDAConnection; + dsData: IDADataset; + Empresa : Variant; + +begin + inherited; + case Sender.CurrentChange.ChangeType of + ctInsert, ctUpdate: begin + //Si la referencia no ha sido asignada le asignamos una nosotros + if (VarIsNull(Sender.CurrentChange.NewValueByName[fld_ComisionesREFERENCIA])) + or (VarToStr(Sender.CurrentChange.NewValueByName[fld_ComisionesREFERENCIA]) = '') then + begin + ASchema := BusinessProcessor.Schema; + ACurrentConn := GetBusinessProcessorConnection(BusinessProcessor); + + try + //Siempre va a estar rellena + Empresa := Sender.CurrentChange.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 0000000000000000000000000000000000000000..36f26e234a8ac66a47e95cec6d496cf2f1442471 GIT binary patch literal 32 UcmZQzU|>)H;{X347|28c09i@|9RL6T literal 0 HcmV?d00001 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/Reports/uRptComisiones_Server.dfm b/Source/Modulos/Comisiones/Reports/uRptComisiones_Server.dfm new file mode 100644 index 00000000..190ded51 --- /dev/null +++ b/Source/Modulos/Comisiones/Reports/uRptComisiones_Server.dfm @@ -0,0 +1,1503 @@ +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#10' ' + + ' SUM(V_AGENTES_COMISIONES_DET_FAC.IMPORTE_TOTAL) as IMPORTE_CO' + + 'MISIONABLE,'#10' SUM(V_AGENTES_COMISIONES_DET_FAC.IMPORTE_COMI' + + 'SION) as IMPORTE_COMISION'#10#10#10'from V_AGENTES_COMISIONES_DET_FAC'#10'LE' + + 'FT JOIN COMISIONES_LIQUIDADAS ON (COMISIONES_LIQUIDADAS.ID = V_A' + + 'GENTES_COMISIONES_DET_FAC.ID_COMISION_LIQUIDADA)'#10'LEFT JOIN EMPRE' + + 'SAS ON EMPRESAS.ID = V_AGENTES_COMISIONES_DET_FAC.ID_EMPRESA'#10'LEF' + + 'T JOIN CONTACTOS CONTACTOS1 ON (CONTACTOS1.ID = V_AGENTES_COMISI' + + 'ONES_DET_FAC.ID_AGENTE)'#10'LEFT JOIN CONTACTOS CONTACTOS2 ON (CONTA' + + 'CTOS2.ID = V_AGENTES_COMISIONES_DET_FAC.ID_CLIENTE)'#10'LEFT JOIN CO' + + 'NTACTOS CONTACTOS3 ON (CONTACTOS3.ID = V_AGENTES_COMISIONES_DET_' + + 'FAC.ID_PROVEEDOR)'#10'WHERE (V_AGENTES_COMISIONES_DET_FAC.ID_COMISIO' + + 'N_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'#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 = '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 = '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 + 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#10' SUM(V_AGENTES_COMISIONES_DET_FAC.IMPORTE_TOTAL) as IMP' + + 'ORTE_COMISIONABLE,'#10' SUM(V_AGENTES_COMISIONES_DET_FAC.IMPOR' + + 'TE_COMISION) as IMPORTE_COMISION'#10#10#10'from V_AGENTES_COMISIONES_DET' + + '_FAC'#10'LEFT JOIN COMISIONES_LIQUIDADAS ON (COMISIONES_LIQUIDADAS.I' + + 'D = V_AGENTES_COMISIONES_DET_FAC.ID_COMISION_LIQUIDADA)'#10'LEFT JOI' + + 'N EMPRESAS ON EMPRESAS.ID = V_AGENTES_COMISIONES_DET_FAC.ID_EMPR' + + 'ESA'#10'LEFT JOIN CONTACTOS CONTACTOS1 ON (CONTACTOS1.ID = V_AGENTES' + + '_COMISIONES_DET_FAC.ID_AGENTE)'#10'LEFT JOIN CONTACTOS CONTACTOS2 ON' + + ' (CONTACTOS2.ID = V_AGENTES_COMISIONES_DET_FAC.ID_CLIENTE)'#10'LEFT ' + + 'JOIN CONTACTOS CONTACTOS3 ON (CONTACTOS3.ID = V_AGENTES_COMISION' + + 'ES_DET_FAC.ID_PROVEEDOR)'#10'WHERE (V_AGENTES_COMISIONES_DET_FAC.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 = 'InformeComisionesDesglosado' + 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 = 39266.688905347220000000 + 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' + ' Memo31.Visible := True' + ' else' + ' Memo31.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 = Null + end + item + Name = 'FechaFin' + Value = Null + 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..b7b7a587 --- /dev/null +++ b/Source/Modulos/Comisiones/Reports/uRptComisiones_Server.pas @@ -0,0 +1,124 @@ +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; const DesglosadoProv: Boolean; FechaIni: String; FechaFin: String; AAgenteID: Variant): Binary; + end; + +implementation + +{$R *.dfm} + +uses + uDataModuleServer, schReportClient_Intf; + +const + rptComision = 'InfComisiones.fr3'; + rptComisionDesglosado = 'InfComisionesDesglosado.fr3'; + + { Dataset names for schReport } + ds_InformeComisiones = 'InformeComisiones'; + ds_InformeComisionesDesglosado = 'InformeComisionesDesglosado'; + + +{ 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; const DesglosadoProv: Boolean; FechaIni: String; FechaFin: String; AAgenteID: Variant): Binary; +var + dsMaster: IDADataset; + AStream: TMemoryStream; +begin + AStream := TMemoryStream.Create; + Result := Binary.Create; + FConnection.BeginTransaction; + try + if DesglosadoProv then + dsMaster := schReport.NewDataset(FConnection, ds_InformeComisionesDesglosado,[], [], False) + else + 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); + + if DesglosadoProv then + frxReport.LoadFromFile(DarRutaInformes + rptComisionDesglosado, True) + else + 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..b96dd994 --- /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 DesglosadoProv: Boolean; 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 DesglosadoProv: Boolean; const FechaIni: String; const FechaFin: String; const AAgenteID: Variant): Binary; +var + AReportGenerator : TRptComisiones; +begin + AReportGenerator := TRptComisiones.Create(nil); + try + Result := AReportGenerator.GenerarComision(AComisionID, DesglosadoProv, 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..9119edfd --- /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}, + uEditorComisionesReport in 'uEditorComisionesReport.pas' {fEditorComisionesReport: TfEditorComisionesReport}, + uViewFacturasComision in 'uViewFacturasComision.pas' {frViewFacturasComision: TFrame}; + +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 0000000000000000000000000000000000000000..36f26e234a8ac66a47e95cec6d496cf2f1442471 GIT binary patch literal 32 UcmZQzU|>)H;{X347|28c09i@|9RL6T literal 0 HcmV?d00001 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..6c0b4866 --- /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 = 488 + 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 eReferencia: TcxDBTextEdit + ExplicitWidth = 164 + Width = 164 + end + inherited eDescripcion: TcxDBTextEdit + ExplicitWidth = 108 + Width = 108 + end + inherited edtFecha: TcxDBDateEdit + Left = 355 + ExplicitLeft = 355 + ExplicitWidth = 170 + Width = 170 + end + inherited cbAgente: TcxDBLookupComboBox + ExplicitWidth = 319 + Width = 319 + 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 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 proveedor' + 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..7187a985 --- /dev/null +++ b/Source/Modulos/Comisiones/Views/uEditorComision.pas @@ -0,0 +1,308 @@ +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 liquidacin de comisiones se ha dado de alta con el cdigo ' + FComision.REFERENCIA); + Modified := False; +// frViewRecibosComision1.Modified := False; +// frViewRecibosComision1.OnViewModified := OnRecibosChanged; +end; + +procedure TfEditorComision.ImprimirInterno; +begin + inherited; + if (Application.MessageBox('Desea previsualizar la liquidacin de comisiones sin desglosar?', 'Atencin', MB_YESNO) = IDYES) then + FController.Print(FComision, False) + else + FController.Print(FComision, True); +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 liquidacin de comisiones' + else + FTitulo := 'Liquidacin de comisiones'; + end; + + inherited PonerTitulos(FTitulo); + + Self.Caption := FTitulo + ' (' + AppFactuGES.EmpresaActiva.NOMBRE + ')'; +end; + +procedure TfEditorComision.PrevisualizarInterno; +begin + inherited; + if (Application.MessageBox('Desea previsualizar la liquidacin de comisiones sin desglosar?', 'Atencin', MB_YESNO) = IDYES) then + FController.Preview(FComision, False) + else + FController.Preview(FComision, True); +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 ningn almacn 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 liquidacin de comisiones?', 'Atencin', MB_YESNO) = IDYES) then + begin + inherited; + if not FController.Eliminar(FComision) then + actRefrescar.Execute; + end; +end; + +end. + + \ No newline at end of file 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 0000000000000000000000000000000000000000..709ca69623971844f71723c862ea4913d304e68d GIT binary patch literal 5131 zcmdT|T~8x76y0Ye{=emCmF+-QC&UQJIrwE+WY(v`GUEF_+$Pxhlz37+nRQ6h7AI!lDbi9@8ARlF zNdg*#^H|9GII-(h_JnC+hl!_Pl^Sy&r6nIcp!E|p{QO0X|{Ilj92$ab;z9_zmq zvqYAja`1Y&(^K_{{T%eBkx@&hvc<&cm5L?wV)bk=ZB8P5z2$O>6vN(94i;|Y0ueAz z)dy^2>5~LGPdT;(tI7oAXSsDc<4o`MLuV>8BpN%fXTQnF?RyzZqgKLsUy06}Xr0h#t@ulY*x?%z zQ6y|>_BZRLSnZ%g#)Y@@Jd3!`=t8>Y%nLdi)2HF?PNXyI02fIv+b0WOh}QMIYALOh zak)rJ=UR&ENjL=@BDircX()q(KeKXIh7eN>wJz>pOuhYOYW~ zuWy|gxl$HRs!wm(K1xv$soE%*A)RaY=xD0wk6ap=YD2$2yk?dKuK!omCQ9I(xe3q!F zePRN{H@C{=iMC}Td&TPs0mlG==;*yY0Lj-ZS*>fFF5bHgE8V6-3#sXxiZ$l)~X6?Y~K*#*Jz~<^NqB5;#g_Gb%BztiELxz?oKK9 z=x9BGK7AbwOTZ)FGu?9V?d!+R-e2f8378ClnG!*X`Xg7dh}7R1#gd{LcE~DTu?s+$ zFhA}c(q0cZ${X=~)&KRE;dFex4;&i}@EE3#-K@}}I|16c&R8XwrbS|Pkykegm>?x=`;lyI<{5W8i&70Q7^-I z*Vgr)*z!83v0E!)II-si+hK5-db$h4Uw;DydidnRtLu<2b*)PLhW6-dLS>(e$mJKq zX?KW$0pRVsS#-zOSN)qIR0It{Yvz_J-yHXi^GhB7|4rv%2$K(Q?!91lyZg2l>Dt&4 zj;-yoXq&1M(4nuV`3`3O-;@nZ=GQiYp`EH6-$XOQUsPN50@39=HS zP%H|fD<_{I5#1`7Au|M%7A`%&yBo>2;MUb0KFTO}#n4hD>rE+JyS)VYs^%VF^nQTn t75s$(7oD{R+0ZmWYlQcJ4JEqeY7p2G)*+#ngZoy~gz&b@Q{=mM{{oq8uo3_O literal 0 HcmV?d00001 diff --git a/Source/Modulos/Comisiones/Views/uEditorComisionesReport.dfm b/Source/Modulos/Comisiones/Views/uEditorComisionesReport.dfm new file mode 100644 index 00000000..b62d0edb --- /dev/null +++ b/Source/Modulos/Comisiones/Views/uEditorComisionesReport.dfm @@ -0,0 +1,161 @@ +inherited fEditorComisionesPreview: TfEditorComisionesPreview + Caption = 'Previsualizar la factura' + ExplicitWidth = 803 + PixelsPerInch = 96 + TextHeight = 13 + inherited JvNavPanelHeader: TJvNavPanelHeader + inherited Image1: TImage + Left = 768 + end + 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 + 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..5675ae1b --- /dev/null +++ b/Source/Modulos/Comisiones/Views/uEditorComisionesReport.pas @@ -0,0 +1,137 @@ +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, uDialogUtils, 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, False, edtFechaFiltro1.Text, edtFechaFiltro2.Text, cbAgentes.EditValue); + try + //Para que refresque el editor que presenta el informe y no falle al aplicar un filtro y cambiar el numero de hojas del informe + actPrimeraPagina.Execute; + + Report.PreviewPages.Clear; + LoadFromStream(AStream); + Report.Preview.Refresh; + + //Para que refresque el editor que presenta el informe y no falle al aplicar un filtro y cambiar el numero de hojas del informe + actAnchoPagina.Execute; + 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 + ShowWarningMessage('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 slo podr ser copiado, distribuido y utilizado, + en su totalidad o en parte, con el permiso escrito de Rodax Software, o de + acuerdo con los trminos y condiciones establecidas en el acuerdo/contrato + bajo el que se suministra. + ----------------------------------------------------------------------------- + Web: www.rodax-software.com +=============================================================================== + Fecha primera versin: 22-05-2006 + Versin actual: 1.0.0 + Fecha versin actual: 22-05-2006 +=============================================================================== + Modificaciones: + + Fecha Comentarios + --------------------------------------------------------------------------- +=============================================================================== +} + +unit uEditorFamilias; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, DB, StdCtrls, DBCtrls, uDADataTable, ActnList, + uIEditorFamilias, uCustomEditor, uGUIBase, ExtCtrls, + ComCtrls, uBizFamilias, uFamiliasController; + +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 0000000000000000000000000000000000000000..ef8c6669f98ea82ffeb62e565d8071c180b98a74 GIT binary patch literal 5913 zcmbtY+iv5y8Q$vvd58aEfjHAt!AuKmJA*}G$4=_OCKJS&bbD3M678^+MVF+UWET5u z`%rt=tA0O4OO$-dV1fXqc=*qUk1Px2s2pX=X>%tR(h7T#D_J=C;rQtINMT@RB9;76 zT4|4ui2k99Oh4H(x|Y_8xx{GlVm~{TWAq@55{1L)A{Q1X&gjaB<)cb@N*B&(-gc?Y z!k#g;p%S^CV=7275LTYiz1BJS@R7xZGkoOZYV_O?__)H#QWp@_lli#15i2zpPU+%S z6d+MPDEZXZ36lf$r90P8UGbB$?u>>59?kz^!dk|gPj?^j1d!=%QS^E&S+W86^M#0`t}aW!$mm3APE4{P_bL_`za&$h`! zKT^uE+gmT!a?w`#Pni^vNZo_ZQ(=b6ruseI!@bZS40#oPWe@-92P}kfvoeuOVFY}_ zTi%8(t;w+W=Fd3J;m8}qT*Xvm%=PW&GMG)uDSYV9ysOwpGmR8pzQ1h9w=_DHS!twC z+R3AS>P=*U;KI&N(|^m!y?|J?0)!=nte<(jbGmbFi_SZKGT* zR3Xgaov5yArjSF2x854LQWlD;FR$4?ULa%^YAa!GZY=Tn`9#rwOKIdnTS|=-hO{#R z7O+kb=P1dXr0m)6t)0ys?sBhIA z7J6VtU5hWvX|B@liCgqObFW;PYa5)|uRh-sDmj_}>e$H%{I}_sr8Mq^4u&zo0@-H3 z)00t9WFw{LhubOG^DANrr3UJP#yd)Dya1)iAiP)?lD*$JWwk1gKHELOSQ?Eua-jlkdS{ zVK}IIn};cvVxe*+7_E-OFcdq#zJ)VG{jGV84o-6^?8=}!@fE$J6vt~J88?@G5<~@j(8sQakoAnAJz0@&$fDaa*HzOdTqn7cfLZ? zCS~^2D3GkBiL`CbMm!H{y3ykz;=5ISkYG_&QnM7;xH(DO1=){`-NGJ3M!hPow2(`Q#O_C9C0dBoM zheUGo>3VQC0^O*dP)o+ZCyug%#@`B6UgZRTQa*i)=QrAPjQn;$&pOyU3C%g~A*;7g zW}6yRkG7P7rc_mio$W8mb)`lLq%l{rPJ$=xZ|2yZ0h@INIOv-eD(;x3O|{8(c79`` zW?pTuKoZkzb7s0XfXiWkp$>%J){Y6rw2kw zcOA|~$r+vW0f|%fdx7!w;9vh7O>RD&0+No07>Z zwqulWUQveQw~V*}r%4tJyi;K{^C&beH7=m&-GG4p0zkPS4cIA|Bl(3H@)~DDt3N*n zPNoc(Y)k0u8vmAXV4;BQWw@YFS%9K{3DG2&rj#gi~|%`j_Np`h&Jf}YwRWzaFo{& zZ%UQ%x-^n23D_>orAh(Z^bIhcc>C90r{W~zA!i%W3>U~e-$5%*kZ&^S?k9&jPTQ72 zNc>&Ap!y-2M3Eh+Y}LC7*R}9CbefC`e$dNU1BR=;twlBA=PL<_OPS>h2q1*C;n@k% z1-^W?27P0TuI9Y0WNyP{G`zm-Vty&G6PA8;EVgc}QRP@m!5UR~nrHBqhRf|nDc@1z fBRSIO!ndPa<%=|k$$Z;eiH`w-+lLgLn^r0 literal 0 HcmV?d00001 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..dd58e353 --- /dev/null +++ b/Source/Modulos/Comisiones/Views/uViewComisiones.dfm @@ -0,0 +1,154 @@ +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 TBXDockablePanel1: TTBXDockablePanel + inherited dxLayoutControl1: TdxLayoutControl + inherited txtFiltroTodo: TcxTextEdit + ExplicitWidth = 273 + Width = 273 + end + inherited edtFechaIniFiltro: TcxDateEdit + ExplicitWidth = 121 + Width = 121 + end + inherited edtFechaFinFiltro: TcxDateEdit + ExplicitWidth = 121 + Width = 121 + end + end + end + end + inherited 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..20999122 --- /dev/null +++ b/Source/Modulos/Comisiones/Views/uViewFacturasComision.dfm @@ -0,0 +1,266 @@ +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 = '' + IsCaptionAssigned = True + 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/Contabilidad balances/Balances_Group.groupproj b/Source/Modulos/Contabilidad balances/Balances_Group.groupproj new file mode 100644 index 00000000..50152f32 --- /dev/null +++ b/Source/Modulos/Contabilidad balances/Balances_Group.groupproj @@ -0,0 +1,124 @@ + + + {3df776bd-a3f8-4f3a-9129-45fdb4a2ee63} + + + + + + + + + + + + + + + + Default.Personality + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Source/Modulos/Contabilidad balances/Controller/Balances_controller.dpk b/Source/Modulos/Contabilidad balances/Controller/Balances_controller.dpk new file mode 100644 index 00000000..b6c6d5e7 --- /dev/null +++ b/Source/Modulos/Contabilidad balances/Controller/Balances_controller.dpk @@ -0,0 +1,42 @@ +package Balances_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 ON} +{$DEFINE DEBUG} + +requires + rtl, + vcl, + Base, + GUIBase, + ApplicationBase, + Balances_model, + Balances_data; + +contains + uBalancesController in 'uBalancesController.pas', + uIEditorBalance in 'View\uIEditorBalance.pas', + uIEditorBalances in 'View\uIEditorBalances.pas'; + +end. diff --git a/Source/Modulos/Contabilidad balances/Controller/Balances_controller.dproj b/Source/Modulos/Contabilidad balances/Controller/Balances_controller.dproj new file mode 100644 index 00000000..78111cf5 --- /dev/null +++ b/Source/Modulos/Contabilidad balances/Controller/Balances_controller.dproj @@ -0,0 +1,545 @@ + + + + {7f80f8aa-6912-4714-986d-aed73035472b} + Balances_controller.dpk + Debug + AnyCPU + DCC32 + ..\..\..\..\Output\Debug\Cliente\Balances_controller.bpl + + + 7.0 + False + False + 0 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + RELEASE + + + 7.0 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + DEBUG + + + Delphi.Personality + Package + +FalseTrueFalseTrueFalseFalseTrueFalse1000FalseFalseFalseFalseFalse308212521.0.0.01.0.0.0Balances_controller.dpk + + + + + MainSource + + + + + + + + + + + + + + diff --git a/Source/Modulos/Contabilidad balances/Controller/Balances_controller.identcache b/Source/Modulos/Contabilidad balances/Controller/Balances_controller.identcache new file mode 100644 index 0000000000000000000000000000000000000000..a9a351aa884e640290654255a3951076c34ae834 GIT binary patch literal 307 zcmZQ(U|@)Jwu*7iPsvQrS8z;D%u9?3&Mz%WPL1)+PbtmGF9yoxl_Vx*=47TMrYIyO z<|O7Nr$R)F@^f-hi(WYy7LeWAUaqx~Kv?-;(-Hs4-^ATIZOBrid9+-6Ne7&88mi>kUR4lo#jxZ;#*s4zxg9yNlk=H9sqkCD2^cEXKpiTBNfgkKpXJBWWaLt(Qkv@0 w5yv*t82((Wlr2{_+FDoDHKW2QCXvc+s**ul{{$ + + + {c8118762-09b6-432f-ba26-058fa36c39d9} + Balances_data.dpk + Debug + AnyCPU + DCC32 + ..\..\..\..\Output\Debug\Cliente\Balances_data.bpl + + + 7.0 + False + False + 0 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + RELEASE + + + 7.0 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + DEBUG + + + Delphi.Personality + Package + +FalseTrueFalseTrueFalseFalseTrueFalse1000FalseFalseFalseFalseFalse308212521.0.0.01.0.0.0Balances_data.dpk + + + + + MainSource + + + + + + + + + + + + +
    DataModuleBalances
    +
    +
    +
    + diff --git a/Source/Modulos/Contabilidad balances/Data/Balances_data.identcache b/Source/Modulos/Contabilidad balances/Data/Balances_data.identcache new file mode 100644 index 0000000000000000000000000000000000000000..b2720b5311a6f2b4d5bf43336205695fd2e38498 GIT binary patch literal 98 zcmZQ%U|P5qgkC{nG0;#r003ta9|iyb literal 0 HcmV?d00001 diff --git a/Source/Modulos/Contabilidad balances/Data/Balances_data.rc b/Source/Modulos/Contabilidad balances/Data/Balances_data.rc new file mode 100644 index 00000000..153736af --- /dev/null +++ b/Source/Modulos/Contabilidad balances/Data/Balances_data.rc @@ -0,0 +1,22 @@ +1 VERSIONINFO +FILEVERSION 1,0,0,0 +PRODUCTVERSION 1,0,0,0 +FILEFLAGSMASK 0x3FL +FILEFLAGS 0x00L +FILEOS 0x40004L +FILETYPE 0x1L +FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "0C0A04E4" + BEGIN + VALUE "FileVersion", "1.0.0.0\0" + VALUE "ProductVersion", "1.0.0.0\0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x0C0A, 1252 + END +END diff --git a/Source/Modulos/Contabilidad balances/Data/Balances_data.res b/Source/Modulos/Contabilidad balances/Data/Balances_data.res new file mode 100644 index 0000000000000000000000000000000000000000..8b251f312bcccec5485024f6fe8d80e1cdf25746 GIT binary patch literal 384 zcmZ9HOA3Ne6ox;+L5PEv(4cV`IIrjdPAV##hV&wc1g%+%X(R2Xc{`~7t6e0Ioa?#% zkMj%AQhz>WYy7LeWAUaqx~Kv?-;(-Hs4-^ATIZOBrid9+-6Ne7&88mi>kUR4lo#jxZ;#*s4zxg9yNlk=H9sqkCD2^cEXKpiTBNfgkKpXJBWWaLt(Qkv@0 w5yv*t82((Wlr2{_+FDoDHKW2QCXvc+s**ul{{$ + Params = <> + StreamingOptions = [soDisableEventsWhileStreaming] + RemoteDataAdapter = rda_Balances + DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch] + MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates] + LogicalName = 'Balances' + IndexDefs = <> + Left = 264 + Top = 80 + end + object ds_Balances: TDADataSource + DataSet = tbl_Balances.Dataset + DataTable = tbl_Balances + Left = 264 + Top = 24 + end +end diff --git a/Source/Modulos/Contabilidad balances/Data/uDataModuleBalances.pas b/Source/Modulos/Contabilidad balances/Data/uDataModuleBalances.pas new file mode 100644 index 00000000..3be79aff --- /dev/null +++ b/Source/Modulos/Contabilidad balances/Data/uDataModuleBalances.pas @@ -0,0 +1,54 @@ +unit uDataModuleBalances; + +interface + +uses + SysUtils, Classes, DB, uDADataTable, uDABINAdapter, + uDAScriptingProvider, uDACDSDataTable, uROWinInetHttpChannel, uROTypes, + uRORemoteService, uROClient, uROBinMessage, + uDADesigntimeCall, uControllerBase, + uBizBalances, uDARemoteDataAdapter, uDADataStreamer, uDAInterfaces, uRODynamicRequest, + uDABin2DataStreamer, uDAMemDataTable, uIDataModuleBalances, uDataModuleBase; +type + TDataModuleBalances = class(TDataModuleBase, IDataModuleBalances) + RORemoteService: TRORemoteService; + Bin2DataStreamer: TDABin2DataStreamer; + rda_Balances: TDARemoteDataAdapter; + tbl_Balances: TDAMemDataTable; + ds_Balances: TDADataSource; + procedure DAClientDataModuleCreate(Sender: TObject); + public + function GetItems: IBizBalance; + end; + +implementation + +{$R *.DFM} + +uses + FactuGES_Intf, uDataModuleConexion, uDataTableUtils, cxControls, + schBalancesClient_Intf; + +{ TdmAlmacens } + +procedure TDataModuleBalances.DAClientDataModuleCreate(Sender: TObject); +begin + RORemoteService.Channel := dmConexion.Channel; + RORemoteService.Message := dmConexion.Message; +end; + +function TDataModuleBalances.GetItems: IBizBalance; +var + AContabilidadBalance : TDAMemDataTable; +begin + ShowHourglassCursor; + try + AContabilidadBalance := CloneDataTable(tbl_Balances); + AContabilidadBalance.BusinessRulesID := BIZ_CLIENT_Balance; + Result := (AContabilidadBalance as IBizBalance); + finally + HideHourglassCursor; + end; +end; + +end. diff --git a/Source/Modulos/Contabilidad balances/Model/Balances_model.dpk b/Source/Modulos/Contabilidad balances/Model/Balances_model.dpk new file mode 100644 index 00000000..ac96d7fe --- /dev/null +++ b/Source/Modulos/Contabilidad balances/Model/Balances_model.dpk @@ -0,0 +1,46 @@ +package Balances_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 ON} + +requires + rtl, + vcl, + Base, + GUIBase, + ApplicationBase, + dbrtl, + RemObjects_Core_D11, + DataAbstract_Core_D11, + vcldb, + dsnap, + adortl; + +contains + uBizBalances in 'uBizBalances.pas', + uIDataModuleBalances in 'Data\uIDataModuleBalances.pas', + schBalancesServer_Intf in 'schBalancesServer_Intf.pas', + schBalancesClient_Intf in 'schBalancesClient_Intf.pas'; + +end. diff --git a/Source/Modulos/Contabilidad balances/Model/Balances_model.dproj b/Source/Modulos/Contabilidad balances/Model/Balances_model.dproj new file mode 100644 index 00000000..b396de6e --- /dev/null +++ b/Source/Modulos/Contabilidad balances/Model/Balances_model.dproj @@ -0,0 +1,549 @@ + + + + {73acd39c-b2f0-49b7-9acf-10945bbac8c1} + Balances_model.dpk + Debug + AnyCPU + DCC32 + ..\..\..\..\Output\Debug\Cliente\Balances_model.bpl + + + 7.0 + False + False + 0 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + RELEASE + + + 7.0 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + + + Delphi.Personality + Package + +FalseTrueFalseTrueFalseFalseTrueFalse1000FalseFalseFalseFalseFalse308212521.0.0.01.0.0.0Balances_model.dpk + + + + + MainSource + + + + + + + + + + + + + + + + + + + diff --git a/Source/Modulos/Contabilidad balances/Model/Balances_model.identcache b/Source/Modulos/Contabilidad balances/Model/Balances_model.identcache new file mode 100644 index 0000000000000000000000000000000000000000..37724302f2a49dd4917d601ccac6b834b9e7a23b GIT binary patch literal 492 zcmZQ&U|{fewu*7iPsvQrS8z;D%u9?3&Mz%WPL1)+PbtmGF9yoxl_Vx*=47TMrYIyO z<|O7Nrxt@`Q*&ZUoieMOph9{DiN!$U;2??ub6pZk5@Sj|K@`{-sjgY6Mah}Tnfb-& x)`U`EO>uGt%=OMWnW=dt@t%1lY3MdYP+$XwM_~4$TS6so1g932r50iJ1^^N$qHzEK literal 0 HcmV?d00001 diff --git a/Source/Modulos/Contabilidad balances/Model/Balances_model.rc b/Source/Modulos/Contabilidad balances/Model/Balances_model.rc new file mode 100644 index 00000000..153736af --- /dev/null +++ b/Source/Modulos/Contabilidad balances/Model/Balances_model.rc @@ -0,0 +1,22 @@ +1 VERSIONINFO +FILEVERSION 1,0,0,0 +PRODUCTVERSION 1,0,0,0 +FILEFLAGSMASK 0x3FL +FILEFLAGS 0x00L +FILEOS 0x40004L +FILETYPE 0x1L +FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "0C0A04E4" + BEGIN + VALUE "FileVersion", "1.0.0.0\0" + VALUE "ProductVersion", "1.0.0.0\0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x0C0A, 1252 + END +END diff --git a/Source/Modulos/Contabilidad balances/Model/Balances_model.res b/Source/Modulos/Contabilidad balances/Model/Balances_model.res new file mode 100644 index 0000000000000000000000000000000000000000..8b251f312bcccec5485024f6fe8d80e1cdf25746 GIT binary patch literal 384 zcmZ9HOA3Ne6ox;+L5PEv(4cV`IIrjdPAV##hV&wc1g%+%X(R2Xc{`~7t6e0Ioa?#% zkMj%AQhz>WYy7LeWAUaqx~Kv?-;(-Hs4-^ATIZOBrid9+-6Ne7&88mi>kUR4lo#jxZ;#*s4zxg9yNlk=H9sqkCD2^cEXKpiTBNfgkKpXJBWWaLt(Qkv@0 w5yv*t82((Wlr2{_+FDoDHKW2QCXvc+s**ul{{$ + + + {82e36812-58c4-491b-b463-6b951e95da51} + Balances_plugin.dpk + Debug + AnyCPU + DCC32 + ..\..\..\..\Output\Debug\Cliente\Balances_plugin.bpl + + + 7.0 + False + False + 0 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + RELEASE + + + 7.0 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + DEBUG + + + Delphi.Personality + Package + +FalseTrueFalseTrueFalseFalseTrueFalse1000FalseFalseFalseFalseFalse308212521.0.0.01.0.0.0Balances_plugin.dpk + + + + + MainSource + + + + + + + + + + + + + + + + + + diff --git a/Source/Modulos/Contabilidad balances/Plugin/Balances_plugin.identcache b/Source/Modulos/Contabilidad balances/Plugin/Balances_plugin.identcache new file mode 100644 index 0000000000000000000000000000000000000000..610f884b8b76c4614f72c0929ee50c576c24913a GIT binary patch literal 96 zcmZQ%U|{ffwu*7iPsvQrS8z;D%u9?3&Mz%WPL1)+PbtmGF9yoxl_Vx*=47TMrYIyO g<|O7NrxwQqWYy7LeWAUaqx~Kv?-;(-Hs4-^ATIZOBrid9+-6Ne7&88mi>kUR4lo#jxZ;#*s4zxg9yNlk=H9sqkCD2^cEXKpiTBNfgkKpXJBWWaLt(Qkv@0 w5yv*t82((Wlr2{_+FDoDHKW2QCXvc+s**ul{{$ + Left = 232 + Top = 16 + end + object ModuleActionList: TActionList + Images = SmallImages + Left = 40 + Top = 72 + object actBalances: TAction + Category = 'Balances' + Caption = 'Balances' + ImageIndex = 0 + OnExecute = actBalancesExecute + end + end + object MainMenu: TMainMenu + Images = LargeImages + Left = 40 + Top = 16 + object Ventas1: TMenuItem + Caption = 'Empresa' + object N1: TMenuItem + Tag = 18990 + Caption = '-' + end + object Balances1: TMenuItem + Tag = 19001 + Action = actBalances + 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/Contabilidad balances/Plugin/uPluginBalances.pas b/Source/Modulos/Contabilidad balances/Plugin/uPluginBalances.pas new file mode 100644 index 00000000..d10e6af4 --- /dev/null +++ b/Source/Modulos/Contabilidad balances/Plugin/uPluginBalances.pas @@ -0,0 +1,74 @@ +unit uPluginBalances; + +interface + +uses + uModuleController, uInterfaces, uHostManager, Menus, Classes, ActnList, + ImgList, Controls, PngImageList; + +type + IMCBalances = interface(IInterface) + ['{255E8D6B-282A-48CC-9807-E49C7D31FD2D}'] + end; + + TPluginBalances = class(TModuleController, IMCBalances) + actBalances: TAction; + ExtraImages: TPngImageList; + LargeImages: TPngImageList; + MainMenu: TMainMenu; + ModuleActionList: TActionList; + SmallImages: TPngImageList; + Ventas1: TMenuItem; + Balances1: TMenuItem; + N1: TMenuItem; + procedure actBalancesExecute(Sender: TObject); + public + constructor Create(AOwner: TComponent); override; + destructor Destroy; override; + end; + +implementation + +{$R *.dfm} + +uses + Forms, Dialogs, SysUtils, + uBalancesController, uBizBalances, uBalancesViewRegister; + +function GetModule : TModuleController; +begin + Result := TPluginBalances.Create(NIL); +end; + +exports + GetModule name GET_MODULE_FUNC; + +procedure TPluginBalances.actBalancesExecute(Sender: TObject); +var + ABalancesController : IBalancesController; + ABalances : IBizBalance; +begin + ABalancesController := TBalancesController.Create; + ABalances := (ABalancesController.BuscarTodos as IBizBalance); + ABalancesController.VerTodos(ABalances); +end; + +constructor TPluginBalances.Create(AOwner: TComponent); +begin + inherited; + uBalancesViewRegister.RegisterViews; +end; + +destructor TPluginBalances.Destroy; +begin + uBalancesViewRegister.UnregisterViews; + inherited; +end; + +initialization + RegisterModuleClass(TPluginBalances); + +finalization + UnRegisterModuleClass(TPluginBalances); + +end. diff --git a/Source/Modulos/Contabilidad balances/Servidor/srvBalances_Impl.dfm b/Source/Modulos/Contabilidad balances/Servidor/srvBalances_Impl.dfm new file mode 100644 index 00000000..ef3404d3 --- /dev/null +++ b/Source/Modulos/Contabilidad balances/Servidor/srvBalances_Impl.dfm @@ -0,0 +1,194 @@ +object srvBalances: TsrvBalances + OldCreateOrder = True + OnCreate = DARemoteServiceCreate + SessionManager = dmServer.SessionManager + ServiceSchema = schBalances + ServiceDataStreamer = Bin2DataStreamer + ExportedDataTables = <> + BeforeAcquireConnection = DataAbstractServiceBeforeAcquireConnection + Height = 181 + Width = 282 + object Diagrams: TDADiagrams + Left = 150 + Top = 90 + DiagramData = + ''#13#10' '#13#10' '#13#10' '#13#10''#13#10 + end + object DataDictionary: TDADataDictionary + Fields = < + item + Name = 'Ejercicios_ID' + DataType = datAutoInc + GeneratorName = 'GEN_CONT_BALANCES_ID' + Required = True + DisplayLabel = 'ID' + ServerAutoRefresh = True + end + item + Name = 'Balances_REF_BALANCE' + DataType = datString + Size = 255 + end + item + Name = 'Balances_NATURALEZA' + DataType = datString + Size = 255 + end + item + Name = 'Balances_NIVEL1' + DataType = datString + Size = 15 + end + item + Name = 'Balances_DESCRIPCION1' + DataType = datString + Size = 255 + end + item + Name = 'Balances_NIVEL2' + DataType = datString + Size = 15 + end + item + Name = 'Balances_DESCRIPCION2' + DataType = datString + Size = 255 + end + item + Name = 'Balances_NIVEL3' + DataType = datString + Size = 15 + end + item + Name = 'Balances_DESCRIPCION3' + DataType = datString + Size = 255 + end> + Left = 150 + Top = 24 + end + object schBalances: TDASchema + ConnectionManager = dmServer.ConnectionManager + DataDictionary = DataDictionary + Diagrams = Diagrams + Datasets = < + item + Params = <> + Statements = < + item + Connection = 'IBX' + TargetTable = 'CONT_BALANCES' + StatementType = stAutoSQL + ColumnMappings = < + item + DatasetField = 'ID' + TableField = 'ID' + end + item + DatasetField = 'REF_BALANCE' + TableField = 'REF_BALANCE' + end + item + DatasetField = 'NATURALEZA' + TableField = 'NATURALEZA' + end + item + DatasetField = 'NIVEL1' + TableField = 'NIVEL1' + end + item + DatasetField = 'DESCRIPCION1' + TableField = 'DESCRIPCION1' + end + item + DatasetField = 'NIVEL2' + TableField = 'NIVEL2' + end + item + DatasetField = 'DESCRIPCION2' + TableField = 'DESCRIPCION2' + end + item + DatasetField = 'NIVEL3' + TableField = 'NIVEL3' + end + item + DatasetField = 'DESCRIPCION3' + TableField = 'DESCRIPCION3' + end> + end> + Name = 'Balances' + Fields = < + item + Name = 'ID' + DataType = datAutoInc + GeneratorName = 'GEN_CONT_BALANCES_ID' + ServerAutoRefresh = True + DictionaryEntry = 'Ejercicios_ID' + InPrimaryKey = True + end + item + Name = 'REF_BALANCE' + DataType = datString + Size = 255 + DictionaryEntry = 'Balances_REF_BALANCE' + end + item + Name = 'NATURALEZA' + DataType = datString + Size = 255 + DictionaryEntry = 'Balances_NATURALEZA' + end + item + Name = 'NIVEL1' + DataType = datString + Size = 15 + DictionaryEntry = 'Balances_NIVEL1' + end + item + Name = 'DESCRIPCION1' + DataType = datString + Size = 255 + DictionaryEntry = 'Balances_DESCRIPCION1' + end + item + Name = 'NIVEL2' + DataType = datString + Size = 15 + DictionaryEntry = 'Balances_NIVEL2' + end + item + Name = 'DESCRIPCION2' + DataType = datString + Size = 255 + DictionaryEntry = 'Balances_DESCRIPCION2' + end + item + Name = 'NIVEL3' + DataType = datString + Size = 15 + DictionaryEntry = 'Balances_NIVEL3' + end + item + Name = 'DESCRIPCION3' + DataType = datString + Size = 255 + DictionaryEntry = 'Balances_DESCRIPCION3' + end> + end> + JoinDataTables = <> + UnionDataTables = <> + Commands = <> + RelationShips = <> + UpdateRules = <> + Version = 0 + Left = 48 + Top = 24 + end + object Bin2DataStreamer: TDABin2DataStreamer + Left = 48 + Top = 88 + end +end diff --git a/Source/Modulos/Contabilidad balances/Servidor/srvBalances_Impl.pas b/Source/Modulos/Contabilidad balances/Servidor/srvBalances_Impl.pas new file mode 100644 index 00000000..8552c9b7 --- /dev/null +++ b/Source/Modulos/Contabilidad balances/Servidor/srvBalances_Impl.pas @@ -0,0 +1,64 @@ +unit srvBalances_Impl; + +{----------------------------------------------------------------------------} +{ This unit was automatically generated by the RemObjects SDK after reading } +{ the RODL file associated with this project . } +{ } +{ This is where you are supposed to code the implementation of your objects. } +{----------------------------------------------------------------------------} + +interface + +uses + {vcl:} Classes, SysUtils, + {RemObjects:} uROClientIntf, uROTypes, uROServer, uROServerIntf, uROSessions, + {Ancestor Implementation:} DataAbstractService_Impl, + {Used RODLs:} DataAbstract4_Intf, + {Generated:} FactuGES_Intf, uDADataTable, uDABINAdapter, uDAClasses, + uDAScriptingProvider, uDABusinessProcessor, uDADataStreamer, + uDABin2DataStreamer; + +type + { TsrvBalances } + TsrvBalances = class(TDataAbstractService, IsrvBalances) + Diagrams: TDADiagrams; + Bin2DataStreamer: TDABin2DataStreamer; + schBalances: TDASchema; + DataDictionary: TDADataDictionary; + procedure DARemoteServiceCreate(Sender: TObject); + procedure DataAbstractServiceBeforeAcquireConnection(aSender: TObject; + var aConnectionName: string); + private + protected + end; + +implementation + +{$R *.dfm} +uses + {Generated:} FactuGES_Invk, uDataModuleServer, + uDatabaseUtils; + +procedure Create_srvBalances(out anInstance : IUnknown); +begin + anInstance := TsrvBalances.Create(NIL); +end; + +{ srvBalances } +procedure TsrvBalances.DARemoteServiceCreate(Sender: TObject); +begin + SessionManager := dmServer.SessionManager; +end; + +procedure TsrvBalances.DataAbstractServiceBeforeAcquireConnection( + aSender: TObject; var aConnectionName: string); +begin + ConnectionName := dmServer.ConnectionName; +end; + +initialization + TROClassFactory.Create('srvBalances', Create_srvBalances, TsrvBalances_Invoker); + +finalization + +end. diff --git a/Source/Modulos/Contabilidad balances/Views/Balances_view.dpk b/Source/Modulos/Contabilidad balances/Views/Balances_view.dpk new file mode 100644 index 00000000..0e02ea07 --- /dev/null +++ b/Source/Modulos/Contabilidad balances/Views/Balances_view.dpk @@ -0,0 +1,43 @@ +package Balances_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 ON} +{$DEFINE DEBUG} + +requires + rtl, + vcl, + Base, + GUIBase, + ApplicationBase, + JvCmpD11R, + Balances_model, + Balances_controller; + +contains + uEditorBalances in 'uEditorBalances.pas' {fEditorBalances: TfEditorFormasPago}, + uBalancesViewRegister in 'uBalancesViewRegister.pas', + uEditorBalance in 'uEditorBalance.pas' {fEditorBalance}; + +end. diff --git a/Source/Modulos/Contabilidad balances/Views/Balances_view.dproj b/Source/Modulos/Contabilidad balances/Views/Balances_view.dproj new file mode 100644 index 00000000..fdea0b91 --- /dev/null +++ b/Source/Modulos/Contabilidad balances/Views/Balances_view.dproj @@ -0,0 +1,551 @@ + + + + {e3d36a6f-7004-4c89-9f3d-f2d77e386d1b} + Balances_view.dpk + Debug + AnyCPU + DCC32 + ..\..\..\..\Output\Debug\Cliente\Balances_view.bpl + + + 7.0 + False + False + 0 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + RELEASE + + + 7.0 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + DEBUG + + + Delphi.Personality + Package + +FalseTrueFalseTrueFalseFalseTrueFalse1000FalseFalseFalseFalseFalse308212521.0.0.01.0.0.0Balances_view.dpk + + + + + MainSource + + + + + + + + + + +
    fEditorBalance
    +
    + +
    fEditorBalances
    + TfEditorFormasPago +
    + +
    +
    + diff --git a/Source/Modulos/Contabilidad balances/Views/Balances_view.identcache b/Source/Modulos/Contabilidad balances/Views/Balances_view.identcache new file mode 100644 index 0000000000000000000000000000000000000000..bb9cd89c113449bee97770221e981821106d0539 GIT binary patch literal 381 zcmZQ!U|{fdwu*7iPsvQrS8z;D%u9?3&Mz%WPL1)+PbtmGF9yoxl_Vx*=47TMrYIyO z<|O7NrxwSAWu}%F$CSFJWR~O?IYC7A3KENf2EsuYMJ8vZ7A0pUXXY1!tO`m^&nzxU ZEkd`#k0L9O9bb%YbOWYy7LeWAUaqx~Kv?-;(-Hs4-^ATIZOBrid9+-6Ne7&88mi>kUR4lo#jxZ;#*s4zxg9yNlk=H9sqkCD2^cEXKpiTBNfgkKpXJBWWaLt(Qkv@0 w5yv*t82((Wlr2{_+FDoDHKW2QCXvc+s**ul{{$ 0); +} +end; + +constructor TfEditorBalance.Create(AOwner: TComponent); +begin + inherited; + FController := TBalancesController.Create; +end; + +destructor TfEditorBalance.Destroy; +begin + FBalance := NIL; + FController := NIL; + inherited; +end; + +procedure TfEditorBalance.actAceptarExecute(Sender: TObject); +begin +{ + if (ListaBalances.ActiveView.DataController.RecordCount = 0) then + if (ShowConfirmMessage('Forma de pago sin plazos', 'No ha indicado plazos de pago para esta forma de pago por lo tanto no se podrn generarar los recibos correspondientes.' + #10#13 + 'Desea continuar guardando la forma de pago?') = IDNO) then + Exit; +} + if FController.Guardar(FBalance) then + actCerrar.Execute; +end; + +procedure TfEditorBalance.actCancelarExecute(Sender: TObject); +begin + FController.DescartarCambios(FBalance); + actCerrar.Execute; +end; + +procedure TfEditorBalance.actCerrarExecute(Sender: TObject); +begin + Close; +end; + +procedure TfEditorBalance.actAnadirUpdate(Sender: TObject); +begin +{ + (Sender as TAction).Enabled := Assigned(FPlazos) and + FPlazos.DataTable.Active; +} +end; + +procedure TfEditorBalance.FormShow(Sender: TObject); +begin + if not FBalance.DataTable.Active then + FBalance.DataTable.Active := True; + + if FBalance.EsNuevo then + Self.Caption := 'Nueva forma de pago' + else + Self.Caption := 'Modificar forma de pago'; +end; + +end. diff --git a/Source/Modulos/Contabilidad balances/Views/uEditorBalances.dfm b/Source/Modulos/Contabilidad balances/Views/uEditorBalances.dfm new file mode 100644 index 00000000..ed080d89 --- /dev/null +++ b/Source/Modulos/Contabilidad balances/Views/uEditorBalances.dfm @@ -0,0 +1,177 @@ +object fEditorBalances: TfEditorBalances + Left = 453 + Top = 234 + BorderIcons = [biSystemMenu] + BorderStyle = bsSingle + Caption = 'Lista de balances' + ClientHeight = 406 + ClientWidth = 959 + 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 = 0 + Top = 0 + Width = 959 + Height = 406 + ActivePage = TabSheet1 + Align = alClient + TabOrder = 0 + ExplicitWidth = 573 + object TabSheet1: TTabSheet + Caption = 'Balances' + ExplicitWidth = 565 + object Label1: TLabel + Left = 6 + Top = 12 + Width = 138 + Height = 13 + Caption = 'Lista de balances disponibles' + end + object bEliminar: TButton + Left = 853 + Top = 90 + Width = 95 + Height = 23 + Action = actEliminar + TabOrder = 0 + end + object bAnadir: TButton + Left = 853 + Top = 31 + Width = 95 + Height = 23 + Action = actAnadir + TabOrder = 1 + end + object Button1: TButton + Left = 853 + Top = 61 + Width = 95 + Height = 23 + Action = actModificar + TabOrder = 2 + end + object ListaBalances: TDBGrid + Left = 3 + Top = 31 + Width = 844 + Height = 289 + DataSource = dsBalances + 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 = [] + Columns = < + item + Expanded = False + FieldName = 'REF_BALANCE' + Title.Caption = 'Referencia' + Width = 110 + Visible = True + end + item + Expanded = False + FieldName = 'NATURALEZA' + Title.Caption = 'Descripci'#243'n' + Width = 154 + Visible = True + end + item + Expanded = False + FieldName = 'NIVEL1' + Visible = True + end + item + Expanded = False + FieldName = 'DESCRIPCION1' + Visible = True + end + item + Expanded = False + FieldName = 'NIVEL2' + Visible = True + end + item + Expanded = False + FieldName = 'DESCRIPCION2' + Visible = True + end + item + Expanded = False + FieldName = 'NIVEL3' + Visible = True + end + item + Expanded = False + FieldName = 'DESCRIPCION3' + 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 dsBalances: TDADataSource + Left = 168 + Top = 16 + end +end diff --git a/Source/Modulos/Contabilidad balances/Views/uEditorBalances.pas b/Source/Modulos/Contabilidad balances/Views/uEditorBalances.pas new file mode 100644 index 00000000..7c8cf6ea --- /dev/null +++ b/Source/Modulos/Contabilidad balances/Views/uEditorBalances.pas @@ -0,0 +1,184 @@ +{ +=============================================================================== + Copyright () 2006. Rodax Software. +=============================================================================== + Los contenidos de este fichero son propiedad de Rodax Software titular del + copyright. Este fichero slo podr ser copiado, distribuido y utilizado, + en su totalidad o en parte, con el permiso escrito de Rodax Software, o de + acuerdo con los trminos y condiciones establecidas en el acuerdo/contrato + bajo el que se suministra. + ----------------------------------------------------------------------------- + Web: www.rodax-software.com +=============================================================================== + Fecha primera versin: 22-05-2006 + Versin actual: 1.0.0 + Fecha versin actual: 22-05-2006 +=============================================================================== + Modificaciones: + + Fecha Comentarios + --------------------------------------------------------------------------- +=============================================================================== +} + +unit uEditorBalances; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + uIEditorBalances, uBizBalances, uBalancesController, DB, uDADataTable, + ActnList, Grids, DBGrids, StdCtrls, ComCtrls, uDAInterfaces, Mask, DBCtrls; + +type + TfEditorBalances = class(TForm, IEditorBalances) + ActionList1: TActionList; + 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; + dsBalances: TDADataSource; + ListaBalances: 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 ListaBalancesDblClick(Sender: TObject); + procedure actModificarUpdate(Sender: TObject); + protected + FBalances: IBizBalance; + FController: IBalancesController; + function GetBalances: IBizBalance; + procedure SetBalances(const Value: IBizBalance); + public + constructor Create(AOwner: TComponent); override; + destructor Destroy; override; + property Balances: IBizBalance read GetBalances write SetBalances; + end; + + +implementation +{$R *.dfm} + +{ TfEditorBalances } + +uses + uDialogUtils; + +function TfEditorBalances.GetBalances: IBizBalance; +begin + Result := FBalances; +end; + +procedure TfEditorBalances.ListaBalancesDblClick(Sender: TObject); +begin +// ListaBalances.SelectedIndex +end; + +procedure TfEditorBalances.SetBalances(const Value: IBizBalance); +begin + FBalances := Value; + dsBalances.DataTable := (FBalances as IBizBalance).DataTable; + dsBalances.DataTable.Open; +end; + +procedure TfEditorBalances.actAnadirExecute(Sender: TObject); +begin + FController.Anadir(Balances); + FController.Ver(Balances); +end; + +procedure TfEditorBalances.actEliminarExecute(Sender: TObject); +begin + if (ShowConfirmMessage('Borrar forma de pago', 'Est seguro que desea borrar esta forma de pago?') = IDYES) then + FController.Eliminar(FBalances) +end; + +procedure TfEditorBalances.actEliminarUpdate(Sender: TObject); +begin + (Sender as TAction).Enabled := Assigned(FBalances) and + FBalances.DataTable.Active and + (FBalances.DataTable.RecordCount > 0); +end; + +procedure TfEditorBalances.actModificarExecute(Sender: TObject); +begin + FController.Ver(Balances); +end; + +procedure TfEditorBalances.actModificarUpdate(Sender: TObject); +begin + (Sender as TAction).Enabled := Assigned(FBalances) and + FBalances.DataTable.Active and + (FBalances.DataTable.RecordCount > 0); +end; + +constructor TfEditorBalances.Create(AOwner: TComponent); +begin + inherited; + FController := TBalancesController.Create; +end; + +destructor TfEditorBalances.Destroy; +begin + FBalances := NIL; + FController := NIL; + inherited; +end; + +procedure TfEditorBalances.actAceptarExecute(Sender: TObject); +begin + try + Balances.DataTable.ApplyUpdates; + except + on E : Exception do begin + Balances.DataTable.CancelUpdates; + ShowErrorMessage('Error al guardar cambios', 'Se ha producido un error grave', E); + Exit; + end; + end; + actCerrar.Execute; +end; + +procedure TfEditorBalances.actCancelarExecute(Sender: TObject); +begin + Balances.DataTable.CancelUpdates; + actCerrar.Execute; +end; + +procedure TfEditorBalances.actCerrarExecute(Sender: TObject); +begin + Close; +end; + +procedure TfEditorBalances.actAnadirUpdate(Sender: TObject); +begin + (Sender as TAction).Enabled := Assigned(FBalances) and + FBalances.DataTable.Active; +end; + +procedure TfEditorBalances.FormShow(Sender: TObject); +begin + if not FBalances.DataTable.Active then + FBalances.DataTable.Active := true; + +// ListaBalances.SetFocus; +end; + +end. diff --git a/Source/Modulos/Contabilidad cuentas especiales/Controller/CuentasEspeciales_controller.dpk b/Source/Modulos/Contabilidad cuentas especiales/Controller/CuentasEspeciales_controller.dpk new file mode 100644 index 00000000..46d86c71 --- /dev/null +++ b/Source/Modulos/Contabilidad cuentas especiales/Controller/CuentasEspeciales_controller.dpk @@ -0,0 +1,42 @@ +package CuentasEspeciales_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 ON} +{$DEFINE DEBUG} + +requires + rtl, + vcl, + Base, + GUIBase, + ApplicationBase, + CuentasEspeciales_model, + CuentasEspeciales_data; + +contains + uCuentasEspecialesController in 'uCuentasEspecialesController.pas', + uIEditorCuentaEspecial in 'View\uIEditorCuentaEspecial.pas', + uIEditorCuentasEspeciales in 'View\uIEditorCuentasEspeciales.pas'; + +end. diff --git a/Source/Modulos/Contabilidad cuentas especiales/Controller/CuentasEspeciales_controller.dproj b/Source/Modulos/Contabilidad cuentas especiales/Controller/CuentasEspeciales_controller.dproj new file mode 100644 index 00000000..43084e54 --- /dev/null +++ b/Source/Modulos/Contabilidad cuentas especiales/Controller/CuentasEspeciales_controller.dproj @@ -0,0 +1,545 @@ + + + + {7f80f8aa-6912-4714-986d-aed73035472b} + CuentasEspeciales_controller.dpk + Debug + AnyCPU + DCC32 + ..\..\..\..\Output\Debug\Cliente\CuentasEspeciales_controller.bpl + + + 7.0 + False + False + 0 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + RELEASE + + + 7.0 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + DEBUG + + + Delphi.Personality + Package + +FalseTrueFalseTrueFalseFalseTrueFalse1000FalseFalseFalseFalseFalse308212521.0.0.01.0.0.0CuentasEspeciales_controller.dpk + + + + + MainSource + + + + + + + + + + + + + + diff --git a/Source/Modulos/Contabilidad cuentas especiales/Controller/CuentasEspeciales_controller.identcache b/Source/Modulos/Contabilidad cuentas especiales/Controller/CuentasEspeciales_controller.identcache new file mode 100644 index 0000000000000000000000000000000000000000..c7bfbd6ffafdcf2aedad20ef7b99d03f5483017c GIT binary patch literal 362 zcmcJ}F$%*l3_wvsFX9vQ0Nsko&>>TylNZ$zML|Ttis<$0Vv-?qt4(~w(-V_F^8(hiefW3m ZgXx|9HXyHB`wQC#M^*l++QyO{;SVkxeDMGP literal 0 HcmV?d00001 diff --git a/Source/Modulos/Contabilidad cuentas especiales/Controller/CuentasEspeciales_controller.rc b/Source/Modulos/Contabilidad cuentas especiales/Controller/CuentasEspeciales_controller.rc new file mode 100644 index 00000000..153736af --- /dev/null +++ b/Source/Modulos/Contabilidad cuentas especiales/Controller/CuentasEspeciales_controller.rc @@ -0,0 +1,22 @@ +1 VERSIONINFO +FILEVERSION 1,0,0,0 +PRODUCTVERSION 1,0,0,0 +FILEFLAGSMASK 0x3FL +FILEFLAGS 0x00L +FILEOS 0x40004L +FILETYPE 0x1L +FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "0C0A04E4" + BEGIN + VALUE "FileVersion", "1.0.0.0\0" + VALUE "ProductVersion", "1.0.0.0\0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x0C0A, 1252 + END +END diff --git a/Source/Modulos/Contabilidad cuentas especiales/Controller/CuentasEspeciales_controller.res b/Source/Modulos/Contabilidad cuentas especiales/Controller/CuentasEspeciales_controller.res new file mode 100644 index 0000000000000000000000000000000000000000..8b251f312bcccec5485024f6fe8d80e1cdf25746 GIT binary patch literal 384 zcmZ9HOA3Ne6ox;+L5PEv(4cV`IIrjdPAV##hV&wc1g%+%X(R2Xc{`~7t6e0Ioa?#% zkMj%AQhz>WYy7LeWAUaqx~Kv?-;(-Hs4-^ATIZOBrid9+-6Ne7&88mi>kUR4lo#jxZ;#*s4zxg9yNlk=H9sqkCD2^cEXKpiTBNfgkKpXJBWWaLt(Qkv@0 w5yv*t82((Wlr2{_+FDoDHKW2QCXvc+s**ul{{$ + + {3df776bd-a3f8-4f3a-9129-45fdb4a2ee63} + + + + + + + + + + + + + + + + Default.Personality + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Source/Modulos/Contabilidad cuentas especiales/Data/CuentasEspeciales_data.dpk b/Source/Modulos/Contabilidad cuentas especiales/Data/CuentasEspeciales_data.dpk new file mode 100644 index 00000000..f1ac6326 --- /dev/null +++ b/Source/Modulos/Contabilidad cuentas especiales/Data/CuentasEspeciales_data.dpk @@ -0,0 +1,43 @@ +package CuentasEspeciales_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 ON} +{$DEFINE DEBUG} + +requires + rtl, + vcl, + Base, + GUIBase, + ApplicationBase, + dbrtl, + vcldb, + dsnap, + adortl, + CuentasEspeciales_model; + +contains + uDataModuleCuentasEspeciales in 'uDataModuleCuentasEspeciales.pas' {DataModuleCuentasEspeciales}; + +end. diff --git a/Source/Modulos/Contabilidad cuentas especiales/Data/CuentasEspeciales_data.dproj b/Source/Modulos/Contabilidad cuentas especiales/Data/CuentasEspeciales_data.dproj new file mode 100644 index 00000000..aabeca6a --- /dev/null +++ b/Source/Modulos/Contabilidad cuentas especiales/Data/CuentasEspeciales_data.dproj @@ -0,0 +1,548 @@ + + + + {c8118762-09b6-432f-ba26-058fa36c39d9} + CuentasEspeciales_data.dpk + Debug + AnyCPU + DCC32 + ..\..\..\..\Output\Debug\Cliente\CuentasEspeciales_data.bpl + + + 7.0 + False + False + 0 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + RELEASE + + + 7.0 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + DEBUG + + + Delphi.Personality + Package + +FalseTrueFalseTrueFalseFalseTrueFalse1000FalseFalseFalseFalseFalse308212521.0.0.01.0.0.0CuentasEspeciales_data.dpk + + + + + MainSource + + + + + + + + + + + + +
    DataModuleCuentasEspeciales
    +
    +
    +
    + diff --git a/Source/Modulos/Contabilidad cuentas especiales/Data/CuentasEspeciales_data.identcache b/Source/Modulos/Contabilidad cuentas especiales/Data/CuentasEspeciales_data.identcache new file mode 100644 index 0000000000000000000000000000000000000000..cb02de0a6d0b8682a77d472fedf9acf034774cc8 GIT binary patch literal 117 zcmZQ%U|>jbwu*7iPsvQrS8z;D%u9?3&Mz%WPL1)+PbtmGF9yoxl_Vx*=47TMrYIzr trUH4z3aP~fsmYm%IjO}lE{P?HF{L09tRvMKqQn)hLa!jP7-$b1003-ICdmK* literal 0 HcmV?d00001 diff --git a/Source/Modulos/Contabilidad cuentas especiales/Data/CuentasEspeciales_data.rc b/Source/Modulos/Contabilidad cuentas especiales/Data/CuentasEspeciales_data.rc new file mode 100644 index 00000000..153736af --- /dev/null +++ b/Source/Modulos/Contabilidad cuentas especiales/Data/CuentasEspeciales_data.rc @@ -0,0 +1,22 @@ +1 VERSIONINFO +FILEVERSION 1,0,0,0 +PRODUCTVERSION 1,0,0,0 +FILEFLAGSMASK 0x3FL +FILEFLAGS 0x00L +FILEOS 0x40004L +FILETYPE 0x1L +FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "0C0A04E4" + BEGIN + VALUE "FileVersion", "1.0.0.0\0" + VALUE "ProductVersion", "1.0.0.0\0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x0C0A, 1252 + END +END diff --git a/Source/Modulos/Contabilidad cuentas especiales/Data/CuentasEspeciales_data.res b/Source/Modulos/Contabilidad cuentas especiales/Data/CuentasEspeciales_data.res new file mode 100644 index 0000000000000000000000000000000000000000..8b251f312bcccec5485024f6fe8d80e1cdf25746 GIT binary patch literal 384 zcmZ9HOA3Ne6ox;+L5PEv(4cV`IIrjdPAV##hV&wc1g%+%X(R2Xc{`~7t6e0Ioa?#% zkMj%AQhz>WYy7LeWAUaqx~Kv?-;(-Hs4-^ATIZOBrid9+-6Ne7&88mi>kUR4lo#jxZ;#*s4zxg9yNlk=H9sqkCD2^cEXKpiTBNfgkKpXJBWWaLt(Qkv@0 w5yv*t82((Wlr2{_+FDoDHKW2QCXvc+s**ul{{$ + Params = <> + StreamingOptions = [soDisableEventsWhileStreaming] + RemoteDataAdapter = rda_CuentasEspeciales + DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch] + MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates] + LogicalName = 'CuentasEspeciales' + IndexDefs = <> + Left = 256 + Top = 112 + end + object ds_CuentasEspeciales: TDADataSource + DataSet = tbl_CuentasEspeciales.Dataset + DataTable = tbl_CuentasEspeciales + Left = 256 + Top = 56 + end +end diff --git a/Source/Modulos/Contabilidad cuentas especiales/Data/uDataModuleCuentasEspeciales.pas b/Source/Modulos/Contabilidad cuentas especiales/Data/uDataModuleCuentasEspeciales.pas new file mode 100644 index 00000000..2d0bfea5 --- /dev/null +++ b/Source/Modulos/Contabilidad cuentas especiales/Data/uDataModuleCuentasEspeciales.pas @@ -0,0 +1,54 @@ +unit uDataModuleCuentasEspeciales; + +interface + +uses + SysUtils, Classes, DB, uDADataTable, uDABINAdapter, + uDAScriptingProvider, uDACDSDataTable, uROWinInetHttpChannel, uROTypes, + uRORemoteService, uROClient, uROBinMessage, + uDADesigntimeCall, uControllerBase, + uBizCuentasEspeciales, uDARemoteDataAdapter, uDADataStreamer, uDAInterfaces, uRODynamicRequest, + uDABin2DataStreamer, uDAMemDataTable, uIDataModuleCuentasEspeciales, uDataModuleBase; +type + TDataModuleCuentasEspeciales = class(TDataModuleBase, IDataModuleCuentasEspeciales) + RORemoteService: TRORemoteService; + Bin2DataStreamer: TDABin2DataStreamer; + rda_CuentasEspeciales: TDARemoteDataAdapter; + tbl_CuentasEspeciales: TDAMemDataTable; + ds_CuentasEspeciales: TDADataSource; + procedure DAClientDataModuleCreate(Sender: TObject); + public + function GetItems: IBizCuentaEspecial; + end; + +implementation + +{$R *.DFM} + +uses + FactuGES_Intf, uDataModuleConexion, uDataTableUtils, cxControls, + schCuentasEspecialesClient_Intf; + +{ TdmCuentasEspeciales } + +procedure TDataModuleCuentasEspeciales.DAClientDataModuleCreate(Sender: TObject); +begin + RORemoteService.Channel := dmConexion.Channel; + RORemoteService.Message := dmConexion.Message; +end; + +function TDataModuleCuentasEspeciales.GetItems: IBizCuentaEspecial; +var + AContabilidadCuentaEspecial : TDAMemDataTable; +begin + ShowHourglassCursor; + try + AContabilidadCuentaEspecial := CloneDataTable(tbl_CuentasEspeciales); + AContabilidadCuentaEspecial.BusinessRulesID := BIZ_CLIENT_CuentaEspecial; + Result := (AContabilidadCuentaEspecial as IBizCuentaEspecial); + finally + HideHourglassCursor; + end; +end; + +end. diff --git a/Source/Modulos/Contabilidad cuentas especiales/Model/CuentasEspeciales_model.dpk b/Source/Modulos/Contabilidad cuentas especiales/Model/CuentasEspeciales_model.dpk new file mode 100644 index 00000000..ee71fc44 --- /dev/null +++ b/Source/Modulos/Contabilidad cuentas especiales/Model/CuentasEspeciales_model.dpk @@ -0,0 +1,46 @@ +package CuentasEspeciales_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 ON} + +requires + rtl, + vcl, + Base, + GUIBase, + ApplicationBase, + dbrtl, + RemObjects_Core_D11, + DataAbstract_Core_D11, + vcldb, + dsnap, + adortl; + +contains + uBizCuentasEspeciales in 'uBizCuentasEspeciales.pas', + uIDataModuleCuentasEspeciales in 'Data\uIDataModuleCuentasEspeciales.pas', + schCuentasEspecialesClient_Intf in 'schCuentasEspecialesClient_Intf.pas', + schCuentasEspecialesServer_Intf in 'schCuentasEspecialesServer_Intf.pas'; + +end. diff --git a/Source/Modulos/Contabilidad cuentas especiales/Model/CuentasEspeciales_model.dproj b/Source/Modulos/Contabilidad cuentas especiales/Model/CuentasEspeciales_model.dproj new file mode 100644 index 00000000..a25364ae --- /dev/null +++ b/Source/Modulos/Contabilidad cuentas especiales/Model/CuentasEspeciales_model.dproj @@ -0,0 +1,549 @@ + + + + {73acd39c-b2f0-49b7-9acf-10945bbac8c1} + CuentasEspeciales_model.dpk + Debug + AnyCPU + DCC32 + ..\..\..\..\Output\Debug\Cliente\CuentasEspeciales_model.bpl + + + 7.0 + False + False + 0 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + RELEASE + + + 7.0 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + + + Delphi.Personality + Package + +FalseTrueFalseTrueFalseFalseTrueFalse1000FalseFalseFalseFalseFalse308212521.0.0.01.0.0.0CuentasEspeciales_model.dpk + + + + + MainSource + + + + + + + + + + + + + + + + + + + diff --git a/Source/Modulos/Contabilidad cuentas especiales/Model/CuentasEspeciales_model.identcache b/Source/Modulos/Contabilidad cuentas especiales/Model/CuentasEspeciales_model.identcache new file mode 100644 index 0000000000000000000000000000000000000000..8e544d8b4d8be58d4b0233042da21986f57b0514 GIT binary patch literal 576 zcmcK0!4AS83;<9r{s&*+2Y7SnVFypU5={ryH4<1Tc<}3Gn(V+lZd{tCZC=Yx2+^y9 zR>9IE$fE%dx(hiP)R$nh3tVbGK~Ih>SZOkrj3x4jhQJ|DedzQF66oAc;X8;8IPeB} zKLQtJe$Q<<^;_&b?^V0QDlVI0At^`YQ*NzK_Zq#fg64+a3$>=UyRXCe!ua>T4}%B9 AmH+?% literal 0 HcmV?d00001 diff --git a/Source/Modulos/Contabilidad cuentas especiales/Model/CuentasEspeciales_model.rc b/Source/Modulos/Contabilidad cuentas especiales/Model/CuentasEspeciales_model.rc new file mode 100644 index 00000000..153736af --- /dev/null +++ b/Source/Modulos/Contabilidad cuentas especiales/Model/CuentasEspeciales_model.rc @@ -0,0 +1,22 @@ +1 VERSIONINFO +FILEVERSION 1,0,0,0 +PRODUCTVERSION 1,0,0,0 +FILEFLAGSMASK 0x3FL +FILEFLAGS 0x00L +FILEOS 0x40004L +FILETYPE 0x1L +FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "0C0A04E4" + BEGIN + VALUE "FileVersion", "1.0.0.0\0" + VALUE "ProductVersion", "1.0.0.0\0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x0C0A, 1252 + END +END diff --git a/Source/Modulos/Contabilidad cuentas especiales/Model/CuentasEspeciales_model.res b/Source/Modulos/Contabilidad cuentas especiales/Model/CuentasEspeciales_model.res new file mode 100644 index 0000000000000000000000000000000000000000..8b251f312bcccec5485024f6fe8d80e1cdf25746 GIT binary patch literal 384 zcmZ9HOA3Ne6ox;+L5PEv(4cV`IIrjdPAV##hV&wc1g%+%X(R2Xc{`~7t6e0Ioa?#% zkMj%AQhz>WYy7LeWAUaqx~Kv?-;(-Hs4-^ATIZOBrid9+-6Ne7&88mi>kUR4lo#jxZ;#*s4zxg9yNlk=H9sqkCD2^cEXKpiTBNfgkKpXJBWWaLt(Qkv@0 w5yv*t82((Wlr2{_+FDoDHKW2QCXvc+s**ul{{$ + + + {82e36812-58c4-491b-b463-6b951e95da51} + CuentasEspeciales_plugin.dpk + Debug + AnyCPU + DCC32 + ..\..\..\..\Output\Debug\Cliente\CuentasEspeciales_plugin.bpl + + + 7.0 + False + False + 0 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + RELEASE + + + 7.0 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + DEBUG + + + Delphi.Personality + Package + +FalseTrueFalseTrueFalseFalseTrueFalse1000FalseFalseFalseFalseFalse308212521.0.0.01.0.0.0CuentasEspeciales_plugin.dpk + + + + + MainSource + + + + + + + + + + + + +
    PluginCuentasEspeciales
    +
    + + + +
    +
    + diff --git a/Source/Modulos/Contabilidad cuentas especiales/Plugin/CuentasEspeciales_plugin.identcache b/Source/Modulos/Contabilidad cuentas especiales/Plugin/CuentasEspeciales_plugin.identcache new file mode 100644 index 0000000000000000000000000000000000000000..3cf9cc56051b48ee0afab907edc5fa8c25b2857b GIT binary patch literal 115 zcmZQ%U|>jcwu*7iPsvQrS8z;D%u9?3&Mz%WPL1)+PbtmGF9yoxl_Vx*=47TMrYIzr rrUH4z3aP~fsmYm%IjO}l0Xe1VnRzj#5ZW1{z!fg9SCCi?v;__TAWYy7LeWAUaqx~Kv?-;(-Hs4-^ATIZOBrid9+-6Ne7&88mi>kUR4lo#jxZ;#*s4zxg9yNlk=H9sqkCD2^cEXKpiTBNfgkKpXJBWWaLt(Qkv@0 w5yv*t82((Wlr2{_+FDoDHKW2QCXvc+s**ul{{$ + Left = 232 + Top = 16 + end + object ModuleActionList: TActionList + Images = SmallImages + Left = 40 + Top = 72 + object actCuentasEspeciales: TAction + Category = 'Cuentas especiales' + Caption = 'Cuentas especiales' + ImageIndex = 0 + OnExecute = actCuentasEspecialesExecute + end + end + object MainMenu: TMainMenu + Images = LargeImages + Left = 40 + Top = 16 + object Ventas1: TMenuItem + Caption = 'Empresa' + object N1: TMenuItem + Tag = 18990 + Caption = '-' + end + object CuentasEspeciales1: TMenuItem + Tag = 19001 + Action = actCuentasEspeciales + 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/Contabilidad cuentas especiales/Plugin/uPluginCuentasEspeciales.pas b/Source/Modulos/Contabilidad cuentas especiales/Plugin/uPluginCuentasEspeciales.pas new file mode 100644 index 00000000..6a500ee7 --- /dev/null +++ b/Source/Modulos/Contabilidad cuentas especiales/Plugin/uPluginCuentasEspeciales.pas @@ -0,0 +1,74 @@ +unit uPluginCuentasEspeciales; + +interface + +uses + uModuleController, uInterfaces, uHostManager, Menus, Classes, ActnList, + ImgList, Controls, PngImageList; + +type + IMCCuentasEspeciales = interface(IInterface) + ['{255E8D6B-282A-48CC-9807-E49C7D31FD2D}'] + end; + + TPluginCuentasEspeciales = class(TModuleController, IMCCuentasEspeciales) + actCuentasEspeciales: TAction; + ExtraImages: TPngImageList; + LargeImages: TPngImageList; + MainMenu: TMainMenu; + ModuleActionList: TActionList; + SmallImages: TPngImageList; + Ventas1: TMenuItem; + CuentasEspeciales1: TMenuItem; + N1: TMenuItem; + procedure actCuentasEspecialesExecute(Sender: TObject); + public + constructor Create(AOwner: TComponent); override; + destructor Destroy; override; + end; + +implementation + +{$R *.dfm} + +uses + Forms, Dialogs, SysUtils, + uCuentasEspecialesController, uBizCuentasEspeciales, uCuentasEspecialesViewRegister; + +function GetModule : TModuleController; +begin + Result := TPluginCuentasEspeciales.Create(NIL); +end; + +exports + GetModule name GET_MODULE_FUNC; + +procedure TPluginCuentasEspeciales.actCuentasEspecialesExecute(Sender: TObject); +var + ACuentasEspecialesController : ICuentasEspecialesController; + ACuentasEspeciales : IBizCuentaEspecial; +begin + ACuentasEspecialesController := TCuentasEspecialesController.Create; + ACuentasEspeciales := (ACuentasEspecialesController.BuscarTodos as IBizCuentaEspecial); + ACuentasEspecialesController.VerTodos(ACuentasEspeciales); +end; + +constructor TPluginCuentasEspeciales.Create(AOwner: TComponent); +begin + inherited; + uCuentasEspecialesViewRegister.RegisterViews; +end; + +destructor TPluginCuentasEspeciales.Destroy; +begin + uCuentasEspecialesViewRegister.UnregisterViews; + inherited; +end; + +initialization + RegisterModuleClass(TPluginCuentasEspeciales); + +finalization + UnRegisterModuleClass(TPluginCuentasEspeciales); + +end. diff --git a/Source/Modulos/Contabilidad cuentas especiales/Servidor/srvCuentasEspeciales_Impl.dfm b/Source/Modulos/Contabilidad cuentas especiales/Servidor/srvCuentasEspeciales_Impl.dfm new file mode 100644 index 00000000..4fb1141e --- /dev/null +++ b/Source/Modulos/Contabilidad cuentas especiales/Servidor/srvCuentasEspeciales_Impl.dfm @@ -0,0 +1,103 @@ +object srvCuentasEspeciales: TsrvCuentasEspeciales + OldCreateOrder = True + OnCreate = DARemoteServiceCreate + SessionManager = dmServer.SessionManager + ServiceSchema = schCuentasEspeciales + ServiceDataStreamer = Bin2DataStreamer + ExportedDataTables = <> + BeforeAcquireConnection = DataAbstractServiceBeforeAcquireConnection + Height = 181 + Width = 282 + object Diagrams: TDADiagrams + Left = 150 + Top = 90 + DiagramData = + ''#13#10' '#13#10' '#13#10' '#13#10''#13#10 + end + object DataDictionary: TDADataDictionary + Fields = < + item + Name = 'CuentasEspeciales_ID' + DataType = datInteger + GeneratorName = 'GEN_CONT_BALANCES_ID' + DisplayLabel = 'ID' + ServerAutoRefresh = True + end + item + Name = 'CuentasEspeciales_REFERENCIA' + DataType = datString + Size = 6 + end + item + Name = 'CuentasEspeciales_DESCRIPCION' + DataType = datString + Size = 255 + end> + Left = 150 + Top = 24 + end + object schCuentasEspeciales: TDASchema + ConnectionManager = dmServer.ConnectionManager + DataDictionary = DataDictionary + Diagrams = Diagrams + Datasets = < + item + Params = <> + Statements = < + item + Connection = 'IBX' + TargetTable = 'CONT_CUENTAS_ESPECIALES' + StatementType = stAutoSQL + ColumnMappings = < + item + DatasetField = 'ID' + TableField = 'ID' + end + item + DatasetField = 'REFERENCIA' + TableField = 'REFERENCIA' + end + item + DatasetField = 'DESCRIPCION' + TableField = 'DESCRIPCION' + end> + end> + Name = 'CuentasEspeciales' + Fields = < + item + Name = 'ID' + DataType = datInteger + GeneratorName = 'GEN_CONT_BALANCES_ID' + ServerAutoRefresh = True + DictionaryEntry = 'Ejercicios_ID' + InPrimaryKey = True + end + item + Name = 'REFERENCIA' + DataType = datString + Size = 6 + DictionaryEntry = 'CuentasEspeciales_REFERENCIA' + end + item + Name = 'DESCRIPCION' + DataType = datString + Size = 255 + DictionaryEntry = 'CuentasEspeciales_DESCRIPCION' + end> + end> + JoinDataTables = <> + UnionDataTables = <> + Commands = <> + RelationShips = <> + UpdateRules = <> + Version = 0 + Left = 48 + Top = 24 + end + object Bin2DataStreamer: TDABin2DataStreamer + Left = 48 + Top = 88 + end +end diff --git a/Source/Modulos/Contabilidad cuentas especiales/Servidor/srvCuentasEspeciales_Impl.pas b/Source/Modulos/Contabilidad cuentas especiales/Servidor/srvCuentasEspeciales_Impl.pas new file mode 100644 index 00000000..fb96a63a --- /dev/null +++ b/Source/Modulos/Contabilidad cuentas especiales/Servidor/srvCuentasEspeciales_Impl.pas @@ -0,0 +1,64 @@ +unit srvCuentasEspeciales_Impl; + +{----------------------------------------------------------------------------} +{ This unit was automatically generated by the RemObjects SDK after reading } +{ the RODL file associated with this project . } +{ } +{ This is where you are supposed to code the implementation of your objects. } +{----------------------------------------------------------------------------} + +interface + +uses + {vcl:} Classes, SysUtils, + {RemObjects:} uROClientIntf, uROTypes, uROServer, uROServerIntf, uROSessions, + {Ancestor Implementation:} DataAbstractService_Impl, + {Used RODLs:} DataAbstract4_Intf, + {Generated:} FactuGES_Intf, uDADataTable, uDABINAdapter, uDAClasses, + uDAScriptingProvider, uDABusinessProcessor, uDADataStreamer, + uDABin2DataStreamer; + +type + { TsrvCuentasEspeciales } + TsrvCuentasEspeciales = class(TDataAbstractService, IsrvCuentasEspeciales) + Diagrams: TDADiagrams; + Bin2DataStreamer: TDABin2DataStreamer; + schCuentasEspeciales: TDASchema; + DataDictionary: TDADataDictionary; + procedure DARemoteServiceCreate(Sender: TObject); + procedure DataAbstractServiceBeforeAcquireConnection(aSender: TObject; + var aConnectionName: string); + private + protected + end; + +implementation + +{$R *.dfm} +uses + {Generated:} FactuGES_Invk, uDataModuleServer, + uDatabaseUtils; + +procedure Create_srvCuentasEspeciales(out anInstance : IUnknown); +begin + anInstance := TsrvCuentasEspeciales.Create(NIL); +end; + +{ srvCuentasEspeciales } +procedure TsrvCuentasEspeciales.DARemoteServiceCreate(Sender: TObject); +begin + SessionManager := dmServer.SessionManager; +end; + +procedure TsrvCuentasEspeciales.DataAbstractServiceBeforeAcquireConnection( + aSender: TObject; var aConnectionName: string); +begin + ConnectionName := dmServer.ConnectionName; +end; + +initialization + TROClassFactory.Create('srvCuentasEspeciales', Create_srvCuentasEspeciales, TsrvCuentasEspeciales_Invoker); + +finalization + +end. diff --git a/Source/Modulos/Contabilidad cuentas especiales/Views/CuentasEspeciales_view.dpk b/Source/Modulos/Contabilidad cuentas especiales/Views/CuentasEspeciales_view.dpk new file mode 100644 index 00000000..136c4871 --- /dev/null +++ b/Source/Modulos/Contabilidad cuentas especiales/Views/CuentasEspeciales_view.dpk @@ -0,0 +1,43 @@ +package CuentasEspeciales_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 ON} +{$DEFINE DEBUG} + +requires + rtl, + vcl, + Base, + GUIBase, + ApplicationBase, + JvCmpD11R, + CuentasEspeciales_controller, + CuentasEspeciales_model; + +contains + uEditorCuentasEspeciales in 'uEditorCuentasEspeciales.pas' {fEditorBalances: TfEditorFormasPago}, + uCuentasEspecialesViewRegister in 'uCuentasEspecialesViewRegister.pas', + uEditorCuentaEspecial in 'uEditorCuentaEspecial.pas' {fEditorCuentaEspecial}; + +end. diff --git a/Source/Modulos/Contabilidad cuentas especiales/Views/CuentasEspeciales_view.dproj b/Source/Modulos/Contabilidad cuentas especiales/Views/CuentasEspeciales_view.dproj new file mode 100644 index 00000000..1798a1bb --- /dev/null +++ b/Source/Modulos/Contabilidad cuentas especiales/Views/CuentasEspeciales_view.dproj @@ -0,0 +1,551 @@ + + + + {e3d36a6f-7004-4c89-9f3d-f2d77e386d1b} + CuentasEspeciales_view.dpk + Debug + AnyCPU + DCC32 + ..\..\..\..\Output\Debug\Cliente\CuentasEspeciales_view.bpl + + + 7.0 + False + False + 0 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + RELEASE + + + 7.0 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + DEBUG + + + Delphi.Personality + Package + +FalseTrueFalseTrueFalseFalseTrueFalse1000FalseFalseFalseFalseFalse308212521.0.0.01.0.0.0CuentasEspeciales_view.dpk + + + + + MainSource + + + + + + + + + + + +
    fEditorCuentaEspecial
    +
    + +
    fEditorBalances
    + TfEditorFormasPago +
    +
    +
    + diff --git a/Source/Modulos/Contabilidad cuentas especiales/Views/CuentasEspeciales_view.identcache b/Source/Modulos/Contabilidad cuentas especiales/Views/CuentasEspeciales_view.identcache new file mode 100644 index 0000000000000000000000000000000000000000..840e703fbc8f0f0cc4527fecf17fcd1f4a5b5744 GIT binary patch literal 337 zcmb`?!3x4K41nQ+FVZLQ0lZ1s(TjqoAjBq=Kv_o9;_F*=ldR4$vRZFr#iwK;Bp)01%{<%0Q82T?UHE0t29l~JeETrhWYy7LeWAUaqx~Kv?-;(-Hs4-^ATIZOBrid9+-6Ne7&88mi>kUR4lo#jxZ;#*s4zxg9yNlk=H9sqkCD2^cEXKpiTBNfgkKpXJBWWaLt(Qkv@0 w5yv*t82((Wlr2{_+FDoDHKW2QCXvc+s**ul{{$ 0); +} +end; + +constructor TfEditorCuentaEspecial.Create(AOwner: TComponent); +begin + inherited; + FController := TCuentasEspecialesController.Create; +end; + +destructor TfEditorCuentaEspecial.Destroy; +begin + FCuentaEspecial := NIL; + FController := NIL; + inherited; +end; + +procedure TfEditorCuentaEspecial.actAceptarExecute(Sender: TObject); +begin +{ + if (ListaCuentasEspeciales.ActiveView.DataController.RecordCount = 0) then + if (ShowConfirmMessage('Forma de pago sin plazos', 'No ha indicado plazos de pago para esta forma de pago por lo tanto no se podrn generarar los recibos correspondientes.' + #10#13 + 'Desea continuar guardando la forma de pago?') = IDNO) then + Exit; +} + if FController.Guardar(FCuentaEspecial) then + actCerrar.Execute; +end; + +procedure TfEditorCuentaEspecial.actCancelarExecute(Sender: TObject); +begin + FController.DescartarCambios(FCuentaEspecial); + actCerrar.Execute; +end; + +procedure TfEditorCuentaEspecial.actCerrarExecute(Sender: TObject); +begin + Close; +end; + +procedure TfEditorCuentaEspecial.actAnadirUpdate(Sender: TObject); +begin +{ + (Sender as TAction).Enabled := Assigned(FPlazos) and + FPlazos.DataTable.Active; +} +end; + +procedure TfEditorCuentaEspecial.FormShow(Sender: TObject); +begin + if not FCuentaEspecial.DataTable.Active then + FCuentaEspecial.DataTable.Active := True; + + if FCuentaEspecial.EsNuevo then + Self.Caption := 'Nueva forma de pago' + else + Self.Caption := 'Modificar forma de pago'; +end; + +end. diff --git a/Source/Modulos/Contabilidad cuentas especiales/Views/uEditorCuentasEspeciales.dfm b/Source/Modulos/Contabilidad cuentas especiales/Views/uEditorCuentasEspeciales.dfm new file mode 100644 index 00000000..24fdcc6b --- /dev/null +++ b/Source/Modulos/Contabilidad cuentas especiales/Views/uEditorCuentasEspeciales.dfm @@ -0,0 +1,149 @@ +object fEditorBalances: TfEditorBalances + Left = 453 + Top = 234 + BorderIcons = [biSystemMenu] + BorderStyle = bsSingle + Caption = 'Lista de cuentas especiales' + ClientHeight = 406 + ClientWidth = 959 + 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 = 0 + Top = 0 + Width = 959 + Height = 406 + ActivePage = TabSheet1 + Align = alClient + TabOrder = 0 + object TabSheet1: TTabSheet + Caption = 'Cuentas especiales' + ExplicitLeft = 0 + ExplicitTop = 0 + ExplicitWidth = 0 + ExplicitHeight = 0 + object Label1: TLabel + Left = 6 + Top = 12 + Width = 131 + Height = 13 + Caption = 'Lista de cuentas especiales' + end + object bEliminar: TButton + Left = 853 + Top = 90 + Width = 95 + Height = 23 + Action = actEliminar + TabOrder = 0 + end + object bAnadir: TButton + Left = 853 + Top = 31 + Width = 95 + Height = 23 + Action = actAnadir + TabOrder = 1 + end + object Button1: TButton + Left = 853 + Top = 61 + Width = 95 + Height = 23 + Action = actModificar + TabOrder = 2 + end + object ListaBalances: TDBGrid + Left = 3 + Top = 31 + Width = 844 + Height = 289 + DataSource = dsCuentasEspeciales + 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 = [] + Columns = < + item + Expanded = False + FieldName = 'REFERENCIA' + Title.Caption = 'Referencia' + Width = 110 + Visible = True + end + item + Expanded = False + FieldName = 'DESCRIPCION' + Title.Caption = 'Descripci'#243'n' + Width = 154 + Visible = True + end> + end + end + end + object ActionList1: TActionList + Left = 144 + Top = 16 + object actAnadir: TAction + Caption = '&A'#241'adir...' + OnExecute = actAnadirExecute + OnUpdate = actAnadirUpdate + end + object actEliminar: TAction + Caption = '&Eliminar' + OnExecute = actEliminarExecute + OnUpdate = actEliminarUpdate + end + object actAceptar: TAction + Caption = 'A&ceptar' + OnExecute = actAceptarExecute + end + object actCancelar: TAction + Caption = '&Cancelar' + OnExecute = actCancelarExecute + end + object actCerrar: TAction + Caption = 'actCerrar' + OnExecute = actCerrarExecute + end + object actModificar: TAction + Caption = '&Modificar...' + OnExecute = actModificarExecute + OnUpdate = actModificarUpdate + end + end + object dsCuentasEspeciales: TDADataSource + Left = 168 + Top = 16 + end +end diff --git a/Source/Modulos/Contabilidad cuentas especiales/Views/uEditorCuentasEspeciales.pas b/Source/Modulos/Contabilidad cuentas especiales/Views/uEditorCuentasEspeciales.pas new file mode 100644 index 00000000..1b0b8957 --- /dev/null +++ b/Source/Modulos/Contabilidad cuentas especiales/Views/uEditorCuentasEspeciales.pas @@ -0,0 +1,184 @@ +{ +=============================================================================== + Copyright () 2006. Rodax Software. +=============================================================================== + Los contenidos de este fichero son propiedad de Rodax Software titular del + copyright. Este fichero slo podr ser copiado, distribuido y utilizado, + en su totalidad o en parte, con el permiso escrito de Rodax Software, o de + acuerdo con los trminos y condiciones establecidas en el acuerdo/contrato + bajo el que se suministra. + ----------------------------------------------------------------------------- + Web: www.rodax-software.com +=============================================================================== + Fecha primera versin: 22-05-2006 + Versin actual: 1.0.0 + Fecha versin actual: 22-05-2006 +=============================================================================== + Modificaciones: + + Fecha Comentarios + --------------------------------------------------------------------------- +=============================================================================== +} + +unit uEditorCuentasEspeciales; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + uIEditorCuentasEspeciales, uBizCuentasEspeciales, uCuentasEspecialesController, DB, uDADataTable, + ActnList, Grids, DBGrids, StdCtrls, ComCtrls, uDAInterfaces, Mask, DBCtrls; + +type + TfEditorCuentasEspeciales = class(TForm, IEditorCuentasEspeciales) + ActionList1: TActionList; + 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; + dsCuentasEspeciales: TDADataSource; + ListaCuentasEspeciales: 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 ListaCuentasEspecialesDblClick(Sender: TObject); + procedure actModificarUpdate(Sender: TObject); + protected + FCuentasEspeciales: IBizCuentaEspecial; + FController: ICuentasEspecialesController; + function GetCuentasEspeciales: IBizCuentaEspecial; + procedure SetCuentasEspeciales(const Value: IBizCuentaEspecial); + public + constructor Create(AOwner: TComponent); override; + destructor Destroy; override; + property CuentasEspeciales: IBizCuentaEspecial read GetCuentasEspeciales write SetCuentasEspeciales; + end; + + +implementation +{$R *.dfm} + +{ TfEditorCuentasEspeciales } + +uses + uDialogUtils; + +function TfEditorCuentasEspeciales.GetCuentasEspeciales: IBizCuentaEspecial; +begin + Result := FCuentasEspeciales; +end; + +procedure TfEditorCuentasEspeciales.ListaCuentasEspecialesDblClick(Sender: TObject); +begin +// ListaCuentasEspeciales.SelectedIndex +end; + +procedure TfEditorCuentasEspeciales.SetCuentasEspeciales(const Value: IBizCuentaEspecial); +begin + FCuentasEspeciales := Value; + dsCuentasEspeciales.DataTable := (FCuentasEspeciales as IBizCuentaEspecial).DataTable; + dsCuentasEspeciales.DataTable.Open; +end; + +procedure TfEditorCuentasEspeciales.actAnadirExecute(Sender: TObject); +begin + FController.Anadir(CuentasEspeciales); + FController.Ver(CuentasEspeciales); +end; + +procedure TfEditorCuentasEspeciales.actEliminarExecute(Sender: TObject); +begin + if (ShowConfirmMessage('Borrar forma de pago', 'Est seguro que desea borrar esta forma de pago?') = IDYES) then + FController.Eliminar(FCuentasEspeciales) +end; + +procedure TfEditorCuentasEspeciales.actEliminarUpdate(Sender: TObject); +begin + (Sender as TAction).Enabled := Assigned(FCuentasEspeciales) and + FCuentasEspeciales.DataTable.Active and + (FCuentasEspeciales.DataTable.RecordCount > 0); +end; + +procedure TfEditorCuentasEspeciales.actModificarExecute(Sender: TObject); +begin + FController.Ver(CuentasEspeciales); +end; + +procedure TfEditorCuentasEspeciales.actModificarUpdate(Sender: TObject); +begin + (Sender as TAction).Enabled := Assigned(FCuentasEspeciales) and + FCuentasEspeciales.DataTable.Active and + (FCuentasEspeciales.DataTable.RecordCount > 0); +end; + +constructor TfEditorCuentasEspeciales.Create(AOwner: TComponent); +begin + inherited; + FController := TCuentasEspecialesController.Create; +end; + +destructor TfEditorCuentasEspeciales.Destroy; +begin + FCuentasEspeciales := NIL; + FController := NIL; + inherited; +end; + +procedure TfEditorCuentasEspeciales.actAceptarExecute(Sender: TObject); +begin + try + CuentasEspeciales.DataTable.ApplyUpdates; + except + on E : Exception do begin + CuentasEspeciales.DataTable.CancelUpdates; + ShowErrorMessage('Error al guardar cambios', 'Se ha producido un error grave', E); + Exit; + end; + end; + actCerrar.Execute; +end; + +procedure TfEditorCuentasEspeciales.actCancelarExecute(Sender: TObject); +begin + CuentasEspeciales.DataTable.CancelUpdates; + actCerrar.Execute; +end; + +procedure TfEditorCuentasEspeciales.actCerrarExecute(Sender: TObject); +begin + Close; +end; + +procedure TfEditorCuentasEspeciales.actAnadirUpdate(Sender: TObject); +begin + (Sender as TAction).Enabled := Assigned(FCuentasEspeciales) and + FCuentasEspeciales.DataTable.Active; +end; + +procedure TfEditorCuentasEspeciales.FormShow(Sender: TObject); +begin + if not FCuentasEspeciales.DataTable.Active then + FCuentasEspeciales.DataTable.Active := true; + +// ListaCuentasEspeciales.SetFocus; +end; + +end. diff --git a/Source/Modulos/Contabilidad ejercicios/Controller/Ejercicios_controller.dpk b/Source/Modulos/Contabilidad ejercicios/Controller/Ejercicios_controller.dpk new file mode 100644 index 00000000..29984774 --- /dev/null +++ b/Source/Modulos/Contabilidad ejercicios/Controller/Ejercicios_controller.dpk @@ -0,0 +1,42 @@ +package Ejercicios_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 ON} +{$DEFINE DEBUG} + +requires + rtl, + vcl, + Base, + GUIBase, + ApplicationBase, + Ejercicios_model, + Ejercicios_data; + +contains + uEjerciciosController in 'uEjerciciosController.pas', + uIEditorEjercicio in 'View\uIEditorEjercicio.pas', + uIEditorEjercicios in 'View\uIEditorEjercicios.pas'; + +end. diff --git a/Source/Modulos/Contabilidad ejercicios/Controller/Ejercicios_controller.dproj b/Source/Modulos/Contabilidad ejercicios/Controller/Ejercicios_controller.dproj new file mode 100644 index 00000000..757e97cf --- /dev/null +++ b/Source/Modulos/Contabilidad ejercicios/Controller/Ejercicios_controller.dproj @@ -0,0 +1,545 @@ + + + + {7f80f8aa-6912-4714-986d-aed73035472b} + Ejercicios_controller.dpk + Debug + AnyCPU + DCC32 + ..\..\..\..\Output\Debug\Cliente\Ejercicios_controller.bpl + + + 7.0 + False + False + 0 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + RELEASE + + + 7.0 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + DEBUG + + + Delphi.Personality + Package + +FalseTrueFalseTrueFalseFalseTrueFalse1000FalseFalseFalseFalseFalse308212521.0.0.01.0.0.0Ejercicios_controller.dpk + + + + + MainSource + + + + + + + + + + + + + + diff --git a/Source/Modulos/Contabilidad ejercicios/Controller/Ejercicios_controller.identcache b/Source/Modulos/Contabilidad ejercicios/Controller/Ejercicios_controller.identcache new file mode 100644 index 0000000000000000000000000000000000000000..da948adcbea5be78e923b8ff3fd7e4642c8c37bd GIT binary patch literal 319 zcmZQ(U|@)Gwu*7iPsvQrS8z;D%u9?3&Mz%WPL1)+PbtmGF9yoxl_Vx*=47TMrYNLl zr4}V;CTBv$i}G`FQj223GE>WANF literal 0 HcmV?d00001 diff --git a/Source/Modulos/Contabilidad ejercicios/Controller/Ejercicios_controller.rc b/Source/Modulos/Contabilidad ejercicios/Controller/Ejercicios_controller.rc new file mode 100644 index 00000000..153736af --- /dev/null +++ b/Source/Modulos/Contabilidad ejercicios/Controller/Ejercicios_controller.rc @@ -0,0 +1,22 @@ +1 VERSIONINFO +FILEVERSION 1,0,0,0 +PRODUCTVERSION 1,0,0,0 +FILEFLAGSMASK 0x3FL +FILEFLAGS 0x00L +FILEOS 0x40004L +FILETYPE 0x1L +FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "0C0A04E4" + BEGIN + VALUE "FileVersion", "1.0.0.0\0" + VALUE "ProductVersion", "1.0.0.0\0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x0C0A, 1252 + END +END diff --git a/Source/Modulos/Contabilidad ejercicios/Controller/Ejercicios_controller.res b/Source/Modulos/Contabilidad ejercicios/Controller/Ejercicios_controller.res new file mode 100644 index 0000000000000000000000000000000000000000..8b251f312bcccec5485024f6fe8d80e1cdf25746 GIT binary patch literal 384 zcmZ9HOA3Ne6ox;+L5PEv(4cV`IIrjdPAV##hV&wc1g%+%X(R2Xc{`~7t6e0Ioa?#% zkMj%AQhz>WYy7LeWAUaqx~Kv?-;(-Hs4-^ATIZOBrid9+-6Ne7&88mi>kUR4lo#jxZ;#*s4zxg9yNlk=H9sqkCD2^cEXKpiTBNfgkKpXJBWWaLt(Qkv@0 w5yv*t82((Wlr2{_+FDoDHKW2QCXvc+s**ul{{$= ID) + Condicion := NewBinaryExpression(NewField('', fld_EjerciciosID_EMPRESA), NewConstant(AppFactuGES.EmpresaActiva.ID, datInteger), dboEqual); + + if IsEmpty then + Expression := Condicion + else + Expression := NewBinaryExpression(Expression, Condicion, dboAnd); + end; +end; + +procedure TEjerciciosController.RecibirAviso(ASujeto: ISujeto; ADataTable: IDAStronglyTypedDataTable); +begin + inherited; +// +end; + +function TEjerciciosController.Guardar(AEjercicio: IBizEjercicio): Boolean; +begin + Result := False; + + if ValidarEjercicio(AEjercicio) then + begin + ShowHourglassCursor; + try + AEjercicio.DataTable.ApplyUpdates; + Result := True; + finally + HideHourglassCursor; + end; + end; +end; + +function TEjerciciosController.Localizar(AEjercicios: IBizEjercicio; ADescripcion: String): Boolean; +begin + Result := True; + ShowHourglassCursor; + try + with AEjercicios.DataTable do + begin + DisableControls; + First; + if not Locate(fld_EjerciciosNOMBRE, ADescripcion, []) then + Result := False; + EnableControls; + end; + finally + HideHourglassCursor; + end; +end; + +end. diff --git a/Source/Modulos/Contabilidad ejercicios/Data/Ejercicios_data.dpk b/Source/Modulos/Contabilidad ejercicios/Data/Ejercicios_data.dpk new file mode 100644 index 00000000..9a9186a9 --- /dev/null +++ b/Source/Modulos/Contabilidad ejercicios/Data/Ejercicios_data.dpk @@ -0,0 +1,43 @@ +package Ejercicios_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 ON} +{$DEFINE DEBUG} + +requires + rtl, + vcl, + Base, + GUIBase, + ApplicationBase, + dbrtl, + vcldb, + dsnap, + adortl, + Ejercicios_model; + +contains + uDataModuleEjercicios in 'uDataModuleEjercicios.pas' {DataModuleEjercicios}; + +end. diff --git a/Source/Modulos/Contabilidad ejercicios/Data/Ejercicios_data.dproj b/Source/Modulos/Contabilidad ejercicios/Data/Ejercicios_data.dproj new file mode 100644 index 00000000..79c38339 --- /dev/null +++ b/Source/Modulos/Contabilidad ejercicios/Data/Ejercicios_data.dproj @@ -0,0 +1,548 @@ + + + + {c8118762-09b6-432f-ba26-058fa36c39d9} + Ejercicios_data.dpk + Debug + AnyCPU + DCC32 + ..\..\..\..\Output\Debug\Cliente\Ejercicios_data.bpl + + + 7.0 + False + False + 0 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + RELEASE + + + 7.0 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + DEBUG + + + Delphi.Personality + Package + +FalseTrueFalseTrueFalseFalseTrueFalse1000FalseFalseFalseFalseFalse308212521.0.0.01.0.0.0Ejercicios_data.dpk + + + + + MainSource + + + + + + + + + + + + +
    DataModuleEjercicios
    +
    +
    +
    + diff --git a/Source/Modulos/Contabilidad ejercicios/Data/Ejercicios_data.identcache b/Source/Modulos/Contabilidad ejercicios/Data/Ejercicios_data.identcache new file mode 100644 index 0000000000000000000000000000000000000000..3af04170f1f987634dc5f8631b1436d5c46b3896 GIT binary patch literal 102 zcmZQ%U|WYy7LeWAUaqx~Kv?-;(-Hs4-^ATIZOBrid9+-6Ne7&88mi>kUR4lo#jxZ;#*s4zxg9yNlk=H9sqkCD2^cEXKpiTBNfgkKpXJBWWaLt(Qkv@0 w5yv*t82((Wlr2{_+FDoDHKW2QCXvc+s**ul{{$ + Params = <> + StreamingOptions = [soDisableEventsWhileStreaming] + RemoteDataAdapter = rda_Ejercicios + DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch] + MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates] + LogicalName = 'Ejercicios' + IndexDefs = <> + Left = 296 + Top = 88 + end + object ds_Ejercicios: TDADataSource + DataSet = tbl_Ejercicios.Dataset + DataTable = tbl_Ejercicios + Left = 296 + Top = 32 + end +end diff --git a/Source/Modulos/Contabilidad ejercicios/Data/uDataModuleEjercicios.pas b/Source/Modulos/Contabilidad ejercicios/Data/uDataModuleEjercicios.pas new file mode 100644 index 00000000..b147b311 --- /dev/null +++ b/Source/Modulos/Contabilidad ejercicios/Data/uDataModuleEjercicios.pas @@ -0,0 +1,54 @@ +unit uDataModuleEjercicios; + +interface + +uses + SysUtils, Classes, DB, uDADataTable, uDABINAdapter, + uDAScriptingProvider, uDACDSDataTable, uROWinInetHttpChannel, uROTypes, + uRORemoteService, uROClient, uROBinMessage, + uDADesigntimeCall, uControllerBase, + uBizEjercicios, uDARemoteDataAdapter, uDADataStreamer, uDAInterfaces, uRODynamicRequest, + uDABin2DataStreamer, uDAMemDataTable, uIDataModuleEjercicios, uDataModuleBase; +type + TDataModuleEjercicios = class(TDataModuleBase, IDataModuleEjercicios) + RORemoteService: TRORemoteService; + Bin2DataStreamer: TDABin2DataStreamer; + rda_Ejercicios: TDARemoteDataAdapter; + tbl_Ejercicios: TDAMemDataTable; + ds_Ejercicios: TDADataSource; + procedure DAClientDataModuleCreate(Sender: TObject); + public + function GetItems: IBizEjercicio; + end; + +implementation + +{$R *.DFM} + +uses + FactuGES_Intf, uDataModuleConexion, uDataTableUtils, cxControls, + schEjerciciosClient_Intf; + +{ TdmAlmacens } + +procedure TDataModuleEjercicios.DAClientDataModuleCreate(Sender: TObject); +begin + RORemoteService.Channel := dmConexion.Channel; + RORemoteService.Message := dmConexion.Message; +end; + +function TDataModuleEjercicios.GetItems: IBizEjercicio; +var + AContabilidadEjercicio : TDAMemDataTable; +begin + ShowHourglassCursor; + try + AContabilidadEjercicio := CloneDataTable(tbl_Ejercicios); + AContabilidadEjercicio.BusinessRulesID := BIZ_CLIENT_EJERCICIO; + Result := (AContabilidadEjercicio as IBizEjercicio); + finally + HideHourglassCursor; + end; +end; + +end. diff --git a/Source/Modulos/Contabilidad ejercicios/Ejercicios_Group.groupproj b/Source/Modulos/Contabilidad ejercicios/Ejercicios_Group.groupproj new file mode 100644 index 00000000..3a59410c --- /dev/null +++ b/Source/Modulos/Contabilidad ejercicios/Ejercicios_Group.groupproj @@ -0,0 +1,124 @@ + + + {3df776bd-a3f8-4f3a-9129-45fdb4a2ee63} + + + + + + + + + + + + + + + + Default.Personality + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Source/Modulos/Contabilidad ejercicios/Model/Data/uIDataModuleEjercicios.pas b/Source/Modulos/Contabilidad ejercicios/Model/Data/uIDataModuleEjercicios.pas new file mode 100644 index 00000000..b8ede895 --- /dev/null +++ b/Source/Modulos/Contabilidad ejercicios/Model/Data/uIDataModuleEjercicios.pas @@ -0,0 +1,16 @@ +unit uIDataModuleEjercicios; + +interface + +uses + uBizEjercicios; + +type + IDataModuleEjercicios = interface(IInterface) + ['{E32DF99C-8AA1-42E5-84C0-198205BD2A90}'] + function GetItems: IBizEjercicio; + end; + +implementation + +end. diff --git a/Source/Modulos/Contabilidad ejercicios/Model/Ejercicios_model.dpk b/Source/Modulos/Contabilidad ejercicios/Model/Ejercicios_model.dpk new file mode 100644 index 00000000..9fd4ff77 --- /dev/null +++ b/Source/Modulos/Contabilidad ejercicios/Model/Ejercicios_model.dpk @@ -0,0 +1,46 @@ +package Ejercicios_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 ON} + +requires + rtl, + vcl, + Base, + GUIBase, + ApplicationBase, + dbrtl, + RemObjects_Core_D11, + DataAbstract_Core_D11, + vcldb, + dsnap, + adortl; + +contains + uBizEjercicios in 'uBizEjercicios.pas', + uIDataModuleEjercicios in 'Data\uIDataModuleEjercicios.pas', + schEjerciciosClient_Intf in 'schEjerciciosClient_Intf.pas', + schEjerciciosServer_Intf in 'schEjerciciosServer_Intf.pas'; + +end. diff --git a/Source/Modulos/Contabilidad ejercicios/Model/Ejercicios_model.dproj b/Source/Modulos/Contabilidad ejercicios/Model/Ejercicios_model.dproj new file mode 100644 index 00000000..3ee3b395 --- /dev/null +++ b/Source/Modulos/Contabilidad ejercicios/Model/Ejercicios_model.dproj @@ -0,0 +1,549 @@ + + + + {73acd39c-b2f0-49b7-9acf-10945bbac8c1} + Ejercicios_model.dpk + Debug + AnyCPU + DCC32 + ..\..\..\..\Output\Debug\Cliente\Ejercicios_model.bpl + + + 7.0 + False + False + 0 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + RELEASE + + + 7.0 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + + + Delphi.Personality + Package + +FalseTrueFalseTrueFalseFalseTrueFalse1000FalseFalseFalseFalseFalse308212521.0.0.01.0.0.0Ejercicios_model.dpk + + + + + MainSource + + + + + + + + + + + + + + + + + + + diff --git a/Source/Modulos/Contabilidad ejercicios/Model/Ejercicios_model.identcache b/Source/Modulos/Contabilidad ejercicios/Model/Ejercicios_model.identcache new file mode 100644 index 0000000000000000000000000000000000000000..0a44b8a13d58383a4848ab4d90b1a3647479dbb2 GIT binary patch literal 405 zcmZQ!U|@)Gwu*7iPsvQrS8z;D%u9?3&Mz%WPL1)+PbtmGF9yoxl_Vx*=47TMrYNLl zr4}V;CT9Z0f%2(2F)oQEi7};~APTG@)fKKnuOP7)Xg(Z7Qe;taat6Za;MAhB)S`IL hypl9@Tl^`qrPL|23SkYp*;Mp_b53SzUI|to008_@hb{mB literal 0 HcmV?d00001 diff --git a/Source/Modulos/Contabilidad ejercicios/Model/Ejercicios_model.rc b/Source/Modulos/Contabilidad ejercicios/Model/Ejercicios_model.rc new file mode 100644 index 00000000..153736af --- /dev/null +++ b/Source/Modulos/Contabilidad ejercicios/Model/Ejercicios_model.rc @@ -0,0 +1,22 @@ +1 VERSIONINFO +FILEVERSION 1,0,0,0 +PRODUCTVERSION 1,0,0,0 +FILEFLAGSMASK 0x3FL +FILEFLAGS 0x00L +FILEOS 0x40004L +FILETYPE 0x1L +FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "0C0A04E4" + BEGIN + VALUE "FileVersion", "1.0.0.0\0" + VALUE "ProductVersion", "1.0.0.0\0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x0C0A, 1252 + END +END diff --git a/Source/Modulos/Contabilidad ejercicios/Model/Ejercicios_model.res b/Source/Modulos/Contabilidad ejercicios/Model/Ejercicios_model.res new file mode 100644 index 0000000000000000000000000000000000000000..8b251f312bcccec5485024f6fe8d80e1cdf25746 GIT binary patch literal 384 zcmZ9HOA3Ne6ox;+L5PEv(4cV`IIrjdPAV##hV&wc1g%+%X(R2Xc{`~7t6e0Ioa?#% zkMj%AQhz>WYy7LeWAUaqx~Kv?-;(-Hs4-^ATIZOBrid9+-6Ne7&88mi>kUR4lo#jxZ;#*s4zxg9yNlk=H9sqkCD2^cEXKpiTBNfgkKpXJBWWaLt(Qkv@0 w5yv*t82((Wlr2{_+FDoDHKW2QCXvc+s**ul{{$ + + + {82e36812-58c4-491b-b463-6b951e95da51} + Ejercicios_plugin.dpk + Debug + AnyCPU + DCC32 + ..\..\..\..\Output\Debug\Cliente\Ejercicios_plugin.bpl + + + 7.0 + False + False + 0 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + RELEASE + + + 7.0 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + DEBUG + + + Delphi.Personality + Package + +FalseTrueFalseTrueFalseFalseTrueFalse1000FalseFalseFalseFalseFalse308212521.0.0.01.0.0.0Ejercicios_plugin.dpk + + + + + MainSource + + + + + + + + + + + + + + diff --git a/Source/Modulos/Contabilidad ejercicios/Plugin/Ejercicios_plugin.identcache b/Source/Modulos/Contabilidad ejercicios/Plugin/Ejercicios_plugin.identcache new file mode 100644 index 0000000000000000000000000000000000000000..6132fa74001dbb089b72e2916893b17b9c3930b1 GIT binary patch literal 100 zcmZQ%U|WYy7LeWAUaqx~Kv?-;(-Hs4-^ATIZOBrid9+-6Ne7&88mi>kUR4lo#jxZ;#*s4zxg9yNlk=H9sqkCD2^cEXKpiTBNfgkKpXJBWWaLt(Qkv@0 w5yv*t82((Wlr2{_+FDoDHKW2QCXvc+s**ul{{$ + Left = 232 + Top = 16 + end + object ModuleActionList: TActionList + Images = SmallImages + Left = 40 + Top = 72 + object actEjercicios: TAction + Category = 'Ejercicios' + Caption = 'Ejercicios' + ImageIndex = 0 + OnExecute = actEjerciciosExecute + end + end + object MainMenu: TMainMenu + Images = LargeImages + Left = 40 + Top = 16 + object Ventas1: TMenuItem + Caption = 'Contabilidad' + object N1: TMenuItem + Tag = 18990 + Caption = '-' + end + object Ejercicios1: TMenuItem + Tag = 19001 + Action = actEjercicios + 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/Contabilidad ejercicios/Plugin/uPluginEjercicios.dfm.bak b/Source/Modulos/Contabilidad ejercicios/Plugin/uPluginEjercicios.dfm.bak new file mode 100644 index 00000000..f79e88c0 --- /dev/null +++ b/Source/Modulos/Contabilidad ejercicios/Plugin/uPluginEjercicios.dfm.bak @@ -0,0 +1,81 @@ +object PluginFormasPago: TPluginFormasPago + OldCreateOrder = True + DefaultAction = actEjercicios + Description = 'Ejercicios' + ModuleMenu = MainMenu + ModuleName = 'Ejercicios' + 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 actEjercicios: TAction + Category = 'Ejercicios' + Caption = 'Ejercicios' + ImageIndex = 0 + OnExecute = actEjerciciosExecute + 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 = actEjercicios + 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/Contabilidad ejercicios/Plugin/uPluginEjercicios.pas b/Source/Modulos/Contabilidad ejercicios/Plugin/uPluginEjercicios.pas new file mode 100644 index 00000000..5e2d1198 --- /dev/null +++ b/Source/Modulos/Contabilidad ejercicios/Plugin/uPluginEjercicios.pas @@ -0,0 +1,74 @@ +unit uPluginEjercicios; + +interface + +uses + uModuleController, uInterfaces, uHostManager, Menus, Classes, ActnList, + ImgList, Controls, PngImageList; + +type + IMCEjercicios = interface(IInterface) + ['{255E8D6B-282A-48CC-9807-E49C7D31FD2D}'] + end; + + TPluginEjercicios = class(TModuleController, IMCEjercicios) + actEjercicios: TAction; + ExtraImages: TPngImageList; + LargeImages: TPngImageList; + MainMenu: TMainMenu; + ModuleActionList: TActionList; + SmallImages: TPngImageList; + Ventas1: TMenuItem; + Ejercicios1: TMenuItem; + N1: TMenuItem; + procedure actEjerciciosExecute(Sender: TObject); + public + constructor Create(AOwner: TComponent); override; + destructor Destroy; override; + end; + +implementation + +{$R *.dfm} + +uses + Forms, Dialogs, SysUtils, + uEjerciciosController, uBizEjercicios, uEjerciciosViewRegister; + +function GetModule : TModuleController; +begin + Result := TPluginEjercicios.Create(NIL); +end; + +exports + GetModule name GET_MODULE_FUNC; + +procedure TPluginEjercicios.actEjerciciosExecute(Sender: TObject); +var + AEjerciciosController : IEjerciciosController; + AEjercicios : IBizEjercicio; +begin + AEjerciciosController := TEjerciciosController.Create; + AEjercicios := (AEjerciciosController.BuscarTodos as IBizEjercicio); + AEjerciciosController.VerTodos(AEjercicios); +end; + +constructor TPluginEjercicios.Create(AOwner: TComponent); +begin + inherited; + uEjerciciosViewRegister.RegisterViews; +end; + +destructor TPluginEjercicios.Destroy; +begin + uEjerciciosViewRegister.UnregisterViews; + inherited; +end; + +initialization + RegisterModuleClass(TPluginEjercicios); + +finalization + UnRegisterModuleClass(TPluginEjercicios); + +end. diff --git a/Source/Modulos/Contabilidad ejercicios/Servidor/srvEjercicios_Impl.dfm b/Source/Modulos/Contabilidad ejercicios/Servidor/srvEjercicios_Impl.dfm new file mode 100644 index 00000000..018e1074 --- /dev/null +++ b/Source/Modulos/Contabilidad ejercicios/Servidor/srvEjercicios_Impl.dfm @@ -0,0 +1,200 @@ +object srvEjercicios: TsrvEjercicios + OldCreateOrder = True + OnCreate = DARemoteServiceCreate + SessionManager = dmServer.SessionManager + ServiceSchema = schEjercicios + ServiceDataStreamer = Bin2DataStreamer + ExportedDataTables = <> + BeforeAcquireConnection = DataAbstractServiceBeforeAcquireConnection + Height = 181 + Width = 282 + object Diagrams: TDADiagrams + Left = 150 + Top = 90 + DiagramData = + ''#13#10' '#13#10' '#13#10' '#13#10''#13#10 + end + object DataDictionary: TDADataDictionary + Fields = < + item + Name = 'Ejercicios_ID' + DataType = datAutoInc + GeneratorName = 'GEN_CONT_EJERCICIOS_ID' + Required = True + DisplayLabel = 'ID' + ServerAutoRefresh = True + end + item + Name = 'Ejercicios_NOMBRE' + DataType = datString + Size = 255 + DisplayLabel = 'Nombre' + end + item + Name = 'Ejercicios_FECHA_INICIO' + DataType = datDateTime + DisplayLabel = 'Fecha inicio' + end + item + Name = 'Ejercicios_FECHA_FIN' + DataType = datDateTime + DisplayLabel = 'Fecha fin' + end + item + Name = 'Ejercicios_ESTADO' + DataType = datString + Size = 255 + DisplayLabel = 'Estado' + end + item + Name = 'Ejercicios_LONG_SUB_CUENTA' + DataType = datSmallInt + DisplayLabel = 'Long. Subcuenta' + end + item + Name = 'Ejercicios_ID_ASIENTO_APERTURA' + DataType = datInteger + end + item + Name = 'Ejercicios_ID_ASIENTO_PERYGAN' + DataType = datInteger + end + item + Name = 'Ejercicios_ID_ASIENTO_CIERRE' + DataType = datInteger + end + item + Name = 'Ejercicios_ID_EMPRESA' + DataType = datInteger + end> + Left = 150 + Top = 24 + end + object schEjercicios: TDASchema + ConnectionManager = dmServer.ConnectionManager + DataDictionary = DataDictionary + Diagrams = Diagrams + Datasets = < + item + Params = <> + Statements = < + item + Connection = 'IBX' + TargetTable = 'CONT_EJERCICIOS' + StatementType = stAutoSQL + ColumnMappings = < + item + DatasetField = 'ID' + TableField = 'ID' + end + item + DatasetField = 'ID_EMPRESA' + TableField = 'ID_EMPRESA' + end + item + DatasetField = 'NOMBRE' + TableField = 'NOMBRE' + end + item + DatasetField = 'FECHA_INICIO' + TableField = 'FECHA_INICIO' + end + item + DatasetField = 'FECHA_FIN' + TableField = 'FECHA_FIN' + end + item + DatasetField = 'ESTADO' + TableField = 'ESTADO' + end + item + DatasetField = 'LONG_SUB_CUENTA' + TableField = 'LONG_SUB_CUENTA' + end + item + DatasetField = 'ID_ASIENTO_APERTURA' + TableField = 'ID_ASIENTO_APERTURA' + end + item + DatasetField = 'ID_ASIENTO_PERYGAN' + TableField = 'ID_ASIENTO_PERYGAN' + end + item + DatasetField = 'ID_ASIENTO_CIERRE' + TableField = 'ID_ASIENTO_CIERRE' + end> + end> + Name = 'Ejercicios' + Fields = < + item + Name = 'ID' + DataType = datAutoInc + GeneratorName = 'GEN_CONT_EJERCICIOS_ID' + ServerAutoRefresh = True + DictionaryEntry = 'Ejercicios_ID' + InPrimaryKey = True + end + item + Name = 'ID_EMPRESA' + DataType = datInteger + DictionaryEntry = 'Ejercicios_ID_EMPRESA' + end + item + Name = 'NOMBRE' + DataType = datString + Size = 255 + DictionaryEntry = 'Ejercicios_NOMBRE' + end + item + Name = 'FECHA_INICIO' + DataType = datDateTime + DictionaryEntry = 'Ejercicios_FECHA_INICIO' + end + item + Name = 'FECHA_FIN' + DataType = datDateTime + DictionaryEntry = 'Ejercicios_FECHA_FIN' + end + item + Name = 'ESTADO' + DataType = datString + Size = 255 + DictionaryEntry = 'Ejercicios_ESTADO' + end + item + Name = 'LONG_SUB_CUENTA' + DataType = datSmallInt + DictionaryEntry = 'Ejercicios_LONG_SUB_CUENTA' + end + item + Name = 'ID_ASIENTO_APERTURA' + DataType = datInteger + DictionaryEntry = 'Ejercicios_ID_ASIENTO_APERTURA' + end + item + Name = 'ID_ASIENTO_PERYGAN' + DataType = datInteger + DictionaryEntry = 'Ejercicios_ID_ASIENTO_PERYGAN' + end + item + Name = 'ID_ASIENTO_CIERRE' + DataType = datInteger + DictionaryEntry = 'Ejercicios_ID_ASIENTO_CIERRE' + end> + end> + JoinDataTables = <> + UnionDataTables = <> + Commands = <> + RelationShips = <> + UpdateRules = <> + Version = 0 + Left = 48 + Top = 24 + end + object Bin2DataStreamer: TDABin2DataStreamer + Left = 48 + Top = 88 + end +end diff --git a/Source/Modulos/Contabilidad ejercicios/Servidor/srvEjercicios_Impl.pas b/Source/Modulos/Contabilidad ejercicios/Servidor/srvEjercicios_Impl.pas new file mode 100644 index 00000000..3aadff46 --- /dev/null +++ b/Source/Modulos/Contabilidad ejercicios/Servidor/srvEjercicios_Impl.pas @@ -0,0 +1,64 @@ +unit srvEjercicios_Impl; + +{----------------------------------------------------------------------------} +{ This unit was automatically generated by the RemObjects SDK after reading } +{ the RODL file associated with this project . } +{ } +{ This is where you are supposed to code the implementation of your objects. } +{----------------------------------------------------------------------------} + +interface + +uses + {vcl:} Classes, SysUtils, + {RemObjects:} uROClientIntf, uROTypes, uROServer, uROServerIntf, uROSessions, + {Ancestor Implementation:} DataAbstractService_Impl, + {Used RODLs:} DataAbstract4_Intf, + {Generated:} FactuGES_Intf, uDADataTable, uDABINAdapter, uDAClasses, + uDAScriptingProvider, uDABusinessProcessor, uDADataStreamer, + uDABin2DataStreamer; + +type + { TsrvEjercicios } + TsrvEjercicios = class(TDataAbstractService, IsrvEjercicios) + Diagrams: TDADiagrams; + Bin2DataStreamer: TDABin2DataStreamer; + schEjercicios: TDASchema; + DataDictionary: TDADataDictionary; + procedure DARemoteServiceCreate(Sender: TObject); + procedure DataAbstractServiceBeforeAcquireConnection(aSender: TObject; + var aConnectionName: string); + private + protected + end; + +implementation + +{$R *.dfm} +uses + {Generated:} FactuGES_Invk, uDataModuleServer, + uDatabaseUtils; + +procedure Create_srvEjercicios(out anInstance : IUnknown); +begin + anInstance := TsrvEjercicios.Create(NIL); +end; + +{ srvEjercicios } +procedure TsrvEjercicios.DARemoteServiceCreate(Sender: TObject); +begin + SessionManager := dmServer.SessionManager; +end; + +procedure TsrvEjercicios.DataAbstractServiceBeforeAcquireConnection( + aSender: TObject; var aConnectionName: string); +begin + ConnectionName := dmServer.ConnectionName; +end; + +initialization + TROClassFactory.Create('srvEjercicios', Create_srvEjercicios, TsrvEjercicios_Invoker); + +finalization + +end. diff --git a/Source/Modulos/Contabilidad ejercicios/Views/Ejercicios_view.dpk b/Source/Modulos/Contabilidad ejercicios/Views/Ejercicios_view.dpk new file mode 100644 index 00000000..20468efb --- /dev/null +++ b/Source/Modulos/Contabilidad ejercicios/Views/Ejercicios_view.dpk @@ -0,0 +1,87 @@ +package Ejercicios_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 ON} +{$DEFINE DEBUG} + +requires + rtl, + vcl, + Base, + GUIBase, + ApplicationBase, + JvCmpD11R, + Ejercicios_controller, + dbrtl, + DataAbstract_Core_D11, + vcldb, + dsnap, + adortl, + RemObjects_Core_D11, + cxLibraryD10, + dxThemeD10, + cxEditorsD10, + cxDataD10, + vcljpg, + cxGridD10, + cxPageControlD10, + cxExtEditorsD10, + vclx, + cxExportD10, + dxPSCoreD10, + dxComnD10, + dxPScxCommonD10, + dxPSLnksD10, + designide, + xmlrtl, + vclactnband, + vclshlctrls, + dxPScxGridLnkD10, + dclcxLibraryD10, + PngComponentsD10, + PNG_D10, + tb2k_d10, + tbx_d10, + JvCoreD11R, + Jcl, + JclVcl, + JvAppFrmD11R, + JvCtrlsD11R, + JvSystemD11R, + JvStdCtrlsD11R, + cxIntlPrintSys3D10, + dxLayoutControlD10, + GUISDK_D11, + cfpack_d11, + ccpackD11, + JvPageCompsD11R; + +contains + uEjerciciosViewRegister in 'uEjerciciosViewRegister.pas', + uViewEjercicios in 'uViewEjercicios.pas' {frViewEjercicios: TFrame}, + uViewEjercicio in 'uViewEjercicio.pas' {frViewEjercicio: TFrame}, + uEditorEjercicios in 'uEditorEjercicios.pas' {fEditorEjercicios: TfEditorEjercicios}, + uEditorEjercicio in 'uEditorEjercicio.pas' {fEditorEjercicio: TfEditorEjercicio}; + +end. diff --git a/Source/Modulos/Contabilidad ejercicios/Views/Ejercicios_view.dproj b/Source/Modulos/Contabilidad ejercicios/Views/Ejercicios_view.dproj new file mode 100644 index 00000000..87210524 --- /dev/null +++ b/Source/Modulos/Contabilidad ejercicios/Views/Ejercicios_view.dproj @@ -0,0 +1,602 @@ + + + + {e3d36a6f-7004-4c89-9f3d-f2d77e386d1b} + Ejercicios_view.dpk + Debug + AnyCPU + DCC32 + ..\..\..\..\Output\Debug\Cliente\Ejercicios_view.bpl + + + 7.0 + False + False + 0 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + RELEASE + + + 7.0 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + DEBUG + + + Delphi.Personality + Package + +FalseTrueFalseTrueFalseFalseTrueFalse1000FalseFalseFalseFalseFalse308212521.0.0.01.0.0.0Ejercicios_view.dpk + + + + + MainSource + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    fEditorEjercicio
    + TfEditorEjercicios +
    + +
    fEditorEjercicios
    + TfEditorEjercicios +
    + + +
    frViewEjercicio
    + TFrame +
    + +
    frViewEjercicios
    + TFrame +
    + + + + + + + +
    +
    + diff --git a/Source/Modulos/Contabilidad ejercicios/Views/Ejercicios_view.identcache b/Source/Modulos/Contabilidad ejercicios/Views/Ejercicios_view.identcache new file mode 100644 index 0000000000000000000000000000000000000000..d2765cd2000e41287b383b7953b7197beb8b27bb GIT binary patch literal 479 zcmZQ&U|WYy7LeWAUaqx~Kv?-;(-Hs4-^ATIZOBrid9+-6Ne7&88mi>kUR4lo#jxZ;#*s4zxg9yNlk=H9sqkCD2^cEXKpiTBNfgkKpXJBWWaLt(Qkv@0 w5yv*t82((Wlr2{_+FDoDHKW2QCXvc+s**ul{{$ + 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/Contabilidad ejercicios/Views/uEditorEjercicio.pas b/Source/Modulos/Contabilidad ejercicios/Views/uEditorEjercicio.pas new file mode 100644 index 00000000..846e463e --- /dev/null +++ b/Source/Modulos/Contabilidad ejercicios/Views/uEditorEjercicio.pas @@ -0,0 +1,204 @@ +unit uEditorEjercicio; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uEditorDBItem, ToolWin, ComCtrls, JvExControls, JvComponent, + uViewEjercicio, uBizEjercicios, 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, + + uViewEjercicios, uIEditorEjercicio, uEjerciciosController, JvExComCtrls, + JvStatusBar, dxLayoutLookAndFeels, uDAInterfaces; + +type + TfEditorEjercicio = class(TfEditorDBItem, IEditorEjercicio) + dxLayoutLookAndFeelList1: TdxLayoutLookAndFeelList; + dxLayoutOfficeLookAndFeel1: TdxLayoutOfficeLookAndFeel; + procedure FormShow(Sender: TObject); + procedure dsDataTableDataChange(Sender: TObject; Field: TField); + procedure CustomEditorClose(Sender: TObject; var Action: TCloseAction); + protected + FController : IEjerciciosController; + FEjercicio: IBizEjercicio; + FViewEjercicio : IViewEjercicio; + + function GetController : IEjerciciosController; + procedure SetController (const Value : IEjerciciosController); virtual; + function GetEjercicio: IBizEjercicio; virtual; + procedure SetEjercicio(const Value: IBizEjercicio); virtual; + function GetViewEjercicio: IViewEjercicio; + procedure SetViewEjercicio(const Value: IViewEjercicio); + property ViewEjercicio: IViewEjercicio read GetViewEjercicio write SetViewEjercicio; + + 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 Ejercicio: IBizEjercicio read GetEjercicio write SetEjercicio; + constructor Create(AOwner: TComponent); override; + destructor Destroy; override; + end; + +implementation + +{$R *.dfm} + +uses + uCustomEditor, uDataModuleEjercicios, uDataModuleBase; + +function ShowEditorEjercicio (ABizObject : TDADataTableRules): TModalResult; +var + AEditor: TfEditorEjercicio; +begin + AEditor := TfEditorEjercicio.Create(Application); + try + AEditor.Ejercicio := (ABizObject as IBizEjercicio); + Result := AEditor.ShowModal; + finally + AEditor.Release; + end; +end; + +{ +******************************* TfEditorEjercicio ******************************* +} +function TfEditorEjercicio.GetEjercicio: IBizEjercicio; +begin + Result := FEjercicio; +end; + +function TfEditorEjercicio.GetController: IEjerciciosController; +begin + Result := FController; +end; + +function TfEditorEjercicio.GetViewEjercicio: IViewEjercicio; +begin + Result := FViewEjercicio; +end; + +procedure TfEditorEjercicio.GuardarInterno; +begin + inherited; + FController.Guardar(FEjercicio); + Modified := False; +end; + +procedure TfEditorEjercicio.PonerTitulos(const ATitulo: string); +var + FTitulo : String; +begin + if Assigned(Ejercicio) then + begin + if Ejercicio.EsNuevo then + FTitulo := 'Nuevo almacn' + else + FTitulo := 'Almacn' + ' - ' + Ejercicio.NOMBRE; + end; + + inherited PonerTitulos(FTitulo); +end; + +procedure TfEditorEjercicio.SetEjercicio(const Value: IBizEjercicio); +begin + FEjercicio := Value; + dsDataTable.DataTable := FEjercicio.DataTable; + + if Assigned(FViewEjercicio) and Assigned(Ejercicio) then + FViewEjercicio.Ejercicio := Ejercicio; +end; + +procedure TfEditorEjercicio.SetController(const Value: IEjerciciosController); +begin + FController := Value; +end; + +procedure TfEditorEjercicio.SetViewEjercicio(const Value: IViewEjercicio); +begin + FViewEjercicio := Value; + + if Assigned(FViewEjercicio) and Assigned(Ejercicio) then + FViewEjercicio.Ejercicio := Ejercicio; +end; + +procedure TfEditorEjercicio.FormShow(Sender: TObject); +begin + inherited; + + if not Assigned(FViewEjercicio) then + raise Exception.Create('No hay ninguna vista asignada'); + + if not Assigned(Ejercicio) then + raise Exception.Create('No hay ningn almacn asignado'); + + Ejercicio.DataTable.Active := True; +end; + +destructor TfEditorEjercicio.Destroy; +begin + // Utilizar mejor OnClose; + inherited; +end; + +procedure TfEditorEjercicio.AsignarVista; +var + AViewEjercicio: TfrViewEjercicio; +begin + AViewEjercicio := TfrViewEjercicio.create(Self); + with AViewEjercicio do + begin + Parent := pagGeneral; + Align := alClient; +// dxLayoutControlEjercicio.LookAndFeel := dxLayoutOfficeLookAndFeel1; + end; + ViewEjercicio := AViewEjercicio; +end; + +constructor TfEditorEjercicio.Create(AOwner: TComponent); +begin + inherited; + pgPaginas.ActivePageIndex := 0; + AsignarVista; +end; + +procedure TfEditorEjercicio.CustomEditorClose(Sender: TObject; + var Action: TCloseAction); +begin + inherited; + dsDataTable.DataTable := NIL; + FViewEjercicio := NIL; + FEjercicio := NIL; +end; + +procedure TfEditorEjercicio.dsDataTableDataChange(Sender: TObject; + Field: TField); +begin + inherited; + if Assigned(FEjercicio) and (not (FEjercicio.DataTable.Fetching) or + not (FEjercicio.DataTable.Opening) or not (FEjercicio.DataTable.Closing)) then + PonerTitulos; +end; + +procedure TfEditorEjercicio.EliminarInterno; +begin + if (Application.MessageBox('Desea borrar este Ejercicio?', 'Atencin', MB_YESNO) = IDYES) then + begin + inherited; + if not FController.Eliminar(FEjercicio) then + actRefrescar.Execute; + end; +end; + +end. + diff --git a/Source/Modulos/Contabilidad ejercicios/Views/uEditorEjercicios.dfm b/Source/Modulos/Contabilidad ejercicios/Views/uEditorEjercicios.dfm new file mode 100644 index 00000000..af137869 --- /dev/null +++ b/Source/Modulos/Contabilidad ejercicios/Views/uEditorEjercicios.dfm @@ -0,0 +1,1496 @@ +inherited fEditorEjercicios: TfEditorEjercicios + Left = 489 + Top = 325 + Caption = 'Lista de ejercicios' + ExplicitHeight = 471 + PixelsPerInch = 96 + TextHeight = 13 + inherited JvNavPanelHeader: TJvNavPanelHeader + Caption = 'Lista de ejercicios' + inherited Image1: TImage + Picture.Data = { + 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001800 + 0000180806000000E0773DF80000000970485973000017120000171201679FD2 + 520000000467414D410000B18E7CFB5193000001D44944415478DAB5D4BD4B02 + 7118C0F1E737D552D0105843616F838519166551345443A32D2E0DD15863FF41 + 6B2141353544144A2004114144431695841445D00BE950E7905618742F2257CF + D9D9EFCE3BEF4EF001797E9CFAFD1C8A125114A19C43648010A2F98205AF5D7C + 611296C3FE33961802189F5909C13B1383EFF427B05FB94738B40976BB0DC6E7 + 56FEAE7D289EF7EF3E422010280E941ADF589E8754A3AF3820C7F10DA9D798A5 + 785D8D0D6EAB87F5013A8E81D46BDC521C471750C731F0CEC44DC55B1B9A41E0 + 0510848C36B038D15410C7F3C1FAB261BCABC3998BF31969472B070A81D97E52 + D20F62D0E381CCEF5DF3129043CE494F21B03445C4B1D169C360369B95223C27 + C0D17E181CCE36E963A19163C1551A40C731747274019DDDED529C460EBF1CD6 + 01751CCF91D328F40DBA81653905B2976CB10668C5715F5DDEC2D088473AD3C8 + 0ED3681ED08BE3BEBBB997001C1AD98ED79B038AC5F14E9FEE9FF3008D6C3DD4 + 1A03EA38FBCDE501FE6F332F090520236BD755C5013A22A8367D3DF9962C0056 + 2315100C06FFFF21D480D938EE743AAD00E4389E3581E1A149D371FC0E388ECD + 03745C17F0F4FA4CC77164401DD705DC2EAFE9B80CE03FA73AAE0B9C733EB03A + 5A714DA05C5376E00756B52DFEBD3C9AE50000000049454E44AE426082} + end + end + inherited TBXDock: TTBXDock + inherited tbxMain: TTBXToolbar + ExplicitWidth = 474 + end + inherited tbxFiltro: TTBXToolbar + ExplicitWidth = 269 + inherited tbxEditFiltro: TTBXEditItem + EditOptions = [tboUseEditWhenVertical] + end + inherited TBXItem37: TTBXItem + Visible = False + end + end + inherited TBXTMain2: TTBXToolbar + Left = 275 + DockPos = 275 + ExplicitLeft = 275 + end + end + inline frViewEjercicios1: TfrViewEjercicios [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 + ExplicitLeft = -11 + ExplicitTop = -150 + inherited cxGrid: TcxGrid + Width = 543 + Height = 195 + inherited cxGridView: TcxGridDBTableView + DataController.Summary.FooterSummaryItems = < + item + Format = '0 ejercicios' + Kind = skCount + Column = frViewEjercicios1.cxGridViewNOMBRE + end> + inherited cxGridViewID: TcxGridDBColumn + IsCaptionAssigned = True + end + end + end + inherited frViewFiltroBase1: TfrViewFiltroBase + Width = 543 + inherited TBXDockablePanel1: TTBXDockablePanel + inherited dxLayoutControl1: TdxLayoutControl + Width = 543 + inherited txtFiltroTodo: TcxTextEdit + ExplicitWidth = 273 + Width = 273 + end + inherited edtFechaIniFiltro: TcxDateEdit + ExplicitWidth = 121 + Width = 121 + end + inherited edtFechaFinFiltro: TcxDateEdit + Left = 337 + ExplicitLeft = 337 + ExplicitWidth = 121 + Width = 121 + end + end + inherited TBXAlignmentPanel1: TTBXAlignmentPanel + Width = 543 + inherited tbxBotones: TTBXToolbar + Width = 533 + end + end + end + end + inherited pnlAgrupaciones: TTBXDockablePanel + Top = 297 + inherited TBXAlignmentPanel1: TTBXAlignmentPanel + Width = 543 + inherited TBXToolbar1: TTBXToolbar + Width = 533 + end + end + end + inherited dxComponentPrinter: TdxComponentPrinter + inherited dxComponentPrinterLink: TdxGridReportLink + ReportDocument.CreationDate = 39413.516400462960000000 + BuiltInReportLink = True + end + end + inherited cxViewGridPopupMenu: TcxGridPopupMenu + PopupMenus = < + item + GridView = frViewEjercicios1.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 + Top = 232 + end +end diff --git a/Source/Modulos/Contabilidad ejercicios/Views/uEditorEjercicios.pas b/Source/Modulos/Contabilidad ejercicios/Views/uEditorEjercicios.pas new file mode 100644 index 0000000000000000000000000000000000000000..338dffe17fc2cd5def0fc3a4f90e973e35294cd8 GIT binary patch literal 4458 zcmb_f%WfMt6wTUz|KTnQSaMw%@zO?6NS18Kh##<=v|R=C3?(xiky8#wwiD!oy6&!B z1ZX~}ztD5%MQSX`F3`Y;h8*(Td(VB&KYxAAwQ`h?V&#k-eUvs*kuurQ_SW{6(oWi` zh$JuaOlI3#L_aAVoBM2!&SjQ~nZ(oNF?;7!f~WVwDxn>ojuVmL#vYwok>06@w~Thy z@UatP=h+^k4V6gD3|o~31Chx+x-lk!9KJF?c9yT4Ek+L>;B0|6snJrq0_JRSAr@*T zoHF`KXh7uemAv=%U}K;@h3kIg^jnp=JsJ-9nRVbhr&h%U=DE~4Zw`eM=O)e*St>W4 z&&qpOdN!VefpT>-I2fAfS13O?VEu1}<>#LZEbNV)oP#PCSHiG0dT_i8AvhN<4$iON zv0f~_&+>1?Z6Yg6nY@1P%tU=+JBR&AWL4^vo?Th9P_cwu>>dv%{wC<_r|ASPhQ1XJ zHm>Ci4A{r|1&%TLRRW*SnOlNZl>_qQJacBw6ak-q3Od+{)yi5ik%^2DKX6^DXNuXu z;c+{;2Qx$jJ*hP!a( z^7f;QT(>xxTD1_aP?6}w+k8mlFoY}A6Hf)tbmL*a@U~eb(wp3uRp{k|%^gZg4#mybh~-6o9q)zsTjn6j7ng z5t)Uw2t)Zq>L^ijrGnUmDsGntOre)k=JDGwmxjR|hAhJSb5)CJkXl6$Dsu1rYA@D1JAyeuTO zg}qbb%!#s@gQ9gPHg$0Yzt0rphT?0P<%wgNL63O344-~$k{3{`Wcho6tc?Nlq&Nn^ zVVt1ZdGOwQX*-^4_Hs?$Mqx{({Y8TM2qV>&^}p!ye9>mJ7Q%A;o|NSr{cKXy^N{}L z9cp}07AQudG_yMWKs)q3p}5qArZ<|WR%W7zOVPWyJRe+-fEXkuEooOtcrndOjUnvE zD+Ylkih?-huq_6MLa8|Osnk5RBHL$MX~%SPF=;9cGML88Gg`M7a0f;F3eYc#vZZ;X zWxhxA(agMh8vK4pLoGPyXDg~h-Qq$#FOl&s#&1i8f)ZR~Z%m!`WYUCYzY)OGR%-^W z%nE~#yTh?aMQotR=cTACGz;-iy*wSgT7_2T6X6?$ah|57$6}5#abjRglIk$p?zNmE z5iptcMh`N|U0Iw z_{#`4<_b+$Rs%8R8j!`OqanednM7}nMd_oe*@up;2@D+@w0=1D8DG_Iih?0=MS5(Q r8ylasDXcp+Cr|s+?KKZ$B`6=mhhgj6uDhbXz%jMD`0eq0^6J&UWMRoa literal 0 HcmV?d00001 diff --git a/Source/Modulos/Contabilidad ejercicios/Views/uEjerciciosViewRegister.pas b/Source/Modulos/Contabilidad ejercicios/Views/uEjerciciosViewRegister.pas new file mode 100644 index 00000000..7b493654 --- /dev/null +++ b/Source/Modulos/Contabilidad ejercicios/Views/uEjerciciosViewRegister.pas @@ -0,0 +1,25 @@ +unit uEjerciciosViewRegister; + +interface + +procedure RegisterViews; +procedure UnregisterViews; + +implementation + +uses + uEditorRegistryUtils, uEditorEjercicio, uEditorEjercicios; + +procedure RegisterViews; +begin + EditorRegistry.RegisterClass(TfEditorEjercicios, 'EditorEjercicios'); + EditorRegistry.RegisterClass(TfEditorEjercicio, 'EditorEjercicio'); +end; + +procedure UnregisterViews; +begin + EditorRegistry.UnRegisterClass(TfEditorEjercicios); + EditorRegistry.UnRegisterClass(TfEditorEjercicio); +end; + +end. diff --git a/Source/Modulos/Contabilidad ejercicios/Views/uViewEjercicio.dfm b/Source/Modulos/Contabilidad ejercicios/Views/uViewEjercicio.dfm new file mode 100644 index 00000000..2bc83dbc --- /dev/null +++ b/Source/Modulos/Contabilidad ejercicios/Views/uViewEjercicio.dfm @@ -0,0 +1,134 @@ +inherited frViewEjercicio: TfrViewEjercicio + Width = 451 + Height = 304 + Align = alClient + AutoSize = True + ExplicitWidth = 451 + ExplicitHeight = 304 + object dxLayoutControlEjercicio: 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 = 86 + 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 edtFechaIni: TcxDBDateEdit + Left = 86 + Top = 55 + Anchors = [akLeft, akTop, akRight] + DataBinding.DataField = 'FECHA_INICIO' + 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 = 158 + end + object edtFechaFin: TcxDBDateEdit + Left = 86 + Top = 82 + Anchors = [akLeft, akTop, akRight] + DataBinding.DataField = 'FECHA_FIN' + 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 = 158 + end + object cbSituacion: TcxDBImageComboBox + Left = 86 + Top = 109 + DataBinding.DataField = 'ESTADO' + DataBinding.DataSource = DADataSource + Properties.Items = < + item + Description = 'ABIERTO' + ImageIndex = 0 + Value = 'ABIERTO' + end + item + Description = 'CERRADO' + Value = 'CERRADO' + end> + TabOrder = 3 + Width = 158 + end + object dxLayoutControlEjercicioGroup_Root: TdxLayoutGroup + ShowCaption = False + Hidden = True + LayoutDirection = ldHorizontal + ShowBorder = False + object dxLayoutControlEjercicioGroup1: TdxLayoutGroup + AutoAligns = [aaVertical] + AlignHorz = ahClient + Caption = 'Datos del ejercicio' + object dxLayoutControlEjercicioItem3: TdxLayoutItem + Caption = 'Descripci'#243'n:' + Control = eNombre + ControlOptions.ShowBorder = False + end + object dxLayoutControlEjercicioItem1: TdxLayoutItem + Caption = 'Fecha inicio:' + Control = edtFechaIni + ControlOptions.ShowBorder = False + end + object dxLayoutControlEjercicioItem2: TdxLayoutItem + Caption = 'Fecha fin:' + Control = edtFechaFin + ControlOptions.ShowBorder = False + end + object dxLayoutControlEjercicioItem5: TdxLayoutItem + Caption = 'Situaci'#243'n:' + Control = cbSituacion + ControlOptions.ShowBorder = False + end + end + end + end + object DADataSource: TDADataSource + Left = 24 + Top = 144 + end +end diff --git a/Source/Modulos/Contabilidad ejercicios/Views/uViewEjercicio.pas b/Source/Modulos/Contabilidad ejercicios/Views/uViewEjercicio.pas new file mode 100644 index 00000000..a76361d8 --- /dev/null +++ b/Source/Modulos/Contabilidad ejercicios/Views/uViewEjercicio.pas @@ -0,0 +1,69 @@ +unit uViewEjercicio; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uViewBase, ExtCtrls, StdCtrls, Buttons, DB, uDADataTable, + DBCtrls, Grids, DBGrids, uBizEjercicios, Mask, ComCtrls, uCustomView, + JvComponent, JvFormAutoSize, cxControls, cxContainer, cxEdit, cxTextEdit, + cxDBEdit, dxLayoutControl, uDAInterfaces, cxGraphics, cxDropDownEdit, + cxImageComboBox, cxMaskEdit, cxCalendar; + +type + IViewEjercicio = interface(IViewBase) + ['{F44F8AEF-CB9C-44D5-93DA-53D6AB6A2D29}'] + function GetEjercicio: IBizEjercicio; + procedure SetEjercicio(const Value: IBizEjercicio); + property Ejercicio: IBizEjercicio read GetEjercicio write SetEjercicio; + end; + + TfrViewEjercicio = class(TfrViewBase, IViewEjercicio) + DADataSource: TDADataSource; + dxLayoutControlEjercicioGroup_Root: TdxLayoutGroup; + dxLayoutControlEjercicio: TdxLayoutControl; + dxLayoutControlEjercicioGroup1: TdxLayoutGroup; + dxLayoutControlEjercicioItem3: TdxLayoutItem; + eNombre: TcxDBTextEdit; + dxLayoutControlEjercicioItem1: TdxLayoutItem; + edtFechaIni: TcxDBDateEdit; + dxLayoutControlEjercicioItem2: TdxLayoutItem; + edtFechaFin: TcxDBDateEdit; + dxLayoutControlEjercicioItem5: TdxLayoutItem; + cbSituacion: TcxDBImageComboBox; + protected + FEjercicio: IBizEjercicio; + function GetEjercicio: IBizEjercicio; + procedure SetEjercicio(const Value: IBizEjercicio); + public + property Ejercicio: IBizEjercicio read GetEjercicio write SetEjercicio; + end; + +implementation + +uses uDataModuleEjercicios; + +{$R *.dfm} + +{ TfrViewEjercicios } + +{ +******************************* TfrViewEjercicios ******************************** +} + +function TfrViewEjercicio.GetEjercicio: IBizEjercicio; +begin + Result := FEjercicio; +end; + +procedure TfrViewEjercicio.SetEjercicio(const Value: IBizEjercicio); +begin + FEjercicio := Value; + if Assigned(FEjercicio) then + DADataSource.DataTable := FEjercicio.DataTable + else + DADataSource.DataTable := NIL; +end; + +end. + diff --git a/Source/Modulos/Contabilidad ejercicios/Views/uViewEjercicios.dfm b/Source/Modulos/Contabilidad ejercicios/Views/uViewEjercicios.dfm new file mode 100644 index 00000000..82a6274d --- /dev/null +++ b/Source/Modulos/Contabilidad ejercicios/Views/uViewEjercicios.dfm @@ -0,0 +1,118 @@ +inherited frViewEjercicios: TfrViewEjercicios + inherited cxGrid: TcxGrid + inherited cxGridView: TcxGridDBTableView + DataController.KeyFieldNames = 'ID' + DataController.Summary.FooterSummaryItems = < + item + Format = '0 ejercicios' + 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 cxGridViewESTADO: TcxGridDBColumn + DataBinding.FieldName = 'ESTADO' + PropertiesClassName = 'TcxImageComboBoxProperties' + Properties.Items = < + item + Description = 'ABIERTO' + ImageIndex = 0 + Value = 'ABIERTO' + end + item + Description = 'CERRADO' + Value = 'CERRADO' + end> + Visible = False + end + object cxGridViewFECHA_INICIO: TcxGridDBColumn + DataBinding.FieldName = 'FECHA_INICIO' + PropertiesClassName = 'TcxDateEditProperties' + Width = 118 + end + object cxGridViewFECHA_FIN: TcxGridDBColumn + DataBinding.FieldName = 'FECHA_FIN' + PropertiesClassName = 'TcxDateEditProperties' + BestFitMaxWidth = 64 + Width = 118 + end + end + end + inherited frViewFiltroBase1: TfrViewFiltroBase + inherited TBXDockablePanel1: TTBXDockablePanel + inherited dxLayoutControl1: TdxLayoutControl + inherited txtFiltroTodo: TcxTextEdit + ExplicitWidth = 273 + Width = 273 + end + inherited edtFechaIniFiltro: TcxDateEdit + ExplicitWidth = 121 + Width = 121 + end + inherited edtFechaFinFiltro: TcxDateEdit + ExplicitWidth = 121 + Width = 121 + end + end + end + end + inherited pnlAgrupaciones: TTBXDockablePanel + ExplicitWidth = 554 + 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/Contabilidad ejercicios/Views/uViewEjercicios.pas b/Source/Modulos/Contabilidad ejercicios/Views/uViewEjercicios.pas new file mode 100644 index 00000000..962597a3 --- /dev/null +++ b/Source/Modulos/Contabilidad ejercicios/Views/uViewEjercicios.pas @@ -0,0 +1,83 @@ +unit uViewEjercicios; + +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, uBizEjercicios, 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, uDAInterfaces, cxCalendar, + cxImageComboBox; + +type + IViewEjercicios = interface(IViewGrid) + ['{E6798DF7-011C-40EC-B368-160C48697445}'] + function GetEjercicios: IBizEjercicio; + procedure SetEjercicios(const Value: IBizEjercicio); + property Ejercicios: IBizEjercicio read GetEjercicios write SetEjercicios; + end; + + TfrViewEjercicios = class(TfrViewGrid, IViewEjercicios) + cxGridViewFECHA_INICIO: TcxGridDBColumn; + cxGridViewNOMBRE: TcxGridDBColumn; + cxGridViewFECHA_FIN: TcxGridDBColumn; + cxGridViewID: TcxGridDBColumn; + PngImageList: TPngImageList; + cxGridViewESTADO: TcxGridDBColumn; + procedure cxGridViewIDCustomDrawCell( + Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; + AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); + protected + FEjercicios: IBizEjercicio; + function GetEjercicios: IBizEjercicio; virtual; + procedure SetEjercicios(const Value: IBizEjercicio); virtual; + public + property Ejercicios: IBizEjercicio read GetEjercicios write SetEjercicios; + end; + +implementation + +uses uDataModuleEjercicios; + + +{$R *.dfm} + +{ TfrViewEjercicios } + +{ +******************************* TfrViewEjercicios ******************************* +} +function TfrViewEjercicios.GetEjercicios: IBizEjercicio; +begin + Result := FEjercicios; +end; + +procedure TfrViewEjercicios.SetEjercicios(const Value: IBizEjercicio); +begin + FEjercicios := Value; + if Assigned(FEjercicios) then + dsDataSource.DataTable := FEjercicios.DataTable; +end; + + +procedure TfrViewEjercicios.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/Contabilidad epigrafes/Controller/Epigrafes_controller.dpk b/Source/Modulos/Contabilidad epigrafes/Controller/Epigrafes_controller.dpk new file mode 100644 index 00000000..4b0fde5b --- /dev/null +++ b/Source/Modulos/Contabilidad epigrafes/Controller/Epigrafes_controller.dpk @@ -0,0 +1,42 @@ +package Epigrafes_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 ON} +{$DEFINE DEBUG} + +requires + rtl, + vcl, + Base, + GUIBase, + ApplicationBase, + Epigrafes_model, + Epigrafes_data; + +contains + uEpigrafesController in 'uEpigrafesController.pas', + uIEditorEpigrafe in 'View\uIEditorEpigrafe.pas', + uIEditorEpigrafes in 'View\uIEditorEpigrafes.pas'; + +end. diff --git a/Source/Modulos/Contabilidad epigrafes/Controller/Epigrafes_controller.dproj b/Source/Modulos/Contabilidad epigrafes/Controller/Epigrafes_controller.dproj new file mode 100644 index 00000000..a8d63e4f --- /dev/null +++ b/Source/Modulos/Contabilidad epigrafes/Controller/Epigrafes_controller.dproj @@ -0,0 +1,545 @@ + + + + {7f80f8aa-6912-4714-986d-aed73035472b} + Epigrafes_controller.dpk + Debug + AnyCPU + DCC32 + ..\..\..\..\Output\Debug\Cliente\Epigrafes_controller.bpl + + + 7.0 + False + False + 0 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + RELEASE + + + 7.0 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + DEBUG + + + Delphi.Personality + Package + +FalseTrueFalseTrueFalseFalseTrueFalse1000FalseFalseFalseFalseFalse308212521.0.0.01.0.0.0Epigrafes_controller.dpk + + + + + MainSource + + + + + + + + + + + + + + diff --git a/Source/Modulos/Contabilidad epigrafes/Controller/Epigrafes_controller.identcache b/Source/Modulos/Contabilidad epigrafes/Controller/Epigrafes_controller.identcache new file mode 100644 index 0000000000000000000000000000000000000000..f18ac528fa3912a72df0d4720dc28f18bd7043e0 GIT binary patch literal 313 zcmZQ(U|@)Lwu*7iPsvQrS8z;D%u9?3&Mz%WPL1)+PbtmGF9yoxl_Vx*=47TMrYNKq zWTqD-rlmrJi}G`FQj223GE>WANzY0000KX?6er literal 0 HcmV?d00001 diff --git a/Source/Modulos/Contabilidad epigrafes/Controller/Epigrafes_controller.rc b/Source/Modulos/Contabilidad epigrafes/Controller/Epigrafes_controller.rc new file mode 100644 index 00000000..153736af --- /dev/null +++ b/Source/Modulos/Contabilidad epigrafes/Controller/Epigrafes_controller.rc @@ -0,0 +1,22 @@ +1 VERSIONINFO +FILEVERSION 1,0,0,0 +PRODUCTVERSION 1,0,0,0 +FILEFLAGSMASK 0x3FL +FILEFLAGS 0x00L +FILEOS 0x40004L +FILETYPE 0x1L +FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "0C0A04E4" + BEGIN + VALUE "FileVersion", "1.0.0.0\0" + VALUE "ProductVersion", "1.0.0.0\0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x0C0A, 1252 + END +END diff --git a/Source/Modulos/Contabilidad epigrafes/Controller/Epigrafes_controller.res b/Source/Modulos/Contabilidad epigrafes/Controller/Epigrafes_controller.res new file mode 100644 index 0000000000000000000000000000000000000000..8b251f312bcccec5485024f6fe8d80e1cdf25746 GIT binary patch literal 384 zcmZ9HOA3Ne6ox;+L5PEv(4cV`IIrjdPAV##hV&wc1g%+%X(R2Xc{`~7t6e0Ioa?#% zkMj%AQhz>WYy7LeWAUaqx~Kv?-;(-Hs4-^ATIZOBrid9+-6Ne7&88mi>kUR4lo#jxZ;#*s4zxg9yNlk=H9sqkCD2^cEXKpiTBNfgkKpXJBWWaLt(Qkv@0 w5yv*t82((Wlr2{_+FDoDHKW2QCXvc+s**ul{{$ + + + {c8118762-09b6-432f-ba26-058fa36c39d9} + Epigrafes_data.dpk + Debug + AnyCPU + DCC32 + ..\..\..\..\Output\Debug\Cliente\Epigrafes_data.bpl + + + 7.0 + False + False + 0 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + RELEASE + + + 7.0 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + DEBUG + + + Delphi.Personality + Package + +FalseTrueFalseTrueFalseFalseTrueFalse1000FalseFalseFalseFalseFalse308212521.0.0.01.0.0.0Epigrafes_data.dpk + + + + + MainSource + + + + + + + + + + + + +
    DataModuleEpigrafes
    +
    +
    +
    + diff --git a/Source/Modulos/Contabilidad epigrafes/Data/Epigrafes_data.identcache b/Source/Modulos/Contabilidad epigrafes/Data/Epigrafes_data.identcache new file mode 100644 index 0000000000000000000000000000000000000000..5120fcdab065455d4fd61d9c7ea5414f7dae4ef2 GIT binary patch literal 100 zcmZQ%U|WYy7LeWAUaqx~Kv?-;(-Hs4-^ATIZOBrid9+-6Ne7&88mi>kUR4lo#jxZ;#*s4zxg9yNlk=H9sqkCD2^cEXKpiTBNfgkKpXJBWWaLt(Qkv@0 w5yv*t82((Wlr2{_+FDoDHKW2QCXvc+s**ul{{$ + Params = <> + StreamingOptions = [soDisableEventsWhileStreaming] + RemoteDataAdapter = rda_Epigrafes + DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch] + MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates] + LogicalName = 'Epigrafes' + IndexDefs = <> + Left = 264 + Top = 96 + end + object ds_Epigrafes: TDADataSource + DataSet = tbl_Epigrafes.Dataset + DataTable = tbl_Epigrafes + Left = 264 + Top = 32 + end +end diff --git a/Source/Modulos/Contabilidad epigrafes/Data/uDataModuleEpigrafes.pas b/Source/Modulos/Contabilidad epigrafes/Data/uDataModuleEpigrafes.pas new file mode 100644 index 00000000..d07b0593 --- /dev/null +++ b/Source/Modulos/Contabilidad epigrafes/Data/uDataModuleEpigrafes.pas @@ -0,0 +1,54 @@ +unit uDataModuleEpigrafes; + +interface + +uses + SysUtils, Classes, DB, uDADataTable, uDABINAdapter, + uDAScriptingProvider, uDACDSDataTable, uROWinInetHttpChannel, uROTypes, + uRORemoteService, uROClient, uROBinMessage, + uDADesigntimeCall, uControllerBase, + uBizEpigrafes, uDARemoteDataAdapter, uDADataStreamer, uDAInterfaces, uRODynamicRequest, + uDABin2DataStreamer, uDAMemDataTable, uIDataModuleEpigrafes, uDataModuleBase; +type + TDataModuleEpigrafes = class(TDataModuleBase, IDataModuleEpigrafes) + RORemoteService: TRORemoteService; + Bin2DataStreamer: TDABin2DataStreamer; + rda_Epigrafes: TDARemoteDataAdapter; + tbl_Epigrafes: TDAMemDataTable; + ds_Epigrafes: TDADataSource; + procedure DAClientDataModuleCreate(Sender: TObject); + public + function GetItems: IBizEpigrafe; + end; + +implementation + +{$R *.DFM} + +uses + FactuGES_Intf, uDataModuleConexion, uDataTableUtils, cxControls, + schEpigrafesClient_Intf; + +{ TdmAlmacens } + +procedure TDataModuleEpigrafes.DAClientDataModuleCreate(Sender: TObject); +begin + RORemoteService.Channel := dmConexion.Channel; + RORemoteService.Message := dmConexion.Message; +end; + +function TDataModuleEpigrafes.GetItems: IBizEpigrafe; +var + AContabilidadEpigrafe : TDAMemDataTable; +begin + ShowHourglassCursor; + try + AContabilidadEpigrafe := CloneDataTable(tbl_Epigrafes); + AContabilidadEpigrafe.BusinessRulesID := BIZ_CLIENT_Epigrafe; + Result := (AContabilidadEpigrafe as IBizEpigrafe); + finally + HideHourglassCursor; + end; +end; + +end. diff --git a/Source/Modulos/Contabilidad epigrafes/Epigrafes_Group.groupproj b/Source/Modulos/Contabilidad epigrafes/Epigrafes_Group.groupproj new file mode 100644 index 00000000..5ea20ab1 --- /dev/null +++ b/Source/Modulos/Contabilidad epigrafes/Epigrafes_Group.groupproj @@ -0,0 +1,124 @@ + + + {3df776bd-a3f8-4f3a-9129-45fdb4a2ee63} + + + + + + + + + + + + + + + + Default.Personality + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Source/Modulos/Contabilidad epigrafes/Model/Data/uIDataModuleEpigrafes.pas b/Source/Modulos/Contabilidad epigrafes/Model/Data/uIDataModuleEpigrafes.pas new file mode 100644 index 00000000..5b19e2fa --- /dev/null +++ b/Source/Modulos/Contabilidad epigrafes/Model/Data/uIDataModuleEpigrafes.pas @@ -0,0 +1,16 @@ +unit uIDataModuleEpigrafes; + +interface + +uses + uBizEpigrafes; + +type + IDataModuleEpigrafes = interface(IInterface) + ['{CC6A63E1-2AF2-40E5-B6DC-46CC1549AA56}'] + function GetItems: IBizEpigrafe; + end; + +implementation + +end. diff --git a/Source/Modulos/Contabilidad epigrafes/Model/Epigrafes_model.dpk b/Source/Modulos/Contabilidad epigrafes/Model/Epigrafes_model.dpk new file mode 100644 index 00000000..817a9aa7 --- /dev/null +++ b/Source/Modulos/Contabilidad epigrafes/Model/Epigrafes_model.dpk @@ -0,0 +1,46 @@ +package Epigrafes_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 ON} + +requires + rtl, + vcl, + Base, + GUIBase, + ApplicationBase, + dbrtl, + RemObjects_Core_D11, + DataAbstract_Core_D11, + vcldb, + dsnap, + adortl; + +contains + uBizEpigrafes in 'uBizEpigrafes.pas', + uIDataModuleEpigrafes in 'Data\uIDataModuleEpigrafes.pas', + schEpigrafesClient_Intf in 'schEpigrafesClient_Intf.pas', + schEpigrafesServer_Intf in 'schEpigrafesServer_Intf.pas'; + +end. diff --git a/Source/Modulos/Contabilidad epigrafes/Model/Epigrafes_model.dproj b/Source/Modulos/Contabilidad epigrafes/Model/Epigrafes_model.dproj new file mode 100644 index 00000000..379862ae --- /dev/null +++ b/Source/Modulos/Contabilidad epigrafes/Model/Epigrafes_model.dproj @@ -0,0 +1,549 @@ + + + + {73acd39c-b2f0-49b7-9acf-10945bbac8c1} + Epigrafes_model.dpk + Debug + AnyCPU + DCC32 + ..\..\..\..\Output\Debug\Cliente\Epigrafes_model.bpl + + + 7.0 + False + False + 0 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + RELEASE + + + 7.0 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + + + Delphi.Personality + Package + +FalseTrueFalseTrueFalseFalseTrueFalse1000FalseFalseFalseFalseFalse308212521.0.0.01.0.0.0Epigrafes_model.dpk + + + + + MainSource + + + + + + + + + + + + + + + + + + + diff --git a/Source/Modulos/Contabilidad epigrafes/Model/Epigrafes_model.identcache b/Source/Modulos/Contabilidad epigrafes/Model/Epigrafes_model.identcache new file mode 100644 index 0000000000000000000000000000000000000000..c0cb3c09de016019ebdb5a541ae32bcb5f6d2d94 GIT binary patch literal 397 zcmZQ!U|WYy7LeWAUaqx~Kv?-;(-Hs4-^ATIZOBrid9+-6Ne7&88mi>kUR4lo#jxZ;#*s4zxg9yNlk=H9sqkCD2^cEXKpiTBNfgkKpXJBWWaLt(Qkv@0 w5yv*t82((Wlr2{_+FDoDHKW2QCXvc+s**ul{{$ + + + {82e36812-58c4-491b-b463-6b951e95da51} + Epigrafes_plugin.dpk + Debug + AnyCPU + DCC32 + ..\..\..\..\Output\Debug\Cliente\Epigrafes_plugin.bpl + + + 7.0 + False + False + 0 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + RELEASE + + + 7.0 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + DEBUG + + + Delphi.Personality + Package + +FalseTrueFalseTrueFalseFalseTrueFalse1000FalseFalseFalseFalseFalse308212521.0.0.01.0.0.0Epigrafes_plugin.dpk + + + + + MainSource + + + + + + + + + + + + + + + + + + diff --git a/Source/Modulos/Contabilidad epigrafes/Plugin/Epigrafes_plugin.identcache b/Source/Modulos/Contabilidad epigrafes/Plugin/Epigrafes_plugin.identcache new file mode 100644 index 0000000000000000000000000000000000000000..e38090ebc0781913f1e7da6eedfc661185a35571 GIT binary patch literal 98 zcmZQ%U|WYy7LeWAUaqx~Kv?-;(-Hs4-^ATIZOBrid9+-6Ne7&88mi>kUR4lo#jxZ;#*s4zxg9yNlk=H9sqkCD2^cEXKpiTBNfgkKpXJBWWaLt(Qkv@0 w5yv*t82((Wlr2{_+FDoDHKW2QCXvc+s**ul{{$ + Left = 232 + Top = 16 + end + object ModuleActionList: TActionList + Images = SmallImages + Left = 40 + Top = 72 + object actEpigrafes: TAction + Category = 'Epigrafes' + Caption = 'Epigrafes' + ImageIndex = 0 + OnExecute = actEpigrafesExecute + end + end + object MainMenu: TMainMenu + Images = LargeImages + Left = 40 + Top = 16 + object Ventas1: TMenuItem + Caption = 'Contabilidad' + object N1: TMenuItem + Tag = 18990 + Caption = '-' + end + object Epigrafes1: TMenuItem + Tag = 19002 + Action = actEpigrafes + 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/Contabilidad epigrafes/Plugin/uPluginEpigrafes.pas b/Source/Modulos/Contabilidad epigrafes/Plugin/uPluginEpigrafes.pas new file mode 100644 index 00000000..f26d965b --- /dev/null +++ b/Source/Modulos/Contabilidad epigrafes/Plugin/uPluginEpigrafes.pas @@ -0,0 +1,74 @@ +unit uPluginEpigrafes; + +interface + +uses + uModuleController, uInterfaces, uHostManager, Menus, Classes, ActnList, + ImgList, Controls, PngImageList; + +type + IMCEpigrafes = interface(IInterface) + ['{255E8D6B-282A-48CC-9807-E49C7D31FD2D}'] + end; + + TPluginEpigrafes = class(TModuleController, IMCEpigrafes) + actEpigrafes: TAction; + ExtraImages: TPngImageList; + LargeImages: TPngImageList; + MainMenu: TMainMenu; + ModuleActionList: TActionList; + SmallImages: TPngImageList; + Ventas1: TMenuItem; + Epigrafes1: TMenuItem; + N1: TMenuItem; + procedure actEpigrafesExecute(Sender: TObject); + public + constructor Create(AOwner: TComponent); override; + destructor Destroy; override; + end; + +implementation + +{$R *.dfm} + +uses + Forms, Dialogs, SysUtils, + uEpigrafesController, uBizEpigrafes, uEpigrafesViewRegister; + +function GetModule : TModuleController; +begin + Result := TPluginEpigrafes.Create(NIL); +end; + +exports + GetModule name GET_MODULE_FUNC; + +procedure TPluginEpigrafes.actEpigrafesExecute(Sender: TObject); +var + AEpigrafesController : IEpigrafesController; + AEpigrafes : IBizEpigrafe; +begin + AEpigrafesController := TEpigrafesController.Create; + AEpigrafes := (AEpigrafesController.BuscarTodos as IBizEpigrafe); + AEpigrafesController.VerTodos(AEpigrafes); +end; + +constructor TPluginEpigrafes.Create(AOwner: TComponent); +begin + inherited; + uEpigrafesViewRegister.RegisterViews; +end; + +destructor TPluginEpigrafes.Destroy; +begin + uEpigrafesViewRegister.UnregisterViews; + inherited; +end; + +initialization + RegisterModuleClass(TPluginEpigrafes); + +finalization + UnRegisterModuleClass(TPluginEpigrafes); + +end. diff --git a/Source/Modulos/Contabilidad epigrafes/Servidor/srvEpigrafes_Impl.dfm b/Source/Modulos/Contabilidad epigrafes/Servidor/srvEpigrafes_Impl.dfm new file mode 100644 index 00000000..d22219c6 --- /dev/null +++ b/Source/Modulos/Contabilidad epigrafes/Servidor/srvEpigrafes_Impl.dfm @@ -0,0 +1,130 @@ +object srvEpigrafes: TsrvEpigrafes + OldCreateOrder = True + OnCreate = DARemoteServiceCreate + SessionManager = dmServer.SessionManager + ServiceSchema = schEpigrafes + ServiceDataStreamer = Bin2DataStreamer + ExportedDataTables = <> + BeforeAcquireConnection = DataAbstractServiceBeforeAcquireConnection + Height = 181 + Width = 282 + object Diagrams: TDADiagrams + Left = 150 + Top = 90 + DiagramData = + ''#13#10' '#13#10' '#13#10' '#13#10''#13#10 + end + object DataDictionary: TDADataDictionary + Fields = < + item + Name = 'Ejercicios_ID' + DataType = datAutoInc + GeneratorName = 'GEN_CONT_EPIGRAFES_ID' + Required = True + DisplayLabel = 'ID' + ServerAutoRefresh = True + end + item + Name = 'Epigrafes_REF_EPIGRAFE' + DataType = datString + Size = 6 + end + item + Name = 'Epigrafes_ID_PADRE' + DataType = datInteger + end + item + Name = 'Epigrafes_DESCRIPCION' + DataType = datString + Size = 255 + end + item + Name = 'Epigrafes_ID_EJERCICIO' + DataType = datInteger + end> + Left = 150 + Top = 24 + end + object schEpigrafes: TDASchema + ConnectionManager = dmServer.ConnectionManager + DataDictionary = DataDictionary + Diagrams = Diagrams + Datasets = < + item + Params = <> + Statements = < + item + Connection = 'IBX' + TargetTable = 'CONT_EPIGRAFES' + StatementType = stAutoSQL + ColumnMappings = < + item + DatasetField = 'ID' + TableField = 'ID' + end + item + DatasetField = 'REF_EPIGRAFE' + TableField = 'REF_EPIGRAFE' + end + item + DatasetField = 'ID_PADRE' + TableField = 'ID_PADRE' + end + item + DatasetField = 'DESCRIPCION' + TableField = 'DESCRIPCION' + end + item + DatasetField = 'ID_EJERCICIO' + TableField = 'ID_EJERCICIO' + end> + end> + Name = 'Epigrafes' + Fields = < + item + Name = 'ID' + DataType = datAutoInc + GeneratorName = 'GEN_CONT_EPIGRAFES_ID' + ServerAutoRefresh = True + DictionaryEntry = 'Ejercicios_ID' + InPrimaryKey = True + end + item + Name = 'REF_EPIGRAFE' + DataType = datString + Size = 6 + DictionaryEntry = 'Epigrafes_REF_EPIGRAFE' + end + item + Name = 'ID_PADRE' + DataType = datInteger + DictionaryEntry = 'Epigrafes_ID_PADRE' + end + item + Name = 'DESCRIPCION' + DataType = datString + Size = 255 + DictionaryEntry = 'Epigrafes_DESCRIPCION' + end + item + Name = 'ID_EJERCICIO' + DataType = datInteger + DictionaryEntry = 'Epigrafes_ID_EJERCICIO' + end> + end> + JoinDataTables = <> + UnionDataTables = <> + Commands = <> + RelationShips = <> + UpdateRules = <> + Version = 0 + Left = 48 + Top = 24 + end + object Bin2DataStreamer: TDABin2DataStreamer + Left = 48 + Top = 88 + end +end diff --git a/Source/Modulos/Contabilidad epigrafes/Servidor/srvEpigrafes_Impl.pas b/Source/Modulos/Contabilidad epigrafes/Servidor/srvEpigrafes_Impl.pas new file mode 100644 index 00000000..f31360d2 --- /dev/null +++ b/Source/Modulos/Contabilidad epigrafes/Servidor/srvEpigrafes_Impl.pas @@ -0,0 +1,64 @@ +unit srvEpigrafes_Impl; + +{----------------------------------------------------------------------------} +{ This unit was automatically generated by the RemObjects SDK after reading } +{ the RODL file associated with this project . } +{ } +{ This is where you are supposed to code the implementation of your objects. } +{----------------------------------------------------------------------------} + +interface + +uses + {vcl:} Classes, SysUtils, + {RemObjects:} uROClientIntf, uROTypes, uROServer, uROServerIntf, uROSessions, + {Ancestor Implementation:} DataAbstractService_Impl, + {Used RODLs:} DataAbstract4_Intf, + {Generated:} FactuGES_Intf, uDADataTable, uDABINAdapter, uDAClasses, + uDAScriptingProvider, uDABusinessProcessor, uDADataStreamer, + uDABin2DataStreamer; + +type + { TsrvEpigrafes } + TsrvEpigrafes = class(TDataAbstractService, IsrvEpigrafes) + Diagrams: TDADiagrams; + Bin2DataStreamer: TDABin2DataStreamer; + schEpigrafes: TDASchema; + DataDictionary: TDADataDictionary; + procedure DARemoteServiceCreate(Sender: TObject); + procedure DataAbstractServiceBeforeAcquireConnection(aSender: TObject; + var aConnectionName: string); + private + protected + end; + +implementation + +{$R *.dfm} +uses + {Generated:} FactuGES_Invk, uDataModuleServer, + uDatabaseUtils; + +procedure Create_srvEpigrafes(out anInstance : IUnknown); +begin + anInstance := TsrvEpigrafes.Create(NIL); +end; + +{ srvEpigrafes } +procedure TsrvEpigrafes.DARemoteServiceCreate(Sender: TObject); +begin + SessionManager := dmServer.SessionManager; +end; + +procedure TsrvEpigrafes.DataAbstractServiceBeforeAcquireConnection( + aSender: TObject; var aConnectionName: string); +begin + ConnectionName := dmServer.ConnectionName; +end; + +initialization + TROClassFactory.Create('srvEpigrafes', Create_srvEpigrafes, TsrvEpigrafes_Invoker); + +finalization + +end. diff --git a/Source/Modulos/Contabilidad epigrafes/Views/Epigrafes_view.dpk b/Source/Modulos/Contabilidad epigrafes/Views/Epigrafes_view.dpk new file mode 100644 index 00000000..89a72b2e --- /dev/null +++ b/Source/Modulos/Contabilidad epigrafes/Views/Epigrafes_view.dpk @@ -0,0 +1,89 @@ +package Epigrafes_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 ON} +{$DEFINE DEBUG} + +requires + rtl, + vcl, + Base, + GUIBase, + ApplicationBase, + JvCmpD11R, + Ejercicios_controller, + dbrtl, + DataAbstract_Core_D11, + vcldb, + dsnap, + adortl, + RemObjects_Core_D11, + cxLibraryD10, + dxThemeD10, + cxEditorsD10, + cxDataD10, + vcljpg, + cxGridD10, + cxPageControlD10, + cxExtEditorsD10, + vclx, + cxExportD10, + dxPSCoreD10, + dxComnD10, + dxPScxCommonD10, + dxPSLnksD10, + designide, + xmlrtl, + vclactnband, + vclshlctrls, + dxPScxGridLnkD10, + dclcxLibraryD10, + PngComponentsD10, + PNG_D10, + tb2k_d10, + tbx_d10, + JvCoreD11R, + Jcl, + JclVcl, + JvAppFrmD11R, + JvCtrlsD11R, + JvSystemD11R, + JvStdCtrlsD11R, + cxIntlPrintSys3D10, + JvPageCompsD11R, + GUISDK_D11, + cfpack_d11, + ccpackD11, + Epigrafes_controller, + Epigrafes_model, + dxLayoutControlD10; + +contains + uEpigrafesViewRegister in 'uEpigrafesViewRegister.pas', + uViewEpigrafes in 'uViewEpigrafes.pas' {frViewEpigrafes: TFrame}, + uEditorEpigrafes in 'uEditorEpigrafes.pas' {fEditorEpigrafes: TfEditorEjercicios}, + uViewEpigrafe in 'uViewEpigrafe.pas' {frViewEpigrafe: TFrame}, + uEditorEpigrafe in 'uEditorEpigrafe.pas' {fEditorEpigrafe: TfEditorEpigrafe}; + +end. diff --git a/Source/Modulos/Contabilidad epigrafes/Views/Epigrafes_view.dproj b/Source/Modulos/Contabilidad epigrafes/Views/Epigrafes_view.dproj new file mode 100644 index 00000000..431ee5ab --- /dev/null +++ b/Source/Modulos/Contabilidad epigrafes/Views/Epigrafes_view.dproj @@ -0,0 +1,604 @@ + + + + {e3d36a6f-7004-4c89-9f3d-f2d77e386d1b} + Epigrafes_view.dpk + Debug + AnyCPU + DCC32 + ..\..\..\..\Output\Debug\Cliente\Epigrafes_view.bpl + + + 7.0 + False + False + 0 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + RELEASE + + + 7.0 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + DEBUG + + + Delphi.Personality + Package + +FalseTrueFalseTrueFalseFalseTrueFalse1000FalseFalseFalseFalseFalse308212521.0.0.01.0.0.0Epigrafes_view.dpk + + + + + MainSource + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    fEditorEpigrafe
    + TfEditorEjercicios +
    + +
    fEditorEpigrafes
    + TfEditorEjercicios +
    + + +
    frViewEpigrafe
    + TFrame +
    + +
    frViewEpigrafes
    + TFrame +
    + + + + + + + +
    +
    + diff --git a/Source/Modulos/Contabilidad epigrafes/Views/Epigrafes_view.identcache b/Source/Modulos/Contabilidad epigrafes/Views/Epigrafes_view.identcache new file mode 100644 index 0000000000000000000000000000000000000000..7a9f59df2e55dc7ba535fb2538b9503d51756df2 GIT binary patch literal 469 zcmZQ&U|{ffwu*7iPsvQrS8z;D%u9?3&Mz%WPL1)+PbtmGF9yoxl_Vx*=47TMrYNKq zWTqD-rll6ggk`3d7sr&krev1n7r8=(^$HS;fkwiCA4O(^tbmzZjBa!QMMk4K8^iE0 e$_$4E637EVsp*-;C8WYy7LeWAUaqx~Kv?-;(-Hs4-^ATIZOBrid9+-6Ne7&88mi>kUR4lo#jxZ;#*s4zxg9yNlk=H9sqkCD2^cEXKpiTBNfgkKpXJBWWaLt(Qkv@0 w5yv*t82((Wlr2{_+FDoDHKW2QCXvc+s**ul{{$ + 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/Contabilidad epigrafes/Views/uEditorEpigrafe.pas b/Source/Modulos/Contabilidad epigrafes/Views/uEditorEpigrafe.pas new file mode 100644 index 00000000..f46a35fc --- /dev/null +++ b/Source/Modulos/Contabilidad epigrafes/Views/uEditorEpigrafe.pas @@ -0,0 +1,204 @@ +unit uEditorEpigrafe; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, uEditorDBItem, ToolWin, ComCtrls, JvExControls, JvComponent, + uViewEpigrafe, uBizEpigrafes, 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, + + uViewEpigrafes, uIEditorEpigrafe, uEpigrafesController, JvExComCtrls, + JvStatusBar, dxLayoutLookAndFeels, uDAInterfaces; + +type + TfEditorEpigrafe = class(TfEditorDBItem, IEditorEpigrafe) + dxLayoutLookAndFeelList1: TdxLayoutLookAndFeelList; + dxLayoutOfficeLookAndFeel1: TdxLayoutOfficeLookAndFeel; + procedure FormShow(Sender: TObject); + procedure dsDataTableDataChange(Sender: TObject; Field: TField); + procedure CustomEditorClose(Sender: TObject; var Action: TCloseAction); + protected + FController : IEpigrafesController; + FEpigrafe: IBizEpigrafe; + FViewEpigrafe : IViewEpigrafe; + + function GetController : IEpigrafesController; + procedure SetController (const Value : IEpigrafesController); virtual; + function GetEpigrafe: IBizEpigrafe; virtual; + procedure SetEpigrafe(const Value: IBizEpigrafe); virtual; + function GetViewEpigrafe: IViewEpigrafe; + procedure SetViewEpigrafe(const Value: IViewEpigrafe); + property ViewEpigrafe: IViewEpigrafe read GetViewEpigrafe write SetViewEpigrafe; + + 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 Epigrafe: IBizEpigrafe read GetEpigrafe write SetEpigrafe; + constructor Create(AOwner: TComponent); override; + destructor Destroy; override; + end; + +implementation + +{$R *.dfm} + +uses + uCustomEditor, uDataModuleEpigrafes, uDataModuleBase; + +function ShowEditorEpigrafe (ABizObject : TDADataTableRules): TModalResult; +var + AEditor: TfEditorEpigrafe; +begin + AEditor := TfEditorEpigrafe.Create(Application); + try + AEditor.Epigrafe := (ABizObject as IBizEpigrafe); + Result := AEditor.ShowModal; + finally + AEditor.Release; + end; +end; + +{ +******************************* TfEditorEpigrafe ******************************* +} +function TfEditorEpigrafe.GetEpigrafe: IBizEpigrafe; +begin + Result := FEpigrafe; +end; + +function TfEditorEpigrafe.GetController: IEpigrafesController; +begin + Result := FController; +end; + +function TfEditorEpigrafe.GetViewEpigrafe: IViewEpigrafe; +begin + Result := FViewEpigrafe; +end; + +procedure TfEditorEpigrafe.GuardarInterno; +begin + inherited; + FController.Guardar(FEpigrafe); + Modified := False; +end; + +procedure TfEditorEpigrafe.PonerTitulos(const ATitulo: string); +var + FTitulo : String; +begin + if Assigned(Epigrafe) then + begin + if Epigrafe.EsNuevo then + FTitulo := 'Nuevo almacn' + else + FTitulo := 'Almacn' + ' - ' + Epigrafe.DESCRIPCION; + end; + + inherited PonerTitulos(FTitulo); +end; + +procedure TfEditorEpigrafe.SetEpigrafe(const Value: IBizEpigrafe); +begin + FEpigrafe := Value; + dsDataTable.DataTable := FEpigrafe.DataTable; + + if Assigned(FViewEpigrafe) and Assigned(Epigrafe) then + FViewEpigrafe.Epigrafe := Epigrafe; +end; + +procedure TfEditorEpigrafe.SetController(const Value: IEpigrafesController); +begin + FController := Value; +end; + +procedure TfEditorEpigrafe.SetViewEpigrafe(const Value: IViewEpigrafe); +begin + FViewEpigrafe := Value; + + if Assigned(FViewEpigrafe) and Assigned(Epigrafe) then + FViewEpigrafe.Epigrafe := Epigrafe; +end; + +procedure TfEditorEpigrafe.FormShow(Sender: TObject); +begin + inherited; + + if not Assigned(FViewEpigrafe) then + raise Exception.Create('No hay ninguna vista asignada'); + + if not Assigned(Epigrafe) then + raise Exception.Create('No hay ningn almacn asignado'); + + Epigrafe.DataTable.Active := True; +end; + +destructor TfEditorEpigrafe.Destroy; +begin + // Utilizar mejor OnClose; + inherited; +end; + +procedure TfEditorEpigrafe.AsignarVista; +var + AViewEpigrafe: TfrViewEpigrafe; +begin + AViewEpigrafe := TfrViewEpigrafe.create(Self); + with AViewEpigrafe do + begin + Parent := pagGeneral; + Align := alClient; +// dxLayoutControlEpigrafe.LookAndFeel := dxLayoutOfficeLookAndFeel1; + end; + ViewEpigrafe := AViewEpigrafe; +end; + +constructor TfEditorEpigrafe.Create(AOwner: TComponent); +begin + inherited; + pgPaginas.ActivePageIndex := 0; + AsignarVista; +end; + +procedure TfEditorEpigrafe.CustomEditorClose(Sender: TObject; + var Action: TCloseAction); +begin + inherited; + dsDataTable.DataTable := NIL; + FViewEpigrafe := NIL; + FEpigrafe := NIL; +end; + +procedure TfEditorEpigrafe.dsDataTableDataChange(Sender: TObject; + Field: TField); +begin + inherited; + if Assigned(FEpigrafe) and (not (FEpigrafe.DataTable.Fetching) or + not (FEpigrafe.DataTable.Opening) or not (FEpigrafe.DataTable.Closing)) then + PonerTitulos; +end; + +procedure TfEditorEpigrafe.EliminarInterno; +begin + if (Application.MessageBox('Desea borrar este Epigrafe?', 'Atencin', MB_YESNO) = IDYES) then + begin + inherited; + if not FController.Eliminar(FEpigrafe) then + actRefrescar.Execute; + end; +end; + +end. + diff --git a/Source/Modulos/Contabilidad epigrafes/Views/uEditorEpigrafes.dfm b/Source/Modulos/Contabilidad epigrafes/Views/uEditorEpigrafes.dfm new file mode 100644 index 00000000..4cd0bcfc --- /dev/null +++ b/Source/Modulos/Contabilidad epigrafes/Views/uEditorEpigrafes.dfm @@ -0,0 +1,1496 @@ +inherited fEditorEpigrafes: TfEditorEpigrafes + Left = 489 + Top = 325 + Caption = 'Lista de epigrafes' + ExplicitHeight = 471 + PixelsPerInch = 96 + TextHeight = 13 + inherited JvNavPanelHeader: TJvNavPanelHeader + Caption = 'Lista de epigrafes' + inherited Image1: TImage + Picture.Data = { + 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001800 + 0000180806000000E0773DF80000000970485973000017120000171201679FD2 + 520000000467414D410000B18E7CFB5193000001D44944415478DAB5D4BD4B02 + 7118C0F1E737D552D0105843616F838519166551345443A32D2E0DD15863FF41 + 6B2141353544144A2004114144431695841445D00BE950E7905618742F2257CF + D9D9EFCE3BEF4EF001797E9CFAFD1C8A125114A19C43648010A2F98205AF5D7C + 611296C3FE33961802189F5909C13B1383EFF427B05FB94738B40976BB0DC6E7 + 56FEAE7D289EF7EF3E422010280E941ADF589E8754A3AF3820C7F10DA9D798A5 + 785D8D0D6EAB87F5013A8E81D46BDC521C471750C731F0CEC44DC55B1B9A41E0 + 0510848C36B038D15410C7F3C1FAB261BCABC3998BF31969472B070A81D97E52 + D20F62D0E381CCEF5DF3129043CE494F21B03445C4B1D169C360369B95223C27 + C0D17E181CCE36E963A19163C1551A40C731747274019DDDED529C460EBF1CD6 + 01751CCF91D328F40DBA81653905B2976CB10668C5715F5DDEC2D088473AD3C8 + 0ED3681ED08BE3BEBBB997001C1AD98ED79B038AC5F14E9FEE9FF3008D6C3DD4 + 1A03EA38FBCDE501FE6F332F090520236BD755C5013A22A8367D3DF9962C0056 + 2315100C06FFFF21D480D938EE743AAD00E4389E3581E1A149D371FC0E388ECD + 03745C17F0F4FA4CC77164401DD705DC2EAFE9B80CE03FA73AAE0B9C733EB03A + 5A714DA05C5376E00756B52DFEBD3C9AE50000000049454E44AE426082} + end + end + inherited TBXDock: TTBXDock + inherited tbxMain: TTBXToolbar + ExplicitWidth = 474 + end + inherited tbxFiltro: TTBXToolbar + ExplicitWidth = 269 + inherited tbxEditFiltro: TTBXEditItem + EditOptions = [tboUseEditWhenVertical] + end + inherited TBXItem37: TTBXItem + Visible = False + end + end + inherited TBXTMain2: TTBXToolbar + Left = 275 + DockPos = 275 + ExplicitLeft = 275 + end + end + inline frViewEpigrafes1: TfrViewEpigrafes [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 + ExplicitLeft = -11 + ExplicitTop = -150 + inherited cxGrid: TcxGrid + Width = 543 + Height = 195 + inherited cxGridView: TcxGridDBTableView + DataController.Summary.FooterSummaryItems = < + item + Format = '0 ejercicios' + Kind = skCount + Column = frViewEpigrafes1.cxGridViewREF_EPIGRAFE + end> + inherited cxGridViewID: TcxGridDBColumn + IsCaptionAssigned = True + end + end + end + inherited frViewFiltroBase1: TfrViewFiltroBase + Width = 543 + inherited TBXDockablePanel1: TTBXDockablePanel + inherited dxLayoutControl1: TdxLayoutControl + Width = 543 + inherited txtFiltroTodo: TcxTextEdit + ExplicitWidth = 273 + Width = 273 + end + inherited edtFechaIniFiltro: TcxDateEdit + ExplicitWidth = 121 + Width = 121 + end + inherited edtFechaFinFiltro: TcxDateEdit + Left = 337 + ExplicitLeft = 337 + ExplicitWidth = 121 + Width = 121 + end + end + inherited TBXAlignmentPanel1: TTBXAlignmentPanel + Width = 543 + inherited tbxBotones: TTBXToolbar + Width = 533 + end + end + end + end + inherited pnlAgrupaciones: TTBXDockablePanel + Top = 297 + inherited TBXAlignmentPanel1: TTBXAlignmentPanel + Width = 543 + inherited TBXToolbar1: TTBXToolbar + Width = 533 + end + end + end + inherited dxComponentPrinter: TdxComponentPrinter + inherited dxComponentPrinterLink: TdxGridReportLink + ReportDocument.CreationDate = 39413.591933946760000000 + BuiltInReportLink = True + end + end + inherited cxViewGridPopupMenu: TcxGridPopupMenu + PopupMenus = < + item + GridView = frViewEpigrafes1.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 StatusBarImages: TPngImageList + Top = 232 + end + inherited dsDataTable: TDADataSource [10] + end +end diff --git a/Source/Modulos/Contabilidad epigrafes/Views/uEditorEpigrafes.pas b/Source/Modulos/Contabilidad epigrafes/Views/uEditorEpigrafes.pas new file mode 100644 index 0000000000000000000000000000000000000000..bd269c47d0118bed0511dda2e7150ae2967f07c3 GIT binary patch literal 4395 zcmb_f%WfMt6wTUz|KTnQNODyf$3 z1ZX~}ztD5%!Qn`@;sOnfXviVYz4zSb{PWkBTq{TUBv#JYNvalB%w=}CyR*Baw3Bu& zBFT$9liBVL(N9Xp<}T~gnanb=ka(IsWN)2H@bpetCA7oSQ6e(j=+lW6>8*-*%V=i} zA3HX7ne`cMtVCiK*s2s5iA?tC+L#1#_{#FgS-x_*n%p-4rz^Zkjh5OKFsG|?u~G}+ zl+l+$10sK?yi2pEQgWPZ&c>`G#>FYYrr>7tcnZ7GpTdl91ADTOq?gORBgIk zl=m+6V!DL=5=6PU5{9kGz2jX7!MSkp>g?(* z>&4QCEdN^EB(k!TsT=0b%+v?Aay*%GiR1e5%Bq^po3jlt*jL@naC)D3;LAmg<^Ja zc)Au^*eZ9JYmX9mv?SWQqgs0BRZ)}R*;t~-+&j>3(L zn_p$*dd11qs+DksdPK+G+yj~hp<7`dHzW`a_`}V11!)}cWn8J8>xeUiPNef!9>s5T zo&`s{k)cI z{9GV>b@z0&cHd?>I-22LwZD&2*RC2xDXsR#qpD6Fi^%0Cli7Pz*y2ERUo;gef6F>r zRCKN%hqS*BiQGhlSD`TC<9AoIH;CuUPi(-)-JQLy{~jr6ThH(9?d|}%N%Xq#c`XLq z44x`iH|QOjIam5ta{QFcV?8Hr91XKfEwqfgY$V&?BX=u{8$?#9Orp6&5{=8~K@|g? zb3?b{fi&Vf*8&+0Qb;h6hy|jZiP)6j75G4qq8OZCoQQbb=r>mNIP>I|LKk^1_F#^P-B{+G$@{Gx{$Z92wd)0ceA1nF9sOBe$# zg%$LBE-}WCOehkW;bNc-r3POM=$IIl67>NJB!UbkGf{}7;tkV-%T
      12gCMVvCkv69$Lx2~DavsP%tiEQa-a$batdX6eB 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

    0kok>@4^;#;3VCA(kMSiO&1gTg(Bcv4p3lM*q(b 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®^X)RWkFI|T||1W|k>#T}Jf)6r}t|~)g9KW}O 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

Nk4%(2V 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�l?AiS>k=9Cyp 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

N=rBGM~=gl-)AAEvMt9i++l_P}WdVFdojOJt|s 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�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 literal 0 HcmV?d00001 diff --git a/Database/udfs/udf_RtfToText.dpr b/Database/udfs/udf_RtfToText.dpr new file mode 100644 index 00000000..d3689bcf --- /dev/null +++ b/Database/udfs/udf_RtfToText.dpr @@ -0,0 +1,18 @@ +library udf_RtfToText; + +uses + ExceptionLog, + ComServ, + funciones in 'funciones.pas'; + +exports + DllGetClassObject, + DllCanUnloadNow, + DllRegisterServer, + DllUnregisterServer, + RtfToText; + +{$R *.RES} + +begin +end. diff --git a/Database/udfs/udf_RtfToText.drc b/Database/udfs/udf_RtfToText.drc new file mode 100644 index 00000000..0375cb35 --- /dev/null +++ b/Database/udfs/udf_RtfToText.drc @@ -0,0 +1,252 @@ +/* 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 ComConst_SOleError 65408 +#define ComConst_SNoMethod 65409 +#define ComConst_SVarNotObject 65410 +#define ComConst_STooManyParams 65411 +#define ComConst_SAutomationWarning 65412 +#define ComConst_SNoCloseActiveServer1 65413 +#define ComConst_SNoCloseActiveServer2 65414 +#define RTLConsts_SAssignError 65424 +#define RTLConsts_SCheckSynchronizeError 65425 +#define RTLConsts_SDuplicateString 65426 +#define RTLConsts_SFCreateErrorEx 65427 +#define RTLConsts_SFOpenErrorEx 65428 +#define RTLConsts_SInvalidPropertyValue 65429 +#define RTLConsts_SListCapacityError 65430 +#define RTLConsts_SListCountError 65431 +#define RTLConsts_SListIndexError 65432 +#define RTLConsts_SMemoryStreamError 65433 +#define RTLConsts_SReadError 65434 +#define RTLConsts_SSeekNotImplemented 65435 +#define RTLConsts_SSortedListError 65436 +#define RTLConsts_SWriteError 65437 +#define RTLConsts_SThreadCreateError 65438 +#define RTLConsts_SThreadError 65439 +#define SysConst_SLongMonthNameNov 65440 +#define SysConst_SLongMonthNameDec 65441 +#define SysConst_SShortDayNameSun 65442 +#define SysConst_SShortDayNameMon 65443 +#define SysConst_SShortDayNameTue 65444 +#define SysConst_SShortDayNameWed 65445 +#define SysConst_SShortDayNameThu 65446 +#define SysConst_SShortDayNameFri 65447 +#define SysConst_SShortDayNameSat 65448 +#define SysConst_SLongDayNameSun 65449 +#define SysConst_SLongDayNameMon 65450 +#define SysConst_SLongDayNameTue 65451 +#define SysConst_SLongDayNameWed 65452 +#define SysConst_SLongDayNameThu 65453 +#define SysConst_SLongDayNameFri 65454 +#define SysConst_SLongDayNameSat 65455 +#define SysConst_SShortMonthNameJul 65456 +#define SysConst_SShortMonthNameAug 65457 +#define SysConst_SShortMonthNameSep 65458 +#define SysConst_SShortMonthNameOct 65459 +#define SysConst_SShortMonthNameNov 65460 +#define SysConst_SShortMonthNameDec 65461 +#define SysConst_SLongMonthNameJan 65462 +#define SysConst_SLongMonthNameFeb 65463 +#define SysConst_SLongMonthNameMar 65464 +#define SysConst_SLongMonthNameApr 65465 +#define SysConst_SLongMonthNameMay 65466 +#define SysConst_SLongMonthNameJun 65467 +#define SysConst_SLongMonthNameJul 65468 +#define SysConst_SLongMonthNameAug 65469 +#define SysConst_SLongMonthNameSep 65470 +#define SysConst_SLongMonthNameOct 65471 +#define SysConst_SVarUnexpected 65472 +#define SysConst_SExternalException 65473 +#define SysConst_SAssertionFailed 65474 +#define SysConst_SIntfCastError 65475 +#define SysConst_SSafecallException 65476 +#define SysConst_SAssertError 65477 +#define SysConst_SAbstractError 65478 +#define SysConst_SModuleAccessViolation 65479 +#define SysConst_SOSError 65480 +#define SysConst_SUnkOSError 65481 +#define SysConst_SShortMonthNameJan 65482 +#define SysConst_SShortMonthNameFeb 65483 +#define SysConst_SShortMonthNameMar 65484 +#define SysConst_SShortMonthNameApr 65485 +#define SysConst_SShortMonthNameMay 65486 +#define SysConst_SShortMonthNameJun 65487 +#define SysConst_SDispatchError 65488 +#define SysConst_SReadAccess 65489 +#define SysConst_SWriteAccess 65490 +#define SysConst_SFormatTooLong 65491 +#define SysConst_SVarArrayCreate 65492 +#define SysConst_SVarArrayBounds 65493 +#define SysConst_SVarArrayLocked 65494 +#define SysConst_SInvalidVarCast 65495 +#define SysConst_SInvalidVarOp 65496 +#define SysConst_SInvalidVarOpWithHResultWithPrefix 65497 +#define SysConst_SVarTypeCouldNotConvert 65498 +#define SysConst_SVarTypeConvertOverflow 65499 +#define SysConst_SVarOverflow 65500 +#define SysConst_SVarInvalid 65501 +#define SysConst_SVarBadType 65502 +#define SysConst_SVarNotImplemented 65503 +#define SysConst_SInvalidOp 65504 +#define SysConst_SZeroDivide 65505 +#define SysConst_SOverflow 65506 +#define SysConst_SUnderflow 65507 +#define SysConst_SInvalidPointer 65508 +#define SysConst_SInvalidCast 65509 +#define SysConst_SAccessViolationArg3 65510 +#define SysConst_SAccessViolationNoArg 65511 +#define SysConst_SStackOverflow 65512 +#define SysConst_SControlC 65513 +#define SysConst_SPrivilege 65514 +#define SysConst_SOperationAborted 65515 +#define SysConst_SException 65516 +#define SysConst_SExceptTitle 65517 +#define SysConst_SInvalidFormat 65518 +#define SysConst_SArgumentMissing 65519 +#define SysConst_SInvalidInteger 65520 +#define SysConst_SInvalidDateTime 65521 +#define SysConst_STimeEncodeError 65522 +#define SysConst_SDateEncodeError 65523 +#define SysConst_SOutOfMemory 65524 +#define SysConst_SInOutError 65525 +#define SysConst_SFileNotFound 65526 +#define SysConst_SInvalidFilename 65527 +#define SysConst_STooManyOpenFiles 65528 +#define SysConst_SAccessDenied 65529 +#define SysConst_SEndOfFile 65530 +#define SysConst_SDiskFull 65531 +#define SysConst_SInvalidInput 65532 +#define SysConst_SDivByZero 65533 +#define SysConst_SRangeError 65534 +#define SysConst_SIntOverflow 65535 +STRINGTABLE +BEGIN + ComConst_SOleError, "OLE error %.8x" + ComConst_SNoMethod, "Method '%s' not supported by automation object" + ComConst_SVarNotObject, "Variant does not reference an automation object" + ComConst_STooManyParams, "Dispatch methods do not support more than 64 parameters" + ComConst_SAutomationWarning, "COM Server Warning" + ComConst_SNoCloseActiveServer1, "There are still active COM objects in this application. One or more clients may have references to these objects, so manually closing " + ComConst_SNoCloseActiveServer2, "this application may cause those client application(s) to fail.\r\n\r\nAre you sure you want to close this application?" + RTLConsts_SAssignError, "Cannot assign a %s to a %s" + RTLConsts_SCheckSynchronizeError, "CheckSynchronize called from thread $%x, which is NOT the main thread" + RTLConsts_SDuplicateString, "String list does not allow duplicates" + RTLConsts_SFCreateErrorEx, "Cannot create file \"%s\". %s" + RTLConsts_SFOpenErrorEx, "Cannot open file \"%s\". %s" + RTLConsts_SInvalidPropertyValue, "Invalid property value" + 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_SReadError, "Stream read error" + RTLConsts_SSeekNotImplemented, "%s.Seek not implemented" + RTLConsts_SSortedListError, "Operation not allowed on sorted list" + RTLConsts_SWriteError, "Stream write error" + RTLConsts_SThreadCreateError, "Thread creation error: %s" + RTLConsts_SThreadError, "Thread Error: %s (%d)" + SysConst_SLongMonthNameNov, "November" + SysConst_SLongMonthNameDec, "December" + SysConst_SShortDayNameSun, "Sun" + SysConst_SShortDayNameMon, "Mon" + 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" + SysConst_SShortMonthNameJul, "Jul" + SysConst_SShortMonthNameAug, "Aug" + SysConst_SShortMonthNameSep, "Sep" + SysConst_SShortMonthNameOct, "Oct" + 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_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_SAssertError, "%s (%s, line %d)" + SysConst_SAbstractError, "Abstract Error" + SysConst_SModuleAccessViolation, "Access violation at address %p in module '%s'. %s of address %p" + SysConst_SOSError, "System Error. Code: %d.\r\n%s" + SysConst_SUnkOSError, "A call to an OS function failed" + SysConst_SShortMonthNameJan, "Jan" + SysConst_SShortMonthNameFeb, "Feb" + SysConst_SShortMonthNameMar, "Mar" + SysConst_SShortMonthNameApr, "Apr" + SysConst_SShortMonthNameMay, "May" + SysConst_SShortMonthNameJun, "Jun" + SysConst_SDispatchError, "Variant method calls not supported" + SysConst_SReadAccess, "Read" + SysConst_SWriteAccess, "Write" + SysConst_SFormatTooLong, "Format string too long" + SysConst_SVarArrayCreate, "Error creating variant or safe array" + SysConst_SVarArrayBounds, "Variant or safe array index out of bounds" + SysConst_SVarArrayLocked, "Variant or safe array is locked" + SysConst_SInvalidVarCast, "Invalid variant type conversion" + SysConst_SInvalidVarOp, "Invalid variant operation" + SysConst_SInvalidVarOpWithHResultWithPrefix, "Invalid variant operation (%s%.8x)\n%s" + SysConst_SVarTypeCouldNotConvert, "Could not convert variant of type (%s) into type (%s)" + SysConst_SVarTypeConvertOverflow, "Overflow while converting variant of type (%s) into type (%s)" + SysConst_SVarOverflow, "Variant overflow" + SysConst_SVarInvalid, "Invalid argument" + SysConst_SVarBadType, "Invalid variant type" + SysConst_SVarNotImplemented, "Operation not supported" + SysConst_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_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_SInvalidInteger, "'%s' is not a valid integer value" + SysConst_SInvalidDateTime, "'%s' is not a valid date and time" + 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" + SysConst_SDiskFull, "Disk full" + SysConst_SInvalidInput, "Invalid numeric input" + SysConst_SDivByZero, "Division by zero" + SysConst_SRangeError, "Range check error" + SysConst_SIntOverflow, "Integer overflow" +END + diff --git a/Database/udfs/udf_RtfToText.res b/Database/udfs/udf_RtfToText.res new file mode 100644 index 0000000000000000000000000000000000000000..4f907139ddab7c4037201c4f222a18f1c3263363 GIT binary patch literal 4396 zcmbW5y^ice5QS^C0TM#60r_l*HsTEoA|e1H$9|OFH}MS+LVgKPj5gd5Y3?K3kN~MU zUsadwne{BY*HWq4-PLtY{dA8tW@h)2T0=BEd;Yx3^;_B8_}bmwmtUpPcN*MFevsVw zNCWNp+@~LUdwhJfsT9|YQ-1&O!TPQ@Y(hV5#@qQ^U-kd-0VA_#P%@m%9ww%4A-=$l{sB$sI@7W0t{c!5nG&Nyh!@xd;W*-6-^QrclqES0h=5zdDb{N zxYoPd;ZJ@%|GtO(KP)_m(QBj}OtOW8^EkbXpPb^;z&?sLt9V`{AzfBe;|mFR>i;YD7d*0{R4?Y;g9C1%p zWs~oLFW*HX+~eOzwv}C=`Mu)c>MC`@s4oNcosII{h9lEQoZJ9OAc@XGqCa7@MTBegGnF6m>f5r z2kB1xhTuSqV0ir#cWxZipR9RKYc)9dSm%Rza_AhuMh;Pb#}s!sF@~$>Kv>?3;uf0s zYh&eJ`@rE0FWB-IHEr=Hhi;9ZoSXa-Kl$NI2alD1@^YD_*;>` z=;0Rk(6}7LS-!mHE&i;L*NHsK798U8+KV4|uAfukG7mOBe7u9te$RI&eiFEZsQ<)` z^Bi|T#P7WU4*3{bjYe#g|3a*dgT{#;dOv>8zkE67Ky5=z@w1k9j^{{g(f88A&iLv5 zsE_u7F99=!b;g{(v)s2jMBj0L!7+T{kNCa*8WXSQX^?-}vF<+S!18tN&AXAcJP(Zh zz3k&hPZM{m9sU)6;=AvLAK0-zmDa!V8~GPE%_SC^Zv=D-J}-0NH5l9dMhp!<@~?N* z){HZnxrwv3)CX>z?6lYGBklb-v@8JhxY>hX^CXu&eCFsy&v&=x zJM(^~JK~Pm^XziYz+O0%7?X?b!#d~cH4aP9AHaaiR-a>&#RyFyr + + + + + + + + + + + + + + + + diff --git a/Installer/Actualizacion/Actualización.iss b/Installer/Actualizacion/Actualización.iss new file mode 100644 index 00000000..acbc51b9 --- /dev/null +++ b/Installer/Actualizacion/Actualización.iss @@ -0,0 +1,99 @@ +[Setup] +AppName=FactuGES +AppVerName=FactuGES 2.2.2 +AppPublisher=Rodax Software S.L. +AppPublisherURL=http://www.rodax-software.com +AppSupportURL=http://www.rodax-software.com +AppUpdatesURL=http://www.rodax-software.com +OutputBaseFilename=instalar +Compression=lzma +SolidCompression=yes +CreateAppDir=no +Uninstallable=no +DisableStartupPrompt=yes +DisableFinishedPage=yes + +[Languages] +Name: "sp"; MessagesFile: "compiler:languages\Spanish.isl" + +[Files] +Source: "files\*"; DestDir: {code:GetDir}; CopyMode: alwaysoverwrite; Flags: uninsneveruninstall overwritereadonly +;Source: "files\Informes\*"; DestDir: "{code:GetDir}\Informes\"; Flags: ignoreversion recursesubdirs createallsubdirs +;Source: "files\Financiacion\*"; DestDir: "{code:GetDir}\Financiacion\"; Flags: ignoreversion recursesubdirs createallsubdirs + +[Registry] +;Root: HKLM; Subkey: "Software\FactuGES\Update"; ValueType: string; ValueName: "edLocation_Text"; ValueData: "http://www.rodax-software.com/luisleon/update"; Flags: createvalueifdoesntexist + +[Code] +var + TipoActualizacion : String; + Ruta : String; + VerAnterior : String; + VerNueva : String; + +function GetDir(Param: String): String; +begin + Result := Ruta; +end; + +procedure HacerBackupVerAnterior; +var + RutaBack : String; + FindRec: TFindRec; +begin + RutaBack := Ruta + 'Otras versiones\' + VerAnterior + '\'; + + ForceDirectories(RutaBack); + ForceDirectories(RutaBack + 'Informes'); + + FileCopy(Ruta + 'FactuGES.exe', RutaBack + 'FactuGES.exe', FALSE); + if FindFirst(ExpandConstant(Ruta + 'Informes\*.*'), FindRec) then begin + try + repeat + // Don't count directories + if FindRec.Attributes and FILE_ATTRIBUTE_DIRECTORY = 0 then + FileCopy(Ruta + 'Informes\' + FindRec.Name, RutaBack + 'Informes\' + FindRec.Name, FALSE); + until not FindNext(FindRec); + finally + FindClose(FindRec); + end; + end; +end; + +{function NextButtonClick(CurPageID: Integer): Boolean; +begin + if CurPageID = 1 then + begin + if not RegQueryStringValue(HKEY_LOCAL_MACHINE, 'Software\FactuGES\Update', + 'TipoActualizacion', TipoActualizacion) then + Abort; + + if not DirExists(Ruta) then + Abort; + + if TipoActualizacion = 'INTERNET' then + HacerBackupVerAnterior(); + end; + Result := True; +end;} + +function InitializeSetup(): Boolean; +var + p: HWND; +begin + // Comprobar que FactuGES no est en ejecucin + p := FindWindowByWindowName('FactuGES'); + if p > 0 then + begin + MsgBox('Debe salir de FactuGES para poder instalar esta actualizacin',mbInformation, MB_OK); + Result := False + end + else begin + // Comprobar que la ruta del programa est en el registro + Result := RegQueryStringValue(HKEY_LOCAL_MACHINE, 'Software\FactuGES', 'Ruta', Ruta); + end; +end; + + + + diff --git a/Installer/Actualizacion/Files/FactuGES.exe b/Installer/Actualizacion/Files/FactuGES.exe new file mode 100644 index 0000000000000000000000000000000000000000..6dbab3ba866652b60ef712b4a2f4a21ec53df021 GIT binary patch literal 354816 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