unit uBizDetallesPresupuesto;

interface

uses
  uDAInterfaces, uDADataTable, schPresupuestosClient_Intf;

const
  BIZ_CLIENT_DETALLES_PRESUPUESTO = 'Client.DetallesPresupuesto';

type
  IBizDetallesPresupuesto = interface(IPresupuestos_Detalles)
    ['{46C2F77A-0D5A-4872-B37A-260FC5E52CC5}']
    function EsNuevo: Boolean;
  end;

  TBizDetallesPresupuesto = class(TPresupuestos_DetallesDataTableRules, IBizDetallesPresupuesto)
  private
    FContadorID: Integer;
  protected
    procedure OnNewRecord(Sender: TDADataTable); override;
  public
    function EsNuevo: Boolean;
    constructor Create(aDataTable: TDADataTable); override;
  end;

implementation

{ TBizDetallesPresupuesto }

uses uDataTableUtils;

constructor TBizDetallesPresupuesto.Create(aDataTable: TDADataTable);
begin
  inherited Create(aDataTable);
  FContadorID := -1;
end;

function TBizDetallesPresupuesto.EsNuevo: Boolean;
begin
  Result := (ID < 0);
end;

procedure TBizDetallesPresupuesto.OnNewRecord(Sender: TDADataTable);
begin
  inherited;
  ID := FContadorID; // -1, -2, -3...
  Dec(FContadorID);
end;

initialization
  RegisterDataTableRules(BIZ_CLIENT_DETALLES_PRESUPUESTO, TBizDetallesPresupuesto);


end.
