Changeset View
Changeset View
Standalone View
Standalone View
kmymoney/reports/pivottable.cpp
Context not available. | |||||
194 | try { | 194 | try { | ||
---|---|---|---|---|---|
195 | transactions = file->transactionList(m_config); | 195 | transactions = file->transactionList(m_config); | ||
196 | } catch (const MyMoneyException &e) { | 196 | } catch (const MyMoneyException &e) { | ||
197 | qDebug("ERR: %s thrown in %s(%ld)", qPrintable(e.what()), qPrintable(e.file()), e.line()); | 197 | qDebug("ERR: %s", qPrintable(e.what())); | ||
198 | throw e; | 198 | throw; | ||
199 | } | 199 | } | ||
200 | DEBUG_OUTPUT(QString("Found %1 matching transactions").arg(transactions.count())); | 200 | DEBUG_OUTPUT(QString("Found %1 matching transactions").arg(transactions.count())); | ||
201 | 201 | | |||
Context not available. | |||||
480 | PivotInnerGroup::iterator it_row = (*it_innergroup).begin(); | 480 | PivotInnerGroup::iterator it_row = (*it_innergroup).begin(); | ||
481 | while (it_row != (*it_innergroup).end()) { | 481 | while (it_row != (*it_innergroup).end()) { | ||
482 | if ((*it_row)[eActual].count() <= sourcecolumn) | 482 | if ((*it_row)[eActual].count() <= sourcecolumn) | ||
483 | throw MYMONEYEXCEPTION(QString("Sourcecolumn %1 out of grid range (%2) in PivotTable::accumulateColumn").arg(sourcecolumn).arg((*it_row)[eActual].count())); | 483 | throw MYMONEYEXCEPTION(QString::fromLatin1("Sourcecolumn %1 out of grid range (%2) in PivotTable::accumulateColumn").arg(sourcecolumn).arg((*it_row)[eActual].count())); | ||
484 | if ((*it_row)[eActual].count() <= destcolumn) | 484 | if ((*it_row)[eActual].count() <= destcolumn) | ||
485 | throw MYMONEYEXCEPTION(QString("Destcolumn %1 out of grid range (%2) in PivotTable::accumulateColumn").arg(sourcecolumn).arg((*it_row)[eActual].count())); | 485 | throw MYMONEYEXCEPTION(QString::fromLatin1("Destcolumn %1 out of grid range (%2) in PivotTable::accumulateColumn").arg(sourcecolumn).arg((*it_row)[eActual].count())); | ||
486 | 486 | | |||
487 | (*it_row)[eActual][destcolumn] += (*it_row)[eActual][sourcecolumn]; | 487 | (*it_row)[eActual][destcolumn] += (*it_row)[eActual][sourcecolumn]; | ||
488 | ++it_row; | 488 | ++it_row; | ||
Context not available. | |||||
509 | PivotInnerGroup::iterator it_row = (*it_innergroup).begin(); | 509 | PivotInnerGroup::iterator it_row = (*it_innergroup).begin(); | ||
510 | while (it_row != (*it_innergroup).end()) { | 510 | while (it_row != (*it_innergroup).end()) { | ||
511 | if ((*it_row)[eActual].count() <= column) | 511 | if ((*it_row)[eActual].count() <= column) | ||
512 | throw MYMONEYEXCEPTION(QString("Column %1 out of grid range (%2) in PivotTable::accumulateColumn").arg(column).arg((*it_row)[eActual].count())); | 512 | throw MYMONEYEXCEPTION(QString::fromLatin1("Column %1 out of grid range (%2) in PivotTable::accumulateColumn").arg(column).arg((*it_row)[eActual].count())); | ||
513 | 513 | | |||
514 | (*it_row++)[eActual][column] = PivotCell(); | 514 | (*it_row++)[eActual][column] = PivotCell(); | ||
515 | } | 515 | } | ||
Context not available. | |||||
694 | int column = m_startColumn; | 694 | int column = m_startColumn; | ||
695 | while (column < m_numColumns) { | 695 | while (column < m_numColumns) { | ||
696 | if (it_row.value()[eActual].count() <= column) | 696 | if (it_row.value()[eActual].count() <= column) | ||
697 | throw MYMONEYEXCEPTION(QString("Column %1 out of grid range (%2) in PivotTable::calculateRunningSums").arg(column).arg(it_row.value()[eActual].count())); | 697 | throw MYMONEYEXCEPTION(QString::fromLatin1("Column %1 out of grid range (%2) in PivotTable::calculateRunningSums").arg(column).arg(it_row.value()[eActual].count())); | ||
698 | 698 | | |||
699 | runningsum = it_row.value()[eActual][column].calculateRunningSum(runningsum); | 699 | runningsum = it_row.value()[eActual][column].calculateRunningSum(runningsum); | ||
700 | 700 | | |||
Context not available. | |||||
719 | int column = m_startColumn; | 719 | int column = m_startColumn; | ||
720 | while (column < m_numColumns) { | 720 | while (column < m_numColumns) { | ||
721 | if (it_row.value()[eActual].count() <= column) | 721 | if (it_row.value()[eActual].count() <= column) | ||
722 | throw MYMONEYEXCEPTION(QString("Column %1 out of grid range (%2) in PivotTable::calculateRunningSums").arg(column).arg(it_row.value()[eActual].count())); | 722 | throw MYMONEYEXCEPTION(QString::fromLatin1("Column %1 out of grid range (%2) in PivotTable::calculateRunningSums").arg(column).arg(it_row.value()[eActual].count())); | ||
723 | 723 | | |||
724 | runningsum = (it_row.value()[eActual][column] += runningsum); | 724 | runningsum = (it_row.value()[eActual][column] += runningsum); | ||
725 | 725 | | |||
Context not available. | |||||
739 | { | 739 | { | ||
740 | if (m_runningSumsCalculated) { | 740 | if (m_runningSumsCalculated) { | ||
741 | qDebug("You must not call PivotTable::cellBalance() after calling PivotTable::calculateRunningSums()"); | 741 | qDebug("You must not call PivotTable::cellBalance() after calling PivotTable::calculateRunningSums()"); | ||
742 | throw MYMONEYEXCEPTION(QString("You must not call PivotTable::cellBalance() after calling PivotTable::calculateRunningSums()")); | 742 | throw MYMONEYEXCEPTION(QString::fromLatin1("You must not call PivotTable::cellBalance() after calling PivotTable::calculateRunningSums()")); | ||
743 | } | 743 | } | ||
744 | 744 | | |||
745 | // for budget reports, if this is the actual value, map it to the account which | 745 | // for budget reports, if this is the actual value, map it to the account which | ||
Context not available. | |||||
763 | QString innergroup(row.topParentName()); | 763 | QString innergroup(row.topParentName()); | ||
764 | 764 | | |||
765 | if (m_numColumns <= _column) | 765 | if (m_numColumns <= _column) | ||
766 | throw MYMONEYEXCEPTION(QString("Column %1 out of m_numColumns range (%2) in PivotTable::cellBalance").arg(_column).arg(m_numColumns)); | 766 | throw MYMONEYEXCEPTION(QString::fromLatin1("Column %1 out of m_numColumns range (%2) in PivotTable::cellBalance").arg(_column).arg(m_numColumns)); | ||
767 | if (m_grid[outergroup][innergroup][row][eActual].count() <= _column) | 767 | if (m_grid[outergroup][innergroup][row][eActual].count() <= _column) | ||
768 | throw MYMONEYEXCEPTION(QString("Column %1 out of grid range (%2) in PivotTable::cellBalance").arg(_column).arg(m_grid[outergroup][innergroup][row][eActual].count())); | 768 | throw MYMONEYEXCEPTION(QString::fromLatin1("Column %1 out of grid range (%2) in PivotTable::cellBalance").arg(_column).arg(m_grid[outergroup][innergroup][row][eActual].count())); | ||
769 | 769 | | |||
770 | MyMoneyMoney balance; | 770 | MyMoneyMoney balance; | ||
771 | if (budget) | 771 | if (budget) | ||
Context not available. | |||||
776 | int column = m_startColumn; | 776 | int column = m_startColumn; | ||
777 | while (column < _column) { | 777 | while (column < _column) { | ||
778 | if (m_grid[outergroup][innergroup][row][eActual].count() <= column) | 778 | if (m_grid[outergroup][innergroup][row][eActual].count() <= column) | ||
779 | throw MYMONEYEXCEPTION(QString("Column %1 out of grid range (%2) in PivotTable::cellBalance").arg(column).arg(m_grid[outergroup][innergroup][row][eActual].count())); | 779 | throw MYMONEYEXCEPTION(QString::fromLatin1("Column %1 out of grid range (%2) in PivotTable::cellBalance").arg(column).arg(m_grid[outergroup][innergroup][row][eActual].count())); | ||
780 | 780 | | |||
781 | balance = m_grid[outergroup][innergroup][row][eActual][column].cellBalance(balance); | 781 | balance = m_grid[outergroup][innergroup][row][eActual][column].cellBalance(balance); | ||
782 | 782 | | |||
Context not available. | |||||
996 | auto column = 0; | 996 | auto column = 0; | ||
997 | while (column < m_numColumns) { | 997 | while (column < m_numColumns) { | ||
998 | if (it_row.value()[eActual].count() <= column) | 998 | if (it_row.value()[eActual].count() <= column) | ||
999 | throw MYMONEYEXCEPTION(QString("Column %1 out of grid range (%2) in PivotTable::convertToBaseCurrency").arg(column).arg(it_row.value()[eActual].count())); | 999 | throw MYMONEYEXCEPTION(QString::fromLatin1("Column %1 out of grid range (%2) in PivotTable::convertToBaseCurrency").arg(column).arg(it_row.value()[eActual].count())); | ||
1000 | 1000 | | |||
1001 | QDate valuedate = columnDate(column); | 1001 | QDate valuedate = columnDate(column); | ||
1002 | 1002 | | |||
Context not available. | |||||
1045 | auto column = 0; | 1045 | auto column = 0; | ||
1046 | while (column < m_numColumns) { | 1046 | while (column < m_numColumns) { | ||
1047 | if (it_row.value()[eActual].count() <= column) | 1047 | if (it_row.value()[eActual].count() <= column) | ||
1048 | throw MYMONEYEXCEPTION(QString("Column %1 out of grid range (%2) in PivotTable::convertToDeepCurrency").arg(column).arg(it_row.value()[eActual].count())); | 1048 | throw MYMONEYEXCEPTION(QString::fromLatin1("Column %1 out of grid range (%2) in PivotTable::convertToDeepCurrency").arg(column).arg(it_row.value()[eActual].count())); | ||
1049 | 1049 | | |||
1050 | QDate valuedate = columnDate(column); | 1050 | QDate valuedate = columnDate(column); | ||
1051 | 1051 | | |||
Context not available. | |||||
1130 | while (column < m_numColumns) { | 1130 | while (column < m_numColumns) { | ||
1131 | for (int i = 0; i < m_rowTypeList.size(); ++i) { | 1131 | for (int i = 0; i < m_rowTypeList.size(); ++i) { | ||
1132 | if (it_row.value()[ m_rowTypeList[i] ].count() <= column) | 1132 | if (it_row.value()[ m_rowTypeList[i] ].count() <= column) | ||
1133 | throw MYMONEYEXCEPTION(QString("Column %1 out of grid range (%2) in PivotTable::calculateTotals, row columns").arg(column).arg(it_row.value()[ m_rowTypeList[i] ].count())); | 1133 | throw MYMONEYEXCEPTION(QString::fromLatin1("Column %1 out of grid range (%2) in PivotTable::calculateTotals, row columns").arg(column).arg(it_row.value()[ m_rowTypeList[i] ].count())); | ||
1134 | if ((*it_innergroup).m_total[ m_rowTypeList[i] ].count() <= column) | 1134 | if ((*it_innergroup).m_total[ m_rowTypeList[i] ].count() <= column) | ||
1135 | throw MYMONEYEXCEPTION(QString("Column %1 out of grid range (%2) in PivotTable::calculateTotals, inner group totals").arg(column).arg((*it_innergroup).m_total[ m_rowTypeList[i] ].count())); | 1135 | throw MYMONEYEXCEPTION(QString::fromLatin1("Column %1 out of grid range (%2) in PivotTable::calculateTotals, inner group totals").arg(column).arg((*it_innergroup).m_total[ m_rowTypeList[i] ].count())); | ||
1136 | 1136 | | |||
1137 | //calculate total | 1137 | //calculate total | ||
1138 | MyMoneyMoney value = it_row.value()[ m_rowTypeList[i] ][column]; | 1138 | MyMoneyMoney value = it_row.value()[ m_rowTypeList[i] ][column]; | ||
Context not available. | |||||
1152 | while (column < m_numColumns) { | 1152 | while (column < m_numColumns) { | ||
1153 | for (int i = 0; i < m_rowTypeList.size(); ++i) { | 1153 | for (int i = 0; i < m_rowTypeList.size(); ++i) { | ||
1154 | if ((*it_innergroup).m_total[ m_rowTypeList[i] ].count() <= column) | 1154 | if ((*it_innergroup).m_total[ m_rowTypeList[i] ].count() <= column) | ||
1155 | throw MYMONEYEXCEPTION(QString("Column %1 out of grid range (%2) in PivotTable::calculateTotals, inner group totals").arg(column).arg((*it_innergroup).m_total[ m_rowTypeList[i] ].count())); | 1155 | throw MYMONEYEXCEPTION(QString::fromLatin1("Column %1 out of grid range (%2) in PivotTable::calculateTotals, inner group totals").arg(column).arg((*it_innergroup).m_total[ m_rowTypeList[i] ].count())); | ||
1156 | if ((*it_outergroup).m_total[ m_rowTypeList[i] ].count() <= column) | 1156 | if ((*it_outergroup).m_total[ m_rowTypeList[i] ].count() <= column) | ||
1157 | throw MYMONEYEXCEPTION(QString("Column %1 out of grid range (%2) in PivotTable::calculateTotals, outer group totals").arg(column).arg((*it_innergroup).m_total[ m_rowTypeList[i] ].count())); | 1157 | throw MYMONEYEXCEPTION(QString::fromLatin1("Column %1 out of grid range (%2) in PivotTable::calculateTotals, outer group totals").arg(column).arg((*it_innergroup).m_total[ m_rowTypeList[i] ].count())); | ||
1158 | 1158 | | |||
1159 | //calculate totals | 1159 | //calculate totals | ||
1160 | MyMoneyMoney value = (*it_innergroup).m_total[ m_rowTypeList[i] ][column]; | 1160 | MyMoneyMoney value = (*it_innergroup).m_total[ m_rowTypeList[i] ][column]; | ||
Context not available. | |||||
1177 | while (column < m_numColumns) { | 1177 | while (column < m_numColumns) { | ||
1178 | for (int i = 0; i < m_rowTypeList.size(); ++i) { | 1178 | for (int i = 0; i < m_rowTypeList.size(); ++i) { | ||
1179 | if (m_grid.m_total[ m_rowTypeList[i] ].count() <= column) | 1179 | if (m_grid.m_total[ m_rowTypeList[i] ].count() <= column) | ||
1180 | throw MYMONEYEXCEPTION(QString("Column %1 out of grid range (%2) in PivotTable::calculateTotals, grid totals").arg(column).arg((*it_innergroup).m_total[ m_rowTypeList[i] ].count())); | 1180 | throw MYMONEYEXCEPTION(QString::fromLatin1("Column %1 out of grid range (%2) in PivotTable::calculateTotals, grid totals").arg(column).arg((*it_innergroup).m_total[ m_rowTypeList[i] ].count())); | ||
1181 | 1181 | | |||
1182 | //calculate actual totals | 1182 | //calculate actual totals | ||
1183 | MyMoneyMoney value = (*it_outergroup).m_total[ m_rowTypeList[i] ][column]; | 1183 | MyMoneyMoney value = (*it_outergroup).m_total[ m_rowTypeList[i] ][column]; | ||
Context not available. | |||||
1205 | while (totalcolumn < m_numColumns) { | 1205 | while (totalcolumn < m_numColumns) { | ||
1206 | for (int i = 0; i < m_rowTypeList.size(); ++i) { | 1206 | for (int i = 0; i < m_rowTypeList.size(); ++i) { | ||
1207 | if (m_grid.m_total[ m_rowTypeList[i] ].count() <= totalcolumn) | 1207 | if (m_grid.m_total[ m_rowTypeList[i] ].count() <= totalcolumn) | ||
1208 | throw MYMONEYEXCEPTION(QString("Total column %1 out of grid range (%2) in PivotTable::calculateTotals, grid totals").arg(totalcolumn).arg(m_grid.m_total[ m_rowTypeList[i] ].count())); | 1208 | throw MYMONEYEXCEPTION(QString::fromLatin1("Total column %1 out of grid range (%2) in PivotTable::calculateTotals, grid totals").arg(totalcolumn).arg(m_grid.m_total[ m_rowTypeList[i] ].count())); | ||
1209 | 1209 | | |||
1210 | //calculate actual totals | 1210 | //calculate actual totals | ||
1211 | MyMoneyMoney value = m_grid.m_total[ m_rowTypeList[i] ][totalcolumn]; | 1211 | MyMoneyMoney value = m_grid.m_total[ m_rowTypeList[i] ][totalcolumn]; | ||
Context not available. | |||||
1241 | QString innergroup(row.topParentName()); | 1241 | QString innergroup(row.topParentName()); | ||
1242 | 1242 | | |||
1243 | if (m_numColumns <= column) | 1243 | if (m_numColumns <= column) | ||
1244 | throw MYMONEYEXCEPTION(QString("Column %1 out of m_numColumns range (%2) in PivotTable::assignCell").arg(column).arg(m_numColumns)); | 1244 | throw MYMONEYEXCEPTION(QString::fromLatin1("Column %1 out of m_numColumns range (%2) in PivotTable::assignCell").arg(column).arg(m_numColumns)); | ||
1245 | if (m_grid[outergroup][innergroup][row][eActual].count() <= column) | 1245 | if (m_grid[outergroup][innergroup][row][eActual].count() <= column) | ||
1246 | throw MYMONEYEXCEPTION(QString("Column %1 out of grid range (%2) in PivotTable::assignCell").arg(column).arg(m_grid[outergroup][innergroup][row][eActual].count())); | 1246 | throw MYMONEYEXCEPTION(QString::fromLatin1("Column %1 out of grid range (%2) in PivotTable::assignCell").arg(column).arg(m_grid[outergroup][innergroup][row][eActual].count())); | ||
1247 | if (m_grid[outergroup][innergroup][row][eBudget].count() <= column) | 1247 | if (m_grid[outergroup][innergroup][row][eBudget].count() <= column) | ||
1248 | throw MYMONEYEXCEPTION(QString("Column %1 out of grid range (%2) in PivotTable::assignCell").arg(column).arg(m_grid[outergroup][innergroup][row][eBudget].count())); | 1248 | throw MYMONEYEXCEPTION(QString::fromLatin1("Column %1 out of grid range (%2) in PivotTable::assignCell").arg(column).arg(m_grid[outergroup][innergroup][row][eBudget].count())); | ||
1249 | 1249 | | |||
1250 | if (!stockSplit) { | 1250 | if (!stockSplit) { | ||
1251 | // Determine whether the value should be inverted before being placed in the row | 1251 | // Determine whether the value should be inverted before being placed in the row | ||
Context not available. |