- preguntar fecha de cierre de una ejecución - mejorado el editor git-svn-id: https://192.168.0.254/svn/Proyectos.Tecsitel_FactuGES2/trunk@716 0c75b7a4-871f-7646-8a2f-f78d34cc349f
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.
|