unit uBizPedidosMontaje;

interface

uses
  uDADataTable, uBizPedidosProveedor, uBizMontajesDetalles;

const
  BIZ_CLIENT_PEDIDO_MONTAJE = 'Client.PedidoMontaje';

type
  IBizPedidoMontaje = interface(IBizPedidoProveedor)
  ['{AD169CCB-1EA5-4E85-AB9C-2AAC6191ECE3}']
    procedure SetMontaje(AValue : IBizMontajeDetalles);
    function GetMontaje : IBizMontajeDetalles;
    property Montaje : IBizMontajeDetalles read GetMontaje write SetMontaje;
  end;

  TBizPedidoMontaje = class(TBizPedidoProveedor, IBizPedidoMontaje)
  protected
    FMontaje : IBizMontajeDetalles;
    procedure SetMontaje(AValue : IBizMontajeDetalles);
    function GetMontaje : IBizMontajeDetalles;
  public
    property Montaje : IBizMontajeDetalles read GetMontaje write SetMontaje;

    constructor Create(aDataTable: TDADataTable); override;
    destructor Destroy; override;
  end;

implementation

uses
  Windows, Forms;

{ TBizPedidoMontaje }

constructor TBizPedidoMontaje.Create(aDataTable: TDADataTable);
begin
  inherited;
  FMontaje := Nil;
end;

destructor TBizPedidoMontaje.Destroy;
begin
  FMontaje := NIL;
  inherited;
end;

function TBizPedidoMontaje.GetMontaje: IBizMontajeDetalles;
begin
  Result := FMontaje;
end;

procedure TBizPedidoMontaje.SetMontaje(AValue: IBizMontajeDetalles);
begin
  FMontaje := AValue;

  if Assigned(FMontaje) then
  begin
    if not FMontaje.DataTable.Active then
      FMontaje.DataTable.Active := True;

    if ID_MONTAJE <> FMontaje.ID then
    begin
      DataTable.Edit;
      ID_MONTAJE := FMontaje.ID;
      REFERENCIA := FMontaje.REFERENCIA;
    end;
  end;
end;

initialization
  RegisterDataTableRules(BIZ_CLIENT_PEDIDO_MONTAJE, TBizPedidoMontaje);

finalization

end.

