Enables manual settlement with fiat currencies
Adds support for settling receivables with fiat currencies like EUR and USD, in addition to sats. Updates the settlement dialog to handle fiat amounts and exchange rates, defaulting to cash payment when a fiat balance exists. Modifies the API to accept currency and amount_sats parameters and adjust the journal entry accordingly, converting the fiat amount to minor units (e.g., cents) for accounting purposes.
This commit is contained in:
parent
49f21da55a
commit
70013d1c29
4 changed files with 120 additions and 20 deletions
|
|
@ -1138,7 +1138,12 @@
|
|||
|
||||
<div class="q-mb-md">
|
||||
<div class="text-subtitle2">Amount Owed</div>
|
||||
<div class="text-negative text-h6">{% raw %}{{ formatSats(settleReceivableDialog.maxAmount) }}{% endraw %} sats</div>
|
||||
<div class="text-negative text-h6">
|
||||
{% raw %}{{ formatSats(settleReceivableDialog.maxAmount) }}{% endraw %} sats
|
||||
</div>
|
||||
<div v-if="settleReceivableDialog.fiatCurrency && settleReceivableDialog.maxAmountFiat" class="text-caption">
|
||||
{% raw %}{{ formatFiat(settleReceivableDialog.maxAmountFiat, settleReceivableDialog.fiatCurrency) }}{% endraw %}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<q-input
|
||||
|
|
@ -1146,13 +1151,14 @@
|
|||
dense
|
||||
v-model.number="settleReceivableDialog.amount"
|
||||
type="number"
|
||||
label="Settlement Amount (sats) *"
|
||||
:label="settlementAmountLabel"
|
||||
hint="Amount user is paying (max: owed amount)"
|
||||
:max="settleReceivableDialog.maxAmount"
|
||||
:max="settlementMaxAmount"
|
||||
:step="settlementAmountStep"
|
||||
:rules="[
|
||||
val => val !== null && val !== undefined && val !== '' || 'Amount is required',
|
||||
val => val > 0 || 'Amount must be positive',
|
||||
val => val <= settleReceivableDialog.maxAmount || 'Cannot exceed owed amount'
|
||||
val => val <= settlementMaxAmount || 'Cannot exceed owed amount'
|
||||
]"
|
||||
></q-input>
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue