Tecsitel_FactuGES2/Source/Modulos/Contactos/Data/uDataModuleEmpleados.pas
david e7e45f1323 - #12 -> Enviar documentos por correo electrónico. Adaptación de los módulos (sin terminar)
- En los controladores, cambiar TObservador por TControllerBase
- Limpieza de código y warnings.


git-svn-id: https://192.168.0.254/svn/Proyectos.Tecsitel_FactuGES2/trunk@528 0c75b7a4-871f-7646-8a2f-f78d34cc349f
2008-08-22 14:52:35 +00:00

126 lines
3.3 KiB
ObjectPascal

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, uIntegerListUtils;
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;
function DarListaContratosEmpleado : TStringList;
// Report
function GetReport(const ListaID: TIntegerList): Binary;
end;
implementation
{$R *.dfm}
uses
FactuGES_Intf, cxControls, schContactosClient_Intf, uDataTableUtils,
uStringsUtils;
{ TDataModuleVendedores }
function TDataModuleEmpleados.DarListaContratosEmpleado: TStringList;
begin
Result := TStringList.Create;
StringToStrings((RORemoteService as IsrvContactos).DarListaContratosEmpleados, '|', Result);
end;
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 ListaID: TIntegerList): Binary;
var
AParam : TIntegerArray;
begin
AParam := ListaID.ToIntegerArray;
try
Result := (RORemoteService as IsrvContactos).GenerarInformeFichaEmpleado(AParam)
finally
FreeANDNil(AParam);
end;
end;
function TDataModuleEmpleados.NewItem: IBizEmpleado;
begin
Result := GetItem(ID_NULO)
end;
end.