mirror of
https://github.com/ElvishArtisan/rivendell.git
synced 2025-07-26 09:28:13 +02:00
Fixed conflict in 'ChangeLog'
This commit is contained in:
commit
207cd93741
@ -18582,3 +18582,6 @@
|
|||||||
2019-04-22 Patrick Linstruth <patrick@deltecent.com>
|
2019-04-22 Patrick Linstruth <patrick@deltecent.com>
|
||||||
* Fixed a regression in rdimport(1) that broke the
|
* Fixed a regression in rdimport(1) that broke the
|
||||||
"--set-daypart-times" argument.
|
"--set-daypart-times" argument.
|
||||||
|
2019-04-22 Patrick Linstruth <patrick@deltecent.com>
|
||||||
|
* Fixed a regression that broke clock scheduler rules
|
||||||
|
in rdlogmanager(1).
|
||||||
|
@ -596,19 +596,6 @@ bool RDEventLine::generateLog(QString logname,const QString &svcname,
|
|||||||
|
|
||||||
time.addMSecs(postimport_length);
|
time.addMSecs(postimport_length);
|
||||||
|
|
||||||
//
|
|
||||||
// Load all carts with requested scheduler codes into schedCL
|
|
||||||
//
|
|
||||||
sql=QString("select NUMBER,ARTIST from CART");
|
|
||||||
if(event_have_code!="") {
|
|
||||||
sql+=" INNER JOIN CART_SCHED_CODES AS S1 on (NUMBER=S1.CART_NUMBER AND S1.SCHED_CODE='"+RDEscapeString(event_have_code)+"')";
|
|
||||||
}
|
|
||||||
if(event_have_code2!="") {
|
|
||||||
sql+=" INNER JOIN CART_SCHED_CODES AS S2 on (NUMBER=S2.CART_NUMBER AND S2.SCHED_CODE='"+RDEscapeString(event_have_code2)+"')";
|
|
||||||
}
|
|
||||||
sql+=" where GROUP_NAME='"+RDEscapeString(SchedGroup())+"'";
|
|
||||||
q=new RDSqlQuery(sql);
|
|
||||||
if(q->size()>0) {
|
|
||||||
if(event_artist_sep>=-1 && event_artist_sep<=50000) {
|
if(event_artist_sep>=-1 && event_artist_sep<=50000) {
|
||||||
artistsep = event_artist_sep;
|
artistsep = event_artist_sep;
|
||||||
}
|
}
|
||||||
@ -623,18 +610,6 @@ bool RDEventLine::generateLog(QString logname,const QString &svcname,
|
|||||||
titlesep = 100;
|
titlesep = 100;
|
||||||
}
|
}
|
||||||
|
|
||||||
int querysize=(int)q->size();
|
|
||||||
SchedCartList *schedCL;
|
|
||||||
schedCL=new SchedCartList(querysize);
|
|
||||||
|
|
||||||
QString schedcode; // No longer needed - possibly remove at a later date
|
|
||||||
for(counter=0;counter<querysize;counter++)
|
|
||||||
{
|
|
||||||
q->seek(counter);
|
|
||||||
schedCL->insertItem(q->value(0).toUInt(),0,0,q->value(1).toString(),schedcode);
|
|
||||||
}
|
|
||||||
delete q;
|
|
||||||
|
|
||||||
//
|
//
|
||||||
// Get next stack id from the stack
|
// Get next stack id from the stack
|
||||||
//
|
//
|
||||||
@ -643,17 +618,33 @@ bool RDEventLine::generateLog(QString logname,const QString &svcname,
|
|||||||
"from STACK_LINES where "+
|
"from STACK_LINES where "+
|
||||||
"SERVICE_NAME=\""+RDEscapeString(svcname)+"\"";
|
"SERVICE_NAME=\""+RDEscapeString(svcname)+"\"";
|
||||||
q=new RDSqlQuery(sql);
|
q=new RDSqlQuery(sql);
|
||||||
if (q->next())
|
if (q->next()) {
|
||||||
{
|
|
||||||
stackid=q->value(0).toUInt();
|
stackid=q->value(0).toUInt();
|
||||||
}
|
}
|
||||||
else
|
else {
|
||||||
{
|
|
||||||
stackid=0;
|
stackid=0;
|
||||||
}
|
}
|
||||||
stackid++;
|
stackid++;
|
||||||
delete q;
|
delete q;
|
||||||
|
|
||||||
|
//
|
||||||
|
// Load all carts in requested group into schedCL
|
||||||
|
//
|
||||||
|
sql=QString("select NUMBER,ARTIST,")+
|
||||||
|
"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())+"'"+
|
||||||
|
" group by NUMBER";
|
||||||
|
q=new RDSqlQuery(sql);
|
||||||
|
int querysize=(int)q->size();
|
||||||
|
SchedCartList *schedCL;
|
||||||
|
schedCL=new SchedCartList(querysize);
|
||||||
|
|
||||||
|
for(counter=0;counter<querysize;counter++) {
|
||||||
|
q->seek(counter);
|
||||||
|
schedCL->insertItem(q->value(0).toUInt(),0,0,q->value(1).toString(),q->value(2).toString());
|
||||||
|
}
|
||||||
|
delete q;
|
||||||
|
|
||||||
//////////////////////////////////
|
//////////////////////////////////
|
||||||
// //
|
// //
|
||||||
@ -661,6 +652,19 @@ bool RDEventLine::generateLog(QString logname,const QString &svcname,
|
|||||||
// //
|
// //
|
||||||
//////////////////////////////////
|
//////////////////////////////////
|
||||||
|
|
||||||
|
// Reduce schedCL to match requested scheduler code
|
||||||
|
if(event_have_code!=""||event_have_code2!="") {
|
||||||
|
QStringList codes;
|
||||||
|
codes << event_have_code << event_have_code2;
|
||||||
|
for(counter=0;counter<schedCL->getNumberOfItems();counter++) {
|
||||||
|
if(!schedCL->itemHasCodes(counter,codes)) {
|
||||||
|
schedCL->removeItem(counter);
|
||||||
|
counter--;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if(schedCL->getNumberOfItems()) {
|
||||||
//
|
//
|
||||||
// Title separation
|
// Title separation
|
||||||
//
|
//
|
||||||
@ -675,7 +679,7 @@ bool RDEventLine::generateLog(QString logname,const QString &svcname,
|
|||||||
q=new RDSqlQuery(sql);
|
q=new RDSqlQuery(sql);
|
||||||
while (q->next()) {
|
while (q->next()) {
|
||||||
for(counter=0;counter<schedCL->getNumberOfItems();counter++) {
|
for(counter=0;counter<schedCL->getNumberOfItems();counter++) {
|
||||||
if(q->value(0).toUInt()==schedCL->getItemCartnumber(counter)) {
|
if(q->value(0).toUInt()==schedCL->getItemCartNumber(counter)) {
|
||||||
schedCL->removeItem(counter);
|
schedCL->removeItem(counter);
|
||||||
counter--;
|
counter--;
|
||||||
}
|
}
|
||||||
@ -725,7 +729,7 @@ bool RDEventLine::generateLog(QString logname,const QString &svcname,
|
|||||||
schedCL->restore();
|
schedCL->restore();
|
||||||
}
|
}
|
||||||
|
|
||||||
// Scheduler Codes
|
// Clock Scheduler Rules
|
||||||
sql=QString("select ")+
|
sql=QString("select ")+
|
||||||
"CODE,"+ // 00
|
"CODE,"+ // 00
|
||||||
"MAX_ROW,"+ // 01
|
"MAX_ROW,"+ // 01
|
||||||
@ -763,6 +767,7 @@ bool RDEventLine::generateLog(QString logname,const QString &svcname,
|
|||||||
q->value(0).toString()+"\n";
|
q->value(0).toString()+"\n";
|
||||||
}
|
}
|
||||||
schedCL->restore();
|
schedCL->restore();
|
||||||
|
|
||||||
// do not play after
|
// do not play after
|
||||||
if(q->value(3).toString()!="") {
|
if(q->value(3).toString()!="") {
|
||||||
schedCL->save();
|
schedCL->save();
|
||||||
@ -787,9 +792,9 @@ bool RDEventLine::generateLog(QString logname,const QString &svcname,
|
|||||||
QObject::tr("Rule broken: Do not schedule ")+
|
QObject::tr("Rule broken: Do not schedule ")+
|
||||||
q->value(0).toString()+" "+QObject::tr("after")+" "+
|
q->value(0).toString()+" "+QObject::tr("after")+" "+
|
||||||
q->value(3).toString()+"\n";
|
q->value(3).toString()+"\n";
|
||||||
}
|
|
||||||
schedCL->restore();
|
schedCL->restore();
|
||||||
}
|
}
|
||||||
|
}
|
||||||
// or after
|
// or after
|
||||||
if (q->value(4).toString()!="") {
|
if (q->value(4).toString()!="") {
|
||||||
schedCL->save();
|
schedCL->save();
|
||||||
@ -813,9 +818,9 @@ bool RDEventLine::generateLog(QString logname,const QString &svcname,
|
|||||||
QObject::tr("Rule broken: Do not schedule")+" "+
|
QObject::tr("Rule broken: Do not schedule")+" "+
|
||||||
q->value(0).toString()+" "+QObject::tr("after")+" "+
|
q->value(0).toString()+" "+QObject::tr("after")+" "+
|
||||||
q->value(4).toString()+"\n";
|
q->value(4).toString()+"\n";
|
||||||
}
|
|
||||||
schedCL->restore();
|
schedCL->restore();
|
||||||
}
|
}
|
||||||
|
}
|
||||||
// or after II
|
// or after II
|
||||||
if (q->value(5).toString()!="") {
|
if (q->value(5).toString()!="") {
|
||||||
schedCL->save();
|
schedCL->save();
|
||||||
@ -839,10 +844,10 @@ bool RDEventLine::generateLog(QString logname,const QString &svcname,
|
|||||||
QObject::tr("Rule broken: Do not schedule")+" "+
|
QObject::tr("Rule broken: Do not schedule")+" "+
|
||||||
q->value(0).toString()+" "+QObject::tr("after")+" "+
|
q->value(0).toString()+" "+QObject::tr("after")+" "+
|
||||||
q->value(5).toString()+"\n";
|
q->value(5).toString()+"\n";
|
||||||
}
|
|
||||||
schedCL->restore();
|
schedCL->restore();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
delete q;
|
delete q;
|
||||||
|
|
||||||
////////////////////////////////
|
////////////////////////////////
|
||||||
@ -864,7 +869,7 @@ bool RDEventLine::generateLog(QString logname,const QString &svcname,
|
|||||||
QString().sprintf("SOURCE=%d,",source)+
|
QString().sprintf("SOURCE=%d,",source)+
|
||||||
QString().sprintf("START_TIME=%d,",QTime().msecsTo(time))+
|
QString().sprintf("START_TIME=%d,",QTime().msecsTo(time))+
|
||||||
QString().sprintf("GRACE_TIME=%d,",grace_time)+
|
QString().sprintf("GRACE_TIME=%d,",grace_time)+
|
||||||
QString().sprintf("CART_NUMBER=%u,",schedCL->getItemCartnumber(schedpos))+
|
QString().sprintf("CART_NUMBER=%u,",schedCL->getItemCartNumber(schedpos))+
|
||||||
QString().sprintf("TIME_TYPE=%d,",time_type)+
|
QString().sprintf("TIME_TYPE=%d,",time_type)+
|
||||||
"POST_POINT=\""+RDYesNo(post_point)+"\","+
|
"POST_POINT=\""+RDYesNo(post_point)+"\","+
|
||||||
QString().sprintf("TRANS_TYPE=%d,",trans_type)+
|
QString().sprintf("TRANS_TYPE=%d,",trans_type)+
|
||||||
@ -879,16 +884,16 @@ bool RDEventLine::generateLog(QString logname,const QString &svcname,
|
|||||||
"SERVICE_NAME=\""+RDEscapeString(svcname)+"\","+
|
"SERVICE_NAME=\""+RDEscapeString(svcname)+"\","+
|
||||||
"SCHEDULED_AT=now(),"+
|
"SCHEDULED_AT=now(),"+
|
||||||
QString().sprintf("SCHED_STACK_ID=%u,",stackid)+
|
QString().sprintf("SCHED_STACK_ID=%u,",stackid)+
|
||||||
QString().sprintf("CART=%u,",schedCL->getItemCartnumber(schedpos))+
|
QString().sprintf("CART=%u,",schedCL->getItemCartNumber(schedpos))+
|
||||||
"ARTIST=\""+RDEscapeString(schedCL->getItemArtist(schedpos))+"\","+
|
"ARTIST=\""+RDEscapeString(schedCL->getItemArtist(schedpos))+"\","+
|
||||||
"SCHED_CODES=\""+RDEscapeString(schedCL->getItemSchedCodes(schedpos))+
|
"SCHED_CODES=\""+RDEscapeString(schedCL->getItemSchedCodes(schedpos))+
|
||||||
"\"";
|
"\"";
|
||||||
q=new RDSqlQuery(sql);
|
q=new RDSqlQuery(sql);
|
||||||
delete q;
|
delete q;
|
||||||
|
|
||||||
delete schedCL;
|
delete schedCL;
|
||||||
}
|
}
|
||||||
else
|
else {
|
||||||
{
|
|
||||||
// We don't have any carts to work with
|
// We don't have any carts to work with
|
||||||
*report+=time.toString("hh:mm:ss")+
|
*report+=time.toString("hh:mm:ss")+
|
||||||
" "+QObject::tr("No carts found in group")+" "+SchedGroup();
|
" "+QObject::tr("No carts found in group")+" "+SchedGroup();
|
||||||
@ -896,7 +901,8 @@ bool RDEventLine::generateLog(QString logname,const QString &svcname,
|
|||||||
*report+=QObject::tr(" with sched code(s): ")+HaveCode()+" "+HaveCode2();
|
*report+=QObject::tr(" with sched code(s): ")+HaveCode()+" "+HaveCode2();
|
||||||
}
|
}
|
||||||
*report+="\n";
|
*report+="\n";
|
||||||
delete q;
|
|
||||||
|
delete schedCL;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -18,7 +18,8 @@
|
|||||||
// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||||
//
|
//
|
||||||
|
|
||||||
#include <schedcartlist.h>
|
#include <stdio.h>
|
||||||
|
#include "schedcartlist.h"
|
||||||
|
|
||||||
SchedCartList::SchedCartList(int listsize)
|
SchedCartList::SchedCartList(int listsize)
|
||||||
{
|
{
|
||||||
@ -39,15 +40,15 @@ SchedCartList::~SchedCartList()
|
|||||||
delete []sched_codes;
|
delete []sched_codes;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
|
||||||
// stack_schedcodes should no longer be needed. Possibly remove at a later date. P. Linstruth 01/12/2019
|
|
||||||
//
|
|
||||||
void SchedCartList::insertItem(unsigned cartnumber,int cartlength,int stack_id,QString stack_artist,QString stack_schedcodes)
|
void SchedCartList::insertItem(unsigned cartnumber,int cartlength,int stack_id,QString stack_artist,QString stack_schedcodes)
|
||||||
{
|
{
|
||||||
cartnum[itemcounter]=cartnumber;
|
cartnum[itemcounter]=cartnumber;
|
||||||
cartlen[itemcounter]=cartlength;
|
cartlen[itemcounter]=cartlength;
|
||||||
stackid[itemcounter]=stack_id;
|
stackid[itemcounter]=stack_id;
|
||||||
artist[itemcounter]=stack_artist.lower().replace(" ","");
|
artist[itemcounter]=stack_artist.lower().replace(" ","");
|
||||||
|
if(stack_schedcodes=="") {
|
||||||
|
stack_schedcodes=".";
|
||||||
|
}
|
||||||
sched_codes[itemcounter]=stack_schedcodes;
|
sched_codes[itemcounter]=stack_schedcodes;
|
||||||
itemcounter++;
|
itemcounter++;
|
||||||
}
|
}
|
||||||
@ -55,8 +56,7 @@ void SchedCartList::insertItem(unsigned cartnumber,int cartlength,int stack_id,Q
|
|||||||
|
|
||||||
void SchedCartList::removeItem(int itemnumber)
|
void SchedCartList::removeItem(int itemnumber)
|
||||||
{
|
{
|
||||||
for(int i=itemnumber;i<(itemcounter-1);i++)
|
for(int i=itemnumber;i<(itemcounter-1);i++) {
|
||||||
{
|
|
||||||
cartnum[i]=cartnum[i+1];
|
cartnum[i]=cartnum[i+1];
|
||||||
cartlen[i]=cartlen[i+1];
|
cartlen[i]=cartlen[i+1];
|
||||||
stackid[i]=stackid[i+1];
|
stackid[i]=stackid[i+1];
|
||||||
@ -72,10 +72,8 @@ bool SchedCartList::removeIfCode(int itemnumber,QString test_code)
|
|||||||
test+=" ";
|
test+=" ";
|
||||||
test=test.left(11);
|
test=test.left(11);
|
||||||
|
|
||||||
if (sched_codes[itemnumber].find(test)!=-1)
|
if (sched_codes[itemnumber].find(test)!=-1) {
|
||||||
{
|
for(int i=itemnumber;i<(itemcounter-1);i++) {
|
||||||
for(int i=itemnumber;i<(itemcounter-1);i++)
|
|
||||||
{
|
|
||||||
cartnum[i]=cartnum[i+1];
|
cartnum[i]=cartnum[i+1];
|
||||||
cartlen[i]=cartlen[i+1];
|
cartlen[i]=cartlen[i+1];
|
||||||
stackid[i]=stackid[i+1];
|
stackid[i]=stackid[i+1];
|
||||||
@ -94,13 +92,29 @@ bool SchedCartList::itemHasCode(int itemnumber,QString test_code)
|
|||||||
test+=" ";
|
test+=" ";
|
||||||
test=test.left(11);
|
test=test.left(11);
|
||||||
|
|
||||||
if (sched_codes[itemnumber].find(test)!=-1)
|
if (sched_codes[itemnumber].find(test)!=-1) {
|
||||||
return true;
|
return true;
|
||||||
else
|
}
|
||||||
|
else {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
bool SchedCartList::itemHasCodes(int itemnumber,QStringList test_codes)
|
||||||
|
{
|
||||||
|
for (int i=0;i<test_codes.size();i++) {
|
||||||
|
QString test=test_codes.at(i);
|
||||||
|
test+=" ";
|
||||||
|
test=test.left(11);
|
||||||
|
|
||||||
|
if (sched_codes[itemnumber].find(test)!=-1) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
void SchedCartList::save(void)
|
void SchedCartList::save(void)
|
||||||
{
|
{
|
||||||
savecartnum=new unsigned[itemcounter];
|
savecartnum=new unsigned[itemcounter];
|
||||||
@ -110,8 +124,7 @@ void SchedCartList::save(void)
|
|||||||
save_sched_codes=new QString[itemcounter];
|
save_sched_codes=new QString[itemcounter];
|
||||||
|
|
||||||
saveitemcounter=itemcounter;
|
saveitemcounter=itemcounter;
|
||||||
for(int i=0;i<saveitemcounter;i++)
|
for(int i=0;i<saveitemcounter;i++) {
|
||||||
{
|
|
||||||
savecartnum[i]=cartnum[i];
|
savecartnum[i]=cartnum[i];
|
||||||
savecartlen[i]=cartlen[i];
|
savecartlen[i]=cartlen[i];
|
||||||
savestackid[i]=stackid[i];
|
savestackid[i]=stackid[i];
|
||||||
@ -123,10 +136,8 @@ void SchedCartList::save(void)
|
|||||||
|
|
||||||
void SchedCartList::restore(void)
|
void SchedCartList::restore(void)
|
||||||
{
|
{
|
||||||
if(itemcounter==0)
|
if(itemcounter==0) {
|
||||||
{
|
for(int i=0;i<saveitemcounter;i++) {
|
||||||
for(int i=0;i<saveitemcounter;i++)
|
|
||||||
{
|
|
||||||
cartnum[i]=savecartnum[i];
|
cartnum[i]=savecartnum[i];
|
||||||
cartlen[i]=savecartlen[i];
|
cartlen[i]=savecartlen[i];
|
||||||
stackid[i]=savestackid[i];
|
stackid[i]=savestackid[i];
|
||||||
@ -144,7 +155,7 @@ void SchedCartList::restore(void)
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
unsigned SchedCartList::getItemCartnumber(int itemnumber)
|
unsigned SchedCartList::getItemCartNumber(int itemnumber)
|
||||||
{
|
{
|
||||||
return cartnum[itemnumber];
|
return cartnum[itemnumber];
|
||||||
}
|
}
|
||||||
@ -164,7 +175,7 @@ QString SchedCartList::getItemSchedCodes(int itemnumber)
|
|||||||
return sched_codes[itemnumber];
|
return sched_codes[itemnumber];
|
||||||
}
|
}
|
||||||
|
|
||||||
int SchedCartList::getItemCartlength(int itemnumber)
|
int SchedCartList::getItemCartLength(int itemnumber)
|
||||||
{
|
{
|
||||||
return cartlen[itemnumber];
|
return cartlen[itemnumber];
|
||||||
}
|
}
|
||||||
@ -175,5 +186,3 @@ int SchedCartList::getNumberOfItems(void)
|
|||||||
return itemcounter;
|
return itemcounter;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -22,6 +22,7 @@
|
|||||||
#define SCHEDCARTLIST_H
|
#define SCHEDCARTLIST_H
|
||||||
|
|
||||||
#include <qsqldatabase.h>
|
#include <qsqldatabase.h>
|
||||||
|
#include <qstringlist.h>
|
||||||
|
|
||||||
class SchedCartList
|
class SchedCartList
|
||||||
{
|
{
|
||||||
@ -32,8 +33,9 @@ class SchedCartList
|
|||||||
void removeItem(int itemnumber);
|
void removeItem(int itemnumber);
|
||||||
bool removeIfCode(int itemnumber,QString test_code);
|
bool removeIfCode(int itemnumber,QString test_code);
|
||||||
bool itemHasCode(int itemnumber,QString test_code);
|
bool itemHasCode(int itemnumber,QString test_code);
|
||||||
unsigned getItemCartnumber(int itemnumber);
|
bool itemHasCodes(int itemnumber,QStringList test_codes);
|
||||||
int getItemCartlength(int itemnumber);
|
unsigned getItemCartNumber(int itemnumber);
|
||||||
|
int getItemCartLength(int itemnumber);
|
||||||
int getItemStackid(int itemnumber);
|
int getItemStackid(int itemnumber);
|
||||||
QString getItemArtist(int itemnumber);
|
QString getItemArtist(int itemnumber);
|
||||||
QString getItemSchedCodes(int itemnumber);
|
QString getItemSchedCodes(int itemnumber);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user