ProGestion/Modulos/Obras/Cliente/uDataModuleObras.pas

229 lines
7.2 KiB
ObjectPascal
Raw Normal View History

{
===============================================================================
Copyright (<EFBFBD>) 2006. Rodax Software.
===============================================================================
Los contenidos de este fichero son propiedad de Rodax Software titular del
copyright. Este fichero s<EFBFBD>lo podr<EFBFBD> ser copiado, distribuido y utilizado,
en su totalidad o en parte, con el permiso escrito de Rodax Software, o de
acuerdo con los t<EFBFBD>rminos y condiciones establecidas en el acuerdo/contrato
bajo el que se suministra.
-----------------------------------------------------------------------------
Web: www.rodax-software.com
===============================================================================
Fecha primera versi<EFBFBD>n: 22-05-2006
Versi<EFBFBD>n actual: 1.0.0
Fecha versi<EFBFBD>n actual: 22-05-2006
===============================================================================
Modificaciones:
Fecha Comentarios
---------------------------------------------------------------------------
===============================================================================
}
unit uDataModuleObras;
interface
uses {vcl:} SysUtils, Classes, DB, DBClient,
{RemObjects:} uDAClientDataModule, uDADataTable, uDABINAdapter,
uROServiceComponent, uRORemoteService, uROClient, uROBinMessage,
uROWinInetHttpChannel, uDAScriptingProvider, uDACDSDataTable,
uBizObra;
type
TdmObras = class(TDAClientDataModule)
DABINAdapter: TDABINAdapter;
RORemoteService: TRORemoteService;
tbl_Obras: TDACDSDataTable;
ds_Obras: TDADataSource;
tbl_PresupuestosObra: TDACDSDataTable;
ds_PresupuestosObra: TDADataSource;
tbl_ContactosObra: TDACDSDataTable;
ds_ContactosObra: TDADataSource;
tbl_ProyectosObra: TDACDSDataTable;
ds_ProyectosObra: TDADataSource;
procedure DAClientDataModuleCreate(Sender: TObject);
public
function GetDataTableItems(Const IDBusiness: String): TDACDSDataTable;
function GetItems: IBizObra;
// function GetItemsSeleccionados(ASource : IBizObra): IBizObra;
// function GetItem(Codigo: Integer): IBizObra;
function getCodigoObra: Integer;
function getCodigoPresupuesto: Integer;
function getCodigoProyecto: Integer;
end;
var
dmObras: TdmObras;
implementation
{$R *.DFM}
uses
Controls, Forms, uDAInterfaces, DataAbstract_Intf, FactuGES_Intf,
uDataTableUtils, uROTypes, uEditorPreview,
Dialogs, schObrasClient_Intf, uDataModuleBase, uBizContacto, cxControls;
const
MAX_RECORDS = 100;
{
********************************* TdmObras *********************************
}
procedure TdmObras.DAClientDataModuleCreate(Sender: TObject);
begin
RORemoteService.Channel := dmBase.Channel;
RORemoteService.Message := dmBase.Message;
end;
function TdmObras.GetItems: IBizObra;
begin
Result := (GetDataTableItems(BIZ_OBRA) as IBizObra);
end;
function TdmObras.getCodigoObra: Integer;
begin
Result := (RORemoteService as IsrvObras).GetCodigo('GEN_OBRAS');
end;
function TdmObras.getCodigoPresupuesto: Integer;
begin
Result := (RORemoteService as IsrvObras).GetCodigo('GEN_PRESUPUESTOS');
end;
function TdmObras.getCodigoProyecto: Integer;
begin
Result := (RORemoteService as IsrvObras).GetCodigo('GEN_PROYECTOS');
end;
{function TdmObras.GetItemsSeleccionados(ASource : IBizObra): IBizObra;
var
aObj : ISelectedRowList;
dtObra : IBizObra;
i : integer;
Cadena: Variant;
begin
if Supports(ASource, ISelectedRowList, aObj) then
begin
if (aObj.SelectedRows.Count = 1) then
begin
ASource.DataTable.GotoBookmark(aObj.SelectedRows[0]);
Result := GetItem(ASource.CODIGO);
Exit;
end
else
dtObra := GetItems;
end
else
raise Exception.Create('Interface no soportada (GetItemsSeleccionados)');
//Si esta abierta cerramos para poner el where
if dtObra.DataTable.Active then
dtObra.DataTable.Active := False;
with dtObra.DataTable.Where do
begin
Cadena := '';
for i := 0 to aObj.SelectedRows.Count - 1 do
begin
ASource.DataTable.GotoBookmark(aObj.SelectedRows[i]);
if Cadena <> '' then Cadena:= Cadena + ', ';
Cadena:= Cadena + IntToStr(ASource.CODIGO);
end;
Clear;
Cadena := '(' + Cadena + ')';
AddCondition('CODIGO', cIn, Cadena);
end;
Result := dtObra;
end; }
{function TdmObras.GetItem(Codigo: Integer): IBizObra;
var
AObra: IBizObra;
begin
try
AObra := dmObras.GetItems;
with AObra.DataTable do
begin
if Active then Active := False;
Where.Clear;
Where.AddText('OBRAS.CODIGO' + ' = ' + IntToStr(Codigo));
Active := True;
end;
Result := AObra;
finally
AObra := Nil;
end;
end;}
function TdmObras.GetDataTableItems(const IDBusiness: String): TDACDSDataTable;
var
dtObras: TDACDSDataTable;
dtContactosObra: TDACDSDataTable;
dtPresupuestosObra: TDACDSDataTable;
dtProyectosObra: TDACDSDataTable;
begin
ShowHourglassCursor;
try
dtObras := TDACDSDataTable.Create(NIL);
CloneDataTable(tbl_Obras, dtObras);
with dtObras do
begin
BusinessRulesID := IDBusiness;
FieldByName(fld_ObrasFECHAINIOBR).BusinessRulesID := BIZ_FECINIFIN;
FieldByName(fld_ObrasFECHAFINOBR).BusinessRulesID := BIZ_FECINIFIN;
FieldByName(fld_ObrasAPLICAHONORARIOS).BusinessRulesID := BIZ_CALCULOHONORARIOS;
FieldByName(fld_ObrasHONORARIOS).BusinessRulesID := BIZ_CALCULOHONORARIOS;
FieldByName(fld_ObrasTOTALPRESUPUESTOSINI).BusinessRulesID := BIZ_CALCULOHONORARIOS;
FieldByName(fld_ObrasTOTALPRESUPUESTOSFIN).BusinessRulesID := BIZ_CALCULOHONORARIOS;
end;
dtContactosObra := TDACDSDataTable.Create(NIL);
CloneDataTable(tbl_ContactosObra, dtContactosObra);
with dtContactosObra do
begin
BusinessRulesID := BIZ_CONTACTOOBRA;
end;
(dtObras as IBizObra).Contactos := (dtContactosObra as IBizContactosObra);
(dtObras as IBizObra).Contactos.Obra := (dtObras as IBizObra);
dtPresupuestosObra := TDACDSDataTable.Create(NIL);
CloneDataTable(tbl_PresupuestosObra, dtPresupuestosObra);
with dtPresupuestosObra do
begin
BusinessRulesID := BIZ_PRESUPUESTOOBRA;
FieldByName(fld_PresupuestosObraRETENCION).BusinessRulesID := BIZ_RETENCION;
FieldByName(fld_PresupuestosObraPRESUPUESTOFINAL).BusinessRulesID := BIZ_RETENCION;
end;
dtProyectosObra := TDACDSDataTable.Create(NIL);
CloneDataTable(tbl_ProyectosObra, dtProyectosObra);
with dtProyectosObra do
begin
BusinessRulesID := BIZ_PROYECTOSOBRA;
end;
(dtObras as IBizObra).Proyectos := (dtProyectosObra as IBizProyectosObra);
(dtObras as IBizObra).Presupuestos := (dtPresupuestosObra as IBizPresupuestosObra);
(dtObras as IBizObra).Contactos.Presupuestos := (dtObras as IBizObra).Presupuestos;
(dtObras as IBizObra).Presupuestos.Obra := (dtObras as IBizObra);
(dtObras as IBizObra).Proyectos.Obra := (dtObras as IBizObra);
Result := dtObras;
finally
HideHourglassCursor;
end;
end;
initialization
dmObras := TdmObras.Create(nil);
finalization
FreeAndNil(dmObras);
end.