2025-10-23 Fred Gleason <fredg@paravelsystems.com>

* Fixed a bug in 'RDCart::updateLength()' that could cause patently
	ridiculous values to be calculated for the 'Start' and 'End'
	date-time columns in the cart library.

Signed-off-by: Fred Gleason <fredg@paravelsystems.com>
This commit is contained in:
Fred Gleason
2025-10-23 15:43:31 -04:00
parent 33e01cb8ef
commit e2c52bc5a3
3 changed files with 22 additions and 3 deletions

View File

@@ -49,12 +49,17 @@ QString RDCheckDateTime(QTime const &time, QString const &format)
QString RDCheckDateTime(QDateTime const &datetime, QString const &format)
{
QString checkedValue = "NULL";
if((datetime==RDCheckDateTime_InvalidStart)||
(datetime==RDCheckDateTime_InvalidEnd)) {
return checkedValue;
}
if(datetime.isValid())
if(datetime.isValid()) {
checkedValue = "\"" + datetime.toString(format) + "\"";
}
return checkedValue;
}
/**

View File

@@ -25,6 +25,16 @@
#include <qdatetime.h>
#include <qstring.h>
/*
* These are used in conjunction with the code in RDCart::updateLength()
* to calculate the outer limits of a disjunctive set of QDateTime values.
*
* If either of these values are found by RDCheckDateTime(), they will be
* returned as a NULL value (meaning, "no limits were found").
*/
#define RDCheckDateTime_InvalidStart QDateTime(QDate(3000,1,1),QTime(0,0,0))
#define RDCheckDateTime_InvalidEnd QDateTime(QDate(1000,1,1),QTime(0,0,0))
QString RDCheckDateTime(const QTime &time, const QString &format);
QString RDCheckDateTime(const QDateTime &datetime, const QString &format);
QString RDCheckDateTime(const QDate &date, const QString &format);