diff --git a/Build/Build.fbl6 b/Build/Build.fbl6
index c6fd3b5..3b0b057 100644
Binary files a/Build/Build.fbl6 and b/Build/Build.fbl6 differ
diff --git a/Build/Build.fbpInf b/Build/Build.fbpInf
index f83afc9..b3bbb00 100644
--- a/Build/Build.fbpInf
+++ b/Build/Build.fbpInf
@@ -14,8 +14,8 @@
- 00:00:00
- 29/04/2013 12:19:03
- False
+ 00:03:11
+ 14/02/2020 13:22:06
+ True
diff --git a/Build/Build.fbz6 b/Build/Build.fbz6
index f577a71..8dfe661 100644
Binary files a/Build/Build.fbz6 and b/Build/Build.fbz6 differ
diff --git a/Resources/Iconos/Agenda/16x16/Thumbs.db b/Resources/Iconos/Agenda/16x16/Thumbs.db
index d96c706..28be8b6 100644
Binary files a/Resources/Iconos/Agenda/16x16/Thumbs.db and b/Resources/Iconos/Agenda/16x16/Thumbs.db differ
diff --git a/Resources/Iconos/Almacenes/16x16/Thumbs.db b/Resources/Iconos/Almacenes/16x16/Thumbs.db
index ef4e68c..698de43 100644
Binary files a/Resources/Iconos/Almacenes/16x16/Thumbs.db and b/Resources/Iconos/Almacenes/16x16/Thumbs.db differ
diff --git a/Source/Base/Base.dproj b/Source/Base/Base.dproj
index 6f57818..4ae3ba0 100644
--- a/Source/Base/Base.dproj
+++ b/Source/Base/Base.dproj
@@ -65,55 +65,55 @@
MainSource
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
TForm
diff --git a/Source/Cliente/FactuGES.dproj b/Source/Cliente/FactuGES.dproj
index 5a7a106..81821fb 100644
--- a/Source/Cliente/FactuGES.dproj
+++ b/Source/Cliente/FactuGES.dproj
@@ -51,7 +51,7 @@
Delphi.Personality
VCLApplication
-FalseTrueFalseC:\Archivos de programa\Borland\Delphi7\Bin\TrueFalse2810FalseFalseFalseFalseFalse30821252Rodax Software S.L.2.8.1.0FactuGESFactuGES2.8.1.0
+FalseTrueFalseC:\Archivos de programa\Borland\Delphi7\Bin\TrueFalse2820FalseFalseFalseFalseFalse30821252Rodax Software S.L.2.8.2.0FactuGESFactuGES2.8.2.0
File C:\Documents and Settings\All Users\Documentos\RAD Studio\5.0\Bpl\dxPScxScheduler2LnkD11.bpl not found
FactuGES.dprFalse
diff --git a/Source/Cliente/FactuGES.res b/Source/Cliente/FactuGES.res
index f5d2af8..9c046f3 100644
Binary files a/Source/Cliente/FactuGES.res and b/Source/Cliente/FactuGES.res differ
diff --git a/Source/Cliente/uBootStrap.pas b/Source/Cliente/uBootStrap.pas
index 027635e..4108d09 100644
--- a/Source/Cliente/uBootStrap.pas
+++ b/Source/Cliente/uBootStrap.pas
@@ -29,7 +29,8 @@ begin
{$IFDEF ALMACEN}
LoadModule('Familias_plugin.bpl');
- LoadModule('SubFamilias_plugin.bpl');
+ LoadModule('SubFamilias_plugin.bpl');
+ LoadModule('Tarifas_plugin.bpl');
LoadModule('UnidadesMedida_plugin.bpl');
LoadModule('Almacenes_plugin.bpl');
LoadModule('Articulos_plugin.bpl');
diff --git a/Source/GUIBase/GUIBase.dproj b/Source/GUIBase/GUIBase.dproj
index 958a997..175a673 100644
--- a/Source/GUIBase/GUIBase.dproj
+++ b/Source/GUIBase/GUIBase.dproj
@@ -58,34 +58,34 @@
MainSource
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Source/Modulos/Articulos/Articulos_Group.groupproj b/Source/Modulos/Articulos/Articulos_Group.groupproj
index 71b0e15..19b0391 100644
--- a/Source/Modulos/Articulos/Articulos_Group.groupproj
+++ b/Source/Modulos/Articulos/Articulos_Group.groupproj
@@ -10,6 +10,11 @@
+
+
+
+
+
@@ -121,14 +126,59 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
-
+
-
+
\ No newline at end of file
diff --git a/Source/Modulos/Articulos/Controller/Articulos_controller.dpk b/Source/Modulos/Articulos/Controller/Articulos_controller.dpk
index f859d18..6963c17 100644
Binary files a/Source/Modulos/Articulos/Controller/Articulos_controller.dpk and b/Source/Modulos/Articulos/Controller/Articulos_controller.dpk differ
diff --git a/Source/Modulos/Articulos/Controller/Articulos_controller.dproj b/Source/Modulos/Articulos/Controller/Articulos_controller.dproj
index 0a37190..67f7b0a 100644
--- a/Source/Modulos/Articulos/Controller/Articulos_controller.dproj
+++ b/Source/Modulos/Articulos/Controller/Articulos_controller.dproj
@@ -1,4 +1,5 @@
-
+
+
{ff8e8509-28f4-4aa9-88e5-13f60fe956a6}
Articulos_controller.dpk
@@ -54,11 +55,12 @@
MainSource
-
-
-
-
-
+
+
+
+
+
+
diff --git a/Source/Modulos/Articulos/Controller/uArticulosController.pas b/Source/Modulos/Articulos/Controller/uArticulosController.pas
index 929d748..6743ede 100644
--- a/Source/Modulos/Articulos/Controller/uArticulosController.pas
+++ b/Source/Modulos/Articulos/Controller/uArticulosController.pas
@@ -45,6 +45,7 @@ type
procedure SetPrecioPunto (const AValue: Currency);
function GetPrecioPunto: Currency;
property PrecioPunto : Currency read GetPrecioPunto write SetPrecioPunto;
+ procedure AsignarTarifa(AArticulos: IBizArticulo);
end;
TArticulosController = class(TControllerBase, IArticulosController)
@@ -101,6 +102,8 @@ type
procedure AnadirProveedor(AArticulo : IBizArticulo);
procedure VerProveedor(AArticulo : IBizArticulo);
+ procedure AsignarTarifa(AArticulos: IBizArticulo);
+
property PrecioPunto : Currency read GetPrecioPunto write SetPrecioPunto;
end;
@@ -109,7 +112,7 @@ implementation
uses
cxControls, DB, uEditorRegistryUtils, schArticulosClient_Intf, uFactuGES_App,
uIEditorArticulos, uIEditorArticulo, uIEditorElegirArticulos,
- uDataModuleArticulos, uDataModuleUsuarios, uDAInterfaces,
+ uDataModuleArticulos, uDataModuleUsuarios, uDAInterfaces, uTarifasController,
uDataTableUtils, uDateUtils, uROTypes, DateUtils, Controls, Windows;
{ TArticulosController }
@@ -142,6 +145,42 @@ begin
FProveedoresController := TProveedoresController.Create;
end;
+procedure TArticulosController.AsignarTarifa(AArticulos: IBizArticulo);
+var
+ ATarifasController : ITarifasController;
+ ATarifa: String;
+
+begin
+ if Assigned(AArticulos) then
+ begin
+ with TTarifasController.Create do
+ begin
+ try
+ ATarifa := elegirTarifa;
+ finally
+ Free
+ end;
+ end;
+ end;
+
+//Asignamos en articulo
+ with AArticulos.DataTable do
+ begin
+ First;
+ while not EOF do
+ begin
+ if (AArticulos.TARIFA <> ATarifa) then
+ begin
+ Edit;
+ AArticulos.TARIFA := ATarifa;
+ Post;
+ end;
+ Next;
+ end;
+ ApplyUpdates;
+ end;
+end;
+
function TArticulosController.Buscar(const ID: Integer; AClienteID: Integer = -1): IBizArticulo;
begin
if (AClienteID = -1) then
diff --git a/Source/Modulos/Articulos/Data/uDataModuleArticulos.dfm b/Source/Modulos/Articulos/Data/uDataModuleArticulos.dfm
index d819c11..8f389cb 100644
--- a/Source/Modulos/Articulos/Data/uDataModuleArticulos.dfm
+++ b/Source/Modulos/Articulos/Data/uDataModuleArticulos.dfm
@@ -143,6 +143,11 @@ inherited DataModuleArticulos: TDataModuleArticulos
Name = 'ELIMINADO'
DataType = datSmallInt
DisplayLabel = 'Eliminado'
+ end
+ item
+ Name = 'TARIFA'
+ 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 9c2586d..79d0abe 100644
--- a/Source/Modulos/Articulos/Model/schArticulosClient_Intf.pas
+++ b/Source/Modulos/Articulos/Model/schArticulosClient_Intf.pas
@@ -9,8 +9,8 @@ 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 = '{0AA3EA1D-D59E-442E-8D95-82EDDE05EBF7}';
- RID_ArticulosParaCliente = '{38FEB639-5DDC-4320-905C-17ABB03058E2}';
+ RID_Articulos = '{2C138ECF-D6E8-4443-911B-58696FF1BC19}';
+ RID_ArticulosParaCliente = '{C82C52D1-5EF1-4A6F-90C5-7C0C6DAB55B7}';
{ 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_ArticulosTARIFA = 'TARIFA';
{ Articulos field indexes }
idx_ArticulosID = 0;
@@ -59,6 +60,7 @@ const
idx_ArticulosID_PROVEEDOR = 17;
idx_ArticulosNOMBRE_PROVEEDOR = 18;
idx_ArticulosELIMINADO = 19;
+ idx_ArticulosTARIFA = 20;
{ ArticulosParaCliente fields }
fld_ArticulosParaClienteID = 'ID';
@@ -105,7 +107,7 @@ const
type
{ IArticulos }
IArticulos = interface(IDAStronglyTypedDataTable)
- ['{66416E90-B0A0-4E1D-973E-BBA359030F83}']
+ ['{D4C9C55E-D22D-41C6-AFE7-DC03ED7268AA}']
{ Property getters and setters }
function GetIDValue: Integer;
procedure SetIDValue(const aValue: Integer);
@@ -186,6 +188,10 @@ type
procedure SetELIMINADOValue(const aValue: SmallInt);
function GetELIMINADOIsNull: Boolean;
procedure SetELIMINADOIsNull(const aValue: Boolean);
+ function GetTARIFAValue: String;
+ procedure SetTARIFAValue(const aValue: String);
+ function GetTARIFAIsNull: Boolean;
+ procedure SetTARIFAIsNull(const aValue: Boolean);
{ Properties }
@@ -229,6 +235,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 TARIFA: String read GetTARIFAValue write SetTARIFAValue;
+ property TARIFAIsNull: Boolean read GetTARIFAIsNull write SetTARIFAIsNull;
end;
{ TArticulosDataTableRules }
@@ -317,6 +325,10 @@ type
procedure SetELIMINADOValue(const aValue: SmallInt); virtual;
function GetELIMINADOIsNull: Boolean; virtual;
procedure SetELIMINADOIsNull(const aValue: Boolean); virtual;
+ function GetTARIFAValue: String; virtual;
+ procedure SetTARIFAValue(const aValue: String); virtual;
+ function GetTARIFAIsNull: Boolean; virtual;
+ procedure SetTARIFAIsNull(const aValue: Boolean); virtual;
{ Properties }
property ID: Integer read GetIDValue write SetIDValue;
@@ -359,6 +371,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 TARIFA: String read GetTARIFAValue write SetTARIFAValue;
+ property TARIFAIsNull: Boolean read GetTARIFAIsNull write SetTARIFAIsNull;
public
constructor Create(aDataTable: TDADataTable); override;
@@ -368,7 +382,7 @@ type
{ IArticulosParaCliente }
IArticulosParaCliente = interface(IDAStronglyTypedDataTable)
- ['{7D8A2E3A-AAD7-49B5-825E-E0D3581DEF75}']
+ ['{4741F599-3EAC-4F68-A567-30EF2A1E9AD4}']
{ Property getters and setters }
function GetIDValue: Integer;
procedure SetIDValue(const aValue: Integer);
@@ -1063,6 +1077,27 @@ begin
DataTable.Fields[idx_ArticulosELIMINADO].AsVariant := Null;
end;
+function TArticulosDataTableRules.GetTARIFAValue: String;
+begin
+ result := DataTable.Fields[idx_ArticulosTARIFA].AsString;
+end;
+
+procedure TArticulosDataTableRules.SetTARIFAValue(const aValue: String);
+begin
+ DataTable.Fields[idx_ArticulosTARIFA].AsString := aValue;
+end;
+
+function TArticulosDataTableRules.GetTARIFAIsNull: boolean;
+begin
+ result := DataTable.Fields[idx_ArticulosTARIFA].IsNull;
+end;
+
+procedure TArticulosDataTableRules.SetTARIFAIsNull(const aValue: Boolean);
+begin
+ if aValue then
+ DataTable.Fields[idx_ArticulosTARIFA].AsVariant := Null;
+end;
+
{ TArticulosParaClienteDataTableRules }
constructor TArticulosParaClienteDataTableRules.Create(aDataTable: TDADataTable);
diff --git a/Source/Modulos/Articulos/Model/schArticulosServer_Intf.pas b/Source/Modulos/Articulos/Model/schArticulosServer_Intf.pas
index 892a377..ae677ed 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 = '{64BC3AAC-E5A1-49C9-A8B9-55D5C2D0A921}';
- RID_ArticulosParaClienteDelta = '{3F0D35B7-21B1-4130-B5EC-C43075204160}';
+ RID_ArticulosDelta = '{0D8E9FD9-0FF5-411E-A908-0F1A11BD54F8}';
+ RID_ArticulosParaClienteDelta = '{F027EC4F-34AC-45F9-9FE8-F7CC81290D65}';
type
{ IArticulosDelta }
IArticulosDelta = interface(IArticulos)
- ['{64BC3AAC-E5A1-49C9-A8B9-55D5C2D0A921}']
+ ['{0D8E9FD9-0FF5-411E-A908-0F1A11BD54F8}']
{ 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 GetOldTARIFAValue : 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 OldTARIFA : String read GetOldTARIFAValue;
end;
{ TArticulosBusinessProcessorRules }
@@ -187,6 +189,12 @@ type
function GetOldELIMINADOIsNull: Boolean; virtual;
procedure SetELIMINADOValue(const aValue: SmallInt); virtual;
procedure SetELIMINADOIsNull(const aValue: Boolean); virtual;
+ function GetTARIFAValue: String; virtual;
+ function GetTARIFAIsNull: Boolean; virtual;
+ function GetOldTARIFAValue: String; virtual;
+ function GetOldTARIFAIsNull: Boolean; virtual;
+ procedure SetTARIFAValue(const aValue: String); virtual;
+ procedure SetTARIFAIsNull(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 TARIFA : String read GetTARIFAValue write SetTARIFAValue;
+ property TARIFAIsNull : Boolean read GetTARIFAIsNull write SetTARIFAIsNull;
+ property OldTARIFA : String read GetOldTARIFAValue;
+ property OldTARIFAIsNull : Boolean read GetOldTARIFAIsNull;
public
constructor Create(aBusinessProcessor: TDABusinessProcessor); override;
@@ -278,7 +290,7 @@ type
{ IArticulosParaClienteDelta }
IArticulosParaClienteDelta = interface(IArticulosParaCliente)
- ['{3F0D35B7-21B1-4130-B5EC-C43075204160}']
+ ['{F027EC4F-34AC-45F9-9FE8-F7CC81290D65}']
{ Property getters and setters }
function GetOldIDValue : Integer;
function GetOldID_EMPRESAValue : Integer;
@@ -1175,6 +1187,37 @@ begin
BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosELIMINADO] := Null;
end;
+function TArticulosBusinessProcessorRules.GetTARIFAValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosTARIFA];
+end;
+
+function TArticulosBusinessProcessorRules.GetTARIFAIsNull: Boolean;
+begin
+ result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosTARIFA]);
+end;
+
+function TArticulosBusinessProcessorRules.GetOldTARIFAValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_ArticulosTARIFA];
+end;
+
+function TArticulosBusinessProcessorRules.GetOldTARIFAIsNull: Boolean;
+begin
+ result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ArticulosTARIFA]);
+end;
+
+procedure TArticulosBusinessProcessorRules.SetTARIFAValue(const aValue: String);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosTARIFA] := aValue;
+end;
+
+procedure TArticulosBusinessProcessorRules.SetTARIFAIsNull(const aValue: Boolean);
+begin
+ if aValue then
+ BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosTARIFA] := Null;
+end;
+
{ TArticulosParaClienteBusinessProcessorRules }
constructor TArticulosParaClienteBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor);
diff --git a/Source/Modulos/Articulos/Servidor/srvArticulos_Impl.dfm b/Source/Modulos/Articulos/Servidor/srvArticulos_Impl.dfm
index c965423..a856f69 100644
--- a/Source/Modulos/Articulos/Servidor/srvArticulos_Impl.dfm
+++ b/Source/Modulos/Articulos/Servidor/srvArticulos_Impl.dfm
@@ -207,6 +207,10 @@ object srvArticulos: TsrvArticulos
item
DatasetField = 'PRECIO_PVP'
TableField = 'PRECIO_PVP'
+ end
+ item
+ DatasetField = 'TARIFA'
+ TableField = 'TARIFA'
end>
end>
Name = 'Articulos'
@@ -317,6 +321,11 @@ object srvArticulos: TsrvArticulos
Name = 'ELIMINADO'
DataType = datSmallInt
DisplayLabel = 'Eliminado'
+ end
+ item
+ Name = 'TARIFA'
+ DataType = datString
+ Size = 255
end>
end
item
@@ -615,6 +624,12 @@ object srvArticulos: TsrvArticulos
Name = 'ELIMINADO'
DataType = datSmallInt
Value = ''
+ end
+ item
+ Name = 'TARIFA'
+ DataType = datString
+ Size = 255
+ Value = ''
end>
Statements = <
item
@@ -625,11 +640,12 @@ object srvArticulos: TsrvArticulos
'CION, FAMILIA, IMAGEN,'#10' COMISIONABLE, FECHA_ALTA, FECHA_MODI' +
'FICACION, USUARIO,'#10' PRECIO_COSTE, PRECIO_PORTE, DESCUENTO, I' +
'D_PROVEEDOR,'#10' PRECIO_NETO, PRECIO_PVP, REFERENCIA_PROV, INVE' +
- 'NTARIABLE, ELIMINADO)'#10' VALUES'#10' (:ID, :ID_EMPRESA, :REFERENCI' +
- 'A, :DESCRIPCION, :FAMILIA,'#10' :IMAGEN, :COMISIONABLE, :FECHA_A' +
- 'LTA, :FECHA_MODIFICACION,'#10' :USUARIO, :PRECIO_COSTE, :PRECIO_' +
- 'PORTE, :DESCUENTO,'#10' :ID_PROVEEDOR, :PRECIO_NETO, :PRECIO_PVP' +
- ', :REFERENCIA_PROV,'#10' :INVENTARIABLE, :ELIMINADO)'#10
+ 'NTARIABLE, ELIMINADO, TARIFA)'#10' VALUES'#10' (:ID, :ID_EMPRESA, :R' +
+ 'EFERENCIA, :DESCRIPCION, :FAMILIA,'#10' :IMAGEN, :COMISIONABLE, ' +
+ ':FECHA_ALTA, :FECHA_MODIFICACION,'#10' :USUARIO, :PRECIO_COSTE, ' +
+ ':PRECIO_PORTE, :DESCUENTO,'#10' :ID_PROVEEDOR, :PRECIO_NETO, :PR' +
+ 'ECIO_PVP, :REFERENCIA_PROV,'#10' :INVENTARIABLE, :ELIMINADO, :TA' +
+ 'RIFA)'#10
StatementType = stSQL
ColumnMappings = <>
end>
@@ -750,6 +766,12 @@ object srvArticulos: TsrvArticulos
DataType = datSmallInt
Value = ''
end
+ item
+ Name = 'TARIFA'
+ DataType = datString
+ Size = 255
+ Value = ''
+ end
item
Name = 'OLD_ID'
Value = ''
@@ -768,7 +790,8 @@ object srvArticulos: TsrvArticulos
'NTO = :DESCUENTO, '#10' ID_PROVEEDOR = :ID_PROVEEDOR, '#10' PRECIO' +
'_NETO = :PRECIO_NETO,'#10' PRECIO_PVP = :PRECIO_PVP,'#10' INVENTAR' +
'IABLE = :INVENTARIABLE,'#10' REFERENCIA_PROV = :REFERENCIA_PROV,'#10 +
- ' ELIMINADO = :ELIMINADO'#10' WHERE'#10' (ID = :OLD_ID)'#10
+ ' ELIMINADO = :ELIMINADO,'#10' TARIFA = :TARIFA'#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 f8992c5..a5e62de 100644
Binary files a/Source/Modulos/Articulos/Views/Articulos_view.dpk and b/Source/Modulos/Articulos/Views/Articulos_view.dpk differ
diff --git a/Source/Modulos/Articulos/Views/Articulos_view.dproj b/Source/Modulos/Articulos/Views/Articulos_view.dproj
index d273fa4..c22c743 100644
--- a/Source/Modulos/Articulos/Views/Articulos_view.dproj
+++ b/Source/Modulos/Articulos/Views/Articulos_view.dproj
@@ -1,4 +1,5 @@
-
+
+
{5e4bdd4d-597f-407c-8b0c-32e37fbd6267}
Articulos_view.dpk
@@ -54,12 +55,13 @@
MainSource
-
-
-
-
-
-
+
+
+
+
+
+
+
diff --git a/Source/Modulos/Articulos/Views/uEditorArticulos.dfm b/Source/Modulos/Articulos/Views/uEditorArticulos.dfm
index d66847b..54ab177 100644
--- a/Source/Modulos/Articulos/Views/uEditorArticulos.dfm
+++ b/Source/Modulos/Articulos/Views/uEditorArticulos.dfm
@@ -41,7 +41,14 @@ inherited fEditorArticulos: TfEditorArticulos
inherited TBXTMain2: TTBXToolbar
Left = 276
DockPos = 275
+ Visible = True
ExplicitLeft = 276
+ ExplicitWidth = 117
+ object TBXItem38: TTBXItem
+ Action = actAsignarTarifa
+ DisplayMode = nbdmImageAndText
+ ImageIndex = 25
+ end
end
end
inherited EditorActionList: TActionList
@@ -59,6 +66,11 @@ inherited fEditorArticulos: TfEditorArticulos
Caption = 'Familias de art'#237'culos'
OnExecute = actFamiliasExecute
end
+ object actAsignarTarifa: TAction
+ Caption = 'Asignar tarifa'
+ OnExecute = actAsignarTarifaExecute
+ OnUpdate = actAsignarTarifaUpdate
+ end
end
inherited SmallImages: TPngImageList
PngImages = <
@@ -610,6 +622,125 @@ inherited fEditorArticulos: TfEditorArticulos
63F70000000049454E44AE426082}
Name = 'PngImage24'
Background = clWindow
+ end
+ item
+ PngImage.Data = {
+ 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
+ 610000000970485973000017120000171201679FD25200000A4D694343505068
+ 6F746F73686F70204943432070726F66696C65000078DA9D53775893F7163EDF
+ F7650F5642D8F0B1976C81002223AC08C81059A21092006184101240C585880A
+ 561415119C4855C482D50A489D88E2A028B867418A885A8B555C38EE1FDCA7B5
+ 7D7AEFEDEDFBD7FBBCE79CE7FCCE79CF0F8011122691E6A26A003952853C3AD8
+ 1F8F4F48C4C9BD80021548E0042010E6CBC26705C50000F00379787E74B03FFC
+ 01AF6F00020070D52E2412C7E1FF83BA50265700209100E02212E70B01905200
+ C82E54C81400C81800B053B3640A009400006C797C422200AA0D00ECF4493E05
+ 00D8A993DC1700D8A21CA908008D0100992847240240BB00605581522C02C0C2
+ 00A0AC40222E04C0AE018059B632470280BD0500768E58900F4060008099422C
+ CC0020380200431E13CD03204C03A030D2BFE0A95F7085B8480100C0CB95CD97
+ 4BD23314B895D01A77F2F0E0E221E2C26CB142611729106609E4229C979B2313
+ 48E7034CCE0C00001AF9D1C1FE383F90E7E6E4E1E666E76CEFF4C5A2FE6BF06F
+ 223E21F1DFFEBC8C020400104ECFEFDA5FE5E5D60370C701B075BF6BA95B00DA
+ 560068DFF95D33DB09A05A0AD07AF98B7938FC401E9EA150C83C1D1C0A0B0BED
+ 2562A1BD30E38B3EFF33E16FE08B7EF6FC401EFEDB7AF000719A4099ADC0A383
+ FD71616E76AE528EE7CB0442316EF7E723FEC7857FFD8E29D1E234B15C2C158A
+ F15889B850224DC779B952914421C995E212E97F32F11F96FD0993770D00AC86
+ 4FC04EB607B5CB6CC07EEE01028B0E58D27600407EF32D8C1A0B910010673432
+ 79F7000093BFF98F402B0100CD97A4E30000BCE8185CA894174CC608000044A0
+ 812AB041070CC114ACC00E9CC11DBCC01702610644400C24C03C104206E4801C
+ 0AA11896411954C03AD804B5B0031AA0119AE110B4C131380DE7E0125C81EB70
+ 170660189EC218BC86090441C8081361213A8811628ED822CE0817998E042261
+ 48349280A420E988145122C5C872A402A9426A915D4823F22D7214398D5C40FA
+ 90DBC820328AFC8ABC47319481B25103D4027540B9A81F1A8AC6A073D174340F
+ 5D8096A26BD11AB41E3D80B6A2A7D14BE87574007D8A8E6380D1310E668CD961
+ 5C8C87456089581A26C71663E55835568F35631D583776151BC09E61EF082402
+ 8B8013EC085E8410C26C82909047584C5843A825EC23B412BA085709838431C2
+ 272293A84FB4257A12F9C478623AB1905846AC26EE211E219E255E270E135F93
+ 48240EC992E44E0A21259032490B496B48DB482DA453A43ED210699C4C26EB90
+ 6DC9DEE408B280AC209791B7900F904F92FBC9C3E4B7143AC588E24C09A22452
+ A494124A35653FE504A59F324299A0AA51CDA99ED408AA883A9F5A496DA07650
+ 2F5387A91334759A25CD9B1643CBA42DA3D5D09A696769F7682FE974BA09DD83
+ 1E4597D097D26BE807E9E7E983F4770C0D860D83C7486228196B197B19A718B7
+ 192F994CA605D39799C85430D7321B9967980F986F55582AF62A7C1591CA1295
+ 3A9556957E95E7AA545573553FD579AA0B54AB550FAB5E567DA64655B350E3A9
+ 09D416ABD5A91D55BBA936AECE5277528F50CF515FA3BE5FFD82FA630DB28685
+ 46A08648A35463B7C6198D2116C63265F15842D6725603EB2C6B984D625BB2F9
+ EC4C7605FB1B762F7B4C534373AA66AC6691669DE671CD010EC6B1E0F039D99C
+ 4ACE21CE0DCE7B2D032D3F2DB1D66AAD66AD7EAD37DA7ADABEDA62ED72ED16ED
+ EBDAEF75709D409D2C9DF53A6D3AF77509BA36BA51BA85BADB75CFEA3ED363EB
+ 79E909F5CAF50EE9DDD147F56DF4A3F517EAEFD6EFD11F373034083690196C31
+ 3863F0CC9063E86B9869B8D1F084E1A811CB68BA91C468A3D149A327B826EE87
+ 67E33578173E66AC6F1C62AC34DE65DC6B3C61626932DBA4C4A4C5E4BE29CD94
+ 6B9A66BAD1B4D374CCCCC82CDCACD8ACC9EC8E39D59C6B9E61BED9BCDBFC8D85
+ A5459CC54A8B368BC796DA967CCB05964D96F7AC98563E567956F556D7AC49D6
+ 5CEB2CEB6DD6576C501B579B0C9B3A9BCBB6A8AD9BADC4769B6DDF14E2148F29
+ D229F5536EDA31ECFCEC0AEC9AEC06ED39F661F625F66DF6CF1DCC1C121DD63B
+ 743B7C727475CC766C70BCEBA4E134C3A9C4A9C3E957671B67A1739DF33517A6
+ 4B90CB1297769717536DA78AA76E9F7ACB95E51AEEBAD2B5D3F5A39BBB9BDCAD
+ D96DD4DDCC3DC57DABFB4D2E9B1BC95DC33DEF41F4F0F758E271CCE39DA79BA7
+ C2F390E72F5E765E595EFBBD1E4FB39C269ED6306DC8DBC45BE0BDCB7B603A3E
+ 3D65FACEE9033EC63E029F7A9F87BEA6BE22DF3DBE237ED67E997E07FC9EFB3B
+ FACBFD8FF8BFE179F216F14E056001C101E501BD811A81B3036B031F049904A5
+ 0735058D05BB062F0C3E15420C090D591F72936FC017F21BF96333DC672C9AD1
+ 15CA089D155A1BFA30CC264C1ED6118E86CF08DF107E6FA6F94CE9CCB60888E0
+ 476C88B81F69199917F97D14292A32AA2EEA51B453747174F72CD6ACE459FB67
+ BD8EF18FA98CB93BDB6AB6727667AC6A6C526C63EC9BB880B8AAB8817887F845
+ F1971274132409ED89E4C4D8C43D89E37302E76C9A339CE49A54967463AEE5DC
+ A2B917E6E9CECB9E773C593559907C3885981297B23FE5832042502F184FE5A7
+ 6E4D1D13F2849B854F45BEA28DA251B1B7B84A3C92E69D5695F638DD3B7D43FA
+ 68864F4675C633094F522B79911992B923F34D5644D6DEACCFD971D92D39949C
+ 949CA3520D6996B42BD730B728B74F662B2B930DE479E66DCA1B9387CAF7E423
+ F973F3DB156C854CD1A3B452AE500E164C2FA82B785B185B78B848BD485AD433
+ DF66FEEAF9230B82167CBD90B050B8B0B3D8B87859F1E022BF45BB16238B5317
+ 772E315D52BA647869F0D27DCB68CBB296FD50E2585255F26A79DCF28E5283D2
+ A5A5432B82573495A994C9CB6EAEF45AB9631561956455EF6A97D55B567F2A17
+ 955FAC70ACA8AEF8B046B8E6E2574E5FD57CF5796DDADADE4AB7CAEDEB48EBA4
+ EB6EACF759BFAF4ABD6A41D5D086F00DAD1BF18DE51B5F6D4ADE74A17A6AF58E
+ CDB4CDCACD03356135ED5BCCB6ACDBF2A136A3F67A9D7F5DCB56FDADABB7BED9
+ 26DAD6BFDD777BF30E831D153BDEEF94ECBCB52B78576BBD457DF56ED2EE82DD
+ 8F1A621BBABFE67EDDB847774FC59E8F7BA57B07F645EFEB6A746F6CDCAFBFBF
+ B2096D52368D1E483A70E59B806FDA9BED9A77B5705A2A0EC241E5C127DFA67C
+ 7BE350E8A1CEC3DCC3CDDF997FB7F508EB48792BD23ABF75AC2DA36DA03DA1BD
+ EFE88CA39D1D5E1D47BEB7FF7EEF31E36375C7358F579EA09D283DF1F9E48293
+ E3A764A79E9D4E3F3DD499DC79F74CFC996B5D515DBD6743CF9E3F1774EE4CB7
+ 5FF7C9F3DEE78F5DF0BC70F422F762DB25B74BAD3DAE3D477E70FDE148AF5B6F
+ EB65F7CBED573CAE74F44DEB3BD1EFD37FFA6AC0D573D7F8D72E5D9F79BDEFC6
+ EC1BB76E26DD1CB825BAF5F876F6ED17770AEE4CDC5D7A8F78AFFCBEDAFDEA07
+ FA0FEA7FB4FEB165C06DE0F860C060CFC3590FEF0E09879EFE94FFD387E1D247
+ CC47D52346238D8F9D1F1F1B0D1ABDF264CE93E1A7B2A713CFCA7E56FF79EB73
+ ABE7DFFDE2FB4BCF58FCD8F00BF98BCFBFAE79A9F372EFABA9AF3AC723C71FBC
+ CE793DF1A6FCADCEDB7DEFB8EFBADFC7BD1F9928FC40FE50F3D1FA63C7A7D04F
+ F73EE77CFEFC2FF784F3FB25D29F33000003824944415478DA4D536F6C13651C
+ 7EDEEBB55DCB5A3B56840E011194900C3102834D86812C4822DBF04F58C8942F
+ 8608C60F1A89FFBE98F80562A61F46A48E02310BFBC34A625A84451C766DB700
+ 6306B619C2840DB756D70DC66DBBEB5DEF7A7F7CEFAAD15FEE3EDCFBBBE7F9FD
+ F23CCF4BC26DC7A3813276178881A93FF5A4C86EFDC1E1F133BA9E27BA6E8061
+ 0CB85D76A4FF9A26C133E793622E37E2B4B32084C02CD2DFDB94AB7AD9ED343F
+ B8C70606066843379B3A7D54F0028BF28AD7312FEA0847AEA4C2177B5E73D86C
+ BFB2ACAD4090B8DAC455EF72FB52932AC6EF8A7039640A34C11A7DF358E00924
+ D1037B603B2A2A5F42A8353AD9DA75E96D5555130CC380F4C5BEE62AB6397C3D
+ 97E6F1FCD319947814A879159A2C507C0EF985346E5D1FC3ECDA663CE0BC90B3
+ 3C12D76E5F7E3C37BF97616C06B9966CE27C5EF8B8D42C2A5F78045556A14A02
+ 544500D124DC1B1C8450FC06D6D506313834860793699C3E17FD716AFA51ADC3
+ D4227EF51B0E9AE1DBF0540A5E97005914A1E578684A16CADC146EDC4863E3C1
+ 9FE00B5482D1158CA767F0EEE1D0D0CDBE4C0795204CDACF7CC16F58395DBC66
+ 590A8A2053DD240A16E9740513A3A3E0BC8DD8BCFF7B883C0F6E2E8BB70E8430
+ 33C38B99CC7C86129490B35FD6FFE1E1A24FB2C54FB82C6B0C0386A92E754190
+ 9DD871E40A169596C3D07238712286E1A114BA3A0E458B16BD5F4F7F1B23CD1F
+ 56B97587BFFED5F7CEB69795D8202B54035587A2AA606C2CDC9E124AAA5A96AD
+ 79E673C46247B162556924B02FDA904FFE72999CFCEA233857BEB2774FCDF68B
+ 65A52E48B20639AF41A144B0E2402DA53B2513F7D0D0D082EA1DCF41E0A587B7
+ 6EA786E9F18B2474A11F8461EA6AB63E1B092CF1212BC9D606AA5600FE5B27BF
+ ED455BDB7534366EC31C97BD130CC65BAD20B57425682C8DBA9D15EB23CBFC5E
+ 4A90A70434071A0593FF08BE0BC6D1DF771FADE7DE31658AAE5DFD59BD4570AA
+ 2B4E095057BD695D64C9620F44890649D360DE03BA9925AA59A75AE2E8ECB889
+ 44DF276008F979D58A8F775B2E043B63F400753B2BCB2301BF0FA22843A1EBE7
+ 558D4A4050B8330423C329ECAB6DC6FE035B863F385A13AADA74EC2E6D1C272D
+ E77BC1DAC89B4B177BC25333B305201DAAFD33D922305D207644C3BFA1A7FB77
+ FCAF3E259DDD03A656ABDB2F74EFB9333A8EA22267616D2B135448C60E52B49C
+ 31A409DDDC24B7C02CCF09F03B5C383D31A20FFE0D3DD9B01652475B27000000
+ 0049454E44AE426082}
+ Name = 'PngImage25'
+ Background = clWindow
end>
Bitmap = {}
end
diff --git a/Source/Modulos/Articulos/Views/uEditorArticulos.pas b/Source/Modulos/Articulos/Views/uEditorArticulos.pas
index 85d07e2..4126702 100644
--- a/Source/Modulos/Articulos/Views/uEditorArticulos.pas
+++ b/Source/Modulos/Articulos/Views/uEditorArticulos.pas
@@ -17,8 +17,13 @@ uses
type
TfEditorArticulos = class(TfEditorGridBase, IEditorArticulos)
actFamilias: TAction;
+ actAsignarTarifa: TAction;
+ TBXItem38: TTBXItem;
procedure FormShow(Sender: TObject);
procedure actFamiliasExecute(Sender: TObject);
+ procedure actAsignarTarifaExecute(Sender: TObject);
+ procedure actAsignarTarifaUpdate(Sender: TObject);
+ procedure actEliminarUpdate(Sender: TObject);
private
FArticulos: IBizArticulo;
FController : IArticulosController;
@@ -52,7 +57,7 @@ implementation
uses
uCustomEditor, uDataModuleArticulos, uDataModuleUsuarios, uFactuGES_App,
uEditorArticulo, uEditorDBBase, uBizFamilias, uFamiliasController,
- cxGrid, cxGridCustomTableView; //, uListaArticulos;
+ cxGrid, cxGridCustomTableView, uGridUtils, uDBSelectionListUtils; //, uListaArticulos;
{$R *.dfm}
@@ -165,6 +170,48 @@ begin
end;
end;
+procedure TfEditorArticulos.actAsignarTarifaExecute(Sender: TObject);
+var
+ AArticulos: IBizArticulo;
+ i: integer;
+
+begin
+ inherited;
+
+ ViewGrid.SaveGridStatus;
+ try
+ SeleccionarFilasDesdeGrid(ViewGrid._FocusedView, (Articulos as ISeleccionable).SelectedRecords);
+ AArticulos := (Controller as IArticulosController).ExtraerSeleccionados(Articulos) as IBizArticulo;
+ finally
+ ViewGrid.RestoreGridStatus;
+ end;
+
+ Controller.AsignarTarifa(AArticulos);
+
+ if (AArticulos.DataTable.RecordCount > 0) then
+ RefrescarInterno;
+end;
+
+procedure TfEditorArticulos.actAsignarTarifaUpdate(Sender: TObject);
+begin
+ inherited;
+
+ if HayDatos and Assigned(ViewGrid) then
+ (Sender as TAction).Enabled := not (dsDataTable.DataTable.State in dsEditModes)
+ and ViewGrid.esSeleccionCeldaDatos
+ and (ViewGrid.NumSeleccionados > 0)
+ else
+ (Sender as TAction).Enabled := False;
+end;
+
+procedure TfEditorArticulos.actEliminarUpdate(Sender: TObject);
+begin
+ inherited;
+
+ if (ViewGrid.NumSeleccionados <> 1) then
+ (Sender as TAction).Enabled := False;
+end;
+
procedure TfEditorArticulos.actFamiliasExecute(Sender: TObject);
var
AFamiliasController : IFamiliasController;
diff --git a/Source/Modulos/Articulos/Views/uEditorElegirArticulos.dfm b/Source/Modulos/Articulos/Views/uEditorElegirArticulos.dfm
index bd784c1..74e8470 100644
--- a/Source/Modulos/Articulos/Views/uEditorElegirArticulos.dfm
+++ b/Source/Modulos/Articulos/Views/uEditorElegirArticulos.dfm
@@ -64,6 +64,7 @@ inherited fEditorElegirArticulos: TfEditorElegirArticulos
Top = 26
DockPos = 536
DockRow = 1
+ Visible = False
ExplicitLeft = 536
ExplicitTop = 26
end
diff --git a/Source/Modulos/Articulos/Views/uViewArticulo.dfm b/Source/Modulos/Articulos/Views/uViewArticulo.dfm
index ef0652d..3c61345 100644
--- a/Source/Modulos/Articulos/Views/uViewArticulo.dfm
+++ b/Source/Modulos/Articulos/Views/uViewArticulo.dfm
@@ -1,6 +1,6 @@
inherited frViewArticulo: TfrViewArticulo
- Width = 981
- Height = 459
+ Width = 1136
+ Height = 491
Align = alClient
OnCreate = CustomViewCreate
OnDestroy = CustomViewDestroy
@@ -10,19 +10,19 @@ inherited frViewArticulo: TfrViewArticulo
object dxLayoutControlArticulo: TdxLayoutControl
Left = 0
Top = 0
- Width = 981
- Height = 393
+ Width = 1136
+ Height = 481
Align = alTop
ParentBackground = True
TabOrder = 0
TabStop = False
AutoContentSizes = [acsWidth]
- ExplicitWidth = 451
+ ExplicitTop = 7
DesignSize = (
- 981
- 393)
+ 1136
+ 481)
object PngSpeedButton2: TPngSpeedButton
- Left = 917
+ Left = 1091
Top = 28
Width = 23
Height = 22
@@ -49,7 +49,7 @@ inherited frViewArticulo: TfrViewArticulo
PngOptions = [pngBlendOnDisabled, pngGrayscaleOnDisabled]
end
object PngSpeedButton1: TPngSpeedButton
- Left = 917
+ Left = 1091
Top = 56
Width = 23
Height = 22
@@ -79,7 +79,7 @@ inherited frViewArticulo: TfrViewArticulo
end
object eDescripcion: TcxDBTextEdit
Left = 103
- Top = 109
+ Top = 136
DataBinding.DataField = 'DESCRIPCION'
DataBinding.DataSource = dsViewArticulo
Style.BorderColor = clWindowFrame
@@ -94,12 +94,12 @@ inherited frViewArticulo: TfrViewArticulo
StyleFocused.LookAndFeel.NativeStyle = True
StyleHot.LookAndFeel.Kind = lfStandard
StyleHot.LookAndFeel.NativeStyle = True
- TabOrder = 3
+ TabOrder = 4
Width = 108
end
object eNoComisionable: TcxDBCheckBox
Left = 103
- Top = 136
+ Top = 163
Caption = 'Art'#237'culo no comisionable'
DataBinding.DataField = 'COMISIONABLE'
DataBinding.DataSource = dsViewArticulo
@@ -119,11 +119,11 @@ inherited frViewArticulo: TfrViewArticulo
StyleFocused.LookAndFeel.NativeStyle = True
StyleHot.LookAndFeel.Kind = lfStandard
StyleHot.LookAndFeel.NativeStyle = True
- TabOrder = 4
+ TabOrder = 5
Width = 144
end
object eImagen: TcxImage
- Left = 722
+ Left = 927
Top = 28
Properties.GraphicClassName = 'TJPEGImage'
Properties.ImmediatePost = True
@@ -140,13 +140,13 @@ inherited frViewArticulo: TfrViewArticulo
StyleFocused.LookAndFeel.NativeStyle = True
StyleHot.LookAndFeel.Kind = lfStandard
StyleHot.LookAndFeel.NativeStyle = True
- TabOrder = 6
+ TabOrder = 7
Height = 100
Width = 140
end
object cbFamilia: TcxDBComboBox
Left = 103
- Top = 55
+ Top = 82
DataBinding.DataField = 'FAMILIA'
DataBinding.DataSource = dsViewArticulo
Properties.DropDownRows = 16
@@ -165,12 +165,12 @@ inherited frViewArticulo: TfrViewArticulo
StyleFocused.LookAndFeel.NativeStyle = True
StyleHot.LookAndFeel.Kind = lfStandard
StyleHot.LookAndFeel.NativeStyle = True
- TabOrder = 1
+ TabOrder = 2
Width = 70
end
inline frViewDatosYSeleccionProveedor1: TfrViewDatosYSeleccionProveedor
- Left = 590
- Top = 193
+ Left = 764
+ Top = 220
Width = 350
Height = 202
Enabled = False
@@ -180,10 +180,10 @@ inherited frViewArticulo: TfrViewArticulo
Font.Name = 'Tahoma'
Font.Style = []
ParentFont = False
- TabOrder = 14
+ TabOrder = 15
ReadOnly = False
- ExplicitLeft = 590
- ExplicitTop = 193
+ ExplicitLeft = 764
+ ExplicitTop = 220
inherited dxLayoutControl1: TdxLayoutControl
inherited edtNIFCIF: TcxDBTextEdit
ExplicitWidth = 562
@@ -205,7 +205,7 @@ inherited frViewArticulo: TfrViewArticulo
end
object eReferenciaProv: TcxDBTextEdit
Left = 103
- Top = 193
+ Top = 220
Anchors = [akLeft, akTop, akRight]
DataBinding.DataField = 'REFERENCIA_PROV'
DataBinding.DataSource = dsViewArticulo
@@ -218,12 +218,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 = 220
+ Top = 247
DataBinding.DataField = 'PRECIO_COSTE'
DataBinding.DataSource = dsViewArticulo
Properties.Alignment.Horz = taRightJustify
@@ -240,12 +240,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 = 247
+ Top = 274
DataBinding.DataField = 'DESCUENTO'
DataBinding.DataSource = dsViewArticulo
Enabled = False
@@ -264,12 +264,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 = 274
+ Top = 301
DataBinding.DataField = 'PRECIO_NETO'
DataBinding.DataSource = dsViewArticulo
Enabled = False
@@ -289,12 +289,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 = 301
+ Top = 328
DataBinding.DataField = 'PRECIO_PORTE'
DataBinding.DataSource = dsViewArticulo
Enabled = False
@@ -310,12 +310,12 @@ 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 = 433
- Top = 136
+ Left = 558
+ Top = 163
Caption = 'Art'#237'culo no inventariable'
DataBinding.DataField = 'INVENTARIABLE'
DataBinding.DataSource = dsViewArticulo
@@ -335,12 +335,12 @@ inherited frViewArticulo: TfrViewArticulo
StyleFocused.LookAndFeel.NativeStyle = True
StyleHot.LookAndFeel.Kind = lfStandard
StyleHot.LookAndFeel.NativeStyle = True
- TabOrder = 5
+ TabOrder = 6
Width = 144
end
object ePrecioPVP: TcxDBCurrencyEdit
Left = 103
- Top = 328
+ Top = 355
DataBinding.DataField = 'PRECIO_PVP'
DataBinding.DataSource = dsViewArticulo
Enabled = False
@@ -356,12 +356,12 @@ inherited frViewArticulo: TfrViewArticulo
StyleFocused.LookAndFeel.NativeStyle = True
StyleHot.LookAndFeel.Kind = lfStandard
StyleHot.LookAndFeel.NativeStyle = True
- TabOrder = 12
+ TabOrder = 13
Width = 288
end
object cbSubfamilia: TcxDBComboBox
Left = 103
- Top = 82
+ Top = 109
DataBinding.DataField = 'REFERENCIA_PROV'
DataBinding.DataSource = dsViewArticulo
Properties.DropDownRows = 16
@@ -380,19 +380,43 @@ inherited frViewArticulo: TfrViewArticulo
StyleFocused.LookAndFeel.NativeStyle = True
StyleHot.LookAndFeel.Kind = lfStandard
StyleHot.LookAndFeel.NativeStyle = True
- TabOrder = 2
+ TabOrder = 3
Width = 448
end
object ePrecioPVP2: TcxCurrencyEdit
Left = 103
- Top = 355
+ Top = 382
Enabled = False
Properties.Alignment.Horz = taRightJustify
Properties.ReadOnly = False
Properties.UseLeftAlignmentOnEditing = False
- TabOrder = 13
+ TabOrder = 14
Width = 121
end
+ object cbTarifa: TcxDBComboBox
+ Left = 103
+ Top = 55
+ DataBinding.DataField = 'TARIFA'
+ DataBinding.DataSource = dsViewArticulo
+ Properties.DropDownRows = 16
+ Properties.ImmediatePost = True
+ Properties.OnInitPopup = cbTarifaPropertiesInitPopup
+ Properties.OnValidate = cbTarifaPropertiesValidate
+ 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 = 1
+ Width = 718
+ end
object dxLayoutControlArticuloGroup_Root: TdxLayoutGroup
ShowCaption = False
Hidden = True
@@ -418,6 +442,11 @@ inherited frViewArticulo: TfrViewArticulo
ShowCaption = False
Hidden = True
ShowBorder = False
+ object dxLayoutControlArticuloItem12: TdxLayoutItem
+ Caption = 'Tarifa:'
+ Control = cbTarifa
+ ControlOptions.ShowBorder = False
+ end
object dxLayoutControlArticuloItem4: TdxLayoutItem
AutoAligns = [aaVertical]
AlignHorz = ahClient
diff --git a/Source/Modulos/Articulos/Views/uViewArticulo.pas b/Source/Modulos/Articulos/Views/uViewArticulo.pas
index 3edf6e0..a404486 100644
--- a/Source/Modulos/Articulos/Views/uViewArticulo.pas
+++ b/Source/Modulos/Articulos/Views/uViewArticulo.pas
@@ -9,7 +9,7 @@ uses
JvComponent, JvFormAutoSize, cxControls, cxContainer, cxEdit, cxTextEdit,
cxDBEdit, dxLayoutControl, cxCheckBox, PngSpeedButton, cxImage, ActnList,
ImgList, PngImageList, cxGraphics, cxMaskEdit, cxDropDownEdit,
- uFamiliasController, uSubFamiliasController, uViewDatosYSeleccionProveedor,
+ uTarifasController, uFamiliasController, uSubFamiliasController, uViewDatosYSeleccionProveedor,
cxSpinEdit, cxCurrencyEdit, uArticulosController, uDAInterfaces;
type
@@ -76,6 +76,8 @@ type
cbSubfamilia: TcxDBComboBox;
ePrecioPVP2: TcxCurrencyEdit;
dxLayoutControlArticuloItem11: TdxLayoutItem;
+ dxLayoutControlArticuloItem12: TdxLayoutItem;
+ cbTarifa: TcxDBComboBox;
procedure actEliminarExecute(Sender: TObject);
procedure actAnadirExecute(Sender: TObject);
procedure cbFamiliaPropertiesInitPopup(Sender: TObject);
@@ -89,10 +91,14 @@ type
procedure cbSubfamiliaPropertiesInitPopup(Sender: TObject);
procedure cbSubfamiliaPropertiesValidate(Sender: TObject;
var DisplayValue: Variant; var ErrorText: TCaption; var Error: Boolean);
+ procedure cbTarifaPropertiesInitPopup(Sender: TObject);
+ procedure cbTarifaPropertiesValidate(Sender: TObject;
+ var DisplayValue: Variant; var ErrorText: TCaption; var Error: Boolean);
private
procedure CargarImagen;
procedure SalvarImagen;
protected
+ FTarifasController: ITarifasController;
FFamiliasController: IFamiliasController;
FSubFamiliasController: ISubFamiliasController;
FController: IArticulosController;
@@ -109,7 +115,9 @@ type
implementation
-uses uFactuGES_App, uDataModuleArticulos, uSistemaFunc, uBizFamilias, uBizSubFamilias, uBizContactos, uNumUtils;
+uses
+uFactuGES_App, uDataModuleArticulos, uSistemaFunc, uBizTarifas,
+uBizFamilias, uBizSubFamilias, uBizContactos, uNumUtils;
{$R *.dfm}
@@ -241,9 +249,52 @@ begin
end;
end;
+procedure TfrViewArticulo.cbTarifaPropertiesInitPopup(Sender: TObject);
+begin
+ inherited;
+ with cbTarifa.Properties.Items do
+ begin
+ BeginUpdate;
+ try
+ Clear;
+ AddStrings(FTarifasController.DarListaTarifas);
+ finally
+ EndUpdate;
+ end;
+ end;
+end;
+
+procedure TfrViewArticulo.cbTarifaPropertiesValidate(Sender: TObject;
+ var DisplayValue: Variant; var ErrorText: TCaption; var Error: Boolean);
+var
+ ATarifas : IBizTarifa;
+begin
+ inherited;
+ with (Sender as TcxDBComboBox) do
+ begin
+ if (Length(DisplayValue) > 0) and (DisplayValue <> FArticulo.TARIFA) then
+ if Properties.LookupItems.IndexOf(DisplayValue) < 0 then
+ begin
+ Properties.LookupItems.BeginUpdate;
+ ATarifas := FTarifasController.BuscarTodos;
+ ATarifas.DataTable.Active := True;
+ try
+ FTarifasController.Anadir(ATarifas);
+ ATarifas.DESCRIPCION := DisplayValue;
+ FTarifasController.Guardar(ATarifas);
+ Properties.LookupItems.Add(DisplayValue);
+ finally
+ Properties.LookupItems.EndUpdate;
+ ATarifas := NIL;
+ end;
+ end;
+ end;
+end;
+
procedure TfrViewArticulo.CustomViewCreate(Sender: TObject);
begin
inherited;
+ FTarifasController := TTarifasController.Create;
FFamiliasController := TFamiliasController.Create;
FSubFamiliasController := TSubFamiliasController.Create;
ePrecioCoste.Properties.OnEditValueChanged := PuntosChanged;
@@ -251,6 +302,7 @@ end;
procedure TfrViewArticulo.CustomViewDestroy(Sender: TObject);
begin
+ FTarifasController := Nil;
FFamiliasController := Nil;
FSubFamiliasController := Nil;
ePrecioCoste.Properties.OnEditValueChanged := Nil;
diff --git a/Source/Modulos/Articulos/Views/uViewArticulos.dfm b/Source/Modulos/Articulos/Views/uViewArticulos.dfm
index f1a97a6..3c8b3d2 100644
--- a/Source/Modulos/Articulos/Views/uViewArticulos.dfm
+++ b/Source/Modulos/Articulos/Views/uViewArticulos.dfm
@@ -25,6 +25,7 @@ inherited frViewArticulos: TfrViewArticulos
end>
OptionsBehavior.PullFocusing = True
OptionsCustomize.ColumnHidingOnGrouping = False
+ OptionsSelection.MultiSelect = True
OptionsView.GroupFooters = gfAlwaysVisible
object cxGridViewINVENTARIABLE: TcxGridDBColumn
Caption = #191'Inventariable?'
@@ -87,6 +88,10 @@ inherited frViewArticulos: TfrViewArticulos
BestFitMaxWidth = 60
Width = 121
end
+ object cxGridViewTARIFA: TcxGridDBColumn
+ Caption = 'Tarifa'
+ DataBinding.FieldName = 'TARIFA'
+ end
object cxGridViewFAMILIA: TcxGridDBColumn
Caption = 'Familia'
DataBinding.FieldName = 'FAMILIA'
@@ -253,6 +258,8 @@ inherited frViewArticulos: TfrViewArticulos
end
object actProveedor: TAction
Caption = 'Proveedor'
+ Enabled = False
+ Visible = False
OnExecute = actProveedorExecute
OnUpdate = actProveedorUpdate
end
diff --git a/Source/Modulos/Articulos/Views/uViewArticulos.pas b/Source/Modulos/Articulos/Views/uViewArticulos.pas
index 5945fd0..3387b73 100644
--- a/Source/Modulos/Articulos/Views/uViewArticulos.pas
+++ b/Source/Modulos/Articulos/Views/uViewArticulos.pas
@@ -43,6 +43,7 @@ type
cxGridViewPRECIO_COSTE: TcxGridDBColumn;
cxGridViewPRECIO_PVP: TcxGridDBColumn;
cxGridViewPRECIOPVP2: TcxGridDBColumn;
+ cxGridViewTARIFA: TcxGridDBColumn;
procedure cxGridViewIDCustomDrawCell(
Sender: TcxCustomGridTableView; ACanvas: TcxCanvas;
AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean);
diff --git a/Source/Modulos/Facturas de proveedor/Views/uViewElegirArticulosFacturasProveedor.dfm b/Source/Modulos/Facturas de proveedor/Views/uViewElegirArticulosFacturasProveedor.dfm
index 295279a..0ea96c0 100644
--- a/Source/Modulos/Facturas de proveedor/Views/uViewElegirArticulosFacturasProveedor.dfm
+++ b/Source/Modulos/Facturas de proveedor/Views/uViewElegirArticulosFacturasProveedor.dfm
@@ -4,7 +4,6 @@ inherited frViewElegirArticulosFacturasProveedor: TfrViewElegirArticulosFacturas
ExplicitHeight = 449
inherited cxGrid: TcxGrid
Height = 321
- RootLevelOptions.DetailTabsPosition = dtpTop
OnActiveTabChanged = cxGridActiveTabChanged
ExplicitHeight = 321
inherited cxGridView: TcxGridDBTableView
@@ -21,14 +20,26 @@ inherited frViewElegirArticulosFacturasProveedor: TfrViewElegirArticulosFacturas
inherited TBXDockablePanel1: TTBXDockablePanel
inherited dxLayoutControl1: TdxLayoutControl
inherited txtFiltroTodo: TcxTextEdit
+ Style.LookAndFeel.SkinName = ''
+ StyleDisabled.LookAndFeel.SkinName = ''
+ StyleFocused.LookAndFeel.SkinName = ''
+ StyleHot.LookAndFeel.SkinName = ''
ExplicitWidth = 273
Width = 273
- end
+ end
inherited edtFechaIniFiltro: TcxDateEdit
+ Style.LookAndFeel.SkinName = ''
+ StyleDisabled.LookAndFeel.SkinName = ''
+ StyleFocused.LookAndFeel.SkinName = ''
+ StyleHot.LookAndFeel.SkinName = ''
ExplicitWidth = 121
Width = 121
end
inherited edtFechaFinFiltro: TcxDateEdit
+ Style.LookAndFeel.SkinName = ''
+ StyleDisabled.LookAndFeel.SkinName = ''
+ StyleFocused.LookAndFeel.SkinName = ''
+ StyleHot.LookAndFeel.SkinName = ''
ExplicitWidth = 121
Width = 121
end
diff --git a/Source/Modulos/Facturas de proveedor/Views/uViewElegirArticulosFacturasProveedor.pas b/Source/Modulos/Facturas de proveedor/Views/uViewElegirArticulosFacturasProveedor.pas
index 235b297..b1e89a4 100644
Binary files a/Source/Modulos/Facturas de proveedor/Views/uViewElegirArticulosFacturasProveedor.pas and b/Source/Modulos/Facturas de proveedor/Views/uViewElegirArticulosFacturasProveedor.pas differ
diff --git a/Source/Modulos/Tarifas/Controller/Tarifas_controller.dcu b/Source/Modulos/Tarifas/Controller/Tarifas_controller.dcu
new file mode 100644
index 0000000..2bb624d
Binary files /dev/null and b/Source/Modulos/Tarifas/Controller/Tarifas_controller.dcu differ
diff --git a/Source/Modulos/Tarifas/Controller/Tarifas_controller.dpk b/Source/Modulos/Tarifas/Controller/Tarifas_controller.dpk
new file mode 100644
index 0000000..a40a64a
Binary files /dev/null and b/Source/Modulos/Tarifas/Controller/Tarifas_controller.dpk differ
diff --git a/Source/Modulos/Tarifas/Controller/Tarifas_controller.dproj b/Source/Modulos/Tarifas/Controller/Tarifas_controller.dproj
new file mode 100644
index 0000000..574bf6c
--- /dev/null
+++ b/Source/Modulos/Tarifas/Controller/Tarifas_controller.dproj
@@ -0,0 +1,544 @@
+
+
+
+ {7f80f8aa-6912-4714-986d-aed73035472b}
+ Tarifas_controller.dpk
+ Debug
+ AnyCPU
+ DCC32
+ ..\..\..\..\Output\Debug\Cliente\Tarifas_controller.bpl
+
+
+ 7.0
+ False
+ False
+ 0
+ .\
+ .\
+ .\
+ ..\..\..\..\Output\Debug\Cliente
+ ..\..\Lib
+ ..\..\..\Lib;..\..\Lib
+ ..\..\..\Lib;..\..\Lib
+ ..\..\..\Lib;..\..\Lib
+ ..\..\..\Lib;..\..\Lib
+ RELEASE
+
+
+ 7.0
+ .\
+ .\
+ .\
+ ..\..\..\..\Output\Debug\Cliente
+ ..\..\Lib
+ ..\..\..\Lib;..\..\Lib
+ ..\..\..\Lib;..\..\Lib
+ ..\..\..\Lib;..\..\Lib
+ ..\..\..\Lib;..\..\Lib
+
+
+ Delphi.Personality
+ Package
+
+FalseTrueFalseFalseFalseFalseTrueFalse1000FalseFalseFalseFalseFalse308212521.0.0.01.0.0.0Tarifas_controller.dpk
+
+
+
+
+ MainSource
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Source/Modulos/Tarifas/Controller/Tarifas_controller.res b/Source/Modulos/Tarifas/Controller/Tarifas_controller.res
new file mode 100644
index 0000000..8b251f3
Binary files /dev/null and b/Source/Modulos/Tarifas/Controller/Tarifas_controller.res differ
diff --git a/Source/Modulos/Tarifas/Controller/View/uIEditorElegirTarifa.pas b/Source/Modulos/Tarifas/Controller/View/uIEditorElegirTarifa.pas
new file mode 100644
index 0000000..a5dc9d7
--- /dev/null
+++ b/Source/Modulos/Tarifas/Controller/View/uIEditorElegirTarifa.pas
@@ -0,0 +1,18 @@
+unit uIEditorElegirTarifa;
+
+interface
+
+uses
+ uEditorBasico;
+
+type
+ IEditorElegirTarifa = interface(IEditorBasico)
+ ['{B9473E30-D42D-440C-A1E9-E2346962149C}']
+ function GetTarifa: String;
+ procedure SetTarifa(const Value: String);
+ property Tarifa: String Read GetTarifa write SetTarifa;
+ end;
+
+implementation
+
+end.
diff --git a/Source/Modulos/Tarifas/Controller/View/uIEditorTarifas.pas b/Source/Modulos/Tarifas/Controller/View/uIEditorTarifas.pas
new file mode 100644
index 0000000..f6895ad
--- /dev/null
+++ b/Source/Modulos/Tarifas/Controller/View/uIEditorTarifas.pas
@@ -0,0 +1,23 @@
+unit uIEditorTarifas;
+
+interface
+
+uses
+ uEditorDBBase, uBizTarifas, uTarifasController;
+
+type
+ IEditorTarifas = interface(IEditorDBBase)
+ ['{E49B77E7-E90E-4B5F-AF9C-425EE7FC6C60}']
+ function GetTarifas: IBizTarifa;
+ procedure SetTarifas(const Value: IBizTarifa);
+ property Tarifas: IBizTarifa read GetTarifas write SetTarifas;
+
+ function GetController : ITarifasController;
+ procedure SetController (const Value : ITarifasController);
+ property Controller : ITarifasController read GetController write SetController;
+ end;
+
+
+implementation
+
+end.
diff --git a/Source/Modulos/Tarifas/Controller/uTarifasController.pas b/Source/Modulos/Tarifas/Controller/uTarifasController.pas
new file mode 100644
index 0000000..634ac43
--- /dev/null
+++ b/Source/Modulos/Tarifas/Controller/uTarifasController.pas
@@ -0,0 +1,254 @@
+unit uTarifasController;
+
+interface
+
+
+uses
+ Classes, SysUtils, uDADataTable, uEditorDBItem,
+ uIDataModuleTarifas, uBizTarifas, uControllerBase;
+
+type
+ ITarifasController = interface(IControllerBase)
+ ['{8BE07EA4-9B66-426A-93C7-653D8594AE81}']
+ function BuscarTodos: IBizTarifa;
+ procedure VerTodos(ATarifas: IBizTarifa);
+ procedure Anadir(ATarifa : IBizTarifa);
+ function Eliminar(ATarifa : IBizTarifa): Boolean;
+ function Guardar(ATarifa : IBizTarifa): Boolean;
+ procedure DescartarCambios(ATarifa : IBizTarifa);
+ function Localizar(ATarifas: IBizTarifa; ADescripcion:String): Boolean;
+ function DarListaTarifas: TStringList;
+ function elegirTarifa: String;
+ end;
+
+ TTarifasController = class(TControllerBase, ITarifasController)
+ protected
+ FDataModule : IDataModuleTarifas;
+
+ procedure RecibirAviso(ASujeto: ISujeto; ADataTable: IDAStronglyTypedDataTable); override;
+ function CreateEditor(const AName : String; const IID: TGUID; out Intf): Boolean;
+
+ function ValidarAlmacen(ATarifa: IBizTarifa): 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(ATarifa : IBizTarifa): Boolean;
+ function Guardar(ATarifa : IBizTarifa): Boolean;
+ procedure DescartarCambios(ATarifa : IBizTarifa); virtual;
+ procedure Anadir(ATarifa : IBizTarifa);
+ function BuscarTodos: IBizTarifa;
+ procedure VerTodos(ATarifas: IBizTarifa);
+ function Localizar(ATarifas: IBizTarifa; ADescripcion:String): Boolean;
+ function DarListaTarifas: TStringList;
+ function elegirTarifa: String;
+ end;
+
+implementation
+
+uses
+ cxControls, DB, uEditorRegistryUtils, schTarifasClient_Intf,
+ uIEditorTarifas, uDataModuleTarifas,
+ uDAInterfaces, uDataTableUtils, uIEditorElegirTarifa,
+ uDateUtils, uROTypes, DateUtils, Controls, Windows;
+
+{ TTarifasController }
+
+procedure TTarifasController.Anadir(ATarifa: IBizTarifa);
+begin
+ ATarifa.Insert;
+end;
+
+procedure TTarifasController.AsignarDataModule;
+begin
+ FDataModule := TDataModuleTarifas.Create(Nil);
+end;
+
+function TTarifasController.BuscarTodos: IBizTarifa;
+begin
+ Result := FDataModule.GetItems;
+end;
+
+constructor TTarifasController.Create;
+begin
+ inherited;
+ AsignarDataModule;
+end;
+
+function TTarifasController.CreateEditor(const AName: String; const IID: TGUID; out Intf): Boolean;
+begin
+ Result := Supports(EditorRegistry.CreateEditor(AName), IID, Intf);
+end;
+
+function TTarifasController.DarListaTarifas: TStringList;
+var
+ ATarifas: IBizTarifa;
+begin
+ ATarifas := BuscarTodos;
+ ATarifas.DataTable.Active := True;
+ Result := TStringList.Create;
+ try
+ with Result do
+ begin
+ ATarifas.DataTable.First;
+ while not ATarifas.DataTable.EOF do
+ begin
+ Add(ATarifas.DESCRIPCION);
+ ATarifas.DataTable.Next;
+ end;
+ end;
+ finally
+ ATarifas := NIL;
+ end;
+end;
+
+procedure TTarifasController.DescartarCambios(ATarifa: IBizTarifa);
+begin
+ if not Assigned(ATarifa) then
+ raise Exception.Create ('Tarifa no asignado');
+
+ ShowHourglassCursor;
+ try
+ if (ATarifa.State in dsEditModes) then
+ ATarifa.Cancel;
+
+ ATarifa.DataTable.CancelUpdates;
+ finally
+ HideHourglassCursor;
+ end;
+end;
+
+destructor TTarifasController.Destroy;
+begin
+ FDataModule := Nil;
+ inherited;
+end;
+
+function TTarifasController.elegirTarifa: String;
+var
+ AEditor : IEditorElegirTarifa;
+
+begin
+ Result := '';
+
+ CreateEditor('EditorElegirTarifa', IEditorElegirTarifa, AEditor);
+ if Assigned(AEditor) then
+ try
+ if (AEditor.ShowModal = mrOk) then
+ Result := AEditor.Tarifa;
+ finally
+ AEditor.Release;
+ AEditor := NIL;
+ end;
+end;
+
+function TTarifasController.ValidarAlmacen(ATarifa: IBizTarifa): Boolean;
+begin
+ Result := False;
+
+ if not Assigned(ATarifa) then
+ raise Exception.Create ('Tarifa no asignada');
+
+ if (ATarifa.DataTable.State in dsEditModes) then
+ ATarifa.DataTable.Post;
+
+ Result := True;
+end;
+
+procedure TTarifasController.ValidarObjetos;
+begin
+//
+end;
+
+procedure TTarifasController.VerTodos(ATarifas: IBizTarifa);
+var
+ AEditor : IEditorTarifas;
+begin
+ AEditor := NIL;
+
+ CreateEditor('EditorTarifas', IEditorTarifas, AEditor);
+ if Assigned(AEditor) then
+ try
+ AEditor.Controller := Self; //OJO ORDEN MUY IMPORTANTE
+ AEditor.Tarifas := ATarifas;
+ AEditor.ShowModal;
+ finally
+ AEditor.Release;
+ AEditor := NIL;
+ end;
+end;
+
+function TTarifasController.Eliminar(ATarifa: IBizTarifa): Boolean;
+begin
+ Result := False;
+
+ if not Assigned(ATarifa) then
+ raise Exception.Create ('Tarifa no asignada');
+
+ ShowHourglassCursor;
+ try
+ if (ATarifa.State in dsEditModes) then
+ ATarifa.Cancel;
+
+ ATarifa.Delete;
+ ATarifa.DataTable.ApplyUpdates;
+
+ Result := True;
+ finally
+ HideHourglassCursor;
+ end;
+end;
+
+procedure TTarifasController.RecibirAviso(ASujeto: ISujeto; ADataTable: IDAStronglyTypedDataTable);
+begin
+ inherited;
+//
+end;
+
+function TTarifasController.Guardar(ATarifa: IBizTarifa): Boolean;
+begin
+ Result := False;
+
+ if not Assigned(ATarifa) then
+ raise Exception.Create ('Tarifa no asignada');
+
+ ValidarObjetos;
+
+ if ValidarAlmacen(ATarifa) then
+ begin
+ ShowHourglassCursor;
+ try
+ ATarifa.DataTable.ApplyUpdates;
+ Result := True;
+ finally
+ HideHourglassCursor;
+ end;
+ end;
+end;
+
+function TTarifasController.Localizar(ATarifas: IBizTarifa; ADescripcion: String): Boolean;
+begin
+ Result := True;
+ ShowHourglassCursor;
+ try
+ with ATarifas.DataTable do
+ begin
+ DisableControls;
+ First;
+ if not Locate(fld_TarifasDESCRIPCION, ADescripcion, []) then
+ Result := False;
+ EnableControls;
+ end;
+ finally
+ HideHourglassCursor;
+ end;
+end;
+
+end.
diff --git a/Source/Modulos/Tarifas/Data/Tarifas_data.dpk b/Source/Modulos/Tarifas/Data/Tarifas_data.dpk
new file mode 100644
index 0000000..f0aa9bc
Binary files /dev/null and b/Source/Modulos/Tarifas/Data/Tarifas_data.dpk differ
diff --git a/Source/Modulos/Tarifas/Data/Tarifas_data.dproj b/Source/Modulos/Tarifas/Data/Tarifas_data.dproj
new file mode 100644
index 0000000..9d96826
--- /dev/null
+++ b/Source/Modulos/Tarifas/Data/Tarifas_data.dproj
@@ -0,0 +1,543 @@
+
+
+
+ {28b6d86e-fac2-4bfd-97d9-fcea860835eb}
+ Tarifas_data.dpk
+ Debug
+ AnyCPU
+ DCC32
+ ..\..\..\..\Output\Debug\Cliente\Tarifas_data.bpl
+
+
+ 7.0
+ False
+ False
+ 0
+ .\
+ .\
+ .\
+ ..\..\..\..\Output\Debug\Cliente
+ ..\..\Lib
+ ..\..\..\Lib;..\..\Lib
+ ..\..\..\Lib;..\..\Lib
+ ..\..\..\Lib;..\..\Lib
+ ..\..\..\Lib;..\..\Lib
+ RELEASE
+
+
+ 7.0
+ .\
+ .\
+ .\
+ ..\..\..\..\Output\Debug\Cliente
+ ..\..\Lib
+ ..\..\..\Lib;..\..\Lib
+ ..\..\..\Lib;..\..\Lib
+ ..\..\..\Lib;..\..\Lib
+ ..\..\..\Lib;..\..\Lib
+
+
+ Delphi.Personality
+ Package
+
+FalseTrueFalseFalseFalseFalseTrueFalse1000FalseFalseFalseFalseFalse308212521.0.0.01.0.0.0Tarifas_data.dpk
+
+
+
+
+ MainSource
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Source/Modulos/Tarifas/Data/Tarifas_data.res b/Source/Modulos/Tarifas/Data/Tarifas_data.res
new file mode 100644
index 0000000..8b251f3
Binary files /dev/null and b/Source/Modulos/Tarifas/Data/Tarifas_data.res differ
diff --git a/Source/Modulos/Tarifas/Data/uDataModuleTarifas.dfm b/Source/Modulos/Tarifas/Data/uDataModuleTarifas.dfm
new file mode 100644
index 0000000..9d5feb7
--- /dev/null
+++ b/Source/Modulos/Tarifas/Data/uDataModuleTarifas.dfm
@@ -0,0 +1,58 @@
+inherited DataModuleTarifas: TDataModuleTarifas
+ OnCreate = DAClientDataModuleCreate
+ Height = 179
+ Width = 357
+ object RORemoteService: TRORemoteService
+ Message = dmConexion.ROMessage
+ Channel = dmConexion.ROChannel
+ ServiceName = 'srvTarifas'
+ Left = 48
+ Top = 24
+ end
+ object rda_Tarifas: TDARemoteDataAdapter
+ DataStreamer = Bin2DataStreamer
+ GetSchemaCall.RemoteService = RORemoteService
+ GetDataCall.RemoteService = RORemoteService
+ UpdateDataCall.RemoteService = RORemoteService
+ GetScriptsCall.RemoteService = RORemoteService
+ RemoteService = RORemoteService
+ Left = 203
+ Top = 23
+ end
+ object Bin2DataStreamer: TDABin2DataStreamer
+ Left = 48
+ Top = 88
+ end
+ object tbl_Tarifas: TDAMemDataTable
+ RemoteUpdatesOptions = []
+ Fields = <
+ item
+ Name = 'ID'
+ DataType = datAutoInc
+ GeneratorName = 'GEN_TARIFAS_ID'
+ Required = True
+ DictionaryEntry = 'TARIFAS_ID'
+ InPrimaryKey = True
+ end
+ item
+ Name = 'DESCRIPCION'
+ DataType = datString
+ Size = 255
+ DisplayLabel = 'Descripci'#243'n'
+ DictionaryEntry = 'Tarifas_DESCRIPCION'
+ end>
+ Params = <>
+ StreamingOptions = [soDisableEventsWhileStreaming]
+ RemoteDataAdapter = rda_Tarifas
+ LogicalName = 'Tarifas'
+ IndexDefs = <>
+ Left = 280
+ Top = 24
+ end
+ object ds_Tarifas: TDADataSource
+ DataSet = tbl_Tarifas.Dataset
+ DataTable = tbl_Tarifas
+ Left = 280
+ Top = 88
+ end
+end
diff --git a/Source/Modulos/Tarifas/Data/uDataModuleTarifas.pas b/Source/Modulos/Tarifas/Data/uDataModuleTarifas.pas
new file mode 100644
index 0000000..fc406bf
--- /dev/null
+++ b/Source/Modulos/Tarifas/Data/uDataModuleTarifas.pas
@@ -0,0 +1,59 @@
+unit uDataModuleTarifas;
+
+interface
+
+uses
+ SysUtils, Classes, DB, uIDataModuleTarifas, uBizTarifas, uDAInterfaces, uDADataTable,
+ uDAScriptingProvider, uDAMemDataTable, uDADataStreamer, uDABin2DataStreamer,
+ uDARemoteDataAdapter, uROClient, uRORemoteService, uDataModuleBase;
+
+type
+ TDataModuleTarifas = class(TDataModuleBase, IDataModuleTarifas)
+ RORemoteService: TRORemoteService;
+ rda_Tarifas: TDARemoteDataAdapter;
+ Bin2DataStreamer: TDABin2DataStreamer;
+ tbl_Tarifas: TDAMemDataTable;
+ ds_Tarifas: TDADataSource;
+ procedure DAClientDataModuleCreate(Sender: TObject);
+ protected
+ procedure AsignarClaseNegocio(ATarifa: TDADataTable);
+ public
+ function GetItems : IBizTarifa;
+ end;
+
+implementation
+{$R *.DFM}
+
+uses
+ FactuGES_Intf, uDataModuleConexion, uDataTableUtils, cxControls,
+ schTarifasClient_Intf;
+
+{ TdmTarifas }
+
+procedure TDataModuleTarifas.AsignarClaseNegocio(ATarifa: TDADataTable);
+begin
+ ATarifa.BusinessRulesID := BIZ_CLIENT_TARIFA;
+end;
+
+procedure TDataModuleTarifas.DAClientDataModuleCreate(Sender: TObject);
+begin
+ RORemoteService.Channel := dmConexion.Channel;
+ RORemoteService.Message := dmConexion.Message;
+end;
+
+function TDataModuleTarifas.GetItems: IBizTarifa;
+var
+ ATarifa : TDAMemDataTable;
+begin
+ ShowHourglassCursor;
+ try
+ ATarifa := CloneDataTable(tbl_Tarifas);
+ AsignarClaseNegocio(ATarifa);
+ Result := (ATarifa as IBizTarifa);
+ finally
+ HideHourglassCursor;
+ end;
+end;
+
+
+end.
diff --git a/Source/Modulos/Tarifas/Model/Data/uIDataModuleTarifas.pas b/Source/Modulos/Tarifas/Model/Data/uIDataModuleTarifas.pas
new file mode 100644
index 0000000..cfca3e6
--- /dev/null
+++ b/Source/Modulos/Tarifas/Model/Data/uIDataModuleTarifas.pas
@@ -0,0 +1,16 @@
+unit uIDataModuleTarifas;
+
+interface
+
+uses
+ uBizTarifas;
+
+type
+ IDataModuleTarifas = interface
+ ['{FB32ED23-4C34-4E75-9663-9481C3C5F2E9}']
+ function GetItems: IBizTarifa;
+ end;
+
+implementation
+
+end.
diff --git a/Source/Modulos/Tarifas/Model/Tarifas.groupproj b/Source/Modulos/Tarifas/Model/Tarifas.groupproj
new file mode 100644
index 0000000..d407f17
--- /dev/null
+++ b/Source/Modulos/Tarifas/Model/Tarifas.groupproj
@@ -0,0 +1,34 @@
+
+
+ {fefc99a7-8146-44cf-8f8d-462f201db437}
+
+
+
+
+
+
+ Default.Personality
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Source/Modulos/Tarifas/Model/Tarifas_model.dpk b/Source/Modulos/Tarifas/Model/Tarifas_model.dpk
new file mode 100644
index 0000000..7690876
Binary files /dev/null and b/Source/Modulos/Tarifas/Model/Tarifas_model.dpk differ
diff --git a/Source/Modulos/Tarifas/Model/Tarifas_model.dproj b/Source/Modulos/Tarifas/Model/Tarifas_model.dproj
new file mode 100644
index 0000000..340acd2
--- /dev/null
+++ b/Source/Modulos/Tarifas/Model/Tarifas_model.dproj
@@ -0,0 +1,549 @@
+
+
+
+ {73acd39c-b2f0-49b7-9acf-10945bbac8c1}
+ Tarifas_model.dpk
+ Debug
+ AnyCPU
+ DCC32
+ ..\..\..\..\Output\Debug\Cliente\Tarifas_model.bpl
+
+
+ 7.0
+ False
+ False
+ 0
+ .\
+ .\
+ .\
+ ..\..\..\..\Output\Debug\Cliente
+ ..\..\Lib
+ ..\..\..\Lib;..\..\Lib
+ ..\..\..\Lib;..\..\Lib
+ ..\..\..\Lib;..\..\Lib
+ ..\..\..\Lib;..\..\Lib
+ RELEASE
+
+
+ 7.0
+ .\
+ .\
+ .\
+ ..\..\..\..\Output\Debug\Cliente
+ ..\..\Lib
+ ..\..\..\Lib;..\..\Lib
+ ..\..\..\Lib;..\..\Lib
+ ..\..\..\Lib;..\..\Lib
+ ..\..\..\Lib;..\..\Lib
+
+
+ Delphi.Personality
+ Package
+
+FalseTrueFalseFalseFalseFalseTrueFalse1000FalseFalseFalseFalseFalse308212521.0.0.01.0.0.0Tarifas_model.dpk
+
+
+
+
+ MainSource
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Source/Modulos/Tarifas/Model/Tarifas_model.res b/Source/Modulos/Tarifas/Model/Tarifas_model.res
new file mode 100644
index 0000000..8b251f3
Binary files /dev/null and b/Source/Modulos/Tarifas/Model/Tarifas_model.res differ
diff --git a/Source/Modulos/Tarifas/Model/schTarifasClient_Intf.pas b/Source/Modulos/Tarifas/Model/schTarifasClient_Intf.pas
new file mode 100644
index 0000000..b8b194d
--- /dev/null
+++ b/Source/Modulos/Tarifas/Model/schTarifasClient_Intf.pas
@@ -0,0 +1,134 @@
+unit schTarifasClient_Intf;
+
+interface
+
+uses
+ Classes, DB, schBase_Intf, SysUtils, uROClasses, uDAInterfaces, uDADataTable, FmtBCD, uROXMLIntf;
+
+const
+ { Data table rules ids
+ Feel free to change them to something more human readable
+ but make sure they are unique in the context of your application }
+ RID_Tarifas = '{1B8648BA-6504-40D7-895E-0E0C86350008}';
+
+ { Data table names }
+ nme_Tarifas = 'Tarifas';
+
+ { Tarifas fields }
+ fld_TarifasID = 'ID';
+ fld_TarifasDESCRIPCION = 'DESCRIPCION';
+
+ { Tarifas field indexes }
+ idx_TarifasID = 0;
+ idx_TarifasDESCRIPCION = 1;
+
+type
+ { ITarifas }
+ ITarifas = interface(IDAStronglyTypedDataTable)
+ ['{1634B087-FF78-4815-A64F-F4D1D59FC7C9}']
+ { 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;
+
+ { TTarifasDataTableRules }
+ TTarifasDataTableRules = class(TIntfObjectDADataTableRules, ITarifas)
+ 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;
+
+{ TTarifasDataTableRules }
+constructor TTarifasDataTableRules.Create(aDataTable: TDADataTable);
+begin
+ inherited;
+end;
+
+destructor TTarifasDataTableRules.Destroy;
+begin
+ inherited;
+end;
+
+function TTarifasDataTableRules.GetIDValue: Integer;
+begin
+ result := DataTable.Fields[idx_TarifasID].AsInteger;
+end;
+
+procedure TTarifasDataTableRules.SetIDValue(const aValue: Integer);
+begin
+ DataTable.Fields[idx_TarifasID].AsInteger := aValue;
+end;
+
+function TTarifasDataTableRules.GetIDIsNull: boolean;
+begin
+ result := DataTable.Fields[idx_TarifasID].IsNull;
+end;
+
+procedure TTarifasDataTableRules.SetIDIsNull(const aValue: Boolean);
+begin
+ if aValue then
+ DataTable.Fields[idx_TarifasID].AsVariant := Null;
+end;
+
+function TTarifasDataTableRules.GetDESCRIPCIONValue: String;
+begin
+ result := DataTable.Fields[idx_TarifasDESCRIPCION].AsString;
+end;
+
+procedure TTarifasDataTableRules.SetDESCRIPCIONValue(const aValue: String);
+begin
+ DataTable.Fields[idx_TarifasDESCRIPCION].AsString := aValue;
+end;
+
+function TTarifasDataTableRules.GetDESCRIPCIONIsNull: boolean;
+begin
+ result := DataTable.Fields[idx_TarifasDESCRIPCION].IsNull;
+end;
+
+procedure TTarifasDataTableRules.SetDESCRIPCIONIsNull(const aValue: Boolean);
+begin
+ if aValue then
+ DataTable.Fields[idx_TarifasDESCRIPCION].AsVariant := Null;
+end;
+
+
+initialization
+ RegisterDataTableRules(RID_Tarifas, TTarifasDataTableRules);
+
+end.
diff --git a/Source/Modulos/Tarifas/Model/schTarifasServer_Intf.pas b/Source/Modulos/Tarifas/Model/schTarifasServer_Intf.pas
new file mode 100644
index 0000000..8fee5d0
--- /dev/null
+++ b/Source/Modulos/Tarifas/Model/schTarifasServer_Intf.pas
@@ -0,0 +1,143 @@
+unit schTarifasServer_Intf;
+
+interface
+
+uses
+ Classes, DB, SysUtils, uROClasses, uDADataTable, uDABusinessProcessor, FmtBCD, uROXMLIntf, schTarifasClient_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_TarifasDelta = '{21C7FA08-7CF1-4E64-B08A-F6520349A690}';
+
+type
+ { ITarifasDelta }
+ ITarifasDelta = interface(ITarifas)
+ ['{21C7FA08-7CF1-4E64-B08A-F6520349A690}']
+ { Property getters and setters }
+ function GetOldIDValue : Integer;
+ function GetOldDESCRIPCIONValue : String;
+
+ { Properties }
+ property OldID : Integer read GetOldIDValue;
+ property OldDESCRIPCION : String read GetOldDESCRIPCIONValue;
+ end;
+
+ { TTarifasBusinessProcessorRules }
+ TTarifasBusinessProcessorRules = class(TDABusinessProcessorRules, ITarifas, ITarifasDelta)
+ 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;
+
+{ TTarifasBusinessProcessorRules }
+constructor TTarifasBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor);
+begin
+ inherited;
+end;
+
+destructor TTarifasBusinessProcessorRules.Destroy;
+begin
+ inherited;
+end;
+
+function TTarifasBusinessProcessorRules.GetIDValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_TarifasID];
+end;
+
+function TTarifasBusinessProcessorRules.GetIDIsNull: Boolean;
+begin
+ result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_TarifasID]);
+end;
+
+function TTarifasBusinessProcessorRules.GetOldIDValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_TarifasID];
+end;
+
+function TTarifasBusinessProcessorRules.GetOldIDIsNull: Boolean;
+begin
+ result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_TarifasID]);
+end;
+
+procedure TTarifasBusinessProcessorRules.SetIDValue(const aValue: Integer);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_TarifasID] := aValue;
+end;
+
+procedure TTarifasBusinessProcessorRules.SetIDIsNull(const aValue: Boolean);
+begin
+ if aValue then
+ BusinessProcessor.CurrentChange.NewValueByName[fld_TarifasID] := Null;
+end;
+
+function TTarifasBusinessProcessorRules.GetDESCRIPCIONValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_TarifasDESCRIPCION];
+end;
+
+function TTarifasBusinessProcessorRules.GetDESCRIPCIONIsNull: Boolean;
+begin
+ result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_TarifasDESCRIPCION]);
+end;
+
+function TTarifasBusinessProcessorRules.GetOldDESCRIPCIONValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_TarifasDESCRIPCION];
+end;
+
+function TTarifasBusinessProcessorRules.GetOldDESCRIPCIONIsNull: Boolean;
+begin
+ result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_TarifasDESCRIPCION]);
+end;
+
+procedure TTarifasBusinessProcessorRules.SetDESCRIPCIONValue(const aValue: String);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_TarifasDESCRIPCION] := aValue;
+end;
+
+procedure TTarifasBusinessProcessorRules.SetDESCRIPCIONIsNull(const aValue: Boolean);
+begin
+ if aValue then
+ BusinessProcessor.CurrentChange.NewValueByName[fld_TarifasDESCRIPCION] := Null;
+end;
+
+
+initialization
+ RegisterBusinessProcessorRules(RID_TarifasDelta, TTarifasBusinessProcessorRules);
+
+end.
diff --git a/Source/Modulos/Tarifas/Model/uBizTarifas.pas b/Source/Modulos/Tarifas/Model/uBizTarifas.pas
new file mode 100644
index 0000000..8cef214
--- /dev/null
+++ b/Source/Modulos/Tarifas/Model/uBizTarifas.pas
@@ -0,0 +1,36 @@
+unit uBizTarifas;
+
+interface
+
+uses
+ uDAInterfaces, uDADataTable, schTarifasClient_Intf;
+
+const
+ BIZ_CLIENT_TARIFA = 'Client.Tarifa';
+
+type
+ IBizTarifa = interface(ITarifas)
+ ['{005445B0-ABEC-4080-9BE9-611C23B3ED7E}']
+ end;
+
+ TBizTarifa = class(TTarifasDataTableRules, IBizTarifa)
+ procedure AfterOpen(Sender: TDADataTable); override;
+ end;
+
+implementation
+
+{ TBizTarifa }
+
+procedure TBizTarifa.AfterOpen(Sender: TDADataTable);
+begin
+ inherited;
+ DataTable.Sort([fld_TarifasDESCRIPCION], [sdAscending]);
+end;
+
+initialization
+ RegisterDataTableRules(BIZ_CLIENT_Tarifa, TBizTarifa);
+
+finalization
+
+end.
+
diff --git a/Source/Modulos/Tarifas/Plugin/Tarifas_plugin.dpk b/Source/Modulos/Tarifas/Plugin/Tarifas_plugin.dpk
new file mode 100644
index 0000000..8330906
Binary files /dev/null and b/Source/Modulos/Tarifas/Plugin/Tarifas_plugin.dpk differ
diff --git a/Source/Modulos/Tarifas/Plugin/Tarifas_plugin.dproj b/Source/Modulos/Tarifas/Plugin/Tarifas_plugin.dproj
new file mode 100644
index 0000000..ac0b7dd
--- /dev/null
+++ b/Source/Modulos/Tarifas/Plugin/Tarifas_plugin.dproj
@@ -0,0 +1,545 @@
+
+
+ {82e36812-58c4-491b-b463-6b951e95da51}
+ Tarifas_plugin.dpk
+ Debug
+ AnyCPU
+ DCC32
+ ..\..\..\..\Output\Debug\Cliente\Tarifas_plugin.bpl
+
+
+ 7.0
+ False
+ False
+ 0
+ .\
+ .\
+ .\
+ ..\..\..\..\Output\Debug\Cliente
+ ..\..\Lib
+ ..\..\..\Lib;..\..\Lib
+ ..\..\..\Lib;..\..\Lib
+ ..\..\..\Lib;..\..\Lib
+ ..\..\..\Lib;..\..\Lib
+ RELEASE
+
+
+ 7.0
+ .\
+ .\
+ .\
+ ..\..\..\..\Output\Debug\Cliente
+ ..\..\Lib
+ ..\..\..\Lib;..\..\Lib
+ ..\..\..\Lib;..\..\Lib
+ ..\..\..\Lib;..\..\Lib
+ ..\..\..\Lib;..\..\Lib
+
+
+ Delphi.Personality
+ Package
+
+FalseTrueFalseFalseFalseFalseTrueFalse1000FalseFalseFalseFalseFalse308212521.0.0.01.0.0.0Tarifas_plugin.dpk
+
+
+
+
+ MainSource
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Source/Modulos/Tarifas/Plugin/Tarifas_plugin.res b/Source/Modulos/Tarifas/Plugin/Tarifas_plugin.res
new file mode 100644
index 0000000..8b251f3
Binary files /dev/null and b/Source/Modulos/Tarifas/Plugin/Tarifas_plugin.res differ
diff --git a/Source/Modulos/Tarifas/Plugin/uPluginTarifas.dfm b/Source/Modulos/Tarifas/Plugin/uPluginTarifas.dfm
new file mode 100644
index 0000000..aeb9999
--- /dev/null
+++ b/Source/Modulos/Tarifas/Plugin/uPluginTarifas.dfm
@@ -0,0 +1,176 @@
+object PluginTarifas: TPluginTarifas
+ OldCreateOrder = True
+ DefaultAction = actTarifas
+ Description = 'Tarifas'
+ ModuleMenu = MainMenu
+ ModuleName = 'Tarifas'
+ SmallImages = SmallImages
+ LargeImages = SmallImages
+ Author = 'Rodax Software'
+ Version = '1.0.0'
+ Height = 252
+ Width = 401
+ object LargeImages: TPngImageList
+ Height = 24
+ Width = 24
+ PngImages = <>
+ Left = 232
+ Top = 16
+ end
+ object ModuleActionList: TActionList
+ Images = SmallImages
+ Left = 40
+ Top = 72
+ object actTarifas: TAction
+ Category = 'Tarifas'
+ Caption = 'Tarifas de art'#237'culos'
+ ImageIndex = 0
+ OnExecute = actTarifasExecute
+ end
+ end
+ object MainMenu: TMainMenu
+ Images = LargeImages
+ Left = 40
+ Top = 16
+ object Ventas1: TMenuItem
+ Caption = 'Datos'
+ object Tarifas1: TMenuItem
+ Tag = 900
+ Action = actTarifas
+ end
+ end
+ end
+ object SmallImages: TPngImageList
+ PngImages = <
+ item
+ PngImage.Data = {
+ 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
+ 610000000970485973000017120000171201679FD25200000A4D694343505068
+ 6F746F73686F70204943432070726F66696C65000078DA9D53775893F7163EDF
+ F7650F5642D8F0B1976C81002223AC08C81059A21092006184101240C585880A
+ 561415119C4855C482D50A489D88E2A028B867418A885A8B555C38EE1FDCA7B5
+ 7D7AEFEDEDFBD7FBBCE79CE7FCCE79CF0F8011122691E6A26A003952853C3AD8
+ 1F8F4F48C4C9BD80021548E0042010E6CBC26705C50000F00379787E74B03FFC
+ 01AF6F00020070D52E2412C7E1FF83BA50265700209100E02212E70B01905200
+ C82E54C81400C81800B053B3640A009400006C797C422200AA0D00ECF4493E05
+ 00D8A993DC1700D8A21CA908008D0100992847240240BB00605581522C02C0C2
+ 00A0AC40222E04C0AE018059B632470280BD0500768E58900F4060008099422C
+ CC0020380200431E13CD03204C03A030D2BFE0A95F7085B8480100C0CB95CD97
+ 4BD23314B895D01A77F2F0E0E221E2C26CB142611729106609E4229C979B2313
+ 48E7034CCE0C00001AF9D1C1FE383F90E7E6E4E1E666E76CEFF4C5A2FE6BF06F
+ 223E21F1DFFEBC8C020400104ECFEFDA5FE5E5D60370C701B075BF6BA95B00DA
+ 560068DFF95D33DB09A05A0AD07AF98B7938FC401E9EA150C83C1D1C0A0B0BED
+ 2562A1BD30E38B3EFF33E16FE08B7EF6FC401EFEDB7AF000719A4099ADC0A383
+ FD71616E76AE528EE7CB0442316EF7E723FEC7857FFD8E29D1E234B15C2C158A
+ F15889B850224DC779B952914421C995E212E97F32F11F96FD0993770D00AC86
+ 4FC04EB607B5CB6CC07EEE01028B0E58D27600407EF32D8C1A0B910010673432
+ 79F7000093BFF98F402B0100CD97A4E30000BCE8185CA894174CC608000044A0
+ 812AB041070CC114ACC00E9CC11DBCC01702610644400C24C03C104206E4801C
+ 0AA11896411954C03AD804B5B0031AA0119AE110B4C131380DE7E0125C81EB70
+ 170660189EC218BC86090441C8081361213A8811628ED822CE0817998E042261
+ 48349280A420E988145122C5C872A402A9426A915D4823F22D7214398D5C40FA
+ 90DBC820328AFC8ABC47319481B25103D4027540B9A81F1A8AC6A073D174340F
+ 5D8096A26BD11AB41E3D80B6A2A7D14BE87574007D8A8E6380D1310E668CD961
+ 5C8C87456089581A26C71663E55835568F35631D583776151BC09E61EF082402
+ 8B8013EC085E8410C26C82909047584C5843A825EC23B412BA085709838431C2
+ 272293A84FB4257A12F9C478623AB1905846AC26EE211E219E255E270E135F93
+ 48240EC992E44E0A21259032490B496B48DB482DA453A43ED210699C4C26EB90
+ 6DC9DEE408B280AC209791B7900F904F92FBC9C3E4B7143AC588E24C09A22452
+ A494124A35653FE504A59F324299A0AA51CDA99ED408AA883A9F5A496DA07650
+ 2F5387A91334759A25CD9B1643CBA42DA3D5D09A696769F7682FE974BA09DD83
+ 1E4597D097D26BE807E9E7E983F4770C0D860D83C7486228196B197B19A718B7
+ 192F994CA605D39799C85430D7321B9967980F986F55582AF62A7C1591CA1295
+ 3A9556957E95E7AA545573553FD579AA0B54AB550FAB5E567DA64655B350E3A9
+ 09D416ABD5A91D55BBA936AECE5277528F50CF515FA3BE5FFD82FA630DB28685
+ 46A08648A35463B7C6198D2116C63265F15842D6725603EB2C6B984D625BB2F9
+ EC4C7605FB1B762F7B4C534373AA66AC6691669DE671CD010EC6B1E0F039D99C
+ 4ACE21CE0DCE7B2D032D3F2DB1D66AAD66AD7EAD37DA7ADABEDA62ED72ED16ED
+ EBDAEF75709D409D2C9DF53A6D3AF77509BA36BA51BA85BADB75CFEA3ED363EB
+ 79E909F5CAF50EE9DDD147F56DF4A3F517EAEFD6EFD11F373034083690196C31
+ 3863F0CC9063E86B9869B8D1F084E1A811CB68BA91C468A3D149A327B826EE87
+ 67E33578173E66AC6F1C62AC34DE65DC6B3C61626932DBA4C4A4C5E4BE29CD94
+ 6B9A66BAD1B4D374CCCCC82CDCACD8ACC9EC8E39D59C6B9E61BED9BCDBFC8D85
+ A5459CC54A8B368BC796DA967CCB05964D96F7AC98563E567956F556D7AC49D6
+ 5CEB2CEB6DD6576C501B579B0C9B3A9BCBB6A8AD9BADC4769B6DDF14E2148F29
+ D229F5536EDA31ECFCEC0AEC9AEC06ED39F661F625F66DF6CF1DCC1C121DD63B
+ 743B7C727475CC766C70BCEBA4E134C3A9C4A9C3E957671B67A1739DF33517A6
+ 4B90CB1297769717536DA78AA76E9F7ACB95E51AEEBAD2B5D3F5A39BBB9BDCAD
+ D96DD4DDCC3DC57DABFB4D2E9B1BC95DC33DEF41F4F0F758E271CCE39DA79BA7
+ C2F390E72F5E765E595EFBBD1E4FB39C269ED6306DC8DBC45BE0BDCB7B603A3E
+ 3D65FACEE9033EC63E029F7A9F87BEA6BE22DF3DBE237ED67E997E07FC9EFB3B
+ FACBFD8FF8BFE179F216F14E056001C101E501BD811A81B3036B031F049904A5
+ 0735058D05BB062F0C3E15420C090D591F72936FC017F21BF96333DC672C9AD1
+ 15CA089D155A1BFA30CC264C1ED6118E86CF08DF107E6FA6F94CE9CCB60888E0
+ 476C88B81F69199917F97D14292A32AA2EEA51B453747174F72CD6ACE459FB67
+ BD8EF18FA98CB93BDB6AB6727667AC6A6C526C63EC9BB880B8AAB8817887F845
+ F1971274132409ED89E4C4D8C43D89E37302E76C9A339CE49A54967463AEE5DC
+ A2B917E6E9CECB9E773C593559907C3885981297B23FE5832042502F184FE5A7
+ 6E4D1D13F2849B854F45BEA28DA251B1B7B84A3C92E69D5695F638DD3B7D43FA
+ 68864F4675C633094F522B79911992B923F34D5644D6DEACCFD971D92D39949C
+ 949CA3520D6996B42BD730B728B74F662B2B930DE479E66DCA1B9387CAF7E423
+ F973F3DB156C854CD1A3B452AE500E164C2FA82B785B185B78B848BD485AD433
+ DF66FEEAF9230B82167CBD90B050B8B0B3D8B87859F1E022BF45BB16238B5317
+ 772E315D52BA647869F0D27DCB68CBB296FD50E2585255F26A79DCF28E5283D2
+ A5A5432B82573495A994C9CB6EAEF45AB9631561956455EF6A97D55B567F2A17
+ 955FAC70ACA8AEF8B046B8E6E2574E5FD57CF5796DDADADE4AB7CAEDEB48EBA4
+ EB6EACF759BFAF4ABD6A41D5D086F00DAD1BF18DE51B5F6D4ADE74A17A6AF58E
+ CDB4CDCACD03356135ED5BCCB6ACDBF2A136A3F67A9D7F5DCB56FDADABB7BED9
+ 26DAD6BFDD777BF30E831D153BDEEF94ECBCB52B78576BBD457DF56ED2EE82DD
+ 8F1A621BBABFE67EDDB847774FC59E8F7BA57B07F645EFEB6A746F6CDCAFBFBF
+ B2096D52368D1E483A70E59B806FDA9BED9A77B5705A2A0EC241E5C127DFA67C
+ 7BE350E8A1CEC3DCC3CDDF997FB7F508EB48792BD23ABF75AC2DA36DA03DA1BD
+ EFE88CA39D1D5E1D47BEB7FF7EEF31E36375C7358F579EA09D283DF1F9E48293
+ E3A764A79E9D4E3F3DD499DC79F74CFC996B5D515DBD6743CF9E3F1774EE4CB7
+ 5FF7C9F3DEE78F5DF0BC70F422F762DB25B74BAD3DAE3D477E70FDE148AF5B6F
+ EB65F7CBED573CAE74F44DEB3BD1EFD37FFA6AC0D573D7F8D72E5D9F79BDEFC6
+ EC1BB76E26DD1CB825BAF5F876F6ED17770AEE4CDC5D7A8F78AFFCBEDAFDEA07
+ FA0FEA7FB4FEB165C06DE0F860C060CFC3590FEF0E09879EFE94FFD387E1D247
+ CC47D52346238D8F9D1F1F1B0D1ABDF264CE93E1A7B2A713CFCA7E56FF79EB73
+ ABE7DFFDE2FB4BCF58FCD8F00BF98BCFBFAE79A9F372EFABA9AF3AC723C71FBC
+ CE793DF1A6FCADCEDB7DEFB8EFBADFC7BD1F9928FC40FE50F3D1FA63C7A7D04F
+ F73EE77CFEFC2FF784F3FB25D29F33000003824944415478DA4D536F6C13651C
+ 7EDEEBB55DCB5A3B56840E011194900C3102834D86812C4822DBF04F58C8942F
+ 8608C60F1A89FFBE98F80562A61F46A48E02310BFBC34A625A84451C766DB700
+ 6306B619C2840DB756D70DC66DBBEB5DEF7A7F7CEFAAD15FEE3EDCFBBBE7F9FD
+ F23CCF4BC26DC7A3813276178881A93FF5A4C86EFDC1E1F133BA9E27BA6E8061
+ 0CB85D76A4FF9A26C133E793622E37E2B4B32084C02CD2DFDB94AB7AD9ED343F
+ B8C70606066843379B3A7D54F0028BF28AD7312FEA0847AEA4C2177B5E73D86C
+ BFB2ACAD4090B8DAC455EF72FB52932AC6EF8A7039640A34C11A7DF358E00924
+ D1037B603B2A2A5F42A8353AD9DA75E96D5555130CC380F4C5BEE62AB6397C3D
+ 97E6F1FCD319947814A879159A2C507C0EF985346E5D1FC3ECDA663CE0BC90B3
+ 3C12D76E5F7E3C37BF97616C06B9966CE27C5EF8B8D42C2A5F78045556A14A02
+ 544500D124DC1B1C8450FC06D6D506313834860793699C3E17FD716AFA51ADC3
+ D4227EF51B0E9AE1DBF0540A5E97005914A1E578684A16CADC146EDC4863E3C1
+ 9FE00B5482D1158CA767F0EEE1D0D0CDBE4C0795204CDACF7CC16F58395DBC66
+ 590A8A2053DD240A16E9740513A3A3E0BC8DD8BCFF7B883C0F6E2E8BB70E8430
+ 33C38B99CC7C86129490B35FD6FFE1E1A24FB2C54FB82C6B0C0386A92E754190
+ 9DD871E40A169596C3D07238712286E1A114BA3A0E458B16BD5F4F7F1B23CD1F
+ 56B97587BFFED5F7CEB69795D8202B54035587A2AA606C2CDC9E124AAA5A96AD
+ 79E673C46247B162556924B02FDA904FFE72999CFCEA233857BEB2774FCDF68B
+ 65A52E48B20639AF41A144B0E2402DA53B2513F7D0D0D082EA1DCF41E0A587B7
+ 6EA786E9F18B2474A11F8461EA6AB63E1B092CF1212BC9D606AA5600FE5B27BF
+ ED455BDB7534366EC31C97BD130CC65BAD20B57425682C8DBA9D15EB23CBFC5E
+ 4A90A70434071A0593FF08BE0BC6D1DF771FADE7DE31658AAE5DFD59BD4570AA
+ 2B4E095057BD695D64C9620F44890649D360DE03BA9925AA59A75AE2E8ECB889
+ 44DF276008F979D58A8F775B2E043B63F400753B2BCB2301BF0FA22843A1EBE7
+ 558D4A4050B8330423C329ECAB6DC6FE035B863F385A13AADA74EC2E6D1C272D
+ E77BC1DAC89B4B177BC25333B305201DAAFD33D922305D207644C3BFA1A7FB77
+ FCAF3E259DDD03A656ABDB2F74EFB9333A8EA22267616D2B135448C60E52B49C
+ 31A409DDDC24B7C02CCF09F03B5C383D31A20FFE0D3DD9B01652475B27000000
+ 0049454E44AE426082}
+ Name = 'PngImage1'
+ Background = clWindow
+ end>
+ PngOptions = [pngBlendOnDisabled, pngGrayscaleOnDisabled]
+ Left = 308
+ Top = 16
+ Bitmap = {}
+ end
+ object ExtraImages: TPngImageList
+ Height = 28
+ Width = 28
+ PngImages = <>
+ Left = 232
+ Top = 80
+ end
+end
diff --git a/Source/Modulos/Tarifas/Plugin/uPluginTarifas.pas b/Source/Modulos/Tarifas/Plugin/uPluginTarifas.pas
new file mode 100644
index 0000000..68123d7
--- /dev/null
+++ b/Source/Modulos/Tarifas/Plugin/uPluginTarifas.pas
@@ -0,0 +1,73 @@
+unit uPluginTarifas;
+
+interface
+
+uses
+ uModuleController, uInterfaces, uHostManager, Menus, Classes, ActnList,
+ ImgList, Controls, PngImageList;
+
+type
+ IMCTarifas = interface(IInterface)
+ ['{02F833B1-34E5-4DE3-B724-E8C92AE6C9FF}']
+ end;
+
+ TPluginTarifas = class(TModuleController, IMCTarifas)
+ actTarifas: TAction;
+ ExtraImages: TPngImageList;
+ LargeImages: TPngImageList;
+ MainMenu: TMainMenu;
+ ModuleActionList: TActionList;
+ SmallImages: TPngImageList;
+ Ventas1: TMenuItem;
+ Tarifas1: TMenuItem;
+ procedure actTarifasExecute(Sender: TObject);
+ public
+ constructor Create(AOwner: TComponent); override;
+ destructor Destroy; override;
+ end;
+
+implementation
+
+{$R *.dfm}
+
+uses
+ Forms, Dialogs, SysUtils,
+ uTarifasController, uBizTarifas, uTarifasViewRegister;
+
+function GetModule : TModuleController;
+begin
+ Result := TPluginTarifas.Create(NIL);
+end;
+
+exports
+ GetModule name GET_MODULE_FUNC;
+
+procedure TPluginTarifas.actTarifasExecute(Sender: TObject);
+var
+ ATarifasController : ITarifasController;
+ ATarifas : IBizTarifa;
+begin
+ ATarifasController := TTarifasController.Create;
+ ATarifas := (ATarifasController.BuscarTodos as IBizTarifa);
+ ATarifasController.VerTodos(ATarifas);
+end;
+
+constructor TPluginTarifas.Create(AOwner: TComponent);
+begin
+ inherited;
+ uTarifasViewRegister.RegisterViews;
+end;
+
+destructor TPluginTarifas.Destroy;
+begin
+ uTarifasViewRegister.UnregisterViews;
+ inherited;
+end;
+
+initialization
+ RegisterModuleClass(TPluginTarifas);
+
+finalization
+ UnRegisterModuleClass(TPluginTarifas);
+
+end.
diff --git a/Source/Modulos/Tarifas/Servidor/srvTarifas_Impl.dfm b/Source/Modulos/Tarifas/Servidor/srvTarifas_Impl.dfm
new file mode 100644
index 0000000..75a5df3
--- /dev/null
+++ b/Source/Modulos/Tarifas/Servidor/srvTarifas_Impl.dfm
@@ -0,0 +1,108 @@
+object srvTarifas: TsrvTarifas
+ OldCreateOrder = True
+ OnCreate = DARemoteServiceCreate
+ SessionManager = dmServer.SessionManager
+ ConnectionName = 'IBX'
+ ServiceSchema = schTarifas
+ ServiceDataStreamer = Bin2DataStreamer
+ AllowExecuteSQL = True
+ ExportedDataTables = <>
+ BeforeAcquireConnection = DataAbstractServiceBeforeAcquireConnection
+ Height = 249
+ Width = 343
+ object Diagrams: TDADiagrams
+ Left = 142
+ Top = 90
+ DiagramData = ''#13#10''#13#10
+ end
+ object DataDictionary: TDADataDictionary
+ Fields = <
+ item
+ Name = 'Tarifas_ID'
+ DataType = datAutoInc
+ GeneratorName = 'GEN_TARIFAS_ID'
+ Required = True
+ DisplayLabel = 'ID'
+ end
+ item
+ Name = 'Tarifas_DESCRIPCION'
+ DataType = datString
+ Size = 255
+ DisplayLabel = 'Descripci'#243'n'
+ end>
+ Left = 142
+ Top = 22
+ end
+ object schTarifas: TDASchema
+ ConnectionManager = dmServer.ConnectionManager
+ DataDictionary = DataDictionary
+ Diagrams = Diagrams
+ Datasets = <
+ item
+ Params = <>
+ Statements = <
+ item
+ Connection = 'IBX'
+ TargetTable = 'TARIFAS'
+ StatementType = stAutoSQL
+ ColumnMappings = <
+ item
+ DatasetField = 'DESCRIPCION'
+ TableField = 'DESCRIPCION'
+ end
+ item
+ DatasetField = 'ID'
+ TableField = 'ID'
+ end>
+ end>
+ Name = 'Tarifas'
+ Fields = <
+ item
+ Name = 'ID'
+ DataType = datAutoInc
+ GeneratorName = 'GEN_TARIFAS_ID'
+ DictionaryEntry = 'TARIFAS_ID'
+ InPrimaryKey = True
+ end
+ item
+ Name = 'DESCRIPCION'
+ DataType = datString
+ Size = 255
+ DictionaryEntry = 'Tarifas_DESCRIPCION'
+ end>
+ end>
+ JoinDataTables = <>
+ UnionDataTables = <>
+ Commands = <>
+ RelationShips = <>
+ UpdateRules = <
+ item
+ Name = 'Insert Familias'
+ DoUpdate = False
+ DoDelete = False
+ DatasetName = 'Familias'
+ FailureBehavior = fbRaiseException
+ end
+ item
+ Name = 'Update Familias'
+ DoInsert = False
+ DoDelete = False
+ DatasetName = 'Familias'
+ FailureBehavior = fbRaiseException
+ end
+ item
+ Name = 'Delete Familias'
+ DoUpdate = False
+ DoInsert = False
+ DatasetName = 'Familias'
+ FailureBehavior = fbRaiseException
+ end>
+ Version = 0
+ Left = 48
+ Top = 24
+ end
+ object Bin2DataStreamer: TDABin2DataStreamer
+ Left = 48
+ Top = 88
+ end
+end
diff --git a/Source/Modulos/Tarifas/Servidor/srvTarifas_Impl.pas b/Source/Modulos/Tarifas/Servidor/srvTarifas_Impl.pas
new file mode 100644
index 0000000..23cf7a0
--- /dev/null
+++ b/Source/Modulos/Tarifas/Servidor/srvTarifas_Impl.pas
@@ -0,0 +1,63 @@
+unit srvTarifas_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
+ { TsrvTarifas }
+ TsrvTarifas = class(TDataAbstractService, IsrvTarifas)
+ Diagrams: TDADiagrams;
+ Bin2DataStreamer: TDABin2DataStreamer;
+ schTarifas: TDASchema;
+ DataDictionary: TDADataDictionary;
+ procedure DARemoteServiceCreate(Sender: TObject);
+ procedure DataAbstractServiceBeforeAcquireConnection(aSender: TObject;
+ var aConnectionName: string);
+ { IsrvTarifas methods }
+ end;
+
+implementation
+
+{$R *.dfm}
+uses
+ {Generated:} FactuGES_Invk, uDataModuleServer,
+ uDatabaseUtils, schTarifasClient_Intf, uRestriccionesUsuarioUtils;
+
+procedure Create_srvTarifas(out anInstance : IUnknown);
+begin
+ anInstance := TsrvTarifas.Create(NIL);
+end;
+
+{ srvTarifas }
+procedure TsrvTarifas.DARemoteServiceCreate(Sender: TObject);
+begin
+ //SessionManager := dmServer.SessionManager;
+end;
+
+procedure TsrvTarifas.DataAbstractServiceBeforeAcquireConnection(
+ aSender: TObject; var aConnectionName: string);
+begin
+ ConnectionName := dmServer.ConnectionName;
+end;
+
+initialization
+ TROClassFactory.Create('srvTarifas', Create_srvTarifas, TsrvTarifas_Invoker);
+
+finalization
+
+end.
diff --git a/Source/Modulos/Tarifas/Tarifas_Group.groupproj b/Source/Modulos/Tarifas/Tarifas_Group.groupproj
new file mode 100644
index 0000000..3468cfc
--- /dev/null
+++ b/Source/Modulos/Tarifas/Tarifas_Group.groupproj
@@ -0,0 +1,124 @@
+
+
+ {9a7cc043-5043-46ff-a039-c4103c4aa6b2}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Default.Personality
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Source/Modulos/Tarifas/Views/Tarifas_view.dpk b/Source/Modulos/Tarifas/Views/Tarifas_view.dpk
new file mode 100644
index 0000000..0e9ab36
Binary files /dev/null and b/Source/Modulos/Tarifas/Views/Tarifas_view.dpk differ
diff --git a/Source/Modulos/Tarifas/Views/Tarifas_view.dproj b/Source/Modulos/Tarifas/Views/Tarifas_view.dproj
new file mode 100644
index 0000000..3d6a54c
--- /dev/null
+++ b/Source/Modulos/Tarifas/Views/Tarifas_view.dproj
@@ -0,0 +1,564 @@
+
+
+
+ {e3d36a6f-7004-4c89-9f3d-f2d77e386d1b}
+ Tarifas_view.dpk
+ Debug
+ AnyCPU
+ DCC32
+ ..\..\..\..\Output\Debug\Cliente\Tarifas_view.bpl
+
+
+ 7.0
+ False
+ False
+ 0
+ .\
+ .\
+ .\
+ ..\..\..\..\Output\Debug\Cliente
+ ..\..\Lib
+ ..\..\..\Lib;..\..\Lib
+ ..\..\..\Lib;..\..\Lib
+ ..\..\..\Lib;..\..\Lib
+ ..\..\..\Lib;..\..\Lib
+ RELEASE
+
+
+ 7.0
+ .\
+ .\
+ .\
+ ..\..\..\..\Output\Debug\Cliente
+ ..\..\Lib
+ ..\..\..\Lib;..\..\Lib
+ ..\..\..\Lib;..\..\Lib
+ ..\..\..\Lib;..\..\Lib
+ ..\..\..\Lib;..\..\Lib
+
+
+ Delphi.Personality
+ Package
+
+FalseTrueFalseFalseFalseFalseTrueFalse1000FalseFalseFalseFalseFalse308212521.0.0.01.0.0.0Tarifas_view.dpk
+
+
+
+
+ MainSource
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ TfEditorFamilias
+
+
+
+ TfEditorFamilias
+
+
+
+
+
+
+
+
+
diff --git a/Source/Modulos/Tarifas/Views/uEditorElegirTarifa.dfm b/Source/Modulos/Tarifas/Views/uEditorElegirTarifa.dfm
new file mode 100644
index 0000000..821d552
--- /dev/null
+++ b/Source/Modulos/Tarifas/Views/uEditorElegirTarifa.dfm
@@ -0,0 +1,93 @@
+object fEditorElegirTarifa: TfEditorElegirTarifa
+ Left = 0
+ Top = 0
+ BorderStyle = bsDialog
+ Caption = 'Tarifa'
+ ClientHeight = 124
+ ClientWidth = 424
+ Color = clWindow
+ Font.Charset = DEFAULT_CHARSET
+ Font.Color = clWindowText
+ Font.Height = -11
+ Font.Name = 'Tahoma'
+ Font.Style = []
+ OldCreateOrder = False
+ Position = poScreenCenter
+ OnDestroy = FormDestroy
+ OnShow = FormShow
+ PixelsPerInch = 96
+ TextHeight = 13
+ object Label1: TLabel
+ Left = 21
+ Top = 16
+ Width = 175
+ Height = 13
+ Caption = 'Seleccione la tarifa que desea signar'
+ end
+ object combo: TLabel
+ Left = 73
+ Top = 45
+ Width = 32
+ Height = 13
+ Alignment = taRightJustify
+ Caption = 'Tarifa:'
+ end
+ object Panel1: TPanel
+ Left = 0
+ Top = 83
+ Width = 424
+ Height = 41
+ Align = alBottom
+ TabOrder = 0
+ ExplicitWidth = 500
+ DesignSize = (
+ 424
+ 41)
+ object bAceptar: TButton
+ Left = 260
+ Top = 8
+ Width = 75
+ Height = 25
+ Anchors = [akTop, akRight]
+ Caption = 'Aceptar'
+ ModalResult = 1
+ TabOrder = 0
+ ExplicitLeft = 336
+ end
+ object bCancelar: TButton
+ Left = 341
+ Top = 8
+ Width = 75
+ Height = 25
+ Anchors = [akTop, akRight]
+ Caption = 'Cancelar'
+ ModalResult = 2
+ TabOrder = 1
+ ExplicitLeft = 417
+ end
+ end
+ object cbTarifa: TcxLookupComboBox
+ Left = 111
+ Top = 42
+ Properties.DropDownListStyle = lsFixedList
+ Properties.ImmediatePost = True
+ Properties.KeyFieldNames = 'ID'
+ Properties.ListColumns = <
+ item
+ FieldName = 'DESCRIPCION'
+ end>
+ Properties.ListOptions.ShowHeader = False
+ Properties.ListOptions.SyncMode = True
+ Properties.ListSource = dsTarifa
+ Style.LookAndFeel.Kind = lfOffice11
+ StyleDisabled.LookAndFeel.Kind = lfOffice11
+ StyleFocused.LookAndFeel.Kind = lfOffice11
+ StyleHot.LookAndFeel.Kind = lfOffice11
+ TabOrder = 1
+ Width = 266
+ end
+ object dsTarifa: TDADataSource
+ Left = 24
+ Top = 64
+ end
+end
diff --git a/Source/Modulos/Tarifas/Views/uEditorElegirTarifa.pas b/Source/Modulos/Tarifas/Views/uEditorElegirTarifa.pas
new file mode 100644
index 0000000..ee9d6a5
--- /dev/null
+++ b/Source/Modulos/Tarifas/Views/uEditorElegirTarifa.pas
@@ -0,0 +1,70 @@
+unit uEditorElegirTarifa;
+
+interface
+
+uses
+ Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
+ Dialogs, StdCtrls, cxControls, cxContainer, cxEdit, cxTextEdit, cxMaskEdit,
+ cxDropDownEdit, cxCalendar, ExtCtrls, uEditorBasico, uIEditorElegirTarifa,
+ cxGraphics, DB, uDAInterfaces, uDADataTable, cxDBEdit, uTarifasController,
+ cxLookupEdit, cxDBLookupEdit, cxDBLookupComboBox, uBizTarifas;
+
+type
+ TfEditorElegirTarifa = class(TfEditorBasico, IEditorElegirTarifa)
+ Label1: TLabel;
+ bAceptar: TButton;
+ bCancelar: TButton;
+ combo: TLabel;
+ Panel1: TPanel;
+ cbTarifa: TcxLookupComboBox;
+ dsTarifa: TDADataSource;
+ procedure FormShow(Sender: TObject);
+ procedure FormDestroy(Sender: TObject);
+
+ private
+ FController: ITarifasController;
+ FListaTarifas : IBizTarifa;
+ FTarifa: String;
+ function GetTarifa: String;
+ procedure SetTarifa(const Value: String);
+
+ public
+ property Tarifa: String Read GetTarifa write SetTarifa;
+
+ end;
+
+implementation
+{$R *.dfm}
+
+uses uFactuGES_App;
+
+procedure TfEditorElegirTarifa.FormDestroy(Sender: TObject);
+begin
+ FController := Nil;
+ FListaTarifas := Nil;
+end;
+
+procedure TfEditorElegirTarifa.FormShow(Sender: TObject);
+var
+
+ i : integer;
+
+begin
+ FController := TTarifasController.Create;
+ FListaTarifas := FController.BuscarTodos;
+ FListaTarifas.DataTable.Active := True;
+ dsTarifa.DataTable := FListaTarifas.DataTable;
+ cbTarifa.ItemIndex := 0;
+end;
+
+function TfEditorElegirTarifa.GetTarifa: String;
+begin
+ Result := FListaTarifas.DESCRIPCION;
+end;
+
+procedure TfEditorElegirTarifa.SetTarifa(const Value: String);
+begin
+// cbTarifa.ItemIndex := cbTarifa.Properties.Items.IndexOfName(Value);
+end;
+
+end.
diff --git a/Source/Modulos/Tarifas/Views/uEditorTarifas.dfm b/Source/Modulos/Tarifas/Views/uEditorTarifas.dfm
new file mode 100644
index 0000000..6a1af32
--- /dev/null
+++ b/Source/Modulos/Tarifas/Views/uEditorTarifas.dfm
@@ -0,0 +1,144 @@
+object fEditorTarifas: TfEditorTarifas
+ Left = 453
+ Top = 234
+ ActiveControl = ListaTarifas
+ BorderIcons = [biSystemMenu]
+ BorderStyle = bsSingle
+ Caption = 'Administraci'#243'n de tarifas de art'#237'culos'
+ ClientHeight = 494
+ ClientWidth = 404
+ Color = clBtnFace
+ Font.Charset = DEFAULT_CHARSET
+ Font.Color = clWindowText
+ Font.Height = -11
+ Font.Name = 'MS Sans Serif'
+ Font.Style = []
+ OldCreateOrder = False
+ Position = poScreenCenter
+ OnClose = CustomEditorClose
+ OnShow = FormShow
+ InstanceID = 0
+ ReadOnly = False
+ PixelsPerInch = 96
+ TextHeight = 13
+ object bAceptar: TButton
+ Left = 235
+ Top = 462
+ Width = 75
+ Height = 23
+ Action = actAceptar
+ Default = True
+ TabOrder = 1
+ end
+ object bCancelar: TButton
+ Left = 321
+ Top = 462
+ Width = 75
+ Height = 23
+ Action = actCancelar
+ Cancel = True
+ TabOrder = 2
+ end
+ object PageControl1: TPageControl
+ Left = 8
+ Top = 8
+ Width = 390
+ Height = 442
+ ActivePage = TabSheet1
+ TabOrder = 0
+ object TabSheet1: TTabSheet
+ Caption = 'Tarifas de art'#237'culos'
+ object Label1: TLabel
+ Left = 10
+ Top = 12
+ Width = 207
+ Height = 13
+ Caption = 'Lista de tarifas disponibles para los art'#237'culos'
+ end
+ object Label2: TLabel
+ Left = 10
+ Top = 326
+ Width = 110
+ Height = 13
+ Caption = 'A'#241'adir una nueva tarifa'
+ end
+ object Bevel1: TBevel
+ Left = 132
+ Top = 330
+ Width = 244
+ Height = 5
+ Shape = bsBottomLine
+ end
+ object eCategoria: TLabel
+ Left = 18
+ Top = 353
+ Width = 92
+ Height = 13
+ Caption = 'Nombre de la tarifa:'
+ end
+ object ListaTarifas: 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 editTarifa: TEdit
+ Left = 122
+ Top = 349
+ Width = 254
+ 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/Tarifas/Views/uEditorTarifas.pas b/Source/Modulos/Tarifas/Views/uEditorTarifas.pas
new file mode 100644
index 0000000..b090337
--- /dev/null
+++ b/Source/Modulos/Tarifas/Views/uEditorTarifas.pas
@@ -0,0 +1,180 @@
+{
+===============================================================================
+ 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 uEditorTarifas;
+
+interface
+
+uses
+ Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
+ Dialogs, DB, StdCtrls, DBCtrls, uDADataTable, ActnList,
+ uIEditorTarifas, uCustomEditor, uGUIBase, ExtCtrls,
+ ComCtrls, uBizTarifas, uTarifasController, uDAInterfaces;
+
+type
+ TfEditorTarifas = class(TCustomEditor, IEditorTarifas)
+ ActionList1: TActionList;
+ DADataSource: TDADataSource;
+ ListaTarifas: 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;
+ editTarifa: 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
+ FTarifas: IBizTarifa;
+ FController: ITarifasController;
+ function GetTarifas: IBizTarifa;
+ procedure SetTarifas(const Value: IBizTarifa);
+ function GetController : ITarifasController;
+ procedure SetController (const Value : ITarifasController);
+ public
+ property Tarifas: IBizTarifa read GetTarifas write SetTarifas;
+ property Controller : ITarifasController read GetController write SetController;
+ end;
+
+
+implementation
+{$R *.dfm}
+
+{ TfEditorTarifas }
+
+uses
+ uDialogUtils;
+
+function TfEditorTarifas.GetController: ITarifasController;
+begin
+ Result := FController;
+end;
+
+function TfEditorTarifas.GetTarifas: IBizTarifa;
+begin
+ Result := FTarifas;
+end;
+
+procedure TfEditorTarifas.SetController(const Value: ITarifasController);
+begin
+ FController := Value;
+end;
+
+procedure TfEditorTarifas.SetTarifas(const Value: IBizTarifa);
+begin
+ FTarifas := Value;
+ DADataSource.DataTable := (FTarifas as IBizTarifa).DataTable;
+ DADataSource.DataTable.Open;
+end;
+
+procedure TfEditorTarifas.actAnadirExecute(Sender: TObject);
+begin
+ if not FController.Localizar(Tarifas, editTarifa.Text) then
+ begin
+ Tarifas.Append;
+ Tarifas.DESCRIPCION := editTarifa.Text;
+ Tarifas.Post;
+ editTarifa.Clear;
+ ListaTarifas.SetFocus;
+ end
+ else
+ ShowErrorMessage('Ya existe la Tarifa ' + editTarifa.Text,
+ 'Ya existe la Tarifa ''' + editTarifa.Text + ''' en la lista.');
+end;
+
+procedure TfEditorTarifas.actEliminarExecute(Sender: TObject);
+begin
+ Tarifas.Delete;
+ ListaTarifas.SetFocus;
+end;
+
+procedure TfEditorTarifas.actEliminarUpdate(Sender: TObject);
+begin
+ (Sender as TAction).Enabled := (FTarifas.DataTable.RecordCount > 0) and
+ (Length(ListaTarifas.SelectedItem) > 0);
+
+end;
+
+procedure TfEditorTarifas.CustomEditorClose(Sender: TObject; var Action: TCloseAction);
+begin
+ FTarifas := Nil;
+ FController := Nil;
+end;
+
+procedure TfEditorTarifas.actAceptarExecute(Sender: TObject);
+begin
+ try
+ Tarifas.DataTable.ApplyUpdates;
+ except
+ on E : Exception do begin
+ Tarifas.DataTable.CancelUpdates;
+ ShowErrorMessage('Error al guardar cambios', 'Se ha producido un error grave', E);
+ exit;
+ end;
+ end;
+ actCerrar.Execute;
+end;
+
+procedure TfEditorTarifas.actCancelarExecute(Sender: TObject);
+begin
+ Tarifas.DataTable.CancelUpdates;
+ actCerrar.Execute;
+end;
+
+procedure TfEditorTarifas.actCerrarExecute(Sender: TObject);
+begin
+ Close;
+end;
+
+procedure TfEditorTarifas.actAnadirUpdate(Sender: TObject);
+begin
+ (Sender as TAction).Enabled := (Length(editTarifa.Text) > 0)
+end;
+
+procedure TfEditorTarifas.FormShow(Sender: TObject);
+begin
+ if not FTarifas.DataTable.Active then
+ FTarifas.DataTable.Active := true;
+
+ EditTarifa.SetFocus;
+end;
+
+end.
diff --git a/Source/Modulos/Tarifas/Views/uTarifasViewRegister.pas b/Source/Modulos/Tarifas/Views/uTarifasViewRegister.pas
new file mode 100644
index 0000000..79ca81a
--- /dev/null
+++ b/Source/Modulos/Tarifas/Views/uTarifasViewRegister.pas
@@ -0,0 +1,24 @@
+unit uTarifasViewRegister;
+
+interface
+
+procedure RegisterViews;
+procedure UnregisterViews;
+
+implementation
+
+uses
+ uEditorRegistryUtils, uEditorTarifas, uEditorElegirTarifa;
+
+procedure RegisterViews;
+begin
+ EditorRegistry.RegisterClass(TfEditorElegirTarifa, 'EditorElegirTarifa');
+ EditorRegistry.RegisterClass(TfEditorTarifas, 'EditorTarifas');
+end;
+
+procedure UnregisterViews;
+begin
+ EditorRegistry.UnRegisterClass(TfEditorTarifas);
+end;
+
+end.
diff --git a/Source/Servicios/FactuGES.RODL b/Source/Servicios/FactuGES.RODL
index bce63cd..6182bf4 100644
--- a/Source/Servicios/FactuGES.RODL
+++ b/Source/Servicios/FactuGES.RODL
@@ -996,6 +996,15 @@
+
+
+
+
+
+
+
+
+
diff --git a/Source/Servicios/FactuGES_Intf.pas b/Source/Servicios/FactuGES_Intf.pas
index ce24ff0..f5e05b9 100644
--- a/Source/Servicios/FactuGES_Intf.pas
+++ b/Source/Servicios/FactuGES_Intf.pas
@@ -55,6 +55,7 @@ const
IsrvGestorInformes_IID : TGUID = '{9ACA4D42-EA9A-4D2C-B233-19CD299EAE91}';
IsrvContratosCliente_IID : TGUID = '{ADBF1627-F507-4A0F-818E-38BAE28579B6}';
IsrvSubfamilias_IID : TGUID = '{B2A29B16-BF65-45B3-B864-EA3E33406001}';
+ IsrvTarifas_IID : TGUID = '{BA51338D-4E54-48F9-9534-DCDDD771DE0D}';
{ Event ID's }
@@ -92,6 +93,7 @@ type
IsrvGestorInformes = interface;
IsrvContratosCliente = interface;
IsrvSubfamilias = interface;
+ IsrvTarifas = interface;
TRdxEmpresasArray = class;
TIntegerArray = class;
@@ -908,6 +910,23 @@ type
end;
+ { IsrvTarifas }
+ IsrvTarifas = interface(IDataAbstractService)
+ ['{BA51338D-4E54-48F9-9534-DCDDD771DE0D}']
+ end;
+
+ { CosrvTarifas }
+ CosrvTarifas = class
+ class function Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvTarifas;
+ end;
+
+ { TsrvTarifas_Proxy }
+ TsrvTarifas_Proxy = class(TDataAbstractService_Proxy, IsrvTarifas)
+ protected
+ function __GetInterfaceName:string; override;
+
+ end;
+
implementation
uses
@@ -2885,6 +2904,18 @@ begin
result := 'srvSubfamilias';
end;
+{ CosrvTarifas }
+
+class function CosrvTarifas.Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvTarifas;
+begin
+ result := TsrvTarifas_Proxy.Create(aMessage, aTransportChannel);
+end;
+
+function TsrvTarifas_Proxy.__GetInterfaceName:string;
+begin
+ result := 'srvTarifas';
+end;
+
initialization
RegisterROClass(TRdxLoginInfo);
RegisterROClass(TRdxEmpresasArray);
@@ -2921,6 +2952,7 @@ initialization
RegisterProxyClass(IsrvGestorInformes_IID, TsrvGestorInformes_Proxy);
RegisterProxyClass(IsrvContratosCliente_IID, TsrvContratosCliente_Proxy);
RegisterProxyClass(IsrvSubfamilias_IID, TsrvSubfamilias_Proxy);
+ RegisterProxyClass(IsrvTarifas_IID, TsrvTarifas_Proxy);
finalization
@@ -2959,5 +2991,6 @@ finalization
UnregisterProxyClass(IsrvGestorInformes_IID);
UnregisterProxyClass(IsrvContratosCliente_IID);
UnregisterProxyClass(IsrvSubfamilias_IID);
+ UnregisterProxyClass(IsrvTarifas_IID);
end.
diff --git a/Source/Servicios/FactuGES_Invk.pas b/Source/Servicios/FactuGES_Invk.pas
index c21e2d9..79eca7f 100644
--- a/Source/Servicios/FactuGES_Invk.pas
+++ b/Source/Servicios/FactuGES_Invk.pas
@@ -337,6 +337,14 @@ type
published
end;
+ TsrvTarifas_Invoker = class(TDataAbstractService_Invoker)
+ private
+ protected
+ public
+ constructor Create; override;
+ published
+ end;
+
implementation
uses
@@ -2412,5 +2420,13 @@ begin
FAbstract := False;
end;
+{ TsrvTarifas_Invoker }
+
+constructor TsrvTarifas_Invoker.Create;
+begin
+ inherited Create;
+ FAbstract := False;
+end;
+
initialization
end.
diff --git a/Source/Servicios/RODLFile.res b/Source/Servicios/RODLFile.res
index 8fb7c67..0eca19c 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 6864d5b..32fba71 100644
--- a/Source/Servidor/FactuGES_Server.dpr
+++ b/Source/Servidor/FactuGES_Server.dpr
@@ -115,8 +115,6 @@ uses
schInventarioServer_Intf in '..\Modulos\Inventario\Model\schInventarioServer_Intf.pas',
schPedidosProveedorClient_Intf in '..\Modulos\Pedidos a proveedor\Model\schPedidosProveedorClient_Intf.pas',
schPedidosProveedorServer_Intf in '..\Modulos\Pedidos a proveedor\Model\schPedidosProveedorServer_Intf.pas',
- schArticulosClient_Intf in '..\Modulos\Articulos\Model\schArticulosClient_Intf.pas',
- schArticulosServer_Intf in '..\Modulos\Articulos\Model\schArticulosServer_Intf.pas',
srvSubfamilias_Impl in '..\Modulos\Subfamilias\Servidor\srvSubfamilias_Impl.pas' {srvSubfamilias: TDataAbstractService},
schSubfamiliasClient_Intf in '..\Modulos\Subfamilias\Model\schSubfamiliasClient_Intf.pas',
schSubfamiliasServer_Intf in '..\Modulos\Subfamilias\Model\schSubfamiliasServer_Intf.pas',
@@ -143,7 +141,12 @@ uses
schContratosClienteClient_Intf in '..\Modulos\Contratos de cliente\Model\schContratosClienteClient_Intf.pas',
schContratosClienteServer_Intf in '..\Modulos\Contratos de cliente\Model\schContratosClienteServer_Intf.pas',
schFacturasProveedorClient_Intf in '..\Modulos\Facturas de proveedor\Model\schFacturasProveedorClient_Intf.pas',
- schFacturasProveedorServer_Intf in '..\Modulos\Facturas de proveedor\Model\schFacturasProveedorServer_Intf.pas';
+ schFacturasProveedorServer_Intf in '..\Modulos\Facturas de proveedor\Model\schFacturasProveedorServer_Intf.pas',
+ srvTarifas_Impl in '..\Modulos\Tarifas\Servidor\srvTarifas_Impl.pas' {srvTarifas: TDataAbstractService},
+ schTarifasClient_Intf in '..\Modulos\Tarifas\Model\schTarifasClient_Intf.pas',
+ schTarifasServer_Intf in '..\Modulos\Tarifas\Model\schTarifasServer_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 c49e7eb..47ca073 100644
--- a/Source/Servidor/FactuGES_Server.dproj
+++ b/Source/Servidor/FactuGES_Server.dproj
@@ -28,7 +28,7 @@
Delphi.Personality
- FalseTrueFalseTrueFalse2810FalseFalseFalseFalseFalse30821252Rodax Software S.L.2.8.1.0FactuGES (Servidor)2.8.1.0viernes, 14 de febrero de 2020 13:12
+ FalseTrueFalseTrueFalse2820FalseFalseFalseFalseFalse30821252Rodax Software S.L.2.8.2.0FactuGES (Servidor)2.8.2.0viernes, 20 de marzo de 2020 17:29
File C:\Documents and Settings\All Users\Documentos\RAD Studio\5.0\Bpl\dxPScxScheduler2LnkD11.bpl not found
FactuGES_Server.dpr
@@ -251,6 +251,12 @@
TDataAbstractService
+
+
+
+
+ TDataAbstractService
+
diff --git a/Source/Servidor/FactuGES_Server.res b/Source/Servidor/FactuGES_Server.res
index 18fed7e..9e3420e 100644
Binary files a/Source/Servidor/FactuGES_Server.res and b/Source/Servidor/FactuGES_Server.res differ