unit uDataModuleEmpleados; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, uDataModuleContactos, DB, uDADataTable, uDAScriptingProvider, uDACDSDataTable, uDABINAdapter, 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; var Condicion: TDAWhereExpression; begin ShowHourglassCursor; try Result := Self.GetItems; with Result.DataTable.DynamicWhere do begin // (ID = :ID) Condicion := NewBinaryExpression(NewField('', fld_ContactosID), NewConstant(ID, datInteger), dboEqual); if IsEmpty then Expression := Condicion else Expression := NewBinaryExpression(Expression, Condicion, dboAnd); 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.