{*******************************************************}
{                                                       }
{       Administración de puntos de venta               }
{                                                       }
{       Copyright (C) 2006 Rodax Software S.L.          }
{                                                       }
{*******************************************************}

unit uBizRecepciones;

interface

uses
  Classes, DB, SysUtils, uROClasses, uDADataTable, uDBSelectionList;


const
  BIZ_RECEPCIONES = 'Client.Recepciones';
  BIZ_RECEPCIONESALBARAN = 'Client.RecepcionesAlbaran';  

type
  TInvRecepcionEstado = (tirPendiente, tirAprobado);
  TInvRecepcionAlbaranEstado = (tiraPendiente, tiraRecibido);

  IBizRecepciones = interface(IDAStronglyTypedDataTable) //IRecepciones)
  ['{51AA574C-78B9-43B7-B278-CDD95B729F60}']
    procedure Show;
    procedure SetEstado(const AValue : TInvRecepcionEstado);
    function GetEstado : TInvRecepcionEstado ;
    property Estado : TInvRecepcionEstado read GetEstado write SetEstado;
  end;

  IBizRecepcionesAlbaran = interface(IDAStronglyTypedDataTable) //IRecepcionesAlbaran)
  ['{167478EB-ECE5-48D6-A0F2-66F07B62CA3F}']
  end;

  TBizRecepcionesDataTableRules = class(TDADataTableRules, IBizRecepciones) //TRecepcionesDataTableRules, IBizRecepciones,
  protected
    procedure SetEstado(const AValue : TInvRecepcionEstado);
    function GetEstado : TInvRecepcionEstado ;
  public
    procedure Show;
    property Estado : TInvRecepcionEstado read GetEstado write SetEstado;
  end;

  TBizRecepcionesAlbaranDataTableRules = class(TDADataTableRules, IBizRecepcionesAlbaran) //TRecepcionesAlbaranDataTableRules, IBizRecepcionesAlbaran,
  end;

implementation

uses
  uEditorUtils, uDataModuleRecepciones;

{ TBizRecepcionDataTableRules }

function TBizRecepcionesDataTableRules.GetEstado: TInvRecepcionEstado;
begin
  if DataTable.FieldByName('APROBADO').AsString = 'S' then
    Result := tirAprobado
  else
    Result := tirPendiente
end;

procedure TBizRecepcionesDataTableRules.SetEstado(
  const AValue: TInvRecepcionEstado);
begin
  case AValue of
    tirPendiente   : DataTable.FieldByName('APROBADO').AsString := 'N';
    tirAprobado    : DataTable.FieldByName('APROBADO').AsString := 'S';
    else
      DataTable.FieldByName('APROBADO').AsString := 'N';
  end;
end;

procedure TBizRecepcionesDataTableRules.Show;
begin
  ShowEditor(IBizRecepciones, Self, etItem);
end;

initialization
  RegisterDataTableRules(BIZ_RECEPCIONES, TBizRecepcionesDataTableRules);
  RegisterDataTableRules(BIZ_RECEPCIONESALBARAN, TBizRecepcionesAlbaranDataTableRules);

end.

