571 lines
17 KiB
ObjectPascal
571 lines
17 KiB
ObjectPascal
|
|
unit uBizObras;
|
|||
|
|
|
|||
|
|
interface
|
|||
|
|
|
|||
|
|
uses
|
|||
|
|
uDAInterfaces, uDADataTable, schObrasClient_Intf, uBizContactos,
|
|||
|
|
uDBSelectionListUtils;
|
|||
|
|
|
|||
|
|
const
|
|||
|
|
BIZ_CLIENT_OBRA = 'Client.Obra';
|
|||
|
|
BIZ_CLIENT_OBRA_EJECUCION = 'Client.Obra.Ejecucion';
|
|||
|
|
// BIZ_CLIENT_OBRA_EJECUCIONES_CERRADAS = 'Client.Obra.EjecucionesCerradas';
|
|||
|
|
// BIZ_CLIENT_OBRA_EJECUCION_ENCURSO = 'Client.Obra.EjecucionEnCurso';
|
|||
|
|
BIZ_CLIENT_OBRA_EJECUCION_PRESUPUESTO = 'Client.Obra.Ejecucion.Presupuesto';
|
|||
|
|
BIZ_CLIENT_OBRA_EJECUCION_PEDIDO_PROVEEDOR = 'Client.Obra.Ejecucion.PedidoProveedor';
|
|||
|
|
|
|||
|
|
type
|
|||
|
|
IBizEjecucionPresupuestos = interface(IObrasEjecucionesPresupuestos)
|
|||
|
|
['{F335B047-7559-4C40-8DA7-E06719D1F683}']
|
|||
|
|
function EsNuevo : Boolean;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
IBizEjecucionPedidosProveedor = interface(IObrasEjecucionesPedidosProveedor)
|
|||
|
|
['{404DB8A7-7D36-459B-8C6A-33139B40F2C5}']
|
|||
|
|
function EsNuevo : Boolean;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
IBizEjecucionesObra = interface(IObrasEjecuciones)
|
|||
|
|
['{6BAFA32B-39A5-4BC3-9F16-97A36745C3D9}']
|
|||
|
|
function EsNuevo : Boolean;
|
|||
|
|
function EnCurso : Boolean;
|
|||
|
|
procedure RecalcularBeneficio;
|
|||
|
|
|
|||
|
|
function GetPresupuestos: IBizEjecucionPresupuestos;
|
|||
|
|
procedure SetPresupuestos(Value: IBizEjecucionPresupuestos);
|
|||
|
|
property Presupuestos: IBizEjecucionPresupuestos read GetPresupuestos write SetPresupuestos;
|
|||
|
|
|
|||
|
|
function GetPedidos: IBizEjecucionPedidosProveedor;
|
|||
|
|
procedure SetPedidos(Value: IBizEjecucionPedidosProveedor);
|
|||
|
|
property Pedidos: IBizEjecucionPedidosProveedor read GetPedidos write SetPedidos;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
// IBizEjecucionesCerradasObra = interface(IObrasEjecucionesTerminadas)
|
|||
|
|
// ['{08CB6A7C-058C-4A07-AFED-64D861296BFE}']
|
|||
|
|
// {procedure SetSubcontrata(AValue : IBizProveedor);
|
|||
|
|
// function GetSubcontrata : IBizProveedor;
|
|||
|
|
// property Subcontrata : IBizProveedor read GetSubcontrata write SetSubcontrata;}
|
|||
|
|
//
|
|||
|
|
// // Esta propidad es para que el controlador pueda acceder directamente
|
|||
|
|
// // a la propiedad Cliente
|
|||
|
|
// {procedure _SetSubcontrata(AValue : IBizProveedor);
|
|||
|
|
// function _GetSubcontrata : IBizProveedor;
|
|||
|
|
// property _Subcontrata : IBizProveedor read _GetSubcontrata write _SetSubcontrata;}
|
|||
|
|
// end;
|
|||
|
|
//
|
|||
|
|
//
|
|||
|
|
// IBizEjecucionEnCursoObra = interface(IObrasEjecucionesEnCurso)
|
|||
|
|
// ['{DDEE3280-32B0-4C5C-AC14-9AADD641407D}']
|
|||
|
|
// function EsNuevo : Boolean;
|
|||
|
|
// {procedure SetSubcontrata(AValue : IBizProveedor);
|
|||
|
|
// function GetSubcontrata : IBizProveedor;
|
|||
|
|
// property Subcontrata : IBizProveedor read GetSubcontrata write SetSubcontrata;}
|
|||
|
|
//
|
|||
|
|
// // Esta propidad es para que el controlador pueda acceder directamente
|
|||
|
|
// // a la propiedad Cliente
|
|||
|
|
// {procedure _SetSubcontrata(AValue : IBizProveedor);
|
|||
|
|
// function _GetSubcontrata : IBizProveedor;
|
|||
|
|
// property _Subcontrata : IBizProveedor read _GetSubcontrata write _SetSubcontrata;}
|
|||
|
|
// end;
|
|||
|
|
|
|||
|
|
|
|||
|
|
IBizObra = interface(IObras)
|
|||
|
|
['{96A7EC59-23CB-44FF-B3CF-8679C6F001C8}']
|
|||
|
|
|
|||
|
|
procedure SetCliente(AValue : IBizCliente);
|
|||
|
|
function GetCliente : IBizCliente;
|
|||
|
|
property Cliente : IBizCliente read GetCliente write SetCliente;
|
|||
|
|
|
|||
|
|
// Esta propidad es para que el controlador pueda acceder directamente
|
|||
|
|
// a la propiedad Cliente
|
|||
|
|
procedure _SetCliente(AValue : IBizCliente);
|
|||
|
|
function _GetCliente : IBizCliente;
|
|||
|
|
property _Cliente : IBizCliente read _GetCliente write _SetCliente;
|
|||
|
|
|
|||
|
|
function GetEjecuciones: IBizEjecucionesObra;
|
|||
|
|
procedure SetEjecuciones(Value: IBizEjecucionesObra);
|
|||
|
|
property Ejecuciones: IBizEjecucionesObra read GetEjecuciones write SetEjecuciones;
|
|||
|
|
|
|||
|
|
function EsNuevo : Boolean;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
|
|||
|
|
TBizEjecucionPresupuestos = class(TObrasEjecucionesPresupuestosDataTableRules, IBizEjecucionPresupuestos)
|
|||
|
|
protected
|
|||
|
|
procedure BeforeInsert(Sender: TDADataTable); override;
|
|||
|
|
public
|
|||
|
|
function EsNuevo : Boolean;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
|
|||
|
|
TBizEjecucionPedidosProveedor = class(TObrasEjecucionesPedidosProveedorDataTableRules, IBizEjecucionPedidosProveedor)
|
|||
|
|
protected
|
|||
|
|
procedure BeforeInsert(Sender: TDADataTable); override;
|
|||
|
|
public
|
|||
|
|
function EsNuevo : Boolean;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
|
|||
|
|
TBizEjecucionesObra = class(TObrasEjecucionesDataTableRules, IBizEjecucionesObra)
|
|||
|
|
protected
|
|||
|
|
FPresupuestos : IBizEjecucionPresupuestos;
|
|||
|
|
FPresupuestosLink : TDADataSource;
|
|||
|
|
|
|||
|
|
FPedidos : IBizEjecucionPedidosProveedor;
|
|||
|
|
FPedidosLink : TDADataSource;
|
|||
|
|
|
|||
|
|
procedure BeforeInsert(Sender: TDADataTable); override;
|
|||
|
|
procedure OnNewRecord(Sender: TDADataTable); override;
|
|||
|
|
|
|||
|
|
function GetPresupuestos: IBizEjecucionPresupuestos;
|
|||
|
|
procedure SetPresupuestos(Value: IBizEjecucionPresupuestos);
|
|||
|
|
|
|||
|
|
function GetPedidos: IBizEjecucionPedidosProveedor;
|
|||
|
|
procedure SetPedidos(Value: IBizEjecucionPedidosProveedor);
|
|||
|
|
public
|
|||
|
|
function EsNuevo : Boolean;
|
|||
|
|
function EnCurso : Boolean;
|
|||
|
|
procedure RecalcularBeneficio;
|
|||
|
|
|
|||
|
|
constructor Create(aDataTable: TDADataTable); override;
|
|||
|
|
destructor Destroy; override;
|
|||
|
|
|
|||
|
|
property Presupuestos: IBizEjecucionPresupuestos read GetPresupuestos write SetPresupuestos;
|
|||
|
|
property Pedidos: IBizEjecucionPedidosProveedor read GetPedidos write SetPedidos;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
|
|||
|
|
// TBizEjecucionesCerradasObra = class(TObrasEjecucionesTerminadasDataTableRules, IBizEjecucionesCerradasObra)
|
|||
|
|
// protected
|
|||
|
|
//// FSubcontrata : IBizProveedor;
|
|||
|
|
//
|
|||
|
|
// procedure BeforeInsert(Sender: TDADataTable); override;
|
|||
|
|
// procedure OnNewRecord(Sender: TDADataTable); override;
|
|||
|
|
//
|
|||
|
|
//
|
|||
|
|
//{ procedure _SetSubcontrata(AValue : IBizProveedor);
|
|||
|
|
// function _GetSubcontrata : IBizProveedor;
|
|||
|
|
//
|
|||
|
|
// procedure SetSubcontrata(AValue : IBizProveedor);
|
|||
|
|
// function GetSubcontrata : IBizProveedor;}
|
|||
|
|
// public
|
|||
|
|
// constructor Create(aDataTable: TDADataTable); override;
|
|||
|
|
// destructor Destroy; override;
|
|||
|
|
//
|
|||
|
|
//{ property Subcontrata : IBizProveedor read GetSubcontrata write SetSubcontrata;
|
|||
|
|
// property _Subcontrata : IBizProveedor read _GetSubcontrata write _SetSubcontrata;}
|
|||
|
|
// end;
|
|||
|
|
//
|
|||
|
|
// TBizEjecucionEnCursoObra = class(TObrasEjecucionesEnCursoDataTableRules, IBizEjecucionEnCursoObra)
|
|||
|
|
// protected
|
|||
|
|
//// FSubcontrata : IBizProveedor;
|
|||
|
|
//
|
|||
|
|
// procedure BeforeInsert(Sender: TDADataTable); override;
|
|||
|
|
// procedure OnNewRecord(Sender: TDADataTable); override;
|
|||
|
|
//
|
|||
|
|
//{ procedure _SetSubcontrata(AValue : IBizProveedor);
|
|||
|
|
// function _GetSubcontrata : IBizProveedor;
|
|||
|
|
//
|
|||
|
|
// procedure SetSubcontrata(AValue : IBizProveedor);
|
|||
|
|
// function GetSubcontrata : IBizProveedor;}
|
|||
|
|
// public
|
|||
|
|
// function EsNuevo : Boolean;
|
|||
|
|
// constructor Create(aDataTable: TDADataTable); override;
|
|||
|
|
// destructor Destroy; override;
|
|||
|
|
//
|
|||
|
|
//{ property Subcontrata : IBizProveedor read GetSubcontrata write SetSubcontrata;
|
|||
|
|
// property _Subcontrata : IBizProveedor read _GetSubcontrata write _SetSubcontrata;}
|
|||
|
|
// end;
|
|||
|
|
|
|||
|
|
|
|||
|
|
TBizObra = class(TObrasDataTableRules, IBizObra, ISeleccionable)
|
|||
|
|
protected
|
|||
|
|
FSeleccionableInterface : ISeleccionable;
|
|||
|
|
FCliente : IBizCliente;
|
|||
|
|
|
|||
|
|
// FEjecucionEnCurso : IBizEjecucionEnCursoObra;
|
|||
|
|
// FEjecucionEnCursoLink : TDADataSource;
|
|||
|
|
|
|||
|
|
FEjecuciones : IBizEjecucionesObra;
|
|||
|
|
FEjecucionesLink : TDADataSource;
|
|||
|
|
|
|||
|
|
procedure SetCliente(AValue : IBizCliente);
|
|||
|
|
function GetCliente : IBizCliente;
|
|||
|
|
|
|||
|
|
procedure _SetCliente(AValue : IBizCliente);
|
|||
|
|
function _GetCliente : IBizCliente;
|
|||
|
|
|
|||
|
|
function GetEjecuciones: IBizEjecucionesObra;
|
|||
|
|
procedure SetEjecuciones(Value: IBizEjecucionesObra);
|
|||
|
|
|
|||
|
|
// function GetEjecucionEnCurso: IBizEjecucionEnCursoObra;
|
|||
|
|
// procedure SetEjecucionEnCurso(Value: IBizEjecucionEnCursoObra);
|
|||
|
|
|
|||
|
|
procedure OnNewRecord(Sender: TDADataTable); override;
|
|||
|
|
public
|
|||
|
|
constructor Create(aDataTable: TDADataTable); override;
|
|||
|
|
destructor Destroy; override;
|
|||
|
|
|
|||
|
|
function EsNuevo : Boolean;
|
|||
|
|
property Cliente : IBizCliente read GetCliente write SetCliente;
|
|||
|
|
property _Cliente : IBizCliente read _GetCliente write _SetCliente;
|
|||
|
|
property Ejecuciones: IBizEjecucionesObra read GetEjecuciones write SetEjecuciones;
|
|||
|
|
// property EjecucionEnCurso: IBizEjecucionEnCursoObra read GetEjecucionEnCurso write SetEjecucionEnCurso;
|
|||
|
|
|
|||
|
|
property SeleccionableInterface : ISeleccionable read FSeleccionableInterface
|
|||
|
|
write FSeleccionableInterface implements ISeleccionable;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
implementation
|
|||
|
|
|
|||
|
|
uses
|
|||
|
|
uFactuGES_App, DB, DateUtils, SysUtils, uDataTableUtils;
|
|||
|
|
|
|||
|
|
{ TBizEjecucionesCerradasObra }
|
|||
|
|
|
|||
|
|
procedure TBizEjecucionesObra.BeforeInsert(Sender: TDADataTable);
|
|||
|
|
var
|
|||
|
|
AMasterTable : TDADataTable;
|
|||
|
|
begin
|
|||
|
|
inherited;
|
|||
|
|
AMasterTable := DataTable.GetMasterDataTable;
|
|||
|
|
if Assigned(AMasterTable) and (AMasterTable.State = dsInsert) then
|
|||
|
|
AMasterTable.Post;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
constructor TBizEjecucionesObra.Create(aDataTable: TDADataTable);
|
|||
|
|
begin
|
|||
|
|
inherited;
|
|||
|
|
FPresupuestos := NIL;
|
|||
|
|
FPresupuestosLink := TDADataSource.Create(NIL);
|
|||
|
|
FPresupuestosLink.DataTable := aDataTable;
|
|||
|
|
|
|||
|
|
FPedidos := NIL;
|
|||
|
|
FPedidosLink := TDADataSource.Create(NIL);
|
|||
|
|
FPedidosLink.DataTable := aDataTable;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
destructor TBizEjecucionesObra.Destroy;
|
|||
|
|
begin
|
|||
|
|
FPresupuestos := NIL;
|
|||
|
|
FreeANDNIL(FPresupuestosLink);
|
|||
|
|
|
|||
|
|
FPedidos := NIL;
|
|||
|
|
FreeANDNIL(FPedidosLink);
|
|||
|
|
|
|||
|
|
inherited;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
function TBizEjecucionesObra.EnCurso: Boolean;
|
|||
|
|
begin
|
|||
|
|
Result := FECHA_FINIsNull;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
function TBizEjecucionesObra.EsNuevo: Boolean;
|
|||
|
|
begin
|
|||
|
|
Result := (ID < 0);
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
function TBizEjecucionesObra.GetPedidos: IBizEjecucionPedidosProveedor;
|
|||
|
|
begin
|
|||
|
|
Result := FPedidos;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
function TBizEjecucionesObra.GetPresupuestos: IBizEjecucionPresupuestos;
|
|||
|
|
begin
|
|||
|
|
Result := FPresupuestos;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
procedure TBizEjecucionesObra.OnNewRecord(Sender: TDADataTable);
|
|||
|
|
begin
|
|||
|
|
inherited;
|
|||
|
|
FECHA_INICIO := DateOf(Now);
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
procedure TBizEjecucionesObra.RecalcularBeneficio;
|
|||
|
|
begin
|
|||
|
|
Edit;
|
|||
|
|
IMPORTE_TOTAL := IMPORTE_INGRESOS - IMPORTE_GASTOS;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
procedure TBizEjecucionesObra.SetPedidos(
|
|||
|
|
Value: IBizEjecucionPedidosProveedor);
|
|||
|
|
begin
|
|||
|
|
FPedidos := Value;
|
|||
|
|
EnlazarMaestroDetalle(FPedidosLink, FPedidos);
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
procedure TBizEjecucionesObra.SetPresupuestos(Value: IBizEjecucionPresupuestos);
|
|||
|
|
begin
|
|||
|
|
FPresupuestos := Value;
|
|||
|
|
EnlazarMaestroDetalle(FPresupuestosLink, FPresupuestos);
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
{procedure TBizEjecucionesCerradasObra.SetSubcontrata(AValue: IBizProveedor);
|
|||
|
|
var
|
|||
|
|
bEnEdicion : Boolean;
|
|||
|
|
begin
|
|||
|
|
FSubcontrata := AValue;
|
|||
|
|
|
|||
|
|
if Assigned(FSubcontrata) then
|
|||
|
|
begin
|
|||
|
|
if not FSubcontrata.DataTable.Active then
|
|||
|
|
FSubcontrata.DataTable.Active := True;
|
|||
|
|
|
|||
|
|
if ID_SUBCONTRATA <> FSubcontrata.ID then
|
|||
|
|
begin
|
|||
|
|
bEnEdicion := (DataTable.State in dsEditModes);
|
|||
|
|
if not bEnEdicion then
|
|||
|
|
DataTable.Edit;
|
|||
|
|
|
|||
|
|
ID_SUBCONTRATA := FSubcontrata.ID;
|
|||
|
|
|
|||
|
|
DataTable.Post; //Muy importante ya que es necesario hacer un post de la cabecera antes de a<>adir detalles
|
|||
|
|
//si se quita el id de la cabecera y los detalles se desincroniza
|
|||
|
|
if bEnEdicion then
|
|||
|
|
DataTable.Edit;
|
|||
|
|
end;
|
|||
|
|
end;
|
|||
|
|
end;}
|
|||
|
|
|
|||
|
|
{function TBizEjecucionesCerradasObra._GetSubcontrata: IBizProveedor;
|
|||
|
|
begin
|
|||
|
|
Result := FSubcontrata;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
procedure TBizEjecucionesCerradasObra._SetSubcontrata(AValue: IBizProveedor);
|
|||
|
|
begin
|
|||
|
|
FSubcontrata := AValue;
|
|||
|
|
end;}
|
|||
|
|
|
|||
|
|
{ TBizEjecucionEnCursoObra }
|
|||
|
|
|
|||
|
|
//procedure TBizEjecucionEnCursoObra.BeforeInsert(Sender: TDADataTable);
|
|||
|
|
//var
|
|||
|
|
// AMasterTable : TDADataTable;
|
|||
|
|
//begin
|
|||
|
|
// inherited;
|
|||
|
|
// AMasterTable := DataTable.GetMasterDataTable;
|
|||
|
|
// if Assigned(AMasterTable) and (AMasterTable.State = dsInsert) then
|
|||
|
|
// AMasterTable.Post;
|
|||
|
|
//end;
|
|||
|
|
//
|
|||
|
|
//constructor TBizEjecucionEnCursoObra.Create(aDataTable: TDADataTable);
|
|||
|
|
//begin
|
|||
|
|
// inherited;
|
|||
|
|
//// FSubcontrata := NIL;
|
|||
|
|
//end;
|
|||
|
|
//
|
|||
|
|
//destructor TBizEjecucionEnCursoObra.Destroy;
|
|||
|
|
//begin
|
|||
|
|
//// FSubcontrata := NIL;
|
|||
|
|
// inherited;
|
|||
|
|
//end;
|
|||
|
|
//
|
|||
|
|
//function TBizEjecucionEnCursoObra.EsNuevo: Boolean;
|
|||
|
|
//begin
|
|||
|
|
// Result := (ID < 0);
|
|||
|
|
//end;
|
|||
|
|
//{
|
|||
|
|
//function TBizEjecucionEnCursoObra.GetSubcontrata: IBizProveedor;
|
|||
|
|
//begin
|
|||
|
|
// Result := FSubcontrata;
|
|||
|
|
//end;}
|
|||
|
|
//
|
|||
|
|
//procedure TBizEjecucionEnCursoObra.OnNewRecord(Sender: TDADataTable);
|
|||
|
|
//begin
|
|||
|
|
// inherited;
|
|||
|
|
// FECHA_INICIO := DateOf(Now);
|
|||
|
|
//end;
|
|||
|
|
|
|||
|
|
{procedure TBizEjecucionEnCursoObra.SetSubcontrata(AValue: IBizProveedor);
|
|||
|
|
var
|
|||
|
|
bEnEdicion : Boolean;
|
|||
|
|
begin
|
|||
|
|
FSubcontrata := AValue;
|
|||
|
|
|
|||
|
|
if Assigned(FSubcontrata) then
|
|||
|
|
begin
|
|||
|
|
if not FSubcontrata.DataTable.Active then
|
|||
|
|
FSubcontrata.DataTable.Active := True;
|
|||
|
|
|
|||
|
|
if ID_SUBCONTRATA <> FSubcontrata.ID then
|
|||
|
|
begin
|
|||
|
|
bEnEdicion := (DataTable.State in dsEditModes);
|
|||
|
|
if not bEnEdicion then
|
|||
|
|
DataTable.Edit;
|
|||
|
|
|
|||
|
|
ID_SUBCONTRATA := FSubcontrata.ID;
|
|||
|
|
|
|||
|
|
DataTable.Post; //Muy importante ya que es necesario hacer un post de la cabecera antes de a<>adir detalles
|
|||
|
|
//si se quita el id de la cabecera y los detalles se desincroniza
|
|||
|
|
if bEnEdicion then
|
|||
|
|
DataTable.Edit;
|
|||
|
|
end;
|
|||
|
|
end;
|
|||
|
|
end;}
|
|||
|
|
|
|||
|
|
{function TBizEjecucionEnCursoObra._GetSubcontrata: IBizProveedor;
|
|||
|
|
begin
|
|||
|
|
Result := FSubcontrata;
|
|||
|
|
end;}
|
|||
|
|
|
|||
|
|
{procedure TBizEjecucionEnCursoObra._SetSubcontrata(AValue: IBizProveedor);
|
|||
|
|
begin
|
|||
|
|
FSubcontrata := AValue;
|
|||
|
|
end;}
|
|||
|
|
|
|||
|
|
{ TBizObra }
|
|||
|
|
|
|||
|
|
constructor TBizObra.Create(aDataTable: TDADataTable);
|
|||
|
|
begin
|
|||
|
|
inherited;
|
|||
|
|
FCliente := NIL;
|
|||
|
|
|
|||
|
|
// FEjecucionEnCurso := NIL;
|
|||
|
|
// FEjecucionEnCursoLink := TDADataSource.Create(NIL);
|
|||
|
|
// FEjecucionEnCursoLink.DataTable := aDataTable;
|
|||
|
|
|
|||
|
|
FEjecuciones := NIL;
|
|||
|
|
FEjecucionesLink := TDADataSource.Create(NIL);
|
|||
|
|
FEjecucionesLink.DataTable := aDataTable;
|
|||
|
|
|
|||
|
|
FSeleccionableInterface := TSeleccionable.Create(aDataTable);
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
destructor TBizObra.Destroy;
|
|||
|
|
begin
|
|||
|
|
FCliente := NIL;
|
|||
|
|
|
|||
|
|
// FEjecucionEnCurso := NIL;
|
|||
|
|
// FreeANDNIL(FEjecucionEnCursoLink);
|
|||
|
|
|
|||
|
|
FEjecuciones := NIL;
|
|||
|
|
FreeANDNIL(FEjecucionesLink);
|
|||
|
|
|
|||
|
|
FSeleccionableInterface := NIL;
|
|||
|
|
inherited;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
function TBizObra.EsNuevo: Boolean;
|
|||
|
|
begin
|
|||
|
|
Result := (ID < 0);
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
function TBizObra.GetCliente: IBizCliente;
|
|||
|
|
begin
|
|||
|
|
Result := FCliente;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
//function TBizObra.GetEjecucionEnCurso: IBizEjecucionEnCursoObra;
|
|||
|
|
//begin
|
|||
|
|
// Result := FEjecucionEnCurso;
|
|||
|
|
//end;
|
|||
|
|
|
|||
|
|
function TBizObra.GetEjecuciones: IBizEjecucionesObra;
|
|||
|
|
begin
|
|||
|
|
Result := FEjecuciones;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
procedure TBizObra.OnNewRecord(Sender: TDADataTable);
|
|||
|
|
begin
|
|||
|
|
inherited;
|
|||
|
|
ID_EMPRESA := AppFactuGES.EmpresaActiva.ID;
|
|||
|
|
USUARIO := AppFactuGES.UsuarioActivo.UserName;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
procedure TBizObra.SetCliente(AValue: IBizCliente);
|
|||
|
|
var
|
|||
|
|
bEnEdicion : Boolean;
|
|||
|
|
begin
|
|||
|
|
FCliente := AValue;
|
|||
|
|
|
|||
|
|
if Assigned(FCliente) then
|
|||
|
|
begin
|
|||
|
|
if not FCliente.DataTable.Active then
|
|||
|
|
FCliente.DataTable.Active := True;
|
|||
|
|
|
|||
|
|
if ID_Cliente <> FCliente.ID then
|
|||
|
|
begin
|
|||
|
|
bEnEdicion := (DataTable.State in dsEditModes);
|
|||
|
|
if not bEnEdicion then
|
|||
|
|
DataTable.Edit;
|
|||
|
|
|
|||
|
|
ID_CLIENTE := FCliente.ID;
|
|||
|
|
|
|||
|
|
DataTable.Post; //Muy importante ya que es necesario hacer un post de la cabecera antes de a<>adir detalles
|
|||
|
|
//si se quita el id de la cabecera y los detalles se desincroniza
|
|||
|
|
if bEnEdicion then
|
|||
|
|
DataTable.Edit;
|
|||
|
|
end;
|
|||
|
|
end;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
//procedure TBizObra.SetEjecucionEnCurso(Value: IBizEjecucionEnCursoObra);
|
|||
|
|
//begin
|
|||
|
|
// FEjecucionEnCurso := Value;
|
|||
|
|
// EnlazarMaestroDetalle(FEjecucionEnCursoLink, FEjecucionEnCurso);
|
|||
|
|
//end;
|
|||
|
|
|
|||
|
|
procedure TBizObra.SetEjecuciones(Value: IBizEjecucionesObra);
|
|||
|
|
begin
|
|||
|
|
FEjecuciones := Value;
|
|||
|
|
EnlazarMaestroDetalle(FEjecucionesLink, FEjecuciones);
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
function TBizObra._GetCliente: IBizCliente;
|
|||
|
|
begin
|
|||
|
|
Result := FCliente;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
procedure TBizObra._SetCliente(AValue: IBizCliente);
|
|||
|
|
begin
|
|||
|
|
FCliente := AValue;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
{ TBizEjecucionPresupuestos }
|
|||
|
|
|
|||
|
|
procedure TBizEjecucionPresupuestos.BeforeInsert(Sender: TDADataTable);
|
|||
|
|
var
|
|||
|
|
AMasterTable : TDADataTable;
|
|||
|
|
begin
|
|||
|
|
inherited;
|
|||
|
|
AMasterTable := DataTable.GetMasterDataTable;
|
|||
|
|
if Assigned(AMasterTable) and (AMasterTable.State = dsInsert) then
|
|||
|
|
AMasterTable.Post;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
function TBizEjecucionPresupuestos.EsNuevo: Boolean;
|
|||
|
|
begin
|
|||
|
|
Result := (ID < 0);
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
{ TBizEjecucionPedidosProveedor }
|
|||
|
|
|
|||
|
|
procedure TBizEjecucionPedidosProveedor.BeforeInsert(Sender: TDADataTable);
|
|||
|
|
var
|
|||
|
|
AMasterTable : TDADataTable;
|
|||
|
|
begin
|
|||
|
|
inherited;
|
|||
|
|
AMasterTable := DataTable.GetMasterDataTable;
|
|||
|
|
if Assigned(AMasterTable) and (AMasterTable.State = dsInsert) then
|
|||
|
|
AMasterTable.Post;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
function TBizEjecucionPedidosProveedor.EsNuevo: Boolean;
|
|||
|
|
begin
|
|||
|
|
Result := (ID < 0);
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
initialization
|
|||
|
|
RegisterDataTableRules(BIZ_CLIENT_OBRA, TBizObra);
|
|||
|
|
RegisterDataTableRules(BIz_CLIENT_OBRA_EJECUCION, TBizEjecucionesObra);
|
|||
|
|
// RegisterDataTableRules(BIz_CLIENT_OBRA_EJECUCIONES_CERRADAS, TBizEjecucionesCerradasObra);
|
|||
|
|
// RegisterDataTableRules(BIz_CLIENT_OBRA_EJECUCION_ENCURSO, TBizEjecucionEnCursoObra);
|
|||
|
|
RegisterDataTableRules(BIZ_CLIENT_OBRA_EJECUCION_PRESUPUESTO, TBizEjecucionPresupuestos);
|
|||
|
|
RegisterDataTableRules(BIZ_CLIENT_OBRA_EJECUCION_PEDIDO_PROVEEDOR, TBizEjecucionPedidosProveedor);
|
|||
|
|
|
|||
|
|
finalization
|
|||
|
|
|
|||
|
|
end.
|