unit uDataModuleEmpleados; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, uDataModuleContactos, DB, uDADataTable, uDAScriptingProvider, uDACDSDataTable, uDABINAdapter, uROServiceComponent, uRORemoteService, uROClient, uROBinMessage, uROWinInetHttpChannel, uBizGruposEmpleado, uROTypes, uIDataModuleEmpleados, uBizContactos, uDADesigntimeCall, uIDataModuleFichasEmpleadoReport, uDAInterfaces, uDAMemDataTable, uDADataStreamer, uDABin2DataStreamer, uDARemoteDataAdapter; type TDataModuleEmpleados = class(TDataModuleContactos, IDataModuleEmpleados, IDataModuleFichasEmpleadoReport) tbl_Empleados: TDAMemDataTable; ds_Empleados: TDADataSource; tbl_GruposEmpleado: TDAMemDataTable; ds_GruposEmpleado: TDADataSource; protected public function GetItem(const ID : Integer) : IBizEmpleado; function NewItem : IBizEmpleado; function GetItems : IBizEmpleado; function GetGruposEmpleado : IBizGrupoEmpleado; // Report function GetReport(const AFichaID: String): Binary; end; implementation {$R *.dfm} uses FactuGES_Intf, cxControls, schContactosClient_Intf, uDataTableUtils; { TDataModuleVendedores } function TDataModuleEmpleados.GetGruposEmpleado: IBizGrupoEmpleado; var AGrupoEmpleado : TDAMemDataTable; begin ShowHourglassCursor; try AGrupoEmpleado := CloneDataTable(tbl_GruposEmpleado); AGrupoEmpleado.BusinessRulesID := BIZ_CLIENT_GRUPOSEMPLEADO; Result := (AGrupoEmpleado as IBizGrupoEmpleado); finally HideHourglassCursor; end; end; function TDataModuleEmpleados.GetItem(const ID: Integer): IBizEmpleado; begin ShowHourglassCursor; try Result := Self.GetItems; with Result.DataTable.DynamicWhere do begin // (ID = :ID) Expression := NewBinaryExpression(NewField('', fld_ContactosID), NewConstant(ID, datInteger), dboEqual); end; finally HideHourglassCursor; end; end; function TDataModuleEmpleados.GetItems: IBizEmpleado; var AContacto : TDAMemDataTable; begin ShowHourglassCursor; try AContacto := CloneDataTable(tbl_Empleados); AContacto.BusinessRulesID := BIZ_CLIENT_EMPLEADO; with TBizEmpleado(AContacto.BusinessEventsObj) do begin DatosBancarios := _GetDatosBancarios; end; Result := (AContacto as IBizEmpleado); finally HideHourglassCursor; end; end; function TDataModuleEmpleados.GetReport(const AFichaID: String): Binary; begin Result := (RORemoteService as IsrvContactos).GenerateFichaEmpleadoReport(AFichaID); end; function TDataModuleEmpleados.NewItem: IBizEmpleado; begin Result := GetItem(ID_NULO) end; end.