unit uViewDocumentosContratoCliente; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, uViewDocumentos, ActnList, TB2Item, TBX, TB2Dock, TB2Toolbar, cxControls, cxContainer, uBizContratosCliente, uContratosClienteController, ImgList, PngImageList, ComCtrls, Menus; type IViewDocumentosContratoCliente = interface ['{564599A5-ECEB-4A1F-8791-22B37282A11C}'] function GetController : IContratosClienteController; procedure SetController (const Value : IContratosClienteController); property Controller : IContratosClienteController read GetController write SetController; function GetContrato: IBizContratoCliente; procedure SetContrato(const Value: IBizContratoCliente); property Contrato: IBizContratoCliente read GetContrato write SetContrato; end; TfrViewDocumentosContratoCliente = class(TfrViewDocumentos, IViewDocumentosContratoCliente) private FController : IContratosClienteController; FContrato: IBizContratoCliente; function GetController : IContratosClienteController; procedure SetController (const Value : IContratosClienteController); function GetContrato: IBizContratoCliente; procedure SetContrato(const Value: IBizContratoCliente); protected procedure Sincronizar; override; function RecuperarFicheroServidor(const NombreFichero: String; const DirectorioDestino: String): Boolean; override; public property Controller : IContratosClienteController read GetController write SetController; property Contrato: IBizContratoCliente read GetContrato write SetContrato; end; var frViewDocumentosContratoCliente: TfrViewDocumentosContratoCliente; implementation {$R *.dfm} { TfrViewDocumentosContrato } function TfrViewDocumentosContratoCliente.GetController: IContratosClienteController; begin Result := FController; end; function TfrViewDocumentosContratoCliente.GetContrato: IBizContratoCliente; begin Result := FContrato; end; function TfrViewDocumentosContratoCliente.RecuperarFicheroServidor(const NombreFichero: String; const DirectorioDestino: String): Boolean; begin inherited; Result := Controller.GestorDocumentosController.DescargarFichero(Contrato.ID, NombreFichero, DirectorioDestino); end; procedure TfrViewDocumentosContratoCliente.SetController(const Value: IContratosClienteController); begin FController := Value; end; procedure TfrViewDocumentosContratoCliente.SetContrato(const Value: IBizContratoCliente); begin FContrato := Value; //Inicializamos la lista de documentos local con los ficheros del servidor if Assigned(FContrato) and Assigned(FController) then ListaFicheros := Controller.GestorDocumentosController.DarListaDocumentos(Contrato.ID); RefrescarVisualizador; end; procedure TfrViewDocumentosContratoCliente.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(Contrato.ID, ListaFicheros, Directorio); end; end.