I'd like to post a patch for the calculation of the next check number in the Transaction Editor form. When you enter eg. "2012.001" as a check number, the next check number will be ""2012.2" in the current version (4.6.90-8be3581932). The patch makes the next check number "2012.002". ----------- CUT HERE ---- --- /home/hw/kmymoney2/kmymoney-orig/kmymoney/kmymoneyutils.cpp 2012-01-14 13:27:17.029665048 +0100 +++ /home/hw/kmymoney2/kmymoney/kmymoney/kmymoneyutils.cpp 2012-01-14 17:14:38.643054307 +0100 @@ -354,9 +354,17 @@ { // determine next check number QString number; - QRegExp exp(QString("(.*\\D)?(\\d+)(\\D.*)?")); + QRegExp exp(QString("(.*\\D)?(0*)(\\d+)(\\D.*)?")); if (exp.indexIn(acc.value("lastNumberUsed")) != -1) { - number = QString("%1%2%3").arg(exp.cap(1)).arg(exp.cap(2).toULongLong() + 1).arg(exp.cap(3)); + QString arg1 = exp.cap(1); + QString arg2 = exp.cap(2); + long arg3 = exp.cap(3).toULongLong() + 1; + QString arg4 = exp.cap(4); + if (arg2.length() > 0 && arg1.length() + arg2.length() + QString::number(arg3).length() + arg4.length() != acc.value("lastNumberUsed").length()) + { + // new string is bigger than old one -> remove one preceding zero + arg2 = arg2.mid(1); + } + number = QString("%1%2%3%4").arg(arg1).arg(arg2).arg(arg3).arg(arg4); } else { number = '1'; } ----------- CUT HERE ---- Kind regards, HW
_______________________________________________ KMyMoney-devel mailing list KMyMoney-devel@kde.org https://mail.kde.org/mailman/listinfo/kmymoney-devel