From 2bc65d3517ecd2cbc4b61ebc3682ac986fa02f73 Mon Sep 17 00:00:00 2001 From: lauracosta Date: Fri, 10 Mar 2023 12:19:54 +0100 Subject: [PATCH] save log shell function --- pragaProject/pragaProject.cpp | 27 +++++++++++++++++++++++++++ pragaProject/pragaProject.h | 1 + pragaProject/pragaShell.cpp | 26 ++++++++++++++++++++++++++ pragaProject/pragaShell.h | 1 + 4 files changed, 55 insertions(+) diff --git a/pragaProject/pragaProject.cpp b/pragaProject/pragaProject.cpp index 9fc782fa1..ed3b9254a 100644 --- a/pragaProject/pragaProject.cpp +++ b/pragaProject/pragaProject.cpp @@ -3468,3 +3468,30 @@ bool PragaProject::computeClimaFromXMLSaveOnDB(QString xmlName) return true; } } + +bool PragaProject::saveLogProceduresGrid(QString nameProc, QDate date) +{ + + // check meteo grid + if (! meteoGridLoaded) + { + logError("No meteo grid"); + return false; + } + + // check dates + if (date.isNull() || !date.isValid()) + { + logError("Wrong date"); + return false; + } + + QString myError; + logInfoGUI("Saving procedure last date"); + if (! meteoGridDbHandler->saveLogProcedures(&myError, nameProc, date)) + { + logError(myError); + return false; + } + return true; +} diff --git a/pragaProject/pragaProject.h b/pragaProject/pragaProject.h index 3318a2fc3..afa325a8f 100644 --- a/pragaProject/pragaProject.h +++ b/pragaProject/pragaProject.h @@ -139,6 +139,7 @@ std::vector &users, std::vector ¬es); bool removeGriddingTask(QDateTime dateCreation, QString user, QDate dateStart, QDate dateEnd); bool computeClimaFromXMLSaveOnDB(QString xmlName); + bool saveLogProceduresGrid(QString nameProc, QDate date); #ifdef NETCDF bool exportMeteoGridToNetCDF(QString fileName, QString title, QString variableName, std::string variableUnit, Crit3DDate myDate, int nDays, int refYearStart, int refYearEnd); diff --git a/pragaProject/pragaShell.cpp b/pragaProject/pragaShell.cpp index 30c6bfdfe..3f550d366 100644 --- a/pragaProject/pragaShell.cpp +++ b/pragaProject/pragaShell.cpp @@ -25,6 +25,7 @@ QList getPragaCommandList() cmdList.append("ComputeClimate | ComputeClimaFromXMLSaveOnDB"); cmdList.append("Drought | ComputeDroughtIndexGrid"); cmdList.append("DroughtPoint | ComputeDroughtIndexPoint"); + cmdList.append("SaveLogProc | SaveLogProceduresGrid"); return cmdList; } @@ -124,6 +125,11 @@ int PragaProject::executePragaCommand(QList argumentList, bool* isComma *isCommandFound = true; return cmdDroughtIndexPoint(this, argumentList); } + else if (command == "SAVELOGPROC" || command == "SAVELOGPROCEDURESGRID") + { + *isCommandFound = true; + return cmdSaveLogDataProceduresGrid(this, argumentList); + } else { // other specific Praga commands @@ -931,3 +937,23 @@ int pragaShell(PragaProject* myProject) return PRAGA_OK; } + + int cmdSaveLogDataProceduresGrid(PragaProject* myProject, QList argumentList) + { + if (argumentList.size() < 3) + { + myProject->logError("Missing procedure name or date to save"); + return PRAGA_INVALID_COMMAND; + } + + QString nameProc = argumentList.at(1); + QString dateStr = argumentList.at(2); + QDate date = QDate::fromString(dateStr, "dd/MM/yyyy"); + + if (!myProject->saveLogProceduresGrid(nameProc, date)) + { + return PRAGA_ERROR; + } + + return PRAGA_OK; + } diff --git a/pragaProject/pragaShell.h b/pragaProject/pragaShell.h index 9828b8d1c..29241f68a 100644 --- a/pragaProject/pragaShell.h +++ b/pragaProject/pragaShell.h @@ -21,6 +21,7 @@ int cmdMonthlyIntegrationVariablesGrid(PragaProject* myProject, QList argumentList); int cmdComputeClimaFromXMLSaveOnDB(PragaProject* myProject, QList argumentList); int cmdDroughtIndexPoint(PragaProject* myProject, QList argumentList); + int cmdSaveLogDataProceduresGrid(PragaProject* myProject, QList argumentList); //bool cmdLoadForecast(PragaProject* myProject, QList argumentList); #ifdef NETCDF