git-svn-id: https://192.168.0.254/svn/Proyectos.Tecsitel_FactuGES/trunk@4 b68bf8ae-e977-074f-a058-3cfd71dd8f45
230 lines
6.4 KiB
ObjectPascal
230 lines
6.4 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.2
|
|
Fecha versión actual: 05-08-2004
|
|
===============================================================================
|
|
Modificaciones:
|
|
|
|
Fecha Comentarios
|
|
---------------------------------------------------------------------------
|
|
30-07-2004 p284. Se han añadido los datos de inscripción del Registro
|
|
Mercantil a la tabla de empresas.
|
|
|
|
05-08-2004 P279. Añadido el campo 'MODELOINFORME' para determinar por
|
|
empresa qué formato usarán los informes (no internos).
|
|
===============================================================================
|
|
}
|
|
|
|
unit RdxEmpresaActiva;
|
|
|
|
interface
|
|
|
|
uses
|
|
//Generales
|
|
SysUtils, Classes, Controls, IBSQL, cxGridDBTableView, cxCustomData, DB,
|
|
IBDatabase,
|
|
//Particulares
|
|
IBCustomDataSet, Graphics, IBQuery,
|
|
|
|
//Aplicacion
|
|
Framework, StrFunc, Entidades, Constantes;
|
|
|
|
type
|
|
TEmpresaSingleton = class
|
|
private
|
|
FCodigo : Variant;
|
|
FNombre: String;
|
|
FNifCif: String;
|
|
FCalle: String;
|
|
FNumero: String;
|
|
FCodigoPostal: String;
|
|
FPoblacion: String;
|
|
FProvincia: String;
|
|
FTelefono: String;
|
|
FFax: String;
|
|
FCorreo: String;
|
|
FWeb: String;
|
|
FLogotipo : TPicture;
|
|
FRegistroMercantil : String;
|
|
FModeloInforme : Integer;
|
|
|
|
FDatabase : TIBDatabase;
|
|
FTransaction : TIBTransaction;
|
|
|
|
procedure ObtenerDatos;
|
|
procedure LimpiarCampos;
|
|
|
|
protected
|
|
procedure SetCodigo(const Value: Variant);
|
|
|
|
public
|
|
property Nombre : String read FNombre;
|
|
property NifCif : String read FNifCif;
|
|
property Calle : String read FCalle;
|
|
property Numero : String read FNumero;
|
|
property CodigoPostal : String read FCodigoPostal;
|
|
property Poblacion : String read FPoblacion;
|
|
property Provincia : String read FProvincia;
|
|
property Telefono : String read FTelefono;
|
|
property Fax : String read FFax;
|
|
property Correo : String read FCorreo;
|
|
property Web : String read FWeb;
|
|
property Logotipo : TPicture read FLogotipo;
|
|
property RegistroMercantil : String read FRegistroMercantil;
|
|
property ModeloInforme : Integer read FModeloInforme;
|
|
|
|
property Codigo : Variant read FCodigo write setCodigo;
|
|
property BD : TIBDatabase read FDatabase write FDatabase;
|
|
property Transaccion : TIBTransaction read FTransaction write FTransaction;
|
|
|
|
class function NewInstance: TObject; override;
|
|
procedure FreeInstance; override;
|
|
procedure Refrescar;
|
|
end;
|
|
|
|
var
|
|
EmpresaActiva : TEmpresaSingleton = Nil;
|
|
|
|
implementation
|
|
|
|
{ TEmpresaSingleton }
|
|
|
|
procedure TEmpresaSingleton.FreeInstance;
|
|
begin
|
|
if EmpresaActiva = Self then
|
|
begin
|
|
EmpresaActiva := NIL;
|
|
inherited FreeInstance;
|
|
end;
|
|
end;
|
|
|
|
procedure TEmpresaSingleton.LimpiarCampos;
|
|
begin
|
|
FNombre := '';
|
|
FNifCif := '';
|
|
FCalle := '';
|
|
FNumero := '';
|
|
FCodigoPostal := '';
|
|
FPoblacion := '';
|
|
FProvincia := '';
|
|
FTelefono := '';
|
|
FFax := '';
|
|
FCorreo := '';
|
|
FWeb := '';
|
|
FRegistroMercantil := '';
|
|
FModeloInforme := 0;
|
|
|
|
if FLogotipo <> Nil then
|
|
FLogotipo.Free;
|
|
FLogotipo := Nil;
|
|
end;
|
|
|
|
class function TEmpresaSingleton.NewInstance: TObject;
|
|
begin
|
|
if Assigned(EmpresaActiva) then
|
|
Exception.Create('No se puede tener mas de una instancia')
|
|
else begin
|
|
Result := inherited NewInstance;
|
|
with TEmpresaSingleton(Result) do
|
|
begin
|
|
FDatabase := NIL;
|
|
FTransaction := NIL;
|
|
FCodigo := NULL;
|
|
end;
|
|
end;
|
|
end;
|
|
|
|
procedure TEmpresaSingleton.ObtenerDatos;
|
|
var
|
|
oSQL : TIBQuery;
|
|
Stream : TIBDSBlobStream;
|
|
begin
|
|
LimpiarCampos;
|
|
|
|
if EsCadenaVacia(Codigo) then
|
|
exit;
|
|
|
|
oSQL := TIBQuery.Create(Nil);
|
|
with oSQL do
|
|
begin
|
|
Database := FDataBase;
|
|
Transaction := FTransaction;
|
|
SQL.Add('select * ');
|
|
SQL.Add('from EMPRESAS ');
|
|
SQL.Add('where CODIGO = :CODIGO');
|
|
try
|
|
ParamByName('CODIGO').AsInteger := Codigo;
|
|
Prepare;
|
|
Open;
|
|
|
|
// Compruebo si se han recuperado datos
|
|
if (RecordCount > 0) then
|
|
begin
|
|
FNombre := FieldByName('NOMBRE').AsString;
|
|
FNifCif := FieldByName('NIFCIF').AsString;
|
|
FCalle := FieldByName('CALLE').AsString;
|
|
FNumero := FieldByName('NUMERO').AsString;
|
|
FCodigoPostal := FieldByName('CODIGOPOSTAL').AsString;
|
|
FPoblacion := FieldByName('POBLACION').AsString;
|
|
FProvincia := FieldByName('PROVINCIA').AsString;
|
|
FTelefono := FieldByName('TELEFONO').AsString;
|
|
FFax := FieldByName('FAX').AsString;
|
|
FCorreo := FieldByName('CORREO').AsString;
|
|
FWeb := FieldByName('WEB').AsString;
|
|
FRegistroMercantil := FieldByName('REGISTROMERCANTIL').AsString;
|
|
FModeloInforme := FieldByName('MODELOINFORME').AsInteger;
|
|
|
|
//En el caso de que tenga logotipo asociado
|
|
if not esCadenaVacia(FieldByName('LOGOTIPO').AsVariant) then
|
|
begin
|
|
Stream := (oSQL.CreateBlobStream(FieldByName('LOGOTIPO'), bmReadWrite) as TIBDSBlobStream);
|
|
FLogotipo := TPicture.Create;
|
|
FLogotipo.Bitmap.LoadFromStream(Stream);
|
|
Stream.Free;
|
|
end;
|
|
end;
|
|
finally
|
|
Close;
|
|
Transaction := NIL;
|
|
Free;
|
|
end;
|
|
end;
|
|
end;
|
|
|
|
procedure TEmpresaSingleton.Refrescar;
|
|
begin
|
|
ObtenerDatos;
|
|
end;
|
|
|
|
procedure TEmpresaSingleton.SetCodigo(const Value: Variant);
|
|
begin
|
|
FCodigo := Value;
|
|
// Recuperar los datos de la empresa
|
|
ObtenerDatos;
|
|
end;
|
|
|
|
|
|
procedure LiberarEmpresaActiva; far;
|
|
Begin
|
|
if Assigned(EmpresaActiva) then
|
|
FreeAndNil(EmpresaActiva);
|
|
end;
|
|
|
|
initialization
|
|
EmpresaActiva := TEmpresaSingleton.Create;
|
|
SysUtils.AddExitProc(LiberarEmpresaActiva);
|
|
end.
|
|
|
|
|
|
|