diff --git a/Build/Build.fbl6 b/Build/Build.fbl6 index 91afa62..78e3587 100644 Binary files a/Build/Build.fbl6 and b/Build/Build.fbl6 differ diff --git a/Build/Build.fbpInf b/Build/Build.fbpInf index 61e16c3..f35545f 100644 --- a/Build/Build.fbpInf +++ b/Build/Build.fbpInf @@ -14,8 +14,8 @@ - 00:02:48 - 09/07/2012 10:34:04 - True + 00:00:41 + 25/04/2013 12:54:13 + False diff --git a/Build/Build.fbz6 b/Build/Build.fbz6 index 7c2817e..8c66e62 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 b1053ca..23f6085 100644 --- a/Database/scripts/factuges.sql +++ b/Database/scripts/factuges.sql @@ -202,6 +202,9 @@ SET GENERATOR GEN_FACTURA_PROV_DETALLES_ID TO 1; CREATE GENERATOR GEN_FAMILIAS_ID; SET GENERATOR GEN_FAMILIAS_ID TO 1; +CREATE GENERATOR GEN_SUBFAMILIAS_ID; +SET GENERATOR GEN_SUBFAMILIAS_ID TO 1; + CREATE GENERATOR GEN_FORMAS_PAGO_ID; SET GENERATOR GEN_FORMAS_PAGO_ID TO 1; @@ -603,6 +606,7 @@ CREATE TABLE CLIENTES_DATOS ( ID_FORMA_PAGO TIPO_ID, TIENDA_WEB TIPO_BOOLEANO, DESCUENTO TIPO_PORCENTAJE, + DESCUENTO_LINEA TIPO_PORCENTAJE, CODIGO_ASIGNADO VARCHAR(255), IGNORAR_CONTABILIDAD TIPO_ID, TIENE_SUBCUENTA TIPO_ID, @@ -835,7 +839,8 @@ CREATE TABLE EMPRESAS ( REGISTRO_MERCANTIL VARCHAR(255), ID_TIPO_IVA SMALLINT, ID_FORMA_PAGO SMALLINT, - VALIDEZ_PRESUPUESTOS SMALLINT + VALIDEZ_PRESUPUESTOS SMALLINT, + PRECIO_PUNTO TIPO_IMPORTE ); CREATE TABLE EMPRESAS_CONTACTOS ( @@ -1004,6 +1009,11 @@ CREATE TABLE FAMILIAS ( DESCRIPCION TIPO_FAMILIA ); +CREATE TABLE SUBFAMILIAS ( + ID TIPO_ID NOT NULL, + DESCRIPCION TIPO_FAMILIA +); + CREATE TABLE FORMAS_PAGO ( ID TIPO_ID NOT NULL, REFERENCIA VARCHAR(255), @@ -1923,7 +1933,6 @@ FROM CONTACTOS -/* View: V_CLIENTES */ CREATE VIEW V_CLIENTES( ID, ID_CATEGORIA, @@ -1963,9 +1972,11 @@ CREATE VIEW V_CLIENTES( IGNORAR_CONTABILIDAD, TIENE_SUBCUENTA, PROCEDENCIA_CLIENTE, - VENCIMIENTO_FACTURAS_1, - VENCIMIENTO_FACTURAS_2, - VENCIMIENTO_FACTURAS_3) + VENCIMIENTO_FACTURAS_1, + VENCIMIENTO_FACTURAS_2, + VENCIMIENTO_FACTURAS_3, + DESCUENTO, + DESCUENTO_LINEA) AS SELECT V_CONTACTOS.ID, @@ -2008,7 +2019,9 @@ SELECT CLIENTES_DATOS.PROCEDENCIA_CLIENTE, CLIENTES_DATOS.VENCIMIENTO_FACTURAS_1, CLIENTES_DATOS.VENCIMIENTO_FACTURAS_2, - CLIENTES_DATOS.VENCIMIENTO_FACTURAS_3 + CLIENTES_DATOS.VENCIMIENTO_FACTURAS_3, + CLIENTES_DATOS.DESCUENTO, + CLIENTES_DATOS.DESCUENTO_LINEA FROM V_CONTACTOS LEFT OUTER JOIN CLIENTES_DATOS ON (V_CONTACTOS.ID = CLIENTES_DATOS.ID_CLIENTE) @@ -4298,6 +4311,7 @@ ALTER TABLE FACTURAS_PROVEEDOR ADD CONSTRAINT PK_FACTURAS_PROVEEDOR PRIMARY KEY ALTER TABLE FACTURAS_PROVEEDOR_DETALLES ADD CONSTRAINT PK_FACTURAS_PROVEEDOR_DETALLES PRIMARY KEY (ID); ALTER TABLE FACTURAS_PROVEEDOR_CONTRATOS ADD CONSTRAINT PK_FACTURAS_PROVEEDOR_CONTRATOS PRIMARY KEY (ID); ALTER TABLE FAMILIAS ADD CONSTRAINT PK_FAMILIAS PRIMARY KEY (ID); +ALTER TABLE SUBFAMILIAS ADD CONSTRAINT PK_SUBFAMILIAS PRIMARY KEY (ID); ALTER TABLE FORMAS_PAGO ADD PRIMARY KEY (ID); ALTER TABLE FORMAS_PAGO_PLAZOS ADD PRIMARY KEY (ID); ALTER TABLE INFORMES ADD CONSTRAINT PK_INFORMES PRIMARY KEY (ID); @@ -5612,10 +5626,14 @@ begin /* F_RTFTOTEXT(F_RTFTOTEXT(pre.CONCEPTO)) as CONCEPTO,*/ pre.CONCEPTO, pre.cantidad, + pre.importe_unidad, +/* case - when (pre.descuento <> 0) then (pre.importe_total / pre.cantidad) - else pre.importe_unidad + when (pre.descuento <> 0) then (pre.importe_total / pre.cantidad) + else + pre.importe_unidad end as importe_unidad, +*/ pre.descuento, pre.importe_porte, pre.importe_total, coalesce(pre.visible, 1) from presupuestos_cliente_detalles pre diff --git a/Source/ApplicationBase/Empresas/Data/uDataModuleEmpresas.dfm b/Source/ApplicationBase/Empresas/Data/uDataModuleEmpresas.dfm index 9486205..c367e01 100644 --- a/Source/ApplicationBase/Empresas/Data/uDataModuleEmpresas.dfm +++ b/Source/ApplicationBase/Empresas/Data/uDataModuleEmpresas.dfm @@ -191,6 +191,10 @@ inherited DataModuleEmpresas: TDataModuleEmpresas item Name = 'VALIDEZ_PRESUPUESTOS' DataType = datSmallInt + end + item + Name = 'PRECIO_PUNTO' + DataType = datCurrency end> Params = <> StreamingOptions = [soDisableEventsWhileStreaming] diff --git a/Source/ApplicationBase/Empresas/Model/schEmpresasClient_Intf.pas b/Source/ApplicationBase/Empresas/Model/schEmpresasClient_Intf.pas index 1e43c6a..9a5c7d5 100644 --- a/Source/ApplicationBase/Empresas/Model/schEmpresasClient_Intf.pas +++ b/Source/ApplicationBase/Empresas/Model/schEmpresasClient_Intf.pas @@ -9,12 +9,14 @@ 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_EmpresasTiendas = '{19E1273C-BC29-4894-B54A-8F8CA38BD309}'; - RID_Empresas = '{E7DDF73A-5A4C-4154-984E-B7DAE118DEE5}'; - RID_EmpresasDatosBanco = '{8604E5E5-0DFF-4772-BD55-BD07450DE7CB}'; + RID_EmpresasTiendas = '{D5FFD28A-7CA4-490D-B6A3-DE2C40E2167B}'; + RID_DarNombre = '{6DCC4A40-1006-4B04-8072-2D0C37385212}'; + RID_Empresas = '{F2A4D3C8-3E77-4529-96B5-4C790FB3CB5D}'; + RID_EmpresasDatosBanco = '{8C6BC83D-DC1D-44B7-BC42-BC15143CFEA6}'; { Data table names } nme_EmpresasTiendas = 'EmpresasTiendas'; + nme_DarNombre = 'DarNombre'; nme_Empresas = 'Empresas'; nme_EmpresasDatosBanco = 'EmpresasDatosBanco'; @@ -54,6 +56,12 @@ const idx_EmpresasTiendasFECHA_MODIFICACION = 14; idx_EmpresasTiendasCODIGO_CONTABLE = 15; + { DarNombre fields } + fld_DarNombreNOMBRE = 'NOMBRE'; + + { DarNombre field indexes } + idx_DarNombreNOMBRE = 0; + { Empresas fields } fld_EmpresasID = 'ID'; fld_EmpresasNIF_CIF = 'NIF_CIF'; @@ -80,6 +88,7 @@ const fld_EmpresasID_TIPO_IVA = 'ID_TIPO_IVA'; fld_EmpresasID_FORMA_PAGO = 'ID_FORMA_PAGO'; fld_EmpresasVALIDEZ_PRESUPUESTOS = 'VALIDEZ_PRESUPUESTOS'; + fld_EmpresasPRECIO_PUNTO = 'PRECIO_PUNTO'; { Empresas field indexes } idx_EmpresasID = 0; @@ -107,6 +116,7 @@ const idx_EmpresasID_TIPO_IVA = 22; idx_EmpresasID_FORMA_PAGO = 23; idx_EmpresasVALIDEZ_PRESUPUESTOS = 24; + idx_EmpresasPRECIO_PUNTO = 25; { EmpresasDatosBanco fields } fld_EmpresasDatosBancoID = 'ID'; @@ -133,7 +143,7 @@ const type { IEmpresasTiendas } IEmpresasTiendas = interface(IDAStronglyTypedDataTable) - ['{E56F825C-223C-4047-A7A3-F0859ACBF9BE}'] + ['{B896AAAF-4CCE-4278-AA7D-C92A9E57B776}'] { Property getters and setters } function GetIDValue: Integer; procedure SetIDValue(const aValue: Integer); @@ -346,9 +356,44 @@ type end; + { IDarNombre } + IDarNombre = interface(IDAStronglyTypedDataTable) + ['{5A7546FF-201D-4737-B0BA-68C977A3EB5B}'] + { Property getters and setters } + function GetNOMBREValue: String; + procedure SetNOMBREValue(const aValue: String); + function GetNOMBREIsNull: Boolean; + procedure SetNOMBREIsNull(const aValue: Boolean); + + + { Properties } + property NOMBRE: String read GetNOMBREValue write SetNOMBREValue; + property NOMBREIsNull: Boolean read GetNOMBREIsNull write SetNOMBREIsNull; + end; + + { TDarNombreDataTableRules } + TDarNombreDataTableRules = class(TIntfObjectDADataTableRules, IDarNombre) + private + protected + { Property getters and setters } + function GetNOMBREValue: String; virtual; + procedure SetNOMBREValue(const aValue: String); virtual; + function GetNOMBREIsNull: Boolean; virtual; + procedure SetNOMBREIsNull(const aValue: Boolean); virtual; + + { Properties } + property NOMBRE: String read GetNOMBREValue write SetNOMBREValue; + property NOMBREIsNull: Boolean read GetNOMBREIsNull write SetNOMBREIsNull; + + public + constructor Create(aDataTable: TDADataTable); override; + destructor Destroy; override; + + end; + { IEmpresas } IEmpresas = interface(IDAStronglyTypedDataTable) - ['{EF0CA3C6-3E46-44C1-858B-02EB87E15A88}'] + ['{6C22C041-3C1D-4CDD-8E64-BB8E33B506FB}'] { Property getters and setters } function GetIDValue: Integer; procedure SetIDValue(const aValue: Integer); @@ -448,6 +493,10 @@ type procedure SetVALIDEZ_PRESUPUESTOSValue(const aValue: SmallInt); function GetVALIDEZ_PRESUPUESTOSIsNull: Boolean; procedure SetVALIDEZ_PRESUPUESTOSIsNull(const aValue: Boolean); + function GetPRECIO_PUNTOValue: Currency; + procedure SetPRECIO_PUNTOValue(const aValue: Currency); + function GetPRECIO_PUNTOIsNull: Boolean; + procedure SetPRECIO_PUNTOIsNull(const aValue: Boolean); { Properties } @@ -501,6 +550,8 @@ type property ID_FORMA_PAGOIsNull: Boolean read GetID_FORMA_PAGOIsNull write SetID_FORMA_PAGOIsNull; property VALIDEZ_PRESUPUESTOS: SmallInt read GetVALIDEZ_PRESUPUESTOSValue write SetVALIDEZ_PRESUPUESTOSValue; property VALIDEZ_PRESUPUESTOSIsNull: Boolean read GetVALIDEZ_PRESUPUESTOSIsNull write SetVALIDEZ_PRESUPUESTOSIsNull; + property PRECIO_PUNTO: Currency read GetPRECIO_PUNTOValue write SetPRECIO_PUNTOValue; + property PRECIO_PUNTOIsNull: Boolean read GetPRECIO_PUNTOIsNull write SetPRECIO_PUNTOIsNull; end; { TEmpresasDataTableRules } @@ -610,6 +661,10 @@ type procedure SetVALIDEZ_PRESUPUESTOSValue(const aValue: SmallInt); virtual; function GetVALIDEZ_PRESUPUESTOSIsNull: Boolean; virtual; procedure SetVALIDEZ_PRESUPUESTOSIsNull(const aValue: Boolean); virtual; + function GetPRECIO_PUNTOValue: Currency; virtual; + procedure SetPRECIO_PUNTOValue(const aValue: Currency); virtual; + function GetPRECIO_PUNTOIsNull: Boolean; virtual; + procedure SetPRECIO_PUNTOIsNull(const aValue: Boolean); virtual; { Properties } property ID: Integer read GetIDValue write SetIDValue; @@ -662,6 +717,8 @@ type property ID_FORMA_PAGOIsNull: Boolean read GetID_FORMA_PAGOIsNull write SetID_FORMA_PAGOIsNull; property VALIDEZ_PRESUPUESTOS: SmallInt read GetVALIDEZ_PRESUPUESTOSValue write SetVALIDEZ_PRESUPUESTOSValue; property VALIDEZ_PRESUPUESTOSIsNull: Boolean read GetVALIDEZ_PRESUPUESTOSIsNull write SetVALIDEZ_PRESUPUESTOSIsNull; + property PRECIO_PUNTO: Currency read GetPRECIO_PUNTOValue write SetPRECIO_PUNTOValue; + property PRECIO_PUNTOIsNull: Boolean read GetPRECIO_PUNTOIsNull write SetPRECIO_PUNTOIsNull; public constructor Create(aDataTable: TDADataTable); override; @@ -671,7 +728,7 @@ type { IEmpresasDatosBanco } IEmpresasDatosBanco = interface(IDAStronglyTypedDataTable) - ['{C6A2D675-8896-4B8A-A296-98A1C3DA6CB5}'] + ['{B4F1F25A-EFAA-47C4-A394-15DD4DA85BBA}'] { Property getters and setters } function GetIDValue: Integer; procedure SetIDValue(const aValue: Integer); @@ -1159,6 +1216,39 @@ begin end; +{ TDarNombreDataTableRules } +constructor TDarNombreDataTableRules.Create(aDataTable: TDADataTable); +begin + inherited; +end; + +destructor TDarNombreDataTableRules.Destroy; +begin + inherited; +end; + +function TDarNombreDataTableRules.GetNOMBREValue: String; +begin + result := DataTable.Fields[idx_DarNombreNOMBRE].AsString; +end; + +procedure TDarNombreDataTableRules.SetNOMBREValue(const aValue: String); +begin + DataTable.Fields[idx_DarNombreNOMBRE].AsString := aValue; +end; + +function TDarNombreDataTableRules.GetNOMBREIsNull: boolean; +begin + result := DataTable.Fields[idx_DarNombreNOMBRE].IsNull; +end; + +procedure TDarNombreDataTableRules.SetNOMBREIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_DarNombreNOMBRE].AsVariant := Null; +end; + + { TEmpresasDataTableRules } constructor TEmpresasDataTableRules.Create(aDataTable: TDADataTable); var @@ -1712,6 +1802,27 @@ begin DataTable.Fields[idx_EmpresasVALIDEZ_PRESUPUESTOS].AsVariant := Null; end; +function TEmpresasDataTableRules.GetPRECIO_PUNTOValue: Currency; +begin + result := DataTable.Fields[idx_EmpresasPRECIO_PUNTO].AsCurrency; +end; + +procedure TEmpresasDataTableRules.SetPRECIO_PUNTOValue(const aValue: Currency); +begin + DataTable.Fields[idx_EmpresasPRECIO_PUNTO].AsCurrency := aValue; +end; + +function TEmpresasDataTableRules.GetPRECIO_PUNTOIsNull: boolean; +begin + result := DataTable.Fields[idx_EmpresasPRECIO_PUNTO].IsNull; +end; + +procedure TEmpresasDataTableRules.SetPRECIO_PUNTOIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_EmpresasPRECIO_PUNTO].AsVariant := Null; +end; + { TEmpresasDatosBancoDataTableRules } constructor TEmpresasDatosBancoDataTableRules.Create(aDataTable: TDADataTable); @@ -1916,6 +2027,7 @@ end; initialization RegisterDataTableRules(RID_EmpresasTiendas, TEmpresasTiendasDataTableRules); + RegisterDataTableRules(RID_DarNombre, TDarNombreDataTableRules); RegisterDataTableRules(RID_Empresas, TEmpresasDataTableRules); RegisterDataTableRules(RID_EmpresasDatosBanco, TEmpresasDatosBancoDataTableRules); diff --git a/Source/ApplicationBase/Empresas/Model/schEmpresasServer_Intf.pas b/Source/ApplicationBase/Empresas/Model/schEmpresasServer_Intf.pas index a2e33be..f72c76d 100644 --- a/Source/ApplicationBase/Empresas/Model/schEmpresasServer_Intf.pas +++ b/Source/ApplicationBase/Empresas/Model/schEmpresasServer_Intf.pas @@ -9,14 +9,15 @@ 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_EmpresasTiendasDelta = '{61580243-F5C0-4AB3-A1DB-1607648BA5C4}'; - RID_EmpresasDelta = '{0C6E077A-F00A-47EE-8448-14AB9AAD08BC}'; - RID_EmpresasDatosBancoDelta = '{F8D15203-2664-4352-BAB6-4DD3CEC03078}'; + RID_EmpresasTiendasDelta = '{352C1F79-835B-4172-9AD9-E5FCE5F76DF4}'; + RID_DarNombreDelta = '{E6E3A4EE-8129-4F75-966D-9FE66A53361C}'; + RID_EmpresasDelta = '{8185F345-A4F5-419B-BFB4-D910428D6609}'; + RID_EmpresasDatosBancoDelta = '{F938338C-0D89-4F44-A4C9-883C1BCB1E11}'; type { IEmpresasTiendasDelta } IEmpresasTiendasDelta = interface(IEmpresasTiendas) - ['{61580243-F5C0-4AB3-A1DB-1607648BA5C4}'] + ['{352C1F79-835B-4172-9AD9-E5FCE5F76DF4}'] { Property getters and setters } function GetOldIDValue : Integer; function GetOldID_EMPRESAValue : Integer; @@ -229,9 +230,43 @@ type end; + { IDarNombreDelta } + IDarNombreDelta = interface(IDarNombre) + ['{E6E3A4EE-8129-4F75-966D-9FE66A53361C}'] + { Property getters and setters } + function GetOldNOMBREValue : String; + + { Properties } + property OldNOMBRE : String read GetOldNOMBREValue; + end; + + { TDarNombreBusinessProcessorRules } + TDarNombreBusinessProcessorRules = class(TDABusinessProcessorRules, IDarNombre, IDarNombreDelta) + private + protected + { Property getters and setters } + function GetNOMBREValue: String; virtual; + function GetNOMBREIsNull: Boolean; virtual; + function GetOldNOMBREValue: String; virtual; + function GetOldNOMBREIsNull: Boolean; virtual; + procedure SetNOMBREValue(const aValue: String); virtual; + procedure SetNOMBREIsNull(const aValue: Boolean); virtual; + + { Properties } + property NOMBRE : String read GetNOMBREValue write SetNOMBREValue; + property NOMBREIsNull : Boolean read GetNOMBREIsNull write SetNOMBREIsNull; + property OldNOMBRE : String read GetOldNOMBREValue; + property OldNOMBREIsNull : Boolean read GetOldNOMBREIsNull; + + public + constructor Create(aBusinessProcessor: TDABusinessProcessor); override; + destructor Destroy; override; + + end; + { IEmpresasDelta } IEmpresasDelta = interface(IEmpresas) - ['{0C6E077A-F00A-47EE-8448-14AB9AAD08BC}'] + ['{8185F345-A4F5-419B-BFB4-D910428D6609}'] { Property getters and setters } function GetOldIDValue : Integer; function GetOldNIF_CIFValue : String; @@ -258,6 +293,7 @@ type function GetOldID_TIPO_IVAValue : SmallInt; function GetOldID_FORMA_PAGOValue : SmallInt; function GetOldVALIDEZ_PRESUPUESTOSValue : SmallInt; + function GetOldPRECIO_PUNTOValue : Currency; { Properties } property OldID : Integer read GetOldIDValue; @@ -285,6 +321,7 @@ type property OldID_TIPO_IVA : SmallInt read GetOldID_TIPO_IVAValue; property OldID_FORMA_PAGO : SmallInt read GetOldID_FORMA_PAGOValue; property OldVALIDEZ_PRESUPUESTOS : SmallInt read GetOldVALIDEZ_PRESUPUESTOSValue; + property OldPRECIO_PUNTO : Currency read GetOldPRECIO_PUNTOValue; end; { TEmpresasBusinessProcessorRules } @@ -444,6 +481,12 @@ type function GetOldVALIDEZ_PRESUPUESTOSIsNull: Boolean; virtual; procedure SetVALIDEZ_PRESUPUESTOSValue(const aValue: SmallInt); virtual; procedure SetVALIDEZ_PRESUPUESTOSIsNull(const aValue: Boolean); virtual; + function GetPRECIO_PUNTOValue: Currency; virtual; + function GetPRECIO_PUNTOIsNull: Boolean; virtual; + function GetOldPRECIO_PUNTOValue: Currency; virtual; + function GetOldPRECIO_PUNTOIsNull: Boolean; virtual; + procedure SetPRECIO_PUNTOValue(const aValue: Currency); virtual; + procedure SetPRECIO_PUNTOIsNull(const aValue: Boolean); virtual; { Properties } property ID : Integer read GetIDValue write SetIDValue; @@ -546,6 +589,10 @@ type property VALIDEZ_PRESUPUESTOSIsNull : Boolean read GetVALIDEZ_PRESUPUESTOSIsNull write SetVALIDEZ_PRESUPUESTOSIsNull; property OldVALIDEZ_PRESUPUESTOS : SmallInt read GetOldVALIDEZ_PRESUPUESTOSValue; property OldVALIDEZ_PRESUPUESTOSIsNull : Boolean read GetOldVALIDEZ_PRESUPUESTOSIsNull; + property PRECIO_PUNTO : Currency read GetPRECIO_PUNTOValue write SetPRECIO_PUNTOValue; + property PRECIO_PUNTOIsNull : Boolean read GetPRECIO_PUNTOIsNull write SetPRECIO_PUNTOIsNull; + property OldPRECIO_PUNTO : Currency read GetOldPRECIO_PUNTOValue; + property OldPRECIO_PUNTOIsNull : Boolean read GetOldPRECIO_PUNTOIsNull; public constructor Create(aBusinessProcessor: TDABusinessProcessor); override; @@ -555,7 +602,7 @@ type { IEmpresasDatosBancoDelta } IEmpresasDatosBancoDelta = interface(IEmpresasDatosBanco) - ['{F8D15203-2664-4352-BAB6-4DD3CEC03078}'] + ['{F938338C-0D89-4F44-A4C9-883C1BCB1E11}'] { Property getters and setters } function GetOldIDValue : Integer; function GetOldID_EMPRESAValue : Integer; @@ -1204,6 +1251,49 @@ begin end; +{ TDarNombreBusinessProcessorRules } +constructor TDarNombreBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor); +begin + inherited; +end; + +destructor TDarNombreBusinessProcessorRules.Destroy; +begin + inherited; +end; + +function TDarNombreBusinessProcessorRules.GetNOMBREValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_DarNombreNOMBRE]; +end; + +function TDarNombreBusinessProcessorRules.GetNOMBREIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_DarNombreNOMBRE]); +end; + +function TDarNombreBusinessProcessorRules.GetOldNOMBREValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_DarNombreNOMBRE]; +end; + +function TDarNombreBusinessProcessorRules.GetOldNOMBREIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_DarNombreNOMBRE]); +end; + +procedure TDarNombreBusinessProcessorRules.SetNOMBREValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_DarNombreNOMBRE] := aValue; +end; + +procedure TDarNombreBusinessProcessorRules.SetNOMBREIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_DarNombreNOMBRE] := Null; +end; + + { TEmpresasBusinessProcessorRules } constructor TEmpresasBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor); var @@ -2009,6 +2099,37 @@ begin BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasVALIDEZ_PRESUPUESTOS] := Null; end; +function TEmpresasBusinessProcessorRules.GetPRECIO_PUNTOValue: Currency; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasPRECIO_PUNTO]; +end; + +function TEmpresasBusinessProcessorRules.GetPRECIO_PUNTOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasPRECIO_PUNTO]); +end; + +function TEmpresasBusinessProcessorRules.GetOldPRECIO_PUNTOValue: Currency; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_EmpresasPRECIO_PUNTO]; +end; + +function TEmpresasBusinessProcessorRules.GetOldPRECIO_PUNTOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_EmpresasPRECIO_PUNTO]); +end; + +procedure TEmpresasBusinessProcessorRules.SetPRECIO_PUNTOValue(const aValue: Currency); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasPRECIO_PUNTO] := aValue; +end; + +procedure TEmpresasBusinessProcessorRules.SetPRECIO_PUNTOIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_EmpresasPRECIO_PUNTO] := Null; +end; + { TEmpresasDatosBancoBusinessProcessorRules } constructor TEmpresasDatosBancoBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor); @@ -2303,6 +2424,7 @@ end; initialization RegisterBusinessProcessorRules(RID_EmpresasTiendasDelta, TEmpresasTiendasBusinessProcessorRules); + RegisterBusinessProcessorRules(RID_DarNombreDelta, TDarNombreBusinessProcessorRules); RegisterBusinessProcessorRules(RID_EmpresasDelta, TEmpresasBusinessProcessorRules); RegisterBusinessProcessorRules(RID_EmpresasDatosBancoDelta, TEmpresasDatosBancoBusinessProcessorRules); diff --git a/Source/ApplicationBase/Empresas/Servidor/srvEmpresas_Impl.dfm b/Source/ApplicationBase/Empresas/Servidor/srvEmpresas_Impl.dfm index 66c24af..b161e76 100644 --- a/Source/ApplicationBase/Empresas/Servidor/srvEmpresas_Impl.dfm +++ b/Source/ApplicationBase/Empresas/Servidor/srvEmpresas_Impl.dfm @@ -323,6 +323,10 @@ object srvEmpresas: TsrvEmpresas item DatasetField = 'VALIDEZ_PRESUPUESTOS' TableField = 'VALIDEZ_PRESUPUESTOS' + end + item + DatasetField = 'PRECIO_PUNTO' + TableField = 'PRECIO_PUNTO' end> end> Name = 'Empresas' @@ -469,6 +473,10 @@ object srvEmpresas: TsrvEmpresas item Name = 'VALIDEZ_PRESUPUESTOS' DataType = datSmallInt + end + item + Name = 'PRECIO_PUNTO' + DataType = datCurrency end> end item diff --git a/Source/ApplicationBase/Empresas/Views/uViewEmpresa.dfm b/Source/ApplicationBase/Empresas/Views/uViewEmpresa.dfm index cee4c11..857ec66 100644 --- a/Source/ApplicationBase/Empresas/Views/uViewEmpresa.dfm +++ b/Source/ApplicationBase/Empresas/Views/uViewEmpresa.dfm @@ -35,7 +35,7 @@ inherited frViewEmpresa: TfrViewEmpresa end object eCalle: TcxDBTextEdit Left = 195 - Top = 247 + Top = 274 DataBinding.DataField = 'CALLE' DataBinding.DataSource = DADataSource Style.BorderColor = clWindowFrame @@ -52,12 +52,12 @@ inherited frViewEmpresa: TfrViewEmpresa StyleHot.LookAndFeel.Kind = lfStandard StyleHot.LookAndFeel.NativeStyle = True StyleHot.LookAndFeel.SkinName = '' - TabOrder = 6 + TabOrder = 7 Width = 84 end object cbProvincia: TcxDBComboBox Left = 195 - Top = 274 + Top = 301 DataBinding.DataField = 'PROVINCIA' DataBinding.DataSource = DADataSource Properties.OnInitPopup = eProvinciaPropertiesInitPopup @@ -77,12 +77,12 @@ inherited frViewEmpresa: TfrViewEmpresa StyleHot.LookAndFeel.Kind = lfStandard StyleHot.LookAndFeel.NativeStyle = True StyleHot.LookAndFeel.SkinName = '' - TabOrder = 7 + TabOrder = 8 Width = 106 end object cbPoblacion: TcxDBComboBox Left = 195 - Top = 301 + Top = 328 DataBinding.DataField = 'POBLACION' DataBinding.DataSource = DADataSource Properties.OnInitPopup = ePoblacionPropertiesInitPopup @@ -102,12 +102,12 @@ inherited frViewEmpresa: TfrViewEmpresa StyleHot.LookAndFeel.Kind = lfStandard StyleHot.LookAndFeel.NativeStyle = True StyleHot.LookAndFeel.SkinName = '' - TabOrder = 9 + TabOrder = 10 Width = 100 end object eCodigoPostal: TcxDBTextEdit Left = 369 - Top = 274 + Top = 301 DataBinding.DataField = 'CODIGO_POSTAL' DataBinding.DataSource = DADataSource Style.BorderColor = clWindowFrame @@ -124,7 +124,7 @@ inherited frViewEmpresa: TfrViewEmpresa StyleHot.LookAndFeel.Kind = lfStandard StyleHot.LookAndFeel.NativeStyle = True StyleHot.LookAndFeel.SkinName = '' - TabOrder = 8 + TabOrder = 9 Width = 65 end object ePaginaWeb: TcxDBTextEdit @@ -146,7 +146,7 @@ inherited frViewEmpresa: TfrViewEmpresa StyleHot.LookAndFeel.Kind = lfStandard StyleHot.LookAndFeel.NativeStyle = True StyleHot.LookAndFeel.SkinName = '' - TabOrder = 17 + TabOrder = 18 Width = 165 end object eMailParticular: TcxDBTextEdit @@ -168,7 +168,7 @@ inherited frViewEmpresa: TfrViewEmpresa StyleHot.LookAndFeel.Kind = lfStandard StyleHot.LookAndFeel.NativeStyle = True StyleHot.LookAndFeel.SkinName = '' - TabOrder = 16 + TabOrder = 17 Width = 165 end object eMailTrabajo: TcxDBTextEdit @@ -190,7 +190,7 @@ inherited frViewEmpresa: TfrViewEmpresa StyleHot.LookAndFeel.Kind = lfStandard StyleHot.LookAndFeel.NativeStyle = True StyleHot.LookAndFeel.SkinName = '' - TabOrder = 15 + TabOrder = 16 Width = 129 end object eTlfParticular: TcxDBTextEdit @@ -212,7 +212,7 @@ inherited frViewEmpresa: TfrViewEmpresa StyleHot.LookAndFeel.Kind = lfStandard StyleHot.LookAndFeel.NativeStyle = True StyleHot.LookAndFeel.SkinName = '' - TabOrder = 12 + TabOrder = 13 Width = 91 end object eTlfTrabajo: TcxDBTextEdit @@ -234,7 +234,7 @@ inherited frViewEmpresa: TfrViewEmpresa StyleHot.LookAndFeel.Kind = lfStandard StyleHot.LookAndFeel.NativeStyle = True StyleHot.LookAndFeel.SkinName = '' - TabOrder = 11 + TabOrder = 12 Width = 127 end object eTlfMovil: TcxDBTextEdit @@ -256,7 +256,7 @@ inherited frViewEmpresa: TfrViewEmpresa StyleHot.LookAndFeel.Kind = lfStandard StyleHot.LookAndFeel.NativeStyle = True StyleHot.LookAndFeel.SkinName = '' - TabOrder = 13 + TabOrder = 14 Width = 155 end object eFax: TcxDBTextEdit @@ -278,7 +278,7 @@ inherited frViewEmpresa: TfrViewEmpresa StyleHot.LookAndFeel.Kind = lfStandard StyleHot.LookAndFeel.NativeStyle = True StyleHot.LookAndFeel.SkinName = '' - TabOrder = 14 + TabOrder = 15 Width = 391 end object eNombre: TcxDBTextEdit @@ -367,7 +367,7 @@ inherited frViewEmpresa: TfrViewEmpresa StyleFocused.LookAndFeel.SkinName = '' StyleHot.LookAndFeel.NativeStyle = True StyleHot.LookAndFeel.SkinName = '' - TabOrder = 18 + TabOrder = 19 Height = 100 Width = 140 end @@ -427,7 +427,7 @@ inherited frViewEmpresa: TfrViewEmpresa end inline frViewObservaciones1: TfrViewObservaciones Left = 22 - Top = 358 + Top = 385 Width = 521 Height = 150 Font.Charset = DEFAULT_CHARSET @@ -436,10 +436,10 @@ inherited frViewEmpresa: TfrViewEmpresa Font.Name = 'Tahoma' Font.Style = [] ParentFont = False - TabOrder = 10 + TabOrder = 11 ReadOnly = False ExplicitLeft = 22 - ExplicitTop = 358 + ExplicitTop = 385 inherited memObservaciones: TcxDBMemo DataBinding.DataField = 'NOTAS' DataBinding.DataSource = DADataSource @@ -467,6 +467,16 @@ inherited frViewEmpresa: TfrViewEmpresa TabOrder = 5 Width = 121 end + object ePrecioPunto: TcxDBCurrencyEdit + Left = 195 + Top = 217 + DataBinding.DataField = 'PRECIO_PUNTO' + DataBinding.DataSource = DADataSource + Properties.Alignment.Horz = taRightJustify + Properties.UseLeftAlignmentOnEditing = False + TabOrder = 6 + Width = 121 + end object dxLayoutControl1Group_Root: TdxLayoutGroup ShowCaption = False Hidden = True @@ -513,6 +523,11 @@ inherited frViewEmpresa: TfrViewEmpresa Control = eValidez ControlOptions.ShowBorder = False end + object dxLayoutControl1Item22: TdxLayoutItem + Caption = 'Precio punto:' + Control = ePrecioPunto + ControlOptions.ShowBorder = False + end end object dxLayoutControl1Group3: TdxLayoutGroup AutoAligns = [aaHorizontal] diff --git a/Source/ApplicationBase/Empresas/Views/uViewEmpresa.pas b/Source/ApplicationBase/Empresas/Views/uViewEmpresa.pas index 0757c42..f15fd04 100644 --- a/Source/ApplicationBase/Empresas/Views/uViewEmpresa.pas +++ b/Source/ApplicationBase/Empresas/Views/uViewEmpresa.pas @@ -10,7 +10,8 @@ uses cxDBEdit, dxLayoutControl, dxLayoutLookAndFeels, cxMemo, cxMaskEdit, cxSpinEdit, cxImage, JvExControls, JvBitmapButton, ActnList, ImgList, PngImageList, TB2Item, TBX, TB2Dock, TB2Toolbar, PngSpeedButton, uDAInterfaces, - cxGraphics, cxDropDownEdit, uEmpresasController, uViewObservaciones; + cxGraphics, cxDropDownEdit, uEmpresasController, uViewObservaciones, + cxCurrencyEdit; type IViewEmpresa = interface(IViewBase) @@ -86,6 +87,8 @@ type dxLayoutControl1Item8: TdxLayoutItem; eValidez: TcxDBSpinEdit; dxLayoutControl1Item21: TdxLayoutItem; + ePrecioPunto: TcxDBCurrencyEdit; + dxLayoutControl1Item22: TdxLayoutItem; procedure actAnadirExecute(Sender: TObject); procedure actEliminarExecute(Sender: TObject); procedure actEliminarUpdate(Sender: TObject); diff --git a/Source/Base/Base.dproj b/Source/Base/Base.dproj index e6af759..a68366d 100644 --- a/Source/Base/Base.dproj +++ b/Source/Base/Base.dproj @@ -44,6 +44,13 @@ Package FalseTrueFalseLibreria base de FactuGESFalseFalseFalseTrueFalse1000FalseFalseFalseFalseFalse308212521.0.0.01.0.0.0 + + + + + + + VCL for the Web Design Package for CodeGear RAD Studio CodeGear WebSnap Components CodeGear SOAP Components @@ -58,55 +65,55 @@ MainSource + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
fConfigurarConexion
TForm diff --git a/Source/Base/Base.res b/Source/Base/Base.res index 8b251f3..1641339 100644 Binary files a/Source/Base/Base.res and b/Source/Base/Base.res differ diff --git a/Source/Cliente/FactuGES.dproj b/Source/Cliente/FactuGES.dproj index f88b3aa..1ce2d09 100644 --- a/Source/Cliente/FactuGES.dproj +++ b/Source/Cliente/FactuGES.dproj @@ -51,7 +51,8 @@ Delphi.Personality VCLApplication -FalseTrueFalseC:\Archivos de programa\Borland\Delphi7\Bin\TrueFalse2540FalseFalseFalseFalseFalse30821252Rodax Software S.L.2.5.4.0FactuGESFactuGES2.5.4.0 +FalseTrueFalseC:\Archivos de programa\Borland\Delphi7\Bin\TrueFalse2540FalseFalseFalseFalseFalse30821252Rodax Software S.L.2.5.5.0FactuGESFactuGES2.5.5.0 + File C:\Documents and Settings\All Users\Documentos\RAD Studio\5.0\Bpl\dxPScxScheduler2LnkD11.bpl not found FactuGES.dprFalse diff --git a/Source/Cliente/FactuGES.res b/Source/Cliente/FactuGES.res index e84d86e..1ef1321 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 3371ae6..7c41528 100644 --- a/Source/Cliente/uBootStrap.pas +++ b/Source/Cliente/uBootStrap.pas @@ -29,6 +29,7 @@ begin {$IFDEF ALMACEN} LoadModule('Familias_plugin.bpl'); + LoadModule('SubFamilias_plugin.bpl'); LoadModule('UnidadesMedida_plugin.bpl'); LoadModule('Almacenes_plugin.bpl'); LoadModule('Articulos_plugin.bpl'); diff --git a/Source/GUIBase/GUIBase.dproj b/Source/GUIBase/GUIBase.dproj index f44e3be..49bbcfb 100644 --- a/Source/GUIBase/GUIBase.dproj +++ b/Source/GUIBase/GUIBase.dproj @@ -58,34 +58,34 @@ MainSource - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + +
fDialogBase
diff --git a/Source/GUIBase/GUIBase.res b/Source/GUIBase/GUIBase.res index 8b251f3..1641339 100644 Binary files a/Source/GUIBase/GUIBase.res and b/Source/GUIBase/GUIBase.res differ diff --git a/Source/GUIBase/uViewDetallesBase.pas b/Source/GUIBase/uViewDetallesBase.pas index dea8faa..35caeea 100644 --- a/Source/GUIBase/uViewDetallesBase.pas +++ b/Source/GUIBase/uViewDetallesBase.pas @@ -454,8 +454,8 @@ begin AStyle := cxStyle_DESCUENTO; if ATipo = TIPO_DETALLE_CONCEPTO then - if (AItem.Index = cxGridView.GetColumnByFieldName(CAMPO_IMPORTE_TOTAL).Index) - or (AItem.Index = cxGridView.GetColumnByFieldName(CAMPO_DESCUENTO).Index)then + if (AItem.Index = cxGridView.GetColumnByFieldName(CAMPO_IMPORTE_TOTAL).Index) then +// or (AItem.Index = cxGridView.GetColumnByFieldName(CAMPO_DESCUENTO).Index)then AStyle := cxStyleDesactivado; end; end; diff --git a/Source/Informes/InfPresupuestoCliente.fr3 b/Source/Informes/InfPresupuestoCliente.fr3 index 2308b76..29e89b3 100644 --- a/Source/Informes/InfPresupuestoCliente.fr3 +++ b/Source/Informes/InfPresupuestoCliente.fr3 @@ -1,5 +1,5 @@ - + @@ -19,16 +19,18 @@ - - - - + + + + + - - - - + + + + + @@ -38,8 +40,8 @@ - - + + diff --git a/Source/Informes/InformeListadoFacturasRecibosCliente.fr3 b/Source/Informes/InformeListadoFacturasRecibosCliente.fr3 index 3de574e..17bf0c1 100644 --- a/Source/Informes/InformeListadoFacturasRecibosCliente.fr3 +++ b/Source/Informes/InformeListadoFacturasRecibosCliente.fr3 @@ -1,7 +1,7 @@ - + - + @@ -9,14 +9,16 @@ - + - + - - + + + + - + @@ -24,18 +26,18 @@ - + - + - + @@ -44,7 +46,7 @@ - + @@ -52,7 +54,7 @@ - + diff --git a/Source/Modulos/Articulos/Controller/uArticulosController.pas b/Source/Modulos/Articulos/Controller/uArticulosController.pas index 6be3eb0..a54612c 100644 --- a/Source/Modulos/Articulos/Controller/uArticulosController.pas +++ b/Source/Modulos/Articulos/Controller/uArticulosController.pas @@ -67,7 +67,7 @@ type function Eliminar(const ID : Integer): Boolean; overload; function Eliminar(AArticulo : IBizArticulo): Boolean; overload; - function Guardar(AArticulo : IBizArticulo): Boolean; + function Guardar(AArticulo : IBizArticulo): Boolean; procedure DescartarCambios(AArticulo : IBizArticulo); virtual; function Existe(const ID: Integer) : Boolean; virtual; procedure Anadir(AArticulo : IBizArticulo); virtual; @@ -139,7 +139,8 @@ begin else Result := (FDataModule as IDataModuleArticulos).GetItem(ID, AClienteID); - FiltrarEmpresa(Result); +//LOS ARTICULOS PASAN A SER COMUNES PARA LAS EMPRESAS +// FiltrarEmpresa(Result); end; function TArticulosController.BuscarInventariables: IBizArticulo; @@ -237,7 +238,9 @@ end; function TArticulosController.BuscarTodos(ACliente: Integer): IBizArticulo; begin Result := FDataModule.GetItems(ACliente); - FiltrarEmpresa(Result); + +//LOS ARTICULOS PASAN A SER COMUNES PARA LAS EMPRESAS +// FiltrarEmpresa(Result); end; function TArticulosController.BuscarTodos(ACliente: IBizCliente): IBizArticulo; @@ -278,7 +281,9 @@ end; function TArticulosController.BuscarTodos: IBizArticulo; begin Result := FDataModule.GetItems; - FiltrarEmpresa(Result); + +//LOS ARTICULOS PASAN A SER COMUNES PARA LAS EMPRESAS +// FiltrarEmpresa(Result); end; procedure TArticulosController.CalcularPrecioNeto(AArticulos: IBizArticulo); @@ -607,7 +612,8 @@ var AArticulo : IBizArticulo; begin AArticulo := FDataModule.NewItem; - FiltrarEmpresa(AArticulo); +//LOS ARTICULOS PASAN A SER COMUNES PARA LAS EMPRESAS +// FiltrarEmpresa(AArticulo); AArticulo.DataTable.Active := True; AArticulo.Insert; Result := AArticulo; diff --git a/Source/Modulos/Articulos/Servidor/srvArticulos_Impl.dfm b/Source/Modulos/Articulos/Servidor/srvArticulos_Impl.dfm index f3e8093..c965423 100644 --- a/Source/Modulos/Articulos/Servidor/srvArticulos_Impl.dfm +++ b/Source/Modulos/Articulos/Servidor/srvArticulos_Impl.dfm @@ -336,13 +336,13 @@ object srvArticulos: TsrvArticulos 'TICULOS.IMAGEN, V_ARTICULOS.COMISIONABLE, V_ARTICULOS.FECHA_ALTA' + ','#10' V_ARTICULOS.FECHA_MODIFICACION, V_ARTICULOS.USUARIO,'#10' ' + ' V_ARTICULOS.REFERENCIA_PROV,'#10' V_ARTICULOS.PRECIO_COST' + - 'E,'#10' V_ARTICULOS.PRECIO_PORTE,'#10' CLIENTES_DTOS_PROVEED' + - 'ORES.DESCUENTO,'#10' V_ARTICULOS.PRECIO_NETO,'#10' V_ARTICUL' + - 'OS.INVENTARIABLE,'#10' V_ARTICULOS.ID_PROVEEDOR,'#10' V_ARTI' + - 'CULOS.NOMBRE_PROVEEDOR,'#10' V_ARTICULOS.ELIMINADO'#10'FROM V_ARTI' + - 'CULOS'#10'LEFT OUTER JOIN CLIENTES_DTOS_PROVEEDORES'#10'ON ((CLIENTES_DT' + - 'OS_PROVEEDORES.ID_PROVEEDOR = V_ARTICULOS.ID_PROVEEDOR)'#10'AND (CLI' + - 'ENTES_DTOS_PROVEEDORES.ID_CLIENTE = :ID_CLIENTE))'#10'where {where}'#10 + 'E,'#10' V_ARTICULOS.PRECIO_PORTE,'#10' '#10' CLIENTES_DATO' + + 'S.DESCUENTO_LINEA as DESCUENTO,'#10'/*'#10' CLIENTES_DTOS_PROVEEDO' + + 'RES.DESCUENTO,'#10'*/'#10' V_ARTICULOS.PRECIO_NETO,'#10' V_ARTIC' + + 'ULOS.INVENTARIABLE,'#10' V_ARTICULOS.ID_PROVEEDOR,'#10' V_AR' + + 'TICULOS.NOMBRE_PROVEEDOR,'#10' V_ARTICULOS.ELIMINADO'#10'FROM V_AR' + + 'TICULOS'#10'LEFT OUTER JOIN CLIENTES_DATOS'#10'ON (CLIENTES_DATOS.ID_CLI' + + 'ENTE = :ID_CLIENTE)'#10'where {where}'#10 StatementType = stSQL ColumnMappings = < item diff --git a/Source/Modulos/Articulos/Views/Articulos_view.RES b/Source/Modulos/Articulos/Views/Articulos_view.RES index 8b251f3..1641339 100644 Binary files a/Source/Modulos/Articulos/Views/Articulos_view.RES and b/Source/Modulos/Articulos/Views/Articulos_view.RES differ diff --git a/Source/Modulos/Articulos/Views/Articulos_view.dpk b/Source/Modulos/Articulos/Views/Articulos_view.dpk index cf6df0d..f8992c5 100644 Binary files a/Source/Modulos/Articulos/Views/Articulos_view.dpk and b/Source/Modulos/Articulos/Views/Articulos_view.dpk differ diff --git a/Source/Modulos/Articulos/Views/Articulos_view.dproj b/Source/Modulos/Articulos/Views/Articulos_view.dproj index 328f09d..285e1e5 100644 --- a/Source/Modulos/Articulos/Views/Articulos_view.dproj +++ b/Source/Modulos/Articulos/Views/Articulos_view.dproj @@ -54,11 +54,12 @@ MainSource - - - - - + + + + + +
fEditorArticulo
diff --git a/Source/Modulos/Articulos/Views/uEditorArticulo.dfm b/Source/Modulos/Articulos/Views/uEditorArticulo.dfm index b4c51fd..19f5c76 100644 --- a/Source/Modulos/Articulos/Views/uEditorArticulo.dfm +++ b/Source/Modulos/Articulos/Views/uEditorArticulo.dfm @@ -39,7 +39,7 @@ inherited fEditorArticulo: TfEditorArticulo Width = 624 ExplicitWidth = 624 inherited tbxMain: TTBXToolbar - ExplicitWidth = 394 + ExplicitWidth = 480 inherited TBXItem2: TTBXItem Visible = False end @@ -58,6 +58,10 @@ inherited fEditorArticulo: TfEditorArticulo Action = actFamilias DisplayMode = nbdmImageAndText end + object TBXItem7: TTBXItem [13] + Action = actSubFamilias + DisplayMode = nbdmImageAndText + end end inherited tbxMenu: TTBXToolbar DockPos = 0 @@ -95,18 +99,6 @@ inherited fEditorArticulo: TfEditorArticulo end end end - inherited pgPaginas: TPageControl - Width = 624 - Height = 385 - ExplicitWidth = 624 - ExplicitHeight = 385 - inherited pagGeneral: TTabSheet - ExplicitLeft = 4 - ExplicitTop = 24 - ExplicitWidth = 616 - ExplicitHeight = 357 - end - end inherited StatusBar: TJvStatusBar Top = 461 Width = 624 @@ -117,6 +109,26 @@ inherited fEditorArticulo: TfEditorArticulo ExplicitTop = 461 ExplicitWidth = 624 end + inherited pgPaginas: TPageControl + Width = 618 + Height = 349 + ExplicitWidth = 618 + ExplicitHeight = 349 + inherited pagGeneral: TTabSheet + ExplicitLeft = 4 + ExplicitTop = 24 + ExplicitWidth = 610 + ExplicitHeight = 321 + end + end + inherited PnlComentario: TPanel + Width = 624 + ExplicitWidth = 624 + inherited lbComentario: TLabel + Width = 614 + Height = 25 + end + end inherited EditorActionList: TActionList Top = 128 object actFamilias: TAction @@ -126,8 +138,26 @@ inherited fEditorArticulo: TfEditorArticulo ImageIndex = 21 OnExecute = actFamiliasExecute end + object actSubFamilias: TAction + Category = 'Acciones' + Caption = 'Subfamilias' + Hint = 'Acceder a la gesti'#243'n de subfamilias de art'#237'culos' + ImageIndex = 21 + OnExecute = actSubFamiliasExecute + end end - inherited SmallImages: TPngImageList + inherited dsDataTable: TDADataSource [6] + Left = 168 + Top = 120 + end + inherited LargeImages: TPngImageList + Top = 112 + end + inherited JvFormStorage: TJvFormStorage + Left = 400 + Top = 152 + end + inherited SmallImages: TPngImageList [9] PngImages = < item PngImage.Data = { @@ -633,17 +663,6 @@ inherited fEditorArticulo: TfEditorArticulo Top = 112 Bitmap = {} end - inherited dsDataTable: TDADataSource [6] - Left = 168 - Top = 120 - end - inherited LargeImages: TPngImageList [7] - Top = 112 - end - inherited JvFormStorage: TJvFormStorage [8] - Left = 400 - Top = 152 - end inherited JvAppRegistryStorage: TJvAppRegistryStorage Left = 432 Top = 152 diff --git a/Source/Modulos/Articulos/Views/uEditorArticulo.pas b/Source/Modulos/Articulos/Views/uEditorArticulo.pas index 86965f3..d8b318a 100644 --- a/Source/Modulos/Articulos/Views/uEditorArticulo.pas +++ b/Source/Modulos/Articulos/Views/uEditorArticulo.pas @@ -13,7 +13,7 @@ uses JvAppStorage, JvAppRegistryStorage, JvFormPlacement, JvComponentBase, uViewArticulos, uIEditorArticulo, uArticulosController, JvExComCtrls, - JvStatusBar, dxLayoutLookAndFeels; + JvStatusBar, dxLayoutLookAndFeels, uDAInterfaces; type TfEditorArticulo = class(TfEditorDBItem, IEditorArticulo) @@ -22,10 +22,13 @@ type TBXItem33: TTBXItem; actFamilias: TAction; TBXSeparatorItem6: TTBXSeparatorItem; + actSubFamilias: TAction; + TBXItem7: TTBXItem; procedure FormShow(Sender: TObject); procedure dsDataTableDataChange(Sender: TObject; Field: TField); procedure CustomEditorClose(Sender: TObject; var Action: TCloseAction); procedure actFamiliasExecute(Sender: TObject); + procedure actSubFamiliasExecute(Sender: TObject); protected FController : IArticulosController; FArticulo: IBizArticulo; @@ -59,7 +62,7 @@ implementation uses uCustomEditor, uDataModuleArticulos, uDataModuleBase, - uBizFamilias, uFamiliasController; + uBizFamilias, uFamiliasController, uBizSubFamilias, uSubFamiliasController; { ******************************* TfEditorArticulo ******************************* @@ -159,6 +162,21 @@ begin end; end; +procedure TfEditorArticulo.actSubFamiliasExecute(Sender: TObject); +var + ASubFamiliasController : ISubFamiliasController; + ASubFamilias : IBizSubFamilia; +begin + ASubFamiliasController := TSubFamiliasController.Create; + try + ASubFamilias := (ASubFamiliasController.BuscarTodos as IBizSubFamilia); + ASubFamiliasController.VerTodos(ASubFamilias); + finally + ASubFamilias := NIL; + ASubFamiliasController := NIL; + end; +end; + procedure TfEditorArticulo.AsignarVista; var AViewArticulo: TfrViewArticulo; diff --git a/Source/Modulos/Articulos/Views/uEditorElegirArticulos.dfm b/Source/Modulos/Articulos/Views/uEditorElegirArticulos.dfm index 2fc6b87..2650130 100644 --- a/Source/Modulos/Articulos/Views/uEditorElegirArticulos.dfm +++ b/Source/Modulos/Articulos/Views/uEditorElegirArticulos.dfm @@ -10,6 +10,7 @@ inherited fEditorElegirArticulos: TfEditorElegirArticulos Width = 656 Caption = 'Lista de art'#237'culos' Visible = False + ExplicitTop = 64 ExplicitWidth = 656 inherited Image1: TImage Left = 629 @@ -20,12 +21,13 @@ inherited fEditorElegirArticulos: TfEditorElegirArticulos Top = 91 Width = 656 Height = 49 + ExplicitTop = 91 ExplicitWidth = 656 ExplicitHeight = 49 inherited tbxMain: TTBXToolbar Align = alLeft DockPos = -6 - ExplicitWidth = 269 + ExplicitWidth = 126 inherited TBXItem2: TTBXItem Visible = False end @@ -43,12 +45,12 @@ inherited fEditorElegirArticulos: TfEditorElegirArticulos end end inherited tbxFiltro: TTBXToolbar - Left = 269 + Left = 126 Top = 23 Align = alLeft DockPos = 101 DockRow = 1 - ExplicitLeft = 269 + ExplicitLeft = 126 ExplicitTop = 23 inherited TBXItem34: TTBXItem Action = actQuitarFiltro2 @@ -58,11 +60,11 @@ inherited fEditorElegirArticulos: TfEditorElegirArticulos ExplicitWidth = 656 end inherited TBXTMain2: TTBXToolbar - Left = 538 + Left = 536 Top = 23 DockPos = 536 DockRow = 1 - ExplicitLeft = 538 + ExplicitLeft = 536 ExplicitTop = 23 end end @@ -130,7 +132,7 @@ inherited fEditorElegirArticulos: TfEditorElegirArticulos AlignWithMargins = True Left = 25 Top = 8 - Width = 606 + Width = 131 Height = 13 Margins.Left = 0 Margins.Top = 0 @@ -144,20 +146,17 @@ inherited fEditorElegirArticulos: TfEditorElegirArticulos Font.Name = 'Tahoma' Font.Style = [fsBold] ParentFont = False - ExplicitWidth = 131 end object lblComments: TLabel AlignWithMargins = True Left = 50 Top = 29 - Width = 581 - Height = 27 + Width = 3 + Height = 13 Margins.Left = 25 Margins.Top = 0 Margins.Right = 0 Align = alClient - ExplicitLeft = 34 - ExplicitTop = -6 end end inherited EditorActionList: TActionList [5] diff --git a/Source/Modulos/Articulos/Views/uViewArticulo.dfm b/Source/Modulos/Articulos/Views/uViewArticulo.dfm index c6da09f..42edefa 100644 --- a/Source/Modulos/Articulos/Views/uViewArticulo.dfm +++ b/Source/Modulos/Articulos/Views/uViewArticulo.dfm @@ -1,6 +1,6 @@ inherited frViewArticulo: TfrViewArticulo - Width = 881 - Height = 527 + Width = 869 + Height = 464 Align = alClient OnCreate = CustomViewCreate OnDestroy = CustomViewDestroy @@ -10,7 +10,7 @@ inherited frViewArticulo: TfrViewArticulo object dxLayoutControlArticulo: TdxLayoutControl Left = 0 Top = 0 - Width = 881 + Width = 869 Height = 393 Align = alTop ParentBackground = True @@ -19,10 +19,10 @@ inherited frViewArticulo: TfrViewArticulo AutoContentSizes = [acsWidth] ExplicitWidth = 451 DesignSize = ( - 881 + 869 393) object PngSpeedButton2: TPngSpeedButton - Left = 836 + Left = 807 Top = 28 Width = 23 Height = 22 @@ -49,7 +49,7 @@ inherited frViewArticulo: TfrViewArticulo PngOptions = [pngBlendOnDisabled, pngGrayscaleOnDisabled] end object PngSpeedButton1: TPngSpeedButton - Left = 836 + Left = 807 Top = 56 Width = 23 Height = 22 @@ -79,7 +79,7 @@ inherited frViewArticulo: TfrViewArticulo end object eDescripcion: TcxDBTextEdit Left = 103 - Top = 55 + Top = 109 DataBinding.DataField = 'DESCRIPCION' DataBinding.DataSource = dsViewArticulo Style.BorderColor = clWindowFrame @@ -94,12 +94,12 @@ inherited frViewArticulo: TfrViewArticulo StyleFocused.LookAndFeel.NativeStyle = True StyleHot.LookAndFeel.Kind = lfStandard StyleHot.LookAndFeel.NativeStyle = True - TabOrder = 1 + TabOrder = 3 Width = 108 end object eNoComisionable: TcxDBCheckBox Left = 103 - Top = 109 + Top = 136 Caption = 'Art'#237'culo no comisionable' DataBinding.DataField = 'COMISIONABLE' DataBinding.DataSource = dsViewArticulo @@ -119,11 +119,11 @@ inherited frViewArticulo: TfrViewArticulo StyleFocused.LookAndFeel.NativeStyle = True StyleHot.LookAndFeel.Kind = lfStandard StyleHot.LookAndFeel.NativeStyle = True - TabOrder = 3 + TabOrder = 4 Width = 144 end object eImagen: TcxImage - Left = 604 + Left = 640 Top = 28 Properties.GraphicClassName = 'TJPEGImage' Properties.ImmediatePost = True @@ -140,13 +140,13 @@ inherited frViewArticulo: TfrViewArticulo StyleFocused.LookAndFeel.NativeStyle = True StyleHot.LookAndFeel.Kind = lfStandard StyleHot.LookAndFeel.NativeStyle = True - TabOrder = 5 + TabOrder = 6 Height = 100 Width = 140 end object cbFamilia: TcxDBComboBox Left = 103 - Top = 82 + Top = 55 DataBinding.DataField = 'FAMILIA' DataBinding.DataSource = dsViewArticulo Properties.DropDownRows = 16 @@ -165,12 +165,12 @@ inherited frViewArticulo: TfrViewArticulo StyleFocused.LookAndFeel.NativeStyle = True StyleHot.LookAndFeel.Kind = lfStandard StyleHot.LookAndFeel.NativeStyle = True - TabOrder = 2 + TabOrder = 1 Width = 70 end inline frViewDatosYSeleccionProveedor1: TfrViewDatosYSeleccionProveedor - Left = 509 - Top = 166 + Left = 480 + Top = 193 Width = 350 Height = 202 Enabled = False @@ -180,10 +180,10 @@ inherited frViewArticulo: TfrViewArticulo Font.Name = 'Tahoma' Font.Style = [] ParentFont = False - TabOrder = 12 + TabOrder = 14 ReadOnly = False - ExplicitLeft = 509 - ExplicitTop = 166 + ExplicitLeft = 480 + ExplicitTop = 193 inherited dxLayoutControl1: TdxLayoutControl inherited edtNIFCIF: TcxDBTextEdit ExplicitWidth = 562 @@ -205,7 +205,7 @@ inherited frViewArticulo: TfrViewArticulo end object eReferenciaProv: TcxDBTextEdit Left = 103 - Top = 166 + Top = 193 Anchors = [akLeft, akTop, akRight] DataBinding.DataField = 'REFERENCIA_PROV' DataBinding.DataSource = dsViewArticulo @@ -218,15 +218,17 @@ inherited frViewArticulo: TfrViewArticulo StyleDisabled.LookAndFeel.NativeStyle = True StyleFocused.LookAndFeel.NativeStyle = True StyleHot.LookAndFeel.NativeStyle = True - TabOrder = 6 + TabOrder = 7 Width = 86 end object ePrecioCoste: TcxDBCurrencyEdit Left = 103 - Top = 193 + Top = 220 DataBinding.DataField = 'PRECIO_COSTE' DataBinding.DataSource = dsViewArticulo Properties.Alignment.Horz = taRightJustify + Properties.AssignedValues.DisplayFormat = True + Properties.UseLeftAlignmentOnEditing = False Style.BorderColor = clWindowFrame Style.BorderStyle = ebs3D Style.HotTrack = False @@ -238,12 +240,12 @@ inherited frViewArticulo: TfrViewArticulo StyleFocused.LookAndFeel.NativeStyle = True StyleHot.LookAndFeel.Kind = lfStandard StyleHot.LookAndFeel.NativeStyle = True - TabOrder = 7 + TabOrder = 8 Width = 86 end object eDescuento: TcxDBSpinEdit Left = 103 - Top = 220 + Top = 247 DataBinding.DataField = 'DESCUENTO' DataBinding.DataSource = dsViewArticulo Enabled = False @@ -262,12 +264,12 @@ inherited frViewArticulo: TfrViewArticulo StyleFocused.LookAndFeel.NativeStyle = True StyleHot.LookAndFeel.Kind = lfStandard StyleHot.LookAndFeel.NativeStyle = True - TabOrder = 8 + TabOrder = 9 Width = 86 end object ePrecioNeto: TcxDBCurrencyEdit Left = 103 - Top = 247 + Top = 274 DataBinding.DataField = 'PRECIO_NETO' DataBinding.DataSource = dsViewArticulo Enabled = False @@ -287,12 +289,12 @@ inherited frViewArticulo: TfrViewArticulo StyleFocused.TextColor = clWindowText StyleHot.LookAndFeel.Kind = lfStandard StyleHot.LookAndFeel.NativeStyle = True - TabOrder = 9 + TabOrder = 10 Width = 86 end object ePrecioPorte: TcxDBCurrencyEdit Left = 103 - Top = 274 + Top = 301 DataBinding.DataField = 'PRECIO_PORTE' DataBinding.DataSource = dsViewArticulo Enabled = False @@ -308,12 +310,12 @@ inherited frViewArticulo: TfrViewArticulo StyleFocused.LookAndFeel.NativeStyle = True StyleHot.LookAndFeel.Kind = lfStandard StyleHot.LookAndFeel.NativeStyle = True - TabOrder = 10 + TabOrder = 11 Width = 86 end object cbNoInventariable: TcxDBCheckBox - Left = 361 - Top = 109 + Left = 383 + Top = 136 Caption = 'Art'#237'culo no inventariable' DataBinding.DataField = 'INVENTARIABLE' DataBinding.DataSource = dsViewArticulo @@ -333,14 +335,15 @@ inherited frViewArticulo: TfrViewArticulo StyleFocused.LookAndFeel.NativeStyle = True StyleHot.LookAndFeel.Kind = lfStandard StyleHot.LookAndFeel.NativeStyle = True - TabOrder = 4 + TabOrder = 5 Width = 144 end object ePrecioPVP: TcxDBCurrencyEdit Left = 103 - Top = 301 + Top = 328 DataBinding.DataField = 'PRECIO_PVP' DataBinding.DataSource = dsViewArticulo + Enabled = False Properties.Alignment.Horz = taRightJustify Style.BorderColor = clWindowFrame Style.BorderStyle = ebs3D @@ -353,9 +356,43 @@ inherited frViewArticulo: TfrViewArticulo StyleFocused.LookAndFeel.NativeStyle = True StyleHot.LookAndFeel.Kind = lfStandard StyleHot.LookAndFeel.NativeStyle = True - TabOrder = 11 + TabOrder = 12 Width = 288 end + object cbSubfamilia: TcxDBComboBox + Left = 103 + Top = 82 + DataBinding.DataField = 'REFERENCIA_PROV' + DataBinding.DataSource = dsViewArticulo + Properties.DropDownRows = 16 + Properties.ImmediatePost = True + Properties.OnInitPopup = cbSubfamiliaPropertiesInitPopup + Properties.OnValidate = cbSubfamiliaPropertiesValidate + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + Style.ButtonStyle = bts3D + Style.PopupBorderStyle = epbsFrame3D + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 2 + Width = 448 + end + object ePrecioPVP2: TcxCurrencyEdit + Left = 103 + Top = 355 + Enabled = False + Properties.Alignment.Horz = taRightJustify + Properties.ReadOnly = False + Properties.UseLeftAlignmentOnEditing = False + TabOrder = 13 + Width = 121 + end object dxLayoutControlArticuloGroup_Root: TdxLayoutGroup ShowCaption = False Hidden = True @@ -381,6 +418,18 @@ inherited frViewArticulo: TfrViewArticulo ShowCaption = False Hidden = True ShowBorder = False + object dxLayoutControlArticuloItem4: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahClient + Caption = 'Familia:' + Control = cbFamilia + ControlOptions.ShowBorder = False + end + object dxLayoutControlArticuloItem10: TdxLayoutItem + Caption = 'Subfamilia:' + Control = cbSubfamilia + ControlOptions.ShowBorder = False + end object dxLayoutControlArticuloItem8: TdxLayoutItem AutoAligns = [aaVertical] AlignHorz = ahClient @@ -388,39 +437,27 @@ inherited frViewArticulo: TfrViewArticulo Control = eDescripcion ControlOptions.ShowBorder = False end - object dxLayoutControlArticuloGroup6: TdxLayoutGroup + object dxLayoutControlArticuloGroup8: TdxLayoutGroup + Enabled = False ShowCaption = False + Visible = False Hidden = True + LayoutDirection = ldHorizontal ShowBorder = False - object dxLayoutControlArticuloItem4: TdxLayoutItem + object dxLayoutControlArticuloItem1: TdxLayoutItem AutoAligns = [aaVertical] AlignHorz = ahClient - Caption = 'Familia:' - Control = cbFamilia + Caption = ' ' + Control = eNoComisionable ControlOptions.ShowBorder = False end - object dxLayoutControlArticuloGroup8: TdxLayoutGroup - Enabled = False + object dxLayoutControlArticuloItem7: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahClient + Caption = ' ' ShowCaption = False - Visible = False - Hidden = True - LayoutDirection = ldHorizontal - ShowBorder = False - object dxLayoutControlArticuloItem1: TdxLayoutItem - AutoAligns = [aaVertical] - AlignHorz = ahClient - Caption = ' ' - Control = eNoComisionable - ControlOptions.ShowBorder = False - end - object dxLayoutControlArticuloItem7: TdxLayoutItem - AutoAligns = [aaVertical] - AlignHorz = ahClient - Caption = ' ' - ShowCaption = False - Control = cbNoInventariable - ControlOptions.ShowBorder = False - end + Control = cbNoInventariable + ControlOptions.ShowBorder = False end end end @@ -475,7 +512,7 @@ inherited frViewArticulo: TfrViewArticulo ControlOptions.ShowBorder = False end object dxLayoutControlArticuloItem16: TdxLayoutItem - Caption = 'Precio coste:' + Caption = 'Puntos:' Control = ePrecioCoste ControlOptions.ShowBorder = False end @@ -502,9 +539,16 @@ inherited frViewArticulo: TfrViewArticulo end object dxLayoutControlArticuloItem9: TdxLayoutItem Caption = 'Precio PVP:' + Enabled = False + Visible = False Control = ePrecioPVP ControlOptions.ShowBorder = False end + object dxLayoutControlArticuloItem11: TdxLayoutItem + Caption = 'Precio PVP:' + Control = ePrecioPVP2 + ControlOptions.ShowBorder = False + end end object dxLayoutControlArticuloGroup12: TdxLayoutGroup AutoAligns = [aaVertical] diff --git a/Source/Modulos/Articulos/Views/uViewArticulo.pas b/Source/Modulos/Articulos/Views/uViewArticulo.pas index 18e2879..1aedacb 100644 --- a/Source/Modulos/Articulos/Views/uViewArticulo.pas +++ b/Source/Modulos/Articulos/Views/uViewArticulo.pas @@ -9,8 +9,8 @@ uses JvComponent, JvFormAutoSize, cxControls, cxContainer, cxEdit, cxTextEdit, cxDBEdit, dxLayoutControl, cxCheckBox, PngSpeedButton, cxImage, ActnList, ImgList, PngImageList, cxGraphics, cxMaskEdit, cxDropDownEdit, - uFamiliasController, uViewDatosYSeleccionProveedor, cxSpinEdit, cxCurrencyEdit, - uArticulosController, uDAInterfaces; + uFamiliasController, uSubFamiliasController, uViewDatosYSeleccionProveedor, + cxSpinEdit, cxCurrencyEdit, uArticulosController, uDAInterfaces; type IViewArticulo = interface(IViewBase) @@ -53,7 +53,6 @@ type dxLayoutControlArticuloGroup5: TdxLayoutGroup; dxLayoutControlArticuloItem4: TdxLayoutItem; cbFamilia: TcxDBComboBox; - dxLayoutControlArticuloGroup6: TdxLayoutGroup; dxLayoutControlArticuloItem14: TdxLayoutItem; frViewDatosYSeleccionProveedor1: TfrViewDatosYSeleccionProveedor; dxLayoutControlArticuloItem15: TdxLayoutItem; @@ -73,6 +72,10 @@ type dxLayoutControlArticuloGroup8: TdxLayoutGroup; dxLayoutControlArticuloItem9: TdxLayoutItem; ePrecioPVP: TcxDBCurrencyEdit; + dxLayoutControlArticuloItem10: TdxLayoutItem; + cbSubfamilia: TcxDBComboBox; + ePrecioPVP2: TcxCurrencyEdit; + dxLayoutControlArticuloItem11: TdxLayoutItem; procedure actEliminarExecute(Sender: TObject); procedure actAnadirExecute(Sender: TObject); procedure cbFamiliaPropertiesInitPopup(Sender: TObject); @@ -82,11 +85,16 @@ type var DisplayValue: Variant; var ErrorText: TCaption; var Error: Boolean); procedure CustomViewShow(Sender: TObject); procedure PrecioNetoChanged(Sender: TObject); + procedure PuntosChanged(Sender: TObject); + procedure cbSubfamiliaPropertiesInitPopup(Sender: TObject); + procedure cbSubfamiliaPropertiesValidate(Sender: TObject; + var DisplayValue: Variant; var ErrorText: TCaption; var Error: Boolean); private procedure CargarImagen; procedure SalvarImagen; protected FFamiliasController: IFamiliasController; + FSubFamiliasController: ISubFamiliasController; FController: IArticulosController; FArticulo: IBizArticulo; function GetArticulo: IBizArticulo; @@ -101,7 +109,7 @@ type implementation -uses uDataModuleArticulos, uSistemaFunc, uBizFamilias, uBizContactos; +uses uFactuGES_App, uDataModuleArticulos, uSistemaFunc, uBizFamilias, uBizSubFamilias, uBizContactos; {$R *.dfm} @@ -191,15 +199,60 @@ begin end; end; +procedure TfrViewArticulo.cbSubfamiliaPropertiesInitPopup(Sender: TObject); +begin + inherited; + with cbSubfamilia.Properties.Items do + begin + BeginUpdate; + try + Clear; + AddStrings(FSubFamiliasController.DarListaSubFamilias); + finally + EndUpdate; + end; + end; +end; + +procedure TfrViewArticulo.cbSubfamiliaPropertiesValidate(Sender: TObject; + var DisplayValue: Variant; var ErrorText: TCaption; var Error: Boolean); +var + ASubFamilias : IBizSubFamilia; +begin + inherited; + with (Sender as TcxDBComboBox) do + begin + if (Length(DisplayValue) > 0) and (DisplayValue <> FArticulo.REFERENCIA_PROV) then + if Properties.LookupItems.IndexOf(DisplayValue) < 0 then + begin + Properties.LookupItems.BeginUpdate; + ASubFamilias := FSubFamiliasController.BuscarTodos; + ASubFamilias.DataTable.Active := True; + try + FSubFamiliasController.Anadir(ASubFamilias); + ASubFamilias.DESCRIPCION := DisplayValue; + FSubFamiliasController.Guardar(ASubFamilias); + Properties.LookupItems.Add(DisplayValue); + finally + Properties.LookupItems.EndUpdate; + ASubFamilias := NIL; + end; + end; + end; +end; + procedure TfrViewArticulo.CustomViewCreate(Sender: TObject); begin inherited; FFamiliasController := TFamiliasController.Create; + FSubFamiliasController := TSubFamiliasController.Create; + ePrecioCoste.Properties.OnEditValueChanged := PuntosChanged; end; procedure TfrViewArticulo.CustomViewDestroy(Sender: TObject); begin FFamiliasController := Nil; + FSubFamiliasController := Nil; ePrecioCoste.Properties.OnEditValueChanged := Nil; eDescuento.Properties.OnEditValueChanged := Nil; inherited; @@ -208,8 +261,8 @@ end; procedure TfrViewArticulo.CustomViewShow(Sender: TObject); begin inherited; - ePrecioCoste.Properties.OnEditValueChanged := PrecioNetoChanged; - eDescuento.Properties.OnEditValueChanged := PrecioNetoChanged; +// ePrecioCoste.Properties.OnEditValueChanged := PrecioNetoChanged; +// eDescuento.Properties.OnEditValueChanged := PrecioNetoChanged; end; function TfrViewArticulo.GetArticulo: IBizArticulo; @@ -238,6 +291,11 @@ begin FController.CalcularPrecioNeto(FArticulo); end; +procedure TfrViewArticulo.PuntosChanged(Sender: TObject); +begin + ePrecioPVP2.Value := Articulo.PRECIO_COSTE * AppFactuGES.EmpresaActiva.PRECIO_PUNTO; +end; + procedure TfrViewArticulo.SalvarImagen; {var aAux : String;} diff --git a/Source/Modulos/Articulos/Views/uViewArticulos.dfm b/Source/Modulos/Articulos/Views/uViewArticulos.dfm index da18338..7d49673 100644 --- a/Source/Modulos/Articulos/Views/uViewArticulos.dfm +++ b/Source/Modulos/Articulos/Views/uViewArticulos.dfm @@ -84,6 +84,12 @@ inherited frViewArticulos: TfrViewArticulos BestFitMaxWidth = 60 Width = 60 end + object cxGridViewREFERENCIA_PROV: TcxGridDBColumn + Caption = 'Subfamilia' + DataBinding.FieldName = 'REFERENCIA_PROV' + BestFitMaxWidth = 60 + Width = 60 + end object cxGridViewDESCRIPCION: TcxGridDBColumn Caption = 'Descripci'#243'n' DataBinding.FieldName = 'DESCRIPCION' @@ -98,19 +104,12 @@ inherited frViewArticulos: TfrViewArticulos VisibleForCustomization = False Width = 120 end - object cxGridViewREFERENCIA_PROV: TcxGridDBColumn - Caption = 'Ref. proveedor' - DataBinding.FieldName = 'REFERENCIA_PROV' - Visible = False - BestFitMaxWidth = 60 - VisibleForCustomization = False - Width = 60 - end object cxGridViewPRECIO_COSTE: TcxGridDBColumn - Caption = 'Precio coste' + Caption = 'Puntos' DataBinding.FieldName = 'PRECIO_COSTE' PropertiesClassName = 'TcxCurrencyEditProperties' Properties.Alignment.Horz = taRightJustify + Properties.AssignedValues.DisplayFormat = True FooterAlignmentHorz = taRightJustify HeaderAlignmentHorz = taRightJustify end @@ -150,6 +149,16 @@ inherited frViewArticulos: TfrViewArticulos DataBinding.FieldName = 'PRECIO_PVP' PropertiesClassName = 'TcxCurrencyEditProperties' Properties.Alignment.Horz = taRightJustify + Visible = False + HeaderAlignmentHorz = taRightJustify + VisibleForCustomization = False + end + object cxGridViewPRECIOPVP2: TcxGridDBColumn + Caption = 'Precio PVP' + PropertiesClassName = 'TcxCurrencyEditProperties' + Properties.Alignment.Horz = taRightJustify + Properties.UseLeftAlignmentOnEditing = False + OnGetDisplayText = cxGridViewPRECIOPVP2GetDisplayText HeaderAlignmentHorz = taRightJustify end end @@ -180,7 +189,6 @@ inherited frViewArticulos: TfrViewArticulos end inherited pnlAgrupaciones: TTBXDockablePanel Visible = True - ExplicitWidth = 554 inherited TBXAlignmentPanel1: TTBXAlignmentPanel inherited TBXToolbar1: TTBXToolbar object TBXSeparatorItem1: TTBXSeparatorItem diff --git a/Source/Modulos/Articulos/Views/uViewArticulos.pas b/Source/Modulos/Articulos/Views/uViewArticulos.pas index 3821617..c6d24da 100644 --- a/Source/Modulos/Articulos/Views/uViewArticulos.pas +++ b/Source/Modulos/Articulos/Views/uViewArticulos.pas @@ -37,7 +37,9 @@ type TBXSeparatorItem1: TTBXSeparatorItem; TBXSeparatorItem2: TTBXSeparatorItem; cxGridViewINVENTARIABLE: TcxGridDBColumn; + cxGridViewPRECIO_COSTE: TcxGridDBColumn; cxGridViewPRECIO_PVP: TcxGridDBColumn; + cxGridViewPRECIOPVP2: TcxGridDBColumn; procedure cxGridViewIDCustomDrawCell( Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); @@ -46,6 +48,8 @@ type procedure actFamiliaExecute(Sender: TObject); procedure actFamiliaUpdate(Sender: TObject); procedure cxGridViewMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); + procedure cxGridViewPRECIOPVP2GetDisplayText(Sender: TcxCustomGridTableItem; + ARecord: TcxCustomGridRecord; var AText: string); protected FArticulos: IBizArticulo; function GetArticulos: IBizArticulo; virtual; @@ -59,7 +63,7 @@ implementation uses //uDataModuleArticulos, -schArticulosClient_Intf; +schArticulosClient_Intf, uFactuGES_App; { TfrViewArticulos } @@ -172,4 +176,25 @@ begin end; end; +procedure TfrViewArticulos.cxGridViewPRECIOPVP2GetDisplayText( + Sender: TcxCustomGridTableItem; ARecord: TcxCustomGridRecord; + var AText: string); +var + ImportePVP : Double; +begin + //Se encarga de mostrar el campo calculado de importe PVP + ImportePVP := -1; + + if not VarIsNull(ARecord.Values[cxGridViewPRECIO_COSTE.Index]) then + if not VarIsNull(AppFactuGES.EmpresaActiva.PRECIO_PUNTO) then + ImportePVP := ARecord.Values[cxGridViewPRECIO_COSTE.Index] * AppFactuGES.EmpresaActiva.PRECIO_PUNTO + else + ImportePVP := 0; + + if (ImportePVP <> -1) then + begin + AText := FormatCurr(',0.00 €;-,0.00 €', FloatToCurr(ImportePVP)) + end; +end; + end. diff --git a/Source/Modulos/Articulos/Views/uViewDetallesArticulos.dfm b/Source/Modulos/Articulos/Views/uViewDetallesArticulos.dfm index ca863c7..9d711ec 100644 --- a/Source/Modulos/Articulos/Views/uViewDetallesArticulos.dfm +++ b/Source/Modulos/Articulos/Views/uViewDetallesArticulos.dfm @@ -98,9 +98,7 @@ inherited frViewDetallesArticulos: TfrViewDetallesArticulos Width = 68 end inherited cxGridViewDESCUENTO: TcxGridDBColumn - Visible = False HeaderAlignmentHorz = taRightJustify - VisibleForCustomization = False Width = 29 end inherited cxGridViewIMPORTENETO: TcxGridDBColumn @@ -119,6 +117,7 @@ inherited frViewDetallesArticulos: TfrViewDetallesArticulos end inherited TBXDock1: TTBXDock inherited TBXToolbar1: TTBXToolbar + ExplicitWidth = 451 object TBXItem12: TTBXItem [0] Action = actAnadirArticulos DisplayMode = nbdmImageAndText @@ -129,9 +128,7 @@ inherited frViewDetallesArticulos: TfrViewDetallesArticulos object actAnadirArticulos: TAction Category = 'Operaciones' Caption = 'A'#241'adir art'#237'culos' - Enabled = False ImageIndex = 12 - Visible = False OnExecute = actAnadirArticulosExecute OnUpdate = actAnadirArticulosUpdate end diff --git a/Source/Modulos/Contactos/Data/uDataModuleClientes.dfm b/Source/Modulos/Contactos/Data/uDataModuleClientes.dfm index 635a26b..82f356e 100644 --- a/Source/Modulos/Contactos/Data/uDataModuleClientes.dfm +++ b/Source/Modulos/Contactos/Data/uDataModuleClientes.dfm @@ -281,13 +281,19 @@ inherited DataModuleClientes: TDataModuleClientes item Name = 'VENCIMIENTO_FACTURAS_3' DataType = datInteger + end + item + Name = 'DESCUENTO' + DataType = datFloat + end + item + Name = 'DESCUENTO_LINEA' + DataType = datFloat end> Params = <> StreamingOptions = [soDisableEventsWhileStreaming] RemoteDataAdapter = rda_Contactos LocalDataStreamer = Bin2DataStreamer - DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch] - MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates] LogicalName = 'Clientes' IndexDefs = <> Left = 296 @@ -343,8 +349,6 @@ inherited DataModuleClientes: TDataModuleClientes MasterSource = ds_Clientes MasterFields = 'ID' DetailFields = 'ID_CLIENTE' - DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch] - MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates] LogicalName = 'ClientesDescuentos' IndexDefs = <> Left = 448 @@ -378,8 +382,6 @@ inherited DataModuleClientes: TDataModuleClientes StreamingOptions = [soDisableEventsWhileStreaming] RemoteDataAdapter = rda_Contactos LocalDataStreamer = Bin2DataStreamer - DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch] - MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates] LogicalName = 'GruposCliente' IndexDefs = <> Left = 552 @@ -442,8 +444,6 @@ inherited DataModuleClientes: TDataModuleClientes MasterSource = ds_Clientes MasterFields = 'ID' DetailFields = 'ID_CONTACTO' - DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch] - MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates] LogicalName = 'SubCuentasContacto' IndexDefs = <> Left = 600 @@ -476,8 +476,6 @@ inherited DataModuleClientes: TDataModuleClientes Params = <> StreamingOptions = [soDisableEventsWhileStreaming] RemoteDataAdapter = rda_Contactos - DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch] - MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates] LogicalName = 'ProcedenciasCliente' IndexDefs = <> Left = 648 diff --git a/Source/Modulos/Contactos/Model/schContactosClient_Intf.pas b/Source/Modulos/Contactos/Model/schContactosClient_Intf.pas index c4c1b87..16d085a 100644 --- a/Source/Modulos/Contactos/Model/schContactosClient_Intf.pas +++ b/Source/Modulos/Contactos/Model/schContactosClient_Intf.pas @@ -3,28 +3,30 @@ unit schContactosClient_Intf; interface uses - Classes, DB, schBase_Intf, SysUtils, uROClasses, uDADataTable, FmtBCD, uROXMLIntf; + 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_PersonalContacto = '{10850DAC-8A04-46B8-882A-D9D05178F533}'; - RID_DarTiendaDeUsuario = '{4A3CFB9A-64F8-41D3-8B67-D3BD773EC6F0}'; - RID_SubCuentasContacto = '{98A05B2F-8C31-4012-A9C3-40E3FD982FEF}'; - RID_Contactos = '{EC034344-6F48-4962-B530-9C8590FFA881}'; - RID_GruposCliente = '{0C0F2DE5-1C7D-42ED-AF00-57BB3F081EEA}'; - RID_DatosBancarios = '{8120C3EA-4394-4FA5-AA19-9DE1AABDABD6}'; - RID_Clientes = '{D01FA8E7-3AEC-4B37-9F26-015F3CD695CA}'; - RID_Proveedores = '{510572A1-E390-401D-A8CE-007F4104350C}'; - RID_Vendedores = '{DEDAD190-7EF1-42A4-BAED-CFFD9D5CED4D}'; - RID_DireccionesContacto = '{58A83B78-7C3F-4742-87CD-CC211F2D553F}'; - RID_ClientesDescuentos = '{BFBA6A41-1628-4808-B100-11561E0ED847}'; - RID_ProcedenciasCliente = '{E65DD5CD-347E-4C08-BB87-DDF77C45AEE6}'; - RID_GruposProveedor = '{4A8B2052-F645-428F-92D7-E8897E201BEC}'; - RID_Contactos_Refresh = '{A7344712-243B-40A9-A854-7EB1096E03B0}'; + RID_DarEmpresasContacto = '{B08B2B26-6152-452E-9122-B63D4F5E8177}'; + RID_PersonalContacto = '{5AACCEDA-0CFB-4618-8487-AFDBEF59F1DA}'; + RID_DarTiendaDeUsuario = '{596A636F-0514-4EE5-B1E4-EBA123DC5987}'; + RID_SubCuentasContacto = '{1233587F-0BB7-48AD-9817-2D78C9F6BD89}'; + RID_Contactos = '{F1BCF5ED-94DB-497F-B615-3CD9D33419A5}'; + RID_GruposCliente = '{1701F98E-9A7D-4FE1-8DF4-C5403698952F}'; + RID_DatosBancarios = '{C7E784C2-79BD-45EC-85BD-28A4F8A28768}'; + RID_Clientes = '{4516040D-C7FD-42FB-A534-27D882C4E44A}'; + RID_Proveedores = '{D94213C7-8EF1-4EE0-A3D2-6145996FEB31}'; + RID_Vendedores = '{D64ADEFD-943B-4DEB-9A00-94C5261652D0}'; + RID_DireccionesContacto = '{10A25629-161D-4AC6-8BC5-DD64FA06C169}'; + RID_ClientesDescuentos = '{8CDF59EF-E8FB-476C-80DF-A8CB174FA059}'; + RID_ProcedenciasCliente = '{C8B0E03E-40C8-44E6-BF61-87C2D77DA2DB}'; + RID_GruposProveedor = '{6084BA5B-6828-40E7-B51B-20AA866EDC9B}'; + RID_Contactos_Refresh = '{ECE7A8D0-90FE-42BD-9882-6CECEC6B1247}'; { Data table names } + nme_DarEmpresasContacto = 'DarEmpresasContacto'; nme_PersonalContacto = 'PersonalContacto'; nme_DarTiendaDeUsuario = 'DarTiendaDeUsuario'; nme_SubCuentasContacto = 'SubCuentasContacto'; @@ -40,6 +42,12 @@ const nme_GruposProveedor = 'GruposProveedor'; nme_Contactos_Refresh = 'Contactos_Refresh'; + { DarEmpresasContacto fields } + fld_DarEmpresasContactoID_EMPRESA = 'ID_EMPRESA'; + + { DarEmpresasContacto field indexes } + idx_DarEmpresasContactoID_EMPRESA = 0; + { PersonalContacto fields } fld_PersonalContactoID = 'ID'; fld_PersonalContactoID_CONTACTO = 'ID_CONTACTO'; @@ -212,6 +220,8 @@ const fld_ClientesVENCIMIENTO_FACTURAS_1 = 'VENCIMIENTO_FACTURAS_1'; fld_ClientesVENCIMIENTO_FACTURAS_2 = 'VENCIMIENTO_FACTURAS_2'; fld_ClientesVENCIMIENTO_FACTURAS_3 = 'VENCIMIENTO_FACTURAS_3'; + fld_ClientesDESCUENTO = 'DESCUENTO'; + fld_ClientesDESCUENTO_LINEA = 'DESCUENTO_LINEA'; { Clientes field indexes } idx_ClientesID = 0; @@ -255,6 +265,8 @@ const idx_ClientesVENCIMIENTO_FACTURAS_1 = 38; idx_ClientesVENCIMIENTO_FACTURAS_2 = 39; idx_ClientesVENCIMIENTO_FACTURAS_3 = 40; + idx_ClientesDESCUENTO = 41; + idx_ClientesDESCUENTO_LINEA = 42; { Proveedores fields } fld_ProveedoresID = 'ID'; @@ -517,9 +529,44 @@ const idx_Contactos_RefreshPERSONA_CONTACTO = 20; type + { IDarEmpresasContacto } + IDarEmpresasContacto = interface(IDAStronglyTypedDataTable) + ['{F0DE14FF-9BB7-410A-BF62-D69E20426D61}'] + { Property getters and setters } + function GetID_EMPRESAValue: Integer; + procedure SetID_EMPRESAValue(const aValue: Integer); + function GetID_EMPRESAIsNull: Boolean; + procedure SetID_EMPRESAIsNull(const aValue: Boolean); + + + { Properties } + property ID_EMPRESA: Integer read GetID_EMPRESAValue write SetID_EMPRESAValue; + property ID_EMPRESAIsNull: Boolean read GetID_EMPRESAIsNull write SetID_EMPRESAIsNull; + end; + + { TDarEmpresasContactoDataTableRules } + TDarEmpresasContactoDataTableRules = class(TIntfObjectDADataTableRules, IDarEmpresasContacto) + private + protected + { Property getters and setters } + function GetID_EMPRESAValue: Integer; virtual; + procedure SetID_EMPRESAValue(const aValue: Integer); virtual; + function GetID_EMPRESAIsNull: Boolean; virtual; + procedure SetID_EMPRESAIsNull(const aValue: Boolean); virtual; + + { Properties } + property ID_EMPRESA: Integer read GetID_EMPRESAValue write SetID_EMPRESAValue; + property ID_EMPRESAIsNull: Boolean read GetID_EMPRESAIsNull write SetID_EMPRESAIsNull; + + public + constructor Create(aDataTable: TDADataTable); override; + destructor Destroy; override; + + end; + { IPersonalContacto } IPersonalContacto = interface(IDAStronglyTypedDataTable) - ['{DEAA6039-614F-4B15-B4F2-F9C9B4DB3A15}'] + ['{7E79652F-1F5A-4EDB-A235-FEBB14E8F7B4}'] { Property getters and setters } function GetIDValue: Integer; procedure SetIDValue(const aValue: Integer); @@ -662,7 +709,7 @@ type { IDarTiendaDeUsuario } IDarTiendaDeUsuario = interface(IDAStronglyTypedDataTable) - ['{88F010C0-E12E-4427-8C13-90DCB2CBF53C}'] + ['{1C479BCF-55C5-491A-8A3B-7BEAE736497C}'] { Property getters and setters } function GetID_TIENDAValue: Integer; procedure SetID_TIENDAValue(const aValue: Integer); @@ -697,7 +744,7 @@ type { ISubCuentasContacto } ISubCuentasContacto = interface(IDAStronglyTypedDataTable) - ['{835A0070-997F-416F-9718-CB82124338A8}'] + ['{C03A519D-7A17-43D9-AA9A-356AE0969385}'] { Property getters and setters } function GetIDValue: Integer; procedure SetIDValue(const aValue: Integer); @@ -792,7 +839,7 @@ type { IContactos } IContactos = interface(IDAStronglyTypedDataTable) - ['{B479C112-135D-46D0-B72B-2A46C8D32A87}'] + ['{5FF8FFAA-013B-4262-83A5-4D79B5BDB2FB}'] { Property getters and setters } function GetIDValue: Integer; procedure SetIDValue(const aValue: Integer); @@ -1115,7 +1162,7 @@ type { IGruposCliente } IGruposCliente = interface(IDAStronglyTypedDataTable) - ['{F4F42BF3-C319-4CAC-A11E-435ACF830CC5}'] + ['{5DB5624D-02FF-47A3-AC0D-F9C547224C8D}'] { Property getters and setters } function GetIDValue: Integer; procedure SetIDValue(const aValue: Integer); @@ -1162,7 +1209,7 @@ type { IDatosBancarios } IDatosBancarios = interface(IDAStronglyTypedDataTable) - ['{5BC08B80-5030-40F7-92FB-59256E2C0E75}'] + ['{1EA1794A-40CF-4222-8A00-05D99F6F711C}'] { Property getters and setters } function GetIDValue: Integer; procedure SetIDValue(const aValue: Integer); @@ -1293,7 +1340,7 @@ type { IClientes } IClientes = interface(IDAStronglyTypedDataTable) - ['{48D18C28-B5EE-4C37-B313-A8AF373F3D64}'] + ['{495F21F5-EB41-445D-9F0A-00E250308A8B}'] { Property getters and setters } function GetIDValue: Integer; procedure SetIDValue(const aValue: Integer); @@ -1458,6 +1505,14 @@ type procedure SetVENCIMIENTO_FACTURAS_3Value(const aValue: Integer); function GetVENCIMIENTO_FACTURAS_3IsNull: Boolean; procedure SetVENCIMIENTO_FACTURAS_3IsNull(const aValue: Boolean); + function GetDESCUENTOValue: Float; + procedure SetDESCUENTOValue(const aValue: Float); + function GetDESCUENTOIsNull: Boolean; + procedure SetDESCUENTOIsNull(const aValue: Boolean); + function GetDESCUENTO_LINEAValue: Float; + procedure SetDESCUENTO_LINEAValue(const aValue: Float); + function GetDESCUENTO_LINEAIsNull: Boolean; + procedure SetDESCUENTO_LINEAIsNull(const aValue: Boolean); { Properties } @@ -1543,6 +1598,10 @@ type property VENCIMIENTO_FACTURAS_2IsNull: Boolean read GetVENCIMIENTO_FACTURAS_2IsNull write SetVENCIMIENTO_FACTURAS_2IsNull; property VENCIMIENTO_FACTURAS_3: Integer read GetVENCIMIENTO_FACTURAS_3Value write SetVENCIMIENTO_FACTURAS_3Value; property VENCIMIENTO_FACTURAS_3IsNull: Boolean read GetVENCIMIENTO_FACTURAS_3IsNull write SetVENCIMIENTO_FACTURAS_3IsNull; + property DESCUENTO: Float read GetDESCUENTOValue write SetDESCUENTOValue; + property DESCUENTOIsNull: Boolean read GetDESCUENTOIsNull write SetDESCUENTOIsNull; + property DESCUENTO_LINEA: Float read GetDESCUENTO_LINEAValue write SetDESCUENTO_LINEAValue; + property DESCUENTO_LINEAIsNull: Boolean read GetDESCUENTO_LINEAIsNull write SetDESCUENTO_LINEAIsNull; end; { TClientesDataTableRules } @@ -1715,6 +1774,14 @@ type procedure SetVENCIMIENTO_FACTURAS_3Value(const aValue: Integer); virtual; function GetVENCIMIENTO_FACTURAS_3IsNull: Boolean; virtual; procedure SetVENCIMIENTO_FACTURAS_3IsNull(const aValue: Boolean); virtual; + function GetDESCUENTOValue: Float; virtual; + procedure SetDESCUENTOValue(const aValue: Float); virtual; + function GetDESCUENTOIsNull: Boolean; virtual; + procedure SetDESCUENTOIsNull(const aValue: Boolean); virtual; + function GetDESCUENTO_LINEAValue: Float; virtual; + procedure SetDESCUENTO_LINEAValue(const aValue: Float); virtual; + function GetDESCUENTO_LINEAIsNull: Boolean; virtual; + procedure SetDESCUENTO_LINEAIsNull(const aValue: Boolean); virtual; { Properties } property ID: Integer read GetIDValue write SetIDValue; @@ -1799,6 +1866,10 @@ type property VENCIMIENTO_FACTURAS_2IsNull: Boolean read GetVENCIMIENTO_FACTURAS_2IsNull write SetVENCIMIENTO_FACTURAS_2IsNull; property VENCIMIENTO_FACTURAS_3: Integer read GetVENCIMIENTO_FACTURAS_3Value write SetVENCIMIENTO_FACTURAS_3Value; property VENCIMIENTO_FACTURAS_3IsNull: Boolean read GetVENCIMIENTO_FACTURAS_3IsNull write SetVENCIMIENTO_FACTURAS_3IsNull; + property DESCUENTO: Float read GetDESCUENTOValue write SetDESCUENTOValue; + property DESCUENTOIsNull: Boolean read GetDESCUENTOIsNull write SetDESCUENTOIsNull; + property DESCUENTO_LINEA: Float read GetDESCUENTO_LINEAValue write SetDESCUENTO_LINEAValue; + property DESCUENTO_LINEAIsNull: Boolean read GetDESCUENTO_LINEAIsNull write SetDESCUENTO_LINEAIsNull; public constructor Create(aDataTable: TDADataTable); override; @@ -1808,7 +1879,7 @@ type { IProveedores } IProveedores = interface(IDAStronglyTypedDataTable) - ['{A92DE88A-7E08-4CD2-9E99-757ECD192475}'] + ['{E986088F-9A0F-45F7-AEA2-FFDECE36AE7B}'] { Property getters and setters } function GetIDValue: Integer; procedure SetIDValue(const aValue: Integer); @@ -2335,7 +2406,7 @@ type { IVendedores } IVendedores = interface(IDAStronglyTypedDataTable) - ['{D1EF06EF-DA47-4324-AA3F-481CB71ACFDD}'] + ['{13320D0A-CD1C-4584-8812-921048D6DA49}'] { Property getters and setters } function GetIDValue: Integer; procedure SetIDValue(const aValue: Integer); @@ -2682,7 +2753,7 @@ type { IDireccionesContacto } IDireccionesContacto = interface(IDAStronglyTypedDataTable) - ['{333D0482-701A-4BB6-AA51-1F1F34D6A8F1}'] + ['{F5CE05FD-B302-4CD2-9D9D-255027C62E1D}'] { Property getters and setters } function GetIDValue: Integer; procedure SetIDValue(const aValue: Integer); @@ -2909,7 +2980,7 @@ type { IClientesDescuentos } IClientesDescuentos = interface(IDAStronglyTypedDataTable) - ['{A1F86ADF-8673-4E8F-B3C4-F864F7A5FEBB}'] + ['{304028E2-1695-44C5-A72C-4322150A3BAE}'] { Property getters and setters } function GetIDValue: Integer; procedure SetIDValue(const aValue: Integer); @@ -2992,7 +3063,7 @@ type { IProcedenciasCliente } IProcedenciasCliente = interface(IDAStronglyTypedDataTable) - ['{9789278E-8F6D-427E-82D1-6386D8AB21AE}'] + ['{8997128D-293B-4C78-A421-F4CE60FEBFFB}'] { Property getters and setters } function GetIDValue: Integer; procedure SetIDValue(const aValue: Integer); @@ -3039,7 +3110,7 @@ type { IGruposProveedor } IGruposProveedor = interface(IDAStronglyTypedDataTable) - ['{F0DACCCA-7AB3-4862-BD6D-6D9C401378AA}'] + ['{0D94945D-DA5D-4A3D-B662-AAC86E635EFC}'] { Property getters and setters } function GetIDValue: Integer; procedure SetIDValue(const aValue: Integer); @@ -3086,7 +3157,7 @@ type { IContactos_Refresh } IContactos_Refresh = interface(IDAStronglyTypedDataTable) - ['{6041072A-9CB7-4096-88CF-5069C7EA0833}'] + ['{61B17C88-7DDE-4839-9C4F-46B2934F93C4}'] { Property getters and setters } function GetIDValue: Integer; procedure SetIDValue(const aValue: Integer); @@ -3363,6 +3434,39 @@ implementation uses Variants, uROBinaryHelpers; +{ TDarEmpresasContactoDataTableRules } +constructor TDarEmpresasContactoDataTableRules.Create(aDataTable: TDADataTable); +begin + inherited; +end; + +destructor TDarEmpresasContactoDataTableRules.Destroy; +begin + inherited; +end; + +function TDarEmpresasContactoDataTableRules.GetID_EMPRESAValue: Integer; +begin + result := DataTable.Fields[idx_DarEmpresasContactoID_EMPRESA].AsInteger; +end; + +procedure TDarEmpresasContactoDataTableRules.SetID_EMPRESAValue(const aValue: Integer); +begin + DataTable.Fields[idx_DarEmpresasContactoID_EMPRESA].AsInteger := aValue; +end; + +function TDarEmpresasContactoDataTableRules.GetID_EMPRESAIsNull: boolean; +begin + result := DataTable.Fields[idx_DarEmpresasContactoID_EMPRESA].IsNull; +end; + +procedure TDarEmpresasContactoDataTableRules.SetID_EMPRESAIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_DarEmpresasContactoID_EMPRESA].AsVariant := Null; +end; + + { TPersonalContactoDataTableRules } constructor TPersonalContactoDataTableRules.Create(aDataTable: TDADataTable); begin @@ -5434,6 +5538,48 @@ begin DataTable.Fields[idx_ClientesVENCIMIENTO_FACTURAS_3].AsVariant := Null; end; +function TClientesDataTableRules.GetDESCUENTOValue: Float; +begin + result := DataTable.Fields[idx_ClientesDESCUENTO].AsFloat; +end; + +procedure TClientesDataTableRules.SetDESCUENTOValue(const aValue: Float); +begin + DataTable.Fields[idx_ClientesDESCUENTO].AsFloat := aValue; +end; + +function TClientesDataTableRules.GetDESCUENTOIsNull: boolean; +begin + result := DataTable.Fields[idx_ClientesDESCUENTO].IsNull; +end; + +procedure TClientesDataTableRules.SetDESCUENTOIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_ClientesDESCUENTO].AsVariant := Null; +end; + +function TClientesDataTableRules.GetDESCUENTO_LINEAValue: Float; +begin + result := DataTable.Fields[idx_ClientesDESCUENTO_LINEA].AsFloat; +end; + +procedure TClientesDataTableRules.SetDESCUENTO_LINEAValue(const aValue: Float); +begin + DataTable.Fields[idx_ClientesDESCUENTO_LINEA].AsFloat := aValue; +end; + +function TClientesDataTableRules.GetDESCUENTO_LINEAIsNull: boolean; +begin + result := DataTable.Fields[idx_ClientesDESCUENTO_LINEA].IsNull; +end; + +procedure TClientesDataTableRules.SetDESCUENTO_LINEAIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_ClientesDESCUENTO_LINEA].AsVariant := Null; +end; + { TProveedoresDataTableRules } constructor TProveedoresDataTableRules.Create(aDataTable: TDADataTable); @@ -7984,6 +8130,7 @@ end; initialization + RegisterDataTableRules(RID_DarEmpresasContacto, TDarEmpresasContactoDataTableRules); RegisterDataTableRules(RID_PersonalContacto, TPersonalContactoDataTableRules); RegisterDataTableRules(RID_DarTiendaDeUsuario, TDarTiendaDeUsuarioDataTableRules); RegisterDataTableRules(RID_SubCuentasContacto, TSubCuentasContactoDataTableRules); diff --git a/Source/Modulos/Contactos/Model/schContactosServer_Intf.pas b/Source/Modulos/Contactos/Model/schContactosServer_Intf.pas index 3536c0b..f04e95f 100644 --- a/Source/Modulos/Contactos/Model/schContactosServer_Intf.pas +++ b/Source/Modulos/Contactos/Model/schContactosServer_Intf.pas @@ -9,25 +9,60 @@ 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_PersonalContactoDelta = '{5E077D9B-D4D9-4B7D-B1F4-8236A79DC607}'; - RID_DarTiendaDeUsuarioDelta = '{7AFE4420-13DD-420E-A8DE-93464EF93F59}'; - RID_SubCuentasContactoDelta = '{0FAD99B4-0F6F-43AB-A6A2-D05725700767}'; - RID_ContactosDelta = '{29E47B8B-30E6-4B4E-B218-6E3CB867BDC8}'; - RID_GruposClienteDelta = '{8B15524D-83C1-4F38-ACCE-2A0CA45DBFEF}'; - RID_DatosBancariosDelta = '{AE0DA606-F1FC-4725-94C3-F1F22858DF25}'; - RID_ClientesDelta = '{6CD74F52-43BA-4DDD-9626-374A140E486C}'; - RID_ProveedoresDelta = '{45BEDF42-D57A-4B27-9A39-DAA56D0EFDAA}'; - RID_VendedoresDelta = '{365B6366-050C-443E-8A11-66EB0D7F9E0B}'; - RID_DireccionesContactoDelta = '{BFBF154C-C62B-4DFC-B816-4C7649222909}'; - RID_ClientesDescuentosDelta = '{75E242C6-00BE-4179-AE7F-4393F5AE9B4A}'; - RID_ProcedenciasClienteDelta = '{1D54F076-4D87-414E-B567-2052949AF687}'; - RID_GruposProveedorDelta = '{C3A6BA6F-15EC-486F-8212-0CEB2A66D6A1}'; - RID_Contactos_RefreshDelta = '{F1DF7DB2-6FC0-43D6-B14B-E6E6DE744DE4}'; + RID_DarEmpresasContactoDelta = '{FB6A8530-060C-4400-A106-FF904C79CD28}'; + RID_PersonalContactoDelta = '{7C9E3008-B9E5-4BEE-AEC8-260BA70C262B}'; + RID_DarTiendaDeUsuarioDelta = '{20388966-2224-417C-B15F-9E11960B3118}'; + RID_SubCuentasContactoDelta = '{0D54356F-7EEC-4204-B201-D4AFB11C109D}'; + RID_ContactosDelta = '{A558B005-DC6F-4FD7-8221-B8977A163DBD}'; + RID_GruposClienteDelta = '{EA29DAA6-299E-490D-AF14-AF4C1E8409CF}'; + RID_DatosBancariosDelta = '{26484ECF-20D8-4035-B50D-7AE609C06308}'; + RID_ClientesDelta = '{7F411F05-F7EB-45C2-8D46-0C451DCDC9EB}'; + RID_ProveedoresDelta = '{0BE0828F-BB40-4A7B-9774-B39DFFF9B488}'; + RID_VendedoresDelta = '{44AEFE00-C5A8-4F44-83E9-D496BF800E87}'; + RID_DireccionesContactoDelta = '{18F805F8-E168-4C5B-91D4-B688AF8FA680}'; + RID_ClientesDescuentosDelta = '{662A297B-A003-4239-83A5-698F54B8C2B0}'; + RID_ProcedenciasClienteDelta = '{7CA86C64-4446-4EC9-9964-DF12FC859719}'; + RID_GruposProveedorDelta = '{C100483C-023A-4298-87FD-6D26CE7DEA37}'; + RID_Contactos_RefreshDelta = '{2CF622BB-DBC1-47DC-8AF1-854E33953AF8}'; type + { IDarEmpresasContactoDelta } + IDarEmpresasContactoDelta = interface(IDarEmpresasContacto) + ['{FB6A8530-060C-4400-A106-FF904C79CD28}'] + { Property getters and setters } + function GetOldID_EMPRESAValue : Integer; + + { Properties } + property OldID_EMPRESA : Integer read GetOldID_EMPRESAValue; + end; + + { TDarEmpresasContactoBusinessProcessorRules } + TDarEmpresasContactoBusinessProcessorRules = class(TDABusinessProcessorRules, IDarEmpresasContacto, IDarEmpresasContactoDelta) + private + protected + { Property getters and setters } + function GetID_EMPRESAValue: Integer; virtual; + function GetID_EMPRESAIsNull: Boolean; virtual; + function GetOldID_EMPRESAValue: Integer; virtual; + function GetOldID_EMPRESAIsNull: Boolean; virtual; + procedure SetID_EMPRESAValue(const aValue: Integer); virtual; + procedure SetID_EMPRESAIsNull(const aValue: Boolean); virtual; + + { Properties } + property ID_EMPRESA : Integer read GetID_EMPRESAValue write SetID_EMPRESAValue; + property ID_EMPRESAIsNull : Boolean read GetID_EMPRESAIsNull write SetID_EMPRESAIsNull; + property OldID_EMPRESA : Integer read GetOldID_EMPRESAValue; + property OldID_EMPRESAIsNull : Boolean read GetOldID_EMPRESAIsNull; + + public + constructor Create(aBusinessProcessor: TDABusinessProcessor); override; + destructor Destroy; override; + + end; + { IPersonalContactoDelta } IPersonalContactoDelta = interface(IPersonalContacto) - ['{5E077D9B-D4D9-4B7D-B1F4-8236A79DC607}'] + ['{7C9E3008-B9E5-4BEE-AEC8-260BA70C262B}'] { Property getters and setters } function GetOldIDValue : Integer; function GetOldID_CONTACTOValue : Integer; @@ -169,7 +204,7 @@ type { IDarTiendaDeUsuarioDelta } IDarTiendaDeUsuarioDelta = interface(IDarTiendaDeUsuario) - ['{7AFE4420-13DD-420E-A8DE-93464EF93F59}'] + ['{20388966-2224-417C-B15F-9E11960B3118}'] { Property getters and setters } function GetOldID_TIENDAValue : Integer; @@ -203,7 +238,7 @@ type { ISubCuentasContactoDelta } ISubCuentasContactoDelta = interface(ISubCuentasContacto) - ['{0FAD99B4-0F6F-43AB-A6A2-D05725700767}'] + ['{0D54356F-7EEC-4204-B201-D4AFB11C109D}'] { Property getters and setters } function GetOldIDValue : Integer; function GetOldREF_SUBCUENTAValue : String; @@ -297,7 +332,7 @@ type { IContactosDelta } IContactosDelta = interface(IContactos) - ['{29E47B8B-30E6-4B4E-B218-6E3CB867BDC8}'] + ['{A558B005-DC6F-4FD7-8221-B8977A163DBD}'] { Property getters and setters } function GetOldIDValue : Integer; function GetOldID_CATEGORIAValue : Integer; @@ -620,7 +655,7 @@ type { IGruposClienteDelta } IGruposClienteDelta = interface(IGruposCliente) - ['{8B15524D-83C1-4F38-ACCE-2A0CA45DBFEF}'] + ['{EA29DAA6-299E-490D-AF14-AF4C1E8409CF}'] { Property getters and setters } function GetOldIDValue : Integer; function GetOldDESCRIPCIONValue : String; @@ -666,7 +701,7 @@ type { IDatosBancariosDelta } IDatosBancariosDelta = interface(IDatosBancarios) - ['{AE0DA606-F1FC-4725-94C3-F1F22858DF25}'] + ['{26484ECF-20D8-4035-B50D-7AE609C06308}'] { Property getters and setters } function GetOldIDValue : Integer; function GetOldID_CONTACTOValue : Integer; @@ -796,7 +831,7 @@ type { IClientesDelta } IClientesDelta = interface(IClientes) - ['{6CD74F52-43BA-4DDD-9626-374A140E486C}'] + ['{7F411F05-F7EB-45C2-8D46-0C451DCDC9EB}'] { Property getters and setters } function GetOldIDValue : Integer; function GetOldID_CATEGORIAValue : Integer; @@ -839,6 +874,8 @@ type function GetOldVENCIMIENTO_FACTURAS_1Value : Integer; function GetOldVENCIMIENTO_FACTURAS_2Value : Integer; function GetOldVENCIMIENTO_FACTURAS_3Value : Integer; + function GetOldDESCUENTOValue : Float; + function GetOldDESCUENTO_LINEAValue : Float; { Properties } property OldID : Integer read GetOldIDValue; @@ -882,6 +919,8 @@ type property OldVENCIMIENTO_FACTURAS_1 : Integer read GetOldVENCIMIENTO_FACTURAS_1Value; property OldVENCIMIENTO_FACTURAS_2 : Integer read GetOldVENCIMIENTO_FACTURAS_2Value; property OldVENCIMIENTO_FACTURAS_3 : Integer read GetOldVENCIMIENTO_FACTURAS_3Value; + property OldDESCUENTO : Float read GetOldDESCUENTOValue; + property OldDESCUENTO_LINEA : Float read GetOldDESCUENTO_LINEAValue; end; { TClientesBusinessProcessorRules } @@ -1136,6 +1175,18 @@ type function GetOldVENCIMIENTO_FACTURAS_3IsNull: Boolean; virtual; procedure SetVENCIMIENTO_FACTURAS_3Value(const aValue: Integer); virtual; procedure SetVENCIMIENTO_FACTURAS_3IsNull(const aValue: Boolean); virtual; + function GetDESCUENTOValue: Float; virtual; + function GetDESCUENTOIsNull: Boolean; virtual; + function GetOldDESCUENTOValue: Float; virtual; + function GetOldDESCUENTOIsNull: Boolean; virtual; + procedure SetDESCUENTOValue(const aValue: Float); virtual; + procedure SetDESCUENTOIsNull(const aValue: Boolean); virtual; + function GetDESCUENTO_LINEAValue: Float; virtual; + function GetDESCUENTO_LINEAIsNull: Boolean; virtual; + function GetOldDESCUENTO_LINEAValue: Float; virtual; + function GetOldDESCUENTO_LINEAIsNull: Boolean; virtual; + procedure SetDESCUENTO_LINEAValue(const aValue: Float); virtual; + procedure SetDESCUENTO_LINEAIsNull(const aValue: Boolean); virtual; { Properties } property ID : Integer read GetIDValue write SetIDValue; @@ -1302,6 +1353,14 @@ type property VENCIMIENTO_FACTURAS_3IsNull : Boolean read GetVENCIMIENTO_FACTURAS_3IsNull write SetVENCIMIENTO_FACTURAS_3IsNull; property OldVENCIMIENTO_FACTURAS_3 : Integer read GetOldVENCIMIENTO_FACTURAS_3Value; property OldVENCIMIENTO_FACTURAS_3IsNull : Boolean read GetOldVENCIMIENTO_FACTURAS_3IsNull; + property DESCUENTO : Float read GetDESCUENTOValue write SetDESCUENTOValue; + property DESCUENTOIsNull : Boolean read GetDESCUENTOIsNull write SetDESCUENTOIsNull; + property OldDESCUENTO : Float read GetOldDESCUENTOValue; + property OldDESCUENTOIsNull : Boolean read GetOldDESCUENTOIsNull; + property DESCUENTO_LINEA : Float read GetDESCUENTO_LINEAValue write SetDESCUENTO_LINEAValue; + property DESCUENTO_LINEAIsNull : Boolean read GetDESCUENTO_LINEAIsNull write SetDESCUENTO_LINEAIsNull; + property OldDESCUENTO_LINEA : Float read GetOldDESCUENTO_LINEAValue; + property OldDESCUENTO_LINEAIsNull : Boolean read GetOldDESCUENTO_LINEAIsNull; public constructor Create(aBusinessProcessor: TDABusinessProcessor); override; @@ -1311,7 +1370,7 @@ type { IProveedoresDelta } IProveedoresDelta = interface(IProveedores) - ['{45BEDF42-D57A-4B27-9A39-DAA56D0EFDAA}'] + ['{0BE0828F-BB40-4A7B-9774-B39DFFF9B488}'] { Property getters and setters } function GetOldIDValue : Integer; function GetOldID_CATEGORIAValue : Integer; @@ -1838,7 +1897,7 @@ type { IVendedoresDelta } IVendedoresDelta = interface(IVendedores) - ['{365B6366-050C-443E-8A11-66EB0D7F9E0B}'] + ['{44AEFE00-C5A8-4F44-83E9-D496BF800E87}'] { Property getters and setters } function GetOldIDValue : Integer; function GetOldID_CATEGORIAValue : Integer; @@ -2185,7 +2244,7 @@ type { IDireccionesContactoDelta } IDireccionesContactoDelta = interface(IDireccionesContacto) - ['{BFBF154C-C62B-4DFC-B816-4C7649222909}'] + ['{18F805F8-E168-4C5B-91D4-B688AF8FA680}'] { Property getters and setters } function GetOldIDValue : Integer; function GetOldID_CONTACTOValue : Integer; @@ -2412,7 +2471,7 @@ type { IClientesDescuentosDelta } IClientesDescuentosDelta = interface(IClientesDescuentos) - ['{75E242C6-00BE-4179-AE7F-4393F5AE9B4A}'] + ['{662A297B-A003-4239-83A5-698F54B8C2B0}'] { Property getters and setters } function GetOldIDValue : Integer; function GetOldID_CLIENTEValue : Integer; @@ -2494,7 +2553,7 @@ type { IProcedenciasClienteDelta } IProcedenciasClienteDelta = interface(IProcedenciasCliente) - ['{1D54F076-4D87-414E-B567-2052949AF687}'] + ['{7CA86C64-4446-4EC9-9964-DF12FC859719}'] { Property getters and setters } function GetOldIDValue : Integer; function GetOldDESCRIPCIONValue : String; @@ -2540,7 +2599,7 @@ type { IGruposProveedorDelta } IGruposProveedorDelta = interface(IGruposProveedor) - ['{C3A6BA6F-15EC-486F-8212-0CEB2A66D6A1}'] + ['{C100483C-023A-4298-87FD-6D26CE7DEA37}'] { Property getters and setters } function GetOldIDValue : Integer; function GetOldDESCRIPCIONValue : String; @@ -2586,7 +2645,7 @@ type { IContactos_RefreshDelta } IContactos_RefreshDelta = interface(IContactos_Refresh) - ['{F1DF7DB2-6FC0-43D6-B14B-E6E6DE744DE4}'] + ['{2CF622BB-DBC1-47DC-8AF1-854E33953AF8}'] { Property getters and setters } function GetOldIDValue : Integer; function GetOldNIF_CIFValue : String; @@ -2864,6 +2923,49 @@ implementation uses Variants, uROBinaryHelpers, uDAInterfaces; +{ TDarEmpresasContactoBusinessProcessorRules } +constructor TDarEmpresasContactoBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor); +begin + inherited; +end; + +destructor TDarEmpresasContactoBusinessProcessorRules.Destroy; +begin + inherited; +end; + +function TDarEmpresasContactoBusinessProcessorRules.GetID_EMPRESAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_DarEmpresasContactoID_EMPRESA]; +end; + +function TDarEmpresasContactoBusinessProcessorRules.GetID_EMPRESAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_DarEmpresasContactoID_EMPRESA]); +end; + +function TDarEmpresasContactoBusinessProcessorRules.GetOldID_EMPRESAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_DarEmpresasContactoID_EMPRESA]; +end; + +function TDarEmpresasContactoBusinessProcessorRules.GetOldID_EMPRESAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_DarEmpresasContactoID_EMPRESA]); +end; + +procedure TDarEmpresasContactoBusinessProcessorRules.SetID_EMPRESAValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_DarEmpresasContactoID_EMPRESA] := aValue; +end; + +procedure TDarEmpresasContactoBusinessProcessorRules.SetID_EMPRESAIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_DarEmpresasContactoID_EMPRESA] := Null; +end; + + { TPersonalContactoBusinessProcessorRules } constructor TPersonalContactoBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor); begin @@ -5877,6 +5979,68 @@ begin BusinessProcessor.CurrentChange.NewValueByName[fld_ClientesVENCIMIENTO_FACTURAS_3] := Null; end; +function TClientesBusinessProcessorRules.GetDESCUENTOValue: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ClientesDESCUENTO]; +end; + +function TClientesBusinessProcessorRules.GetDESCUENTOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ClientesDESCUENTO]); +end; + +function TClientesBusinessProcessorRules.GetOldDESCUENTOValue: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ClientesDESCUENTO]; +end; + +function TClientesBusinessProcessorRules.GetOldDESCUENTOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ClientesDESCUENTO]); +end; + +procedure TClientesBusinessProcessorRules.SetDESCUENTOValue(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ClientesDESCUENTO] := aValue; +end; + +procedure TClientesBusinessProcessorRules.SetDESCUENTOIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_ClientesDESCUENTO] := Null; +end; + +function TClientesBusinessProcessorRules.GetDESCUENTO_LINEAValue: Float; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ClientesDESCUENTO_LINEA]; +end; + +function TClientesBusinessProcessorRules.GetDESCUENTO_LINEAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ClientesDESCUENTO_LINEA]); +end; + +function TClientesBusinessProcessorRules.GetOldDESCUENTO_LINEAValue: Float; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ClientesDESCUENTO_LINEA]; +end; + +function TClientesBusinessProcessorRules.GetOldDESCUENTO_LINEAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ClientesDESCUENTO_LINEA]); +end; + +procedure TClientesBusinessProcessorRules.SetDESCUENTO_LINEAValue(const aValue: Float); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ClientesDESCUENTO_LINEA] := aValue; +end; + +procedure TClientesBusinessProcessorRules.SetDESCUENTO_LINEAIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_ClientesDESCUENTO_LINEA] := Null; +end; + { TProveedoresBusinessProcessorRules } constructor TProveedoresBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor); @@ -9591,6 +9755,7 @@ end; initialization + RegisterBusinessProcessorRules(RID_DarEmpresasContactoDelta, TDarEmpresasContactoBusinessProcessorRules); RegisterBusinessProcessorRules(RID_PersonalContactoDelta, TPersonalContactoBusinessProcessorRules); RegisterBusinessProcessorRules(RID_DarTiendaDeUsuarioDelta, TDarTiendaDeUsuarioBusinessProcessorRules); RegisterBusinessProcessorRules(RID_SubCuentasContactoDelta, TSubCuentasContactoBusinessProcessorRules); diff --git a/Source/Modulos/Contactos/Model/uBizClientesServer.pas b/Source/Modulos/Contactos/Model/uBizClientesServer.pas index a301dcb..95527b6 100644 --- a/Source/Modulos/Contactos/Model/uBizClientesServer.pas +++ b/Source/Modulos/Contactos/Model/uBizClientesServer.pas @@ -184,6 +184,9 @@ begin ParamByName('VENCIMIENTO_FACTURAS_2').Value := aChange.NewValueByName[fld_ProveedoresVENCIMIENTO_FACTURAS_2]; ParamByName('VENCIMIENTO_FACTURAS_3').Value := aChange.NewValueByName[fld_ProveedoresVENCIMIENTO_FACTURAS_3]; + ParamByName('DESCUENTO').Value := aChange.NewValueByName[fld_ClientesDESCUENTO]; + ParamByName('DESCUENTO_LINEA').Value := aChange.NewValueByName[fld_ClientesDESCUENTO_LINEA]; + Execute; end; @@ -238,6 +241,9 @@ begin ParamByName('VENCIMIENTO_FACTURAS_2').Value := aChange.NewValueByName[fld_ProveedoresVENCIMIENTO_FACTURAS_2]; ParamByName('VENCIMIENTO_FACTURAS_3').Value := aChange.NewValueByName[fld_ProveedoresVENCIMIENTO_FACTURAS_3]; + ParamByName('DESCUENTO').Value := aChange.NewValueByName[fld_ClientesDESCUENTO]; + ParamByName('DESCUENTO_LINEA').Value := aChange.NewValueByName[fld_ClientesDESCUENTO_LINEA]; + Execute; end; diff --git a/Source/Modulos/Contactos/Model/uBizContactos.pas b/Source/Modulos/Contactos/Model/uBizContactos.pas index 8bc91b6..d996bcf 100644 --- a/Source/Modulos/Contactos/Model/uBizContactos.pas +++ b/Source/Modulos/Contactos/Model/uBizContactos.pas @@ -45,6 +45,12 @@ type IBizCliente = interface (IBizContacto) ['{EA48A6AA-AC96-4AD9-B383-F2FD4552EE76}'] + function GetDESCUENTOValue: Float; + procedure SetDESCUENTOValue(const aValue: Float); + + function GetDESCUENTO_LINEAValue: Float; + procedure SetDESCUENTO_LINEAValue(const aValue: Float); + function GetGRUPO_CLIENTEValue: String; procedure SetGRUPO_CLIENTEValue(const aValue: String); @@ -101,6 +107,8 @@ type property ID_TIPO_IVA: Integer read GetID_TIPO_IVAValue write SetID_TIPO_IVAValue; property ID_FORMA_PAGO: Integer read GetID_FORMA_PAGOValue write SetID_FORMA_PAGOValue; property TIENDA_WEB: Integer read GetTIENDA_WEBValue write SetTIENDA_WEBValue; + property DESCUENTO: Float read GetDESCUENTOValue write SetDESCUENTOValue; + property DESCUENTO_LINEA: Float read GetDESCUENTO_LINEAValue write SetDESCUENTO_LINEAValue; function GetSubCuentas: IBizSubCuentasContacto; procedure SetSubCuentas(const Value: IBizSubCuentasContacto); @@ -255,6 +263,12 @@ type FDescuentos : IBizClienteDescuentos; FDescuentosLink : TDADataSource; + function GetDESCUENTOValue: Float; + procedure SetDESCUENTOValue(const aValue: Float); + + function GetDESCUENTO_LINEAValue: Float; + procedure SetDESCUENTO_LINEAValue(const aValue: Float); + function GetGRUPO_CLIENTEValue: String; procedure SetGRUPO_CLIENTEValue(const aValue: String); @@ -327,6 +341,8 @@ type property SubCuentas : IBizSubCuentasContacto read GetSubCuentas write SetSubCuentas; property IGNORAR_CONTABILIDAD: Integer read GetIgnorar_Contabilidad write SetIgnorar_Contabilidad; property TIENE_SUBCUENTA: Integer read GetTiene_SubCuenta write SetTiene_Subcuenta; + property DESCUENTO: Float read GetDESCUENTOValue write SetDESCUENTOValue; + property DESCUENTO_LINEA: Float read GetDESCUENTO_LINEAValue write SetDESCUENTO_LINEAValue; end; @@ -573,6 +589,16 @@ begin Result := FDescuentos; end; +function TBizCliente.GetDESCUENTOValue: Float; +begin + result := DataTable.Fields[idx_ClientesDESCUENTO].AsFloat; +end; + +function TBizCliente.GetDESCUENTO_LINEAValue: Float; +begin + result := DataTable.Fields[idx_ClientesDESCUENTO_LINEA].AsFloat; +end; + function TBizCliente.GetGRUPO_CLIENTEValue: String; begin result := DataTable.Fields[idx_ClientesGRUPO_CLIENTE].AsString; @@ -619,6 +645,16 @@ begin EnlazarMaestroDetalle(FDescuentosLink, FDescuentos); end; +procedure TBizCliente.SetDESCUENTOValue(const aValue: Float); +begin + DataTable.Fields[idx_ClientesDESCUENTO].AsFloat := aValue; +end; + +procedure TBizCliente.SetDESCUENTO_LINEAValue(const aValue: Float); +begin + DataTable.Fields[idx_ClientesDESCUENTO_LINEA].AsFloat := aValue; +end; + procedure TBizCliente.SetGRUPO_CLIENTEValue(const aValue: String); begin DataTable.Fields[idx_ClientesGRUPO_CLIENTE].AsString := aValue; diff --git a/Source/Modulos/Contactos/Servidor/srvContactos_Impl.dfm b/Source/Modulos/Contactos/Servidor/srvContactos_Impl.dfm index ab697c7..796931d 100644 --- a/Source/Modulos/Contactos/Servidor/srvContactos_Impl.dfm +++ b/Source/Modulos/Contactos/Servidor/srvContactos_Impl.dfm @@ -826,6 +826,14 @@ object srvContactos: TsrvContactos item DatasetField = 'VENCIMIENTO_FACTURAS_3' TableField = 'VENCIMIENTO_FACTURAS_3' + end + item + DatasetField = 'DESCUENTO' + TableField = 'DESCUENTO' + end + item + DatasetField = 'DESCUENTO_LINEA' + TableField = 'DESCUENTO_LINEA' end> end> Name = 'Clientes' @@ -1059,6 +1067,14 @@ object srvContactos: TsrvContactos item Name = 'VENCIMIENTO_FACTURAS_3' DataType = datInteger + end + item + Name = 'DESCUENTO' + DataType = datFloat + end + item + Name = 'DESCUENTO_LINEA' + DataType = datFloat end> end item @@ -2891,6 +2907,14 @@ object srvContactos: TsrvContactos item Name = 'VENCIMIENTO_FACTURAS_3' Value = '' + end + item + Name = 'DESCUENTO' + Value = '' + end + item + Name = 'DESCUENTO_LINEA' + Value = '' end> Statements = < item @@ -2902,12 +2926,13 @@ object srvContactos: TsrvContactos 'UEO, REGIMEN_IVA, ID_TIPO_IVA, ID_FORMA_PAGO, TIENDA_WEB,'#10' C' + 'ODIGO_ASIGNADO, IGNORAR_CONTABILIDAD, PROCEDENCIA_CLIENTE, TIENE' + '_SUBCUENTA,'#10' VENCIMIENTO_FACTURAS_1, VENCIMIENTO_FACTURAS_2,' + - ' VENCIMIENTO_FACTURAS_3)'#10' VALUES'#10' (:ID_CLIENTE, :GRUPO_CLIEN' + - 'TE, :RECARGO_EQUIVALENCIA, :NOMBRE_COMERCIAL, :BLOQUEADO,'#10' :' + - 'MOTIVO_BLOQUEO, :REGIMEN_IVA, :ID_TIPO_IVA, :ID_FORMA_PAGO, :TIE' + - 'NDA_WEB,'#10' :CODIGO_ASIGNADO, :IGNORAR_CONTABILIDAD, :PROCEDEN' + - 'CIA_CLIENTE, :TIENE_SUBCUENTA,'#10' :VENCIMIENTO_FACTURAS_1, :VE' + - 'NCIMIENTO_FACTURAS_2, :VENCIMIENTO_FACTURAS_3)'#10 + ' VENCIMIENTO_FACTURAS_3,'#10' DESCUENTO, DESCUENTO_LINEA)'#10' VALU' + + 'ES'#10' (:ID_CLIENTE, :GRUPO_CLIENTE, :RECARGO_EQUIVALENCIA, :NOM' + + 'BRE_COMERCIAL, :BLOQUEADO,'#10' :MOTIVO_BLOQUEO, :REGIMEN_IVA, :' + + 'ID_TIPO_IVA, :ID_FORMA_PAGO, :TIENDA_WEB,'#10' :CODIGO_ASIGNADO,' + + ' :IGNORAR_CONTABILIDAD, :PROCEDENCIA_CLIENTE, :TIENE_SUBCUENTA,'#10 + + ' :VENCIMIENTO_FACTURAS_1, :VENCIMIENTO_FACTURAS_2, :VENCIMIE' + + 'NTO_FACTURAS_3,'#10' :DESCUENTO, :DESCUENTO_LINEA)'#10 StatementType = stSQL ColumnMappings = <> end> @@ -3003,6 +3028,14 @@ object srvContactos: TsrvContactos Name = 'VENCIMIENTO_FACTURAS_3' Value = '' end + item + Name = 'DESCUENTO' + Value = '' + end + item + Name = 'DESCUENTO_LINEA' + Value = '' + end item Name = 'OLD_ID_CLIENTE' Value = '' @@ -3023,7 +3056,9 @@ object srvContactos: TsrvContactos ','#10' PROCEDENCIA_CLIENTE = :PROCEDENCIA_CLIENTE,'#10' VENCIMIENT' + 'O_FACTURAS_1 = :VENCIMIENTO_FACTURAS_1,'#10' VENCIMIENTO_FACTURAS' + '_2 = :VENCIMIENTO_FACTURAS_2,'#10' VENCIMIENTO_FACTURAS_3 = :VENC' + - 'IMIENTO_FACTURAS_3'#10' WHERE'#10' (ID_CLIENTE = :OLD_ID_CLIENTE)'#10 + 'IMIENTO_FACTURAS_3,'#10' DESCUENTO = :DESCUENTO,'#10' DESCUENTO_LI' + + 'NEA = :DESCUENTO_LINEA'#10' WHERE'#10' (ID_CLIENTE = :OLD_ID_CLIENTE' + + ')'#10 StatementType = stSQL ColumnMappings = <> end> diff --git a/Source/Modulos/Contactos/Views/uEditorCliente.dfm b/Source/Modulos/Contactos/Views/uEditorCliente.dfm index bd8b9b3..60c55e8 100644 --- a/Source/Modulos/Contactos/Views/uEditorCliente.dfm +++ b/Source/Modulos/Contactos/Views/uEditorCliente.dfm @@ -2,18 +2,18 @@ inherited fEditorCliente: TfEditorCliente Left = 387 Top = 297 Caption = 'Ficha de cliente' - ClientHeight = 645 - ClientWidth = 896 - ExplicitWidth = 904 - ExplicitHeight = 679 + ClientHeight = 658 + ClientWidth = 937 + ExplicitWidth = 945 + ExplicitHeight = 692 PixelsPerInch = 96 TextHeight = 13 inherited JvNavPanelHeader: TJvNavPanelHeader - Width = 896 + Width = 937 Caption = 'Ficha de cliente' - ExplicitWidth = 896 + ExplicitWidth = 937 inherited Image1: TImage - Left = 869 + Left = 910 Picture.Data = { 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001800 0000180806000000E0773DF80000000970485973000017120000171201679FD2 @@ -49,8 +49,8 @@ inherited fEditorCliente: TfEditorCliente end end inherited TBXDock: TTBXDock - Width = 896 - ExplicitWidth = 896 + Width = 937 + ExplicitWidth = 937 inherited tbxMain: TTBXToolbar object TBXItem7: TTBXItem [7] Action = actGruposCliente @@ -58,30 +58,30 @@ inherited fEditorCliente: TfEditorCliente end end inherited tbxMenu: TTBXToolbar - ExplicitWidth = 896 + ExplicitWidth = 937 end end inherited StatusBar: TJvStatusBar - Top = 626 - Width = 896 - ExplicitTop = 626 - ExplicitWidth = 896 + Top = 639 + Width = 937 + ExplicitTop = 639 + ExplicitWidth = 937 end inherited pgPaginas: TPageControl - Width = 890 - Height = 514 - ActivePage = pagDatosBancarios + Width = 931 + Height = 527 + ActivePage = pagGeneral ExplicitTop = 109 - ExplicitWidth = 890 - ExplicitHeight = 514 + ExplicitWidth = 931 + ExplicitHeight = 527 inherited pagGeneral: TTabSheet - ExplicitWidth = 882 - ExplicitHeight = 486 + ExplicitWidth = 923 + ExplicitHeight = 499 inline frViewCliente1: TfrViewCliente Left = 0 Top = 0 - Width = 882 - Height = 486 + Width = 923 + Height = 499 Align = alClient Font.Charset = DEFAULT_CHARSET Font.Color = clWindowText @@ -91,30 +91,30 @@ inherited fEditorCliente: TfEditorCliente ParentFont = False TabOrder = 0 ReadOnly = False - ExplicitWidth = 882 - ExplicitHeight = 486 + ExplicitWidth = 923 + ExplicitHeight = 499 inherited dxLayoutControlContacto: TdxLayoutControl - Width = 882 - Height = 486 + Width = 923 + Height = 499 LookAndFeel = dxLayoutOfficeLookAndFeel - ExplicitWidth = 882 - ExplicitHeight = 486 + ExplicitWidth = 923 + ExplicitHeight = 499 inherited PngSpeedButton1: TPngSpeedButton - Left = 820 + Left = 861 Top = 218 - ExplicitLeft = 820 + ExplicitLeft = 861 ExplicitTop = 218 end inherited PngSpeedButton2: TPngSpeedButton - Left = 820 + Left = 861 Top = 190 - ExplicitLeft = 820 + ExplicitLeft = 861 ExplicitTop = 190 end inherited PngSpeedButton3: TPngSpeedButton - Left = 820 + Left = 861 Top = 162 - ExplicitLeft = 820 + ExplicitLeft = 861 ExplicitTop = 162 end inherited eCalle: TcxDBTextEdit @@ -148,23 +148,23 @@ inherited fEditorCliente: TfEditorCliente Width = 428 end inherited eCodigoPostal: TcxDBTextEdit - Left = 493 + Left = 520 Top = 243 Style.LookAndFeel.SkinName = '' StyleDisabled.LookAndFeel.SkinName = '' StyleFocused.LookAndFeel.SkinName = '' StyleHot.LookAndFeel.SkinName = '' - ExplicitLeft = 493 + ExplicitLeft = 520 ExplicitTop = 243 end inherited eTlfParticular: TcxDBTextEdit - Left = 672 + Left = 699 Top = 57 Style.LookAndFeel.SkinName = '' StyleDisabled.LookAndFeel.SkinName = '' StyleFocused.LookAndFeel.SkinName = '' StyleHot.LookAndFeel.SkinName = '' - ExplicitLeft = 672 + ExplicitLeft = 699 ExplicitTop = 57 ExplicitWidth = 177 Width = 177 @@ -230,37 +230,37 @@ inherited fEditorCliente: TfEditorCliente Width = 428 end inherited eTlfTrabajo: TcxDBTextEdit - Left = 672 + Left = 699 Top = 30 Style.LookAndFeel.SkinName = '' StyleDisabled.LookAndFeel.SkinName = '' StyleFocused.LookAndFeel.SkinName = '' StyleHot.LookAndFeel.SkinName = '' - ExplicitLeft = 672 + ExplicitLeft = 699 ExplicitTop = 30 ExplicitWidth = 177 Width = 177 end inherited eTlfMovil: TcxDBTextEdit - Left = 672 + Left = 699 Top = 84 Style.LookAndFeel.SkinName = '' StyleDisabled.LookAndFeel.SkinName = '' StyleFocused.LookAndFeel.SkinName = '' StyleHot.LookAndFeel.SkinName = '' - ExplicitLeft = 672 + ExplicitLeft = 699 ExplicitTop = 84 ExplicitWidth = 177 Width = 177 end inherited eFax: TcxDBTextEdit - Left = 672 + Left = 699 Top = 111 Style.LookAndFeel.SkinName = '' StyleDisabled.LookAndFeel.SkinName = '' StyleFocused.LookAndFeel.SkinName = '' StyleHot.LookAndFeel.SkinName = '' - ExplicitLeft = 672 + ExplicitLeft = 699 ExplicitTop = 111 ExplicitWidth = 177 Width = 177 @@ -276,51 +276,51 @@ inherited fEditorCliente: TfEditorCliente Width = 428 end inherited eNIFCIF: TcxDBTextEdit - Left = 285 + Left = 295 Top = 30 Style.LookAndFeel.SkinName = '' StyleDisabled.LookAndFeel.SkinName = '' StyleFocused.LookAndFeel.SkinName = '' StyleHot.LookAndFeel.SkinName = '' - ExplicitLeft = 285 + ExplicitLeft = 295 ExplicitTop = 30 ExplicitWidth = 271 Width = 271 end inherited eMailTrabajo: TcxDBHyperLinkEdit - Left = 672 + Left = 699 Top = 162 Properties.Prefix = 'mailto:' Style.LookAndFeel.SkinName = '' StyleDisabled.LookAndFeel.SkinName = '' StyleFocused.LookAndFeel.SkinName = '' StyleHot.LookAndFeel.SkinName = '' - ExplicitLeft = 672 + ExplicitLeft = 699 ExplicitTop = 162 ExplicitWidth = 148 Width = 148 end inherited eMailParticular: TcxDBHyperLinkEdit - Left = 672 + Left = 699 Top = 190 Properties.Prefix = 'mailto:' Style.LookAndFeel.SkinName = '' StyleDisabled.LookAndFeel.SkinName = '' StyleFocused.LookAndFeel.SkinName = '' StyleHot.LookAndFeel.SkinName = '' - ExplicitLeft = 672 + ExplicitLeft = 699 ExplicitTop = 190 ExplicitWidth = 148 Width = 148 end inherited ePaginaWeb: TcxDBHyperLinkEdit - Left = 672 + Left = 699 Top = 217 Style.LookAndFeel.SkinName = '' StyleDisabled.LookAndFeel.SkinName = '' StyleFocused.LookAndFeel.SkinName = '' StyleHot.LookAndFeel.SkinName = '' - ExplicitLeft = 672 + ExplicitLeft = 699 ExplicitTop = 217 ExplicitWidth = 148 Width = 148 @@ -346,9 +346,9 @@ inherited fEditorCliente: TfEditorCliente Width = 428 end inherited frViewTienda1: TfrViewTienda - Left = 577 + Left = 604 Top = 270 - ExplicitLeft = 577 + ExplicitLeft = 604 ExplicitTop = 270 inherited dxLayoutControl1: TdxLayoutControl inherited cbTienda: TcxComboBox @@ -368,7 +368,7 @@ inherited fEditorCliente: TfEditorCliente ExplicitWidth = 521 inherited memObservaciones: TcxDBMemo DataBinding.DataSource = frViewCliente1.dsContacto - ExplicitWidth = 821 + ExplicitWidth = 862 Width = 521 end end @@ -385,8 +385,8 @@ inherited fEditorCliente: TfEditorCliente inline frViewDireccionesEntrega1: TfrViewDireccionesEntrega Left = 0 Top = 0 - Width = 882 - Height = 486 + Width = 923 + Height = 499 Align = alClient Font.Charset = DEFAULT_CHARSET Font.Color = clWindowText @@ -396,11 +396,11 @@ inherited fEditorCliente: TfEditorCliente ParentFont = False TabOrder = 0 ReadOnly = False - ExplicitWidth = 882 - ExplicitHeight = 486 + ExplicitWidth = 923 + ExplicitHeight = 499 inherited cxGrid: TcxGrid - Width = 882 - Height = 461 + Width = 923 + Height = 474 ExplicitWidth = 882 ExplicitHeight = 461 inherited cxGridView: TcxGridDBTableView @@ -411,27 +411,39 @@ inherited fEditorCliente: TfEditorCliente end end inherited ToolBar1: TToolBar - Width = 882 + Width = 923 ExplicitWidth = 882 + inherited ToolButton1: TToolButton + ExplicitWidth = 113 + end + inherited ToolButton4: TToolButton + ExplicitWidth = 113 + end + inherited ToolButton2: TToolButton + ExplicitWidth = 113 + end + inherited ToolButton7: TToolButton + ExplicitWidth = 113 + end end end end inherited pagPersonal: TTabSheet [2] - ExplicitWidth = 882 - ExplicitHeight = 486 + ExplicitWidth = 923 + ExplicitHeight = 499 inherited frViewPersonalContacto1: TfrViewPersonalContacto - Width = 882 - Height = 486 - ExplicitWidth = 882 - ExplicitHeight = 486 + Width = 923 + Height = 499 + ExplicitWidth = 923 + ExplicitHeight = 499 inherited cxGrid: TcxGrid - Width = 882 - Height = 461 + Width = 923 + Height = 474 ExplicitWidth = 882 ExplicitHeight = 461 end inherited ToolBar1: TToolBar - Width = 882 + Width = 923 ExplicitWidth = 882 inherited ToolButton1: TToolButton ExplicitWidth = 62 @@ -454,8 +466,8 @@ inherited fEditorCliente: TfEditorCliente inline frViewClienteDatosComerciales1: TfrViewClienteDatosComerciales Left = 0 Top = 0 - Width = 882 - Height = 193 + Width = 923 + Height = 433 Align = alTop Font.Charset = DEFAULT_CHARSET Font.Color = clWindowText @@ -465,30 +477,36 @@ inherited fEditorCliente: TfEditorCliente ParentFont = False TabOrder = 0 ReadOnly = False - ExplicitWidth = 882 - ExplicitHeight = 193 + ExplicitWidth = 923 + ExplicitHeight = 433 inherited dxLayoutControl1: TdxLayoutControl - Width = 882 - Height = 193 + Width = 923 + Height = 433 LookAndFeel = dxLayoutOfficeLookAndFeel - ExplicitWidth = 882 - ExplicitHeight = 193 + ExplicitWidth = 923 + ExplicitHeight = 433 inherited Label1: TLabel - Left = 575 + Left = 608 Top = 30 Width = 277 - ExplicitLeft = 575 + ExplicitLeft = 608 ExplicitTop = 30 ExplicitWidth = 277 end + inherited Label2: TLabel + Top = 167 + Width = 317 + ExplicitTop = 167 + ExplicitWidth = 317 + end inherited eDiasVencimiento: TcxDBSpinEdit - Left = 647 + Left = 680 Top = 62 Style.LookAndFeel.SkinName = '' StyleDisabled.LookAndFeel.SkinName = '' StyleFocused.LookAndFeel.SkinName = '' StyleHot.LookAndFeel.SkinName = '' - ExplicitLeft = 647 + ExplicitLeft = 680 ExplicitTop = 62 end inherited cbRegimenIVA: TcxDBComboBox @@ -522,9 +540,9 @@ inherited fEditorCliente: TfEditorCliente Width = 289 end inherited bFormasPago: TButton - Left = 415 + Left = 448 Top = 57 - ExplicitLeft = 415 + ExplicitLeft = 448 ExplicitTop = 57 end inherited eIVA: TcxDBLookupComboBox @@ -538,35 +556,57 @@ inherited fEditorCliente: TfEditorCliente Width = 289 end inherited bTiposIVA: TButton - Left = 415 + Left = 448 Top = 84 - ExplicitLeft = 415 + ExplicitLeft = 448 ExplicitTop = 84 end inherited cxDBSpinEdit1: TcxDBSpinEdit - Left = 647 + Left = 680 Top = 89 Style.LookAndFeel.SkinName = '' StyleDisabled.LookAndFeel.SkinName = '' StyleFocused.LookAndFeel.SkinName = '' StyleHot.LookAndFeel.SkinName = '' - ExplicitLeft = 647 + ExplicitLeft = 680 ExplicitTop = 89 end inherited cxDBSpinEdit2: TcxDBSpinEdit - Left = 647 + Left = 680 Top = 116 Style.LookAndFeel.SkinName = '' StyleDisabled.LookAndFeel.SkinName = '' StyleFocused.LookAndFeel.SkinName = '' StyleHot.LookAndFeel.SkinName = '' - ExplicitLeft = 647 + ExplicitLeft = 680 ExplicitTop = 116 end + inherited eDescuentoLinea: TcxDBSpinEdit + Top = 186 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitTop = 186 + ExplicitWidth = 200 + Width = 200 + end + inherited eDescuento: TcxDBSpinEdit + Top = 213 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitTop = 213 + ExplicitWidth = 508 + Width = 508 + end inherited dxLayoutGroup1: TdxLayoutGroup - inherited dxLayoutControl1Group5: TdxLayoutGroup - inherited dxLayoutControl1Item2: TdxLayoutItem - Caption = 'D'#237'a del mes 1:' + inherited dxLayoutControl1Group4: TdxLayoutGroup + inherited dxLayoutControl1Group5: TdxLayoutGroup + inherited dxLayoutControl1Item2: TdxLayoutItem + Caption = 'D'#237'a del mes 1:' + end end end end @@ -574,17 +614,17 @@ inherited fEditorCliente: TfEditorCliente end end inherited pagDatosBancarios: TTabSheet [4] - ExplicitWidth = 882 - ExplicitHeight = 486 + ExplicitWidth = 923 + ExplicitHeight = 499 inherited frViewClienteDatosBancarios: TfrViewClienteDatosBancarios - Width = 882 - Height = 486 - ExplicitWidth = 882 - ExplicitHeight = 486 + Width = 923 + Height = 499 + ExplicitWidth = 923 + ExplicitHeight = 499 inherited dxLayoutControl1: TdxLayoutControl - Width = 882 + Width = 923 LookAndFeel = dxLayoutOfficeLookAndFeel - ExplicitWidth = 882 + ExplicitWidth = 923 inherited eEntidad: TcxDBTextEdit Style.LookAndFeel.SkinName = '' StyleDisabled.LookAndFeel.SkinName = '' @@ -594,12 +634,12 @@ inherited fEditorCliente: TfEditorCliente Width = 345 end inherited eSucursal: TcxDBTextEdit - Left = 542 + Left = 564 Style.LookAndFeel.SkinName = '' StyleDisabled.LookAndFeel.SkinName = '' StyleFocused.LookAndFeel.SkinName = '' StyleHot.LookAndFeel.SkinName = '' - ExplicitLeft = 542 + ExplicitLeft = 564 ExplicitWidth = 318 Width = 318 end @@ -635,8 +675,8 @@ inherited fEditorCliente: TfEditorCliente inline frViewClienteDescuentos1: TfrViewClienteDescuentos Left = 0 Top = 0 - Width = 882 - Height = 486 + Width = 923 + Height = 499 Align = alClient Font.Charset = DEFAULT_CHARSET Font.Color = clWindowText @@ -646,16 +686,16 @@ inherited fEditorCliente: TfEditorCliente ParentFont = False TabOrder = 0 ReadOnly = False - ExplicitWidth = 882 - ExplicitHeight = 486 + ExplicitWidth = 923 + ExplicitHeight = 499 inherited cxGrid: TcxGrid - Width = 882 - Height = 461 + Width = 923 + Height = 474 ExplicitWidth = 882 ExplicitHeight = 461 end inherited ToolBar1: TToolBar - Width = 882 + Width = 923 ExplicitWidth = 882 inherited ToolButton1: TToolButton ExplicitWidth = 62 @@ -679,8 +719,8 @@ inherited fEditorCliente: TfEditorCliente inline frViewSubCuentaContacto1: TfrViewSubCuentaContacto Left = 0 Top = 0 - Width = 882 - Height = 486 + Width = 923 + Height = 499 Align = alClient AutoSize = True Font.Charset = DEFAULT_CHARSET @@ -691,16 +731,16 @@ inherited fEditorCliente: TfEditorCliente ParentFont = False TabOrder = 0 ReadOnly = False - ExplicitWidth = 882 - ExplicitHeight = 486 + ExplicitWidth = 923 + ExplicitHeight = 499 inherited layoutApunte: TdxLayoutControl - Width = 882 - Height = 486 - ExplicitWidth = 882 - ExplicitHeight = 486 + Width = 923 + Height = 499 + ExplicitWidth = 923 + ExplicitHeight = 499 DesignSize = ( - 882 - 486) + 923 + 499) inherited eRefSubCuenta: TcxDBTextEdit Style.LookAndFeel.SkinName = '' StyleDisabled.LookAndFeel.SkinName = '' @@ -710,8 +750,8 @@ inherited fEditorCliente: TfEditorCliente Width = 441 end inherited BitBtn3: TBitBtn - Left = 540 - ExplicitLeft = 540 + Left = 581 + ExplicitLeft = 581 end inherited eSubCuenta: TcxDBTextEdit Style.LookAndFeel.SkinName = '' @@ -722,12 +762,12 @@ inherited fEditorCliente: TfEditorCliente Width = 779 end inherited BitBtn1: TBitBtn - Left = 656 - ExplicitLeft = 656 + Left = 697 + ExplicitLeft = 697 end inherited BitBtn2: TBitBtn - Left = 782 - ExplicitLeft = 782 + Left = 823 + ExplicitLeft = 823 end inherited cbIgnorarContabilidad: TcxDBCheckBox DataBinding.DataSource = frViewCliente1.dsContacto @@ -750,10 +790,10 @@ inherited fEditorCliente: TfEditorCliente end end inherited PnlComentario: TPanel - Width = 896 - ExplicitWidth = 896 + Width = 937 + ExplicitWidth = 937 inherited lbComentario: TLabel - Width = 886 + Width = 927 Height = 25 end end diff --git a/Source/Modulos/Contactos/Views/uViewClienteDatosComerciales.dfm b/Source/Modulos/Contactos/Views/uViewClienteDatosComerciales.dfm index 95d852e..99f86d0 100644 --- a/Source/Modulos/Contactos/Views/uViewClienteDatosComerciales.dfm +++ b/Source/Modulos/Contactos/Views/uViewClienteDatosComerciales.dfm @@ -9,14 +9,14 @@ inherited frViewClienteDatosComerciales: TfrViewClienteDatosComerciales Left = 0 Top = 0 Width = 637 - Height = 209 - Align = alTop + Height = 284 + Align = alClient ParentBackground = True TabOrder = 0 TabStop = False AutoContentSizes = [acsWidth] object Label1: TLabel - Left = 327 + Left = 336 Top = 28 Width = 277 Height = 26 @@ -26,8 +26,19 @@ inherited frViewClienteDatosComerciales: TfrViewClienteDatosComerciales Transparent = True WordWrap = True end + object Label2: TLabel + Left = 22 + Top = 171 + Width = 317 + Height = 13 + Caption = + 'Puede indicar el descuento por defecto acordado con este cliente' + + '.' + Transparent = True + WordWrap = True + end object eDiasVencimiento: TcxDBSpinEdit - Left = 404 + Left = 413 Top = 60 DataBinding.DataField = 'VENCIMIENTO_FACTURAS_1' DataBinding.DataSource = dsDatosComerciales @@ -53,7 +64,7 @@ inherited frViewClienteDatosComerciales: TfrViewClienteDatosComerciales Width = 79 end object cbRegimenIVA: TcxDBComboBox - Left = 107 + Left = 123 Top = 28 DataBinding.DataField = 'REGIMEN_IVA' DataBinding.DataSource = dsDatosComerciales @@ -82,7 +93,7 @@ inherited frViewClienteDatosComerciales: TfrViewClienteDatosComerciales Width = 180 end object cbRecargoEquivalencia: TcxDBCheckBox - Left = 107 + Left = 123 Top = 109 Caption = 'Aplicar recargo de equivalencia' DataBinding.DataField = 'RECARGO_EQUIVALENCIA' @@ -110,7 +121,7 @@ inherited frViewClienteDatosComerciales: TfrViewClienteDatosComerciales Width = 180 end object cbFormaPago: TcxDBLookupComboBox - Left = 107 + Left = 123 Top = 55 DataBinding.DataField = 'ID_FORMA_PAGO' DataBinding.DataSource = dsDatosComerciales @@ -146,7 +157,7 @@ inherited frViewClienteDatosComerciales: TfrViewClienteDatosComerciales Width = 42 end object bFormasPago: TButton - Left = 165 + Left = 174 Top = 55 Width = 132 Height = 21 @@ -155,7 +166,7 @@ inherited frViewClienteDatosComerciales: TfrViewClienteDatosComerciales OnClick = bFormasPagoClick end object eIVA: TcxDBLookupComboBox - Left = 107 + Left = 123 Top = 82 DataBinding.DataField = 'ID_TIPO_IVA' DataBinding.DataSource = dsDatosComerciales @@ -191,7 +202,7 @@ inherited frViewClienteDatosComerciales: TfrViewClienteDatosComerciales Width = 42 end object bTiposIVA: TButton - Left = 165 + Left = 174 Top = 82 Width = 132 Height = 21 @@ -200,7 +211,7 @@ inherited frViewClienteDatosComerciales: TfrViewClienteDatosComerciales OnClick = bTiposIVAClick end object cxDBSpinEdit1: TcxDBSpinEdit - Left = 404 + Left = 413 Top = 87 DataBinding.DataField = 'VENCIMIENTO_FACTURAS_2' DataBinding.DataSource = dsDatosComerciales @@ -226,7 +237,7 @@ inherited frViewClienteDatosComerciales: TfrViewClienteDatosComerciales Width = 79 end object cxDBSpinEdit2: TcxDBSpinEdit - Left = 404 + Left = 413 Top = 114 DataBinding.DataField = 'VENCIMIENTO_FACTURAS_3' DataBinding.DataSource = dsDatosComerciales @@ -251,101 +262,177 @@ inherited frViewClienteDatosComerciales: TfrViewClienteDatosComerciales TabOrder = 8 Width = 79 end + object eDescuentoLinea: TcxDBSpinEdit + Left = 123 + Top = 190 + DataBinding.DataField = 'DESCUENTO_LINEA' + DataBinding.DataSource = dsDatosComerciales + Properties.Alignment.Horz = taRightJustify + Properties.UseLeftAlignmentOnEditing = False + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.HotTrack = False + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + Style.LookAndFeel.SkinName = '' + Style.ButtonStyle = bts3D + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 9 + Width = 200 + end + object eDescuento: TcxDBSpinEdit + Left = 123 + Top = 217 + DataBinding.DataField = 'DESCUENTO' + DataBinding.DataSource = dsDatosComerciales + Properties.Alignment.Horz = taRightJustify + Properties.UseLeftAlignmentOnEditing = False + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.HotTrack = False + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + Style.LookAndFeel.SkinName = '' + Style.ButtonStyle = bts3D + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 10 + Width = 508 + end object dxLayoutGroup1: TdxLayoutGroup ShowCaption = False Hidden = True - LayoutDirection = ldHorizontal ShowBorder = False - object dxLayoutControl1Group3: TdxLayoutGroup - AutoAligns = [aaVertical] - AlignHorz = ahClient - Caption = 'Datos comerciales' - object dxLayoutControl1Item3: TdxLayoutItem + object dxLayoutControl1Group4: TdxLayoutGroup + ShowCaption = False + Hidden = True + LayoutDirection = ldHorizontal + ShowBorder = False + object dxLayoutControl1Group3: TdxLayoutGroup AutoAligns = [aaVertical] AlignHorz = ahClient - Caption = 'R'#233'gimen de IVA:' - Control = cbRegimenIVA - ControlOptions.ShowBorder = False - end - object dxLayoutControl1Group2: TdxLayoutGroup - ShowCaption = False - Hidden = True - LayoutDirection = ldHorizontal - ShowBorder = False - object dxLayoutControl1Item5: TdxLayoutItem + Caption = 'Datos comerciales' + object dxLayoutControl1Item3: TdxLayoutItem AutoAligns = [aaVertical] AlignHorz = ahClient - Caption = 'Forma de pago:' - Control = cbFormaPago + Caption = 'R'#233'gimen de IVA:' + Control = cbRegimenIVA ControlOptions.ShowBorder = False end - object dxLayoutControl1Item7: TdxLayoutItem - AutoAligns = [aaVertical] - AlignHorz = ahRight - Caption = 'Button1' + object dxLayoutControl1Group2: TdxLayoutGroup ShowCaption = False - Control = bFormasPago - ControlOptions.ShowBorder = False + Hidden = True + LayoutDirection = ldHorizontal + ShowBorder = False + object dxLayoutControl1Item5: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahClient + Caption = 'Forma de pago:' + Control = cbFormaPago + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item7: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahRight + Caption = 'Button1' + ShowCaption = False + Control = bFormasPago + ControlOptions.ShowBorder = False + end end - end - object dxLayoutControl1Group1: TdxLayoutGroup - ShowCaption = False - Hidden = True - LayoutDirection = ldHorizontal - ShowBorder = False - object dxLayoutControl1Item8: TdxLayoutItem + object dxLayoutControl1Group1: TdxLayoutGroup + ShowCaption = False + Hidden = True + LayoutDirection = ldHorizontal + ShowBorder = False + object dxLayoutControl1Item8: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahClient + Caption = 'IVA por defecto' + Control = eIVA + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item9: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahRight + ShowCaption = False + Control = bTiposIVA + ControlOptions.ShowBorder = False + end + end + object dxLayoutControl1Item4: TdxLayoutItem AutoAligns = [aaVertical] AlignHorz = ahClient - Caption = 'IVA por defecto' - Control = eIVA - ControlOptions.ShowBorder = False - end - object dxLayoutControl1Item9: TdxLayoutItem - AutoAligns = [aaVertical] - AlignHorz = ahRight - ShowCaption = False - Control = bTiposIVA + Caption = ' ' + Control = cbRecargoEquivalencia ControlOptions.ShowBorder = False end end - object dxLayoutControl1Item4: TdxLayoutItem + object dxLayoutControl1Group5: TdxLayoutGroup AutoAligns = [aaVertical] AlignHorz = ahClient - Caption = ' ' - Control = cbRecargoEquivalencia - ControlOptions.ShowBorder = False + Caption = 'Datos para facturaci'#243'n' + Visible = False + object dxLayoutControl1Item6: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahClient + Caption = 'Label1' + ShowCaption = False + Control = Label1 + ControlOptions.AutoColor = True + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item2: TdxLayoutItem + AutoAligns = [aaVertical] + Caption = 'D'#237'as del mes 1:' + Control = eDiasVencimiento + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item1: TdxLayoutItem + AutoAligns = [aaVertical] + Caption = 'D'#237'a del mes 2:' + Control = cxDBSpinEdit1 + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item10: TdxLayoutItem + AutoAligns = [aaVertical] + Caption = 'D'#237'a del mes 3:' + Control = cxDBSpinEdit2 + ControlOptions.ShowBorder = False + end end end - object dxLayoutControl1Group5: TdxLayoutGroup - AutoAligns = [aaVertical] - AlignHorz = ahClient - Caption = 'Datos para facturaci'#243'n' - Visible = False - object dxLayoutControl1Item6: TdxLayoutItem - AutoAligns = [aaVertical] - AlignHorz = ahClient - Caption = 'Label1' + object dxLayoutControl1Group6: TdxLayoutGroup + Caption = 'Descuento por defecto' + object dxLayoutControl1Item12: TdxLayoutItem ShowCaption = False - Control = Label1 + Control = Label2 ControlOptions.AutoColor = True ControlOptions.ShowBorder = False end - object dxLayoutControl1Item2: TdxLayoutItem - AutoAligns = [aaVertical] - Caption = 'D'#237'as del mes 1:' - Control = eDiasVencimiento + object dxLayoutControl1Item11: TdxLayoutItem + Caption = 'Dto Comercial:' + Control = eDescuentoLinea ControlOptions.ShowBorder = False end - object dxLayoutControl1Item1: TdxLayoutItem - AutoAligns = [aaVertical] - Caption = 'D'#237'a del mes 2:' - Control = cxDBSpinEdit1 - ControlOptions.ShowBorder = False - end - object dxLayoutControl1Item10: TdxLayoutItem - AutoAligns = [aaVertical] - Caption = 'D'#237'a del mes 3:' - Control = cxDBSpinEdit2 + object dxLayoutControl1Item13: TdxLayoutItem + Caption = 'Descuento especial:' + Control = eDescuento ControlOptions.ShowBorder = False end end diff --git a/Source/Modulos/Contactos/Views/uViewClienteDatosComerciales.pas b/Source/Modulos/Contactos/Views/uViewClienteDatosComerciales.pas index cd61d08..255386f 100644 --- a/Source/Modulos/Contactos/Views/uViewClienteDatosComerciales.pas +++ b/Source/Modulos/Contactos/Views/uViewClienteDatosComerciales.pas @@ -49,6 +49,14 @@ type cxDBSpinEdit1: TcxDBSpinEdit; dxLayoutControl1Item10: TdxLayoutItem; cxDBSpinEdit2: TcxDBSpinEdit; + dxLayoutControl1Item11: TdxLayoutItem; + eDescuentoLinea: TcxDBSpinEdit; + dxLayoutControl1Group4: TdxLayoutGroup; + dxLayoutControl1Group6: TdxLayoutGroup; + dxLayoutControl1Item12: TdxLayoutItem; + Label2: TLabel; + dxLayoutControl1Item13: TdxLayoutItem; + eDescuento: TcxDBSpinEdit; procedure CustomViewCreate(Sender: TObject); procedure CustomViewDestroy(Sender: TObject); procedure cbRegimenIVAPropertiesInitPopup(Sender: TObject); diff --git a/Source/Modulos/Contratos de cliente/ContratosCliente_Group.groupproj b/Source/Modulos/Contratos de cliente/ContratosCliente_Group.groupproj index a4a4c9f..3094fb1 100644 --- a/Source/Modulos/Contratos de cliente/ContratosCliente_Group.groupproj +++ b/Source/Modulos/Contratos de cliente/ContratosCliente_Group.groupproj @@ -18,6 +18,7 @@ + @@ -158,6 +159,15 @@ + + + + + + + + + @@ -222,13 +232,13 @@ - + - + - + \ No newline at end of file diff --git a/Source/Modulos/Contratos de cliente/Controller/uDetallesContratoClienteController.pas b/Source/Modulos/Contratos de cliente/Controller/uDetallesContratoClienteController.pas index 85cee5b..5cb5f75 100644 --- a/Source/Modulos/Contratos de cliente/Controller/uDetallesContratoClienteController.pas +++ b/Source/Modulos/Contratos de cliente/Controller/uDetallesContratoClienteController.pas @@ -58,7 +58,7 @@ uses Controls, SysUtils, Dialogs, uDAInterfaces, uDialogUtils, Variants, uDataMo uArticulosContratoClienteController, schContratosClienteClient_Intf, uDataTableUtils, uCalculosUtils, //uIEditorAsignarDescuento, - uEditorRegistryUtils; + uEditorRegistryUtils, uFactuGES_App; { TDetallesContratoClienteController } @@ -152,12 +152,13 @@ end; procedure TDetallesContratoClienteController.RellenarOtros(ADetalles: IDAStronglyTypedDataTable; AArticulos: IBizArticulo); begin - ADetalles.DataTable.FieldByName('PROPIEDAD').AsString := AArticulos.FAMILIA; + ADetalles.DataTable.FieldByName('PROPIEDAD').AsString := AArticulos.FAMILIA + ' ' + AArticulos.REFERENCIA_PROV; + //En Tecsitel no se tiene en cuenta el descuento de cliente para el precio PVP -// if Assigned(AArticulos) then -// ADetalles.DataTable.FieldByName(CAMPO_DESCUENTO).AsFloat := AArticulos.DESCUENTO -// else -// ADetalles.DataTable.FieldByName(CAMPO_DESCUENTO).AsFloat := 0; + if Assigned(AArticulos) then + ADetalles.DataTable.FieldByName(CAMPO_DESCUENTO).AsFloat := AArticulos.DESCUENTO + else + ADetalles.DataTable.FieldByName(CAMPO_DESCUENTO).AsFloat := 0; end; procedure TDetallesContratoClienteController.SetTipoArticulo( @@ -229,7 +230,7 @@ begin //de esta forma evitamos que al cambiar de cliente se quiten los importes que se hubiesen establecido para los articulos. if ADetalles.DataTable.FieldByName(CAMPO_IMPORTE_UNIDAD).IsNull then if Assigned(AArticulos) then - ADetalles.DataTable.FieldByName(CAMPO_IMPORTE_UNIDAD).AsVariant := AArticulos.PRECIO_NETO + ADetalles.DataTable.FieldByName(CAMPO_IMPORTE_UNIDAD).AsVariant := AArticulos.PRECIO_COSTE * AppFactuGES.EmpresaActiva.PRECIO_PUNTO else ADetalles.DataTable.FieldByName(CAMPO_IMPORTE_UNIDAD).AsVariant := Null; end; diff --git a/Source/Modulos/Contratos de cliente/Model/uBizContratosCliente.pas b/Source/Modulos/Contratos de cliente/Model/uBizContratosCliente.pas index 0cd3fd7..6a2ec47 100644 --- a/Source/Modulos/Contratos de cliente/Model/uBizContratosCliente.pas +++ b/Source/Modulos/Contratos de cliente/Model/uBizContratosCliente.pas @@ -351,8 +351,8 @@ begin ID_TIPO_IVA := FCliente.ID_TIPO_IVA; RECARGO_EQUIVALENCIA := FCliente.RECARGO_EQUIVALENCIA; -// En acana la ficha de cliente no tiene descuento aplicado por defecto -// DESCUENTO := FCliente.DESCUENTO; +// Se establece un descuento especial general a petición de angelica + DESCUENTO := FCliente.DESCUENTO; DataTable.Post; //Muy importante ya que es necesario hacer un post de la cabecera antes de añadir detalles //si se quita el id de la cabecera y los detalles se desincroniza diff --git a/Source/Modulos/Contratos de cliente/Views/ContratosCliente_view.dpk b/Source/Modulos/Contratos de cliente/Views/ContratosCliente_view.dpk index d5741fc..1ac9ca5 100644 --- a/Source/Modulos/Contratos de cliente/Views/ContratosCliente_view.dpk +++ b/Source/Modulos/Contratos de cliente/Views/ContratosCliente_view.dpk @@ -74,7 +74,8 @@ requires Jcl, JvCoreD11R, JvSystemD11R, - JvPageCompsD11R; + JvPageCompsD11R, + ConCli_AlbCli_relation; contains uContratosClienteViewRegister in 'uContratosClienteViewRegister.pas', diff --git a/Source/Modulos/Contratos de cliente/Views/ContratosCliente_view.dproj b/Source/Modulos/Contratos de cliente/Views/ContratosCliente_view.dproj index bff2ff2..e01742c 100644 --- a/Source/Modulos/Contratos de cliente/Views/ContratosCliente_view.dproj +++ b/Source/Modulos/Contratos de cliente/Views/ContratosCliente_view.dproj @@ -49,49 +49,57 @@ MainSource - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
fEditorPresupuestoCliente
@@ -149,13 +157,6 @@
frViewElegirArticulosContratosCliente
TFrame
- - - - - - - diff --git a/Source/Modulos/Relaciones/Contratos de cliente - Albaranes de cliente/ConCli_AlbCli_relation.res b/Source/Modulos/Relaciones/Contratos de cliente - Albaranes de cliente/ConCli_AlbCli_relation.res new file mode 100644 index 0000000..86c94e6 Binary files /dev/null and b/Source/Modulos/Relaciones/Contratos de cliente - Albaranes de cliente/ConCli_AlbCli_relation.res differ diff --git a/Source/Modulos/Relaciones/Contratos de cliente - Albaranes de cliente/uGenerarAlbaranesCliUtils.dfm b/Source/Modulos/Relaciones/Contratos de cliente - Albaranes de cliente/uGenerarAlbaranesCliUtils.dfm new file mode 100644 index 0000000..95561c1 --- /dev/null +++ b/Source/Modulos/Relaciones/Contratos de cliente - Albaranes de cliente/uGenerarAlbaranesCliUtils.dfm @@ -0,0 +1,313 @@ +object dmGenerarAlbaranesCli: TdmGenerarAlbaranesCli + OldCreateOrder = False + Height = 176 + Width = 254 + object JsListaAlbaranesGenerados: TJSDialog + DialogOptions = [doCommandLinks, doModal] + Glyph.Data = { + 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001C00 + 00001C0806000000720DDF940000000970485973000017120000171201679FD2 + 520000000467414D410000B18E7CFB5193000003104944415478DAAD96FB4B14 + 5114C7CFE463DC1E606444BFF54424D3DC55CA52B1CCD7165A219905054182FD + 1452FD5810FD100406610A669A998FC4F5BDB6266265DAB60F5DD15E58FE03B2 + 3F99D29ABBA7B9779C71C61D9D6177CFCE70CFDCB97B3EF7DCF3BD33C38082FD + B502B2B300CC656020048688A24F036233A0671F40D43160BA87BF62AEEE1010 + 60D7AE293AD8B835815E9B625C80DC8F1E88D4A7C1E8C1FB8F9FD6C3C44035B3 + 21500A65F6D700FE2EA580A5EC551F4A50359316B31D76EFDC0EE5F72A645045 + A067AE0623074B8140891108F1057064CC0D556053DF173812B707E6DCF332A8 + 225080D201DB4AF99BF335B4D502F371415BCC364833C4C29F458F0C2A031281 + 081734AB0B3C88403C1E6E3E2E7960F6A8FFD27A7D3EF07A11DA2C76C84A8D87 + A57FCB32E8B8A54A4C8C21B59365C9015996EF2240B6634DF435B51460A46D1F + 70C093AA46BF09C980C12CA914E6F371ADD707EF1DB3B0B0B8006EB79B8EA96B + EA5106121851245129118FD8BFA2DC5C53C6BAF5EBBBBA97C2D64EC064195B1F + 286C76E956A0EA5C51AEB4764A9929F5750D5A9581D2274B9B651C0BA2F514A8 + 6F28E36B70AD9A4253EF97A9AA55B0CEBA87D03B645B3F43C1DE589C58186D10 + 81150FCAC57B11E161B04517099BB953C78643141B01BA28EEE4DAB0B04DE2B8 + CA460B9C399902E661BB3AB0F5AD038BF30CD4D7E7DD14815A61023027DD00EF + 469C1A80FD1C307F1578FD4A81E665945AD68924181A9D5007B6F4DBF1527E32 + F5C9D3632351F8F549AEE916B14EAA039BCD362C31A6040D23E7887D4A03B0CF + 86C5C6641A24BB7646D3F2D51A77F8C1BCDCFFC79CD3EAC0D7BD56AE86294165 + 4660CB5C6B737DD3062CCA31D00069E76E05241862CF1EDD05E7D40F756063CF + 673C7F5A4F679A59541EF03E4C8C3B0893DF67D481AFBAC7B0F05412CD30EBE2 + ED80F7617CEC0198FEF94B1BF06C6622AD4B4EC99D80F7A1666043D7281A3312 + FD84C20B8417C3AA789405239826E0CBCE4F98979E10344C33B0BE630473D312 + 82866906D6993E62F6F1C3F45D160A5305BE68FF8095CF5B4302134CFE1185EA + 1FB8A1B4FF4FE32FF6FADB8B5E0000000049454E44AE426082} + Instruction.Text = 'Se ha generado el albar'#225'n de cliente' + Instruction.Glyph.Data = { + 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001C00 + 00001C0806000000720DDF940000000970485973000017120000171201679FD2 + 520000000467414D410000B18E7CFB5193000003104944415478DAAD96FB4B14 + 5114C7CFE463DC1E606444BFF54424D3DC55CA52B1CCD7165A219905054182FD + 1452FD5810FD100406610A669A998FC4F5BDB6266265DAB60F5DD15E58FE03B2 + 3F99D29ABBA7B9779C71C61D9D6177CFCE70CFDCB97B3EF7DCF3BD33C38082FD + B502B2B300CC656020048688A24F036233A0671F40D43160BA87BF62AEEE1010 + 60D7AE293AD8B835815E9B625C80DC8F1E88D4A7C1E8C1FB8F9FD6C3C44035B3 + 21500A65F6D700FE2EA580A5EC551F4A50359316B31D76EFDC0EE5F72A645045 + A067AE0623074B8140891108F1057064CC0D556053DF173812B707E6DCF332A8 + 225080D201DB4AF99BF335B4D502F371415BCC364833C4C29F458F0C2A031281 + 081734AB0B3C88403C1E6E3E2E7960F6A8FFD27A7D3EF07A11DA2C76C84A8D87 + A57FCB32E8B8A54A4C8C21B59365C9015996EF2240B6634DF435B51460A46D1F + 70C093AA46BF09C980C12CA914E6F371ADD707EF1DB3B0B0B8006EB79B8EA96B + EA5106121851245129118FD8BFA2DC5C53C6BAF5EBBBBA97C2D64EC064195B1F + 286C76E956A0EA5C51AEB4764A9929F5750D5A9581D2274B9B651C0BA2F514A8 + 6F28E36B70AD9A4253EF97A9AA55B0CEBA87D03B645B3F43C1DE589C58186D10 + 81150FCAC57B11E161B04517099BB953C78643141B01BA28EEE4DAB0B04DE2B8 + CA460B9C399902E661BB3AB0F5AD038BF30CD4D7E7DD14815A61023027DD00EF + 469C1A80FD1C307F1578FD4A81E665945AD68924181A9D5007B6F4DBF1527E32 + F5C9D3632351F8F549AEE916B14EAA039BCD362C31A6040D23E7887D4A03B0CF + 86C5C6641A24BB7646D3F2D51A77F8C1BCDCFFC79CD3EAC0D7BD56AE86294165 + 4660CB5C6B737DD3062CCA31D00069E76E05241862CF1EDD05E7D40F756063CF + 673C7F5A4F679A59541EF03E4C8C3B0893DF67D481AFBAC7B0F05412CD30EBE2 + ED80F7617CEC0198FEF94B1BF06C6622AD4B4EC99D80F7A1666043D7281A3312 + FD84C20B8417C3AA789405239826E0CBCE4F98979E10344C33B0BE630473D312 + 82866906D6993E62F6F1C3F45D160A5305BE68FF8095CF5B4302134CFE1185EA + 1FB8A1B4FF4FE32FF6FADB8B5E0000000049454E44AE426082} + Instruction.Icon = tdiCustom + CustomButtons = < + item + Caption = 'Ver el albar'#225'n' + Value = 100 + Info.Strings = ( + 'Mostrar el albar'#225'n que se ha creado') + end> + ButtonBar.Buttons = [cbOK] + ButtonBar.Cancel = cbOK + ButtonBar.UseCancel = False + MainIcon = tdiCustom + Title = 'FactuGES' + Position = dpMainFormCenter + Icon.Data = { + 0000010003002020100001000400E8020000360000002020000001000800A808 + 00001E0300002020000001002000A8100000C60B000028000000200000004000 + 0000010004000000000000020000000000000000000000000000000000000000 + 000000008000008000000080800080000000800080008080000080808000C0C0 + C0000000FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFFFF000000 + 0000000000000000000000000000000008777777777777777777777700000000 + 0877767777677776777767760000000008F88888888888888888888700000000 + 08F8FF8F8F888888888888860000000008FF8F8F88F8F8888888888C00000000 + 08F88888F8888888888888860000000008F8688878E8888E88E8788700000000 + 08F8688888F8F8FFFFFF88760000000008FF4888888F8FFFFFFF788700000000 + 08F8676767677677677658E50000000008FF8888888887878787888700000000 + 08FF8887887E8888888888860000000008FFE8E8E788C8E8FF8F8F8600000000 + 08FFF8F8F8F8FF8F88F8F8870000000008FFFFFF8FF8F8F8F88F888600000000 + 0FF8477878787878788788860000000008FF68888888F8FF8F8F788700000000 + 08B7588888FF8FFFFFFF78860000083008BB47887776777777776F86000000B7 + 8B9B73BB88788787E87878870000008BB8B9BB78888888EFF8F8FF8600000087 + B8BB8B888E8E8E88FFF8F886000000088BBB888FFFFFFFFFF8F877770000B9BB + B8FFBB9B9BFFFFFFF87466460000BBB9BB8FBBBBB8FFFFFFF88F888700000008 + B8BB88888FFFFFFFF88F8F7700000008BBBBBB8FFFFFFFFFFF8887700000007B + B7B98BB8FFFFFFFFF8887700000000B78B9B87B888F88F88F8877000000007B0 + 08BB883B78888788787700000000000000B9000000000000000000000000FFFF + FFFFF800000FF800000FF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000FF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000F9800000FC000000FC000000FC000000FE000000F0000 + 000F0000000FE000000FE000001FC000003FC000007F980000FFFCFFFFFF2800 + 0000200000004000000001000800000000000004000000000000000000000001 + 00000001000000000000694731007C5D49007E604C0081635000826451008567 + 540085685500886B5900896D5B008A6E5D008B705F008E715F008B7260008C72 + 61008E74640084766C00957A6900977D6D00887B72009A8171009D8272009C84 + 76009D8778009F897B00A28A7900A08B7D00A18C7E00E1B06E00E1B67D003E7A + 970073A0A5007AA2B70074AFBD007BB2BB003CAACE0028A5DB0020ADDF000D9A + E500209EE3000DA6E2001AA4EF0000A6FF000CABFE0009ACFE0010A4F10015AC + FA0000B5FB0000B0FD000CB6FC0000BFF90000BAFD0004BAFD0009BBFB0013B6 + F40015BFFA001CBDFB0026B7FD00589EC50040A4CD0040ABCC0050A2C7005DAE + C00060A3C20062A4C60060B7CB006AB0CD007BB6C80077BAC80061BADD0044AD + E50000C3F80007C6FB0000CAF80000CFFB0000D4F90026C8FA0026CDF8002BCC + F90039C4FB0039C2FC0039CAFA003FCFFB0024D6F80030D2F80039D5F80000F8 + F8001FF8F8002CF6F8003EF4F8005AC6DC0070CDDF0052C0E40054C9E3004DCE + FA005FC7FF004FD2FB004DD9F8005FD9FB006ED3E70063CDFE0060D1FB0060D8 + F90060DDF80046F8F90056F0F8005FFAFA0073E3F80073E4F90073EEF80060F1 + F800958A84009A918C0081999500A68F8200AD968500A3968C00AE988900AD9A + 8D00B19A8B00AF9C9000B09E9200B59F9200B7A29300B2A19600B5A19400B7A4 + 9700BDA79700B4A39800B1A59D00B4A79F00BAA69800BCA79900B4A89F00BCA8 + 9900BAA89C00BDAA9D00BEAC9E0083ADBD00B5A9A100BDABA000BEADA100BFAF + A500A0BABE00C0AB9E00C1AC9E00C6AE9F00E2B98100E4BA8300E4BB8400E5BC + 8500E1BD8E00E3BF9000C0ADA000C2B0A300C2B1A500C4B2A600C1B2A800C3B5 + AB00C8B4A800CCB9AD00CEBCB100D0BEB200D1BFB400E4C19300E5C29400E6C4 + 9600E8C69900D0C9A300CFC1B800D2C1B600D3C3B800D5C4B900D6C6BC00D8C6 + BC00D6C8BE00DAC9BF00ECD3B000EDD4B200EFD6B500E7D1B800E7D3BD00F0D8 + B6008CB7C40080BEC70097C3C70099C3C900ABD7CF00AFD9DD0086E3F90086E7 + F90086ECF8009EE5FB0090E8F900ACEDFC00BCEAFD00BCF1FB00BFF1FD00D7C9 + C000D9CAC100DCCBC200DACCC200DDCCC300DACCC400DDCEC400DED0C600DED1 + C900DED3CC00DFD4CD00E1D1C900E2D5CD00F0DCC200E3D8D200E5D9D200E2DA + D500E6DBD400E5DCD500E8DDD600E6DDD800E9DFD900E6E0DB00EAE0DA00EAE2 + DD00ECE3DE00EBE4DE00ECE4DE00F3E7D900C6E1EF00C9EFFD00D7F6FD00DFF3 + FF00DFFEFE00EBE7E300EDE6E100EFE7E400EEE8E400F0EAE600F2EDE900F2EE + EC00F4EFEC00F5F0EE00F9F4ED00E7FAFD00EBF8FF00F6F2F000F7F4F100F8F4 + F200F9F7F500FAF8F600FBF9F900FCFBFA00FCFCFB00FEFEFE00000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000007D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D + 0D0D0000000000000000009C9C19191919191919191919191919191919191919 + 1903000000000000000000ABDECBCBC7C7AFABABABABAAA3A2A2A0A0A0A0A0A0 + 8607000000000000000000ABECEAE9DEDEDEDED7D5D2D2D2CBCBCBCBB0CBB0CB + 9007000000000000000000ABEDECEAE9DEDEDBD7D7D5D2D2D2CDCDCBB0B0B0B0 + 9007000000000000000000AFEDE9A9CFD2CFD2CDCBCBCBB0B0ABACA3A3A3A3B0 + 9007000000000000000000AFF0D5017783838386868686869099909999907BB0 + 9007000000000000000000B0F4D501A0B0CBD2D5DEECEDF7FAFAFAFAFAF77BAA + 9007000000000000000000CBF4DC01A0B0B0B0D2D5DBEAEDF7FAFAFAFAF47BB0 + 9007000000000000000000CBF8DC010404070604090909090D0D110D110D02A3 + 9007000000000000000000CBFAED9E9E9E9C999E8C8C8C868683837E7D7D7ACB + 9007000000000000000000CBFAF1A7A7A6A6A6A69898989898B5DBDBD5D5D2D2 + 9907000000000000000000CDFAF796969696961D961D931D1DB4DEDBD7D5D5D2 + 9C07000000000000000000CFFAFAFAFAF8F7F0F0EDEDEDECE9E9DEDEDED7D5D5 + 9907000000000000000000CDFAFAEAF0EDEDECEAEAE9DEDEDBDCD5D5D5D5D2D5 + 9C07000000000000000000D2FAEC01737D7D7B7D7D7B7D7B7D7B7B7B7D7B7DD2 + 9907000000000000000000CFFAEC019EABB0CBD2D5DCDEECEDF4F4F4F4EA7BD2 + 9C07000000000000000000B9524601A0B0B0CBB5D5DEEAEDF7FAFAFAFAF47DD5 + 9C070000000000213F0000B83226010C3F5C1F111214141616191B1B1B1807D2 + 9C07000000000000253D8A5B322D711E2860BA7E7E7A7E797A797979767676D5 + 9E0700000000000041375E662F2B65314EBBB6B6B6B6B4B4B1E2F4EDEDEDECEA + 9C070000000000008F5D66663232394EC1A81C1C1C1C1C1C1CD3F7F4EDDED7D5 + 9C0700000000000000B7BE6E5758BEBDE4E6E6F3FAFAFAFAFAFAF7F4D5928675 + 7304000000002A2A2A2A4A6AFAE7562F2A2A2A5FFAFAFAFAFAFAF8D577010101 + 0101000000004747472F4A59C5E7564A32474766FAFAFAFAFAFAFADCA0D2CFB0 + A20C00000000000000436C6958686D6BC2C5C5E7FAFAFAFAFAFAFADEAADEDBCB + 1470000000000000004551534A4A5250C0E7FAFAFAFAFAFAFAFAFADEAAD7B514 + 700000000000000042384C54472B613550C3FAFAFAFAFAFAFAFAFADEA1B0196F + 000000000000000024234463322EBC5A3664E3ECE9E9E9E9E9E9E9CF90731300 + 000000000000003A3C00002232298B8B3E3B207E8B7E8B7E827E817E74100000 + 0000000000000000000000003227000000000000000000000000000000000000 + 000000000000FFFFFFFFF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000FF800000FF800000FF800000FF800000FF800000FF800 + 000FF800000FF800000FF800000FF800000F9800000FC000000FC000000FC000 + 000FE000000F0000000F0000000FE000000FE000001FC000003FC000007F9800 + 00FFFCFFFFFF2800000020000000400000000100200000000000801000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000007067 + 5F70AA9382E570513CE3735540E3735540E3735540E3735540E3735540E37355 + 40E3735540E3735540E3735540E3735540E3735540E3735540E3735540E37355 + 40E3735540E3735540E3735540E3735540E3735540E3735540E372533EE5BAAB + A070000000000000000000000000000000000000000000000000000000005E54 + 4C7FCAB7ABFFC5B5AAFFA18877FFA28A78FFA28A79FFA28A79FFA28A79FFA28A + 79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A + 79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA58D7CFF7A5B46FFB2A1 + 967F000000000000000000000000000000000000000000000000000000006055 + 4D7ED7C6BBFFEDE4E0FFD9CCC4FFD9CCC4FFD9CBC3FFD8CAC1FFD7C9BFFFD6C7 + BDFFD5C6BBFFD4C4BAFFD3C3B8FFD2C1B7FFD1C0B5FFD0BEB3FFCFBDB2FFCEBC + B0FFCEBBAFFFCEBBAFFFCEBBAFFFCEBBAFFFCEBCB0FFBEAA9CFF82644FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006056 + 4D7ED7C8BCFFF2EBE8FFEFE9E5FFEEE7E2FFECE5E0FFEBE2DEFFEAE0DBFFE9DE + D8FFE7DBD4FFE5D9D1FFE3D7CFFFE2D4CCFFE1D2C9FFDFD0C7FFDDCDC4FFDCCB + C2FFDBC9BFFFDBC9BFFFDBC9BFFFDBC9BFFFDCCAC1FFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006155 + 4E7ED8C9BDFFF3EDE9FFF1EAE6FFF0E9E6FFEEE6E1FFECE4DFFFEBE2DDFFEAE0 + DAFFE9DED7FFE7DBD4FFE5D9D1FFE3D7CFFFE2D4CCFFE1D2C9FFDFD0C7FFDDCD + C4FFDCCBC2FFDBC9BFFFDBC9BFFFDBC9BFFFDCCAC0FFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006157 + 4E7ED9C9BFFFF4EFEDFFEFE8E3FFD0C2B9FFDFD5CEFFE0D5CEFFE0D4CCFFDED3 + CBFFDDD1C8FFDCCFC6FFDACCC4FFD9CBC1FFD8C9BFFFD7C7BDFFD6C5BBFFD5C4 + B9FFD3C2B7FFD2C0B5FFD2BFB4FFD2BFB4FFDAC8BEFFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006256 + 4F7EDACCC0FFF5F2EFFFE5DDD9FF5C3821FFB0998AFFB8A394FFB8A394FFB9A3 + 94FFB8A495FFB9A597FFB9A698FFBAA698FFBBA799FFBBA89AFFBBA89BFFBCA8 + 9BFFBCA89BFFBCA89BFFBBA89AFFB49E8FFFD8C6BBFFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006256 + 4F7EDBCBC1FFF8F4F3FFE7E0DBFF5F3C24FFD0BDB2FFDCCBC1FFDDCCC3FFE2D2 + CBFFE7DBD4FFEDE2DEFFF0E8E6FFF5F0EDFFF9F7F4FFFDFDFDFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFAF8F7FFB39D8DFFD8C6BBFFC1AC9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006256 + 4F7EDCCEC3FFFAF6F5FFE9E2DDFF5F3C24FFD2BFB5FFDFCDC4FFDECCC3FFE0CE + C6FFE4D4CDFFE9DDD6FFEFE4E0FFF1EAE8FFF7F1EFFFFBF8F6FFFFFEFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFCFBFAFFB5A090FFD9C7BEFFC1AD9FFF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006257 + 4F7EDDCFC4FFFCF9F9FFE9E4E0FF5F3A23FF7C5D49FF7F5F4CFF7E5F4CFF7E60 + 4DFF7F614DFF816350FF826552FF836654FF846856FF856A57FF866B59FF876C + 5BFF876D5BFF876D5BFF866B59FF72523DFFD5C3B9FFC1AFA1FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006357 + 507EDECFC6FFFCFCFBFFF4F1F0FFC3B6AEFFC3B5ADFFC1B4ACFFC0B3AAFFBFB1 + A9FFBEB0A6FFBDAEA5FFBDACA3FFBCABA2FFBBAAA0FFBAA99FFFB8A69AFFB8A4 + 98FFB6A396FFB5A194FFB49F93FFB39D90FFDCCDC4FFC2AEA1FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006357 + 507EDFD2C7FFFEFEFDFFF9F5EFFFE8C696FFE9C799FFE8C697FFE7C596FFE7C4 + 95FFE6C394FFE5C293FFE4C091FFE4C090FFE3BF8FFFE2BD8CFFE9D5BFFFEBE1 + DCFFEADFD8FFE7DCD5FFE5DAD3FFE4D8D0FFE3D4CCFFC2AFA2FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006458 + 517EE0D3C8FFFFFFFFFFFAF5EFFFE3B77CFFE4B97FFFE2B87EFFE3B77DFFE2B7 + 7CFFE2B67BFFE1B57AFFE1B479FFE0B478FFE0B377FFDFB174FFE6D0B7FFEBE1 + DCFFE8DFD9FFE8DDD6FFE6D9D2FFE3D8D1FFE4D7CFFFC3AFA2FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006458 + 517EE1D2C9FFFFFFFFFFFEFEFDFFFEFFFFFFFCFDFEFFFBFBFBFFF9F7F8FFF8F5 + F6FFF7F3F2FFF5F1F0FFF4EFEEFFF1EDEBFFF0EBE9FFEEE9E6FFEDE6E2FFECE3 + DEFFEBE1DBFFE9DFD9FFE8DDD6FFE6DAD3FFE5D9D2FFC3B0A3FF81634FFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006459 + 517EE1D4CAFFFFFFFFFFFDFDFCFFEEEBE8FFF5F2F0FFF4F0EFFFF3EFECFFF2ED + EAFFF1EBE8FFEEE9E5FFEFE7E3FFECE5E1FFEAE4DEFFEAE1DCFFE8E0DAFFE7DE + D8FFE6DDD6FFE5DBD4FFE4D8D1FFE2D6CEFFE6DBD4FFC3B1A4FF81634EFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006559 + 527EE2D4CAFFFFFFFFFFF0ECEAFF5B361EFFAB9383FFB39D8EFFB39D8DFFB39D + 8DFFB29D8DFFB29C8DFFB29C8CFFB29C8CFFB29C8CFFB29C8CFFB29C8CFFB29C + 8CFFB29C8CFFB29C8CFFB29C8DFFB39D8EFFE3D8D0FFC4B1A4FF81634EFFB2A1 + 967E000000000000000000000000000000000000000000000000000000006559 + 527EE5D4CAFFFFFFFFFFF7F0EBFF5F3B24FFCCB8ADFFD7C5BAFFD9C7BDFFDCCC + C3FFE1D4CCFFE5DAD4FFE8E0DBFFEDE5E1FFF1EBE9FFF5F2EFFFF7F5F3FFF8F6 + F4FFF8F5F4FFF8F6F4FFF1EEEAFFB29C8DFFE6DAD3FFC4B2A5FF81634EFFB2A1 + 967E00000000000000000000000000000000000000000000000000000000685A + 527E9AC6C9FF35CFFEFF3DAEEBFF663E24FFD2BFB4FFE0CBBFFFE0C9BDFFE1CD + C4FFE4D5CDFFE9DED7FFEEE5E0FFF2EBE8FFF6F2F0FFFCF8F8FFFFFFFEFFFFFF + FFFFFFFFFFFFFFFFFFFFFCFAF9FFB49E8FFFE7DED7FFC5B3A6FF81634EFFB2A1 + 967E00000000000000000000000000000000007792910072A7A3001E33366957 + 4C7C86C1C8FF00BFFBFF079AEBFF6A3E23FF926D57FF5FA3C8FF4AC1E8FF6C9C + A2FF917260FF927767FF947A69FF957C6CFF977E6FFF998171FF9A8374FF9B85 + 76FF9C8678FF9C8678FF998274FF7D5E49FFE3D9D4FFC5B3A7FF81634EFFB2A1 + 967E00000000000000000000000000000000005A6F7000A9E5E40075AEAE5C90 + A5BD75D0E0FF00BFFAFF0CA3F4FF8A9A91FF3C7492FF03A4E4FF4AD5FFFF98C4 + CBFFB3A196FFB1A197FFB0A096FFB09F95FFAF9D92FFAF9C91FFAD9A8EFFAC99 + 8CFFAB988AFFAB9789FFAA9688FFA99386FFE8E0DAFFC5B4A7FF81634EFFB2A1 + 967E00000000000000000000000000000000000000002DA5BFC110C2FFFF4DD0 + FDFF64DBF9FF00B3FAFF09A8FEFF68D7FFFF04B5FFFF24CCFBFFAFD8CEFFF7DA + B8FFF3DBBBFFF3DBBAFFF2D9B9FFF1D8B7FFF0D7B4FFEED5B2FFF6EADDFFF9F6 + F4FFF7F3F1FFF5F1EEFFF5EFECFFF4EDEAFFF1EBE7FFC6B4A8FF81634EFFB2A1 + 967E00000000000000000000000000000000000000005F8A909142C7E4E960DE + F8FF64D7FAFF00B6FDFF00B8FDFF21B2FDFF1ECCF7FF93EBFCFFD2C69BFFE1AB + 63FFDFAC66FFDFAC66FFDFAC66FFDFAC66FFDFAC66FFDEA961FFEFDBC0FFF8F6 + F5FFF6F2F0FFF3EDEBFFECE2DCFFE9DFD9FFE5DBD6FFC2B1A4FF81634FFFB2A1 + 967E000000000000000000000000000E171A000E171A00040B145994A4A990EB + FCFF61F1F7FF13FAF7FF23F9F7FF93EDF7FF8CE5F8FFD5F2FDFFE9F8FFFFE7F8 + FFFFF0FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFDFEFFFFFAFAF9FFF9F7 + F5FFF7F2F0FFE8DFD8FFC7AE9FFFBEA998FFAF9888FFB09A8AFF7F604DFFB2A1 + 967E00000000000000000000000000AAFFFF00AAFFFF00AAFFFF00A4FFFF00CD + FAFF5DFCF9FFFFFFFFFFEEFEFEFF00FBF7FF00AAFEFF00A1FFFF00A1FFFF00A0 + FFFF56C3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCFDFBFFFCFBFAFFFBFA + F8FFE6DDD6FFAA9180FF5D3922FF603D26FF613E27FF613E28FF634029FFB4A3 + 987E00000000000000000000000000CAFFFF00CAFFFF00CBFFFF00B0FFFF00CD + FBFF38F5F7FFC3EFFAFFF0FFFEFF00FAF7FF00C8F7FF00C2F7FF00C2F7FF00C1 + F7FF57D7FAFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFDFDFCFFFCFC + FBFFE7DED8FFCCB9ACFFE6DBD5FFE2D7D0FFDCCFC5FFD7C5BBFF8E705DFFB4A2 + 9680000000000000000000000000002E383C002E383C00252F364C99B0B57DE8 + FBFF59F1F7FF25F7F7FF41FAF8FF7CEEF7FF77E4F7FFB5EFFCFFC6F2FDFFC3F2 + FDFFD9F6FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFEFEFFFEFE + FEFFE9E1DAFFCEBCAFFFF1E9E3FFEADFD8FFE4D5CCFF9D816FFF3A291F868985 + 831C00000000000000000000000000000000000000004E7073774AB0DADC37C9 + FBFF22D5F7FF00D3F9FF02C3FBFF37D5F7FF34BEFCFFA2E6FAFFECFBFDFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFF + FFFFEAE2DCFFCDBBADFFEADFD8FFE3D5CBFF9F8271FF3E2D2386050100200000 + 000000000000000000000000000000000000000000003E9CC4C219C0FFFF23C9 + FCFF30D3F8FF00BEF8FF06A8FEFF4FDCF8FF00B8FCFF32C2FBFFC0EBFCFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFEAE3DEFFCDB9ABFFDDCEC4FFA58979FF3E2C1F8F0905041B000000000000 + 000000000000000000000000000000000000003451510099DDDB0091C0C35DAD + BCCF76D7E9FF00BEF9FF10A9FBFFBDDEDEFF5AC8DDFF0AB5F7FF62CEFFFFCBE4 + F1FFF1E7E0FFEFE7E1FFEEE6E1FFEEE6E1FFEEE6E0FFEDE6E0FFEDE5E0FFEEE6 + E1FFE1D4CCFFC5AE9FFFA68D7FF53E2718A10402000E00000000000000000000 + 0000000000000000000000000000000000000075B7AF0099C7C500323E425442 + 3B5C6BA8B1DA00C1FCFF0EA1F3F8A98E80C0AB9081C12698B1C10088C4C14C85 + A3C1A18D80C19E8D81C19E8B81C19D8C80C19B8C7FC19B8A7FC19C897FC19A89 + 7EC19B8B7EC1897769C2432B1BAC000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000045565A00C5FFFF0094E6E2000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000FFFFFFFFF0000007F0000007F0000007F000 + 0007F0000007F0000007F0000007F0000007F0000007F0000007F0000007F000 + 0007F0000007F0000007F0000007F0000007F0000007F0000007800000078000 + 0007C0000007C000000700000007000000070000000700000007C000000FC000 + 001F8000003F800000FFF8FFFFFF} + Width = 450 + Left = 72 + Top = 16 + end +end diff --git a/Source/Modulos/Relaciones/Contratos de cliente - Albaranes de cliente/uGenerarAlbaranesCliUtils.pas b/Source/Modulos/Relaciones/Contratos de cliente - Albaranes de cliente/uGenerarAlbaranesCliUtils.pas new file mode 100644 index 0000000..4b8edbc --- /dev/null +++ b/Source/Modulos/Relaciones/Contratos de cliente - Albaranes de cliente/uGenerarAlbaranesCliUtils.pas @@ -0,0 +1,272 @@ +unit uGenerarAlbaranesCliUtils; + +interface + +uses + Windows, SysUtils, Classes, pngimage, JSDialog, + uBizContratosCliente, uBizAlbaranesCliente; + +type + TdmGenerarAlbaranesCli = class(TDataModule) + JsListaAlbaranesGenerados: TJSDialog; + end; + + function GenerarAlbaranCli(const IDContrato : Integer) : Boolean; overload; + function GenerarAlbaranCli(AContrato : IBizContratoCliente; var AAlbaran: IBizAlbaranCliente) : Boolean; overload; +// function ElegirPedidoYGenerarAlbaranCli(var IDAlbaran: Integer) : Boolean; + +implementation + +{$R *.dfm} + +uses + uDialogUtils, uBizDetallesContratoCliente, uBizDetallesAlbaranCliente, + uContratosClienteController, uAlbaranesClienteController, uClientesController, + uDetallesAlbaranClienteController, uControllerDetallesBase, + uBizContactos, schContratosClienteClient_Intf, + schAlbaranesClienteClient_Intf; + +var + dmGenerarAlbaranesCli: TdmGenerarAlbaranesCli; + AContratosClienteController : IContratosClienteController; + AAlbaranesClienteController : IAlbaranesClienteController; + ADetallesAlbaranesCliController : IDetallesAlbaranClienteController; + AClientesController : IClientesController; + +{ Métodos auxiliares } +procedure CopiarContratoAAlbaran(AContrato: IBizContratoCliente; + AAlbaran : IBizAlbaranCliente); +begin + if not Assigned(AAlbaran) then + raise Exception.Create ('Albarán no asignado (CopiarContratoAAlbaran)'); + + if not Assigned(AContrato) then + raise Exception.Create ('Pedido no asignado (CopiarContratoAAlbaran)'); + + if not AContrato.DataTable.Active then + AContrato.DataTable.Active := True; + + // El albarán tiene que venir ya abierto y posicionado donde hay que copiar + AAlbaran.ID_CLIENTE := AContrato.ID_CLIENTE; + AAlbaran.ID_PEDIDO := AContrato.ID; + AAlbaran.CALLE := AContrato.CALLE; + AAlbaran.CODIGO_POSTAL := AContrato.CODIGO_POSTAL; + AAlbaran.POBLACION := AContrato.POBLACION; + AAlbaran.PROVINCIA := AContrato.PROVINCIA; + AAlbaran.PERSONA_CONTACTO := AContrato.PERSONA_CONTACTO; + AAlbaran.TELEFONO := AContrato.TELEFONO; + AAlbaran.MOVIL := AContrato.MOVIL; + AAlbaran.IMPORTE_NETO := AContrato.IMPORTE_NETO; + AAlbaran.IMPORTE_PORTE := AContrato.IMPORTE_PORTE; + AAlbaran.DESCUENTO := AContrato.DESCUENTO; + AAlbaran.IMPORTE_DESCUENTO := AContrato.IMPORTE_DESCUENTO; + AAlbaran.BASE_IMPONIBLE := AContrato.BASE_IMPONIBLE; + AAlbaran.IVA := AContrato.IVA; + AAlbaran.IMPORTE_IVA := AContrato.IMPORTE_IVA; + AAlbaran.IMPORTE_TOTAL := AContrato.IMPORTE_TOTAL; + AAlbaran.DataTable.FieldByName(fld_AlbaranesClienteOBSERVACIONES).AsVariant := AContrato.DataTable.FieldByName(fld_ContratosClienteOBSERVACIONES).AsVariant; + AAlbaran.ID_FORMA_PAGO := AContrato.ID_FORMA_PAGO; +end; + +procedure CopiarDetallesAAlbaran( + AContrato: IBizContratoCliente; + AAlbaran: IBizAlbaranCliente; + AArticulos: IBizDetallesContratoCliente); +var + i : integer; + ADetalles : IBizDetallesAlbaranCliente; + ADetallesController : IDetallesAlbaranClienteController; +begin + if not Assigned(AAlbaran) then + raise Exception.Create ('Albaran no asignado(CopiarDetallesAAlbaran)'); + + if not Assigned(AContrato) then + raise Exception.Create ('Contrato no asignado (CopiarDetallesAAlbaran)'); + + if not Assigned(AArticulos) then + raise Exception.Create ('Artículos no asignado (CopiarDetallesAAlbaran)'); + + if not AArticulos.DataTable.Active then + AArticulos.DataTable.Active := True; + + // El contrato tiene que venir ya abierto y posicionado donde hay que copiar + + ADetalles := AAlbaran.Detalles; + ADetallesController := TDetallesAlbaranClienteController.Create; + try + //OJO IMPORTANTE + //Siempre que vayamos a trabajar con los detalles debemos hacer un beginupdate de los mismos y un endupdate para + //obligarle siempre a recalcular los detalles una sola vez + ADetallesController.BeginUpdate(ADetalles); + + AArticulos.DataTable.First; + for i := 0 to AArticulos.DataTable.RecordCount - 1 do + begin + ADetallesController.Add(ADetalles, AArticulos.TIPO_DETALLE); + ADetalles.Edit; + ADetalles.REFERENCIA := AArticulos.REFERENCIA; + ADetalles.ID_ARTICULO := AArticulos.ID_ARTICULO; + if (AArticulos.PROPIEDAD <> '') then + ADetalles.CONCEPTO := AArticulos.PROPIEDAD + ': '+ AArticulos.CONCEPTO + else + ADetalles.CONCEPTO := AArticulos.CONCEPTO; + + if not AArticulos.CANTIDADIsNull then + ADetalles.CANTIDAD := AArticulos.CANTIDAD; + if not AArticulos.IMPORTE_UNIDADIsNull then + ADetalles.IMPORTE_UNIDAD := AArticulos.IMPORTE_UNIDAD; + if not AArticulos.IMPORTE_TOTALIsNull then + ADetalles.IMPORTE_TOTAL := AArticulos.IMPORTE_TOTAL; + if not AArticulos.DESCUENTOIsNull then + ADetalles.DESCUENTO := AArticulos.DESCUENTO; + if not AArticulos.IMPORTE_PORTEIsNull then + ADetalles.IMPORTE_PORTE := AArticulos.IMPORTE_PORTE; + ADetalles.VISIBLE := AArticulos.VISIBLE; + ADetalles.REFERENCIA_PROVEEDOR := AArticulos.REFERENCIA_PROVEEDOR; + ADetalles.Post; + AArticulos.Next; + end; + finally + ADetallesController.EndUpdate(ADetalles); + ADetallesController := NIL; + end; +end; + +procedure Inicializar; +begin + dmGenerarAlbaranesCli := TdmGenerarAlbaranesCli.Create(nil); + AContratosClienteController := TContratosClienteController.Create; + AAlbaranesClienteController := TAlbaranesClienteController.Create; + ADetallesAlbaranesCliController := TDetallesAlbaranClienteController.Create; + AClientesController := TClientesController.Create; +end; + +procedure Finalizar; +begin + FreeAndNIL(dmGenerarAlbaranesCli); + AContratosClienteController := nil; + AAlbaranesClienteController := nil; + ADetallesAlbaranesCliController := nil; + AClientesController := nil; +end; + + +function GenerarAlbaranCli(const IDContrato : Integer) : Boolean; overload; +var + Acontrato : IBizContratoCliente; + AAlbaran : IBizAlbaranCliente; +begin + Result := False; + + try + if not Assigned(AContratosClienteController) then + Inicializar; + + Acontrato := AContratosClienteController.Buscar(IDContrato); + if Assigned(Acontrato) then + Result := GenerarAlbaranCli(Acontrato, AAlbaran); + + finally + if Assigned(AContratosClienteController) then + Finalizar; + end; +end; + +function GenerarAlbaranCli(AContrato : IBizContratoCliente; var AAlbaran: IBizAlbaranCliente) : Boolean; overload; +var + ARespuesta : Integer; + AuxAlbaran : IBizAlbaranCliente; +// AArticulosPendientes: IBizPedidoClienteArticulosPend; +begin + Result := False; + AAlbaran := NIL; + + if not Assigned(AContrato) then + raise Exception.Create('Pedido de cliente no asignado (GenerarAlbaranCli)'); + + if not AContrato.DataTable.Active then + AContrato.DataTable.Active := True; + + if not Assigned(AContratosClienteController) then + Inicializar; + + try +{ + AArticulosPendientes := APedidosClienteController.ArticulosPendientes(APedido.ID); + if not Assigned(AArticulosPendientes) then + raise Exception.Create('Error al recuperar los artículos sin albarán del pedido (GenerarAlbaranCli)'); + + AArticulosPendientes.DataTable.Active := True; + if AArticulosPendientes.DataTable.RecordCount = 0 then + begin + ShowWarningMessage('Generar albarán a partir del pedido', 'Todos los artículos de este pedido ya figuran en uno o más albaranes de cliente. Por lo que no se pueden generar nuevos albaranes para este pedido'); + Exit; // Aunque es un exit, se ejecuta la parte del finally antes de salir. + end; +} + AuxAlbaran := AAlbaranesClienteController.Nuevo; + CopiarContratoAAlbaran(AContrato, AuxAlbaran); + CopiarDetallesAAlbaran(AContrato, AuxAlbaran, AContrato.Detalles); + + //Sustituir por if de guardar + if AAlbaranesClienteController.Guardar(AuxAlbaran) then + begin + AAlbaran := AuxAlbaran; + with dmGenerarAlbaranesCli.JsListaAlbaranesGenerados do + begin + Instruction.Text := 'Se ha generado el albarán'; + + Content.Clear; + Content.Add(Format('Se ha generado correctamente el albarán %s a partir del pedido de cliente' + #10#13, [AuxAlbaran.REFERENCIA])); + Execute; + + ARespuesta := CustomButtonResult; + case ARespuesta of + 100 : begin + // Ver el albarán + AAlbaranesClienteController.Ver(AuxAlbaran); + end; + 200 : // Continuar; + end; + end; + end; + + Result := True; + finally +// AArticulosPendientes := NIL; + if Assigned(AContratosClienteController) then + Finalizar; + end; +end; + +{ +function ElegirPedidoYGenerarAlbaranCli(var IDAlbaran: Integer) : Boolean; overload; +var + APedido : IBizPedidoCliente; + AAlbaran : IBizAlbaranCliente; +begin + Result := False; + IDAlbaran := -1; + + AAlbaran := NIL; + try + if not Assigned(APedidosClienteController) then + Inicializar; + + APedido := APedidosClienteController.ElegirPedidos(APedidosClienteController.BuscarPendientes, + 'Elija el pedido de cliente que desea utilizar para dar de alta el albarán de cliente.' + , False); + + if Assigned(APedido) then + begin + Result := GenerarAlbaranCli(APedido, AAlbaran); + if Result then + IDAlbaran := AAlbaran.ID; + end; + finally + if Assigned(APedidosClienteController) then + Finalizar; + end; +end; +} + +end. diff --git a/Source/Modulos/Subfamilias/Controller/SubFamilias_controller.dpk b/Source/Modulos/Subfamilias/Controller/SubFamilias_controller.dpk new file mode 100644 index 0000000..c0a62ff Binary files /dev/null and b/Source/Modulos/Subfamilias/Controller/SubFamilias_controller.dpk differ diff --git a/Source/Modulos/Subfamilias/Controller/SubFamilias_controller.dproj b/Source/Modulos/Subfamilias/Controller/SubFamilias_controller.dproj new file mode 100644 index 0000000..94fc1e9 --- /dev/null +++ b/Source/Modulos/Subfamilias/Controller/SubFamilias_controller.dproj @@ -0,0 +1,542 @@ + + + {7f80f8aa-6912-4714-986d-aed73035472b} + SubFamilias_controller.dpk + Debug + AnyCPU + DCC32 + ..\..\..\..\Output\Debug\Cliente\SubFamilias_controller.bpl + + + 7.0 + False + False + 0 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + RELEASE + + + 7.0 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + + + Delphi.Personality + Package + +FalseTrueFalseFalseFalseFalseTrueFalse1000FalseFalseFalseFalseFalse308212521.0.0.01.0.0.0SubFamilias_controller.dpk + + + + + MainSource + + + + + + + + + + + + + diff --git a/Source/Modulos/Subfamilias/Controller/View/uIEditorSubFamilias.pas b/Source/Modulos/Subfamilias/Controller/View/uIEditorSubFamilias.pas new file mode 100644 index 0000000..f01b68f --- /dev/null +++ b/Source/Modulos/Subfamilias/Controller/View/uIEditorSubFamilias.pas @@ -0,0 +1,22 @@ +unit uIEditorSubFamilias; + +interface + +uses + uEditorDBBase, uBizSubFamilias, uSubFamiliasController; + +type + IEditorSubFamilias = interface(IEditorDBBase) + ['{F4D0EEEA-D5D4-488E-B495-33ADA54135BF}'] + function GetSubFamilias: IBizSubFamilia; + procedure SetSubFamilias(const Value: IBizSubFamilia); + property SubFamilias: IBizSubFamilia read GetSubFamilias write SetSubFamilias; + + function GetController : ISubFamiliasController; + procedure SetController (const Value : ISubFamiliasController); + property Controller : ISubFamiliasController read GetController write SetController; + end; + +implementation + +end. diff --git a/Source/Modulos/Subfamilias/Controller/uSubFamiliasController.pas b/Source/Modulos/Subfamilias/Controller/uSubFamiliasController.pas new file mode 100644 index 0000000..9304b64 --- /dev/null +++ b/Source/Modulos/Subfamilias/Controller/uSubFamiliasController.pas @@ -0,0 +1,234 @@ +unit uSubFamiliasController; + +interface + + +uses + Classes, SysUtils, uDADataTable, uEditorDBItem, + uIDataModuleSubFamilias, uBizSubFamilias, uControllerBase; + +type + ISubFamiliasController = interface(IControllerBase) + ['{B706CE31-978B-416D-88C5-7969220BEF4F}'] + function BuscarTodos: IBizSubFamilia; + procedure VerTodos(ASubFamilias: IBizSubFamilia); + procedure Anadir(ASubFamilia : IBizSubFamilia); + function Eliminar(ASubFamilia : IBizSubFamilia): Boolean; + function Guardar(ASubFamilia : IBizSubFamilia): Boolean; + procedure DescartarCambios(ASubFamilia : IBizSubFamilia); + function Localizar(ASubFamilias: IBizSubFamilia; ADescripcion:String): Boolean; + function DarListaSubFamilias: TStringList; + end; + + TSubFamiliasController = class(TControllerBase, ISubFamiliasController) + protected + FDataModule : IDataModuleSubFamilias; + + procedure RecibirAviso(ASujeto: ISujeto; ADataTable: IDAStronglyTypedDataTable); override; + function CreateEditor(const AName : String; const IID: TGUID; out Intf): Boolean; + + function ValidarAlmacen(ASubFamilia: IBizSubFamilia): Boolean; + + //Estos son los tres métodos a sobre escribir si se desea heredar toda la logica de + //este controller + procedure AsignarDataModule; virtual; + + procedure ValidarObjetos; virtual; + + public + constructor Create; override; + destructor Destroy; override; + + function Eliminar(ASubFamilia : IBizSubFamilia): Boolean; + function Guardar(ASubFamilia : IBizSubFamilia): Boolean; + procedure DescartarCambios(ASubFamilia : IBizSubFamilia); virtual; + procedure Anadir(ASubFamilia : IBizSubFamilia); + function BuscarTodos: IBizSubFamilia; + procedure VerTodos(ASubFamilias: IBizSubFamilia); + function Localizar(ASubFamilias: IBizSubFamilia; ADescripcion:String): Boolean; + function DarListaSubFamilias: TStringList; + end; + +implementation + +uses + cxControls, DB, uEditorRegistryUtils, schSubFamiliasClient_Intf, + uIEditorSubFamilias, uDataModuleSubFamilias, + uDAInterfaces, uDataTableUtils, + uDateUtils, uROTypes, DateUtils, Controls, Windows; + +{ TSubFamiliasController } + +procedure TSubFamiliasController.Anadir(ASubFamilia: IBizSubFamilia); +begin + ASubFamilia.Insert; +end; + +procedure TSubFamiliasController.AsignarDataModule; +begin + FDataModule := TDataModuleSubFamilias.Create(Nil); +end; + +function TSubFamiliasController.BuscarTodos: IBizSubFamilia; +begin + Result := FDataModule.GetItems; +end; + +constructor TSubFamiliasController.Create; +begin + inherited; + AsignarDataModule; +end; + +function TSubFamiliasController.CreateEditor(const AName: String; const IID: TGUID; out Intf): Boolean; +begin + Result := Supports(EditorRegistry.CreateEditor(AName), IID, Intf); +end; + +function TSubFamiliasController.DarListaSubFamilias: TStringList; +var + ASubFamilias: IBizSubFamilia; +begin + ASubFamilias := BuscarTodos; + ASubFamilias.DataTable.Active := True; + Result := TStringList.Create; + try + with Result do + begin + ASubFamilias.DataTable.First; + while not ASubFamilias.DataTable.EOF do + begin + Add(ASubFamilias.DESCRIPCION); + ASubFamilias.DataTable.Next; + end; + end; + finally + ASubFamilias := NIL; + end; +end; + +procedure TSubFamiliasController.DescartarCambios(ASubFamilia: IBizSubFamilia); +begin + if not Assigned(ASubFamilia) then + raise Exception.Create ('SubFamilia no asignado'); + + ShowHourglassCursor; + try + if (ASubFamilia.State in dsEditModes) then + ASubFamilia.Cancel; + + ASubFamilia.DataTable.CancelUpdates; + finally + HideHourglassCursor; + end; +end; + +destructor TSubFamiliasController.Destroy; +begin + FDataModule := Nil; + inherited; +end; + +function TSubFamiliasController.ValidarAlmacen(ASubFamilia: IBizSubFamilia): Boolean; +begin + Result := False; + + if not Assigned(ASubFamilia) then + raise Exception.Create ('SubFamilia no asignada'); + + if (ASubFamilia.DataTable.State in dsEditModes) then + ASubFamilia.DataTable.Post; + + Result := True; +end; + +procedure TSubFamiliasController.ValidarObjetos; +begin +// +end; + +procedure TSubFamiliasController.VerTodos(ASubFamilias: IBizSubFamilia); +var + AEditor : IEditorSubFamilias; +begin + AEditor := NIL; + + CreateEditor('EditorSubFamilias', IEditorSubFamilias, AEditor); + if Assigned(AEditor) then + try + AEditor.Controller := Self; //OJO ORDEN MUY IMPORTANTE + AEditor.SubFamilias := ASubFamilias; + AEditor.ShowModal; + finally + AEditor.Release; + AEditor := NIL; + end; +end; + +function TSubFamiliasController.Eliminar(ASubFamilia: IBizSubFamilia): Boolean; +begin + Result := False; + + if not Assigned(ASubFamilia) then + raise Exception.Create ('SubFamilia no asignada'); + + ShowHourglassCursor; + try + if (ASubFamilia.State in dsEditModes) then + ASubFamilia.Cancel; + + ASubFamilia.Delete; + ASubFamilia.DataTable.ApplyUpdates; + + Result := True; + finally + HideHourglassCursor; + end; +end; + +procedure TSubFamiliasController.RecibirAviso(ASujeto: ISujeto; ADataTable: IDAStronglyTypedDataTable); +begin + inherited; +// +end; + +function TSubFamiliasController.Guardar(ASubFamilia: IBizSubFamilia): Boolean; +begin + Result := False; + + if not Assigned(ASubFamilia) then + raise Exception.Create ('SubFamilia no asignada'); + + ValidarObjetos; + + if ValidarAlmacen(ASubFamilia) then + begin + ShowHourglassCursor; + try + ASubFamilia.DataTable.ApplyUpdates; + Result := True; + finally + HideHourglassCursor; + end; + end; +end; + +function TSubFamiliasController.Localizar(ASubFamilias: IBizSubFamilia; ADescripcion: String): Boolean; +begin + Result := True; + ShowHourglassCursor; + try + with ASubFamilias.DataTable do + begin + DisableControls; + First; + if not Locate(fld_SubFamiliasDESCRIPCION, ADescripcion, []) then + Result := False; + EnableControls; + end; + finally + HideHourglassCursor; + end; +end; + +end. diff --git a/Source/Modulos/Subfamilias/Data/SubFamilias_data.dpk b/Source/Modulos/Subfamilias/Data/SubFamilias_data.dpk new file mode 100644 index 0000000..696c1fc Binary files /dev/null and b/Source/Modulos/Subfamilias/Data/SubFamilias_data.dpk differ diff --git a/Source/Modulos/Subfamilias/Data/SubFamilias_data.dproj b/Source/Modulos/Subfamilias/Data/SubFamilias_data.dproj new file mode 100644 index 0000000..1f66a3d --- /dev/null +++ b/Source/Modulos/Subfamilias/Data/SubFamilias_data.dproj @@ -0,0 +1,543 @@ + + + + {28b6d86e-fac2-4bfd-97d9-fcea860835eb} + SubFamilias_data.dpk + Debug + AnyCPU + DCC32 + ..\..\..\..\Output\Debug\Cliente\SubFamilias_data.bpl + + + 7.0 + False + False + 0 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + RELEASE + + + 7.0 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + + + Delphi.Personality + Package + +FalseTrueFalseFalseFalseFalseTrueFalse1000FalseFalseFalseFalseFalse308212521.0.0.01.0.0.0SubFamilias_data.dpk + + + + + MainSource + + + + + + + + +
DataModuleSubFamilias
+
+
+
+ diff --git a/Source/Modulos/Subfamilias/Data/uDataModuleSubFamilias.dfm b/Source/Modulos/Subfamilias/Data/uDataModuleSubFamilias.dfm new file mode 100644 index 0000000..2b548c7 --- /dev/null +++ b/Source/Modulos/Subfamilias/Data/uDataModuleSubFamilias.dfm @@ -0,0 +1,58 @@ +inherited DataModuleSubFamilias: TDataModuleSubFamilias + OnCreate = DAClientDataModuleCreate + Height = 179 + Width = 357 + object RORemoteService: TRORemoteService + Message = dmConexion.ROMessage + Channel = dmConexion.ROChannel + ServiceName = 'srvSubfamilias' + Left = 48 + Top = 24 + end + object rda_SubFamilias: 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 = 88 + end + object tbl_SubFamilias: TDAMemDataTable + RemoteUpdatesOptions = [] + Fields = < + item + Name = 'ID' + DataType = datAutoInc + GeneratorName = 'GEN_SUBFAMILIAS_ID' + Required = True + DictionaryEntry = 'Subfamilias_ID' + InPrimaryKey = True + end + item + Name = 'DESCRIPCION' + DataType = datString + Size = 255 + DisplayLabel = 'Descripci'#243'n' + DictionaryEntry = 'Familias_DESCRIPCION' + end> + Params = <> + StreamingOptions = [soDisableEventsWhileStreaming] + RemoteDataAdapter = rda_SubFamilias + LogicalName = 'Subfamilias' + IndexDefs = <> + Left = 280 + Top = 24 + end + object ds_SubFamilias: TDADataSource + DataSet = tbl_SubFamilias.Dataset + DataTable = tbl_SubFamilias + Left = 280 + Top = 88 + end +end diff --git a/Source/Modulos/Subfamilias/Data/uDataModuleSubFamilias.pas b/Source/Modulos/Subfamilias/Data/uDataModuleSubFamilias.pas new file mode 100644 index 0000000..6ea1bf0 --- /dev/null +++ b/Source/Modulos/Subfamilias/Data/uDataModuleSubFamilias.pas @@ -0,0 +1,59 @@ +unit uDataModuleSubFamilias; + +interface + +uses + SysUtils, Classes, DB, uIDataModuleSubFamilias, uBizSubFamilias, uDAInterfaces, uDADataTable, + uDAScriptingProvider, uDAMemDataTable, uDADataStreamer, uDABin2DataStreamer, + uDARemoteDataAdapter, uROClient, uRORemoteService, uDataModuleBase; + +type + TDataModuleSubFamilias = class(TDataModuleBase, IDataModuleSubFamilias) + RORemoteService: TRORemoteService; + rda_SubFamilias: TDARemoteDataAdapter; + Bin2DataStreamer: TDABin2DataStreamer; + tbl_SubFamilias: TDAMemDataTable; + ds_SubFamilias: TDADataSource; + procedure DAClientDataModuleCreate(Sender: TObject); + protected + procedure AsignarClaseNegocio(ASubFamilia: TDADataTable); + public + function GetItems : IBizSubFamilia; + end; + +implementation +{$R *.DFM} + +uses + FactuGES_Intf, uDataModuleConexion, uDataTableUtils, cxControls, + schSubFamiliasClient_Intf; + +{ TdmSubFamilias } + +procedure TDataModuleSubFamilias.AsignarClaseNegocio(ASubFamilia: TDADataTable); +begin + ASubFamilia.BusinessRulesID := BIZ_CLIENT_SUBFAMILIA; +end; + +procedure TDataModuleSubFamilias.DAClientDataModuleCreate(Sender: TObject); +begin + RORemoteService.Channel := dmConexion.Channel; + RORemoteService.Message := dmConexion.Message; +end; + +function TDataModuleSubFamilias.GetItems: IBizSubFamilia; +var + ASubFamilia : TDAMemDataTable; +begin + ShowHourglassCursor; + try + ASubFamilia := CloneDataTable(tbl_SubFamilias); + AsignarClaseNegocio(ASubFamilia); + Result := (ASubFamilia as IBizSubFamilia); + finally + HideHourglassCursor; + end; +end; + + +end. diff --git a/Source/Modulos/Subfamilias/Familias_Group.bdsgroup b/Source/Modulos/Subfamilias/Familias_Group.bdsgroup new file mode 100644 index 0000000..df259d5 --- /dev/null +++ b/Source/Modulos/Subfamilias/Familias_Group.bdsgroup @@ -0,0 +1,24 @@ + + + + + + + + + + + ..\..\Base\Base.bdsproj + ..\..\Base\GUIBase\GUIBase.bdsproj + ..\..\Base\Usuarios\Usuarios.bdsproj + Model\Familias_model.bdsproj + Data\Familias_data.bdsproj + Controller\Familias_controller.bdsproj + Views\Familias_view.bdsproj + Plugin\Familias_plugin.bdsproj + Base.bpl GUIBase.bpl Usuarios.bpl Familias_model.bpl Familias_data.bpl Familias_controller.bpl Familias_view.bpl Familias_plugin.bpl + + + + diff --git a/Source/Modulos/Subfamilias/Familias_Group.groupproj b/Source/Modulos/Subfamilias/Familias_Group.groupproj new file mode 100644 index 0000000..e92562d --- /dev/null +++ b/Source/Modulos/Subfamilias/Familias_Group.groupproj @@ -0,0 +1,114 @@ + + + {9a7cc043-5043-46ff-a039-c4103c4aa6b2} + + + + + + + + + + + + + + + Default.Personality + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Source/Modulos/Subfamilias/Model/Data/uIDataModuleSubFamilias.pas b/Source/Modulos/Subfamilias/Model/Data/uIDataModuleSubFamilias.pas new file mode 100644 index 0000000..aaafb5d --- /dev/null +++ b/Source/Modulos/Subfamilias/Model/Data/uIDataModuleSubFamilias.pas @@ -0,0 +1,16 @@ +unit uIDataModuleSubFamilias; + +interface + +uses + uBizSubFamilias; + +type + IDataModuleSubFamilias = interface + ['{EFCADCC8-E644-4F48-984B-7680F9A4E71B}'] + function GetItems: IBizSubFamilia; + end; + +implementation + +end. diff --git a/Source/Modulos/Subfamilias/Model/Subfamilias_model.dpk b/Source/Modulos/Subfamilias/Model/Subfamilias_model.dpk new file mode 100644 index 0000000..0d268d9 Binary files /dev/null and b/Source/Modulos/Subfamilias/Model/Subfamilias_model.dpk differ diff --git a/Source/Modulos/Subfamilias/Model/Subfamilias_model.dproj b/Source/Modulos/Subfamilias/Model/Subfamilias_model.dproj new file mode 100644 index 0000000..b0b019c --- /dev/null +++ b/Source/Modulos/Subfamilias/Model/Subfamilias_model.dproj @@ -0,0 +1,540 @@ + + + {73acd39c-b2f0-49b7-9acf-10945bbac8c1} + Subfamilias_model.dpk + Debug + AnyCPU + DCC32 + ..\..\..\..\Output\Debug\Cliente\Subfamilias_model.bpl + + + 7.0 + False + False + 0 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + RELEASE + + + 7.0 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + + + Delphi.Personality + Package + +FalseTrueFalseFalseFalseFalseTrueFalse1000FalseFalseFalseFalseFalse308212521.0.0.01.0.0.0Subfamilias_model.dpk + + + + + MainSource + + + + + + + + + + + diff --git a/Source/Modulos/Subfamilias/Model/schSubfamiliasClient_Intf.pas b/Source/Modulos/Subfamilias/Model/schSubfamiliasClient_Intf.pas new file mode 100644 index 0000000..6b62d15 --- /dev/null +++ b/Source/Modulos/Subfamilias/Model/schSubfamiliasClient_Intf.pas @@ -0,0 +1,134 @@ +unit schSubfamiliasClient_Intf; + +interface + +uses + Classes, DB, SysUtils, uROClasses, uDAInterfaces, uDADataTable, FmtBCD, uROXMLIntf; + +const + { Data table rules ids + Feel free to change them to something more human readable + but make sure they are unique in the context of your application } + RID_Subfamilias = '{F82AF22D-9966-4291-8247-F1A870F51A48}'; + + { Data table names } + nme_Subfamilias = 'Subfamilias'; + + { Subfamilias fields } + fld_SubfamiliasID = 'ID'; + fld_SubfamiliasDESCRIPCION = 'DESCRIPCION'; + + { Subfamilias field indexes } + idx_SubfamiliasID = 0; + idx_SubfamiliasDESCRIPCION = 1; + +type + { ISubfamilias } + ISubfamilias = interface(IDAStronglyTypedDataTable) + ['{4FF3D435-D406-4BD0-AD2A-F416A95D7519}'] + { 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; + + { TSubfamiliasDataTableRules } + TSubfamiliasDataTableRules = class(TDADataTableRules, ISubfamilias) + 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; + +{ TSubfamiliasDataTableRules } +constructor TSubfamiliasDataTableRules.Create(aDataTable: TDADataTable); +begin + inherited; +end; + +destructor TSubfamiliasDataTableRules.Destroy; +begin + inherited; +end; + +function TSubfamiliasDataTableRules.GetIDValue: Integer; +begin + result := DataTable.Fields[idx_SubfamiliasID].AsInteger; +end; + +procedure TSubfamiliasDataTableRules.SetIDValue(const aValue: Integer); +begin + DataTable.Fields[idx_SubfamiliasID].AsInteger := aValue; +end; + +function TSubfamiliasDataTableRules.GetIDIsNull: boolean; +begin + result := DataTable.Fields[idx_SubfamiliasID].IsNull; +end; + +procedure TSubfamiliasDataTableRules.SetIDIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_SubfamiliasID].AsVariant := Null; +end; + +function TSubfamiliasDataTableRules.GetDESCRIPCIONValue: String; +begin + result := DataTable.Fields[idx_SubfamiliasDESCRIPCION].AsString; +end; + +procedure TSubfamiliasDataTableRules.SetDESCRIPCIONValue(const aValue: String); +begin + DataTable.Fields[idx_SubfamiliasDESCRIPCION].AsString := aValue; +end; + +function TSubfamiliasDataTableRules.GetDESCRIPCIONIsNull: boolean; +begin + result := DataTable.Fields[idx_SubfamiliasDESCRIPCION].IsNull; +end; + +procedure TSubfamiliasDataTableRules.SetDESCRIPCIONIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_SubfamiliasDESCRIPCION].AsVariant := Null; +end; + + +initialization + RegisterDataTableRules(RID_Subfamilias, TSubfamiliasDataTableRules); + +end. diff --git a/Source/Modulos/Subfamilias/Model/schSubfamiliasServer_Intf.pas b/Source/Modulos/Subfamilias/Model/schSubfamiliasServer_Intf.pas new file mode 100644 index 0000000..3e7c92c --- /dev/null +++ b/Source/Modulos/Subfamilias/Model/schSubfamiliasServer_Intf.pas @@ -0,0 +1,143 @@ +unit schSubfamiliasServer_Intf; + +interface + +uses + Classes, DB, SysUtils, uROClasses, uDADataTable, uDABusinessProcessor, FmtBCD, uROXMLIntf, schSubfamiliasClient_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_SubfamiliasDelta = '{3C2DC56F-75DA-4C52-9298-BFC3AAE284F1}'; + +type + { ISubfamiliasDelta } + ISubfamiliasDelta = interface(ISubfamilias) + ['{3C2DC56F-75DA-4C52-9298-BFC3AAE284F1}'] + { Property getters and setters } + function GetOldIDValue : Integer; + function GetOldDESCRIPCIONValue : String; + + { Properties } + property OldID : Integer read GetOldIDValue; + property OldDESCRIPCION : String read GetOldDESCRIPCIONValue; + end; + + { TSubfamiliasBusinessProcessorRules } + TSubfamiliasBusinessProcessorRules = class(TDABusinessProcessorRules, ISubfamilias, ISubfamiliasDelta) + 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; + +{ TSubfamiliasBusinessProcessorRules } +constructor TSubfamiliasBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor); +begin + inherited; +end; + +destructor TSubfamiliasBusinessProcessorRules.Destroy; +begin + inherited; +end; + +function TSubfamiliasBusinessProcessorRules.GetIDValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_SubfamiliasID]; +end; + +function TSubfamiliasBusinessProcessorRules.GetIDIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_SubfamiliasID]); +end; + +function TSubfamiliasBusinessProcessorRules.GetOldIDValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_SubfamiliasID]; +end; + +function TSubfamiliasBusinessProcessorRules.GetOldIDIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_SubfamiliasID]); +end; + +procedure TSubfamiliasBusinessProcessorRules.SetIDValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_SubfamiliasID] := aValue; +end; + +procedure TSubfamiliasBusinessProcessorRules.SetIDIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_SubfamiliasID] := Null; +end; + +function TSubfamiliasBusinessProcessorRules.GetDESCRIPCIONValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_SubfamiliasDESCRIPCION]; +end; + +function TSubfamiliasBusinessProcessorRules.GetDESCRIPCIONIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_SubfamiliasDESCRIPCION]); +end; + +function TSubfamiliasBusinessProcessorRules.GetOldDESCRIPCIONValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_SubfamiliasDESCRIPCION]; +end; + +function TSubfamiliasBusinessProcessorRules.GetOldDESCRIPCIONIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_SubfamiliasDESCRIPCION]); +end; + +procedure TSubfamiliasBusinessProcessorRules.SetDESCRIPCIONValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_SubfamiliasDESCRIPCION] := aValue; +end; + +procedure TSubfamiliasBusinessProcessorRules.SetDESCRIPCIONIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_SubfamiliasDESCRIPCION] := Null; +end; + + +initialization + RegisterBusinessProcessorRules(RID_SubfamiliasDelta, TSubfamiliasBusinessProcessorRules); + +end. diff --git a/Source/Modulos/Subfamilias/Model/uBizSubfamilias.pas b/Source/Modulos/Subfamilias/Model/uBizSubfamilias.pas new file mode 100644 index 0000000..2bbb184 --- /dev/null +++ b/Source/Modulos/Subfamilias/Model/uBizSubfamilias.pas @@ -0,0 +1,36 @@ +unit uBizSubfamilias; + +interface + +uses + uDAInterfaces, uDADataTable, schSubfamiliasClient_Intf; + +const + BIZ_CLIENT_SUBFAMILIA = 'Client.Subfamilia'; + +type + IBizSubfamilia = interface(ISubfamilias) + ['{43A4E2BA-F3C9-4116-9ACE-2CB4C4159CF6}'] + end; + + TBizSubFamilia = class(TSubFamiliasDataTableRules, IBizSubFamilia) + procedure AfterOpen(Sender: TDADataTable); override; + end; + +implementation + +{ TBizSubFamilia } + +procedure TBizSubFamilia.AfterOpen(Sender: TDADataTable); +begin + inherited; + DataTable.Sort([fld_SubFamiliasDESCRIPCION], [sdAscending]); +end; + +initialization + RegisterDataTableRules(BIZ_CLIENT_SUBFAMILIA, TBizSubFamilia); + +finalization + +end. + diff --git a/Source/Modulos/Subfamilias/Plugin/SubFamilias_plugin.dpk b/Source/Modulos/Subfamilias/Plugin/SubFamilias_plugin.dpk new file mode 100644 index 0000000..ece26ed Binary files /dev/null and b/Source/Modulos/Subfamilias/Plugin/SubFamilias_plugin.dpk differ diff --git a/Source/Modulos/Subfamilias/Plugin/SubFamilias_plugin.dproj b/Source/Modulos/Subfamilias/Plugin/SubFamilias_plugin.dproj new file mode 100644 index 0000000..514e59f --- /dev/null +++ b/Source/Modulos/Subfamilias/Plugin/SubFamilias_plugin.dproj @@ -0,0 +1,545 @@ + + + {82e36812-58c4-491b-b463-6b951e95da51} + SubFamilias_plugin.dpk + Debug + AnyCPU + DCC32 + ..\..\..\..\Output\Debug\Cliente\SubFamilias_plugin.bpl + + + 7.0 + False + False + 0 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + RELEASE + + + 7.0 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + + + Delphi.Personality + Package + +FalseTrueFalseFalseFalseFalseTrueFalse1000FalseFalseFalseFalseFalse308212521.0.0.01.0.0.0SubFamilias_plugin.dpk + + + + + MainSource + + + + + + + + + + +
PluginSubFamilias
+
+ +
+
+ diff --git a/Source/Modulos/Subfamilias/Plugin/uPluginSubFamilias.dfm b/Source/Modulos/Subfamilias/Plugin/uPluginSubFamilias.dfm new file mode 100644 index 0000000..ec3f01a --- /dev/null +++ b/Source/Modulos/Subfamilias/Plugin/uPluginSubFamilias.dfm @@ -0,0 +1,77 @@ +object PluginSubFamilias: TPluginSubFamilias + OldCreateOrder = True + DefaultAction = actSubFamilias + Description = 'SubFamilias' + ModuleMenu = MainMenu + ModuleName = 'SubFamilias' + SmallImages = SmallImages + LargeImages = SmallImages + Author = 'Rodax Software' + Version = '1.0.0' + Height = 252 + Width = 401 + object LargeImages: TPngImageList + Height = 24 + Width = 24 + PngImages = <> + Left = 232 + Top = 16 + end + object ModuleActionList: TActionList + Images = SmallImages + Left = 40 + Top = 72 + object actSubFamilias: TAction + Category = 'SubFamilias' + Caption = 'Subfamilias de art'#237'culos' + ImageIndex = 0 + OnExecute = actSubFamiliasExecute + end + end + object MainMenu: TMainMenu + Images = LargeImages + Left = 40 + Top = 16 + object Ventas1: TMenuItem + Caption = 'Datos' + object SubFamilias1: TMenuItem + Tag = 905 + Action = actSubFamilias + end + end + end + object SmallImages: TPngImageList + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000001A34944415478DA9D922177E3300CC7655636C3B20596CD702C86C7E6 + B141C342EF1BE42318167AECD81916BA6CD0638582852A0BCBA46CCDDAF46E77 + EFF4E2A7D8F2FF2759B6724FD9354BF30B09810EF5B16C43866FACAC7DA67DD5 + E364655A15020ECEDD42AD47C839EE4AE9EC5CE492EBB2CF9DFC676BCA83772D + 6C133CEFE14D395F066B0C032AA4346AD5B9905D20C49BD255350196D4BEF40D + C48A47657F44073D05CEDC9AFBF0585F63B61D1379AF7BF2B702C67D8509B0F6 + 4329E52D1DE8CE2CF557B6B93144CAF13C04767702CCED62B12433587FB99141 + 4E1C03C2B70011B72EC02E479843CEAD6E60D04BEED9C1825B47A54E6273CF15 + F73CE9095226D00B891000FB66C1733E2F71CCACCC08EA36043165755141D334 + 2CE6EEAFE429F0552F3468CD5E370CE05842F04E4FE2DFF6A05979CE04633524 + 15F08707024484E0F9EA36C880ACAE7A70DE87931D7B0190BCD0B1326F11E256 + 20FF0098C454D92324167A5320163B95FF47C0518EC02219F4E9D3AB01C780F4 + 3780910A46D167763E3FF508B95A59BA105F037E76038EC28FE6C9B58DCDEC3F + E273F115E07FEC1D6B02010E884AA1F00000000049454E44AE426082} + Name = 'PngImage0' + Background = clWindow + end> + PngOptions = [pngBlendOnDisabled, pngGrayscaleOnDisabled] + Left = 308 + Top = 16 + Bitmap = {} + end + object ExtraImages: TPngImageList + Height = 28 + Width = 28 + PngImages = <> + Left = 232 + Top = 80 + end +end diff --git a/Source/Modulos/Subfamilias/Plugin/uPluginSubFamilias.pas b/Source/Modulos/Subfamilias/Plugin/uPluginSubFamilias.pas new file mode 100644 index 0000000..474ed1d --- /dev/null +++ b/Source/Modulos/Subfamilias/Plugin/uPluginSubFamilias.pas @@ -0,0 +1,73 @@ +unit uPluginSubFamilias; + +interface + +uses + uModuleController, uInterfaces, uHostManager, Menus, Classes, ActnList, + ImgList, Controls, PngImageList; + +type + IMCSubFamilias = interface(IInterface) + ['{765C22F9-8F7F-49F4-BB0C-A8B6E9963ABA}'] + end; + + TPluginSubFamilias = class(TModuleController, IMCSubFamilias) + actSubFamilias: TAction; + ExtraImages: TPngImageList; + LargeImages: TPngImageList; + MainMenu: TMainMenu; + ModuleActionList: TActionList; + SmallImages: TPngImageList; + Ventas1: TMenuItem; + SubFamilias1: TMenuItem; + procedure actSubFamiliasExecute(Sender: TObject); + public + constructor Create(AOwner: TComponent); override; + destructor Destroy; override; + end; + +implementation + +{$R *.dfm} + +uses + Forms, Dialogs, SysUtils, + uSubFamiliasController, uBizSubFamilias, uSubFamiliasViewRegister; + +function GetModule : TModuleController; +begin + Result := TPluginSubFamilias.Create(NIL); +end; + +exports + GetModule name GET_MODULE_FUNC; + +procedure TPluginSubFamilias.actSubFamiliasExecute(Sender: TObject); +var + ASubFamiliasController : ISubFamiliasController; + ASubFamilias : IBizSubFamilia; +begin + ASubFamiliasController := TSubFamiliasController.Create; + ASubFamilias := (ASubFamiliasController.BuscarTodos as IBizSubFamilia); + ASubFamiliasController.VerTodos(ASubFamilias); +end; + +constructor TPluginSubFamilias.Create(AOwner: TComponent); +begin + inherited; + uSubFamiliasViewRegister.RegisterViews; +end; + +destructor TPluginSubFamilias.Destroy; +begin + uSubFamiliasViewRegister.UnregisterViews; + inherited; +end; + +initialization + RegisterModuleClass(TPluginSubFamilias); + +finalization + UnRegisterModuleClass(TPluginSubFamilias); + +end. diff --git a/Source/Modulos/Subfamilias/Servidor/srvSubfamilias_Impl.dfm b/Source/Modulos/Subfamilias/Servidor/srvSubfamilias_Impl.dfm new file mode 100644 index 0000000..b0bfe4b --- /dev/null +++ b/Source/Modulos/Subfamilias/Servidor/srvSubfamilias_Impl.dfm @@ -0,0 +1,115 @@ +object srvSubfamilias: TsrvSubfamilias + OldCreateOrder = True + OnCreate = DARemoteServiceCreate + SessionManager = dmServer.SessionManager + ConnectionName = 'IBX' + ServiceSchema = schSubfamilias + ServiceDataStreamer = Bin2DataStreamer + AllowExecuteSQL = True + ExportedDataTables = <> + BeforeAcquireConnection = DataAbstractServiceBeforeAcquireConnection + Height = 249 + Width = 343 + object Diagrams: TDADiagrams + Left = 142 + Top = 90 + DiagramData = ''#13#10''#13#10 + end + object DataDictionary: TDADataDictionary + Fields = < + item + Name = 'Familias_ID' + DataType = datAutoInc + GeneratorName = 'GEN_FAMILIAS_ID' + Required = True + DisplayLabel = 'ID' + end + item + Name = 'Familias_DESCRIPCION' + DataType = datString + Size = 255 + DisplayLabel = 'Descripci'#243'n' + end + item + Name = 'Subfamilias_ID' + DataType = datAutoInc + GeneratorName = 'GEN_SUBFAMILIAS_ID' + Required = True + DisplayLabel = 'ID' + end> + Left = 142 + Top = 22 + end + object schSubfamilias: TDASchema + ConnectionManager = dmServer.ConnectionManager + DataDictionary = DataDictionary + Diagrams = Diagrams + Datasets = < + item + Params = <> + Statements = < + item + Connection = 'IBX' + TargetTable = 'SUBFAMILIAS' + StatementType = stAutoSQL + ColumnMappings = < + item + DatasetField = 'DESCRIPCION' + TableField = 'DESCRIPCION' + end + item + DatasetField = 'ID' + TableField = 'ID' + end> + end> + Name = 'Subfamilias' + Fields = < + item + Name = 'ID' + DataType = datAutoInc + GeneratorName = 'GEN_SUBFAMILIAS_ID' + DictionaryEntry = 'Subfamilias_ID' + InPrimaryKey = True + end + item + Name = 'DESCRIPCION' + DataType = datString + Size = 255 + DictionaryEntry = 'Familias_DESCRIPCION' + end> + end> + JoinDataTables = <> + UnionDataTables = <> + Commands = <> + RelationShips = <> + UpdateRules = < + item + Name = 'Insert Familias' + DoUpdate = False + DoDelete = False + DatasetName = 'Familias' + FailureBehavior = fbRaiseException + end + item + Name = 'Update Familias' + DoInsert = False + DoDelete = False + DatasetName = 'Familias' + FailureBehavior = fbRaiseException + end + item + Name = 'Delete Familias' + DoUpdate = False + DoInsert = False + DatasetName = 'Familias' + FailureBehavior = fbRaiseException + end> + Version = 0 + Left = 48 + Top = 24 + end + object Bin2DataStreamer: TDABin2DataStreamer + Left = 48 + Top = 88 + end +end diff --git a/Source/Modulos/Subfamilias/Servidor/srvSubfamilias_Impl.pas b/Source/Modulos/Subfamilias/Servidor/srvSubfamilias_Impl.pas new file mode 100644 index 0000000..6886cab --- /dev/null +++ b/Source/Modulos/Subfamilias/Servidor/srvSubfamilias_Impl.pas @@ -0,0 +1,62 @@ +unit srvSubfamilias_Impl; + +{----------------------------------------------------------------------------} +{ This unit was automatically generated by the RemObjects SDK after reading } +{ the RODL file associated with this project . } +{ } +{ This is where you are supposed to code the implementation of your objects. } +{----------------------------------------------------------------------------} + +interface + +uses + {vcl:} Classes, SysUtils, + {RemObjects:} uROClientIntf, uROTypes, uROServer, uROServerIntf, uROSessions, + {Ancestor Implementation:} DataAbstractService_Impl, + {Used RODLs:} DataAbstract4_Intf, + {Generated:} uDABusinessProcessor, uDABin2DataStreamer, uDADataStreamer, + uDAScriptingProvider, uDAClasses, + FactuGES_Intf, uDAInterfaces; + +type + { TsrvSubfamilias } + TsrvSubfamilias = class(TDataAbstractService, IsrvSubfamilias) + Diagrams: TDADiagrams; + Bin2DataStreamer: TDABin2DataStreamer; + schSubfamilias: TDASchema; + DataDictionary: TDADataDictionary; + procedure DARemoteServiceCreate(Sender: TObject); + procedure DataAbstractServiceBeforeAcquireConnection(aSender: TObject; + var aConnectionName: string); + end; + +implementation + +{$R *.dfm} +uses + {Generated:} FactuGES_Invk, uDataModuleServer, + uDatabaseUtils, schSubFamiliasClient_Intf, uRestriccionesUsuarioUtils; + +procedure Create_srvSubfamilias(out anInstance : IUnknown); +begin + anInstance := TsrvSubfamilias.Create(NIL); +end; + +{ srvSubfamilias } +procedure TsrvSubfamilias.DARemoteServiceCreate(Sender: TObject); +begin + //SessionManager := dmServer.SessionManager; +end; + +procedure TsrvSubfamilias.DataAbstractServiceBeforeAcquireConnection( + aSender: TObject; var aConnectionName: string); +begin + ConnectionName := dmServer.ConnectionName; +end; + +initialization + TROClassFactory.Create('srvSubfamilias', Create_srvSubfamilias, TsrvSubfamilias_Invoker); + +finalization + +end. diff --git a/Source/Modulos/Subfamilias/Subfamilias_Group.groupproj b/Source/Modulos/Subfamilias/Subfamilias_Group.groupproj new file mode 100644 index 0000000..b23016d --- /dev/null +++ b/Source/Modulos/Subfamilias/Subfamilias_Group.groupproj @@ -0,0 +1,124 @@ + + + {9a7cc043-5043-46ff-a039-c4103c4aa6b2} + + + + + + + + + + + + + + + + Default.Personality + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Source/Modulos/Subfamilias/Views/SubFamilias_view.dpk b/Source/Modulos/Subfamilias/Views/SubFamilias_view.dpk new file mode 100644 index 0000000..5e99dbb Binary files /dev/null and b/Source/Modulos/Subfamilias/Views/SubFamilias_view.dpk differ diff --git a/Source/Modulos/Subfamilias/Views/SubFamilias_view.dproj b/Source/Modulos/Subfamilias/Views/SubFamilias_view.dproj new file mode 100644 index 0000000..cb68387 --- /dev/null +++ b/Source/Modulos/Subfamilias/Views/SubFamilias_view.dproj @@ -0,0 +1,545 @@ + + + {e3d36a6f-7004-4c89-9f3d-f2d77e386d1b} + SubFamilias_view.dpk + Debug + AnyCPU + DCC32 + ..\..\..\..\Output\Debug\Cliente\SubFamilias_view.bpl + + + 7.0 + False + False + 0 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + RELEASE + + + 7.0 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + + + Delphi.Personality + Package + +FalseTrueFalseFalseFalseFalseTrueFalse1000FalseFalseFalseFalseFalse308212521.0.0.01.0.0.0SubFamilias_view.dpk + + + + + MainSource + + + + + + + + +
fEditorSubFamilias
+ TfEditorFamilias +
+ + +
+
+ diff --git a/Source/Modulos/Subfamilias/Views/uEditorSubFamilias.dfm b/Source/Modulos/Subfamilias/Views/uEditorSubFamilias.dfm new file mode 100644 index 0000000..03bb63e --- /dev/null +++ b/Source/Modulos/Subfamilias/Views/uEditorSubFamilias.dfm @@ -0,0 +1,144 @@ +object fEditorSubFamilias: TfEditorSubFamilias + Left = 453 + Top = 234 + ActiveControl = ListaSubFamilias + BorderIcons = [biSystemMenu] + BorderStyle = bsSingle + Caption = 'Administraci'#243'n de subfamilias de art'#237'culos' + ClientHeight = 494 + ClientWidth = 404 + Color = clBtnFace + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'MS Sans Serif' + Font.Style = [] + OldCreateOrder = False + Position = poScreenCenter + OnClose = CustomEditorClose + OnShow = FormShow + InstanceID = 0 + ReadOnly = False + PixelsPerInch = 96 + TextHeight = 13 + object bAceptar: TButton + Left = 235 + Top = 462 + Width = 75 + Height = 23 + Action = actAceptar + Default = True + TabOrder = 1 + end + object bCancelar: TButton + Left = 321 + Top = 462 + Width = 75 + Height = 23 + Action = actCancelar + Cancel = True + TabOrder = 2 + end + object PageControl1: TPageControl + Left = 8 + Top = 8 + Width = 390 + Height = 442 + ActivePage = TabSheet1 + TabOrder = 0 + object TabSheet1: TTabSheet + Caption = 'Subfamilias de art'#237'culos' + object Label1: TLabel + Left = 10 + Top = 12 + Width = 230 + Height = 13 + Caption = 'Lista de subfamilias disponibles para los art'#237'culos' + end + object Label2: TLabel + Left = 10 + Top = 326 + Width = 133 + Height = 13 + Caption = 'A'#241'adir una nueva subfamilia' + end + object Bevel1: TBevel + Left = 149 + Top = 330 + Width = 227 + Height = 5 + Shape = bsBottomLine + end + object eCategoria: TLabel + Left = 18 + Top = 353 + Width = 115 + Height = 13 + Caption = 'Nombre de la subfamilia:' + end + object ListaSubFamilias: TDBLookupListBox + Left = 11 + Top = 28 + Width = 262 + Height = 277 + KeyField = 'RecID' + ListField = 'DESCRIPCION' + ListSource = DADataSource + TabOrder = 0 + end + object bEliminar: TButton + Left = 281 + Top = 31 + Width = 95 + Height = 23 + Action = actEliminar + TabOrder = 1 + end + object editSubFamilia: TEdit + Left = 139 + Top = 349 + Width = 237 + Height = 21 + TabOrder = 2 + end + object bAnadir: TButton + Left = 281 + Top = 382 + Width = 95 + Height = 23 + Action = actAnadir + TabOrder = 3 + end + end + end + object ActionList1: TActionList + Left = 144 + Top = 16 + object actAnadir: TAction + Caption = '&A'#241'adir' + OnExecute = actAnadirExecute + OnUpdate = actAnadirUpdate + end + object actEliminar: TAction + Caption = '&Eliminar' + OnExecute = actEliminarExecute + OnUpdate = actEliminarUpdate + end + object actAceptar: TAction + Caption = 'A&ceptar' + OnExecute = actAceptarExecute + end + object actCancelar: TAction + Caption = '&Cancelar' + OnExecute = actCancelarExecute + end + object actCerrar: TAction + Caption = 'actCerrar' + OnExecute = actCerrarExecute + end + end + object DADataSource: TDADataSource + Left = 168 + Top = 16 + end +end diff --git a/Source/Modulos/Subfamilias/Views/uEditorSubFamilias.pas b/Source/Modulos/Subfamilias/Views/uEditorSubFamilias.pas new file mode 100644 index 0000000..b644ac4 --- /dev/null +++ b/Source/Modulos/Subfamilias/Views/uEditorSubFamilias.pas @@ -0,0 +1,180 @@ +{ +=============================================================================== + Copyright (©) 2013. 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: 25-04-2013 + Versión actual: 1.0.0 + Fecha versión actual: 25-04-2013 +=============================================================================== + Modificaciones: + + Fecha Comentarios + --------------------------------------------------------------------------- +=============================================================================== +} + +unit uEditorSubFamilias; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, DB, StdCtrls, DBCtrls, uDADataTable, ActnList, + uIEditorSubFamilias, uCustomEditor, uGUIBase, ExtCtrls, + ComCtrls, uBizSubFamilias, uSubFamiliasController, uDAInterfaces; + +type + TfEditorSubFamilias = class(TCustomEditor, IEditorSubFamilias) + ActionList1: TActionList; + DADataSource: TDADataSource; + ListaSubFamilias: TDBLookupListBox; + actAnadir: TAction; + actEliminar: TAction; + bEliminar: TButton; + actAceptar: TAction; + actCancelar: TAction; + bAceptar: TButton; + bCancelar: TButton; + actCerrar: TAction; + PageControl1: TPageControl; + TabSheet1: TTabSheet; + Label1: TLabel; + Label2: TLabel; + Bevel1: TBevel; + eCategoria: TLabel; + editSubFamilia: TEdit; + bAnadir: TButton; + procedure FormShow(Sender: TObject); + procedure CustomEditorClose(Sender: TObject; var Action: TCloseAction); + + procedure actAnadirExecute(Sender: TObject); + procedure actEliminarExecute(Sender: TObject); + procedure actAceptarExecute(Sender: TObject); + procedure actCancelarExecute(Sender: TObject); + procedure actCerrarExecute(Sender: TObject); + procedure actAnadirUpdate(Sender: TObject); + procedure actEliminarUpdate(Sender: TObject); + protected + FSubFamilias: IBizSubFamilia; + FController: ISubFamiliasController; + function GetSubFamilias: IBizSubFamilia; + procedure SetSubFamilias(const Value: IBizSubFamilia); + function GetController : ISubFamiliasController; + procedure SetController (const Value : ISubFamiliasController); + public + property SubFamilias: IBizSubFamilia read GetSubFamilias write SetSubFamilias; + property Controller : ISubFamiliasController read GetController write SetController; + end; + + +implementation +{$R *.dfm} + +{ TfEditorSubFamilias } + +uses + uDialogUtils; + +function TfEditorSubFamilias.GetController: ISubFamiliasController; +begin + Result := FController; +end; + +function TfEditorSubFamilias.GetSubFamilias: IBizSubFamilia; +begin + Result := FSubFamilias; +end; + +procedure TfEditorSubFamilias.SetController(const Value: ISubFamiliasController); +begin + FController := Value; +end; + +procedure TfEditorSubFamilias.SetSubFamilias(const Value: IBizSubFamilia); +begin + FSubFamilias := Value; + DADataSource.DataTable := (FSubFamilias as IBizSubFamilia).DataTable; + DADataSource.DataTable.Open; +end; + +procedure TfEditorSubFamilias.actAnadirExecute(Sender: TObject); +begin + if not FController.Localizar(SubFamilias, editSubFamilia.Text) then + begin + SubFamilias.Append; + SubFamilias.DESCRIPCION := editSubFamilia.Text; + SubFamilias.Post; + editSubFamilia.Clear; + ListaSubFamilias.SetFocus; + end + else + ShowErrorMessage('Ya existe la subfamilia ' + editSubFamilia.Text, + 'Ya existe la subfamilia ''' + editSubFamilia.Text + ''' en la lista.'); +end; + +procedure TfEditorSubFamilias.actEliminarExecute(Sender: TObject); +begin + SubFamilias.Delete; + ListaSubFamilias.SetFocus; +end; + +procedure TfEditorSubFamilias.actEliminarUpdate(Sender: TObject); +begin + (Sender as TAction).Enabled := (FSubFamilias.DataTable.RecordCount > 0) and + (Length(ListaSubFamilias.SelectedItem) > 0); + +end; + +procedure TfEditorSubFamilias.CustomEditorClose(Sender: TObject; var Action: TCloseAction); +begin + FSubFamilias := Nil; + FController := Nil; +end; + +procedure TfEditorSubFamilias.actAceptarExecute(Sender: TObject); +begin + try + SubFamilias.DataTable.ApplyUpdates; + except + on E : Exception do begin + SubFamilias.DataTable.CancelUpdates; + ShowErrorMessage('Error al guardar cambios', 'Se ha producido un error grave', E); + exit; + end; + end; + actCerrar.Execute; +end; + +procedure TfEditorSubFamilias.actCancelarExecute(Sender: TObject); +begin + SubFamilias.DataTable.CancelUpdates; + actCerrar.Execute; +end; + +procedure TfEditorSubFamilias.actCerrarExecute(Sender: TObject); +begin + Close; +end; + +procedure TfEditorSubFamilias.actAnadirUpdate(Sender: TObject); +begin + (Sender as TAction).Enabled := (Length(editSubFamilia.Text) > 0) +end; + +procedure TfEditorSubFamilias.FormShow(Sender: TObject); +begin + if not FSubFamilias.DataTable.Active then + FSubFamilias.DataTable.Active := true; + + EditSubFamilia.SetFocus; +end; + +end. diff --git a/Source/Modulos/Subfamilias/Views/uSubFamiliasViewRegister.pas b/Source/Modulos/Subfamilias/Views/uSubFamiliasViewRegister.pas new file mode 100644 index 0000000..e0a3808 --- /dev/null +++ b/Source/Modulos/Subfamilias/Views/uSubFamiliasViewRegister.pas @@ -0,0 +1,23 @@ +unit uSubFamiliasViewRegister; + +interface + +procedure RegisterViews; +procedure UnregisterViews; + +implementation + +uses + uEditorRegistryUtils, uEditorSubFamilias; + +procedure RegisterViews; +begin + EditorRegistry.RegisterClass(TfEditorSubFamilias, 'EditorSubFamilias'); +end; + +procedure UnregisterViews; +begin + EditorRegistry.UnRegisterClass(TfEditorSubFamilias); +end; + +end. diff --git a/Source/Servicios/FactuGES.RODL b/Source/Servicios/FactuGES.RODL index 455c895..05bb9ed 100644 --- a/Source/Servicios/FactuGES.RODL +++ b/Source/Servicios/FactuGES.RODL @@ -921,6 +921,15 @@ + + + + + + + + + diff --git a/Source/Servicios/FactuGES_Intf.pas b/Source/Servicios/FactuGES_Intf.pas index 396b0a1..c6f39f9 100644 --- a/Source/Servicios/FactuGES_Intf.pas +++ b/Source/Servicios/FactuGES_Intf.pas @@ -54,6 +54,7 @@ const IsrvGestorDocumentos_IID : TGUID = '{A057EA3B-F714-4899-B6DA-1E4C8696ADC7}'; IsrvGestorInformes_IID : TGUID = '{9ACA4D42-EA9A-4D2C-B233-19CD299EAE91}'; IsrvContratosCliente_IID : TGUID = '{ADBF1627-F507-4A0F-818E-38BAE28579B6}'; + IsrvSubfamilias_IID : TGUID = '{B2A29B16-BF65-45B3-B864-EA3E33406001}'; { Event ID's } @@ -90,6 +91,7 @@ type IsrvGestorDocumentos = interface; IsrvGestorInformes = interface; IsrvContratosCliente = interface; + IsrvSubfamilias = interface; TRdxEmpresasArray = class; TIntegerArray = class; @@ -871,6 +873,23 @@ type function GenerarInformeEnPDF(const ListaID: TIntegerArray; const NombreEmpresa: AnsiString; const VerLogotipo: Boolean): Binary; end; + { IsrvSubfamilias } + IsrvSubfamilias = interface(IDataAbstractService) + ['{B2A29B16-BF65-45B3-B864-EA3E33406001}'] + end; + + { CosrvSubfamilias } + CosrvSubfamilias = class + class function Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvSubfamilias; + end; + + { TsrvSubfamilias_Proxy } + TsrvSubfamilias_Proxy = class(TDataAbstractService_Proxy, IsrvSubfamilias) + protected + function __GetInterfaceName:string; override; + + end; + implementation uses @@ -2760,6 +2779,18 @@ begin end end; +{ CosrvSubfamilias } + +class function CosrvSubfamilias.Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvSubfamilias; +begin + result := TsrvSubfamilias_Proxy.Create(aMessage, aTransportChannel); +end; + +function TsrvSubfamilias_Proxy.__GetInterfaceName:string; +begin + result := 'srvSubfamilias'; +end; + initialization RegisterROClass(TRdxLoginInfo); RegisterROClass(TRdxEmpresasArray); @@ -2795,6 +2826,7 @@ initialization RegisterProxyClass(IsrvGestorDocumentos_IID, TsrvGestorDocumentos_Proxy); RegisterProxyClass(IsrvGestorInformes_IID, TsrvGestorInformes_Proxy); RegisterProxyClass(IsrvContratosCliente_IID, TsrvContratosCliente_Proxy); + RegisterProxyClass(IsrvSubfamilias_IID, TsrvSubfamilias_Proxy); finalization @@ -2832,5 +2864,6 @@ finalization UnregisterProxyClass(IsrvGestorDocumentos_IID); UnregisterProxyClass(IsrvGestorInformes_IID); UnregisterProxyClass(IsrvContratosCliente_IID); + UnregisterProxyClass(IsrvSubfamilias_IID); end. diff --git a/Source/Servicios/FactuGES_Invk.pas b/Source/Servicios/FactuGES_Invk.pas index 30f6827..ca1c966 100644 --- a/Source/Servicios/FactuGES_Invk.pas +++ b/Source/Servicios/FactuGES_Invk.pas @@ -326,6 +326,14 @@ type procedure Invoke_GenerarInformeEnPDF(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); end; + TsrvSubfamilias_Invoker = class(TDataAbstractService_Invoker) + private + protected + public + constructor Create; override; + published + end; + implementation uses @@ -2269,5 +2277,13 @@ begin end; end; +{ TsrvSubfamilias_Invoker } + +constructor TsrvSubfamilias_Invoker.Create; +begin + inherited Create; + FAbstract := False; +end; + initialization end. diff --git a/Source/Servicios/RODLFile.res b/Source/Servicios/RODLFile.res index 4ff534e..23e8f76 100644 Binary files a/Source/Servicios/RODLFile.res and b/Source/Servicios/RODLFile.res differ diff --git a/Source/Servidor/FactuGES_Server.dpr b/Source/Servidor/FactuGES_Server.dpr index b21647b..f55e3ee 100644 --- a/Source/Servidor/FactuGES_Server.dpr +++ b/Source/Servidor/FactuGES_Server.dpr @@ -88,8 +88,6 @@ uses uBizAsientosServer in '..\Modulos\Contabilidad\Model\uBizAsientosServer.pas', srvComisiones_Impl in '..\Modulos\Comisiones\Servidor\srvComisiones_Impl.pas' {srvComisiones: TDataAbstractService}, uBizComisionesServer in '..\Modulos\Comisiones\Model\uBizComisionesServer.pas', - schContactosClient_Intf in '..\Modulos\Contactos\Model\schContactosClient_Intf.pas', - schContactosServer_Intf in '..\Modulos\Contactos\Model\schContactosServer_Intf.pas', schComisionesClient_Intf in '..\Modulos\Comisiones\Model\schComisionesClient_Intf.pas', schComisionesServer_Intf in '..\Modulos\Comisiones\Model\schComisionesServer_Intf.pas', uRptComisiones_Server in '..\Modulos\Comisiones\Reports\uRptComisiones_Server.pas' {RptComisiones: TDataModule}, @@ -112,8 +110,6 @@ uses schContabilidadServer_Intf in '..\Modulos\Contabilidad\Model\schContabilidadServer_Intf.pas', schRecibosProveedorClient_Intf in '..\Modulos\Recibos de proveedor\Model\schRecibosProveedorClient_Intf.pas', schRecibosProveedorServer_Intf in '..\Modulos\Recibos de proveedor\Model\schRecibosProveedorServer_Intf.pas', - schEmpresasClient_Intf in '..\ApplicationBase\Empresas\Model\schEmpresasClient_Intf.pas', - schEmpresasServer_Intf in '..\ApplicationBase\Empresas\Model\schEmpresasServer_Intf.pas', srvContratosCliente_Impl in '..\Modulos\Contratos de cliente\Servidor\srvContratosCliente_Impl.pas' {srvContratosCliente: TDataAbstractService}, uBizContratosClienteServer in '..\Modulos\Contratos de cliente\Model\uBizContratosClienteServer.pas', uRptContratosCliente_Server in '..\Modulos\Contratos de cliente\Reports\uRptContratosCliente_Server.pas' {RptContratosCliente}, @@ -133,10 +129,17 @@ uses schFacturasProveedorServer_Intf in '..\Modulos\Facturas de proveedor\Model\schFacturasProveedorServer_Intf.pas', schArticulosClient_Intf in '..\Modulos\Articulos\Model\schArticulosClient_Intf.pas', schArticulosServer_Intf in '..\Modulos\Articulos\Model\schArticulosServer_Intf.pas', + schContratosClienteClient_Intf in '..\Modulos\Contratos de cliente\Model\schContratosClienteClient_Intf.pas', + schContratosClienteServer_Intf in '..\Modulos\Contratos de cliente\Model\schContratosClienteServer_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', - schContratosClienteClient_Intf in '..\Modulos\Contratos de cliente\Model\schContratosClienteClient_Intf.pas', - schContratosClienteServer_Intf in '..\Modulos\Contratos de cliente\Model\schContratosClienteServer_Intf.pas'; + schEmpresasClient_Intf in '..\ApplicationBase\Empresas\Model\schEmpresasClient_Intf.pas', + schEmpresasServer_Intf in '..\ApplicationBase\Empresas\Model\schEmpresasServer_Intf.pas', + srvSubfamilias_Impl in '..\Modulos\Subfamilias\Servidor\srvSubfamilias_Impl.pas' {srvSubfamilias: TDataAbstractService}, + schSubfamiliasClient_Intf in '..\Modulos\Subfamilias\Model\schSubfamiliasClient_Intf.pas', + schSubfamiliasServer_Intf in '..\Modulos\Subfamilias\Model\schSubfamiliasServer_Intf.pas'; {$R *.res} {$R ..\Servicios\RODLFile.res} diff --git a/Source/Servidor/FactuGES_Server.dproj b/Source/Servidor/FactuGES_Server.dproj index a3e57e8..b608c2b 100644 --- a/Source/Servidor/FactuGES_Server.dproj +++ b/Source/Servidor/FactuGES_Server.dproj @@ -1,294 +1,304 @@ - + - - {ebdcd25d-40d7-4146-91ec-a0ea4aa1dcd1} - FactuGES_Server.dpr - Debug - AnyCPU - DCC32 - ..\..\Output\Debug\Servidor\FactuGES_Server.exe - - - 7.0 - False - False - 0 - 3 - ..\..\Output\Release\Servidor - RELEASE - - - 7.0 - 3 - ..\..\Output\Debug\Servidor - DEBUG; - True - - - Delphi.Personality - - - FalseTrueFalseTrueFalse2540FalseFalseFalseFalseFalse30821252Rodax Software S.L.2.5.4.0FactuGES (Servidor)2.5.4.0miércoles, 11 de julio de 2012 10:34 - File C:\Documents and Settings\All Users\Documentos\RAD Studio\5.0\Bpl\dxPScxScheduler2LnkD11.bpl not found - FactuGES_Server.dpr - - - - - MainSource - - - - - -
srvEjercicios
- TDataAbstractService -
- - - -
srvEmpresas
- TDARemoteService -
- -
srvProvinciasPoblaciones
- TRORemoteDataModule -
- - - - - - - - - - - -
srvAlbaranesCliente
- TDataAbstractService -
- - - - -
srvAlbaranesProveedor
- TDataAbstractService -
- - - -
srvAlmacenes
- TDARemoteService -
- - - - - - - -
RptComisiones
- TDataModule -
- -
srvComisiones
- TDataAbstractService -
- - - - -
srvContabilidad
- TDataAbstractService -
- - - - - - - -
RptEtiquetasContacto
- TDataModule -
- -
srvContactos
- TDARemoteService -
- - - - -
RptContratosCliente
-
- -
srvContratosCliente
- TDataAbstractService -
- - - - -
RptFacturasCliente
- TDataModule -
- -
srvFacturasCliente
- TDataAbstractService -
- - - - -
RptFacturasProveedor
- TDataModule -
- -
srvFacturasProveedor
- TDataAbstractService -
- - - - - - - -
srvGestorDocumentos
- TDataAbstractService -
- -
srvGestorInformes
- TDataAbstractService -
- - - -
srvHistoricoMovimientos
- TDataAbstractService -
- - - -
srvInventario
- TDataAbstractService -
- - - - -
srvPedidosProveedor
- TDataAbstractService -
- - - - -
RptPresupuestosCliente
-
- -
srvPresupuestosCliente
- TDataAbstractService -
- - - - - -
RptRecibosCliente
- TDataModule -
- -
srvRecibosCliente
- TDataAbstractService -
- - - - - -
RptRecibosProveedor
- TDataModule -
- -
srvRecibosProveedor
- TDataAbstractService -
- - - -
srvReferencias
- TDataAbstractService -
- - - - -
srvRemesasCliente
- TDataAbstractService -
- - - - -
srvRemesasProveedor
- TDataAbstractService -
- - - - - - -
srvUnidadesMedida
- TDataAbstractService -
- - - -
srvConfiguracion
- TDataAbstractService -
- -
frConexionBD
- TFrame -
- -
frConfGeneral
- TFrame -
- -
fConfiguracion
- TForm -
- -
FrameConfiguracion
- TFrame -
- -
srvLogin
- TDARemoteService -
- -
fAcercaDe
-
- -
dmServer
- TDataModule -
- -
fServerForm
-
- - - - - - - - -
+ + {ebdcd25d-40d7-4146-91ec-a0ea4aa1dcd1} + FactuGES_Server.dpr + Debug + AnyCPU + DCC32 + ..\..\Output\Debug\Servidor\FactuGES_Server.exe + + + 7.0 + False + False + 0 + 3 + ..\..\Output\Release\Servidor + RELEASE + + + 7.0 + 3 + ..\..\Output\Debug\Servidor + DEBUG; + True + + + Delphi.Personality + + +FalseTrueFalseTrueFalse2550FalseFalseFalseFalseFalse30821252Rodax Software S.L.2.5.5.0FactuGES (Servidor)2.5.5.0martes, 05 de febrero de 2013 11:10 + + + + + File C:\Documents and Settings\All Users\Documentos\RAD Studio\5.0\Bpl\dxPScxScheduler2LnkD11.bpl not found + FactuGES_Server.dpr + + + + + MainSource + + + + + +
srvEjercicios
+ TDataAbstractService +
+ + + +
srvEmpresas
+ TDARemoteService +
+ +
srvProvinciasPoblaciones
+ TRORemoteDataModule +
+ + + + + + + + + + + +
srvAlbaranesCliente
+ TDataAbstractService +
+ + + + +
srvAlbaranesProveedor
+ TDataAbstractService +
+ + + +
srvAlmacenes
+ TDARemoteService +
+ + + + + + + +
RptComisiones
+ TDataModule +
+ +
srvComisiones
+ TDataAbstractService +
+ + + + +
srvContabilidad
+ TDataAbstractService +
+ + + + + + + +
RptEtiquetasContacto
+ TDataModule +
+ +
srvContactos
+ TDARemoteService +
+ + + + +
RptContratosCliente
+
+ +
srvContratosCliente
+ TDataAbstractService +
+ + + + +
RptFacturasCliente
+ TDataModule +
+ +
srvFacturasCliente
+ TDataAbstractService +
+ + + + +
RptFacturasProveedor
+ TDataModule +
+ +
srvFacturasProveedor
+ TDataAbstractService +
+ + + + + + + +
srvGestorDocumentos
+ TDataAbstractService +
+ +
srvGestorInformes
+ TDataAbstractService +
+ + + +
srvHistoricoMovimientos
+ TDataAbstractService +
+ + + +
srvInventario
+ TDataAbstractService +
+ + + + +
srvPedidosProveedor
+ TDataAbstractService +
+ + + + +
RptPresupuestosCliente
+
+ +
srvPresupuestosCliente
+ TDataAbstractService +
+ + + + + +
RptRecibosCliente
+ TDataModule +
+ +
srvRecibosCliente
+ TDataAbstractService +
+ + + + + +
RptRecibosProveedor
+ TDataModule +
+ +
srvRecibosProveedor
+ TDataAbstractService +
+ + + +
srvReferencias
+ TDataAbstractService +
+ + + + +
srvRemesasCliente
+ TDataAbstractService +
+ + + + +
srvRemesasProveedor
+ TDataAbstractService +
+ + + +
srvSubfamilias
+ TDataAbstractService +
+ + + + + + +
srvUnidadesMedida
+ TDataAbstractService +
+ + + +
srvConfiguracion
+ TDataAbstractService +
+ +
frConexionBD
+ TFrame +
+ +
frConfGeneral
+ TFrame +
+ +
fConfiguracion
+ TForm +
+ +
FrameConfiguracion
+ TFrame +
+ +
srvLogin
+ TDARemoteService +
+ +
fAcercaDe
+
+ +
dmServer
+ TDataModule +
+ +
fServerForm
+
+ + + + + + + + +