unit srvPresupuestosCliente_Impl; {----------------------------------------------------------------------------} { This unit was automatically generated by the RemObjects SDK after reading } { the RODL file associated with this project . } { } { This is where you are supposed to code the implementation of your objects. } {----------------------------------------------------------------------------} interface uses {vcl:} Classes, SysUtils, {RemObjects:} uROClientIntf, uROTypes, uROServer, uROServerIntf, uROSessions, {Ancestor Implementation:} DataAbstractService_Impl, {Used RODLs:} DataAbstract4_Intf, {Generated:} uDABusinessProcessor, uDABin2DataStreamer, uDADataStreamer, uDAScriptingProvider, uDAClasses, FactuGES_Intf, uDAInterfaces; type { TsrvPresupuestosCliente } TsrvPresupuestosCliente = class(TDataAbstractService, IsrvPresupuestosCliente) Bin2DataStreamer: TDABin2DataStreamer; bpPresupuestosCliente: TDABusinessProcessor; bpPresupuestosClienteDetalles: TDABusinessProcessor; schPresupuestosCliente: TDASchema; DADataDictionary: TDADataDictionary; procedure DataAbstractServiceBeforeAcquireConnection(aSender: TObject; var aConnectionName: string); procedure DARemoteServiceBeforeGetDatasetData(const Dataset: IDADataset; const IncludeSchema: Boolean; const MaxRecords: Integer); procedure DARemoteServiceCreate(Sender: TObject); protected { IsrvPresupuestosCliente methods } function GenerateReport(const ListaID: String): Binary; function GenerateReportEnWord(const ID: Integer): Binary; function GenerarCertificadoTrabajosEnWord(const ID: Integer): Binary; end; implementation {$R *.dfm} uses Dialogs, uSistemaFunc, {Generated:} FactuGES_Invk, uDataModuleServer, uDatabaseUtils, schPresupuestosClienteClient_Intf, uRestriccionesUsuarioUtils, uRptPresupuestosCliente_Server, uBizPresupuestosClienteServer, uRptWordPresupuestoCliente, uRptWordCertificadoTrabajo_Server; procedure Create_srvPresupuestosCliente(out anInstance : IUnknown); begin anInstance := TsrvPresupuestosCliente.Create(NIL); end; { srvPresupuestosCliente } procedure TsrvPresupuestosCliente.DARemoteServiceBeforeGetDatasetData( const Dataset: IDADataset; const IncludeSchema: Boolean; const MaxRecords: Integer); begin if DataSet.Name = nme_PresupuestosCliente then begin { Aquí se asegura que el usuario sólo accede a presupuestos de las empresas a las que tiene permiso para acceder filtrando DataSet por ID_EMPRESA. } FiltrarAccesoUsuario(Session, Connection, schPresupuestosCliente, DataSet, fld_PresupuestosClienteID_EMPRESA); end; end; procedure TsrvPresupuestosCliente.DARemoteServiceCreate(Sender: TObject); begin SessionManager := dmServer.SessionManager; bpPresupuestosCliente.BusinessRulesID := BIZ_SERVER_PRESUPUESTOS_CLIENTE; end; procedure TsrvPresupuestosCliente.DataAbstractServiceBeforeAcquireConnection(aSender: TObject; var aConnectionName: string); begin ConnectionName := dmServer.ConnectionName; end; function TsrvPresupuestosCliente.GenerarCertificadoTrabajosEnWord( const ID: Integer): Binary; var AReportGenerator : TRptWordCertificadoTrabajo; AFicheroTMP : TFileName; begin Result := NIL; AFicheroTMP := DarFicheroTemporal; AReportGenerator := TRptWordCertificadoTrabajo.Create(nil); try if AReportGenerator.Exportar(ID, AFicheroTMP) then begin Result := Binary.Create; Result.LoadFromFile(AFicheroTMP); end; finally FreeAndNIL(AReportGenerator); end; end; function TsrvPresupuestosCliente.GenerateReport(const ListaID: String): Binary; var AReportGenerator : TRptPresupuestosCliente; begin AReportGenerator := TRptPresupuestosCliente.Create(nil); try Result := AReportGenerator.GenerarPresupuesto(ListaID); finally FreeAndNIL(AReportGenerator); end; end; function TsrvPresupuestosCliente.GenerateReportEnWord(const ID: Integer): Binary; var AReportGenerator : TRptWordPresupuestoCliente; AFicheroTMP : TFileName; begin Result := NIL; AFicheroTMP := DarFicheroTemporal; AReportGenerator := TRptWordPresupuestoCliente.Create(nil); try if AReportGenerator.Exportar(IntToStr(ID), AFicheroTMP) then begin Result := Binary.Create; Result.LoadFromFile(AFicheroTMP); end; finally FreeAndNIL(AReportGenerator); end; end; initialization TROClassFactory.Create('srvPresupuestosCliente', Create_srvPresupuestosCliente, TsrvPresupuestosCliente_Invoker); finalization end.