git-svn-id: https://192.168.0.254/svn/Proyectos.EstudioCarnicero_ProGestion/trunk@4 1b8572a8-2d6b-b84e-8c90-20ed86fa4eca
229 lines
7.2 KiB
ObjectPascal
229 lines
7.2 KiB
ObjectPascal
{
|
|
===============================================================================
|
|
Copyright (©) 2006. Rodax Software.
|
|
===============================================================================
|
|
Los contenidos de este fichero son propiedad de Rodax Software titular del
|
|
copyright. Este fichero sólo podrá ser copiado, distribuido y utilizado,
|
|
en su totalidad o en parte, con el permiso escrito de Rodax Software, o de
|
|
acuerdo con los términos y condiciones establecidas en el acuerdo/contrato
|
|
bajo el que se suministra.
|
|
-----------------------------------------------------------------------------
|
|
Web: www.rodax-software.com
|
|
===============================================================================
|
|
Fecha primera versión: 22-05-2006
|
|
Versión actual: 1.0.0
|
|
Fecha versió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.
|