From 2cbd8d9c60faae0586765f064d82cc7e25feed24 Mon Sep 17 00:00:00 2001 From: roberto Date: Thu, 1 Jul 2010 17:26:52 +0000 Subject: [PATCH] Documentos relacionados de vendedor git-svn-id: https://192.168.0.254/svn/Proyectos.Noviseda_FactuGES2/trunk@132 f33bb606-9f5c-448d-9c99-757f00063c96 --- Build/Build.fbl6 | Bin 3145728 -> 3145728 bytes Database/scripts/factuges.sql | 7 +- Source/ApplicationBase/uPlugins_Intf.pas | 10 + Source/Base/Base.dproj | 102 +- Source/Base/Base.res | Bin 4748 -> 384 bytes Source/Cliente/FactuGES.dpr | 1 - Source/Cliente/FactuGES.dproj | 2 +- Source/Cliente/FactuGES.res | Bin 171984 -> 172156 bytes Source/Cliente/uBootStrap.pas | 2 +- .../AlbaranesCliente_Group.groupproj | 16 +- .../Controller/Comisiones_controller.res | Bin 4748 -> 384 bytes .../Comisiones/Model/Comisiones_model.res | Bin 4748 -> 384 bytes .../Model/schComisionesClient_Intf.pas | 8 +- .../Comisiones/Views/Comisiones_view.res | Bin 4748 -> 384 bytes .../Contactos/Contactos_Group.groupproj | 26 +- .../Controller/uClientesController.pas | 67 +- .../Controller/uVendedoresController.pas | 50 +- .../Contactos/Plugin/uPluginContactos.pas | 42 +- .../Contactos/Views/Contactos_view.dproj | 114 +-- .../Contactos/Views/uEditorClientes.dfm | 7 - .../Contactos/Views/uEditorClientes.pas | 5 +- .../Contactos/Views/uEditorContacto.dfm | 39 +- .../Contactos/Views/uEditorVendedores.dfm | 194 +++- .../Contactos/Views/uEditorVendedores.pas | 39 +- .../Controller/PedidosCliente_controller.drc | 2 +- .../Controller/uPedidosClienteController.pas | 28 +- .../Data/PedidosCliente_data.drc | 2 +- .../Data/uDataModulePedidosCliente.dfm | 4 + .../Model/PedidosCliente_model.drc | 2 +- .../Model/schPedidosClienteClient_Intf.pas | 64 +- .../Model/schPedidosClienteServer_Intf.pas | 872 ++++++------------ .../Plugin/PedidosCliente_plugin.drc | 2 +- .../Plugin/uPluginPedidosCliente.pas | 26 + .../Servidor/srvPedidosCliente_Impl.dfm | 8 + .../Views/PedidosCliente_view.drc | 2 +- .../Views/uEditorPedidosCliente.dfm | 4 - .../Views/uEditorPedidosCliente.pas | 8 +- Source/Servidor/FactuGES_Server.RES | Bin 23408 -> 23580 bytes Source/Servidor/FactuGES_Server.dpr | 7 +- Source/Servidor/FactuGES_Server.dproj | 2 +- Source/Servidor/FactuGES_Server.rc | 2 +- 41 files changed, 955 insertions(+), 811 deletions(-) diff --git a/Build/Build.fbl6 b/Build/Build.fbl6 index d91b3e0f12326317287d08a15daa4f5036ae1d10..a18f39147dceef4ae659b6dcb4f2d4f878b94d97 100644 GIT binary patch delta 204086 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%0AGR8|15=)Fj@w963cETlP>e(9jX+D5y$NVUYzFEP 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 delta 171021 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 diff --git a/Database/scripts/factuges.sql b/Database/scripts/factuges.sql index 1532942..660f3d2 100644 --- a/Database/scripts/factuges.sql +++ b/Database/scripts/factuges.sql @@ -4331,7 +4331,8 @@ CREATE VIEW V_PEDIDOS_CLIENTE( FORMA_PAGO, REF_TIENDA_WEB, FECHA_PREVISTA_ENVIO, - DATOS_BANCARIOS) + DATOS_BANCARIOS, + ID_VENDEDOR) AS SELECT PEDIDOS_CLIENTE.ID, @@ -4369,12 +4370,14 @@ SELECT FORMAS_PAGO.DESCRIPCION, PEDIDOS_CLIENTE.REF_TIENDA_WEB, PEDIDOS_CLIENTE.FECHA_PREVISTA_ENVIO, - PEDIDOS_CLIENTE.DATOS_BANCARIOS + PEDIDOS_CLIENTE.DATOS_BANCARIOS, + clientes_datos.id_agente FROM V_PED_CLI_SITUACION INNER JOIN PEDIDOS_CLIENTE ON (PEDIDOS_CLIENTE.ID = V_PED_CLI_SITUACION.ID_PEDIDO) INNER JOIN CONTACTOS ON (PEDIDOS_CLIENTE.ID_CLIENTE = CONTACTOS.ID) LEFT OUTER JOIN FORMAS_PAGO ON (FORMAS_PAGO.ID = PEDIDOS_CLIENTE.ID_FORMA_PAGO) + left join clientes_datos on (clientes_datos.id_cliente = contactos.id) ; /**************************************************/ diff --git a/Source/ApplicationBase/uPlugins_Intf.pas b/Source/ApplicationBase/uPlugins_Intf.pas index fdc4ded..63f3ce9 100644 --- a/Source/ApplicationBase/uPlugins_Intf.pas +++ b/Source/ApplicationBase/uPlugins_Intf.pas @@ -3,6 +3,8 @@ unit uPlugins_Intf; interface const + MODULENAME_CONTACTOS = 'Contactos_plugin.bpl'; + MODULENAME_PRESUPUESTOS_CLIENTE = 'PresupuestosCliente_plugin.bpl'; MODULENAME_PEDIDOS_CLIENTE = 'PedidosCliente_plugin.bpl'; MODULENAME_ALBARANES_CLIENTE = 'AlbaranesCliente_plugin.bpl'; @@ -16,6 +18,12 @@ const MODULENAME_COMISIONES = 'Comisiones_plugin.bpl'; type + IMCContactos = interface(IInterface) + ['{BAEDC5D8-2FE8-4907-8027-C60861829BA9}'] + procedure VerClientesVendedor(const ID_Vendedor: Integer; + const ANombreVendedor : String = ''); + end; + IMCPresupuestosCliente = interface(IInterface) ['{D09E6FFF-50C7-48E2-8380-4CB57B74BB93}'] procedure VerPresupuestos(const ID_Cliente: Integer; @@ -26,6 +34,8 @@ type ['{6ACDE97F-AC9A-406C-8ADC-3B730D01CB89}'] procedure VerPedidos(const ID_Cliente: Integer; const ANombreCliente : String = ''); + procedure VerPedidosVendedor(const ID_Vendedor: Integer; + const ANombreVendedor : String = ''); end; IMCAlbaranesCliente = interface(IInterface) diff --git a/Source/Base/Base.dproj b/Source/Base/Base.dproj index c58c3d6..990c17d 100644 --- a/Source/Base/Base.dproj +++ b/Source/Base/Base.dproj @@ -53,58 +53,58 @@ MainSource - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
fConfigurarConexion
TForm diff --git a/Source/Base/Base.res b/Source/Base/Base.res index 1641339fcc482e7e3492d1b45813a86619622c33..8b251f312bcccec5485024f6fe8d80e1cdf25746 100644 GIT binary patch delta 11 ScmeBCZD5|Duvteife`=|>;pCc literal 4748 zcmbW5&ub)A5XUPdpe&2#;C*uNAUVhgd+&(4um@dnom`vXF9g}ZuHJ;se=<3UNdFJg zbCw+UD9j$byGIXV`~6hC>h4S?F|k9X-j90q{Z_qtZ<;nUJCO8!h?p${kR>3GhM`oH*q zk=UsjOCIgA_4!`B+Gb&`I84R)bT4dy-BQV<-SyFz?R8ILEQ(+JB$u{sEXE@j@B*7W zT;iZH#|OJ<&DO$RCkM6VbK3(B(k{nbdv1lpc;E$xz9as|v3uE1V{hw2w~g3eD0an7 z{BT%G%irdMe*|oDJmgvJaA2`9B<6Xi*?M~Q;)@Sbfwf3uf zVaWkbUjU=;sL{BlYemIZXv%qZ{SZw{-TCU+;!nH6KDDIJumU+9{E0zXW4>7T)y|>$DQlv zRJe?TjSp{c!DqeayAnSMTtZZT;>LN7J0Rls+5m@q)MbyB*eL%Eu@(+$Cw}Pd@q7N| z%Q0*AHpCP^b9v`@jx-l_FD>khpW2W8(OU2&V5TrnoAY-m_hlcV?zq3;7{2gF{J#Hc z6R+o~mVenX?>@W0@_DVzyOFs(5464CY{!q9ChoF#_*eXi@4gFuV8?vhl=_w5$iKL0 zEV0nMBcN08xtRmsgJrqjh@s#|{?*ssnsG)mH*wa6{efF0JFWHok@kA5%b661{B38= zCcgJ|*ZFTpV$8<-&+AWpa)Q8*`wL&hMeNQ^v6I7$HSdLZhZ^&+6<@Uw_Zsml9^v3W zVvPDBKHh;i=RU4J_ta3E;)Mn>Y+L zKLZ0UQ+*km9FO-b?U4gmn-62iwzH6&*duKGo~aUV)bYDla8wWZ9+^7p-F<8lP@i!m z@vhbD_${F}h>^T;C(?(b*OJDk?{dEXB?nuehoON3HAb!7Mr7-ls!84-5V-jJugbu<_$}mU=Yd9!?TOX;|B-#B)+0x#9q*yqJiqS!`49d=7ztk$O+9=1i;?K_|J<8T z?0b7=-`Z3A#vV$4XJ5(lQ~TOZHUFdA%oWvK5zg&_IKXIbughQBA8XAsd#=@|TFLXC zy(^m((;DnQmDQKatmw!@c`| G?EMQ&4NnpP diff --git a/Source/Cliente/FactuGES.dpr b/Source/Cliente/FactuGES.dpr index e443745..b105df3 100644 --- a/Source/Cliente/FactuGES.dpr +++ b/Source/Cliente/FactuGES.dpr @@ -1,7 +1,6 @@ program FactuGES; uses - ExceptionLog, Forms, Windows, SysUtils, diff --git a/Source/Cliente/FactuGES.dproj b/Source/Cliente/FactuGES.dproj index 556af98..060819e 100644 --- a/Source/Cliente/FactuGES.dproj +++ b/Source/Cliente/FactuGES.dproj @@ -54,7 +54,7 @@ Delphi.Personality VCLApplication -FalseTrueFalseC:\Archivos de programa\Borland\Delphi7\Bin\TrueFalse1060FalseFalseFalseFalseFalse30821252Rodax Software S.L.1.0.6.0FactuGESFactuGES1.0.6.0FactuGES.dprFalse +FalseTrueFalseC:\Archivos de programa\Borland\Delphi7\Bin\TrueFalse1070FalseFalseFalseFalseFalse30821252Rodax Software S.L.1.0.7.0FactuGESFactuGES1.0.7.0FactuGES.dprFalse diff --git a/Source/Cliente/FactuGES.res b/Source/Cliente/FactuGES.res index c47d5564513e1dd06d8710ca5ff710c16fbd48f2..f9cba37d16bc7d0732385d801c450549f4c54956 100644 GIT binary patch delta 488 zcmYL^J4*vW6otPT^VqCGwoJJYd^afs3lW2g1Qcx2CyPoFG#a9fRZ=MA2MF6Fn>Ihd zRP*}X0!bc;uft=K yYtWRWfvLXmRmBl-DY>?sU9P3u9L9TYYqX?qTzNiO%-WJm5EjQekXfF``t%Ps`$VDu delta 318 zcmex!fa}73u7(!IElezP>kS0Bco^V-k%5OnK!AaPkwJnXgB3)>c`OVJObikd5V;d< z3=GV0UI!-w0}F$K0z_^F2Ll5uf(JB>jlsYGD#ypbz>eUlGQ=}*FgQ3sBsH8E7&sX` zJRrP|5C#S=hJ*yD#wiR8+zbs3P?a1YhcYmHU}RuW0Mh^e3ji^Y0|W*P2oHT=oc?Go zlZiUewLq_c9AXbr0t75T2vHB=gUEpCw)2>j8Fi*7&SQ$7{$?JN2BX<@(fLf)(=W_t MN&vDA7chAP012cjg8%>k diff --git a/Source/Cliente/uBootStrap.pas b/Source/Cliente/uBootStrap.pas index acfe576..dad5b94 100644 --- a/Source/Cliente/uBootStrap.pas +++ b/Source/Cliente/uBootStrap.pas @@ -27,7 +27,7 @@ begin // LoadModule('Fabricantes_plugin.bpl'); // LoadModule('UnidadesMedida_plugin.bpl'); - LoadModule('Contactos_plugin.bpl'); + LoadModule(MODULENAME_CONTACTOS); LoadModule('Almacenes_plugin.bpl'); // LoadModule('Obras_plugin.bpl'); diff --git a/Source/Modulos/Albaranes de cliente/AlbaranesCliente_Group.groupproj b/Source/Modulos/Albaranes de cliente/AlbaranesCliente_Group.groupproj index 17e74fe..f53db1b 100644 --- a/Source/Modulos/Albaranes de cliente/AlbaranesCliente_Group.groupproj +++ b/Source/Modulos/Albaranes de cliente/AlbaranesCliente_Group.groupproj @@ -19,6 +19,7 @@ + @@ -281,14 +282,23 @@ + + + + + + + + + - + - + - + \ No newline at end of file diff --git a/Source/Modulos/Comisiones/Controller/Comisiones_controller.res b/Source/Modulos/Comisiones/Controller/Comisiones_controller.res index 1641339fcc482e7e3492d1b45813a86619622c33..8b251f312bcccec5485024f6fe8d80e1cdf25746 100644 GIT binary patch delta 11 ScmeBCZD5|Duvteife`=|>;pCc literal 4748 zcmbW5&ub)A5XUPdpe&2#;C*uNAUVhgd+&(4um@dnom`vXF9g}ZuHJ;se=<3UNdFJg zbCw+UD9j$byGIXV`~6hC>h4S?F|k9X-j90q{Z_qtZ<;nUJCO8!h?p${kR>3GhM`oH*q zk=UsjOCIgA_4!`B+Gb&`I84R)bT4dy-BQV<-SyFz?R8ILEQ(+JB$u{sEXE@j@B*7W zT;iZH#|OJ<&DO$RCkM6VbK3(B(k{nbdv1lpc;E$xz9as|v3uE1V{hw2w~g3eD0an7 z{BT%G%irdMe*|oDJmgvJaA2`9B<6Xi*?M~Q;)@Sbfwf3uf zVaWkbUjU=;sL{BlYemIZXv%qZ{SZw{-TCU+;!nH6KDDIJumU+9{E0zXW4>7T)y|>$DQlv zRJe?TjSp{c!DqeayAnSMTtZZT;>LN7J0Rls+5m@q)MbyB*eL%Eu@(+$Cw}Pd@q7N| z%Q0*AHpCP^b9v`@jx-l_FD>khpW2W8(OU2&V5TrnoAY-m_hlcV?zq3;7{2gF{J#Hc z6R+o~mVenX?>@W0@_DVzyOFs(5464CY{!q9ChoF#_*eXi@4gFuV8?vhl=_w5$iKL0 zEV0nMBcN08xtRmsgJrqjh@s#|{?*ssnsG)mH*wa6{efF0JFWHok@kA5%b661{B38= zCcgJ|*ZFTpV$8<-&+AWpa)Q8*`wL&hMeNQ^v6I7$HSdLZhZ^&+6<@Uw_Zsml9^v3W zVvPDBKHh;i=RU4J_ta3E;)Mn>Y+L zKLZ0UQ+*km9FO-b?U4gmn-62iwzH6&*duKGo~aUV)bYDla8wWZ9+^7p-F<8lP@i!m z@vhbD_${F}h>^T;C(?(b*OJDk?{dEXB?nuehoON3HAb!7Mr7-ls!84-5V-jJugbu<_$}mU=Yd9!?TOX;|B-#B)+0x#9q*yqJiqS!`49d=7ztk$O+9=1i;?K_|J<8T z?0b7=-`Z3A#vV$4XJ5(lQ~TOZHUFdA%oWvK5zg&_IKXIbughQBA8XAsd#=@|TFLXC zy(^m((;DnQmDQKatmw!@c`| G?EMQ&4NnpP diff --git a/Source/Modulos/Comisiones/Model/Comisiones_model.res b/Source/Modulos/Comisiones/Model/Comisiones_model.res index 1641339fcc482e7e3492d1b45813a86619622c33..8b251f312bcccec5485024f6fe8d80e1cdf25746 100644 GIT binary patch delta 11 ScmeBCZD5|Duvteife`=|>;pCc literal 4748 zcmbW5&ub)A5XUPdpe&2#;C*uNAUVhgd+&(4um@dnom`vXF9g}ZuHJ;se=<3UNdFJg zbCw+UD9j$byGIXV`~6hC>h4S?F|k9X-j90q{Z_qtZ<;nUJCO8!h?p${kR>3GhM`oH*q zk=UsjOCIgA_4!`B+Gb&`I84R)bT4dy-BQV<-SyFz?R8ILEQ(+JB$u{sEXE@j@B*7W zT;iZH#|OJ<&DO$RCkM6VbK3(B(k{nbdv1lpc;E$xz9as|v3uE1V{hw2w~g3eD0an7 z{BT%G%irdMe*|oDJmgvJaA2`9B<6Xi*?M~Q;)@Sbfwf3uf zVaWkbUjU=;sL{BlYemIZXv%qZ{SZw{-TCU+;!nH6KDDIJumU+9{E0zXW4>7T)y|>$DQlv zRJe?TjSp{c!DqeayAnSMTtZZT;>LN7J0Rls+5m@q)MbyB*eL%Eu@(+$Cw}Pd@q7N| z%Q0*AHpCP^b9v`@jx-l_FD>khpW2W8(OU2&V5TrnoAY-m_hlcV?zq3;7{2gF{J#Hc z6R+o~mVenX?>@W0@_DVzyOFs(5464CY{!q9ChoF#_*eXi@4gFuV8?vhl=_w5$iKL0 zEV0nMBcN08xtRmsgJrqjh@s#|{?*ssnsG)mH*wa6{efF0JFWHok@kA5%b661{B38= zCcgJ|*ZFTpV$8<-&+AWpa)Q8*`wL&hMeNQ^v6I7$HSdLZhZ^&+6<@Uw_Zsml9^v3W zVvPDBKHh;i=RU4J_ta3E;)Mn>Y+L zKLZ0UQ+*km9FO-b?U4gmn-62iwzH6&*duKGo~aUV)bYDla8wWZ9+^7p-F<8lP@i!m z@vhbD_${F}h>^T;C(?(b*OJDk?{dEXB?nuehoON3HAb!7Mr7-ls!84-5V-jJugbu<_$}mU=Yd9!?TOX;|B-#B)+0x#9q*yqJiqS!`49d=7ztk$O+9=1i;?K_|J<8T z?0b7=-`Z3A#vV$4XJ5(lQ~TOZHUFdA%oWvK5zg&_IKXIbughQBA8XAsd#=@|TFLXC zy(^m((;DnQmDQKatmw!@c`| G?EMQ&4NnpP diff --git a/Source/Modulos/Comisiones/Model/schComisionesClient_Intf.pas b/Source/Modulos/Comisiones/Model/schComisionesClient_Intf.pas index 08fe5d1..dfe3b97 100644 --- a/Source/Modulos/Comisiones/Model/schComisionesClient_Intf.pas +++ b/Source/Modulos/Comisiones/Model/schComisionesClient_Intf.pas @@ -3,7 +3,7 @@ unit schComisionesClient_Intf; interface uses - Classes, DB, SysUtils, uROClasses, uDAInterfaces, uDADataTable, FmtBCD, uROXMLIntf; + Classes, DB, schBase_Intf, SysUtils, uROClasses, uDAInterfaces, uDADataTable, FmtBCD, uROXMLIntf; const { Data table rules ids @@ -95,7 +95,7 @@ type end; { TListaAnosComisionesDataTableRules } - TListaAnosComisionesDataTableRules = class(TDADataTableRules, IListaAnosComisiones) + TListaAnosComisionesDataTableRules = class(TIntfObjectDADataTableRules, IListaAnosComisiones) private protected { Property getters and setters } @@ -208,7 +208,7 @@ type end; { TFacturasComisionDataTableRules } - TFacturasComisionDataTableRules = class(TDADataTableRules, IFacturasComision) + TFacturasComisionDataTableRules = class(TIntfObjectDADataTableRules, IFacturasComision) private protected { Property getters and setters } @@ -369,7 +369,7 @@ type end; { TComisionesDataTableRules } - TComisionesDataTableRules = class(TDADataTableRules, IComisiones) + TComisionesDataTableRules = class(TIntfObjectDADataTableRules, IComisiones) private protected { Property getters and setters } diff --git a/Source/Modulos/Comisiones/Views/Comisiones_view.res b/Source/Modulos/Comisiones/Views/Comisiones_view.res index 1641339fcc482e7e3492d1b45813a86619622c33..8b251f312bcccec5485024f6fe8d80e1cdf25746 100644 GIT binary patch delta 11 ScmeBCZD5|Duvteife`=|>;pCc literal 4748 zcmbW5&ub)A5XUPdpe&2#;C*uNAUVhgd+&(4um@dnom`vXF9g}ZuHJ;se=<3UNdFJg zbCw+UD9j$byGIXV`~6hC>h4S?F|k9X-j90q{Z_qtZ<;nUJCO8!h?p${kR>3GhM`oH*q zk=UsjOCIgA_4!`B+Gb&`I84R)bT4dy-BQV<-SyFz?R8ILEQ(+JB$u{sEXE@j@B*7W zT;iZH#|OJ<&DO$RCkM6VbK3(B(k{nbdv1lpc;E$xz9as|v3uE1V{hw2w~g3eD0an7 z{BT%G%irdMe*|oDJmgvJaA2`9B<6Xi*?M~Q;)@Sbfwf3uf zVaWkbUjU=;sL{BlYemIZXv%qZ{SZw{-TCU+;!nH6KDDIJumU+9{E0zXW4>7T)y|>$DQlv zRJe?TjSp{c!DqeayAnSMTtZZT;>LN7J0Rls+5m@q)MbyB*eL%Eu@(+$Cw}Pd@q7N| z%Q0*AHpCP^b9v`@jx-l_FD>khpW2W8(OU2&V5TrnoAY-m_hlcV?zq3;7{2gF{J#Hc z6R+o~mVenX?>@W0@_DVzyOFs(5464CY{!q9ChoF#_*eXi@4gFuV8?vhl=_w5$iKL0 zEV0nMBcN08xtRmsgJrqjh@s#|{?*ssnsG)mH*wa6{efF0JFWHok@kA5%b661{B38= zCcgJ|*ZFTpV$8<-&+AWpa)Q8*`wL&hMeNQ^v6I7$HSdLZhZ^&+6<@Uw_Zsml9^v3W zVvPDBKHh;i=RU4J_ta3E;)Mn>Y+L zKLZ0UQ+*km9FO-b?U4gmn-62iwzH6&*duKGo~aUV)bYDla8wWZ9+^7p-F<8lP@i!m z@vhbD_${F}h>^T;C(?(b*OJDk?{dEXB?nuehoON3HAb!7Mr7-ls!84-5V-jJugbu<_$}mU=Yd9!?TOX;|B-#B)+0x#9q*yqJiqS!`49d=7ztk$O+9=1i;?K_|J<8T z?0b7=-`Z3A#vV$4XJ5(lQ~TOZHUFdA%oWvK5zg&_IKXIbughQBA8XAsd#=@|TFLXC zy(^m((;DnQmDQKatmw!@c`| G?EMQ&4NnpP diff --git a/Source/Modulos/Contactos/Contactos_Group.groupproj b/Source/Modulos/Contactos/Contactos_Group.groupproj index e6ab4f4..a50f4ed 100644 --- a/Source/Modulos/Contactos/Contactos_Group.groupproj +++ b/Source/Modulos/Contactos/Contactos_Group.groupproj @@ -10,7 +10,9 @@ + + @@ -131,14 +133,32 @@ + + + + + + + + + + + + + + + + + + - + - + - + \ No newline at end of file diff --git a/Source/Modulos/Contactos/Controller/uClientesController.pas b/Source/Modulos/Contactos/Controller/uClientesController.pas index f0e2364..233609d 100644 --- a/Source/Modulos/Contactos/Controller/uClientesController.pas +++ b/Source/Modulos/Contactos/Controller/uClientesController.pas @@ -11,6 +11,7 @@ uses type IClientesController = interface(IContactosController) ['{AAC3C51A-37F7-4961-B39F-FBC6B6A2B0F1}'] + function BuscarTodosVendedor(const ID_Vendedor: Integer): IBizCliente; function BuscarTodosTiendaWeb: IBizCliente; function BuscarEtiquetadosFelicitacion: IBizCliente; function TieneDatosBancarios(ACliente: IBizCliente) : Boolean; @@ -23,6 +24,8 @@ type procedure VerAlbaranesDeCliente(ACliente : IBizCliente); procedure VerFacturasDeCliente(ACliente : IBizCliente); procedure VerRecibosDeCliente(ACliente : IBizCliente); + procedure VerTodos(AContactos: IBizContacto; const AVerModal : Boolean = False; const AWindowCaption: String = ''; + const AHeaderText: String = ''); overload; function DarListaCuentasBancarias(const IdCliente: Integer): TStringList; end; @@ -38,11 +41,14 @@ type function Buscar(const ID: Integer): IBizContacto; override; function BuscarTodos: IBizContacto; override; + function BuscarTodosVendedor(const ID_Vendedor: Integer): IBizCliente; function BuscarTodosTiendaWeb: IBizCliente; function BuscarEtiquetadosFelicitacion: IBizCliente; function Nuevo : IBizContacto; override; procedure Ver(AContacto : IBizContacto); override; - procedure VerTodos(AContactos: IBizContacto); override; + procedure VerTodos(AContactos: IBizContacto); overload; override; + procedure VerTodos(AContactos: IBizContacto; const AVerModal : Boolean = False; const AWindowCaption: String = ''; + const AHeaderText: String = ''); overload; function ElegirContacto(AContactos : IBizContacto; AMensaje: String; AMultiSelect: Boolean): IBizContacto; override; function TieneDatosBancarios(ACliente: IBizCliente) : Boolean; @@ -63,9 +69,9 @@ implementation uses Forms, Windows, SysUtils, Controls, cxControls, uDialogUtils, uDataModuleClientes, uEditorRegistryUtils, - uDataTableUtils, uDADataTable, DB, schContactosClient_Intf, uEtiquetasContactosReportController, + uDataTableUtils, uDADataTable, uDAInterfaces, DB, schContactosClient_Intf, uEtiquetasContactosReportController, uIEditorElegirClientes, uIEditorElegirDireccionEntrega, uEditorGridBase, uModuleController, - Dialogs, uIntegerListUtils, uFactuGES_App, + Dialogs, uIntegerListUtils, uFactuGES_App, uStringsUtils, uPlugins_Intf; { TClientesController } @@ -94,6 +100,29 @@ begin FiltrarEmpresa(Result); end; +function TClientesController.BuscarTodosVendedor(const ID_Vendedor: Integer): IBizCliente; +var + Condicion: TDAWhereExpression; +begin + ShowHourglassCursor; + try + Result := (BuscarTodos as IBizCliente); + + with Result.DataTable.DynamicWhere do + begin + // ID_VENDEDOR + Condicion := NewBinaryExpression(NewField('', fld_ClientesID_AGENTE), NewConstant(ID_VENDEDOR, datInteger), dboEqual); + + if IsEmpty then + Expression := Condicion + else + Expression := NewBinaryExpression(Expression, Condicion, dboAnd); + end; + finally + HideHourglassCursor; + end; +end; + constructor TClientesController.Create; begin inherited; @@ -517,6 +546,38 @@ begin end; end; +procedure TClientesController.VerTodos(AContactos: IBizContacto; + const AVerModal: Boolean; const AWindowCaption, AHeaderText: String); +var + AEditor : IEditorClientes; +begin + AEditor := NIL; + + CreateEditor('EditorClientes', IEditorClientes, AEditor); + if Assigned(AEditor) then + try + if not EsCadenaVacia(AWindowCaption) then + AEditor.WindowCaption := AWindowCaption; + + if not EsCadenaVacia(AHeaderText) then + AEditor.HeaderText := AHeaderText; + + AEditor.Contactos := AContactos; + AEditor.Controller := Self; + AEditor.MultiSelect := True; + + if AVerModal then + AEditor.ShowModal + else + AEditor.ShowEmbedded; + + finally + if AVerModal then + AEditor.Release; + AEditor := NIL; + end; +end; + procedure TClientesController.VerTodos(AContactos: IBizContacto); var AEditor : IEditorClientes; diff --git a/Source/Modulos/Contactos/Controller/uVendedoresController.pas b/Source/Modulos/Contactos/Controller/uVendedoresController.pas index b3b4f93..5d69c2d 100644 --- a/Source/Modulos/Contactos/Controller/uVendedoresController.pas +++ b/Source/Modulos/Contactos/Controller/uVendedoresController.pas @@ -18,6 +18,8 @@ type function DarListaVendedores : TStringList; function BuscarTodos: IBizContacto; overload; function BuscarTodos(const CadenaIDs: String): IBizContacto; overload; + procedure VerPedidosDeVendedor(AVendedor : IBizVendedor); + procedure VerClientesDeVendedor(AVendedor : IBizVendedor); end; TVendedoresController = class(TContactosController, IVendedoresController) @@ -37,14 +39,16 @@ type function Eliminar(AVendedor: IBizContacto; AllItems: Boolean = false): Boolean; overload; function EsEliminable(AVendedor: IBizContacto): Boolean; + procedure VerPedidosDeVendedor(AVendedor : IBizVendedor); + procedure VerClientesDeVendedor(AVendedor : IBizVendedor); end; implementation uses Windows, SysUtils, Controls, cxControls, Dialogs, uDataModuleVendedores, uEditorRegistryUtils, - uDataTableUtils, uDADataTable, DB, schContactosClient_Intf, - uEditorGridBase, uDAInterfaces, uIEditorElegirVendedores; + uDataTableUtils, uDADataTable, DB, schContactosClient_Intf, uModuleController, + uEditorGridBase, uDAInterfaces, uIEditorElegirVendedores, uPlugins_Intf, uFactuGES_App; { TVendedorController } @@ -246,6 +250,48 @@ begin end; end; +procedure TVendedoresController.VerClientesDeVendedor(AVendedor: IBizVendedor); +var + AModule : TModuleController; + APlugin : IMCContactos; +begin + if not Assigned(AVendedor) then + raise Exception.Create ('Vendedor no asignado (VerPedidosDeVendedor)'); + + if not AVendedor.DataTable.Active then + AVendedor.DataTable.Active := True; + + AModule := AppFactuGES.GetModule(MODULENAME_CONTACTOS); + if Assigned(AModule) then + try + if Supports(AModule, IMCContactos, APlugin) then + APlugin.VerClientesVendedor(AVendedor.ID, AVendedor.NOMBRE); + finally + APlugin := NIL; + end; +end; + +procedure TVendedoresController.VerPedidosDeVendedor(AVendedor: IBizVendedor); +var + AModule : TModuleController; + APlugin : IMCPedidosCliente; +begin + if not Assigned(AVendedor) then + raise Exception.Create ('Vendedor no asignado (VerPedidosDeVendedor)'); + + if not AVendedor.DataTable.Active then + AVendedor.DataTable.Active := True; + + AModule := AppFactuGES.GetModule(MODULENAME_PEDIDOS_CLIENTE); + if Assigned(AModule) then + try + if Supports(AModule, IMCPedidosCliente, APlugin) then + APlugin.VerPedidosVendedor(AVendedor.ID, AVendedor.NOMBRE); + finally + APlugin := NIL; + end; +end; + procedure TVendedoresController.VerTodos(AContactos: IBizContacto); var AEditor : IEditorVendedores; diff --git a/Source/Modulos/Contactos/Plugin/uPluginContactos.pas b/Source/Modulos/Contactos/Plugin/uPluginContactos.pas index 178f939..baf2311 100644 --- a/Source/Modulos/Contactos/Plugin/uPluginContactos.pas +++ b/Source/Modulos/Contactos/Plugin/uPluginContactos.pas @@ -4,14 +4,9 @@ interface uses uModuleController, uInterfaces, uHostManager, Menus, Classes, ActnList, - ImgList, Controls, PngImageList; + ImgList, Controls, PngImageList, uPlugins_Intf; type - IMCContactos = interface(IInterface) - ['{BAEDC5D8-2FE8-4907-8027-C60861829BA9}'] - - end; - TPluginContactos = class(TModuleController, IMCContactos) actClientes: TAction; actProveedores: TAction; @@ -47,6 +42,8 @@ type public constructor Create(AOwner: TComponent); override; destructor Destroy; override; + procedure VerClientesVendedor(const ID_Vendedor: Integer; + const ANombreVendedor : String = ''); end; implementation @@ -55,11 +52,10 @@ implementation uses Forms, Dialogs, uGUIBase, uCustomEditor, SysUtils, uContactosController, - uClientesController, uProveedoresController, uEmpleadosController, - uVendedoresController, - uGruposClienteController, uBizGruposCliente, uGruposProveedorController, - uBizGruposProveedor, uGruposEmpleadoController, uBizGruposEmpleado, - uContactosViewRegister, uBizContactos, uFactuGES_App; + uClientesController, uProveedoresController, uEmpleadosController, cxControls, + uVendedoresController, uGruposClienteController, uBizGruposCliente, + uGruposProveedorController, uBizGruposProveedor, uGruposEmpleadoController, + uBizGruposEmpleado, uContactosViewRegister, uBizContactos, uFactuGES_App; function GetModule : TModuleController; begin @@ -160,6 +156,7 @@ end; constructor TPluginContactos.Create(AOwner: TComponent); begin inherited; + ModuleName := MODULENAME_CONTACTOS; uContactosViewRegister.RegisterViews; end; @@ -169,6 +166,29 @@ begin inherited; end; +procedure TPluginContactos.VerClientesVendedor(const ID_Vendedor: Integer; + const ANombreVendedor: String); +var + AClientesController : IClientesController; + AClientesVendedor : IBizCliente; + AText : String; +begin + AText := Format('Lista de clientes del vendedor %s', [ANombreVendedor]); + AClientesController := TClientesController.Create; + try + ShowHourglassCursor; + try + AClientesVendedor := AClientesController.BuscarTodosVendedor(ID_Vendedor); + finally + HideHourglassCursor; + end; + AClientesController.VerTodos(AClientesVendedor, True, AText); + finally + AClientesVendedor := NIL; + AClientesController := NIL; + end; +end; + initialization uHostManager.RegisterModuleClass(TPluginContactos); diff --git a/Source/Modulos/Contactos/Views/Contactos_view.dproj b/Source/Modulos/Contactos/Views/Contactos_view.dproj index b3ce51c..46125bf 100644 --- a/Source/Modulos/Contactos/Views/Contactos_view.dproj +++ b/Source/Modulos/Contactos/Views/Contactos_view.dproj @@ -49,63 +49,63 @@ MainSource - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
fEditorCliente
diff --git a/Source/Modulos/Contactos/Views/uEditorClientes.dfm b/Source/Modulos/Contactos/Views/uEditorClientes.dfm index 057ad61..d703375 100644 --- a/Source/Modulos/Contactos/Views/uEditorClientes.dfm +++ b/Source/Modulos/Contactos/Views/uEditorClientes.dfm @@ -224,9 +224,6 @@ inherited fEditorClientes: TfEditorClientes BuiltInReportLink = True end end - inherited dxPSEngineController1: TdxPSEngineController - Active = True - end inherited cxViewGridPopupMenu: TcxGridPopupMenu PopupMenus = < item @@ -263,10 +260,6 @@ inherited fEditorClientes: TfEditorClientes Enabled = True Visible = True end - inherited actExportarExcel: TAction - Enabled = False - Visible = False - end object actDocumentosPedidos: TAction Category = 'Acciones' Caption = 'Pedidos' diff --git a/Source/Modulos/Contactos/Views/uEditorClientes.pas b/Source/Modulos/Contactos/Views/uEditorClientes.pas index 2eaddcb..340b1b5 100644 --- a/Source/Modulos/Contactos/Views/uEditorClientes.pas +++ b/Source/Modulos/Contactos/Views/uEditorClientes.pas @@ -121,6 +121,9 @@ constructor TfEditorClientes.Create(AOwner: TComponent); begin inherited; ViewGrid := frViewClientes1; + + FHeaderText := 'Lista de clientes - '; + FWindowCaption := FHeaderText; end; procedure TfEditorClientes.EliminarInterno; @@ -227,7 +230,7 @@ procedure TfEditorClientes.PonerTitulos(const ATitulo: string); var FTitulo : String; begin - FTitulo := 'Lista de clientes - ' + AppFactuGES.EmpresaActiva.NOMBRE; + FTitulo := FWindowCaption + ' - ' + AppFactuGES.EmpresaActiva.NOMBRE; inherited PonerTitulos(FTitulo); end; diff --git a/Source/Modulos/Contactos/Views/uEditorContacto.dfm b/Source/Modulos/Contactos/Views/uEditorContacto.dfm index 77df9aa..c548a57 100644 --- a/Source/Modulos/Contactos/Views/uEditorContacto.dfm +++ b/Source/Modulos/Contactos/Views/uEditorContacto.dfm @@ -7,6 +7,7 @@ inherited fEditorContacto: TfEditorContacto ClientWidth = 632 Scaled = False ExplicitWidth = 640 + ExplicitHeight = 240 PixelsPerInch = 96 TextHeight = 13 inherited JvNavPanelHeader: TJvNavPanelHeader @@ -109,6 +110,18 @@ inherited fEditorContacto: TfEditorContacto inherited ToolBar1: TToolBar Width = 618 ExplicitWidth = 618 + inherited ToolButton1: TToolButton + ExplicitWidth = 113 + end + inherited ToolButton4: TToolButton + ExplicitWidth = 113 + end + inherited ToolButton2: TToolButton + ExplicitWidth = 113 + end + inherited ToolButton7: TToolButton + ExplicitWidth = 113 + end end end end @@ -140,6 +153,18 @@ inherited fEditorContacto: TfEditorContacto inherited ToolBar1: TToolBar Width = 618 ExplicitWidth = 618 + inherited ToolButton1: TToolButton + ExplicitWidth = 113 + end + inherited ToolButton4: TToolButton + ExplicitWidth = 113 + end + inherited ToolButton2: TToolButton + ExplicitWidth = 113 + end + inherited ToolButton7: TToolButton + ExplicitWidth = 113 + end end end end @@ -167,15 +192,15 @@ inherited fEditorContacto: TfEditorContacto end inherited StatusBarImages: TPngImageList [7] end - inherited JvFormStorage: TJvFormStorage + inherited LargeImages: TPngImageList [8] + Top = 112 + end + inherited SmallImages: TPngImageList [9] + Top = 112 + end + inherited JvFormStorage: TJvFormStorage [10] Top = 144 end - inherited LargeImages: TPngImageList [9] - Top = 112 - end - inherited SmallImages: TPngImageList [10] - Top = 112 - end inherited EditorActionList: TActionList [11] Top = 128 inherited actGuardarCerrar: TAction diff --git a/Source/Modulos/Contactos/Views/uEditorVendedores.dfm b/Source/Modulos/Contactos/Views/uEditorVendedores.dfm index 293bcee..b9ca23a 100644 --- a/Source/Modulos/Contactos/Views/uEditorVendedores.dfm +++ b/Source/Modulos/Contactos/Views/uEditorVendedores.dfm @@ -57,7 +57,25 @@ inherited fEditorVendedores: TfEditorVendedores Width = 786 ExplicitWidth = 786 inherited tbxMain: TSpTBXToolbar - ExplicitWidth = 474 + ExplicitWidth = 641 + object SpTBXSubmenuItem1: TSpTBXSubmenuItem [13] + Caption = 'Documentos relacionados' + DisplayMode = nbdmImageAndText + ImageIndex = 23 + Images = SmallImages + OnClick = actDocumentosPedidosExecute + DropdownCombo = True + object SpTBXItem3: TSpTBXItem + Action = ActClientes + DisplayMode = nbdmImageAndText + Images = SmallImages + end + object SpTBXItem2: TSpTBXItem + Action = actDocumentosPedidos + DisplayMode = nbdmImageAndText + Images = SmallImages + end + end end inherited tbxMenu: TSpTBXToolbar ExplicitWidth = 786 @@ -103,6 +121,7 @@ inherited fEditorVendedores: TfEditorVendedores Width = 786 ExplicitWidth = 786 inherited TBXDockablePanel1: TSpTBXDockablePanel + Width = 786 ExplicitWidth = 786 inherited dxLayoutControl1: TdxLayoutControl Width = 786 @@ -145,8 +164,8 @@ inherited fEditorVendedores: TfEditorVendedores end end inherited TBXAlignmentPanel1: TSpTBXDockablePanel - Width = 786 - ExplicitWidth = 786 + Width = 776 + ExplicitWidth = 776 inherited tbxBotones: TSpTBXToolbar Width = 776 ExplicitWidth = 776 @@ -156,14 +175,15 @@ inherited fEditorVendedores: TfEditorVendedores end inherited pnlAgrupaciones: TSpTBXDockablePanel Top = 357 + Width = 786 ExplicitTop = 357 ExplicitWidth = 786 inherited TBXAlignmentPanel1: TSpTBXDockablePanel Width = 786 ExplicitWidth = 786 inherited TBXToolbar1: TSpTBXToolbar - Width = 776 - ExplicitWidth = 776 + Width = 786 + ExplicitWidth = 786 end end end @@ -173,6 +193,9 @@ inherited fEditorVendedores: TfEditorVendedores BuiltInReportLink = True end end + inherited dxPSEngineController1: TdxPSEngineController + Active = True + end inherited cxViewGridPopupMenu: TcxGridPopupMenu PopupMenus = < item @@ -186,9 +209,19 @@ inherited fEditorVendedores: TfEditorVendedores inherited actNuevo: TAction ImageIndex = 22 end - inherited actExportarExcel: TAction - Enabled = False - Visible = False + object actDocumentosPedidos: TAction + Category = 'Acciones' + Caption = 'Pedidos' + ImageIndex = 24 + OnExecute = actDocumentosPedidosExecute + OnUpdate = actDocumentosPedidosUpdate + end + object ActClientes: TAction + Category = 'Acciones' + Caption = 'Clientes' + ImageIndex = 25 + OnExecute = ActClientesExecute + OnUpdate = ActClientesUpdate end end inherited SmallImages: TPngImageList [5] @@ -715,6 +748,151 @@ inherited fEditorVendedores: TfEditorVendedores 49454E44AE426082} Name = 'PngImage22' Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000018E4944415478DA + 6364C002966C3EF19F010F88F1B56084B119CF4E6443516C9CFF8B116440B48F + 398AA6BFFFFE31FCF9F38F61CDAEB30CBD5316329CDF399D116E8051DE4FB0A2 + 7393D8190E9FFFC520127C8201D90098E6DF7FFE326CDC778141469483A1B07E + 26D810B801FF7F7F6498942600D7943FFF3F866610BDF5D025B00B50BC6098F9 + 8AE1CFD7070C971799A1385B3FE73B8AE6DF7F41F45F8603A76F81E5BB27CD87 + 18A01B778AE1EFB7070CD7D68431A07B2779EA0F14CD20F69FBFFF184E5CBA87 + 30402B6415C3DFAFF7196E6E2F67C0E69DA8BECF289A7FFDFECB70EEFA438401 + EA9E9D0CEF2F7530BC7AFA9E01977744435FC03583BC74F9F613840120A78280 + AD211B033EEF78D4BD046BFE0D34E4C683E71003906D21C63B76A58F197E010D + B9F7E4157603B07907E42290A173DA0A192C0A1F805DF0F8E55BEC0660F30E48 + 33C8D0B55B5E3218E7DC0587C5F337EF310DC0E59D3F5F6E317CBEB70E6C8058 + E829B81A8206C0BC03032003163ECF84F3FF337EC76F00CC3BC8A06001AA1EC6 + FFFFF1E65C820000241257B48E5A5E7D0000000049454E44AE426082} + Name = 'PngImage23' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD25200000A4D694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53775893F7163EDF + F7650F5642D8F0B1976C81002223AC08C81059A21092006184101240C585880A + 561415119C4855C482D50A489D88E2A028B867418A885A8B555C38EE1FDCA7B5 + 7D7AEFEDEDFBD7FBBCE79CE7FCCE79CF0F8011122691E6A26A003952853C3AD8 + 1F8F4F48C4C9BD80021548E0042010E6CBC26705C50000F00379787E74B03FFC + 01AF6F00020070D52E2412C7E1FF83BA50265700209100E02212E70B01905200 + C82E54C81400C81800B053B3640A009400006C797C422200AA0D00ECF4493E05 + 00D8A993DC1700D8A21CA908008D0100992847240240BB00605581522C02C0C2 + 00A0AC40222E04C0AE018059B632470280BD0500768E58900F4060008099422C + CC0020380200431E13CD03204C03A030D2BFE0A95F7085B8480100C0CB95CD97 + 4BD23314B895D01A77F2F0E0E221E2C26CB142611729106609E4229C979B2313 + 48E7034CCE0C00001AF9D1C1FE383F90E7E6E4E1E666E76CEFF4C5A2FE6BF06F + 223E21F1DFFEBC8C020400104ECFEFDA5FE5E5D60370C701B075BF6BA95B00DA + 560068DFF95D33DB09A05A0AD07AF98B7938FC401E9EA150C83C1D1C0A0B0BED + 2562A1BD30E38B3EFF33E16FE08B7EF6FC401EFEDB7AF000719A4099ADC0A383 + FD71616E76AE528EE7CB0442316EF7E723FEC7857FFD8E29D1E234B15C2C158A + F15889B850224DC779B952914421C995E212E97F32F11F96FD0993770D00AC86 + 4FC04EB607B5CB6CC07EEE01028B0E58D27600407EF32D8C1A0B910010673432 + 79F7000093BFF98F402B0100CD97A4E30000BCE8185CA894174CC608000044A0 + 812AB041070CC114ACC00E9CC11DBCC01702610644400C24C03C104206E4801C + 0AA11896411954C03AD804B5B0031AA0119AE110B4C131380DE7E0125C81EB70 + 170660189EC218BC86090441C8081361213A8811628ED822CE0817998E042261 + 48349280A420E988145122C5C872A402A9426A915D4823F22D7214398D5C40FA + 90DBC820328AFC8ABC47319481B25103D4027540B9A81F1A8AC6A073D174340F + 5D8096A26BD11AB41E3D80B6A2A7D14BE87574007D8A8E6380D1310E668CD961 + 5C8C87456089581A26C71663E55835568F35631D583776151BC09E61EF082402 + 8B8013EC085E8410C26C82909047584C5843A825EC23B412BA085709838431C2 + 272293A84FB4257A12F9C478623AB1905846AC26EE211E219E255E270E135F93 + 48240EC992E44E0A21259032490B496B48DB482DA453A43ED210699C4C26EB90 + 6DC9DEE408B280AC209791B7900F904F92FBC9C3E4B7143AC588E24C09A22452 + A494124A35653FE504A59F324299A0AA51CDA99ED408AA883A9F5A496DA07650 + 2F5387A91334759A25CD9B1643CBA42DA3D5D09A696769F7682FE974BA09DD83 + 1E4597D097D26BE807E9E7E983F4770C0D860D83C7486228196B197B19A718B7 + 192F994CA605D39799C85430D7321B9967980F986F55582AF62A7C1591CA1295 + 3A9556957E95E7AA545573553FD579AA0B54AB550FAB5E567DA64655B350E3A9 + 09D416ABD5A91D55BBA936AECE5277528F50CF515FA3BE5FFD82FA630DB28685 + 46A08648A35463B7C6198D2116C63265F15842D6725603EB2C6B984D625BB2F9 + EC4C7605FB1B762F7B4C534373AA66AC6691669DE671CD010EC6B1E0F039D99C + 4ACE21CE0DCE7B2D032D3F2DB1D66AAD66AD7EAD37DA7ADABEDA62ED72ED16ED + EBDAEF75709D409D2C9DF53A6D3AF77509BA36BA51BA85BADB75CFEA3ED363EB + 79E909F5CAF50EE9DDD147F56DF4A3F517EAEFD6EFD11F373034083690196C31 + 3863F0CC9063E86B9869B8D1F084E1A811CB68BA91C468A3D149A327B826EE87 + 67E33578173E66AC6F1C62AC34DE65DC6B3C61626932DBA4C4A4C5E4BE29CD94 + 6B9A66BAD1B4D374CCCCC82CDCACD8ACC9EC8E39D59C6B9E61BED9BCDBFC8D85 + A5459CC54A8B368BC796DA967CCB05964D96F7AC98563E567956F556D7AC49D6 + 5CEB2CEB6DD6576C501B579B0C9B3A9BCBB6A8AD9BADC4769B6DDF14E2148F29 + D229F5536EDA31ECFCEC0AEC9AEC06ED39F661F625F66DF6CF1DCC1C121DD63B + 743B7C727475CC766C70BCEBA4E134C3A9C4A9C3E957671B67A1739DF33517A6 + 4B90CB1297769717536DA78AA76E9F7ACB95E51AEEBAD2B5D3F5A39BBB9BDCAD + D96DD4DDCC3DC57DABFB4D2E9B1BC95DC33DEF41F4F0F758E271CCE39DA79BA7 + C2F390E72F5E765E595EFBBD1E4FB39C269ED6306DC8DBC45BE0BDCB7B603A3E + 3D65FACEE9033EC63E029F7A9F87BEA6BE22DF3DBE237ED67E997E07FC9EFB3B + FACBFD8FF8BFE179F216F14E056001C101E501BD811A81B3036B031F049904A5 + 0735058D05BB062F0C3E15420C090D591F72936FC017F21BF96333DC672C9AD1 + 15CA089D155A1BFA30CC264C1ED6118E86CF08DF107E6FA6F94CE9CCB60888E0 + 476C88B81F69199917F97D14292A32AA2EEA51B453747174F72CD6ACE459FB67 + BD8EF18FA98CB93BDB6AB6727667AC6A6C526C63EC9BB880B8AAB8817887F845 + F1971274132409ED89E4C4D8C43D89E37302E76C9A339CE49A54967463AEE5DC + A2B917E6E9CECB9E773C593559907C3885981297B23FE5832042502F184FE5A7 + 6E4D1D13F2849B854F45BEA28DA251B1B7B84A3C92E69D5695F638DD3B7D43FA + 68864F4675C633094F522B79911992B923F34D5644D6DEACCFD971D92D39949C + 949CA3520D6996B42BD730B728B74F662B2B930DE479E66DCA1B9387CAF7E423 + F973F3DB156C854CD1A3B452AE500E164C2FA82B785B185B78B848BD485AD433 + DF66FEEAF9230B82167CBD90B050B8B0B3D8B87859F1E022BF45BB16238B5317 + 772E315D52BA647869F0D27DCB68CBB296FD50E2585255F26A79DCF28E5283D2 + A5A5432B82573495A994C9CB6EAEF45AB9631561956455EF6A97D55B567F2A17 + 955FAC70ACA8AEF8B046B8E6E2574E5FD57CF5796DDADADE4AB7CAEDEB48EBA4 + EB6EACF759BFAF4ABD6A41D5D086F00DAD1BF18DE51B5F6D4ADE74A17A6AF58E + CDB4CDCACD03356135ED5BCCB6ACDBF2A136A3F67A9D7F5DCB56FDADABB7BED9 + 26DAD6BFDD777BF30E831D153BDEEF94ECBCB52B78576BBD457DF56ED2EE82DD + 8F1A621BBABFE67EDDB847774FC59E8F7BA57B07F645EFEB6A746F6CDCAFBFBF + B2096D52368D1E483A70E59B806FDA9BED9A77B5705A2A0EC241E5C127DFA67C + 7BE350E8A1CEC3DCC3CDDF997FB7F508EB48792BD23ABF75AC2DA36DA03DA1BD + EFE88CA39D1D5E1D47BEB7FF7EEF31E36375C7358F579EA09D283DF1F9E48293 + E3A764A79E9D4E3F3DD499DC79F74CFC996B5D515DBD6743CF9E3F1774EE4CB7 + 5FF7C9F3DEE78F5DF0BC70F422F762DB25B74BAD3DAE3D477E70FDE148AF5B6F + EB65F7CBED573CAE74F44DEB3BD1EFD37FFA6AC0D573D7F8D72E5D9F79BDEFC6 + EC1BB76E26DD1CB825BAF5F876F6ED17770AEE4CDC5D7A8F78AFFCBEDAFDEA07 + FA0FEA7FB4FEB165C06DE0F860C060CFC3590FEF0E09879EFE94FFD387E1D247 + CC47D52346238D8F9D1F1F1B0D1ABDF264CE93E1A7B2A713CFCA7E56FF79EB73 + ABE7DFFDE2FB4BCF58FCD8F00BF98BCFBFAE79A9F372EFABA9AF3AC723C71FBC + CE793DF1A6FCADCEDB7DEFB8EFBADFC7BD1F9928FC40FE50F3D1FA63C7A7D04F + F73EE77CFEFC2FF784F3FB25D29F33000001764944415478DA63FCFFFF3FC394 + C53BFE33900172623D1819610600394469FAF3F71FC3EF3F7F19ACFDF319CEED + 98866A80CB7E5B14C57B1C0F836964F1CD56FB18E6AEDACB306FE9264C03F081 + 5FBFFF826D06E1251B0E623700DD05D8C07283ED0C2BB71CC16D00CCD920F00F + 28F7E7CF3FB8CD2167DC1816EB6C6558BBE3187E03602ED9667380C1EB8803DC + E6C80B9E0CF33436316CDA7312BF01309B3FDF3ECCF072712C3E1FB96018B0CB + E11083DB013BB0ECA45D0F18941B6A18D8D9D33174FEFC3993615E620B038601 + 2067C3FCFCAC4D8D41ABFD3158311CFCF801C4DF1966EF326060DE9E8A302023 + CA8DC1E3903D8A2D2017A01800D2FCE11DC480534EA806248739836D85857AF4 + 252F5403609AC106FC64987D2B08D580B8200794284BB8E68B30E0E34484E60F + 1F202E7895826A40949F1D5C33DCA0194610031ED62334C3BCF0AB0CD580502F + 6B86D5DB8EA28481D3B554702CCC5E258F350E510C00250C74A0CDFB86C18AF5 + 38CE44602FCFE00200175B62A961F8A2FD0000000049454E44AE426082} + Name = 'PngImage24' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001EC4944415478DA + A5934B6813511486BF541B88CD26620DA262A51BDB8520158308D5852055B01B + A3E8CEBD2E7CE063512852D09D2E82E04604AB1B5D4451B059D8A6010D84D842 + 5B6B6B1A8D414A4C9B18EB4C27F3F466D41943ED4233309C3BDC39DFFFDF9F7B + 3C9665D1C8E379323CD510C1061C3DD0697F48C531BEE7A7EDB57F6B072DADBB + 9C1F4DE154D74D34DD70DE43272FB9805AF3975484E56F1A856289C2D23CFB4F + 44D8D4BE17DD30B932A8D629B7358D70F7C1D39F8023FBB6917B35C0D78F590C + 43EC5A06954A8505A5C4B1CB2947F14F07D158D205F48436F03E761E640FEB7C + 3ED660204B3263B9597A2F24ED866B8F59DD414F28C8E7443FDE6A55A883AAA9 + 28F232F3FA7ABA8EDFAC53FEBD1E1A4DBB805A0685370F91E65E0880084BD358 + 9255CCB65EDAF784571E413378F97ABC1E90C8C6C88EDC6687E9150EAAA415D8 + BCFB14DD9D875734D76A2235E102B674A85C1CEEA3B498E374F020A666727F21 + 4E662ECFDBAB19BBB9EFD6B3BA0C423B37BA80A4F188E733A32881327EA91991 + 22924FA7B9E427373B45FADCB4A3ACFD72929E78E702EE1506C8E68B18AD0AEA + 5A595C2F44A02D3495BD7CF8344EF2CC24D7EFC4567770361EA65C2EFCF5AA06 + 0241A2E1215BD5302DBB9AA24ECE645C4077D77606A3F17F9E0307D07F23F2FF + C3D4E838FF008E7263BE13CA147C0000000049454E44AE426082} + Name = 'PngImage25' + Background = clWindow end> Bitmap = {} end diff --git a/Source/Modulos/Contactos/Views/uEditorVendedores.pas b/Source/Modulos/Contactos/Views/uEditorVendedores.pas index 5f93360..0ceeef7 100644 --- a/Source/Modulos/Contactos/Views/uEditorVendedores.pas +++ b/Source/Modulos/Contactos/Views/uEditorVendedores.pas @@ -11,7 +11,7 @@ uses JvExControls, JvComponent, JvNavigationPane, uViewGridBase, uViewGrid, uViewContactos, uIEditorVendedores, pngimage, JvExComCtrls, JvStatusBar, JSDialog, uContactosController, uDAInterfaces, - uViewVendedores, dxGDIPlusClasses; + uViewVendedores, dxGDIPlusClasses, StdCtrls, TntStdCtrls, SpTBXEditors; type TfEditorVendedores = class(TfEditorContactos, IEditorVendedores) @@ -19,6 +19,15 @@ type JsPrevisualizarDialog: TJSDialog; JsImprimirDialog: TJSDialog; JsListaContactosNoEliminados: TJSDialog; + SpTBXSubmenuItem1: TSpTBXSubmenuItem; + SpTBXItem2: TSpTBXItem; + actDocumentosPedidos: TAction; + ActClientes: TAction; + SpTBXItem3: TSpTBXItem; + procedure actDocumentosPedidosExecute(Sender: TObject); + procedure actDocumentosPedidosUpdate(Sender: TObject); + procedure ActClientesExecute(Sender: TObject); + procedure ActClientesUpdate(Sender: TObject); protected procedure EliminarInterno; override; @@ -38,6 +47,34 @@ uses {$R *.dfm} +procedure TfEditorVendedores.ActClientesExecute(Sender: TObject); +begin + inherited; + (FController as IVendedoresController).VerClientesDeVendedor(IBizVendedor(FContactos)); +end; + +procedure TfEditorVendedores.ActClientesUpdate(Sender: TObject); +begin + inherited; + (Sender as TAction).Enabled := HayDatos + and not ViewGrid.IsEmpty + and ViewGrid.EsSeleccionCeldaDatos +end; + +procedure TfEditorVendedores.actDocumentosPedidosExecute(Sender: TObject); +begin + inherited; + (FController as IVendedoresController).VerPedidosDeVendedor(IBizVendedor(FContactos)); +end; + +procedure TfEditorVendedores.actDocumentosPedidosUpdate(Sender: TObject); +begin + inherited; + (Sender as TAction).Enabled := HayDatos + and not ViewGrid.IsEmpty + and ViewGrid.EsSeleccionCeldaDatos +end; + constructor TfEditorVendedores.Create(AOwner: TComponent); begin inherited; diff --git a/Source/Modulos/Pedidos de cliente/Controller/PedidosCliente_controller.drc b/Source/Modulos/Pedidos de cliente/Controller/PedidosCliente_controller.drc index a087717..c43ab23 100644 --- a/Source/Modulos/Pedidos de cliente/Controller/PedidosCliente_controller.drc +++ b/Source/Modulos/Pedidos de cliente/Controller/PedidosCliente_controller.drc @@ -13,4 +13,4 @@ BEGIN END /* C:\Codigo noviseda\Source\Modulos\Pedidos de cliente\Controller\PedidosCliente_controller.res */ -/* C:\DOCUME~1\Usuario\CONFIG~1\Temp\dtf30E.tmp */ +/* C:\Codigo noviseda\Source\Modulos\Pedidos de cliente\Controller\PedidosCliente_controller.drf */ diff --git a/Source/Modulos/Pedidos de cliente/Controller/uPedidosClienteController.pas b/Source/Modulos/Pedidos de cliente/Controller/uPedidosClienteController.pas index c0cf667..6969917 100644 --- a/Source/Modulos/Pedidos de cliente/Controller/uPedidosClienteController.pas +++ b/Source/Modulos/Pedidos de cliente/Controller/uPedidosClienteController.pas @@ -24,6 +24,7 @@ type function Buscar(const ID: Integer): IBizPedidoCliente; function BuscarTodos: IBizPedidoCliente; overload; function BuscarTodos(const ID_Cliente: Integer): IBizPedidoCliente; overload; + function BuscarTodosVendedor(const ID_Vendedor: Integer): IBizPedidoCliente; function BuscarPendientes : IBizPedidoCliente; function BuscarArticulosPendientes: IBizArticulosPendientes; procedure Ver(APedido : IBizPedidoCliente); @@ -108,7 +109,8 @@ type function Anadir(APedido : IBizPedidoCliente) : Boolean; function Buscar(const ID: Integer): IBizPedidoCliente; function BuscarTodos: IBizPedidoCliente; overload; - function BuscarTodos(const ID_Cliente: Integer): IBizPedidoCliente; overload; + function BuscarTodos(const ID_Cliente: Integer): IBizPedidoCliente; overload; + function BuscarTodosVendedor(const ID_Vendedor: Integer): IBizPedidoCliente; function BuscarPendientes : IBizPedidoCliente; function BuscarArticulosPendientes: IBizArticulosPendientes; function Nuevo : IBizPedidoCliente; @@ -225,6 +227,30 @@ begin end; end; +function TPedidosClienteController.BuscarTodosVendedor( + const ID_Vendedor: Integer): IBizPedidoCliente; +var + Condicion: TDAWhereExpression; +begin + ShowHourglassCursor; + try + Result := BuscarTodos; + + with Result.DataTable.DynamicWhere do + begin + // ID_VENDEDOR + Condicion := NewBinaryExpression(NewField('', fld_PedidosClienteID_VENDEDOR), NewConstant(ID_VENDEDOR, datInteger), dboEqual); + + if IsEmpty then + Expression := Condicion + else + Expression := NewBinaryExpression(Expression, Condicion, dboAnd); + end; + finally + HideHourglassCursor; + end; +end; + function TPedidosClienteController.BuscarArticulosPendientes: IBizArticulosPendientes; begin ShowHourglassCursor; diff --git a/Source/Modulos/Pedidos de cliente/Data/PedidosCliente_data.drc b/Source/Modulos/Pedidos de cliente/Data/PedidosCliente_data.drc index 7300f1d..882ce9d 100644 --- a/Source/Modulos/Pedidos de cliente/Data/PedidosCliente_data.drc +++ b/Source/Modulos/Pedidos de cliente/Data/PedidosCliente_data.drc @@ -14,4 +14,4 @@ END /* C:\Codigo noviseda\Source\Modulos\Pedidos de cliente\Data\uDataModulePedidosCliente.dfm */ /* C:\Codigo noviseda\Source\Modulos\Pedidos de cliente\Data\PedidosCliente_data.res */ -/* C:\DOCUME~1\Usuario\CONFIG~1\Temp\dtf30C.tmp */ +/* C:\DOCUME~1\Usuario\CONFIG~1\Temp\dtfBC.tmp */ diff --git a/Source/Modulos/Pedidos de cliente/Data/uDataModulePedidosCliente.dfm b/Source/Modulos/Pedidos de cliente/Data/uDataModulePedidosCliente.dfm index 1ead32e..ad0be24 100644 --- a/Source/Modulos/Pedidos de cliente/Data/uDataModulePedidosCliente.dfm +++ b/Source/Modulos/Pedidos de cliente/Data/uDataModulePedidosCliente.dfm @@ -242,6 +242,10 @@ inherited DataModulePedidosCliente: TDataModulePedidosCliente Size = 255 DisplayLabel = 'PedidosCliente_DATOS_BANCARIOS' DictionaryEntry = 'PedidosCliente_DATOS_BANCARIOS' + end + item + Name = 'ID_VENDEDOR' + DataType = datInteger end> Params = <> StreamingOptions = [soDisableEventsWhileStreaming] diff --git a/Source/Modulos/Pedidos de cliente/Model/PedidosCliente_model.drc b/Source/Modulos/Pedidos de cliente/Model/PedidosCliente_model.drc index 99744c7..776c1fd 100644 --- a/Source/Modulos/Pedidos de cliente/Model/PedidosCliente_model.drc +++ b/Source/Modulos/Pedidos de cliente/Model/PedidosCliente_model.drc @@ -13,4 +13,4 @@ BEGIN END /* C:\Codigo noviseda\Source\Modulos\Pedidos de cliente\Model\PedidosCliente_model.res */ -/* C:\DOCUME~1\Usuario\CONFIG~1\Temp\dtf30A.tmp */ +/* C:\DOCUME~1\Usuario\CONFIG~1\Temp\dtfBA.tmp */ diff --git a/Source/Modulos/Pedidos de cliente/Model/schPedidosClienteClient_Intf.pas b/Source/Modulos/Pedidos de cliente/Model/schPedidosClienteClient_Intf.pas index 800afd1..1eec42b 100644 --- a/Source/Modulos/Pedidos de cliente/Model/schPedidosClienteClient_Intf.pas +++ b/Source/Modulos/Pedidos de cliente/Model/schPedidosClienteClient_Intf.pas @@ -1,6 +1,5 @@ unit schPedidosClienteClient_Intf; -{$D-} interface uses @@ -10,13 +9,13 @@ const { Data table rules ids Feel free to change them to something more human readable but make sure they are unique in the context of your application } - RID_PedidoCliente_Art_Colores_Pendientes = '{DAE6EDB6-AC3C-48FE-8267-9FCF8F893536}'; - RID_ListaAnosPedidos = '{8A8427D3-3139-4A1B-9A96-1491FD942CD2}'; - RID_ArticulosPendientes = '{EA7857E1-253B-4C47-9E62-0030C8D0CB2E}'; - RID_PedidosCliente = '{8F6CACE9-0B0B-47F4-9315-DD71C9BDCA22}'; - RID_PedidosCliente_Detalles = '{4C1BBFCE-BE3B-4F5F-9FF2-EE52A2A10063}'; - RID_PedidoCliente_Articulos_Pendientes = '{30F8BA2A-2230-40DD-A760-36D1F7051BB8}'; - RID_PedidosCliente_Detalle_Color = '{E4A714F8-E64E-41D9-A2DE-E880C4C95108}'; + RID_PedidoCliente_Art_Colores_Pendientes = '{0635D89F-961F-4A8A-8631-93E80735F276}'; + RID_ListaAnosPedidos = '{88FC7751-6123-4698-B5ED-A0BA3C31ACB5}'; + RID_ArticulosPendientes = '{3E7C7A2B-0C2B-43B0-8E2C-6F1F0D1965C4}'; + RID_PedidosCliente = '{58A32347-5ECD-4B4D-B1A3-8FFE2BC07FDC}'; + RID_PedidosCliente_Detalles = '{CC8DF9E4-AACC-484E-BBE7-4F4A1A02C9D7}'; + RID_PedidoCliente_Articulos_Pendientes = '{6D698D2A-FA62-40C2-9B2D-26041E3900CA}'; + RID_PedidosCliente_Detalle_Color = '{027386CC-D26B-4167-8181-DC9F573BF973}'; { Data table names } nme_PedidoCliente_Art_Colores_Pendientes = 'PedidoCliente_Art_Colores_Pendientes'; @@ -138,6 +137,7 @@ const fld_PedidosClienteREF_TIENDA_WEB = 'REF_TIENDA_WEB'; fld_PedidosClienteFECHA_PREVISTA_ENVIO = 'FECHA_PREVISTA_ENVIO'; fld_PedidosClienteDATOS_BANCARIOS = 'DATOS_BANCARIOS'; + fld_PedidosClienteID_VENDEDOR = 'ID_VENDEDOR'; { PedidosCliente field indexes } idx_PedidosClienteID = 0; @@ -176,6 +176,7 @@ const idx_PedidosClienteREF_TIENDA_WEB = 33; idx_PedidosClienteFECHA_PREVISTA_ENVIO = 34; idx_PedidosClienteDATOS_BANCARIOS = 35; + idx_PedidosClienteID_VENDEDOR = 36; { PedidosCliente_Detalles fields } fld_PedidosCliente_DetallesID = 'ID'; @@ -258,7 +259,7 @@ const type { IPedidoCliente_Art_Colores_Pendientes } IPedidoCliente_Art_Colores_Pendientes = interface(IDAStronglyTypedDataTable) - ['{1BFD3DF3-9112-44CF-AD7B-D6A81CC5157F}'] + ['{BEEE5468-6E57-4ED3-95B5-E6C13A853F65}'] { Property getters and setters } function GetID_PEDIDOValue: Integer; procedure SetID_PEDIDOValue(const aValue: Integer); @@ -449,7 +450,7 @@ type { IListaAnosPedidos } IListaAnosPedidos = interface(IDAStronglyTypedDataTable) - ['{A93D242C-7BE8-4BCE-9D51-C5BE9E75923B}'] + ['{55FEE857-66E6-4010-9D14-548A29F9F198}'] { Property getters and setters } function GetANOValue: String; procedure SetANOValue(const aValue: String); @@ -484,7 +485,7 @@ type { IArticulosPendientes } IArticulosPendientes = interface(IDAStronglyTypedDataTable) - ['{764F380F-50B6-4FBC-8E75-531B3859322D}'] + ['{0207F031-484C-4420-B620-74888FA2748C}'] { Property getters and setters } function GetID_ARTICULOValue: Integer; procedure SetID_ARTICULOValue(const aValue: Integer); @@ -699,7 +700,7 @@ type { IPedidosCliente } IPedidosCliente = interface(IDAStronglyTypedDataTable) - ['{AFC13DCE-C06B-43F6-8659-EF8F363AA406}'] + ['{2DF3DC58-2F3F-44B7-BCA7-6B5B7477FFD8}'] { Property getters and setters } function GetIDValue: Integer; procedure SetIDValue(const aValue: Integer); @@ -843,6 +844,10 @@ type procedure SetDATOS_BANCARIOSValue(const aValue: String); function GetDATOS_BANCARIOSIsNull: Boolean; procedure SetDATOS_BANCARIOSIsNull(const aValue: Boolean); + function GetID_VENDEDORValue: Integer; + procedure SetID_VENDEDORValue(const aValue: Integer); + function GetID_VENDEDORIsNull: Boolean; + procedure SetID_VENDEDORIsNull(const aValue: Boolean); { Properties } @@ -918,6 +923,8 @@ type property FECHA_PREVISTA_ENVIOIsNull: Boolean read GetFECHA_PREVISTA_ENVIOIsNull write SetFECHA_PREVISTA_ENVIOIsNull; property DATOS_BANCARIOS: String read GetDATOS_BANCARIOSValue write SetDATOS_BANCARIOSValue; property DATOS_BANCARIOSIsNull: Boolean read GetDATOS_BANCARIOSIsNull write SetDATOS_BANCARIOSIsNull; + property ID_VENDEDOR: Integer read GetID_VENDEDORValue write SetID_VENDEDORValue; + property ID_VENDEDORIsNull: Boolean read GetID_VENDEDORIsNull write SetID_VENDEDORIsNull; end; { TPedidosClienteDataTableRules } @@ -1071,6 +1078,10 @@ type procedure SetDATOS_BANCARIOSValue(const aValue: String); virtual; function GetDATOS_BANCARIOSIsNull: Boolean; virtual; procedure SetDATOS_BANCARIOSIsNull(const aValue: Boolean); virtual; + function GetID_VENDEDORValue: Integer; virtual; + procedure SetID_VENDEDORValue(const aValue: Integer); virtual; + function GetID_VENDEDORIsNull: Boolean; virtual; + procedure SetID_VENDEDORIsNull(const aValue: Boolean); virtual; { Properties } property ID: Integer read GetIDValue write SetIDValue; @@ -1145,6 +1156,8 @@ type property FECHA_PREVISTA_ENVIOIsNull: Boolean read GetFECHA_PREVISTA_ENVIOIsNull write SetFECHA_PREVISTA_ENVIOIsNull; property DATOS_BANCARIOS: String read GetDATOS_BANCARIOSValue write SetDATOS_BANCARIOSValue; property DATOS_BANCARIOSIsNull: Boolean read GetDATOS_BANCARIOSIsNull write SetDATOS_BANCARIOSIsNull; + property ID_VENDEDOR: Integer read GetID_VENDEDORValue write SetID_VENDEDORValue; + property ID_VENDEDORIsNull: Boolean read GetID_VENDEDORIsNull write SetID_VENDEDORIsNull; public constructor Create(aDataTable: TDADataTable); override; @@ -1154,7 +1167,7 @@ type { IPedidosCliente_Detalles } IPedidosCliente_Detalles = interface(IDAStronglyTypedDataTable) - ['{65AE1BAD-EEB3-48CE-8366-FB559610658B}'] + ['{B4AE7BEA-A09E-45A0-A759-F52B4C16CD78}'] { Property getters and setters } function GetIDValue: Integer; procedure SetIDValue(const aValue: Integer); @@ -1357,7 +1370,7 @@ type { IPedidoCliente_Articulos_Pendientes } IPedidoCliente_Articulos_Pendientes = interface(IDAStronglyTypedDataTable) - ['{FB1F9D4A-319A-4FB3-8576-26E149E18E06}'] + ['{19CDD1BE-D8E9-4304-A92F-168055101599}'] { Property getters and setters } function GetID_ARTICULOValue: Integer; procedure SetID_ARTICULOValue(const aValue: Integer); @@ -1428,7 +1441,7 @@ type { IPedidosCliente_Detalle_Color } IPedidosCliente_Detalle_Color = interface(IDAStronglyTypedDataTable) - ['{FEED9557-5E73-47D9-A62B-E92C858D9608}'] + ['{20ACE66E-BAE3-4C47-A309-BFAC58663D1E}'] { Property getters and setters } function GetIDValue: Integer; procedure SetIDValue(const aValue: Integer); @@ -3087,6 +3100,27 @@ begin DataTable.Fields[idx_PedidosClienteDATOS_BANCARIOS].AsVariant := Null; end; +function TPedidosClienteDataTableRules.GetID_VENDEDORValue: Integer; +begin + result := DataTable.Fields[idx_PedidosClienteID_VENDEDOR].AsInteger; +end; + +procedure TPedidosClienteDataTableRules.SetID_VENDEDORValue(const aValue: Integer); +begin + DataTable.Fields[idx_PedidosClienteID_VENDEDOR].AsInteger := aValue; +end; + +function TPedidosClienteDataTableRules.GetID_VENDEDORIsNull: boolean; +begin + result := DataTable.Fields[idx_PedidosClienteID_VENDEDOR].IsNull; +end; + +procedure TPedidosClienteDataTableRules.SetID_VENDEDORIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_PedidosClienteID_VENDEDOR].AsVariant := Null; +end; + { TPedidosCliente_DetallesDataTableRules } constructor TPedidosCliente_DetallesDataTableRules.Create(aDataTable: TDADataTable); diff --git a/Source/Modulos/Pedidos de cliente/Model/schPedidosClienteServer_Intf.pas b/Source/Modulos/Pedidos de cliente/Model/schPedidosClienteServer_Intf.pas index a9bc113..6dffdb5 100644 --- a/Source/Modulos/Pedidos de cliente/Model/schPedidosClienteServer_Intf.pas +++ b/Source/Modulos/Pedidos de cliente/Model/schPedidosClienteServer_Intf.pas @@ -1,6 +1,5 @@ unit schPedidosClienteServer_Intf; -{$D-} interface uses @@ -10,18 +9,18 @@ const { Delta rules ids Feel free to change them to something more human readable but make sure they are unique in the context of your application } - RID_PedidoCliente_Art_Colores_PendientesDelta = '{D48CFC2D-68EE-439B-A653-6BB86A1AEA06}'; - RID_ListaAnosPedidosDelta = '{5F3FFCBD-3B67-4A5A-A75B-A7C22F4EE07C}'; - RID_ArticulosPendientesDelta = '{DF4146CF-A028-4284-8DE7-32E5919E3A76}'; - RID_PedidosClienteDelta = '{689E08A5-4632-44BD-8A01-47DBFF950021}'; - RID_PedidosCliente_DetallesDelta = '{38C65BF2-649F-42CB-83C5-28908AD2C73D}'; - RID_PedidoCliente_Articulos_PendientesDelta = '{FA9B5DA8-4A55-41FC-8B1E-8BD5AF673A1C}'; - RID_PedidosCliente_Detalle_ColorDelta = '{93DFB88F-1CC1-4DAB-9483-CBA26B72E23F}'; + RID_PedidoCliente_Art_Colores_PendientesDelta = '{8F63A643-F3E5-4A91-A7AB-51141B23BC9F}'; + RID_ListaAnosPedidosDelta = '{AE5B8BAE-9FD4-4206-9FE7-75A8B346B271}'; + RID_ArticulosPendientesDelta = '{BE8186BC-5D9C-454C-AEA6-5850A1C89F2E}'; + RID_PedidosClienteDelta = '{B99CE41A-DAF5-47EF-9CDA-5A155B25AAE0}'; + RID_PedidosCliente_DetallesDelta = '{D8692671-928C-4697-B0E4-EAD24B9ED4EE}'; + RID_PedidoCliente_Articulos_PendientesDelta = '{11301996-C69F-44CF-8D9E-2B1C6609215C}'; + RID_PedidosCliente_Detalle_ColorDelta = '{66DD52F7-6B31-4BF6-932A-5BC3F3426C79}'; type { IPedidoCliente_Art_Colores_PendientesDelta } IPedidoCliente_Art_Colores_PendientesDelta = interface(IPedidoCliente_Art_Colores_Pendientes) - ['{D48CFC2D-68EE-439B-A653-6BB86A1AEA06}'] + ['{8F63A643-F3E5-4A91-A7AB-51141B23BC9F}'] { Property getters and setters } function GetOldID_PEDIDOValue : Integer; function GetOldID_ARTICULOValue : Integer; @@ -211,7 +210,7 @@ type { IListaAnosPedidosDelta } IListaAnosPedidosDelta = interface(IListaAnosPedidos) - ['{5F3FFCBD-3B67-4A5A-A75B-A7C22F4EE07C}'] + ['{AE5B8BAE-9FD4-4206-9FE7-75A8B346B271}'] { Property getters and setters } function GetOldANOValue : String; @@ -245,7 +244,7 @@ type { IArticulosPendientesDelta } IArticulosPendientesDelta = interface(IArticulosPendientes) - ['{DF4146CF-A028-4284-8DE7-32E5919E3A76}'] + ['{BE8186BC-5D9C-454C-AEA6-5850A1C89F2E}'] { Property getters and setters } function GetOldID_ARTICULOValue : Integer; function GetOldREFERENCIAValue : String; @@ -459,7 +458,7 @@ type { IPedidosClienteDelta } IPedidosClienteDelta = interface(IPedidosCliente) - ['{689E08A5-4632-44BD-8A01-47DBFF950021}'] + ['{B99CE41A-DAF5-47EF-9CDA-5A155B25AAE0}'] { Property getters and setters } function GetOldIDValue : Integer; function GetOldID_EMPRESAValue : Integer; @@ -497,6 +496,7 @@ type function GetOldREF_TIENDA_WEBValue : Integer; function GetOldFECHA_PREVISTA_ENVIOValue : DateTime; function GetOldDATOS_BANCARIOSValue : String; + function GetOldID_VENDEDORValue : Integer; { Properties } property OldID : Integer read GetOldIDValue; @@ -535,6 +535,7 @@ type property OldREF_TIENDA_WEB : Integer read GetOldREF_TIENDA_WEBValue; property OldFECHA_PREVISTA_ENVIO : DateTime read GetOldFECHA_PREVISTA_ENVIOValue; property OldDATOS_BANCARIOS : String read GetOldDATOS_BANCARIOSValue; + property OldID_VENDEDOR : Integer read GetOldID_VENDEDORValue; end; { TPedidosClienteBusinessProcessorRules } @@ -760,6 +761,12 @@ type function GetOldDATOS_BANCARIOSIsNull: Boolean; virtual; procedure SetDATOS_BANCARIOSValue(const aValue: String); virtual; procedure SetDATOS_BANCARIOSIsNull(const aValue: Boolean); virtual; + function GetID_VENDEDORValue: Integer; virtual; + function GetID_VENDEDORIsNull: Boolean; virtual; + function GetOldID_VENDEDORValue: Integer; virtual; + function GetOldID_VENDEDORIsNull: Boolean; virtual; + procedure SetID_VENDEDORValue(const aValue: Integer); virtual; + procedure SetID_VENDEDORIsNull(const aValue: Boolean); virtual; { Properties } property ID : Integer read GetIDValue write SetIDValue; @@ -906,6 +913,10 @@ type property DATOS_BANCARIOSIsNull : Boolean read GetDATOS_BANCARIOSIsNull write SetDATOS_BANCARIOSIsNull; property OldDATOS_BANCARIOS : String read GetOldDATOS_BANCARIOSValue; property OldDATOS_BANCARIOSIsNull : Boolean read GetOldDATOS_BANCARIOSIsNull; + property ID_VENDEDOR : Integer read GetID_VENDEDORValue write SetID_VENDEDORValue; + property ID_VENDEDORIsNull : Boolean read GetID_VENDEDORIsNull write SetID_VENDEDORIsNull; + property OldID_VENDEDOR : Integer read GetOldID_VENDEDORValue; + property OldID_VENDEDORIsNull : Boolean read GetOldID_VENDEDORIsNull; public constructor Create(aBusinessProcessor: TDABusinessProcessor); override; @@ -915,7 +926,7 @@ type { IPedidosCliente_DetallesDelta } IPedidosCliente_DetallesDelta = interface(IPedidosCliente_Detalles) - ['{38C65BF2-649F-42CB-83C5-28908AD2C73D}'] + ['{D8692671-928C-4697-B0E4-EAD24B9ED4EE}'] { Property getters and setters } function GetOldIDValue : Integer; function GetOldID_PEDIDOValue : Integer; @@ -1117,7 +1128,7 @@ type { IPedidoCliente_Articulos_PendientesDelta } IPedidoCliente_Articulos_PendientesDelta = interface(IPedidoCliente_Articulos_Pendientes) - ['{FA9B5DA8-4A55-41FC-8B1E-8BD5AF673A1C}'] + ['{11301996-C69F-44CF-8D9E-2B1C6609215C}'] { Property getters and setters } function GetOldID_ARTICULOValue : Integer; function GetOldCANTIDAD_PEDValue : Float; @@ -1187,7 +1198,7 @@ type { IPedidosCliente_Detalle_ColorDelta } IPedidosCliente_Detalle_ColorDelta = interface(IPedidosCliente_Detalle_Color) - ['{93DFB88F-1CC1-4DAB-9483-CBA26B72E23F}'] + ['{66DD52F7-6B31-4BF6-932A-5BC3F3426C79}'] { Property getters and setters } function GetOldIDValue : Integer; function GetOldID_DETALLEValue : Integer; @@ -1397,10 +1408,8 @@ begin end; function TPedidoCliente_Art_Colores_PendientesBusinessProcessorRules.GetID_PEDIDOIsNull: Boolean; -var v: variant; begin - v := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidoCliente_Art_Colores_PendientesID_PEDIDO]; - result := VarIsNull(v) or VarIsClear(v); + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_PedidoCliente_Art_Colores_PendientesID_PEDIDO]); end; function TPedidoCliente_Art_Colores_PendientesBusinessProcessorRules.GetOldID_PEDIDOValue: Integer; @@ -1409,10 +1418,8 @@ begin end; function TPedidoCliente_Art_Colores_PendientesBusinessProcessorRules.GetOldID_PEDIDOIsNull: Boolean; -var v: variant; begin - v := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidoCliente_Art_Colores_PendientesID_PEDIDO]; - result := VarIsNull(v) or VarIsClear(v); + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_PedidoCliente_Art_Colores_PendientesID_PEDIDO]); end; procedure TPedidoCliente_Art_Colores_PendientesBusinessProcessorRules.SetID_PEDIDOValue(const aValue: Integer); @@ -1432,10 +1439,8 @@ begin end; function TPedidoCliente_Art_Colores_PendientesBusinessProcessorRules.GetID_ARTICULOIsNull: Boolean; -var v: variant; begin - v := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidoCliente_Art_Colores_PendientesID_ARTICULO]; - result := VarIsNull(v) or VarIsClear(v); + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_PedidoCliente_Art_Colores_PendientesID_ARTICULO]); end; function TPedidoCliente_Art_Colores_PendientesBusinessProcessorRules.GetOldID_ARTICULOValue: Integer; @@ -1444,10 +1449,8 @@ begin end; function TPedidoCliente_Art_Colores_PendientesBusinessProcessorRules.GetOldID_ARTICULOIsNull: Boolean; -var v: variant; begin - v := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidoCliente_Art_Colores_PendientesID_ARTICULO]; - result := VarIsNull(v) or VarIsClear(v); + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_PedidoCliente_Art_Colores_PendientesID_ARTICULO]); end; procedure TPedidoCliente_Art_Colores_PendientesBusinessProcessorRules.SetID_ARTICULOValue(const aValue: Integer); @@ -1467,10 +1470,8 @@ begin end; function TPedidoCliente_Art_Colores_PendientesBusinessProcessorRules.GetCOLOR1IsNull: Boolean; -var v: variant; begin - v := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidoCliente_Art_Colores_PendientesCOLOR1]; - result := VarIsNull(v) or VarIsClear(v); + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_PedidoCliente_Art_Colores_PendientesCOLOR1]); end; function TPedidoCliente_Art_Colores_PendientesBusinessProcessorRules.GetOldCOLOR1Value: Int64; @@ -1479,10 +1480,8 @@ begin end; function TPedidoCliente_Art_Colores_PendientesBusinessProcessorRules.GetOldCOLOR1IsNull: Boolean; -var v: variant; begin - v := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidoCliente_Art_Colores_PendientesCOLOR1]; - result := VarIsNull(v) or VarIsClear(v); + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_PedidoCliente_Art_Colores_PendientesCOLOR1]); end; procedure TPedidoCliente_Art_Colores_PendientesBusinessProcessorRules.SetCOLOR1Value(const aValue: Int64); @@ -1502,10 +1501,8 @@ begin end; function TPedidoCliente_Art_Colores_PendientesBusinessProcessorRules.GetCOLOR2IsNull: Boolean; -var v: variant; begin - v := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidoCliente_Art_Colores_PendientesCOLOR2]; - result := VarIsNull(v) or VarIsClear(v); + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_PedidoCliente_Art_Colores_PendientesCOLOR2]); end; function TPedidoCliente_Art_Colores_PendientesBusinessProcessorRules.GetOldCOLOR2Value: Int64; @@ -1514,10 +1511,8 @@ begin end; function TPedidoCliente_Art_Colores_PendientesBusinessProcessorRules.GetOldCOLOR2IsNull: Boolean; -var v: variant; begin - v := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidoCliente_Art_Colores_PendientesCOLOR2]; - result := VarIsNull(v) or VarIsClear(v); + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_PedidoCliente_Art_Colores_PendientesCOLOR2]); end; procedure TPedidoCliente_Art_Colores_PendientesBusinessProcessorRules.SetCOLOR2Value(const aValue: Int64); @@ -1537,10 +1532,8 @@ begin end; function TPedidoCliente_Art_Colores_PendientesBusinessProcessorRules.GetCOLOR3IsNull: Boolean; -var v: variant; begin - v := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidoCliente_Art_Colores_PendientesCOLOR3]; - result := VarIsNull(v) or VarIsClear(v); + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_PedidoCliente_Art_Colores_PendientesCOLOR3]); end; function TPedidoCliente_Art_Colores_PendientesBusinessProcessorRules.GetOldCOLOR3Value: Int64; @@ -1549,10 +1542,8 @@ begin end; function TPedidoCliente_Art_Colores_PendientesBusinessProcessorRules.GetOldCOLOR3IsNull: Boolean; -var v: variant; begin - v := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidoCliente_Art_Colores_PendientesCOLOR3]; - result := VarIsNull(v) or VarIsClear(v); + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_PedidoCliente_Art_Colores_PendientesCOLOR3]); end; procedure TPedidoCliente_Art_Colores_PendientesBusinessProcessorRules.SetCOLOR3Value(const aValue: Int64); @@ -1572,10 +1563,8 @@ begin end; function TPedidoCliente_Art_Colores_PendientesBusinessProcessorRules.GetCOLOR4IsNull: Boolean; -var v: variant; begin - v := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidoCliente_Art_Colores_PendientesCOLOR4]; - result := VarIsNull(v) or VarIsClear(v); + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_PedidoCliente_Art_Colores_PendientesCOLOR4]); end; function TPedidoCliente_Art_Colores_PendientesBusinessProcessorRules.GetOldCOLOR4Value: Int64; @@ -1584,10 +1573,8 @@ begin end; function TPedidoCliente_Art_Colores_PendientesBusinessProcessorRules.GetOldCOLOR4IsNull: Boolean; -var v: variant; begin - v := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidoCliente_Art_Colores_PendientesCOLOR4]; - result := VarIsNull(v) or VarIsClear(v); + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_PedidoCliente_Art_Colores_PendientesCOLOR4]); end; procedure TPedidoCliente_Art_Colores_PendientesBusinessProcessorRules.SetCOLOR4Value(const aValue: Int64); @@ -1607,10 +1594,8 @@ begin end; function TPedidoCliente_Art_Colores_PendientesBusinessProcessorRules.GetCOLOR5IsNull: Boolean; -var v: variant; begin - v := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidoCliente_Art_Colores_PendientesCOLOR5]; - result := VarIsNull(v) or VarIsClear(v); + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_PedidoCliente_Art_Colores_PendientesCOLOR5]); end; function TPedidoCliente_Art_Colores_PendientesBusinessProcessorRules.GetOldCOLOR5Value: Int64; @@ -1619,10 +1604,8 @@ begin end; function TPedidoCliente_Art_Colores_PendientesBusinessProcessorRules.GetOldCOLOR5IsNull: Boolean; -var v: variant; begin - v := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidoCliente_Art_Colores_PendientesCOLOR5]; - result := VarIsNull(v) or VarIsClear(v); + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_PedidoCliente_Art_Colores_PendientesCOLOR5]); end; procedure TPedidoCliente_Art_Colores_PendientesBusinessProcessorRules.SetCOLOR5Value(const aValue: Int64); @@ -1642,10 +1625,8 @@ begin end; function TPedidoCliente_Art_Colores_PendientesBusinessProcessorRules.GetCOLOR6IsNull: Boolean; -var v: variant; begin - v := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidoCliente_Art_Colores_PendientesCOLOR6]; - result := VarIsNull(v) or VarIsClear(v); + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_PedidoCliente_Art_Colores_PendientesCOLOR6]); end; function TPedidoCliente_Art_Colores_PendientesBusinessProcessorRules.GetOldCOLOR6Value: Int64; @@ -1654,10 +1635,8 @@ begin end; function TPedidoCliente_Art_Colores_PendientesBusinessProcessorRules.GetOldCOLOR6IsNull: Boolean; -var v: variant; begin - v := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidoCliente_Art_Colores_PendientesCOLOR6]; - result := VarIsNull(v) or VarIsClear(v); + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_PedidoCliente_Art_Colores_PendientesCOLOR6]); end; procedure TPedidoCliente_Art_Colores_PendientesBusinessProcessorRules.SetCOLOR6Value(const aValue: Int64); @@ -1677,10 +1656,8 @@ begin end; function TPedidoCliente_Art_Colores_PendientesBusinessProcessorRules.GetCOLOR7IsNull: Boolean; -var v: variant; begin - v := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidoCliente_Art_Colores_PendientesCOLOR7]; - result := VarIsNull(v) or VarIsClear(v); + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_PedidoCliente_Art_Colores_PendientesCOLOR7]); end; function TPedidoCliente_Art_Colores_PendientesBusinessProcessorRules.GetOldCOLOR7Value: Int64; @@ -1689,10 +1666,8 @@ begin end; function TPedidoCliente_Art_Colores_PendientesBusinessProcessorRules.GetOldCOLOR7IsNull: Boolean; -var v: variant; begin - v := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidoCliente_Art_Colores_PendientesCOLOR7]; - result := VarIsNull(v) or VarIsClear(v); + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_PedidoCliente_Art_Colores_PendientesCOLOR7]); end; procedure TPedidoCliente_Art_Colores_PendientesBusinessProcessorRules.SetCOLOR7Value(const aValue: Int64); @@ -1712,10 +1687,8 @@ begin end; function TPedidoCliente_Art_Colores_PendientesBusinessProcessorRules.GetCOLOR8IsNull: Boolean; -var v: variant; begin - v := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidoCliente_Art_Colores_PendientesCOLOR8]; - result := VarIsNull(v) or VarIsClear(v); + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_PedidoCliente_Art_Colores_PendientesCOLOR8]); end; function TPedidoCliente_Art_Colores_PendientesBusinessProcessorRules.GetOldCOLOR8Value: Int64; @@ -1724,10 +1697,8 @@ begin end; function TPedidoCliente_Art_Colores_PendientesBusinessProcessorRules.GetOldCOLOR8IsNull: Boolean; -var v: variant; begin - v := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidoCliente_Art_Colores_PendientesCOLOR8]; - result := VarIsNull(v) or VarIsClear(v); + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_PedidoCliente_Art_Colores_PendientesCOLOR8]); end; procedure TPedidoCliente_Art_Colores_PendientesBusinessProcessorRules.SetCOLOR8Value(const aValue: Int64); @@ -1747,10 +1718,8 @@ begin end; function TPedidoCliente_Art_Colores_PendientesBusinessProcessorRules.GetCOLOR9IsNull: Boolean; -var v: variant; begin - v := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidoCliente_Art_Colores_PendientesCOLOR9]; - result := VarIsNull(v) or VarIsClear(v); + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_PedidoCliente_Art_Colores_PendientesCOLOR9]); end; function TPedidoCliente_Art_Colores_PendientesBusinessProcessorRules.GetOldCOLOR9Value: Int64; @@ -1759,10 +1728,8 @@ begin end; function TPedidoCliente_Art_Colores_PendientesBusinessProcessorRules.GetOldCOLOR9IsNull: Boolean; -var v: variant; begin - v := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidoCliente_Art_Colores_PendientesCOLOR9]; - result := VarIsNull(v) or VarIsClear(v); + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_PedidoCliente_Art_Colores_PendientesCOLOR9]); end; procedure TPedidoCliente_Art_Colores_PendientesBusinessProcessorRules.SetCOLOR9Value(const aValue: Int64); @@ -1782,10 +1749,8 @@ begin end; function TPedidoCliente_Art_Colores_PendientesBusinessProcessorRules.GetCOLOR10IsNull: Boolean; -var v: variant; begin - v := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidoCliente_Art_Colores_PendientesCOLOR10]; - result := VarIsNull(v) or VarIsClear(v); + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_PedidoCliente_Art_Colores_PendientesCOLOR10]); end; function TPedidoCliente_Art_Colores_PendientesBusinessProcessorRules.GetOldCOLOR10Value: Int64; @@ -1794,10 +1759,8 @@ begin end; function TPedidoCliente_Art_Colores_PendientesBusinessProcessorRules.GetOldCOLOR10IsNull: Boolean; -var v: variant; begin - v := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidoCliente_Art_Colores_PendientesCOLOR10]; - result := VarIsNull(v) or VarIsClear(v); + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_PedidoCliente_Art_Colores_PendientesCOLOR10]); end; procedure TPedidoCliente_Art_Colores_PendientesBusinessProcessorRules.SetCOLOR10Value(const aValue: Int64); @@ -1817,10 +1780,8 @@ begin end; function TPedidoCliente_Art_Colores_PendientesBusinessProcessorRules.GetCOLOR11IsNull: Boolean; -var v: variant; begin - v := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidoCliente_Art_Colores_PendientesCOLOR11]; - result := VarIsNull(v) or VarIsClear(v); + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_PedidoCliente_Art_Colores_PendientesCOLOR11]); end; function TPedidoCliente_Art_Colores_PendientesBusinessProcessorRules.GetOldCOLOR11Value: Int64; @@ -1829,10 +1790,8 @@ begin end; function TPedidoCliente_Art_Colores_PendientesBusinessProcessorRules.GetOldCOLOR11IsNull: Boolean; -var v: variant; begin - v := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidoCliente_Art_Colores_PendientesCOLOR11]; - result := VarIsNull(v) or VarIsClear(v); + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_PedidoCliente_Art_Colores_PendientesCOLOR11]); end; procedure TPedidoCliente_Art_Colores_PendientesBusinessProcessorRules.SetCOLOR11Value(const aValue: Int64); @@ -1852,10 +1811,8 @@ begin end; function TPedidoCliente_Art_Colores_PendientesBusinessProcessorRules.GetCOLOR12IsNull: Boolean; -var v: variant; begin - v := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidoCliente_Art_Colores_PendientesCOLOR12]; - result := VarIsNull(v) or VarIsClear(v); + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_PedidoCliente_Art_Colores_PendientesCOLOR12]); end; function TPedidoCliente_Art_Colores_PendientesBusinessProcessorRules.GetOldCOLOR12Value: Int64; @@ -1864,10 +1821,8 @@ begin end; function TPedidoCliente_Art_Colores_PendientesBusinessProcessorRules.GetOldCOLOR12IsNull: Boolean; -var v: variant; begin - v := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidoCliente_Art_Colores_PendientesCOLOR12]; - result := VarIsNull(v) or VarIsClear(v); + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_PedidoCliente_Art_Colores_PendientesCOLOR12]); end; procedure TPedidoCliente_Art_Colores_PendientesBusinessProcessorRules.SetCOLOR12Value(const aValue: Int64); @@ -1899,10 +1854,8 @@ begin end; function TListaAnosPedidosBusinessProcessorRules.GetANOIsNull: Boolean; -var v: variant; begin - v := BusinessProcessor.CurrentChange.NewValueByName[fld_ListaAnosPedidosANO]; - result := VarIsNull(v) or VarIsClear(v); + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ListaAnosPedidosANO]); end; function TListaAnosPedidosBusinessProcessorRules.GetOldANOValue: String; @@ -1911,10 +1864,8 @@ begin end; function TListaAnosPedidosBusinessProcessorRules.GetOldANOIsNull: Boolean; -var v: variant; begin - v := BusinessProcessor.CurrentChange.OldValueByName[fld_ListaAnosPedidosANO]; - result := VarIsNull(v) or VarIsClear(v); + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ListaAnosPedidosANO]); end; procedure TListaAnosPedidosBusinessProcessorRules.SetANOValue(const aValue: String); @@ -1946,10 +1897,8 @@ begin end; function TArticulosPendientesBusinessProcessorRules.GetID_ARTICULOIsNull: Boolean; -var v: variant; begin - v := BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosPendientesID_ARTICULO]; - result := VarIsNull(v) or VarIsClear(v); + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosPendientesID_ARTICULO]); end; function TArticulosPendientesBusinessProcessorRules.GetOldID_ARTICULOValue: Integer; @@ -1958,10 +1907,8 @@ begin end; function TArticulosPendientesBusinessProcessorRules.GetOldID_ARTICULOIsNull: Boolean; -var v: variant; begin - v := BusinessProcessor.CurrentChange.OldValueByName[fld_ArticulosPendientesID_ARTICULO]; - result := VarIsNull(v) or VarIsClear(v); + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ArticulosPendientesID_ARTICULO]); end; procedure TArticulosPendientesBusinessProcessorRules.SetID_ARTICULOValue(const aValue: Integer); @@ -1981,10 +1928,8 @@ begin end; function TArticulosPendientesBusinessProcessorRules.GetREFERENCIAIsNull: Boolean; -var v: variant; begin - v := BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosPendientesREFERENCIA]; - result := VarIsNull(v) or VarIsClear(v); + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosPendientesREFERENCIA]); end; function TArticulosPendientesBusinessProcessorRules.GetOldREFERENCIAValue: String; @@ -1993,10 +1938,8 @@ begin end; function TArticulosPendientesBusinessProcessorRules.GetOldREFERENCIAIsNull: Boolean; -var v: variant; begin - v := BusinessProcessor.CurrentChange.OldValueByName[fld_ArticulosPendientesREFERENCIA]; - result := VarIsNull(v) or VarIsClear(v); + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ArticulosPendientesREFERENCIA]); end; procedure TArticulosPendientesBusinessProcessorRules.SetREFERENCIAValue(const aValue: String); @@ -2016,10 +1959,8 @@ begin end; function TArticulosPendientesBusinessProcessorRules.GetDESCRIPCIONIsNull: Boolean; -var v: variant; begin - v := BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosPendientesDESCRIPCION]; - result := VarIsNull(v) or VarIsClear(v); + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosPendientesDESCRIPCION]); end; function TArticulosPendientesBusinessProcessorRules.GetOldDESCRIPCIONValue: String; @@ -2028,10 +1969,8 @@ begin end; function TArticulosPendientesBusinessProcessorRules.GetOldDESCRIPCIONIsNull: Boolean; -var v: variant; begin - v := BusinessProcessor.CurrentChange.OldValueByName[fld_ArticulosPendientesDESCRIPCION]; - result := VarIsNull(v) or VarIsClear(v); + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ArticulosPendientesDESCRIPCION]); end; procedure TArticulosPendientesBusinessProcessorRules.SetDESCRIPCIONValue(const aValue: String); @@ -2051,10 +1990,8 @@ begin end; function TArticulosPendientesBusinessProcessorRules.GetCOLOR1IsNull: Boolean; -var v: variant; begin - v := BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosPendientesCOLOR1]; - result := VarIsNull(v) or VarIsClear(v); + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosPendientesCOLOR1]); end; function TArticulosPendientesBusinessProcessorRules.GetOldCOLOR1Value: Int64; @@ -2063,10 +2000,8 @@ begin end; function TArticulosPendientesBusinessProcessorRules.GetOldCOLOR1IsNull: Boolean; -var v: variant; begin - v := BusinessProcessor.CurrentChange.OldValueByName[fld_ArticulosPendientesCOLOR1]; - result := VarIsNull(v) or VarIsClear(v); + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ArticulosPendientesCOLOR1]); end; procedure TArticulosPendientesBusinessProcessorRules.SetCOLOR1Value(const aValue: Int64); @@ -2086,10 +2021,8 @@ begin end; function TArticulosPendientesBusinessProcessorRules.GetCOLOR2IsNull: Boolean; -var v: variant; begin - v := BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosPendientesCOLOR2]; - result := VarIsNull(v) or VarIsClear(v); + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosPendientesCOLOR2]); end; function TArticulosPendientesBusinessProcessorRules.GetOldCOLOR2Value: Int64; @@ -2098,10 +2031,8 @@ begin end; function TArticulosPendientesBusinessProcessorRules.GetOldCOLOR2IsNull: Boolean; -var v: variant; begin - v := BusinessProcessor.CurrentChange.OldValueByName[fld_ArticulosPendientesCOLOR2]; - result := VarIsNull(v) or VarIsClear(v); + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ArticulosPendientesCOLOR2]); end; procedure TArticulosPendientesBusinessProcessorRules.SetCOLOR2Value(const aValue: Int64); @@ -2121,10 +2052,8 @@ begin end; function TArticulosPendientesBusinessProcessorRules.GetCOLOR3IsNull: Boolean; -var v: variant; begin - v := BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosPendientesCOLOR3]; - result := VarIsNull(v) or VarIsClear(v); + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosPendientesCOLOR3]); end; function TArticulosPendientesBusinessProcessorRules.GetOldCOLOR3Value: Int64; @@ -2133,10 +2062,8 @@ begin end; function TArticulosPendientesBusinessProcessorRules.GetOldCOLOR3IsNull: Boolean; -var v: variant; begin - v := BusinessProcessor.CurrentChange.OldValueByName[fld_ArticulosPendientesCOLOR3]; - result := VarIsNull(v) or VarIsClear(v); + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ArticulosPendientesCOLOR3]); end; procedure TArticulosPendientesBusinessProcessorRules.SetCOLOR3Value(const aValue: Int64); @@ -2156,10 +2083,8 @@ begin end; function TArticulosPendientesBusinessProcessorRules.GetCOLOR4IsNull: Boolean; -var v: variant; begin - v := BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosPendientesCOLOR4]; - result := VarIsNull(v) or VarIsClear(v); + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosPendientesCOLOR4]); end; function TArticulosPendientesBusinessProcessorRules.GetOldCOLOR4Value: Int64; @@ -2168,10 +2093,8 @@ begin end; function TArticulosPendientesBusinessProcessorRules.GetOldCOLOR4IsNull: Boolean; -var v: variant; begin - v := BusinessProcessor.CurrentChange.OldValueByName[fld_ArticulosPendientesCOLOR4]; - result := VarIsNull(v) or VarIsClear(v); + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ArticulosPendientesCOLOR4]); end; procedure TArticulosPendientesBusinessProcessorRules.SetCOLOR4Value(const aValue: Int64); @@ -2191,10 +2114,8 @@ begin end; function TArticulosPendientesBusinessProcessorRules.GetCOLOR5IsNull: Boolean; -var v: variant; begin - v := BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosPendientesCOLOR5]; - result := VarIsNull(v) or VarIsClear(v); + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosPendientesCOLOR5]); end; function TArticulosPendientesBusinessProcessorRules.GetOldCOLOR5Value: Int64; @@ -2203,10 +2124,8 @@ begin end; function TArticulosPendientesBusinessProcessorRules.GetOldCOLOR5IsNull: Boolean; -var v: variant; begin - v := BusinessProcessor.CurrentChange.OldValueByName[fld_ArticulosPendientesCOLOR5]; - result := VarIsNull(v) or VarIsClear(v); + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ArticulosPendientesCOLOR5]); end; procedure TArticulosPendientesBusinessProcessorRules.SetCOLOR5Value(const aValue: Int64); @@ -2226,10 +2145,8 @@ begin end; function TArticulosPendientesBusinessProcessorRules.GetCOLOR6IsNull: Boolean; -var v: variant; begin - v := BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosPendientesCOLOR6]; - result := VarIsNull(v) or VarIsClear(v); + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosPendientesCOLOR6]); end; function TArticulosPendientesBusinessProcessorRules.GetOldCOLOR6Value: Int64; @@ -2238,10 +2155,8 @@ begin end; function TArticulosPendientesBusinessProcessorRules.GetOldCOLOR6IsNull: Boolean; -var v: variant; begin - v := BusinessProcessor.CurrentChange.OldValueByName[fld_ArticulosPendientesCOLOR6]; - result := VarIsNull(v) or VarIsClear(v); + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ArticulosPendientesCOLOR6]); end; procedure TArticulosPendientesBusinessProcessorRules.SetCOLOR6Value(const aValue: Int64); @@ -2261,10 +2176,8 @@ begin end; function TArticulosPendientesBusinessProcessorRules.GetCOLOR7IsNull: Boolean; -var v: variant; begin - v := BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosPendientesCOLOR7]; - result := VarIsNull(v) or VarIsClear(v); + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosPendientesCOLOR7]); end; function TArticulosPendientesBusinessProcessorRules.GetOldCOLOR7Value: Int64; @@ -2273,10 +2186,8 @@ begin end; function TArticulosPendientesBusinessProcessorRules.GetOldCOLOR7IsNull: Boolean; -var v: variant; begin - v := BusinessProcessor.CurrentChange.OldValueByName[fld_ArticulosPendientesCOLOR7]; - result := VarIsNull(v) or VarIsClear(v); + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ArticulosPendientesCOLOR7]); end; procedure TArticulosPendientesBusinessProcessorRules.SetCOLOR7Value(const aValue: Int64); @@ -2296,10 +2207,8 @@ begin end; function TArticulosPendientesBusinessProcessorRules.GetCOLOR8IsNull: Boolean; -var v: variant; begin - v := BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosPendientesCOLOR8]; - result := VarIsNull(v) or VarIsClear(v); + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosPendientesCOLOR8]); end; function TArticulosPendientesBusinessProcessorRules.GetOldCOLOR8Value: Int64; @@ -2308,10 +2217,8 @@ begin end; function TArticulosPendientesBusinessProcessorRules.GetOldCOLOR8IsNull: Boolean; -var v: variant; begin - v := BusinessProcessor.CurrentChange.OldValueByName[fld_ArticulosPendientesCOLOR8]; - result := VarIsNull(v) or VarIsClear(v); + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ArticulosPendientesCOLOR8]); end; procedure TArticulosPendientesBusinessProcessorRules.SetCOLOR8Value(const aValue: Int64); @@ -2331,10 +2238,8 @@ begin end; function TArticulosPendientesBusinessProcessorRules.GetCOLOR9IsNull: Boolean; -var v: variant; begin - v := BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosPendientesCOLOR9]; - result := VarIsNull(v) or VarIsClear(v); + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosPendientesCOLOR9]); end; function TArticulosPendientesBusinessProcessorRules.GetOldCOLOR9Value: Int64; @@ -2343,10 +2248,8 @@ begin end; function TArticulosPendientesBusinessProcessorRules.GetOldCOLOR9IsNull: Boolean; -var v: variant; begin - v := BusinessProcessor.CurrentChange.OldValueByName[fld_ArticulosPendientesCOLOR9]; - result := VarIsNull(v) or VarIsClear(v); + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ArticulosPendientesCOLOR9]); end; procedure TArticulosPendientesBusinessProcessorRules.SetCOLOR9Value(const aValue: Int64); @@ -2366,10 +2269,8 @@ begin end; function TArticulosPendientesBusinessProcessorRules.GetCOLOR10IsNull: Boolean; -var v: variant; begin - v := BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosPendientesCOLOR10]; - result := VarIsNull(v) or VarIsClear(v); + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosPendientesCOLOR10]); end; function TArticulosPendientesBusinessProcessorRules.GetOldCOLOR10Value: Int64; @@ -2378,10 +2279,8 @@ begin end; function TArticulosPendientesBusinessProcessorRules.GetOldCOLOR10IsNull: Boolean; -var v: variant; begin - v := BusinessProcessor.CurrentChange.OldValueByName[fld_ArticulosPendientesCOLOR10]; - result := VarIsNull(v) or VarIsClear(v); + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ArticulosPendientesCOLOR10]); end; procedure TArticulosPendientesBusinessProcessorRules.SetCOLOR10Value(const aValue: Int64); @@ -2401,10 +2300,8 @@ begin end; function TArticulosPendientesBusinessProcessorRules.GetCOLOR11IsNull: Boolean; -var v: variant; begin - v := BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosPendientesCOLOR11]; - result := VarIsNull(v) or VarIsClear(v); + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosPendientesCOLOR11]); end; function TArticulosPendientesBusinessProcessorRules.GetOldCOLOR11Value: Int64; @@ -2413,10 +2310,8 @@ begin end; function TArticulosPendientesBusinessProcessorRules.GetOldCOLOR11IsNull: Boolean; -var v: variant; begin - v := BusinessProcessor.CurrentChange.OldValueByName[fld_ArticulosPendientesCOLOR11]; - result := VarIsNull(v) or VarIsClear(v); + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ArticulosPendientesCOLOR11]); end; procedure TArticulosPendientesBusinessProcessorRules.SetCOLOR11Value(const aValue: Int64); @@ -2436,10 +2331,8 @@ begin end; function TArticulosPendientesBusinessProcessorRules.GetCOLOR12IsNull: Boolean; -var v: variant; begin - v := BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosPendientesCOLOR12]; - result := VarIsNull(v) or VarIsClear(v); + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosPendientesCOLOR12]); end; function TArticulosPendientesBusinessProcessorRules.GetOldCOLOR12Value: Int64; @@ -2448,10 +2341,8 @@ begin end; function TArticulosPendientesBusinessProcessorRules.GetOldCOLOR12IsNull: Boolean; -var v: variant; begin - v := BusinessProcessor.CurrentChange.OldValueByName[fld_ArticulosPendientesCOLOR12]; - result := VarIsNull(v) or VarIsClear(v); + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ArticulosPendientesCOLOR12]); end; procedure TArticulosPendientesBusinessProcessorRules.SetCOLOR12Value(const aValue: Int64); @@ -2471,10 +2362,8 @@ begin end; function TArticulosPendientesBusinessProcessorRules.GetTOTALIsNull: Boolean; -var v: variant; begin - v := BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosPendientesTOTAL]; - result := VarIsNull(v) or VarIsClear(v); + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosPendientesTOTAL]); end; function TArticulosPendientesBusinessProcessorRules.GetOldTOTALValue: Int64; @@ -2483,10 +2372,8 @@ begin end; function TArticulosPendientesBusinessProcessorRules.GetOldTOTALIsNull: Boolean; -var v: variant; begin - v := BusinessProcessor.CurrentChange.OldValueByName[fld_ArticulosPendientesTOTAL]; - result := VarIsNull(v) or VarIsClear(v); + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ArticulosPendientesTOTAL]); end; procedure TArticulosPendientesBusinessProcessorRules.SetTOTALValue(const aValue: Int64); @@ -2538,10 +2425,8 @@ begin end; function TPedidosClienteBusinessProcessorRules.GetIDIsNull: Boolean; -var v: variant; begin - v := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosClienteID]; - result := VarIsNull(v) or VarIsClear(v); + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosClienteID]); end; function TPedidosClienteBusinessProcessorRules.GetOldIDValue: Integer; @@ -2550,10 +2435,8 @@ begin end; function TPedidosClienteBusinessProcessorRules.GetOldIDIsNull: Boolean; -var v: variant; begin - v := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosClienteID]; - result := VarIsNull(v) or VarIsClear(v); + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosClienteID]); end; procedure TPedidosClienteBusinessProcessorRules.SetIDValue(const aValue: Integer); @@ -2573,10 +2456,8 @@ begin end; function TPedidosClienteBusinessProcessorRules.GetID_EMPRESAIsNull: Boolean; -var v: variant; begin - v := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosClienteID_EMPRESA]; - result := VarIsNull(v) or VarIsClear(v); + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosClienteID_EMPRESA]); end; function TPedidosClienteBusinessProcessorRules.GetOldID_EMPRESAValue: Integer; @@ -2585,10 +2466,8 @@ begin end; function TPedidosClienteBusinessProcessorRules.GetOldID_EMPRESAIsNull: Boolean; -var v: variant; begin - v := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosClienteID_EMPRESA]; - result := VarIsNull(v) or VarIsClear(v); + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosClienteID_EMPRESA]); end; procedure TPedidosClienteBusinessProcessorRules.SetID_EMPRESAValue(const aValue: Integer); @@ -2608,10 +2487,8 @@ begin end; function TPedidosClienteBusinessProcessorRules.GetID_CLIENTEIsNull: Boolean; -var v: variant; begin - v := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosClienteID_CLIENTE]; - result := VarIsNull(v) or VarIsClear(v); + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosClienteID_CLIENTE]); end; function TPedidosClienteBusinessProcessorRules.GetOldID_CLIENTEValue: Integer; @@ -2620,10 +2497,8 @@ begin end; function TPedidosClienteBusinessProcessorRules.GetOldID_CLIENTEIsNull: Boolean; -var v: variant; begin - v := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosClienteID_CLIENTE]; - result := VarIsNull(v) or VarIsClear(v); + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosClienteID_CLIENTE]); end; procedure TPedidosClienteBusinessProcessorRules.SetID_CLIENTEValue(const aValue: Integer); @@ -2643,10 +2518,8 @@ begin end; function TPedidosClienteBusinessProcessorRules.GetNOMBREIsNull: Boolean; -var v: variant; begin - v := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosClienteNOMBRE]; - result := VarIsNull(v) or VarIsClear(v); + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosClienteNOMBRE]); end; function TPedidosClienteBusinessProcessorRules.GetOldNOMBREValue: String; @@ -2655,10 +2528,8 @@ begin end; function TPedidosClienteBusinessProcessorRules.GetOldNOMBREIsNull: Boolean; -var v: variant; begin - v := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosClienteNOMBRE]; - result := VarIsNull(v) or VarIsClear(v); + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosClienteNOMBRE]); end; procedure TPedidosClienteBusinessProcessorRules.SetNOMBREValue(const aValue: String); @@ -2678,10 +2549,8 @@ begin end; function TPedidosClienteBusinessProcessorRules.GetREFERENCIAIsNull: Boolean; -var v: variant; begin - v := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosClienteREFERENCIA]; - result := VarIsNull(v) or VarIsClear(v); + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosClienteREFERENCIA]); end; function TPedidosClienteBusinessProcessorRules.GetOldREFERENCIAValue: String; @@ -2690,10 +2559,8 @@ begin end; function TPedidosClienteBusinessProcessorRules.GetOldREFERENCIAIsNull: Boolean; -var v: variant; begin - v := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosClienteREFERENCIA]; - result := VarIsNull(v) or VarIsClear(v); + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosClienteREFERENCIA]); end; procedure TPedidosClienteBusinessProcessorRules.SetREFERENCIAValue(const aValue: String); @@ -2713,10 +2580,8 @@ begin end; function TPedidosClienteBusinessProcessorRules.GetREFERENCIA_CLIENTEIsNull: Boolean; -var v: variant; begin - v := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosClienteREFERENCIA_CLIENTE]; - result := VarIsNull(v) or VarIsClear(v); + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosClienteREFERENCIA_CLIENTE]); end; function TPedidosClienteBusinessProcessorRules.GetOldREFERENCIA_CLIENTEValue: String; @@ -2725,10 +2590,8 @@ begin end; function TPedidosClienteBusinessProcessorRules.GetOldREFERENCIA_CLIENTEIsNull: Boolean; -var v: variant; begin - v := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosClienteREFERENCIA_CLIENTE]; - result := VarIsNull(v) or VarIsClear(v); + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosClienteREFERENCIA_CLIENTE]); end; procedure TPedidosClienteBusinessProcessorRules.SetREFERENCIA_CLIENTEValue(const aValue: String); @@ -2748,10 +2611,8 @@ begin end; function TPedidosClienteBusinessProcessorRules.GetSITUACIONIsNull: Boolean; -var v: variant; begin - v := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosClienteSITUACION]; - result := VarIsNull(v) or VarIsClear(v); + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosClienteSITUACION]); end; function TPedidosClienteBusinessProcessorRules.GetOldSITUACIONValue: String; @@ -2760,10 +2621,8 @@ begin end; function TPedidosClienteBusinessProcessorRules.GetOldSITUACIONIsNull: Boolean; -var v: variant; begin - v := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosClienteSITUACION]; - result := VarIsNull(v) or VarIsClear(v); + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosClienteSITUACION]); end; procedure TPedidosClienteBusinessProcessorRules.SetSITUACIONValue(const aValue: String); @@ -2783,10 +2642,8 @@ begin end; function TPedidosClienteBusinessProcessorRules.GetFECHA_PEDIDOIsNull: Boolean; -var v: variant; begin - v := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosClienteFECHA_PEDIDO]; - result := VarIsNull(v) or VarIsClear(v); + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosClienteFECHA_PEDIDO]); end; function TPedidosClienteBusinessProcessorRules.GetOldFECHA_PEDIDOValue: DateTime; @@ -2795,10 +2652,8 @@ begin end; function TPedidosClienteBusinessProcessorRules.GetOldFECHA_PEDIDOIsNull: Boolean; -var v: variant; begin - v := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosClienteFECHA_PEDIDO]; - result := VarIsNull(v) or VarIsClear(v); + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosClienteFECHA_PEDIDO]); end; procedure TPedidosClienteBusinessProcessorRules.SetFECHA_PEDIDOValue(const aValue: DateTime); @@ -2818,10 +2673,8 @@ begin end; function TPedidosClienteBusinessProcessorRules.GetID_DIRECCIONIsNull: Boolean; -var v: variant; begin - v := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosClienteID_DIRECCION]; - result := VarIsNull(v) or VarIsClear(v); + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosClienteID_DIRECCION]); end; function TPedidosClienteBusinessProcessorRules.GetOldID_DIRECCIONValue: Integer; @@ -2830,10 +2683,8 @@ begin end; function TPedidosClienteBusinessProcessorRules.GetOldID_DIRECCIONIsNull: Boolean; -var v: variant; begin - v := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosClienteID_DIRECCION]; - result := VarIsNull(v) or VarIsClear(v); + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosClienteID_DIRECCION]); end; procedure TPedidosClienteBusinessProcessorRules.SetID_DIRECCIONValue(const aValue: Integer); @@ -2853,10 +2704,8 @@ begin end; function TPedidosClienteBusinessProcessorRules.GetCALLEIsNull: Boolean; -var v: variant; begin - v := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosClienteCALLE]; - result := VarIsNull(v) or VarIsClear(v); + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosClienteCALLE]); end; function TPedidosClienteBusinessProcessorRules.GetOldCALLEValue: String; @@ -2865,10 +2714,8 @@ begin end; function TPedidosClienteBusinessProcessorRules.GetOldCALLEIsNull: Boolean; -var v: variant; begin - v := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosClienteCALLE]; - result := VarIsNull(v) or VarIsClear(v); + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosClienteCALLE]); end; procedure TPedidosClienteBusinessProcessorRules.SetCALLEValue(const aValue: String); @@ -2888,10 +2735,8 @@ begin end; function TPedidosClienteBusinessProcessorRules.GetCODIGO_POSTALIsNull: Boolean; -var v: variant; begin - v := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosClienteCODIGO_POSTAL]; - result := VarIsNull(v) or VarIsClear(v); + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosClienteCODIGO_POSTAL]); end; function TPedidosClienteBusinessProcessorRules.GetOldCODIGO_POSTALValue: String; @@ -2900,10 +2745,8 @@ begin end; function TPedidosClienteBusinessProcessorRules.GetOldCODIGO_POSTALIsNull: Boolean; -var v: variant; begin - v := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosClienteCODIGO_POSTAL]; - result := VarIsNull(v) or VarIsClear(v); + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosClienteCODIGO_POSTAL]); end; procedure TPedidosClienteBusinessProcessorRules.SetCODIGO_POSTALValue(const aValue: String); @@ -2923,10 +2766,8 @@ begin end; function TPedidosClienteBusinessProcessorRules.GetPOBLACIONIsNull: Boolean; -var v: variant; begin - v := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosClientePOBLACION]; - result := VarIsNull(v) or VarIsClear(v); + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosClientePOBLACION]); end; function TPedidosClienteBusinessProcessorRules.GetOldPOBLACIONValue: String; @@ -2935,10 +2776,8 @@ begin end; function TPedidosClienteBusinessProcessorRules.GetOldPOBLACIONIsNull: Boolean; -var v: variant; begin - v := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosClientePOBLACION]; - result := VarIsNull(v) or VarIsClear(v); + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosClientePOBLACION]); end; procedure TPedidosClienteBusinessProcessorRules.SetPOBLACIONValue(const aValue: String); @@ -2958,10 +2797,8 @@ begin end; function TPedidosClienteBusinessProcessorRules.GetPROVINCIAIsNull: Boolean; -var v: variant; begin - v := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosClientePROVINCIA]; - result := VarIsNull(v) or VarIsClear(v); + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosClientePROVINCIA]); end; function TPedidosClienteBusinessProcessorRules.GetOldPROVINCIAValue: String; @@ -2970,10 +2807,8 @@ begin end; function TPedidosClienteBusinessProcessorRules.GetOldPROVINCIAIsNull: Boolean; -var v: variant; begin - v := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosClientePROVINCIA]; - result := VarIsNull(v) or VarIsClear(v); + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosClientePROVINCIA]); end; procedure TPedidosClienteBusinessProcessorRules.SetPROVINCIAValue(const aValue: String); @@ -2993,10 +2828,8 @@ begin end; function TPedidosClienteBusinessProcessorRules.GetPERSONA_CONTACTOIsNull: Boolean; -var v: variant; begin - v := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosClientePERSONA_CONTACTO]; - result := VarIsNull(v) or VarIsClear(v); + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosClientePERSONA_CONTACTO]); end; function TPedidosClienteBusinessProcessorRules.GetOldPERSONA_CONTACTOValue: String; @@ -3005,10 +2838,8 @@ begin end; function TPedidosClienteBusinessProcessorRules.GetOldPERSONA_CONTACTOIsNull: Boolean; -var v: variant; begin - v := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosClientePERSONA_CONTACTO]; - result := VarIsNull(v) or VarIsClear(v); + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosClientePERSONA_CONTACTO]); end; procedure TPedidosClienteBusinessProcessorRules.SetPERSONA_CONTACTOValue(const aValue: String); @@ -3028,10 +2859,8 @@ begin end; function TPedidosClienteBusinessProcessorRules.GetTELEFONOIsNull: Boolean; -var v: variant; begin - v := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosClienteTELEFONO]; - result := VarIsNull(v) or VarIsClear(v); + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosClienteTELEFONO]); end; function TPedidosClienteBusinessProcessorRules.GetOldTELEFONOValue: String; @@ -3040,10 +2869,8 @@ begin end; function TPedidosClienteBusinessProcessorRules.GetOldTELEFONOIsNull: Boolean; -var v: variant; begin - v := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosClienteTELEFONO]; - result := VarIsNull(v) or VarIsClear(v); + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosClienteTELEFONO]); end; procedure TPedidosClienteBusinessProcessorRules.SetTELEFONOValue(const aValue: String); @@ -3064,10 +2891,8 @@ begin end; function TPedidosClienteBusinessProcessorRules.GetOBSERVACIONESIsNull: Boolean; -var v: variant; begin - v := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosClienteOBSERVACIONES]; - result := VarIsNull(v) or VarIsClear(v); + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosClienteOBSERVACIONES]); end; function TPedidosClienteBusinessProcessorRules.GetOldOBSERVACIONESValue: IROStrings; @@ -3077,10 +2902,8 @@ begin end; function TPedidosClienteBusinessProcessorRules.GetOldOBSERVACIONESIsNull: Boolean; -var v: variant; begin - v := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosClienteOBSERVACIONES]; - result := VarIsNull(v) or VarIsClear(v); + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosClienteOBSERVACIONES]); end; procedure TPedidosClienteBusinessProcessorRules.SetOBSERVACIONESIsNull(const aValue: Boolean); @@ -3096,10 +2919,8 @@ begin end; function TPedidosClienteBusinessProcessorRules.GetINCIDENCIASIsNull: Boolean; -var v: variant; begin - v := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosClienteINCIDENCIAS]; - result := VarIsNull(v) or VarIsClear(v); + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosClienteINCIDENCIAS]); end; function TPedidosClienteBusinessProcessorRules.GetOldINCIDENCIASValue: IROStrings; @@ -3109,10 +2930,8 @@ begin end; function TPedidosClienteBusinessProcessorRules.GetOldINCIDENCIASIsNull: Boolean; -var v: variant; begin - v := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosClienteINCIDENCIAS]; - result := VarIsNull(v) or VarIsClear(v); + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosClienteINCIDENCIAS]); end; procedure TPedidosClienteBusinessProcessorRules.SetINCIDENCIASIsNull(const aValue: Boolean); @@ -3127,10 +2946,8 @@ begin end; function TPedidosClienteBusinessProcessorRules.GetINCIDENCIAS_ACTIVASIsNull: Boolean; -var v: variant; begin - v := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosClienteINCIDENCIAS_ACTIVAS]; - result := VarIsNull(v) or VarIsClear(v); + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosClienteINCIDENCIAS_ACTIVAS]); end; function TPedidosClienteBusinessProcessorRules.GetOldINCIDENCIAS_ACTIVASValue: Integer; @@ -3139,10 +2956,8 @@ begin end; function TPedidosClienteBusinessProcessorRules.GetOldINCIDENCIAS_ACTIVASIsNull: Boolean; -var v: variant; begin - v := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosClienteINCIDENCIAS_ACTIVAS]; - result := VarIsNull(v) or VarIsClear(v); + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosClienteINCIDENCIAS_ACTIVAS]); end; procedure TPedidosClienteBusinessProcessorRules.SetINCIDENCIAS_ACTIVASValue(const aValue: Integer); @@ -3162,10 +2977,8 @@ begin end; function TPedidosClienteBusinessProcessorRules.GetFECHA_ALTAIsNull: Boolean; -var v: variant; begin - v := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosClienteFECHA_ALTA]; - result := VarIsNull(v) or VarIsClear(v); + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosClienteFECHA_ALTA]); end; function TPedidosClienteBusinessProcessorRules.GetOldFECHA_ALTAValue: DateTime; @@ -3174,10 +2987,8 @@ begin end; function TPedidosClienteBusinessProcessorRules.GetOldFECHA_ALTAIsNull: Boolean; -var v: variant; begin - v := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosClienteFECHA_ALTA]; - result := VarIsNull(v) or VarIsClear(v); + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosClienteFECHA_ALTA]); end; procedure TPedidosClienteBusinessProcessorRules.SetFECHA_ALTAValue(const aValue: DateTime); @@ -3197,10 +3008,8 @@ begin end; function TPedidosClienteBusinessProcessorRules.GetFECHA_MODIFICACIONIsNull: Boolean; -var v: variant; begin - v := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosClienteFECHA_MODIFICACION]; - result := VarIsNull(v) or VarIsClear(v); + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosClienteFECHA_MODIFICACION]); end; function TPedidosClienteBusinessProcessorRules.GetOldFECHA_MODIFICACIONValue: DateTime; @@ -3209,10 +3018,8 @@ begin end; function TPedidosClienteBusinessProcessorRules.GetOldFECHA_MODIFICACIONIsNull: Boolean; -var v: variant; begin - v := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosClienteFECHA_MODIFICACION]; - result := VarIsNull(v) or VarIsClear(v); + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosClienteFECHA_MODIFICACION]); end; procedure TPedidosClienteBusinessProcessorRules.SetFECHA_MODIFICACIONValue(const aValue: DateTime); @@ -3232,10 +3039,8 @@ begin end; function TPedidosClienteBusinessProcessorRules.GetUSUARIOIsNull: Boolean; -var v: variant; begin - v := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosClienteUSUARIO]; - result := VarIsNull(v) or VarIsClear(v); + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosClienteUSUARIO]); end; function TPedidosClienteBusinessProcessorRules.GetOldUSUARIOValue: String; @@ -3244,10 +3049,8 @@ begin end; function TPedidosClienteBusinessProcessorRules.GetOldUSUARIOIsNull: Boolean; -var v: variant; begin - v := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosClienteUSUARIO]; - result := VarIsNull(v) or VarIsClear(v); + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosClienteUSUARIO]); end; procedure TPedidosClienteBusinessProcessorRules.SetUSUARIOValue(const aValue: String); @@ -3267,10 +3070,8 @@ begin end; function TPedidosClienteBusinessProcessorRules.GetIMPORTE_NETOIsNull: Boolean; -var v: variant; begin - v := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosClienteIMPORTE_NETO]; - result := VarIsNull(v) or VarIsClear(v); + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosClienteIMPORTE_NETO]); end; function TPedidosClienteBusinessProcessorRules.GetOldIMPORTE_NETOValue: Currency; @@ -3279,10 +3080,8 @@ begin end; function TPedidosClienteBusinessProcessorRules.GetOldIMPORTE_NETOIsNull: Boolean; -var v: variant; begin - v := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosClienteIMPORTE_NETO]; - result := VarIsNull(v) or VarIsClear(v); + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosClienteIMPORTE_NETO]); end; procedure TPedidosClienteBusinessProcessorRules.SetIMPORTE_NETOValue(const aValue: Currency); @@ -3302,10 +3101,8 @@ begin end; function TPedidosClienteBusinessProcessorRules.GetIMPORTE_PORTEIsNull: Boolean; -var v: variant; begin - v := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosClienteIMPORTE_PORTE]; - result := VarIsNull(v) or VarIsClear(v); + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosClienteIMPORTE_PORTE]); end; function TPedidosClienteBusinessProcessorRules.GetOldIMPORTE_PORTEValue: Currency; @@ -3314,10 +3111,8 @@ begin end; function TPedidosClienteBusinessProcessorRules.GetOldIMPORTE_PORTEIsNull: Boolean; -var v: variant; begin - v := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosClienteIMPORTE_PORTE]; - result := VarIsNull(v) or VarIsClear(v); + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosClienteIMPORTE_PORTE]); end; procedure TPedidosClienteBusinessProcessorRules.SetIMPORTE_PORTEValue(const aValue: Currency); @@ -3337,10 +3132,8 @@ begin end; function TPedidosClienteBusinessProcessorRules.GetDESCUENTOIsNull: Boolean; -var v: variant; begin - v := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosClienteDESCUENTO]; - result := VarIsNull(v) or VarIsClear(v); + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosClienteDESCUENTO]); end; function TPedidosClienteBusinessProcessorRules.GetOldDESCUENTOValue: Float; @@ -3349,10 +3142,8 @@ begin end; function TPedidosClienteBusinessProcessorRules.GetOldDESCUENTOIsNull: Boolean; -var v: variant; begin - v := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosClienteDESCUENTO]; - result := VarIsNull(v) or VarIsClear(v); + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosClienteDESCUENTO]); end; procedure TPedidosClienteBusinessProcessorRules.SetDESCUENTOValue(const aValue: Float); @@ -3372,10 +3163,8 @@ begin end; function TPedidosClienteBusinessProcessorRules.GetIMPORTE_DESCUENTOIsNull: Boolean; -var v: variant; begin - v := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosClienteIMPORTE_DESCUENTO]; - result := VarIsNull(v) or VarIsClear(v); + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosClienteIMPORTE_DESCUENTO]); end; function TPedidosClienteBusinessProcessorRules.GetOldIMPORTE_DESCUENTOValue: Currency; @@ -3384,10 +3173,8 @@ begin end; function TPedidosClienteBusinessProcessorRules.GetOldIMPORTE_DESCUENTOIsNull: Boolean; -var v: variant; begin - v := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosClienteIMPORTE_DESCUENTO]; - result := VarIsNull(v) or VarIsClear(v); + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosClienteIMPORTE_DESCUENTO]); end; procedure TPedidosClienteBusinessProcessorRules.SetIMPORTE_DESCUENTOValue(const aValue: Currency); @@ -3407,10 +3194,8 @@ begin end; function TPedidosClienteBusinessProcessorRules.GetDESCUENTO2IsNull: Boolean; -var v: variant; begin - v := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosClienteDESCUENTO2]; - result := VarIsNull(v) or VarIsClear(v); + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosClienteDESCUENTO2]); end; function TPedidosClienteBusinessProcessorRules.GetOldDESCUENTO2Value: Float; @@ -3419,10 +3204,8 @@ begin end; function TPedidosClienteBusinessProcessorRules.GetOldDESCUENTO2IsNull: Boolean; -var v: variant; begin - v := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosClienteDESCUENTO2]; - result := VarIsNull(v) or VarIsClear(v); + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosClienteDESCUENTO2]); end; procedure TPedidosClienteBusinessProcessorRules.SetDESCUENTO2Value(const aValue: Float); @@ -3442,10 +3225,8 @@ begin end; function TPedidosClienteBusinessProcessorRules.GetIMPORTE_DESCUENTO2IsNull: Boolean; -var v: variant; begin - v := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosClienteIMPORTE_DESCUENTO2]; - result := VarIsNull(v) or VarIsClear(v); + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosClienteIMPORTE_DESCUENTO2]); end; function TPedidosClienteBusinessProcessorRules.GetOldIMPORTE_DESCUENTO2Value: Currency; @@ -3454,10 +3235,8 @@ begin end; function TPedidosClienteBusinessProcessorRules.GetOldIMPORTE_DESCUENTO2IsNull: Boolean; -var v: variant; begin - v := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosClienteIMPORTE_DESCUENTO2]; - result := VarIsNull(v) or VarIsClear(v); + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosClienteIMPORTE_DESCUENTO2]); end; procedure TPedidosClienteBusinessProcessorRules.SetIMPORTE_DESCUENTO2Value(const aValue: Currency); @@ -3477,10 +3256,8 @@ begin end; function TPedidosClienteBusinessProcessorRules.GetBASE_IMPONIBLEIsNull: Boolean; -var v: variant; begin - v := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosClienteBASE_IMPONIBLE]; - result := VarIsNull(v) or VarIsClear(v); + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosClienteBASE_IMPONIBLE]); end; function TPedidosClienteBusinessProcessorRules.GetOldBASE_IMPONIBLEValue: Currency; @@ -3489,10 +3266,8 @@ begin end; function TPedidosClienteBusinessProcessorRules.GetOldBASE_IMPONIBLEIsNull: Boolean; -var v: variant; begin - v := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosClienteBASE_IMPONIBLE]; - result := VarIsNull(v) or VarIsClear(v); + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosClienteBASE_IMPONIBLE]); end; procedure TPedidosClienteBusinessProcessorRules.SetBASE_IMPONIBLEValue(const aValue: Currency); @@ -3512,10 +3287,8 @@ begin end; function TPedidosClienteBusinessProcessorRules.GetIVAIsNull: Boolean; -var v: variant; begin - v := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosClienteIVA]; - result := VarIsNull(v) or VarIsClear(v); + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosClienteIVA]); end; function TPedidosClienteBusinessProcessorRules.GetOldIVAValue: Float; @@ -3524,10 +3297,8 @@ begin end; function TPedidosClienteBusinessProcessorRules.GetOldIVAIsNull: Boolean; -var v: variant; begin - v := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosClienteIVA]; - result := VarIsNull(v) or VarIsClear(v); + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosClienteIVA]); end; procedure TPedidosClienteBusinessProcessorRules.SetIVAValue(const aValue: Float); @@ -3547,10 +3318,8 @@ begin end; function TPedidosClienteBusinessProcessorRules.GetIMPORTE_IVAIsNull: Boolean; -var v: variant; begin - v := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosClienteIMPORTE_IVA]; - result := VarIsNull(v) or VarIsClear(v); + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosClienteIMPORTE_IVA]); end; function TPedidosClienteBusinessProcessorRules.GetOldIMPORTE_IVAValue: Currency; @@ -3559,10 +3328,8 @@ begin end; function TPedidosClienteBusinessProcessorRules.GetOldIMPORTE_IVAIsNull: Boolean; -var v: variant; begin - v := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosClienteIMPORTE_IVA]; - result := VarIsNull(v) or VarIsClear(v); + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosClienteIMPORTE_IVA]); end; procedure TPedidosClienteBusinessProcessorRules.SetIMPORTE_IVAValue(const aValue: Currency); @@ -3582,10 +3349,8 @@ begin end; function TPedidosClienteBusinessProcessorRules.GetIMPORTE_TOTALIsNull: Boolean; -var v: variant; begin - v := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosClienteIMPORTE_TOTAL]; - result := VarIsNull(v) or VarIsClear(v); + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosClienteIMPORTE_TOTAL]); end; function TPedidosClienteBusinessProcessorRules.GetOldIMPORTE_TOTALValue: Currency; @@ -3594,10 +3359,8 @@ begin end; function TPedidosClienteBusinessProcessorRules.GetOldIMPORTE_TOTALIsNull: Boolean; -var v: variant; begin - v := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosClienteIMPORTE_TOTAL]; - result := VarIsNull(v) or VarIsClear(v); + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosClienteIMPORTE_TOTAL]); end; procedure TPedidosClienteBusinessProcessorRules.SetIMPORTE_TOTALValue(const aValue: Currency); @@ -3617,10 +3380,8 @@ begin end; function TPedidosClienteBusinessProcessorRules.GetID_FORMA_PAGOIsNull: Boolean; -var v: variant; begin - v := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosClienteID_FORMA_PAGO]; - result := VarIsNull(v) or VarIsClear(v); + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosClienteID_FORMA_PAGO]); end; function TPedidosClienteBusinessProcessorRules.GetOldID_FORMA_PAGOValue: Integer; @@ -3629,10 +3390,8 @@ begin end; function TPedidosClienteBusinessProcessorRules.GetOldID_FORMA_PAGOIsNull: Boolean; -var v: variant; begin - v := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosClienteID_FORMA_PAGO]; - result := VarIsNull(v) or VarIsClear(v); + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosClienteID_FORMA_PAGO]); end; procedure TPedidosClienteBusinessProcessorRules.SetID_FORMA_PAGOValue(const aValue: Integer); @@ -3652,10 +3411,8 @@ begin end; function TPedidosClienteBusinessProcessorRules.GetFORMA_PAGOIsNull: Boolean; -var v: variant; begin - v := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosClienteFORMA_PAGO]; - result := VarIsNull(v) or VarIsClear(v); + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosClienteFORMA_PAGO]); end; function TPedidosClienteBusinessProcessorRules.GetOldFORMA_PAGOValue: String; @@ -3664,10 +3421,8 @@ begin end; function TPedidosClienteBusinessProcessorRules.GetOldFORMA_PAGOIsNull: Boolean; -var v: variant; begin - v := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosClienteFORMA_PAGO]; - result := VarIsNull(v) or VarIsClear(v); + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosClienteFORMA_PAGO]); end; procedure TPedidosClienteBusinessProcessorRules.SetFORMA_PAGOValue(const aValue: String); @@ -3687,10 +3442,8 @@ begin end; function TPedidosClienteBusinessProcessorRules.GetREF_TIENDA_WEBIsNull: Boolean; -var v: variant; begin - v := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosClienteREF_TIENDA_WEB]; - result := VarIsNull(v) or VarIsClear(v); + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosClienteREF_TIENDA_WEB]); end; function TPedidosClienteBusinessProcessorRules.GetOldREF_TIENDA_WEBValue: Integer; @@ -3699,10 +3452,8 @@ begin end; function TPedidosClienteBusinessProcessorRules.GetOldREF_TIENDA_WEBIsNull: Boolean; -var v: variant; begin - v := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosClienteREF_TIENDA_WEB]; - result := VarIsNull(v) or VarIsClear(v); + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosClienteREF_TIENDA_WEB]); end; procedure TPedidosClienteBusinessProcessorRules.SetREF_TIENDA_WEBValue(const aValue: Integer); @@ -3722,10 +3473,8 @@ begin end; function TPedidosClienteBusinessProcessorRules.GetFECHA_PREVISTA_ENVIOIsNull: Boolean; -var v: variant; begin - v := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosClienteFECHA_PREVISTA_ENVIO]; - result := VarIsNull(v) or VarIsClear(v); + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosClienteFECHA_PREVISTA_ENVIO]); end; function TPedidosClienteBusinessProcessorRules.GetOldFECHA_PREVISTA_ENVIOValue: DateTime; @@ -3734,10 +3483,8 @@ begin end; function TPedidosClienteBusinessProcessorRules.GetOldFECHA_PREVISTA_ENVIOIsNull: Boolean; -var v: variant; begin - v := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosClienteFECHA_PREVISTA_ENVIO]; - result := VarIsNull(v) or VarIsClear(v); + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosClienteFECHA_PREVISTA_ENVIO]); end; procedure TPedidosClienteBusinessProcessorRules.SetFECHA_PREVISTA_ENVIOValue(const aValue: DateTime); @@ -3757,10 +3504,8 @@ begin end; function TPedidosClienteBusinessProcessorRules.GetDATOS_BANCARIOSIsNull: Boolean; -var v: variant; begin - v := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosClienteDATOS_BANCARIOS]; - result := VarIsNull(v) or VarIsClear(v); + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosClienteDATOS_BANCARIOS]); end; function TPedidosClienteBusinessProcessorRules.GetOldDATOS_BANCARIOSValue: String; @@ -3769,10 +3514,8 @@ begin end; function TPedidosClienteBusinessProcessorRules.GetOldDATOS_BANCARIOSIsNull: Boolean; -var v: variant; begin - v := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosClienteDATOS_BANCARIOS]; - result := VarIsNull(v) or VarIsClear(v); + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosClienteDATOS_BANCARIOS]); end; procedure TPedidosClienteBusinessProcessorRules.SetDATOS_BANCARIOSValue(const aValue: String); @@ -3786,6 +3529,37 @@ begin BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosClienteDATOS_BANCARIOS] := Null; end; +function TPedidosClienteBusinessProcessorRules.GetID_VENDEDORValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosClienteID_VENDEDOR]; +end; + +function TPedidosClienteBusinessProcessorRules.GetID_VENDEDORIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosClienteID_VENDEDOR]); +end; + +function TPedidosClienteBusinessProcessorRules.GetOldID_VENDEDORValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosClienteID_VENDEDOR]; +end; + +function TPedidosClienteBusinessProcessorRules.GetOldID_VENDEDORIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosClienteID_VENDEDOR]); +end; + +procedure TPedidosClienteBusinessProcessorRules.SetID_VENDEDORValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosClienteID_VENDEDOR] := aValue; +end; + +procedure TPedidosClienteBusinessProcessorRules.SetID_VENDEDORIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosClienteID_VENDEDOR] := Null; +end; + { TPedidosCliente_DetallesBusinessProcessorRules } constructor TPedidosCliente_DetallesBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor); @@ -3804,10 +3578,8 @@ begin end; function TPedidosCliente_DetallesBusinessProcessorRules.GetIDIsNull: Boolean; -var v: variant; begin - v := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosCliente_DetallesID]; - result := VarIsNull(v) or VarIsClear(v); + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosCliente_DetallesID]); end; function TPedidosCliente_DetallesBusinessProcessorRules.GetOldIDValue: Integer; @@ -3816,10 +3588,8 @@ begin end; function TPedidosCliente_DetallesBusinessProcessorRules.GetOldIDIsNull: Boolean; -var v: variant; begin - v := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosCliente_DetallesID]; - result := VarIsNull(v) or VarIsClear(v); + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosCliente_DetallesID]); end; procedure TPedidosCliente_DetallesBusinessProcessorRules.SetIDValue(const aValue: Integer); @@ -3839,10 +3609,8 @@ begin end; function TPedidosCliente_DetallesBusinessProcessorRules.GetID_PEDIDOIsNull: Boolean; -var v: variant; begin - v := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosCliente_DetallesID_PEDIDO]; - result := VarIsNull(v) or VarIsClear(v); + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosCliente_DetallesID_PEDIDO]); end; function TPedidosCliente_DetallesBusinessProcessorRules.GetOldID_PEDIDOValue: Integer; @@ -3851,10 +3619,8 @@ begin end; function TPedidosCliente_DetallesBusinessProcessorRules.GetOldID_PEDIDOIsNull: Boolean; -var v: variant; begin - v := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosCliente_DetallesID_PEDIDO]; - result := VarIsNull(v) or VarIsClear(v); + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosCliente_DetallesID_PEDIDO]); end; procedure TPedidosCliente_DetallesBusinessProcessorRules.SetID_PEDIDOValue(const aValue: Integer); @@ -3874,10 +3640,8 @@ begin end; function TPedidosCliente_DetallesBusinessProcessorRules.GetPOSICIONIsNull: Boolean; -var v: variant; begin - v := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosCliente_DetallesPOSICION]; - result := VarIsNull(v) or VarIsClear(v); + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosCliente_DetallesPOSICION]); end; function TPedidosCliente_DetallesBusinessProcessorRules.GetOldPOSICIONValue: Integer; @@ -3886,10 +3650,8 @@ begin end; function TPedidosCliente_DetallesBusinessProcessorRules.GetOldPOSICIONIsNull: Boolean; -var v: variant; begin - v := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosCliente_DetallesPOSICION]; - result := VarIsNull(v) or VarIsClear(v); + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosCliente_DetallesPOSICION]); end; procedure TPedidosCliente_DetallesBusinessProcessorRules.SetPOSICIONValue(const aValue: Integer); @@ -3909,10 +3671,8 @@ begin end; function TPedidosCliente_DetallesBusinessProcessorRules.GetTIPO_DETALLEIsNull: Boolean; -var v: variant; begin - v := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosCliente_DetallesTIPO_DETALLE]; - result := VarIsNull(v) or VarIsClear(v); + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosCliente_DetallesTIPO_DETALLE]); end; function TPedidosCliente_DetallesBusinessProcessorRules.GetOldTIPO_DETALLEValue: String; @@ -3921,10 +3681,8 @@ begin end; function TPedidosCliente_DetallesBusinessProcessorRules.GetOldTIPO_DETALLEIsNull: Boolean; -var v: variant; begin - v := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosCliente_DetallesTIPO_DETALLE]; - result := VarIsNull(v) or VarIsClear(v); + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosCliente_DetallesTIPO_DETALLE]); end; procedure TPedidosCliente_DetallesBusinessProcessorRules.SetTIPO_DETALLEValue(const aValue: String); @@ -3944,10 +3702,8 @@ begin end; function TPedidosCliente_DetallesBusinessProcessorRules.GetID_ARTICULOIsNull: Boolean; -var v: variant; begin - v := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosCliente_DetallesID_ARTICULO]; - result := VarIsNull(v) or VarIsClear(v); + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosCliente_DetallesID_ARTICULO]); end; function TPedidosCliente_DetallesBusinessProcessorRules.GetOldID_ARTICULOValue: Integer; @@ -3956,10 +3712,8 @@ begin end; function TPedidosCliente_DetallesBusinessProcessorRules.GetOldID_ARTICULOIsNull: Boolean; -var v: variant; begin - v := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosCliente_DetallesID_ARTICULO]; - result := VarIsNull(v) or VarIsClear(v); + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosCliente_DetallesID_ARTICULO]); end; procedure TPedidosCliente_DetallesBusinessProcessorRules.SetID_ARTICULOValue(const aValue: Integer); @@ -3979,10 +3733,8 @@ begin end; function TPedidosCliente_DetallesBusinessProcessorRules.GetREFERENCIAIsNull: Boolean; -var v: variant; begin - v := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosCliente_DetallesREFERENCIA]; - result := VarIsNull(v) or VarIsClear(v); + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosCliente_DetallesREFERENCIA]); end; function TPedidosCliente_DetallesBusinessProcessorRules.GetOldREFERENCIAValue: String; @@ -3991,10 +3743,8 @@ begin end; function TPedidosCliente_DetallesBusinessProcessorRules.GetOldREFERENCIAIsNull: Boolean; -var v: variant; begin - v := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosCliente_DetallesREFERENCIA]; - result := VarIsNull(v) or VarIsClear(v); + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosCliente_DetallesREFERENCIA]); end; procedure TPedidosCliente_DetallesBusinessProcessorRules.SetREFERENCIAValue(const aValue: String); @@ -4014,10 +3764,8 @@ begin end; function TPedidosCliente_DetallesBusinessProcessorRules.GetREFERENCIA_PROVEEDORIsNull: Boolean; -var v: variant; begin - v := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosCliente_DetallesREFERENCIA_PROVEEDOR]; - result := VarIsNull(v) or VarIsClear(v); + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosCliente_DetallesREFERENCIA_PROVEEDOR]); end; function TPedidosCliente_DetallesBusinessProcessorRules.GetOldREFERENCIA_PROVEEDORValue: String; @@ -4026,10 +3774,8 @@ begin end; function TPedidosCliente_DetallesBusinessProcessorRules.GetOldREFERENCIA_PROVEEDORIsNull: Boolean; -var v: variant; begin - v := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosCliente_DetallesREFERENCIA_PROVEEDOR]; - result := VarIsNull(v) or VarIsClear(v); + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosCliente_DetallesREFERENCIA_PROVEEDOR]); end; procedure TPedidosCliente_DetallesBusinessProcessorRules.SetREFERENCIA_PROVEEDORValue(const aValue: String); @@ -4049,10 +3795,8 @@ begin end; function TPedidosCliente_DetallesBusinessProcessorRules.GetCONCEPTOIsNull: Boolean; -var v: variant; begin - v := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosCliente_DetallesCONCEPTO]; - result := VarIsNull(v) or VarIsClear(v); + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosCliente_DetallesCONCEPTO]); end; function TPedidosCliente_DetallesBusinessProcessorRules.GetOldCONCEPTOValue: String; @@ -4061,10 +3805,8 @@ begin end; function TPedidosCliente_DetallesBusinessProcessorRules.GetOldCONCEPTOIsNull: Boolean; -var v: variant; begin - v := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosCliente_DetallesCONCEPTO]; - result := VarIsNull(v) or VarIsClear(v); + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosCliente_DetallesCONCEPTO]); end; procedure TPedidosCliente_DetallesBusinessProcessorRules.SetCONCEPTOValue(const aValue: String); @@ -4084,10 +3826,8 @@ begin end; function TPedidosCliente_DetallesBusinessProcessorRules.GetCANTIDADIsNull: Boolean; -var v: variant; begin - v := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosCliente_DetallesCANTIDAD]; - result := VarIsNull(v) or VarIsClear(v); + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosCliente_DetallesCANTIDAD]); end; function TPedidosCliente_DetallesBusinessProcessorRules.GetOldCANTIDADValue: Float; @@ -4096,10 +3836,8 @@ begin end; function TPedidosCliente_DetallesBusinessProcessorRules.GetOldCANTIDADIsNull: Boolean; -var v: variant; begin - v := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosCliente_DetallesCANTIDAD]; - result := VarIsNull(v) or VarIsClear(v); + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosCliente_DetallesCANTIDAD]); end; procedure TPedidosCliente_DetallesBusinessProcessorRules.SetCANTIDADValue(const aValue: Float); @@ -4119,10 +3857,8 @@ begin end; function TPedidosCliente_DetallesBusinessProcessorRules.GetIMPORTE_UNIDADIsNull: Boolean; -var v: variant; begin - v := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosCliente_DetallesIMPORTE_UNIDAD]; - result := VarIsNull(v) or VarIsClear(v); + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosCliente_DetallesIMPORTE_UNIDAD]); end; function TPedidosCliente_DetallesBusinessProcessorRules.GetOldIMPORTE_UNIDADValue: Currency; @@ -4131,10 +3867,8 @@ begin end; function TPedidosCliente_DetallesBusinessProcessorRules.GetOldIMPORTE_UNIDADIsNull: Boolean; -var v: variant; begin - v := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosCliente_DetallesIMPORTE_UNIDAD]; - result := VarIsNull(v) or VarIsClear(v); + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosCliente_DetallesIMPORTE_UNIDAD]); end; procedure TPedidosCliente_DetallesBusinessProcessorRules.SetIMPORTE_UNIDADValue(const aValue: Currency); @@ -4154,10 +3888,8 @@ begin end; function TPedidosCliente_DetallesBusinessProcessorRules.GetUNIDAD_MEDIDAIsNull: Boolean; -var v: variant; begin - v := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosCliente_DetallesUNIDAD_MEDIDA]; - result := VarIsNull(v) or VarIsClear(v); + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosCliente_DetallesUNIDAD_MEDIDA]); end; function TPedidosCliente_DetallesBusinessProcessorRules.GetOldUNIDAD_MEDIDAValue: String; @@ -4166,10 +3898,8 @@ begin end; function TPedidosCliente_DetallesBusinessProcessorRules.GetOldUNIDAD_MEDIDAIsNull: Boolean; -var v: variant; begin - v := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosCliente_DetallesUNIDAD_MEDIDA]; - result := VarIsNull(v) or VarIsClear(v); + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosCliente_DetallesUNIDAD_MEDIDA]); end; procedure TPedidosCliente_DetallesBusinessProcessorRules.SetUNIDAD_MEDIDAValue(const aValue: String); @@ -4189,10 +3919,8 @@ begin end; function TPedidosCliente_DetallesBusinessProcessorRules.GetDESCUENTOIsNull: Boolean; -var v: variant; begin - v := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosCliente_DetallesDESCUENTO]; - result := VarIsNull(v) or VarIsClear(v); + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosCliente_DetallesDESCUENTO]); end; function TPedidosCliente_DetallesBusinessProcessorRules.GetOldDESCUENTOValue: Float; @@ -4201,10 +3929,8 @@ begin end; function TPedidosCliente_DetallesBusinessProcessorRules.GetOldDESCUENTOIsNull: Boolean; -var v: variant; begin - v := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosCliente_DetallesDESCUENTO]; - result := VarIsNull(v) or VarIsClear(v); + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosCliente_DetallesDESCUENTO]); end; procedure TPedidosCliente_DetallesBusinessProcessorRules.SetDESCUENTOValue(const aValue: Float); @@ -4224,10 +3950,8 @@ begin end; function TPedidosCliente_DetallesBusinessProcessorRules.GetIMPORTE_PORTEIsNull: Boolean; -var v: variant; begin - v := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosCliente_DetallesIMPORTE_PORTE]; - result := VarIsNull(v) or VarIsClear(v); + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosCliente_DetallesIMPORTE_PORTE]); end; function TPedidosCliente_DetallesBusinessProcessorRules.GetOldIMPORTE_PORTEValue: Currency; @@ -4236,10 +3960,8 @@ begin end; function TPedidosCliente_DetallesBusinessProcessorRules.GetOldIMPORTE_PORTEIsNull: Boolean; -var v: variant; begin - v := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosCliente_DetallesIMPORTE_PORTE]; - result := VarIsNull(v) or VarIsClear(v); + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosCliente_DetallesIMPORTE_PORTE]); end; procedure TPedidosCliente_DetallesBusinessProcessorRules.SetIMPORTE_PORTEValue(const aValue: Currency); @@ -4259,10 +3981,8 @@ begin end; function TPedidosCliente_DetallesBusinessProcessorRules.GetIMPORTE_TOTALIsNull: Boolean; -var v: variant; begin - v := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosCliente_DetallesIMPORTE_TOTAL]; - result := VarIsNull(v) or VarIsClear(v); + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosCliente_DetallesIMPORTE_TOTAL]); end; function TPedidosCliente_DetallesBusinessProcessorRules.GetOldIMPORTE_TOTALValue: Currency; @@ -4271,10 +3991,8 @@ begin end; function TPedidosCliente_DetallesBusinessProcessorRules.GetOldIMPORTE_TOTALIsNull: Boolean; -var v: variant; begin - v := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosCliente_DetallesIMPORTE_TOTAL]; - result := VarIsNull(v) or VarIsClear(v); + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosCliente_DetallesIMPORTE_TOTAL]); end; procedure TPedidosCliente_DetallesBusinessProcessorRules.SetIMPORTE_TOTALValue(const aValue: Currency); @@ -4294,10 +4012,8 @@ begin end; function TPedidosCliente_DetallesBusinessProcessorRules.GetVISIBLEIsNull: Boolean; -var v: variant; begin - v := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosCliente_DetallesVISIBLE]; - result := VarIsNull(v) or VarIsClear(v); + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosCliente_DetallesVISIBLE]); end; function TPedidosCliente_DetallesBusinessProcessorRules.GetOldVISIBLEValue: Integer; @@ -4306,10 +4022,8 @@ begin end; function TPedidosCliente_DetallesBusinessProcessorRules.GetOldVISIBLEIsNull: Boolean; -var v: variant; begin - v := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosCliente_DetallesVISIBLE]; - result := VarIsNull(v) or VarIsClear(v); + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosCliente_DetallesVISIBLE]); end; procedure TPedidosCliente_DetallesBusinessProcessorRules.SetVISIBLEValue(const aValue: Integer); @@ -4341,10 +4055,8 @@ begin end; function TPedidoCliente_Articulos_PendientesBusinessProcessorRules.GetID_ARTICULOIsNull: Boolean; -var v: variant; begin - v := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidoCliente_Articulos_PendientesID_ARTICULO]; - result := VarIsNull(v) or VarIsClear(v); + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_PedidoCliente_Articulos_PendientesID_ARTICULO]); end; function TPedidoCliente_Articulos_PendientesBusinessProcessorRules.GetOldID_ARTICULOValue: Integer; @@ -4353,10 +4065,8 @@ begin end; function TPedidoCliente_Articulos_PendientesBusinessProcessorRules.GetOldID_ARTICULOIsNull: Boolean; -var v: variant; begin - v := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidoCliente_Articulos_PendientesID_ARTICULO]; - result := VarIsNull(v) or VarIsClear(v); + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_PedidoCliente_Articulos_PendientesID_ARTICULO]); end; procedure TPedidoCliente_Articulos_PendientesBusinessProcessorRules.SetID_ARTICULOValue(const aValue: Integer); @@ -4376,10 +4086,8 @@ begin end; function TPedidoCliente_Articulos_PendientesBusinessProcessorRules.GetCANTIDAD_PEDIsNull: Boolean; -var v: variant; begin - v := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidoCliente_Articulos_PendientesCANTIDAD_PED]; - result := VarIsNull(v) or VarIsClear(v); + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_PedidoCliente_Articulos_PendientesCANTIDAD_PED]); end; function TPedidoCliente_Articulos_PendientesBusinessProcessorRules.GetOldCANTIDAD_PEDValue: Float; @@ -4388,10 +4096,8 @@ begin end; function TPedidoCliente_Articulos_PendientesBusinessProcessorRules.GetOldCANTIDAD_PEDIsNull: Boolean; -var v: variant; begin - v := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidoCliente_Articulos_PendientesCANTIDAD_PED]; - result := VarIsNull(v) or VarIsClear(v); + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_PedidoCliente_Articulos_PendientesCANTIDAD_PED]); end; procedure TPedidoCliente_Articulos_PendientesBusinessProcessorRules.SetCANTIDAD_PEDValue(const aValue: Float); @@ -4411,10 +4117,8 @@ begin end; function TPedidoCliente_Articulos_PendientesBusinessProcessorRules.GetCANTIDAD_ALBIsNull: Boolean; -var v: variant; begin - v := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidoCliente_Articulos_PendientesCANTIDAD_ALB]; - result := VarIsNull(v) or VarIsClear(v); + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_PedidoCliente_Articulos_PendientesCANTIDAD_ALB]); end; function TPedidoCliente_Articulos_PendientesBusinessProcessorRules.GetOldCANTIDAD_ALBValue: Float; @@ -4423,10 +4127,8 @@ begin end; function TPedidoCliente_Articulos_PendientesBusinessProcessorRules.GetOldCANTIDAD_ALBIsNull: Boolean; -var v: variant; begin - v := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidoCliente_Articulos_PendientesCANTIDAD_ALB]; - result := VarIsNull(v) or VarIsClear(v); + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_PedidoCliente_Articulos_PendientesCANTIDAD_ALB]); end; procedure TPedidoCliente_Articulos_PendientesBusinessProcessorRules.SetCANTIDAD_ALBValue(const aValue: Float); @@ -4446,10 +4148,8 @@ begin end; function TPedidoCliente_Articulos_PendientesBusinessProcessorRules.GetCANTIDAD_PENDIENTEIsNull: Boolean; -var v: variant; begin - v := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidoCliente_Articulos_PendientesCANTIDAD_PENDIENTE]; - result := VarIsNull(v) or VarIsClear(v); + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_PedidoCliente_Articulos_PendientesCANTIDAD_PENDIENTE]); end; function TPedidoCliente_Articulos_PendientesBusinessProcessorRules.GetOldCANTIDAD_PENDIENTEValue: Float; @@ -4458,10 +4158,8 @@ begin end; function TPedidoCliente_Articulos_PendientesBusinessProcessorRules.GetOldCANTIDAD_PENDIENTEIsNull: Boolean; -var v: variant; begin - v := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidoCliente_Articulos_PendientesCANTIDAD_PENDIENTE]; - result := VarIsNull(v) or VarIsClear(v); + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_PedidoCliente_Articulos_PendientesCANTIDAD_PENDIENTE]); end; procedure TPedidoCliente_Articulos_PendientesBusinessProcessorRules.SetCANTIDAD_PENDIENTEValue(const aValue: Float); @@ -4493,10 +4191,8 @@ begin end; function TPedidosCliente_Detalle_ColorBusinessProcessorRules.GetIDIsNull: Boolean; -var v: variant; begin - v := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosCliente_Detalle_ColorID]; - result := VarIsNull(v) or VarIsClear(v); + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosCliente_Detalle_ColorID]); end; function TPedidosCliente_Detalle_ColorBusinessProcessorRules.GetOldIDValue: Integer; @@ -4505,10 +4201,8 @@ begin end; function TPedidosCliente_Detalle_ColorBusinessProcessorRules.GetOldIDIsNull: Boolean; -var v: variant; begin - v := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosCliente_Detalle_ColorID]; - result := VarIsNull(v) or VarIsClear(v); + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosCliente_Detalle_ColorID]); end; procedure TPedidosCliente_Detalle_ColorBusinessProcessorRules.SetIDValue(const aValue: Integer); @@ -4528,10 +4222,8 @@ begin end; function TPedidosCliente_Detalle_ColorBusinessProcessorRules.GetID_DETALLEIsNull: Boolean; -var v: variant; begin - v := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosCliente_Detalle_ColorID_DETALLE]; - result := VarIsNull(v) or VarIsClear(v); + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosCliente_Detalle_ColorID_DETALLE]); end; function TPedidosCliente_Detalle_ColorBusinessProcessorRules.GetOldID_DETALLEValue: Integer; @@ -4540,10 +4232,8 @@ begin end; function TPedidosCliente_Detalle_ColorBusinessProcessorRules.GetOldID_DETALLEIsNull: Boolean; -var v: variant; begin - v := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosCliente_Detalle_ColorID_DETALLE]; - result := VarIsNull(v) or VarIsClear(v); + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosCliente_Detalle_ColorID_DETALLE]); end; procedure TPedidosCliente_Detalle_ColorBusinessProcessorRules.SetID_DETALLEValue(const aValue: Integer); @@ -4563,10 +4253,8 @@ begin end; function TPedidosCliente_Detalle_ColorBusinessProcessorRules.GetCOLOR1IsNull: Boolean; -var v: variant; begin - v := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosCliente_Detalle_ColorCOLOR1]; - result := VarIsNull(v) or VarIsClear(v); + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosCliente_Detalle_ColorCOLOR1]); end; function TPedidosCliente_Detalle_ColorBusinessProcessorRules.GetOldCOLOR1Value: Integer; @@ -4575,10 +4263,8 @@ begin end; function TPedidosCliente_Detalle_ColorBusinessProcessorRules.GetOldCOLOR1IsNull: Boolean; -var v: variant; begin - v := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosCliente_Detalle_ColorCOLOR1]; - result := VarIsNull(v) or VarIsClear(v); + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosCliente_Detalle_ColorCOLOR1]); end; procedure TPedidosCliente_Detalle_ColorBusinessProcessorRules.SetCOLOR1Value(const aValue: Integer); @@ -4598,10 +4284,8 @@ begin end; function TPedidosCliente_Detalle_ColorBusinessProcessorRules.GetCOLOR2IsNull: Boolean; -var v: variant; begin - v := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosCliente_Detalle_ColorCOLOR2]; - result := VarIsNull(v) or VarIsClear(v); + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosCliente_Detalle_ColorCOLOR2]); end; function TPedidosCliente_Detalle_ColorBusinessProcessorRules.GetOldCOLOR2Value: Integer; @@ -4610,10 +4294,8 @@ begin end; function TPedidosCliente_Detalle_ColorBusinessProcessorRules.GetOldCOLOR2IsNull: Boolean; -var v: variant; begin - v := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosCliente_Detalle_ColorCOLOR2]; - result := VarIsNull(v) or VarIsClear(v); + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosCliente_Detalle_ColorCOLOR2]); end; procedure TPedidosCliente_Detalle_ColorBusinessProcessorRules.SetCOLOR2Value(const aValue: Integer); @@ -4633,10 +4315,8 @@ begin end; function TPedidosCliente_Detalle_ColorBusinessProcessorRules.GetCOLOR3IsNull: Boolean; -var v: variant; begin - v := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosCliente_Detalle_ColorCOLOR3]; - result := VarIsNull(v) or VarIsClear(v); + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosCliente_Detalle_ColorCOLOR3]); end; function TPedidosCliente_Detalle_ColorBusinessProcessorRules.GetOldCOLOR3Value: Integer; @@ -4645,10 +4325,8 @@ begin end; function TPedidosCliente_Detalle_ColorBusinessProcessorRules.GetOldCOLOR3IsNull: Boolean; -var v: variant; begin - v := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosCliente_Detalle_ColorCOLOR3]; - result := VarIsNull(v) or VarIsClear(v); + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosCliente_Detalle_ColorCOLOR3]); end; procedure TPedidosCliente_Detalle_ColorBusinessProcessorRules.SetCOLOR3Value(const aValue: Integer); @@ -4668,10 +4346,8 @@ begin end; function TPedidosCliente_Detalle_ColorBusinessProcessorRules.GetCOLOR4IsNull: Boolean; -var v: variant; begin - v := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosCliente_Detalle_ColorCOLOR4]; - result := VarIsNull(v) or VarIsClear(v); + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosCliente_Detalle_ColorCOLOR4]); end; function TPedidosCliente_Detalle_ColorBusinessProcessorRules.GetOldCOLOR4Value: Integer; @@ -4680,10 +4356,8 @@ begin end; function TPedidosCliente_Detalle_ColorBusinessProcessorRules.GetOldCOLOR4IsNull: Boolean; -var v: variant; begin - v := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosCliente_Detalle_ColorCOLOR4]; - result := VarIsNull(v) or VarIsClear(v); + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosCliente_Detalle_ColorCOLOR4]); end; procedure TPedidosCliente_Detalle_ColorBusinessProcessorRules.SetCOLOR4Value(const aValue: Integer); @@ -4703,10 +4377,8 @@ begin end; function TPedidosCliente_Detalle_ColorBusinessProcessorRules.GetCOLOR5IsNull: Boolean; -var v: variant; begin - v := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosCliente_Detalle_ColorCOLOR5]; - result := VarIsNull(v) or VarIsClear(v); + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosCliente_Detalle_ColorCOLOR5]); end; function TPedidosCliente_Detalle_ColorBusinessProcessorRules.GetOldCOLOR5Value: Integer; @@ -4715,10 +4387,8 @@ begin end; function TPedidosCliente_Detalle_ColorBusinessProcessorRules.GetOldCOLOR5IsNull: Boolean; -var v: variant; begin - v := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosCliente_Detalle_ColorCOLOR5]; - result := VarIsNull(v) or VarIsClear(v); + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosCliente_Detalle_ColorCOLOR5]); end; procedure TPedidosCliente_Detalle_ColorBusinessProcessorRules.SetCOLOR5Value(const aValue: Integer); @@ -4738,10 +4408,8 @@ begin end; function TPedidosCliente_Detalle_ColorBusinessProcessorRules.GetCOLOR6IsNull: Boolean; -var v: variant; begin - v := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosCliente_Detalle_ColorCOLOR6]; - result := VarIsNull(v) or VarIsClear(v); + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosCliente_Detalle_ColorCOLOR6]); end; function TPedidosCliente_Detalle_ColorBusinessProcessorRules.GetOldCOLOR6Value: Integer; @@ -4750,10 +4418,8 @@ begin end; function TPedidosCliente_Detalle_ColorBusinessProcessorRules.GetOldCOLOR6IsNull: Boolean; -var v: variant; begin - v := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosCliente_Detalle_ColorCOLOR6]; - result := VarIsNull(v) or VarIsClear(v); + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosCliente_Detalle_ColorCOLOR6]); end; procedure TPedidosCliente_Detalle_ColorBusinessProcessorRules.SetCOLOR6Value(const aValue: Integer); @@ -4773,10 +4439,8 @@ begin end; function TPedidosCliente_Detalle_ColorBusinessProcessorRules.GetCOLOR7IsNull: Boolean; -var v: variant; begin - v := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosCliente_Detalle_ColorCOLOR7]; - result := VarIsNull(v) or VarIsClear(v); + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosCliente_Detalle_ColorCOLOR7]); end; function TPedidosCliente_Detalle_ColorBusinessProcessorRules.GetOldCOLOR7Value: Integer; @@ -4785,10 +4449,8 @@ begin end; function TPedidosCliente_Detalle_ColorBusinessProcessorRules.GetOldCOLOR7IsNull: Boolean; -var v: variant; begin - v := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosCliente_Detalle_ColorCOLOR7]; - result := VarIsNull(v) or VarIsClear(v); + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosCliente_Detalle_ColorCOLOR7]); end; procedure TPedidosCliente_Detalle_ColorBusinessProcessorRules.SetCOLOR7Value(const aValue: Integer); @@ -4808,10 +4470,8 @@ begin end; function TPedidosCliente_Detalle_ColorBusinessProcessorRules.GetCOLOR8IsNull: Boolean; -var v: variant; begin - v := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosCliente_Detalle_ColorCOLOR8]; - result := VarIsNull(v) or VarIsClear(v); + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosCliente_Detalle_ColorCOLOR8]); end; function TPedidosCliente_Detalle_ColorBusinessProcessorRules.GetOldCOLOR8Value: Integer; @@ -4820,10 +4480,8 @@ begin end; function TPedidosCliente_Detalle_ColorBusinessProcessorRules.GetOldCOLOR8IsNull: Boolean; -var v: variant; begin - v := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosCliente_Detalle_ColorCOLOR8]; - result := VarIsNull(v) or VarIsClear(v); + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosCliente_Detalle_ColorCOLOR8]); end; procedure TPedidosCliente_Detalle_ColorBusinessProcessorRules.SetCOLOR8Value(const aValue: Integer); @@ -4843,10 +4501,8 @@ begin end; function TPedidosCliente_Detalle_ColorBusinessProcessorRules.GetCOLOR9IsNull: Boolean; -var v: variant; begin - v := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosCliente_Detalle_ColorCOLOR9]; - result := VarIsNull(v) or VarIsClear(v); + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosCliente_Detalle_ColorCOLOR9]); end; function TPedidosCliente_Detalle_ColorBusinessProcessorRules.GetOldCOLOR9Value: Integer; @@ -4855,10 +4511,8 @@ begin end; function TPedidosCliente_Detalle_ColorBusinessProcessorRules.GetOldCOLOR9IsNull: Boolean; -var v: variant; begin - v := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosCliente_Detalle_ColorCOLOR9]; - result := VarIsNull(v) or VarIsClear(v); + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosCliente_Detalle_ColorCOLOR9]); end; procedure TPedidosCliente_Detalle_ColorBusinessProcessorRules.SetCOLOR9Value(const aValue: Integer); @@ -4878,10 +4532,8 @@ begin end; function TPedidosCliente_Detalle_ColorBusinessProcessorRules.GetCOLOR10IsNull: Boolean; -var v: variant; begin - v := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosCliente_Detalle_ColorCOLOR10]; - result := VarIsNull(v) or VarIsClear(v); + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosCliente_Detalle_ColorCOLOR10]); end; function TPedidosCliente_Detalle_ColorBusinessProcessorRules.GetOldCOLOR10Value: Integer; @@ -4890,10 +4542,8 @@ begin end; function TPedidosCliente_Detalle_ColorBusinessProcessorRules.GetOldCOLOR10IsNull: Boolean; -var v: variant; begin - v := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosCliente_Detalle_ColorCOLOR10]; - result := VarIsNull(v) or VarIsClear(v); + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosCliente_Detalle_ColorCOLOR10]); end; procedure TPedidosCliente_Detalle_ColorBusinessProcessorRules.SetCOLOR10Value(const aValue: Integer); @@ -4913,10 +4563,8 @@ begin end; function TPedidosCliente_Detalle_ColorBusinessProcessorRules.GetCOLOR11IsNull: Boolean; -var v: variant; begin - v := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosCliente_Detalle_ColorCOLOR11]; - result := VarIsNull(v) or VarIsClear(v); + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosCliente_Detalle_ColorCOLOR11]); end; function TPedidosCliente_Detalle_ColorBusinessProcessorRules.GetOldCOLOR11Value: Integer; @@ -4925,10 +4573,8 @@ begin end; function TPedidosCliente_Detalle_ColorBusinessProcessorRules.GetOldCOLOR11IsNull: Boolean; -var v: variant; begin - v := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosCliente_Detalle_ColorCOLOR11]; - result := VarIsNull(v) or VarIsClear(v); + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosCliente_Detalle_ColorCOLOR11]); end; procedure TPedidosCliente_Detalle_ColorBusinessProcessorRules.SetCOLOR11Value(const aValue: Integer); @@ -4948,10 +4594,8 @@ begin end; function TPedidosCliente_Detalle_ColorBusinessProcessorRules.GetCOLOR12IsNull: Boolean; -var v: variant; begin - v := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosCliente_Detalle_ColorCOLOR12]; - result := VarIsNull(v) or VarIsClear(v); + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosCliente_Detalle_ColorCOLOR12]); end; function TPedidosCliente_Detalle_ColorBusinessProcessorRules.GetOldCOLOR12Value: Integer; @@ -4960,10 +4604,8 @@ begin end; function TPedidosCliente_Detalle_ColorBusinessProcessorRules.GetOldCOLOR12IsNull: Boolean; -var v: variant; begin - v := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosCliente_Detalle_ColorCOLOR12]; - result := VarIsNull(v) or VarIsClear(v); + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosCliente_Detalle_ColorCOLOR12]); end; procedure TPedidosCliente_Detalle_ColorBusinessProcessorRules.SetCOLOR12Value(const aValue: Integer); diff --git a/Source/Modulos/Pedidos de cliente/Plugin/PedidosCliente_plugin.drc b/Source/Modulos/Pedidos de cliente/Plugin/PedidosCliente_plugin.drc index 350cbcb..ea5a4ae 100644 --- a/Source/Modulos/Pedidos de cliente/Plugin/PedidosCliente_plugin.drc +++ b/Source/Modulos/Pedidos de cliente/Plugin/PedidosCliente_plugin.drc @@ -14,4 +14,4 @@ END /* C:\Codigo noviseda\Source\Modulos\Pedidos de cliente\Plugin\uPluginPedidosCliente.dfm */ /* C:\Codigo noviseda\Source\Modulos\Pedidos de cliente\Plugin\PedidosCliente_plugin.res */ -/* C:\DOCUME~1\Usuario\CONFIG~1\Temp\dtf382.tmp */ +/* C:\DOCUME~1\Usuario\CONFIG~1\Temp\dtf132.tmp */ diff --git a/Source/Modulos/Pedidos de cliente/Plugin/uPluginPedidosCliente.pas b/Source/Modulos/Pedidos de cliente/Plugin/uPluginPedidosCliente.pas index 5e6c934..97abd45 100644 --- a/Source/Modulos/Pedidos de cliente/Plugin/uPluginPedidosCliente.pas +++ b/Source/Modulos/Pedidos de cliente/Plugin/uPluginPedidosCliente.pas @@ -23,6 +23,9 @@ type destructor Destroy; override; procedure VerPedidos(const ID_Cliente: Integer; const ANombreCliente : String = ''); + procedure VerPedidosVendedor(const ID_Vendedor: Integer; + const ANombreVendedor : String = ''); + end; implementation @@ -88,6 +91,29 @@ begin end; end; +procedure TPluginPedidosCliente.VerPedidosVendedor(const ID_Vendedor: Integer; + const ANombreVendedor: String); +var + APedidosClienteController : IPedidosClienteController; + APedidosVendedor : IBizPedidoCliente; + AText : String; +begin + AText := Format('Lista de pedidos del vendedor %s', [ANombreVendedor]); + APedidosClienteController := TPedidosClienteController.Create; + try + ShowHourglassCursor; + try + APedidosVendedor := APedidosClienteController.BuscarTodosVendedor(ID_Vendedor); + finally + HideHourglassCursor; + end; + APedidosClienteController.VerTodosPedidos(APedidosVendedor, True, AText); + finally + APedidosVendedor := NIL; + APedidosClienteController := NIL; + end; +end; + initialization RegisterModuleClass(TPluginPedidosCliente); diff --git a/Source/Modulos/Pedidos de cliente/Servidor/srvPedidosCliente_Impl.dfm b/Source/Modulos/Pedidos de cliente/Servidor/srvPedidosCliente_Impl.dfm index f760877..c51a8a8 100644 --- a/Source/Modulos/Pedidos de cliente/Servidor/srvPedidosCliente_Impl.dfm +++ b/Source/Modulos/Pedidos de cliente/Servidor/srvPedidosCliente_Impl.dfm @@ -454,6 +454,10 @@ object srvPedidosCliente: TsrvPedidosCliente item DatasetField = 'DATOS_BANCARIOS' TableField = 'DATOS_BANCARIOS' + end + item + DatasetField = 'ID_VENDEDOR' + TableField = 'ID_VENDEDOR' end> end> Name = 'PedidosCliente' @@ -655,6 +659,10 @@ object srvPedidosCliente: TsrvPedidosCliente DataType = datString Size = 255 DictionaryEntry = 'PedidosCliente_DATOS_BANCARIOS' + end + item + Name = 'ID_VENDEDOR' + DataType = datInteger end> end item diff --git a/Source/Modulos/Pedidos de cliente/Views/PedidosCliente_view.drc b/Source/Modulos/Pedidos de cliente/Views/PedidosCliente_view.drc index ab54434..b993864 100644 --- a/Source/Modulos/Pedidos de cliente/Views/PedidosCliente_view.drc +++ b/Source/Modulos/Pedidos de cliente/Views/PedidosCliente_view.drc @@ -27,4 +27,4 @@ END /* C:\Codigo noviseda\Source\Modulos\Pedidos de cliente\Views\uViewArticulosPendientes.dfm */ /* C:\Codigo noviseda\Source\Modulos\Pedidos de cliente\Views\uEditorArticulosPendientes.dfm */ /* C:\Codigo noviseda\Source\Modulos\Pedidos de cliente\Views\PedidosCliente_view.res */ -/* C:\DOCUME~1\Usuario\CONFIG~1\Temp\dtf380.tmp */ +/* C:\Codigo noviseda\Source\Modulos\Pedidos de cliente\Views\PedidosCliente_view.drf */ diff --git a/Source/Modulos/Pedidos de cliente/Views/uEditorPedidosCliente.dfm b/Source/Modulos/Pedidos de cliente/Views/uEditorPedidosCliente.dfm index df6e510..3eae647 100644 --- a/Source/Modulos/Pedidos de cliente/Views/uEditorPedidosCliente.dfm +++ b/Source/Modulos/Pedidos de cliente/Views/uEditorPedidosCliente.dfm @@ -290,10 +290,6 @@ inherited fEditorPedidosCliente: TfEditorPedidosCliente inherited actImprimir: TAction Visible = True end - inherited actExportarExcel: TAction - Enabled = False - Visible = False - end object actGenerarAlbaranCli: TAction Category = 'Acciones' Caption = 'Generar albar'#225'n de cliente' diff --git a/Source/Modulos/Pedidos de cliente/Views/uEditorPedidosCliente.pas b/Source/Modulos/Pedidos de cliente/Views/uEditorPedidosCliente.pas index 400615c..d714fe0 100644 --- a/Source/Modulos/Pedidos de cliente/Views/uEditorPedidosCliente.pas +++ b/Source/Modulos/Pedidos de cliente/Views/uEditorPedidosCliente.pas @@ -222,7 +222,11 @@ end; constructor TfEditorPedidosCliente.Create(AOwner: TComponent); begin inherited; - AsignarVista; + + FHeaderText := 'Lista de pedidos de cliente - '; + FWindowCaption := FHeaderText; + + AsignarVista; end; destructor TfEditorPedidosCliente.Destroy; @@ -386,7 +390,7 @@ procedure TfEditorPedidosCliente.PonerTitulos(const ATitulo: string); var FTitulo : String; begin - FTitulo := 'Lista de pedidos de cliente - ' + AppFactuGES.EmpresaActiva.NOMBRE; + FTitulo := FWindowCaption + ' - ' + AppFactuGES.EmpresaActiva.NOMBRE; inherited PonerTitulos(FTitulo); end; diff --git a/Source/Servidor/FactuGES_Server.RES b/Source/Servidor/FactuGES_Server.RES index 79f663e94351dac8a20b29425df05bed1557fef1..cd969cc698af86140ea6c7c3279a2db32d432a6e 100644 GIT binary patch delta 449 zcmYLFOG*P#5Ue-Jn4lta0p$@;jEYP|8FV9}=t3bI7c-*>K_!!zXiTEuCh-n$>jAQK zCEmdkxbY00K&QtE>9We7}j8ckw!m+d(iri@y+Q zo0NfqLlP4ziU>o;%>lkcv` z8`k@O@01%2Tv69$@8gEI^02#g=h5O-?VP_$qb_wOR6V_)iLeg-8oE`~M>@aP#sm3B i<^XGuFG7w9Nd1d2(Ey1s0x=tdJ&*(e79a$PAcISc zlcOS)nAR~)u8WMD%n_x*Xg1j}%6sykr~+;?20aF#g$zjyij&KuWgT-F5*dmZN*GcZ yiWzhm6c`K{Oo3zykgvdy#ZbzS$B@a84;L{4>NNyn1qMq7DDelphi.Personality -FalseTrueFalse/standaloneTrueFalse1060FalseFalseFalseFalseFalse30821252Rodax Software S.L.1.0.6.0FactuGES ServidorFactuGES Servidor1.0.6.0miƩrcoles, 09 de junio de 2010 15:30FactuGES_Server.dpr +FalseTrueFalse/standaloneTrueFalse1070FalseFalseFalseFalseFalse30821252Rodax Software S.L.1.0.7.0FactuGES ServidorFactuGES Servidor1.0.7.0jueves, 01 de julio de 2010 17:59FactuGES_Server.dpr diff --git a/Source/Servidor/FactuGES_Server.rc b/Source/Servidor/FactuGES_Server.rc index b6a91a5..b9288f9 100644 --- a/Source/Servidor/FactuGES_Server.rc +++ b/Source/Servidor/FactuGES_Server.rc @@ -17,7 +17,7 @@ BEGIN VALUE "InternalName", "FactuGES Servidor\0" VALUE "ProductName", "FactuGES Servidor\0" VALUE "ProductVersion", "1.0.6.0\0" - VALUE "CompileDate", "martes, 15 de junio de 2010 9:14\0" + VALUE "CompileDate", "jueves, 01 de julio de 2010 17:59\0" END END BLOCK "VarFileInfo"