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
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
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
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
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
-
-
-
-
-
+
+
+
+
+
+
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
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -149,13 +157,6 @@
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
+
+
+
+
+
+
+
+
+
+
+
+
+
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
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
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
+
+
+
+
+
+
+
+
+
+ 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
-
-
-
-
-
-
- TDataAbstractService
-
-
-
-
-
- TDARemoteService
-
-
-
- TRORemoteDataModule
-
-
-
-
-
-
-
-
-
-
-
-
-
- TDataAbstractService
-
-
-
-
-
-
- TDataAbstractService
-
-
-
-
-
- TDARemoteService
-
-
-
-
-
-
-
-
-
- TDataModule
-
-
-
- TDataAbstractService
-
-
-
-
-
-
- TDataAbstractService
-
-
-
-
-
-
-
-
-
- TDataModule
-
-
-
- TDARemoteService
-
-
-
-
-
-
-
-
-
- TDataAbstractService
-
-
-
-
-
-
- TDataModule
-
-
-
- TDataAbstractService
-
-
-
-
-
-
- TDataModule
-
-
-
- TDataAbstractService
-
-
-
-
-
-
-
-
-
- TDataAbstractService
-
-
-
- TDataAbstractService
-
-
-
-
-
- TDataAbstractService
-
-
-
-
-
- TDataAbstractService
-
-
-
-
-
-
- TDataAbstractService
-
-
-
-
-
-
-
-
-
- TDataAbstractService
-
-
-
-
-
-
-
- TDataModule
-
-
-
- TDataAbstractService
-
-
-
-
-
-
-
- TDataModule
-
-
-
- TDataAbstractService
-
-
-
-
-
- TDataAbstractService
-
-
-
-
-
-
- TDataAbstractService
-
-
-
-
-
-
- TDataAbstractService
-
-
-
-
-
-
-
-
- TDataAbstractService
-
-
-
-
-
- TDataAbstractService
-
-
-
- TFrame
-
-
-
- TFrame
-
-
-
- TForm
-
-
-
- TFrame
-
-
-
- TDARemoteService
-
-
-
-
-
-
- TDataModule
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+ {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
+
+
+
+
+
+
+ TDataAbstractService
+
+
+
+
+
+ TDARemoteService
+
+
+
+ TRORemoteDataModule
+
+
+
+
+
+
+
+
+
+
+
+
+
+ TDataAbstractService
+
+
+
+
+
+
+ TDataAbstractService
+
+
+
+
+
+ TDARemoteService
+
+
+
+
+
+
+
+
+
+ TDataModule
+
+
+
+ TDataAbstractService
+
+
+
+
+
+
+ TDataAbstractService
+
+
+
+
+
+
+
+
+
+ TDataModule
+
+
+
+ TDARemoteService
+
+
+
+
+
+
+
+
+
+ TDataAbstractService
+
+
+
+
+
+
+ TDataModule
+
+
+
+ TDataAbstractService
+
+
+
+
+
+
+ TDataModule
+
+
+
+ TDataAbstractService
+
+
+
+
+
+
+
+
+
+ TDataAbstractService
+
+
+
+ TDataAbstractService
+
+
+
+
+
+ TDataAbstractService
+
+
+
+
+
+ TDataAbstractService
+
+
+
+
+
+
+ TDataAbstractService
+
+
+
+
+
+
+
+
+
+ TDataAbstractService
+
+
+
+
+
+
+
+ TDataModule
+
+
+
+ TDataAbstractService
+
+
+
+
+
+
+
+ TDataModule
+
+
+
+ TDataAbstractService
+
+
+
+
+
+ TDataAbstractService
+
+
+
+
+
+
+ TDataAbstractService
+
+
+
+
+
+
+ TDataAbstractService
+
+
+
+
+
+ TDataAbstractService
+
+
+
+
+
+
+
+
+ TDataAbstractService
+
+
+
+
+
+ TDataAbstractService
+
+
+
+ TFrame
+
+
+
+ TFrame
+
+
+
+ TForm
+
+
+
+ TFrame
+
+
+
+ TDARemoteService
+
+
+
+
+
+
+ TDataModule
+
+
+
+
+
+
+
+
+
+
+
+
+