Compare commits
5 Commits
v1.5.2
...
4408bbfc82
Author | SHA1 | Date | |
---|---|---|---|
4408bbfc82 | |||
433110f486 | |||
0b1dd4f4fc | |||
46bd27e126 | |||
b718d19450 |
@ -2,6 +2,17 @@ Change Log
|
|||||||
==========
|
==========
|
||||||
|
|
||||||
|
|
||||||
|
Version 1.5.3
|
||||||
|
-------------
|
||||||
|
|
||||||
|
Released 2023/4/30
|
||||||
|
|
||||||
|
* Fixed the error of the net balance in the unmatched offset list.
|
||||||
|
* Revised the original line item editor not to override the existing
|
||||||
|
amount when the existing amount is less or equal to the net
|
||||||
|
balance.
|
||||||
|
|
||||||
|
|
||||||
Version 1.5.2
|
Version 1.5.2
|
||||||
-------------
|
-------------
|
||||||
|
|
||||||
|
@ -50,9 +50,9 @@ The following front-end JavaScript libraries must be loaded. You may
|
|||||||
download it locally or use CDN_.
|
download it locally or use CDN_.
|
||||||
|
|
||||||
* Bootstrap_ 5.2.3 or above
|
* Bootstrap_ 5.2.3 or above
|
||||||
* FontAwesome_ 6.2.1 or above
|
* FontAwesome_ 6.4.0 or above
|
||||||
* `Decimal.js`_ 6.4.3 or above
|
* `decimal.js`_ 10.4.3 or above, or `decimal.js-light`_ 2.5.1 or above.
|
||||||
* `Tempus-Dominus`_ 6.4.3 or above
|
* `Tempus-Dominus`_ 6.7.7 or above
|
||||||
|
|
||||||
|
|
||||||
Configuration
|
Configuration
|
||||||
@ -114,6 +114,7 @@ Check your Flask application and see how it works.
|
|||||||
.. _CDN: https://en.wikipedia.org/wiki/Content_delivery_network
|
.. _CDN: https://en.wikipedia.org/wiki/Content_delivery_network
|
||||||
.. _Bootstrap: https://getbootstrap.com
|
.. _Bootstrap: https://getbootstrap.com
|
||||||
.. _FontAwesome: https://fontawesome.com
|
.. _FontAwesome: https://fontawesome.com
|
||||||
.. _Decimal.js: https://mikemcl.github.io/decimal.js
|
.. _decimal.js: https://mikemcl.github.io/decimal.js
|
||||||
|
.. _decimal.js-light: https://mikemcl.github.io/decimal.js-light
|
||||||
.. _Tempus-Dominus: https://getdatepicker.com
|
.. _Tempus-Dominus: https://getdatepicker.com
|
||||||
.. _Bootstrap navigation bar: https://getbootstrap.com/docs/5.3/components/navbar/
|
.. _Bootstrap navigation bar: https://getbootstrap.com/docs/5.3/components/navbar/
|
||||||
|
@ -24,7 +24,7 @@ from flask_sqlalchemy import SQLAlchemy
|
|||||||
|
|
||||||
from accounting.utils.user import UserUtilityInterface
|
from accounting.utils.user import UserUtilityInterface
|
||||||
|
|
||||||
VERSION: str = "1.5.2"
|
VERSION: str = "1.5.3"
|
||||||
"""The package version."""
|
"""The package version."""
|
||||||
db: SQLAlchemy = SQLAlchemy()
|
db: SQLAlchemy = SQLAlchemy()
|
||||||
"""The database instance."""
|
"""The database instance."""
|
||||||
|
@ -182,6 +182,8 @@ class Account(db.Model):
|
|||||||
:param value: The new title.
|
:param value: The new title.
|
||||||
:return: None.
|
:return: None.
|
||||||
"""
|
"""
|
||||||
|
if self.title == value:
|
||||||
|
return
|
||||||
if self.title_l10n is None:
|
if self.title_l10n is None:
|
||||||
self.title_l10n = value
|
self.title_l10n = value
|
||||||
return
|
return
|
||||||
@ -424,6 +426,8 @@ class Currency(db.Model):
|
|||||||
:param value: The new name.
|
:param value: The new name.
|
||||||
:return: None.
|
:return: None.
|
||||||
"""
|
"""
|
||||||
|
if self.name == value:
|
||||||
|
return
|
||||||
if self.name_l10n is None:
|
if self.name_l10n is None:
|
||||||
self.name_l10n = value
|
self.name_l10n = value
|
||||||
return
|
return
|
||||||
|
@ -290,7 +290,9 @@ class JournalEntryLineItemEditor {
|
|||||||
this.account = originalLineItem.account.copy();
|
this.account = originalLineItem.account.copy();
|
||||||
this.isAccountConfirmed = false;
|
this.isAccountConfirmed = false;
|
||||||
this.#accountText.innerText = this.account.text;
|
this.#accountText.innerText = this.account.text;
|
||||||
this.#amountInput.value = String(originalLineItem.netBalance);
|
if (this.#amountInput.value === "" || new Decimal(this.#amountInput.value).greaterThan(originalLineItem.netBalance)) {
|
||||||
|
this.#amountInput.value = String(originalLineItem.netBalance);
|
||||||
|
}
|
||||||
this.#amountInput.max = String(originalLineItem.netBalance);
|
this.#amountInput.max = String(originalLineItem.netBalance);
|
||||||
this.#amountInput.min = "0";
|
this.#amountInput.min = "0";
|
||||||
this.#validate();
|
this.#validate();
|
||||||
|
@ -21,7 +21,6 @@ from typing import Self
|
|||||||
|
|
||||||
import sqlalchemy as sa
|
import sqlalchemy as sa
|
||||||
|
|
||||||
from accounting import db
|
|
||||||
from accounting.locale import gettext
|
from accounting.locale import gettext
|
||||||
from accounting.models import Account
|
from accounting.models import Account
|
||||||
|
|
||||||
@ -75,7 +74,7 @@ class CurrentAccount:
|
|||||||
"""
|
"""
|
||||||
accounts: list[cls] = [cls.current_assets_and_liabilities()]
|
accounts: list[cls] = [cls.current_assets_and_liabilities()]
|
||||||
accounts.extend([CurrentAccount(x)
|
accounts.extend([CurrentAccount(x)
|
||||||
for x in db.session.query(Account)
|
for x in Account.query
|
||||||
.filter(cls.sql_condition())
|
.filter(cls.sql_condition())
|
||||||
.order_by(Account.base_code, Account.no)])
|
.order_by(Account.base_code, Account.no)])
|
||||||
return accounts
|
return accounts
|
||||||
|
@ -26,13 +26,13 @@ First written: 2023/1/27
|
|||||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||||
<meta name="author" content="{{ "imacat" }}" />
|
<meta name="author" content="{{ "imacat" }}" />
|
||||||
<link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/npm/bootstrap@5.2.3/dist/css/bootstrap.min.css" crossorigin="anonymous">
|
<link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/npm/bootstrap@5.2.3/dist/css/bootstrap.min.css" crossorigin="anonymous">
|
||||||
<link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/npm/@fortawesome/fontawesome-free@6.2.1/css/all.min.css" crossorigin="anonymous">
|
<link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/npm/@fortawesome/fontawesome-free@6.4.0/css/all.min.css" crossorigin="anonymous">
|
||||||
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@eonasdan/tempus-dominus@6.4.3/dist/css/tempus-dominus.min.css" crossorigin="anonymous">
|
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@eonasdan/tempus-dominus@6.7.7/dist/css/tempus-dominus.min.css" crossorigin="anonymous">
|
||||||
{% block styles %}{% endblock %}
|
{% block styles %}{% endblock %}
|
||||||
<script src="{{ url_for("babel_catalog") }}"></script>
|
<script src="{{ url_for("babel_catalog") }}"></script>
|
||||||
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.2.3/dist/js/bootstrap.bundle.min.js" integrity="sha384-kenU1KFdBIe4zVF0s0G1M5b4hcpxyD9F7jL+jjXkk+Q2h455rYXK/7HAuoJl+0I4" crossorigin="anonymous"></script>
|
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.2.3/dist/js/bootstrap.bundle.min.js" integrity="sha384-kenU1KFdBIe4zVF0s0G1M5b4hcpxyD9F7jL+jjXkk+Q2h455rYXK/7HAuoJl+0I4" crossorigin="anonymous"></script>
|
||||||
<script src="https://cdn.jsdelivr.net/npm/decimal.js-light@2.5.1/decimal.min.js" integrity="sha384-QdsxGEq4Y0erX8WUIsZJDtfoSSyBF6dmNCnzRNYCa2AOM/xzNsyhHu0RbdFBAm+l" crossorigin="anonymous"></script>
|
<script src="https://cdn.jsdelivr.net/npm/decimal.js-light@2.5.1/decimal.min.js" integrity="sha384-QdsxGEq4Y0erX8WUIsZJDtfoSSyBF6dmNCnzRNYCa2AOM/xzNsyhHu0RbdFBAm+l" crossorigin="anonymous"></script>
|
||||||
<script src="https://cdn.jsdelivr.net/npm/@eonasdan/tempus-dominus@6.4.3/dist/js/tempus-dominus.min.js" integrity="sha384-2MkID2vkc9sxBCqs2us3mB8fV+c0o7uPtOvAPjaC8gKv9Bk21UHT0r2Q7Kv70+zO" crossorigin="anonymous"></script>
|
<script src="https://cdn.jsdelivr.net/npm/@eonasdan/tempus-dominus@6.7.7/dist/js/tempus-dominus.min.js" integrity="sha384-MxHp+/TqTjbku1jSTIe1e/4l6CZTLhACLDbWyxYaFRgD3AM4oh99AY8bxsGhIoRc" crossorigin="anonymous"></script>
|
||||||
{% block scripts %}{% endblock %}
|
{% block scripts %}{% endblock %}
|
||||||
<link rel="shortcut icon" href="{{ url_for("static", filename="favicon.svg") }}">
|
<link rel="shortcut icon" href="{{ url_for("static", filename="favicon.svg") }}">
|
||||||
<title>{% block title %}{% endblock %}</title>
|
<title>{% block title %}{% endblock %}</title>
|
||||||
|
Reference in New Issue
Block a user