void Model_Checking::getEmptyTransaction(Data &data, int accountID) { data.TRANSID = -1; wxDateTime trx_date = wxDateTime::Today(); if (mmIniOptions::instance().transDateDefault_ != 0) { auto trans = instance().find(ACCOUNTID(accountID), TRANSDATE(trx_date, LESS_OR_EQUAL)); std::stable_sort(trans.begin(), trans.end(), SorterByTRANSDATE()); std::reverse(trans.begin(), trans.end()); if (!trans.empty()) trx_date = to_date(trans.begin()->TRANSDATE); wxDateTime trx_date_b = wxDateTime::Today(); auto trans_b = instance().find(TOACCOUNTID(accountID), TRANSDATE(trx_date_b, LESS_OR_EQUAL)); std::stable_sort(trans_b.begin(), trans_b.end(), SorterByTRANSDATE()); std::reverse(trans_b.begin(), trans_b.end()); if (!trans_b.empty()) { trx_date_b = to_date(trans_b.begin()->TRANSDATE); if (!trans.empty() && (trx_date_b > trx_date)) trx_date = trx_date_b; } } data.TRANSDATE = trx_date.FormatISODate(); data.ACCOUNTID = accountID; data.STATUS = toShortStatus(all_status()[mmIniOptions::instance().transStatusReconciled_]); data.TRANSCODE = all_type()[WITHDRAWAL]; data.CATEGID = -1; data.SUBCATEGID = -1; data.FOLLOWUPID = -1; data.TRANSAMOUNT = 0; data.TOTRANSAMOUNT = 0; data.TRANSACTIONNUMBER = ""; if (mmIniOptions::instance().transPayeeSelectionNone_ != 0) { auto trx = instance().find(TRANSCODE(TRANSFER, NOT_EQUAL) , ACCOUNTID(accountID, EQUAL), TRANSDATE(trx_date, LESS_OR_EQUAL)); if (!trx.empty()) { std::stable_sort(trx.begin(), trx.end(), SorterByTRANSDATE()); Model_Payee::Data* payee = Model_Payee::instance().get(trx.rbegin()->PAYEEID); if (payee) data.PAYEEID = payee->PAYEEID; if (payee && mmIniOptions::instance().transCategorySelectionNone_ != 0) { data.CATEGID = payee->CATEGID; data.SUBCATEGID = payee->SUBCATEGID; } } } }
DB_Table_BILLSDEPOSITS_V1::TRANSCODE Model_Billsdeposits::TRANSCODE(TYPE type, OP op) { return DB_Table_BILLSDEPOSITS_V1::TRANSCODE(all_type()[type], op); }
DB_Table_CHECKINGACCOUNT_V1::TRANSCODE Model_Checking::TRANSCODE(TYPE type, OP op) { return DB_Table_CHECKINGACCOUNT_V1::TRANSCODE(all_type()[type], op); }
DB_Table_ASSETS_V1::ASSETTYPE Model_Asset::ASSETTYPE(TYPE type, OP op) { return DB_Table_ASSETS_V1::ASSETTYPE(all_type()[type], op); }
bool Model_Checking::foreignTransaction(const Data& data) { return (data.TOACCOUNTID > 0) && ((data.TRANSCODE == all_type()[DEPOSIT]) || (data.TRANSCODE == all_type()[WITHDRAWAL])); }
bool Model_Checking::Full_Data::is_foreign() const { return (this->TOACCOUNTID > 0) && ((this->TRANSCODE == all_type()[DEPOSIT]) || (this->TRANSCODE == all_type()[WITHDRAWAL])); }