110 lines
2.9 KiB
ObjectPascal
110 lines
2.9 KiB
ObjectPascal
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;
|
|
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.
|