Adaptación a multiempresa (en proceso).

git-svn-id: https://192.168.0.254/svn/Proyectos.Acana_FactuGES2/trunk@287 f4e31baf-9722-1c47-927c-6f952f962d4b
This commit is contained in:
David Arranz 2008-07-23 16:46:26 +00:00
parent a7b3426126
commit 3d3d407d7a
50 changed files with 719 additions and 350 deletions

View File

@ -65,8 +65,6 @@ contains
uEditorEmpresa in 'Empresas\Views\uEditorEmpresa.pas' {fEditorEmpresa: TCustomEditor},
uEmpresasViewRegister in 'Empresas\Views\uEmpresasViewRegister.pas',
uViewDatosBancarios in 'Empresas\Views\uViewDatosBancarios.pas' {frViewDatosBancarios: TCustomView},
schUsuariosServer_Intf in 'Usuarios\Model\schUsuariosServer_Intf.pas',
schUsuariosClient_Intf in 'Usuarios\Model\schUsuariosClient_Intf.pas',
uIEditorLogin in 'Usuarios\Controller\View\uIEditorLogin.pas',
uEditorLogin in 'Usuarios\Views\uEditorLogin.pas' {fEditorLogin: TCustomEditor},
uUsuariosViewRegister in 'Usuarios\Views\uUsuariosViewRegister.pas',
@ -109,6 +107,8 @@ contains
uViewConfiguracionBase in 'Configuracion\Views\uViewConfiguracionBase.pas' {frViewConfiguracionBase: TCustomView},
uEditorConfiguracion in 'Configuracion\Views\uEditorConfiguracion.pas' {fConfiguracionEditor},
uViewConfiguracionGeneral in 'Configuracion\Views\uViewConfiguracionGeneral.pas' {frViewConfiguracionGeneral: TFrame},
uIViewConfiguracionBase in 'Configuracion\Controller\Views\uIViewConfiguracionBase.pas';
uIViewConfiguracionBase in 'Configuracion\Controller\Views\uIViewConfiguracionBase.pas',
schUsuariosClient_Intf in 'Usuarios\Model\schUsuariosClient_Intf.pas',
schUsuariosServer_Intf in 'Usuarios\Model\schUsuariosServer_Intf.pas';
end.

View File

@ -46,15 +46,6 @@
<Borland.ProjectType>Package</Borland.ProjectType>
<BorlandProject>
<BorlandProject><Delphi.Personality><Parameters><Parameters Name="UseLauncher">False</Parameters><Parameters Name="LoadAllSymbols">True</Parameters><Parameters Name="LoadUnspecifiedSymbols">False</Parameters></Parameters><Package_Options><Package_Options Name="ImplicitBuild">False</Package_Options><Package_Options Name="DesigntimeOnly">False</Package_Options><Package_Options Name="RuntimeOnly">False</Package_Options></Package_Options><VersionInfo><VersionInfo Name="IncludeVerInfo">True</VersionInfo><VersionInfo Name="AutoIncBuild">False</VersionInfo><VersionInfo Name="MajorVer">1</VersionInfo><VersionInfo Name="MinorVer">0</VersionInfo><VersionInfo Name="Release">0</VersionInfo><VersionInfo Name="Build">0</VersionInfo><VersionInfo Name="Debug">False</VersionInfo><VersionInfo Name="PreRelease">False</VersionInfo><VersionInfo Name="Special">False</VersionInfo><VersionInfo Name="Private">False</VersionInfo><VersionInfo Name="DLL">False</VersionInfo><VersionInfo Name="Locale">3082</VersionInfo><VersionInfo Name="CodePage">1252</VersionInfo></VersionInfo><VersionInfoKeys><VersionInfoKeys Name="CompanyName"></VersionInfoKeys><VersionInfoKeys Name="FileDescription"></VersionInfoKeys><VersionInfoKeys Name="FileVersion">1.0.0.0</VersionInfoKeys><VersionInfoKeys Name="InternalName"></VersionInfoKeys><VersionInfoKeys Name="LegalCopyright"></VersionInfoKeys><VersionInfoKeys Name="LegalTrademarks"></VersionInfoKeys><VersionInfoKeys Name="OriginalFilename"></VersionInfoKeys><VersionInfoKeys Name="ProductName"></VersionInfoKeys><VersionInfoKeys Name="ProductVersion">1.0.0.0</VersionInfoKeys><VersionInfoKeys Name="Comments"></VersionInfoKeys></VersionInfoKeys><Excluded_Packages>
<Excluded_Packages Name="C:\Documents and Settings\All Users\Documentos\RAD Studio\5.0\Bpl\DataAbstract_SQLiteDriver_D11.bpl">RemObjects Data Abstract - SQLite Driver</Excluded_Packages>
<Excluded_Packages Name="$(BDS)\bin\dcloffice2k100.bpl">Microsoft Office 2000 Sample Automation Server Wrapper Components</Excluded_Packages>
<Excluded_Packages Name="$(BDS)\bin\dclofficexp100.bpl">Microsoft Office XP Sample Automation Server Wrapper Components</Excluded_Packages>
@ -65,22 +56,6 @@
<DelphiCompile Include="ApplicationBase.dpk">
<MainSource>MainSource</MainSource>
</DelphiCompile>
<DCCReference Include="..\Cliente\adortl.dcp" />
<DCCReference Include="..\Cliente\Base.dcp" />
<DCCReference Include="..\Cliente\cxLibraryD11.dcp" />
<DCCReference Include="..\Cliente\DataAbstract_Core_D11.dcp" />
<DCCReference Include="..\Cliente\dbrtl.dcp" />
<DCCReference Include="..\Cliente\dsnap.dcp" />
<DCCReference Include="..\Cliente\dxGDIPlusD11.dcp" />
<DCCReference Include="..\Cliente\dxNavBarD11.dcp" />
<DCCReference Include="..\Cliente\dxThemeD11.dcp" />
<DCCReference Include="..\Cliente\GUIBase.dcp" />
<DCCReference Include="..\Cliente\JvJansD11R.dcp" />
<DCCReference Include="..\Cliente\RemObjects_Core_D11.dcp" />
<DCCReference Include="..\Cliente\rtl.dcp" />
<DCCReference Include="..\Cliente\vcl.dcp" />
<DCCReference Include="..\Cliente\vcldb.dcp" />
<DCCReference Include="..\Cliente\vcljpg.dcp" />
<DCCReference Include="Configuracion\Controller\uConfiguracionController.pas" />
<DCCReference Include="Configuracion\Controller\Views\uIViewConfiguracionBase.pas" />
<DCCReference Include="Configuracion\Views\uEditorConfiguracion.pas">
@ -179,10 +154,26 @@
<Form>DataModuleUsuarios</Form>
</DCCReference>
<DCCReference Include="Usuarios\Data\uUCROConn.pas" />
<DCCReference Include="Usuarios\Model\adortl.dcp" />
<DCCReference Include="Usuarios\Model\Base.dcp" />
<DCCReference Include="Usuarios\Model\cxLibraryD11.dcp" />
<DCCReference Include="Usuarios\Model\DataAbstract_Core_D11.dcp" />
<DCCReference Include="Usuarios\Model\Data\uIDataModuleUsuarios.pas" />
<DCCReference Include="Usuarios\Model\dbrtl.dcp" />
<DCCReference Include="Usuarios\Model\dsnap.dcp" />
<DCCReference Include="Usuarios\Model\dxGDIPlusD11.dcp" />
<DCCReference Include="Usuarios\Model\dxNavBarD11.dcp" />
<DCCReference Include="Usuarios\Model\dxThemeD11.dcp" />
<DCCReference Include="Usuarios\Model\GUIBase.dcp" />
<DCCReference Include="Usuarios\Model\JvJansD11R.dcp" />
<DCCReference Include="Usuarios\Model\RemObjects_Core_D11.dcp" />
<DCCReference Include="Usuarios\Model\rtl.dcp" />
<DCCReference Include="Usuarios\Model\schUsuariosClient_Intf.pas" />
<DCCReference Include="Usuarios\Model\schUsuariosServer_Intf.pas" />
<DCCReference Include="Usuarios\Model\uBizUsuarios.pas" />
<DCCReference Include="Usuarios\Model\vcl.dcp" />
<DCCReference Include="Usuarios\Model\vcldb.dcp" />
<DCCReference Include="Usuarios\Model\vcljpg.dcp" />
<DCCReference Include="Usuarios\Views\uEditorCambiarPassword.pas">
<Form>fEditorCambiarPassword</Form>
<DesignClass>TCustomEditor</DesignClass>

View File

@ -13,9 +13,9 @@ type
procedure SetController (const Value : ITiendasEmpresaController);
property Controller : ITiendasEmpresaController read GetController write SetController;
function GetTienda: IBizEmpresasTiendas;
procedure SetTienda(const Value: IBizEmpresasTiendas);
property Tienda: IBizEmpresasTiendas read GetTienda write SetTienda;
function GetTienda: IBizEmpresaTienda;
procedure SetTienda(const Value: IBizEmpresaTienda);
property Tienda: IBizEmpresaTienda read GetTienda write SetTienda;
function ShowModal : Integer;
procedure Release;

View File

@ -5,7 +5,8 @@ interface
uses
Windows, Forms, Classes, Controls, Contnrs, SysUtils,
uBizEmpresas, uIDataModuleEmpresas, uDADataTable, uControllerBase;
uBizEmpresas, uIDataModuleEmpresas, uDADataTable, uControllerBase,
uBizEmpresasTiendas, uTiendasEmpresaController;
type
IEmpresasController = interface(IControllerBase)
@ -24,19 +25,25 @@ type
function ToStringList(AEmpresa : IBizEmpresa) : TStringList;
function DarListaTiendas(AEmpresa : IBizEmpresa): TStringList;
function DarTiendaUsuario(AEmpresa: IBizEmpresa; const ID_USUARIO: Integer): IBizEmpresaTienda;
function GetTiendasController : ITiendasEmpresaController;
property TiendasController : ITiendasEmpresaController read GetTiendasController;
end;
TEmpresasController = class(TControllerBase, IEmpresasController)
protected
FDataModule : IDataModuleEmpresas;
FTiendasController : ITiendasEmpresaController;
function ValidarEmpresa(AEmpresa : IBizEmpresa): Boolean; virtual;
function GetTiendasController : ITiendasEmpresaController;
public
constructor Create; override;
destructor Destroy; override;
function Eliminar(const ID : Integer): Boolean; overload;
function Eliminar(AEmpresa : IBizEmpresa): Boolean; overload;
function Guardar(AEmpresa : IBizEmpresa): Boolean;
function Eliminar(AEmpresa : IBizEmpresa): Boolean; overload;
function Guardar(AEmpresa : IBizEmpresa): Boolean;
procedure DescartarCambios(AEmpresa : IBizEmpresa); virtual;
function Existe(const ID: Integer) : Boolean; virtual;
procedure Anadir(AEmpresa : IBizEmpresa); virtual;
@ -48,14 +55,17 @@ type
procedure VerTodos(AEmpresas: IBizEmpresa); virtual;
function ToStringList(AEmpresa : IBizEmpresa) : TStringList; virtual;
function DarListaTiendas(AEmpresa : IBizEmpresa): TStringList;
function DarListaTiendas(AEmpresa : IBizEmpresa): TStringList;
function DarTiendaUsuario(AEmpresa: IBizEmpresa; const ID_USUARIO: Integer): IBizEmpresaTienda;
property TiendasController : ITiendasEmpresaController read GetTiendasController;
end;
implementation
uses
uEditorRegistryUtils, cxControls, DB, uFactuGES_App,
uDataModuleEmpresas, uIEditorEmpresa, uBizEmpresasTiendas;
uEditorRegistryUtils, cxControls, DB, uFactuGES_App,
uDataModuleEmpresas, uIEditorEmpresa;
{ TEmpresasController }
@ -78,12 +88,13 @@ constructor TEmpresasController.Create;
begin
inherited;
FDataModule := TDataModuleEmpresas.Create(Nil);
FTiendasController := TTiendasEmpresaController.Create;
end;
function TEmpresasController.DarListaTiendas(
AEmpresa: IBizEmpresa): TStringList;
var
ATiendas: IBizEmpresasTiendas;
ATiendas: IBizEmpresaTienda;
begin
if not Assigned(AEmpresa) then
raise Exception.Create ('Empresa no asignada (DarListaTiendas)');
@ -109,6 +120,14 @@ begin
end;
end;
function TEmpresasController.DarTiendaUsuario(AEmpresa: IBizEmpresa; const ID_USUARIO: Integer): IBizEmpresaTienda;
var
AIDTienda : Integer;
begin
AIDTienda := FDataModule.DarTiendaUsuario(AEmpresa.ID, ID_USUARIO);
Result := FTiendasController.Buscar(AIDTienda);
end;
procedure TEmpresasController.DescartarCambios(AEmpresa: IBizEmpresa);
begin
if not Assigned(AEmpresa) then
@ -128,6 +147,7 @@ end;
destructor TEmpresasController.Destroy;
begin
FDataModule := NIL;
FTiendasController := NIL;
inherited;
end;
@ -175,6 +195,11 @@ begin
end;
end;
function TEmpresasController.GetTiendasController: ITiendasEmpresaController;
begin
Result := FTiendasController;
end;
function TEmpresasController.Guardar(AEmpresa: IBizEmpresa): Boolean;
begin
Result := False;
@ -256,11 +281,10 @@ procedure TEmpresasController.VerTodos(AEmpresas: IBizEmpresa);
{var
AEditor : IEditorEmpresas;}
begin
{
AEditor := NIL;
{ AEditor := NIL;
ShowHourglassCursor;
try
CreateEditor('EditorEmpresas', IEditorClientes, AEditor);
CreateEditor('EditorEmpresas', IEditorEmpresas, AEditor);
if Assigned(AEditor) then
with AEditor do
begin
@ -271,8 +295,7 @@ begin
finally
AEditor := NIL;
HideHourglassCursor;
end;
}
end;}
end;
end.

View File

@ -9,18 +9,22 @@ uses
type
ITiendasEmpresaController = interface(IControllerBase)
['{5DCF4163-7FA0-4560-9E5E-FA2A99EA4F59}']
procedure VerTienda(ATienda : IBizEmpresasTiendas);
function DarListaTiendas: TStringList;
function Buscar(const ID: Integer): IBizEmpresaTienda;
function BuscarTodas: IBizEmpresaTienda;
procedure Ver(ATienda : IBizEmpresaTienda);
function Nueva : IBizEmpresaTienda;
end;
TTiendasEmpresaController = class(TControllerBase, ITiendasEmpresaController)
private
FDataModule : IDataModuleEmpresas;
public
procedure VerTienda(ATienda : IBizEmpresasTiendas);
function DarListaTiendas: TStringList;
constructor Create; override;
destructor Destroy; override;
function Buscar(const ID: Integer): IBizEmpresaTienda;
function BuscarTodas: IBizEmpresaTienda;
procedure Ver(ATienda : IBizEmpresaTienda);
function Nueva : IBizEmpresaTienda;
end;
implementation
@ -31,44 +35,34 @@ uses
uDataModuleEmpresas, schEmpresasClient_Intf, uIEditorTiendaEmpresa,
uEditorRegistryUtils, cxControls, uFactuGES_App;
function TTiendasEmpresaController.Buscar(const ID: Integer): IBizEmpresaTienda;
begin
Result := FDataModule.GetTienda(ID);
end;
function TTiendasEmpresaController.BuscarTodas: IBizEmpresaTienda;
begin
Result := FDataModule.GetTiendas;
end;
constructor TTiendasEmpresaController.Create;
begin
inherited;
FDataModule := TDataModuleEmpresas.Create(Nil);
end;
function TTiendasEmpresaController.DarListaTiendas: TStringList;
var
ATiendas: IBizEmpresasTiendas;
begin
ATiendas := AppFactuGES.EmpresaActiva.Tiendas;
ATiendas.DataTable.Active := True;
Result := TStringList.Create;
try
with Result do
begin
Add(Format('%s=%d', [CTE_TODAS, CTE_ID_TODAS]));
ATiendas.DataTable.First;
while not ATiendas.DataTable.EOF do
begin
Add(Format('%s=%d', [ATiendas.NOMBRE, ATiendas.ID]));
ATiendas.DataTable.Next;
end;
end;
finally
ATiendas := NIL;
end;
end;
destructor TTiendasEmpresaController.Destroy;
begin
FDataModule := Nil;
inherited;
end;
procedure TTiendasEmpresaController.VerTienda(ATienda: IBizEmpresasTiendas);
function TTiendasEmpresaController.Nueva: IBizEmpresaTienda;
begin
Result := FDataModule.NewTienda;
end;
procedure TTiendasEmpresaController.Ver(ATienda: IBizEmpresaTienda);
var
AEditor : IEditorTiendaEmpresa;
begin

View File

@ -2,7 +2,7 @@ unit uDataModuleEmpresas;
interface
uses {vcl:} SysUtils, Classes, DB, DBClient,
uses {vcl:} SysUtils, Classes, DB, DBClient,
{RemObjects:} uDADataTable, uDAScriptingProvider,
uDACDSDataTable, uDABINAdapter, uRORemoteService,
uROClient, uROBinMessage, uROWinInetHttpChannel, uDADesigntimeCall,
@ -25,11 +25,15 @@ type
procedure DAClientDataModuleCreate(Sender: TObject);
private
function _GetDatosBancarios : IBizEmpresasDatosBancarios;
function _GetTiendas : IBizEmpresasTiendas;
public
function GetItem(const ID : Integer) : IBizEmpresa;
function NewItem : IBizEmpresa;
function GetItems : IBizEmpresa;
function DarTiendaUsuario(const ID_EMPRESA: Integer; const ID_USUARIO: Integer): Integer;
function NewTienda : IBizEmpresaTienda;
function GetTiendas : IBizEmpresaTienda;
function GetTienda(const ID : Integer) : IBizEmpresaTienda;
end;
implementation
@ -46,6 +50,12 @@ begin
RORemoteService.Message := dmConexion.Message;
end;
function TDataModuleEmpresas.DarTiendaUsuario(const ID_EMPRESA,
ID_USUARIO: Integer): Integer;
begin
Result := (RORemoteService as IsrvEmpresas).DarTiendaUsuario(ID_EMPRESA, ID_USUARIO)
end;
function TDataModuleEmpresas.GetItem(const ID: Integer): IBizEmpresa;
begin
ShowHourglassCursor;
@ -75,7 +85,7 @@ begin
with TBizEmpresa(AEmpresa.BusinessEventsObj) do
begin
DatosBancarios := _GetDatosBancarios;
Tiendas := _GetTiendas;
Tiendas := GetTiendas;
end;
Result := (AEmpresa as IBizEmpresa);
@ -89,6 +99,11 @@ begin
Result := GetItem(ID_NULO)
end;
function TDataModuleEmpresas.NewTienda: IBizEmpresaTienda;
begin
Result := GetTienda(ID_NULO);
end;
function TDataModuleEmpresas._GetDatosBancarios: IBizEmpresasDatosBancarios;
var
ADatosBancarios : TDAMemDataTable;
@ -108,7 +123,24 @@ begin
end;
end;
function TDataModuleEmpresas._GetTiendas: IBizEmpresasTiendas;
function TDataModuleEmpresas.GetTienda(const ID: Integer): IBizEmpresaTienda;
begin
ShowHourglassCursor;
try
Result := Self.GetTiendas;
with Result.DataTable.DynamicWhere do
begin
Clear;
// (ID = :ID)
Expression := NewBinaryExpression(NewField('', fld_EmpresasTiendasID), NewConstant(ID, datInteger), dboEqual);
end;
finally
HideHourglassCursor;
end;
end;
function TDataModuleEmpresas.GetTiendas: IBizEmpresaTienda;
var
ATiendas : TDAMemDataTable;
begin
@ -121,7 +153,7 @@ begin
DetailOptions := DetailOptions -
[dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates];
end;
Result := (ATiendas as IBizEmpresasTiendas);
Result := (ATiendas as IBizEmpresaTienda);
finally
HideHourglassCursor;
end;

View File

@ -3,8 +3,7 @@ unit uIDataModuleEmpresas;
interface
uses
SysUtils, Classes,
uBizEmpresas;
SysUtils, Classes, uBizEmpresas, uBizEmpresasTiendas;
type
IDataModuleEmpresas = interface
@ -12,6 +11,12 @@ type
function GetItem(const ID : Integer) : IBizEmpresa;
function NewItem : IBizEmpresa;
function GetItems : IBizEmpresa;
function NewTienda : IBizEmpresaTienda;
function GetTienda(const ID : Integer) : IBizEmpresaTienda;
function GetTiendas : IBizEmpresaTienda;
function DarTiendaUsuario(const ID_EMPRESA: Integer; const ID_USUARIO: Integer): Integer;
end;
implementation

View File

@ -7,17 +7,17 @@ uses
schEmpresasClient_Intf;
const
BIZ_CLIENT_EMPRESAS_TIENDAS = 'Client.EmpresasTiendas';
BIZ_CLIENT_EMPRESAS_TIENDAS = 'Client.EmpresaTienda';
CTE_ID_TODAS = 0;
CTE_TODAS = 'Todas';
type
IBizEmpresasTiendas = interface(IEmpresasTiendas)
IBizEmpresaTienda = interface(IEmpresasTiendas)
['{564205A6-82A6-45E1-9523-6751BB5A8708}']
function EsNuevo : Boolean;
end;
TBizEmpresasTiendas = class(TEmpresasTiendasDataTableRules, IBizEmpresasTiendas)
TBizEmpresaTienda = class(TEmpresasTiendasDataTableRules, IBizEmpresaTienda)
protected
procedure BeforeInsert(Sender: TDADataTable); override;
public
@ -31,7 +31,7 @@ uses
{ TBizEmpresasTiendas }
procedure TBizEmpresasTiendas.BeforeInsert(Sender: TDADataTable);
procedure TBizEmpresaTienda.BeforeInsert(Sender: TDADataTable);
var
AMasterTable : TDADataTable;
begin
@ -41,13 +41,13 @@ begin
AMasterTable.Post;
end;
function TBizEmpresasTiendas.EsNuevo: Boolean;
function TBizEmpresaTienda.EsNuevo: Boolean;
begin
Result := (ID < 0);
end;
initialization
RegisterDataTableRules(BIZ_CLIENT_EMPRESAS_TIENDAS, TBizEmpresasTiendas);
RegisterDataTableRules(BIZ_CLIENT_EMPRESAS_TIENDAS, TBizEmpresaTienda);
end.

View File

@ -32,6 +32,7 @@ type
const aMaxRecords: Integer);
private
protected
function DarTiendaUsuario(const ID_EMPRESA: Integer; const ID_USUARIO: Integer): Integer;
end;
implementation
@ -54,6 +55,16 @@ begin
SessionManager := dmServer.SessionManager;
end;
function TsrvEmpresas.DarTiendaUsuario(const ID_EMPRESA, ID_USUARIO: Integer): Integer;
var
AContactosService : IsrvContactos;
Intf : IInterface;
begin
GetClassFactory('srvContactos').CreateInstance(ClientID, Intf);
AContactosService := Intf as IsrvContactos;
Result := AContactosService.DarTiendaDeUsuario(ID_EMPRESA, ID_USUARIO)
end;
procedure TsrvEmpresas.DataAbstractServiceBeforeAcquireConnection(
aSender: TObject; var aConnectionName: string);
begin

View File

@ -6,7 +6,10 @@ uses Windows, SysUtils, Classes, Graphics, Forms, Controls, StdCtrls,
Buttons, ExtCtrls, Mask, DBCtrls, DB, uDADataTable, PngSpeedButton,
cxControls, cxContainer, cxEdit, cxTextEdit, cxHyperLinkEdit, cxDBEdit,
uIEditorTiendaEmpresa, uTiendasEmpresaController, uBizEmpresasTiendas,
cxCurrencyEdit, uDAInterfaces, cxGraphics, cxMaskEdit, cxDropDownEdit;
cxCurrencyEdit, uDAInterfaces, cxGraphics, cxMaskEdit, cxDropDownEdit,
dxSkinsCore, dxSkinBlack, dxSkinBlue, dxSkinOffice2007Black,
dxSkinOffice2007Blue, dxSkinOffice2007Green, dxSkinOffice2007Pink,
dxSkinOffice2007Silver, dxSkinSilver, dxSkinsDefaultPainters;
type
TfEditorTiendaEmpresa = class(TForm, IEditorTiendaEmpresa)
@ -53,17 +56,17 @@ type
procedure CargarPoblaciones;
protected
FController : ITiendasEmpresaController;
FTienda: IBizEmpresasTiendas;
FTienda: IBizEmpresaTienda;
function GetController : ITiendasEmpresaController;
procedure SetController (const Value : ITiendasEmpresaController);
function GetTienda: IBizEmpresasTiendas;
procedure SetTienda(const Value: IBizEmpresasTiendas);
function GetTienda: IBizEmpresaTienda;
procedure SetTienda(const Value: IBizEmpresaTienda);
public
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
property Controller : ITiendasEmpresaController read GetController write SetController;
property Tienda: IBizEmpresasTiendas read GetTienda write SetTienda;
property Tienda: IBizEmpresaTienda read GetTienda write SetTienda;
end;
implementation
@ -206,7 +209,7 @@ begin
Result := FController;
end;
function TfEditorTiendaEmpresa.GetTienda: IBizEmpresasTiendas;
function TfEditorTiendaEmpresa.GetTienda: IBizEmpresaTienda;
begin
Result := FTienda;
end;
@ -221,7 +224,7 @@ begin
FController := Value;
end;
procedure TfEditorTiendaEmpresa.SetTienda(const Value: IBizEmpresasTiendas);
procedure TfEditorTiendaEmpresa.SetTienda(const Value: IBizEmpresaTienda);
begin
FTienda := Value;
if Assigned(FTienda) then

View File

@ -131,8 +131,8 @@ begin
end;
procedure TfrViewTienda.SetIDTienda(const ID: Integer);
var
AIndex: Integer;
{var
AIndex: Integer;}
begin
{ if FListaIDTiendas.Find(ID, AIndex) then
cbTienda.Text := FListaTiendas.Strings[AIndex];}

View File

@ -10,7 +10,10 @@ uses
cxGridDBBandedTableView, cxClasses, cxControls, cxGridCustomView, cxGrid,
uDADataTable, Grids, DBGrids, ActnList, ImgList, PngImageList, ComCtrls,
ToolWin, cxGridDBTableView, uViewDetallesGenerico, cxCurrencyEdit,
uDAInterfaces;
uDAInterfaces, dxSkinsCore, dxSkinBlack, dxSkinBlue, dxSkinOffice2007Black,
dxSkinOffice2007Blue, dxSkinOffice2007Green, dxSkinOffice2007Pink,
dxSkinOffice2007Silver, dxSkinSilver, dxSkinsDefaultPainters,
dxSkinscxPCPainter;
type
TfrViewTiendas = class(TfrViewDetallesGenerico)
@ -48,19 +51,18 @@ begin
end;
procedure TfrViewTiendas.AnadirInterno;
var
ATiendasController : ITiendasEmpresaController;
begin
inherited;
ATiendasController := TTiendasEmpresaController.Create;
try
with TTiendasEmpresaController.Create do
try
VerTienda((dsDetalles.DataTable) as IBizEmpresasTiendas);
finally
Free;
end;
finally
ATiendasController.Ver((dsDetalles.DataTable) as IBizEmpresaTienda);
if (dsDetalles.DataTable.State in dsEditModes) then
dsDetalles.DataTable.Post;
finally
ATiendasController := NIL;
end;
end;
@ -90,7 +92,7 @@ begin
inherited;
AController := TTiendasEmpresaController.Create;
try
AController.VerTienda((dsDetalles.DataTable) as IBizEmpresasTiendas);
AController.Ver((dsDetalles.DataTable) as IBizEmpresaTienda);
finally
AController := NIL;
end;

View File

@ -22,7 +22,7 @@ type
procedure VerPerfil(const AIDPerfil: Integer); overload;
procedure VerPerfil(APerfil : IBizPerfilUsuario); overload;
procedure _ShowUserManager;
procedure _ShowProfileManager;
procedure _ShowLogManager;
@ -67,8 +67,6 @@ type
procedure SetUsarPasswordsSeguras(const Value: Boolean);
property UsarPasswordsSeguras : Boolean read GetUsarPasswordsSeguras write SetUsarPasswordsSeguras;
procedure darIDTiendaVendedorUsuario(const IdUsuario: Integer; var AIdTienda: Integer; var ATienda: String);
{
procedure ChangePassword(IDUser: Integer; NewPassword: String);
procedure AddRight(idUser: Integer; ItemRight: TObject; FullPath: Boolean = True); overload;
@ -86,8 +84,6 @@ type
end;
TUsuariosController = class(TControllerBase, IUsuariosController)
private
procedure FiltrarEmpresa(AUsuario: IBizUsuario);
protected
FDataModule : IDataModuleUsuarios;
FUserControl: TUserControl;
@ -163,7 +159,7 @@ type
function ValidarPassword(const APassword : string; const ALogin : String;
const ANombre: String; out AMsg : String): boolean;
procedure darIDTiendaVendedorUsuario(const IdUsuario: Integer; var AIdTienda: Integer; var ATienda: String);
//procedure DarIDTiendaVendedorUsuario(const IdUsuario: Integer; var AIdTienda: Integer; var ATienda: String);
property UsarPasswordsSeguras : Boolean read GetUsarPasswordsSeguras write SetUsarPasswordsSeguras;
property UserControl : TUserControl read FUserControl;
@ -289,13 +285,11 @@ end;
function TUsuariosController.BuscarTodosUsuarios: IBizUsuario;
begin
Result := FDataModule.GetUsuarios;
FiltrarEmpresa(Result);
end;
function TUsuariosController.BuscarUsuario(const AIDUser: Integer): IBizUsuario;
begin
Result := FDataModule.GetUsuario(AIDUser);
FiltrarEmpresa(Result);
end;
function TUsuariosController.CambiarPassword(const AIDUser: Integer;
@ -311,7 +305,7 @@ var
AEditorCambiar : TfEditorCambiarPassword;
begin
Result := False;
AUser := FDataModule.GetUsuario(AIDUser);
if Assigned(AUser) then
begin
@ -372,11 +366,6 @@ begin
Result := Supports(EditorRegistry.CreateEditor(AName), IID, Intf);
end;
procedure TUsuariosController.darIDTiendaVendedorUsuario(const IdUsuario: Integer; var AIdTienda: Integer; var ATienda: String);
begin
FDataModule.DarIDTiendaVendedorUsuario(IdUsuario, AIdTienda, ATienda);
end;
function TUsuariosController.DarListaPerfilesUsuario: TStringList;
var
APerfilesUsuario: IBizPerfilUsuario;
@ -919,30 +908,5 @@ begin
end;
end;
procedure TUsuariosController.FiltrarEmpresa(AUsuario: IBizUsuario);
{var
Condicion: TDAWhereExpression;}
begin
// AQUI HAY QUE TENER EN CUENTA QUE UN USUARIO PUEDE QUE NO TENGA ACCESO
// EN UNA DETERMINADA EMPRESA
{ if AUsuario.DataTable.Active then
AUsuario.DataTable.Active := False;
// Filtrar los contactos actuales por empresa
with AUsuario.DataTable.DynamicWhere do
begin
Condicion := NewBinaryExpression(NewField('', fld_U
ContactosID_EMPRESA), NewConstant(AppFactuGES.EmpresaActiva.ID, datInteger), dboEqual);
if IsEmpty then
Expression := Condicion
else
Expression := NewBinaryExpression(Expression, Condicion, dboAnd);
end;}
end;
end.

View File

@ -37,7 +37,7 @@ type
function GetPerfil (const ID : Integer) : IBizPerfilUsuario;
procedure InicializarUserControl (AUserControl : TUserControl);
procedure DarIDTiendaVendedorUsuario(const ID_USUARIO: Integer; var AIdTienda: Integer; var ATienda: String);
function DarTiendaUsuario(const ID_Usuario: Integer; var AID_Tienda: Integer; var ATienda: String) : Boolean;
end;
@ -75,14 +75,22 @@ begin
Result := GetUsuario(ID_NULO)
end;
procedure TDataModuleUsuarios.DarIDTiendaVendedorUsuario(const ID_USUARIO: Integer; var AIdTienda: Integer; var ATienda: String);
{procedure TDataModuleUsuarios.DarIDTiendaVendedorUsuario(const ID_USUARIO: Integer; var AIdTienda: Integer; var ATienda: String);
begin
//Nos devuelve el id de la tienda a la que pertenece el vendedor que tiene asignado
//el usuario con el que ha accedido a la aplicación.
//Esto funciona mientras la relación sea 1 a 1, cuando sea 1 a n (un usuario pertenece a varios vendedores deja de funcionar)
(srvUsuarios as IsrvUsuarios).darIDTiendaVendedorUsuario(ID_USUARIO, AIdTienda, ATienda);
end;}
function TDataModuleUsuarios.DarTiendaUsuario(const ID_Usuario: Integer; var AID_Tienda: Integer; var ATienda: String) : Boolean;
begin
// Nos devuelve el id de la tienda a la que pertenece el vendedor que tiene asignado
// el usuario con el que ha accedido a la aplicación.
// Esto funciona mientras la relación sea 1 a 1, cuando sea 1 a n (un usuario pertenece a varios vendedores deja de funcionar)
end;
procedure TDataModuleUsuarios.DataModuleCreate(Sender: TObject);
begin
inherited;

View File

@ -18,7 +18,7 @@ type
function GetPerfiles : IBizPerfilUsuario;
function GetPerfil(const ID : Integer) : IBizPerfilUsuario;
procedure DarIDTiendaVendedorUsuario(const ID_USUARIO: Integer; var AIdTienda: Integer; var ATienda: String);
function DarTiendaUsuario(const ID_Usuario: Integer; var AID_Tienda: Integer; var ATienda: String) : Boolean;
end;
implementation

View File

@ -9,14 +9,16 @@ 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_USUARIOS = '{33D6AE2E-8518-4E35-9BED-D5952F0A8931}';
RID_USUARIOS_EVENTOS = '{3310F829-00D6-43CE-B41E-60922A628503}';
RID_USUARIOS_LOGON = '{E45B7C80-1F27-4D73-BCA4-CD0C2C1B7CEB}';
RID_PERMISOS = '{0000D1FE-8EC8-4BC6-A499-2F3C215EF8F9}';
RID_PERMISOSEX = '{7424313C-3027-4073-97AE-4126FD866607}';
RID_PERFILES = '{9CEB3528-1A72-48AE-AA40-D7307185B2FD}';
RID_DarTiendaUsuario = '{6E391DEF-F7EA-4159-BE3F-09458A45161B}';
RID_USUARIOS = '{5048D7CF-BE6A-4908-9359-FF38B82D059C}';
RID_USUARIOS_EVENTOS = '{AB4A1797-6311-4C66-9926-42AB459932C8}';
RID_USUARIOS_LOGON = '{51E280BB-1009-4E18-B1BF-C05318F75D97}';
RID_PERMISOS = '{14944C0A-3708-4797-9016-18030A86267F}';
RID_PERMISOSEX = '{09010D1A-F883-438B-8630-1A8814CD14F9}';
RID_PERFILES = '{68158A81-21D1-48B1-8F41-4B218AD21231}';
{ Data table names }
nme_DarTiendaUsuario = 'DarTiendaUsuario';
nme_USUARIOS = 'USUARIOS';
nme_USUARIOS_EVENTOS = 'USUARIOS_EVENTOS';
nme_USUARIOS_LOGON = 'USUARIOS_LOGON';
@ -24,6 +26,14 @@ const
nme_PERMISOSEX = 'PERMISOSEX';
nme_PERFILES = 'PERFILES';
{ DarTiendaUsuario fields }
fld_DarTiendaUsuarioID_TIENDA = 'ID_TIENDA';
fld_DarTiendaUsuarioTIENDA = 'TIENDA';
{ DarTiendaUsuario field indexes }
idx_DarTiendaUsuarioID_TIENDA = 0;
idx_DarTiendaUsuarioTIENDA = 1;
{ USUARIOS fields }
fld_USUARIOSID = 'ID';
fld_USUARIOSUSERNAME = 'USERNAME';
@ -127,9 +137,56 @@ const
idx_PERFILESTIPO = 3;
type
{ IDarTiendaUsuario }
IDarTiendaUsuario = interface(IDAStronglyTypedDataTable)
['{544B73C1-70CD-40F9-BCD6-4C83C1E2B4DD}']
{ Property getters and setters }
function GetID_TIENDAValue: Integer;
procedure SetID_TIENDAValue(const aValue: Integer);
function GetID_TIENDAIsNull: Boolean;
procedure SetID_TIENDAIsNull(const aValue: Boolean);
function GetTIENDAValue: String;
procedure SetTIENDAValue(const aValue: String);
function GetTIENDAIsNull: Boolean;
procedure SetTIENDAIsNull(const aValue: Boolean);
{ Properties }
property ID_TIENDA: Integer read GetID_TIENDAValue write SetID_TIENDAValue;
property ID_TIENDAIsNull: Boolean read GetID_TIENDAIsNull write SetID_TIENDAIsNull;
property TIENDA: String read GetTIENDAValue write SetTIENDAValue;
property TIENDAIsNull: Boolean read GetTIENDAIsNull write SetTIENDAIsNull;
end;
{ TDarTiendaUsuarioDataTableRules }
TDarTiendaUsuarioDataTableRules = class(TIntfObjectDADataTableRules, IDarTiendaUsuario)
private
protected
{ Property getters and setters }
function GetID_TIENDAValue: Integer; virtual;
procedure SetID_TIENDAValue(const aValue: Integer); virtual;
function GetID_TIENDAIsNull: Boolean; virtual;
procedure SetID_TIENDAIsNull(const aValue: Boolean); virtual;
function GetTIENDAValue: String; virtual;
procedure SetTIENDAValue(const aValue: String); virtual;
function GetTIENDAIsNull: Boolean; virtual;
procedure SetTIENDAIsNull(const aValue: Boolean); virtual;
{ Properties }
property ID_TIENDA: Integer read GetID_TIENDAValue write SetID_TIENDAValue;
property ID_TIENDAIsNull: Boolean read GetID_TIENDAIsNull write SetID_TIENDAIsNull;
property TIENDA: String read GetTIENDAValue write SetTIENDAValue;
property TIENDAIsNull: Boolean read GetTIENDAIsNull write SetTIENDAIsNull;
public
constructor Create(aDataTable: TDADataTable); override;
destructor Destroy; override;
end;
{ IUSUARIOS }
IUSUARIOS = interface(IDAStronglyTypedDataTable)
['{609EF276-E3F0-44BE-897A-B99980AB6CA6}']
['{8F61797A-69C1-46D0-A77F-9008A4A13118}']
{ Property getters and setters }
function GetIDValue: Integer;
procedure SetIDValue(const aValue: Integer);
@ -296,7 +353,7 @@ type
{ IUSUARIOS_EVENTOS }
IUSUARIOS_EVENTOS = interface(IDAStronglyTypedDataTable)
['{57EB0AE4-C30E-4AEA-BB87-FBC94F54B462}']
['{1B4FFD5F-7D38-4BEE-8289-8C0001E01899}']
{ Property getters and setters }
function GetAPLICACIONValue: String;
procedure SetAPLICACIONValue(const aValue: String);
@ -427,7 +484,7 @@ type
{ IUSUARIOS_LOGON }
IUSUARIOS_LOGON = interface(IDAStronglyTypedDataTable)
['{341AC508-0746-40B5-A092-8C1D9CDBC604}']
['{41DCA6DD-2B8F-407C-A620-FBE083802B0F}']
{ Property getters and setters }
function GetLOGONIDValue: String;
procedure SetLOGONIDValue(const aValue: String);
@ -510,7 +567,7 @@ type
{ IPERMISOS }
IPERMISOS = interface(IDAStronglyTypedDataTable)
['{323F36F2-E464-4CAB-AE8C-B72295B949A4}']
['{080033E7-82B8-4563-AB39-D114EC371228}']
{ Property getters and setters }
function GetID_USUARIOValue: Integer;
procedure SetID_USUARIOValue(const aValue: Integer);
@ -581,7 +638,7 @@ type
{ IPERMISOSEX }
IPERMISOSEX = interface(IDAStronglyTypedDataTable)
['{84605C14-E7FC-4E1E-BE35-A0EBC3E7A02F}']
['{19C86BFC-8B28-43D9-AF89-B92C9C6DB2AB}']
{ Property getters and setters }
function GetID_USUARIOValue: Integer;
procedure SetID_USUARIOValue(const aValue: Integer);
@ -664,7 +721,7 @@ type
{ IPERFILES }
IPERFILES = interface(IDAStronglyTypedDataTable)
['{A0804B85-AECF-4F9A-A3C1-85068D16D302}']
['{5578704D-1574-4705-AC6D-4D7FEEDB7E3E}']
{ Property getters and setters }
function GetIDValue: Integer;
procedure SetIDValue(const aValue: Integer);
@ -737,6 +794,60 @@ implementation
uses Variants, uROBinaryHelpers;
{ TDarTiendaUsuarioDataTableRules }
constructor TDarTiendaUsuarioDataTableRules.Create(aDataTable: TDADataTable);
begin
inherited;
end;
destructor TDarTiendaUsuarioDataTableRules.Destroy;
begin
inherited;
end;
function TDarTiendaUsuarioDataTableRules.GetID_TIENDAValue: Integer;
begin
result := DataTable.Fields[idx_DarTiendaUsuarioID_TIENDA].AsInteger;
end;
procedure TDarTiendaUsuarioDataTableRules.SetID_TIENDAValue(const aValue: Integer);
begin
DataTable.Fields[idx_DarTiendaUsuarioID_TIENDA].AsInteger := aValue;
end;
function TDarTiendaUsuarioDataTableRules.GetID_TIENDAIsNull: boolean;
begin
result := DataTable.Fields[idx_DarTiendaUsuarioID_TIENDA].IsNull;
end;
procedure TDarTiendaUsuarioDataTableRules.SetID_TIENDAIsNull(const aValue: Boolean);
begin
if aValue then
DataTable.Fields[idx_DarTiendaUsuarioID_TIENDA].AsVariant := Null;
end;
function TDarTiendaUsuarioDataTableRules.GetTIENDAValue: String;
begin
result := DataTable.Fields[idx_DarTiendaUsuarioTIENDA].AsString;
end;
procedure TDarTiendaUsuarioDataTableRules.SetTIENDAValue(const aValue: String);
begin
DataTable.Fields[idx_DarTiendaUsuarioTIENDA].AsString := aValue;
end;
function TDarTiendaUsuarioDataTableRules.GetTIENDAIsNull: boolean;
begin
result := DataTable.Fields[idx_DarTiendaUsuarioTIENDA].IsNull;
end;
procedure TDarTiendaUsuarioDataTableRules.SetTIENDAIsNull(const aValue: Boolean);
begin
if aValue then
DataTable.Fields[idx_DarTiendaUsuarioTIENDA].AsVariant := Null;
end;
{ TUSUARIOSDataTableRules }
constructor TUSUARIOSDataTableRules.Create(aDataTable: TDADataTable);
begin
@ -1636,6 +1747,7 @@ end;
initialization
RegisterDataTableRules(RID_DarTiendaUsuario, TDarTiendaUsuarioDataTableRules);
RegisterDataTableRules(RID_USUARIOS, TUSUARIOSDataTableRules);
RegisterDataTableRules(RID_USUARIOS_EVENTOS, TUSUARIOS_EVENTOSDataTableRules);
RegisterDataTableRules(RID_USUARIOS_LOGON, TUSUARIOS_LOGONDataTableRules);

View File

@ -9,17 +9,64 @@ 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_USUARIOSDelta = '{0CF1FB0D-0814-43C8-9EEA-C73F89D9EEFC}';
RID_USUARIOS_EVENTOSDelta = '{70259783-5480-4B8A-8C19-E5F3AF2ADF5E}';
RID_USUARIOS_LOGONDelta = '{664180AD-0611-4CF4-BDE0-AA2BA4AC9973}';
RID_PERMISOSDelta = '{820DAE3D-63A0-4EEB-862C-A85EDF85E804}';
RID_PERMISOSEXDelta = '{A01553FE-193F-4827-A0F2-9904D94C140F}';
RID_PERFILESDelta = '{E7F3AB12-F120-4630-8AD5-01021379CC52}';
RID_DarTiendaUsuarioDelta = '{F68B88F5-A005-4557-A9A3-7DADC274C549}';
RID_USUARIOSDelta = '{01398090-5678-4007-B853-CF463D600568}';
RID_USUARIOS_EVENTOSDelta = '{641B4130-F1C0-47D5-8BDF-6FF343CE1718}';
RID_USUARIOS_LOGONDelta = '{BAFFEAF0-C43F-43FC-B103-1E065D54C103}';
RID_PERMISOSDelta = '{D0B890F9-EEFC-4F17-ACCB-6467CE37D354}';
RID_PERMISOSEXDelta = '{FE39DC21-84C6-4B6E-987C-1498ACA90759}';
RID_PERFILESDelta = '{E8793C8F-9FEE-4129-A03B-6423C4724DC2}';
type
{ IDarTiendaUsuarioDelta }
IDarTiendaUsuarioDelta = interface(IDarTiendaUsuario)
['{F68B88F5-A005-4557-A9A3-7DADC274C549}']
{ Property getters and setters }
function GetOldID_TIENDAValue : Integer;
function GetOldTIENDAValue : String;
{ Properties }
property OldID_TIENDA : Integer read GetOldID_TIENDAValue;
property OldTIENDA : String read GetOldTIENDAValue;
end;
{ TDarTiendaUsuarioBusinessProcessorRules }
TDarTiendaUsuarioBusinessProcessorRules = class(TDABusinessProcessorRules, IDarTiendaUsuario, IDarTiendaUsuarioDelta)
private
protected
{ Property getters and setters }
function GetID_TIENDAValue: Integer; virtual;
function GetID_TIENDAIsNull: Boolean; virtual;
function GetOldID_TIENDAValue: Integer; virtual;
function GetOldID_TIENDAIsNull: Boolean; virtual;
procedure SetID_TIENDAValue(const aValue: Integer); virtual;
procedure SetID_TIENDAIsNull(const aValue: Boolean); virtual;
function GetTIENDAValue: String; virtual;
function GetTIENDAIsNull: Boolean; virtual;
function GetOldTIENDAValue: String; virtual;
function GetOldTIENDAIsNull: Boolean; virtual;
procedure SetTIENDAValue(const aValue: String); virtual;
procedure SetTIENDAIsNull(const aValue: Boolean); virtual;
{ Properties }
property ID_TIENDA : Integer read GetID_TIENDAValue write SetID_TIENDAValue;
property ID_TIENDAIsNull : Boolean read GetID_TIENDAIsNull write SetID_TIENDAIsNull;
property OldID_TIENDA : Integer read GetOldID_TIENDAValue;
property OldID_TIENDAIsNull : Boolean read GetOldID_TIENDAIsNull;
property TIENDA : String read GetTIENDAValue write SetTIENDAValue;
property TIENDAIsNull : Boolean read GetTIENDAIsNull write SetTIENDAIsNull;
property OldTIENDA : String read GetOldTIENDAValue;
property OldTIENDAIsNull : Boolean read GetOldTIENDAIsNull;
public
constructor Create(aBusinessProcessor: TDABusinessProcessor); override;
destructor Destroy; override;
end;
{ IUSUARIOSDelta }
IUSUARIOSDelta = interface(IUSUARIOS)
['{0CF1FB0D-0814-43C8-9EEA-C73F89D9EEFC}']
['{01398090-5678-4007-B853-CF463D600568}']
{ Property getters and setters }
function GetOldIDValue : Integer;
function GetOldUSERNAMEValue : String;
@ -185,7 +232,7 @@ type
{ IUSUARIOS_EVENTOSDelta }
IUSUARIOS_EVENTOSDelta = interface(IUSUARIOS_EVENTOS)
['{70259783-5480-4B8A-8C19-E5F3AF2ADF5E}']
['{641B4130-F1C0-47D5-8BDF-6FF343CE1718}']
{ Property getters and setters }
function GetOldAPLICACIONValue : String;
function GetOldID_USUARIOValue : Integer;
@ -316,7 +363,7 @@ type
{ IUSUARIOS_LOGONDelta }
IUSUARIOS_LOGONDelta = interface(IUSUARIOS_LOGON)
['{664180AD-0611-4CF4-BDE0-AA2BA4AC9973}']
['{BAFFEAF0-C43F-43FC-B103-1E065D54C103}']
{ Property getters and setters }
function GetOldLOGONIDValue : String;
function GetOldID_USUARIOValue : Integer;
@ -398,7 +445,7 @@ type
{ IPERMISOSDelta }
IPERMISOSDelta = interface(IPERMISOS)
['{820DAE3D-63A0-4EEB-862C-A85EDF85E804}']
['{D0B890F9-EEFC-4F17-ACCB-6467CE37D354}']
{ Property getters and setters }
function GetOldID_USUARIOValue : Integer;
function GetOldMODULOValue : String;
@ -468,7 +515,7 @@ type
{ IPERMISOSEXDelta }
IPERMISOSEXDelta = interface(IPERMISOSEX)
['{A01553FE-193F-4827-A0F2-9904D94C140F}']
['{FE39DC21-84C6-4B6E-987C-1498ACA90759}']
{ Property getters and setters }
function GetOldID_USUARIOValue : Integer;
function GetOldMODULOValue : String;
@ -550,7 +597,7 @@ type
{ IPERFILESDelta }
IPERFILESDelta = interface(IPERFILES)
['{E7F3AB12-F120-4630-8AD5-01021379CC52}']
['{E8793C8F-9FEE-4129-A03B-6423C4724DC2}']
{ Property getters and setters }
function GetOldIDValue : Integer;
function GetOldUSERNAMEValue : String;
@ -623,6 +670,80 @@ implementation
uses
Variants, uROBinaryHelpers, uDAInterfaces;
{ TDarTiendaUsuarioBusinessProcessorRules }
constructor TDarTiendaUsuarioBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor);
begin
inherited;
end;
destructor TDarTiendaUsuarioBusinessProcessorRules.Destroy;
begin
inherited;
end;
function TDarTiendaUsuarioBusinessProcessorRules.GetID_TIENDAValue: Integer;
begin
result := BusinessProcessor.CurrentChange.NewValueByName[fld_DarTiendaUsuarioID_TIENDA];
end;
function TDarTiendaUsuarioBusinessProcessorRules.GetID_TIENDAIsNull: Boolean;
begin
result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_DarTiendaUsuarioID_TIENDA]);
end;
function TDarTiendaUsuarioBusinessProcessorRules.GetOldID_TIENDAValue: Integer;
begin
result := BusinessProcessor.CurrentChange.OldValueByName[fld_DarTiendaUsuarioID_TIENDA];
end;
function TDarTiendaUsuarioBusinessProcessorRules.GetOldID_TIENDAIsNull: Boolean;
begin
result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_DarTiendaUsuarioID_TIENDA]);
end;
procedure TDarTiendaUsuarioBusinessProcessorRules.SetID_TIENDAValue(const aValue: Integer);
begin
BusinessProcessor.CurrentChange.NewValueByName[fld_DarTiendaUsuarioID_TIENDA] := aValue;
end;
procedure TDarTiendaUsuarioBusinessProcessorRules.SetID_TIENDAIsNull(const aValue: Boolean);
begin
if aValue then
BusinessProcessor.CurrentChange.NewValueByName[fld_DarTiendaUsuarioID_TIENDA] := Null;
end;
function TDarTiendaUsuarioBusinessProcessorRules.GetTIENDAValue: String;
begin
result := BusinessProcessor.CurrentChange.NewValueByName[fld_DarTiendaUsuarioTIENDA];
end;
function TDarTiendaUsuarioBusinessProcessorRules.GetTIENDAIsNull: Boolean;
begin
result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_DarTiendaUsuarioTIENDA]);
end;
function TDarTiendaUsuarioBusinessProcessorRules.GetOldTIENDAValue: String;
begin
result := BusinessProcessor.CurrentChange.OldValueByName[fld_DarTiendaUsuarioTIENDA];
end;
function TDarTiendaUsuarioBusinessProcessorRules.GetOldTIENDAIsNull: Boolean;
begin
result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_DarTiendaUsuarioTIENDA]);
end;
procedure TDarTiendaUsuarioBusinessProcessorRules.SetTIENDAValue(const aValue: String);
begin
BusinessProcessor.CurrentChange.NewValueByName[fld_DarTiendaUsuarioTIENDA] := aValue;
end;
procedure TDarTiendaUsuarioBusinessProcessorRules.SetTIENDAIsNull(const aValue: Boolean);
begin
if aValue then
BusinessProcessor.CurrentChange.NewValueByName[fld_DarTiendaUsuarioTIENDA] := Null;
end;
{ TUSUARIOSBusinessProcessorRules }
constructor TUSUARIOSBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor);
begin
@ -1913,6 +2034,7 @@ end;
initialization
RegisterBusinessProcessorRules(RID_DarTiendaUsuarioDelta, TDarTiendaUsuarioBusinessProcessorRules);
RegisterBusinessProcessorRules(RID_USUARIOSDelta, TUSUARIOSBusinessProcessorRules);
RegisterBusinessProcessorRules(RID_USUARIOS_EVENTOSDelta, TUSUARIOS_EVENTOSBusinessProcessorRules);
RegisterBusinessProcessorRules(RID_USUARIOS_LOGONDelta, TUSUARIOS_LOGONBusinessProcessorRules);

View File

@ -15,11 +15,12 @@ type
IBizUsuario = interface (IUSUARIOS)
['{1DB69F36-969C-4078-B862-6D697670BCFD}']
function EsNuevo : Boolean;
function EsAdministrador : Boolean;
end;
IBizPerfilUsuario = interface (IPERFILES)
['{D14DF996-A8CD-400A-BF74-C8B660199C74}']
function EsNuevo : Boolean;
function EsNuevo : Boolean;
end;
@ -28,6 +29,7 @@ type
procedure OnNewRecord(Sender: TDADataTable); override;
public
function EsNuevo : Boolean;
function EsAdministrador : Boolean;
procedure IniciarValoresUsuarioNuevo;
end;
@ -45,6 +47,11 @@ implementation
{ TBizUsuario }
function TBizUsuario.EsAdministrador: Boolean;
begin
Result := (USERNAME = 'admin');
end;
function TBizUsuario.EsNuevo: Boolean;
begin
Result := (ID < 0);

View File

@ -118,11 +118,17 @@ object srvUsuarios: TsrvUsuarios
Diagrams = Diagrams
Datasets = <
item
IsPublic = False
Params = <
item
Name = 'ID_USUARIO'
Value = ''
ParamType = daptInput
DataType = datInteger
Value = '6'
end
item
Name = 'ID_EMPRESA'
DataType = datInteger
Value = '1'
end>
Statements = <
item
@ -132,9 +138,9 @@ object srvUsuarios: TsrvUsuarios
TargetTable = 'V_VENDEDORES'
Name = 'IBX'
SQL =
'select ID_TIENDA, TIENDA'#10'from V_VENDEDORES'#10'left join USUARIOS on' +
' (USUARIOS.ID = V_VENDEDORES.ID_USUARIO)'#10'where USUARIOS.ID = :ID' +
'_USUARIO'#10
'select ID_TIENDA, TIENDA'#10' from V_VENDEDORES'#10' where V_VENDEDORES' +
'.ID = :ID_USUARIO and'#10' V_VENDEDORES.ID_EMPRESA = :ID_EMPRE' +
'SA'#10
StatementType = stSQL
ColumnMappings = <
item
@ -146,7 +152,7 @@ object srvUsuarios: TsrvUsuarios
TableField = 'TIENDA'
end>
end>
Name = 'darTiendaVendedorUsuario'
Name = 'DarTiendaUsuario'
Fields = <
item
Name = 'ID_TIENDA'

View File

@ -29,9 +29,6 @@ type
procedure DataAbstractServiceBeforeAcquireConnection(aSender: TObject;
var aConnectionName: string);
procedure DataAbstractServiceCreate(Sender: TObject);
protected
procedure DarIDTiendaVendedorUsuario(const ID_USUARIO: Integer; var AIdTienda: Integer; var ATienda: String);
end;
implementation
@ -40,53 +37,12 @@ implementation
uses
{Generated:} FactuGES_Invk, uROClasses, uDAInterfaces, uDataModuleServer;
const
CTE_ID_TODAS = 0;
CTE_TODAS = 'Todas';
procedure Create_srvUsuarios(out anInstance : IUnknown);
begin
anInstance := TsrvUsuarios.Create(nil);
end;
{ srvUsuarios }
procedure TsrvUsuarios.DarIDTiendaVendedorUsuario(const ID_USUARIO: Integer; var AIdTienda: Integer; var ATienda: String);
var
AConn : IDAConnection;
dsData: IDADataset;
begin
AConn := dmServer.ConnectionManager.NewConnection(dmServer.ConnectionManager.GetDefaultConnectionName);
try
try
dsData := schUsuarios.NewDataset(AConn, 'darTiendaVendedorUsuario', ['ID_USUARIO'], [ID_USUARIO]);
dsData.Active := True;
case dsData.RecordCount of
0: begin
AIdTienda := CTE_ID_TODAS;
ATienda := CTE_TODAS;
end;
1: begin
AIdTienda := dsData.FieldByName('ID_TIENDA').AsInteger;
ATienda := dsData.FieldByName('TIENDA').AsString;
end
else
RaiseError('Error al buscar tienda por defecto para el usuario');
end;
AConn.CommitTransaction;
except
RaiseError('Error al buscar ejercicio activo de la empresa');
AConn.RollbackTransaction;
end;
finally
dsData := NIL;
end;
end;
procedure TsrvUsuarios.DataAbstractServiceBeforeAcquireConnection(
aSender: TObject; var aConnectionName: string);

View File

@ -25,7 +25,7 @@ object fEditorLogin: TfEditorLogin
Width = 39
Height = 13
Caption = 'Usuario:'
Transparent = False
Transparent = True
end
object Label4: TLabel
Left = 24
@ -33,7 +33,7 @@ object fEditorLogin: TfEditorLogin
Width = 57
Height = 13
Caption = 'Contrase'#241'a:'
Transparent = False
Transparent = True
end
object Label1: TLabel
Left = 16

View File

@ -4,7 +4,8 @@ interface
uses
SysUtils, Classes, Forms, uBizUsuarios, uBizEmpresas, uBizEjercicios, uControllerBase,
uEmpresasController, uUsuariosController, uHostManager, uConfiguracionController;
uEmpresasController, uUsuariosController, uHostManager, uConfiguracionController,
uBizEmpresasTiendas;
type
TDoLoadModulesEvent = procedure;
@ -30,11 +31,12 @@ type
function GetAppVersion: String;
function GetUsuarioActivo: IBizUsuario;
function GetEmpresaActiva: IBizEmpresa;
function GetTiendaActiva: IBizEmpresaTienda;
function GetEjercicioActivo: IBizEjercicio;
function GetModuleManager : THostManager;
function GetTerminated: Boolean;
function GetConfiguracionController : IConfiguracionController;
function GetLoadModulesEvent : TDoLoadModulesEvent;
procedure SetLoadModulesEvent (ALoadModulesEvent : TDoLoadModulesEvent);
@ -45,6 +47,7 @@ type
procedure SetAppSplashForm (AAppSplashForm : IAppSplashForm);
procedure CambiarEmpresa(const AIDEmpresa : Integer);
procedure CambiarEmpresaPorDefecto;
procedure CambiarEjercicio(const AIDEmpresa : Integer);
procedure ShowSplashForm;
@ -60,6 +63,7 @@ type
property AppFullName : String read GetAppFullName;
property MainForm : TCustomForm read GetMainForm;
property EmpresaActiva : IBizEmpresa read GetEmpresaActiva;
property TiendaActiva : IBizEmpresaTienda read GetTiendaActiva;
property EjercicioActivo : IBizEjercicio read GetEjercicioActivo;
property UsuarioActivo : IBizUsuario read GetUsuarioActivo;
property EmpresasController : IEmpresasController read GetEmpresasController;
@ -71,12 +75,12 @@ type
property Terminated : Boolean read GetTerminated;
property Configuracion : IConfiguracionController read GetConfiguracionController;
function getVAR_IDTIENDA : Integer;
{ function getVAR_IDTIENDA : Integer;
procedure setVAR_IDTIENDA (AValue : Integer);
function getVAR_TIENDA : String;
procedure setVAR_TIENDA (AValue : String);
property VAR_IDTIENDA: Integer read getVAR_IDTIENDA write SetVAR_IDTIENDA;
property VAR_TIENDA: String read getVAR_TIENDA write setVAR_TIENDA;
property VAR_TIENDA: String read getVAR_TIENDA write setVAR_TIENDA;}
procedure ShowCapado;
@ -91,6 +95,7 @@ type
FEmpresasController : IEmpresasController;
FUsuariosController: IUsuariosController;
FEmpresaActiva: IBizEmpresa;
FTiendaActiva: IBizEmpresaTienda;
FEjercicioActivo: IBizEjercicio;
FConfiguracionController : IConfiguracionController;
@ -109,6 +114,7 @@ type
function GetAppVersion: String;
function GetUsuarioActivo: IBizUsuario;
function GetEmpresaActiva: IBizEmpresa;
function GetTiendaActiva: IBizEmpresaTienda;
function GetEjercicioActivo: IBizEjercicio;
function GetModuleManager : THostManager;
function GetTerminated: Boolean;
@ -125,8 +131,7 @@ type
procedure AfterLoadModule(Sender: TObject; AModuleInfo: TModuleInfo);
procedure RegisterModule(AModuleInfo : TModuleInfo);
procedure PonerTiendaPorDefecto;
procedure BuscarTiendaPorDefecto;
protected
procedure DoMainForm;
@ -146,6 +151,7 @@ type
procedure Configurar;
procedure CambiarEmpresa(const AIDEmpresa : Integer);
procedure CambiarEmpresaPorDefecto;
procedure CambiarEjercicio(const AIDEmpresa : Integer);
property AppVersion : String read GetAppVersion;
@ -153,6 +159,7 @@ type
property AppFullName : String read GetAppFullName;
property MainForm : TCustomForm read GetMainForm;
property EmpresaActiva : IBizEmpresa read GetEmpresaActiva;
property TiendaActiva : IBizEmpresaTienda read GetTiendaActiva;
property EjercicioActivo : IBizEjercicio read GetEjercicioActivo;
property AppSplashForm : IAppSplashForm read GetAppSplashForm write SetAppSplashForm;
property UsuarioActivo : IBizUsuario read GetUsuarioActivo;
@ -163,7 +170,7 @@ type
property DoLoadModulesEvent : TDoLoadModulesEvent read GetLoadModulesEvent write SetLoadModulesEvent;
property Terminated : Boolean read GetTerminated;
property Configuracion : IConfiguracionController read GetConfiguracionController;
function getVAR_IDTIENDA : Integer;
procedure setVAR_IDTIENDA (AValue : Integer);
function getVAR_TIENDA : String;
@ -176,7 +183,7 @@ type
end;
var
AppFactuGES : IAppFactuGES = nil;
AppFactuGES : IAppFactuGES;
implementation
@ -217,6 +224,22 @@ begin
//Establece el ejercicio activo de la empresa activa
CambiarEjercicio(AIDEmpresa);
BuscarTiendaPorDefecto;
end;
procedure TAppFactuGES.CambiarEmpresaPorDefecto;
var
AEmpresas : IBizEmpresa;
begin
AEmpresas := FEmpresasController.BuscarTodos;
try
AEmpresas.DataTable.Active := True;
if AEmpresas.DataTable.RecordCount > 0 then
CambiarEmpresa(AEmpresas.ID);
AEmpresas.DataTable.Active := False;
finally
AEmpresas := NIL;
end;
end;
procedure TAppFactuGES.CargarModulos;
@ -230,19 +253,18 @@ end;
procedure TAppFactuGES.Configurar;
begin
FConfiguracionController.ConfigurarAplicacion;
FConfiguracionController.AplicarConfiguracion;
end;
procedure TAppFactuGES.PonerTiendaPorDefecto;
procedure TAppFactuGES.BuscarTiendaPorDefecto;
var
AIdTienda: Integer;
ATienda: String;
AIDTienda : IBizEmpresaTienda;
begin
//Nos devuelve el id de la tienda a la que pertenece el vendedor que tiene asignado
//el usuario con el que ha accedido a la aplicación.
//Esto funciona mientras la relación sea 1 a 1, cuando sea 1 a n (un usuario pertenece a varios vendedores deja de funcionar)
UsuariosController.DarIDTiendaVendedorUsuario(UsuarioActivo.ID, AIdTienda, ATienda);
VAR_IDTIENDA := AIdTienda;
VAR_TIENDA := ATienda;
FTiendaActiva := EmpresasController.DarTiendaUsuario(EmpresaActiva, UsuarioActivo.ID);
FTiendaActiva.DataTable.Open;
end;
constructor TAppFactuGES.Create;
@ -333,7 +355,7 @@ end;
function TAppFactuGES.GetEmpresaActiva: IBizEmpresa;
begin
Result := FEmpresaActiva;
Result := FEmpresaActiva
end;
function TAppFactuGES.GetEmpresasController: IEmpresasController;
@ -359,6 +381,11 @@ begin
Result := FTerminated;
end;
function TAppFactuGES.GetTiendaActiva: IBizEmpresaTienda;
begin
Result := FTiendaActiva;
end;
function TAppFactuGES.GetUsuarioActivo: IBizUsuario;
begin
Result := UsuariosController.CurrentUser;
@ -384,9 +411,7 @@ end;
procedure TAppFactuGES.HideSplashForm;
begin
if not Assigned(FAppSplashForm) then
raise Exception.Create('AppSplashForm no asignado (HideSplashForm)');
if Assigned(FAppSplashForm) then
FAppSplashForm.Hide;
end;
@ -398,19 +423,20 @@ end;
procedure TAppFactuGES.RegisterModule(AModuleInfo: TModuleInfo);
begin
AppSplashForm.Mensaje := 'Cargando ''' + AModuleInfo.Module.ModuleName + '''...';
if Assigned(FAppSplashForm) then
FAppSplashForm.Mensaje := 'Cargando ''' + AModuleInfo.Module.ModuleName + '''...';
end;
procedure TAppFactuGES.Run;
begin
FConfiguracionController.AplicarConfiguracion;
if UsuariosController.StartLogin then
begin
ShowHourglassCursor;
try
//ShowSplashForm;
ShowSplashForm;
CargarModulos;
DoMainForm;
PonerTiendaPorDefecto;
finally
HideHourglassCursor;
HideSplashForm;
@ -454,11 +480,11 @@ end;
procedure TAppFactuGES.ShowSplashForm;
begin
if not Assigned(FAppSplashForm) then
raise Exception.Create('AppSplashForm no asignado (ShowSplashForm)');
FAppSplashForm.Show;
FAppSplashForm.Update;
if Assigned(FAppSplashForm) then
begin
FAppSplashForm.Show;
FAppSplashForm.Update;
end;
end;
procedure TAppFactuGES.Terminate;
@ -474,13 +500,15 @@ end;
initialization
// Pongo esto aquí por ahora
AppFactuGES := NIL;
uUsuariosViewRegister.RegisterViews;
uEmpresasViewRegister.RegisterViews;
finalization
// Pongo esto aquí por ahora
AppFactuGES := NIL;
uUsuariosViewRegister.UnregisterViews;
uEmpresasViewRegister.UnregisterViews;

View File

@ -10,12 +10,14 @@ uses
uMenuUtils in 'Utiles\uMenuUtils.pas',
uSplash in 'uSplash.pas' {SplashScreen},
uAcercaDe in 'uAcercaDe.pas',
uNavPaneController in 'uNavPaneController.pas',
udxNavPaneController in 'udxNavPaneController.pas',
uNavPaneUtils in 'Utiles\uNavPaneUtils.pas',
uMainMenuController in 'uMainMenuController.pas',
uClienteUtils in 'Utiles\uClienteUtils.pas',
uBootStrap in 'uBootStrap.pas',
VCLFlickerReduce in 'Utiles\VCLFlickerReduce.pas';
VCLFlickerReduce in 'Utiles\VCLFlickerReduce.pas',
uPantallaPrincipal2 in 'uPantallaPrincipal2.pas' {fPantallaPrincipal2},
uNavPaneController in 'uNavPaneController.pas';
{$R *.res}

View File

@ -66,8 +66,7 @@
<Excluded_Packages Name="C:\Documents and Settings\All Users\Documentos\RAD Studio\5.0\Bpl\dxPSCoreD10.bpl">ExpressPrinting System by Developer Express Inc.</Excluded_Packages>
<Excluded_Packages Name="C:\Documents and Settings\All Users\Documentos\RAD Studio\5.0\Bpl\PluginSDK_D10R.bpl">PluginSDK for Delphi 10 (Runtime)</Excluded_Packages>
<Excluded_Packages Name="C:\Documents and Settings\All Users\Documentos\RAD Studio\5.0\Bpl\DataAbstract_SQLiteDriver_D11.bpl">RemObjects Data Abstract - SQLite Driver</Excluded_Packages>
<Excluded_Packages Name="$(BDS)\bin\dcloffice2k100.bpl">Microsoft Office 2000 Sample Automation Server Wrapper Components</Excluded_Packages>
<Excluded_Packages Name="$(BDS)\bin\dclofficexp100.bpl">Microsoft Office XP Sample Automation Server Wrapper Components</Excluded_Packages>
</Excluded_Packages><Source><Source Name="MainSource">FactuGES.dpr</Source></Source></Delphi.Personality><ModelSupport>False</ModelSupport></BorlandProject></BorlandProject>
@ -79,11 +78,15 @@
</DelphiCompile>
<DCCReference Include="uAcercaDe.pas" />
<DCCReference Include="uBootStrap.pas" />
<DCCReference Include="udxNavPaneController.pas" />
<DCCReference Include="uMainMenuController.pas" />
<DCCReference Include="uNavPaneController.pas" />
<DCCReference Include="uPantallaPrincipal.pas">
<Form>fPantallaPrincipal</Form>
</DCCReference>
<DCCReference Include="uPantallaPrincipal2.pas">
<Form>fPantallaPrincipal2</Form>
</DCCReference>
<DCCReference Include="uSplash.pas">
<Form>SplashScreen</Form>
</DCCReference>
@ -91,6 +94,7 @@
<DCCReference Include="Utiles\uMenuUtils.pas" />
<DCCReference Include="Utiles\uNavPaneUtils.pas" />
<DCCReference Include="Utiles\VCLFlickerReduce.pas" />
<None Include="..\FactuGES.inc" />
</ItemGroup>
</Project>
<!-- EurekaLog First Line

View File

@ -1086,7 +1086,7 @@ object fAcercaDe: TfAcercaDe
BevelInner = bvNone
BevelOuter = bvNone
BorderStyle = bsNone
ParentColor = True
Color = clBtnFace
TabOrder = 2
end
end

View File

@ -39,7 +39,7 @@ begin
LoadModule('RecibosCliente_plugin.bpl');
LoadModule('FacturasCliente_plugin.bpl');
LoadModule('Comisiones_plugin.bpl');
LoadModule('Comisiones_plugin.bpl');
{$IFDEF PEDIDOSPROVEEDOR}
LoadModule('PedidosProveedor_plugin.bpl');
@ -78,7 +78,7 @@ begin
AppFactuGES := TAppFactuGES.Create;
with AppFactuGES do
begin
AppSplashForm := TAppSplashForm.Create;
//AppSplashForm := TAppSplashForm.Create;
DoMainFormEvent := DoAppMainForm;
DoLoadModulesEvent := DoAppLoadModules;
end;

View File

@ -85,6 +85,7 @@ object fPantallaPrincipal: TfPantallaPrincipal
NavPanelHotTrackFont.Style = []
SmallImages = ModulesSmallImageList
OnChange = JvNavigationPaneChange
ExplicitTop = 4
object pagInicio: TJvNavPanelPage
Left = 0
Top = 0
@ -111,7 +112,6 @@ object fPantallaPrincipal: TfPantallaPrincipal
Top = 29
Width = 137
Height = 52
Margins.Bottom = 0
AutoSize = False
Caption = 'Para empezar a trabajar, elija una empresa en la lista de abajo'
Font.Charset = DEFAULT_CHARSET
@ -171,7 +171,6 @@ object fPantallaPrincipal: TfPantallaPrincipal
Top = 8
Width = 210
Height = 54
Margins.Bottom = 0
Caption = 'Bienvenido'
Font.Charset = DEFAULT_CHARSET
Font.Color = clHighlight
@ -186,7 +185,6 @@ object fPantallaPrincipal: TfPantallaPrincipal
Top = 52
Width = 247
Height = 22
Margins.Bottom = 0
Caption = 'Administraci'#243'n de puntos de venta'
Font.Charset = DEFAULT_CHARSET
Font.Color = clGray

View File

@ -179,8 +179,6 @@ begin
JvNavigationPane.StyleManager := dmBase.StyleManager;
dmBase.OnThemeChange := Self.OnThemeChange;
Self.OnThemeChange(Self); // Forzar el refresco de los colores del tema activo
actLogin.Execute;
end;
procedure TfPantallaPrincipal.FormShow(Sender: TObject);
@ -215,6 +213,11 @@ begin
TBXStatusBar1.Panels[1].Caption := AppFactuGES.UsuarioActivo.UserName
else
TBXStatusBar1.Panels[1].Caption := '';
if Assigned(AppFactuGES.TiendaActiva) then
TBXStatusBar1.Panels[2].Caption := AppFactuGES.TiendaActiva.NOMBRE
else
TBXStatusBar1.Panels[2].Caption := 'Sin tienda por defecto';
end;
procedure TfPantallaPrincipal.ReleaseEmbedded;
@ -267,7 +270,6 @@ begin
LockWindowUpdate(Handle);
try
Color := dmBase.StyleManager.Colors.DividerColorTo;
//pnlBorde.Color := dmBase.StyleManager.Colors.FrameColor;
pnlBorde.BoundColor := dmBase.StyleManager.Colors.FrameColor;
with StyleManagerButtons do
begin
@ -291,8 +293,6 @@ begin
Colors.ButtonSelectedColorTo := dmBase.StyleManager.Colors.ButtonSelectedColorTo;
end;
lblBienvenido.Font.Color := JvNavigationPane.Colors.ButtonColorTo;
{ JvGradient1.StartColor := JvNavigationPane.Colors.ButtonColorFrom;
JvGradient1.EndColor := JvNavigationPane.Colors.ButtonColorTo;}
finally
LockWindowUpdate(0);
Refresh;

View File

@ -190,8 +190,8 @@ begin
SITUACION := SITUACION_ALBARAN_PENDIENTE;
REFERENCIA := '';
TIPO := CTE_TIPO_ALBARAN;
ID_TIENDA := AppFactuGES.VAR_IDTIENDA;
TIENDA := AppFactuGES.VAR_TIENDA;
ID_TIENDA := AppFactuGES.TiendaActiva.ID;
TIENDA := AppFactuGES.TiendaActiva.NOMBRE;
//TEMPORAL ALMACÉN PUESTO A CAPÓN Y PROVISIONAL
ID_ALMACEN := 1;

View File

@ -183,8 +183,8 @@ begin
FECHA_ALBARAN := DateOf(Date);
INCIDENCIAS_ACTIVAS := 0;
TIPO := CTE_TIPO_ALBARAN;
ID_TIENDA := AppFactuGES.VAR_IDTIENDA;
TIENDA := AppFactuGES.VAR_TIENDA;
ID_TIENDA := AppFactuGES.TiendaActiva.ID;
TIENDA := AppFactuGES.TiendaActiva.NOMBRE;
// OJOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
//TEMPORAL ALMACÉN PUESTO A CAPÓN Y PROVISIONAL

View File

@ -92,6 +92,7 @@ begin
PRECIO_NETO := 0;
COMISIONABLE := 1;
ELIMINADO := 0;
INVENTARIABLE := 1;
USUARIO := AppFactuGES.UsuarioActivo.UserName;
end;
@ -99,7 +100,6 @@ procedure TBizArticulo.OnNewRecord(Sender: TDADataTable);
begin
inherited;
ID := GetRecNo; // -1, -2, -3...
INVENTARIABLE := 1;
IniciarValoresArticuloNuevo;
end;

View File

@ -447,14 +447,13 @@ end;
procedure TBizContacto.IniciarValoresContactoNuevo;
begin
USUARIO := AppFactuGES.UsuarioActivo.UserName;
ID_TIENDA := AppFactuGES.VAR_IDTIENDA;
TIENDA := AppFactuGES.VAR_TIENDA;
ID_TIENDA := AppFactuGES.TiendaActiva.ID;
TIENDA := AppFactuGES.TiendaActiva.NOMBRE;
end;
procedure TBizContacto.OnNewRecord(Sender: TDADataTable);
begin
inherited;
// ID := GetRecNo; // -1, -2, -3...
IniciarValoresContactoNuevo;
end;

View File

@ -14,6 +14,41 @@ object srvContactos: TsrvContactos
DataDictionary = DataDictionary
Diagrams = Diagrams
Datasets = <
item
IsPublic = False
Params = <
item
Name = 'ID_USUARIO'
Value = ''
end
item
Name = 'ID_EMPRESA'
Value = ''
end>
Statements = <
item
Connection = 'IBX'
ConnectionType = 'Interbase'
Default = True
Name = 'IBX'
SQL =
'select ID_TIENDA'#10' from V_VENDEDORES'#10' where V_VENDEDORES.ID_USUA' +
'RIO = :ID_USUARIO and'#10' V_VENDEDORES.ID_EMPRESA = :ID_EMPRE' +
'SA'#10
StatementType = stSQL
ColumnMappings = <
item
DatasetField = 'ID_TIENDA'
TableField = 'ID_TIENDA'
end>
end>
Name = 'DarTiendaDeUsuario'
Fields = <
item
Name = 'ID_TIENDA'
DataType = datInteger
end>
end
item
Params = <>
Statements = <

View File

@ -41,6 +41,7 @@ type
var aConnectionName: string);
public
function GenerateEtiquetasReport(const ContactosID: String): Binary;
function DarTiendaDeUsuario(const ID_Empresa: Integer; const ID_Usuario: Integer): Integer;
end;
implementation
@ -88,6 +89,23 @@ begin
bpProveedores.BusinessRulesID := BIZ_SERVER_PROVEEDOR;
end;
function TsrvContactos.DarTiendaDeUsuario(const ID_Empresa: Integer;
const ID_Usuario: Integer): Integer;
var
ADataSet : IDADataset;
begin
try
ADataSet := schContactos.NewDataset(Connection, 'DarTiendaDeUsuario', ['ID_EMPRESA', 'ID_USUARIO'], [ID_Empresa, ID_Usuario]);
ADataSet.Open;
if ADataSet.Dataset.RecordCount > 0 then
Result := ADataSet.Dataset.Fields[0].AsInteger
else
Result := 0; // 0 -> Todas las tiendas
finally
ADataSet.Close;
end;
end;
procedure TsrvContactos.DataAbstractServiceBeforeAcquireConnection(
aSender: TObject; var aConnectionName: string);
begin

View File

@ -256,8 +256,8 @@ begin
IVA := AppFactuGES.EmpresaActiva.IVA;
RE := 0;
SITUACION := CTE_PENDIENTE;
ID_TIENDA := AppFactuGES.VAR_IDTIENDA;
TIENDA := AppFactuGES.VAR_TIENDA;
ID_TIENDA := AppFactuGES.TiendaActiva.ID;
TIENDA := AppFactuGES.TiendaActiva.NOMBRE;
IGNORAR_CONTABILIDAD := 0;
end;

View File

@ -245,8 +245,8 @@ begin
IVA := AppFactuGES.EmpresaActiva.IVA;
RE := 0;
SITUACION := CTE_PENDIENTE;
ID_TIENDA := AppFactuGES.VAR_IDTIENDA;
TIENDA := AppFactuGES.VAR_TIENDA;
ID_TIENDA := AppFactuGES.TiendaActiva.ID;
TIENDA := AppFactuGES.TiendaActiva.NOMBRE;
IGNORAR_CONTABILIDAD := 0;
end;

View File

@ -206,8 +206,8 @@ begin
// ALMACÉN PUESTO A CAPÓN Y PROVISIONAL
ID_ALMACEN := 1;
ID_TIENDA := CTE_ID_TODAS;
TIENDA := CTE_TODAS;
ID_TIENDA := AppFactuGES.TiendaActiva.ID;
TIENDA := AppFactuGES.TiendaActiva.NOMBRE;
end;
procedure TBizPedidoProveedor.IVAOnChange(Sender: TDACustomField);

View File

@ -200,8 +200,8 @@ begin
// INCIDENCIAS := NIL;
REFERENCIA := '';
SITUACION := SITUACION_PRESUPUESTO_PENDIENTE;
ID_TIENDA := AppFactuGES.VAR_IDTIENDA;
TIENDA := AppFactuGES.VAR_TIENDA;
ID_TIENDA := AppFactuGES.TiendaActiva.ID;
TIENDA := AppFactuGES.TiendaActiva.NOMBRE;
// ID_VENDEDOR := AppFactuGES.UsuarioActivo.ID_EMPLEADO;

View File

@ -245,8 +245,8 @@ begin
ID_EMPRESA := AppFactuGES.EmpresaActiva.ID;
USUARIO := AppFactuGES.UsuarioActivo.UserName;
SITUACION := CTE_PENDIENTE;
ID_TIENDA := AppFactuGES.VAR_IDTIENDA;
TIENDA := AppFactuGES.VAR_TIENDA;
ID_TIENDA := AppFactuGES.TiendaActiva.ID;
TIENDA := AppFactuGES.TiendaActiva.NOMBRE;
end;
procedure TBizRecibosCliente.OnNewRecord(Sender: TDADataTable);

View File

@ -245,8 +245,8 @@ begin
OTROS_GASTOS := 0;
ID_EMPRESA := AppFactuGES.EmpresaActiva.ID;
USUARIO := AppFactuGES.UsuarioActivo.UserName;
ID_TIENDA := AppFactuGES.VAR_IDTIENDA;
TIENDA := AppFactuGES.VAR_TIENDA;
ID_TIENDA := AppFactuGES.TiendaActiva.ID;
TIENDA := AppFactuGES.TiendaActiva.NOMBRE;
end;
procedure TBizRecibosProveedor.OnNewRecord(Sender: TDADataTable);

View File

@ -17,6 +17,16 @@
</Parameter>
</Parameters>
</Operation>
<Operation Name="DarTiendaDeUsuario" UID="{B5D87F60-DA79-4720-B04A-06FFCBACD645}">
<Parameters>
<Parameter Name="Result" DataType="Integer" Flag="Result">
</Parameter>
<Parameter Name="ID_Empresa" DataType="Integer" Flag="In" >
</Parameter>
<Parameter Name="ID_Usuario" DataType="Integer" Flag="In" >
</Parameter>
</Parameters>
</Operation>
</Operations>
</Interface>
</Interfaces>
@ -73,6 +83,16 @@
<Interfaces>
<Interface Name="Default" UID="{590F06D1-26B4-435B-B636-50CB8FFE6353}">
<Operations>
<Operation Name="DarTiendaUsuario" UID="{70597CB4-37D1-41AB-BD3A-4C0826F7E4F7}">
<Parameters>
<Parameter Name="Result" DataType="Integer" Flag="Result">
</Parameter>
<Parameter Name="ID_EMPRESA" DataType="Integer" Flag="In" >
</Parameter>
<Parameter Name="ID_USUARIO" DataType="Integer" Flag="In" >
</Parameter>
</Parameters>
</Operation>
</Operations>
</Interface>
</Interfaces>
@ -126,16 +146,6 @@
<Interfaces>
<Interface Name="Default" UID="{29388459-1A0B-46BE-AF9E-66A9E7AABB0B}">
<Operations>
<Operation Name="darIDTiendaVendedorUsuario" UID="{7B485EF3-28A4-46EB-8BA5-CCA2C5F33CAF}">
<Parameters>
<Parameter Name="ID_USUARIO" DataType="Integer" Flag="In" >
</Parameter>
<Parameter Name="AIdTienda" DataType="Integer" Flag="InOut" >
</Parameter>
<Parameter Name="ATienda" DataType="String" Flag="InOut" >
</Parameter>
</Parameters>
</Operation>
</Operations>
</Interface>
</Interfaces>

View File

@ -165,6 +165,7 @@ type
IsrvContactos = interface(IDataAbstractService)
['{28CCDC07-A3A4-4917-89B4-64423DC70C9D}']
function GenerateEtiquetasReport(const ContactosID: String): Binary;
function DarTiendaDeUsuario(const ID_Empresa: Integer; const ID_Usuario: Integer): Integer;
end;
{ CosrvContactos }
@ -178,6 +179,7 @@ type
function __GetInterfaceName:string; override;
function GenerateEtiquetasReport(const ContactosID: String): Binary;
function DarTiendaDeUsuario(const ID_Empresa: Integer; const ID_Usuario: Integer): Integer;
end;
{ IsrvLogin }
@ -240,6 +242,7 @@ type
{ IsrvEmpresas }
IsrvEmpresas = interface(IDataAbstractService)
['{590F06D1-26B4-435B-B636-50CB8FFE6353}']
function DarTiendaUsuario(const ID_EMPRESA: Integer; const ID_USUARIO: Integer): Integer;
end;
{ CosrvEmpresas }
@ -252,6 +255,7 @@ type
protected
function __GetInterfaceName:string; override;
function DarTiendaUsuario(const ID_EMPRESA: Integer; const ID_USUARIO: Integer): Integer;
end;
{ IsrvConfiguracion }
@ -327,7 +331,6 @@ type
{ IsrvUsuarios }
IsrvUsuarios = interface(IDataAbstractService)
['{29388459-1A0B-46BE-AF9E-66A9E7AABB0B}']
procedure darIDTiendaVendedorUsuario(const ID_USUARIO: Integer; var AIdTienda: Integer; var ATienda: String);
end;
{ CosrvUsuarios }
@ -340,7 +343,6 @@ type
protected
function __GetInterfaceName:string; override;
procedure darIDTiendaVendedorUsuario(const ID_USUARIO: Integer; var AIdTienda: Integer; var ATienda: String);
end;
{ IsrvAlmacenes }
@ -1000,6 +1002,23 @@ begin
end
end;
function TsrvContactos_Proxy.DarTiendaDeUsuario(const ID_Empresa: Integer; const ID_Usuario: Integer): Integer;
begin
try
__Message.InitializeRequestMessage(__TransportChannel, 'FactuGES', __InterfaceName, 'DarTiendaDeUsuario');
__Message.Write('ID_Empresa', TypeInfo(Integer), ID_Empresa, []);
__Message.Write('ID_Usuario', TypeInfo(Integer), ID_Usuario, []);
__Message.Finalize;
__TransportChannel.Dispatch(__Message);
__Message.Read('Result', TypeInfo(Integer), result, []);
finally
__Message.UnsetAttributes(__TransportChannel);
__Message.FreeStream;
end
end;
{ CosrvLogin }
class function CosrvLogin.Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvLogin;
@ -1092,11 +1111,30 @@ begin
result := TsrvEmpresas_Proxy.Create(aMessage, aTransportChannel);
end;
{ TsrvEmpresas_Proxy }
function TsrvEmpresas_Proxy.__GetInterfaceName:string;
begin
result := 'srvEmpresas';
end;
function TsrvEmpresas_Proxy.DarTiendaUsuario(const ID_EMPRESA: Integer; const ID_USUARIO: Integer): Integer;
begin
try
__Message.InitializeRequestMessage(__TransportChannel, 'FactuGES', __InterfaceName, 'DarTiendaUsuario');
__Message.Write('ID_EMPRESA', TypeInfo(Integer), ID_EMPRESA, []);
__Message.Write('ID_USUARIO', TypeInfo(Integer), ID_USUARIO, []);
__Message.Finalize;
__TransportChannel.Dispatch(__Message);
__Message.Read('Result', TypeInfo(Integer), result, []);
finally
__Message.UnsetAttributes(__TransportChannel);
__Message.FreeStream;
end
end;
{ CosrvConfiguracion }
class function CosrvConfiguracion.Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvConfiguracion;
@ -1170,32 +1208,11 @@ begin
result := TsrvUsuarios_Proxy.Create(aMessage, aTransportChannel);
end;
{ TsrvUsuarios_Proxy }
function TsrvUsuarios_Proxy.__GetInterfaceName:string;
begin
result := 'srvUsuarios';
end;
procedure TsrvUsuarios_Proxy.darIDTiendaVendedorUsuario(const ID_USUARIO: Integer; var AIdTienda: Integer; var ATienda: String);
begin
try
__Message.InitializeRequestMessage(__TransportChannel, 'FactuGES', __InterfaceName, 'darIDTiendaVendedorUsuario');
__Message.Write('ID_USUARIO', TypeInfo(Integer), ID_USUARIO, []);
__Message.Write('AIdTienda', TypeInfo(Integer), AIdTienda, []);
__Message.Write('ATienda', TypeInfo(String), ATienda, []);
__Message.Finalize;
__TransportChannel.Dispatch(__Message);
__Message.Read('AIdTienda', TypeInfo(Integer), AIdTienda, []);
__Message.Read('ATienda', TypeInfo(String), ATienda, []);
finally
__Message.UnsetAttributes(__TransportChannel);
__Message.FreeStream;
end
end;
{ CosrvAlmacenes }
class function CosrvAlmacenes.Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvAlmacenes;

View File

@ -25,6 +25,7 @@ type
protected
published
procedure Invoke_GenerateEtiquetasReport(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions);
procedure Invoke_DarTiendaDeUsuario(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions);
end;
TsrvLogin_Invoker = class(TDataAbstractService_Invoker)
@ -52,6 +53,7 @@ type
private
protected
published
procedure Invoke_DarTiendaUsuario(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions);
end;
TsrvConfiguracion_Invoker = class(TDataAbstractService_Invoker)
@ -83,7 +85,6 @@ type
private
protected
published
procedure Invoke_darIDTiendaVendedorUsuario(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions);
end;
TsrvAlmacenes_Invoker = class(TDataAbstractService_Invoker)
@ -250,6 +251,28 @@ begin
end;
end;
procedure TsrvContactos_Invoker.Invoke_DarTiendaDeUsuario(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions);
{ function DarTiendaDeUsuario(const ID_Empresa: Integer; const ID_Usuario: Integer): Integer; }
var
ID_Empresa: Integer;
ID_Usuario: Integer;
lResult: Integer;
begin
try
__Message.Read('ID_Empresa', TypeInfo(Integer), ID_Empresa, []);
__Message.Read('ID_Usuario', TypeInfo(Integer), ID_Usuario, []);
lResult := (__Instance as IsrvContactos).DarTiendaDeUsuario(ID_Empresa, ID_Usuario);
__Message.InitializeResponseMessage(__Transport, 'FactuGES', 'srvContactos', 'DarTiendaDeUsuarioResponse');
__Message.Write('Result', TypeInfo(Integer), lResult, []);
__Message.Finalize;
__Message.UnsetAttributes(__Transport);
finally
end;
end;
{ TsrvLogin_Invoker }
procedure TsrvLogin_Invoker.Invoke_Login(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions);
@ -316,6 +339,30 @@ begin
end;
end;
{ TsrvEmpresas_Invoker }
procedure TsrvEmpresas_Invoker.Invoke_DarTiendaUsuario(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions);
{ function DarTiendaUsuario(const ID_EMPRESA: Integer; const ID_USUARIO: Integer): Integer; }
var
ID_EMPRESA: Integer;
ID_USUARIO: Integer;
lResult: Integer;
begin
try
__Message.Read('ID_EMPRESA', TypeInfo(Integer), ID_EMPRESA, []);
__Message.Read('ID_USUARIO', TypeInfo(Integer), ID_USUARIO, []);
lResult := (__Instance as IsrvEmpresas).DarTiendaUsuario(ID_EMPRESA, ID_USUARIO);
__Message.InitializeResponseMessage(__Transport, 'FactuGES', 'srvEmpresas', 'DarTiendaUsuarioResponse');
__Message.Write('Result', TypeInfo(Integer), lResult, []);
__Message.Finalize;
__Message.UnsetAttributes(__Transport);
finally
end;
end;
{ TsrvConfiguracion_Invoker }
procedure TsrvConfiguracion_Invoker.Invoke_darValor(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions);
@ -338,32 +385,6 @@ begin
end;
end;
{ TsrvUsuarios_Invoker }
procedure TsrvUsuarios_Invoker.Invoke_darIDTiendaVendedorUsuario(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions);
{ procedure darIDTiendaVendedorUsuario(const ID_USUARIO: Integer; var AIdTienda: Integer; var ATienda: String); }
var
ID_USUARIO: Integer;
AIdTienda: Integer;
ATienda: String;
begin
try
__Message.Read('ID_USUARIO', TypeInfo(Integer), ID_USUARIO, []);
__Message.Read('AIdTienda', TypeInfo(Integer), AIdTienda, []);
__Message.Read('ATienda', TypeInfo(String), ATienda, []);
(__Instance as IsrvUsuarios).darIDTiendaVendedorUsuario(ID_USUARIO, AIdTienda, ATienda);
__Message.InitializeResponseMessage(__Transport, 'FactuGES', 'srvUsuarios', 'darIDTiendaVendedorUsuarioResponse');
__Message.Write('AIdTienda', TypeInfo(Integer), AIdTienda, []);
__Message.Write('ATienda', TypeInfo(String), ATienda, []);
__Message.Finalize;
__Message.UnsetAttributes(__Transport);
finally
end;
end;
{ TsrvRecibosCliente_Invoker }
procedure TsrvRecibosCliente_Invoker.Invoke_GenerateReport(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions);

Binary file not shown.

Binary file not shown.

View File

@ -103,6 +103,8 @@ uses
uRptAlbaranesCliente_Server in '..\Modulos\Albaranes de cliente\Reports\uRptAlbaranesCliente_Server.pas',
schFacturasProveedorClient_Intf in '..\Modulos\Facturas de proveedor\Model\schFacturasProveedorClient_Intf.pas',
schFacturasProveedorServer_Intf in '..\Modulos\Facturas de proveedor\Model\schFacturasProveedorServer_Intf.pas',
schRecibosClienteClient_Intf in '..\Modulos\Recibos de cliente\Model\schRecibosClienteClient_Intf.pas',
schRecibosClienteServer_Intf in '..\Modulos\Recibos de cliente\Model\schRecibosClienteServer_Intf.pas',
schFacturasClienteClient_Intf in '..\Modulos\Facturas de cliente\Model\schFacturasClienteClient_Intf.pas',
schFacturasClienteServer_Intf in '..\Modulos\Facturas de cliente\Model\schFacturasClienteServer_Intf.pas',
schRecibosProveedorClient_Intf in '..\Modulos\Recibos de proveedor\Model\schRecibosProveedorClient_Intf.pas',
@ -114,8 +116,6 @@ uses
uBizComisionesServer in '..\Modulos\Comisiones\Model\uBizComisionesServer.pas',
schContactosClient_Intf in '..\Modulos\Contactos\Model\schContactosClient_Intf.pas',
schContactosServer_Intf in '..\Modulos\Contactos\Model\schContactosServer_Intf.pas',
schUsuariosClient_Intf in '..\ApplicationBase\Usuarios\Model\schUsuariosClient_Intf.pas',
schUsuariosServer_Intf in '..\ApplicationBase\Usuarios\Model\schUsuariosServer_Intf.pas',
schComisionesClient_Intf in '..\Modulos\Comisiones\Model\schComisionesClient_Intf.pas',
schComisionesServer_Intf in '..\Modulos\Comisiones\Model\schComisionesServer_Intf.pas',
uRptComisiones_Server in '..\Modulos\Comisiones\Reports\uRptComisiones_Server.pas' {RptComisiones: TDataModule},
@ -124,8 +124,8 @@ uses
schEmpresasServer_Intf in '..\ApplicationBase\Empresas\Model\schEmpresasServer_Intf.pas',
schEjerciciosClient_Intf in '..\ApplicationBase\Ejercicios\Model\schEjerciciosClient_Intf.pas',
schEjerciciosServer_Intf in '..\ApplicationBase\Ejercicios\Model\schEjerciciosServer_Intf.pas',
schRecibosClienteClient_Intf in '..\Modulos\Recibos de cliente\Model\schRecibosClienteClient_Intf.pas',
schRecibosClienteServer_Intf in '..\Modulos\Recibos de cliente\Model\schRecibosClienteServer_Intf.pas';
schUsuariosClient_Intf in '..\ApplicationBase\Usuarios\Model\schUsuariosClient_Intf.pas',
schUsuariosServer_Intf in '..\ApplicationBase\Usuarios\Model\schUsuariosServer_Intf.pas';
{$R *.res}
{$R ..\Servicios\RODLFile.res}

View File

@ -16,7 +16,7 @@ BEGIN
VALUE "FileVersion", "2.2.3.0\0"
VALUE "ProductName", "FactuGES (Servidor)\0"
VALUE "ProductVersion", "2.2.3.0\0"
VALUE "CompileDate", "martes, 22 de julio de 2008 19:03\0"
VALUE "CompileDate", "miércoles, 23 de julio de 2008 17:05\0"
END
END
BLOCK "VarFileInfo"

View File

@ -248,6 +248,7 @@ end;
procedure TdmServer.DataModuleDestroy(Sender: TObject);
begin
SessionManager.ClearSessions(False);
ConnectionManager.ClearPool;
HTTPServer.Active := False;