AbetoDesign_FactuGES2/Source/ApplicationBase/Empresas/Model/uBizEmpresas.pas

162 lines
4.9 KiB
ObjectPascal

unit uBizEmpresas;
interface
uses
uDAInterfaces, uDADataTable, Classes, schEmpresasClient_Intf,
uBizEmpresasDatosBancarios, uBizEmpresasTiendas;
const
BIZ_CLIENT_EMPRESA = 'Client.Empresa';
CTE_EMPRESAS_CONTACTOS_COMUNES = 'EMPRESAS_CONTACTOS_COMUNES';
CTE_EMPRESAS_PRESUPUESTOS_COMUNES = 'EMPRESAS_PRESUPUESTOS_COMUNES';
CTE_EMPRESAS_CONTRATOS_COMUNES = 'EMPRESAS_CONTRATOS_COMUNES';
type
IBizEmpresa = interface (IEmpresas)
['{1DB69F36-969C-4078-B862-6D697670BCFD}']
procedure SetDatosBancarios(AValue : IBizEmpresasDatosBancarios);
function GetDatosBancarios : IBizEmpresasDatosBancarios;
property DatosBancarios : IBizEmpresasDatosBancarios read GetDatosBancarios write SetDatosBancarios;
procedure SetTiendas(AValue : IBizEmpresaTienda);
function GetTiendas : IBizEmpresaTienda;
property Tiendas : IBizEmpresaTienda read GetTiendas write SetTiendas;
function GetEmpresasPresupuestosComunes : TStringList;
property EmpresasPresupuestosComunes: TStringList read GetEmpresasPresupuestosComunes;
function GetEmpresasContratosComunes : TStringList;
property EmpresasContratosComunes: TStringList read GetEmpresasContratosComunes;
function EsNuevo : Boolean;
end;
TBizEmpresa = class(TEmpresasDataTableRules, IBizEmpresa)
protected
FDatosBancarios : IBizEmpresasDatosBancarios;
FDatosBancariosLink : TDADataSource;
FTiendas : IBizEmpresaTienda;
FTiendasLink : TDADataSource;
FEmpresasPresupuestosComunes : TStringList;
FEmpresasContratosComunes : TStringList;
procedure OnNewRecord(Sender: TDADataTable); override;
procedure SetDatosBancarios(AValue : IBizEmpresasDatosBancarios);
function GetDatosBancarios : IBizEmpresasDatosBancarios;
procedure SetTiendas(AValue : IBizEmpresaTienda);
function GetTiendas : IBizEmpresaTienda;
function GetEmpresasPresupuestosComunes : TStringList;
function GetEmpresasContratosComunes : TStringList;
public
function EsNuevo : Boolean;
procedure IniciarValoresEmpresaNueva;
constructor Create(aDataTable: TDADataTable); override;
destructor Destroy; override;
property DatosBancarios : IBizEmpresasDatosBancarios read GetDatosBancarios write SetDatosBancarios;
property Tiendas : IBizEmpresaTienda read GetTiendas write SetTiendas;
property EmpresasPresupuestosComunes: TStringList read GetEmpresasPresupuestosComunes;
property EmpresasContratosComunes: TStringList read GetEmpresasContratosComunes;
end;
implementation
uses
uDataTableUtils, DateUtils, SysUtils, Dialogs,
uFactuGES_App, uConfiguracionController;
{ TBizEmpresa }
constructor TBizEmpresa.Create(aDataTable: TDADataTable);
begin
inherited;
FDatosBancariosLink := TDADataSource.Create(NIL);
FDatosBancariosLink.DataTable := aDataTable;
FTiendasLink := TDADataSource.Create(NIL);
FTiendasLink.DataTable := aDataTable;
FEmpresasPresupuestosComunes := TStringList.Create;
FEmpresasContratosComunes := TStringList.Create;
end;
destructor TBizEmpresa.Destroy;
begin
FDatosBancarios := NIL;
FDatosBancariosLink.Free;
FTiendas := NIL;
FTiendasLink.Free;
FreeANDNIL(FEmpresasPresupuestosComunes);
FreeANDNIL(FEmpresasContratosComunes);
inherited;
end;
function TBizEmpresa.EsNuevo: Boolean;
begin
Result := (ID < 0);
end;
function TBizEmpresa.GetDatosBancarios: IBizEmpresasDatosBancarios;
begin
Result := FDatosBancarios;
end;
function TBizEmpresa.GetEmpresasContratosComunes: TStringList;
begin
if (FEmpresasContratosComunes.Count = 0) then
FEmpresasContratosComunes.CommaText := AppFactuGES.Configuracion.GetSettingAsString(teBD, CTE_EMPRESAS_CONTRATOS_COMUNES, AppFactuGES.EmpresaActiva.ID);
Result := FEmpresasContratosComunes;
end;
function TBizEmpresa.GetEmpresasPresupuestosComunes: TStringList;
begin
if (FEmpresasPresupuestosComunes.Count = 0) then
FEmpresasPresupuestosComunes.CommaText := AppFactuGES.Configuracion.GetSettingAsString(teBD, CTE_EMPRESAS_PRESUPUESTOS_COMUNES, AppFactuGES.EmpresaActiva.ID);
Result := FEmpresasPresupuestosComunes;
end;
function TBizEmpresa.GetTiendas: IBizEmpresaTienda;
begin
Result := FTiendas;
end;
procedure TBizEmpresa.IniciarValoresEmpresaNueva;
begin
USUARIO := AppFactuGES.UsuarioActivo.UserName;
end;
procedure TBizEmpresa.OnNewRecord(Sender: TDADataTable);
begin
inherited;
IniciarValoresEmpresaNueva;
end;
procedure TBizEmpresa.SetDatosBancarios(AValue: IBizEmpresasDatosBancarios);
begin
FDatosBancarios := AValue;
EnlazarMaestroDetalle(FDatosBancariosLink, FDatosBancarios);
end;
procedure TBizEmpresa.SetTiendas(AValue: IBizEmpresaTienda);
begin
FTiendas := AValue;
EnlazarMaestroDetalle(FTiendasLink, FTiendas);
end;
initialization
RegisterDataTableRules(BIZ_CLIENT_EMPRESA, TBizEmpresa);
finalization
end.