Add RDEvent HaveCode2 to select Cart with a second scheduler code when defined

This commit is contained in:
Alban Peignier 2014-09-04 19:53:27 +02:00
parent d244ef75af
commit 44cff9e37a
7 changed files with 87 additions and 8 deletions

View File

@ -408,6 +408,17 @@ void RDEvent::setHaveCode(QString str)
SetRow("HAVE_CODE",str,true);
}
QString RDEvent::HaveCode2()
{
bool ok;
return GetStringValue("HAVE_CODE2",&ok);
}
void RDEvent::setHaveCode2(QString str)
{
SetRow("HAVE_CODE2",str,true);
}
unsigned RDEvent::titleSep()
{

View File

@ -73,6 +73,8 @@ class RDEvent
void setSchedGroup(QString str);
QString HaveCode();
void setHaveCode(QString str);
QString HaveCode2();
void setHaveCode2(QString str);
unsigned titleSep();
void setTitleSep(unsigned titlesep);
static QString preimportTableName(const QString event_name);

View File

@ -244,6 +244,16 @@ void RDEventLine::setHaveCode(QString str)
event_have_code=str;
}
QString RDEventLine::HaveCode2() const
{
return event_have_code2;
}
void RDEventLine::setHaveCode2(QString str)
{
event_have_code2=str;
}
unsigned RDEventLine::titleSep() const
{
@ -317,6 +327,7 @@ void RDEventLine::clear()
event_autofill_slop=-1;
event_sched_group="";
event_have_code="";
event_have_code2="";
event_title_sep=100;
event_nested_event="";
}
@ -328,7 +339,7 @@ bool RDEventLine::load()
GRACE_TIME,POST_POINT,USE_AUTOFILL,\
USE_TIMESCALE,IMPORT_SOURCE,START_SLOP,\
END_SLOP,FIRST_TRANS_TYPE,DEFAULT_TRANS_TYPE,\
COLOR,AUTOFILL_SLOP,NESTED_EVENT,SCHED_GROUP,TITLE_SEP,HAVE_CODE \
COLOR,AUTOFILL_SLOP,NESTED_EVENT,SCHED_GROUP,TITLE_SEP,HAVE_CODE,HAVE_CODE2 \
from EVENTS where NAME=\"%s\"",
(const char *)event_name);
RDSqlQuery *q=new RDSqlQuery(sql);
@ -361,7 +372,8 @@ bool RDEventLine::load()
event_sched_group=q->value(15).toString();
event_title_sep=q->value(16).toUInt();
event_have_code=q->value(17).toString();
event_have_code2=q->value(18).toString();
delete q;
event_preimport_log->load();
event_postimport_log->load();
@ -383,7 +395,7 @@ bool RDEventLine::save()
END_SLOP=%d,FIRST_TRANS_TYPE=%d,\
DEFAULT_TRANS_TYPE=%d,COLOR=\"%s\"\
AUTOFILL_SLOP=%d,NESTED_EVENT=\"%s\",\
SCHED_GROUP=\"%s\",TITLE_SEP=%d,HAVE_CODE=\"%s\" \
SCHED_GROUP=\"%s\",TITLE_SEP=%d,HAVE_CODE=\"%s\",HAVE_CODE2=\"%s\" \
where NAME=\"%s\"",
(const char *)RDEscapeString(event_properties),
event_preposition,event_time_type,
@ -400,6 +412,7 @@ bool RDEventLine::save()
(const char *)RDEscapeString(event_sched_group),
event_title_sep,
(const char*)event_have_code,
(const char*)event_have_code2,
(const char *)RDEscapeString(event_name));
}
else {
@ -696,8 +709,25 @@ bool RDEventLine::generateLog(QString logname,const QString &svcname,
*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();
}
// Scheduler Codes
// 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
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);
while (q->next())

View File

@ -70,6 +70,8 @@ class RDEventLine
void setSchedGroup(QString str);
QString HaveCode() const;
void setHaveCode(QString str);
QString HaveCode2() const;
void setHaveCode2(QString str);
unsigned titleSep() const;
void setTitleSep(unsigned titlesep);
RDLogEvent *preimportCarts();
@ -112,6 +114,7 @@ class RDEventLine
QString event_nested_event;
QString event_sched_group;
QString event_have_code;
QString event_have_code2;
unsigned event_title_sep;
};

View File

@ -8034,8 +8034,12 @@ int UpdateDb(int ver)
delete q;
}
if(ver<240) {
sql=QString("alter table EVENTS add column ")+
"HAVE_CODE2 VARCHAR(10) after HAVE_CODE";
q=new QSqlQuery(sql);
delete q;
}
// **** End of version updates ****
//

View File

@ -529,6 +529,23 @@ EditEvent::EditEvent(QString eventname,bool new_event,
}
delete q2;
// And code
event_have_code2_label=
new QLabel(tr("and code"),this,"event_have_code2_label");
event_have_code2_label->setFont(bold_font);
event_have_code2_label->setGeometry(CENTER_LINE+420,425,100,20);
event_have_code2_box=new QComboBox(this,"event_have_code2_box");
event_have_code2_box->setGeometry(CENTER_LINE+510,425,100,20);
event_have_code2_box->insertItem("");
sql2="select CODE from SCHED_CODES order by CODE";
q2=new RDSqlQuery(sql2);
while(q2->next()) {
event_have_code2_box->insertItem(q2->value(0).toString());
}
delete q2;
//
// Start Slop Time
@ -798,6 +815,7 @@ EditEvent::EditEvent(QString eventname,bool new_event,
}
event_title_sep_spinbox->setValue(event_event->titleSep());
event_have_code_box->setCurrentText(event_event->HaveCode());
event_have_code2_box->setCurrentText(event_event->HaveCode2());
QColor color=event_event->color();
if(color.isValid()) {
event_color_button->setPalette(QPalette(color,backgroundColor()));
@ -1070,6 +1088,8 @@ void EditEvent::importClickedData(int id)
event_title_sep_spinbox->setEnabled(stateschedinv);
event_have_code_box->setEnabled(stateschedinv);
event_have_code_label->setEnabled(stateschedinv);
event_have_code2_box->setEnabled(stateschedinv);
event_have_code2_label->setEnabled(stateschedinv);
}
@ -1511,7 +1531,14 @@ void EditEvent::Save()
event_event->setProperties(GetProperties());
event_event->setSchedGroup(event_sched_group_box->currentText());
event_event->setTitleSep(event_title_sep_spinbox->value());
event_event->setHaveCode(event_have_code_box->currentText());
event_event->setHaveCode(event_have_code_box->currentText());
if (event_have_code_box->currentText() != QString("")) {
event_event->setHaveCode2(event_have_code2_box->currentText());
} else {
// save second code as first code when first code isn't defined
event_event->setHaveCode(event_have_code2_box->currentText());
event_event->setHaveCode2(QString(""));
}
listname=event_name;
listname.replace(" ","_");
event_preimport_list->logEvent()->

View File

@ -110,6 +110,8 @@ class EditEvent : public QDialog
QLabel *event_title_sep_label;
QComboBox* event_have_code_box;
QLabel *event_have_code_label;
QComboBox* event_have_code2_box;
QLabel *event_have_code2_label;
LibListView *event_lib_list;
QPixmap *event_playout_map;
QPixmap *event_macro_map;