unit uViewDocumentosPresupuestoCliente; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, uViewDocumentos, ActnList, TB2Item, TBX, TB2Dock, TB2Toolbar, cxControls, cxContainer, uBizPresupuestosCliente, uPresupuestosClienteController, ImgList, PngImageList, ComCtrls, Menus; type IViewDocumentosPresupuestoCliente = interface ['{564599A5-ECEB-4A1F-8791-22B37282A11C}'] function GetController : IPresupuestosClienteController; procedure SetController (const Value : IPresupuestosClienteController); property Controller : IPresupuestosClienteController read GetController write SetController; function GetPresupuesto: IBizPresupuestoCliente; procedure SetPresupuesto(const Value: IBizPresupuestoCliente); property Presupuesto: IBizPresupuestoCliente read GetPresupuesto write SetPresupuesto; end; TfrViewDocumentosPresupuestoCliente = class(TfrViewDocumentos, IViewDocumentosPresupuestoCliente) private FController : IPresupuestosClienteController; FPresupuesto: IBizPresupuestoCliente; function GetController : IPresupuestosClienteController; procedure SetController (const Value : IPresupuestosClienteController); function GetPresupuesto: IBizPresupuestoCliente; procedure SetPresupuesto(const Value: IBizPresupuestoCliente); protected procedure Sincronizar; override; function RecuperarFicheroServidor(const NombreFichero: String; const DirectorioDestino: String): Boolean; override; public property Controller : IPresupuestosClienteController read GetController write SetController; property Presupuesto: IBizPresupuestoCliente read GetPresupuesto write SetPresupuesto; end; var frViewDocumentosPresupuestoCliente: TfrViewDocumentosPresupuestoCliente; implementation {$R *.dfm} { TfrViewDocumentosPresupuesto } function TfrViewDocumentosPresupuestoCliente.GetController: IPresupuestosClienteController; begin Result := FController; end; function TfrViewDocumentosPresupuestoCliente.GetPresupuesto: IBizPresupuestoCliente; begin Result := FPresupuesto; end; function TfrViewDocumentosPresupuestoCliente.RecuperarFicheroServidor(const NombreFichero: String; const DirectorioDestino: String): Boolean; begin inherited; Result := Controller.GestorDocumentosController.DescargarFichero(Presupuesto.ID, NombreFichero, DirectorioDestino); end; procedure TfrViewDocumentosPresupuestoCliente.SetController(const Value: IPresupuestosClienteController); begin FController := Value; end; procedure TfrViewDocumentosPresupuestoCliente.SetPresupuesto(const Value: IBizPresupuestoCliente); begin FPresupuesto := Value; //Inicializamos la lista de documentos local con los ficheros del servidor if Assigned(FPresupuesto) and Assigned(FController) then ListaFicheros := Controller.GestorDocumentosController.DarListaDocumentos(Presupuesto.ID); RefrescarVisualizador; end; procedure TfrViewDocumentosPresupuestoCliente.Sincronizar; begin inherited; //De momento el action actSincronizar con el servidor estará oculto y se activa, hay que tener en cuenta lo comentado { if Presupuesto.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(Presupuesto.ID, ListaFicheros, Directorio); end; end.