unit uBizEjercicios; interface uses uDAInterfaces, uDADataTable, uDBSelectionListUtils, schEjerciciosClient_Intf; const BIZ_CLIENT_Ejercicio = 'Client.Ejercicio'; CTE_ABIERTO = 'ABIERTO'; CTE_CERRADO = 'CERRADO'; type IBizEjercicio = interface(IEjercicios) ['{328DA20D-75E5-47D5-A0D6-C7036E2A038F}'] function EsNuevo : Boolean; end; TBizEjercicio = class(TEjerciciosDataTableRules, IBizEjercicio, ISeleccionable) protected FSeleccionableInterface: ISeleccionable; procedure OnNewRecord(Sender: TDADataTable); override; public property SeleccionableInterface : ISeleccionable read FSeleccionableInterface write FSeleccionableInterface implements ISeleccionable; constructor Create(aDataTable: TDADataTable); override; destructor Destroy; override; procedure IniciarValoresEjercicioNueva; function EsNuevo : Boolean; end; implementation { TBizEjercicio } uses SysUtils, uDataTableUtils, uDateUtils, uFactuGES_App; constructor TBizEjercicio.Create(aDataTable: TDADataTable); begin inherited; FSeleccionableInterface := TSeleccionable.Create(aDataTable); end; destructor TBizEjercicio.Destroy; begin FSeleccionableInterface := NIL; inherited; end; function TBizEjercicio.EsNuevo: Boolean; begin Result := (ID < 0); end; procedure TBizEjercicio.IniciarValoresEjercicioNueva; begin ID_EMPRESA := AppFactuGES.EmpresaActiva.ID; ACTIVO := 1; ESTADO := CTE_ABIERTO; NOMBRE := 'Ejercicio ...'; FECHA_INICIO := DarInicioAno(date); FECHA_FIN := DarFinAno(date); end; procedure TBizEjercicio.OnNewRecord(Sender: TDADataTable); begin inherited; IniciarValoresEjercicioNueva; end; initialization RegisterDataTableRules(BIZ_CLIENT_Ejercicio, TBizEjercicio); finalization end.