Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
45 changes: 41 additions & 4 deletions ui/AwardsDialog.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -76,6 +76,7 @@ void AwardsDialog::refreshTable(int)
QString addWherePart;
QString sourceContactsTable;
QString sqlPartDetailTable;
QString stmt_having_str;
QStringList stmt_max_part;
QStringList stmt_total_padding;
QStringList stmt_sum_confirmed;
Expand Down Expand Up @@ -118,7 +119,6 @@ void AwardsDialog::refreshTable(int)
stmt_sum_confirmed << QString("SUM(CASE WHEN a.'%1' > 1 THEN 1 ELSE 0 END) '%2'").arg(band.name, band.name);
stmt_sum_worked << QString("SUM(CASE WHEN a.'%1' > 0 THEN 1 ELSE 0 END) '%2'").arg(band.name, band.name);
stmt_sum_total << QString("SUM(d.'%1') '%2'").arg(band.name, band.name);
stmt_having << QString("SUM(d.'%1') = 0").arg(band.name);
stmt_total_band_condition_work << QString("e.'%0' > 0").arg(band.name);
stmt_total_band_condition_confirmed << QString("e.'%0' > 1").arg(band.name);
}
Expand All @@ -133,8 +133,45 @@ void AwardsDialog::refreshTable(int)
<< " SUM(CASE WHEN a.'EME' > 0 THEN 1 ELSE 0 END) 'EME' ";
stmt_sum_total << " SUM(d.'SAT') 'SAT' "
<< " SUM(d.'EME') 'EME' ";
stmt_having << " SUM(d.'SAT') = 0"
<< " SUM(d.'EME') = 0";

QStringList entityWorkedList;
QStringList entityConfirmedList;

for (const Band& band : dxccBands) {
entityWorkedList << QString("CASE WHEN d.'%1' > 0 THEN 1 ELSE 0 END").arg(band.name);
entityConfirmedList << QString("CASE WHEN d.'%1' > 1 THEN 1 ELSE 0 END").arg(band.name);
}

entityWorkedList << "CASE WHEN d.'SAT' > 0 THEN 1 ELSE 0 END"
<< "CASE WHEN d.'EME' > 0 THEN 1 ELSE 0 END";
entityConfirmedList << "CASE WHEN d.'SAT' > 1 THEN 1 ELSE 0 END"
<< "CASE WHEN d.'EME' > 1 THEN 1 ELSE 0 END";

QString workedCountExpr =
QString("(%1)").arg(entityWorkedList.join(" + "));
QString confirmedCountExpr =
QString("(%1)").arg(entityConfirmedList.join(" + "));

bool NotWorked = ui->notWorkedCheckBox->isChecked();
bool NotConfirmed = ui->notConfirmedCheckBox->isChecked();

if (!NotWorked && !NotConfirmed) {
stmt_having_str.clear();
}
else if (NotWorked && !NotConfirmed) {
stmt_having_str = QString("HAVING %1 = 0").arg(workedCountExpr);
}
else if (!NotWorked && NotConfirmed) {
stmt_having_str =
QString("HAVING %1 = 0 AND %2 > 0")
.arg(confirmedCountExpr, workedCountExpr);
}
else {
stmt_having_str =
QString("HAVING (%1 = 0 OR %2 = 0)")
.arg(workedCountExpr, confirmedCountExpr);
}

stmt_total_band_condition_work << "e.'SAT' > 0"
<< "e.'EME' > 0";
stmt_total_band_condition_confirmed << "e.'SAT' > 1"
Expand Down Expand Up @@ -400,7 +437,7 @@ void AwardsDialog::refreshTable(int)
tr("Worked")).arg( // 14
stmt_sum_worked.join(","), // 15
stmt_sum_total.join(","), // 16
ui->notWorkedCheckBox->isChecked() ? QString("HAVING %1").arg(stmt_having.join(" AND ")) : QString()) // 17
(ui->notWorkedCheckBox->isChecked() || ui->notConfirmedCheckBox->isChecked()) ? stmt_having_str : QString()) // 17
);
qDebug(runtime) << finalSQL;

Expand Down
41 changes: 34 additions & 7 deletions ui/AwardsDialog.ui
Original file line number Diff line number Diff line change
Expand Up @@ -218,14 +218,25 @@
</item>
</layout>
</item>
<item row="3" column="1">
<widget class="QCheckBox" name="notWorkedCheckBox">
<property name="text">
<string>Not-Worked Only</string>
</property>
</widget>
<item row="4" column="1">
<layout class="QHBoxLayout" name="horizontalLayout_4" stretch="1,5">
<item>
<widget class="QCheckBox" name="notWorkedCheckBox">
<property name="text">
<string>Not-Worked Only</string>
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="notConfirmedCheckBox">
<property name="text">
<string>Not-Confirmed Only</string>
</property>
</widget>
</item>
</layout>
</item>
<item row="3" column="0">
<item row="4" column="0">
<widget class="QLabel" name="notWorkedLabel">
<property name="text">
<string>Show</string>
Expand Down Expand Up @@ -481,6 +492,22 @@
</hint>
</hints>
</connection>
<connection>
<sender>notConfirmedCheckBox</sender>
<signal>stateChanged(int)</signal>
<receiver>AwardsDialog</receiver>
<slot>refreshTable(int)</slot>
<hints>
<hint type="sourcelabel">
<x>628</x>
<y>325</y>
</hint>
<hint type="destinationlabel">
<x>507</x>
<y>350</y>
</hint>
</hints>
</connection>
</connections>
<slots>
<slot>refreshTable(int)</slot>
Expand Down
Loading