git-svn-id: https://192.168.0.254/svn/Proyectos.ConstruccionesCNJ_FactuGES/trunk@4 6cb6b671-b4a0-dd4c-8bdc-3006503d97e9
248 lines
6.9 KiB
ObjectPascal
248 lines
6.9 KiB
ObjectPascal
unit uBizMontajesCompleto;
|
|
|
|
interface
|
|
|
|
uses
|
|
uDADataTable, uBizMontajesDetalles, uBizPedidosMontaje, uBizCobrosMontaje,
|
|
schMontajesClient_Intf, uBizDocumentosAsociados;
|
|
|
|
const
|
|
BIZ_CLIENT_GASTOS_MONTAJE = 'Client.GastosMontaje';
|
|
BIZ_CLIENT_MONTAJE_COMPLETO = 'Client.Montaje.Completo';
|
|
|
|
type
|
|
IBizGastosMontaje = interface(IMontajes_Gastos)
|
|
['{B740859C-7326-437E-ACB4-2035DF9743BA}']
|
|
function EsNuevo: Boolean;
|
|
end;
|
|
|
|
IBizMontajeCompleto = interface(IBizMontajeDetalles)
|
|
['{6D72F72F-010D-4727-8002-239EDE0774F7}']
|
|
function GetGastos: IBizGastosMontaje;
|
|
procedure SetGastos(Value: IBizGastosMontaje);
|
|
property Gastos: IBizGastosMontaje read GetGastos write SetGastos;
|
|
|
|
procedure SetPedidos(AValue : IBizPedidoMontaje);
|
|
function GetPedidos : IBizPedidoMontaje;
|
|
property Pedidos : IBizPedidoMontaje read GetPedidos write SetPedidos;
|
|
|
|
procedure SetCobros(AValue : IBizCobroMontaje);
|
|
function GetCobros : IBizCobroMontaje;
|
|
property Cobros : IBizCobroMontaje read GetCobros write SetCobros;
|
|
|
|
//DOCUMENTOS ASOCIADOS
|
|
function GetGestorDocumentos: TGestorDocumentos;
|
|
procedure SetGestorDocumentos(Value: TGestorDocumentos);
|
|
property GestorDocumentos: TGestorDocumentos read GetGestorDocumentos write SetGestorDocumentos;
|
|
end;
|
|
|
|
//Clase de negocio de los gastos del montaje
|
|
TBizGastosMontaje = class(TMontajes_GastosDataTableRules, IBizGastosMontaje)
|
|
private
|
|
FContadorID: Integer;
|
|
protected
|
|
procedure OnNewRecord(Sender: TDADataTable); override;
|
|
public
|
|
function EsNuevo: Boolean;
|
|
constructor Create(aDataTable: TDADataTable); override;
|
|
end;
|
|
|
|
//Clase de negocio de montajes a los que le añadimos pedidos y cobros
|
|
TBizMontajeCompleto = class(TBizMontajeDetalles, IBizMontajeCompleto,
|
|
IBizDocumentosAsociados)
|
|
protected
|
|
FGastos : IBizGastosMontaje;
|
|
FGastosLink : TDADataSource;
|
|
FPedidos : IBizPedidoMontaje;
|
|
FCobros : IBizCobroMontaje;
|
|
|
|
//DOCUMENTOS ASOCIADOS
|
|
FGestorDocumentos: TGestorDocumentos;
|
|
function GetGestorDocumentos: TGestorDocumentos;
|
|
procedure SetGestorDocumentos(Value: TGestorDocumentos);
|
|
|
|
function GetGastos: IBizGastosMontaje;
|
|
procedure SetGastos(Value: IBizGastosMontaje);
|
|
procedure SetPedidos(AValue : IBizPedidoMontaje);
|
|
function GetPedidos : IBizPedidoMontaje;
|
|
procedure SetCobros(AValue : IBizCobroMontaje);
|
|
function GetCobros : IBizCobroMontaje;
|
|
|
|
procedure BeforeDelete(Sender: TDADataTable); override;
|
|
procedure BeforeCancel(Sender: TDADataTable); override;
|
|
procedure SetIDValue(const aValue: Integer); override;
|
|
|
|
public
|
|
property Gastos: IBizGastosMontaje read GetGastos write SetGastos;
|
|
property Pedidos : IBizPedidoMontaje read GetPedidos write SetPedidos;
|
|
property Cobros : IBizCobroMontaje read GetCobros write SetCobros;
|
|
|
|
//DOCUMENTOS ASOCIADOS
|
|
property GestorDocumentos: TGestorDocumentos read GetGestorDocumentos write SetGestorDocumentos;
|
|
|
|
constructor Create(aDataTable: TDADataTable); override;
|
|
destructor Destroy; override;
|
|
end;
|
|
|
|
implementation
|
|
|
|
uses SysUtils, Variants, uDataModuleConfiguracion, uDataTableUtils;
|
|
|
|
{ TBizMontajeCompleto }
|
|
|
|
procedure TBizMontajeCompleto.BeforeCancel(Sender: TDADataTable);
|
|
begin
|
|
if Assigned(GestorDocumentos) then
|
|
GestorDocumentos.procesarCancelTable;
|
|
end;
|
|
|
|
procedure TBizMontajeCompleto.BeforeDelete(Sender: TDADataTable);
|
|
begin
|
|
if Assigned(GestorDocumentos) then
|
|
GestorDocumentos.procesarDeleteTable;
|
|
end;
|
|
|
|
constructor TBizMontajeCompleto.Create(aDataTable: TDADataTable);
|
|
var
|
|
Ruta: Variant;
|
|
|
|
begin
|
|
inherited;
|
|
FGastosLink := TDADataSource.Create(NIL);
|
|
FGastosLink.DataTable := aDataTable;
|
|
FPedidos := Nil;
|
|
FCobros := Nil;
|
|
|
|
//DOCUMENTOS ASOCIADOS
|
|
//En caso de no poder acceder a la ruta de red (Caso de dos tiendas conectadas por internet)
|
|
//deshabilitamos el gestor de documentos
|
|
// showmessage(ExtractFilePath(Application.ExeName) + 'Documentos' + PathDelim);
|
|
Ruta := dmConfiguracion.darValor(CTE_DOCUMENTOS);
|
|
if (not VarIsNull(Ruta)) and (DirectoryExists(Ruta)) then
|
|
begin
|
|
FGestorDocumentos := TGestorDocumentos.Create(Nil);
|
|
FGestorDocumentos.RootDocumentos := dmConfiguracion.darValor(CTE_DOCUMENTOS);
|
|
aDataTable.BeforeCancel := BeforeCancel;
|
|
// aDataTable.AfterCancel := AfterCancel;
|
|
end
|
|
else
|
|
FGestorDocumentos := Nil
|
|
end;
|
|
|
|
destructor TBizMontajeCompleto.Destroy;
|
|
begin
|
|
FPedidos := Nil;
|
|
FCobros := Nil;
|
|
FGastos := NIL;
|
|
FGastosLink.Free;
|
|
FreeAndNil(FGestorDocumentos);
|
|
inherited;
|
|
end;
|
|
|
|
function TBizMontajeCompleto.GetCobros: IBizCobroMontaje;
|
|
begin
|
|
Result := FCobros;
|
|
end;
|
|
|
|
function TBizMontajeCompleto.GetGastos: IBizGastosMontaje;
|
|
begin
|
|
Result := FGastos;
|
|
end;
|
|
|
|
function TBizMontajeCompleto.GetGestorDocumentos: TGestorDocumentos;
|
|
begin
|
|
if Assigned(FGestorDocumentos) then
|
|
FGestorDocumentos.Directorio := ID;
|
|
|
|
Result := FGestorDocumentos;
|
|
end;
|
|
|
|
function TBizMontajeCompleto.GetPedidos: IBizPedidoMontaje;
|
|
begin
|
|
Result := FPedidos;
|
|
end;
|
|
|
|
procedure TBizMontajeCompleto.SetCobros(AValue: IBizCobroMontaje);
|
|
begin
|
|
FCobros := AValue;
|
|
|
|
if Assigned(FCobros) then
|
|
begin
|
|
if not FCobros.DataTable.Active then
|
|
FCobros.DataTable.Active := True;
|
|
end;
|
|
end;
|
|
|
|
procedure TBizMontajeCompleto.SetGastos(Value: IBizGastosMontaje);
|
|
begin
|
|
FGastos := Value;
|
|
EnlazarMaestroDetalle(FGastosLink, FGastos);
|
|
end;
|
|
|
|
procedure TBizMontajeCompleto.SetGestorDocumentos(Value: TGestorDocumentos);
|
|
begin
|
|
FGestorDocumentos := Value;
|
|
end;
|
|
|
|
procedure TBizMontajeCompleto.SetIDValue(const aValue: Integer);
|
|
begin
|
|
// frViewDocumentosAsociados.DeshabilitarDocumentos;
|
|
|
|
try
|
|
if Assigned(GestorDocumentos) then
|
|
GestorDocumentos.Directorio := aValue;
|
|
except
|
|
on E: Exception do
|
|
begin
|
|
// Error := True;
|
|
// ErrorText := E.Message;
|
|
// DisplayValue := frViewObra.frViewDatosObra.edtNombre.EditValue;
|
|
end;
|
|
end;
|
|
|
|
// frViewDocumentosAsociados.HabilitarDocumentos;
|
|
|
|
inherited;
|
|
end;
|
|
|
|
procedure TBizMontajeCompleto.SetPedidos(AValue: IBizPedidoMontaje);
|
|
begin
|
|
FPedidos := AValue;
|
|
|
|
if Assigned(FPedidos) then
|
|
begin
|
|
if not FPedidos.DataTable.Active then
|
|
FPedidos.DataTable.Active := True;
|
|
end;
|
|
end;
|
|
|
|
{ TBizGastosMontaje }
|
|
|
|
constructor TBizGastosMontaje.Create(aDataTable: TDADataTable);
|
|
begin
|
|
inherited Create(aDataTable);
|
|
FContadorID := -1;
|
|
end;
|
|
|
|
function TBizGastosMontaje.EsNuevo: Boolean;
|
|
begin
|
|
Result := (ID < 0);
|
|
end;
|
|
|
|
procedure TBizGastosMontaje.OnNewRecord(Sender: TDADataTable);
|
|
begin
|
|
inherited;
|
|
ID := FContadorID; // -1, -2, -3...
|
|
FECHA_GASTO := Date;
|
|
Dec(FContadorID);
|
|
end;
|
|
|
|
initialization
|
|
RegisterDataTableRules(BIZ_CLIENT_GASTOS_MONTAJE, TBizGastosMontaje);
|
|
RegisterDataTableRules(BIZ_CLIENT_MONTAJE_COMPLETO, TBizMontajeCompleto);
|
|
|
|
finalization
|
|
|
|
end.
|
|
|