From eee9e559584846a8ce60a35f8142a3de2277ed6a Mon Sep 17 00:00:00 2001 From: n-stein <16599929+n-stein@users.noreply.github.com> Date: Fri, 8 Mar 2024 10:30:30 -0500 Subject: [PATCH] fix(#6570): scheduled transaction fixes --- src/billsdepositsdialog.cpp | 5 +++-- src/billsdepositspanel.cpp | 8 ++++---- src/mmframe.cpp | 3 ++- src/model/Model_Billsdeposits.cpp | 2 +- 4 files changed, 10 insertions(+), 8 deletions(-) diff --git a/src/billsdepositsdialog.cpp b/src/billsdepositsdialog.cpp index cd86957db5..a8e16c191e 100644 --- a/src/billsdepositsdialog.cpp +++ b/src/billsdepositsdialog.cpp @@ -454,8 +454,9 @@ void mmBDDialog::CreateControls() wxBoxSizer* repeatTimesBoxSizer = new wxBoxSizer(wxHORIZONTAL); itemFlexGridSizer52->Add(repeatTimesBoxSizer); - textNumRepeats_ = new wxTextCtrl(this, ID_DIALOG_BD_TEXTCTRL_NUM_TIMES, "" - , wxDefaultPosition, m_date_due->GetSize(), 0, wxIntegerValidator()); + wxIntegerValidator intValidator(nullptr, wxNUM_VAL_ZERO_AS_BLANK); + intValidator.SetMin(0); + textNumRepeats_ = new wxTextCtrl(this, ID_DIALOG_BD_TEXTCTRL_NUM_TIMES, "", wxDefaultPosition, m_date_due->GetSize(), 0, intValidator); repeatTimesBoxSizer->Add(textNumRepeats_, g_flagsH); textNumRepeats_->SetMaxLength(12); setRepeatDetails(); diff --git a/src/billsdepositspanel.cpp b/src/billsdepositspanel.cpp index 0fe3263131..bc254e42d7 100644 --- a/src/billsdepositspanel.cpp +++ b/src/billsdepositspanel.cpp @@ -530,11 +530,11 @@ const wxString mmBillsDepositsPanel::GetFrequency(const Model_Billsdeposits::Dat const wxString mmBillsDepositsPanel::GetRemainingDays(const Model_Billsdeposits::Data* item) const { int repeats = item->REPEATS % BD_REPEATS_MULTIPLEX_BASE; // DeMultiplex the Auto Executable fields. - + int daysRemaining = Model_Billsdeposits::TRANSDATE(item) - .Subtract(this->getToday()).GetDays(); + .Subtract(this->getToday()).GetSeconds().GetValue() / 86400; int daysOverdue = Model_Billsdeposits::NEXTOCCURRENCEDATE(item) - .Subtract(this->getToday()).GetDays(); + .Subtract(this->getToday()).GetSeconds().GetValue() / 86400; wxString text = wxString::Format(wxPLURAL("%d day remaining", "%d days remaining", daysRemaining), daysRemaining); if (daysRemaining == 0) @@ -601,7 +601,7 @@ int billsDepositsListCtrl::OnGetItemImage(long item) const repeats %= BD_REPEATS_MULTIPLEX_BASE; int daysRemaining = Model_Billsdeposits::NEXTOCCURRENCEDATE(m_bdp->bills_[item]) - .Subtract(m_bdp->getToday()).GetDays(); + .Subtract(m_bdp->getToday()).GetSeconds().GetValue() / 86400; wxString daysRemainingStr = wxString::Format(wxPLURAL("%d day remaining", "%d days remaining", daysRemaining), daysRemaining); if (daysRemaining == 0) diff --git a/src/mmframe.cpp b/src/mmframe.cpp index db83c28c79..bfd4d7b329 100644 --- a/src/mmframe.cpp +++ b/src/mmframe.cpp @@ -577,7 +577,6 @@ void mmGUIFrame::OnAutoRepeatTransactionsTimer(wxTimerEvent& /*event*/) Model_CustomFieldData::instance().ReleaseSavepoint(); } Model_Billsdeposits::instance().completeBDInSeries(q1.BDID); - createHomePage(); } } @@ -585,6 +584,8 @@ void mmGUIFrame::OnAutoRepeatTransactionsTimer(wxTimerEvent& /*event*/) { autoRepeatTransactionsTimer_.Start(5, wxTIMER_ONE_SHOT); } + else + refreshPanelData(); } //---------------------------------------------------------------------------- diff --git a/src/model/Model_Billsdeposits.cpp b/src/model/Model_Billsdeposits.cpp index b78efab50a..33ab5b5035 100644 --- a/src/model/Model_Billsdeposits.cpp +++ b/src/model/Model_Billsdeposits.cpp @@ -236,7 +236,7 @@ void Model_Billsdeposits::decode_fields(const Data& q1) } m_requireExecution = (Model_Billsdeposits::NEXTOCCURRENCEDATE(&q1) - .Subtract(wxDate::Today()).GetDays() < 1); + .Subtract(wxDate::Today()).GetSeconds().GetValue() / 86400 < 1); } bool Model_Billsdeposits::autoExecuteManual()