mirror of
https://github.com/ElvishArtisan/rivendell.git
synced 2025-04-12 15:52:29 +02:00
Merge branch 'deltecent-issue634'
This commit is contained in:
commit
485c55ea48
@ -20695,3 +20695,7 @@
|
||||
Notification E-Mail Address.
|
||||
2020-12-24 Fred Gleason <fredg@paravelsystems.com>
|
||||
* Incremented the package version to 3.5.0int0.
|
||||
2020-12-24 Patrick Linstruth <patrick@deltecent.com>
|
||||
* Fixed title separation in rdlogmanager(1) scheduler.
|
||||
* Added a 'STACK_LINES.TITLE' field to the database.
|
||||
* Incremented the database version to 347.
|
||||
|
@ -9,4 +9,5 @@ SCHED_STACK_ID int(10) unsigned
|
||||
SERVICE_NAME varchar(10) From SERVICES.NAME
|
||||
CART int(10) unsigned From CART.NUMBER
|
||||
ARTIST varchar(191) From CART.ARTIST
|
||||
TITLE varchar(191) From CART.TITLE
|
||||
SCHEDULED_AT datetime
|
||||
|
@ -24,7 +24,7 @@
|
||||
/*
|
||||
* Current Database Version
|
||||
*/
|
||||
#define RD_VERSION_DATABASE 346
|
||||
#define RD_VERSION_DATABASE 347
|
||||
|
||||
|
||||
#endif // DBVERSION_H
|
||||
|
@ -591,7 +591,7 @@ bool RDEventLine::generateLog(QString logname,const QString &svcname,
|
||||
//
|
||||
// Load all carts in requested group into schedCL
|
||||
//
|
||||
sql=QString("select NUMBER,ARTIST,")+
|
||||
sql=QString("select NUMBER,ARTIST,TITLE,")+
|
||||
"CONCAT(GROUP_CONCAT(RPAD(SC.SCHED_CODE,11,' ') separator ''),'.') as SCHED_CODES"+
|
||||
" from CART LEFT JOIN CART_SCHED_CODES AS SC on (NUMBER=SC.CART_NUMBER)"+
|
||||
" where GROUP_NAME='"+RDEscapeString(schedGroup())+"'"+
|
||||
@ -599,12 +599,12 @@ bool RDEventLine::generateLog(QString logname,const QString &svcname,
|
||||
RDSchedCartList *schedCL=new RDSchedCartList();
|
||||
q=new RDSqlQuery(sql);
|
||||
while(q->next()) {
|
||||
QStringList codes=q->value(2).toString().split(" ",QString::SkipEmptyParts);
|
||||
QStringList codes=q->value(3).toString().split(" ",QString::SkipEmptyParts);
|
||||
if((codes.size()>0)&&(codes.last()==".")) {
|
||||
codes.removeLast();
|
||||
}
|
||||
schedCL->
|
||||
insertItem(q->value(0).toUInt(),0,0,q->value(1).toString(),codes);
|
||||
insertItem(q->value(0).toUInt(),0,0,q->value(1).toString(),q->value(2).toString(),codes);
|
||||
}
|
||||
delete q;
|
||||
|
||||
@ -636,17 +636,17 @@ bool RDEventLine::generateLog(QString logname,const QString &svcname,
|
||||
// Title separation
|
||||
//
|
||||
// Iterate through schedCL and remove carts from schedCL that
|
||||
// match cart number on the stack essentially removing matched titles.
|
||||
// match title on the stack.
|
||||
//
|
||||
if(titlesep>=0) {
|
||||
schedCL->save();
|
||||
sql=QString("select CART from STACK_LINES where ")+
|
||||
sql=QString("select TITLE from STACK_LINES where ")+
|
||||
"SERVICE_NAME=\""+RDEscapeString(svcname)+"\" && "+
|
||||
QString().sprintf("SCHED_STACK_ID >= %d",stackid-titlesep);
|
||||
q=new RDSqlQuery(sql);
|
||||
while (q->next()) {
|
||||
for(counter=0;counter<schedCL->getNumberOfItems();counter++) {
|
||||
if(q->value(0).toUInt()==schedCL->getItemCartNumber(counter)) {
|
||||
if(q->value(0).toString()==schedCL->getItemTitle(counter)) {
|
||||
schedCL->removeItem(counter);
|
||||
counter--;
|
||||
}
|
||||
@ -859,7 +859,8 @@ bool RDEventLine::generateLog(QString logname,const QString &svcname,
|
||||
"SCHEDULED_AT=now(),"+
|
||||
QString().sprintf("SCHED_STACK_ID=%u,",stackid)+
|
||||
QString().sprintf("CART=%u,",schedCL->getItemCartNumber(schedpos))+
|
||||
"ARTIST=\""+RDEscapeString(schedCL->getItemArtist(schedpos))+"\"";
|
||||
"ARTIST=\""+RDEscapeString(schedCL->getItemArtist(schedpos))+"\","+
|
||||
"TITLE=\""+RDEscapeString(schedCL->getItemTitle(schedpos))+"\"";
|
||||
unsigned line_id=RDSqlQuery::run(sql).toUInt();
|
||||
QStringList codes=schedCL->getItemSchedCodes(schedpos);
|
||||
for(int i=0;i<codes.size();i++) {
|
||||
|
@ -29,12 +29,14 @@ RDSchedCartList::RDSchedCartList()
|
||||
|
||||
void RDSchedCartList::insertItem(unsigned cartnumber,int cartlength,int stack_id,
|
||||
const QString &stack_artist,
|
||||
const QString &stack_title,
|
||||
const QStringList &stack_schedcodes)
|
||||
{
|
||||
list_cartnum.push_back(cartnumber);
|
||||
list_cartlen.push_back(cartlength);
|
||||
list_stackid.push_back(stack_id);
|
||||
list_artist.push_back(stack_artist.lower().replace(" ",""));
|
||||
list_title.push_back(stack_title.lower().replace(" ",""));
|
||||
list_schedcodes.push_back(stack_schedcodes);
|
||||
}
|
||||
|
||||
@ -45,6 +47,7 @@ void RDSchedCartList::removeItem(int itemnumber)
|
||||
list_cartlen.removeAt(itemnumber);
|
||||
list_stackid.removeAt(itemnumber);
|
||||
list_artist.removeAt(itemnumber);
|
||||
list_title.removeAt(itemnumber);
|
||||
list_schedcodes.removeAt(itemnumber);
|
||||
}
|
||||
|
||||
@ -58,6 +61,7 @@ bool RDSchedCartList::removeIfCode(int itemnumber,const QString &test_code)
|
||||
list_cartlen.removeAt(i);
|
||||
list_stackid.removeAt(i);
|
||||
list_artist.removeAt(i);
|
||||
list_title.removeAt(i);
|
||||
list_schedcodes.removeAt(i);
|
||||
matched=true;
|
||||
}
|
||||
@ -91,6 +95,7 @@ void RDSchedCartList::save(void)
|
||||
list_savecartlen=list_cartlen;
|
||||
list_savestackid=list_stackid;
|
||||
list_saveartist=list_artist;
|
||||
list_savetitle=list_title;
|
||||
list_saveschedcodes=list_schedcodes;
|
||||
}
|
||||
|
||||
@ -101,6 +106,7 @@ void RDSchedCartList::restore(void)
|
||||
list_cartlen=list_savecartlen;
|
||||
list_stackid=list_savestackid;
|
||||
list_artist=list_saveartist;
|
||||
list_title=list_savetitle;
|
||||
list_schedcodes=list_saveschedcodes;
|
||||
}
|
||||
|
||||
@ -123,6 +129,12 @@ QString RDSchedCartList::getItemArtist(int itemnumber)
|
||||
}
|
||||
|
||||
|
||||
QString RDSchedCartList::getItemTitle(int itemnumber)
|
||||
{
|
||||
return list_title.at(itemnumber);
|
||||
}
|
||||
|
||||
|
||||
QStringList RDSchedCartList::getItemSchedCodes(int itemnumber)
|
||||
{
|
||||
return list_schedcodes.at(itemnumber);
|
||||
|
@ -31,6 +31,7 @@ class RDSchedCartList
|
||||
RDSchedCartList();
|
||||
void insertItem(unsigned cartnumber,int cartlength,int stack_id,
|
||||
const QString &stack_artist,
|
||||
const QString &stack_title,
|
||||
const QStringList &stack_schedcodes);
|
||||
void removeItem(int itemnumber);
|
||||
bool removeIfCode(int itemnumber,const QString &test_code);
|
||||
@ -40,6 +41,7 @@ class RDSchedCartList
|
||||
int getItemCartLength(int itemnumber);
|
||||
int getItemStackid(int itemnumber);
|
||||
QString getItemArtist(int itemnumber);
|
||||
QString getItemTitle(int itemnumber);
|
||||
QStringList getItemSchedCodes(int itemnumber);
|
||||
int getNumberOfItems(void);
|
||||
void save(void);
|
||||
@ -53,7 +55,9 @@ class RDSchedCartList
|
||||
QList<int> list_stackid;
|
||||
QList<int> list_savestackid;
|
||||
QStringList list_artist;
|
||||
QStringList list_title;
|
||||
QStringList list_saveartist;
|
||||
QStringList list_savetitle;
|
||||
QList<QStringList> list_schedcodes;
|
||||
QList<QStringList> list_saveschedcodes;
|
||||
};
|
||||
|
@ -105,6 +105,7 @@ class MainObject : public QObject
|
||||
bool ConvertTimeField186(const QString &table,const QString &field,
|
||||
QString *err_msg) const;
|
||||
bool ConvertArtistSep307(QString *err_msg) const;
|
||||
bool StackLineTitles347(QString *err_msg) const;
|
||||
|
||||
//
|
||||
// revertschema.cpp
|
||||
|
@ -40,6 +40,15 @@ bool MainObject::RevertSchema(int cur_schema,int set_schema,QString *err_msg)
|
||||
// NEW SCHEMA REVERSIONS GO HERE...
|
||||
|
||||
|
||||
//
|
||||
// Revert 347
|
||||
//
|
||||
if((cur_schema==347)&&(set_schema<cur_schema)) {
|
||||
DropColumn("STACK_LINES","TITLE");
|
||||
|
||||
WriteSchemaVersion(--cur_schema);
|
||||
}
|
||||
|
||||
//
|
||||
// Revert 346
|
||||
//
|
||||
|
@ -161,7 +161,7 @@ void MainObject::InitializeSchemaMap() {
|
||||
global_version_map["3.2"]=311;
|
||||
global_version_map["3.3"]=314;
|
||||
global_version_map["3.4"]=317;
|
||||
global_version_map["3.5"]=346;
|
||||
global_version_map["3.5"]=347;
|
||||
}
|
||||
|
||||
|
||||
|
@ -10442,6 +10442,19 @@ bool MainObject::UpdateSchema(int cur_schema,int set_schema,QString *err_msg)
|
||||
WriteSchemaVersion(++cur_schema);
|
||||
}
|
||||
|
||||
if((cur_schema<347)&&(set_schema>cur_schema)) {
|
||||
sql=QString("alter table STACK_LINES add column ")+
|
||||
"TITLE varchar(191) not null after ARTIST";
|
||||
if(!RDSqlQuery::apply(sql,err_msg)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if (!StackLineTitles347(err_msg)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
WriteSchemaVersion(++cur_schema);
|
||||
}
|
||||
|
||||
|
||||
// NEW SCHEMA UPDATES GO HERE...
|
||||
@ -10714,3 +10727,29 @@ bool MainObject::ConvertArtistSep307(QString *err_msg) const
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
bool MainObject::StackLineTitles347(QString *err_msg) const
|
||||
{
|
||||
QString sql;
|
||||
RDSqlQuery *q;
|
||||
|
||||
//
|
||||
// Add titles to STACK_LINES
|
||||
//
|
||||
q=new RDSqlQuery("select NUMBER,TITLE from CART",false);
|
||||
while(q->next()) {
|
||||
if(!q->value(1).isNull()) {
|
||||
sql=QString("update STACK_LINES set ")+
|
||||
"TITLE=\""+RDEscapeString(q->value(1).toString().lower().replace(" ",""))+"\" "+
|
||||
"where CART=\""+RDEscapeString(q->value(0).toString())+"\"";
|
||||
if(!RDSqlQuery::apply(sql,err_msg)) {
|
||||
delete q;
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
delete q;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user