unit uDataModuleMontajesDetalle;

interface

uses
  Classes, DB, uDADataTable, uDAScriptingProvider, uDACDSDataTable, uDADesigntimeCall,
  uDABINAdapter, uROClient, uROServiceComponent, uRORemoteService, uROBinMessage,
  uROWinInetHttpChannel,
  uBizMontajesDetalles, uIDataModuleMontajesDetalle, uDataModuleMontajes;

type
  TDataModuleMontajesDetalles = class(TDataModuleMontajes, IDataModuleMontajesDetalle)
    tbl_Montajes_Detalles: TDACDSDataTable;
    ds_Montajes_Detalles: TDADataSource;
  protected
    function _GetDetalles : IBizDetallesMontaje;
    procedure AsignarClaseNegocio(var AMontaje: TDACDSDataTable); override;
    function darNombreGenerador(DataSetName: String): String; override;    
  end;

implementation
{$R *.dfm}

uses cxControls, schMontajesClient_Intf;

{ TDataModuleMontajes }

procedure TDataModuleMontajesDetalles.AsignarClaseNegocio(var AMontaje: TDACDSDataTable);
begin
  AMontaje.BusinessRulesID := BIZ_CLIENT_MONTAJE_DETALLES;

  with TBizMontajeDetalles(AMontaje.BusinessEventsObj) do
  begin
    Detalles := _GetDetalles;
  end;
end;

function TDataModuleMontajesDetalles.darNombreGenerador(DataSetName: String): String;
begin
  Result := inherited darNombreGenerador(DataSetName);

  if DataSetName = nme_Montajes_Detalles then
  Result := 'GEN_MONTAJES_DETALLES_ID';
end;

function TDataModuleMontajesDetalles._GetDetalles: IBizDetallesMontaje;
var
  ADetalles : TDACDSDataTable;
begin
  ShowHourglassCursor;
  try
    ADetalles := _CloneDataTable(tbl_Montajes_Detalles);
    with ADetalles do
    begin
      BusinessRulesID := BIZ_CLIENT_DETALLES_MONTAJE;
      DetailOptions := DetailOptions -
        [dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates];
    end;
    Result := (ADetalles as IBizDetallesMontaje);
  finally
    HideHourglassCursor;
  end;
end;

end.
