unit uDataModuleMontajesCompleto;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, uDataModuleMontajesDetalle, DB, uDADataTable, uDAScriptingProvider,
  uDACDSDataTable, uROClient, uROBinMessage, uROWinInetHttpChannel,
  uDADesigntimeCall, uDABINAdapter, uROServiceComponent, uRORemoteService,
  uIDataModuleMontajesCompleto, uBizMontajesCompleto;

type
  TDataModuleMontajesCompleto = class(TDataModuleMontajesDetalles, IDataModuleMontajesCompleto)
    tbl_Montajes_Gastos: TDACDSDataTable;
    ds_Montajes_Gastos: TDADataSource;
  protected
    function _GetGastos : IBizGastosMontaje;
    procedure AsignarClaseNegocio(var AMontaje: TDACDSDataTable); override;
    function darNombreGenerador(DataSetName: String): String; override;
  end;

implementation
{$R *.dfm}

uses cxControls, uBizMontajesDetalles, schMontajesClient_Intf;

{ TDataModuleMontajesCompleto }

procedure TDataModuleMontajesCompleto.AsignarClaseNegocio(var AMontaje: TDACDSDataTable);
begin
  AMontaje.BusinessRulesID := BIZ_CLIENT_MONTAJE_COMPLETO;

  with TBizMontajeCompleto(AMontaje.BusinessEventsObj) do
  begin
    Detalles := _GetDetalles;
    Gastos := _GetGastos;
  end;
end;

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

  if DataSetName = nme_Montajes_Gastos then
  Result := 'GEN_MONTAJES_GASTOS_ID';
end;

function TDataModuleMontajesCompleto._GetGastos: IBizGastosMontaje;
var
  AGastos : TDACDSDataTable;
begin
  ShowHourglassCursor;
  try
    AGastos := _CloneDataTable(tbl_Montajes_Gastos);
    with AGastos do
    begin
      BusinessRulesID := BIZ_CLIENT_GASTOS_MONTAJE;
      DetailOptions := DetailOptions -
        [dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates];
    end;
    Result := (AGastos as IBizGastosMontaje);
  finally
    HideHourglassCursor;
  end;
end;

end.
