This repository has been archived on 2024-12-02. You can view files and clone it, but cannot push or open issues or pull requests.
FactuGES/Libreria/RdxEmpresaActiva.pas
2007-06-26 08:08:27 +00:00

268 lines
7.1 KiB
ObjectPascal

{
===============================================================================
Copyright (©) 2002. Rodax Software.
===============================================================================
Los contenidos de este fichero son propiedad de Rodax Software titular del
copyright. Este fichero sólo podrá ser copiado, distribuido y utilizado,
en su totalidad o en parte, con el permiso escrito de Rodax Software, o de
acuerdo con los términos y condiciones establecidas en el acuerdo/contrato
bajo el que se suministra.
-----------------------------------------------------------------------------
Web: www.rodax-software.com
===============================================================================
Fecha primera versión: 30-04-2004
Versión actual: 1.0.1
Fecha versión actual: 13-07-2004
===============================================================================
Modificaciones:
Fecha Comentarios
---------------------------------------------------------------------------
13-07-2004 Al cambiar de empresa, no se eliminaba el logotipo anterior.
===============================================================================
}
unit RdxEmpresaActiva;
interface
uses
//Generales
SysUtils, Classes, Controls, Graphics,
{IBSQL, cxGridDBTableView, cxCustomData, DB,
IBDatabase,
//Particulares
IBCustomDataSet, Graphics, IBQuery, Variants,}
//Aplicacion
StrFunc, Framework;
type
TEmpresaSingleton = class
private
FDatosEmpresa : TObjeto;
function GetCodigo: Integer;
function GetCodigoTrimestre: String;
function GetCorreo: String;
function GetDirecciones: TListaObjetos;
function GetFechaAlta: String;
function GetIvaDefecto: String;
function GetLibroDefecto: String;
function GetLogotipo: TPicture;
function GetNifCif: String;
function GetNombre: String;
function GetNombreComercial: String;
function GetUsuario: String;
function GetValidezDefecto: Variant;
function GetIntervaloPagosCli: Real;
function GetWeb: String;
procedure SetCodigo(const Value: Integer);
public
property Codigo : Integer read GetCodigo write SetCodigo;
property FechaAlta : String read GetFechaAlta;
property Usuario : String read GetUsuario;
property Nombre : String read GetNombre;
property NifCif : String read GetNifCif;
property Correo : String read GetCorreo;
property Web : String read GetWeb;
property NombreComercial : String read GetNombreComercial;
property CodigoTrimestre : String read GetCodigoTrimestre;
property IvaDefecto : String read GetIvaDefecto;
property ValidezDefecto : Variant read GetValidezDefecto;
property IntervaloPagosCli : Real read GetIntervaloPagosCli;
property LibroDefecto : String read GetLibroDefecto;
property Logotipo : TPicture read GetLogotipo;
property Direcciones : TListaObjetos read GetDirecciones;
class function NewInstance: TObject; override;
procedure FreeInstance; override;
procedure Refrescar;
end;
procedure LiberarEmpresaActiva;
var
EmpresaActiva : TEmpresaSingleton = Nil;
implementation
uses
TablaEmpresas;
{ TEmpresaSingleton }
procedure TEmpresaSingleton.FreeInstance;
begin
if EmpresaActiva = Self then
begin
EmpresaActiva := NIL;
inherited FreeInstance;
end;
end;
function TEmpresaSingleton.GetCodigo: Integer;
begin
if Assigned(FDatosEmpresa) then
Result := (FDatosEmpresa as TDatosEmpresa).Codigo
else
Result := -1;
end;
function TEmpresaSingleton.GetCodigoTrimestre: String;
begin
if Assigned(FDatosEmpresa) then
Result := (FDatosEmpresa as TDatosEmpresa).CodigoTrimestre
else
Result := '';
end;
function TEmpresaSingleton.GetCorreo: String;
begin
if Assigned(FDatosEmpresa) then
Result := (FDatosEmpresa as TDatosEmpresa).Correo
else
Result := '';
end;
function TEmpresaSingleton.GetDirecciones: TListaObjetos;
begin
if Assigned(FDatosEmpresa) then
Result := (FDatosEmpresa as TDatosEmpresa).Direcciones
else
Result := NIL;
end;
function TEmpresaSingleton.GetFechaAlta: String;
begin
if Assigned(FDatosEmpresa) then
Result := (FDatosEmpresa as TDatosEmpresa).FechaAlta
else
Result := '';
end;
function TEmpresaSingleton.GetIntervaloPagosCli: Real;
begin
if Assigned(FDatosEmpresa) then
Result := (FDatosEmpresa as TDatosEmpresa).IntervaloPagosCli
else
Result := 0;
end;
function TEmpresaSingleton.GetIvaDefecto: String;
begin
if Assigned(FDatosEmpresa) then
Result := (FDatosEmpresa as TDatosEmpresa).IvaDefecto
else
Result := '';
end;
function TEmpresaSingleton.GetLibroDefecto: String;
begin
if Assigned(FDatosEmpresa) then
Result := (FDatosEmpresa as TDatosEmpresa).LibroDefecto
else
Result := '';
end;
function TEmpresaSingleton.GetLogotipo: TPicture;
begin
if Assigned(FDatosEmpresa) then
Result := (FDatosEmpresa as TDatosEmpresa).Logotipo
else
Result := NIL;
end;
function TEmpresaSingleton.GetNifCif: String;
begin
if Assigned(FDatosEmpresa) then
Result := (FDatosEmpresa as TDatosEmpresa).NifCif
else
Result := '';
end;
function TEmpresaSingleton.GetNombre: String;
begin
if Assigned(FDatosEmpresa) then
Result := (FDatosEmpresa as TDatosEmpresa).Nombre
else
Result := '';
end;
function TEmpresaSingleton.GetNombreComercial: String;
begin
if Assigned(FDatosEmpresa) then
Result := (FDatosEmpresa as TDatosEmpresa).NombreComercial
else
Result := '';
end;
function TEmpresaSingleton.GetUsuario: String;
begin
if Assigned(FDatosEmpresa) then
Result := (FDatosEmpresa as TDatosEmpresa).Usuario
else
Result := '';
end;
function TEmpresaSingleton.GetValidezDefecto: Variant;
begin
if Assigned(FDatosEmpresa) then
Result := (FDatosEmpresa as TDatosEmpresa).ValidezDefecto
else
Result := '';
end;
function TEmpresaSingleton.GetWeb: String;
begin
if Assigned(FDatosEmpresa) then
Result := (FDatosEmpresa as TDatosEmpresa).Web
else
Result := '';
end;
class function TEmpresaSingleton.NewInstance: TObject;
begin
if Assigned(EmpresaActiva) then
Exception.Create('No se puede tener mas de una instancia')
else
Result := inherited NewInstance;
end;
procedure TEmpresaSingleton.Refrescar;
var
CodAux : Integer;
begin
CodAux := (FDatosEmpresa as TDatosEmpresa).Codigo;
FDatosEmpresa.Free;
FDatosEmpresa := NIL;
Self.Codigo := CodAux;
end;
procedure TEmpresaSingleton.SetCodigo(const Value: Integer);
begin
if Assigned(FDatosEmpresa) then
begin
if (FDatosEmpresa as TDatosEmpresa).Codigo <> Value then
FDatosEmpresa.Free
else
Exit;
end;
FDatosEmpresa := TDatosEmpresa.Create(Value);
end;
procedure LiberarEmpresaActiva; far;
Begin
if Assigned(EmpresaActiva) then
FreeAndNil(EmpresaActiva);
end;
initialization
EmpresaActiva := TEmpresaSingleton.Create;
SysUtils.AddExitProc(LiberarEmpresaActiva);
end.
end.