Replaced the regular payments with the regular account settings in the summary helper, to remove the dependency on the local JavaScript codes in the accounting application.
This commit is contained in:
parent
4cb92dd309
commit
1da6cf3208
@ -7,8 +7,8 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: mia-accounting 3.0\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2020-08-27 23:04+0800\n"
|
||||
"PO-Revision-Date: 2020-08-27 23:07+0800\n"
|
||||
"POT-Creation-Date: 2020-08-31 09:53+0800\n"
|
||||
"PO-Revision-Date: 2020-08-31 09:58+0800\n"
|
||||
"Last-Translator: imacat <imacat@mail.imacat.idv.tw>\n"
|
||||
"Language-Team: Traditional Chinese <imacat@mail.imacat.idv.tw>\n"
|
||||
"Language: Traditional Chinese\n"
|
||||
@ -195,22 +195,22 @@ msgstr "勞保{month}"
|
||||
msgid "Health insurance for {month}"
|
||||
msgstr "健保{month}"
|
||||
|
||||
#: accounting/management/commands/accounting_sample.py:246
|
||||
#: accounting/management/commands/accounting_sample.py:247
|
||||
msgid "Income Tax"
|
||||
msgstr "代扣所得稅"
|
||||
|
||||
#: accounting/management/commands/accounting_sample.py:247
|
||||
#: accounting/management/commands/accounting_sample.py:248
|
||||
#, python-brace-format
|
||||
msgid "Payroll for {month}"
|
||||
msgstr "{month}份薪水"
|
||||
|
||||
#: accounting/templates/accounting/account_detail.html:37
|
||||
#: accounting/templates/accounting/transaction_expense_detail.html:39
|
||||
#: accounting/templates/accounting/transaction_expense_form.html:47
|
||||
#: accounting/templates/accounting/transaction_expense_form.html:45
|
||||
#: accounting/templates/accounting/transaction_income_detail.html:39
|
||||
#: accounting/templates/accounting/transaction_income_form.html:47
|
||||
#: accounting/templates/accounting/transaction_income_form.html:45
|
||||
#: accounting/templates/accounting/transaction_transfer_detail.html:39
|
||||
#: accounting/templates/accounting/transaction_transfer_form.html:47
|
||||
#: accounting/templates/accounting/transaction_transfer_form.html:45
|
||||
msgid "Error:"
|
||||
msgstr "錯誤:"
|
||||
|
||||
@ -246,12 +246,12 @@ msgstr "取消"
|
||||
#: accounting/templates/accounting/account_detail.html:71
|
||||
#: accounting/templates/accounting/account_form.html:42
|
||||
#: accounting/templates/accounting/transaction_expense_detail.html:73
|
||||
#: accounting/templates/accounting/transaction_expense_form.html:54
|
||||
#: accounting/templates/accounting/transaction_expense_form.html:52
|
||||
#: accounting/templates/accounting/transaction_income_detail.html:73
|
||||
#: accounting/templates/accounting/transaction_income_form.html:54
|
||||
#: accounting/templates/accounting/transaction_income_form.html:52
|
||||
#: accounting/templates/accounting/transaction_sort_form.html:43
|
||||
#: accounting/templates/accounting/transaction_transfer_detail.html:73
|
||||
#: accounting/templates/accounting/transaction_transfer_form.html:54
|
||||
#: accounting/templates/accounting/transaction_transfer_form.html:52
|
||||
msgid "Back"
|
||||
msgstr "回上頁"
|
||||
|
||||
@ -274,7 +274,7 @@ msgid "Ledger"
|
||||
msgstr "分類帳"
|
||||
|
||||
#: accounting/templates/accounting/account_detail.html:107
|
||||
#: accounting/views.py:1028
|
||||
#: accounting/views.py:1076
|
||||
msgid "This account is in use."
|
||||
msgstr "會計科目使用中。"
|
||||
|
||||
@ -347,10 +347,10 @@ msgid "Add a New Account"
|
||||
msgstr "建新會計科目"
|
||||
|
||||
#: accounting/templates/accounting/account_form.html:81
|
||||
#: accounting/templates/accounting/transaction_expense_form.html:117
|
||||
#: accounting/templates/accounting/transaction_income_form.html:116
|
||||
#: accounting/templates/accounting/transaction_expense_form.html:116
|
||||
#: accounting/templates/accounting/transaction_income_form.html:115
|
||||
#: accounting/templates/accounting/transaction_sort_form.html:137
|
||||
#: accounting/templates/accounting/transaction_transfer_form.html:149
|
||||
#: accounting/templates/accounting/transaction_transfer_form.html:148
|
||||
msgid "Save"
|
||||
msgstr "儲存"
|
||||
|
||||
@ -626,18 +626,18 @@ msgstr "期間"
|
||||
#: accounting/templates/accounting/report-trial-balance.html:146
|
||||
#: accounting/templates/accounting/transaction_expense_detail.html:146
|
||||
#: accounting/templates/accounting/transaction_expense_detail.html:164
|
||||
#: accounting/templates/accounting/transaction_expense_form.html:95
|
||||
#: accounting/templates/accounting/transaction_expense_form.html:94
|
||||
#: accounting/templates/accounting/transaction_income_detail.html:146
|
||||
#: accounting/templates/accounting/transaction_income_detail.html:164
|
||||
#: accounting/templates/accounting/transaction_income_form.html:94
|
||||
#: accounting/templates/accounting/transaction_income_form.html:93
|
||||
#: accounting/templates/accounting/transaction_transfer_detail.html:142
|
||||
#: accounting/templates/accounting/transaction_transfer_detail.html:160
|
||||
#: accounting/templates/accounting/transaction_transfer_detail.html:189
|
||||
#: accounting/templates/accounting/transaction_transfer_detail.html:207
|
||||
#: accounting/templates/accounting/transaction_transfer_form.html:96
|
||||
#: accounting/templates/accounting/transaction_transfer_form.html:126
|
||||
#: accounting/views.py:132 accounting/views.py:241 accounting/views.py:381
|
||||
#: accounting/views.py:568
|
||||
#: accounting/templates/accounting/transaction_transfer_form.html:95
|
||||
#: accounting/templates/accounting/transaction_transfer_form.html:125
|
||||
#: accounting/views.py:135 accounting/views.py:244 accounting/views.py:384
|
||||
#: accounting/views.py:571
|
||||
msgid "Total"
|
||||
msgstr "合計"
|
||||
|
||||
@ -756,7 +756,7 @@ msgstr "%(prep_period)s的日記簿"
|
||||
#: accounting/templates/accounting/report-trial-balance.html:84
|
||||
#: accounting/templates/accounting/search.html:78
|
||||
#: accounting/templates/accounting/transaction_transfer_detail.html:121
|
||||
#: accounting/templates/accounting/transaction_transfer_form.html:75
|
||||
#: accounting/templates/accounting/transaction_transfer_form.html:74
|
||||
msgid "Debit"
|
||||
msgstr "借方"
|
||||
|
||||
@ -766,7 +766,7 @@ msgstr "借方"
|
||||
#: accounting/templates/accounting/report-trial-balance.html:85
|
||||
#: accounting/templates/accounting/search.html:79
|
||||
#: accounting/templates/accounting/transaction_transfer_detail.html:168
|
||||
#: accounting/templates/accounting/transaction_transfer_form.html:105
|
||||
#: accounting/templates/accounting/transaction_transfer_form.html:104
|
||||
msgid "Credit"
|
||||
msgstr "貸方"
|
||||
|
||||
@ -864,12 +864,12 @@ msgid "To Transfer"
|
||||
msgstr "改轉帳"
|
||||
|
||||
#: accounting/templates/accounting/transaction_expense_detail.html:123
|
||||
#: accounting/templates/accounting/transaction_expense_form.html:65
|
||||
#: accounting/templates/accounting/transaction_expense_form.html:64
|
||||
#: accounting/templates/accounting/transaction_income_detail.html:123
|
||||
#: accounting/templates/accounting/transaction_income_form.html:65
|
||||
#: accounting/templates/accounting/transaction_income_form.html:64
|
||||
#: accounting/templates/accounting/transaction_sort_form.html:49
|
||||
#: accounting/templates/accounting/transaction_transfer_detail.html:115
|
||||
#: accounting/templates/accounting/transaction_transfer_form.html:65
|
||||
#: accounting/templates/accounting/transaction_transfer_form.html:64
|
||||
msgid "Date:"
|
||||
msgstr "日期:"
|
||||
|
||||
@ -881,11 +881,11 @@ msgid "$"
|
||||
msgstr "$"
|
||||
|
||||
#: accounting/templates/accounting/transaction_expense_detail.html:172
|
||||
#: accounting/templates/accounting/transaction_expense_form.html:105
|
||||
#: accounting/templates/accounting/transaction_expense_form.html:104
|
||||
#: accounting/templates/accounting/transaction_income_detail.html:172
|
||||
#: accounting/templates/accounting/transaction_income_form.html:104
|
||||
#: accounting/templates/accounting/transaction_income_form.html:103
|
||||
#: accounting/templates/accounting/transaction_transfer_detail.html:217
|
||||
#: accounting/templates/accounting/transaction_transfer_form.html:137
|
||||
#: accounting/templates/accounting/transaction_transfer_form.html:136
|
||||
msgid "Notes:"
|
||||
msgstr "註記:"
|
||||
|
||||
@ -940,62 +940,119 @@ msgstr "沒有這個會計科目。"
|
||||
msgid "You cannot select a parent account."
|
||||
msgstr "請勿選擇上層會計科目。"
|
||||
|
||||
#: accounting/views.py:308
|
||||
#: accounting/views.py:311
|
||||
msgid "Brought Forward"
|
||||
msgstr "上期結轉"
|
||||
|
||||
#: accounting/views.py:622
|
||||
#: accounting/views.py:625
|
||||
msgid "Gross Income"
|
||||
msgstr "營業毛利"
|
||||
|
||||
#: accounting/views.py:623
|
||||
#: accounting/views.py:626
|
||||
msgid "Operating Income"
|
||||
msgstr "營業淨利"
|
||||
|
||||
#: accounting/views.py:624
|
||||
#: accounting/views.py:627
|
||||
msgid "Before Tax Income"
|
||||
msgstr "稅前淨利"
|
||||
|
||||
#: accounting/views.py:625
|
||||
#: accounting/views.py:628
|
||||
msgid "After Tax Income"
|
||||
msgstr "稅後淨利"
|
||||
|
||||
#: accounting/views.py:802
|
||||
#: accounting/views.py:805
|
||||
msgid "This transaction was not modified."
|
||||
msgstr "會計傳票未異動。"
|
||||
|
||||
#: accounting/views.py:803
|
||||
#: accounting/views.py:806
|
||||
msgid "This transaction was saved successfully."
|
||||
msgstr "會計傳票已存檔。"
|
||||
|
||||
#: accounting/views.py:910
|
||||
#: accounting/views.py:809
|
||||
msgid "Pension"
|
||||
msgstr "國民年金"
|
||||
|
||||
#: accounting/views.py:809
|
||||
msgid "Pension for (last_month_name)"
|
||||
msgstr "國民年金(last_month_no)月"
|
||||
|
||||
#: accounting/views.py:811
|
||||
msgid "Health insurance"
|
||||
msgstr "健保"
|
||||
|
||||
#: accounting/views.py:812
|
||||
msgid "Health insurance for (last_month_name)"
|
||||
msgstr "健保(last_month_no)月"
|
||||
|
||||
#: accounting/views.py:813
|
||||
msgid "Electricity bill"
|
||||
msgstr "電費"
|
||||
|
||||
#: accounting/views.py:814
|
||||
msgid ""
|
||||
"Electricity bill for (last_bimonthly_from_name)-(last_bimonthly_to_name)"
|
||||
msgstr "電費(last_bimonthly_from_no)–(last_bimonthly_to_no)月"
|
||||
|
||||
#: accounting/views.py:817
|
||||
msgid "Water bill"
|
||||
msgstr "水費"
|
||||
|
||||
#: accounting/views.py:818
|
||||
msgid "Water bill for (last_bimonthly_from_name)-(last_bimonthly_to_name)"
|
||||
msgstr "水費(last_bimonthly_from_no)–(last_bimonthly_to_no)月"
|
||||
|
||||
#: accounting/views.py:821
|
||||
msgid "Gas bill"
|
||||
msgstr "瓦斯費"
|
||||
|
||||
#: accounting/views.py:822
|
||||
msgid "Gas bill for (last_bimonthly_from_name)-(last_bimonthly_to_name)"
|
||||
msgstr "瓦斯費(last_bimonthly_from_no)–(last_bimonthly_to_no)月"
|
||||
|
||||
#: accounting/views.py:825
|
||||
msgid "Phone bill"
|
||||
msgstr "電話費"
|
||||
|
||||
#: accounting/views.py:826
|
||||
msgid "Phone bill for (last_month_name)"
|
||||
msgstr "電話費(last_month_no)月"
|
||||
|
||||
#: accounting/views.py:830
|
||||
msgid "Payroll"
|
||||
msgstr "薪水"
|
||||
|
||||
#: accounting/views.py:830
|
||||
msgid "Payroll for (last_month_name)"
|
||||
msgstr "(last_month_no)月份薪水"
|
||||
|
||||
#: accounting/views.py:958
|
||||
msgid "This transaction was deleted successfully."
|
||||
msgstr "會計傳票已刪除。"
|
||||
|
||||
#: accounting/views.py:926
|
||||
#: accounting/views.py:974
|
||||
msgid "The transaction orders were not modified."
|
||||
msgstr "會計傳票次序未異動。"
|
||||
|
||||
#: accounting/views.py:928
|
||||
#: accounting/views.py:976
|
||||
msgid "The transaction orders were saved successfully."
|
||||
msgstr "會計傳票次序已儲存。"
|
||||
|
||||
#: accounting/views.py:987
|
||||
#: accounting/views.py:1035
|
||||
msgid "This account was not modified."
|
||||
msgstr "會計科目未異動。"
|
||||
|
||||
#: accounting/views.py:988
|
||||
#: accounting/views.py:1036
|
||||
msgid "This account was saved successfully."
|
||||
msgstr "會計科目已存檔。"
|
||||
|
||||
#: accounting/views.py:1032
|
||||
#: accounting/views.py:1080
|
||||
msgid "This account was deleted successfully."
|
||||
msgstr "會計科目已刪除。"
|
||||
|
||||
#: accounting/views.py:1073
|
||||
#: accounting/views.py:1121
|
||||
msgid "---Accounts In Use---"
|
||||
msgstr "-----使用中科目-----"
|
||||
|
||||
#: accounting/views.py:1078
|
||||
#: accounting/views.py:1126
|
||||
msgid "---Accounts Not In Use---"
|
||||
msgstr "-----未使用科目-----"
|
||||
|
@ -7,8 +7,8 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: mia-accounting-js 3.0\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2020-08-09 21:54+0800\n"
|
||||
"PO-Revision-Date: 2020-08-11 10:14+0800\n"
|
||||
"POT-Creation-Date: 2020-08-31 09:42+0800\n"
|
||||
"PO-Revision-Date: 2020-08-31 09:58+0800\n"
|
||||
"Last-Translator: imacat <imacat@mail.imacat.idv.tw>\n"
|
||||
"Language-Team: Traditional Chinese <imacat@mail.imacat.idv.tw>\n"
|
||||
"Language: Traditional Chinese\n"
|
||||
@ -53,6 +53,54 @@ msgstr "子科目的代碼會太長(最長5位數字)。"
|
||||
msgid "Please fill in the title."
|
||||
msgstr "請填寫標題。"
|
||||
|
||||
#: accounting/static/accounting/js/summary-helper.js:254
|
||||
msgid "January"
|
||||
msgstr "一月"
|
||||
|
||||
#: accounting/static/accounting/js/summary-helper.js:255
|
||||
msgid "February"
|
||||
msgstr "二月"
|
||||
|
||||
#: accounting/static/accounting/js/summary-helper.js:256
|
||||
msgid "March"
|
||||
msgstr "三月"
|
||||
|
||||
#: accounting/static/accounting/js/summary-helper.js:257
|
||||
msgid "April"
|
||||
msgstr "四月"
|
||||
|
||||
#: accounting/static/accounting/js/summary-helper.js:258
|
||||
msgid "May"
|
||||
msgstr "五月"
|
||||
|
||||
#: accounting/static/accounting/js/summary-helper.js:259
|
||||
msgid "June"
|
||||
msgstr "六月"
|
||||
|
||||
#: accounting/static/accounting/js/summary-helper.js:260
|
||||
msgid "July"
|
||||
msgstr "七月"
|
||||
|
||||
#: accounting/static/accounting/js/summary-helper.js:261
|
||||
msgid "August"
|
||||
msgstr "八月"
|
||||
|
||||
#: accounting/static/accounting/js/summary-helper.js:262
|
||||
msgid "September"
|
||||
msgstr "九月"
|
||||
|
||||
#: accounting/static/accounting/js/summary-helper.js:263
|
||||
msgid "October"
|
||||
msgstr "十月"
|
||||
|
||||
#: accounting/static/accounting/js/summary-helper.js:264
|
||||
msgid "November"
|
||||
msgstr "十一月"
|
||||
|
||||
#: accounting/static/accounting/js/summary-helper.js:265
|
||||
msgid "December"
|
||||
msgstr "十二月"
|
||||
|
||||
#: accounting/static/accounting/js/transaction-form.js:376
|
||||
msgid "Please fill in the date."
|
||||
msgstr "請填寫日期。"
|
||||
|
@ -178,27 +178,8 @@ function loadKnownSummaryCategories(type) {
|
||||
});
|
||||
});
|
||||
|
||||
// The regular payments
|
||||
const regularPayments = getRegularPayments();
|
||||
["debit", "credit"].forEach(function (type) {
|
||||
summaryCategories[type].regular = [];
|
||||
summaryAccounts[type].regular = {};
|
||||
regularPayments[type].forEach(function (item) {
|
||||
summaryCategories[type].regular.push(item);
|
||||
summaryAccounts[type].regular[item.title] = item.account;
|
||||
});
|
||||
});
|
||||
const regularPaymentButtons = $("#summary-regular-payments");
|
||||
regularPaymentButtons.html("");
|
||||
summaryCategories[type].regular.forEach(function (item) {
|
||||
regularPaymentButtons.append(
|
||||
$("<span/>")
|
||||
.attr("title", item.summary)
|
||||
.addClass("btn btn-outline-primary")
|
||||
.addClass("btn-summary-helper")
|
||||
.addClass("btn-summary-regular")
|
||||
.text(item.title));
|
||||
});
|
||||
// The regular accounts
|
||||
loadRegularAccounts(type);
|
||||
|
||||
$(".btn-summary-general-category")
|
||||
.on("click", function () {
|
||||
@ -221,14 +202,89 @@ function loadKnownSummaryCategories(type) {
|
||||
setBusSummary();
|
||||
setSummaryAccount("bus", this.innerText);
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Loads the regular accounts.
|
||||
*
|
||||
* @param {string} type the record type
|
||||
* @private
|
||||
*/
|
||||
function loadRegularAccounts(type) {
|
||||
const regularAccounts = JSON.parse(document.getElementById("regular-accounts").value);
|
||||
setRegularAccountSummary(regularAccounts);
|
||||
Object.keys(regularAccounts).forEach(function (type) {
|
||||
summaryCategories[type].regular = [];
|
||||
summaryAccounts[type].regular = {};
|
||||
regularAccounts[type].forEach(function (item) {
|
||||
summaryCategories[type].regular.push(item);
|
||||
summaryAccounts[type].regular[item.title] = item.account;
|
||||
});
|
||||
console.log(summaryAccounts[type].regular);
|
||||
});
|
||||
const regularAccountButtons = $("#summary-regular-accounts");
|
||||
regularAccountButtons.html("");
|
||||
summaryCategories[type].regular.forEach(function (item) {
|
||||
regularAccountButtons.append(
|
||||
$("<span/>")
|
||||
.attr("title", item.summary)
|
||||
.addClass("btn btn-outline-primary")
|
||||
.addClass("btn-summary-helper")
|
||||
.addClass("btn-summary-regular")
|
||||
.text(item.title));
|
||||
});
|
||||
$(".btn-summary-regular")
|
||||
.on("click", function () {
|
||||
$("#summary-summary").get(0).value = this.title;
|
||||
setSummaryRegularPaymentButtons(this.innerText);
|
||||
setSummaryRegularAccountButtons(this.innerText);
|
||||
setSummaryAccount("regular", this.innerText);
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the summary of the regular accounts according to the date
|
||||
*
|
||||
* @param {{}} regularAccounts the regular account data
|
||||
* @private
|
||||
*/
|
||||
function setRegularAccountSummary(regularAccounts)
|
||||
{
|
||||
const monthNames = [
|
||||
"",
|
||||
gettext("January"),
|
||||
gettext("February"),
|
||||
gettext("March"),
|
||||
gettext("April"),
|
||||
gettext("May"),
|
||||
gettext("June"),
|
||||
gettext("July"),
|
||||
gettext("August"),
|
||||
gettext("September"),
|
||||
gettext("October"),
|
||||
gettext("November"),
|
||||
gettext("December"),
|
||||
];
|
||||
const today = new Date($("#txn-date").get(0).value);
|
||||
const thisMonth = today.getMonth() + 1;
|
||||
const lastMonth = (thisMonth + 10) % 12 + 1;
|
||||
const lastBimonthlyFrom = ((thisMonth + thisMonth % 2 + 8) % 12 + 1);
|
||||
const lastBimonthlyTo = ((thisMonth + thisMonth % 2 + 9) % 12 + 1);
|
||||
Object.keys(regularAccounts).forEach(function (type) {
|
||||
regularAccounts[type].forEach(function (item) {
|
||||
item.summary = item.format
|
||||
.replaceAll("(month_no)", String(thisMonth))
|
||||
.replaceAll("(month_name)", monthNames[thisMonth])
|
||||
.replaceAll("(last_month_no)", String(lastMonth))
|
||||
.replaceAll("(last_month_name)", monthNames[lastMonth])
|
||||
.replaceAll("(last_bimonthly_from_no)", String(lastBimonthlyFrom))
|
||||
.replaceAll("(last_bimonthly_from_name)", monthNames[lastBimonthlyFrom])
|
||||
.replaceAll("(last_bimonthly_to_no)", String(lastBimonthlyTo))
|
||||
.replaceAll("(last_bimonthly_to_name)", monthNames[lastBimonthlyTo]);
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Parses the summary and sets up the summary helper.
|
||||
*
|
||||
@ -459,11 +515,11 @@ function setBusSummary() {
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the regular payment buttons.
|
||||
* Sets the regular account buttons.
|
||||
*
|
||||
* @param {string} category the regular payment
|
||||
* @param {string} category the regular account
|
||||
*/
|
||||
function setSummaryRegularPaymentButtons(category) {
|
||||
function setSummaryRegularAccountButtons(category) {
|
||||
$(".btn-summary-regular").each(function () {
|
||||
if (this.innerText === category) {
|
||||
this.classList.remove("btn-outline-primary");
|
||||
|
@ -134,11 +134,11 @@ First written: 2020/4/3
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Regular payments -->
|
||||
<!-- Regular accounts -->
|
||||
<div id="summary-tab-content-regular" class="summary-tab-content d-none">
|
||||
<div class="row">
|
||||
<div class="col-sm-12">
|
||||
<div id="summary-regular-payments" class="summary-categories-known"></div>
|
||||
<div id="summary-regular-accounts" class="summary-categories-known"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -32,7 +32,6 @@ First written: 2020/7/23
|
||||
{% static "accounting/css/transactions.css" as file %}{% add_css file %}
|
||||
{% static "accounting/css/summary-helper.css" as file %}{% add_css file %}
|
||||
{% static "accounting/js/transaction-form.js" as file %}{% add_js file %}
|
||||
{% static "js/regular-payments.js" as file %}{% add_js file %}
|
||||
{% static "accounting/js/summary-helper.js" as file %}{% add_js file %}
|
||||
{% endblock %}
|
||||
|
||||
@ -56,6 +55,7 @@ First written: 2020/7/23
|
||||
|
||||
<input id="account-option-url" type="hidden" value="{% url "accounting:api.accounts.options" %}" />
|
||||
<input id="summary-categories" type="hidden" value="{{ summary_categories }}" />
|
||||
<input id="regular-accounts" type="hidden" value="{{ regular_accounts }}" />
|
||||
<input id="new-record-template" type="hidden" value="{{ new_record_template }}" />
|
||||
<form id="txn-form" action="{% if form.transaction %}{% url "accounting:transactions.update" "expense" form.transaction as url %}{% url_keep_return url %}{% else %}{% url "accounting:transactions.create" "expense" as url %}{% url_keep_return url %}{% endif %}" method="post">
|
||||
{% csrf_token %}
|
||||
|
@ -32,7 +32,6 @@ First written: 2020/7/23
|
||||
{% static "accounting/css/transactions.css" as file %}{% add_css file %}
|
||||
{% static "accounting/css/summary-helper.css" as file %}{% add_css file %}
|
||||
{% static "accounting/js/transaction-form.js" as file %}{% add_js file %}
|
||||
{% static "js/regular-payments.js" as file %}{% add_js file %}
|
||||
{% static "accounting/js/summary-helper.js" as file %}{% add_js file %}
|
||||
{% endblock %}
|
||||
|
||||
@ -56,6 +55,7 @@ First written: 2020/7/23
|
||||
|
||||
<input id="account-option-url" type="hidden" value="{% url "accounting:api.accounts.options" %}" />
|
||||
<input id="summary-categories" type="hidden" value="{{ summary_categories }}" />
|
||||
<input id="regular-accounts" type="hidden" value="{{ regular_accounts }}" />
|
||||
<input id="new-record-template" type="hidden" value="{{ new_record_template }}" />
|
||||
<form id="txn-form" action="{% if form.transaction %}{% url "accounting:transactions.update" "income" form.transaction as url %}{% url_keep_return url %}{% else %}{% url "accounting:transactions.create" "income" as url %}{% url_keep_return url %}{% endif %}" method="post">
|
||||
{% csrf_token %}
|
||||
|
@ -32,7 +32,6 @@ First written: 2020/7/23
|
||||
{% static "accounting/css/transactions.css" as file %}{% add_css file %}
|
||||
{% static "accounting/css/summary-helper.css" as file %}{% add_css file %}
|
||||
{% static "accounting/js/transaction-form.js" as file %}{% add_js file %}
|
||||
{% static "js/regular-payments.js" as file %}{% add_js file %}
|
||||
{% static "accounting/js/summary-helper.js" as file %}{% add_js file %}
|
||||
{% endblock %}
|
||||
|
||||
@ -56,6 +55,7 @@ First written: 2020/7/23
|
||||
|
||||
<input id="account-option-url" type="hidden" value="{% url "accounting:api.accounts.options" %}" />
|
||||
<input id="summary-categories" type="hidden" value="{{ summary_categories }}" />
|
||||
<input id="regular-accounts" type="hidden" value="{{ regular_accounts }}" />
|
||||
<input id="new-record-template" type="hidden" value="{{ new_record_template }}" />
|
||||
<form id="txn-form" action="{% if form.transaction %}{% url "accounting:transactions.update" "transfer" form.transaction as url %}{% url_keep_return url %}{% else %}{% url "accounting:transactions.create" "transfer" as url %}{% url_keep_return url %}{% endif %}" method="post">
|
||||
{% csrf_token %}
|
||||
|
@ -20,8 +20,9 @@
|
||||
"""
|
||||
import json
|
||||
import re
|
||||
from typing import Dict, Optional
|
||||
from typing import Dict, Optional, List, Tuple
|
||||
|
||||
from django.conf import settings
|
||||
from django.contrib import messages
|
||||
from django.db import transaction
|
||||
from django.db.models import Sum, Case, When, F, Q, Count, BooleanField, \
|
||||
@ -34,7 +35,7 @@ from django.template.loader import render_to_string
|
||||
from django.urls import reverse
|
||||
from django.utils import timezone
|
||||
from django.utils.decorators import method_decorator
|
||||
from django.utils.translation import gettext as _, gettext_noop
|
||||
from django.utils.translation import gettext as _, gettext_noop, gettext
|
||||
from django.views.decorators.http import require_GET, require_POST
|
||||
from django.views.generic import ListView, DetailView
|
||||
|
||||
@ -803,11 +804,42 @@ class TransactionFormView(FormView):
|
||||
form_class = TransactionForm
|
||||
not_modified_message = gettext_noop("This transaction was not modified.")
|
||||
success_message = gettext_noop("This transaction was saved successfully.")
|
||||
DEFAULT_REGULAR_ACCOUNTS = {
|
||||
"debit": [
|
||||
(gettext_noop("Pension"),
|
||||
gettext_noop("Pension for (last_month_name)"),
|
||||
"1314"),
|
||||
(gettext_noop("Health insurance"),
|
||||
gettext_noop("Health insurance for (last_month_name)"),
|
||||
"6262"),
|
||||
(gettext_noop("Electricity bill"),
|
||||
gettext_noop("Electricity bill for (last_bimonthly_from_name)"
|
||||
"-(last_bimonthly_to_name)"),
|
||||
"6261"),
|
||||
(gettext_noop("Water bill"),
|
||||
gettext_noop("Water bill for (last_bimonthly_from_name)"
|
||||
"-(last_bimonthly_to_name)"),
|
||||
"6261"),
|
||||
(gettext_noop("Gas bill"),
|
||||
gettext_noop("Gas bill for (last_bimonthly_from_name)"
|
||||
"-(last_bimonthly_to_name)"),
|
||||
"6261"),
|
||||
(gettext_noop("Phone bill"),
|
||||
gettext_noop("Phone bill for (last_month_name)"),
|
||||
"6261"),
|
||||
],
|
||||
"credit": [
|
||||
(gettext_noop("Payroll"),
|
||||
gettext_noop("Payroll for (last_month_name)"),
|
||||
"4611"),
|
||||
],
|
||||
}
|
||||
|
||||
def get_context_data(self, **kwargs):
|
||||
"""Returns the context data for the template."""
|
||||
context = super().get_context_data(**kwargs)
|
||||
context["summary_categories"] = self._get_summary_categories()
|
||||
context["regular_accounts"] = self._get_regular_accounts()
|
||||
context["new_record_template"] = self._get_new_record_template_json()
|
||||
return context
|
||||
|
||||
@ -864,6 +896,28 @@ class TransactionFormView(FormView):
|
||||
# US-ASCII
|
||||
return json.dumps(categories)
|
||||
|
||||
@staticmethod
|
||||
def _get_regular_accounts() -> str:
|
||||
"""Returns the regular account data, as JSON.
|
||||
|
||||
Returns:
|
||||
Two lists of the (title, format pattern, account code) tuple, sorted by
|
||||
debit or credit.
|
||||
"""
|
||||
try:
|
||||
regular = settings.REGULAR_ACCOUNTS
|
||||
regular = {t: [{"title": x[0],
|
||||
"format": x[1],
|
||||
"account": x[2]} for x in regular[t]]
|
||||
for t in regular}
|
||||
except AttributeError:
|
||||
regular = TransactionFormView.DEFAULT_REGULAR_ACCOUNTS
|
||||
regular = {t: [{"title": gettext(x[0]),
|
||||
"format": gettext(x[1]),
|
||||
"account": x[2]} for x in regular[t]]
|
||||
for t in regular}
|
||||
return json.dumps(regular)
|
||||
|
||||
def _get_new_record_template_json(self) -> str:
|
||||
context = {"record_type": "TTT", "no": "NNN"}
|
||||
template_name = "accounting/include/record_form-transfer.html"\
|
||||
|
Loading…
Reference in New Issue
Block a user