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); 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() unsigned RDEvent::titleSep()
{ {

View File

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

View File

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

View File

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

View File

@ -8034,8 +8034,12 @@ int UpdateDb(int ver)
delete q; 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 **** // **** End of version updates ****
// //

View File

@ -529,6 +529,23 @@ EditEvent::EditEvent(QString eventname,bool new_event,
} }
delete q2; 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 // Start Slop Time
@ -798,6 +815,7 @@ EditEvent::EditEvent(QString eventname,bool new_event,
} }
event_title_sep_spinbox->setValue(event_event->titleSep()); event_title_sep_spinbox->setValue(event_event->titleSep());
event_have_code_box->setCurrentText(event_event->HaveCode()); event_have_code_box->setCurrentText(event_event->HaveCode());
event_have_code2_box->setCurrentText(event_event->HaveCode2());
QColor color=event_event->color(); QColor color=event_event->color();
if(color.isValid()) { if(color.isValid()) {
event_color_button->setPalette(QPalette(color,backgroundColor())); event_color_button->setPalette(QPalette(color,backgroundColor()));
@ -1070,6 +1088,8 @@ void EditEvent::importClickedData(int id)
event_title_sep_spinbox->setEnabled(stateschedinv); event_title_sep_spinbox->setEnabled(stateschedinv);
event_have_code_box->setEnabled(stateschedinv); event_have_code_box->setEnabled(stateschedinv);
event_have_code_label->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->setProperties(GetProperties());
event_event->setSchedGroup(event_sched_group_box->currentText()); event_event->setSchedGroup(event_sched_group_box->currentText());
event_event->setTitleSep(event_title_sep_spinbox->value()); 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=event_name;
listname.replace(" ","_"); listname.replace(" ","_");
event_preimport_list->logEvent()-> event_preimport_list->logEvent()->

View File

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