git-svn-id: https://192.168.0.254/svn/Proyectos.Tecsitel_FactuGES2/trunk@744 0c75b7a4-871f-7646-8a2f-f78d34cc349f
201 lines
5.4 KiB
ObjectPascal
201 lines
5.4 KiB
ObjectPascal
unit uDataModuleObras;
|
|
|
|
interface
|
|
|
|
uses
|
|
SysUtils, Classes, DB, uDADataTable, uDABINAdapter,
|
|
uDAScriptingProvider, uDACDSDataTable, uROWinInetHttpChannel, uROTypes,
|
|
uRORemoteService, uROClient, uROBinMessage,
|
|
uDADesigntimeCall,
|
|
uIDataModuleObras, uBizObras, uDataModuleBase, uDARemoteDataAdapter,
|
|
uDADataStreamer, uDABin2DataStreamer, uDAInterfaces, uDAMemDataTable,
|
|
uRODynamicRequest;
|
|
|
|
|
|
type
|
|
TDataModuleObras = class(TDataModuleBase, IDataModuleObras)
|
|
RORemoteService: TRORemoteService;
|
|
Bin2DataStreamer: TDABin2DataStreamer;
|
|
rda_Obras: TDARemoteDataAdapter;
|
|
tbl_Obras: TDAMemDataTable;
|
|
ds_Obras: TDADataSource;
|
|
tbl_ObrasEjecucionesPedidosProveedor: TDAMemDataTable;
|
|
ds_ObrasEjecucionesPedidosProveedor: TDADataSource;
|
|
tbl_ObrasEjecucionesPresupuestos: TDAMemDataTable;
|
|
ds_ObrasEjecucionesPresupuestos: TDADataSource;
|
|
tbl_ObrasEjecuciones: TDAMemDataTable;
|
|
ds_ObrasEjecuciones: TDADataSource;
|
|
procedure DAClientDataModuleCreate(Sender: TObject);
|
|
protected
|
|
function _GetPresupuestos : IBizEjecucionPresupuestos;
|
|
function _GetPedidos : IBizEjecucionPedidosProveedor;
|
|
function _GetEjecuciones : IBizEjecucionesObra;
|
|
public
|
|
function GetEjecucionPresupuestos(const IDEjecucion: Integer) : IBizEjecucionPresupuestos;
|
|
function GetItems : IBizObra;
|
|
function GetItem(const ID : Integer) : IBizObra;
|
|
function NewItem : IBizObra;
|
|
function DarListaObras(const IDEmpresa: Integer): TStringList;
|
|
end;
|
|
|
|
implementation
|
|
|
|
{$R *.DFM}
|
|
|
|
uses
|
|
FactuGES_Intf, uDataModuleConexion, uDataTableUtils, cxControls,
|
|
schObrasClient_Intf;
|
|
|
|
{ TDataModuleObras }
|
|
|
|
procedure TDataModuleObras.DAClientDataModuleCreate(Sender: TObject);
|
|
begin
|
|
RORemoteService.Channel := dmConexion.Channel;
|
|
RORemoteService.Message := dmConexion.Message;
|
|
end;
|
|
|
|
function TDataModuleObras.NewItem: IBizObra;
|
|
begin
|
|
Result := GetItem(ID_NULO)
|
|
end;
|
|
|
|
function TDataModuleObras._GetEjecuciones: IBizEjecucionesObra;
|
|
var
|
|
AEjecuciones : TDAMemDataTable;
|
|
begin
|
|
ShowHourglassCursor;
|
|
try
|
|
AEjecuciones := CloneDataTable(tbl_ObrasEjecuciones);
|
|
with AEjecuciones do
|
|
begin
|
|
BusinessRulesID := BIZ_CLIENT_OBRA_EJECUCION;
|
|
DetailOptions := DetailOptions - [dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates];
|
|
end;
|
|
|
|
with TBizEjecucionesObra(AEjecuciones.BusinessEventsObj) do
|
|
begin
|
|
Presupuestos := _GetPresupuestos;
|
|
Pedidos := _GetPedidos;
|
|
end;
|
|
|
|
|
|
Result := (AEjecuciones as IBizEjecucionesObra);
|
|
finally
|
|
HideHourglassCursor;
|
|
end;
|
|
end;
|
|
|
|
function TDataModuleObras._GetPedidos: IBizEjecucionPedidosProveedor;
|
|
var
|
|
ATable : TDAMemDataTable;
|
|
begin
|
|
ShowHourglassCursor;
|
|
try
|
|
ATable := CloneDataTable(tbl_ObrasEjecucionesPedidosProveedor);
|
|
ATable.BusinessRulesID := BIZ_CLIENT_OBRA_EJECUCION_PEDIDO_PROVEEDOR;
|
|
Result := ATable as IBizEjecucionPedidosProveedor;
|
|
finally
|
|
HideHourglassCursor;
|
|
end;
|
|
end;
|
|
|
|
function TDataModuleObras._GetPresupuestos: IBizEjecucionPresupuestos;
|
|
var
|
|
ATable : TDAMemDataTable;
|
|
begin
|
|
ShowHourglassCursor;
|
|
try
|
|
ATable := CloneDataTable(tbl_ObrasEjecucionesPresupuestos);
|
|
ATable.BusinessRulesID := BIZ_CLIENT_OBRA_EJECUCION_PRESUPUESTO;
|
|
Result := ATable as IBizEjecucionPresupuestos;
|
|
finally
|
|
HideHourglassCursor;
|
|
end;
|
|
end;
|
|
|
|
function TDataModuleObras.DarListaObras(const IDEmpresa: Integer): TStringList;
|
|
var
|
|
ABinary : Binary;
|
|
begin
|
|
ABinary := (RORemoteService as IsrvObras).DarListaObras(IdEmpresa);
|
|
Result := TStringList.Create;
|
|
Result.LoadFromStream(ABinary);
|
|
end;
|
|
|
|
function TDataModuleObras.GetEjecucionPresupuestos(
|
|
const IDEjecucion: Integer): IBizEjecucionPresupuestos;
|
|
var
|
|
APresupuestos : TDAMemDataTable;
|
|
Condicion: TDAWhereExpression;
|
|
begin
|
|
ShowHourglassCursor;
|
|
try
|
|
APresupuestos := CloneDataTable(tbl_ObrasEjecucionesPresupuestos);
|
|
with APresupuestos do
|
|
begin
|
|
BusinessRulesID := BIZ_CLIENT_OBRA_EJECUCION_PRESUPUESTO;
|
|
|
|
with DynamicWhere do
|
|
begin
|
|
// (ID_EJECUCION = :ID)
|
|
Condicion := NewBinaryExpression(NewField('', fld_ObrasEjecucionesPresupuestosID_EJECUCION),
|
|
NewConstant(IDEjecucion, datInteger), dboEqual);
|
|
|
|
if IsEmpty then
|
|
Expression := Condicion
|
|
else
|
|
Expression := NewBinaryExpression(Expression, Condicion, dboAnd);
|
|
end;
|
|
end;
|
|
Result := (APresupuestos as IBizEjecucionPresupuestos);
|
|
finally
|
|
HideHourglassCursor;
|
|
end;
|
|
end;
|
|
|
|
|
|
function TDataModuleObras.GetItem(const ID: Integer): IBizObra;
|
|
var
|
|
Condicion: TDAWhereExpression;
|
|
begin
|
|
ShowHourglassCursor;
|
|
try
|
|
Result := Self.GetItems;
|
|
|
|
with Result.DataTable.DynamicWhere do
|
|
begin
|
|
// (ID = :ID)
|
|
Condicion := NewBinaryExpression(NewField('', fld_ObrasID), NewConstant(ID, datInteger), dboEqual);
|
|
|
|
if IsEmpty then
|
|
Expression := Condicion
|
|
else
|
|
Expression := NewBinaryExpression(Expression, Condicion, dboAnd);
|
|
end;
|
|
|
|
finally
|
|
HideHourglassCursor;
|
|
end;
|
|
end;
|
|
|
|
function TDataModuleObras.GetItems: IBizObra;
|
|
var
|
|
AObra : TDAMemDataTable;
|
|
begin
|
|
ShowHourglassCursor;
|
|
try
|
|
AObra := CloneDataTable(tbl_Obras);
|
|
AObra.BusinessRulesID := BIZ_CLIENT_OBRA;
|
|
|
|
with TBizObra(AObra.BusinessEventsObj) do
|
|
Ejecuciones := _GetEjecuciones;
|
|
|
|
Result := (AObra as IBizObra);
|
|
finally
|
|
HideHourglassCursor;
|
|
end;
|
|
end;
|
|
|
|
|
|
end.
|