diff --git a/Database/ScriptSinDatos.sql b/Database/ScriptSinDatos.sql
index 62a21858..59f157d4 100644
--- a/Database/ScriptSinDatos.sql
+++ b/Database/ScriptSinDatos.sql
@@ -1271,6 +1271,7 @@ CREATE VIEW V_ARTICULOS(
ID_EMPRESA,
REFERENCIA,
DESCRIPCION,
+ UNIDAD_MEDIDA,
FAMILIA,
IMAGEN,
COMISIONABLE,
@@ -1285,10 +1286,12 @@ CREATE VIEW V_ARTICULOS(
INVENTARIABLE,
ID_PROVEEDOR,
NOMBRE_PROVEEDOR,
- ELIMINADO)
+ ELIMINADO,
+ FABRICANTE)
AS
SELECT ARTICULOS.ID, ARTICULOS.ID_EMPRESA, ARTICULOS.REFERENCIA, ARTICULOS.DESCRIPCION,
- ARTICULOS.FAMILIA, ARTICULOS.IMAGEN, ARTICULOS.COMISIONABLE, ARTICULOS.FECHA_ALTA,
+ ARTICULOS.UNIDAD_MEDIDA, ARTICULOS.FAMILIA, ARTICULOS.IMAGEN,
+ ARTICULOS.COMISIONABLE, ARTICULOS.FECHA_ALTA,
ARTICULOS.FECHA_MODIFICACION, ARTICULOS.USUARIO,
ARTICULOS.REFERENCIA_PROV,
ARTICULOS.PRECIO_COSTE,
@@ -1298,7 +1301,8 @@ SELECT ARTICULOS.ID, ARTICULOS.ID_EMPRESA, ARTICULOS.REFERENCIA, ARTICULOS.DESCR
ARTICULOS.INVENTARIABLE,
ARTICULOS.ID_PROVEEDOR,
CONTACTOS.NOMBRE AS NOMBRE_PROVEEDOR,
- ARTICULOS.ELIMINADO
+ ARTICULOS.ELIMINADO,
+ ARTICULOS.FABRICANTE
FROM ARTICULOS
LEFT OUTER JOIN CONTACTOS ON (CONTACTOS.ID = ARTICULOS.ID_PROVEEDOR)
WHERE (ARTICULOS.ELIMINADO = 0)
diff --git a/Source/Cliente/uBootStrap.pas b/Source/Cliente/uBootStrap.pas
index a762e973..8e657e0e 100644
--- a/Source/Cliente/uBootStrap.pas
+++ b/Source/Cliente/uBootStrap.pas
@@ -24,6 +24,7 @@ begin
LoadModule('FormasPago_plugin.bpl');
LoadModule('TiposIVA_plugin.bpl');
LoadModule('Familias_plugin.bpl');
+ LoadModule('Fabricantes_plugin.bpl');
LoadModule('UnidadesMedida_plugin.bpl');
LoadModule('Contactos_plugin.bpl');
diff --git a/Source/Modulos/Articulos/Articulos_Group.groupproj b/Source/Modulos/Articulos/Articulos_Group.groupproj
index 85a972b6..ae024535 100644
--- a/Source/Modulos/Articulos/Articulos_Group.groupproj
+++ b/Source/Modulos/Articulos/Articulos_Group.groupproj
@@ -8,6 +8,7 @@
+
@@ -111,14 +112,23 @@
+
+
+
+
+
+
+
+
+
-
+
-
+
-
+
\ No newline at end of file
diff --git a/Source/Modulos/Articulos/Data/uDataModuleArticulos.dfm b/Source/Modulos/Articulos/Data/uDataModuleArticulos.dfm
index b3d36c5c..4f26d644 100644
--- a/Source/Modulos/Articulos/Data/uDataModuleArticulos.dfm
+++ b/Source/Modulos/Articulos/Data/uDataModuleArticulos.dfm
@@ -144,6 +144,11 @@ inherited DataModuleArticulos: TDataModuleArticulos
Name = 'ELIMINADO'
DataType = datSmallInt
DisplayLabel = 'Eliminado'
+ end
+ item
+ Name = 'FABRICANTE'
+ DataType = datString
+ Size = 255
end>
Params = <>
StreamingOptions = [soDisableEventsWhileStreaming]
diff --git a/Source/Modulos/Articulos/Model/schArticulosClient_Intf.pas b/Source/Modulos/Articulos/Model/schArticulosClient_Intf.pas
index e6c326fd..63673541 100644
--- a/Source/Modulos/Articulos/Model/schArticulosClient_Intf.pas
+++ b/Source/Modulos/Articulos/Model/schArticulosClient_Intf.pas
@@ -3,14 +3,14 @@ unit schArticulosClient_Intf;
interface
uses
- Classes, DB, schBase_Intf, SysUtils, uROClasses, uDADataTable, FmtBCD, uROXMLIntf;
+ Classes, DB, SysUtils, uROClasses, uDADataTable, FmtBCD, uROXMLIntf;
const
{ Data table rules ids
Feel free to change them to something more human readable
but make sure they are unique in the context of your application }
- RID_Articulos = '{6930163F-C204-4661-9B8E-E5EB08652E93}';
- RID_ArticulosParaCliente = '{02961EF0-4BAA-4C29-B66E-E1FCD09DBC15}';
+ RID_Articulos = '{042A5C28-35B0-4779-B864-11D70E7E1BD5}';
+ RID_ArticulosParaCliente = '{03F3C87A-2A4B-4405-8327-F442AB029B42}';
{ Data table names }
nme_Articulos = 'Articulos';
@@ -37,6 +37,7 @@ const
fld_ArticulosID_PROVEEDOR = 'ID_PROVEEDOR';
fld_ArticulosNOMBRE_PROVEEDOR = 'NOMBRE_PROVEEDOR';
fld_ArticulosELIMINADO = 'ELIMINADO';
+ fld_ArticulosFABRICANTE = 'FABRICANTE';
{ Articulos field indexes }
idx_ArticulosID = 0;
@@ -59,12 +60,14 @@ const
idx_ArticulosID_PROVEEDOR = 17;
idx_ArticulosNOMBRE_PROVEEDOR = 18;
idx_ArticulosELIMINADO = 19;
+ idx_ArticulosFABRICANTE = 20;
{ ArticulosParaCliente fields }
fld_ArticulosParaClienteID = 'ID';
fld_ArticulosParaClienteID_EMPRESA = 'ID_EMPRESA';
fld_ArticulosParaClienteREFERENCIA = 'REFERENCIA';
fld_ArticulosParaClienteDESCRIPCION = 'DESCRIPCION';
+ fld_ArticulosParaClienteFABRICANTE = 'FABRICANTE';
fld_ArticulosParaClienteUNIDAD_MEDIDA = 'UNIDAD_MEDIDA';
fld_ArticulosParaClienteFAMILIA = 'FAMILIA';
fld_ArticulosParaClienteIMAGEN = 'IMAGEN';
@@ -87,27 +90,28 @@ const
idx_ArticulosParaClienteID_EMPRESA = 1;
idx_ArticulosParaClienteREFERENCIA = 2;
idx_ArticulosParaClienteDESCRIPCION = 3;
- idx_ArticulosParaClienteUNIDAD_MEDIDA = 4;
- idx_ArticulosParaClienteFAMILIA = 5;
- idx_ArticulosParaClienteIMAGEN = 6;
- idx_ArticulosParaClienteCOMISIONABLE = 7;
- idx_ArticulosParaClienteFECHA_ALTA = 8;
- idx_ArticulosParaClienteFECHA_MODIFICACION = 9;
- idx_ArticulosParaClienteUSUARIO = 10;
- idx_ArticulosParaClienteREFERENCIA_PROV = 11;
- idx_ArticulosParaClientePRECIO_COSTE = 12;
- idx_ArticulosParaClientePRECIO_PORTE = 13;
- idx_ArticulosParaClienteDESCUENTO = 14;
- idx_ArticulosParaClientePRECIO_NETO = 15;
- idx_ArticulosParaClienteINVENTARIABLE = 16;
- idx_ArticulosParaClienteID_PROVEEDOR = 17;
- idx_ArticulosParaClienteNOMBRE_PROVEEDOR = 18;
- idx_ArticulosParaClienteELIMINADO = 19;
+ idx_ArticulosParaClienteFABRICANTE = 4;
+ idx_ArticulosParaClienteUNIDAD_MEDIDA = 5;
+ idx_ArticulosParaClienteFAMILIA = 6;
+ idx_ArticulosParaClienteIMAGEN = 7;
+ idx_ArticulosParaClienteCOMISIONABLE = 8;
+ idx_ArticulosParaClienteFECHA_ALTA = 9;
+ idx_ArticulosParaClienteFECHA_MODIFICACION = 10;
+ idx_ArticulosParaClienteUSUARIO = 11;
+ idx_ArticulosParaClienteREFERENCIA_PROV = 12;
+ idx_ArticulosParaClientePRECIO_COSTE = 13;
+ idx_ArticulosParaClientePRECIO_PORTE = 14;
+ idx_ArticulosParaClienteDESCUENTO = 15;
+ idx_ArticulosParaClientePRECIO_NETO = 16;
+ idx_ArticulosParaClienteINVENTARIABLE = 17;
+ idx_ArticulosParaClienteID_PROVEEDOR = 18;
+ idx_ArticulosParaClienteNOMBRE_PROVEEDOR = 19;
+ idx_ArticulosParaClienteELIMINADO = 20;
type
{ IArticulos }
IArticulos = interface(IDAStronglyTypedDataTable)
- ['{0E1C6D96-6382-45DF-8992-448C25CF4CED}']
+ ['{F1DCC683-41C3-4835-A07F-DD9F276298F0}']
{ Property getters and setters }
function GetIDValue: Integer;
procedure SetIDValue(const aValue: Integer);
@@ -188,6 +192,10 @@ type
procedure SetELIMINADOValue(const aValue: SmallInt);
function GetELIMINADOIsNull: Boolean;
procedure SetELIMINADOIsNull(const aValue: Boolean);
+ function GetFABRICANTEValue: String;
+ procedure SetFABRICANTEValue(const aValue: String);
+ function GetFABRICANTEIsNull: Boolean;
+ procedure SetFABRICANTEIsNull(const aValue: Boolean);
{ Properties }
@@ -231,10 +239,12 @@ type
property NOMBRE_PROVEEDORIsNull: Boolean read GetNOMBRE_PROVEEDORIsNull write SetNOMBRE_PROVEEDORIsNull;
property ELIMINADO: SmallInt read GetELIMINADOValue write SetELIMINADOValue;
property ELIMINADOIsNull: Boolean read GetELIMINADOIsNull write SetELIMINADOIsNull;
+ property FABRICANTE: String read GetFABRICANTEValue write SetFABRICANTEValue;
+ property FABRICANTEIsNull: Boolean read GetFABRICANTEIsNull write SetFABRICANTEIsNull;
end;
{ TArticulosDataTableRules }
- TArticulosDataTableRules = class(TIntfObjectDADataTableRules, IArticulos)
+ TArticulosDataTableRules = class(TDADataTableRules, IArticulos)
private
f_IMAGEN: IROStream;
procedure IMAGEN_OnChange(Sender: TObject);
@@ -319,6 +329,10 @@ type
procedure SetELIMINADOValue(const aValue: SmallInt); virtual;
function GetELIMINADOIsNull: Boolean; virtual;
procedure SetELIMINADOIsNull(const aValue: Boolean); virtual;
+ function GetFABRICANTEValue: String; virtual;
+ procedure SetFABRICANTEValue(const aValue: String); virtual;
+ function GetFABRICANTEIsNull: Boolean; virtual;
+ procedure SetFABRICANTEIsNull(const aValue: Boolean); virtual;
{ Properties }
property ID: Integer read GetIDValue write SetIDValue;
@@ -361,6 +375,8 @@ type
property NOMBRE_PROVEEDORIsNull: Boolean read GetNOMBRE_PROVEEDORIsNull write SetNOMBRE_PROVEEDORIsNull;
property ELIMINADO: SmallInt read GetELIMINADOValue write SetELIMINADOValue;
property ELIMINADOIsNull: Boolean read GetELIMINADOIsNull write SetELIMINADOIsNull;
+ property FABRICANTE: String read GetFABRICANTEValue write SetFABRICANTEValue;
+ property FABRICANTEIsNull: Boolean read GetFABRICANTEIsNull write SetFABRICANTEIsNull;
public
constructor Create(aDataTable: TDADataTable); override;
@@ -370,7 +386,7 @@ type
{ IArticulosParaCliente }
IArticulosParaCliente = interface(IDAStronglyTypedDataTable)
- ['{82CAF5F9-F5A9-4A0D-9FBB-6229D32300DA}']
+ ['{5615D828-ACE3-4839-B434-1E1EFC9454E5}']
{ Property getters and setters }
function GetIDValue: Integer;
procedure SetIDValue(const aValue: Integer);
@@ -388,6 +404,10 @@ type
procedure SetDESCRIPCIONValue(const aValue: String);
function GetDESCRIPCIONIsNull: Boolean;
procedure SetDESCRIPCIONIsNull(const aValue: Boolean);
+ function GetFABRICANTEValue: String;
+ procedure SetFABRICANTEValue(const aValue: String);
+ function GetFABRICANTEIsNull: Boolean;
+ procedure SetFABRICANTEIsNull(const aValue: Boolean);
function GetUNIDAD_MEDIDAValue: String;
procedure SetUNIDAD_MEDIDAValue(const aValue: String);
function GetUNIDAD_MEDIDAIsNull: Boolean;
@@ -462,6 +482,8 @@ type
property REFERENCIAIsNull: Boolean read GetREFERENCIAIsNull write SetREFERENCIAIsNull;
property DESCRIPCION: String read GetDESCRIPCIONValue write SetDESCRIPCIONValue;
property DESCRIPCIONIsNull: Boolean read GetDESCRIPCIONIsNull write SetDESCRIPCIONIsNull;
+ property FABRICANTE: String read GetFABRICANTEValue write SetFABRICANTEValue;
+ property FABRICANTEIsNull: Boolean read GetFABRICANTEIsNull write SetFABRICANTEIsNull;
property UNIDAD_MEDIDA: String read GetUNIDAD_MEDIDAValue write SetUNIDAD_MEDIDAValue;
property UNIDAD_MEDIDAIsNull: Boolean read GetUNIDAD_MEDIDAIsNull write SetUNIDAD_MEDIDAIsNull;
property FAMILIA: String read GetFAMILIAValue write SetFAMILIAValue;
@@ -497,7 +519,7 @@ type
end;
{ TArticulosParaClienteDataTableRules }
- TArticulosParaClienteDataTableRules = class(TIntfObjectDADataTableRules, IArticulosParaCliente)
+ TArticulosParaClienteDataTableRules = class(TDADataTableRules, IArticulosParaCliente)
private
f_IMAGEN: IROStream;
procedure IMAGEN_OnChange(Sender: TObject);
@@ -519,6 +541,10 @@ type
procedure SetDESCRIPCIONValue(const aValue: String); virtual;
function GetDESCRIPCIONIsNull: Boolean; virtual;
procedure SetDESCRIPCIONIsNull(const aValue: Boolean); virtual;
+ function GetFABRICANTEValue: String; virtual;
+ procedure SetFABRICANTEValue(const aValue: String); virtual;
+ function GetFABRICANTEIsNull: Boolean; virtual;
+ procedure SetFABRICANTEIsNull(const aValue: Boolean); virtual;
function GetUNIDAD_MEDIDAValue: String; virtual;
procedure SetUNIDAD_MEDIDAValue(const aValue: String); virtual;
function GetUNIDAD_MEDIDAIsNull: Boolean; virtual;
@@ -592,6 +618,8 @@ type
property REFERENCIAIsNull: Boolean read GetREFERENCIAIsNull write SetREFERENCIAIsNull;
property DESCRIPCION: String read GetDESCRIPCIONValue write SetDESCRIPCIONValue;
property DESCRIPCIONIsNull: Boolean read GetDESCRIPCIONIsNull write SetDESCRIPCIONIsNull;
+ property FABRICANTE: String read GetFABRICANTEValue write SetFABRICANTEValue;
+ property FABRICANTEIsNull: Boolean read GetFABRICANTEIsNull write SetFABRICANTEIsNull;
property UNIDAD_MEDIDA: String read GetUNIDAD_MEDIDAValue write SetUNIDAD_MEDIDAValue;
property UNIDAD_MEDIDAIsNull: Boolean read GetUNIDAD_MEDIDAIsNull write SetUNIDAD_MEDIDAIsNull;
property FAMILIA: String read GetFAMILIAValue write SetFAMILIAValue;
@@ -1077,6 +1105,27 @@ begin
DataTable.Fields[idx_ArticulosELIMINADO].AsVariant := Null;
end;
+function TArticulosDataTableRules.GetFABRICANTEValue: String;
+begin
+ result := DataTable.Fields[idx_ArticulosFABRICANTE].AsString;
+end;
+
+procedure TArticulosDataTableRules.SetFABRICANTEValue(const aValue: String);
+begin
+ DataTable.Fields[idx_ArticulosFABRICANTE].AsString := aValue;
+end;
+
+function TArticulosDataTableRules.GetFABRICANTEIsNull: boolean;
+begin
+ result := DataTable.Fields[idx_ArticulosFABRICANTE].IsNull;
+end;
+
+procedure TArticulosDataTableRules.SetFABRICANTEIsNull(const aValue: Boolean);
+begin
+ if aValue then
+ DataTable.Fields[idx_ArticulosFABRICANTE].AsVariant := Null;
+end;
+
{ TArticulosParaClienteDataTableRules }
constructor TArticulosParaClienteDataTableRules.Create(aDataTable: TDADataTable);
@@ -1184,6 +1233,27 @@ begin
DataTable.Fields[idx_ArticulosParaClienteDESCRIPCION].AsVariant := Null;
end;
+function TArticulosParaClienteDataTableRules.GetFABRICANTEValue: String;
+begin
+ result := DataTable.Fields[idx_ArticulosParaClienteFABRICANTE].AsString;
+end;
+
+procedure TArticulosParaClienteDataTableRules.SetFABRICANTEValue(const aValue: String);
+begin
+ DataTable.Fields[idx_ArticulosParaClienteFABRICANTE].AsString := aValue;
+end;
+
+function TArticulosParaClienteDataTableRules.GetFABRICANTEIsNull: boolean;
+begin
+ result := DataTable.Fields[idx_ArticulosParaClienteFABRICANTE].IsNull;
+end;
+
+procedure TArticulosParaClienteDataTableRules.SetFABRICANTEIsNull(const aValue: Boolean);
+begin
+ if aValue then
+ DataTable.Fields[idx_ArticulosParaClienteFABRICANTE].AsVariant := Null;
+end;
+
function TArticulosParaClienteDataTableRules.GetUNIDAD_MEDIDAValue: String;
begin
result := DataTable.Fields[idx_ArticulosParaClienteUNIDAD_MEDIDA].AsString;
diff --git a/Source/Modulos/Articulos/Model/schArticulosServer_Intf.pas b/Source/Modulos/Articulos/Model/schArticulosServer_Intf.pas
index 5d69a3fe..25652198 100644
--- a/Source/Modulos/Articulos/Model/schArticulosServer_Intf.pas
+++ b/Source/Modulos/Articulos/Model/schArticulosServer_Intf.pas
@@ -9,13 +9,13 @@ 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_ArticulosDelta = '{A56987C7-0587-447A-80F8-44F882CC1326}';
- RID_ArticulosParaClienteDelta = '{4BF57D32-A849-47E2-9AC3-81691DC7B0CA}';
+ RID_ArticulosDelta = '{4E74F5A8-5A74-41F9-B8A9-7DF2C8AA2A5A}';
+ RID_ArticulosParaClienteDelta = '{AD7097E1-071E-4496-8F43-216E98BC8F47}';
type
{ IArticulosDelta }
IArticulosDelta = interface(IArticulos)
- ['{A56987C7-0587-447A-80F8-44F882CC1326}']
+ ['{4E74F5A8-5A74-41F9-B8A9-7DF2C8AA2A5A}']
{ Property getters and setters }
function GetOldIDValue : Integer;
function GetOldID_EMPRESAValue : Integer;
@@ -37,6 +37,7 @@ type
function GetOldID_PROVEEDORValue : Integer;
function GetOldNOMBRE_PROVEEDORValue : String;
function GetOldELIMINADOValue : SmallInt;
+ function GetOldFABRICANTEValue : String;
{ Properties }
property OldID : Integer read GetOldIDValue;
@@ -59,6 +60,7 @@ type
property OldID_PROVEEDOR : Integer read GetOldID_PROVEEDORValue;
property OldNOMBRE_PROVEEDOR : String read GetOldNOMBRE_PROVEEDORValue;
property OldELIMINADO : SmallInt read GetOldELIMINADOValue;
+ property OldFABRICANTE : String read GetOldFABRICANTEValue;
end;
{ TArticulosBusinessProcessorRules }
@@ -187,6 +189,12 @@ type
function GetOldELIMINADOIsNull: Boolean; virtual;
procedure SetELIMINADOValue(const aValue: SmallInt); virtual;
procedure SetELIMINADOIsNull(const aValue: Boolean); virtual;
+ function GetFABRICANTEValue: String; virtual;
+ function GetFABRICANTEIsNull: Boolean; virtual;
+ function GetOldFABRICANTEValue: String; virtual;
+ function GetOldFABRICANTEIsNull: Boolean; virtual;
+ procedure SetFABRICANTEValue(const aValue: String); virtual;
+ procedure SetFABRICANTEIsNull(const aValue: Boolean); virtual;
{ Properties }
property ID : Integer read GetIDValue write SetIDValue;
@@ -269,6 +277,10 @@ type
property ELIMINADOIsNull : Boolean read GetELIMINADOIsNull write SetELIMINADOIsNull;
property OldELIMINADO : SmallInt read GetOldELIMINADOValue;
property OldELIMINADOIsNull : Boolean read GetOldELIMINADOIsNull;
+ property FABRICANTE : String read GetFABRICANTEValue write SetFABRICANTEValue;
+ property FABRICANTEIsNull : Boolean read GetFABRICANTEIsNull write SetFABRICANTEIsNull;
+ property OldFABRICANTE : String read GetOldFABRICANTEValue;
+ property OldFABRICANTEIsNull : Boolean read GetOldFABRICANTEIsNull;
public
constructor Create(aBusinessProcessor: TDABusinessProcessor); override;
@@ -278,12 +290,13 @@ type
{ IArticulosParaClienteDelta }
IArticulosParaClienteDelta = interface(IArticulosParaCliente)
- ['{4BF57D32-A849-47E2-9AC3-81691DC7B0CA}']
+ ['{AD7097E1-071E-4496-8F43-216E98BC8F47}']
{ Property getters and setters }
function GetOldIDValue : Integer;
function GetOldID_EMPRESAValue : Integer;
function GetOldREFERENCIAValue : String;
function GetOldDESCRIPCIONValue : String;
+ function GetOldFABRICANTEValue : String;
function GetOldUNIDAD_MEDIDAValue : String;
function GetOldFAMILIAValue : String;
function GetOldIMAGENValue : IROStream;
@@ -306,6 +319,7 @@ type
property OldID_EMPRESA : Integer read GetOldID_EMPRESAValue;
property OldREFERENCIA : String read GetOldREFERENCIAValue;
property OldDESCRIPCION : String read GetOldDESCRIPCIONValue;
+ property OldFABRICANTE : String read GetOldFABRICANTEValue;
property OldUNIDAD_MEDIDA : String read GetOldUNIDAD_MEDIDAValue;
property OldFAMILIA : String read GetOldFAMILIAValue;
property OldIMAGEN : IROStream read GetOldIMAGENValue;
@@ -355,6 +369,12 @@ type
function GetOldDESCRIPCIONIsNull: Boolean; virtual;
procedure SetDESCRIPCIONValue(const aValue: String); virtual;
procedure SetDESCRIPCIONIsNull(const aValue: Boolean); virtual;
+ function GetFABRICANTEValue: String; virtual;
+ function GetFABRICANTEIsNull: Boolean; virtual;
+ function GetOldFABRICANTEValue: String; virtual;
+ function GetOldFABRICANTEIsNull: Boolean; virtual;
+ procedure SetFABRICANTEValue(const aValue: String); virtual;
+ procedure SetFABRICANTEIsNull(const aValue: Boolean); virtual;
function GetUNIDAD_MEDIDAValue: String; virtual;
function GetUNIDAD_MEDIDAIsNull: Boolean; virtual;
function GetOldUNIDAD_MEDIDAValue: String; virtual;
@@ -468,6 +488,10 @@ type
property DESCRIPCIONIsNull : Boolean read GetDESCRIPCIONIsNull write SetDESCRIPCIONIsNull;
property OldDESCRIPCION : String read GetOldDESCRIPCIONValue;
property OldDESCRIPCIONIsNull : Boolean read GetOldDESCRIPCIONIsNull;
+ property FABRICANTE : String read GetFABRICANTEValue write SetFABRICANTEValue;
+ property FABRICANTEIsNull : Boolean read GetFABRICANTEIsNull write SetFABRICANTEIsNull;
+ property OldFABRICANTE : String read GetOldFABRICANTEValue;
+ property OldFABRICANTEIsNull : Boolean read GetOldFABRICANTEIsNull;
property UNIDAD_MEDIDA : String read GetUNIDAD_MEDIDAValue write SetUNIDAD_MEDIDAValue;
property UNIDAD_MEDIDAIsNull : Boolean read GetUNIDAD_MEDIDAIsNull write SetUNIDAD_MEDIDAIsNull;
property OldUNIDAD_MEDIDA : String read GetOldUNIDAD_MEDIDAValue;
@@ -1187,6 +1211,37 @@ begin
BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosELIMINADO] := Null;
end;
+function TArticulosBusinessProcessorRules.GetFABRICANTEValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosFABRICANTE];
+end;
+
+function TArticulosBusinessProcessorRules.GetFABRICANTEIsNull: Boolean;
+begin
+ result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosFABRICANTE]);
+end;
+
+function TArticulosBusinessProcessorRules.GetOldFABRICANTEValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_ArticulosFABRICANTE];
+end;
+
+function TArticulosBusinessProcessorRules.GetOldFABRICANTEIsNull: Boolean;
+begin
+ result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ArticulosFABRICANTE]);
+end;
+
+procedure TArticulosBusinessProcessorRules.SetFABRICANTEValue(const aValue: String);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosFABRICANTE] := aValue;
+end;
+
+procedure TArticulosBusinessProcessorRules.SetFABRICANTEIsNull(const aValue: Boolean);
+begin
+ if aValue then
+ BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosFABRICANTE] := Null;
+end;
+
{ TArticulosParaClienteBusinessProcessorRules }
constructor TArticulosParaClienteBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor);
@@ -1334,6 +1389,37 @@ begin
BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosParaClienteDESCRIPCION] := Null;
end;
+function TArticulosParaClienteBusinessProcessorRules.GetFABRICANTEValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosParaClienteFABRICANTE];
+end;
+
+function TArticulosParaClienteBusinessProcessorRules.GetFABRICANTEIsNull: Boolean;
+begin
+ result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosParaClienteFABRICANTE]);
+end;
+
+function TArticulosParaClienteBusinessProcessorRules.GetOldFABRICANTEValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_ArticulosParaClienteFABRICANTE];
+end;
+
+function TArticulosParaClienteBusinessProcessorRules.GetOldFABRICANTEIsNull: Boolean;
+begin
+ result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ArticulosParaClienteFABRICANTE]);
+end;
+
+procedure TArticulosParaClienteBusinessProcessorRules.SetFABRICANTEValue(const aValue: String);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosParaClienteFABRICANTE] := aValue;
+end;
+
+procedure TArticulosParaClienteBusinessProcessorRules.SetFABRICANTEIsNull(const aValue: Boolean);
+begin
+ if aValue then
+ BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosParaClienteFABRICANTE] := Null;
+end;
+
function TArticulosParaClienteBusinessProcessorRules.GetUNIDAD_MEDIDAValue: String;
begin
result := BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosParaClienteUNIDAD_MEDIDA];
diff --git a/Source/Modulos/Articulos/Servidor/srvArticulos_Impl.dfm b/Source/Modulos/Articulos/Servidor/srvArticulos_Impl.dfm
index a6c3a106..9ad6feda 100644
--- a/Source/Modulos/Articulos/Servidor/srvArticulos_Impl.dfm
+++ b/Source/Modulos/Articulos/Servidor/srvArticulos_Impl.dfm
@@ -209,6 +209,10 @@ object srvArticulos: TsrvArticulos
item
DatasetField = 'UNIDAD_MEDIDA'
TableField = 'UNIDAD_MEDIDA'
+ end
+ item
+ DatasetField = 'FABRICANTE'
+ TableField = 'FABRICANTE'
end>
end>
Name = 'Articulos'
@@ -320,6 +324,11 @@ object srvArticulos: TsrvArticulos
Name = 'ELIMINADO'
DataType = datSmallInt
DisplayLabel = 'Eliminado'
+ end
+ item
+ Name = 'FABRICANTE'
+ DataType = datString
+ Size = 255
end>
end
item
@@ -335,18 +344,19 @@ object srvArticulos: TsrvArticulos
TargetTable = 'ARTICULOS'
SQL =
'SELECT V_ARTICULOS.ID, V_ARTICULOS.ID_EMPRESA, V_ARTICULOS.REFER' +
- 'ENCIA, V_ARTICULOS.DESCRIPCION,'#10' V_ARTICULOS.UNIDAD_MEDIDA' +
- ','#10' V_ARTICULOS.FAMILIA, V_ARTICULOS.IMAGEN, V_ARTICULOS.CO' +
- 'MISIONABLE, V_ARTICULOS.FECHA_ALTA,'#10' V_ARTICULOS.FECHA_MOD' +
- 'IFICACION, V_ARTICULOS.USUARIO,'#10' V_ARTICULOS.REFERENCIA_PR' +
- 'OV,'#10' V_ARTICULOS.PRECIO_COSTE,'#10' V_ARTICULOS.PRECIO_P' +
- 'ORTE,'#10' CLIENTES_DTOS_PROVEEDORES.DESCUENTO,'#10' V_ARTIC' +
- 'ULOS.PRECIO_NETO,'#10' V_ARTICULOS.INVENTARIABLE,'#10' V_ART' +
- 'ICULOS.ID_PROVEEDOR,'#10' V_ARTICULOS.NOMBRE_PROVEEDOR,'#10' ' +
- ' V_ARTICULOS.ELIMINADO'#10'FROM V_ARTICULOS'#10'LEFT OUTER JOIN CLIENTES' +
- '_DTOS_PROVEEDORES'#10'ON ((CLIENTES_DTOS_PROVEEDORES.ID_PROVEEDOR = ' +
- 'V_ARTICULOS.ID_PROVEEDOR)'#10'AND (CLIENTES_DTOS_PROVEEDORES.ID_CLIE' +
- 'NTE = :ID_CLIENTE))'#10'where {where}'#10
+ 'ENCIA, V_ARTICULOS.DESCRIPCION,'#10' V_ARTICULOS.FABRICANTE,'#10' ' +
+ ' V_ARTICULOS.UNIDAD_MEDIDA,'#10' V_ARTICULOS.FAMILIA, V_A' +
+ 'RTICULOS.IMAGEN, V_ARTICULOS.COMISIONABLE, V_ARTICULOS.FECHA_ALT' +
+ 'A,'#10' V_ARTICULOS.FECHA_MODIFICACION, V_ARTICULOS.USUARIO,'#10' ' +
+ ' V_ARTICULOS.REFERENCIA_PROV,'#10' V_ARTICULOS.PRECIO_COS' +
+ 'TE,'#10' V_ARTICULOS.PRECIO_PORTE,'#10' CLIENTES_DTOS_PROVEE' +
+ 'DORES.DESCUENTO,'#10' V_ARTICULOS.PRECIO_NETO,'#10' V_ARTICU' +
+ 'LOS.INVENTARIABLE,'#10' V_ARTICULOS.ID_PROVEEDOR,'#10' V_ART' +
+ 'ICULOS.NOMBRE_PROVEEDOR,'#10' V_ARTICULOS.ELIMINADO'#10'FROM V_ART' +
+ 'ICULOS'#10'LEFT OUTER JOIN CLIENTES_DTOS_PROVEEDORES'#10'ON ((CLIENTES_D' +
+ 'TOS_PROVEEDORES.ID_PROVEEDOR = V_ARTICULOS.ID_PROVEEDOR)'#10'AND (CL' +
+ 'IENTES_DTOS_PROVEEDORES.ID_CLIENTE = :ID_CLIENTE))'#10'where {where}' +
+ #10
StatementType = stSQL
ColumnMappings = <
item
@@ -429,6 +439,10 @@ object srvArticulos: TsrvArticulos
item
DatasetField = 'UNIDAD_MEDIDA'
TableField = 'UNIDAD_MEDIDA'
+ end
+ item
+ DatasetField = 'FABRICANTE'
+ TableField = 'FABRICANTE'
end>
end>
Name = 'ArticulosParaCliente'
@@ -452,6 +466,11 @@ object srvArticulos: TsrvArticulos
DataType = datString
Size = 255
end
+ item
+ Name = 'FABRICANTE'
+ DataType = datString
+ Size = 255
+ end
item
Name = 'UNIDAD_MEDIDA'
DataType = datString
@@ -605,6 +624,10 @@ object srvArticulos: TsrvArticulos
item
Name = 'ELIMINADO'
Value = ''
+ end
+ item
+ Name = 'FABRICANTE'
+ Value = ''
end>
Statements = <
item
@@ -615,11 +638,12 @@ object srvArticulos: TsrvArticulos
'CION, UNIDAD_MEDIDA, FAMILIA, IMAGEN,'#10' COMISIONABLE, FECHA_A' +
'LTA, FECHA_MODIFICACION, USUARIO, '#10' PRECIO_COSTE, PRECIO_POR' +
'TE, DESCUENTO, ID_PROVEEDOR, '#10' PRECIO_NETO, REFERENCIA_PROV,' +
- ' INVENTARIABLE, ELIMINADO)'#10' VALUES'#10' (:ID, :ID_EMPRESA, :REFE' +
- 'RENCIA, :DESCRIPCION, :UNIDAD_MEDIDA, :FAMILIA,'#10' :IMAGEN, :C' +
- 'OMISIONABLE, :FECHA_ALTA, :FECHA_MODIFICACION, '#10' :USUARIO, :' +
- 'PRECIO_COSTE, :PRECIO_PORTE, :DESCUENTO, '#10' :ID_PROVEEDOR, :P' +
- 'RECIO_NETO, :REFERENCIA_PROV,'#10' :INVENTARIABLE, :ELIMINADO)'#10
+ ' INVENTARIABLE, ELIMINADO, FABRICANTE)'#10' VALUES'#10' (:ID, :ID_EM' +
+ 'PRESA, :REFERENCIA, :DESCRIPCION, :UNIDAD_MEDIDA, :FAMILIA,'#10' ' +
+ ' :IMAGEN, :COMISIONABLE, :FECHA_ALTA, :FECHA_MODIFICACION, '#10' ' +
+ ' :USUARIO, :PRECIO_COSTE, :PRECIO_PORTE, :DESCUENTO, '#10' :ID_P' +
+ 'ROVEEDOR, :PRECIO_NETO, :REFERENCIA_PROV,'#10' :INVENTARIABLE, :' +
+ 'ELIMINADO, :FABRICANTE)'#10
StatementType = stSQL
ColumnMappings = <>
end>
@@ -717,6 +741,10 @@ object srvArticulos: TsrvArticulos
Name = 'ELIMINADO'
Value = ''
end
+ item
+ Name = 'FABRICANTE'
+ Value = ''
+ end
item
Name = 'OLD_ID'
Value = ''
@@ -735,7 +763,8 @@ object srvArticulos: TsrvArticulos
'O_PORTE = :PRECIO_PORTE, '#10' DESCUENTO = :DESCUENTO, '#10' ID_PR' +
'OVEEDOR = :ID_PROVEEDOR, '#10' PRECIO_NETO = :PRECIO_NETO,'#10' IN' +
'VENTARIABLE = :INVENTARIABLE,'#10' REFERENCIA_PROV = :REFERENCIA_' +
- 'PROV,'#10' ELIMINADO = :ELIMINADO'#10' WHERE'#10' (ID = :OLD_ID)'#10
+ 'PROV,'#10' ELIMINADO = :ELIMINADO,'#10' FABRICANTE = :FABRICANTE'#10' ' +
+ ' WHERE'#10' (ID = :OLD_ID)'#10
StatementType = stSQL
ColumnMappings = <>
end>
diff --git a/Source/Modulos/Articulos/Views/Articulos_view.dpk b/Source/Modulos/Articulos/Views/Articulos_view.dpk
index f6deb99e..a1049aaf 100644
--- a/Source/Modulos/Articulos/Views/Articulos_view.dpk
+++ b/Source/Modulos/Articulos/Views/Articulos_view.dpk
@@ -30,7 +30,8 @@ requires
Articulos_controller,
Familias_controller,
UnidadesMedida_controller,
- Contactos_view;
+ Contactos_view,
+ Fabricantes_controller;
contains
uViewArticulos in 'uViewArticulos.pas' {frViewArticulos: TFrame},
diff --git a/Source/Modulos/Articulos/Views/Articulos_view.dproj b/Source/Modulos/Articulos/Views/Articulos_view.dproj
index a62192fe..2e90b61c 100644
--- a/Source/Modulos/Articulos/Views/Articulos_view.dproj
+++ b/Source/Modulos/Articulos/Views/Articulos_view.dproj
@@ -54,12 +54,13 @@
MainSource
-
-
-
-
-
-
+
+
+
+
+
+
+
diff --git a/Source/Modulos/Articulos/Views/Articulos_view.res b/Source/Modulos/Articulos/Views/Articulos_view.res
index 8b251f31..1641339f 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/uEditorArticulos.pas b/Source/Modulos/Articulos/Views/uEditorArticulos.pas
index 22207bcd..841254fb 100644
--- a/Source/Modulos/Articulos/Views/uEditorArticulos.pas
+++ b/Source/Modulos/Articulos/Views/uEditorArticulos.pas
@@ -85,10 +85,7 @@ end;
procedure TfEditorArticulos.ImprimirInterno;
begin
- AppFactuGES.ShowCapado;
-{
inherited;
-}
end;
procedure TfEditorArticulos.ModificarInterno;
@@ -114,10 +111,7 @@ end;
procedure TfEditorArticulos.PrevisualizarInterno;
begin
-AppFactuGES.ShowCapado;
-{
inherited;
-}
end;
procedure TfEditorArticulos.SetArticulos(const Value: IBizArticulo);
@@ -144,8 +138,6 @@ procedure TfEditorArticulos.DuplicarInterno;
var
AArticulo : IBizArticulo;
begin
- AppFactuGES.ShowCapado;
-{
inherited;
AArticulo := FController.Duplicar(Articulos);
try
@@ -153,7 +145,6 @@ begin
finally
actRefrescar.Execute;
end;
-}
end;
procedure TfEditorArticulos.EliminarInterno;
diff --git a/Source/Modulos/Articulos/Views/uViewArticulo.dfm b/Source/Modulos/Articulos/Views/uViewArticulo.dfm
index 73365f01..16c06bf1 100644
--- a/Source/Modulos/Articulos/Views/uViewArticulo.dfm
+++ b/Source/Modulos/Articulos/Views/uViewArticulo.dfm
@@ -1,6 +1,6 @@
inherited frViewArticulo: TfrViewArticulo
- Width = 451
- Height = 304
+ Width = 649
+ Height = 426
Align = alClient
OnCreate = CustomViewCreate
OnDestroy = CustomViewDestroy
@@ -10,17 +10,18 @@ inherited frViewArticulo: TfrViewArticulo
object dxLayoutControlArticulo: TdxLayoutControl
Left = 0
Top = 0
- Width = 451
+ Width = 649
Height = 393
Align = alTop
ParentBackground = True
TabOrder = 0
AutoContentSizes = [acsWidth]
+ ExplicitWidth = 451
DesignSize = (
- 451
+ 649
393)
object PngSpeedButton2: TPngSpeedButton
- Left = 546
+ Left = 588
Top = 28
Width = 23
Height = 22
@@ -47,7 +48,7 @@ inherited frViewArticulo: TfrViewArticulo
PngOptions = [pngBlendOnDisabled, pngGrayscaleOnDisabled]
end
object PngSpeedButton1: TPngSpeedButton
- Left = 546
+ Left = 588
Top = 56
Width = 23
Height = 22
@@ -97,7 +98,7 @@ inherited frViewArticulo: TfrViewArticulo
end
object eNoComisionable: TcxDBCheckBox
Left = 103
- Top = 109
+ Top = 136
Caption = 'Art'#237'culo no comisionable'
DataBinding.DataField = 'COMISIONABLE'
DataBinding.DataSource = dsViewArticulo
@@ -116,11 +117,11 @@ inherited frViewArticulo: TfrViewArticulo
StyleFocused.LookAndFeel.NativeStyle = True
StyleHot.LookAndFeel.Kind = lfStandard
StyleHot.LookAndFeel.NativeStyle = True
- TabOrder = 4
+ TabOrder = 5
Width = 144
end
object eImagen: TcxImage
- Left = 437
+ Left = 468
Top = 28
Properties.GraphicClassName = 'TJPEGImage'
Properties.ImmediatePost = True
@@ -137,7 +138,7 @@ inherited frViewArticulo: TfrViewArticulo
StyleFocused.LookAndFeel.NativeStyle = True
StyleHot.LookAndFeel.Kind = lfStandard
StyleHot.LookAndFeel.NativeStyle = True
- TabOrder = 6
+ TabOrder = 7
Height = 100
Width = 140
end
@@ -166,8 +167,8 @@ inherited frViewArticulo: TfrViewArticulo
Width = 162
end
inline frViewDatosYSeleccionProveedor1: TfrViewDatosYSeleccionProveedor
- Left = 219
- Top = 166
+ Left = 261
+ Top = 193
Width = 350
Height = 202
Font.Charset = DEFAULT_CHARSET
@@ -176,10 +177,10 @@ inherited frViewArticulo: TfrViewArticulo
Font.Name = 'Tahoma'
Font.Style = []
ParentFont = False
- TabOrder = 12
+ TabOrder = 13
ReadOnly = False
- ExplicitLeft = 219
- ExplicitTop = 166
+ ExplicitLeft = 261
+ ExplicitTop = 193
inherited dxLayoutControl1: TdxLayoutControl
inherited edtNIFCIF: TcxDBTextEdit
ExplicitWidth = 562
@@ -201,7 +202,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
@@ -213,12 +214,12 @@ inherited frViewArticulo: TfrViewArticulo
StyleDisabled.LookAndFeel.NativeStyle = True
StyleFocused.LookAndFeel.NativeStyle = True
StyleHot.LookAndFeel.NativeStyle = True
- TabOrder = 7
+ TabOrder = 8
Width = 86
end
object ePrecioCoste: TcxDBCurrencyEdit
Left = 103
- Top = 193
+ Top = 220
DataBinding.DataField = 'PRECIO_COSTE'
DataBinding.DataSource = dsViewArticulo
Properties.Alignment.Horz = taRightJustify
@@ -233,12 +234,12 @@ inherited frViewArticulo: TfrViewArticulo
StyleFocused.LookAndFeel.NativeStyle = True
StyleHot.LookAndFeel.Kind = lfStandard
StyleHot.LookAndFeel.NativeStyle = True
- TabOrder = 8
+ TabOrder = 9
Width = 86
end
object eDescuento: TcxDBSpinEdit
Left = 103
- Top = 220
+ Top = 247
DataBinding.DataField = 'DESCUENTO'
DataBinding.DataSource = dsViewArticulo
Properties.Alignment.Horz = taRightJustify
@@ -256,12 +257,12 @@ inherited frViewArticulo: TfrViewArticulo
StyleFocused.LookAndFeel.NativeStyle = True
StyleHot.LookAndFeel.Kind = lfStandard
StyleHot.LookAndFeel.NativeStyle = True
- TabOrder = 9
+ TabOrder = 10
Width = 86
end
object ePrecioNeto: TcxDBCurrencyEdit
Left = 103
- Top = 247
+ Top = 274
DataBinding.DataField = 'PRECIO_NETO'
DataBinding.DataSource = dsViewArticulo
Enabled = False
@@ -281,12 +282,12 @@ inherited frViewArticulo: TfrViewArticulo
StyleFocused.TextColor = clWindowText
StyleHot.LookAndFeel.Kind = lfStandard
StyleHot.LookAndFeel.NativeStyle = True
- TabOrder = 10
+ TabOrder = 11
Width = 86
end
object ePrecioPorte: TcxDBCurrencyEdit
Left = 103
- Top = 274
+ Top = 301
DataBinding.DataField = 'PRECIO_PORTE'
DataBinding.DataSource = dsViewArticulo
Properties.Alignment.Horz = taRightJustify
@@ -301,11 +302,11 @@ inherited frViewArticulo: TfrViewArticulo
StyleFocused.LookAndFeel.NativeStyle = True
StyleHot.LookAndFeel.Kind = lfStandard
StyleHot.LookAndFeel.NativeStyle = True
- TabOrder = 11
+ TabOrder = 12
Width = 86
end
object cbNoInventariable: TcxDBCheckBox
- Left = 259
+ Left = 253
Top = 109
Caption = 'Art'#237'culo no inventariable'
DataBinding.DataField = 'INVENTARIABLE'
@@ -325,11 +326,11 @@ inherited frViewArticulo: TfrViewArticulo
StyleFocused.LookAndFeel.NativeStyle = True
StyleHot.LookAndFeel.Kind = lfStandard
StyleHot.LookAndFeel.NativeStyle = True
- TabOrder = 5
+ TabOrder = 6
Width = 144
end
object cbUnidadMedida: TcxDBComboBox
- Left = 292
+ Left = 307
Top = 82
DataBinding.DataField = 'UNIDAD_MEDIDA'
DataBinding.DataSource = dsViewArticulo
@@ -352,6 +353,30 @@ inherited frViewArticulo: TfrViewArticulo
TabOrder = 3
Width = 164
end
+ object cbFabricante: TcxDBComboBox
+ Left = 103
+ Top = 109
+ DataBinding.DataField = 'FABRICANTE'
+ DataBinding.DataSource = dsViewArticulo
+ Properties.DropDownRows = 16
+ Properties.ImmediatePost = True
+ Properties.OnInitPopup = cbFabricantePropertiesInitPopup
+ Properties.OnValidate = cbFabricantePropertiesValidate
+ 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 = 4
+ Width = 127
+ end
object dxLayoutControlArticuloGroup_Root: TdxLayoutGroup
ShowCaption = False
Hidden = True
@@ -413,12 +438,23 @@ inherited frViewArticulo: TfrViewArticulo
Hidden = True
LayoutDirection = ldHorizontal
ShowBorder = False
- object dxLayoutControlArticuloItem1: TdxLayoutItem
- AutoAligns = [aaVertical]
- AlignHorz = ahClient
- Caption = ' '
- Control = eNoComisionable
- ControlOptions.ShowBorder = False
+ object dxLayoutControlArticuloGroup10: TdxLayoutGroup
+ ShowCaption = False
+ Hidden = True
+ ShowBorder = False
+ object dxLayoutControlArticuloItem10: TdxLayoutItem
+ Caption = 'Fabricante:'
+ Control = cbFabricante
+ ControlOptions.ShowBorder = False
+ end
+ object dxLayoutControlArticuloItem1: TdxLayoutItem
+ AutoAligns = [aaVertical]
+ AlignHorz = ahClient
+ Caption = ' '
+ Visible = False
+ Control = eNoComisionable
+ ControlOptions.ShowBorder = False
+ end
end
object dxLayoutControlArticuloItem7: TdxLayoutItem
AutoAligns = [aaVertical]
diff --git a/Source/Modulos/Articulos/Views/uViewArticulo.pas b/Source/Modulos/Articulos/Views/uViewArticulo.pas
index 4edfc60a..8872c8cf 100644
--- a/Source/Modulos/Articulos/Views/uViewArticulo.pas
+++ b/Source/Modulos/Articulos/Views/uViewArticulo.pas
@@ -10,7 +10,7 @@ uses
cxDBEdit, dxLayoutControl, cxCheckBox, PngSpeedButton, cxImage, ActnList,
ImgList, PngImageList, cxGraphics, cxMaskEdit, cxDropDownEdit,
uFamiliasController, uViewDatosYSeleccionProveedor, cxSpinEdit, cxCurrencyEdit,
- uArticulosController, uUnidadesMedidaController, uDAInterfaces;
+ uArticulosController, uUnidadesMedidaController, uFabricantesController, uDAInterfaces;
type
IViewArticulo = interface(IViewBase)
@@ -74,6 +74,9 @@ type
dxLayoutControlArticuloItem9: TdxLayoutItem;
cbUnidadMedida: TcxDBComboBox;
dxLayoutControlArticuloGroup9: TdxLayoutGroup;
+ dxLayoutControlArticuloItem10: TdxLayoutItem;
+ cbFabricante: TcxDBComboBox;
+ dxLayoutControlArticuloGroup10: TdxLayoutGroup;
procedure actEliminarExecute(Sender: TObject);
procedure actAnadirExecute(Sender: TObject);
procedure cbFamiliaPropertiesInitPopup(Sender: TObject);
@@ -86,12 +89,16 @@ type
procedure cbUnidadMedidaPropertiesInitPopup(Sender: TObject);
procedure cbUnidadMedidaPropertiesValidate(Sender: TObject;
var DisplayValue: Variant; var ErrorText: TCaption; var Error: Boolean);
+ procedure cbFabricantePropertiesInitPopup(Sender: TObject);
+ procedure cbFabricantePropertiesValidate(Sender: TObject;
+ var DisplayValue: Variant; var ErrorText: TCaption; var Error: Boolean);
private
procedure CargarImagen;
procedure SalvarImagen;
protected
FFamiliasController: IFamiliasController;
FUnidadesController: IUnidadesMedidaController;
+ FFabricantesController: IFabricantesController;
FController: IArticulosController;
FArticulo: IBizArticulo;
function GetArticulo: IBizArticulo;
@@ -108,7 +115,7 @@ implementation
uses
uDataModuleArticulos, uSistemaFunc, uBizFamilias, uBizContactos,
- uBizUnidadesMedida;
+ uBizUnidadesMedida, uBizFabricantes;
{$R *.dfm}
@@ -156,6 +163,55 @@ begin
end;}
end;
+procedure TfrViewArticulo.cbFabricantePropertiesInitPopup(Sender: TObject);
+begin
+ inherited;
+ with cbFabricante.Properties.Items do
+ begin
+ if (Count = 0) then
+ begin
+ ShowHourglassCursor;
+ BeginUpdate;
+ try
+ Clear;
+ AddStrings(FFabricantesController.DarListaFabricantes);
+ finally
+ EndUpdate;
+ HideHourglassCursor;
+ end;
+ end;
+ end;
+end;
+
+procedure TfrViewArticulo.cbFabricantePropertiesValidate(Sender: TObject;
+ var DisplayValue: Variant; var ErrorText: TCaption; var Error: Boolean);
+var
+ AFabricantes : IBizFabricante;
+begin
+ inherited;
+ with (Sender as TcxDBComboBox) do
+ begin
+ if (Length(DisplayValue) > 0) and (DisplayValue <> FArticulo.FAMILIA) then
+ if Properties.LookupItems.IndexOf(DisplayValue) < 0 then
+ begin
+ ShowHourglassCursor;
+ Properties.LookupItems.BeginUpdate;
+ AFabricantes := FFabricantesController.BuscarTodos;
+ AFabricantes.DataTable.Active := True;
+ try
+ FFabricantesController.Anadir(AFabricantes);
+ AFabricantes.DESCRIPCION := DisplayValue;
+ FFabricantesController.Guardar(AFabricantes);
+ Properties.LookupItems.Add(DisplayValue);
+ finally
+ Properties.LookupItems.EndUpdate;
+ HideHourglassCursor;
+ AFabricantes := NIL;
+ end;
+ end;
+ end;
+end;
+
procedure TfrViewArticulo.cbFamiliaPropertiesInitPopup(Sender: TObject);
begin
inherited;
@@ -259,12 +315,14 @@ begin
inherited;
FFamiliasController := TFamiliasController.Create;
FUnidadesController := TUnidadesMedidaController.Create;
+ FFabricantesController := TFabricantesController.Create;
end;
procedure TfrViewArticulo.CustomViewDestroy(Sender: TObject);
begin
FFamiliasController := Nil;
FUnidadesController := NIL;
+ FFabricantesController := NIL;
ePrecioCoste.Properties.OnEditValueChanged := Nil;
eDescuento.Properties.OnEditValueChanged := Nil;
inherited;
diff --git a/Source/Modulos/Articulos/Views/uViewArticulos.dfm b/Source/Modulos/Articulos/Views/uViewArticulos.dfm
index 8da06b5a..549a5c3d 100644
--- a/Source/Modulos/Articulos/Views/uViewArticulos.dfm
+++ b/Source/Modulos/Articulos/Views/uViewArticulos.dfm
@@ -1,5 +1,8 @@
inherited frViewArticulos: TfrViewArticulos
+ Width = 539
+ ExplicitWidth = 539
inherited cxGrid: TcxGrid
+ Width = 539
inherited cxGridView: TcxGridDBTableView
OnMouseMove = cxGridViewMouseMove
DataController.KeyFieldNames = 'ID'
@@ -74,6 +77,10 @@ inherited frViewArticulos: TfrViewArticulos
BestFitMaxWidth = 60
Width = 60
end
+ object cxGridViewFABRICANTE: TcxGridDBColumn
+ Caption = 'Fabricante'
+ DataBinding.FieldName = 'FABRICANTE'
+ end
object cxGridViewDESCRIPCION: TcxGridDBColumn
Caption = 'Descripci'#243'n'
DataBinding.FieldName = 'DESCRIPCION'
@@ -139,8 +146,10 @@ inherited frViewArticulos: TfrViewArticulos
end
end
inherited frViewFiltroBase1: TfrViewFiltroBase
+ Width = 539
inherited TBXDockablePanel1: TTBXDockablePanel
inherited dxLayoutControl1: TdxLayoutControl
+ Width = 539
inherited txtFiltroTodo: TcxTextEdit
ExplicitWidth = 273
Width = 273
@@ -150,16 +159,26 @@ inherited frViewArticulos: TfrViewArticulos
Width = 121
end
inherited edtFechaFinFiltro: TcxDateEdit
+ Left = 335
+ ExplicitLeft = 335
ExplicitWidth = 121
Width = 121
end
end
+ inherited TBXAlignmentPanel1: TTBXAlignmentPanel
+ Width = 539
+ inherited tbxBotones: TTBXToolbar
+ Width = 529
+ end
+ end
end
end
inherited pnlAgrupaciones: TTBXDockablePanel
Visible = True
inherited TBXAlignmentPanel1: TTBXAlignmentPanel
+ Width = 539
inherited TBXToolbar1: TTBXToolbar
+ Width = 529
object TBXSeparatorItem1: TTBXSeparatorItem
end
object TBXItem3: TTBXItem
@@ -170,6 +189,11 @@ inherited frViewArticulos: TfrViewArticulos
object TBXItem2: TTBXItem
Action = actProveedor
end
+ object TBXSeparatorItem3: TTBXSeparatorItem
+ end
+ object TBXItem4: TTBXItem
+ Action = actFabricante
+ end
end
end
end
@@ -192,6 +216,11 @@ inherited frViewArticulos: TfrViewArticulos
OnExecute = actProveedorExecute
OnUpdate = actProveedorUpdate
end
+ object actFabricante: TAction
+ Caption = 'Fabricante'
+ OnExecute = actFabricanteExecute
+ OnUpdate = actFabricanteUpdate
+ end
end
inherited PngImageList10: TPngImageList
Left = 320
diff --git a/Source/Modulos/Articulos/Views/uViewArticulos.pas b/Source/Modulos/Articulos/Views/uViewArticulos.pas
index c7cba095..1cec7bd8 100644
--- a/Source/Modulos/Articulos/Views/uViewArticulos.pas
+++ b/Source/Modulos/Articulos/Views/uViewArticulos.pas
@@ -38,6 +38,10 @@ type
TBXSeparatorItem2: TTBXSeparatorItem;
cxGridViewINVENTARIABLE: TcxGridDBColumn;
cxGridViewUNIDAD_MEDIDA: TcxGridDBColumn;
+ cxGridViewFABRICANTE: TcxGridDBColumn;
+ TBXItem4: TTBXItem;
+ TBXSeparatorItem3: TTBXSeparatorItem;
+ actFabricante: TAction;
procedure cxGridViewIDCustomDrawCell(
Sender: TcxCustomGridTableView; ACanvas: TcxCanvas;
AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean);
@@ -46,6 +50,8 @@ type
procedure actFamiliaExecute(Sender: TObject);
procedure actFamiliaUpdate(Sender: TObject);
procedure cxGridViewMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);
+ procedure actFabricanteExecute(Sender: TObject);
+ procedure actFabricanteUpdate(Sender: TObject);
protected
FArticulos: IBizArticulo;
function GetArticulos: IBizArticulo; virtual;
@@ -80,6 +86,26 @@ begin
end;
+procedure TfrViewArticulos.actFabricanteExecute(Sender: TObject);
+begin
+ if (cxGridViewFABRICANTE.GroupIndex < 0) then
+ begin
+ cxGridViewFABRICANTE.GroupIndex := cxGridView.GroupedColumnCount;
+ cxGridViewFABRICANTE.Visible := False;
+ end
+ else
+ begin
+ cxGridViewFABRICANTE.GroupIndex := -1;
+ cxGridViewFABRICANTE.Visible := True;
+ end;
+end;
+
+procedure TfrViewArticulos.actFabricanteUpdate(Sender: TObject);
+begin
+ inherited;
+ (Sender as TAction).Checked := not (cxGridViewFABRICANTE.GroupIndex < 0);
+end;
+
procedure TfrViewArticulos.actFamiliaExecute(Sender: TObject);
begin
if (cxGridViewFAMILIA.GroupIndex < 0) then
diff --git a/Source/Modulos/Fabricantes/Controller/Fabricantes_controller.dpk b/Source/Modulos/Fabricantes/Controller/Fabricantes_controller.dpk
new file mode 100644
index 00000000..1b2cbf4f
--- /dev/null
+++ b/Source/Modulos/Fabricantes/Controller/Fabricantes_controller.dpk
@@ -0,0 +1,40 @@
+package Fabricantes_controller;
+
+{$R *.res}
+{$ALIGN 8}
+{$ASSERTIONS ON}
+{$BOOLEVAL OFF}
+{$DEBUGINFO ON}
+{$EXTENDEDSYNTAX ON}
+{$IMPORTEDDATA ON}
+{$IOCHECKS ON}
+{$LOCALSYMBOLS ON}
+{$LONGSTRINGS ON}
+{$OPENSTRINGS ON}
+{$OPTIMIZATION ON}
+{$OVERFLOWCHECKS OFF}
+{$RANGECHECKS OFF}
+{$REFERENCEINFO ON}
+{$SAFEDIVIDE OFF}
+{$STACKFRAMES OFF}
+{$TYPEDADDRESS OFF}
+{$VARSTRINGCHECKS ON}
+{$WRITEABLECONST OFF}
+{$MINENUMSIZE 1}
+{$IMAGEBASE $400000}
+{$IMPLICITBUILD ON}
+
+requires
+ rtl,
+ vcl,
+ Base,
+ GUIBase,
+ ApplicationBase,
+ Fabricantes_data,
+ Fabricantes_model;
+
+contains
+ uFabricantesController in 'uFabricantesController.pas',
+ uIEditorFabricantes in 'View\uIEditorFabricantes.pas';
+
+end.
diff --git a/Source/Modulos/Fabricantes/Controller/Fabricantes_controller.dproj b/Source/Modulos/Fabricantes/Controller/Fabricantes_controller.dproj
new file mode 100644
index 00000000..541542e3
--- /dev/null
+++ b/Source/Modulos/Fabricantes/Controller/Fabricantes_controller.dproj
@@ -0,0 +1,543 @@
+
+
+
+ {7f80f8aa-6912-4714-986d-aed73035472b}
+ Fabricantes_controller.dpk
+ Debug
+ AnyCPU
+ DCC32
+ ..\..\..\..\Output\Debug\Cliente\Fabricantes_controller.bpl
+
+
+ 7.0
+ False
+ False
+ 0
+ .\
+ .\
+ .\
+ ..\..\..\..\Output\Release\Cliente
+ ..\..\Lib
+ ..\..\..\Lib;..\..\Lib
+ ..\..\..\Lib;..\..\Lib
+ ..\..\..\Lib;..\..\Lib
+ ..\..\..\Lib;..\..\Lib
+ RELEASE
+
+
+ 7.0
+ .\
+ .\
+ .\
+ ..\..\..\..\Output\Debug\Cliente
+ ..\..\Lib
+ ..\..\..\Lib;..\..\Lib
+ ..\..\..\Lib;..\..\Lib
+ ..\..\..\Lib;..\..\Lib
+ ..\..\..\Lib;..\..\Lib
+
+
+ Delphi.Personality
+ Package
+
+FalseTrueFalseTrueFalseFalseTrueFalse1000FalseFalseFalseFalseFalse308212521.0.0.01.0.0.0Fabricantes_controller.dpk
+
+
+
+
+ MainSource
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Source/Modulos/Fabricantes/Controller/Fabricantes_controller.identcache b/Source/Modulos/Fabricantes/Controller/Fabricantes_controller.identcache
new file mode 100644
index 00000000..4d39f165
Binary files /dev/null and b/Source/Modulos/Fabricantes/Controller/Fabricantes_controller.identcache differ
diff --git a/Source/Modulos/Fabricantes/Controller/Fabricantes_controller.res b/Source/Modulos/Fabricantes/Controller/Fabricantes_controller.res
new file mode 100644
index 00000000..1641339f
Binary files /dev/null and b/Source/Modulos/Fabricantes/Controller/Fabricantes_controller.res differ
diff --git a/Source/Modulos/Fabricantes/Controller/View/uIEditorFabricantes.pas b/Source/Modulos/Fabricantes/Controller/View/uIEditorFabricantes.pas
new file mode 100644
index 00000000..b62b1ece
--- /dev/null
+++ b/Source/Modulos/Fabricantes/Controller/View/uIEditorFabricantes.pas
@@ -0,0 +1,23 @@
+unit uIEditorFabricantes;
+
+interface
+
+uses
+ uEditorDBBase, uBizFabricantes, uFabricantesController;
+
+type
+ IEditorFabricantes = interface(IEditorDBBase)
+ ['{1DD6E573-CCD8-4443-9AC3-378CF63EB639}']
+ function GetFabricantes: IBizFabricante;
+ procedure SetFabricantes(const Value: IBizFabricante);
+ property Fabricantes: IBizFabricante read GetFabricantes write SetFabricantes;
+
+ function GetController : IFabricantesController;
+ procedure SetController (const Value : IFabricantesController);
+ property Controller : IFabricantesController read GetController write SetController;
+ end;
+
+
+implementation
+
+end.
diff --git a/Source/Modulos/Fabricantes/Controller/uFabricantesController.pas b/Source/Modulos/Fabricantes/Controller/uFabricantesController.pas
new file mode 100644
index 00000000..510060c8
--- /dev/null
+++ b/Source/Modulos/Fabricantes/Controller/uFabricantesController.pas
@@ -0,0 +1,234 @@
+unit uFabricantesController;
+
+interface
+
+
+uses
+ Classes, SysUtils, uDADataTable, uControllerBase, uEditorDBItem,
+ uIDataModuleFabricantes, uBizFabricantes;
+
+type
+ IFabricantesController = interface(IObservador)
+ ['{8D56360B-0AAA-41FA-9C48-90C586B07E37}']
+ function BuscarTodos: IBizFabricante;
+ procedure VerTodos(AFabricantes: IBizFabricante);
+ procedure Anadir(AFabricante : IBizFabricante);
+ function Eliminar(AFabricante : IBizFabricante): Boolean;
+ function Guardar(AFabricante : IBizFabricante): Boolean;
+ procedure DescartarCambios(AFabricante : IBizFabricante);
+ function Localizar(AFabricantes: IBizFabricante; ADescripcion:String): Boolean;
+ function DarListaFabricantes: TStringList;
+ end;
+
+ TFabricantesController = class(TObservador, IFabricantesController)
+ protected
+ FDataModule : IDataModuleFabricantes;
+
+ procedure RecibirAviso(ASujeto: ISujeto; ADataTable: IDAStronglyTypedDataTable); override;
+ function CreateEditor(const AName : String; const IID: TGUID; out Intf): Boolean;
+
+ function ValidarAlmacen(AFabricante: IBizFabricante): 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(AFabricante : IBizFabricante): Boolean;
+ function Guardar(AFabricante : IBizFabricante): Boolean;
+ procedure DescartarCambios(AFabricante : IBizFabricante); virtual;
+ procedure Anadir(AFabricante : IBizFabricante);
+ function BuscarTodos: IBizFabricante;
+ procedure VerTodos(AFabricantes: IBizFabricante);
+ function Localizar(AFabricantes: IBizFabricante; ADescripcion:String): Boolean;
+ function DarListaFabricantes: TStringList;
+ end;
+
+implementation
+
+uses
+ cxControls, DB, uEditorRegistryUtils, schFabricantesClient_Intf,
+ uIEditorFabricantes, uDataModuleFabricantes,
+ uDAInterfaces, uDataTableUtils,
+ uDateUtils, uROTypes, DateUtils, Controls, Windows;
+
+{ TFabricantesController }
+
+procedure TFabricantesController.Anadir(AFabricante: IBizFabricante);
+begin
+ AFabricante.Insert;
+end;
+
+procedure TFabricantesController.AsignarDataModule;
+begin
+ FDataModule := TDataModuleFabricantes.Create(Nil);
+end;
+
+function TFabricantesController.BuscarTodos: IBizFabricante;
+begin
+ Result := FDataModule.GetItems;
+end;
+
+constructor TFabricantesController.Create;
+begin
+ inherited;
+ AsignarDataModule;
+end;
+
+function TFabricantesController.CreateEditor(const AName: String; const IID: TGUID; out Intf): Boolean;
+begin
+ Result := Supports(EditorRegistry.CreateEditor(AName), IID, Intf);
+end;
+
+function TFabricantesController.DarListaFabricantes: TStringList;
+var
+ AFabricantes: IBizFabricante;
+begin
+ AFabricantes := BuscarTodos;
+ AFabricantes.DataTable.Active := True;
+ Result := TStringList.Create;
+ try
+ with Result do
+ begin
+ AFabricantes.DataTable.First;
+ while not AFabricantes.DataTable.EOF do
+ begin
+ Add(AFabricantes.DESCRIPCION);
+ AFabricantes.DataTable.Next;
+ end;
+ end;
+ finally
+ AFabricantes := NIL;
+ end;
+end;
+
+procedure TFabricantesController.DescartarCambios(AFabricante: IBizFabricante);
+begin
+ if not Assigned(AFabricante) then
+ raise Exception.Create ('Almacen no asignado');
+
+ ShowHourglassCursor;
+ try
+ if (AFabricante.State in dsEditModes) then
+ AFabricante.Cancel;
+
+ AFabricante.DataTable.CancelUpdates;
+ finally
+ HideHourglassCursor;
+ end;
+end;
+
+destructor TFabricantesController.Destroy;
+begin
+ FDataModule := Nil;
+ inherited;
+end;
+
+function TFabricantesController.ValidarAlmacen(AFabricante: IBizFabricante): Boolean;
+begin
+//
+end;
+
+procedure TFabricantesController.ValidarObjetos;
+begin
+//
+end;
+
+procedure TFabricantesController.VerTodos(AFabricantes: IBizFabricante);
+var
+ AEditor : IEditorFabricantes;
+begin
+ AEditor := NIL;
+ ShowHourglassCursor;
+ try
+ CreateEditor('EditorFabricantes', IEditorFabricantes, AEditor);
+ if Assigned(AEditor) then
+ with AEditor do
+ begin
+ Controller := Self; //OJO ORDEN MUY IMPORTANTE
+ Fabricantes := AFabricantes;
+ ShowModal;
+ Release;
+ end;
+ finally
+ AEditor := NIL;
+ HideHourglassCursor;
+ end;
+end;
+
+function TFabricantesController.Eliminar(AFabricante: IBizFabricante): Boolean;
+begin
+ Result := False;
+
+ if not Assigned(AFabricante) then
+ raise Exception.Create ('Almacen no asignada');
+
+ ShowHourglassCursor;
+ try
+ if (AFabricante.State in dsEditModes) then
+ AFabricante.Cancel;
+
+ AFabricante.Delete;
+ AFabricante.DataTable.ApplyUpdates;
+ HideHourglassCursor;
+ Result := True;
+ finally
+ HideHourglassCursor;
+ end;
+end;
+
+procedure TFabricantesController.RecibirAviso(ASujeto: ISujeto; ADataTable: IDAStronglyTypedDataTable);
+begin
+ inherited;
+//
+end;
+
+function TFabricantesController.Guardar(AFabricante: IBizFabricante): Boolean;
+begin
+ Result := False;
+
+ if not Assigned(AFabricante) then
+ raise Exception.Create ('Almacen no asignada');
+
+ ValidarObjetos;
+
+ if ValidarAlmacen(AFabricante) then
+ begin
+ ShowHourglassCursor;
+ try
+ if (AFabricante.DataTable.State in dsEditModes) then
+ AFabricante.DataTable.Post;
+
+ AFabricante.DataTable.ApplyUpdates;
+
+ Result := True;
+ finally
+ HideHourglassCursor;
+ end;
+ end;
+end;
+
+function TFabricantesController.Localizar(AFabricantes: IBizFabricante; ADescripcion: String): Boolean;
+begin
+ Result := True;
+ ShowHourglassCursor;
+ try
+ with AFabricantes.DataTable do
+ begin
+ DisableControls;
+ First;
+ if not Locate(fld_FabricantesDESCRIPCION, ADescripcion, []) then
+ Result := False;
+ EnableControls;
+ end;
+ finally
+ HideHourglassCursor;
+ end;
+end;
+
+end.
diff --git a/Source/Modulos/Fabricantes/Controller/uIEditorFabricantes.dcu b/Source/Modulos/Fabricantes/Controller/uIEditorFabricantes.dcu
new file mode 100644
index 00000000..b884a65d
Binary files /dev/null and b/Source/Modulos/Fabricantes/Controller/uIEditorFabricantes.dcu differ
diff --git a/Source/Modulos/Fabricantes/Data/Fabricantes_data.dpk b/Source/Modulos/Fabricantes/Data/Fabricantes_data.dpk
new file mode 100644
index 00000000..f9adc2e9
--- /dev/null
+++ b/Source/Modulos/Fabricantes/Data/Fabricantes_data.dpk
@@ -0,0 +1,47 @@
+package Fabricantes_data;
+
+{$R *.res}
+{$ALIGN 8}
+{$ASSERTIONS ON}
+{$BOOLEVAL OFF}
+{$DEBUGINFO ON}
+{$EXTENDEDSYNTAX ON}
+{$IMPORTEDDATA ON}
+{$IOCHECKS ON}
+{$LOCALSYMBOLS ON}
+{$LONGSTRINGS ON}
+{$OPENSTRINGS ON}
+{$OPTIMIZATION ON}
+{$OVERFLOWCHECKS OFF}
+{$RANGECHECKS OFF}
+{$REFERENCEINFO ON}
+{$SAFEDIVIDE OFF}
+{$STACKFRAMES OFF}
+{$TYPEDADDRESS OFF}
+{$VARSTRINGCHECKS ON}
+{$WRITEABLECONST OFF}
+{$MINENUMSIZE 1}
+{$IMAGEBASE $400000}
+{$IMPLICITBUILD ON}
+
+requires
+ rtl,
+ vcl,
+ Base,
+ GUIBase,
+ ApplicationBase,
+ dbrtl,
+ RemObjects_Core_D11,
+ DataAbstract_Core_D11,
+ vcldb,
+ dsnap,
+ adortl,
+ cxLibraryD11,
+ dxThemeD11,
+ dxGDIPlusD11,
+ Fabricantes_model;
+
+contains
+ uDataModuleFabricantes in 'uDataModuleFabricantes.pas' {DataModuleFabricantes};
+
+end.
diff --git a/Source/Modulos/Fabricantes/Data/Fabricantes_data.dproj b/Source/Modulos/Fabricantes/Data/Fabricantes_data.dproj
new file mode 100644
index 00000000..dac126b0
--- /dev/null
+++ b/Source/Modulos/Fabricantes/Data/Fabricantes_data.dproj
@@ -0,0 +1,554 @@
+
+
+
+ {55d06c67-fc74-4d88-8787-801dee872bb3}
+ Fabricantes_data.dpk
+ Debug
+ AnyCPU
+ DCC32
+ ..\..\..\..\Output\Debug\Cliente\Fabricantes_data.bpl
+
+
+ 7.0
+ False
+ False
+ 0
+ 3
+ .\
+ .\
+ .\
+ ..\..\..\..\Output\Debug\Cliente
+ ..\..\Lib
+ ..\..\..\Lib;..\..\Lib
+ ..\..\..\Lib;..\..\Lib
+ ..\..\..\Lib;..\..\Lib
+ ..\..\..\Lib;..\..\Lib
+ RELEASE
+
+
+ 7.0
+ 3
+ .\
+ .\
+ .\
+ ..\..\..\..\Output\Debug\Cliente
+ ..\..\Lib
+ ..\..\..\Lib;..\..\Lib
+ ..\..\..\Lib;..\..\Lib
+ ..\..\..\Lib;..\..\Lib
+ ..\..\..\Lib;..\..\Lib
+
+
+ Delphi.Personality
+ Package
+
+FalseTrueFalseTrueFalseFalseTrueFalse1000FalseFalseFalseFalseFalse308212521.0.0.01.0.0.0Fabricantes_data.dpk
+
+
+
+
+ MainSource
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Source/Modulos/Fabricantes/Data/Fabricantes_data.drc b/Source/Modulos/Fabricantes/Data/Fabricantes_data.drc
new file mode 100644
index 00000000..2d164a3f
--- /dev/null
+++ b/Source/Modulos/Fabricantes/Data/Fabricantes_data.drc
@@ -0,0 +1,17 @@
+/* VER185
+ Generated by the CodeGear Delphi Pascal Compiler
+ because -GD or --drc was supplied to the compiler.
+
+ This file contains compiler-generated resources that
+ were bound to the executable.
+ If this file is empty, then no compiler-generated
+ resources were bound to the produced executable.
+*/
+
+STRINGTABLE
+BEGIN
+END
+
+/* C:\Codigo Tecsitel\Source\Modulos\Fabricantes\Data\uDataModuleFabricantes.DFM */
+/* C:\Codigo Tecsitel\Source\Modulos\Fabricantes\Data\Fabricantes_data.res */
+/* C:\Codigo Tecsitel\Source\Modulos\Fabricantes\Data\Fabricantes_data.drf */
diff --git a/Source/Modulos/Fabricantes/Data/Fabricantes_data.identcache b/Source/Modulos/Fabricantes/Data/Fabricantes_data.identcache
new file mode 100644
index 00000000..2a0edd5e
Binary files /dev/null and b/Source/Modulos/Fabricantes/Data/Fabricantes_data.identcache differ
diff --git a/Source/Modulos/Fabricantes/Data/Fabricantes_data.res b/Source/Modulos/Fabricantes/Data/Fabricantes_data.res
new file mode 100644
index 00000000..1641339f
Binary files /dev/null and b/Source/Modulos/Fabricantes/Data/Fabricantes_data.res differ
diff --git a/Source/Modulos/Fabricantes/Data/uDataModuleFabricantes.dfm b/Source/Modulos/Fabricantes/Data/uDataModuleFabricantes.dfm
new file mode 100644
index 00000000..c7d85035
--- /dev/null
+++ b/Source/Modulos/Fabricantes/Data/uDataModuleFabricantes.dfm
@@ -0,0 +1,61 @@
+inherited DataModuleFabricantes: TDataModuleFabricantes
+ OnCreate = DAClientDataModuleCreate
+ Height = 165
+ Width = 409
+ object RORemoteService: TRORemoteService
+ Message = dmConexion.ROMessage
+ Channel = dmConexion.ROChannel
+ ServiceName = 'srvFabricantes'
+ Left = 48
+ Top = 24
+ end
+ object rda_Fabricantes: TDARemoteDataAdapter
+ GetSchemaCall.RemoteService = RORemoteService
+ GetDataCall.RemoteService = RORemoteService
+ UpdateDataCall.RemoteService = RORemoteService
+ GetScriptsCall.RemoteService = RORemoteService
+ RemoteService = RORemoteService
+ DataStreamer = Bin2DataStreamer
+ Left = 203
+ Top = 23
+ end
+ object Bin2DataStreamer: TDABin2DataStreamer
+ Left = 48
+ Top = 96
+ end
+ object tbl_Fabricantes: TDAMemDataTable
+ RemoteUpdatesOptions = []
+ Fields = <
+ item
+ Name = 'ID'
+ DataType = datAutoInc
+ GeneratorName = 'GEN_FABRICANTES_ID'
+ Required = True
+ ServerAutoRefresh = True
+ DictionaryEntry = 'Fabricantes_ID'
+ InPrimaryKey = True
+ end
+ item
+ Name = 'DESCRIPCION'
+ DataType = datString
+ Size = 255
+ DisplayLabel = 'Descripci'#195#179'n'
+ DictionaryEntry = 'Fabricantes_DESCRIPCION'
+ end>
+ Params = <>
+ StreamingOptions = [soDisableEventsWhileStreaming]
+ RemoteDataAdapter = rda_Fabricantes
+ DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch]
+ MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates]
+ LogicalName = 'Fabricantes'
+ IndexDefs = <>
+ Left = 312
+ Top = 32
+ end
+ object ds_Fabricantes: TDADataSource
+ DataSet = tbl_Fabricantes.Dataset
+ DataTable = tbl_Fabricantes
+ Left = 312
+ Top = 88
+ end
+end
diff --git a/Source/Modulos/Fabricantes/Data/uDataModuleFabricantes.pas b/Source/Modulos/Fabricantes/Data/uDataModuleFabricantes.pas
new file mode 100644
index 00000000..4da6a597
--- /dev/null
+++ b/Source/Modulos/Fabricantes/Data/uDataModuleFabricantes.pas
@@ -0,0 +1,112 @@
+{
+===============================================================================
+ Copyright (©) 2007. Rodax Software.
+===============================================================================
+ Los contenidos de este fichero son propiedad de Rodax Software titular del
+ copyright. Este fichero sólo podrá ser copiado, distribuido y utilizado,
+ en su totalidad o en parte, con el permiso escrito de Rodax Software, o de
+ acuerdo con los términos y condiciones establecidas en el acuerdo/contrato
+ bajo el que se suministra.
+ -----------------------------------------------------------------------------
+ Web: www.rodax-software.com
+===============================================================================
+ Fecha primera versión:
+ Versión actual: 1.0.0
+ Fecha versión actual:
+===============================================================================
+ Modificaciones:
+
+ Fecha Comentarios
+ ---------------------------------------------------------------------------
+===============================================================================
+}
+
+unit uDataModuleFabricantes;
+
+interface
+
+uses
+ SysUtils, Classes, DB, uDADataTable, uDABINAdapter,
+ uDAScriptingProvider, uDACDSDataTable, uROWinInetHttpChannel, uROTypes,
+ uRORemoteService, uROClient, uROBinMessage,
+ uDADesigntimeCall,
+
+ uIDataModuleFabricantes, uBizFabricantes, uDADataStreamer, uDARemoteDataAdapter,
+ uDAInterfaces, uRODynamicRequest, uDABin2DataStreamer, uDAMemDataTable,
+ uDataModuleBase;
+
+type
+ TDataModuleFabricantes = class(TDataModuleBase, IDataModuleFabricantes)
+ RORemoteService: TRORemoteService;
+ rda_Fabricantes: TDARemoteDataAdapter;
+ Bin2DataStreamer: TDABin2DataStreamer;
+ tbl_Fabricantes: TDAMemDataTable;
+ ds_Fabricantes: TDADataSource;
+ procedure DAClientDataModuleCreate(Sender: TObject);
+ public
+ function GetItems: IBizFabricante;
+ function GetItem(const ID : Integer) : IBizFabricante;
+ function NewItem : IBizFabricante;
+ end;
+
+implementation
+
+{$R *.DFM}
+
+uses
+ FactuGES_Intf, uDataModuleConexion, uDataTableUtils, cxControls,
+ schFabricantesClient_Intf;
+
+{ TDataModuleFabricantes }
+
+procedure TDataModuleFabricantes.DAClientDataModuleCreate(Sender: TObject);
+begin
+ RORemoteService.Channel := dmConexion.Channel;
+ RORemoteService.Message := dmConexion.Message;
+end;
+
+function TDataModuleFabricantes.GetItems: IBizFabricante;
+var
+ AFabricante : TDAMemDataTable;
+begin
+ ShowHourglassCursor;
+ try
+ AFabricante := CloneDataTable(tbl_Fabricantes);
+ AFabricante.BusinessRulesID := BIZ_CLIENT_Fabricante;
+
+ Result := (AFabricante as IBizFabricante);
+ finally
+ HideHourglassCursor;
+ end;
+end;
+
+function TDataModuleFabricantes.NewItem: IBizFabricante;
+begin
+ Result := GetItem(ID_NULO)
+end;
+
+function TDataModuleFabricantes.GetItem(const ID: Integer): IBizFabricante;
+var
+ Condicion: TDAWhereExpression;
+begin
+ ShowHourglassCursor;
+ try
+ Result := Self.GetItems;
+
+ with Result.DataTable.DynamicWhere do
+ begin
+ // (ID = :ID)
+ Condicion := NewBinaryExpression(NewField('', fld_FabricantesID), NewConstant(ID, datInteger), dboEqual);
+
+ if IsEmpty then
+ Expression := Condicion
+ else
+ Expression := NewBinaryExpression(Expression, Condicion, dboAnd);
+ end;
+
+ finally
+ HideHourglassCursor;
+ end;
+end;
+
+end.
diff --git a/Source/Modulos/Fabricantes/Fabricantes_Group.groupproj b/Source/Modulos/Fabricantes/Fabricantes_Group.groupproj
new file mode 100644
index 00000000..5d85f2cb
--- /dev/null
+++ b/Source/Modulos/Fabricantes/Fabricantes_Group.groupproj
@@ -0,0 +1,114 @@
+
+
+ {033276d8-059f-49be-9cc2-3276e536a74d}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Default.Personality
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Source/Modulos/Fabricantes/Model/Data/uIDataModuleFabricantes.pas b/Source/Modulos/Fabricantes/Model/Data/uIDataModuleFabricantes.pas
new file mode 100644
index 00000000..009221d1
--- /dev/null
+++ b/Source/Modulos/Fabricantes/Model/Data/uIDataModuleFabricantes.pas
@@ -0,0 +1,42 @@
+{
+===============================================================================
+ Copyright (©) 2007. Rodax Software.
+===============================================================================
+ Los contenidos de este fichero son propiedad de Rodax Software titular del
+ copyright. Este fichero sólo podrá ser copiado, distribuido y utilizado,
+ en su totalidad o en parte, con el permiso escrito de Rodax Software, o de
+ acuerdo con los términos y condiciones establecidas en el acuerdo/contrato
+ bajo el que se suministra.
+ -----------------------------------------------------------------------------
+ Web: www.rodax-software.com
+===============================================================================
+ Fecha primera versión:
+ Versión actual: 1.0.0
+ Fecha versión actual:
+===============================================================================
+ Modificaciones:
+
+ Fecha Comentarios
+ ---------------------------------------------------------------------------
+===============================================================================
+}
+
+unit uIDataModuleFabricantes;
+
+interface
+
+uses
+ uBizFabricantes;
+
+type
+ IDataModuleFabricantes = interface
+ ['{15D57E95-7964-482D-858D-EE49699B708A}']
+ function GetItems: IBizFabricante;
+ function GetItem(const ID : Integer) : IBizFabricante;
+ function NewItem : IBizFabricante;
+
+ end;
+
+implementation
+
+end.
diff --git a/Source/Modulos/Fabricantes/Model/Fabricantes_model.dpk b/Source/Modulos/Fabricantes/Model/Fabricantes_model.dpk
new file mode 100644
index 00000000..9e026450
--- /dev/null
+++ b/Source/Modulos/Fabricantes/Model/Fabricantes_model.dpk
@@ -0,0 +1,46 @@
+package Fabricantes_model;
+
+{$R *.res}
+{$ALIGN 8}
+{$ASSERTIONS ON}
+{$BOOLEVAL OFF}
+{$DEBUGINFO ON}
+{$EXTENDEDSYNTAX ON}
+{$IMPORTEDDATA ON}
+{$IOCHECKS ON}
+{$LOCALSYMBOLS ON}
+{$LONGSTRINGS ON}
+{$OPENSTRINGS ON}
+{$OPTIMIZATION ON}
+{$OVERFLOWCHECKS OFF}
+{$RANGECHECKS OFF}
+{$REFERENCEINFO ON}
+{$SAFEDIVIDE OFF}
+{$STACKFRAMES OFF}
+{$TYPEDADDRESS OFF}
+{$VARSTRINGCHECKS ON}
+{$WRITEABLECONST OFF}
+{$MINENUMSIZE 1}
+{$IMAGEBASE $400000}
+{$IMPLICITBUILD ON}
+
+requires
+ rtl,
+ vcl,
+ Base,
+ GUIBase,
+ ApplicationBase,
+ dbrtl,
+ RemObjects_Core_D11,
+ DataAbstract_Core_D11,
+ vcldb,
+ dsnap,
+ adortl;
+
+contains
+ uIDataModuleFabricantes in 'Data\uIDataModuleFabricantes.pas',
+ schFabricantesServer_Intf in 'schFabricantesServer_Intf.pas',
+ schFabricantesClient_Intf in 'schFabricantesClient_Intf.pas',
+ uBizFabricantes in 'uBizFabricantes.pas';
+
+end.
diff --git a/Source/Modulos/Fabricantes/Model/Fabricantes_model.dproj b/Source/Modulos/Fabricantes/Model/Fabricantes_model.dproj
new file mode 100644
index 00000000..1b9fe8ce
--- /dev/null
+++ b/Source/Modulos/Fabricantes/Model/Fabricantes_model.dproj
@@ -0,0 +1,551 @@
+
+
+
+ {82fe21d8-609d-444d-879e-4d9e1c291607}
+ Fabricantes_model.dpk
+ Debug
+ AnyCPU
+ DCC32
+ ..\..\..\..\Output\Debug\Cliente\Fabricantes_model.bpl
+
+
+ 7.0
+ False
+ False
+ 0
+ 3
+ .\
+ .\
+ .\
+ ..\..\..\..\Output\Release\Cliente
+ ..\..\Lib
+ ..\..\..\Lib;..\..\Lib
+ ..\..\..\Lib;..\..\Lib
+ ..\..\..\Lib;..\..\Lib
+ ..\..\..\Lib;..\..\Lib
+ RELEASE
+
+
+ 7.0
+ 3
+ .\
+ .\
+ .\
+ ..\..\..\..\Output\Debug\Cliente
+ ..\..\Lib
+ ..\..\..\Lib;..\..\Lib
+ ..\..\..\Lib;..\..\Lib
+ ..\..\..\Lib;..\..\Lib
+ ..\..\..\Lib;..\..\Lib
+
+
+ Delphi.Personality
+ Package
+
+FalseTrueFalseTrueFalseFalseTrueFalse1000FalseFalseFalseFalseFalse308212521.0.0.01.0.0.0Fabricantes_model.dpk
+
+
+
+
+ MainSource
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Source/Modulos/Fabricantes/Model/Fabricantes_model.drc b/Source/Modulos/Fabricantes/Model/Fabricantes_model.drc
new file mode 100644
index 00000000..438fae7e
--- /dev/null
+++ b/Source/Modulos/Fabricantes/Model/Fabricantes_model.drc
@@ -0,0 +1,16 @@
+/* VER185
+ Generated by the CodeGear Delphi Pascal Compiler
+ because -GD or --drc was supplied to the compiler.
+
+ This file contains compiler-generated resources that
+ were bound to the executable.
+ If this file is empty, then no compiler-generated
+ resources were bound to the produced executable.
+*/
+
+STRINGTABLE
+BEGIN
+END
+
+/* C:\Codigo Tecsitel\Source\Modulos\Fabricantes\Model\Fabricantes_model.res */
+/* C:\Codigo Tecsitel\Source\Modulos\Fabricantes\Model\Fabricantes_model.drf */
diff --git a/Source/Modulos/Fabricantes/Model/Fabricantes_model.identcache b/Source/Modulos/Fabricantes/Model/Fabricantes_model.identcache
new file mode 100644
index 00000000..01fe2dc7
Binary files /dev/null and b/Source/Modulos/Fabricantes/Model/Fabricantes_model.identcache differ
diff --git a/Source/Modulos/Fabricantes/Model/Fabricantes_model.res b/Source/Modulos/Fabricantes/Model/Fabricantes_model.res
new file mode 100644
index 00000000..86c94e6a
Binary files /dev/null and b/Source/Modulos/Fabricantes/Model/Fabricantes_model.res differ
diff --git a/Source/Modulos/Fabricantes/Model/schFabricantesClient_Intf.dcu b/Source/Modulos/Fabricantes/Model/schFabricantesClient_Intf.dcu
new file mode 100644
index 00000000..f499649e
Binary files /dev/null and b/Source/Modulos/Fabricantes/Model/schFabricantesClient_Intf.dcu differ
diff --git a/Source/Modulos/Fabricantes/Model/schFabricantesClient_Intf.pas b/Source/Modulos/Fabricantes/Model/schFabricantesClient_Intf.pas
new file mode 100644
index 00000000..f042c502
--- /dev/null
+++ b/Source/Modulos/Fabricantes/Model/schFabricantesClient_Intf.pas
@@ -0,0 +1,134 @@
+unit schFabricantesClient_Intf;
+
+interface
+
+uses
+ Classes, DB, SysUtils, uROClasses, uDADataTable, FmtBCD, uROXMLIntf;
+
+const
+ { Data table rules ids
+ Feel free to change them to something more human readable
+ but make sure they are unique in the context of your application }
+ RID_Fabricantes = '{24607721-C2E1-4EFD-B898-307AC1462048}';
+
+ { Data table names }
+ nme_Fabricantes = 'Fabricantes';
+
+ { Fabricantes fields }
+ fld_FabricantesID = 'ID';
+ fld_FabricantesDESCRIPCION = 'DESCRIPCION';
+
+ { Fabricantes field indexes }
+ idx_FabricantesID = 0;
+ idx_FabricantesDESCRIPCION = 1;
+
+type
+ { IFabricantes }
+ IFabricantes = interface(IDAStronglyTypedDataTable)
+ ['{6018A1F9-F72E-46E2-A71E-C34CA806D20E}']
+ { 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;
+
+ { TFabricantesDataTableRules }
+ TFabricantesDataTableRules = class(TDADataTableRules, IFabricantes)
+ 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;
+
+{ TFabricantesDataTableRules }
+constructor TFabricantesDataTableRules.Create(aDataTable: TDADataTable);
+begin
+ inherited;
+end;
+
+destructor TFabricantesDataTableRules.Destroy;
+begin
+ inherited;
+end;
+
+function TFabricantesDataTableRules.GetIDValue: Integer;
+begin
+ result := DataTable.Fields[idx_FabricantesID].AsInteger;
+end;
+
+procedure TFabricantesDataTableRules.SetIDValue(const aValue: Integer);
+begin
+ DataTable.Fields[idx_FabricantesID].AsInteger := aValue;
+end;
+
+function TFabricantesDataTableRules.GetIDIsNull: boolean;
+begin
+ result := DataTable.Fields[idx_FabricantesID].IsNull;
+end;
+
+procedure TFabricantesDataTableRules.SetIDIsNull(const aValue: Boolean);
+begin
+ if aValue then
+ DataTable.Fields[idx_FabricantesID].AsVariant := Null;
+end;
+
+function TFabricantesDataTableRules.GetDESCRIPCIONValue: String;
+begin
+ result := DataTable.Fields[idx_FabricantesDESCRIPCION].AsString;
+end;
+
+procedure TFabricantesDataTableRules.SetDESCRIPCIONValue(const aValue: String);
+begin
+ DataTable.Fields[idx_FabricantesDESCRIPCION].AsString := aValue;
+end;
+
+function TFabricantesDataTableRules.GetDESCRIPCIONIsNull: boolean;
+begin
+ result := DataTable.Fields[idx_FabricantesDESCRIPCION].IsNull;
+end;
+
+procedure TFabricantesDataTableRules.SetDESCRIPCIONIsNull(const aValue: Boolean);
+begin
+ if aValue then
+ DataTable.Fields[idx_FabricantesDESCRIPCION].AsVariant := Null;
+end;
+
+
+initialization
+ RegisterDataTableRules(RID_Fabricantes, TFabricantesDataTableRules);
+
+end.
diff --git a/Source/Modulos/Fabricantes/Model/schFabricantesServer_Intf.pas b/Source/Modulos/Fabricantes/Model/schFabricantesServer_Intf.pas
new file mode 100644
index 00000000..2b114411
--- /dev/null
+++ b/Source/Modulos/Fabricantes/Model/schFabricantesServer_Intf.pas
@@ -0,0 +1,143 @@
+unit schFabricantesServer_Intf;
+
+interface
+
+uses
+ Classes, DB, SysUtils, uROClasses, uDADataTable, uDABusinessProcessor, FmtBCD, uROXMLIntf, schFabricantesClient_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_FabricantesDelta = '{4EA345C5-9E36-44DF-8403-CBEE4967A1B5}';
+
+type
+ { IFabricantesDelta }
+ IFabricantesDelta = interface(IFabricantes)
+ ['{4EA345C5-9E36-44DF-8403-CBEE4967A1B5}']
+ { Property getters and setters }
+ function GetOldIDValue : Integer;
+ function GetOldDESCRIPCIONValue : String;
+
+ { Properties }
+ property OldID : Integer read GetOldIDValue;
+ property OldDESCRIPCION : String read GetOldDESCRIPCIONValue;
+ end;
+
+ { TFabricantesBusinessProcessorRules }
+ TFabricantesBusinessProcessorRules = class(TDABusinessProcessorRules, IFabricantes, IFabricantesDelta)
+ 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;
+
+{ TFabricantesBusinessProcessorRules }
+constructor TFabricantesBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor);
+begin
+ inherited;
+end;
+
+destructor TFabricantesBusinessProcessorRules.Destroy;
+begin
+ inherited;
+end;
+
+function TFabricantesBusinessProcessorRules.GetIDValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_FabricantesID];
+end;
+
+function TFabricantesBusinessProcessorRules.GetIDIsNull: Boolean;
+begin
+ result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_FabricantesID]);
+end;
+
+function TFabricantesBusinessProcessorRules.GetOldIDValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_FabricantesID];
+end;
+
+function TFabricantesBusinessProcessorRules.GetOldIDIsNull: Boolean;
+begin
+ result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_FabricantesID]);
+end;
+
+procedure TFabricantesBusinessProcessorRules.SetIDValue(const aValue: Integer);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_FabricantesID] := aValue;
+end;
+
+procedure TFabricantesBusinessProcessorRules.SetIDIsNull(const aValue: Boolean);
+begin
+ if aValue then
+ BusinessProcessor.CurrentChange.NewValueByName[fld_FabricantesID] := Null;
+end;
+
+function TFabricantesBusinessProcessorRules.GetDESCRIPCIONValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_FabricantesDESCRIPCION];
+end;
+
+function TFabricantesBusinessProcessorRules.GetDESCRIPCIONIsNull: Boolean;
+begin
+ result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_FabricantesDESCRIPCION]);
+end;
+
+function TFabricantesBusinessProcessorRules.GetOldDESCRIPCIONValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_FabricantesDESCRIPCION];
+end;
+
+function TFabricantesBusinessProcessorRules.GetOldDESCRIPCIONIsNull: Boolean;
+begin
+ result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_FabricantesDESCRIPCION]);
+end;
+
+procedure TFabricantesBusinessProcessorRules.SetDESCRIPCIONValue(const aValue: String);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_FabricantesDESCRIPCION] := aValue;
+end;
+
+procedure TFabricantesBusinessProcessorRules.SetDESCRIPCIONIsNull(const aValue: Boolean);
+begin
+ if aValue then
+ BusinessProcessor.CurrentChange.NewValueByName[fld_FabricantesDESCRIPCION] := Null;
+end;
+
+
+initialization
+ RegisterBusinessProcessorRules(RID_FabricantesDelta, TFabricantesBusinessProcessorRules);
+
+end.
diff --git a/Source/Modulos/Fabricantes/Model/uBizFabricantes.pas b/Source/Modulos/Fabricantes/Model/uBizFabricantes.pas
new file mode 100644
index 00000000..a15eea6e
--- /dev/null
+++ b/Source/Modulos/Fabricantes/Model/uBizFabricantes.pas
@@ -0,0 +1,141 @@
+{
+===============================================================================
+ Copyright (©) 2007. Rodax Software.
+===============================================================================
+ Los contenidos de este fichero son propiedad de Rodax Software titular del
+ copyright. Este fichero sólo podrá ser copiado, distribuido y utilizado,
+ en su totalidad o en parte, con el permiso escrito de Rodax Software, o de
+ acuerdo con los términos y condiciones establecidas en el acuerdo/contrato
+ bajo el que se suministra.
+ -----------------------------------------------------------------------------
+ Web: www.rodax-software.com
+===============================================================================
+ Fecha primera versión:
+ Versión actual: 1.0.0
+ Fecha versión actual:
+===============================================================================
+ Modificaciones:
+
+ Fecha Comentarios
+ ---------------------------------------------------------------------------
+===============================================================================
+}
+
+unit uBizFabricantes;
+
+interface
+
+uses
+ uDAInterfaces, uDADataTable, uDBSelectionListUtils, schFabricantesClient_Intf;
+
+const
+ BIZ_CLIENT_Fabricante = 'Client.Fabricante';
+
+type
+ IBizFabricante = interface(IFabricantes)
+ ['{A82736D7-55AC-475F-8B08-98832EB6A1B1}']
+ function EsNuevo : Boolean;
+
+ // Descomentar esto si hay clases detalles
+ // procedure SetDetalles(AValue : IBizDetalles);
+ // function GetDetalles : IBizDetalles;
+ // property Detalles : IBizDetalles read GetDetalles write SetDetalles;
+ end;
+
+ TBizFabricante = class(TFabricantesDataTableRules, IBizFabricante, ISeleccionable)
+ protected
+ FSeleccionableInterface : ISeleccionable;
+
+ // Descomentar esto si hay clases detalles
+ // FDetalles : IBizDetalles;
+ // FDetallesLink : TDADataSource;
+ // procedure SetDetalles(AValue : IBizDetalles);
+ // function GetDetalles : IBizDetalles;
+
+ procedure OnNewRecord(Sender: TDADataTable); override;
+ procedure AfterOpen(Sender: TDADataTable); override;
+ public
+ procedure IniciarValoresFabricanteNuevo;
+ function EsNuevo : Boolean;
+ constructor Create(aDataTable: TDADataTable); override;
+ destructor Destroy; override;
+
+ property SeleccionableInterface : ISeleccionable
+ read FSeleccionableInterface
+ write FSeleccionableInterface
+ implements ISeleccionable;
+
+ // Descomentar esto si hay clases detalles
+ // property Detalles : IBizDetalles read GetDetalles write SetDetalles;
+ end;
+
+implementation
+
+{ TBizFabricante }
+
+uses
+ SysUtils, uDataTableUtils;
+
+// Descomentar esto si hay clases detalles
+// function TBizFabricante.GetDetalles: IBizDetalles;
+// begin
+// Result := FDetalles;
+// end;
+
+// Descomentar esto si hay clases detalles
+// procedure TBizFabricante.SetDetalles(AValue: IBizDetalles);
+// begin
+// FDetalles := AValue;
+// EnlazarMaestroDetalle(FDetallesLink, FDetalles);
+// end;
+
+procedure TBizFabricante.AfterOpen(Sender: TDADataTable);
+begin
+ inherited;
+ DataTable.Sort([fld_FabricantesDESCRIPCION], [sdAscending]);
+end;
+
+constructor TBizFabricante.Create(aDataTable: TDADataTable);
+begin
+ inherited;
+ // Descomentar esto si hay clases detalles
+ // FDetallesLink := TDADataSource.Create(NIL);
+ // FDetallesLink.DataTable := aDataTable;
+
+ FSeleccionableInterface := TSeleccionable.Create(aDataTable);
+end;
+
+destructor TBizFabricante.Destroy;
+begin
+ // Descomentar esto si hay clases detalles
+ // FDetalles := NIL;
+ // FreeAndNIL(FDetallesLink);
+
+ FSeleccionableInterface := NIL;
+ inherited;
+end;
+
+function TBizFabricante.EsNuevo: Boolean;
+begin
+ Result := (ID < 0);
+end;
+
+procedure TBizFabricante.IniciarValoresFabricanteNuevo;
+begin
+ //
+end;
+
+procedure TBizFabricante.OnNewRecord(Sender: TDADataTable);
+begin
+ inherited;
+ ID := GetRecNo; // -1, -2, -3...
+ IniciarValoresFabricanteNuevo;
+end;
+
+initialization
+ RegisterDataTableRules(BIZ_CLIENT_Fabricante, TBizFabricante);
+
+finalization
+
+end.
+
diff --git a/Source/Modulos/Fabricantes/Plugin/Fabricantes_plugin.dpk b/Source/Modulos/Fabricantes/Plugin/Fabricantes_plugin.dpk
new file mode 100644
index 00000000..bafb968c
--- /dev/null
+++ b/Source/Modulos/Fabricantes/Plugin/Fabricantes_plugin.dpk
@@ -0,0 +1,41 @@
+package Fabricantes_plugin;
+
+{$R *.res}
+{$ALIGN 8}
+{$ASSERTIONS ON}
+{$BOOLEVAL OFF}
+{$DEBUGINFO ON}
+{$EXTENDEDSYNTAX ON}
+{$IMPORTEDDATA ON}
+{$IOCHECKS ON}
+{$LOCALSYMBOLS ON}
+{$LONGSTRINGS ON}
+{$OPENSTRINGS ON}
+{$OPTIMIZATION ON}
+{$OVERFLOWCHECKS OFF}
+{$RANGECHECKS OFF}
+{$REFERENCEINFO ON}
+{$SAFEDIVIDE OFF}
+{$STACKFRAMES OFF}
+{$TYPEDADDRESS OFF}
+{$VARSTRINGCHECKS ON}
+{$WRITEABLECONST OFF}
+{$MINENUMSIZE 1}
+{$IMAGEBASE $400000}
+{$IMPLICITBUILD ON}
+
+requires
+ rtl,
+ vcl,
+ PluginSDK_D10R,
+ Base,
+ GUIBase,
+ ApplicationBase,
+ Fabricantes_view,
+ Fabricantes_controller,
+ Fabricantes_model;
+
+contains
+ uPluginFabricantes in 'uPluginFabricantes.pas' {PluginFabricantes};
+
+end.
diff --git a/Source/Modulos/Fabricantes/Plugin/Fabricantes_plugin.dproj b/Source/Modulos/Fabricantes/Plugin/Fabricantes_plugin.dproj
new file mode 100644
index 00000000..504c3050
--- /dev/null
+++ b/Source/Modulos/Fabricantes/Plugin/Fabricantes_plugin.dproj
@@ -0,0 +1,546 @@
+
+
+
+ {139324a2-0c57-446d-aebd-edd9578e22fd}
+ Fabricantes_plugin.dpk
+ Debug
+ AnyCPU
+ DCC32
+ ..\..\..\..\Output\Debug\Cliente\Fabricantes_plugin.bpl
+
+
+ 7.0
+ False
+ False
+ 0
+ .\
+ .\
+ .\
+ ..\..\..\..\Output\Release\Cliente
+ ..\..\Lib
+ ..\..\..\Lib;..\..\Lib
+ ..\..\..\Lib;..\..\Lib
+ ..\..\..\Lib;..\..\Lib
+ ..\..\..\Lib;..\..\Lib
+ RELEASE
+
+
+ 7.0
+ .\
+ .\
+ .\
+ ..\..\..\..\Output\Debug\Cliente
+ ..\..\Lib
+ ..\..\..\Lib;..\..\Lib
+ ..\..\..\Lib;..\..\Lib
+ ..\..\..\Lib;..\..\Lib
+ ..\..\..\Lib;..\..\Lib
+
+
+ Delphi.Personality
+ Package
+
+FalseTrueFalseTrueFalseFalseTrueFalse1000FalseFalseFalseFalseFalse308212521.0.0.01.0.0.0Fabricantes_plugin.dpk
+
+
+
+
+ MainSource
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Source/Modulos/Fabricantes/Plugin/Fabricantes_plugin.identcache b/Source/Modulos/Fabricantes/Plugin/Fabricantes_plugin.identcache
new file mode 100644
index 00000000..11abdbd3
Binary files /dev/null and b/Source/Modulos/Fabricantes/Plugin/Fabricantes_plugin.identcache differ
diff --git a/Source/Modulos/Fabricantes/Plugin/Fabricantes_plugin.res b/Source/Modulos/Fabricantes/Plugin/Fabricantes_plugin.res
new file mode 100644
index 00000000..1641339f
Binary files /dev/null and b/Source/Modulos/Fabricantes/Plugin/Fabricantes_plugin.res differ
diff --git a/Source/Modulos/Fabricantes/Plugin/uPluginFabricantes.dfm b/Source/Modulos/Fabricantes/Plugin/uPluginFabricantes.dfm
new file mode 100644
index 00000000..0ea4d57b
--- /dev/null
+++ b/Source/Modulos/Fabricantes/Plugin/uPluginFabricantes.dfm
@@ -0,0 +1,136 @@
+object PluginFabricantes: TPluginFabricantes
+ OldCreateOrder = True
+ DefaultAction = actFabricantes
+ Description = 'Fabricantes'
+ ModuleMenu = MainMenu
+ ModuleName = 'Fabricantes'
+ SmallImages = SmallImages
+ LargeImages = LargeImages
+ Author = 'Rodax Software S.L.'
+ Version = '1.0.0'
+ Height = 234
+ Width = 459
+ object LargeImages: TPngImageList
+ Height = 24
+ Width = 24
+ PngImages = <
+ item
+ PngImage.Data = {
+ 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D
+ F8000000097048597300000B3A00000B3A01647F570D000002874944415478DA
+ B5944D68134114C7DF50C47E585BA2D0B095924095A51E4CA5CA2208D58BE9AD
+ 154F06CA565452A1A224E736F4165088F45222480881DE6C901EA4274F122FC9
+ 0A3DE450684C2FA188C4A6F9EA6EB2CE5BBBC36E13936CA40F1E339999FC7FFB
+ E63F3344555538CB20670EE864D1FA7AC2471B81E6384DD7C9B044739766C2EB
+ 15DE760C0804246349F18101A53438A83CE6790EC6C62E82D339C4268B451962
+ B1644B5053C0CACA0DF63B184C42A5D20399CC1736B6BC2C6A2004E8B9BD9DC6
+ 29FF6908317E7520E022B4EFA1DD18428E8E6428148E211CDE8DD3B9B993B5DA
+ BCDF3F6102944A0AA4523F1A20C4F8D50B0BEF2012798510D5E79BD0C4313736
+ B21ADC58E5E2E2559378B9FCB7CD660F80024853000642D6D65E3071CCADAD1C
+ 033C7BFE441DE55EC2FCBCA3411C7367A704767B85556102C8721DAAD59A49DC
+ 66EB856834A301425E507F2AD7A176E91E9CEF7B0A333323267145A9433E9F6F
+ 345914439B3E9F6796E32E306104A1389AB9B7F75B83B8875D50EBE761F36B11
+ F2E7EEC395D1D726F31D8E69AD32FD3FABAB115681872E7C8490C3C3636DF1FE
+ 7E8196DACF8EA60E79303205A4AA40F0130797C7DDF03EFC81E8772597EB7D83
+ 000C141704C16F344E83D0EEAC3EE676BB9B4286732E887EE321994A9B8E396E
+ 35027471F4A1E54DA65BA7FE0B623C5546006E992EDEF4A2E981860A3C2D5D0A
+ 811548DB9B6C14770922A43312843E8B5D43483BF14A4E82047D05A44A779590
+ 4EC47543AD7A6202B413EFD6786245BC1B08B12A6E1542961EDAD4E93BD7A047
+ FE0EF6BE7247E2ED2078D1F055665B74739257EFF2BFC03974D0B1782B087D91
+ E31430673279EAF62DB52E172C89378344221F9978C331FD9F40086D4CE2187F
+ 00FADE10E28785B5A40000000049454E44AE426082}
+ Name = 'PngImage0'
+ Background = clWindow
+ end>
+ Left = 232
+ Top = 16
+ Bitmap = {}
+ end
+ object ModuleActionList: TActionList
+ Images = SmallImages
+ Left = 40
+ Top = 72
+ object actFabricantes: TAction
+ Category = 'Datos'
+ Caption = 'Fabricantes'
+ ImageIndex = 0
+ OnExecute = actFabricantesExecute
+ end
+ end
+ object MainMenu: TMainMenu
+ Images = LargeImages
+ Left = 40
+ Top = 16
+ object Ventas1: TMenuItem
+ Caption = 'Datos'
+ object Fabricantes1: TMenuItem
+ Tag = 313
+ Action = actFabricantes
+ end
+ end
+ end
+ object SmallImages: TPngImageList
+ PngImages = <
+ item
+ PngImage.Data = {
+ 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
+ 61000000097048597300000B1300000B1301009A9C18000001604944415478DA
+ A5923F48C34014C6DF81B838A88B145DD22D20D8E8505737330A5D9CE4BA650C
+ 34739BEE0AE7E658B277A8939364B5A0C6A19231500417A14D177539EF1D5EB8
+ E64F1D3C7821B9F7BE1FDFFB08E19CC37F0E512FBE1FE9244FD465C9BCE7FBD6
+ 5529000FA58C33E60063B1005A04BFF1BEDBA550AF6F42BFFF5280C8A1C1C025
+ CA45ABB507C3E19B04FCDE75D04DAFD780F9FC4BC275880418C649E6220F5060
+ D735613A5DC81A8FD3AC4F946D6C4C261FD06CD62008926C40B4F8AC164930CE
+ A4E937DC3F8E6077E354BA4040470FCCB66D5186B4BAF56E814329C44904EC8E
+ CAFE6C6D013BDBEB08280D51C274C89949210C23081E4C787A8E899E49BB7DBD
+ 0CA882DC8ECEA558CF244942C0F00B00DC196D3B37D6D23A7AA895FF8112E3CE
+ 683BFA647F42489518773E68385E7E9D3C845489D5CE6599E810B24A5C166CFE
+ 3F918FA343935F1CC7A5E23C44D4AB487FBF900142AAC4ABCE0F9C32EE2C4B99
+ 4F200000000049454E44AE426082}
+ Name = 'PngImage0'
+ Background = clWindow
+ end>
+ PngOptions = [pngBlendOnDisabled, pngGrayscaleOnDisabled]
+ Left = 308
+ Top = 16
+ Bitmap = {}
+ end
+ object ExtraImages: TPngImageList
+ Height = 28
+ Width = 28
+ PngImages = <
+ item
+ PngImage.Data = {
+ 89504E470D0A1A0A0000000D494844520000001C0000001C0806000000720DDF
+ 94000000097048597300004E2000004E2001167D99DE000002C04944415478DA
+ E5D54D6813411400E0B788D816B1A5150CA99404AA2CF5E02AFE2C82503DA5B7
+ 14BD054A2A6A130F5549CE6DDA9BD0424A2F69041B42A517B1417A909E3C497A
+ 3129F49043A131BD8422129BE6A7CDCF3A6F935932C96E9AB0928B0F1E43B233
+ FBCD4CDE4C384992A093C1FD1F20C7712D0FF0F9C22ED2882487490AD5AFA324
+ F748861D0E71516BAC6CB50356B1059E37C2D0D025309B7B99E72B2BDB4D6155
+ D0E389D6EE7188E4278F47F85805A564B20BE2F16F4A879919BB0C67320525B7
+ B662F8C85D8F6A82B3B33795CF73733B0C5A1BA4AF8D346B6EF7080366B34588
+ 447E36A00A485E2A555E2070F425881E1F17209D3E05BF7F2F449E8DAB6D334E
+ D0E9BCC660B95CA54D240E81809C2A88C0E4E41204026F10955CAE1119C35C5F
+ 4FC893A9C75EBC7C260D1AA76162C2D48061EEEE66C160C82BAB6C0031105D5E
+ 7EA560989B9BC906D0EB00E957F10694061EC185EEE730367685C18AC532A452
+ 2966825353F739062C14CA70725262B0FEFE2E0806E30C8898C803947A78D8F8
+ 9E81D4F9C77075F02D534C26D3A8BC722CA8FDFD3F303F1F80D5D5D71590AC6A
+ C3E5B2598DC68B0A8430627400452926887652186BC09D14E1DD17235C1EB6C0
+ 7BFF078E1E1F52CD0B086220268AA29BAC7091AED04666F714D1A3A353B9D3C1
+ 419AEC7F8F72DE286AE913642C168F423E1985303901C16D1E7E4462CC96631D
+ 204831FC1D996381D58928E96BA5832C168B2A6AE5ED4D310AE216534CF31CD6
+ 86DDEE95B4D0BEA4A08969454B575B3354EDA8E8026981F8A25EF8176853B0B6
+ 1AB140BC5FEDBA514DB01EA30512CDEB5BA92AA885D102D1F39B368067617A0B
+ 89015BC5F4A00AB8E4E4DAC2CE42F176C17F1D4D70FAC98034FAE03A9C2BEC80
+ A13BD712D60C2577738880E39A206EE9ED5BBCF490FF0DE6DEC3B66F905A3410
+ F8AC8AA916CD9D7B77A57221DD16568B92461363C04E46C7C1BF0E73BFE74CCD
+ 6AD20000000049454E44AE426082}
+ Name = 'PngImage0'
+ Background = clWindow
+ end>
+ Left = 232
+ Top = 80
+ Bitmap = {}
+ end
+end
diff --git a/Source/Modulos/Fabricantes/Plugin/uPluginFabricantes.pas b/Source/Modulos/Fabricantes/Plugin/uPluginFabricantes.pas
new file mode 100644
index 00000000..4b6b4b85
--- /dev/null
+++ b/Source/Modulos/Fabricantes/Plugin/uPluginFabricantes.pas
@@ -0,0 +1,73 @@
+unit uPluginFabricantes;
+
+interface
+
+uses
+ uModuleController, uInterfaces, uHostManager, Menus, Classes, ActnList,
+ ImgList, Controls, PngImageList;
+
+type
+ IMCFabricantes = interface(IInterface)
+ ['{F7C8960F-5ECE-492B-8D6C-D068DAA66E6C}']
+ end;
+
+ TPluginFabricantes = class(TModuleController, IMCFabricantes)
+ actFabricantes: TAction;
+ ExtraImages: TPngImageList;
+ LargeImages: TPngImageList;
+ MainMenu: TMainMenu;
+ ModuleActionList: TActionList;
+ SmallImages: TPngImageList;
+ Ventas1: TMenuItem;
+ Fabricantes1: TMenuItem;
+ procedure actFabricantesExecute(Sender: TObject);
+ public
+ constructor Create(AOwner: TComponent); override;
+ destructor Destroy; override;
+ end;
+
+implementation
+
+{$R *.dfm}
+
+uses
+ Forms, Dialogs, SysUtils,
+ uFabricantesController, uBizFabricantes, uFabricantesViewRegister;
+
+function GetModule : TModuleController;
+begin
+ Result := TPluginFabricantes.Create(NIL);
+end;
+
+exports
+ GetModule name GET_MODULE_FUNC;
+
+procedure TPluginFabricantes.actFabricantesExecute(Sender: TObject);
+var
+ AFabricantesController : IFabricantesController;
+ AFabricantes : IBizFabricante;
+begin
+ AFabricantesController := TFabricantesController.Create;
+ AFabricantes := (AFabricantesController.BuscarTodos as IBizFabricante);
+ AFabricantesController.VerTodos(AFabricantes);
+end;
+
+constructor TPluginFabricantes.Create(AOwner: TComponent);
+begin
+ inherited;
+ uFabricantesViewRegister.RegisterViews;
+end;
+
+destructor TPluginFabricantes.Destroy;
+begin
+ uFabricantesViewRegister.UnregisterViews;
+ inherited;
+end;
+
+initialization
+ RegisterModuleClass(TPluginFabricantes);
+
+finalization
+ UnRegisterModuleClass(TPluginFabricantes);
+
+end.
diff --git a/Source/Modulos/Fabricantes/Servidor/srvFabricantes_Impl.dfm b/Source/Modulos/Fabricantes/Servidor/srvFabricantes_Impl.dfm
new file mode 100644
index 00000000..b8dcedaf
--- /dev/null
+++ b/Source/Modulos/Fabricantes/Servidor/srvFabricantes_Impl.dfm
@@ -0,0 +1,90 @@
+object srvFabricantes: TsrvFabricantes
+ OldCreateOrder = True
+ OnCreate = DARemoteServiceCreate
+ RequiresSession = True
+ SessionManager = dmServer.SessionManager
+ ServiceSchema = schFabricantes
+ ServiceDataStreamer = Bin2DataStreamer
+ ExportedDataTables = <>
+ BeforeAcquireConnection = DataAbstractServiceBeforeAcquireConnection
+ Height = 300
+ Width = 334
+ object Diagrams: TDADiagrams
+ Left = 150
+ Top = 88
+ DiagramData = ''#13#10''#13#10
+ end
+ object DataDictionary: TDADataDictionary
+ Fields = <
+ item
+ Name = 'Fabricantes_ID'
+ DataType = datAutoInc
+ GeneratorName = 'GEN_FABRICANTES_ID'
+ Required = True
+ DisplayLabel = 'ID'
+ ServerAutoRefresh = True
+ end
+ item
+ Name = 'Fabricantes_DESCRIPCION'
+ DataType = datString
+ Size = 255
+ DisplayLabel = 'Descripci'#243'n'
+ end>
+ Left = 150
+ Top = 24
+ end
+ object schFabricantes: TDASchema
+ ConnectionManager = dmServer.ConnectionManager
+ DataDictionary = DataDictionary
+ Diagrams = Diagrams
+ Datasets = <
+ item
+ Params = <>
+ Statements = <
+ item
+ Connection = 'IBX'
+ ConnectionType = 'Interbase'
+ Default = True
+ TargetTable = 'FABRICANTES'
+ StatementType = stAutoSQL
+ ColumnMappings = <
+ item
+ DatasetField = 'ID'
+ TableField = 'ID'
+ end
+ item
+ DatasetField = 'DESCRIPCION'
+ TableField = 'DESCRIPCION'
+ end>
+ end>
+ Name = 'Fabricantes'
+ Fields = <
+ item
+ Name = 'ID'
+ DataType = datAutoInc
+ GeneratorName = 'GEN_FABRICANTES_ID'
+ ServerAutoRefresh = True
+ DictionaryEntry = 'Fabricantes_ID'
+ InPrimaryKey = True
+ end
+ item
+ Name = 'DESCRIPCION'
+ DataType = datString
+ Size = 255
+ DictionaryEntry = 'Fabricantes_DESCRIPCION'
+ end>
+ end>
+ JoinDataTables = <>
+ UnionDataTables = <>
+ Commands = <>
+ RelationShips = <>
+ UpdateRules = <>
+ Version = 0
+ Left = 48
+ Top = 24
+ end
+ object Bin2DataStreamer: TDABin2DataStreamer
+ Left = 48
+ Top = 88
+ end
+end
diff --git a/Source/Modulos/Fabricantes/Servidor/srvFabricantes_Impl.pas b/Source/Modulos/Fabricantes/Servidor/srvFabricantes_Impl.pas
new file mode 100644
index 00000000..95920d50
--- /dev/null
+++ b/Source/Modulos/Fabricantes/Servidor/srvFabricantes_Impl.pas
@@ -0,0 +1,61 @@
+unit srvFabricantes_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
+ { TsrvFabricantes }
+ TsrvFabricantes = class(TDataAbstractService, IsrvFabricantes)
+ Diagrams: TDADiagrams;
+ Bin2DataStreamer: TDABin2DataStreamer;
+ schFabricantes: TDASchema;
+ DataDictionary: TDADataDictionary;
+ procedure DARemoteServiceCreate(Sender: TObject);
+ procedure DataAbstractServiceBeforeAcquireConnection(aSender: TObject;
+ var aConnectionName: string);
+ end;
+
+implementation
+
+{$R *.dfm}
+uses
+ {Generated:} FactuGES_Invk, uDataModuleServer, uDatabaseUtils;
+
+procedure Create_srvFabricantes(out anInstance : IUnknown);
+begin
+ anInstance := TsrvFabricantes.Create(NIL);
+end;
+
+{ srvFabricantes }
+procedure TsrvFabricantes.DARemoteServiceCreate(Sender: TObject);
+begin
+ SessionManager := dmServer.SessionManager;
+end;
+
+procedure TsrvFabricantes.DataAbstractServiceBeforeAcquireConnection(
+ aSender: TObject; var aConnectionName: string);
+begin
+ ConnectionName := dmServer.ConnectionName;
+end;
+
+initialization
+ TROClassFactory.Create('srvFabricantes', Create_srvFabricantes, TsrvFabricantes_Invoker);
+
+finalization
+
+end.
diff --git a/Source/Modulos/Fabricantes/Views/Fabricantes_view.dpk b/Source/Modulos/Fabricantes/Views/Fabricantes_view.dpk
new file mode 100644
index 00000000..2e2786de
--- /dev/null
+++ b/Source/Modulos/Fabricantes/Views/Fabricantes_view.dpk
@@ -0,0 +1,40 @@
+package Fabricantes_view;
+
+{$R *.res}
+{$ALIGN 8}
+{$ASSERTIONS ON}
+{$BOOLEVAL OFF}
+{$DEBUGINFO ON}
+{$EXTENDEDSYNTAX ON}
+{$IMPORTEDDATA ON}
+{$IOCHECKS ON}
+{$LOCALSYMBOLS ON}
+{$LONGSTRINGS ON}
+{$OPENSTRINGS ON}
+{$OPTIMIZATION ON}
+{$OVERFLOWCHECKS OFF}
+{$RANGECHECKS OFF}
+{$REFERENCEINFO ON}
+{$SAFEDIVIDE OFF}
+{$STACKFRAMES OFF}
+{$TYPEDADDRESS OFF}
+{$VARSTRINGCHECKS ON}
+{$WRITEABLECONST OFF}
+{$MINENUMSIZE 1}
+{$IMAGEBASE $400000}
+{$IMPLICITBUILD ON}
+
+requires
+ rtl,
+ vcl,
+ Base,
+ GUIBase,
+ ApplicationBase,
+ Fabricantes_model,
+ Fabricantes_controller;
+
+contains
+ uEditorFabricantes in 'uEditorFabricantes.pas' {fEditorFabricantes: TfEditorUnidadesMedida},
+ uFabricantesViewRegister in 'uFabricantesViewRegister.pas';
+
+end.
diff --git a/Source/Modulos/Fabricantes/Views/Fabricantes_view.dproj b/Source/Modulos/Fabricantes/Views/Fabricantes_view.dproj
new file mode 100644
index 00000000..e94547a5
--- /dev/null
+++ b/Source/Modulos/Fabricantes/Views/Fabricantes_view.dproj
@@ -0,0 +1,545 @@
+
+
+ {e3d36a6f-7004-4c89-9f3d-f2d77e386d1b}
+ Fabricantes_view.dpk
+ Debug
+ AnyCPU
+ DCC32
+ ..\..\..\..\Output\Debug\Cliente\Fabricantes_view.bpl
+
+
+ 7.0
+ False
+ False
+ 0
+ .\
+ .\
+ .\
+ ..\..\..\..\Output\Release\Cliente
+ ..\..\Lib
+ ..\..\..\Lib;..\..\Lib
+ ..\..\..\Lib;..\..\Lib
+ ..\..\..\Lib;..\..\Lib
+ ..\..\..\Lib;..\..\Lib
+ RELEASE
+
+
+ 7.0
+ .\
+ .\
+ .\
+ ..\..\..\..\Output\Debug\Cliente
+ ..\..\Lib
+ ..\..\..\Lib;..\..\Lib
+ ..\..\..\Lib;..\..\Lib
+ ..\..\..\Lib;..\..\Lib
+ ..\..\..\Lib;..\..\Lib
+
+
+ Delphi.Personality
+ Package
+
+FalseTrueFalseTrueFalseFalseTrueFalse1000FalseFalseFalseFalseFalse308212521.0.0.01.0.0.0Fabricantes_view.dpk
+
+
+
+
+ MainSource
+
+
+
+
+
+
+
+
+
+
+ TfEditorUnidadesMedida
+
+
+
+
+
diff --git a/Source/Modulos/Fabricantes/Views/Fabricantes_view.identcache b/Source/Modulos/Fabricantes/Views/Fabricantes_view.identcache
new file mode 100644
index 00000000..aa4822dc
Binary files /dev/null and b/Source/Modulos/Fabricantes/Views/Fabricantes_view.identcache differ
diff --git a/Source/Modulos/Fabricantes/Views/Fabricantes_view.res b/Source/Modulos/Fabricantes/Views/Fabricantes_view.res
new file mode 100644
index 00000000..1641339f
Binary files /dev/null and b/Source/Modulos/Fabricantes/Views/Fabricantes_view.res differ
diff --git a/Source/Modulos/Fabricantes/Views/uEditorFabricantes.dfm b/Source/Modulos/Fabricantes/Views/uEditorFabricantes.dfm
new file mode 100644
index 00000000..c82fd5a4
--- /dev/null
+++ b/Source/Modulos/Fabricantes/Views/uEditorFabricantes.dfm
@@ -0,0 +1,144 @@
+object fEditorFabricantes: TfEditorFabricantes
+ Left = 453
+ Top = 234
+ ActiveControl = ListaFabricantes
+ BorderIcons = [biSystemMenu]
+ BorderStyle = bsSingle
+ Caption = 'Administraci'#243'n de fabricantes'
+ 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 = 'Fabricantes'
+ object Label1: TLabel
+ Left = 10
+ Top = 12
+ Width = 147
+ Height = 13
+ Caption = 'Lista de fabricantes disponibles'
+ end
+ object Label2: TLabel
+ Left = 10
+ Top = 326
+ Width = 128
+ Height = 13
+ Caption = 'A'#241'adir un nuevo fabricante'
+ end
+ object Bevel1: TBevel
+ Left = 144
+ Top = 330
+ Width = 232
+ Height = 5
+ Shape = bsBottomLine
+ end
+ object eCategoria: TLabel
+ Left = 18
+ Top = 353
+ Width = 40
+ Height = 13
+ Caption = 'Nombre:'
+ end
+ object ListaFabricantes: TDBLookupListBox
+ Left = 8
+ Top = 31
+ Width = 262
+ Height = 277
+ KeyField = 'RecID'
+ ListField = 'DESCRIPCION'
+ ListSource = DADataSource
+ TabOrder = 0
+ end
+ object bEliminar: TButton
+ Left = 281
+ Top = 31
+ Width = 95
+ Height = 23
+ Action = actEliminar
+ TabOrder = 1
+ end
+ object editFabricante: TEdit
+ Left = 64
+ Top = 349
+ Width = 312
+ 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/Fabricantes/Views/uEditorFabricantes.pas b/Source/Modulos/Fabricantes/Views/uEditorFabricantes.pas
new file mode 100644
index 00000000..d0a12219
--- /dev/null
+++ b/Source/Modulos/Fabricantes/Views/uEditorFabricantes.pas
@@ -0,0 +1,181 @@
+{
+===============================================================================
+ Copyright (©) 2006. 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: 22-05-2006
+ Versión actual: 1.0.0
+ Fecha versión actual: 22-05-2006
+===============================================================================
+ Modificaciones:
+
+ Fecha Comentarios
+ ---------------------------------------------------------------------------
+===============================================================================
+}
+
+unit uEditorFabricantes;
+
+interface
+
+uses
+ Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
+ Dialogs, DB, StdCtrls, DBCtrls, uDADataTable, ActnList,
+ uIEditorFabricantes, uCustomEditor, uGUIBase, ExtCtrls,
+ ComCtrls, uBizFabricantes, uFabricantesController, uDAInterfaces;
+
+type
+ TfEditorFabricantes = class(TCustomEditor, IEditorFabricantes)
+ ActionList1: TActionList;
+ DADataSource: TDADataSource;
+ ListaFabricantes: 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;
+ editFabricante: 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
+ FFabricantes: IBizFabricante;
+ FController: IFabricantesController;
+ function GetFabricantes: IBizFabricante;
+ procedure SetFabricantes(const Value: IBizFabricante);
+ function GetController : IFabricantesController;
+ procedure SetController (const Value : IFabricantesController);
+ public
+ property Fabricantes: IBizFabricante read GetFabricantes write SetFabricantes;
+ property Controller : IFabricantesController read GetController write SetController;
+ end;
+
+
+implementation
+{$R *.dfm}
+
+{ TfEditorFabricantes }
+
+uses
+ uDialogUtils;
+
+function TfEditorFabricantes.GetController: IFabricantesController;
+begin
+ Result := FController;
+end;
+
+function TfEditorFabricantes.GetFabricantes: IBizFabricante;
+begin
+ Result := FFabricantes;
+end;
+
+procedure TfEditorFabricantes.SetController(const Value: IFabricantesController);
+begin
+ FController := Value;
+end;
+
+procedure TfEditorFabricantes.SetFabricantes(const Value: IBizFabricante);
+begin
+ FFabricantes := Value;
+ DADataSource.DataTable := (FFabricantes as IBizFabricante).DataTable;
+ DADataSource.DataTable.Open;
+end;
+
+procedure TfEditorFabricantes.actAnadirExecute(Sender: TObject);
+begin
+ if not FController.Localizar(Fabricantes, editFabricante.Text) then
+ begin
+ Fabricantes.Append;
+ Fabricantes.DESCRIPCION := editFabricante.Text;
+ Fabricantes.Post;
+ editFabricante.Clear;
+ ListaFabricantes.SetFocus;
+ end
+ else
+ ShowErrorMessage('Ya existe la unidad ' + editFabricante.Text,
+ 'Ya existe la unidad ''' + editFabricante.Text + ''' en la lista.');
+end;
+
+procedure TfEditorFabricantes.actEliminarExecute(Sender: TObject);
+begin
+ Fabricantes.Delete;
+ ListaFabricantes.SetFocus;
+end;
+
+procedure TfEditorFabricantes.actEliminarUpdate(Sender: TObject);
+begin
+ (Sender as TAction).Enabled := (FFabricantes.DataTable.RecordCount > 0) and
+ (Length(ListaFabricantes.SelectedItem) > 0);
+
+end;
+
+procedure TfEditorFabricantes.CustomEditorClose(Sender: TObject; var Action: TCloseAction);
+begin
+ FFabricantes := Nil;
+ FController := Nil;
+end;
+
+procedure TfEditorFabricantes.actAceptarExecute(Sender: TObject);
+begin
+ try
+ Fabricantes.DataTable.ApplyUpdates;
+ except
+ on E : Exception do begin
+ Fabricantes.DataTable.CancelUpdates;
+ ShowErrorMessage('Error al guardar cambios', 'Se ha producido un error grave', E);
+ exit;
+ end;
+ end;
+ actCerrar.Execute;
+end;
+
+procedure TfEditorFabricantes.actCancelarExecute(Sender: TObject);
+begin
+ Fabricantes.DataTable.CancelUpdates;
+ actCerrar.Execute;
+end;
+
+procedure TfEditorFabricantes.actCerrarExecute(Sender: TObject);
+begin
+ Close;
+end;
+
+procedure TfEditorFabricantes.actAnadirUpdate(Sender: TObject);
+begin
+ (Sender as TAction).Enabled := (Length(editFabricante.Text) > 0)
+end;
+
+procedure TfEditorFabricantes.FormShow(Sender: TObject);
+begin
+ if not FFabricantes.DataTable.Active then
+ FFabricantes.DataTable.Active := true;
+
+ FFabricantes.DataTable.Sort(['DESCRIPCION'], [sdAscending]);
+ EditFabricante.SetFocus;
+end;
+
+end.
diff --git a/Source/Modulos/Fabricantes/Views/uFabricantesViewRegister.pas b/Source/Modulos/Fabricantes/Views/uFabricantesViewRegister.pas
new file mode 100644
index 00000000..d1c389c0
--- /dev/null
+++ b/Source/Modulos/Fabricantes/Views/uFabricantesViewRegister.pas
@@ -0,0 +1,23 @@
+unit uFabricantesViewRegister;
+
+interface
+
+procedure RegisterViews;
+procedure UnregisterViews;
+
+implementation
+
+uses
+ uEditorRegistryUtils, uEditorFabricantes;
+
+procedure RegisterViews;
+begin
+ EditorRegistry.RegisterClass(TfEditorFabricantes, 'EditorFabricantes');
+end;
+
+procedure UnregisterViews;
+begin
+ EditorRegistry.UnRegisterClass(TfEditorFabricantes);
+end;
+
+end.
diff --git a/Source/Servicios/FactuGES.RODL b/Source/Servicios/FactuGES.RODL
index dc49ae00..8acb7b25 100644
--- a/Source/Servicios/FactuGES.RODL
+++ b/Source/Servicios/FactuGES.RODL
@@ -400,6 +400,15 @@
+
+
+
+
+
+
+
+
+
diff --git a/Source/Servicios/FactuGES_Intf.pas b/Source/Servicios/FactuGES_Intf.pas
index 5adef2ee..2565c334 100644
--- a/Source/Servicios/FactuGES_Intf.pas
+++ b/Source/Servicios/FactuGES_Intf.pas
@@ -47,6 +47,7 @@ const
IsrvAlbaranesProveedor_IID : TGUID = '{66B71884-5CE4-4574-B825-60CDA956B628}';
IsrvReferencias_IID : TGUID = '{B957528D-3BE1-412D-A35E-801C97CCD252}';
IsrvUnidadesMedida_IID : TGUID = '{8B4C72F0-5ACE-46FF-9F00-D70C2B611652}';
+ IsrvFabricantes_IID : TGUID = '{E26547E0-9E61-4BC8-B154-49ACC9339875}';
{ Event ID's }
@@ -76,6 +77,7 @@ type
IsrvAlbaranesProveedor = interface;
IsrvReferencias = interface;
IsrvUnidadesMedida = interface;
+ IsrvFabricantes = interface;
TRdxEmpresasArray = class;
@@ -612,6 +614,23 @@ type
end;
+ { IsrvFabricantes }
+ IsrvFabricantes = interface(IDataAbstractService)
+ ['{E26547E0-9E61-4BC8-B154-49ACC9339875}']
+ end;
+
+ { CosrvFabricantes }
+ CosrvFabricantes = class
+ class function Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvFabricantes;
+ end;
+
+ { TsrvFabricantes_Proxy }
+ TsrvFabricantes_Proxy = class(TDataAbstractService_Proxy, IsrvFabricantes)
+ protected
+ function __GetInterfaceName:string; override;
+
+ end;
+
implementation
uses
@@ -1604,6 +1623,18 @@ begin
result := 'srvUnidadesMedida';
end;
+{ CosrvFabricantes }
+
+class function CosrvFabricantes.Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvFabricantes;
+begin
+ result := TsrvFabricantes_Proxy.Create(aMessage, aTransportChannel);
+end;
+
+function TsrvFabricantes_Proxy.__GetInterfaceName:string;
+begin
+ result := 'srvFabricantes';
+end;
+
initialization
RegisterROClass(TRdxLoginInfo);
RegisterROClass(TRdxEmpresasArray);
@@ -1631,6 +1662,7 @@ initialization
RegisterProxyClass(IsrvAlbaranesProveedor_IID, TsrvAlbaranesProveedor_Proxy);
RegisterProxyClass(IsrvReferencias_IID, TsrvReferencias_Proxy);
RegisterProxyClass(IsrvUnidadesMedida_IID, TsrvUnidadesMedida_Proxy);
+ RegisterProxyClass(IsrvFabricantes_IID, TsrvFabricantes_Proxy);
finalization
@@ -1660,5 +1692,6 @@ finalization
UnregisterProxyClass(IsrvAlbaranesProveedor_IID);
UnregisterProxyClass(IsrvReferencias_IID);
UnregisterProxyClass(IsrvUnidadesMedida_IID);
+ UnregisterProxyClass(IsrvFabricantes_IID);
end.
diff --git a/Source/Servicios/FactuGES_Invk.pas b/Source/Servicios/FactuGES_Invk.pas
index 56b4951c..94e531c2 100644
--- a/Source/Servicios/FactuGES_Invk.pas
+++ b/Source/Servicios/FactuGES_Invk.pas
@@ -188,6 +188,12 @@ type
published
end;
+ TsrvFabricantes_Invoker = class(TDataAbstractService_Invoker)
+ private
+ protected
+ published
+ end;
+
implementation
uses
diff --git a/Source/Servicios/RODLFILE.res b/Source/Servicios/RODLFILE.res
index 8c757af0..80034d7e 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 e2777eb3..c975e864 100644
--- a/Source/Servidor/FactuGES_Server.dpr
+++ b/Source/Servidor/FactuGES_Server.dpr
@@ -103,8 +103,6 @@ uses
uRptWordPresupuestoCliente in '..\Modulos\Presupuestos de cliente\Reports\uRptWordPresupuestoCliente.pas' {RptWordPresupuestosCliente: TDataModule},
AHWord97 in 'Utiles\AHWord97.pas',
uSistemaFunc in '..\Base\Utiles\uSistemaFunc.pas',
- schArticulosClient_Intf in '..\Modulos\Articulos\Model\schArticulosClient_Intf.pas',
- schArticulosServer_Intf in '..\Modulos\Articulos\Model\schArticulosServer_Intf.pas',
uRptWordAlbaranCliente in '..\Modulos\Albaranes de cliente\Reports\uRptWordAlbaranCliente.pas' {RptWordAlbaranCliente: TDataModule},
schContactosClient_Intf in '..\Modulos\Contactos\Model\schContactosClient_Intf.pas',
schContactosServer_Intf in '..\Modulos\Contactos\Model\schContactosServer_Intf.pas',
@@ -114,7 +112,12 @@ uses
uRptFichasEmpleado_Server in '..\Modulos\Contactos\Reports\uRptFichasEmpleado_Server.pas' {RptFichasEmpleado: TDataModule},
uRptEtiquetasContacto_Server in '..\Modulos\Contactos\Reports\uRptEtiquetasContacto_Server.pas' {RptEtiquetasContacto: TDataModule},
uRptWordFacturaCliente in '..\Modulos\Facturas de cliente\Reports\uRptWordFacturaCliente.pas' {RptWordFacturaCliente: TDataModule},
- uCiaServiceTools in 'Utiles\uCiaServiceTools.pas';
+ uCiaServiceTools in 'Utiles\uCiaServiceTools.pas',
+ srvFabricantes_Impl in '..\Modulos\Fabricantes\Servidor\srvFabricantes_Impl.pas' {srvFabricantes: TDataAbstractService},
+ schFabricantesClient_Intf in '..\Modulos\Fabricantes\Model\schFabricantesClient_Intf.pas',
+ schFabricantesServer_Intf in '..\Modulos\Fabricantes\Model\schFabricantesServer_Intf.pas',
+ schArticulosClient_Intf in '..\Modulos\Articulos\Model\schArticulosClient_Intf.pas',
+ schArticulosServer_Intf in '..\Modulos\Articulos\Model\schArticulosServer_Intf.pas';
{$R *.res}
{$R ..\Servicios\RODLFile.res}
diff --git a/Source/Servidor/FactuGES_Server.dproj b/Source/Servidor/FactuGES_Server.dproj
index 34ecde3c..74938115 100644
--- a/Source/Servidor/FactuGES_Server.dproj
+++ b/Source/Servidor/FactuGES_Server.dproj
@@ -42,9 +42,6 @@
-
-
-
ExpressPrinting System by Developer Express Inc.
Microsoft Office 2000 Sample Automation Server Wrapper Components
Microsoft Office XP Sample Automation Server Wrapper Components
@@ -116,6 +113,12 @@
TDARemoteService
+
+
+
+
+ TDataAbstractService
+