diff --git a/Database/scripts/factuges.sql b/Database/scripts/factuges.sql
index 33345ec8..69133064 100644
--- a/Database/scripts/factuges.sql
+++ b/Database/scripts/factuges.sql
@@ -81,6 +81,9 @@ VARCHAR(30);
/**** Generators ****/
/******************************************************************************/
+CREATE GENERATOR GEN_TIPOS_VENTA_ID;
+SET GENERATOR GEN_TIPOS_VENTA_ID TO 8;
+
CREATE GENERATOR GEN_AGENTES_COMISIONES_ID;
SET GENERATOR GEN_AGENTES_COMISIONES_ID TO 1;
@@ -381,6 +384,11 @@ SET TERM ; ^
/**** Tables ****/
/******************************************************************************/
+CREATE TABLE TIPOS_VENTA (
+ ID TIPO_ID NOT NULL /* TIPO_ID = INTEGER */,
+ DESCRIPCION VARCHAR(255) COLLATE ES_ES,
+ CODIGO_CONTABLE VARCHAR(2) NOT NULL
+);
CREATE TABLE AGENTES_COMISIONES (
@@ -3623,6 +3631,7 @@ FROM
/**** Primary Keys ****/
/******************************************************************************/
+ALTER TABLE TIPOS_VENTA ADD CONSTRAINT PK_TIPOS_VENTA PRIMARY KEY (ID);
ALTER TABLE AGENTES_COMISIONES ADD CONSTRAINT PK_AGENTES_COMISIONES PRIMARY KEY (ID);
ALTER TABLE ALBARANES_CLIENTE ADD CONSTRAINT PK_ALBARANES_CLIENTE PRIMARY KEY (ID);
ALTER TABLE ALBARANES_CLIENTE_DETALLES ADD CONSTRAINT PK_ALBARANES_CLIENTE_DETALLES PRIMARY KEY (ID);
diff --git a/Database/scripts/factuges_sysdata.sql b/Database/scripts/factuges_sysdata.sql
index 59fce210..3e20d074 100644
--- a/Database/scripts/factuges_sysdata.sql
+++ b/Database/scripts/factuges_sysdata.sql
@@ -83,4 +83,12 @@ COMMIT WORK;
INSERT INTO EMPRESAS_TIENDAS (ID, ID_EMPRESA, CALLE, POBLACION, PROVINCIA, CODIGO_POSTAL, PERSONA_CONTACTO, NOMBRE, TELEFONO, MOVIL, FAX, EMAIL, FECHA_ALTA, FECHA_MODIFICACION) VALUES (1, 1, 'C/ Alcalá, 295', 'Madrid', 'Madrid', '28027', 'Cristina Puerta', 'Alcalá', '91 405 49 51', '667 60 57 11', '91 405 51 63', NULL, NULL, NULL);
INSERT INTO EMPRESAS_TIENDAS (ID, ID_EMPRESA, CALLE, POBLACION, PROVINCIA, CODIGO_POSTAL, PERSONA_CONTACTO, NOMBRE, TELEFONO, MOVIL, FAX, EMAIL, FECHA_ALTA, FECHA_MODIFICACION) VALUES (2, 1, 'Bulevar Indalecio Prieto Ed. 14', 'Madrid', 'Madrid', '28032', 'José Luis Puerta', 'Valdebernardo', '91 301 65 57', '618 31 09 40', '91 301 65 58', NULL, NULL, NULL);
+COMMIT WORK;
+
+INSERT INTO TIPOS_VENTA (ID, DESCRIPCION, CODIGO_CONTABLE) VALUES (1, 'Cocina', '01');
+INSERT INTO TIPOS_VENTA (ID, DESCRIPCION, CODIGO_CONTABLE) VALUES (2, 'Baño', '02');
+INSERT INTO TIPOS_VENTA (ID, DESCRIPCION, CODIGO_CONTABLE) VALUES (3, 'Armarios', '03');
+INSERT INTO TIPOS_VENTA (ID, DESCRIPCION, CODIGO_CONTABLE) VALUES (4, 'Electrodomésticos', '04');
+INSERT INTO TIPOS_VENTA (ID, DESCRIPCION, CODIGO_CONTABLE) VALUES (5, 'Instalación', '05');
+INSERT INTO TIPOS_VENTA (ID, DESCRIPCION, CODIGO_CONTABLE) VALUES (6, 'Varios', '07');
COMMIT WORK;
\ No newline at end of file
diff --git a/Source/Cliente/uBootStrap.pas b/Source/Cliente/uBootStrap.pas
index ee4f8280..4f9db0a3 100644
--- a/Source/Cliente/uBootStrap.pas
+++ b/Source/Cliente/uBootStrap.pas
@@ -22,6 +22,7 @@ begin
with AppFactuGES.ModuleManager do
begin
LoadModule('Referencias_plugin.bpl');
+ LoadModule('TiposVenta_plugin.bpl');
LoadModule('FormasPago_plugin.bpl');
LoadModule('TiposIVA_plugin.bpl');
diff --git a/Source/Modulos/Tipos de venta/Controller/TiposVenta_controller.dpk b/Source/Modulos/Tipos de venta/Controller/TiposVenta_controller.dpk
new file mode 100644
index 00000000..7c77b2dd
--- /dev/null
+++ b/Source/Modulos/Tipos de venta/Controller/TiposVenta_controller.dpk
@@ -0,0 +1,37 @@
+package TiposVenta_controller;
+
+{$R *.res}
+{$ALIGN 8}
+{$ASSERTIONS ON}
+{$BOOLEVAL OFF}
+{$DEBUGINFO ON}
+{$EXTENDEDSYNTAX ON}
+{$IMPORTEDDATA ON}
+{$IOCHECKS ON}
+{$LOCALSYMBOLS ON}
+{$LONGSTRINGS ON}
+{$OPENSTRINGS ON}
+{$OPTIMIZATION ON}
+{$OVERFLOWCHECKS OFF}
+{$RANGECHECKS OFF}
+{$REFERENCEINFO ON}
+{$SAFEDIVIDE OFF}
+{$STACKFRAMES OFF}
+{$TYPEDADDRESS OFF}
+{$VARSTRINGCHECKS ON}
+{$WRITEABLECONST OFF}
+{$MINENUMSIZE 1}
+{$IMAGEBASE $400000}
+{$IMPLICITBUILD ON}
+
+requires
+ Base,
+ ApplicationBase,
+ TiposVenta_model,
+ TiposVenta_data;
+
+contains
+ uTiposVentaController in 'uTiposVentaController.pas',
+ uIEditorTiposVenta in 'View\uIEditorTiposVenta.pas';
+
+end.
diff --git a/Source/Modulos/Tipos de venta/Controller/TiposVenta_controller.dproj b/Source/Modulos/Tipos de venta/Controller/TiposVenta_controller.dproj
new file mode 100644
index 00000000..a8e92ba3
--- /dev/null
+++ b/Source/Modulos/Tipos de venta/Controller/TiposVenta_controller.dproj
@@ -0,0 +1,540 @@
+
+
+
+ {7f80f8aa-6912-4714-986d-aed73035472b}
+ TiposVenta_controller.dpk
+ Debug
+ AnyCPU
+ DCC32
+ ..\..\..\..\Output\Debug\Cliente\TiposVenta_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
+
+FalseTrueFalseTrueFalseFalseTrueFalse1000FalseFalseFalseFalseFalse308212521.0.0.01.0.0.0TiposVenta_controller.dpk
+
+
+
+
+ MainSource
+
+
+
+
+
+
+
+
+
+
diff --git a/Source/Modulos/Tipos de venta/Controller/TiposVenta_controller.res b/Source/Modulos/Tipos de venta/Controller/TiposVenta_controller.res
new file mode 100644
index 00000000..1641339f
Binary files /dev/null and b/Source/Modulos/Tipos de venta/Controller/TiposVenta_controller.res differ
diff --git a/Source/Modulos/Tipos de venta/Controller/View/uIEditorTiposVenta.pas b/Source/Modulos/Tipos de venta/Controller/View/uIEditorTiposVenta.pas
new file mode 100644
index 00000000..9f1e4a74
--- /dev/null
+++ b/Source/Modulos/Tipos de venta/Controller/View/uIEditorTiposVenta.pas
@@ -0,0 +1,21 @@
+unit uIEditorTiposVenta;
+
+interface
+
+uses
+ uBizTiposVenta;
+
+type
+ IEditorTiposVenta = interface
+ ['{3B42923E-4BB6-4979-A5E0-0BF66CA289A4}']
+ function GetTiposVenta: IBizTipoVenta;
+ procedure SetTiposVenta(const Value: IBizTipoVenta);
+ property TiposVenta: IBizTipoVenta read GetTiposVenta write SetTiposVenta;
+ function ShowModal : Integer;
+ procedure Release;
+ end;
+
+
+implementation
+
+end.
diff --git a/Source/Modulos/Tipos de venta/Controller/uTiposVentaController.pas b/Source/Modulos/Tipos de venta/Controller/uTiposVentaController.pas
new file mode 100644
index 00000000..cb1d80ff
--- /dev/null
+++ b/Source/Modulos/Tipos de venta/Controller/uTiposVentaController.pas
@@ -0,0 +1,154 @@
+unit uTiposVentaController;
+
+interface
+
+
+uses
+ Classes, SysUtils, uDADataTable, uControllerBase,
+ uIDataModuleTiposVenta, uBizTiposVenta;
+
+type
+ ITiposVentaController = interface(IObservador)
+ ['{A5616174-3C9C-4EF3-8437-2C64E20137EB}']
+ function BuscarTodos: IBizTipoVenta;
+ procedure VerTodos(ATiposVenta: IBizTipoVenta);
+ function Guardar(AReferencia : IBizTipoVenta): Boolean;
+ procedure DescartarCambios(AReferencia : IBizTipoVenta);
+ end;
+
+ TTiposVentaController = class(TObservador, ITiposVentaController)
+ protected
+ FDataModule : IDataModuleTiposVenta;
+
+// procedure RecibirAviso(ASujeto: ISujeto; ADataTable: IDAStronglyTypedDataTable); override;
+ function CreateEditor(const AName : String; const IID: TGUID; out Intf): Boolean;
+
+ function ValidarReferencia(AReferencia: IBizTipoVenta): Boolean;
+ procedure AsignarDataModule;
+
+ public
+ constructor Create; override;
+ destructor Destroy; override;
+
+ function Guardar(AReferencia : IBizTipoVenta): Boolean; virtual;
+ procedure DescartarCambios(AReferencia : IBizTipoVenta); virtual;
+ function BuscarTodos: IBizTipoVenta;
+ procedure VerTodos(ATiposVenta: IBizTipoVenta);
+ end;
+
+implementation
+
+uses
+ cxControls, DB, uEditorRegistryUtils, schTiposVentaClient_Intf,
+ uIEditorTiposVenta, uDataModuleTiposVenta,
+ uDAInterfaces, uDataTableUtils, uDialogUtils,
+ uDateUtils, uROTypes, DateUtils, Controls, Windows;
+
+{ TTiposVentaController }
+
+procedure TTiposVentaController.AsignarDataModule;
+begin
+ FDataModule := TDataModuleTiposVenta.Create(Nil);
+end;
+
+function TTiposVentaController.BuscarTodos: IBizTipoVenta;
+begin
+ Result := FDataModule.GetItems;
+end;
+
+constructor TTiposVentaController.Create;
+begin
+ inherited;
+ AsignarDataModule;
+end;
+
+function TTiposVentaController.CreateEditor(const AName: String; const IID: TGUID; out Intf): Boolean;
+begin
+ Result := Supports(EditorRegistry.CreateEditor(AName), IID, Intf);
+end;
+
+procedure TTiposVentaController.DescartarCambios(AReferencia: IBizTipoVenta);
+begin
+ if not Assigned(AReferencia) then
+ raise Exception.Create ('Forma de pago no asignada');
+
+ ShowHourglassCursor;
+ try
+ if (AReferencia.State in dsEditModes) then
+ AReferencia.Cancel;
+
+ AReferencia.DataTable.CancelUpdates;
+ finally
+ HideHourglassCursor;
+ end;
+end;
+
+destructor TTiposVentaController.Destroy;
+begin
+ FDataModule := NIL;
+ inherited;
+end;
+
+function TTiposVentaController.ValidarReferencia(AReferencia: IBizTipoVenta): Boolean;
+begin
+ Result := False;
+
+ if not Assigned(AReferencia) then
+ raise Exception.Create ('Referencia no asignada');
+
+ if (AReferencia.DataTable.State in dsEditModes) then
+ AReferencia.DataTable.Post;
+
+// if Length(AReferencia.VALOR) = 0 then
+// raise Exception.Create('Debe indicar un código para esta referencia.');
+
+ Result := True;
+end;
+
+procedure TTiposVentaController.VerTodos(ATiposVenta: IBizTipoVenta);
+var
+ AEditor : IEditorTiposVenta;
+begin
+ AEditor := NIL;
+ ShowHourglassCursor;
+ try
+ CreateEditor('EditorTiposVenta', IEditorTiposVenta, AEditor);
+ if Assigned(AEditor) then
+ with AEditor do
+ begin
+ TiposVenta := ATiposVenta;
+ ShowModal;
+ Release;
+ end;
+ finally
+ AEditor := NIL;
+ HideHourglassCursor;
+ end;
+end;
+{
+procedure TTiposVentaController.RecibirAviso(ASujeto: ISujeto; ADataTable: IDAStronglyTypedDataTable);
+begin
+ inherited;
+//
+end;
+}
+
+function TTiposVentaController.Guardar(AReferencia: IBizTipoVenta): Boolean;
+var
+ NuevoID : Integer;
+begin
+ Result := False;
+
+ if ValidarReferencia(AReferencia) then
+ begin
+ ShowHourglassCursor;
+ try
+ AReferencia.DataTable.ApplyUpdates;
+ Result := True;
+ finally
+ HideHourglassCursor;
+ end;
+ end;
+end;
+
+end.
diff --git a/Source/Modulos/Tipos de venta/Data/TiposVenta_data.dpk b/Source/Modulos/Tipos de venta/Data/TiposVenta_data.dpk
new file mode 100644
index 00000000..74541485
--- /dev/null
+++ b/Source/Modulos/Tipos de venta/Data/TiposVenta_data.dpk
@@ -0,0 +1,35 @@
+package TiposVenta_data;
+
+{$R *.res}
+{$ALIGN 8}
+{$ASSERTIONS ON}
+{$BOOLEVAL OFF}
+{$DEBUGINFO ON}
+{$EXTENDEDSYNTAX ON}
+{$IMPORTEDDATA ON}
+{$IOCHECKS ON}
+{$LOCALSYMBOLS ON}
+{$LONGSTRINGS ON}
+{$OPENSTRINGS ON}
+{$OPTIMIZATION ON}
+{$OVERFLOWCHECKS OFF}
+{$RANGECHECKS OFF}
+{$REFERENCEINFO ON}
+{$SAFEDIVIDE OFF}
+{$STACKFRAMES OFF}
+{$TYPEDADDRESS OFF}
+{$VARSTRINGCHECKS ON}
+{$WRITEABLECONST OFF}
+{$MINENUMSIZE 1}
+{$IMAGEBASE $400000}
+{$IMPLICITBUILD ON}
+
+requires
+ Base,
+ ApplicationBase,
+ TiposVenta_model;
+
+contains
+ uDataModuleTiposVenta in 'uDataModuleTiposVenta.pas' {DataModuleTiposVenta};
+
+end.
diff --git a/Source/Modulos/Tipos de venta/Data/TiposVenta_data.dproj b/Source/Modulos/Tipos de venta/Data/TiposVenta_data.dproj
new file mode 100644
index 00000000..2d9f4b6f
--- /dev/null
+++ b/Source/Modulos/Tipos de venta/Data/TiposVenta_data.dproj
@@ -0,0 +1,540 @@
+
+
+
+ {c8118762-09b6-432f-ba26-058fa36c39d9}
+ TiposVenta_data.dpk
+ Debug
+ AnyCPU
+ DCC32
+ ..\..\..\..\Output\Debug\Cliente\TiposVenta_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
+
+FalseTrueFalseTrueFalseFalseTrueFalse1000FalseFalseFalseFalseFalse308212521.0.0.01.0.0.0TiposVenta_data.dpk
+
+
+
+
+ MainSource
+
+
+
+
+
+
+
+
+
+
diff --git a/Source/Modulos/Tipos de venta/Data/TiposVenta_data.res b/Source/Modulos/Tipos de venta/Data/TiposVenta_data.res
new file mode 100644
index 00000000..1641339f
Binary files /dev/null and b/Source/Modulos/Tipos de venta/Data/TiposVenta_data.res differ
diff --git a/Source/Modulos/Tipos de venta/Data/uDataModuleTiposVenta.dfm b/Source/Modulos/Tipos de venta/Data/uDataModuleTiposVenta.dfm
new file mode 100644
index 00000000..363567b8
--- /dev/null
+++ b/Source/Modulos/Tipos de venta/Data/uDataModuleTiposVenta.dfm
@@ -0,0 +1,62 @@
+inherited DataModuleTiposVenta: TDataModuleTiposVenta
+ OnCreate = DAClientDataModuleCreate
+ Height = 245
+ Width = 455
+ object RORemoteService: TRORemoteService
+ Message = dmConexion.ROMessage
+ Channel = dmConexion.ROChannel
+ ServiceName = 'srvTiposVenta'
+ Left = 48
+ Top = 24
+ end
+ object Bin2DataStreamer: TDABin2DataStreamer
+ Left = 48
+ Top = 84
+ end
+ object rda_TiposVenta: TDARemoteDataAdapter
+ GetSchemaCall.RemoteService = RORemoteService
+ GetDataCall.RemoteService = RORemoteService
+ UpdateDataCall.RemoteService = RORemoteService
+ GetScriptsCall.RemoteService = RORemoteService
+ RemoteService = RORemoteService
+ DataStreamer = Bin2DataStreamer
+ Left = 51
+ Top = 151
+ end
+ object tbl_TiposVenta: TDAMemDataTable
+ RemoteUpdatesOptions = []
+ Fields = <
+ item
+ Name = 'ID'
+ DataType = datAutoInc
+ GeneratorName = 'GEN_TIPOS_VENTA_ID'
+ Required = True
+ InPrimaryKey = True
+ end
+ item
+ Name = 'DESCRIPCION'
+ DataType = datString
+ Size = 255
+ end
+ item
+ Name = 'CODIGO_CONTABLE'
+ DataType = datString
+ Size = 2
+ end>
+ Params = <>
+ StreamingOptions = [soDisableEventsWhileStreaming]
+ RemoteDataAdapter = rda_TiposVenta
+ DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch]
+ MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates]
+ LogicalName = 'TiposVenta'
+ IndexDefs = <>
+ Left = 200
+ Top = 104
+ end
+ object ds_TiposVenta: TDADataSource
+ DataSet = tbl_TiposVenta.Dataset
+ DataTable = tbl_TiposVenta
+ Left = 200
+ Top = 48
+ end
+end
diff --git a/Source/Modulos/Tipos de venta/Data/uDataModuleTiposVenta.pas b/Source/Modulos/Tipos de venta/Data/uDataModuleTiposVenta.pas
new file mode 100644
index 00000000..81965f26
--- /dev/null
+++ b/Source/Modulos/Tipos de venta/Data/uDataModuleTiposVenta.pas
@@ -0,0 +1,57 @@
+unit uDataModuleTiposVenta;
+
+interface
+
+uses
+ SysUtils, Classes, DB, uDADataTable, uDABINAdapter,
+ uDAScriptingProvider, uDACDSDataTable, uROWinInetHttpChannel, uROTypes,
+ uRORemoteService, uROClient, uROBinMessage,
+ uDADesigntimeCall, uIDataModuleTiposVenta, uBizTiposVenta, uDataModuleBase,
+ uDARemoteDataAdapter, uDADataStreamer, uDABin2DataStreamer, uDAInterfaces,
+ uDAMemDataTable;
+
+type
+ TDataModuleTiposVenta = class(TDataModuleBase, IDataModuleTiposVenta)
+ RORemoteService: TRORemoteService;
+ Bin2DataStreamer: TDABin2DataStreamer;
+ rda_TiposVenta: TDARemoteDataAdapter;
+ tbl_TiposVenta: TDAMemDataTable;
+ ds_TiposVenta: TDADataSource;
+ procedure DAClientDataModuleCreate(Sender: TObject);
+ public
+ function GetItems: IBizTipoVenta;
+ end;
+
+implementation
+
+{$R *.DFM}
+
+uses
+ FactuGES_Intf, cxControls, uDataModuleConexion, uDataTableUtils,
+ schTiposVentaClient_Intf;
+
+{ TdmAlmacens }
+
+procedure TDataModuleTiposVenta.DAClientDataModuleCreate(Sender: TObject);
+begin
+ RORemoteService.Channel := dmConexion.Channel;
+ RORemoteService.Message := dmConexion.Message;
+end;
+
+function TDataModuleTiposVenta.GetItems: IBizTipoVenta;
+var
+ AReferencia : TDAMemDataTable;
+begin
+ ShowHourglassCursor;
+ try
+ AReferencia := CloneDataTable(tbl_TiposVenta);
+ AReferencia.BusinessRulesID := BIZ_CLIENT_TIPOSVENTA;
+
+ Result := (AReferencia as IBizTipoVenta);
+ finally
+ HideHourglassCursor;
+ end;
+end;
+
+
+end.
diff --git a/Source/Modulos/Tipos de venta/Model/Data/uIDataModuleTiposVenta.pas b/Source/Modulos/Tipos de venta/Model/Data/uIDataModuleTiposVenta.pas
new file mode 100644
index 00000000..da9d46dd
--- /dev/null
+++ b/Source/Modulos/Tipos de venta/Model/Data/uIDataModuleTiposVenta.pas
@@ -0,0 +1,16 @@
+unit uIDataModuleTiposVenta;
+
+interface
+
+uses
+ uBizTiposVenta;
+
+type
+ IDataModuleTiposVenta = interface
+ ['{68E398CA-8942-45A9-ABD4-D881D464737B}']
+ function GetItems: IBizTipoVenta;
+ end;
+
+implementation
+
+end.
diff --git a/Source/Modulos/Tipos de venta/Model/TiposVenta_model.dpk b/Source/Modulos/Tipos de venta/Model/TiposVenta_model.dpk
new file mode 100644
index 00000000..f13a3969
--- /dev/null
+++ b/Source/Modulos/Tipos de venta/Model/TiposVenta_model.dpk
@@ -0,0 +1,40 @@
+package TiposVenta_model;
+
+{$R *.res}
+{$ALIGN 8}
+{$ASSERTIONS ON}
+{$BOOLEVAL OFF}
+{$DEBUGINFO ON}
+{$EXTENDEDSYNTAX ON}
+{$IMPORTEDDATA ON}
+{$IOCHECKS ON}
+{$LOCALSYMBOLS ON}
+{$LONGSTRINGS ON}
+{$OPENSTRINGS ON}
+{$OPTIMIZATION ON}
+{$OVERFLOWCHECKS OFF}
+{$RANGECHECKS OFF}
+{$REFERENCEINFO ON}
+{$SAFEDIVIDE OFF}
+{$STACKFRAMES OFF}
+{$TYPEDADDRESS OFF}
+{$VARSTRINGCHECKS ON}
+{$WRITEABLECONST OFF}
+{$MINENUMSIZE 1}
+{$IMAGEBASE $400000}
+{$IMPLICITBUILD ON}
+
+requires
+ vcl,
+ rtl,
+ dbrtl,
+ Base,
+ ApplicationBase;
+
+contains
+ uIDataModuleTiposVenta in 'Data\uIDataModuleTiposVenta.pas',
+ uBizTiposVenta in 'uBizTiposVenta.pas',
+ schTiposVentaClient_Intf in 'schTiposVentaClient_Intf.pas',
+ schTiposVentaServer_Intf in 'schTiposVentaServer_Intf.pas';
+
+end.
diff --git a/Source/Modulos/Tipos de venta/Model/TiposVenta_model.dproj b/Source/Modulos/Tipos de venta/Model/TiposVenta_model.dproj
new file mode 100644
index 00000000..6478ce40
--- /dev/null
+++ b/Source/Modulos/Tipos de venta/Model/TiposVenta_model.dproj
@@ -0,0 +1,543 @@
+
+
+
+ {73acd39c-b2f0-49b7-9acf-10945bbac8c1}
+ TiposVenta_model.dpk
+ Debug
+ AnyCPU
+ DCC32
+ ..\..\..\..\Output\Debug\Cliente\TiposVenta_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
+
+FalseTrueFalseTrueFalseFalseTrueFalse1000FalseFalseFalseFalseFalse308212521.0.0.01.0.0.0TiposVenta_model.dpk
+
+
+
+
+ MainSource
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Source/Modulos/Tipos de venta/Model/TiposVenta_model.res b/Source/Modulos/Tipos de venta/Model/TiposVenta_model.res
new file mode 100644
index 00000000..1641339f
Binary files /dev/null and b/Source/Modulos/Tipos de venta/Model/TiposVenta_model.res differ
diff --git a/Source/Modulos/Tipos de venta/Model/schTiposVentaClient_Intf.pas b/Source/Modulos/Tipos de venta/Model/schTiposVentaClient_Intf.pas
new file mode 100644
index 00000000..6d99d812
--- /dev/null
+++ b/Source/Modulos/Tipos de venta/Model/schTiposVentaClient_Intf.pas
@@ -0,0 +1,169 @@
+unit schTiposVentaClient_Intf;
+
+interface
+
+uses
+ Classes, DB, SysUtils, uROClasses, uDADataTable, FmtBCD, uROXMLIntf;
+
+const
+ { Data table rules ids
+ Feel free to change them to something more human readable
+ but make sure they are unique in the context of your application }
+ RID_TiposVenta = '{DE49579B-AC5A-44C9-9C04-B59C78623378}';
+
+ { Data table names }
+ nme_TiposVenta = 'TiposVenta';
+
+ { TiposVenta fields }
+ fld_TiposVentaID = 'ID';
+ fld_TiposVentaDESCRIPCION = 'DESCRIPCION';
+ fld_TiposVentaCODIGO_CONTABLE = 'CODIGO_CONTABLE';
+
+ { TiposVenta field indexes }
+ idx_TiposVentaID = 0;
+ idx_TiposVentaDESCRIPCION = 1;
+ idx_TiposVentaCODIGO_CONTABLE = 2;
+
+type
+ { ITiposVenta }
+ ITiposVenta = interface(IDAStronglyTypedDataTable)
+ ['{AEA6CA6A-2A69-4A3A-B3FE-40D955421E16}']
+ { 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);
+ function GetCODIGO_CONTABLEValue: String;
+ procedure SetCODIGO_CONTABLEValue(const aValue: String);
+ function GetCODIGO_CONTABLEIsNull: Boolean;
+ procedure SetCODIGO_CONTABLEIsNull(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;
+ property CODIGO_CONTABLE: String read GetCODIGO_CONTABLEValue write SetCODIGO_CONTABLEValue;
+ property CODIGO_CONTABLEIsNull: Boolean read GetCODIGO_CONTABLEIsNull write SetCODIGO_CONTABLEIsNull;
+ end;
+
+ { TTiposVentaDataTableRules }
+ TTiposVentaDataTableRules = class(TDADataTableRules, ITiposVenta)
+ 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;
+ function GetCODIGO_CONTABLEValue: String; virtual;
+ procedure SetCODIGO_CONTABLEValue(const aValue: String); virtual;
+ function GetCODIGO_CONTABLEIsNull: Boolean; virtual;
+ procedure SetCODIGO_CONTABLEIsNull(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;
+ property CODIGO_CONTABLE: String read GetCODIGO_CONTABLEValue write SetCODIGO_CONTABLEValue;
+ property CODIGO_CONTABLEIsNull: Boolean read GetCODIGO_CONTABLEIsNull write SetCODIGO_CONTABLEIsNull;
+
+ public
+ constructor Create(aDataTable: TDADataTable); override;
+ destructor Destroy; override;
+
+ end;
+
+implementation
+
+uses Variants, uROBinaryHelpers;
+
+{ TTiposVentaDataTableRules }
+constructor TTiposVentaDataTableRules.Create(aDataTable: TDADataTable);
+begin
+ inherited;
+end;
+
+destructor TTiposVentaDataTableRules.Destroy;
+begin
+ inherited;
+end;
+
+function TTiposVentaDataTableRules.GetIDValue: Integer;
+begin
+ result := DataTable.Fields[idx_TiposVentaID].AsInteger;
+end;
+
+procedure TTiposVentaDataTableRules.SetIDValue(const aValue: Integer);
+begin
+ DataTable.Fields[idx_TiposVentaID].AsInteger := aValue;
+end;
+
+function TTiposVentaDataTableRules.GetIDIsNull: boolean;
+begin
+ result := DataTable.Fields[idx_TiposVentaID].IsNull;
+end;
+
+procedure TTiposVentaDataTableRules.SetIDIsNull(const aValue: Boolean);
+begin
+ if aValue then
+ DataTable.Fields[idx_TiposVentaID].AsVariant := Null;
+end;
+
+function TTiposVentaDataTableRules.GetDESCRIPCIONValue: String;
+begin
+ result := DataTable.Fields[idx_TiposVentaDESCRIPCION].AsString;
+end;
+
+procedure TTiposVentaDataTableRules.SetDESCRIPCIONValue(const aValue: String);
+begin
+ DataTable.Fields[idx_TiposVentaDESCRIPCION].AsString := aValue;
+end;
+
+function TTiposVentaDataTableRules.GetDESCRIPCIONIsNull: boolean;
+begin
+ result := DataTable.Fields[idx_TiposVentaDESCRIPCION].IsNull;
+end;
+
+procedure TTiposVentaDataTableRules.SetDESCRIPCIONIsNull(const aValue: Boolean);
+begin
+ if aValue then
+ DataTable.Fields[idx_TiposVentaDESCRIPCION].AsVariant := Null;
+end;
+
+function TTiposVentaDataTableRules.GetCODIGO_CONTABLEValue: String;
+begin
+ result := DataTable.Fields[idx_TiposVentaCODIGO_CONTABLE].AsString;
+end;
+
+procedure TTiposVentaDataTableRules.SetCODIGO_CONTABLEValue(const aValue: String);
+begin
+ DataTable.Fields[idx_TiposVentaCODIGO_CONTABLE].AsString := aValue;
+end;
+
+function TTiposVentaDataTableRules.GetCODIGO_CONTABLEIsNull: boolean;
+begin
+ result := DataTable.Fields[idx_TiposVentaCODIGO_CONTABLE].IsNull;
+end;
+
+procedure TTiposVentaDataTableRules.SetCODIGO_CONTABLEIsNull(const aValue: Boolean);
+begin
+ if aValue then
+ DataTable.Fields[idx_TiposVentaCODIGO_CONTABLE].AsVariant := Null;
+end;
+
+
+initialization
+ RegisterDataTableRules(RID_TiposVenta, TTiposVentaDataTableRules);
+
+end.
diff --git a/Source/Modulos/Tipos de venta/Model/schTiposVentaServer_Intf.pas b/Source/Modulos/Tipos de venta/Model/schTiposVentaServer_Intf.pas
new file mode 100644
index 00000000..dbeea38f
--- /dev/null
+++ b/Source/Modulos/Tipos de venta/Model/schTiposVentaServer_Intf.pas
@@ -0,0 +1,186 @@
+unit schTiposVentaServer_Intf;
+
+interface
+
+uses
+ Classes, DB, SysUtils, uROClasses, uDADataTable, uDABusinessProcessor, FmtBCD, uROXMLIntf, schTiposVentaClient_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_TiposVentaDelta = '{EE4200D0-8534-4896-8C5F-B34391984BD1}';
+
+type
+ { ITiposVentaDelta }
+ ITiposVentaDelta = interface(ITiposVenta)
+ ['{EE4200D0-8534-4896-8C5F-B34391984BD1}']
+ { Property getters and setters }
+ function GetOldIDValue : Integer;
+ function GetOldDESCRIPCIONValue : String;
+ function GetOldCODIGO_CONTABLEValue : String;
+
+ { Properties }
+ property OldID : Integer read GetOldIDValue;
+ property OldDESCRIPCION : String read GetOldDESCRIPCIONValue;
+ property OldCODIGO_CONTABLE : String read GetOldCODIGO_CONTABLEValue;
+ end;
+
+ { TTiposVentaBusinessProcessorRules }
+ TTiposVentaBusinessProcessorRules = class(TDABusinessProcessorRules, ITiposVenta, ITiposVentaDelta)
+ 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;
+ function GetCODIGO_CONTABLEValue: String; virtual;
+ function GetCODIGO_CONTABLEIsNull: Boolean; virtual;
+ function GetOldCODIGO_CONTABLEValue: String; virtual;
+ function GetOldCODIGO_CONTABLEIsNull: Boolean; virtual;
+ procedure SetCODIGO_CONTABLEValue(const aValue: String); virtual;
+ procedure SetCODIGO_CONTABLEIsNull(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;
+ property CODIGO_CONTABLE : String read GetCODIGO_CONTABLEValue write SetCODIGO_CONTABLEValue;
+ property CODIGO_CONTABLEIsNull : Boolean read GetCODIGO_CONTABLEIsNull write SetCODIGO_CONTABLEIsNull;
+ property OldCODIGO_CONTABLE : String read GetOldCODIGO_CONTABLEValue;
+ property OldCODIGO_CONTABLEIsNull : Boolean read GetOldCODIGO_CONTABLEIsNull;
+
+ public
+ constructor Create(aBusinessProcessor: TDABusinessProcessor); override;
+ destructor Destroy; override;
+
+ end;
+
+implementation
+
+uses
+ Variants, uROBinaryHelpers, uDAInterfaces;
+
+{ TTiposVentaBusinessProcessorRules }
+constructor TTiposVentaBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor);
+begin
+ inherited;
+end;
+
+destructor TTiposVentaBusinessProcessorRules.Destroy;
+begin
+ inherited;
+end;
+
+function TTiposVentaBusinessProcessorRules.GetIDValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_TiposVentaID];
+end;
+
+function TTiposVentaBusinessProcessorRules.GetIDIsNull: Boolean;
+begin
+ result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_TiposVentaID]);
+end;
+
+function TTiposVentaBusinessProcessorRules.GetOldIDValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_TiposVentaID];
+end;
+
+function TTiposVentaBusinessProcessorRules.GetOldIDIsNull: Boolean;
+begin
+ result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_TiposVentaID]);
+end;
+
+procedure TTiposVentaBusinessProcessorRules.SetIDValue(const aValue: Integer);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_TiposVentaID] := aValue;
+end;
+
+procedure TTiposVentaBusinessProcessorRules.SetIDIsNull(const aValue: Boolean);
+begin
+ if aValue then
+ BusinessProcessor.CurrentChange.NewValueByName[fld_TiposVentaID] := Null;
+end;
+
+function TTiposVentaBusinessProcessorRules.GetDESCRIPCIONValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_TiposVentaDESCRIPCION];
+end;
+
+function TTiposVentaBusinessProcessorRules.GetDESCRIPCIONIsNull: Boolean;
+begin
+ result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_TiposVentaDESCRIPCION]);
+end;
+
+function TTiposVentaBusinessProcessorRules.GetOldDESCRIPCIONValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_TiposVentaDESCRIPCION];
+end;
+
+function TTiposVentaBusinessProcessorRules.GetOldDESCRIPCIONIsNull: Boolean;
+begin
+ result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_TiposVentaDESCRIPCION]);
+end;
+
+procedure TTiposVentaBusinessProcessorRules.SetDESCRIPCIONValue(const aValue: String);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_TiposVentaDESCRIPCION] := aValue;
+end;
+
+procedure TTiposVentaBusinessProcessorRules.SetDESCRIPCIONIsNull(const aValue: Boolean);
+begin
+ if aValue then
+ BusinessProcessor.CurrentChange.NewValueByName[fld_TiposVentaDESCRIPCION] := Null;
+end;
+
+function TTiposVentaBusinessProcessorRules.GetCODIGO_CONTABLEValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_TiposVentaCODIGO_CONTABLE];
+end;
+
+function TTiposVentaBusinessProcessorRules.GetCODIGO_CONTABLEIsNull: Boolean;
+begin
+ result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_TiposVentaCODIGO_CONTABLE]);
+end;
+
+function TTiposVentaBusinessProcessorRules.GetOldCODIGO_CONTABLEValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_TiposVentaCODIGO_CONTABLE];
+end;
+
+function TTiposVentaBusinessProcessorRules.GetOldCODIGO_CONTABLEIsNull: Boolean;
+begin
+ result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_TiposVentaCODIGO_CONTABLE]);
+end;
+
+procedure TTiposVentaBusinessProcessorRules.SetCODIGO_CONTABLEValue(const aValue: String);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_TiposVentaCODIGO_CONTABLE] := aValue;
+end;
+
+procedure TTiposVentaBusinessProcessorRules.SetCODIGO_CONTABLEIsNull(const aValue: Boolean);
+begin
+ if aValue then
+ BusinessProcessor.CurrentChange.NewValueByName[fld_TiposVentaCODIGO_CONTABLE] := Null;
+end;
+
+
+initialization
+ RegisterBusinessProcessorRules(RID_TiposVentaDelta, TTiposVentaBusinessProcessorRules);
+
+end.
diff --git a/Source/Modulos/Tipos de venta/Model/uBizTiposVenta.pas b/Source/Modulos/Tipos de venta/Model/uBizTiposVenta.pas
new file mode 100644
index 00000000..6364766f
--- /dev/null
+++ b/Source/Modulos/Tipos de venta/Model/uBizTiposVenta.pas
@@ -0,0 +1,29 @@
+unit uBizTiposVenta;
+
+interface
+
+uses
+ uDAInterfaces, uDADataTable, schTiposVentaClient_Intf;
+
+const
+ BIZ_CLIENT_TIPOSVENTA = 'Client.TiposVenta';
+
+type
+ IBizTipoVenta = interface(ITiposVenta)
+ ['{4A9D9B62-A67C-4390-B662-0CC2818C4895}']
+ end;
+
+ TBizTipoVenta = class(TTiposVentaDataTableRules, IBizTipoVenta)
+ end;
+
+implementation
+
+{ TBizTiposVenta }
+
+initialization
+ RegisterDataTableRules(BIZ_CLIENT_TIPOSVENTA, TBizTipoVenta);
+
+finalization
+
+end.
+
diff --git a/Source/Modulos/Tipos de venta/Plugin/TiposVenta_plugin.dpk b/Source/Modulos/Tipos de venta/Plugin/TiposVenta_plugin.dpk
new file mode 100644
index 00000000..27055490
--- /dev/null
+++ b/Source/Modulos/Tipos de venta/Plugin/TiposVenta_plugin.dpk
@@ -0,0 +1,35 @@
+package TiposVenta_plugin;
+
+{$R *.res}
+{$ALIGN 8}
+{$ASSERTIONS ON}
+{$BOOLEVAL OFF}
+{$DEBUGINFO ON}
+{$EXTENDEDSYNTAX ON}
+{$IMPORTEDDATA ON}
+{$IOCHECKS ON}
+{$LOCALSYMBOLS ON}
+{$LONGSTRINGS ON}
+{$OPENSTRINGS ON}
+{$OPTIMIZATION ON}
+{$OVERFLOWCHECKS OFF}
+{$RANGECHECKS OFF}
+{$REFERENCEINFO ON}
+{$SAFEDIVIDE OFF}
+{$STACKFRAMES OFF}
+{$TYPEDADDRESS OFF}
+{$VARSTRINGCHECKS ON}
+{$WRITEABLECONST OFF}
+{$MINENUMSIZE 1}
+{$IMAGEBASE $400000}
+{$IMPLICITBUILD ON}
+
+requires
+ ApplicationBase,
+ TiposVenta_view,
+ TiposVenta_controller;
+
+contains
+ uPluginTiposVenta in 'uPluginTiposVenta.pas' {PluginTiposVenta};
+
+end.
diff --git a/Source/Modulos/Tipos de venta/Plugin/TiposVenta_plugin.dproj b/Source/Modulos/Tipos de venta/Plugin/TiposVenta_plugin.dproj
new file mode 100644
index 00000000..d4d2d78f
--- /dev/null
+++ b/Source/Modulos/Tipos de venta/Plugin/TiposVenta_plugin.dproj
@@ -0,0 +1,540 @@
+
+
+
+ {82e36812-58c4-491b-b463-6b951e95da51}
+ TiposVenta_plugin.dpk
+ Debug
+ AnyCPU
+ DCC32
+ ..\..\..\..\Output\Debug\Cliente\TiposVenta_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
+
+FalseTrueFalseTrueFalseFalseTrueFalse1000FalseFalseFalseFalseFalse308212521.0.0.01.0.0.0TiposVenta_plugin.dpk
+
+
+
+
+ MainSource
+
+
+
+
+
+
+
+
+
+
diff --git a/Source/Modulos/Tipos de venta/Plugin/TiposVenta_plugin.res b/Source/Modulos/Tipos de venta/Plugin/TiposVenta_plugin.res
new file mode 100644
index 00000000..1641339f
Binary files /dev/null and b/Source/Modulos/Tipos de venta/Plugin/TiposVenta_plugin.res differ
diff --git a/Source/Modulos/Tipos de venta/Plugin/uPluginTiposVenta.dfm b/Source/Modulos/Tipos de venta/Plugin/uPluginTiposVenta.dfm
new file mode 100644
index 00000000..c94c27c4
--- /dev/null
+++ b/Source/Modulos/Tipos de venta/Plugin/uPluginTiposVenta.dfm
@@ -0,0 +1,83 @@
+object PluginTiposVenta: TPluginTiposVenta
+ OldCreateOrder = True
+ DefaultAction = actTiposVenta
+ Description = 'Tipos de venta'
+ ModuleMenu = MainMenu
+ ModuleName = 'TiposVenta'
+ 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 actTiposVenta: TAction
+ Category = 'TiposVenta'
+ Caption = 'Tipos de venta'
+ ImageIndex = 0
+ OnExecute = actTiposVentaExecute
+ end
+ end
+ object MainMenu: TMainMenu
+ Images = SmallImages
+ Left = 32
+ Top = 16
+ object TiposVenta: TMenuItem
+ Caption = 'Empresa'
+ SubMenuImages = SmallImages
+ object N1: TMenuItem
+ Tag = 18990
+ Caption = '-'
+ end
+ object TiposVenta1: TMenuItem
+ Tag = 19001
+ Action = actTiposVenta
+ SubMenuImages = SmallImages
+ end
+ end
+ end
+ object SmallImages: TPngImageList
+ PngImages = <
+ item
+ PngImage.Data = {
+ 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
+ 61000001A34944415478DA9D922177E3300CC7655636C3B20596CD702C86C7E6
+ B141C342EF1BE42318167AECD81916BA6CD0638582852A0BCBA46CCDDAF46E77
+ EFF4E2A7D8F2FF2759B6724FD9354BF30B09810EF5B16C43866FACAC7DA67DD5
+ E364655A15020ECEDD42AD47C839EE4AE9EC5CE492EBB2CF9DFC676BCA83772D
+ 6C133CEFE14D395F066B0C032AA4346AD5B9905D20C49BD255350196D4BEF40D
+ C48A47657F44073D05CEDC9AFBF0585F63B61D1379AF7BF2B702C67D8509B0F6
+ 4329E52D1DE8CE2CF557B6B93144CAF13C04767702CCED62B12433587FB99141
+ 4E1C03C2B70011B72EC02E479843CEAD6E60D04BEED9C1825B47A54E6273CF15
+ F73CE9095226D00B891000FB66C1733E2F71CCACCC08EA36043165755141D334
+ 2CE6EEAFE429F0552F3468CD5E370CE05842F04E4FE2DFF6A05979CE04633524
+ 15F08707024484E0F9EA36C880ACAE7A70DE87931D7B0190BCD0B1326F11E256
+ 20FF0098C454D92324167A5320163B95FF47C0518EC02219F4E9D3AB01C780F4
+ 3780910A46D167763E3FF508B95A59BA105F037E76038EC28FE6C9B58DCDEC3F
+ E273F115E07FEC1D6B02010E884AA1F00000000049454E44AE426082}
+ Name = 'PngImage0'
+ Background = clWindow
+ end>
+ PngOptions = [pngBlendOnDisabled, pngGrayscaleOnDisabled]
+ Left = 308
+ Top = 16
+ Bitmap = {}
+ end
+ object ExtraImages: TPngImageList
+ Height = 28
+ Width = 28
+ PngImages = <>
+ Left = 232
+ Top = 80
+ end
+end
diff --git a/Source/Modulos/Tipos de venta/Plugin/uPluginTiposVenta.pas b/Source/Modulos/Tipos de venta/Plugin/uPluginTiposVenta.pas
new file mode 100644
index 00000000..1799d8e5
--- /dev/null
+++ b/Source/Modulos/Tipos de venta/Plugin/uPluginTiposVenta.pas
@@ -0,0 +1,74 @@
+unit uPluginTiposVenta;
+
+interface
+
+uses
+ uModuleController, uInterfaces, uHostManager, Menus, Classes, ActnList,
+ ImgList, Controls, PngImageList;
+
+type
+ IMCTiposVenta = interface(IInterface)
+ ['{FCFD32A3-68B9-4A15-B458-EB8B27324D22}']
+ end;
+
+ TPluginTiposVenta = class(TModuleController, IMCTiposVenta)
+ actTiposVenta: TAction;
+ ExtraImages: TPngImageList;
+ LargeImages: TPngImageList;
+ MainMenu: TMainMenu;
+ ModuleActionList: TActionList;
+ SmallImages: TPngImageList;
+ TiposVenta: TMenuItem;
+ TiposVenta1: TMenuItem;
+ N1: TMenuItem;
+ procedure actTiposVentaExecute(Sender: TObject);
+ public
+ constructor Create(AOwner: TComponent); override;
+ destructor Destroy; override;
+ end;
+
+implementation
+
+{$R *.dfm}
+
+uses
+ Forms, Dialogs, SysUtils,
+ uTiposVentaController, uBizTiposVenta, uTiposVentaViewRegister;
+
+function GetModule : TModuleController;
+begin
+ Result := TPluginTiposVenta.Create(NIL);
+end;
+
+exports
+ GetModule name GET_MODULE_FUNC;
+
+procedure TPluginTiposVenta.actTiposVentaExecute(Sender: TObject);
+var
+ ATiposVentaController : ITiposVentaController;
+ ATiposVenta : IBizTipoVenta;
+begin
+ ATiposVentaController := TTiposVentaController.Create;
+ ATiposVenta := (ATiposVentaController.BuscarTodos as IBizTipoVenta);
+ ATiposVentaController.VerTodos(ATiposVenta);
+end;
+
+constructor TPluginTiposVenta.Create(AOwner: TComponent);
+begin
+ inherited;
+ uTiposVentaViewRegister.RegisterViews;
+end;
+
+destructor TPluginTiposVenta.Destroy;
+begin
+ uTiposVentaViewRegister.UnregisterViews;
+ inherited;
+end;
+
+initialization
+ RegisterModuleClass(TPluginTiposVenta);
+
+finalization
+ UnRegisterModuleClass(TPluginTiposVenta);
+
+end.
diff --git a/Source/Modulos/Tipos de venta/Servidor/srvTiposVenta_Impl.dfm b/Source/Modulos/Tipos de venta/Servidor/srvTiposVenta_Impl.dfm
new file mode 100644
index 00000000..697c2de6
--- /dev/null
+++ b/Source/Modulos/Tipos de venta/Servidor/srvTiposVenta_Impl.dfm
@@ -0,0 +1,71 @@
+object srvTiposVenta: TsrvTiposVenta
+ OldCreateOrder = True
+ OnCreate = DataAbstractServiceCreate
+ SessionManager = dmServer.SessionManager
+ ServiceSchema = schTiposVenta
+ ServiceDataStreamer = Bin2DataStreamer
+ ExportedDataTables = <>
+ BeforeAcquireConnection = DataAbstractServiceBeforeAcquireConnection
+ Height = 300
+ Width = 300
+ object schTiposVenta: TDASchema
+ ConnectionManager = dmServer.ConnectionManager
+ Datasets = <
+ item
+ Params = <>
+ Statements = <
+ item
+ Connection = 'IBX'
+ ConnectionType = 'Interbase'
+ Default = True
+ TargetTable = 'TIPOS_VENTA'
+ Name = 'IBX'
+ StatementType = stAutoSQL
+ ColumnMappings = <
+ item
+ DatasetField = 'ID'
+ TableField = 'ID'
+ end
+ item
+ DatasetField = 'DESCRIPCION'
+ TableField = 'DESCRIPCION'
+ end
+ item
+ DatasetField = 'CODIGO_CONTABLE'
+ TableField = 'CODIGO_CONTABLE'
+ end>
+ end>
+ Name = 'TiposVenta'
+ Fields = <
+ item
+ Name = 'ID'
+ DataType = datAutoInc
+ GeneratorName = 'GEN_TIPOS_VENTA_ID'
+ Required = True
+ InPrimaryKey = True
+ end
+ item
+ Name = 'DESCRIPCION'
+ DataType = datString
+ Size = 255
+ end
+ item
+ Name = 'CODIGO_CONTABLE'
+ DataType = datString
+ Size = 2
+ end>
+ end>
+ JoinDataTables = <>
+ UnionDataTables = <>
+ Commands = <>
+ RelationShips = <>
+ UpdateRules = <>
+ Version = 0
+ Left = 40
+ Top = 24
+ end
+ object Bin2DataStreamer: TDABin2DataStreamer
+ Left = 40
+ Top = 88
+ end
+end
diff --git a/Source/Modulos/Tipos de venta/Servidor/srvTiposVenta_Impl.pas b/Source/Modulos/Tipos de venta/Servidor/srvTiposVenta_Impl.pas
new file mode 100644
index 00000000..a8f7361e
--- /dev/null
+++ b/Source/Modulos/Tipos de venta/Servidor/srvTiposVenta_Impl.pas
@@ -0,0 +1,60 @@
+unit srvTiposVenta_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
+ { TsrvTiposVenta }
+ TsrvTiposVenta = class(TDataAbstractService, IsrvTiposVenta)
+ Bin2DataStreamer: TDABin2DataStreamer;
+ schTiposVenta: TDASchema;
+ procedure DataAbstractServiceBeforeAcquireConnection(aSender: TObject; var aConnectionName: string);
+ procedure DataAbstractServiceCreate(Sender: TObject);
+ end;
+
+implementation
+
+{$R *.dfm}
+uses
+ {Generated:} FactuGES_Invk, Variants,
+ uDataModuleServer, uROClasses;
+
+procedure Create_srvTiposVenta(out anInstance : IUnknown);
+begin
+ anInstance := TsrvTiposVenta.Create(nil);
+end;
+
+{ srvTiposVenta }
+
+procedure TsrvTiposVenta.DataAbstractServiceBeforeAcquireConnection(aSender: TObject; var aConnectionName: string);
+begin
+ ConnectionName := dmServer.ConnectionName;
+end;
+
+procedure TsrvTiposVenta.DataAbstractServiceCreate(Sender: TObject);
+begin
+ SessionManager := dmServer.SessionManager;
+end;
+
+
+initialization
+ TROClassFactory.Create('srvTiposVenta', Create_srvTiposVenta, TsrvTiposVenta_Invoker);
+
+finalization
+
+end.
diff --git a/Source/Modulos/Tipos de venta/TiposVenta_Group.groupproj b/Source/Modulos/Tipos de venta/TiposVenta_Group.groupproj
new file mode 100644
index 00000000..a1f76c36
--- /dev/null
+++ b/Source/Modulos/Tipos de venta/TiposVenta_Group.groupproj
@@ -0,0 +1,124 @@
+
+
+ {6fa7160e-0b4c-4f7c-9c55-08938cd225c4}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Default.Personality
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Source/Modulos/Tipos de venta/Views/TiposVenta_view.dpk b/Source/Modulos/Tipos de venta/Views/TiposVenta_view.dpk
new file mode 100644
index 00000000..965d1c11
--- /dev/null
+++ b/Source/Modulos/Tipos de venta/Views/TiposVenta_view.dpk
@@ -0,0 +1,36 @@
+package TiposVenta_view;
+
+{$R *.res}
+{$ALIGN 8}
+{$ASSERTIONS ON}
+{$BOOLEVAL OFF}
+{$DEBUGINFO ON}
+{$EXTENDEDSYNTAX ON}
+{$IMPORTEDDATA ON}
+{$IOCHECKS ON}
+{$LOCALSYMBOLS ON}
+{$LONGSTRINGS ON}
+{$OPENSTRINGS ON}
+{$OPTIMIZATION ON}
+{$OVERFLOWCHECKS OFF}
+{$RANGECHECKS OFF}
+{$REFERENCEINFO ON}
+{$SAFEDIVIDE OFF}
+{$STACKFRAMES OFF}
+{$TYPEDADDRESS OFF}
+{$VARSTRINGCHECKS ON}
+{$WRITEABLECONST OFF}
+{$MINENUMSIZE 1}
+{$IMAGEBASE $400000}
+{$IMPLICITBUILD ON}
+
+requires
+ GUIBase,
+ TiposVenta_controller,
+ TiposVenta_model;
+
+contains
+ uEditorTiposVenta in 'uEditorTiposVenta.pas' {fEditorTiposVenta: TfEditorFormasPago},
+ uTiposVentaViewRegister in 'uTiposVentaViewRegister.pas';
+
+end.
diff --git a/Source/Modulos/Tipos de venta/Views/TiposVenta_view.dproj b/Source/Modulos/Tipos de venta/Views/TiposVenta_view.dproj
new file mode 100644
index 00000000..92ce75e6
--- /dev/null
+++ b/Source/Modulos/Tipos de venta/Views/TiposVenta_view.dproj
@@ -0,0 +1,542 @@
+
+
+
+ {e3d36a6f-7004-4c89-9f3d-f2d77e386d1b}
+ TiposVenta_view.dpk
+ Debug
+ AnyCPU
+ DCC32
+ ..\..\..\..\Output\Debug\Cliente\TiposVenta_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
+
+FalseTrueFalseTrueFalseFalseTrueFalse1000FalseFalseFalseFalseFalse308212521.0.0.01.0.0.0TiposVenta_view.dpk
+
+
+
+
+ MainSource
+
+
+
+
+
+
+ TfEditorFormasPago
+
+
+
+
+
diff --git a/Source/Modulos/Tipos de venta/Views/TiposVenta_view.res b/Source/Modulos/Tipos de venta/Views/TiposVenta_view.res
new file mode 100644
index 00000000..1641339f
Binary files /dev/null and b/Source/Modulos/Tipos de venta/Views/TiposVenta_view.res differ
diff --git a/Source/Modulos/Tipos de venta/Views/uEditorTiposVenta.dfm b/Source/Modulos/Tipos de venta/Views/uEditorTiposVenta.dfm
new file mode 100644
index 00000000..4ef2bf2f
--- /dev/null
+++ b/Source/Modulos/Tipos de venta/Views/uEditorTiposVenta.dfm
@@ -0,0 +1,135 @@
+object fEditorTiposVenta: TfEditorTiposVenta
+ Left = 453
+ Top = 234
+ BorderIcons = [biSystemMenu]
+ BorderStyle = bsSingle
+ Caption = 'Lista de referencias'
+ ClientHeight = 406
+ ClientWidth = 466
+ Color = clBtnFace
+ ParentFont = True
+ OldCreateOrder = False
+ Position = poScreenCenter
+ OnCloseQuery = FormCloseQuery
+ OnShow = FormShow
+ PixelsPerInch = 96
+ TextHeight = 13
+ object bAceptar: TButton
+ Left = 297
+ Top = 373
+ Width = 75
+ Height = 23
+ Action = actAceptar
+ Default = True
+ TabOrder = 1
+ end
+ object bCancelar: TButton
+ Left = 382
+ Top = 373
+ Width = 75
+ Height = 23
+ Action = actCancelar
+ Cancel = True
+ TabOrder = 2
+ end
+ object PageControl1: TPageControl
+ Left = 8
+ Top = 8
+ Width = 450
+ Height = 356
+ ActivePage = TabSheet1
+ TabOrder = 0
+ object TabSheet1: TTabSheet
+ Caption = 'Referencias'
+ object Label1: TLabel
+ Left = 6
+ Top = 12
+ Width = 149
+ Height = 13
+ Caption = 'Lista de referencias disponibles'
+ end
+ object ListaTiposVenta: TcxGrid
+ Left = 0
+ Top = 0
+ Width = 442
+ Height = 328
+ Align = alClient
+ TabOrder = 0
+ LookAndFeel.Kind = lfOffice11
+ LookAndFeel.NativeStyle = True
+ object ListaTiposVentaView: TcxGridDBTableView
+ NavigatorButtons.ConfirmDelete = False
+ FilterBox.Visible = fvNever
+ DataController.DataSource = dsTiposVenta
+ DataController.Filter.Options = [fcoCaseInsensitive]
+ DataController.KeyFieldNames = 'CODIGO'
+ DataController.Options = [dcoAnsiSort, dcoAssignGroupingValues, dcoAssignMasterDetailKeys, dcoSaveExpanding, dcoFocusTopRowAfterSorting, dcoImmediatePost]
+ DataController.Summary.DefaultGroupSummaryItems = <>
+ DataController.Summary.FooterSummaryItems = <>
+ DataController.Summary.SummaryGroups = <>
+ OptionsBehavior.AlwaysShowEditor = True
+ OptionsBehavior.CellHints = True
+ OptionsBehavior.FocusCellOnTab = True
+ OptionsBehavior.GoToNextCellOnEnter = True
+ OptionsBehavior.BestFitMaxRecordCount = 20
+ OptionsBehavior.FocusCellOnCycle = True
+ OptionsCustomize.ColumnFiltering = False
+ OptionsCustomize.ColumnGrouping = False
+ OptionsCustomize.ColumnMoving = False
+ OptionsCustomize.ColumnSorting = False
+ OptionsCustomize.DataRowSizing = True
+ OptionsData.CancelOnExit = False
+ OptionsData.Deleting = False
+ OptionsData.DeletingConfirmation = False
+ OptionsData.Inserting = False
+ OptionsSelection.UnselectFocusedRecordOnExit = False
+ OptionsView.CellEndEllipsis = True
+ OptionsView.CellAutoHeight = True
+ OptionsView.ColumnAutoWidth = True
+ OptionsView.GridLineColor = cl3DLight
+ OptionsView.GroupByBox = False
+ OptionsView.HeaderEndEllipsis = True
+ OptionsView.Indicator = True
+ object ListaTiposVentaViewDESCRIPCION: TcxGridDBColumn
+ Caption = 'Tipo de venta'
+ DataBinding.FieldName = 'DESCRIPCION'
+ PropertiesClassName = 'TcxTextEditProperties'
+ Properties.ReadOnly = True
+ Options.Editing = False
+ Options.Focusing = False
+ SortIndex = 0
+ SortOrder = soAscending
+ Width = 191
+ end
+ object ListaTiposVentaViewCODIGO: TcxGridDBColumn
+ Caption = 'C'#243'digo contable'
+ DataBinding.FieldName = 'CODIGO_CONTABLE'
+ end
+ end
+ object ListaTiposVentaLevel: TcxGridLevel
+ GridView = ListaTiposVentaView
+ end
+ end
+ end
+ end
+ object ActionList1: TActionList
+ Left = 144
+ Top = 16
+ 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 dsTiposVenta: TDADataSource
+ Left = 168
+ Top = 16
+ end
+end
diff --git a/Source/Modulos/Tipos de venta/Views/uEditorTiposVenta.pas b/Source/Modulos/Tipos de venta/Views/uEditorTiposVenta.pas
new file mode 100644
index 00000000..a99ec328
--- /dev/null
+++ b/Source/Modulos/Tipos de venta/Views/uEditorTiposVenta.pas
@@ -0,0 +1,172 @@
+{
+===============================================================================
+ 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 uEditorTiposVenta;
+
+interface
+
+uses
+ Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
+ uIEditorTiposVenta, uBizTiposVenta, uTiposVentaController, DB, uDADataTable,
+ ActnList, Grids, DBGrids, StdCtrls, ComCtrls, cxStyles, cxCustomData,
+ cxGraphics, cxFilter, cxData, cxDataStorage, cxEdit, cxDBData, cxGridLevel,
+ cxGridCustomTableView, cxGridTableView, cxGridDBTableView, cxClasses,
+ cxControls, cxGridCustomView, cxGrid, cxTextEdit, uDAInterfaces;
+
+type
+ TfEditorTiposVenta = class(TForm, IEditorTiposVenta)
+ ActionList1: TActionList;
+ dsTiposVenta: TDADataSource;
+ actAceptar: TAction;
+ actCancelar: TAction;
+ bAceptar: TButton;
+ bCancelar: TButton;
+ actCerrar: TAction;
+ PageControl1: TPageControl;
+ TabSheet1: TTabSheet;
+ Label1: TLabel;
+ ListaTiposVenta: TcxGrid;
+ ListaTiposVentaView: TcxGridDBTableView;
+ ListaTiposVentaViewCODIGO: TcxGridDBColumn;
+ ListaTiposVentaViewDESCRIPCION: TcxGridDBColumn;
+ ListaTiposVentaLevel: TcxGridLevel;
+ procedure FormShow(Sender: TObject);
+
+ procedure actAceptarExecute(Sender: TObject);
+ procedure actCancelarExecute(Sender: TObject);
+ procedure actCerrarExecute(Sender: TObject);
+ procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
+ procedure ListaTiposVentaViewVALORPropertiesValidate(Sender: TObject;
+ var DisplayValue: Variant; var ErrorText: TCaption; var Error: Boolean);
+
+ protected
+ FTiposVenta: IBizTipoVenta;
+ FController: ITiposVentaController;
+ function GetTiposVenta: IBizTipoVenta;
+ procedure SetTiposVenta(const Value: IBizTipoVenta);
+ public
+ constructor Create(AOwner: TComponent); override;
+ destructor Destroy; override;
+ property TiposVenta: IBizTipoVenta read GetTiposVenta write SetTiposVenta;
+ end;
+
+
+implementation
+{$R *.dfm}
+
+{ TfEditorTiposVenta }
+
+uses
+ uDialogUtils, Dialogs, uDataTableUtils;
+
+function TfEditorTiposVenta.GetTiposVenta: IBizTipoVenta;
+begin
+ Result := FTiposVenta;
+end;
+
+procedure TfEditorTiposVenta.ListaTiposVentaViewVALORPropertiesValidate(
+ Sender: TObject; var DisplayValue: Variant; var ErrorText: TCaption;
+ var Error: Boolean);
+begin
+// Showmessage('Validar'); No es necesario porque si no pone número lo pone el servidor
+end;
+
+procedure TfEditorTiposVenta.SetTiposVenta(const Value: IBizTipoVenta);
+begin
+ FTiposVenta := Value;
+ dsTiposVenta.DataTable := FTiposVenta.DataTable;
+ dsTiposVenta.DataTable.Open;
+end;
+
+constructor TfEditorTiposVenta.Create(AOwner: TComponent);
+begin
+ inherited;
+ FController := TTiposVentaController.Create;
+end;
+
+destructor TfEditorTiposVenta.Destroy;
+begin
+ FTiposVenta := NIL;
+ FController := NIL;
+ inherited;
+end;
+
+procedure TfEditorTiposVenta.actAceptarExecute(Sender: TObject);
+begin
+ try
+ if (TiposVenta.DataTable.State in dsEditModes) then
+ TiposVenta.DataTable.Post;
+ TiposVenta.DataTable.ApplyUpdates;
+ except
+ on E : Exception do begin
+ TiposVenta.DataTable.CancelUpdates;
+ ShowErrorMessage('Error al guardar cambios', 'Se ha producido un error grave', E);
+ Exit;
+ end;
+ end;
+ actCerrar.Execute;
+end;
+
+procedure TfEditorTiposVenta.actCancelarExecute(Sender: TObject);
+begin
+ TiposVenta.DataTable.CancelUpdates;
+ actCerrar.Execute;
+end;
+
+procedure TfEditorTiposVenta.actCerrarExecute(Sender: TObject);
+begin
+ Close;
+end;
+
+procedure TfEditorTiposVenta.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
+var
+ Respuesta: Integer;
+begin
+ Respuesta := IDNO;
+
+ if (DataTableModified(dsTiposVenta.DataTable)) then
+ Respuesta := ShowConfirmMessage('Atención', 'Se han producido cambios',
+ '¿Desea guardar los cambios que se han producido antes de cerrar?',
+ [TDlgButton_SI, TDlgButton_NO, TDlgButton_CANCELAR]);
+
+ case Respuesta of
+ IDYES : actAceptar.Execute;
+ IDNO : actCancelar.Execute;
+ else CanClose := False;
+ end;
+end;
+
+procedure TfEditorTiposVenta.FormShow(Sender: TObject);
+begin
+ if not FTiposVenta.DataTable.Active then
+ FTiposVenta.DataTable.Active := true;
+
+ ListaTiposVenta.SetFocus;
+{
+ EnableScrollBar(ListaTiposVenta.Handle,SB_HORZ,ESB_DISABLE_BOTH);
+ ShowScrollBar(ListaTiposVenta.Handle,SB_HORZ,false);
+ EnableScrollBar(ListaTiposVenta.Handle,SB_VERT,ESB_DISABLE_BOTH);
+}
+end;
+
+end.
diff --git a/Source/Modulos/Tipos de venta/Views/uTiposVentaViewRegister.pas b/Source/Modulos/Tipos de venta/Views/uTiposVentaViewRegister.pas
new file mode 100644
index 00000000..374324af
--- /dev/null
+++ b/Source/Modulos/Tipos de venta/Views/uTiposVentaViewRegister.pas
@@ -0,0 +1,23 @@
+unit uTiposVentaViewRegister;
+
+interface
+
+procedure RegisterViews;
+procedure UnregisterViews;
+
+implementation
+
+uses
+ uEditorRegistryUtils, uEditorTiposVenta;
+
+procedure RegisterViews;
+begin
+ EditorRegistry.RegisterClass(TfEditorTiposVenta, 'EditorTiposVenta');
+end;
+
+procedure UnregisterViews;
+begin
+ EditorRegistry.UnRegisterClass(TfEditorTiposVenta);
+end;
+
+end.
diff --git a/Source/Servicios/FactuGES.RODL b/Source/Servicios/FactuGES.RODL
index 992505d4..2d4c6868 100644
--- a/Source/Servicios/FactuGES.RODL
+++ b/Source/Servicios/FactuGES.RODL
@@ -390,6 +390,15 @@
+
+
+
+
+
+
+
+
+
diff --git a/Source/Servicios/FactuGES_Intf.pas b/Source/Servicios/FactuGES_Intf.pas
index 7ca71ad4..899dc100 100644
--- a/Source/Servicios/FactuGES_Intf.pas
+++ b/Source/Servicios/FactuGES_Intf.pas
@@ -49,6 +49,7 @@ const
IsrvReferencias_IID : TGUID = '{B957528D-3BE1-412D-A35E-801C97CCD252}';
IsrvContabilidad_IID : TGUID = '{04CDF2E1-EFC2-4247-AA4F-09BE782C73FA}';
IsrvUnidadesMedida_IID : TGUID = '{C1B36FAB-7514-40D2-A20C-04A86C9E71AB}';
+ IsrvTiposVenta_IID : TGUID = '{3F7A1493-5134-4C13-8A9B-35363ADD55EB}';
{ Event ID's }
@@ -80,6 +81,7 @@ type
IsrvReferencias = interface;
IsrvContabilidad = interface;
IsrvUnidadesMedida = interface;
+ IsrvTiposVenta = interface;
TRdxEmpresasArray = class;
@@ -642,6 +644,23 @@ type
end;
+ { IsrvTiposVenta }
+ IsrvTiposVenta = interface(IDataAbstractService)
+ ['{3F7A1493-5134-4C13-8A9B-35363ADD55EB}']
+ end;
+
+ { CosrvTiposVenta }
+ CosrvTiposVenta = class
+ class function Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvTiposVenta;
+ end;
+
+ { TsrvTiposVenta_Proxy }
+ TsrvTiposVenta_Proxy = class(TDataAbstractService_Proxy, IsrvTiposVenta)
+ protected
+ function __GetInterfaceName:string; override;
+
+ end;
+
implementation
uses
@@ -1596,6 +1615,18 @@ begin
result := 'srvUnidadesMedida';
end;
+{ CosrvTiposVenta }
+
+class function CosrvTiposVenta.Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvTiposVenta;
+begin
+ result := TsrvTiposVenta_Proxy.Create(aMessage, aTransportChannel);
+end;
+
+function TsrvTiposVenta_Proxy.__GetInterfaceName:string;
+begin
+ result := 'srvTiposVenta';
+end;
+
initialization
RegisterROClass(TRdxLoginInfo);
RegisterROClass(TRdxEmpresasArray);
@@ -1625,6 +1656,7 @@ initialization
RegisterProxyClass(IsrvReferencias_IID, TsrvReferencias_Proxy);
RegisterProxyClass(IsrvContabilidad_IID, TsrvContabilidad_Proxy);
RegisterProxyClass(IsrvUnidadesMedida_IID, TsrvUnidadesMedida_Proxy);
+ RegisterProxyClass(IsrvTiposVenta_IID, TsrvTiposVenta_Proxy);
finalization
@@ -1656,5 +1688,6 @@ finalization
UnregisterProxyClass(IsrvReferencias_IID);
UnregisterProxyClass(IsrvContabilidad_IID);
UnregisterProxyClass(IsrvUnidadesMedida_IID);
+ UnregisterProxyClass(IsrvTiposVenta_IID);
end.
diff --git a/Source/Servicios/FactuGES_Invk.pas b/Source/Servicios/FactuGES_Invk.pas
index df1eeb9e..4569ec5a 100644
--- a/Source/Servicios/FactuGES_Invk.pas
+++ b/Source/Servicios/FactuGES_Invk.pas
@@ -196,6 +196,12 @@ type
published
end;
+ TsrvTiposVenta_Invoker = class(TDataAbstractService_Invoker)
+ private
+ protected
+ published
+ end;
+
implementation
uses
diff --git a/Source/Servicios/RODLFILE.res b/Source/Servicios/RODLFILE.res
index b01d8581..88ed2095 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 dc6673ef..bd986be8 100644
--- a/Source/Servidor/FactuGES_Server.dpr
+++ b/Source/Servidor/FactuGES_Server.dpr
@@ -115,7 +115,8 @@ uses
schRecibosClienteClient_Intf in '..\Modulos\Recibos de cliente\Model\schRecibosClienteClient_Intf.pas',
schRecibosClienteServer_Intf in '..\Modulos\Recibos de cliente\Model\schRecibosClienteServer_Intf.pas',
schEmpresasClient_Intf in '..\ApplicationBase\Empresas\Model\schEmpresasClient_Intf.pas',
- schEmpresasServer_Intf in '..\ApplicationBase\Empresas\Model\schEmpresasServer_Intf.pas';
+ schEmpresasServer_Intf in '..\ApplicationBase\Empresas\Model\schEmpresasServer_Intf.pas',
+ srvTiposVenta_Impl in '..\Modulos\Tipos de venta\Servidor\srvTiposVenta_Impl.pas' {srvTiposVenta: TDataAbstractService};
{$R *.res}
{$R ..\Servicios\RODLFile.res}
diff --git a/Source/Servidor/FactuGES_Server.dproj b/Source/Servidor/FactuGES_Server.dproj
index 13243bb1..02485fc5 100644
--- a/Source/Servidor/FactuGES_Server.dproj
+++ b/Source/Servidor/FactuGES_Server.dproj
@@ -1,250 +1,254 @@
-
+
-
- {ebdcd25d-40d7-4146-91ec-a0ea4aa1dcd1}
- FactuGES_Server.dpr
- Debug
- AnyCPU
- DCC32
- ..\..\Output\Debug\Servidor\FactuGES_Server.exe
-
-
- 7.0
- False
- False
- 0
- 3
- ..\..\Output\Release\Servidor
- RELEASE
-
-
- 7.0
- 3
- ..\..\Output\Debug\Servidor
- DEBUG;
- True
-
-
- Delphi.Personality
-
-
- FalseTrueFalseTrueFalse1000FalseFalseFalseFalseFalse308212521.0.0.03.0.0.0lunes, 19 de noviembre de 2007 18:58
- RemObjects Pascal Script - RemObjects SDK 3.0 Integration
- FactuGES_Server.dpr
-
-
-
-
- MainSource
-
-
-
-
-
-
- TDataAbstractService
-
-
-
-
-
- TDARemoteService
-
-
-
-
-
-
-
-
-
-
- TDataAbstractService
-
-
-
-
-
-
- TDataAbstractService
-
-
-
-
-
- TDARemoteService
-
-
-
-
-
-
-
-
- TDataAbstractService
-
-
-
-
-
-
-
-
-
- TDataModule
-
-
-
- TDataModule
-
-
-
- TDARemoteService
-
-
-
-
-
-
- TDataModule
-
-
-
- TDataAbstractService
-
-
-
-
-
-
- TDataAbstractService
-
-
-
-
-
-
-
-
-
-
-
- TDataAbstractService
-
-
-
-
-
- TDataAbstractService
-
-
-
-
-
-
- TDataAbstractService
-
-
-
-
-
-
-
-
-
- TDataAbstractService
-
-
-
-
-
-
-
- TDataModule
-
-
-
- TDataAbstractService
-
-
-
-
-
-
- TDataAbstractService
-
-
-
- TDataAbstractService
-
-
-
-
-
-
- TDataAbstractService
-
-
-
-
-
-
- TDataAbstractService
-
-
-
-
-
-
-
-
- TDataAbstractService
-
-
-
-
-
- TDataAbstractService
-
-
-
- TFrame
-
-
-
- TFrame
-
-
-
- TForm
-
-
-
- TFrame
-
-
-
- TDARemoteService
-
-
-
-
-
-
- TDataModule
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+ {ebdcd25d-40d7-4146-91ec-a0ea4aa1dcd1}
+ FactuGES_Server.dpr
+ Debug
+ AnyCPU
+ DCC32
+ ..\..\Output\Debug\Servidor\FactuGES_Server.exe
+
+
+ 7.0
+ False
+ False
+ 0
+ 3
+ ..\..\Output\Release\Servidor
+ RELEASE
+
+
+ 7.0
+ 3
+ ..\..\Output\Debug\Servidor
+ DEBUG;
+ True
+
+
+ Delphi.Personality
+
+
+FalseTrueFalseTrueFalse1000FalseFalseFalseFalseFalse308212521.0.0.03.0.0.0lunes, 19 de noviembre de 2007 18:58
+ RemObjects Pascal Script - RemObjects SDK 3.0 Integration
+ FactuGES_Server.dpr
+
+
+
+
+ MainSource
+
+
+
+
+
+
+ TDataAbstractService
+
+
+
+
+
+ TDARemoteService
+
+
+
+
+
+
+
+
+
+
+ TDataAbstractService
+
+
+
+
+
+
+ TDataAbstractService
+
+
+
+
+
+ TDARemoteService
+
+
+
+
+
+
+
+
+ TDataAbstractService
+
+
+
+
+
+
+
+
+
+ TDataModule
+
+
+
+ TDataModule
+
+
+
+ TDARemoteService
+
+
+
+
+
+
+ TDataModule
+
+
+
+ TDataAbstractService
+
+
+
+
+
+
+ TDataAbstractService
+
+
+
+
+
+
+
+
+
+
+
+ TDataAbstractService
+
+
+
+
+
+ TDataAbstractService
+
+
+
+
+
+
+ TDataAbstractService
+
+
+
+
+
+
+
+
+
+ TDataAbstractService
+
+
+
+
+
+
+
+ TDataModule
+
+
+
+ TDataAbstractService
+
+
+
+
+
+
+ TDataAbstractService
+
+
+
+ TDataAbstractService
+
+
+
+
+
+
+ TDataAbstractService
+
+
+
+
+
+
+ TDataAbstractService
+
+
+
+
+
+
+ TDataAbstractService
+
+
+
+
+
+ TDataAbstractService
+
+
+
+
+
+ TDataAbstractService
+
+
+
+ TFrame
+
+
+
+ TFrame
+
+
+
+ TForm
+
+
+
+ TFrame
+
+
+
+ TDARemoteService
+
+
+
+
+
+
+ TDataModule
+
+
+
+
+
+
+
+
+
+
+
+
+