From 3f9985a6d3eed5afa7170d3f523ea12eb31500cf Mon Sep 17 00:00:00 2001 From: roberto Date: Thu, 23 Jun 2022 15:51:03 +0000 Subject: [PATCH] =?UTF-8?q?Version=203.9:=204=20Decimales,=20doble=20busca?= =?UTF-8?q?dor,=20tipos=20de=20venta,=20cambio=20de=20situaci=C3=B3n=20man?= =?UTF-8?q?ual=20de=20los=20pedidos=20de=20proveedor?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit git-svn-id: https://192.168.0.254/svn/Proyectos.AbetoDesign_FactuGES/trunk@167 93f398dd-4eb6-7a46-baf6-13f46f578da2 --- Resources/Iconos/logo-uecko-las-rozas.jpg | Bin 0 -> 26275 bytes .../TiposOperacionVenta_controller.dpk | Bin 0 -> 869 bytes .../TiposOperacionVenta_controller.dproj | 544 +++++++++++++++++ .../View/uIEditorElegirTipoOperacionVenta.pas | 18 + .../View/uIEditorTiposOperacionVenta.pas | 23 + .../uTiposOperacionVentaController.pas | 254 ++++++++ .../Data/TiposOperacionVenta_data.dpk | Bin 0 -> 708 bytes .../Data/TiposOperacionVenta_data.dproj | 543 +++++++++++++++++ .../Data/uDataModuleTiposOperacionVenta.dfm | 59 ++ .../Data/uDataModuleTiposOperacionVenta.pas | 59 ++ .../Data/uIDataModuleTiposOperacionVenta.pas | 16 + .../Model/TiposOperacionVenta_model.dpk | Bin 0 -> 968 bytes .../Model/TiposOperacionVenta_model.dproj | 549 +++++++++++++++++ .../schTiposOperacionVentaClient_Intf.pas | 134 +++++ .../schTiposOperacionVentaServer_Intf.pas | 143 +++++ .../Model/uBizTiposOperacionVenta.pas | 36 ++ .../Plugin/TiposOperacionVenta_plugin.dpk | Bin 0 -> 781 bytes .../Plugin/TiposOperacionVenta_plugin.dproj | 546 +++++++++++++++++ .../Plugin/uPluginTiposOperacionVenta.dfm | 190 ++++++ .../Plugin/uPluginTiposOperacionVenta.pas | 73 +++ .../Servidor/srvTiposOperacionVenta_Impl.dfm | 88 +++ .../Servidor/srvTiposOperacionVenta_Impl.pas | 61 ++ .../Views/TiposOperacionVenta_view.dpk | Bin 0 -> 1163 bytes .../Views/TiposOperacionVenta_view.dproj | 564 ++++++++++++++++++ .../Views/uEditorElegirTipoOperacionVenta.dfm | 90 +++ .../Views/uEditorElegirTipoOperacionVenta.pas | 70 +++ .../Views/uEditorTiposOperacionVenta.dfm | 144 +++++ .../Views/uEditorTiposOperacionVenta.pas | 181 ++++++ .../uTiposOperacionCompraViewRegister.pas | 26 + .../uTiposOperacionVentaViewRegister.pas | 26 + 30 files changed, 4437 insertions(+) create mode 100644 Resources/Iconos/logo-uecko-las-rozas.jpg create mode 100644 Source/Modulos/Tipos de operacion venta/Controller/TiposOperacionVenta_controller.dpk create mode 100644 Source/Modulos/Tipos de operacion venta/Controller/TiposOperacionVenta_controller.dproj create mode 100644 Source/Modulos/Tipos de operacion venta/Controller/View/uIEditorElegirTipoOperacionVenta.pas create mode 100644 Source/Modulos/Tipos de operacion venta/Controller/View/uIEditorTiposOperacionVenta.pas create mode 100644 Source/Modulos/Tipos de operacion venta/Controller/uTiposOperacionVentaController.pas create mode 100644 Source/Modulos/Tipos de operacion venta/Data/TiposOperacionVenta_data.dpk create mode 100644 Source/Modulos/Tipos de operacion venta/Data/TiposOperacionVenta_data.dproj create mode 100644 Source/Modulos/Tipos de operacion venta/Data/uDataModuleTiposOperacionVenta.dfm create mode 100644 Source/Modulos/Tipos de operacion venta/Data/uDataModuleTiposOperacionVenta.pas create mode 100644 Source/Modulos/Tipos de operacion venta/Model/Data/uIDataModuleTiposOperacionVenta.pas create mode 100644 Source/Modulos/Tipos de operacion venta/Model/TiposOperacionVenta_model.dpk create mode 100644 Source/Modulos/Tipos de operacion venta/Model/TiposOperacionVenta_model.dproj create mode 100644 Source/Modulos/Tipos de operacion venta/Model/schTiposOperacionVentaClient_Intf.pas create mode 100644 Source/Modulos/Tipos de operacion venta/Model/schTiposOperacionVentaServer_Intf.pas create mode 100644 Source/Modulos/Tipos de operacion venta/Model/uBizTiposOperacionVenta.pas create mode 100644 Source/Modulos/Tipos de operacion venta/Plugin/TiposOperacionVenta_plugin.dpk create mode 100644 Source/Modulos/Tipos de operacion venta/Plugin/TiposOperacionVenta_plugin.dproj create mode 100644 Source/Modulos/Tipos de operacion venta/Plugin/uPluginTiposOperacionVenta.dfm create mode 100644 Source/Modulos/Tipos de operacion venta/Plugin/uPluginTiposOperacionVenta.pas create mode 100644 Source/Modulos/Tipos de operacion venta/Servidor/srvTiposOperacionVenta_Impl.dfm create mode 100644 Source/Modulos/Tipos de operacion venta/Servidor/srvTiposOperacionVenta_Impl.pas create mode 100644 Source/Modulos/Tipos de operacion venta/Views/TiposOperacionVenta_view.dpk create mode 100644 Source/Modulos/Tipos de operacion venta/Views/TiposOperacionVenta_view.dproj create mode 100644 Source/Modulos/Tipos de operacion venta/Views/uEditorElegirTipoOperacionVenta.dfm create mode 100644 Source/Modulos/Tipos de operacion venta/Views/uEditorElegirTipoOperacionVenta.pas create mode 100644 Source/Modulos/Tipos de operacion venta/Views/uEditorTiposOperacionVenta.dfm create mode 100644 Source/Modulos/Tipos de operacion venta/Views/uEditorTiposOperacionVenta.pas create mode 100644 Source/Modulos/Tipos de operacion venta/Views/uTiposOperacionCompraViewRegister.pas create mode 100644 Source/Modulos/Tipos de operacion venta/Views/uTiposOperacionVentaViewRegister.pas diff --git a/Resources/Iconos/logo-uecko-las-rozas.jpg b/Resources/Iconos/logo-uecko-las-rozas.jpg new file mode 100644 index 0000000000000000000000000000000000000000..354895c306c73e1293a02a780edd9fb808df626a GIT binary patch literal 26275 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 F^S_1(-l+fp literal 0 HcmV?d00001 diff --git a/Source/Modulos/Tipos de operacion venta/Controller/TiposOperacionVenta_controller.dpk b/Source/Modulos/Tipos de operacion venta/Controller/TiposOperacionVenta_controller.dpk new file mode 100644 index 0000000000000000000000000000000000000000..8e6143d8b3446b38ca77111a9daebeb8712935ef GIT binary patch literal 869 zcmaKrO>dkq5Qck3;y?HhDN+@!8mWg$JsCXEQH;H^y(Ak|sw~!uP$*EAZ4Xudd%-N^ zV>jV|M-Q*x84u&u7LWG95mUC!Ube2YMcLH3t9$#SXzIRes>*d=!ypX)UMTW$)w%t@ zF{T_-LB33})}RbZp@|fpL{f6dDJL>XJYW!QQWS}t6>w)jFkpHs485BvW^1VoFh&hs zn2f(ce6x6S8B?yeStR*0CQ@w_4)1xJT!T141~a^;W2uWQ2bFMnJLfpotEfofHG>2c zh!~!qL(>Ep=Ez_Qd{O7H0p?dshs3_kn^{&@+g literal 0 HcmV?d00001 diff --git a/Source/Modulos/Tipos de operacion venta/Controller/TiposOperacionVenta_controller.dproj b/Source/Modulos/Tipos de operacion venta/Controller/TiposOperacionVenta_controller.dproj new file mode 100644 index 0000000..dae9fdd --- /dev/null +++ b/Source/Modulos/Tipos de operacion venta/Controller/TiposOperacionVenta_controller.dproj @@ -0,0 +1,544 @@ + + + + {7f80f8aa-6912-4714-986d-aed73035472b} + TiposOperacionVenta_controller.dpk + Debug + AnyCPU + DCC32 + ..\..\..\..\Output\Debug\Cliente\TiposOperacionVenta_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.0TiposOperacionVenta_controller.dpk + + + + + MainSource + + + + + + + + + + + + + + diff --git a/Source/Modulos/Tipos de operacion venta/Controller/View/uIEditorElegirTipoOperacionVenta.pas b/Source/Modulos/Tipos de operacion venta/Controller/View/uIEditorElegirTipoOperacionVenta.pas new file mode 100644 index 0000000..a4abfbd --- /dev/null +++ b/Source/Modulos/Tipos de operacion venta/Controller/View/uIEditorElegirTipoOperacionVenta.pas @@ -0,0 +1,18 @@ +unit uIEditorElegirTipoOperacionVenta; + +interface + +uses + uEditorBasico; + +type + IEditorElegirTipoOperacionVenta = interface(IEditorBasico) + ['{615AB791-8E25-4485-95F4-3589451C839D}'] + function GetTipoOperacionVenta: Variant; + procedure SetTipoOperacionVenta(const Value: Variant); + property TiposOperacionVenta: Variant Read GetTipoOperacionVenta write SetTipoOperacionVenta; + end; + +implementation + +end. diff --git a/Source/Modulos/Tipos de operacion venta/Controller/View/uIEditorTiposOperacionVenta.pas b/Source/Modulos/Tipos de operacion venta/Controller/View/uIEditorTiposOperacionVenta.pas new file mode 100644 index 0000000..636bb57 --- /dev/null +++ b/Source/Modulos/Tipos de operacion venta/Controller/View/uIEditorTiposOperacionVenta.pas @@ -0,0 +1,23 @@ +unit uIEditorTiposOperacionVenta; + +interface + +uses + uEditorDBBase, uBizTiposOperacionVenta, uTiposOperacionVentaController; + +type + IEditorTiposOperacionVenta = interface(IEditorDBBase) + ['{EB24AFBC-E9C5-4BDC-8E21-3C11D1AB04A6}'] + function GetTiposOperacionVenta: IBizTiposOperacionVenta; + procedure SetTiposOperacionVenta(const Value: IBizTiposOperacionVenta); + property TiposOperacionVenta: IBizTiposOperacionVenta read GetTiposOperacionVenta write SetTiposOperacionVenta; + + function GetController : ITiposOperacionVentaController; + procedure SetController (const Value : ITiposOperacionVentaController); + property Controller : ITiposOperacionVentaController read GetController write SetController; + end; + + +implementation + +end. diff --git a/Source/Modulos/Tipos de operacion venta/Controller/uTiposOperacionVentaController.pas b/Source/Modulos/Tipos de operacion venta/Controller/uTiposOperacionVentaController.pas new file mode 100644 index 0000000..51abb44 --- /dev/null +++ b/Source/Modulos/Tipos de operacion venta/Controller/uTiposOperacionVentaController.pas @@ -0,0 +1,254 @@ +unit uTiposOperacionVentaController; + +interface + + +uses + Classes, SysUtils, uDADataTable, uEditorDBItem, + uIDataModuleTiposOperacionVenta, uBizTiposOperacionVenta, uControllerBase; + +type + ITiposOperacionVentaController = interface(IControllerBase) + ['{3D5B4F73-F3E2-4846-9366-0EA930EE8146}'] + function BuscarTodos: IBizTiposOperacionVenta; + procedure VerTodos(ATiposOperacionVenta: IBizTiposOperacionVenta); + procedure Anadir(ATiposOperacionVenta : IBizTiposOperacionVenta); + function Eliminar(ATiposOperacionVenta : IBizTiposOperacionVenta): Boolean; + function Guardar(ATiposOperacionVenta : IBizTiposOperacionVenta): Boolean; + procedure DescartarCambios(ATiposOperacionVenta : IBizTiposOperacionVenta); + function Localizar(ATiposOperacionVenta: IBizTiposOperacionVenta; ADescripcion:String): Boolean; + function DarListaTiposOperacionVenta: TStringList; + function elegirTipoOperacionVenta: Variant; + end; + + TTiposOperacionVentaController = class(TControllerBase, ITiposOperacionVentaController) + protected + FDataModule : IDataModuleTiposOperacionVenta; + + procedure RecibirAviso(ASujeto: ISujeto; ADataTable: IDAStronglyTypedDataTable); override; + function CreateEditor(const AName : String; const IID: TGUID; out Intf): Boolean; + + function ValidarTipo(ATiposOperacionVenta: IBizTiposOperacionVenta): 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(ATiposOperacionVenta : IBizTiposOperacionVenta): Boolean; + function Guardar(ATiposOperacionVenta : IBizTiposOperacionVenta): Boolean; + procedure DescartarCambios(ATiposOperacionVenta : IBizTiposOperacionVenta); virtual; + procedure Anadir(ATiposOperacionVenta : IBizTiposOperacionVenta); + function BuscarTodos: IBizTiposOperacionVenta; + procedure VerTodos(ATiposOperacionVenta: IBizTiposOperacionVenta); + function Localizar(ATiposOperacionVenta: IBizTiposOperacionVenta; ADescripcion:String): Boolean; + function DarListaTiposOperacionVenta: TStringList; + function elegirTipoOperacionVenta: Variant; + end; + +implementation + +uses + cxControls, DB, uEditorRegistryUtils, schTiposOperacionVentaClient_Intf, + uIEditorTiposOperacionVenta, uDataModuleTiposOperacionVenta, + uDAInterfaces, uDataTableUtils, uIEditorElegirTipoOperacionVenta, + uDateUtils, uROTypes, DateUtils, Controls, Windows; + +{ TTiposOperacionVentaController } + +procedure TTiposOperacionVentaController.Anadir(ATiposOperacionVenta: IBizTiposOperacionVenta); +begin + ATiposOperacionVenta.Insert; +end; + +procedure TTiposOperacionVentaController.AsignarDataModule; +begin + FDataModule := TDataModuleTiposOperacionVenta.Create(Nil); +end; + +function TTiposOperacionVentaController.BuscarTodos: IBizTiposOperacionVenta; +begin + Result := FDataModule.GetItems; +end; + +constructor TTiposOperacionVentaController.Create; +begin + inherited; + AsignarDataModule; +end; + +function TTiposOperacionVentaController.CreateEditor(const AName: String; const IID: TGUID; out Intf): Boolean; +begin + Result := Supports(EditorRegistry.CreateEditor(AName), IID, Intf); +end; + +function TTiposOperacionVentaController.DarListaTiposOperacionVenta: TStringList; +var + ATiposOperacionVenta: IBizTiposOperacionVenta; +begin + ATiposOperacionVenta := BuscarTodos; + ATiposOperacionVenta.DataTable.Active := True; + Result := TStringList.Create; + try + with Result do + begin + ATiposOperacionVenta.DataTable.First; + while not ATiposOperacionVenta.DataTable.EOF do + begin + Add(ATiposOperacionVenta.DESCRIPCION); + ATiposOperacionVenta.DataTable.Next; + end; + end; + finally + ATiposOperacionVenta := NIL; + end; +end; + +procedure TTiposOperacionVentaController.DescartarCambios(ATiposOperacionVenta: IBizTiposOperacionVenta); +begin + if not Assigned(ATiposOperacionVenta) then + raise Exception.Create ('TiposOperacionVenta no asignado'); + + ShowHourglassCursor; + try + if (ATiposOperacionVenta.State in dsEditModes) then + ATiposOperacionVenta.Cancel; + + ATiposOperacionVenta.DataTable.CancelUpdates; + finally + HideHourglassCursor; + end; +end; + +destructor TTiposOperacionVentaController.Destroy; +begin + FDataModule := Nil; + inherited; +end; + +function TTiposOperacionVentaController.elegirTipoOperacionVenta: Variant; +var + AEditor : IEditorElegirTipoOperacionVenta; + +begin + Result := ''; + + CreateEditor('EditorElegirTipoOperacionVenta', IEditorElegirTipoOperacionVenta, AEditor); + if Assigned(AEditor) then + try + if (AEditor.ShowModal = mrOk) then + Result := AEditor.TiposOperacionVenta; + finally + AEditor.Release; + AEditor := NIL; + end; +end; + +function TTiposOperacionVentaController.ValidarTipo(ATiposOperacionVenta: IBizTiposOperacionVenta): Boolean; +begin + Result := False; + + if not Assigned(ATiposOperacionVenta) then + raise Exception.Create ('TiposOperacionVenta no asignada'); + + if (ATiposOperacionVenta.DataTable.State in dsEditModes) then + ATiposOperacionVenta.DataTable.Post; + + Result := True; +end; + +procedure TTiposOperacionVentaController.ValidarObjetos; +begin +// +end; + +procedure TTiposOperacionVentaController.VerTodos(ATiposOperacionVenta: IBizTiposOperacionVenta); +var + AEditor : IEditorTiposOperacionVenta; +begin + AEditor := NIL; + + CreateEditor('EditorTiposOperacionVenta', IEditorTiposOperacionVenta, AEditor); + if Assigned(AEditor) then + try + AEditor.Controller := Self; //OJO ORDEN MUY IMPORTANTE + AEditor.TiposOperacionVenta := ATiposOperacionVenta; + AEditor.ShowModal; + finally + AEditor.Release; + AEditor := NIL; + end; +end; + +function TTiposOperacionVentaController.Eliminar(ATiposOperacionVenta: IBizTiposOperacionVenta): Boolean; +begin + Result := False; + + if not Assigned(ATiposOperacionVenta) then + raise Exception.Create ('TiposOperacionVenta no asignada'); + + ShowHourglassCursor; + try + if (ATiposOperacionVenta.State in dsEditModes) then + ATiposOperacionVenta.Cancel; + + ATiposOperacionVenta.Delete; + ATiposOperacionVenta.DataTable.ApplyUpdates; + + Result := True; + finally + HideHourglassCursor; + end; +end; + +procedure TTiposOperacionVentaController.RecibirAviso(ASujeto: ISujeto; ADataTable: IDAStronglyTypedDataTable); +begin + inherited; +// +end; + +function TTiposOperacionVentaController.Guardar(ATiposOperacionVenta: IBizTiposOperacionVenta): Boolean; +begin + Result := False; + + if not Assigned(ATiposOperacionVenta) then + raise Exception.Create ('TiposOperacionVenta no asignada'); + + ValidarObjetos; + + if ValidarTipo(ATiposOperacionVenta) then + begin + ShowHourglassCursor; + try + ATiposOperacionVenta.DataTable.ApplyUpdates; + Result := True; + finally + HideHourglassCursor; + end; + end; +end; + +function TTiposOperacionVentaController.Localizar(ATiposOperacionVenta: IBizTiposOperacionVenta; ADescripcion: String): Boolean; +begin + Result := True; + ShowHourglassCursor; + try + with ATiposOperacionVenta.DataTable do + begin + DisableControls; + First; + if not Locate(fld_TiposOperacionVentaDESCRIPCION, ADescripcion, []) then + Result := False; + EnableControls; + end; + finally + HideHourglassCursor; + end; +end; + +end. diff --git a/Source/Modulos/Tipos de operacion venta/Data/TiposOperacionVenta_data.dpk b/Source/Modulos/Tipos de operacion venta/Data/TiposOperacionVenta_data.dpk new file mode 100644 index 0000000000000000000000000000000000000000..5133071909711df5c49e9d1b58550c0dc15aed58 GIT binary patch literal 708 zcmaKq&r8EF6vsUm`ak3#2qHtlgW&14d94rAWF%SLyh!MR6lYua!^_zJZr804Ia>PFZf}F2RIR7lNP2urEILUMb5#(z*PKz@#BzNs2GHq zWswp;m`sh;)ZTrV8l(J!EM@cz`&I|H9CaepQ(xoQuLhaoZ-xnKlrjFC!$5+Za^g75 zYAnQ$iG~c@W{&ynY>XT@*J!?B4*JkxU+A#BCruV15*W7|wL^-GB+5x<=o#5fw^Yg? z#Rv?t^V{qFInuG9m~1p5!H>~lu=F3Bvi-a;U~IWwTeq ztq=zGpFZB}xnFbwDe6`)W!06~@K!ciJ>M++KS8Xl*u`m=QR7w@Y + + + {28b6d86e-fac2-4bfd-97d9-fcea860835eb} + TiposOperacionVenta_data.dpk + Debug + AnyCPU + DCC32 + ..\..\..\..\Output\Debug\Cliente\TiposOperacionVenta_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.0TiposOperacionVenta_data.dpk + + + + + MainSource + + + + + + + + +
DataModuleTiposOperacionVenta
+
+
+
+ diff --git a/Source/Modulos/Tipos de operacion venta/Data/uDataModuleTiposOperacionVenta.dfm b/Source/Modulos/Tipos de operacion venta/Data/uDataModuleTiposOperacionVenta.dfm new file mode 100644 index 0000000..d3f5ae8 --- /dev/null +++ b/Source/Modulos/Tipos de operacion venta/Data/uDataModuleTiposOperacionVenta.dfm @@ -0,0 +1,59 @@ +inherited DataModuleTiposOperacionVenta: TDataModuleTiposOperacionVenta + OnCreate = DAClientDataModuleCreate + Height = 179 + Width = 445 + object RORemoteService: TRORemoteService + Message = dmConexion.ROMessage + Channel = dmConexion.ROChannel + ServiceName = 'srvTiposOperacionVenta' + Left = 48 + Top = 24 + end + object rda_TiposOperacionVenta: TDARemoteDataAdapter + DataStreamer = Bin2DataStreamer + GetSchemaCall.RemoteService = RORemoteService + GetDataCall.RemoteService = RORemoteService + UpdateDataCall.RemoteService = RORemoteService + GetScriptsCall.RemoteService = RORemoteService + RemoteService = RORemoteService + Left = 171 + Top = 23 + end + object Bin2DataStreamer: TDABin2DataStreamer + Left = 48 + Top = 88 + end + object tbl_TiposOperacionVenta: TDAMemDataTable + RemoteUpdatesOptions = [] + Fields = < + item + Name = 'ID' + DataType = datAutoInc + GeneratorName = 'GEN_TIPOS_OPERACION_VENTAS' + Required = True + ServerAutoRefresh = True + DictionaryEntry = 'TiposOperacionVenta_ID' + InPrimaryKey = True + end + item + Name = 'DESCRIPCION' + DataType = datString + Size = 2000 + DisplayLabel = 'TiposOperacionCompra_DESCRIPCION' + DictionaryEntry = 'TiposOperacionCompra_DESCRIPCION' + end> + Params = <> + StreamingOptions = [soDisableEventsWhileStreaming] + RemoteDataAdapter = rda_TiposOperacionVenta + LogicalName = 'TiposOperacionVenta' + IndexDefs = <> + Left = 320 + Top = 88 + end + object ds_TiposOperacionVenta: TDADataSource + DataSet = tbl_TiposOperacionVenta.Dataset + DataTable = tbl_TiposOperacionVenta + Left = 320 + Top = 32 + end +end diff --git a/Source/Modulos/Tipos de operacion venta/Data/uDataModuleTiposOperacionVenta.pas b/Source/Modulos/Tipos de operacion venta/Data/uDataModuleTiposOperacionVenta.pas new file mode 100644 index 0000000..95ca03f --- /dev/null +++ b/Source/Modulos/Tipos de operacion venta/Data/uDataModuleTiposOperacionVenta.pas @@ -0,0 +1,59 @@ +unit uDataModuleTiposOperacionVenta; + +interface + +uses + SysUtils, Classes, DB, uIDataModuleTiposOperacionVenta, uBizTiposOperacionVenta, uDAInterfaces, uDADataTable, + uDAScriptingProvider, uDAMemDataTable, uDADataStreamer, uDABin2DataStreamer, + uDARemoteDataAdapter, uROClient, uRORemoteService, uDataModuleBase; + +type + TDataModuleTiposOperacionVenta = class(TDataModuleBase, IDataModuleTiposOperacionVenta) + RORemoteService: TRORemoteService; + rda_TiposOperacionVenta: TDARemoteDataAdapter; + Bin2DataStreamer: TDABin2DataStreamer; + tbl_TiposOperacionVenta: TDAMemDataTable; + ds_TiposOperacionVenta: TDADataSource; + procedure DAClientDataModuleCreate(Sender: TObject); + protected + procedure AsignarClaseNegocio(ATarifa: TDADataTable); + public + function GetItems : IBizTiposOperacionVenta; + end; + +implementation +{$R *.DFM} + +uses + FactuGES_Intf, uDataModuleConexion, uDataTableUtils, cxControls, + schTiposOperacionVentaClient_Intf; + +{ TdmTiposOperacionVenta } + +procedure TDataModuleTiposOperacionVenta.AsignarClaseNegocio(ATarifa: TDADataTable); +begin + ATarifa.BusinessRulesID := BIZ_CLIENT_TIPOS_OP_VENTA; +end; + +procedure TDataModuleTiposOperacionVenta.DAClientDataModuleCreate(Sender: TObject); +begin + RORemoteService.Channel := dmConexion.Channel; + RORemoteService.Message := dmConexion.Message; +end; + +function TDataModuleTiposOperacionVenta.GetItems: IBizTiposOperacionVenta; +var + ATiposOperacionVenta : TDAMemDataTable; +begin + ShowHourglassCursor; + try + ATiposOperacionVenta := CloneDataTable(tbl_TiposOperacionVenta); + AsignarClaseNegocio(ATiposOperacionVenta); + Result := (ATiposOperacionVenta as IBizTiposOperacionVenta); + finally + HideHourglassCursor; + end; +end; + + +end. diff --git a/Source/Modulos/Tipos de operacion venta/Model/Data/uIDataModuleTiposOperacionVenta.pas b/Source/Modulos/Tipos de operacion venta/Model/Data/uIDataModuleTiposOperacionVenta.pas new file mode 100644 index 0000000..0fa4305 --- /dev/null +++ b/Source/Modulos/Tipos de operacion venta/Model/Data/uIDataModuleTiposOperacionVenta.pas @@ -0,0 +1,16 @@ +unit uIDataModuleTiposOperacionVenta; + +interface + +uses + uBizTiposOperacionVenta; + +type + IDataModuleTiposOperacionVenta = interface + ['{2E517D3C-2E00-4660-9198-A4C6FF640949}'] + function GetItems: IBizTiposOperacionVenta; + end; + +implementation + +end. diff --git a/Source/Modulos/Tipos de operacion venta/Model/TiposOperacionVenta_model.dpk b/Source/Modulos/Tipos de operacion venta/Model/TiposOperacionVenta_model.dpk new file mode 100644 index 0000000000000000000000000000000000000000..a91c7d6227f3043ac1619aa108cec4f27cb6de3a GIT binary patch literal 968 zcmah|!H%0S5bYT$|KP()D^*q0NIg{Q$>4!nYwXB&*v+a^s)`QtSG=;4`EP_Sw>q?^6%g*+{#~3r3 zaP6)UffFEV%Qe26P@1lV)IbQFMnn2qr{=dIB>nj}E6o$L8HissV=#BG*wpOQe(o z-=vD(16ui}(iA5UVg=~x-P>`U&^4nG)!~LRa>`x=o&9kr-Qz6+gu0=6GwzT1aSu&z zJ&R+Z zo7P9BXq=#*uDo&6R@UC%fsQh1QyeP$%uJ%PM%N?b(*@$PHT|_ObO_6zFDbon_LSV` oU!Td1s?z-+J6aE)y`hV&OM=RFkG8ucc*gRAzInDTmW$xkAC9Lc(*OVf literal 0 HcmV?d00001 diff --git a/Source/Modulos/Tipos de operacion venta/Model/TiposOperacionVenta_model.dproj b/Source/Modulos/Tipos de operacion venta/Model/TiposOperacionVenta_model.dproj new file mode 100644 index 0000000..ebdb5c0 --- /dev/null +++ b/Source/Modulos/Tipos de operacion venta/Model/TiposOperacionVenta_model.dproj @@ -0,0 +1,549 @@ + + + + {73acd39c-b2f0-49b7-9acf-10945bbac8c1} + TiposOperacionVenta_model.dpk + Debug + AnyCPU + DCC32 + ..\..\..\..\Output\Debug\Cliente\TiposOperacionVenta_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.0TiposOperacionVenta_model.dpk + + + + + MainSource + + + + + + + + + + + + + + + + + + + diff --git a/Source/Modulos/Tipos de operacion venta/Model/schTiposOperacionVentaClient_Intf.pas b/Source/Modulos/Tipos de operacion venta/Model/schTiposOperacionVentaClient_Intf.pas new file mode 100644 index 0000000..605ee61 --- /dev/null +++ b/Source/Modulos/Tipos de operacion venta/Model/schTiposOperacionVentaClient_Intf.pas @@ -0,0 +1,134 @@ +unit schTiposOperacionVentaClient_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_TiposOperacionVenta = '{CC8C03DD-FBD9-417E-A1BB-10F3D8CB89E8}'; + + { Data table names } + nme_TiposOperacionVenta = 'TiposOperacionVenta'; + + { TiposOperacionVenta fields } + fld_TiposOperacionVentaID = 'ID'; + fld_TiposOperacionVentaDESCRIPCION = 'DESCRIPCION'; + + { TiposOperacionVenta field indexes } + idx_TiposOperacionVentaID = 0; + idx_TiposOperacionVentaDESCRIPCION = 1; + +type + { ITiposOperacionVenta } + ITiposOperacionVenta = interface(IDAStronglyTypedDataTable) + ['{3DEE4D57-B5BC-4F1E-B8A3-D59B575D4038}'] + { 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; + + { TTiposOperacionVentaDataTableRules } + TTiposOperacionVentaDataTableRules = class(TIntfObjectDADataTableRules, ITiposOperacionVenta) + 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; + +{ TTiposOperacionVentaDataTableRules } +constructor TTiposOperacionVentaDataTableRules.Create(aDataTable: TDADataTable); +begin + inherited; +end; + +destructor TTiposOperacionVentaDataTableRules.Destroy; +begin + inherited; +end; + +function TTiposOperacionVentaDataTableRules.GetIDValue: Integer; +begin + result := DataTable.Fields[idx_TiposOperacionVentaID].AsInteger; +end; + +procedure TTiposOperacionVentaDataTableRules.SetIDValue(const aValue: Integer); +begin + DataTable.Fields[idx_TiposOperacionVentaID].AsInteger := aValue; +end; + +function TTiposOperacionVentaDataTableRules.GetIDIsNull: boolean; +begin + result := DataTable.Fields[idx_TiposOperacionVentaID].IsNull; +end; + +procedure TTiposOperacionVentaDataTableRules.SetIDIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_TiposOperacionVentaID].AsVariant := Null; +end; + +function TTiposOperacionVentaDataTableRules.GetDESCRIPCIONValue: String; +begin + result := DataTable.Fields[idx_TiposOperacionVentaDESCRIPCION].AsString; +end; + +procedure TTiposOperacionVentaDataTableRules.SetDESCRIPCIONValue(const aValue: String); +begin + DataTable.Fields[idx_TiposOperacionVentaDESCRIPCION].AsString := aValue; +end; + +function TTiposOperacionVentaDataTableRules.GetDESCRIPCIONIsNull: boolean; +begin + result := DataTable.Fields[idx_TiposOperacionVentaDESCRIPCION].IsNull; +end; + +procedure TTiposOperacionVentaDataTableRules.SetDESCRIPCIONIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_TiposOperacionVentaDESCRIPCION].AsVariant := Null; +end; + + +initialization + RegisterDataTableRules(RID_TiposOperacionVenta, TTiposOperacionVentaDataTableRules); + +end. diff --git a/Source/Modulos/Tipos de operacion venta/Model/schTiposOperacionVentaServer_Intf.pas b/Source/Modulos/Tipos de operacion venta/Model/schTiposOperacionVentaServer_Intf.pas new file mode 100644 index 0000000..ebcfd9f --- /dev/null +++ b/Source/Modulos/Tipos de operacion venta/Model/schTiposOperacionVentaServer_Intf.pas @@ -0,0 +1,143 @@ +unit schTiposOperacionVentaServer_Intf; + +interface + +uses + Classes, DB, SysUtils, uROClasses, uDADataTable, uDABusinessProcessor, FmtBCD, uROXMLIntf, schTiposOperacionVentaClient_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_TiposOperacionVentaDelta = '{8584F969-01AB-4E50-9F75-F5333A3E4874}'; + +type + { ITiposOperacionVentaDelta } + ITiposOperacionVentaDelta = interface(ITiposOperacionVenta) + ['{8584F969-01AB-4E50-9F75-F5333A3E4874}'] + { Property getters and setters } + function GetOldIDValue : Integer; + function GetOldDESCRIPCIONValue : String; + + { Properties } + property OldID : Integer read GetOldIDValue; + property OldDESCRIPCION : String read GetOldDESCRIPCIONValue; + end; + + { TTiposOperacionVentaBusinessProcessorRules } + TTiposOperacionVentaBusinessProcessorRules = class(TDABusinessProcessorRules, ITiposOperacionVenta, ITiposOperacionVentaDelta) + 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; + +{ TTiposOperacionVentaBusinessProcessorRules } +constructor TTiposOperacionVentaBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor); +begin + inherited; +end; + +destructor TTiposOperacionVentaBusinessProcessorRules.Destroy; +begin + inherited; +end; + +function TTiposOperacionVentaBusinessProcessorRules.GetIDValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_TiposOperacionVentaID]; +end; + +function TTiposOperacionVentaBusinessProcessorRules.GetIDIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_TiposOperacionVentaID]); +end; + +function TTiposOperacionVentaBusinessProcessorRules.GetOldIDValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_TiposOperacionVentaID]; +end; + +function TTiposOperacionVentaBusinessProcessorRules.GetOldIDIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_TiposOperacionVentaID]); +end; + +procedure TTiposOperacionVentaBusinessProcessorRules.SetIDValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_TiposOperacionVentaID] := aValue; +end; + +procedure TTiposOperacionVentaBusinessProcessorRules.SetIDIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_TiposOperacionVentaID] := Null; +end; + +function TTiposOperacionVentaBusinessProcessorRules.GetDESCRIPCIONValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_TiposOperacionVentaDESCRIPCION]; +end; + +function TTiposOperacionVentaBusinessProcessorRules.GetDESCRIPCIONIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_TiposOperacionVentaDESCRIPCION]); +end; + +function TTiposOperacionVentaBusinessProcessorRules.GetOldDESCRIPCIONValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_TiposOperacionVentaDESCRIPCION]; +end; + +function TTiposOperacionVentaBusinessProcessorRules.GetOldDESCRIPCIONIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_TiposOperacionVentaDESCRIPCION]); +end; + +procedure TTiposOperacionVentaBusinessProcessorRules.SetDESCRIPCIONValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_TiposOperacionVentaDESCRIPCION] := aValue; +end; + +procedure TTiposOperacionVentaBusinessProcessorRules.SetDESCRIPCIONIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_TiposOperacionVentaDESCRIPCION] := Null; +end; + + +initialization + RegisterBusinessProcessorRules(RID_TiposOperacionVentaDelta, TTiposOperacionVentaBusinessProcessorRules); + +end. diff --git a/Source/Modulos/Tipos de operacion venta/Model/uBizTiposOperacionVenta.pas b/Source/Modulos/Tipos de operacion venta/Model/uBizTiposOperacionVenta.pas new file mode 100644 index 0000000..ccc5f74 --- /dev/null +++ b/Source/Modulos/Tipos de operacion venta/Model/uBizTiposOperacionVenta.pas @@ -0,0 +1,36 @@ +unit uBizTiposOperacionVenta; + +interface + +uses + uDAInterfaces, uDADataTable, schTiposOperacionVentaClient_Intf; + +const + BIZ_CLIENT_TIPOS_OP_VENTA = 'Client.TiposOperacionVenta'; + +type + IBizTiposOperacionVenta = interface(ITiposOperacionVenta) + ['{AE0CC097-B219-4D66-8D8C-23D4D2FB05AA}'] + end; + + TBizTiposOperacionVenta = class(TTiposOperacionVentaDataTableRules, IBizTiposOperacionVenta) + procedure AfterOpen(Sender: TDADataTable); override; + end; + +implementation + +{ TBizTiposOperacionVenta } + +procedure TBizTiposOperacionVenta.AfterOpen(Sender: TDADataTable); +begin + inherited; + DataTable.Sort([fld_TiposOperacionVentaDESCRIPCION], [sdAscending]); +end; + +initialization + RegisterDataTableRules(BIZ_CLIENT_TIPOS_OP_VENTA, TBizTiposOperacionVenta); + +finalization + +end. + diff --git a/Source/Modulos/Tipos de operacion venta/Plugin/TiposOperacionVenta_plugin.dpk b/Source/Modulos/Tipos de operacion venta/Plugin/TiposOperacionVenta_plugin.dpk new file mode 100644 index 0000000000000000000000000000000000000000..78a793162cb5f83e474ef7bb35fcf7ea2ed1c478 GIT binary patch literal 781 zcmZ{iO-uAJ5XU_i`W&1~hi=*(nz3*lfTiN*&Y zOV?CPXbb_>Ku)hNhjpMS#}G}hM$Qh=zSr5eec6AW?-A1Ns*B-#FUB*-x7LApjk8VL zwknH!*N?)?Qa25ntsdEOsa(ikL-StRkE54GQ}4Q_s%&@E<+XXTm7BT2IWKFcdOueG dqaZ13a(4WB(dOGT@_97;%ayYA)57;oz5%@0=otV2 literal 0 HcmV?d00001 diff --git a/Source/Modulos/Tipos de operacion venta/Plugin/TiposOperacionVenta_plugin.dproj b/Source/Modulos/Tipos de operacion venta/Plugin/TiposOperacionVenta_plugin.dproj new file mode 100644 index 0000000..e5a10bb --- /dev/null +++ b/Source/Modulos/Tipos de operacion venta/Plugin/TiposOperacionVenta_plugin.dproj @@ -0,0 +1,546 @@ + + + + {82e36812-58c4-491b-b463-6b951e95da51} + TiposOperacionVenta_plugin.dpk + Debug + AnyCPU + DCC32 + ..\..\..\..\Output\Debug\Cliente\TiposOperacionVenta_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.0TiposOperacionVenta_plugin.dpk + + + + + MainSource + + + + + + + + + + + +
PluginTiposOperacionVenta
+
+
+
+ diff --git a/Source/Modulos/Tipos de operacion venta/Plugin/uPluginTiposOperacionVenta.dfm b/Source/Modulos/Tipos de operacion venta/Plugin/uPluginTiposOperacionVenta.dfm new file mode 100644 index 0000000..f9cb25a --- /dev/null +++ b/Source/Modulos/Tipos de operacion venta/Plugin/uPluginTiposOperacionVenta.dfm @@ -0,0 +1,190 @@ +object PluginTiposOperacionVenta: TPluginTiposOperacionVenta + OldCreateOrder = True + DefaultAction = actTiposOperacionVentas + 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 actTiposOperacionVentas: TAction + Category = 'Tipos operaci'#243'n ventas' + Caption = 'Tipos de operaci'#243'n ventas' + ImageIndex = 1 + OnExecute = actTiposOperacionVentasExecute + end + end + object MainMenu: TMainMenu + Images = LargeImages + Left = 40 + Top = 16 + object Ventas1: TMenuItem + Caption = 'Datos' + object TiposOperacionVenta1: TMenuItem + Tag = 900 + Action = actTiposOperacionVentas + 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 + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000000CE4944415478DA + 63FCFFFF3F03258071E00D58B6E514D92644F99831820D50F76666987C3219AB + A2DF7FFF327CFFF387E1DBEFDF0C1F7FFC00B3E7FA6F6548F198C3707EE77484 + 0120003364AED9390C836CB6C9C13583008A0154090372BD81620039DE801BB0 + 4B240DAE10A699F9141344E02A03C3DFC47F60A6E65A5186EF4097805C23B72C + 810803AE42C4600628AC10006B06618DD5A90C8C20419021C8068024975B5FC6 + F002B26690570CD767220C8005225812AA08A6109BD8D9F4B390308019D03D79 + 3E79D138E0990900FC7AC6454D6D985F0000000049454E44AE426082} + 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/Tipos de operacion venta/Plugin/uPluginTiposOperacionVenta.pas b/Source/Modulos/Tipos de operacion venta/Plugin/uPluginTiposOperacionVenta.pas new file mode 100644 index 0000000..c47574e --- /dev/null +++ b/Source/Modulos/Tipos de operacion venta/Plugin/uPluginTiposOperacionVenta.pas @@ -0,0 +1,73 @@ +unit uPluginTiposOperacionVenta; + +interface + +uses + uModuleController, uInterfaces, uHostManager, Menus, Classes, ActnList, + ImgList, Controls, PngImageList; + +type + IMCTiposOperacionVenta = interface(IInterface) + ['{E58B1C74-2448-4D0C-BA84-B9D199E5F29F}'] + end; + + TPluginTiposOperacionVenta = class(TModuleController, IMCTiposOperacionVenta) + actTiposOperacionVentas: TAction; + ExtraImages: TPngImageList; + LargeImages: TPngImageList; + MainMenu: TMainMenu; + ModuleActionList: TActionList; + SmallImages: TPngImageList; + Ventas1: TMenuItem; + TiposOperacionVenta1: TMenuItem; + procedure actTiposOperacionVentasExecute(Sender: TObject); + public + constructor Create(AOwner: TComponent); override; + destructor Destroy; override; + end; + +implementation + +{$R *.dfm} + +uses + Forms, Dialogs, SysUtils, + uTiposOperacionVentaController, uBizTiposOperacionVenta, uTiposOperacionVentaViewRegister; + +function GetModule : TModuleController; +begin + Result := TPluginTiposOperacionVenta.Create(NIL); +end; + +exports + GetModule name GET_MODULE_FUNC; + +procedure TPluginTiposOperacionVenta.actTiposOperacionVentasExecute(Sender: TObject); +var + ATiposOperacionVentaController : ITiposOperacionVentaController; + ATiposOperacionVenta : IBizTiposOperacionVenta; +begin + ATiposOperacionVentaController := TTiposOperacionVentaController.Create; + ATiposOperacionVenta := (ATiposOperacionVentaController.BuscarTodos as IBizTiposOperacionVenta); + ATiposOperacionVentaController.VerTodos(ATiposOperacionVenta); +end; + +constructor TPluginTiposOperacionVenta.Create(AOwner: TComponent); +begin + inherited; + uTiposOperacionVentaViewRegister.RegisterViews; +end; + +destructor TPluginTiposOperacionVenta.Destroy; +begin + uTiposOperacionVentaViewRegister.UnregisterViews; + inherited; +end; + +initialization + RegisterModuleClass(TPluginTiposOperacionVenta); + +finalization + UnRegisterModuleClass(TPluginTiposOperacionVenta); + +end. diff --git a/Source/Modulos/Tipos de operacion venta/Servidor/srvTiposOperacionVenta_Impl.dfm b/Source/Modulos/Tipos de operacion venta/Servidor/srvTiposOperacionVenta_Impl.dfm new file mode 100644 index 0000000..3a23b64 --- /dev/null +++ b/Source/Modulos/Tipos de operacion venta/Servidor/srvTiposOperacionVenta_Impl.dfm @@ -0,0 +1,88 @@ +object srvTiposOperacionVenta: TsrvTiposOperacionVenta + OldCreateOrder = True + OnCreate = DataAbstractServiceCreate + SessionManager = dmServer.SessionManager + ServiceSchema = schTiposOperacionVenta + ServiceDataStreamer = Bin2DataStreamer + ExportedDataTables = <> + BeforeAcquireConnection = DataAbstractServiceBeforeAcquireConnection + Height = 300 + Width = 300 + object schTiposOperacionVenta: TDASchema + ConnectionManager = dmServer.ConnectionManager + Datasets = < + item + Params = <> + Statements = < + item + Connection = 'IBX' + ConnectionType = 'Interbase' + TargetTable = 'TIPOS_FACTURA_CLIENTE' + Name = 'IBX' + StatementType = stAutoSQL + ColumnMappings = < + item + DatasetField = 'ID' + TableField = 'ID' + end + item + DatasetField = 'DESCRIPCION' + TableField = 'DESCRIPCION' + end> + end> + Name = 'TiposOperacionVenta' + Fields = < + item + Name = 'ID' + DataType = datAutoInc + GeneratorName = 'GEN_TIPOS_OPERACION_VENTAS' + Required = True + ServerAutoRefresh = True + DictionaryEntry = 'TiposOperacionVenta_ID' + InPrimaryKey = True + end + item + Name = 'DESCRIPCION' + DataType = datString + Size = 2000 + DisplayLabel = 'TiposOperacionCompra_DESCRIPCION' + DictionaryEntry = 'TiposOperacionCompra_DESCRIPCION' + end> + end> + JoinDataTables = <> + UnionDataTables = <> + Commands = <> + RelationShips = <> + UpdateRules = <> + Version = 0 + Left = 80 + Top = 24 + end + object Bin2DataStreamer: TDABin2DataStreamer + Left = 80 + Top = 88 + 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 = 190 + Top = 22 + end + object Diagrams: TDADiagrams + Left = 190 + Top = 90 + DiagramData = ''#13#10''#13#10 + end +end diff --git a/Source/Modulos/Tipos de operacion venta/Servidor/srvTiposOperacionVenta_Impl.pas b/Source/Modulos/Tipos de operacion venta/Servidor/srvTiposOperacionVenta_Impl.pas new file mode 100644 index 0000000..453a047 --- /dev/null +++ b/Source/Modulos/Tipos de operacion venta/Servidor/srvTiposOperacionVenta_Impl.pas @@ -0,0 +1,61 @@ +unit srvTiposOperacionVenta_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. } +{----------------------------------------------------------------------------} + +{$I Remobjects.inc} + +interface + +uses + {vcl:} Classes, SysUtils, + {RemObjects:} uROXMLIntf, uROClientIntf, uROTypes, uROServer, uROServerIntf, uROSessions, + {Ancestor Implementation:} DataAbstractService_Impl, + {Used RODLs:} DataAbstract4_Intf, + {Generated:} FactuGES_Intf, uDADataStreamer, uDABin2DataStreamer, uDAClasses, uDAInterfaces; + +type + { TsrvTiposOperacionVenta } + TsrvTiposOperacionVenta = class(TDataAbstractService, IsrvTiposOperacionVenta) + Bin2DataStreamer: TDABin2DataStreamer; + DataDictionary: TDADataDictionary; + Diagrams: TDADiagrams; + schTiposOperacionVenta: TDASchema; + procedure DataAbstractServiceBeforeAcquireConnection(aSender: TObject; var aConnectionName: string); + procedure DataAbstractServiceCreate(Sender: TObject); + end; + +implementation + +{$R *.dfm} +uses + {Generated:} FactuGES_Invk, uDataModuleServer, uDatabaseUtils; + +procedure Create_srvTiposOperacionVenta(out anInstance : IUnknown); +begin + anInstance := TsrvTiposOperacionVenta.Create(nil); +end; + +{ srvTiposVenta } + +procedure TsrvTiposOperacionVenta.DataAbstractServiceBeforeAcquireConnection(aSender: TObject; var aConnectionName: string); +begin + ConnectionName := dmServer.ConnectionName; +end; + +procedure TsrvTiposOperacionVenta.DataAbstractServiceCreate(Sender: TObject); +begin + //SessionManager := dmServer.SessionManager; +end; + + +initialization + TROClassFactory.Create('srvTiposOperacionVenta', Create_srvTiposOperacionVenta, TsrvTiposOperacionVenta_Invoker); + +finalization + +end. diff --git a/Source/Modulos/Tipos de operacion venta/Views/TiposOperacionVenta_view.dpk b/Source/Modulos/Tipos de operacion venta/Views/TiposOperacionVenta_view.dpk new file mode 100644 index 0000000000000000000000000000000000000000..87e995f56f0bf9a7a2daa652b75f018d714ef459 GIT binary patch literal 1163 zcmah}!H%0S5bZfq{=tWpR;sF~k$R}wlfeVE7I0*o>}D^K18(Xq0cyxLtJVH{!32`D ziOK;F&+pBf84RUNe#(tPLYGCwN@ZlCi+rK-TCSe8`u%l08joIYIC?)Zs(Nc<98f<( zpSw7YfeXr_7_rDA4r2iOfln_X2j`dmQTJIP&3d3_Rcv zxp3M?j6EQ9K?w}K#sa%{9>*ax#T@d9n?7}G~UQ#(`|VjmnF1G@S2vAquHETAqG&YTA1pdOEm`nA)|%NvgnGIjQ$U7wR~ zb!4S1;Lqt0eudBK_DfP-Nj9QWDv`?C@ZIo8IENvvyq8DM>K46zzpDR `Bu zTb*fHz1iA!7rYkDx60K09hk9t?K+YaN5N+&Uq`>SQq-S(^Ppn I8IRum0dKx#LI3~& literal 0 HcmV?d00001 diff --git a/Source/Modulos/Tipos de operacion venta/Views/TiposOperacionVenta_view.dproj b/Source/Modulos/Tipos de operacion venta/Views/TiposOperacionVenta_view.dproj new file mode 100644 index 0000000..4021954 --- /dev/null +++ b/Source/Modulos/Tipos de operacion venta/Views/TiposOperacionVenta_view.dproj @@ -0,0 +1,564 @@ + + + + {e3d36a6f-7004-4c89-9f3d-f2d77e386d1b} + TiposOperacionVenta_view.dpk + Debug + AnyCPU + DCC32 + ..\..\..\..\Output\Debug\Cliente\TiposOperacionVenta_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.0TiposOperacionVenta_view.dpk + + + + + MainSource + + + + + + + + + + + + + + + + + + + +
fEditorElegirTipoOperacionVenta
+ TfEditorFamilias +
+ +
fEditorTiposOperacionVenta
+ TfEditorFamilias +
+ + + + + +
+
+ diff --git a/Source/Modulos/Tipos de operacion venta/Views/uEditorElegirTipoOperacionVenta.dfm b/Source/Modulos/Tipos de operacion venta/Views/uEditorElegirTipoOperacionVenta.dfm new file mode 100644 index 0000000..6c0adae --- /dev/null +++ b/Source/Modulos/Tipos de operacion venta/Views/uEditorElegirTipoOperacionVenta.dfm @@ -0,0 +1,90 @@ +object fEditorElegirTipoOperacionVenta: TfEditorElegirTipoOperacionVenta + Left = 0 + Top = 0 + BorderStyle = bsDialog + Caption = 'Tipo de operaci'#243'n' + 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 = 238 + Height = 13 + Caption = 'Seleccione el tipo de operaci'#243'n que desea asignar' + end + object combo: TLabel + Left = 81 + Top = 45 + Width = 24 + Height = 13 + Alignment = taRightJustify + Caption = 'Tipo:' + end + object Panel1: TPanel + Left = 0 + Top = 83 + Width = 424 + Height = 41 + Align = alBottom + TabOrder = 0 + DesignSize = ( + 424 + 41) + object bAceptar: TButton + Left = 260 + Top = 8 + Width = 75 + Height = 25 + Anchors = [akTop, akRight] + Caption = 'Aceptar' + ModalResult = 1 + TabOrder = 0 + end + object bCancelar: TButton + Left = 341 + Top = 8 + Width = 75 + Height = 25 + Anchors = [akTop, akRight] + Caption = 'Cancelar' + ModalResult = 2 + TabOrder = 1 + end + end + object cbTipo: 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 = dsTipo + Style.LookAndFeel.Kind = lfOffice11 + StyleDisabled.LookAndFeel.Kind = lfOffice11 + StyleFocused.LookAndFeel.Kind = lfOffice11 + StyleHot.LookAndFeel.Kind = lfOffice11 + TabOrder = 1 + Width = 266 + end + object dsTipo: TDADataSource + Left = 24 + Top = 64 + end +end diff --git a/Source/Modulos/Tipos de operacion venta/Views/uEditorElegirTipoOperacionVenta.pas b/Source/Modulos/Tipos de operacion venta/Views/uEditorElegirTipoOperacionVenta.pas new file mode 100644 index 0000000..ca5d6a7 --- /dev/null +++ b/Source/Modulos/Tipos de operacion venta/Views/uEditorElegirTipoOperacionVenta.pas @@ -0,0 +1,70 @@ +unit uEditorElegirTipoOperacionVenta; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, StdCtrls, cxControls, cxContainer, cxEdit, cxTextEdit, cxMaskEdit, + cxDropDownEdit, cxCalendar, ExtCtrls, uEditorBasico, uIEditorElegirTipoOperacionVenta, + cxGraphics, DB, uDAInterfaces, uDADataTable, cxDBEdit, uTiposOperacionVentaController, + cxLookupEdit, cxDBLookupEdit, cxDBLookupComboBox, uBizTiposOperacionVenta; + +type + TfEditorElegirTipoOperacionVenta = class(TfEditorBasico, IEditorElegirTipoOperacionVenta) + Label1: TLabel; + bAceptar: TButton; + bCancelar: TButton; + combo: TLabel; + Panel1: TPanel; + cbTipo: TcxLookupComboBox; + dsTipo: TDADataSource; + procedure FormShow(Sender: TObject); + procedure FormDestroy(Sender: TObject); + + private + FController: ITiposOperacionVentaController; + FListaTiposOperacionVenta : IBizTiposOperacionVenta; + FTipoOperacionVenta: Variant; + function GetTipoOperacionVenta: Variant; + procedure SetTipoOperacionVenta(const Value: Variant); + + public + property TipoOperacionVenta: Variant Read GetTipoOperacionVenta write SetTipoOperacionVenta; + + end; + +implementation +{$R *.dfm} + +uses uFactuGES_App; + +procedure TfEditorElegirTipoOperacionVenta.FormDestroy(Sender: TObject); +begin + FController := Nil; + FListaTiposOperacionVenta := Nil; +end; + +procedure TfEditorElegirTipoOperacionVenta.FormShow(Sender: TObject); +var + + i : integer; + +begin + FController := TTiposOperacionVentaController.Create; + FListaTiposOperacionVenta := FController.BuscarTodos; + FListaTiposOperacionVenta.DataTable.Active := True; + dsTipo.DataTable := FListaTiposOperacionVenta.DataTable; + cbTipo.ItemIndex := 0; +end; + +function TfEditorElegirTipoOperacionVenta.GetTipoOperacionVenta: Variant; +begin + Result := FListaTiposOperacionVenta.ID; +end; + +procedure TfEditorElegirTipoOperacionVenta.SetTipoOperacionVenta(const Value: variant); +begin +// cbTarifa.ItemIndex := cbTarifa.Properties.Items.IndexOfName(Value); +end; + +end. diff --git a/Source/Modulos/Tipos de operacion venta/Views/uEditorTiposOperacionVenta.dfm b/Source/Modulos/Tipos de operacion venta/Views/uEditorTiposOperacionVenta.dfm new file mode 100644 index 0000000..702e25c --- /dev/null +++ b/Source/Modulos/Tipos de operacion venta/Views/uEditorTiposOperacionVenta.dfm @@ -0,0 +1,144 @@ +object fEditorTiposOperacionVenta: TfEditorTiposOperacionVenta + Left = 453 + Top = 234 + ActiveControl = ListaTiposOperacionVenta + BorderIcons = [biSystemMenu] + BorderStyle = bsSingle + Caption = 'Administraci'#243'n de tipos de operaci'#243'n' + 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 = 'Tipos de operaci'#243'n para ventas' + object Label1: TLabel + Left = 10 + Top = 12 + Width = 186 + Height = 13 + Caption = 'Lista de tipos de operaci'#243'n para ventas' + end + object Label2: TLabel + Left = 10 + Top = 326 + Width = 98 + Height = 13 + Caption = 'A'#241'adir un nuevo tipo' + end + object Bevel1: TBevel + Left = 132 + Top = 330 + Width = 244 + Height = 5 + Shape = bsBottomLine + end + object eCategoria: TLabel + Left = 18 + Top = 353 + Width = 77 + Height = 13 + Caption = 'Nombre del tipo:' + end + object ListaTiposOperacionVenta: 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 editTipoOperacionVenta: 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/Tipos de operacion venta/Views/uEditorTiposOperacionVenta.pas b/Source/Modulos/Tipos de operacion venta/Views/uEditorTiposOperacionVenta.pas new file mode 100644 index 0000000..1a312c3 --- /dev/null +++ b/Source/Modulos/Tipos de operacion venta/Views/uEditorTiposOperacionVenta.pas @@ -0,0 +1,181 @@ +{ +=============================================================================== + Copyright (©) 2006. Rodax Software. +=============================================================================== + Los contenidos de este fichero son propiedad de Rodax Software titular del + copyright. Este fichero sólo podrá ser copiado, distribuido y utilizado, + en su totalidad o en parte, con el permiso escrito de Rodax Software, o de + acuerdo con los términos y condiciones establecidas en el acuerdo/contrato + bajo el que se suministra. + ----------------------------------------------------------------------------- + Web: www.rodax-software.com +=============================================================================== + Fecha primera versión: 22-05-2006 + Versión actual: 1.0.0 + Fecha versión actual: 22-05-2006 +=============================================================================== + Modificaciones: + + Fecha Comentarios + --------------------------------------------------------------------------- +=============================================================================== +} + +unit uEditorTiposOperacionVenta; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, DB, StdCtrls, DBCtrls, uDADataTable, ActnList, + uIEditorTiposOperacionVenta, uCustomEditor, uGUIBase, ExtCtrls, + ComCtrls, uBizTiposOperacionVenta, uTiposOperacionVentaController, uDAInterfaces; + +type + TfEditorTiposOperacionVenta = class(TCustomEditor, IEditorTiposOperacionVenta) + ActionList1: TActionList; + DADataSource: TDADataSource; + ListaTiposOperacionVenta: 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; + editTipoOperacionVenta: 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 + FTiposOperacionVenta: IBizTiposOperacionVenta; + FController: ITiposOperacionVentaController; + function GetTiposOperacionVenta: IBizTiposOperacionVenta; + procedure SetTiposOperacionVenta(const Value: IBizTiposOperacionVenta); + function GetController : ITiposOperacionVentaController; + procedure SetController (const Value : ITiposOperacionVentaController); + public + property TiposOperacionVenta: IBizTiposOperacionVenta read GetTiposOperacionVenta write SetTiposOperacionVenta; + property Controller : ITiposOperacionVentaController read GetController write SetController; + end; + + +implementation +{$R *.dfm} + +{ TfEditorTiposOperacionVenta } + +uses + uDialogUtils, uFactuGES_App; + +function TfEditorTiposOperacionVenta.GetController: ITiposOperacionVentaController; +begin + Result := FController; +end; + +function TfEditorTiposOperacionVenta.GetTiposOperacionVenta: IBizTiposOperacionVenta; +begin + Result := FTiposOperacionVenta; +end; + +procedure TfEditorTiposOperacionVenta.SetController(const Value: ITiposOperacionVentaController); +begin + FController := Value; +end; + +procedure TfEditorTiposOperacionVenta.SetTiposOperacionVenta(const Value: IBizTiposOperacionVenta); +begin + FTiposOperacionVenta := Value; + DADataSource.DataTable := (FTiposOperacionVenta as IBizTiposOperacionVenta).DataTable; + DADataSource.DataTable.Open; +end; + +procedure TfEditorTiposOperacionVenta.actAnadirExecute(Sender: TObject); +begin + if not FController.Localizar(TiposOperacionVenta, editTipoOperacionVenta.Text) then + begin + TiposOperacionVenta.Append; + TiposOperacionVenta.DESCRIPCION := editTipoOperacionVenta.Text; + TiposOperacionVenta.Post; + editTipoOperacionVenta.Clear; + ListaTiposOperacionVenta.SetFocus; + end + else + ShowErrorMessage('Ya existe el Tipo ' + editTipoOperacionVenta.Text, + 'Ya existe el Tipo ''' + editTipoOperacionVenta.Text + ''' en la lista.'); +end; + +procedure TfEditorTiposOperacionVenta.actEliminarExecute(Sender: TObject); +begin + TiposOperacionVenta.Delete; + ListaTiposOperacionVenta.SetFocus; +end; + +procedure TfEditorTiposOperacionVenta.actEliminarUpdate(Sender: TObject); +begin + (Sender as TAction).Enabled := (FTiposOperacionVenta.DataTable.RecordCount > 0) and + (Length(ListaTiposOperacionVenta.SelectedItem) > 0) and + (AppFactuGES.UsuarioActivo.ID_PERFIL = CTE_PERFIL_ADMINISTRADOR); + +end; + +procedure TfEditorTiposOperacionVenta.CustomEditorClose(Sender: TObject; var Action: TCloseAction); +begin + FTiposOperacionVenta := Nil; + FController := Nil; +end; + +procedure TfEditorTiposOperacionVenta.actAceptarExecute(Sender: TObject); +begin + try + TiposOperacionVenta.DataTable.ApplyUpdates; + except + on E : Exception do begin + TiposOperacionVenta.DataTable.CancelUpdates; + ShowErrorMessage('Error al guardar cambios', 'Se ha producido un error grave', E); + exit; + end; + end; + actCerrar.Execute; +end; + +procedure TfEditorTiposOperacionVenta.actCancelarExecute(Sender: TObject); +begin + TiposOperacionVenta.DataTable.CancelUpdates; + actCerrar.Execute; +end; + +procedure TfEditorTiposOperacionVenta.actCerrarExecute(Sender: TObject); +begin + Close; +end; + +procedure TfEditorTiposOperacionVenta.actAnadirUpdate(Sender: TObject); +begin + (Sender as TAction).Enabled := (Length(editTipoOperacionVenta.Text) > 0) +end; + +procedure TfEditorTiposOperacionVenta.FormShow(Sender: TObject); +begin + if not FTiposOperacionVenta.DataTable.Active then + FTiposOperacionVenta.DataTable.Active := true; + + editTipoOperacionVenta.SetFocus; +end; + +end. diff --git a/Source/Modulos/Tipos de operacion venta/Views/uTiposOperacionCompraViewRegister.pas b/Source/Modulos/Tipos de operacion venta/Views/uTiposOperacionCompraViewRegister.pas new file mode 100644 index 0000000..6f7565a --- /dev/null +++ b/Source/Modulos/Tipos de operacion venta/Views/uTiposOperacionCompraViewRegister.pas @@ -0,0 +1,26 @@ +unit uTiposOperacionCompraViewRegister; + +interface + +procedure RegisterViews; +procedure UnregisterViews; + +implementation + +uses + uEditorRegistryUtils, uEditorTiposOperacionCompra, uEditorElegirTipoOperacionCompra; + +procedure RegisterViews; +begin + EditorRegistry.RegisterClass(TfEditorElegirTipoOperacionCompra, 'EditorElegirTipoOperacionCompra'); + EditorRegistry.RegisterClass(TfEditorTiposOperacionCompra, 'EditorTiposOperacionCompra'); +end; + +procedure UnregisterViews; +begin + EditorRegistry.UnRegisterClass(TfEditorTiposOperacionCompra); + EditorRegistry.UnRegisterClass(TfEditorElegirTipoOperacionCompra); +end; + + +end. diff --git a/Source/Modulos/Tipos de operacion venta/Views/uTiposOperacionVentaViewRegister.pas b/Source/Modulos/Tipos de operacion venta/Views/uTiposOperacionVentaViewRegister.pas new file mode 100644 index 0000000..43a59f2 --- /dev/null +++ b/Source/Modulos/Tipos de operacion venta/Views/uTiposOperacionVentaViewRegister.pas @@ -0,0 +1,26 @@ +unit uTiposOperacionVentaViewRegister; + +interface + +procedure RegisterViews; +procedure UnregisterViews; + +implementation + +uses + uEditorRegistryUtils, uEditorTiposOperacionVenta, uEditorElegirTipoOperacionVenta; + +procedure RegisterViews; +begin + EditorRegistry.RegisterClass(TfEditorElegirTipoOperacionVenta, 'EditorElegirTipoOperacionVenta'); + EditorRegistry.RegisterClass(TfEditorTiposOperacionVenta, 'EditorTiposOperacionVenta'); +end; + +procedure UnregisterViews; +begin + EditorRegistry.UnRegisterClass(TfEditorTiposOperacionVenta); + EditorRegistry.UnRegisterClass(TfEditorElegirTipoOperacionVenta); +end; + + +end.