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.