git-svn-id: https://192.168.0.254/svn/Proyectos.ConstruccionesCNJ_FactuGES/trunk@4 6cb6b671-b4a0-dd4c-8bdc-3006503d97e9
285 lines
8.3 KiB
ObjectPascal
285 lines
8.3 KiB
ObjectPascal
unit uBizPedidosProveedor;
|
|
|
|
interface
|
|
|
|
uses
|
|
Classes, uDADataTable, schPedidosProveedorClient_Intf,
|
|
uBizContactos, uBizDetallesPedidoProveedor, uBizDocumentosAsociados;
|
|
|
|
const
|
|
BIZ_CLIENT_PEDIDO_PROVEEDOR = 'Client.PedidoProveedor';
|
|
|
|
SITUACION_PEDIDO_PENDIENTE = 'Pendiente';
|
|
SITUACION_PEDIDO_PARCIAL = 'Parcialmente recibido';
|
|
SITUACION_PEDIDO_RECIBIDO = 'Recibido';
|
|
|
|
type
|
|
IBizPedidoProveedor = interface(IPedidosProveedor)
|
|
['{D6F6129E-099A-4E7B-9FD3-C3C8174412A8}']
|
|
|
|
procedure SetProveedor(AValue : IBizProveedor);
|
|
function GetProveedor : IBizProveedor;
|
|
property Proveedor : IBizProveedor read GetProveedor write SetProveedor;
|
|
|
|
function GetDetalles: IBizDetallesPedidoProveedor;
|
|
procedure SetDetalles(Value: IBizDetallesPedidoProveedor);
|
|
property Detalles: IBizDetallesPedidoProveedor read GetDetalles write SetDetalles;
|
|
|
|
function EsNuevo : Boolean;
|
|
function DarListaSituaciones: TStringList;
|
|
|
|
//DOCUMENTOS ASOCIADOS
|
|
function GetGestorDocumentos: TGestorDocumentos;
|
|
procedure SetGestorDocumentos(Value: TGestorDocumentos);
|
|
property GestorDocumentos: TGestorDocumentos read GetGestorDocumentos write SetGestorDocumentos;
|
|
end;
|
|
|
|
TBizPedidoProveedor = class(TPedidosProveedorDataTableRules, IBizPedidoProveedor,
|
|
IBizDocumentosAsociados)
|
|
protected
|
|
FProveedor : IBizProveedor;
|
|
FDetalles : IBizDetallesPedidoProveedor;
|
|
FDetallesLink : TDADataSource;
|
|
|
|
//DOCUMENTOS ASOCIADOS
|
|
FGestorDocumentos: TGestorDocumentos;
|
|
function GetGestorDocumentos: TGestorDocumentos;
|
|
procedure SetGestorDocumentos(Value: TGestorDocumentos);
|
|
|
|
procedure SetProveedor(AValue : IBizProveedor);
|
|
function GetProveedor : IBizProveedor;
|
|
|
|
function GetDetalles: IBizDetallesPedidoProveedor;
|
|
procedure SetDetalles(Value: IBizDetallesPedidoProveedor);
|
|
|
|
procedure SetFECHA_CONFIRMACIONValue(const aValue: TDateTime); override;
|
|
procedure SetFECHA_ENTREGAValue(const aValue: TDateTime); override;
|
|
procedure SetFECHA_PEDIDOValue(const aValue: TDateTime); override;
|
|
|
|
procedure OnNewRecord(Sender: TDADataTable); override;
|
|
procedure BeforeDelete(Sender: TDADataTable); override;
|
|
procedure BeforeCancel(Sender: TDADataTable); override;
|
|
// procedure AfterCancel(Sender: TDADataTable); override;
|
|
procedure SetIDValue(const aValue: Integer); override;
|
|
procedure IniciarValoresPedidoNuevo;
|
|
public
|
|
function DarListaSituaciones: TStringList;
|
|
function EsNuevo : Boolean;
|
|
property Proveedor : IBizProveedor read GetProveedor write SetProveedor;
|
|
property Detalles: IBizDetallesPedidoProveedor read GetDetalles write SetDetalles;
|
|
|
|
//DOCUMENTOS ASOCIADOS
|
|
property GestorDocumentos: TGestorDocumentos read GetGestorDocumentos write SetGestorDocumentos;
|
|
|
|
constructor Create(aDataTable: TDADataTable); override;
|
|
destructor Destroy; override;
|
|
end;
|
|
|
|
implementation
|
|
|
|
uses
|
|
SysUtils, Variants, uDataModuleConfiguracion, uDataModuleUsuarios,
|
|
uDataTableUtils, DateUtils, uDateUtils;
|
|
|
|
{ TBizPedidoProveedor }
|
|
|
|
{procedure TBizPedidoProveedor.AfterCancel(Sender: TDADataTable);
|
|
begin
|
|
inherited;
|
|
//DOCUMENTOS ASOCIADOS
|
|
// GestorDocumentos.Directorio := ID;
|
|
end;}
|
|
|
|
procedure TBizPedidoProveedor.BeforeCancel(Sender: TDADataTable);
|
|
begin
|
|
if Assigned(GestorDocumentos) then
|
|
GestorDocumentos.procesarCancelTable;
|
|
end;
|
|
|
|
procedure TBizPedidoProveedor.BeforeDelete(Sender: TDADataTable);
|
|
begin
|
|
if Assigned(GestorDocumentos) then
|
|
GestorDocumentos.procesarDeleteTable;
|
|
end;
|
|
|
|
constructor TBizPedidoProveedor.Create(aDataTable: TDADataTable);
|
|
var
|
|
Ruta: Variant;
|
|
|
|
begin
|
|
inherited;
|
|
FProveedor := Nil;
|
|
FDetallesLink := TDADataSource.Create(NIL);
|
|
FDetallesLink.DataTable := aDataTable;
|
|
|
|
//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
|
|
|
|
//DOCUMENTOS ASOCIADOS
|
|
// FGestorDocumentos := TGestorDocumentos.Create(TDAStringArray.Create);//dmBase.darEstructuraDirNormativas);
|
|
// FGestorDocumentos.RootDocumentos := '\\roberto\E\Codigo\Output\Servidor\Documentos';
|
|
// aDataTable.BeforeCancel := BeforeCancel;
|
|
// aDataTable.AfterCancel := AfterCancel;
|
|
|
|
end;
|
|
|
|
function TBizPedidoProveedor.DarListaSituaciones: TStringList;
|
|
begin
|
|
Result := TStringList.Create;
|
|
with Result do
|
|
begin
|
|
Add(SITUACION_PEDIDO_PENDIENTE);
|
|
Add(SITUACION_PEDIDO_PARCIAL);
|
|
Add(SITUACION_PEDIDO_RECIBIDO);
|
|
end;
|
|
end;
|
|
|
|
destructor TBizPedidoProveedor.Destroy;
|
|
begin
|
|
FProveedor := NIL;
|
|
FDetalles := NIL;
|
|
FDetallesLink.Free;
|
|
FreeAndNil(FGestorDocumentos);
|
|
inherited;
|
|
end;
|
|
|
|
function TBizPedidoProveedor.EsNuevo: Boolean;
|
|
begin
|
|
Result := (ID < 0);
|
|
end;
|
|
|
|
function TBizPedidoProveedor.GetProveedor: IBizProveedor;
|
|
begin
|
|
Result := FProveedor;
|
|
end;
|
|
|
|
procedure TBizPedidoProveedor.IniciarValoresPedidoNuevo;
|
|
begin
|
|
ID_EMPRESA := dmUsuarios.IDEmpresaActual;
|
|
USUARIO := dmUsuarios.LoginInfo.Usuario;
|
|
FECHA_PEDIDO := DateOf(Date);
|
|
SITUACION := SITUACION_PEDIDO_PENDIENTE;
|
|
INCIDENCIAS_ACTIVAS := 0;
|
|
end;
|
|
|
|
function TBizPedidoProveedor.GetDetalles: IBizDetallesPedidoProveedor;
|
|
begin
|
|
Result := FDetalles;
|
|
end;
|
|
|
|
function TBizPedidoProveedor.GetGestorDocumentos: TGestorDocumentos;
|
|
begin
|
|
// ShowMessage('Estoy en GetGestorDocumentos' + #10#13 +
|
|
// 'Directorio anterior = ' + VarToStr(FGestorDocumentos.Directorio) + #10#13 +
|
|
// 'Directorio nuevo (ID) = ' + IntToStr(ID));
|
|
// if ID <> 0 then
|
|
if Assigned(FGestorDocumentos) then
|
|
FGestorDocumentos.Directorio := ID;
|
|
|
|
Result := FGestorDocumentos;
|
|
end;
|
|
|
|
procedure TBizPedidoProveedor.OnNewRecord(Sender: TDADataTable);
|
|
begin
|
|
inherited;
|
|
ID := GetRecNo; // -1, -2, -3...
|
|
IniciarValoresPedidoNuevo;
|
|
end;
|
|
|
|
procedure TBizPedidoProveedor.SetProveedor(AValue: IBizProveedor);
|
|
begin
|
|
FProveedor := AValue;
|
|
|
|
if Assigned(FProveedor) then
|
|
begin
|
|
if not FProveedor.DataTable.Active then
|
|
FProveedor.DataTable.Active := True;
|
|
|
|
if ID_PROVEEDOR <> FProveedor.ID then
|
|
begin
|
|
DataTable.Edit;
|
|
ID_PROVEEDOR := FProveedor.ID;
|
|
end;
|
|
end;
|
|
end;
|
|
|
|
procedure TBizPedidoProveedor.SetDetalles(Value: IBizDetallesPedidoProveedor);
|
|
begin
|
|
FDetalles := Value;
|
|
EnlazarMaestroDetalle(FDetallesLink, FDetalles);
|
|
end;
|
|
|
|
procedure TBizPedidoProveedor.SetFECHA_CONFIRMACIONValue(
|
|
const aValue: TDateTime);
|
|
begin
|
|
inherited;
|
|
if EsFechaVacia(aValue) then
|
|
DataTable.Fields[idx_PedidosProveedorFECHA_CONFIRMACION].AsVariant := Null
|
|
else
|
|
inherited;
|
|
end;
|
|
|
|
procedure TBizPedidoProveedor.SetFECHA_ENTREGAValue(const aValue: TDateTime);
|
|
begin
|
|
inherited;
|
|
if EsFechaVacia(aValue) then
|
|
DataTable.Fields[idx_PedidosProveedorFECHA_ENTREGA].AsVariant := Null
|
|
else
|
|
inherited;
|
|
end;
|
|
|
|
procedure TBizPedidoProveedor.SetFECHA_PEDIDOValue(const aValue: TDateTime);
|
|
begin
|
|
inherited;
|
|
if EsFechaVacia(aValue) then
|
|
DataTable.Fields[idx_PedidosProveedorFECHA_PEDIDO].AsVariant := Null
|
|
else
|
|
inherited;
|
|
end;
|
|
|
|
procedure TBizPedidoProveedor.SetGestorDocumentos(Value: TGestorDocumentos);
|
|
begin
|
|
FGestorDocumentos := Value;
|
|
end;
|
|
|
|
procedure TBizPedidoProveedor.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;
|
|
|
|
initialization
|
|
RegisterDataTableRules(BIZ_CLIENT_PEDIDO_PROVEEDOR, TBizPedidoProveedor);
|
|
|
|
finalization
|
|
|
|
end.
|
|
|