Prioritize scheduler code over artist/title separation

This commit is contained in:
Patrick Linstruth 2018-04-29 12:44:33 -07:00
parent c4fcd6486e
commit 209c1fee8c

View File

@ -635,10 +635,9 @@ bool RDEventLine::generateLog(QString logname,const QString &svcname,
} }
delete q; delete q;
sql=QString("select SCHED_STACK_ID from `")+svcname_rp+"_STACK` "+ sql=QString("SELECT MAX(SCHED_STACK_ID) from `"+svcname_rp+"_STACK`");
"order by SCHED_STACK_ID";
q=new RDSqlQuery(sql); q=new RDSqlQuery(sql);
if (q->last()) if (q->next())
{ {
stackid=q->value(0).toUInt(); stackid=q->value(0).toUInt();
} }
@ -651,6 +650,36 @@ bool RDEventLine::generateLog(QString logname,const QString &svcname,
// Add deconflicting rules here // Add deconflicting rules here
// Reduce schedCL to match requested scheduler code
if(event_have_code!="") {
schedCL->save();
for(counter=0;counter<schedCL->getNumberOfItems();counter++) {
if(!schedCL->itemHasCode(counter,event_have_code)) {
schedCL->removeItem(counter);
counter--;
}
}
if(schedCL->getNumberOfItems()==0) {
*errors+=QString().sprintf("%s Rule broken: Must have code %s\n",(const char *)time.toString("hh:mm:ss"),(const char*)event_have_code);
}
schedCL->restore();
}
// Reduce schedCL to match second requested scheduler code
if(event_have_code2!="") {
schedCL->save();
for(counter=0;counter<schedCL->getNumberOfItems();counter++) {
if(!schedCL->itemHasCode(counter,event_have_code2)) {
schedCL->removeItem(counter);
counter--;
}
}
if(schedCL->getNumberOfItems()==0) {
*errors+=QString().sprintf("%s Rule broken: Must have second code %s\n",(const char *)time.toString("hh:mm:ss"),(const char*)event_have_code2);
}
schedCL->restore();
}
// Title separation // Title separation
schedCL->save(); schedCL->save();
sql=QString("select CART from `")+svcname_rp+"_STACK` where "+ sql=QString("select CART from `")+svcname_rp+"_STACK` where "+
@ -689,36 +718,6 @@ bool RDEventLine::generateLog(QString logname,const QString &svcname,
} }
schedCL->restore(); schedCL->restore();
// Must have scheduler code
if(event_have_code!="") {
schedCL->save();
for(counter=0;counter<schedCL->getNumberOfItems();counter++) {
if(!schedCL->itemHasCode(counter,event_have_code)) {
schedCL->removeItem(counter);
counter--;
}
}
if(schedCL->getNumberOfItems()==0) {
*errors+=QString().sprintf("%s Rule broken: Must have code %s\n",(const char *)time.toString("hh:mm:ss"),(const char*)event_have_code);
}
schedCL->restore();
}
// Must have second scheduler code
if(event_have_code2!="") {
schedCL->save();
for(counter=0;counter<schedCL->getNumberOfItems();counter++) {
if(!schedCL->itemHasCode(counter,event_have_code2)) {
schedCL->removeItem(counter);
counter--;
}
}
if(schedCL->getNumberOfItems()==0) {
*errors+=QString().sprintf("%s Rule broken: Must have second code %s\n",(const char *)time.toString("hh:mm:ss"),(const char*)event_have_code2);
}
schedCL->restore();
}
// Scheduler Codes // Scheduler Codes
sql=QString().sprintf("select CODE,MAX_ROW,MIN_WAIT,NOT_AFTER, OR_AFTER,OR_AFTER_II from %s_RULES",(const char *)clockname); sql=QString().sprintf("select CODE,MAX_ROW,MIN_WAIT,NOT_AFTER, OR_AFTER,OR_AFTER_II from %s_RULES",(const char *)clockname);
q=new RDSqlQuery(sql); q=new RDSqlQuery(sql);