diff --git a/Build/Build.fbpInf b/Build/Build.fbpInf index f2fd38b..1a4c31a 100644 --- a/Build/Build.fbpInf +++ b/Build/Build.fbpInf @@ -1,6 +1,6 @@ - {0F75D8EA-B6C2-4ECA-9E1E-45E235135301},{10527A84-0FB7-4007-9B23-9E5826133948},{154CD4CE-0F61-40F6-8CE6-CF525D3CFDCA},{331AC851-CE2F-4986-9381-A257AB26B1AD},{3F8BEF26-5F4F-4B97-B1BC-118F36CBDD68},{4968AB21-B759-4F4A-9214-8792F67DA1E2},{4B038673-47F7-4436-BD07-D557FA62337E},{6C425F09-E04B-49EC-89E2-8C93D60E9055},{7251A871-CE6C-41D1-A404-735619825EAE},{789902B1-5E64-4FD9-80BF-6113B13BFE12},{856B4CEA-BF27-4696-8FFC-4507B6E29943},{A181C54F-9BE8-4404-9AB9-FEE8A9C3443D},{AD23CE23-8728-48FA-84FD-264E27BA8F46},{B70F0EA3-7874-42B0-BFB8-430D43AC2D61},{C662116C-EB3F-4161-A768-49D13B08EFE5},{CE990EA4-7660-4997-8CBF-6C6AA978753A},{E8E8671F-894B-4049-B4A6-905B57207637},{F2541E28-3C45-4A17-BEC5-185CBF9D2A90} + {0F75D8EA-B6C2-4ECA-9E1E-45E235135301},{10527A84-0FB7-4007-9B23-9E5826133948},{154CD4CE-0F61-40F6-8CE6-CF525D3CFDCA},{331AC851-CE2F-4986-9381-A257AB26B1AD},{3F8BEF26-5F4F-4B97-B1BC-118F36CBDD68},{4968AB21-B759-4F4A-9214-8792F67DA1E2},{4B038673-47F7-4436-BD07-D557FA62337E},{6C425F09-E04B-49EC-89E2-8C93D60E9055},{7251A871-CE6C-41D1-A404-735619825EAE},{856B4CEA-BF27-4696-8FFC-4507B6E29943},{A181C54F-9BE8-4404-9AB9-FEE8A9C3443D},{AD23CE23-8728-48FA-84FD-264E27BA8F46},{B70F0EA3-7874-42B0-BFB8-430D43AC2D61},{C662116C-EB3F-4161-A768-49D13B08EFE5},{CE990EA4-7660-4997-8CBF-6C6AA978753A},{E8E8671F-894B-4049-B4A6-905B57207637},{F2541E28-3C45-4A17-BEC5-185CBF9D2A90} @@ -14,8 +14,8 @@ - 00:04:06 - 06/02/2014 17:13:55 - True + 00:00:00 + 07/02/2014 13:41:26 + False diff --git a/Build/Build.fbz6 b/Build/Build.fbz6 index ee748cf..418fbb9 100644 Binary files a/Build/Build.fbz6 and b/Build/Build.fbz6 differ diff --git a/Database/scripts/factuges.sql b/Database/scripts/factuges.sql index fc45e71..d37d0ff 100644 --- a/Database/scripts/factuges.sql +++ b/Database/scripts/factuges.sql @@ -232,8 +232,8 @@ SET GENERATOR GEN_PRESUPUESTOS_CLI_DETALLE_ID TO 1; CREATE GENERATOR GEN_PRESUPUESTOS_CLI_ID; SET GENERATOR GEN_PRESUPUESTOS_CLI_ID TO 1; -CREATE GENERATOR GEN_PRESUPUESTOS_TIPOS_ID; -SET GENERATOR GEN_PRESUPUESTOS_TIPOS_ID TO 1; +CREATE GENERATOR GEN_TIPOS_DOCUMENTO_ID; +SET GENERATOR GEN_TIPOS_DOCUMENTO_ID TO 1; CREATE GENERATOR GEN_PROVEEDORES_GRUPOS_ID; SET GENERATOR GEN_PROVEEDORES_GRUPOS_ID TO 1; @@ -976,7 +976,8 @@ CREATE TABLE PEDIDOS_CLIENTE ( REF_TIENDA_WEB INTEGER, FECHA_PREVISTA_ENVIO DATE, REFERENCIA_CLIENTE VARCHAR(255), - ID_PRESUPUESTO TIPO_ID + ID_PRESUPUESTO TIPO_ID, + TIPO_PEDIDO VARCHAR(255) COLLATE ES_ES ); CREATE TABLE PEDIDOS_CLIENTE_DETALLES ( @@ -1077,8 +1078,8 @@ CREATE TABLE POBLACIONES ( DESCRIPCION VARCHAR(255) NOT NULL ); -CREATE TABLE PRESUPUESTOS_TIPOS ( - ID TIPO_ID NOT NULL, +CREATE TABLE TIPOS_DOCUMENTO ( + ID TIPO_ID NOT NULL /* TIPO_ID = INTEGER */, DESCRIPCION VARCHAR(255) ); @@ -5138,7 +5139,7 @@ ALTER TABLE PEDIDOS_PROVEEDOR_DETALLES ADD CONSTRAINT PK_PEDIDOS_PROVEEDOR_DETAL ALTER TABLE PERMISOS ADD CONSTRAINT PK_PERMISOS PRIMARY KEY (ID); ALTER TABLE PERMISOSEX ADD CONSTRAINT PK_PERMISOSEX PRIMARY KEY (ID); ALTER TABLE POBLACIONES ADD CONSTRAINT PK_POBLACIONES PRIMARY KEY (ID); -ALTER TABLE PRESUPUESTOS_TIPOS ADD CONSTRAINT PK_PRESUPUESTOS_TIPOS PRIMARY KEY (ID); +ALTER TABLE TIPOS_DOCUMENTO ADD CONSTRAINT PK_TIPOS_DOCUMENTO PRIMARY KEY (ID); ALTER TABLE PRESUPUESTOS_CLIENTE ADD CONSTRAINT PK_PRESUPUESTOS_CLIENTE PRIMARY KEY (ID); ALTER TABLE PRESUPUESTOS_CLIENTE_DETALLES ADD CONSTRAINT PK_PRESUPUESTOS_CLIENTE_DETALLE PRIMARY KEY (ID); ALTER TABLE PROVEEDORES_DATOS ADD CONSTRAINT PK_PROVEEDORES_DATOS PRIMARY KEY (ID_PROVEEDOR); diff --git a/Source/Cliente/FactuGES.dproj b/Source/Cliente/FactuGES.dproj index 1196fb2..f14fc2a 100644 --- a/Source/Cliente/FactuGES.dproj +++ b/Source/Cliente/FactuGES.dproj @@ -53,7 +53,7 @@ Delphi.Personality VCLApplication -FalseTrueFalseC:\Archivos de programa\Borland\Delphi7\Bin\TrueFalse4360FalseFalseFalseFalseFalse30821252Rodax Software S.L.4.3.6.0FactuGESFactuGES4.3.6.0FactuGES.dprFalse +FalseTrueFalseC:\Archivos de programa\Borland\Delphi7\Bin\TrueFalse4370FalseFalseFalseFalseFalse30821252Rodax Software S.L.4.3.7.0FactuGESFactuGES4.3.7.0FactuGES.dprFalse diff --git a/Source/Cliente/FactuGES.rc b/Source/Cliente/FactuGES.rc index 09c03f7..ba8cc98 100644 --- a/Source/Cliente/FactuGES.rc +++ b/Source/Cliente/FactuGES.rc @@ -1,7 +1,7 @@ MAINICON ICON "C:\Codigo\Resources\Iconos\Factuges.ico" 1 VERSIONINFO -FILEVERSION 4,3,6,0 -PRODUCTVERSION 4,3,6,0 +FILEVERSION 4,3,7,0 +PRODUCTVERSION 4,3,7,0 FILEFLAGSMASK 0x3FL FILEFLAGS 0x00L FILEOS 0x40004L @@ -13,10 +13,10 @@ BEGIN BLOCK "0C0A04E4" BEGIN VALUE "CompanyName", "Rodax Software S.L.\0" - VALUE "FileVersion", "4.3.6.0\0" + VALUE "FileVersion", "4.3.7.0\0" VALUE "InternalName", "FactuGES\0" VALUE "ProductName", "FactuGES\0" - VALUE "ProductVersion", "4.3.6.0\0" + VALUE "ProductVersion", "4.3.7.0\0" END END BLOCK "VarFileInfo" diff --git a/Source/Cliente/FactuGES.res b/Source/Cliente/FactuGES.res index 2652a54..4376871 100644 Binary files a/Source/Cliente/FactuGES.res and b/Source/Cliente/FactuGES.res differ diff --git a/Source/Cliente/uBootStrap.pas b/Source/Cliente/uBootStrap.pas index b763b06..7fbb9f2 100644 --- a/Source/Cliente/uBootStrap.pas +++ b/Source/Cliente/uBootStrap.pas @@ -26,6 +26,7 @@ begin LoadModule('Familias_plugin.bpl'); LoadModule('Fabricantes_plugin.bpl'); LoadModule('UnidadesMedida_plugin.bpl'); + LoadModule('TiposDocumento_plugin.bpl'); LoadModule('Contactos_plugin.bpl'); diff --git a/Source/Modulos/Facturas proforma/Data/uDataModuleFacturasProforma.dfm b/Source/Modulos/Facturas proforma/Data/uDataModuleFacturasProforma.dfm index 22bc8a8..7e3800b 100644 --- a/Source/Modulos/Facturas proforma/Data/uDataModuleFacturasProforma.dfm +++ b/Source/Modulos/Facturas proforma/Data/uDataModuleFacturasProforma.dfm @@ -94,7 +94,6 @@ inherited DataModuleFacturasProforma: TDataModuleFacturasProforma item Name = 'IVA' DataType = datFloat - DisplayLabel = 'FacturasProforma_IVA' DictionaryEntry = 'FacturasProforma_IVA' end item @@ -106,7 +105,6 @@ inherited DataModuleFacturasProforma: TDataModuleFacturasProforma item Name = 'RE' DataType = datFloat - DisplayLabel = 'FacturasProforma_RE' DictionaryEntry = 'FacturasProforma_RE' end item diff --git a/Source/Modulos/Facturas proforma/Servidor/srvFacturasProforma_Impl.dfm b/Source/Modulos/Facturas proforma/Servidor/srvFacturasProforma_Impl.dfm index bc768bb..663f3fe 100644 --- a/Source/Modulos/Facturas proforma/Servidor/srvFacturasProforma_Impl.dfm +++ b/Source/Modulos/Facturas proforma/Servidor/srvFacturasProforma_Impl.dfm @@ -1358,6 +1358,7 @@ object srvFacturasProforma: TsrvFacturasProforma item Name = 'FacturasProforma_IVA' DataType = datFloat + DisplayLabel = 'IVA' end item Name = 'FacturasProforma_IMPORTE_IVA' @@ -1366,6 +1367,7 @@ object srvFacturasProforma: TsrvFacturasProforma item Name = 'FacturasProforma_RE' DataType = datFloat + DisplayLabel = 'RE' end item Name = 'FacturasProforma_IMPORTE_RE' diff --git a/Source/Modulos/Pedidos de cliente/Data/uDataModulePedidosCliente.dfm b/Source/Modulos/Pedidos de cliente/Data/uDataModulePedidosCliente.dfm index 02900a9..22245ca 100644 --- a/Source/Modulos/Pedidos de cliente/Data/uDataModulePedidosCliente.dfm +++ b/Source/Modulos/Pedidos de cliente/Data/uDataModulePedidosCliente.dfm @@ -339,6 +339,11 @@ inherited DataModulePedidosCliente: TDataModulePedidosCliente Name = 'REFERENCIA_PRESUPUESTO' DataType = datString Size = 255 + end + item + Name = 'TIPO_PEDIDO' + DataType = datString + Size = 255 end> Params = <> StreamingOptions = [soDisableEventsWhileStreaming] diff --git a/Source/Modulos/Pedidos de cliente/Model/schPedidosClienteClient_Intf.pas b/Source/Modulos/Pedidos de cliente/Model/schPedidosClienteClient_Intf.pas index 473b77f..ac8e9c5 100644 --- a/Source/Modulos/Pedidos de cliente/Model/schPedidosClienteClient_Intf.pas +++ b/Source/Modulos/Pedidos de cliente/Model/schPedidosClienteClient_Intf.pas @@ -9,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_ListaAnosPedidos = '{B03310DC-4A84-4779-BF7B-33FF0F741912}'; - RID_PedidosProveedor = '{95F27FC7-2016-4B25-A964-29A647BEB277}'; - RID_PedidosCliente = '{11401A1B-9CA5-4528-BD63-FCA01EA10603}'; - RID_PedidosCliente_Detalles = '{69AF4753-C444-4247-AAD5-59E95435B041}'; - RID_PedidosCliente_Articulos_Pendientes = '{5A42E580-E6B3-4B44-83B7-FDFDCD5C1980}'; - RID_PedidoCliente_ArticulosPendientesPedirAProv = '{23A4639E-E866-4BAB-969A-DC5AE706B5CB}'; - RID_PedidoCliente_ArticulosPendientesPedirAProvNoArticulos = '{35396E3E-190B-4197-9979-7753ED63C5B7}'; + RID_ListaAnosPedidos = '{0EEEB91E-B94E-492A-9B55-D9D69121A15D}'; + RID_PedidosProveedor = '{42F2265A-DFC1-486D-8B10-CE0B7882F99B}'; + RID_PedidosCliente = '{114B3685-0624-44E5-A2E8-9E41682B17D3}'; + RID_PedidosCliente_Detalles = '{79001C87-40EC-4A80-AAEC-469ABF51992A}'; + RID_PedidosCliente_Articulos_Pendientes = '{3C095CF4-7C99-422E-9353-41457E08D356}'; + RID_PedidoCliente_ArticulosPendientesPedirAProv = '{0918991D-A6AF-43DB-BE3A-EF0BC296C52D}'; + RID_PedidoCliente_ArticulosPendientesPedirAProvNoArticulos = '{6AEA860C-3542-4087-9AC0-E9BBC0BE53A0}'; { Data table names } nme_ListaAnosPedidos = 'ListaAnosPedidos'; @@ -81,6 +81,7 @@ const fld_PedidosClienteNUM_CORREOS = 'NUM_CORREOS'; fld_PedidosClienteID_PRESUPUESTO = 'ID_PRESUPUESTO'; fld_PedidosClienteREFERENCIA_PRESUPUESTO = 'REFERENCIA_PRESUPUESTO'; + fld_PedidosClienteTIPO_PEDIDO = 'TIPO_PEDIDO'; { PedidosCliente field indexes } idx_PedidosClienteID = 0; @@ -119,6 +120,7 @@ const idx_PedidosClienteNUM_CORREOS = 33; idx_PedidosClienteID_PRESUPUESTO = 34; idx_PedidosClienteREFERENCIA_PRESUPUESTO = 35; + idx_PedidosClienteTIPO_PEDIDO = 36; { PedidosCliente_Detalles fields } fld_PedidosCliente_DetallesID = 'ID'; @@ -215,7 +217,7 @@ const type { IListaAnosPedidos } IListaAnosPedidos = interface(IDAStronglyTypedDataTable) - ['{B3BAA253-80EF-4183-8FD5-6CA4B0593DAE}'] + ['{ECDA790C-408A-47C4-B0E9-F3E501591DCD}'] { Property getters and setters } function GetANOValue: String; procedure SetANOValue(const aValue: String); @@ -250,7 +252,7 @@ type { IPedidosProveedor } IPedidosProveedor = interface(IDAStronglyTypedDataTable) - ['{A4FF4E03-9C95-4B87-AFCF-B3A8F53EC5CC}'] + ['{23013245-EFE7-4449-A38A-C01A1D8024D3}'] { Property getters and setters } function GetIDValue: Integer; procedure SetIDValue(const aValue: Integer); @@ -321,7 +323,7 @@ type { IPedidosCliente } IPedidosCliente = interface(IDAStronglyTypedDataTable) - ['{1B16009A-2B49-46C3-955E-6FD4F533D570}'] + ['{685137A5-B5E4-4EB9-8268-7D49FAF6B111}'] { Property getters and setters } function GetIDValue: Integer; procedure SetIDValue(const aValue: Integer); @@ -465,6 +467,10 @@ type procedure SetREFERENCIA_PRESUPUESTOValue(const aValue: String); function GetREFERENCIA_PRESUPUESTOIsNull: Boolean; procedure SetREFERENCIA_PRESUPUESTOIsNull(const aValue: Boolean); + function GetTIPO_PEDIDOValue: String; + procedure SetTIPO_PEDIDOValue(const aValue: String); + function GetTIPO_PEDIDOIsNull: Boolean; + procedure SetTIPO_PEDIDOIsNull(const aValue: Boolean); { Properties } @@ -540,6 +546,8 @@ type property ID_PRESUPUESTOIsNull: Boolean read GetID_PRESUPUESTOIsNull write SetID_PRESUPUESTOIsNull; property REFERENCIA_PRESUPUESTO: String read GetREFERENCIA_PRESUPUESTOValue write SetREFERENCIA_PRESUPUESTOValue; property REFERENCIA_PRESUPUESTOIsNull: Boolean read GetREFERENCIA_PRESUPUESTOIsNull write SetREFERENCIA_PRESUPUESTOIsNull; + property TIPO_PEDIDO: String read GetTIPO_PEDIDOValue write SetTIPO_PEDIDOValue; + property TIPO_PEDIDOIsNull: Boolean read GetTIPO_PEDIDOIsNull write SetTIPO_PEDIDOIsNull; end; { TPedidosClienteDataTableRules } @@ -693,6 +701,10 @@ type procedure SetREFERENCIA_PRESUPUESTOValue(const aValue: String); virtual; function GetREFERENCIA_PRESUPUESTOIsNull: Boolean; virtual; procedure SetREFERENCIA_PRESUPUESTOIsNull(const aValue: Boolean); virtual; + function GetTIPO_PEDIDOValue: String; virtual; + procedure SetTIPO_PEDIDOValue(const aValue: String); virtual; + function GetTIPO_PEDIDOIsNull: Boolean; virtual; + procedure SetTIPO_PEDIDOIsNull(const aValue: Boolean); virtual; { Properties } property ID: Integer read GetIDValue write SetIDValue; @@ -767,6 +779,8 @@ type property ID_PRESUPUESTOIsNull: Boolean read GetID_PRESUPUESTOIsNull write SetID_PRESUPUESTOIsNull; property REFERENCIA_PRESUPUESTO: String read GetREFERENCIA_PRESUPUESTOValue write SetREFERENCIA_PRESUPUESTOValue; property REFERENCIA_PRESUPUESTOIsNull: Boolean read GetREFERENCIA_PRESUPUESTOIsNull write SetREFERENCIA_PRESUPUESTOIsNull; + property TIPO_PEDIDO: String read GetTIPO_PEDIDOValue write SetTIPO_PEDIDOValue; + property TIPO_PEDIDOIsNull: Boolean read GetTIPO_PEDIDOIsNull write SetTIPO_PEDIDOIsNull; public constructor Create(aDataTable: TDADataTable); override; @@ -776,7 +790,7 @@ type { IPedidosCliente_Detalles } IPedidosCliente_Detalles = interface(IDAStronglyTypedDataTable) - ['{040BF8A0-FB19-40A1-B02F-37914032D78C}'] + ['{7B004CF5-7D51-44A7-837C-248351E59D5A}'] { Property getters and setters } function GetIDValue: Integer; procedure SetIDValue(const aValue: Integer); @@ -967,7 +981,7 @@ type { IPedidosCliente_Articulos_Pendientes } IPedidosCliente_Articulos_Pendientes = interface(IDAStronglyTypedDataTable) - ['{23014D12-09EB-408F-9986-D7E3297DE88B}'] + ['{0B5561A6-EC77-4F1A-9790-4D6FD000EA26}'] { Property getters and setters } function GetID_ARTICULOValue: Integer; procedure SetID_ARTICULOValue(const aValue: Integer); @@ -1038,7 +1052,7 @@ type { IPedidoCliente_ArticulosPendientesPedirAProv } IPedidoCliente_ArticulosPendientesPedirAProv = interface(IDAStronglyTypedDataTable) - ['{8CBCEE12-469C-4C52-B76B-9BDE025988D8}'] + ['{3D4781F8-058F-449F-A40F-2D9D61A7546C}'] { Property getters and setters } function GetID_PEDIDOValue: Integer; procedure SetID_PEDIDOValue(const aValue: Integer); @@ -1181,7 +1195,7 @@ type { IPedidoCliente_ArticulosPendientesPedirAProvNoArticulos } IPedidoCliente_ArticulosPendientesPedirAProvNoArticulos = interface(IDAStronglyTypedDataTable) - ['{2A72E2BD-CAF4-4187-A671-8BA3E9F36C27}'] + ['{3F66BB5C-DBB8-42E9-BEC7-1DE96E609CAD}'] { Property getters and setters } function GetID_PEDIDOValue: Integer; procedure SetID_PEDIDOValue(const aValue: Integer); @@ -2234,6 +2248,27 @@ begin DataTable.Fields[idx_PedidosClienteREFERENCIA_PRESUPUESTO].AsVariant := Null; end; +function TPedidosClienteDataTableRules.GetTIPO_PEDIDOValue: String; +begin + result := DataTable.Fields[idx_PedidosClienteTIPO_PEDIDO].AsString; +end; + +procedure TPedidosClienteDataTableRules.SetTIPO_PEDIDOValue(const aValue: String); +begin + DataTable.Fields[idx_PedidosClienteTIPO_PEDIDO].AsString := aValue; +end; + +function TPedidosClienteDataTableRules.GetTIPO_PEDIDOIsNull: boolean; +begin + result := DataTable.Fields[idx_PedidosClienteTIPO_PEDIDO].IsNull; +end; + +procedure TPedidosClienteDataTableRules.SetTIPO_PEDIDOIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_PedidosClienteTIPO_PEDIDO].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 14aeaf8..f744192 100644 --- a/Source/Modulos/Pedidos de cliente/Model/schPedidosClienteServer_Intf.pas +++ b/Source/Modulos/Pedidos de cliente/Model/schPedidosClienteServer_Intf.pas @@ -9,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_ListaAnosPedidosDelta = '{5366095E-0D85-41E6-BDE1-4A242E0624D2}'; - RID_PedidosProveedorDelta = '{15E9212C-237F-43DA-93BB-F731DCF39D72}'; - RID_PedidosClienteDelta = '{67B51E78-FF9E-4546-92F0-FF273F32237F}'; - RID_PedidosCliente_DetallesDelta = '{503A2F9C-8B5D-4889-8071-8EF2D1716D29}'; - RID_PedidosCliente_Articulos_PendientesDelta = '{73729328-922F-4458-A20F-ECE1969FD04D}'; - RID_PedidoCliente_ArticulosPendientesPedirAProvDelta = '{E0FA4DF3-2220-4992-9563-754ACEE319D3}'; - RID_PedidoCliente_ArticulosPendientesPedirAProvNoArticulosDelta = '{054BBD78-D3EB-4180-BDA1-19DEC4400A55}'; + RID_ListaAnosPedidosDelta = '{2DABA86C-B83B-47E8-AC84-4582BABA59DA}'; + RID_PedidosProveedorDelta = '{E6BDD968-AB7B-495D-96E5-84F8FB0923D0}'; + RID_PedidosClienteDelta = '{C42DF2D8-C429-4A99-8CFD-FD381E24C388}'; + RID_PedidosCliente_DetallesDelta = '{729FD8AB-C4B8-4F8E-AFCD-2C6E926C0EB8}'; + RID_PedidosCliente_Articulos_PendientesDelta = '{599B5358-26CF-4318-ACE3-64EF8ACA44C0}'; + RID_PedidoCliente_ArticulosPendientesPedirAProvDelta = '{C84B6802-337E-47D5-A769-8F54782202C4}'; + RID_PedidoCliente_ArticulosPendientesPedirAProvNoArticulosDelta = '{26C4CE72-8E30-424C-9054-8E6BA023C82F}'; type { IListaAnosPedidosDelta } IListaAnosPedidosDelta = interface(IListaAnosPedidos) - ['{5366095E-0D85-41E6-BDE1-4A242E0624D2}'] + ['{2DABA86C-B83B-47E8-AC84-4582BABA59DA}'] { Property getters and setters } function GetOldANOValue : String; @@ -54,7 +54,7 @@ type { IPedidosProveedorDelta } IPedidosProveedorDelta = interface(IPedidosProveedor) - ['{15E9212C-237F-43DA-93BB-F731DCF39D72}'] + ['{E6BDD968-AB7B-495D-96E5-84F8FB0923D0}'] { Property getters and setters } function GetOldIDValue : Integer; function GetOldREFERENCIAValue : String; @@ -124,7 +124,7 @@ type { IPedidosClienteDelta } IPedidosClienteDelta = interface(IPedidosCliente) - ['{67B51E78-FF9E-4546-92F0-FF273F32237F}'] + ['{C42DF2D8-C429-4A99-8CFD-FD381E24C388}'] { Property getters and setters } function GetOldIDValue : Integer; function GetOldID_EMPRESAValue : Integer; @@ -162,6 +162,7 @@ type function GetOldNUM_CORREOSValue : SmallInt; function GetOldID_PRESUPUESTOValue : Integer; function GetOldREFERENCIA_PRESUPUESTOValue : String; + function GetOldTIPO_PEDIDOValue : String; { Properties } property OldID : Integer read GetOldIDValue; @@ -200,6 +201,7 @@ type property OldNUM_CORREOS : SmallInt read GetOldNUM_CORREOSValue; property OldID_PRESUPUESTO : Integer read GetOldID_PRESUPUESTOValue; property OldREFERENCIA_PRESUPUESTO : String read GetOldREFERENCIA_PRESUPUESTOValue; + property OldTIPO_PEDIDO : String read GetOldTIPO_PEDIDOValue; end; { TPedidosClienteBusinessProcessorRules } @@ -425,6 +427,12 @@ type function GetOldREFERENCIA_PRESUPUESTOIsNull: Boolean; virtual; procedure SetREFERENCIA_PRESUPUESTOValue(const aValue: String); virtual; procedure SetREFERENCIA_PRESUPUESTOIsNull(const aValue: Boolean); virtual; + function GetTIPO_PEDIDOValue: String; virtual; + function GetTIPO_PEDIDOIsNull: Boolean; virtual; + function GetOldTIPO_PEDIDOValue: String; virtual; + function GetOldTIPO_PEDIDOIsNull: Boolean; virtual; + procedure SetTIPO_PEDIDOValue(const aValue: String); virtual; + procedure SetTIPO_PEDIDOIsNull(const aValue: Boolean); virtual; { Properties } property ID : Integer read GetIDValue write SetIDValue; @@ -571,6 +579,10 @@ type property REFERENCIA_PRESUPUESTOIsNull : Boolean read GetREFERENCIA_PRESUPUESTOIsNull write SetREFERENCIA_PRESUPUESTOIsNull; property OldREFERENCIA_PRESUPUESTO : String read GetOldREFERENCIA_PRESUPUESTOValue; property OldREFERENCIA_PRESUPUESTOIsNull : Boolean read GetOldREFERENCIA_PRESUPUESTOIsNull; + property TIPO_PEDIDO : String read GetTIPO_PEDIDOValue write SetTIPO_PEDIDOValue; + property TIPO_PEDIDOIsNull : Boolean read GetTIPO_PEDIDOIsNull write SetTIPO_PEDIDOIsNull; + property OldTIPO_PEDIDO : String read GetOldTIPO_PEDIDOValue; + property OldTIPO_PEDIDOIsNull : Boolean read GetOldTIPO_PEDIDOIsNull; public constructor Create(aBusinessProcessor: TDABusinessProcessor); override; @@ -580,7 +592,7 @@ type { IPedidosCliente_DetallesDelta } IPedidosCliente_DetallesDelta = interface(IPedidosCliente_Detalles) - ['{503A2F9C-8B5D-4889-8071-8EF2D1716D29}'] + ['{729FD8AB-C4B8-4F8E-AFCD-2C6E926C0EB8}'] { Property getters and setters } function GetOldIDValue : Integer; function GetOldID_PEDIDOValue : Integer; @@ -770,7 +782,7 @@ type { IPedidosCliente_Articulos_PendientesDelta } IPedidosCliente_Articulos_PendientesDelta = interface(IPedidosCliente_Articulos_Pendientes) - ['{73729328-922F-4458-A20F-ECE1969FD04D}'] + ['{599B5358-26CF-4318-ACE3-64EF8ACA44C0}'] { Property getters and setters } function GetOldID_ARTICULOValue : Integer; function GetOldCANTIDAD_PEDValue : Currency; @@ -840,7 +852,7 @@ type { IPedidoCliente_ArticulosPendientesPedirAProvDelta } IPedidoCliente_ArticulosPendientesPedirAProvDelta = interface(IPedidoCliente_ArticulosPendientesPedirAProv) - ['{E0FA4DF3-2220-4992-9563-754ACEE319D3}'] + ['{C84B6802-337E-47D5-A769-8F54782202C4}'] { Property getters and setters } function GetOldID_PEDIDOValue : Integer; function GetOldID_ARTICULOValue : Integer; @@ -982,7 +994,7 @@ type { IPedidoCliente_ArticulosPendientesPedirAProvNoArticulosDelta } IPedidoCliente_ArticulosPendientesPedirAProvNoArticulosDelta = interface(IPedidoCliente_ArticulosPendientesPedirAProvNoArticulos) - ['{054BBD78-D3EB-4180-BDA1-19DEC4400A55}'] + ['{26C4CE72-8E30-424C-9054-8E6BA023C82F}'] { Property getters and setters } function GetOldID_PEDIDOValue : Integer; function GetOldID_ARTICULOValue : Integer; @@ -2447,6 +2459,37 @@ begin BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosClienteREFERENCIA_PRESUPUESTO] := Null; end; +function TPedidosClienteBusinessProcessorRules.GetTIPO_PEDIDOValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosClienteTIPO_PEDIDO]; +end; + +function TPedidosClienteBusinessProcessorRules.GetTIPO_PEDIDOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosClienteTIPO_PEDIDO]); +end; + +function TPedidosClienteBusinessProcessorRules.GetOldTIPO_PEDIDOValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosClienteTIPO_PEDIDO]; +end; + +function TPedidosClienteBusinessProcessorRules.GetOldTIPO_PEDIDOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_PedidosClienteTIPO_PEDIDO]); +end; + +procedure TPedidosClienteBusinessProcessorRules.SetTIPO_PEDIDOValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosClienteTIPO_PEDIDO] := aValue; +end; + +procedure TPedidosClienteBusinessProcessorRules.SetTIPO_PEDIDOIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_PedidosClienteTIPO_PEDIDO] := Null; +end; + { TPedidosCliente_DetallesBusinessProcessorRules } constructor TPedidosCliente_DetallesBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor); diff --git a/Source/Modulos/Pedidos de cliente/PedidosCliente_Group.groupproj b/Source/Modulos/Pedidos de cliente/PedidosCliente_Group.groupproj index 576ac24..66e2719 100644 --- a/Source/Modulos/Pedidos de cliente/PedidosCliente_Group.groupproj +++ b/Source/Modulos/Pedidos de cliente/PedidosCliente_Group.groupproj @@ -31,6 +31,7 @@ + @@ -401,14 +402,23 @@ + + + + + + + + + - + - + - + \ No newline at end of file diff --git a/Source/Modulos/Pedidos de cliente/Servidor/srvPedidosCliente_Impl.dfm b/Source/Modulos/Pedidos de cliente/Servidor/srvPedidosCliente_Impl.dfm index a7f7e43..869c05d 100644 --- a/Source/Modulos/Pedidos de cliente/Servidor/srvPedidosCliente_Impl.dfm +++ b/Source/Modulos/Pedidos de cliente/Servidor/srvPedidosCliente_Impl.dfm @@ -242,6 +242,10 @@ object srvPedidosCliente: TsrvPedidosCliente item DatasetField = 'REFERENCIA_PRESUPUESTO' TableField = 'REFERENCIA_PRESUPUESTO' + end + item + DatasetField = 'TIPO_PEDIDO' + TableField = 'TIPO_PEDIDO' end> end> Name = 'PedidosCliente' @@ -439,6 +443,11 @@ object srvPedidosCliente: TsrvPedidosCliente Name = 'REFERENCIA_PRESUPUESTO' DataType = datString Size = 255 + end + item + Name = 'TIPO_PEDIDO' + DataType = datString + Size = 255 end> end item @@ -1043,6 +1052,12 @@ object srvPedidosCliente: TsrvPedidosCliente Name = 'ID_PRESUPUESTO' DataType = datInteger Value = '' + end + item + Name = 'TIPO_PEDIDO' + DataType = datString + Size = 255 + Value = '' end> Statements = < item @@ -1057,15 +1072,15 @@ object srvPedidosCliente: TsrvPedidosCliente 'AS_ACTIVAS, OBSERVACIONES, FECHA_ALTA, FECHA_MODIFICACION,'#10' ' + 'IMPORTE_NETO, IMPORTE_PORTE, DESCUENTO,'#10' IMPORTE_DESCUENTO, ' + 'BASE_IMPONIBLE, IVA, IMPORTE_IVA,'#10' ID_FORMA_PAGO, REF_TIENDA' + - '_WEB, FECHA_PREVISTA_ENVIO, ID_PRESUPUESTO)'#10' VALUES'#10' (:ID, :' + - 'ID_EMPRESA, :ID_CLIENTE, :ID_DIRECCION, :USUARIO, :FECHA_PEDIDO,' + - #10' :CALLE, :CODIGO_POSTAL, :POBLACION, :PROVINCIA, :PERSONA_C' + - 'ONTACTO,'#10' :TELEFONO, :REFERENCIA, :REFERENCIA_CLIENTE, :IMPO' + - 'RTE_TOTAL, :INCIDENCIAS,'#10' :INCIDENCIAS_ACTIVAS, :OBSERVACION' + - 'ES, :FECHA_ALTA,'#10' :FECHA_MODIFICACION, :IMPORTE_NETO, :IMPOR' + - 'TE_PORTE,'#10' :DESCUENTO, :IMPORTE_DESCUENTO, :BASE_IMPONIBLE, ' + - ':IVA,'#10' :IMPORTE_IVA, :ID_FORMA_PAGO, :REF_TIENDA_WEB, :FECHA' + - '_PREVISTA_ENVIO, :ID_PRESUPUESTO)'#10 + '_WEB, FECHA_PREVISTA_ENVIO, ID_PRESUPUESTO, TIPO_PEDIDO)'#10' VALUE' + + 'S'#10' (:ID, :ID_EMPRESA, :ID_CLIENTE, :ID_DIRECCION, :USUARIO, :' + + 'FECHA_PEDIDO,'#10' :CALLE, :CODIGO_POSTAL, :POBLACION, :PROVINCI' + + 'A, :PERSONA_CONTACTO,'#10' :TELEFONO, :REFERENCIA, :REFERENCIA_C' + + 'LIENTE, :IMPORTE_TOTAL, :INCIDENCIAS,'#10' :INCIDENCIAS_ACTIVAS,' + + ' :OBSERVACIONES, :FECHA_ALTA,'#10' :FECHA_MODIFICACION, :IMPORTE' + + '_NETO, :IMPORTE_PORTE,'#10' :DESCUENTO, :IMPORTE_DESCUENTO, :BAS' + + 'E_IMPONIBLE, :IVA,'#10' :IMPORTE_IVA, :ID_FORMA_PAGO, :REF_TIEND' + + 'A_WEB, :FECHA_PREVISTA_ENVIO, :ID_PRESUPUESTO, :TIPO_PEDIDO)'#10 StatementType = stSQL ColumnMappings = <> end> @@ -1250,6 +1265,12 @@ object srvPedidosCliente: TsrvPedidosCliente DataType = datInteger Value = '' end + item + Name = 'TIPO_PEDIDO' + DataType = datString + Size = 255 + Value = '' + end item Name = 'OLD_ID' Value = '' @@ -1276,7 +1297,8 @@ object srvPedidosCliente: TsrvPedidosCliente 'E_IMPONIBLE,'#10' IVA = :IVA,'#10' IMPORTE_IVA = :IMPORTE_IVA,'#10' ' + ' ID_FORMA_PAGO = :ID_FORMA_PAGO,'#10' REF_TIENDA_WEB = :REF_TIEND' + 'A_WEB,'#10' FECHA_PREVISTA_ENVIO = :FECHA_PREVISTA_ENVIO,'#10' ID_' + - 'PRESUPUESTO = :ID_PRESUPUESTO'#10' WHERE'#10' (ID = :OLD_ID)'#10 + 'PRESUPUESTO = :ID_PRESUPUESTO,'#10' TIPO_PEDIDO = :TIPO_PEDIDO'#10' ' + + 'WHERE'#10' (ID = :OLD_ID)'#10 StatementType = stSQL ColumnMappings = <> end> diff --git a/Source/Modulos/Pedidos de cliente/Views/PedidosCliente_view.dpk b/Source/Modulos/Pedidos de cliente/Views/PedidosCliente_view.dpk index c29b3a1..e127bea 100644 --- a/Source/Modulos/Pedidos de cliente/Views/PedidosCliente_view.dpk +++ b/Source/Modulos/Pedidos de cliente/Views/PedidosCliente_view.dpk @@ -86,7 +86,8 @@ requires Almacenes_controller, PedCli_PedProv_relation, PedidosProveedor_model, - PedCli_FacProforma_relation; + PedCli_FacProforma_relation, + TiposDocumento_controller; contains uPedidosClienteViewRegister in 'uPedidosClienteViewRegister.pas', diff --git a/Source/Modulos/Pedidos de cliente/Views/PedidosCliente_view.dproj b/Source/Modulos/Pedidos de cliente/Views/PedidosCliente_view.dproj index 8d1566a..a33733e 100644 --- a/Source/Modulos/Pedidos de cliente/Views/PedidosCliente_view.dproj +++ b/Source/Modulos/Pedidos de cliente/Views/PedidosCliente_view.dproj @@ -49,68 +49,69 @@ MainSource - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
frDialogListaPedidosClienteEnvioEMail
T diff --git a/Source/Modulos/Pedidos de cliente/Views/uViewPedidoCliente.dfm b/Source/Modulos/Pedidos de cliente/Views/uViewPedidoCliente.dfm index 4314066..2da26f2 100644 --- a/Source/Modulos/Pedidos de cliente/Views/uViewPedidoCliente.dfm +++ b/Source/Modulos/Pedidos de cliente/Views/uViewPedidoCliente.dfm @@ -21,7 +21,7 @@ inherited frViewPedidoCliente: TfrViewPedidoCliente 560) object edtFechaPedido: TcxDBDateEdit Left = 112 - Top = 82 + Top = 109 Anchors = [akLeft, akTop, akRight] DataBinding.DataField = 'FECHA_PEDIDO' DataBinding.DataSource = DADataSource @@ -42,11 +42,11 @@ inherited frViewPedidoCliente: TfrViewPedidoCliente StyleFocused.LookAndFeel.SkinName = '' StyleHot.LookAndFeel.NativeStyle = True StyleHot.LookAndFeel.SkinName = '' - TabOrder = 2 + TabOrder = 3 Width = 333 end object memObservaciones: TcxDBMemo - Left = 474 + Left = 528 Top = 265 Anchors = [akLeft, akTop, akRight, akBottom] DataBinding.DataField = 'OBSERVACIONES' @@ -63,7 +63,7 @@ inherited frViewPedidoCliente: TfrViewPedidoCliente StyleFocused.LookAndFeel.SkinName = '' StyleHot.LookAndFeel.NativeStyle = True StyleHot.LookAndFeel.SkinName = '' - TabOrder = 8 + TabOrder = 9 Height = 200 Width = 459 end @@ -95,7 +95,7 @@ inherited frViewPedidoCliente: TfrViewPedidoCliente end inline frViewDireccionEntregaPedidoCli1: TfrViewDireccionEntregaPedidoCli Left = 22 - Top = 193 + Top = 220 Width = 432 Height = 248 Font.Charset = DEFAULT_CHARSET @@ -104,43 +104,53 @@ inherited frViewPedidoCliente: TfrViewPedidoCliente Font.Name = 'Tahoma' Font.Style = [] ParentFont = False - TabOrder = 6 + TabOrder = 7 ReadOnly = False ExplicitLeft = 22 - ExplicitTop = 193 + ExplicitTop = 220 ExplicitWidth = 432 ExplicitHeight = 248 inherited dxLayoutControl1: TdxLayoutControl Width = 432 Height = 248 - ExplicitWidth = 422 - ExplicitHeight = 345 + ExplicitWidth = 432 + ExplicitHeight = 248 DesignSize = ( 432 248) inherited Bevel1: TBevel - Top = 283 - ExplicitTop = 283 + Top = 256 + Width = 566 + ExplicitTop = 256 + ExplicitWidth = 566 end inherited lblObra: TLabel Left = 239 ExplicitLeft = 239 end + inherited rdxDestino3: TRadioButton + Width = 566 + ExplicitWidth = 566 + end inherited cbListaAlmacenes: TcxDBLookupComboBox DataBinding.DataField = '' Style.LookAndFeel.SkinName = '' StyleDisabled.LookAndFeel.SkinName = '' StyleFocused.LookAndFeel.SkinName = '' StyleHot.LookAndFeel.SkinName = '' + ExplicitWidth = 551 + Width = 551 end inherited bModificar: TBitBtn - Left = 284 - Top = 247 - ExplicitLeft = 284 - ExplicitTop = 247 + Left = 338 + Top = 220 + ExplicitLeft = 338 + ExplicitTop = 220 end inherited txtDireccion: TStaticText + Width = 882 Height = 68 + ExplicitWidth = 882 ExplicitHeight = 68 end inherited rdxDestino2: TRadioButton @@ -148,12 +158,14 @@ inherited frViewPedidoCliente: TfrViewPedidoCliente ExplicitWidth = 223 end inherited edtEntregarA: TcxDBTextEdit - Top = 314 + Top = 287 Style.LookAndFeel.SkinName = '' StyleDisabled.LookAndFeel.SkinName = '' StyleFocused.LookAndFeel.SkinName = '' StyleHot.LookAndFeel.SkinName = '' - ExplicitTop = 314 + ExplicitTop = 287 + ExplicitWidth = 334 + Width = 334 end inherited dxLayoutGroup1: TdxLayoutGroup inherited dxLayoutControl1Group1: TdxLayoutGroup @@ -182,7 +194,7 @@ inherited frViewPedidoCliente: TfrViewPedidoCliente end object cbFormaPago: TcxDBLookupComboBox Left = 112 - Top = 136 + Top = 163 DataBinding.DataField = 'ID_FORMA_PAGO' DataBinding.DataSource = DADataSource Properties.KeyFieldNames = 'ID' @@ -211,20 +223,20 @@ inherited frViewPedidoCliente: TfrViewPedidoCliente StyleHot.LookAndFeel.Kind = lfStandard StyleHot.LookAndFeel.NativeStyle = True StyleHot.LookAndFeel.SkinName = '' - TabOrder = 4 + TabOrder = 5 Width = 195 end object bFormasPago: TButton - Left = 312 - Top = 136 + Left = 366 + Top = 163 Width = 132 Height = 21 Caption = 'Ver las formas de pago...' - TabOrder = 5 + TabOrder = 6 OnClick = bFormasPagoClick end inline frViewDatosYSeleccionClientePedido1: TfrViewDatosYSeleccionClientePedido - Left = 474 + Left = 528 Top = 28 Width = 480 Height = 201 @@ -234,36 +246,40 @@ inherited frViewPedidoCliente: TfrViewPedidoCliente Font.Name = 'Tahoma' Font.Style = [] ParentFont = False - TabOrder = 7 + TabOrder = 8 ReadOnly = False - ExplicitLeft = 474 + ExplicitLeft = 528 ExplicitTop = 28 ExplicitWidth = 480 ExplicitHeight = 201 inherited dxLayoutControl1: TdxLayoutControl Width = 480 Height = 201 - ExplicitWidth = 469 + ExplicitWidth = 480 ExplicitHeight = 201 inherited edtlNombre: TcxDBTextEdit Style.LookAndFeel.SkinName = '' StyleDisabled.LookAndFeel.SkinName = '' StyleFocused.LookAndFeel.SkinName = '' StyleHot.LookAndFeel.SkinName = '' + ExplicitWidth = 224 + Width = 224 end inherited edtNIF_CIF: TcxDBTextEdit - Left = 356 + Left = 302 Style.LookAndFeel.SkinName = '' StyleDisabled.LookAndFeel.SkinName = '' StyleFocused.LookAndFeel.SkinName = '' StyleHot.LookAndFeel.SkinName = '' - ExplicitLeft = 356 + ExplicitLeft = 302 end inherited edtPersonaContacto: TcxDBTextEdit Style.LookAndFeel.SkinName = '' StyleDisabled.LookAndFeel.SkinName = '' StyleFocused.LookAndFeel.SkinName = '' StyleHot.LookAndFeel.SkinName = '' + ExplicitWidth = 283 + Width = 283 end inherited edtDireccion: TcxMemo Style.LookAndFeel.SkinName = '' @@ -274,16 +290,16 @@ inherited frViewPedidoCliente: TfrViewPedidoCliente Width = 121 end inherited Button4: TButton - Left = 436 - ExplicitLeft = 436 + Left = 382 + ExplicitLeft = 382 end inherited Button5: TButton - Left = 436 - ExplicitLeft = 436 + Left = 382 + ExplicitLeft = 382 end inherited Button3: TBitBtn - Left = 261 - ExplicitLeft = 261 + Left = 207 + ExplicitLeft = 207 end end end @@ -314,7 +330,7 @@ inherited frViewPedidoCliente: TfrViewPedidoCliente end object edtFechaPrevistaEnvio: TcxDBDateEdit Left = 112 - Top = 109 + Top = 136 Anchors = [akLeft, akTop, akRight] DataBinding.DataField = 'FECHA_PREVISTA_ENVIO' DataBinding.DataSource = DADataSource @@ -335,9 +351,34 @@ inherited frViewPedidoCliente: TfrViewPedidoCliente StyleFocused.LookAndFeel.SkinName = '' StyleHot.LookAndFeel.NativeStyle = True StyleHot.LookAndFeel.SkinName = '' - TabOrder = 3 + TabOrder = 4 Width = 323 end + object cbTipoPedido: TcxDBComboBox + Left = 112 + Top = 82 + DataBinding.DataField = 'TIPO_PEDIDO' + DataBinding.DataSource = DADataSource + Properties.DropDownListStyle = lsEditFixedList + Properties.HideSelection = False + Properties.ImmediatePost = True + Properties.OnInitPopup = cbTipoPedidoPropertiesInitPopup + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.HotTrack = False + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + Style.ButtonStyle = bts3D + Style.PopupBorderStyle = epbsFrame3D + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 2 + Width = 461 + end object dxLayoutControl1Group_Root: TdxLayoutGroup ShowCaption = False Hidden = True @@ -363,6 +404,11 @@ inherited frViewPedidoCliente: TfrViewPedidoCliente Control = eRefCliente ControlOptions.ShowBorder = False end + object dxLayoutControl1Item4: TdxLayoutItem + Caption = 'Tipo pedido:' + Control = cbTipoPedido + ControlOptions.ShowBorder = False + end object dxLayoutControl1Item2: TdxLayoutItem Caption = 'Fecha del pedido:' Control = edtFechaPedido diff --git a/Source/Modulos/Pedidos de cliente/Views/uViewPedidoCliente.pas b/Source/Modulos/Pedidos de cliente/Views/uViewPedidoCliente.pas index 0b85202..83e12f4 100644 --- a/Source/Modulos/Pedidos de cliente/Views/uViewPedidoCliente.pas +++ b/Source/Modulos/Pedidos de cliente/Views/uViewPedidoCliente.pas @@ -12,7 +12,8 @@ uses cxTextEdit, cxMaskEdit, cxCalendar, dxLayoutControl, cxControls, cxMemo, uViewDireccionEntregaPedidoCli, cxLookupEdit, cxDBLookupEdit, cxDBLookupComboBox, uFormasPagoController, ActnList, uDAInterfaces, uBizFormasPago, - uPedidosClienteController, uViewDatosYSeleccionClientePedido; + uPedidosClienteController, uViewDatosYSeleccionClientePedido, + uTiposDocumentoController; type IViewPedidoCliente = interface(IViewBase) @@ -61,6 +62,8 @@ type eRefCliente: TcxDBTextEdit; dxLayoutControl1Item15: TdxLayoutItem; edtFechaPrevistaEnvio: TcxDBDateEdit; + dxLayoutControl1Item4: TdxLayoutItem; + cbTipoPedido: TcxDBComboBox; procedure CustomViewCreate(Sender: TObject); procedure CustomViewDestroy(Sender: TObject); procedure bFormasPagoClick(Sender: TObject); @@ -69,12 +72,14 @@ type procedure frViewClientePedidoButton1Click(Sender: TObject); procedure frViewClientePedidoButton2Click(Sender: TObject); procedure CustomViewShow(Sender: TObject); + procedure cbTipoPedidoPropertiesInitPopup(Sender: TObject); protected FPedido : IBizPedidoCliente; FController : IPedidosClienteController; FViewClientePedido : IViewDatosYSeleccionClientePedido; FFormasPago : IBizFormaPago; FFormasPagoController : IFormasPagoController; + FTipoController: ITiposDocumentoController; function GetPedido: IBizPedidoCliente; procedure SetPedido(const Value: IBizPedidoCliente); virtual; function GetController : IPedidosClienteController; @@ -114,11 +119,26 @@ begin FFormasPagoController.VerTodos(FFormasPago); end; +procedure TfrViewPedidoCliente.cbTipoPedidoPropertiesInitPopup(Sender: TObject); +begin + with cbTipoPedido.Properties.Items do + begin + BeginUpdate; + try + Clear; + AddStrings(FTipoController.DarListaTiposDocumento); + finally + EndUpdate; + end; + end; +end; + procedure TfrViewPedidoCliente.CustomViewCreate(Sender: TObject); begin inherited; FFormasPago := Nil; FFormasPagoController := TFormasPagoController.Create; + FTipoController := TTiposDocumentoController.Create; FViewClientePedido := frViewDatosYSeleccionClientePedido1; eReferencia.Enabled := False; end; @@ -129,6 +149,7 @@ begin FController := Nil; FFormasPago := Nil; FFormasPagoController := NIL; + FTipoController := NIL; end; procedure TfrViewPedidoCliente.CustomViewShow(Sender: TObject); diff --git a/Source/Modulos/Pedidos de cliente/Views/uViewPedidosCliente.dfm b/Source/Modulos/Pedidos de cliente/Views/uViewPedidosCliente.dfm index f511410..0e7a352 100644 --- a/Source/Modulos/Pedidos de cliente/Views/uViewPedidosCliente.dfm +++ b/Source/Modulos/Pedidos de cliente/Views/uViewPedidosCliente.dfm @@ -88,6 +88,10 @@ inherited frViewPedidosCliente: TfrViewPedidosCliente DataBinding.FieldName = 'SITUACION' Width = 95 end + object cxGridViewTIPO_PEDIDO: TcxGridDBColumn + Caption = 'Tipo pedido' + DataBinding.FieldName = 'TIPO_PEDIDO' + end object cxGridViewFECHA_PEDIDO: TcxGridDBColumn DataBinding.FieldName = 'FECHA_PEDIDO' Width = 45 diff --git a/Source/Modulos/Pedidos de cliente/Views/uViewPedidosCliente.pas b/Source/Modulos/Pedidos de cliente/Views/uViewPedidosCliente.pas index d438547..c1c4b07 100644 --- a/Source/Modulos/Pedidos de cliente/Views/uViewPedidosCliente.pas +++ b/Source/Modulos/Pedidos de cliente/Views/uViewPedidosCliente.pas @@ -51,6 +51,7 @@ type cxGridViewNUM_CORREOS: TcxGridDBColumn; cxGridViewREFERENCIA_CLIENTE: TcxGridDBColumn; cxGridViewREFERENCIA_PRESUPUESTO: TcxGridDBColumn; + cxGridViewTIPO_PEDIDO: TcxGridDBColumn; procedure cxGridActiveTabChanged(Sender: TcxCustomGrid; ALevel: TcxGridLevel); procedure cxGridViewStylesGetContentStyle(Sender: TcxCustomGridTableView; diff --git a/Source/Modulos/Presupuestos de cliente/Controller/PresupuestosCliente_controller.dpk b/Source/Modulos/Presupuestos de cliente/Controller/PresupuestosCliente_controller.dpk index 9c874c3..25e2249 100644 Binary files a/Source/Modulos/Presupuestos de cliente/Controller/PresupuestosCliente_controller.dpk and b/Source/Modulos/Presupuestos de cliente/Controller/PresupuestosCliente_controller.dpk differ diff --git a/Source/Modulos/Presupuestos de cliente/Controller/PresupuestosCliente_controller.dproj b/Source/Modulos/Presupuestos de cliente/Controller/PresupuestosCliente_controller.dproj index 58eb2f0..3e3f599 100644 --- a/Source/Modulos/Presupuestos de cliente/Controller/PresupuestosCliente_controller.dproj +++ b/Source/Modulos/Presupuestos de cliente/Controller/PresupuestosCliente_controller.dproj @@ -49,30 +49,16 @@ MainSource - - - - - - - - - - - - - - - - + + + + + + - - - - diff --git a/Source/Modulos/Presupuestos de cliente/Controller/uTiposPresupuestoController.pas b/Source/Modulos/Presupuestos de cliente/Controller/uTiposPresupuestoController.pas deleted file mode 100644 index 3da3024..0000000 --- a/Source/Modulos/Presupuestos de cliente/Controller/uTiposPresupuestoController.pas +++ /dev/null @@ -1,222 +0,0 @@ -unit uTiposPresupuestoController; - -interface - - -uses - Classes, SysUtils, uDADataTable, uControllerBase, uEditorDBItem, - uIDataModulePresupuestosCliente, uBizTiposPresupuesto; - -type - ITiposPresupuestoController = interface(IControllerBase) - ['{7BFA4153-A300-462F-A4C5-F3140360F088}'] - function BuscarTodos: IBizTipoPresupuesto; - procedure VerTodos(ATiposPresupuesto: IBizTipoPresupuesto); - procedure Anadir(ATipoPresupuesto : IBizTipoPresupuesto); - function Eliminar(ATipoPresupuesto : IBizTipoPresupuesto): Boolean; - function Guardar(ATipoPresupuesto : IBizTipoPresupuesto): Boolean; - procedure DescartarCambios(ATipoPresupuesto : IBizTipoPresupuesto); - function Localizar(ATiposPresupuesto: IBizTipoPresupuesto; ADescripcion:String): Boolean; - function DarListaTiposPresupuesto: TStringList; - end; - - TTiposPresupuestoController = class(TControllerBase, ITiposPresupuestoController) - protected - FDataModule : IDataModulePresupuestosCliente; - procedure RecibirAviso(ASujeto: ISujeto; ADataTable: IDAStronglyTypedDataTable); override; - function CreateEditor(const AName : String; const IID: TGUID; out Intf): Boolean; - function ValidarTipoPresupuesto(ATipoPresupuesto: IBizTipoPresupuesto): Boolean; - procedure AsignarDataModule; virtual; - public - constructor Create; override; - destructor Destroy; override; - - function Eliminar(ATipoPresupuesto : IBizTipoPresupuesto): Boolean; - function Guardar(ATipoPresupuesto : IBizTipoPresupuesto): Boolean; - procedure DescartarCambios(ATipoPresupuesto : IBizTipoPresupuesto); virtual; - procedure Anadir(ATipoPresupuesto : IBizTipoPresupuesto); - function BuscarTodos: IBizTipoPresupuesto; - procedure VerTodos(ATiposPresupuesto: IBizTipoPresupuesto); - function Localizar(ATiposPresupuesto: IBizTipoPresupuesto; ADescripcion:String): Boolean; - function DarListaTiposPresupuesto: TStringList; - end; - -implementation - -uses - cxControls, DB, uEditorRegistryUtils, -// uIEditorTiposPresupuesto, - uDataModulePresupuestosCliente, - uDAInterfaces, uDataTableUtils, - uDateUtils, uROTypes, DateUtils, Controls, Windows, schPresupuestosClienteClient_Intf; - -{ TTiposPresupuestoController } - -procedure TTiposPresupuestoController.Anadir(ATipoPresupuesto: IBizTipoPresupuesto); -begin - ATipoPresupuesto.Insert; -end; - -procedure TTiposPresupuestoController.AsignarDataModule; -begin - FDataModule := TDataModulePresupuestosCliente.Create(Nil); -end; - -function TTiposPresupuestoController.BuscarTodos: IBizTipoPresupuesto; -begin - Result := FDataModule.GetTiposPresupuesto; -end; - -constructor TTiposPresupuestoController.Create; -begin - inherited; - AsignarDataModule; -end; - -function TTiposPresupuestoController.CreateEditor(const AName: String; const IID: TGUID; out Intf): Boolean; -begin - Result := Supports(EditorRegistry.CreateEditor(AName), IID, Intf); -end; - -function TTiposPresupuestoController.DarListaTiposPresupuesto: TStringList; -var - ATiposPresupuesto: IBizTipoPresupuesto; -begin - ATiposPresupuesto := BuscarTodos; - ATiposPresupuesto.DataTable.Active := True; - Result := TStringList.Create; - try - with Result do - begin - ATiposPresupuesto.DataTable.First; - while not ATiposPresupuesto.DataTable.EOF do - begin - Add(ATiposPresupuesto.DESCRIPCION); - ATiposPresupuesto.DataTable.Next; - end; - end; - finally - ATiposPresupuesto := NIL; - end; -end; - -procedure TTiposPresupuestoController.DescartarCambios(ATipoPresupuesto: IBizTipoPresupuesto); -begin - if not Assigned(ATipoPresupuesto) then - raise Exception.Create ('GrupoCliente no asignado'); - - ShowHourglassCursor; - try - if (ATipoPresupuesto.State in dsEditModes) then - ATipoPresupuesto.Cancel; - - ATipoPresupuesto.DataTable.CancelUpdates; - finally - HideHourglassCursor; - end; -end; - -destructor TTiposPresupuestoController.Destroy; -begin - FDataModule := Nil; - inherited; -end; - -function TTiposPresupuestoController.ValidarTipoPresupuesto(ATipoPresupuesto: IBizTipoPresupuesto): Boolean; -begin - if not Assigned(ATipoPresupuesto) then - raise Exception.Create ('TipoCliente no asignada'); - - if (ATipoPresupuesto.DataTable.State in dsEditModes) then - ATipoPresupuesto.DataTable.Post; - - if Length(ATipoPresupuesto.DESCRIPCION) = 0 then - raise Exception.Create('Debe indicar al menos la descripción de este tipo.'); - - Result := True; -end; - -procedure TTiposPresupuestoController.VerTodos(ATiposPresupuesto: IBizTipoPresupuesto); -//var -// AEditor : IEditorTiposPresupuesto; -begin -{ - AEditor := NIL; - - CreateEditor('EditorTiposPresupuesto', IEditorTiposPresupuesto, AEditor); - if Assigned(AEditor) then - try - AEditor.Controller := Self; //OJO ORDEN MUY IMPORTANTE - AEditor.TiposPresupuesto := ATiposPresupuesto; - AEditor.ShowModal; - finally - AEditor.Release; - AEditor := NIL; - end; -} -end; - -function TTiposPresupuestoController.Eliminar(ATipoPresupuesto: IBizTipoPresupuesto): Boolean; -begin - if not Assigned(ATipoPresupuesto) then - raise Exception.Create ('TipoCliente no asignada'); - - ShowHourglassCursor; - try - if (ATipoPresupuesto.State in dsEditModes) then - ATipoPresupuesto.Cancel; - - ATipoPresupuesto.Delete; - ATipoPresupuesto.DataTable.ApplyUpdates; - HideHourglassCursor; - Result := True; - finally - HideHourglassCursor; - end; -end; - -procedure TTiposPresupuestoController.RecibirAviso(ASujeto: ISujeto; ADataTable: IDAStronglyTypedDataTable); -begin - inherited; -// -end; - -function TTiposPresupuestoController.Guardar(ATipoPresupuesto: IBizTipoPresupuesto): Boolean; -begin - Result := False; - - if ValidarTipoPresupuesto(ATipoPresupuesto) then - begin - ShowHourglassCursor; - try - if (ATipoPresupuesto.DataTable.State in dsEditModes) then - ATipoPresupuesto.DataTable.Post; - - ATipoPresupuesto.DataTable.ApplyUpdates; - - Result := True; - finally - HideHourglassCursor; - end; - end; -end; - -function TTiposPresupuestoController.Localizar(ATiposPresupuesto: IBizTipoPresupuesto; ADescripcion: String): Boolean; -begin - Result := True; - ShowHourglassCursor; - try - with ATiposPresupuesto.DataTable do - begin - DisableControls; - First; - if not Locate(fld_TiposPresupuestoDESCRIPCION, ADescripcion, []) then - Result := False; - EnableControls; - end; - finally - HideHourglassCursor; - end; -end; - -end. diff --git a/Source/Modulos/Presupuestos de cliente/Data/uDataModulePresupuestosCliente.dfm b/Source/Modulos/Presupuestos de cliente/Data/uDataModulePresupuestosCliente.dfm index a05f07e..e65c906 100644 --- a/Source/Modulos/Presupuestos de cliente/Data/uDataModulePresupuestosCliente.dfm +++ b/Source/Modulos/Presupuestos de cliente/Data/uDataModulePresupuestosCliente.dfm @@ -419,37 +419,4 @@ inherited DataModulePresupuestosCliente: TDataModulePresupuestosCliente Left = 248 Top = 144 end - object tbl_TiposPresupuesto: TDAMemDataTable - RemoteUpdatesOptions = [] - Fields = < - item - Name = 'ID' - DataType = datAutoInc - GeneratorName = 'GEN_PRESUPUESTOS_TIPOS_ID' - Required = True - DisplayLabel = 'TiposPresupuesto_ID' - DictionaryEntry = 'TiposPresupuesto_ID' - InPrimaryKey = True - end - item - Name = 'DESCRIPCION' - DataType = datString - Size = 255 - DisplayLabel = 'TiposPresupuesto_DESCRIPCION' - DictionaryEntry = 'TiposPresupuesto_DESCRIPCION' - end> - Params = <> - StreamingOptions = [soDisableEventsWhileStreaming] - RemoteDataAdapter = rda_PresupuestosCliente - LogicalName = 'TiposPresupuesto' - IndexDefs = <> - Left = 464 - Top = 208 - end - object ds_TiposPresupuesto: TDADataSource - DataSet = tbl_TiposPresupuesto.Dataset - DataTable = tbl_TiposPresupuesto - Left = 464 - Top = 152 - end end diff --git a/Source/Modulos/Presupuestos de cliente/Data/uDataModulePresupuestosCliente.pas b/Source/Modulos/Presupuestos de cliente/Data/uDataModulePresupuestosCliente.pas index 25776cf..a683336 100644 --- a/Source/Modulos/Presupuestos de cliente/Data/uDataModulePresupuestosCliente.pas +++ b/Source/Modulos/Presupuestos de cliente/Data/uDataModulePresupuestosCliente.pas @@ -11,7 +11,7 @@ uses uIDataModulePresupuestosCliente, uBizPresupuestosCliente, uBizDetallesPresupuestoCliente, uIDataModulePresupuestosClienteReport, uDataModuleBase, uDAInterfaces, uRODynamicRequest, uDADataStreamer, uDARemoteDataAdapter, uDABin2DataStreamer, - uDAMemDataTable, uIntegerListUtils, uBizTiposPresupuesto; + uDAMemDataTable, uIntegerListUtils; type TDataModulePresupuestosCliente = class(TDataModuleBase, IDataModulePresupuestosCliente, IDataModulePresupuestosClienteReport) @@ -25,8 +25,6 @@ type RORemoteService1: TRORemoteService; tbl_ListaAnosPresupuestos: TDAMemDataTable; ds_ListaAnosPresupuestos: TDADataSource; - tbl_TiposPresupuesto: TDAMemDataTable; - ds_TiposPresupuesto: TDADataSource; procedure DAClientDataModuleCreate(Sender: TObject); private @@ -49,7 +47,6 @@ type function GetRptPDFPresupuesto(const AID: Integer; Const AVerSello: Integer): Binary; function GetAnosItems : TStringList; - function GetTiposPresupuesto : IBizTipoPresupuesto; end; implementation @@ -109,21 +106,6 @@ begin // Result := (RORemoteService as IsrvPresupuestosCliente).GenerarInformeEnWord(AID, AVerSello) end; -function TDataModulePresupuestosCliente.GetTiposPresupuesto: IBizTipoPresupuesto; -var - ATipoPresupuesto : TDAMemDataTable; -begin - ShowHourglassCursor; - try - ATipoPresupuesto := CloneDataTable(tbl_TiposPresupuesto); - ATipoPresupuesto.BusinessRulesID := BIZ_CLIENT_TIPOSPRESUPUESTO; - Result := (ATipoPresupuesto as IBizTipoPresupuesto); - finally - HideHourglassCursor; - end; - -end; - function TDataModulePresupuestosCliente.NewItem: IBizPresupuestoCliente; begin Result := GetItem(ID_NULO) diff --git a/Source/Modulos/Presupuestos de cliente/Model/Data/uIDataModulePresupuestosCliente.pas b/Source/Modulos/Presupuestos de cliente/Model/Data/uIDataModulePresupuestosCliente.pas index b244ba3..abd8e70 100644 --- a/Source/Modulos/Presupuestos de cliente/Model/Data/uIDataModulePresupuestosCliente.pas +++ b/Source/Modulos/Presupuestos de cliente/Model/Data/uIDataModulePresupuestosCliente.pas @@ -4,17 +4,16 @@ interface uses Classes, uROTypes, uBizPresupuestosCliente, uBizDetallesPresupuestoCliente, - uIntegerListUtils, uBizTiposPresupuesto; + uIntegerListUtils; type IDataModulePresupuestosCliente = interface ['{F0DDD126-9E62-4FEC-A849-FDCA75718F5B}'] - function GetAnosItems : TStringList; + function GetAnosItems : TStringList; function GetItems: IBizPresupuestoCliente; overload; - function GetItems(const AListaID: TIntegerList) : IBizPresupuestoCliente; overload; + function GetItems(const AListaID: TIntegerList) : IBizPresupuestoCliente; overload; function GetItem(const ID : Integer) : IBizPresupuestoCliente; function NewItem : IBizPresupuestoCliente; - function GetTiposPresupuesto : IBizTipoPresupuesto; end; implementation diff --git a/Source/Modulos/Presupuestos de cliente/Model/PresupuestosCliente_model.dpk b/Source/Modulos/Presupuestos de cliente/Model/PresupuestosCliente_model.dpk index 6e4e584..4f2be43 100644 --- a/Source/Modulos/Presupuestos de cliente/Model/PresupuestosCliente_model.dpk +++ b/Source/Modulos/Presupuestos de cliente/Model/PresupuestosCliente_model.dpk @@ -35,7 +35,6 @@ contains uBizPresupuestosCliente in 'uBizPresupuestosCliente.pas', uIDataModulePresupuestosClienteReport in 'Data\uIDataModulePresupuestosClienteReport.pas', schPresupuestosClienteClient_Intf in 'schPresupuestosClienteClient_Intf.pas', - schPresupuestosClienteServer_Intf in 'schPresupuestosClienteServer_Intf.pas', - uBizTiposPresupuesto in 'uBizTiposPresupuesto.pas'; + schPresupuestosClienteServer_Intf in 'schPresupuestosClienteServer_Intf.pas'; end. diff --git a/Source/Modulos/Presupuestos de cliente/Model/PresupuestosCliente_model.dproj b/Source/Modulos/Presupuestos de cliente/Model/PresupuestosCliente_model.dproj index d72cc2a..c332512 100644 --- a/Source/Modulos/Presupuestos de cliente/Model/PresupuestosCliente_model.dproj +++ b/Source/Modulos/Presupuestos de cliente/Model/PresupuestosCliente_model.dproj @@ -43,12 +43,6 @@ Package FalseTrueFalseFalseFalseFalseTrueFalse1000FalseFalseFalseFalseFalse308212521.0.0.01.0.0.0 - - - - - - RemObjects Pascal Script - RemObjects SDK 3.0 Integration EurekaLog 5.1.9 PresupuestosCliente_model.dpk @@ -58,16 +52,15 @@ MainSource - - - + + + -
diff --git a/Source/Modulos/TiposDocumento/Controller/uTiposDocumentoController.pas b/Source/Modulos/TiposDocumento/Controller/uTiposDocumentoController.pas new file mode 100644 index 0000000..d2f50b2 --- /dev/null +++ b/Source/Modulos/TiposDocumento/Controller/uTiposDocumentoController.pas @@ -0,0 +1,220 @@ +unit uTiposDocumentoController; + +interface + + +uses + Classes, SysUtils, uDADataTable, uControllerBase, uEditorDBItem, + uIDataModuleTiposDocumento, uBizTiposDocumento; + +type + ITiposDocumentoController = interface(IControllerBase) + ['{4D248341-1FE0-466E-BD84-10B540CA57EA}'] + function BuscarTodos: IBizTipoDocumento; + procedure VerTodos(ATiposDocumento: IBizTipoDocumento); + procedure Anadir(ATipoDocumento : IBizTipoDocumento); + function Eliminar(ATipoDocumento : IBizTipoDocumento): Boolean; + function Guardar(ATipoDocumento : IBizTipoDocumento): Boolean; + procedure DescartarCambios(ATipoDocumento : IBizTipoDocumento); + function Localizar(ATiposDocumento: IBizTipoDocumento; ADescripcion:String): Boolean; + function DarListaTiposDocumento: TStringList; + end; + + TTiposDocumentoController = class(TControllerBase, ITiposDocumentoController) + protected + FDataModule : IDataModuleTiposDocumento; + + procedure RecibirAviso(ASujeto: ISujeto; ADataTable: IDAStronglyTypedDataTable); override; + function CreateEditor(const AName : String; const IID: TGUID; out Intf): Boolean; + + function ValidarTiposDocumento(ATipoDocumento: IBizTipoDocumento): Boolean; + + //Estos son los tres métodos a sobre escribir si se desea heredar toda la logica de + //este controller + procedure AsignarDataModule; virtual; + public + constructor Create; override; + destructor Destroy; override; + + function Eliminar(ATipoDocumento : IBizTipoDocumento): Boolean; + function Guardar(ATipoDocumento : IBizTipoDocumento): Boolean; + procedure DescartarCambios(ATipoDocumento : IBizTipoDocumento); virtual; + procedure Anadir(ATipoDocumento : IBizTipoDocumento); + function BuscarTodos: IBizTipoDocumento; + procedure VerTodos(ATiposDocumento: IBizTipoDocumento); + function Localizar(ATiposDocumento: IBizTipoDocumento; ADescripcion:String): Boolean; + function DarListaTiposDocumento: TStringList; + end; + +implementation + +uses + cxControls, DB, uEditorRegistryUtils, schTiposDocumentoClient_Intf, + uIEditorTiposDocumento, uDataModuleTiposDocumento, + uDAInterfaces, uDataTableUtils, + uDateUtils, uROTypes, DateUtils, Controls, Windows; + +{ TTiposDocumentoController } + +procedure TTiposDocumentoController.Anadir(ATipoDocumento: IBizTipoDocumento); +begin + ATipoDocumento.Insert; +end; + +procedure TTiposDocumentoController.AsignarDataModule; +begin + FDataModule := TDataModuleTiposDocumento.Create(Nil); +end; + +function TTiposDocumentoController.BuscarTodos: IBizTipoDocumento; +begin + Result := FDataModule.GetItems; +end; + +constructor TTiposDocumentoController.Create; +begin + inherited; + AsignarDataModule; +end; + +function TTiposDocumentoController.CreateEditor(const AName: String; const IID: TGUID; out Intf): Boolean; +begin + Result := Supports(EditorRegistry.CreateEditor(AName), IID, Intf); +end; + +function TTiposDocumentoController.DarListaTiposDocumento: TStringList; +var + ATiposDocumento: IBizTipoDocumento; +begin + ATiposDocumento := BuscarTodos; + ATiposDocumento.DataTable.Active := True; + Result := TStringList.Create; + try + with Result do + begin + ATiposDocumento.DataTable.First; + while not ATiposDocumento.DataTable.EOF do + begin + Add(ATiposDocumento.DESCRIPCION); + ATiposDocumento.DataTable.Next; + end; + end; + finally + ATiposDocumento := NIL; + end; +end; + +procedure TTiposDocumentoController.DescartarCambios(ATipoDocumento: IBizTipoDocumento); +begin + if not Assigned(ATipoDocumento) then + raise Exception.Create ('TipoDocumento no asignado'); + + ShowHourglassCursor; + try + if (ATipoDocumento.State in dsEditModes) then + ATipoDocumento.Cancel; + + ATipoDocumento.DataTable.CancelUpdates; + finally + HideHourglassCursor; + end; +end; + +destructor TTiposDocumentoController.Destroy; +begin + FDataModule := Nil; + inherited; +end; + +function TTiposDocumentoController.ValidarTiposDocumento(ATipoDocumento: IBizTipoDocumento): Boolean; +begin + Result := False; + + if not Assigned(ATipoDocumento) then + raise Exception.Create ('TipoDocumento no asignada'); + + if (ATipoDocumento.DataTable.State in dsEditModes) then + ATipoDocumento.DataTable.Post; + + Result := True; +end; + +procedure TTiposDocumentoController.VerTodos(ATiposDocumento: IBizTipoDocumento); +var + AEditor : IEditorTiposDocumento; +begin + AEditor := NIL; + CreateEditor('EditorTiposDocumento', IEditorTiposDocumento, AEditor); + if Assigned(AEditor) then + try + AEditor.Controller := Self; //OJO ORDEN MUY IMPORTANTE + AEditor.TiposDocumento := ATiposDocumento; + AEditor.ShowModal; + finally + AEditor.Release; + end; +end; + +function TTiposDocumentoController.Eliminar(ATipoDocumento: IBizTipoDocumento): Boolean; +begin + if not Assigned(ATipoDocumento) then + raise Exception.Create ('Almacen no asignada'); + + ShowHourglassCursor; + try + if (ATipoDocumento.State in dsEditModes) then + ATipoDocumento.Cancel; + + ATipoDocumento.Delete; + ATipoDocumento.DataTable.ApplyUpdates; + HideHourglassCursor; + Result := True; + finally + HideHourglassCursor; + end; +end; + +procedure TTiposDocumentoController.RecibirAviso(ASujeto: ISujeto; ADataTable: IDAStronglyTypedDataTable); +begin + inherited; +// +end; + +function TTiposDocumentoController.Guardar(ATipoDocumento: IBizTipoDocumento): Boolean; +begin + Result := False; + + if not Assigned(ATipoDocumento) then + raise Exception.Create ('TipoDocumento no asignado'); + + if ValidarTiposDocumento(ATipoDocumento) then + begin + ShowHourglassCursor; + try + ATipoDocumento.DataTable.ApplyUpdates; + Result := True; + finally + HideHourglassCursor; + end; + end; +end; + +function TTiposDocumentoController.Localizar(ATiposDocumento: IBizTipoDocumento; ADescripcion: String): Boolean; +begin + Result := True; + ShowHourglassCursor; + try + with ATiposDocumento.DataTable do + begin + DisableControls; + First; + if not Locate(fld_TiposDocumentoDESCRIPCION, ADescripcion, []) then + Result := False; + EnableControls; + end; + finally + HideHourglassCursor; + end; +end; + +end. diff --git a/Source/Modulos/TiposDocumento/Controller/view/uIEditorTiposDocumento.pas b/Source/Modulos/TiposDocumento/Controller/view/uIEditorTiposDocumento.pas new file mode 100644 index 0000000..1286c64 --- /dev/null +++ b/Source/Modulos/TiposDocumento/Controller/view/uIEditorTiposDocumento.pas @@ -0,0 +1,26 @@ +unit uIEditorTiposDocumento; + +interface + +uses + uEditorDBBase, uBizTiposDocumento, uTiposDocumentoController, uGUIBase; + +type + IEditorTiposDocumento = interface(ICustomEditor) + ['{F65EA16E-7CBC-4E78-8014-BB9E4DC1692A}'] + function GetTiposDocumento: IBizTipoDocumento; + procedure SetTiposDocumento(const Value: IBizTipoDocumento); + property TiposDocumento: IBizTipoDocumento read GetTiposDocumento write SetTiposDocumento; + + function GetController : ITiposDocumentoController; + procedure SetController (const Value : ITiposDocumentoController); + property Controller : ITiposDocumentoController read GetController write SetController; + + function ShowModal : Integer; + procedure Show; + end; + + +implementation + +end. diff --git a/Source/Modulos/TiposDocumento/Data/TiposDocumento_data.dpk b/Source/Modulos/TiposDocumento/Data/TiposDocumento_data.dpk new file mode 100644 index 0000000..1cb0cff Binary files /dev/null and b/Source/Modulos/TiposDocumento/Data/TiposDocumento_data.dpk differ diff --git a/Source/Modulos/TiposDocumento/Data/TiposDocumento_data.dproj b/Source/Modulos/TiposDocumento/Data/TiposDocumento_data.dproj new file mode 100644 index 0000000..5d62685 --- /dev/null +++ b/Source/Modulos/TiposDocumento/Data/TiposDocumento_data.dproj @@ -0,0 +1,546 @@ + + + + {55d06c67-fc74-4d88-8787-801dee872bb3} + TiposDocumento_data.dpk + Debug + AnyCPU + DCC32 + ..\..\..\..\Output\Debug\Cliente\TiposDocumento_data.bpl + + + 7.0 + False + False + 0 + 3 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + RELEASE + + + 7.0 + 3 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + + + Delphi.Personality + Package + +FalseTrueFalseFalseFalseFalseTrueFalse1000FalseFalseFalseFalseFalse308212521.0.0.01.0.0.0TiposDocumento_data.dpk + + + + + MainSource + + + + + + + + +
DataModuleTiposDocumento
+ TDAClientDataModule +
+
+
+ diff --git a/Source/Modulos/TiposDocumento/Data/uDataModuleTiposDocumento.dfm b/Source/Modulos/TiposDocumento/Data/uDataModuleTiposDocumento.dfm new file mode 100644 index 0000000..206fb19 --- /dev/null +++ b/Source/Modulos/TiposDocumento/Data/uDataModuleTiposDocumento.dfm @@ -0,0 +1,59 @@ +inherited DataModuleTiposDocumento: TDataModuleTiposDocumento + OnCreate = DAClientDataModuleCreate + Height = 248 + Width = 489 + object RORemoteService: TRORemoteService + Message = dmConexion.ROMessage + Channel = dmConexion.ROChannel + ServiceName = 'srvTiposDocumento' + Left = 48 + Top = 24 + end + object rda_TiposDocumento: TDARemoteDataAdapter + DataStreamer = Bin2DataStreamer + GetSchemaCall.RemoteService = RORemoteService + GetDataCall.RemoteService = RORemoteService + UpdateDataCall.RemoteService = RORemoteService + GetScriptsCall.RemoteService = RORemoteService + RemoteService = RORemoteService + Left = 203 + Top = 23 + end + object Bin2DataStreamer: TDABin2DataStreamer + Left = 48 + Top = 96 + end + object tbl_TiposDocumento: TDAMemDataTable + RemoteUpdatesOptions = [] + Fields = < + item + Name = 'ID' + DataType = datAutoInc + GeneratorName = 'GEN_TIPOS_DOCUMENTO_ID' + Required = True + ServerAutoRefresh = True + DictionaryEntry = 'TiposDocumento_ID' + InPrimaryKey = True + end + item + Name = 'DESCRIPCION' + DataType = datString + Size = 255 + DisplayLabel = 'TiposDocumento_DESCRIPCION' + DictionaryEntry = 'TiposDocumento_DESCRIPCION' + end> + Params = <> + StreamingOptions = [soDisableEventsWhileStreaming] + RemoteDataAdapter = rda_TiposDocumento + LogicalName = 'TiposDocumento' + IndexDefs = <> + Left = 344 + Top = 72 + end + object ds_TiposDocumento: TDADataSource + DataSet = tbl_TiposDocumento.Dataset + DataTable = tbl_TiposDocumento + Left = 344 + Top = 24 + end +end diff --git a/Source/Modulos/TiposDocumento/Data/uDataModuleTiposDocumento.pas b/Source/Modulos/TiposDocumento/Data/uDataModuleTiposDocumento.pas new file mode 100644 index 0000000..bcc1253 --- /dev/null +++ b/Source/Modulos/TiposDocumento/Data/uDataModuleTiposDocumento.pas @@ -0,0 +1,112 @@ +{ +=============================================================================== + Copyright (©) 2007. Rodax Software. +=============================================================================== + Los contenidos de este fichero son propiedad de Rodax Software titular del + copyright. Este fichero sólo podrá ser copiado, distribuido y utilizado, + en su totalidad o en parte, con el permiso escrito de Rodax Software, o de + acuerdo con los términos y condiciones establecidas en el acuerdo/contrato + bajo el que se suministra. + ----------------------------------------------------------------------------- + Web: www.rodax-software.com +=============================================================================== + Fecha primera versión: + Versión actual: 1.0.0 + Fecha versión actual: +=============================================================================== + Modificaciones: + + Fecha Comentarios + --------------------------------------------------------------------------- +=============================================================================== +} + +unit uDataModuleTiposDocumento; + +interface + +uses + SysUtils, Classes, DB, uDADataTable, uDABINAdapter, + uDAScriptingProvider, uDACDSDataTable, uROWinInetHttpChannel, uROTypes, + uRORemoteService, uROClient, uROBinMessage, + uDADesigntimeCall, + + uIDataModuleTiposDocumento, uBizTiposDocumento, uDADataStreamer, uDARemoteDataAdapter, + uDAInterfaces, uRODynamicRequest, uDABin2DataStreamer, uDAMemDataTable, + uDataModuleBase; + +type + TDataModuleTiposDocumento = class(TDataModuleBase, IDataModuleTiposDocumento) + RORemoteService: TRORemoteService; + rda_TiposDocumento: TDARemoteDataAdapter; + Bin2DataStreamer: TDABin2DataStreamer; + tbl_TiposDocumento: TDAMemDataTable; + ds_TiposDocumento: TDADataSource; + procedure DAClientDataModuleCreate(Sender: TObject); + public + function GetItems: IBizTipoDocumento; + function GetItem(const ID : Integer) : IBizTipoDocumento; + function NewItem : IBizTipoDocumento; + end; + +implementation + +{$R *.DFM} + +uses + FactuGES_Intf, uDataModuleConexion, uDataTableUtils, cxControls, + schTiposDocumentoClient_Intf; + +{ TDataModuleTiposDocumento } + +procedure TDataModuleTiposDocumento.DAClientDataModuleCreate(Sender: TObject); +begin + RORemoteService.Channel := dmConexion.Channel; + RORemoteService.Message := dmConexion.Message; +end; + +function TDataModuleTiposDocumento.GetItems: IBizTipoDocumento; +var + ATipoDocumento : TDAMemDataTable; +begin + ShowHourglassCursor; + try + ATipoDocumento := CloneDataTable(tbl_TiposDocumento); + ATipoDocumento.BusinessRulesID := BIZ_CLIENT_TIPOS_DOCUMENTO; + + Result := (ATipoDocumento as IBizTipoDocumento); + finally + HideHourglassCursor; + end; +end; + +function TDataModuleTiposDocumento.NewItem: IBizTipoDocumento; +begin + Result := GetItem(ID_NULO) +end; + +function TDataModuleTiposDocumento.GetItem(const ID: Integer): IBizTipoDocumento; +var + Condicion: TDAWhereExpression; +begin + ShowHourglassCursor; + try + Result := Self.GetItems; + + with Result.DataTable.DynamicWhere do + begin + // (ID = :ID) + Condicion := NewBinaryExpression(NewField('', fld_TiposDocumentoID), NewConstant(ID, datInteger), dboEqual); + + if IsEmpty then + Expression := Condicion + else + Expression := NewBinaryExpression(Expression, Condicion, dboAnd); + end; + + finally + HideHourglassCursor; + end; +end; + +end. diff --git a/Source/Modulos/TiposDocumento/Model/Data/uIDataModuleTiposDocumento.pas b/Source/Modulos/TiposDocumento/Model/Data/uIDataModuleTiposDocumento.pas new file mode 100644 index 0000000..d718114 --- /dev/null +++ b/Source/Modulos/TiposDocumento/Model/Data/uIDataModuleTiposDocumento.pas @@ -0,0 +1,42 @@ +{ +=============================================================================== + Copyright (©) 2007. Rodax Software. +=============================================================================== + Los contenidos de este fichero son propiedad de Rodax Software titular del + copyright. Este fichero sólo podrá ser copiado, distribuido y utilizado, + en su totalidad o en parte, con el permiso escrito de Rodax Software, o de + acuerdo con los términos y condiciones establecidas en el acuerdo/contrato + bajo el que se suministra. + ----------------------------------------------------------------------------- + Web: www.rodax-software.com +=============================================================================== + Fecha primera versión: + Versión actual: 1.0.0 + Fecha versión actual: +=============================================================================== + Modificaciones: + + Fecha Comentarios + --------------------------------------------------------------------------- +=============================================================================== +} + +unit uIDataModuleTiposDocumento; + +interface + +uses + uBizTiposDocumento; + +type + IDataModuleTiposDocumento = interface + ['{7352F969-3F55-4D44-B67D-F9EF47AF4943}'] + function GetItems: IBizTipoDocumento; + function GetItem(const ID : Integer) : IBizTipoDocumento; + function NewItem : IBizTipoDocumento; + + end; + +implementation + +end. diff --git a/Source/Modulos/TiposDocumento/Model/TiposDocumento_model.dpk b/Source/Modulos/TiposDocumento/Model/TiposDocumento_model.dpk new file mode 100644 index 0000000..21f90da Binary files /dev/null and b/Source/Modulos/TiposDocumento/Model/TiposDocumento_model.dpk differ diff --git a/Source/Modulos/TiposDocumento/Model/TiposDocumento_model.dproj b/Source/Modulos/TiposDocumento/Model/TiposDocumento_model.dproj new file mode 100644 index 0000000..81e5c3c --- /dev/null +++ b/Source/Modulos/TiposDocumento/Model/TiposDocumento_model.dproj @@ -0,0 +1,551 @@ + + + + {82fe21d8-609d-444d-879e-4d9e1c291607} + TiposDocumento_model.dpk + Debug + AnyCPU + DCC32 + ..\..\..\..\Output\Debug\Cliente\TiposDocumento_model.bpl + + + 7.0 + False + False + 0 + 3 + .\ + .\ + .\ + ..\..\..\..\Output\Release\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + RELEASE + + + 7.0 + 3 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + + + Delphi.Personality + Package + +FalseTrueFalseFalseFalseFalseTrueFalse1000FalseFalseFalseFalseFalse308212521.0.0.01.0.0.0TiposDocumento_model.dpk + + + + + MainSource + + + + + + + + + + + + + + + + + + + diff --git a/Source/Modulos/TiposDocumento/Model/schTiposDocumentoClient_Intf.pas b/Source/Modulos/TiposDocumento/Model/schTiposDocumentoClient_Intf.pas new file mode 100644 index 0000000..89a1c7e --- /dev/null +++ b/Source/Modulos/TiposDocumento/Model/schTiposDocumentoClient_Intf.pas @@ -0,0 +1,134 @@ +unit schTiposDocumentoClient_Intf; + +interface + +uses + Classes, DB, schBase_Intf, SysUtils, uROClasses, uDAInterfaces, uDADataTable, FmtBCD, uROXMLIntf; + +const + { Data table rules ids + Feel free to change them to something more human readable + but make sure they are unique in the context of your application } + RID_TiposDocumento = '{A199C235-5C39-42C1-99AA-D4BC2211F6EE}'; + + { Data table names } + nme_TiposDocumento = 'TiposDocumento'; + + { TiposDocumento fields } + fld_TiposDocumentoID = 'ID'; + fld_TiposDocumentoDESCRIPCION = 'DESCRIPCION'; + + { TiposDocumento field indexes } + idx_TiposDocumentoID = 0; + idx_TiposDocumentoDESCRIPCION = 1; + +type + { ITiposDocumento } + ITiposDocumento = interface(IDAStronglyTypedDataTable) + ['{BF70DBB3-DDC6-42E7-821C-1A2A7EE4977B}'] + { Property getters and setters } + function GetIDValue: Integer; + procedure SetIDValue(const aValue: Integer); + function GetIDIsNull: Boolean; + procedure SetIDIsNull(const aValue: Boolean); + function GetDESCRIPCIONValue: String; + procedure SetDESCRIPCIONValue(const aValue: String); + function GetDESCRIPCIONIsNull: Boolean; + procedure SetDESCRIPCIONIsNull(const aValue: Boolean); + + + { Properties } + property ID: Integer read GetIDValue write SetIDValue; + property IDIsNull: Boolean read GetIDIsNull write SetIDIsNull; + property DESCRIPCION: String read GetDESCRIPCIONValue write SetDESCRIPCIONValue; + property DESCRIPCIONIsNull: Boolean read GetDESCRIPCIONIsNull write SetDESCRIPCIONIsNull; + end; + + { TTiposDocumentoDataTableRules } + TTiposDocumentoDataTableRules = class(TIntfObjectDADataTableRules, ITiposDocumento) + private + protected + { Property getters and setters } + function GetIDValue: Integer; virtual; + procedure SetIDValue(const aValue: Integer); virtual; + function GetIDIsNull: Boolean; virtual; + procedure SetIDIsNull(const aValue: Boolean); virtual; + function GetDESCRIPCIONValue: String; virtual; + procedure SetDESCRIPCIONValue(const aValue: String); virtual; + function GetDESCRIPCIONIsNull: Boolean; virtual; + procedure SetDESCRIPCIONIsNull(const aValue: Boolean); virtual; + + { Properties } + property ID: Integer read GetIDValue write SetIDValue; + property IDIsNull: Boolean read GetIDIsNull write SetIDIsNull; + property DESCRIPCION: String read GetDESCRIPCIONValue write SetDESCRIPCIONValue; + property DESCRIPCIONIsNull: Boolean read GetDESCRIPCIONIsNull write SetDESCRIPCIONIsNull; + + public + constructor Create(aDataTable: TDADataTable); override; + destructor Destroy; override; + + end; + +implementation + +uses Variants, uROBinaryHelpers; + +{ TTiposDocumentoDataTableRules } +constructor TTiposDocumentoDataTableRules.Create(aDataTable: TDADataTable); +begin + inherited; +end; + +destructor TTiposDocumentoDataTableRules.Destroy; +begin + inherited; +end; + +function TTiposDocumentoDataTableRules.GetIDValue: Integer; +begin + result := DataTable.Fields[idx_TiposDocumentoID].AsInteger; +end; + +procedure TTiposDocumentoDataTableRules.SetIDValue(const aValue: Integer); +begin + DataTable.Fields[idx_TiposDocumentoID].AsInteger := aValue; +end; + +function TTiposDocumentoDataTableRules.GetIDIsNull: boolean; +begin + result := DataTable.Fields[idx_TiposDocumentoID].IsNull; +end; + +procedure TTiposDocumentoDataTableRules.SetIDIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_TiposDocumentoID].AsVariant := Null; +end; + +function TTiposDocumentoDataTableRules.GetDESCRIPCIONValue: String; +begin + result := DataTable.Fields[idx_TiposDocumentoDESCRIPCION].AsString; +end; + +procedure TTiposDocumentoDataTableRules.SetDESCRIPCIONValue(const aValue: String); +begin + DataTable.Fields[idx_TiposDocumentoDESCRIPCION].AsString := aValue; +end; + +function TTiposDocumentoDataTableRules.GetDESCRIPCIONIsNull: boolean; +begin + result := DataTable.Fields[idx_TiposDocumentoDESCRIPCION].IsNull; +end; + +procedure TTiposDocumentoDataTableRules.SetDESCRIPCIONIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_TiposDocumentoDESCRIPCION].AsVariant := Null; +end; + + +initialization + RegisterDataTableRules(RID_TiposDocumento, TTiposDocumentoDataTableRules); + +end. diff --git a/Source/Modulos/TiposDocumento/Model/schTiposDocumentoServer_Intf.pas b/Source/Modulos/TiposDocumento/Model/schTiposDocumentoServer_Intf.pas new file mode 100644 index 0000000..9ef6fba --- /dev/null +++ b/Source/Modulos/TiposDocumento/Model/schTiposDocumentoServer_Intf.pas @@ -0,0 +1,143 @@ +unit schTiposDocumentoServer_Intf; + +interface + +uses + Classes, DB, SysUtils, uROClasses, uDADataTable, uDABusinessProcessor, FmtBCD, uROXMLIntf, schTiposDocumentoClient_Intf; + +const + { Delta rules ids + Feel free to change them to something more human readable + but make sure they are unique in the context of your application } + RID_TiposDocumentoDelta = '{2BEC1ADF-406D-406A-8FEC-09FF6995EC1D}'; + +type + { ITiposDocumentoDelta } + ITiposDocumentoDelta = interface(ITiposDocumento) + ['{2BEC1ADF-406D-406A-8FEC-09FF6995EC1D}'] + { Property getters and setters } + function GetOldIDValue : Integer; + function GetOldDESCRIPCIONValue : String; + + { Properties } + property OldID : Integer read GetOldIDValue; + property OldDESCRIPCION : String read GetOldDESCRIPCIONValue; + end; + + { TTiposDocumentoBusinessProcessorRules } + TTiposDocumentoBusinessProcessorRules = class(TDABusinessProcessorRules, ITiposDocumento, ITiposDocumentoDelta) + private + protected + { Property getters and setters } + function GetIDValue: Integer; virtual; + function GetIDIsNull: Boolean; virtual; + function GetOldIDValue: Integer; virtual; + function GetOldIDIsNull: Boolean; virtual; + procedure SetIDValue(const aValue: Integer); virtual; + procedure SetIDIsNull(const aValue: Boolean); virtual; + function GetDESCRIPCIONValue: String; virtual; + function GetDESCRIPCIONIsNull: Boolean; virtual; + function GetOldDESCRIPCIONValue: String; virtual; + function GetOldDESCRIPCIONIsNull: Boolean; virtual; + procedure SetDESCRIPCIONValue(const aValue: String); virtual; + procedure SetDESCRIPCIONIsNull(const aValue: Boolean); virtual; + + { Properties } + property ID : Integer read GetIDValue write SetIDValue; + property IDIsNull : Boolean read GetIDIsNull write SetIDIsNull; + property OldID : Integer read GetOldIDValue; + property OldIDIsNull : Boolean read GetOldIDIsNull; + property DESCRIPCION : String read GetDESCRIPCIONValue write SetDESCRIPCIONValue; + property DESCRIPCIONIsNull : Boolean read GetDESCRIPCIONIsNull write SetDESCRIPCIONIsNull; + property OldDESCRIPCION : String read GetOldDESCRIPCIONValue; + property OldDESCRIPCIONIsNull : Boolean read GetOldDESCRIPCIONIsNull; + + public + constructor Create(aBusinessProcessor: TDABusinessProcessor); override; + destructor Destroy; override; + + end; + +implementation + +uses + Variants, uROBinaryHelpers, uDAInterfaces; + +{ TTiposDocumentoBusinessProcessorRules } +constructor TTiposDocumentoBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor); +begin + inherited; +end; + +destructor TTiposDocumentoBusinessProcessorRules.Destroy; +begin + inherited; +end; + +function TTiposDocumentoBusinessProcessorRules.GetIDValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_TiposDocumentoID]; +end; + +function TTiposDocumentoBusinessProcessorRules.GetIDIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_TiposDocumentoID]); +end; + +function TTiposDocumentoBusinessProcessorRules.GetOldIDValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_TiposDocumentoID]; +end; + +function TTiposDocumentoBusinessProcessorRules.GetOldIDIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_TiposDocumentoID]); +end; + +procedure TTiposDocumentoBusinessProcessorRules.SetIDValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_TiposDocumentoID] := aValue; +end; + +procedure TTiposDocumentoBusinessProcessorRules.SetIDIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_TiposDocumentoID] := Null; +end; + +function TTiposDocumentoBusinessProcessorRules.GetDESCRIPCIONValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_TiposDocumentoDESCRIPCION]; +end; + +function TTiposDocumentoBusinessProcessorRules.GetDESCRIPCIONIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_TiposDocumentoDESCRIPCION]); +end; + +function TTiposDocumentoBusinessProcessorRules.GetOldDESCRIPCIONValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_TiposDocumentoDESCRIPCION]; +end; + +function TTiposDocumentoBusinessProcessorRules.GetOldDESCRIPCIONIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_TiposDocumentoDESCRIPCION]); +end; + +procedure TTiposDocumentoBusinessProcessorRules.SetDESCRIPCIONValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_TiposDocumentoDESCRIPCION] := aValue; +end; + +procedure TTiposDocumentoBusinessProcessorRules.SetDESCRIPCIONIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_TiposDocumentoDESCRIPCION] := Null; +end; + + +initialization + RegisterBusinessProcessorRules(RID_TiposDocumentoDelta, TTiposDocumentoBusinessProcessorRules); + +end. diff --git a/Source/Modulos/TiposDocumento/Model/uBizTiposDocumento.pas b/Source/Modulos/TiposDocumento/Model/uBizTiposDocumento.pas new file mode 100644 index 0000000..82c842e --- /dev/null +++ b/Source/Modulos/TiposDocumento/Model/uBizTiposDocumento.pas @@ -0,0 +1,103 @@ +{ +=============================================================================== + Copyright (©) 2007. Rodax Software. +=============================================================================== + Los contenidos de este fichero son propiedad de Rodax Software titular del + copyright. Este fichero sólo podrá ser copiado, distribuido y utilizado, + en su totalidad o en parte, con el permiso escrito de Rodax Software, o de + acuerdo con los términos y condiciones establecidas en el acuerdo/contrato + bajo el que se suministra. + ----------------------------------------------------------------------------- + Web: www.rodax-software.com +=============================================================================== + Fecha primera versión: + Versión actual: 1.0.0 + Fecha versión actual: +=============================================================================== + Modificaciones: + + Fecha Comentarios + --------------------------------------------------------------------------- +=============================================================================== +} + +unit uBizTiposDocumento; + +interface + +uses + uDAInterfaces, uDADataTable, uDBSelectionListUtils, schTiposDocumentoClient_Intf; + +const + BIZ_CLIENT_TIPOS_DOCUMENTO = 'Client.TiposDocumento'; + +type + IBizTipoDocumento = interface(ITiposDocumento) + ['{4F74FAFE-D9A3-40FB-A13B-77D8ED3F2AE6}'] + function EsNuevo : Boolean; + end; + + TBizTipoDocumento = class(TTiposDocumentoDataTableRules, IBizTipoDocumento, ISeleccionable) + protected + FSeleccionableInterface : ISeleccionable; + procedure OnNewRecord(Sender: TDADataTable); override; + procedure AfterOpen(Sender: TDADataTable); override; + public + procedure IniciarValoresTipoDocumentoNuevo; + function EsNuevo : Boolean; + constructor Create(aDataTable: TDADataTable); override; + destructor Destroy; override; + + property SeleccionableInterface : ISeleccionable read FSeleccionableInterface write FSeleccionableInterface + implements ISeleccionable; + end; + +implementation + +{ TBizTipoDocumento } + +uses + SysUtils, uDataTableUtils; + +procedure TBizTipoDocumento.AfterOpen(Sender: TDADataTable); +begin + inherited; + DataTable.Sort([fld_TiposDocumentoDESCRIPCION], [sdAscending]); +end; + +constructor TBizTipoDocumento.Create(aDataTable: TDADataTable); +begin + inherited; + FSeleccionableInterface := TSeleccionable.Create(aDataTable); +end; + +destructor TBizTipoDocumento.Destroy; +begin + FSeleccionableInterface := NIL; + inherited; +end; + +function TBizTipoDocumento.EsNuevo: Boolean; +begin + Result := (ID < 0); +end; + +procedure TBizTipoDocumento.IniciarValoresTipoDocumentoNuevo; +begin + // +end; + +procedure TBizTipoDocumento.OnNewRecord(Sender: TDADataTable); +begin + inherited; + ID := GetRecNo; // -1, -2, -3... + IniciarValoresTipoDocumentoNuevo; +end; + +initialization + RegisterDataTableRules(BIZ_CLIENT_TIPOS_DOCUMENTO, TBizTipoDocumento); + +finalization + +end. + diff --git a/Source/Modulos/TiposDocumento/Plugin/TiposDocumento_plugin.dpk b/Source/Modulos/TiposDocumento/Plugin/TiposDocumento_plugin.dpk new file mode 100644 index 0000000..c3297f6 Binary files /dev/null and b/Source/Modulos/TiposDocumento/Plugin/TiposDocumento_plugin.dpk differ diff --git a/Source/Modulos/TiposDocumento/Plugin/TiposDocumento_plugin.dproj b/Source/Modulos/TiposDocumento/Plugin/TiposDocumento_plugin.dproj new file mode 100644 index 0000000..5a293a0 --- /dev/null +++ b/Source/Modulos/TiposDocumento/Plugin/TiposDocumento_plugin.dproj @@ -0,0 +1,546 @@ + + + + {139324a2-0c57-446d-aebd-edd9578e22fd} + TiposDocumento_plugin.dpk + Debug + AnyCPU + DCC32 + ..\..\..\..\Output\Debug\Cliente\TiposDocumento_plugin.bpl + + + 7.0 + False + False + 0 + .\ + .\ + .\ + ..\..\..\..\Output\Release\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + RELEASE + + + 7.0 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + + + Delphi.Personality + Package + +FalseTrueFalseFalseFalseFalseTrueFalse1000FalseFalseFalseFalseFalse308212521.0.0.01.0.0.0TiposDocumento_plugin.dpk + + + + + MainSource + + + + + + + + + + + +
PluginTiposDocumento
+
+
+
+ diff --git a/Source/Modulos/TiposDocumento/Plugin/uPluginTiposDocumento.dfm b/Source/Modulos/TiposDocumento/Plugin/uPluginTiposDocumento.dfm new file mode 100644 index 0000000..bf7d240 --- /dev/null +++ b/Source/Modulos/TiposDocumento/Plugin/uPluginTiposDocumento.dfm @@ -0,0 +1,108 @@ +object PluginTiposDocumento: TPluginTiposDocumento + OldCreateOrder = True + DefaultAction = actTiposDocumento + Description = 'Tipos de IVA' + ModuleMenu = MainMenu + ModuleName = 'Tipos de documento' + SmallImages = SmallImages + LargeImages = LargeImages + Author = 'Rodax Software S.L.' + Version = '1.0.0' + Height = 234 + Width = 459 + object LargeImages: TPngImageList + Height = 24 + Width = 24 + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000011E4944415478DA + 6364A010ACCA60F80FA2C366303062936724CD384CC3FD2AD63030B3F132AC6F + 72C76A09D916800C5FF7218261715F22C3D7EBD31998B86418762C9C82610959 + 1620BB7C612DD0E529397039744B48B600D97098CBD101B2252459802D58D0C1 + BF6F4F18AE5DDEC0F0E40624E289B600D9E597B7B933A868E7E0349C8307C2BF + 7386481F10132C30C3279D8860287359C1F0E30B03D817042D202558602EEFDA + 13C11024B0827010E14B2DB80C87B99C602453122C049329A5C182AC8E119BE1 + A4A6166C2EC76A01B58205AB05D40C160C0BA8915A705A408B60C1EA03B7D000 + AA050BCE38F088CFC16B38292EC7B000DD124A8205A705C8C14549B0E0B50066 + 898A09F9C142D0029825321A94198ED702982594180E0200B0F2324A4753EBA6 + 0000000049454E44AE426082} + Name = 'PngImage0' + Background = clWindow + end> + Left = 232 + Top = 16 + Bitmap = {} + end + object ModuleActionList: TActionList + Images = SmallImages + Left = 40 + Top = 72 + object actTiposDocumento: TAction + Category = 'Datos' + Caption = 'Tipos de documento' + ImageIndex = 1 + OnExecute = actTiposDocumentoExecute + end + end + object MainMenu: TMainMenu + Images = LargeImages + Left = 40 + Top = 16 + object Ventas1: TMenuItem + Caption = 'Datos' + object TiposDocumento: TMenuItem + Tag = 313 + Action = actTiposDocumento + end + end + end + object SmallImages: TPngImageList + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000000C14944415478DA + 63642001ACCA60F81F36838111598C9158CD111111FF17F72532AC6F72674036 + 842803403607D6ED645858EBCE101215C0B06BF506B821040D80D9FCF7D76786 + 1F7797303071C930FCFBF6046E082331365FDEE6CEA0A41800D7EC51FD82615A + CA09862D5BF0B80097CDF7EE6F00CB8334D76DC0E102743F63B319A4196B1810 + 6B33D65820C6CFC89A510C20D566140348F133860130CDA4DA8CE102B750D26C + C608039821C4DA8C3316544C88D78C351D340530FC275633080000DE09BBE2B0 + 1D07420000000049454E44AE426082} + Name = 'PngImage0' + Background = clWindow + end> + PngOptions = [pngBlendOnDisabled, pngGrayscaleOnDisabled] + Left = 308 + Top = 16 + Bitmap = {} + end + object ExtraImages: TPngImageList + Height = 28 + Width = 28 + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D494844520000001C0000001C0806000000720DDF + 940000000970485973000017120000171201679FD252000001514944415478DA + 6364A0225895C1F03F6C0603233E358CC41A468C6581952B19D6B78733E0B394 + 2A16822C5BF7218261715F2298BFBEC91DA7A5145B08F31903AB00C3E56DEE0C + BA5E3B19BE5E9FCEB06BF506AC96526421B2653000B28C894B06CCDEB1700A86 + A5645B881E8CE896C100BAA5645988ECB385B5EE0CF1CD3BB15A0602574E4E61 + 787283016E29C916120A4674CB387820EC3B672096926421B1C1886CD98F2F0C + 701AE453A22DC4951A09F90C04B2E6583014199C20DE87E4062308C07C46741C + 92138C5D7B2218CA5C56605846D042525323AE604456C7488C65940623410BA9 + 911A892E4BA9951A71851C232ECBA8198C582DA4766AC46B212D52234E0BE911 + 8CD87D58B79328CB884D8D44C5A15B68004D8211AB85304B3DE273A81E8C382D + 44B79492D448B485304B653418A8168C042D8459AA62429D6024CA42649F52CB + 328216C22CA59665200000B1F5433DEC7F85AD0000000049454E44AE426082} + Name = 'PngImage0' + Background = clWindow + end> + Left = 232 + Top = 80 + Bitmap = {} + end +end diff --git a/Source/Modulos/TiposDocumento/Plugin/uPluginTiposDocumento.pas b/Source/Modulos/TiposDocumento/Plugin/uPluginTiposDocumento.pas new file mode 100644 index 0000000..db53590 --- /dev/null +++ b/Source/Modulos/TiposDocumento/Plugin/uPluginTiposDocumento.pas @@ -0,0 +1,73 @@ +unit uPluginTiposDocumento; + +interface + +uses + uModuleController, uInterfaces, uHostManager, Menus, Classes, ActnList, + ImgList, Controls, PngImageList; + +type + IMCTiposDocumento = interface(IInterface) + ['{14A4B6F3-2D05-44BE-BF61-3CD770905FB7}'] + end; + + TPluginTiposDocumento = class(TModuleController, IMCTiposDocumento) + actTiposDocumento: TAction; + ExtraImages: TPngImageList; + LargeImages: TPngImageList; + MainMenu: TMainMenu; + ModuleActionList: TActionList; + SmallImages: TPngImageList; + Ventas1: TMenuItem; + TiposDocumento: TMenuItem; + procedure actTiposDocumentoExecute(Sender: TObject); + public + constructor Create(AOwner: TComponent); override; + destructor Destroy; override; + end; + +implementation + +{$R *.dfm} + +uses + Forms, Dialogs, SysUtils, + uTiposDocumentoController, uBizTiposDocumento, uTiposDocumentoViewRegister; + +function GetModule : TModuleController; +begin + Result := TPluginTiposDocumento.Create(NIL); +end; + +exports + GetModule name GET_MODULE_FUNC; + +procedure TPluginTiposDocumento.actTiposDocumentoExecute(Sender: TObject); +var + ATiposDocumentoController : ITiposDocumentoController; + ATiposDocumento : IBizTipoDocumento; +begin + ATiposDocumentoController := TTiposDocumentoController.Create; + ATiposDocumento := (ATiposDocumentoController.BuscarTodos as IBizTipoDocumento); + ATiposDocumentoController.VerTodos(ATiposDocumento); +end; + +constructor TPluginTiposDocumento.Create(AOwner: TComponent); +begin + inherited; + uTiposDocumentoViewRegister.RegisterViews; +end; + +destructor TPluginTiposDocumento.Destroy; +begin + uTiposDocumentoViewRegister.UnregisterViews; + inherited; +end; + +initialization + RegisterModuleClass(TPluginTiposDocumento); + +finalization + UnRegisterModuleClass(TPluginTiposDocumento); + +end. diff --git a/Source/Servicios/FactuGES.RODL b/Source/Servicios/FactuGES.RODL index 16b2953..298d695 100644 --- a/Source/Servicios/FactuGES.RODL +++ b/Source/Servicios/FactuGES.RODL @@ -1232,6 +1232,15 @@ + + + + + + + + + diff --git a/Source/Servicios/FactuGES_Intf.pas b/Source/Servicios/FactuGES_Intf.pas index 89e14cb..0a5e4ec 100644 --- a/Source/Servicios/FactuGES_Intf.pas +++ b/Source/Servicios/FactuGES_Intf.pas @@ -61,6 +61,7 @@ const IsrvInfVentasArticulo_IID : TGUID = '{669DBB17-90F9-4346-AD92-B2A85D2A6200}'; IsrvInfMargenArticulo_IID : TGUID = '{E5A8F350-B355-476A-9674-412BA01BDA2B}'; IsrvFacturasProforma_IID : TGUID = '{FC9178C7-1213-4735-9FC1-C20F15C7B424}'; + IsrvTiposDocumento_IID : TGUID = '{7636B6A8-368C-4345-967F-004DB7C56720}'; { Event ID's } @@ -104,6 +105,7 @@ type IsrvInfVentasArticulo = interface; IsrvInfMargenArticulo = interface; IsrvFacturasProforma = interface; + IsrvTiposDocumento = interface; TRdxEmpresasArray = class; TIntegerArray = class; @@ -1066,6 +1068,23 @@ type function DarListaAnos: StringArray; end; + { IsrvTiposDocumento } + IsrvTiposDocumento = interface(IDataAbstractService) + ['{7636B6A8-368C-4345-967F-004DB7C56720}'] + end; + + { CosrvTiposDocumento } + CosrvTiposDocumento = class + class function Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvTiposDocumento; + end; + + { TsrvTiposDocumento_Proxy } + TsrvTiposDocumento_Proxy = class(TDataAbstractService_Proxy, IsrvTiposDocumento) + protected + function __GetInterfaceName:string; override; + + end; + implementation uses @@ -3456,6 +3475,18 @@ begin end end; +{ CosrvTiposDocumento } + +class function CosrvTiposDocumento.Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvTiposDocumento; +begin + result := TsrvTiposDocumento_Proxy.Create(aMessage, aTransportChannel); +end; + +function TsrvTiposDocumento_Proxy.__GetInterfaceName:string; +begin + result := 'srvTiposDocumento'; +end; + initialization RegisterROClass(TRdxLoginInfo); RegisterROClass(TRdxEmpresasArray); @@ -3498,6 +3529,7 @@ initialization RegisterProxyClass(IsrvInfVentasArticulo_IID, TsrvInfVentasArticulo_Proxy); RegisterProxyClass(IsrvInfMargenArticulo_IID, TsrvInfMargenArticulo_Proxy); RegisterProxyClass(IsrvFacturasProforma_IID, TsrvFacturasProforma_Proxy); + RegisterProxyClass(IsrvTiposDocumento_IID, TsrvTiposDocumento_Proxy); finalization @@ -3542,5 +3574,6 @@ finalization UnregisterProxyClass(IsrvInfVentasArticulo_IID); UnregisterProxyClass(IsrvInfMargenArticulo_IID); UnregisterProxyClass(IsrvFacturasProforma_IID); + UnregisterProxyClass(IsrvTiposDocumento_IID); end. diff --git a/Source/Servicios/FactuGES_Invk.pas b/Source/Servicios/FactuGES_Invk.pas index 6e73b86..ac1f1bf 100644 --- a/Source/Servicios/FactuGES_Invk.pas +++ b/Source/Servicios/FactuGES_Invk.pas @@ -402,6 +402,14 @@ type procedure Invoke_DarListaAnos(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); end; + TsrvTiposDocumento_Invoker = class(TDataAbstractService_Invoker) + private + protected + public + constructor Create; override; + published + end; + implementation uses @@ -3171,5 +3179,13 @@ begin end; end; +{ TsrvTiposDocumento_Invoker } + +constructor TsrvTiposDocumento_Invoker.Create; +begin + inherited Create; + FAbstract := False; +end; + initialization end. diff --git a/Source/Servicios/RODLFile.res b/Source/Servicios/RODLFile.res index fddd084..a38a018 100644 Binary files a/Source/Servicios/RODLFile.res and b/Source/Servicios/RODLFile.res differ diff --git a/Source/Servidor/FactuGES_Server.RES b/Source/Servidor/FactuGES_Server.RES index aca08ab..8f367b3 100644 Binary files a/Source/Servidor/FactuGES_Server.RES and b/Source/Servidor/FactuGES_Server.RES differ diff --git a/Source/Servidor/FactuGES_Server.dpr b/Source/Servidor/FactuGES_Server.dpr index b30bb3f..cb9f857 100644 --- a/Source/Servidor/FactuGES_Server.dpr +++ b/Source/Servidor/FactuGES_Server.dpr @@ -165,10 +165,13 @@ uses schFacturasProformaServer_Intf in '..\Modulos\Facturas proforma\Model\schFacturasProformaServer_Intf.pas', schContactosClient_Intf in '..\Modulos\Contactos\Model\schContactosClient_Intf.pas', schContactosServer_Intf in '..\Modulos\Contactos\Model\schContactosServer_Intf.pas', - schPresupuestosClienteClient_Intf in '..\Modulos\Presupuestos de cliente\Model\schPresupuestosClienteClient_Intf.pas', - schPresupuestosClienteServer_Intf in '..\Modulos\Presupuestos de cliente\Model\schPresupuestosClienteServer_Intf.pas', schPedidosClienteClient_Intf in '..\Modulos\Pedidos de cliente\Model\schPedidosClienteClient_Intf.pas', - schPedidosClienteServer_Intf in '..\Modulos\Pedidos de cliente\Model\schPedidosClienteServer_Intf.pas'; + schPedidosClienteServer_Intf in '..\Modulos\Pedidos de cliente\Model\schPedidosClienteServer_Intf.pas', + srvTiposDocumento_Impl in '..\Modulos\TiposDocumento\Servidor\srvTiposDocumento_Impl.pas' {srvTiposDocumento: TDataAbstractService}, + schTiposDocumentoClient_Intf in '..\Modulos\TiposDocumento\Model\schTiposDocumentoClient_Intf.pas', + schTiposDocumentoServer_Intf in '..\Modulos\TiposDocumento\Model\schTiposDocumentoServer_Intf.pas', + schPresupuestosClienteClient_Intf in '..\Modulos\Presupuestos de cliente\Model\schPresupuestosClienteClient_Intf.pas', + schPresupuestosClienteServer_Intf in '..\Modulos\Presupuestos de cliente\Model\schPresupuestosClienteServer_Intf.pas'; {$R *.res} {$R ..\Servicios\RODLFile.res} diff --git a/Source/Servidor/FactuGES_Server.dproj b/Source/Servidor/FactuGES_Server.dproj index cc1f17a..b2acc9d 100644 --- a/Source/Servidor/FactuGES_Server.dproj +++ b/Source/Servidor/FactuGES_Server.dproj @@ -35,7 +35,7 @@ Delphi.Personality - FalseTrueFalse/standaloneTrueFalse4360FalseFalseFalseFalseFalse308212524.3.6.04.3.6.0viernes, 17 de enero de 2014 16:53 + FalseTrueFalse/standaloneTrueFalse4370FalseFalseFalseFalseFalse308212524.3.7.04.3.7.0viernes, 07 de febrero de 2014 13:34 ExpressPrinting System by Developer Express Inc. FactuGES_Server.dprFalse @@ -356,6 +356,12 @@
srvTiposIVA
TDataAbstractService + + + +
srvTiposDocumento
+ TDataAbstractService +
diff --git a/Source/Servidor/FactuGES_Server.rc b/Source/Servidor/FactuGES_Server.rc index e6bad20..fa556c7 100644 --- a/Source/Servidor/FactuGES_Server.rc +++ b/Source/Servidor/FactuGES_Server.rc @@ -1,7 +1,7 @@ MAINICON ICON "C:\Codigo\Resources\Iconos\Servidor.ico" 1 VERSIONINFO -FILEVERSION 4,3,6,0 -PRODUCTVERSION 4,3,6,0 +FILEVERSION 4,3,7,0 +PRODUCTVERSION 4,3,7,0 FILEFLAGSMASK 0x3FL FILEFLAGS 0x00L FILEOS 0x40004L @@ -12,9 +12,9 @@ BEGIN BEGIN BLOCK "0C0A04E4" BEGIN - VALUE "FileVersion", "4.3.6.0\0" - VALUE "ProductVersion", "4.3.6.0\0" - VALUE "CompileDate", "jueves, 06 de febrero de 2014 18:52\0" + VALUE "FileVersion", "4.3.7.0\0" + VALUE "ProductVersion", "4.3.7.0\0" + VALUE "CompileDate", "viernes, 07 de febrero de 2014 16:32\0" END END BLOCK "VarFileInfo"