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 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
fConfigurarConexion
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 - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + +
fDialogBase
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 - - - - - - + + + + + + +
fEditorArticulo
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 + + + + + + + + +
DataModuleTarifas
+
+
+
+ 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 + + + + + + + + + + + +
PluginTarifas
+
+
+
+ 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 + + + + + + + + + + + + + + + + + + + +
fEditorElegirTarifa
+ TfEditorFamilias +
+ +
fEditorTarifas
+ 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 @@
srvSubfamilias
TDataAbstractService
+ + + +
srvTarifas
+ 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