unit uViewDocumentosPresupuestoCliente; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, uViewDocumentos, dxSkinsCore, dxSkinBlack, dxSkinBlue, dxSkinCaramel, dxSkinCoffee, dxSkinGlassOceans, dxSkiniMaginary, dxSkinLilian, dxSkinLiquidSky, dxSkinLondonLiquidSky, dxSkinMcSkin, dxSkinMoneyTwins, dxSkinOffice2007Black, dxSkinOffice2007Blue, dxSkinOffice2007Green, dxSkinOffice2007Pink, dxSkinOffice2007Silver, dxSkinSilver, dxSkinStardust, dxSkinsDefaultPainters, dxSkinValentine, dxSkinXmas2008Blue, ActnList, TB2Item, TBX, TB2Dock, TB2Toolbar, cxControls, cxContainer, cxListBox, uBizPresupuestosCliente, uPresupuestosClienteController; 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 FListaFicheros := 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, FListaFicheros, Directorio); end; end.