unit uViewDocumentosPedidoProveedor; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, uViewDocumentos, ActnList, TB2Item, TBX, TB2Dock, TB2Toolbar, cxControls, cxContainer, uBizPedidosProveedor, uPedidosProveedorController, ImgList, PngImageList, ComCtrls, Menus; type IViewDocumentosPedidoProveedor = interface ['{83AFBD29-750D-4564-ADAE-468BDBE4C424}'] function GetController : IPedidosProveedorController; procedure SetController (const Value : IPedidosProveedorController); property Controller : IPedidosProveedorController read GetController write SetController; function GetPedido: IBizPedidoProveedor; procedure SetPedido(const Value: IBizPedidoProveedor); property Pedido: IBizPedidoProveedor read GetPedido write SetPedido; end; TfrViewDocumentosPedidoProveedor = class(TfrViewDocumentos, IViewDocumentosPedidoProveedor) private FController : IPedidosProveedorController; FPedido: IBizPedidoProveedor; function GetController : IPedidosProveedorController; procedure SetController (const Value : IPedidosProveedorController); function GetPedido: IBizPedidoProveedor; procedure SetPedido(const Value: IBizPedidoProveedor); protected procedure Sincronizar; override; function RecuperarFicheroServidor(const NombreFichero: String; const DirectorioDestino: String): Boolean; override; public property Controller : IPedidosProveedorController read GetController write SetController; property Pedido: IBizPedidoProveedor read GetPedido write SetPedido; end; var frViewDocumentosPedidoProveedor: TfrViewDocumentosPedidoProveedor; implementation {$R *.dfm} { TfrViewDocumentosContrato } function TfrViewDocumentosPedidoProveedor.GetController: IPedidosProveedorController; begin Result := FController; end; function TfrViewDocumentosPedidoProveedor.GetPedido: IBizPedidoProveedor; begin Result := FPedido; end; function TfrViewDocumentosPedidoProveedor.RecuperarFicheroServidor(const NombreFichero: String; const DirectorioDestino: String): Boolean; begin inherited; Result := Controller.GestorDocumentosController.DescargarFichero(Pedido.ID, NombreFichero, DirectorioDestino); end; procedure TfrViewDocumentosPedidoProveedor.SetController(const Value: IPedidosProveedorController); begin FController := Value; end; procedure TfrViewDocumentosPedidoProveedor.SetPedido(const Value: IBizPedidoProveedor); begin FPedido := Value; //Inicializamos la lista de documentos local con los ficheros del servidor if Assigned(FPedido) and Assigned(FController) then ListaFicheros := Controller.GestorDocumentosController.DarListaDocumentos(Pedido.ID); RefrescarVisualizador; end; procedure TfrViewDocumentosPedidoProveedor.Sincronizar; begin inherited; //De momento el action actSincronizar con el servidor estará oculto y se activa, hay que tener en cuenta lo comentado { if Contrato.EsNuevo then begin if (ShowConfirmMessage('Se han producido cambios', 'Se han producido cambios y no se puede sincronizar hasta que no se guarden.' + #10#13 + '¿Desea guardarlos ahora?') = IDYES) then actGuardar.Execute else ShowInfoMessage('Recuerde guardar los cambios si quiere previsualizar o imprimir.'); end; } Controller.GestorDocumentosController.SincronizarDocumentos(Pedido.ID, ListaFicheros, Directorio); end; end.