From 49002acf203534a578099429c6c8fd6cb6f27fab Mon Sep 17 00:00:00 2001 From: roberto Date: Wed, 8 Jul 2009 15:39:46 +0000 Subject: [PATCH] =?UTF-8?q?Se=20arreglan=20las=20remesas=20de=20cliente=20?= =?UTF-8?q?y=20proveedor,=20lista=20de=20recibos=20a=20seleccionar=20para?= =?UTF-8?q?=20a=C3=B1adir=20en=20la=20remesa=20tiene=20que=20excluir=20los?= =?UTF-8?q?=20recibos=20ya=20a=C3=B1adidos,=20y=20en=20teor=C3=ADa=20deber?= =?UTF-8?q?=C3=ADan=20salir=20los=20eliminados,=20ya=20que=20todo=20se=20h?= =?UTF-8?q?ace=20en=20memoria=20y=20hasta=20que=20no=20se=20da=20a=20guard?= =?UTF-8?q?ar=20no=20se=20pasa=20a=20BD,=20la=20parte=20de=20eliminados=20?= =?UTF-8?q?se=20omite=20ya=20que=20puede=20provocar=20efectos=20laterales.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Tambien se arregla la lista de articulos reservados para que salgan solo aquellos reservados a obras o almacenes de la empresa activa. git-svn-id: https://192.168.0.254/svn/Proyectos.Tecsitel_FactuGES2/trunk@958 0c75b7a4-871f-7646-8a2f-f78d34cc349f --- Database/scripts/factuges.sql | 7 +- .../uViewDatosYSeleccionClienteAlbaran.pas | 2 +- .../Controller/uInventarioController.pas | 14 +- .../Inventario/Data/uDataModuleInventario.dfm | 12 +- .../Model/schInventarioClient_Intf.pas | 69 +- .../Model/schInventarioServer_Intf.pas | 71 +- .../Servidor/srvInventario_Impl.dfm | 10 +- .../Views/uEditorDetalleReservas.dfm | 6 +- .../Views/uEditorDetalleReservas.pas | 2 +- .../Controller/uRecibosClienteController.pas | 27 +- .../uRecibosProveedorController.pas | 27 +- .../Controller/uRemesasClienteController.pas | 35 +- .../RemesasCliente_Group.groupproj | 16 +- .../Views/uViewRecibosRemesaCliente.dfm | 1 + .../Views/uViewRecibosRemesaCliente.pas | 20 +- .../uRemesasProveedorController.pas | 36 +- .../Views/uViewRecibosRemesaProveedor.dfm | 1 + .../Views/uViewRecibosRemesaProveedor.pas | 19 +- Source/Servidor/FactuGES_Server.RES | Bin 23204 -> 23208 bytes Source/Servidor/FactuGES_Server.dpr | 6 +- Source/Servidor/FactuGES_Server.dproj | 660 +++++++++--------- Source/Servidor/FactuGES_Server.rc | 2 +- Source/Servidor/uDataModuleServer.dfm | 4 +- 23 files changed, 640 insertions(+), 407 deletions(-) diff --git a/Database/scripts/factuges.sql b/Database/scripts/factuges.sql index 472e51d4..f04c2629 100644 --- a/Database/scripts/factuges.sql +++ b/Database/scripts/factuges.sql @@ -2354,7 +2354,6 @@ AND (ARTICULOS.INVENTARIABLE = 1) ; - /* View: V_INV_DETALLE_RESERVAS */ CREATE VIEW V_INV_DETALLE_RESERVAS( ID, @@ -2372,20 +2371,22 @@ CREATE VIEW V_INV_DETALLE_RESERVAS( REFERENCIA_FABR, CANTIDAD, ID_ALMACEN_RESERVA, - NOMBRE_ALMACEN_RESERVA) + NOMBRE_ALMACEN_RESERVA, + ID_EMPRESA_ALMACEN_RESERVA) AS select movimientos.id, almacenes1.ID_EMPRESA, movimientos.ID_ALMACEN, almacenes1.nombre as nombre_almacen, movimientos.fecha_movimiento as fecha_reserva, movimientos.causa, movimientos.id_articulo, articulos.referencia, articulos.descripcion, articulos.familia, articulos.unidad_medida, articulos.fabricante, articulos.referencia_fabr, movimientos.cantidad, movimientos.id_almacen_reserva, -almacenes2.nombre as nombre_almacen_reserva +almacenes2.nombre as nombre_almacen_reserva, almacenes2.id_empresa from movimientos left join almacenes almacenes1 on (almacenes1.ID = movimientos.ID_ALMACEN) left join almacenes almacenes2 on (almacenes2.ID = movimientos.ID_ALMACEN_RESERVA) left join articulos on (articulos.id = movimientos.id_articulo) where tipo = 'R' ; +; diff --git a/Source/Modulos/Albaranes de cliente/Views/uViewDatosYSeleccionClienteAlbaran.pas b/Source/Modulos/Albaranes de cliente/Views/uViewDatosYSeleccionClienteAlbaran.pas index abcf12dd..f64fe3cc 100644 --- a/Source/Modulos/Albaranes de cliente/Views/uViewDatosYSeleccionClienteAlbaran.pas +++ b/Source/Modulos/Albaranes de cliente/Views/uViewDatosYSeleccionClienteAlbaran.pas @@ -264,7 +264,7 @@ begin FAlbaran.IMPORTE_PORTE := FDireccion.PORTE; end; //Siempre asignaremos la persona de contacto ya sea de las direcciones del contacto o la ID_Direccion=0 que es la principal de la ficha - FPresupuesto.PERSONA_CONTACTO := FDireccion.PERSONA_CONTACTO; + FAlbaran.PERSONA_CONTACTO := FDireccion.PERSONA_CONTACTO; EscribirTextoDireccion; end; end; diff --git a/Source/Modulos/Inventario/Controller/uInventarioController.pas b/Source/Modulos/Inventario/Controller/uInventarioController.pas index ba763008..99fd589d 100644 --- a/Source/Modulos/Inventario/Controller/uInventarioController.pas +++ b/Source/Modulos/Inventario/Controller/uInventarioController.pas @@ -200,21 +200,21 @@ end; function TInventarioController.Buscar(const ID_ALMACEN: Integer): IBizInventario; begin Result := (FDataModule as IDataModuleInventario).GetItems(ID_ALMACEN); -//Los inventarios serán comunes +//Los inventarios serán comunes lo que pasa es que ciertas obras no se podrán ver sus inventarios si no está su empresa activa // FiltrarEmpresa(Result); end; function TInventarioController.BuscarDetalleReservas: IBizDetalleReservas; begin Result := FDataModule.GetDetalleReservas; -//Los inventarios serán comunes -// FiltrarEmpresa(Result); + //Se filtra para que solo salgan las reservas a obras o almacenes de la empresa activa + FiltrarEmpresa(Result); end; function TInventarioController.BuscarTodos: IBizInventario; begin Result := FDataModule.GetItems; -//Los inventarios serán comunes +//Los inventarios serán comunes lo que pasa es que ciertas obras no se podrán ver sus inventarios si no está su empresa activa // FiltrarEmpresa(Result); end; @@ -460,13 +460,13 @@ var Condicion: TDAWhereExpression; begin if ADetalleReservas.DataTable.Active then - ADetalleReservas.DataTable.Active := False; + ADetalleReservas.DataTable.Active := False; // Filtrar los inventario actuales por empresa with ADetalleReservas.DataTable.DynamicWhere do begin // (ID_EMPRESA >= ID) - Condicion := NewBinaryExpression(NewField('', fld_DetalleReservasID_EMPRESA), NewConstant(AppFactuGES.EmpresaActiva.ID, datInteger), dboEqual); + Condicion := NewBinaryExpression(NewField('', fld_DetalleReservasID_EMPRESA_ALMACEN_RESERVA), NewConstant(AppFactuGES.EmpresaActiva.ID, datInteger), dboEqual); if IsEmpty then Expression := Condicion @@ -561,7 +561,7 @@ begin AEditor.Controller := Self; //OJO ORDEN MUY IMPORTANTE AEditor.TipoReservas := ATipoReservas; AEditor.IdAlmacenObra := IdAlmacenObra; - AEditor.DetalleReservas := FDataModule.GetDetalleReservas; + AEditor.DetalleReservas := BuscarDetalleReservas; AEditor.Articulo := AArticulo; AEditor.MultiSelect := True; AEditor.ShowModal; diff --git a/Source/Modulos/Inventario/Data/uDataModuleInventario.dfm b/Source/Modulos/Inventario/Data/uDataModuleInventario.dfm index 472899d0..e756c0b7 100644 --- a/Source/Modulos/Inventario/Data/uDataModuleInventario.dfm +++ b/Source/Modulos/Inventario/Data/uDataModuleInventario.dfm @@ -14,12 +14,12 @@ inherited DataModuleInventario: TDataModuleInventario Top = 84 end object rda_Inventario: TDARemoteDataAdapter + DataStreamer = Bin2DataStreamer GetSchemaCall.RemoteService = RORemoteService GetDataCall.RemoteService = RORemoteService UpdateDataCall.RemoteService = RORemoteService GetScriptsCall.RemoteService = RORemoteService RemoteService = RORemoteService - DataStreamer = Bin2DataStreamer Left = 51 Top = 151 end @@ -88,7 +88,7 @@ inherited DataModuleInventario: TDataModuleInventario end item Name = 'CANTIDAD' - DataType = datFloat + DataType = datCurrency end item Name = 'ID_ALMACEN_RESERVA' @@ -98,12 +98,14 @@ inherited DataModuleInventario: TDataModuleInventario Name = 'NOMBRE_ALMACEN_RESERVA' DataType = datString Size = 255 + end + item + Name = 'ID_EMPRESA_ALMACEN_RESERVA' + DataType = datInteger end> Params = <> StreamingOptions = [soDisableEventsWhileStreaming] RemoteDataAdapter = rda_Inventario - DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch] - MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates] LogicalName = 'DetalleReservas' IndexDefs = <> Left = 360 @@ -232,8 +234,6 @@ inherited DataModuleInventario: TDataModuleInventario Params = <> StreamingOptions = [soDisableEventsWhileStreaming] RemoteDataAdapter = rda_Inventario - DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch] - MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates] LogicalName = 'Inventario' IndexDefs = <> Left = 184 diff --git a/Source/Modulos/Inventario/Model/schInventarioClient_Intf.pas b/Source/Modulos/Inventario/Model/schInventarioClient_Intf.pas index 7468575b..53adb3ff 100644 --- a/Source/Modulos/Inventario/Model/schInventarioClient_Intf.pas +++ b/Source/Modulos/Inventario/Model/schInventarioClient_Intf.pas @@ -3,14 +3,14 @@ unit schInventarioClient_Intf; interface uses - Classes, DB, schBase_Intf, SysUtils, uROClasses, uDADataTable, FmtBCD, uROXMLIntf; + Classes, DB, 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_Inventario = '{FBC72002-7716-4732-AAD2-E87B268B83A0}'; - RID_DetalleReservas = '{F3C9E29D-BD43-4801-AD95-A0D11AFB4098}'; + RID_Inventario = '{B558C6EC-462B-47CD-A0A1-277535DCDCD3}'; + RID_DetalleReservas = '{B0B5857C-72EA-4C1D-841A-91AA5270F172}'; { Data table names } nme_Inventario = 'Inventario'; @@ -75,6 +75,7 @@ const fld_DetalleReservasCANTIDAD = 'CANTIDAD'; fld_DetalleReservasID_ALMACEN_RESERVA = 'ID_ALMACEN_RESERVA'; fld_DetalleReservasNOMBRE_ALMACEN_RESERVA = 'NOMBRE_ALMACEN_RESERVA'; + fld_DetalleReservasID_EMPRESA_ALMACEN_RESERVA = 'ID_EMPRESA_ALMACEN_RESERVA'; { DetalleReservas field indexes } idx_DetalleReservasID = 0; @@ -93,11 +94,12 @@ const idx_DetalleReservasCANTIDAD = 13; idx_DetalleReservasID_ALMACEN_RESERVA = 14; idx_DetalleReservasNOMBRE_ALMACEN_RESERVA = 15; + idx_DetalleReservasID_EMPRESA_ALMACEN_RESERVA = 16; type { IInventario } IInventario = interface(IDAStronglyTypedDataTable) - ['{69094B48-AAFF-4300-B006-0DCEAEE89878}'] + ['{BE22C3F8-FA99-475E-8C10-4F08590A9331}'] { Property getters and setters } function GetID_ALMACENValue: Integer; procedure SetID_ALMACENValue(const aValue: Integer); @@ -219,7 +221,7 @@ type end; { TInventarioDataTableRules } - TInventarioDataTableRules = class(TIntfObjectDADataTableRules, IInventario) + TInventarioDataTableRules = class(TDADataTableRules, IInventario) private protected { Property getters and setters } @@ -348,7 +350,7 @@ type { IDetalleReservas } IDetalleReservas = interface(IDAStronglyTypedDataTable) - ['{7C927164-3284-4152-A13D-96A8BD88298E}'] + ['{8A4D1E34-9AFD-4798-9D59-1649308DD4AB}'] { Property getters and setters } function GetIDValue: Integer; procedure SetIDValue(const aValue: Integer); @@ -402,8 +404,8 @@ type procedure SetREFERENCIA_FABRValue(const aValue: String); function GetREFERENCIA_FABRIsNull: Boolean; procedure SetREFERENCIA_FABRIsNull(const aValue: Boolean); - function GetCANTIDADValue: Float; - procedure SetCANTIDADValue(const aValue: Float); + function GetCANTIDADValue: Currency; + procedure SetCANTIDADValue(const aValue: Currency); function GetCANTIDADIsNull: Boolean; procedure SetCANTIDADIsNull(const aValue: Boolean); function GetID_ALMACEN_RESERVAValue: Integer; @@ -414,6 +416,10 @@ type procedure SetNOMBRE_ALMACEN_RESERVAValue(const aValue: String); function GetNOMBRE_ALMACEN_RESERVAIsNull: Boolean; procedure SetNOMBRE_ALMACEN_RESERVAIsNull(const aValue: Boolean); + function GetID_EMPRESA_ALMACEN_RESERVAValue: Integer; + procedure SetID_EMPRESA_ALMACEN_RESERVAValue(const aValue: Integer); + function GetID_EMPRESA_ALMACEN_RESERVAIsNull: Boolean; + procedure SetID_EMPRESA_ALMACEN_RESERVAIsNull(const aValue: Boolean); { Properties } @@ -443,16 +449,18 @@ type property FABRICANTEIsNull: Boolean read GetFABRICANTEIsNull write SetFABRICANTEIsNull; property REFERENCIA_FABR: String read GetREFERENCIA_FABRValue write SetREFERENCIA_FABRValue; property REFERENCIA_FABRIsNull: Boolean read GetREFERENCIA_FABRIsNull write SetREFERENCIA_FABRIsNull; - property CANTIDAD: Float read GetCANTIDADValue write SetCANTIDADValue; + property CANTIDAD: Currency read GetCANTIDADValue write SetCANTIDADValue; property CANTIDADIsNull: Boolean read GetCANTIDADIsNull write SetCANTIDADIsNull; property ID_ALMACEN_RESERVA: Integer read GetID_ALMACEN_RESERVAValue write SetID_ALMACEN_RESERVAValue; property ID_ALMACEN_RESERVAIsNull: Boolean read GetID_ALMACEN_RESERVAIsNull write SetID_ALMACEN_RESERVAIsNull; property NOMBRE_ALMACEN_RESERVA: String read GetNOMBRE_ALMACEN_RESERVAValue write SetNOMBRE_ALMACEN_RESERVAValue; property NOMBRE_ALMACEN_RESERVAIsNull: Boolean read GetNOMBRE_ALMACEN_RESERVAIsNull write SetNOMBRE_ALMACEN_RESERVAIsNull; + property ID_EMPRESA_ALMACEN_RESERVA: Integer read GetID_EMPRESA_ALMACEN_RESERVAValue write SetID_EMPRESA_ALMACEN_RESERVAValue; + property ID_EMPRESA_ALMACEN_RESERVAIsNull: Boolean read GetID_EMPRESA_ALMACEN_RESERVAIsNull write SetID_EMPRESA_ALMACEN_RESERVAIsNull; end; { TDetalleReservasDataTableRules } - TDetalleReservasDataTableRules = class(TIntfObjectDADataTableRules, IDetalleReservas) + TDetalleReservasDataTableRules = class(TDADataTableRules, IDetalleReservas) private protected { Property getters and setters } @@ -508,8 +516,8 @@ type procedure SetREFERENCIA_FABRValue(const aValue: String); virtual; function GetREFERENCIA_FABRIsNull: Boolean; virtual; procedure SetREFERENCIA_FABRIsNull(const aValue: Boolean); virtual; - function GetCANTIDADValue: Float; virtual; - procedure SetCANTIDADValue(const aValue: Float); virtual; + function GetCANTIDADValue: Currency; virtual; + procedure SetCANTIDADValue(const aValue: Currency); virtual; function GetCANTIDADIsNull: Boolean; virtual; procedure SetCANTIDADIsNull(const aValue: Boolean); virtual; function GetID_ALMACEN_RESERVAValue: Integer; virtual; @@ -520,6 +528,10 @@ type procedure SetNOMBRE_ALMACEN_RESERVAValue(const aValue: String); virtual; function GetNOMBRE_ALMACEN_RESERVAIsNull: Boolean; virtual; procedure SetNOMBRE_ALMACEN_RESERVAIsNull(const aValue: Boolean); virtual; + function GetID_EMPRESA_ALMACEN_RESERVAValue: Integer; virtual; + procedure SetID_EMPRESA_ALMACEN_RESERVAValue(const aValue: Integer); virtual; + function GetID_EMPRESA_ALMACEN_RESERVAIsNull: Boolean; virtual; + procedure SetID_EMPRESA_ALMACEN_RESERVAIsNull(const aValue: Boolean); virtual; { Properties } property ID: Integer read GetIDValue write SetIDValue; @@ -548,12 +560,14 @@ type property FABRICANTEIsNull: Boolean read GetFABRICANTEIsNull write SetFABRICANTEIsNull; property REFERENCIA_FABR: String read GetREFERENCIA_FABRValue write SetREFERENCIA_FABRValue; property REFERENCIA_FABRIsNull: Boolean read GetREFERENCIA_FABRIsNull write SetREFERENCIA_FABRIsNull; - property CANTIDAD: Float read GetCANTIDADValue write SetCANTIDADValue; + property CANTIDAD: Currency read GetCANTIDADValue write SetCANTIDADValue; property CANTIDADIsNull: Boolean read GetCANTIDADIsNull write SetCANTIDADIsNull; property ID_ALMACEN_RESERVA: Integer read GetID_ALMACEN_RESERVAValue write SetID_ALMACEN_RESERVAValue; property ID_ALMACEN_RESERVAIsNull: Boolean read GetID_ALMACEN_RESERVAIsNull write SetID_ALMACEN_RESERVAIsNull; property NOMBRE_ALMACEN_RESERVA: String read GetNOMBRE_ALMACEN_RESERVAValue write SetNOMBRE_ALMACEN_RESERVAValue; property NOMBRE_ALMACEN_RESERVAIsNull: Boolean read GetNOMBRE_ALMACEN_RESERVAIsNull write SetNOMBRE_ALMACEN_RESERVAIsNull; + property ID_EMPRESA_ALMACEN_RESERVA: Integer read GetID_EMPRESA_ALMACEN_RESERVAValue write SetID_EMPRESA_ALMACEN_RESERVAValue; + property ID_EMPRESA_ALMACEN_RESERVAIsNull: Boolean read GetID_EMPRESA_ALMACEN_RESERVAIsNull write SetID_EMPRESA_ALMACEN_RESERVAIsNull; public constructor Create(aDataTable: TDADataTable); override; @@ -1260,14 +1274,14 @@ begin DataTable.Fields[idx_DetalleReservasREFERENCIA_FABR].AsVariant := Null; end; -function TDetalleReservasDataTableRules.GetCANTIDADValue: Float; +function TDetalleReservasDataTableRules.GetCANTIDADValue: Currency; begin - result := DataTable.Fields[idx_DetalleReservasCANTIDAD].AsFloat; + result := DataTable.Fields[idx_DetalleReservasCANTIDAD].AsCurrency; end; -procedure TDetalleReservasDataTableRules.SetCANTIDADValue(const aValue: Float); +procedure TDetalleReservasDataTableRules.SetCANTIDADValue(const aValue: Currency); begin - DataTable.Fields[idx_DetalleReservasCANTIDAD].AsFloat := aValue; + DataTable.Fields[idx_DetalleReservasCANTIDAD].AsCurrency := aValue; end; function TDetalleReservasDataTableRules.GetCANTIDADIsNull: boolean; @@ -1323,6 +1337,27 @@ begin DataTable.Fields[idx_DetalleReservasNOMBRE_ALMACEN_RESERVA].AsVariant := Null; end; +function TDetalleReservasDataTableRules.GetID_EMPRESA_ALMACEN_RESERVAValue: Integer; +begin + result := DataTable.Fields[idx_DetalleReservasID_EMPRESA_ALMACEN_RESERVA].AsInteger; +end; + +procedure TDetalleReservasDataTableRules.SetID_EMPRESA_ALMACEN_RESERVAValue(const aValue: Integer); +begin + DataTable.Fields[idx_DetalleReservasID_EMPRESA_ALMACEN_RESERVA].AsInteger := aValue; +end; + +function TDetalleReservasDataTableRules.GetID_EMPRESA_ALMACEN_RESERVAIsNull: boolean; +begin + result := DataTable.Fields[idx_DetalleReservasID_EMPRESA_ALMACEN_RESERVA].IsNull; +end; + +procedure TDetalleReservasDataTableRules.SetID_EMPRESA_ALMACEN_RESERVAIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_DetalleReservasID_EMPRESA_ALMACEN_RESERVA].AsVariant := Null; +end; + initialization RegisterDataTableRules(RID_Inventario, TInventarioDataTableRules); diff --git a/Source/Modulos/Inventario/Model/schInventarioServer_Intf.pas b/Source/Modulos/Inventario/Model/schInventarioServer_Intf.pas index 56559a1e..2a15fd55 100644 --- a/Source/Modulos/Inventario/Model/schInventarioServer_Intf.pas +++ b/Source/Modulos/Inventario/Model/schInventarioServer_Intf.pas @@ -9,13 +9,13 @@ const { Delta rules ids Feel free to change them to something more human readable but make sure they are unique in the context of your application } - RID_InventarioDelta = '{EEE94793-3B30-4C75-8A58-49D210D83C96}'; - RID_DetalleReservasDelta = '{9660A034-84F2-4E92-987A-3518CA2FB934}'; + RID_InventarioDelta = '{D5FDE8E5-7FF7-4ABB-AE86-0650D9D28956}'; + RID_DetalleReservasDelta = '{3087502E-1C78-45AA-9164-988726607EE9}'; type { IInventarioDelta } IInventarioDelta = interface(IInventario) - ['{EEE94793-3B30-4C75-8A58-49D210D83C96}'] + ['{D5FDE8E5-7FF7-4ABB-AE86-0650D9D28956}'] { Property getters and setters } function GetOldID_ALMACENValue : Integer; function GetOldID_ARTICULOValue : Integer; @@ -265,7 +265,7 @@ type { IDetalleReservasDelta } IDetalleReservasDelta = interface(IDetalleReservas) - ['{9660A034-84F2-4E92-987A-3518CA2FB934}'] + ['{3087502E-1C78-45AA-9164-988726607EE9}'] { Property getters and setters } function GetOldIDValue : Integer; function GetOldID_EMPRESAValue : Integer; @@ -280,9 +280,10 @@ type function GetOldUNIDAD_MEDIDAValue : String; function GetOldFABRICANTEValue : String; function GetOldREFERENCIA_FABRValue : String; - function GetOldCANTIDADValue : Float; + function GetOldCANTIDADValue : Currency; function GetOldID_ALMACEN_RESERVAValue : Integer; function GetOldNOMBRE_ALMACEN_RESERVAValue : String; + function GetOldID_EMPRESA_ALMACEN_RESERVAValue : Integer; { Properties } property OldID : Integer read GetOldIDValue; @@ -298,9 +299,10 @@ type property OldUNIDAD_MEDIDA : String read GetOldUNIDAD_MEDIDAValue; property OldFABRICANTE : String read GetOldFABRICANTEValue; property OldREFERENCIA_FABR : String read GetOldREFERENCIA_FABRValue; - property OldCANTIDAD : Float read GetOldCANTIDADValue; + property OldCANTIDAD : Currency read GetOldCANTIDADValue; property OldID_ALMACEN_RESERVA : Integer read GetOldID_ALMACEN_RESERVAValue; property OldNOMBRE_ALMACEN_RESERVA : String read GetOldNOMBRE_ALMACEN_RESERVAValue; + property OldID_EMPRESA_ALMACEN_RESERVA : Integer read GetOldID_EMPRESA_ALMACEN_RESERVAValue; end; { TDetalleReservasBusinessProcessorRules } @@ -386,11 +388,11 @@ type function GetOldREFERENCIA_FABRIsNull: Boolean; virtual; procedure SetREFERENCIA_FABRValue(const aValue: String); virtual; procedure SetREFERENCIA_FABRIsNull(const aValue: Boolean); virtual; - function GetCANTIDADValue: Float; virtual; + function GetCANTIDADValue: Currency; virtual; function GetCANTIDADIsNull: Boolean; virtual; - function GetOldCANTIDADValue: Float; virtual; + function GetOldCANTIDADValue: Currency; virtual; function GetOldCANTIDADIsNull: Boolean; virtual; - procedure SetCANTIDADValue(const aValue: Float); virtual; + procedure SetCANTIDADValue(const aValue: Currency); virtual; procedure SetCANTIDADIsNull(const aValue: Boolean); virtual; function GetID_ALMACEN_RESERVAValue: Integer; virtual; function GetID_ALMACEN_RESERVAIsNull: Boolean; virtual; @@ -404,6 +406,12 @@ type function GetOldNOMBRE_ALMACEN_RESERVAIsNull: Boolean; virtual; procedure SetNOMBRE_ALMACEN_RESERVAValue(const aValue: String); virtual; procedure SetNOMBRE_ALMACEN_RESERVAIsNull(const aValue: Boolean); virtual; + function GetID_EMPRESA_ALMACEN_RESERVAValue: Integer; virtual; + function GetID_EMPRESA_ALMACEN_RESERVAIsNull: Boolean; virtual; + function GetOldID_EMPRESA_ALMACEN_RESERVAValue: Integer; virtual; + function GetOldID_EMPRESA_ALMACEN_RESERVAIsNull: Boolean; virtual; + procedure SetID_EMPRESA_ALMACEN_RESERVAValue(const aValue: Integer); virtual; + procedure SetID_EMPRESA_ALMACEN_RESERVAIsNull(const aValue: Boolean); virtual; { Properties } property ID : Integer read GetIDValue write SetIDValue; @@ -458,9 +466,9 @@ type property REFERENCIA_FABRIsNull : Boolean read GetREFERENCIA_FABRIsNull write SetREFERENCIA_FABRIsNull; property OldREFERENCIA_FABR : String read GetOldREFERENCIA_FABRValue; property OldREFERENCIA_FABRIsNull : Boolean read GetOldREFERENCIA_FABRIsNull; - property CANTIDAD : Float read GetCANTIDADValue write SetCANTIDADValue; + property CANTIDAD : Currency read GetCANTIDADValue write SetCANTIDADValue; property CANTIDADIsNull : Boolean read GetCANTIDADIsNull write SetCANTIDADIsNull; - property OldCANTIDAD : Float read GetOldCANTIDADValue; + property OldCANTIDAD : Currency read GetOldCANTIDADValue; property OldCANTIDADIsNull : Boolean read GetOldCANTIDADIsNull; property ID_ALMACEN_RESERVA : Integer read GetID_ALMACEN_RESERVAValue write SetID_ALMACEN_RESERVAValue; property ID_ALMACEN_RESERVAIsNull : Boolean read GetID_ALMACEN_RESERVAIsNull write SetID_ALMACEN_RESERVAIsNull; @@ -470,6 +478,10 @@ type property NOMBRE_ALMACEN_RESERVAIsNull : Boolean read GetNOMBRE_ALMACEN_RESERVAIsNull write SetNOMBRE_ALMACEN_RESERVAIsNull; property OldNOMBRE_ALMACEN_RESERVA : String read GetOldNOMBRE_ALMACEN_RESERVAValue; property OldNOMBRE_ALMACEN_RESERVAIsNull : Boolean read GetOldNOMBRE_ALMACEN_RESERVAIsNull; + property ID_EMPRESA_ALMACEN_RESERVA : Integer read GetID_EMPRESA_ALMACEN_RESERVAValue write SetID_EMPRESA_ALMACEN_RESERVAValue; + property ID_EMPRESA_ALMACEN_RESERVAIsNull : Boolean read GetID_EMPRESA_ALMACEN_RESERVAIsNull write SetID_EMPRESA_ALMACEN_RESERVAIsNull; + property OldID_EMPRESA_ALMACEN_RESERVA : Integer read GetOldID_EMPRESA_ALMACEN_RESERVAValue; + property OldID_EMPRESA_ALMACEN_RESERVAIsNull : Boolean read GetOldID_EMPRESA_ALMACEN_RESERVAIsNull; public constructor Create(aBusinessProcessor: TDABusinessProcessor); override; @@ -1497,7 +1509,7 @@ begin BusinessProcessor.CurrentChange.NewValueByName[fld_DetalleReservasREFERENCIA_FABR] := Null; end; -function TDetalleReservasBusinessProcessorRules.GetCANTIDADValue: Float; +function TDetalleReservasBusinessProcessorRules.GetCANTIDADValue: Currency; begin result := BusinessProcessor.CurrentChange.NewValueByName[fld_DetalleReservasCANTIDAD]; end; @@ -1507,7 +1519,7 @@ begin result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_DetalleReservasCANTIDAD]); end; -function TDetalleReservasBusinessProcessorRules.GetOldCANTIDADValue: Float; +function TDetalleReservasBusinessProcessorRules.GetOldCANTIDADValue: Currency; begin result := BusinessProcessor.CurrentChange.OldValueByName[fld_DetalleReservasCANTIDAD]; end; @@ -1517,7 +1529,7 @@ begin result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_DetalleReservasCANTIDAD]); end; -procedure TDetalleReservasBusinessProcessorRules.SetCANTIDADValue(const aValue: Float); +procedure TDetalleReservasBusinessProcessorRules.SetCANTIDADValue(const aValue: Currency); begin BusinessProcessor.CurrentChange.NewValueByName[fld_DetalleReservasCANTIDAD] := aValue; end; @@ -1590,6 +1602,37 @@ begin BusinessProcessor.CurrentChange.NewValueByName[fld_DetalleReservasNOMBRE_ALMACEN_RESERVA] := Null; end; +function TDetalleReservasBusinessProcessorRules.GetID_EMPRESA_ALMACEN_RESERVAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_DetalleReservasID_EMPRESA_ALMACEN_RESERVA]; +end; + +function TDetalleReservasBusinessProcessorRules.GetID_EMPRESA_ALMACEN_RESERVAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_DetalleReservasID_EMPRESA_ALMACEN_RESERVA]); +end; + +function TDetalleReservasBusinessProcessorRules.GetOldID_EMPRESA_ALMACEN_RESERVAValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_DetalleReservasID_EMPRESA_ALMACEN_RESERVA]; +end; + +function TDetalleReservasBusinessProcessorRules.GetOldID_EMPRESA_ALMACEN_RESERVAIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_DetalleReservasID_EMPRESA_ALMACEN_RESERVA]); +end; + +procedure TDetalleReservasBusinessProcessorRules.SetID_EMPRESA_ALMACEN_RESERVAValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_DetalleReservasID_EMPRESA_ALMACEN_RESERVA] := aValue; +end; + +procedure TDetalleReservasBusinessProcessorRules.SetID_EMPRESA_ALMACEN_RESERVAIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_DetalleReservasID_EMPRESA_ALMACEN_RESERVA] := Null; +end; + initialization RegisterBusinessProcessorRules(RID_InventarioDelta, TInventarioBusinessProcessorRules); diff --git a/Source/Modulos/Inventario/Servidor/srvInventario_Impl.dfm b/Source/Modulos/Inventario/Servidor/srvInventario_Impl.dfm index a669f164..1a89e5bf 100644 --- a/Source/Modulos/Inventario/Servidor/srvInventario_Impl.dfm +++ b/Source/Modulos/Inventario/Servidor/srvInventario_Impl.dfm @@ -292,6 +292,10 @@ object srvInventario: TsrvInventario item DatasetField = 'NOMBRE_ALMACEN_RESERVA' TableField = 'NOMBRE_ALMACEN_RESERVA' + end + item + DatasetField = 'ID_EMPRESA_ALMACEN_RESERVA' + TableField = 'ID_EMPRESA_ALMACEN_RESERVA' end> end> Name = 'DetalleReservas' @@ -358,7 +362,7 @@ object srvInventario: TsrvInventario end item Name = 'CANTIDAD' - DataType = datFloat + DataType = datCurrency end item Name = 'ID_ALMACEN_RESERVA' @@ -368,6 +372,10 @@ object srvInventario: TsrvInventario Name = 'NOMBRE_ALMACEN_RESERVA' DataType = datString Size = 255 + end + item + Name = 'ID_EMPRESA_ALMACEN_RESERVA' + DataType = datInteger end> end> JoinDataTables = <> diff --git a/Source/Modulos/Inventario/Views/uEditorDetalleReservas.dfm b/Source/Modulos/Inventario/Views/uEditorDetalleReservas.dfm index 671cc624..ddc00697 100644 --- a/Source/Modulos/Inventario/Views/uEditorDetalleReservas.dfm +++ b/Source/Modulos/Inventario/Views/uEditorDetalleReservas.dfm @@ -174,8 +174,6 @@ inherited fEditorDetalleReservas: TfEditorDetalleReservas StyleDisabled.LookAndFeel.SkinName = '' StyleFocused.LookAndFeel.SkinName = '' StyleHot.LookAndFeel.SkinName = '' - ExplicitWidth = 510 - Width = 510 end inherited edtFechaIniFiltro: TcxDateEdit Style.LookAndFeel.SkinName = '' @@ -184,16 +182,20 @@ inherited fEditorDetalleReservas: TfEditorDetalleReservas StyleHot.LookAndFeel.SkinName = '' end inherited edtFechaFinFiltro: TcxDateEdit + Left = 358 Style.LookAndFeel.SkinName = '' StyleDisabled.LookAndFeel.SkinName = '' StyleFocused.LookAndFeel.SkinName = '' StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 358 end inherited eLista: TcxComboBox + Left = 605 Style.LookAndFeel.SkinName = '' StyleDisabled.LookAndFeel.SkinName = '' StyleFocused.LookAndFeel.SkinName = '' StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 605 ExplicitWidth = 20 Width = 20 end diff --git a/Source/Modulos/Inventario/Views/uEditorDetalleReservas.pas b/Source/Modulos/Inventario/Views/uEditorDetalleReservas.pas index afe0ef57..e816004b 100644 --- a/Source/Modulos/Inventario/Views/uEditorDetalleReservas.pas +++ b/Source/Modulos/Inventario/Views/uEditorDetalleReservas.pas @@ -239,7 +239,7 @@ procedure TfEditorDetalleReservas.PonerTitulos(const ATitulo: string); var FTitulo : String; begin - FTitulo := 'Detalle de reservas en almacen - ' + AppFactuGES.EmpresaActiva.NOMBRE; + FTitulo := 'Detalle de reservas en almacen/obra - ' + frViewDetalleReservas1.cxListaAlmacenesObras.Text; //AppFactuGES.EmpresaActiva.NOMBRE; inherited PonerTitulos(FTitulo); end; diff --git a/Source/Modulos/Recibos de cliente/Controller/uRecibosClienteController.pas b/Source/Modulos/Recibos de cliente/Controller/uRecibosClienteController.pas index d76193a0..d6d03777 100644 --- a/Source/Modulos/Recibos de cliente/Controller/uRecibosClienteController.pas +++ b/Source/Modulos/Recibos de cliente/Controller/uRecibosClienteController.pas @@ -60,7 +60,7 @@ type function BuscarRecibosRemesa(const ID_REMESA: Integer): IBizRecibosCliente; function BuscarRecibosFactura(const ID_FACTURA: Integer): IBizRecibosCliente; function BuscarRecibosACompensar(const Recibo: IBizRecibosCliente): IBizRecibosCliente; - function BuscarRecibosARemesar: IBizRecibosCliente; + function BuscarRecibosARemesar(const AListaVisibles, AListaNoVisibles: TStringList): IBizRecibosCliente; procedure VerTodos(ARecibosCliente: IBizRecibosCliente; const AVerModal : Boolean = False; const AWindowCaption: String = ''; @@ -130,7 +130,7 @@ type function BuscarRecibosRemesa(const ID_REMESA: Integer): IBizRecibosCliente; function BuscarRecibosFactura(const ID_FACTURA: Integer): IBizRecibosCliente; function BuscarRecibosACompensar(const Recibo: IBizRecibosCliente): IBizRecibosCliente; - function BuscarRecibosARemesar: IBizRecibosCliente; + function BuscarRecibosARemesar(const AListaVisibles, AListaNoVisibles: TStringList): IBizRecibosCliente; procedure VerTodos(ARecibosCliente: IBizRecibosCliente; const AVerModal : Boolean = False; const AWindowCaption: String = ''; @@ -361,9 +361,10 @@ begin end; end; -function TRecibosClienteController.BuscarRecibosARemesar: IBizRecibosCliente; +function TRecibosClienteController.BuscarRecibosARemesar(const AListaVisibles, AListaNoVisibles: TStringList): IBizRecibosCliente; var Condicion: TDAWhereExpression; + i: Integer; begin ShowHourglassCursor; try @@ -390,6 +391,26 @@ begin else Expression := NewBinaryExpression(Expression, Condicion, dboAnd); end; + + //En este caso vamos a quitar de la lista de recibos pendientes aquellos que ya hemos + //añadido a la remesa pero que estan en memoria ya que todavia no se ha guarado en BD + for i := 0 to AListaNoVisibles.Count - 1 do + with Result.DataTable.DynamicWhere do + begin + //Solo dejaremos remesar aquellos recibos que no esten cobrados (Pendientes/Devueltos) + Condicion := NewBinaryExpression(NewField('', fld_RecibosClienteID), NewConstant(AListaNoVisibles.Strings[i], datString), dboNotEqual); + + if IsEmpty then + Expression := Condicion + else + Expression := NewBinaryExpression(Expression, Condicion, dboAnd); + end; + + //En el caso contrario no hacemos nada, porque si se elimina un recibo de la remesa + //y sin guardar los cambios damos a añadir el recibo todavia está cobrado y no se que efectos + //secundarios puede provocar + //AListaVisibles + finally HideHourglassCursor; end; diff --git a/Source/Modulos/Recibos de proveedor/Controller/uRecibosProveedorController.pas b/Source/Modulos/Recibos de proveedor/Controller/uRecibosProveedorController.pas index c5d8b9da..9de9797b 100644 --- a/Source/Modulos/Recibos de proveedor/Controller/uRecibosProveedorController.pas +++ b/Source/Modulos/Recibos de proveedor/Controller/uRecibosProveedorController.pas @@ -56,7 +56,7 @@ type function BuscarRecibosRemesa(const ID_REMESA: Integer): IBizRecibosProveedor; function BuscarRecibosFactura(const ID_FACTURA: Integer): IBizRecibosProveedor; function BuscarRecibosACompensar(const Recibo: IBizRecibosProveedor): IBizRecibosProveedor; - function BuscarRecibosARemesar: IBizRecibosProveedor; + function BuscarRecibosARemesar(const AListaVisibles, AListaNoVisibles: TStringList): IBizRecibosProveedor; procedure VerTodos(ARecibosProveedor: IBizRecibosProveedor; const AVerModal : Boolean = False; const AWindowCaption: String = ''; @@ -125,7 +125,7 @@ type function BuscarRecibosRemesa(const ID_REMESA: Integer): IBizRecibosProveedor; function BuscarRecibosFactura(const ID_FACTURA: Integer): IBizRecibosProveedor; function BuscarRecibosACompensar(const Recibo: IBizRecibosProveedor): IBizRecibosProveedor; - function BuscarRecibosARemesar: IBizRecibosProveedor; + function BuscarRecibosARemesar(const AListaVisibles, AListaNoVisibles: TStringList): IBizRecibosProveedor; procedure VerTodos(ARecibosProveedor: IBizRecibosProveedor; const AVerModal : Boolean = False; const AWindowCaption: String = ''; @@ -337,9 +337,10 @@ begin end; end; -function TRecibosProveedorController.BuscarRecibosARemesar: IBizRecibosProveedor; +function TRecibosProveedorController.BuscarRecibosARemesar(const AListaVisibles, AListaNoVisibles: TStringList): IBizRecibosProveedor; var Condicion: TDAWhereExpression; + i: Integer; begin ShowHourglassCursor; try @@ -366,6 +367,26 @@ begin else Expression := NewBinaryExpression(Expression, Condicion, dboAnd); end; + + //En este caso vamos a quitar de la lista de recibos pendientes aquellos que ya hemos + //añadido a la remesa pero que estan en memoria ya que todavia no se ha guarado en BD + for i := 0 to AListaNoVisibles.Count - 1 do + with Result.DataTable.DynamicWhere do + begin + //Solo dejaremos remesar aquellos recibos que no esten cobrados (Pendientes/Devueltos) + Condicion := NewBinaryExpression(NewField('', fld_RecibosProveedorID), NewConstant(AListaNoVisibles.Strings[i], datString), dboNotEqual); + + if IsEmpty then + Expression := Condicion + else + Expression := NewBinaryExpression(Expression, Condicion, dboAnd); + end; + + //En el caso contrario no hacemos nada, porque si se elimina un recibo de la remesa + //y sin guardar los cambios damos a añadir el recibo todavia está cobrado y no se que efectos + //secundarios puede provocar + //AListaVisibles + finally HideHourglassCursor; end; diff --git a/Source/Modulos/Remesas de cliente/Controller/uRemesasClienteController.pas b/Source/Modulos/Remesas de cliente/Controller/uRemesasClienteController.pas index c201d251..9c84dc6b 100644 --- a/Source/Modulos/Remesas de cliente/Controller/uRemesasClienteController.pas +++ b/Source/Modulos/Remesas de cliente/Controller/uRemesasClienteController.pas @@ -28,7 +28,7 @@ type function EsModificable(ARemesaProveedor : IBizRemesaCliente): Boolean; function EsEliminable(ARemesaProveedor : IBizRemesaCliente): Boolean; - function ElegirRecibosCliente(ARemesaCliente : IBizRemesaCliente): Boolean; + function ElegirRecibosCliente(ARemesaCliente : IBizRemesaCliente; AListaRecibosIniciales: TStringList): Boolean; procedure EliminarReciboCliente(ARemesaCliente : IBizRemesaCliente); function GetRecibosClienteController: IRecibosClienteController; property RecibosClienteController: IRecibosClienteController read GetRecibosClienteController; @@ -82,7 +82,7 @@ type function EsEliminable(ARemesaProveedor : IBizRemesaCliente): Boolean; function ExtraerSeleccionados(ARemesasCliente: IBizRemesaCliente) : IBizRemesaCliente; virtual; - function ElegirRecibosCliente(ARemesaCliente : IBizRemesaCliente): Boolean; + function ElegirRecibosCliente(ARemesaCliente : IBizRemesaCliente; AListaRecibosIniciales: TStringList): Boolean; procedure EliminarReciboCliente(ARemesaCliente : IBizRemesaCliente); function DarListaAnosRemesas: TStringList; @@ -290,14 +290,39 @@ begin ARemesaCliente := NIL; end; -function TRemesasClienteController.ElegirRecibosCliente(ARemesaCliente: IBizRemesaCliente): Boolean; +function TRemesasClienteController.ElegirRecibosCliente(ARemesaCliente: IBizRemesaCliente; AListaRecibosIniciales: TStringList): Boolean; var ARecibosRemesa : IBizRecibosCliente; ARecibosSeleccionados : IBizRecibosCliente; + ListaRecibosVisibles: TStringList; + ListaRecibosNoVisibles: TStringList; + i: Integer; begin Result := False; - ARecibosSeleccionados := (FRecibosClienteController.ElegirRecibos(FRecibosClienteController.BuscarRecibosARemesar, 'Elija uno o más recibos para incluirlos en esta remesa', True) as IBizRecibosCliente); + ListaRecibosVisibles := TStringList.Create; + ListaRecibosNoVisibles := TStringList.Create; + + //Todos los recibos que tenga la remesa no deben de visualizarse en la lista de seleccion + ARemesaCliente.Recibos.DataTable.First; + while not ARemesaCliente.Recibos.DataTable.eof do + begin + ListaRecibosNoVisibles.Add(IntToStr(ARemesaCliente.Recibos.ID)); + ARemesaCliente.Recibos.DataTable.Next; + end; + ARemesaCliente.Recibos.DataTable.First; + + //Si de la lista inicial hay alguno que no se encuentre en la lista de recibos de la + //remesa que tenemos en memoria dicho recibo debería verse por lo que lo añadimos a la lista de visibles + for i := 0 to AListaRecibosIniciales.Count - 1 do + begin + ARemesaCliente.Recibos.DataTable.First; + if not ARemesaCliente.Recibos.DataTable.Locate(fld_RecibosClienteID, AListaRecibosIniciales.strings[i], []) then + ListaRecibosVisibles.Add(AListaRecibosIniciales.strings[i]); + end; + ARemesaCliente.Recibos.DataTable.First; + + ARecibosSeleccionados := (FRecibosClienteController.ElegirRecibos(FRecibosClienteController.BuscarRecibosARemesar(ListaRecibosVisibles, ListaRecibosNoVisibles), 'Elija uno o más recibos para incluirlos en esta remesa', True) as IBizRecibosCliente); if Assigned(ARecibosSeleccionados) then begin ShowHourglassCursor; @@ -313,6 +338,8 @@ begin end; end; + ListaRecibosVisibles.Free; + ListaRecibosNoVisibles.Free; ARecibosRemesa := Nil; ARecibosSeleccionados := Nil; end; diff --git a/Source/Modulos/Remesas de cliente/RemesasCliente_Group.groupproj b/Source/Modulos/Remesas de cliente/RemesasCliente_Group.groupproj index ef6ffa9b..a1f22bb6 100644 --- a/Source/Modulos/Remesas de cliente/RemesasCliente_Group.groupproj +++ b/Source/Modulos/Remesas de cliente/RemesasCliente_Group.groupproj @@ -9,6 +9,7 @@ + @@ -111,14 +112,23 @@ + + + + + + + + + - + - + - + \ No newline at end of file diff --git a/Source/Modulos/Remesas de cliente/Views/uViewRecibosRemesaCliente.dfm b/Source/Modulos/Remesas de cliente/Views/uViewRecibosRemesaCliente.dfm index a5de831f..9c59b2d4 100644 --- a/Source/Modulos/Remesas de cliente/Views/uViewRecibosRemesaCliente.dfm +++ b/Source/Modulos/Remesas de cliente/Views/uViewRecibosRemesaCliente.dfm @@ -1,6 +1,7 @@ inherited frViewRecibosRemesaCliente: TfrViewRecibosRemesaCliente Width = 549 Height = 376 + OnShow = CustomViewShow ExplicitWidth = 549 ExplicitHeight = 376 inherited cxGrid: TcxGrid diff --git a/Source/Modulos/Remesas de cliente/Views/uViewRecibosRemesaCliente.pas b/Source/Modulos/Remesas de cliente/Views/uViewRecibosRemesaCliente.pas index b4cf553a..ac522672 100644 --- a/Source/Modulos/Remesas de cliente/Views/uViewRecibosRemesaCliente.pas +++ b/Source/Modulos/Remesas de cliente/Views/uViewRecibosRemesaCliente.pas @@ -27,10 +27,12 @@ type cxGridViewIMPORTE: TcxGridDBColumn; cxGridViewOTROS_GASTOS: TcxGridDBColumn; cxGridViewIMPORTE_TOTAL: TcxGridDBColumn; + procedure CustomViewShow(Sender: TObject); protected FHayCambios : Boolean; FRemesa : IBizRemesaCliente; FController : IRemesasClienteController; + FListaRecibosIniciales: TStringList; procedure AnadirInterno; override; procedure EliminarInterno; override; @@ -43,6 +45,7 @@ type function GetController : IRemesasClienteController; procedure SetController (const Value : IRemesasClienteController); + public constructor Create(AOwner: TComponent); override; destructor Destroy; override; @@ -63,7 +66,7 @@ uses procedure TfrViewRecibosRemesaCliente.AnadirInterno; begin //inherited; // No hacer el comportamiento normal - if FController.ElegirRecibosCliente(RemesaCliente) then + if FController.ElegirRecibosCliente(RemesaCliente, FListaRecibosIniciales) then begin Modified := True; end; @@ -73,10 +76,25 @@ constructor TfrViewRecibosRemesaCliente.Create(AOwner: TComponent); begin inherited; FHayCambios := False; + FListaRecibosIniciales := TStringList.Create; +end; + +procedure TfrViewRecibosRemesaCliente.CustomViewShow(Sender: TObject); +begin + inherited; + + FRemesa.Recibos.DataTable.First; + while not FRemesa.Recibos.DataTable.eof do + begin + FListaRecibosIniciales.Add(IntToStr(FRemesa.Recibos.ID)); + FRemesa.Recibos.DataTable.next; + end; + FRemesa.Recibos.DataTable.First; end; destructor TfrViewRecibosRemesaCliente.Destroy; begin + FListaRecibosIniciales.Free; inherited; end; diff --git a/Source/Modulos/Remesas de proveedor/Controller/uRemesasProveedorController.pas b/Source/Modulos/Remesas de proveedor/Controller/uRemesasProveedorController.pas index 75f5a648..a5d1463e 100644 --- a/Source/Modulos/Remesas de proveedor/Controller/uRemesasProveedorController.pas +++ b/Source/Modulos/Remesas de proveedor/Controller/uRemesasProveedorController.pas @@ -28,7 +28,7 @@ type function EsModificable(ARemesaProveedor : IBizRemesaProveedor): Boolean; function EsEliminable(ARemesaProveedor : IBizRemesaProveedor): Boolean; - function ElegirRecibosProveedor(ARemesaProveedor : IBizRemesaProveedor): Boolean; + function ElegirRecibosProveedor(ARemesaProveedor : IBizRemesaProveedor; AListaRecibosIniciales: TStringList): Boolean; procedure EliminarReciboProveedor(ARemesaProveedor : IBizRemesaProveedor); function GetRecibosProveedorController: IRecibosProveedorController; property RecibosProveedorController: IRecibosProveedorController read GetRecibosProveedorController; @@ -82,7 +82,7 @@ type function EsEliminable(ARemesaProveedor : IBizRemesaProveedor): Boolean; function ExtraerSeleccionados(ARemesasProveedor: IBizRemesaProveedor) : IBizRemesaProveedor; virtual; - function ElegirRecibosProveedor(ARemesaProveedor : IBizRemesaProveedor): Boolean; + function ElegirRecibosProveedor(ARemesaProveedor : IBizRemesaProveedor; AListaRecibosIniciales: TStringList): Boolean; procedure EliminarReciboProveedor(ARemesaProveedor : IBizRemesaProveedor); function DarListaAnosRemesas: TStringList; @@ -292,14 +292,40 @@ begin ARemesaProveedor := NIL; end; -function TRemesasProveedorController.ElegirRecibosProveedor(ARemesaProveedor: IBizRemesaProveedor): Boolean; +function TRemesasProveedorController.ElegirRecibosProveedor(ARemesaProveedor: IBizRemesaProveedor; AListaRecibosIniciales: TStringList): Boolean; var ARecibosRemesa : IBizRecibosProveedor; ARecibosSeleccionados : IBizRecibosProveedor; + ListaRecibosVisibles: TStringList; + ListaRecibosNoVisibles: TStringList; + i: Integer; + begin Result := False; - ARecibosSeleccionados := (FRecibosProveedorController.ElegirRecibos(FRecibosProveedorController.BuscarRecibosARemesar, 'Elija uno o más recibos para incluirlos en esta remesa', True) as IBizRecibosProveedor); + ListaRecibosVisibles := TStringList.Create; + ListaRecibosNoVisibles := TStringList.Create; + + //Todos los recibos que tenga la remesa no deben de visualizarse en la lista de seleccion + ARemesaProveedor.Recibos.DataTable.First; + while not ARemesaProveedor.Recibos.DataTable.eof do + begin + ListaRecibosNoVisibles.Add(IntToStr(ARemesaProveedor.Recibos.ID)); + ARemesaProveedor.Recibos.DataTable.Next; + end; + ARemesaProveedor.Recibos.DataTable.First; + + //Si de la lista inicial hay alguno que no se encuentre en la lista de recibos de la + //remesa que tenemos en memoria dicho recibo debería verse por lo que lo añadimos a la lista de visibles + for i := 0 to AListaRecibosIniciales.Count - 1 do + begin + ARemesaProveedor.Recibos.DataTable.First; + if not ARemesaProveedor.Recibos.DataTable.Locate(fld_RecibosProveedorID, AListaRecibosIniciales.strings[i], []) then + ListaRecibosVisibles.Add(AListaRecibosIniciales.strings[i]); + end; + ARemesaProveedor.Recibos.DataTable.First; + + ARecibosSeleccionados := (FRecibosProveedorController.ElegirRecibos(FRecibosProveedorController.BuscarRecibosARemesar(ListaRecibosVisibles, ListaRecibosNoVisibles), 'Elija uno o más recibos para incluirlos en esta remesa', True) as IBizRecibosProveedor); if Assigned(ARecibosSeleccionados) then begin ShowHourglassCursor; @@ -315,6 +341,8 @@ begin end; end; + ListaRecibosVisibles.Free; + ListaRecibosNoVisibles.Free; ARecibosRemesa := Nil; ARecibosSeleccionados := Nil; end; diff --git a/Source/Modulos/Remesas de proveedor/Views/uViewRecibosRemesaProveedor.dfm b/Source/Modulos/Remesas de proveedor/Views/uViewRecibosRemesaProveedor.dfm index 82afb2eb..dd18a896 100644 --- a/Source/Modulos/Remesas de proveedor/Views/uViewRecibosRemesaProveedor.dfm +++ b/Source/Modulos/Remesas de proveedor/Views/uViewRecibosRemesaProveedor.dfm @@ -1,6 +1,7 @@ inherited frViewRecibosRemesaProveedor: TfrViewRecibosRemesaProveedor Width = 549 Height = 376 + OnShow = CustomViewShow ExplicitWidth = 549 ExplicitHeight = 376 inherited cxGrid: TcxGrid diff --git a/Source/Modulos/Remesas de proveedor/Views/uViewRecibosRemesaProveedor.pas b/Source/Modulos/Remesas de proveedor/Views/uViewRecibosRemesaProveedor.pas index 6e404d70..a331d92c 100644 --- a/Source/Modulos/Remesas de proveedor/Views/uViewRecibosRemesaProveedor.pas +++ b/Source/Modulos/Remesas de proveedor/Views/uViewRecibosRemesaProveedor.pas @@ -27,10 +27,12 @@ type cxGridViewIMPORTE: TcxGridDBColumn; cxGridViewOTROS_GASTOS: TcxGridDBColumn; cxGridViewIMPORTE_TOTAL: TcxGridDBColumn; + procedure CustomViewShow(Sender: TObject); protected FHayCambios : Boolean; FRemesa : IBizRemesaProveedor; FController : IRemesasProveedorController; + FListaRecibosIniciales: TStringList; procedure AnadirInterno; override; procedure EliminarInterno; override; @@ -63,7 +65,7 @@ uses procedure TfrViewRecibosRemesaProveedor.AnadirInterno; begin //inherited; // No hacer el comportamiento normal - if FController.ElegirRecibosProveedor(RemesaProveedor) then + if FController.ElegirRecibosProveedor(RemesaProveedor, FListaRecibosIniciales) then begin Modified := True; end; @@ -73,10 +75,25 @@ constructor TfrViewRecibosRemesaProveedor.Create(AOwner: TComponent); begin inherited; FHayCambios := False; + FListaRecibosIniciales := TStringList.Create; +end; + +procedure TfrViewRecibosRemesaProveedor.CustomViewShow(Sender: TObject); +begin + inherited; + + FRemesa.Recibos.DataTable.First; + while not FRemesa.Recibos.DataTable.eof do + begin + FListaRecibosIniciales.Add(IntToStr(FRemesa.Recibos.ID)); + FRemesa.Recibos.DataTable.next; + end; + FRemesa.Recibos.DataTable.First; end; destructor TfrViewRecibosRemesaProveedor.Destroy; begin + FListaRecibosIniciales.Free; inherited; end; diff --git a/Source/Servidor/FactuGES_Server.RES b/Source/Servidor/FactuGES_Server.RES index 2e0e03b561b8fc77ccc71bd1b450e42c29dc542b..30f6afb64de829870e45c0c469b6257ba54d533e 100644 GIT binary patch delta 97 zcmZ3om2t&Z#tnBO7}rd`8zB!Q|3*YJa!rnmRAziOxi+$zIg3Gc^6yAl^<0KbhL;RQ y49N`n3^@#`48;sO3H8#1;|%m$YLmE$eC;%CCP5cV8vj_U@_!Y$KpC^i@ll=t;RG7K diff --git a/Source/Servidor/FactuGES_Server.dpr b/Source/Servidor/FactuGES_Server.dpr index eb07a1ca..2cd01239 100644 --- a/Source/Servidor/FactuGES_Server.dpr +++ b/Source/Servidor/FactuGES_Server.dpr @@ -102,8 +102,6 @@ uses uRptPresupuestosCliente_Server in '..\Modulos\Presupuestos de cliente\Reports\uRptPresupuestosCliente_Server.pas' {RptPresupuestosCliente: TDataModule}, uRptWordPresupuestoCliente in '..\Modulos\Presupuestos de cliente\Reports\uRptWordPresupuestoCliente.pas' {RptWordPresupuestoCliente: TDataModule}, srvGestorDocumentos_Impl in '..\Modulos\Gestion de documentos\Servidor\srvGestorDocumentos_Impl.pas' {srvGestorDocumentos: TDataAbstractService}, - schInventarioClient_Intf in '..\Modulos\Inventario\Model\schInventarioClient_Intf.pas', - schInventarioServer_Intf in '..\Modulos\Inventario\Model\schInventarioServer_Intf.pas', schHistoricoMovimientosClient_Intf in '..\Modulos\Historico de movimientos\Model\schHistoricoMovimientosClient_Intf.pas', schHistoricoMovimientosServer_Intf in '..\Modulos\Historico de movimientos\Model\schHistoricoMovimientosServer_Intf.pas', schAlbaranesClienteClient_Intf in '..\Modulos\Albaranes de cliente\Model\schAlbaranesClienteClient_Intf.pas', @@ -135,7 +133,9 @@ uses uRptWordAlbaranProveedor in '..\Modulos\Albaranes de proveedor\Reports\uRptWordAlbaranProveedor.pas' {RptWordAlbaranProveedor: TDataModule}, MidasSpeedFix in 'Utiles\MidasSpeedFix.pas', schAlbaranesProveedorClient_Intf in '..\Modulos\Albaranes de proveedor\Model\schAlbaranesProveedorClient_Intf.pas', - schAlbaranesProveedorServer_Intf in '..\Modulos\Albaranes de proveedor\Model\schAlbaranesProveedorServer_Intf.pas'; + schAlbaranesProveedorServer_Intf in '..\Modulos\Albaranes de proveedor\Model\schAlbaranesProveedorServer_Intf.pas', + schInventarioClient_Intf in '..\Modulos\Inventario\Model\schInventarioClient_Intf.pas', + schInventarioServer_Intf in '..\Modulos\Inventario\Model\schInventarioServer_Intf.pas'; {$R *.res} {$R ..\Servicios\RODLFile.res} diff --git a/Source/Servidor/FactuGES_Server.dproj b/Source/Servidor/FactuGES_Server.dproj index 9ee76245..c5fe7cc8 100644 --- a/Source/Servidor/FactuGES_Server.dproj +++ b/Source/Servidor/FactuGES_Server.dproj @@ -1,334 +1,334 @@ - + - - {ebdcd25d-40d7-4146-91ec-a0ea4aa1dcd1} - FactuGES_Server.dpr - Debug - AnyCPU - DCC32 - ..\..\Output\Debug\Servidor\FactuGES_Server.exe - vcl;rtl;vclx;vclactnband;dbrtl;vcldb;vcldbx;bdertl;dsnap;dsnapcon;teeUI;teedb;tee;adortl;vclib;ibxpress;dbxcds;dbexpress;DbxCommonDriver;IndyCore;IndySystem;IndyProtocols;VclSmp;vclie;webdsnap;xmlrtl;inet;inetdbbde;inetdbxpress;RemObjects_BPDX_D11;RemObjects_RODX_D11;RemObjects_Indy_D11;RemObjects_Synapse_D11;RemObjects_WebBroker_D11;DataAbstract_Core_D11;DataAbstract_DBXDriver_D11;DataAbstract_IDE_D11;DataAbstract_Scripting_D11;DataAbstract_SDACDriver_D11;sdac105;dac105;DataAbstract_SQLiteDriver_D11;cxEditorsD10;cxLibraryD10;dxThemeD10;cxDataD10;cxExtEditorsD10;cxGridD10;cxPageControlD10;cxSchedulerD10;cxTreeListD10;cxVerticalGridD10;dxBarD10;dxComnD10;dxBarDBNavD10;dxBarExtDBItemsD10;dxBarExtItemsD10;dxDockingD10;dxLayoutControlD10;dxNavBarD10;dxPSCoreD10;dxsbD10;dxPScxCommonD10;dxPSLnksD10;vclshlctrls;dxPScxExtCommonD10;dxPScxGridLnkD10;dxPScxPCProdD10;dxPScxScheduler2LnkD10;dxPScxTLLnkD10;dxPSdxLCLnkD10;dxPsPrVwAdvD10;pckMD5;pckUCDataConnector;pckUserControl_RT;PluginSDK_D10R;PNG_D10;PngComponentsD10;tb2k_d10;tbx_d10;JclVcl;Jcl;JvXPCtrlsD11R;JvCoreD11R;JvSystemD11R;JvStdCtrlsD11R;JvAppFrmD11R;JvBandsD11R;JvDBD11R;JvDlgsD11R;JvBDED11R;JvCmpD11R;JvCryptD11R;JvCtrlsD11R;JvCustomD11R;JvDockingD11R;JvDotNetCtrlsD11R;JvEDID11R;JvGlobusD11R;JvHMID11R;JvInterpreterD11R;JvJansD11R;JvManagedThreadsD11R;JvMMD11R;JvNetD11R;JvPageCompsD11R;JvPluginD11R;JvPrintPreviewD11R;JvRuntimeDesignD11R;JvTimeFrameworkD11R;JvUIBD11R;JvValidatorsD11R;JvWizardD11R;pckUCADOConn;pckUCBDEConn;pckUCIBXConn;pckUCMidasConn;cxIntlPrintSys3D10;cxExportD10;cxIntl5D10;GUISDK_D11R;ccpackD11;JSDialog100;fsTee11;fs11;frx11;frxADO11;frxBDE11;frxDB11;frxDBX11;frxe11;frxIBX11;frxTee11;fsADO11;fsBDE11;fsDB11;fsIBX11;websnap;soaprtl;IntrawebDB_90_100;Intraweb_90_100 - - - 7.0 - False - False - 0 - 3 - ..\..\Output\Release\Servidor - RELEASE - - - 7.0 - 3 - ..\..\Output\Debug\Servidor - DEBUG; - True - True - True - C:\jcl\lib\d11\debug;C:\JCL\lib\d11\debug;$(BDS)\lib\Debug;$(BDS)\Lib\Debug\Indy10 - C:\jcl\lib\d11\debug;C:\JCL\lib\d11\debug;$(BDS)\lib\Debug;$(BDS)\Lib\Debug\Indy10 - C:\jcl\lib\d11\debug;C:\JCL\lib\d11\debug;$(BDS)\lib\Debug;$(BDS)\Lib\Debug\Indy10 - C:\jcl\lib\d11\debug;C:\JCL\lib\d11\debug;$(BDS)\lib\Debug;$(BDS)\Lib\Debug\Indy10 - - - Delphi.Personality - - - FalseTrueFalse/standaloneTrueFalse1760FalseFalseFalseFalseFalse308212521.7.6.01.7.6.0martes, 05 de mayo de 2009 16:47 - ExpressPrinting System by Developer Express Inc. - FactuGES_Server.dpr - - - - - MainSource - - - - - -
srvEmpresas
- TDARemoteService -
- -
srvProvinciasPoblaciones_Impl
- TDataModule -
- - - -
srvUsuarios
- TDataAbstractService -
- - - - - - - -
RptAlbaranesCliente
- TDataModule -
- -
RptWordAlbaranCliente
- TDataModule -
- -
srvAlbaranesCliente
- TDataAbstractService -
- - - - -
RptAlbaranesProveedor
- TDataModule -
- -
RptWordAlbaranProveedor
- TDataModule -
- -
srvAlbaranesProveedor
- TDataAbstractService -
- - - -
srvAlmacenes
- TDARemoteService -
- - - - -
srvArticulos
- TDARemoteService -
- - - - - - - -
RptEtiquetasContacto
- TDataModule -
- -
RptFichasEmpleado
- TDataModule -
- -
srvContactos
- TDARemoteService -
- - - -
srvFabricantes
- TDataAbstractService -
- - - - -
RptFacturasCliente
- TDataModule -
- -
RptWordFacturaCliente
- TDataModule -
- -
srvFacturasCliente
- TDataAbstractService -
- - - - -
RptFacturasProveedor
- TDataModule -
- -
srvFacturasProveedor
- TDataAbstractService -
- - - -
srvFamilias
- TDataAbstractService -
- - - -
srvFormasPago
- TDataAbstractService -
- -
srvGestorDocumentos
- TDataAbstractService -
- -
srvGestorInformes
- TDataAbstractService -
- - - -
srvHistoricoMovimientos
- TDataAbstractService -
- - - -
srvInventario
- TDataAbstractService -
- - - - -
srvObras
- TDataAbstractService -
- - - - -
RptPedidosProveedor
- TDataModule -
- -
RptWordPedidoProveedor
- TDataModule -
- -
srvPedidosProveedor
- TDataAbstractService -
- - - - -
RptPresupuestosCliente
- TDataModule -
- -
RptWordCertificadoTrabajo
- TDataModule -
- -
RptWordPresupuestoCliente
- TDataModule -
- -
srvPresupuestosCliente
- TDataAbstractService -
- - - -
RptRecibosCliente
- TDataModule -
- -
srvRecibosCliente
- TDataAbstractService -
- - - -
RptRecibosProveedor
- TDataModule -
- -
srvRecibosProveedor
- TDataAbstractService -
- - - -
srvReferencias
- TDataAbstractService -
- - - - -
srvRemesasCliente
- TDataAbstractService -
- - - - -
srvRemesasProveedor
- TDataAbstractService -
- - - -
srvTiposIVA
- TDataAbstractService -
- - - -
srvUnidadesMedida
- TDataAbstractService -
- - - -
srvConfiguracion
- TDataAbstractService -
- -
frConexionBD
- TFrame -
- -
frConfGeneral
- TFrame -
- -
fConfiguracion
- TForm -
- -
FrameConfiguracion
- TFrame -
- -
srvLogin
- TDARemoteService -
- -
fAcercaDe
-
- -
dmServer
- TDataModule -
- -
fServerForm
-
- - - - - - - - - - -
+ + {ebdcd25d-40d7-4146-91ec-a0ea4aa1dcd1} + FactuGES_Server.dpr + Debug + AnyCPU + DCC32 + ..\..\Output\Debug\Servidor\FactuGES_Server.exe + vcl;rtl;vclx;vclactnband;dbrtl;vcldb;vcldbx;bdertl;dsnap;dsnapcon;teeUI;teedb;tee;adortl;vclib;ibxpress;dbxcds;dbexpress;DbxCommonDriver;IndyCore;IndySystem;IndyProtocols;VclSmp;vclie;webdsnap;xmlrtl;inet;inetdbbde;inetdbxpress;RemObjects_BPDX_D11;RemObjects_RODX_D11;RemObjects_Indy_D11;RemObjects_Synapse_D11;RemObjects_WebBroker_D11;DataAbstract_Core_D11;DataAbstract_DBXDriver_D11;DataAbstract_IDE_D11;DataAbstract_Scripting_D11;DataAbstract_SDACDriver_D11;sdac105;dac105;DataAbstract_SQLiteDriver_D11;cxEditorsD10;cxLibraryD10;dxThemeD10;cxDataD10;cxExtEditorsD10;cxGridD10;cxPageControlD10;cxSchedulerD10;cxTreeListD10;cxVerticalGridD10;dxBarD10;dxComnD10;dxBarDBNavD10;dxBarExtDBItemsD10;dxBarExtItemsD10;dxDockingD10;dxLayoutControlD10;dxNavBarD10;dxPSCoreD10;dxsbD10;dxPScxCommonD10;dxPSLnksD10;vclshlctrls;dxPScxExtCommonD10;dxPScxGridLnkD10;dxPScxPCProdD10;dxPScxScheduler2LnkD10;dxPScxTLLnkD10;dxPSdxLCLnkD10;dxPsPrVwAdvD10;pckMD5;pckUCDataConnector;pckUserControl_RT;PluginSDK_D10R;PNG_D10;PngComponentsD10;tb2k_d10;tbx_d10;JclVcl;Jcl;JvXPCtrlsD11R;JvCoreD11R;JvSystemD11R;JvStdCtrlsD11R;JvAppFrmD11R;JvBandsD11R;JvDBD11R;JvDlgsD11R;JvBDED11R;JvCmpD11R;JvCryptD11R;JvCtrlsD11R;JvCustomD11R;JvDockingD11R;JvDotNetCtrlsD11R;JvEDID11R;JvGlobusD11R;JvHMID11R;JvInterpreterD11R;JvJansD11R;JvManagedThreadsD11R;JvMMD11R;JvNetD11R;JvPageCompsD11R;JvPluginD11R;JvPrintPreviewD11R;JvRuntimeDesignD11R;JvTimeFrameworkD11R;JvUIBD11R;JvValidatorsD11R;JvWizardD11R;pckUCADOConn;pckUCBDEConn;pckUCIBXConn;pckUCMidasConn;cxIntlPrintSys3D10;cxExportD10;cxIntl5D10;GUISDK_D11R;ccpackD11;JSDialog100;fsTee11;fs11;frx11;frxADO11;frxBDE11;frxDB11;frxDBX11;frxe11;frxIBX11;frxTee11;fsADO11;fsBDE11;fsDB11;fsIBX11;websnap;soaprtl;IntrawebDB_90_100;Intraweb_90_100 + + + 7.0 + False + False + 0 + 3 + ..\..\Output\Release\Servidor + RELEASE + + + 7.0 + 3 + ..\..\Output\Debug\Servidor + DEBUG; + True + True + True + C:\jcl\lib\d11\debug;C:\JCL\lib\d11\debug;$(BDS)\lib\Debug;$(BDS)\Lib\Debug\Indy10 + C:\jcl\lib\d11\debug;C:\JCL\lib\d11\debug;$(BDS)\lib\Debug;$(BDS)\Lib\Debug\Indy10 + C:\jcl\lib\d11\debug;C:\JCL\lib\d11\debug;$(BDS)\lib\Debug;$(BDS)\Lib\Debug\Indy10 + C:\jcl\lib\d11\debug;C:\JCL\lib\d11\debug;$(BDS)\lib\Debug;$(BDS)\Lib\Debug\Indy10 + + + Delphi.Personality + + +FalseTrueFalse/standaloneTrueFalse1760FalseFalseFalseFalseFalse308212521.7.6.01.7.6.0martes, 05 de mayo de 2009 16:47 + ExpressPrinting System by Developer Express Inc. + FactuGES_Server.dpr + + + + + MainSource + + + + + +
srvEmpresas
+ TDARemoteService +
+ +
srvProvinciasPoblaciones_Impl
+ TDataModule +
+ + + +
srvUsuarios
+ TDataAbstractService +
+ + + + + + + +
RptAlbaranesCliente
+ TDataModule +
+ +
RptWordAlbaranCliente
+ TDataModule +
+ +
srvAlbaranesCliente
+ TDataAbstractService +
+ + + + +
RptAlbaranesProveedor
+ TDataModule +
+ +
RptWordAlbaranProveedor
+ TDataModule +
+ +
srvAlbaranesProveedor
+ TDataAbstractService +
+ + + +
srvAlmacenes
+ TDARemoteService +
+ + + + +
srvArticulos
+ TDARemoteService +
+ + + + + + + +
RptEtiquetasContacto
+ TDataModule +
+ +
RptFichasEmpleado
+ TDataModule +
+ +
srvContactos
+ TDARemoteService +
+ + + +
srvFabricantes
+ TDataAbstractService +
+ + + + +
RptFacturasCliente
+ TDataModule +
+ +
RptWordFacturaCliente
+ TDataModule +
+ +
srvFacturasCliente
+ TDataAbstractService +
+ + + + +
RptFacturasProveedor
+ TDataModule +
+ +
srvFacturasProveedor
+ TDataAbstractService +
+ + + +
srvFamilias
+ TDataAbstractService +
+ + + +
srvFormasPago
+ TDataAbstractService +
+ +
srvGestorDocumentos
+ TDataAbstractService +
+ +
srvGestorInformes
+ TDataAbstractService +
+ + + +
srvHistoricoMovimientos
+ TDataAbstractService +
+ + + +
srvInventario
+ TDataAbstractService +
+ + + + +
srvObras
+ TDataAbstractService +
+ + + + +
RptPedidosProveedor
+ TDataModule +
+ +
RptWordPedidoProveedor
+ TDataModule +
+ +
srvPedidosProveedor
+ TDataAbstractService +
+ + + + +
RptPresupuestosCliente
+ TDataModule +
+ +
RptWordCertificadoTrabajo
+ TDataModule +
+ +
RptWordPresupuestoCliente
+ TDataModule +
+ +
srvPresupuestosCliente
+ TDataAbstractService +
+ + + +
RptRecibosCliente
+ TDataModule +
+ +
srvRecibosCliente
+ TDataAbstractService +
+ + + +
RptRecibosProveedor
+ TDataModule +
+ +
srvRecibosProveedor
+ TDataAbstractService +
+ + + +
srvReferencias
+ TDataAbstractService +
+ + + + +
srvRemesasCliente
+ TDataAbstractService +
+ + + + +
srvRemesasProveedor
+ TDataAbstractService +
+ + + +
srvTiposIVA
+ TDataAbstractService +
+ + + +
srvUnidadesMedida
+ TDataAbstractService +
+ + + +
srvConfiguracion
+ TDataAbstractService +
+ +
frConexionBD
+ TFrame +
+ +
frConfGeneral
+ TFrame +
+ +
fConfiguracion
+ TForm +
+ +
FrameConfiguracion
+ TFrame +
+ +
srvLogin
+ TDARemoteService +
+ +
fAcercaDe
+
+ +
dmServer
+ TDataModule +
+ +
fServerForm
+
+ + + + + + + + + + +