add placeholder 'rate'

This commit is contained in:
Frederik Jaeckel 2024-03-10 22:21:00 +01:00
parent 08534047fb
commit e1502cae53
5 changed files with 28 additions and 9 deletions

View file

@ -107,8 +107,8 @@ msgid "Booking text"
msgstr "Buchungstext" msgstr "Buchungstext"
msgctxt "view:cashbook.planner:" msgctxt "view:cashbook.planner:"
msgid "Available placeholders: ${date} ${month} ${year} ${amount} ${quantity}" msgid "Available placeholders: ${date} ${month} ${year} ${amount} ${quantity} ${rate}"
msgstr "verfügbare Platzhalter: ${date} ${month} ${year} ${amount} ${quantity}" msgstr "verfügbare Platzhalter: ${date} ${month} ${year} ${amount} ${quantity} ${rate}"
msgctxt "view:cashbook.planner:" msgctxt "view:cashbook.planner:"
msgid "Cashbook lines" msgid "Cashbook lines"
@ -318,6 +318,10 @@ msgctxt "help:cashbook.planner,cashbook_lines:"
msgid "This cash book lines was generated by the current scheduled booking." msgid "This cash book lines was generated by the current scheduled booking."
msgstr "Diese Kassenbuchzeilen wurden durch die aktuelle geplante Buchung generiert." msgstr "Diese Kassenbuchzeilen wurden durch die aktuelle geplante Buchung generiert."
msgctxt "field:cashbook.planner,party:"
msgid "Party"
msgstr "Partei"
############################ ############################
# cashbook.planner.nextrun # # cashbook.planner.nextrun #

View file

@ -83,8 +83,8 @@ msgid "Booking text"
msgstr "Booking text" msgstr "Booking text"
msgctxt "view:cashbook.planner:" msgctxt "view:cashbook.planner:"
msgid "Available placeholders: ${date} ${month} ${year} ${amount} ${quantity}" msgid "Available placeholders: ${date} ${month} ${year} ${amount} ${quantity} ${rate}"
msgstr "Available placeholders: ${date} ${month} ${year} ${amount} ${quantity}" msgstr "Available placeholders: ${date} ${month} ${year} ${amount} ${quantity} ${rate}"
msgctxt "view:cashbook.planner:" msgctxt "view:cashbook.planner:"
msgid "Cashbook lines" msgid "Cashbook lines"
@ -294,6 +294,10 @@ msgctxt "help:cashbook.planner,cashbook_lines:"
msgid "This cash book lines was generated by the current scheduled booking." msgid "This cash book lines was generated by the current scheduled booking."
msgstr "This cash book lines was generated by the current scheduled booking." msgstr "This cash book lines was generated by the current scheduled booking."
msgctxt "field:cashbook.planner,party:"
msgid "Party"
msgstr "Party"
msgctxt "model:cashbook.planner.nextrun,name:" msgctxt "model:cashbook.planner.nextrun,name:"
msgid "Next Execution Date" msgid "Next Execution Date"
msgstr "Next Execution Date" msgstr "Next Execution Date"

View file

@ -515,6 +515,15 @@ class ScheduledBooking(DeactivableMixin, ModelSQL, ModelView):
quantity_txt = Report.format_number( quantity_txt = Report.format_number(
quantity, lang=None, digits=uom_digits) quantity, lang=None, digits=uom_digits)
asset_rate = '-'
if quantity and amount is not None:
asset_rate = '%(rate)s %(currency)s/%(uom)s' % {
'rate': Report.format_number(
amount / quantity, lang=None,
digits=to_book.currency.digits),
'currency': to_book.currency.symbol,
'uom': to_book.quantity_uom.symbol}
return Template(linedata.get('description')).safe_substitute({ return Template(linedata.get('description')).safe_substitute({
'date': Report.format_date(line_date, lang=None), 'date': Report.format_date(line_date, lang=None),
'month': line_date.month, 'month': line_date.month,
@ -522,7 +531,8 @@ class ScheduledBooking(DeactivableMixin, ModelSQL, ModelView):
'amount': Report.format_currency( 'amount': Report.format_currency(
amount, lang=None, currency=from_book.currency) amount, lang=None, currency=from_book.currency)
if (amount is not None) and from_book else '-', if (amount is not None) and from_book else '-',
'quantity': quantity_txt}) 'quantity': quantity_txt,
'rate': asset_rate})
@classmethod @classmethod
def update_next_occurence(cls, records, query_date=None): def update_next_occurence(cls, records, query_date=None):

View file

@ -364,12 +364,13 @@ class PlannerTestCase(object):
asset_book = self.prep_planner_asset_book() asset_book = self.prep_planner_asset_book()
self.assertEqual(Planner.fill_placeholder({ self.assertEqual(Planner.fill_placeholder({
'date': date(2022, 5, 2), 'date': date(2022, 5, 2),
'amount': Decimal('12.4567'), 'amount': Decimal('126.4567'),
'quantity': Decimal('32.4423'), 'quantity': Decimal('32.4423'),
'cashbook': asset_book.id, 'cashbook': asset_book.id,
'booktransf': asset_book.id,
'description': '- ${amount} - ${date} - ${month} - ' + 'description': '- ${amount} - ${date} - ${month} - ' +
'${year} - ${quantity}'}), '${year} - ${quantity} - ${rate}'}),
'- usd12.46 - 05/02/2022 - 5 - 2022 - 32.4423\xa0u') '- usd126.46 - 05/02/2022 - 5 - 2022 - 32.4423\xa0u - 3.90 usd/u')
@with_transaction() @with_transaction()
def test_planner_cronjobs_booking_with_category(self): def test_planner_cronjobs_booking_with_category(self):

View file

@ -59,7 +59,7 @@ full copyright notices and license terms. -->
<separator name="subject" colspan="4" string="Booking text"/> <separator name="subject" colspan="4" string="Booking text"/>
<field name="subject" colspan="4"/> <field name="subject" colspan="4"/>
<label id="lab1" colspan="4" xalign="0.0" <label id="lab1" colspan="4" xalign="0.0"
string="Available placeholders: ${date} ${month} ${year} ${amount} ${quantity}"/> string="Available placeholders: ${date} ${month} ${year} ${amount} ${quantity} ${rate}"/>
</page> </page>
<page name="description" col="1" string="Description"> <page name="description" col="1" string="Description">
<field name="description"/> <field name="description"/>