mirror of
				https://github.com/firefly-iii/firefly-iii.git
				synced 2025-10-31 02:36:28 +00:00 
			
		
		
		
	Fix #10308
This commit is contained in:
		| @@ -20,8 +20,12 @@ | ||||
|     "/public/v1/js/app.js.LICENSE.txt": "/public/v1/js/app.js.LICENSE.txt", | ||||
|     "/public/v1/js/app_vue.js": "/public/v1/js/app_vue.js", | ||||
|     "/public/v1/js/app_vue.js.LICENSE.txt": "/public/v1/js/app_vue.js.LICENSE.txt", | ||||
|     "/public/v1/js/create.js": "/public/v1/js/create.js", | ||||
|     "/public/v1/js/create.js.LICENSE.txt": "/public/v1/js/create.js.LICENSE.txt", | ||||
|     "/public/v1/js/create_transaction.js": "/public/v1/js/create_transaction.js", | ||||
|     "/public/v1/js/create_transaction.js.LICENSE.txt": "/public/v1/js/create_transaction.js.LICENSE.txt", | ||||
|     "/public/v1/js/edit.js": "/public/v1/js/edit.js", | ||||
|     "/public/v1/js/edit.js.LICENSE.txt": "/public/v1/js/edit.js.LICENSE.txt", | ||||
|     "/public/v1/js/edit_transaction.js": "/public/v1/js/edit_transaction.js", | ||||
|     "/public/v1/js/edit_transaction.js.LICENSE.txt": "/public/v1/js/edit_transaction.js.LICENSE.txt", | ||||
|     "/public/v1/js/exchange-rates/index.js": "/public/v1/js/exchange-rates/index.js", | ||||
| @@ -96,6 +100,8 @@ | ||||
|     "/public/v1/js/ff/transactions/mass/edit-bulk.js": "/public/v1/js/ff/transactions/mass/edit-bulk.js", | ||||
|     "/public/v1/js/ff/transactions/mass/edit.js": "/public/v1/js/ff/transactions/mass/edit.js", | ||||
|     "/public/v1/js/ff/transactions/show.js": "/public/v1/js/ff/transactions/show.js", | ||||
|     "/public/v1/js/index.js": "/public/v1/js/index.js", | ||||
|     "/public/v1/js/index.js.LICENSE.txt": "/public/v1/js/index.js.LICENSE.txt", | ||||
|     "/public/v1/js/lib/Chart.bundle.min.js": "/public/v1/js/lib/Chart.bundle.min.js", | ||||
|     "/public/v1/js/lib/accounting.min.js": "/public/v1/js/lib/accounting.min.js", | ||||
|     "/public/v1/js/lib/bootstrap-multiselect.js": "/public/v1/js/lib/bootstrap-multiselect.js", | ||||
| @@ -120,6 +126,7 @@ | ||||
|     "/public/v1/js/lib/moment/en_US.js": "/public/v1/js/lib/moment/en_US.js", | ||||
|     "/public/v1/js/lib/moment/es_ES.js": "/public/v1/js/lib/moment/es_ES.js", | ||||
|     "/public/v1/js/lib/moment/es_MX.js": "/public/v1/js/lib/moment/es_MX.js", | ||||
|     "/public/v1/js/lib/moment/fa_IR.js": "/public/v1/js/lib/moment/fa_IR.js", | ||||
|     "/public/v1/js/lib/moment/fi_FI.js": "/public/v1/js/lib/moment/fi_FI.js", | ||||
|     "/public/v1/js/lib/moment/fr_FR.js": "/public/v1/js/lib/moment/fr_FR.js", | ||||
|     "/public/v1/js/lib/moment/hu_HU.js": "/public/v1/js/lib/moment/hu_HU.js", | ||||
| @@ -143,6 +150,7 @@ | ||||
|     "/public/v1/js/lib/moment/vi_VN.js": "/public/v1/js/lib/moment/vi_VN.js", | ||||
|     "/public/v1/js/lib/moment/zh_CN.js": "/public/v1/js/lib/moment/zh_CN.js", | ||||
|     "/public/v1/js/lib/moment/zh_TW.js": "/public/v1/js/lib/moment/zh_TW.js", | ||||
|     "/public/v1/js/lib/moment-tz.js": "/public/v1/js/lib/moment-tz.js", | ||||
|     "/public/v1/js/lib/moment.min.js": "/public/v1/js/lib/moment.min.js", | ||||
|     "/public/v1/js/lib/respond.min.js": "/public/v1/js/lib/respond.min.js", | ||||
|     "/public/v1/js/lib/typeahead/bloodhound.js": "/public/v1/js/lib/typeahead/bloodhound.js", | ||||
| @@ -154,6 +162,8 @@ | ||||
|     "/public/v1/js/lib/vue.js": "/public/v1/js/lib/vue.js", | ||||
|     "/public/v1/js/profile.js": "/public/v1/js/profile.js", | ||||
|     "/public/v1/js/profile.js.LICENSE.txt": "/public/v1/js/profile.js.LICENSE.txt", | ||||
|     "/public/v1/js/show.js": "/public/v1/js/show.js", | ||||
|     "/public/v1/js/show.js.LICENSE.txt": "/public/v1/js/show.js.LICENSE.txt", | ||||
|     "/public/v1/js/webhooks/create.js": "/public/v1/js/webhooks/create.js", | ||||
|     "/public/v1/js/webhooks/create.js.LICENSE.txt": "/public/v1/js/webhooks/create.js.LICENSE.txt", | ||||
|     "/public/v1/js/webhooks/edit.js": "/public/v1/js/webhooks/edit.js", | ||||
|   | ||||
| @@ -337,6 +337,7 @@ export default { | ||||
|                 this.transactions[index].destination_account.name = model; | ||||
|                 return; | ||||
|             } | ||||
|             // console.log('selectedDestinationAccount'); | ||||
|             this.transactions[index].destination_account = { | ||||
|                 id: model.id, | ||||
|                 name: model.name, | ||||
| @@ -353,6 +354,7 @@ export default { | ||||
|                 this.transactions[index].destination_account.currency_code = model.account_currency_code; | ||||
|                 this.transactions[index].destination_account.currency_decimal_places = model.account_currency_decimal_places; | ||||
|             } | ||||
|             // console.log('Selected destination account currency ID  = ' + this.transactions[index].destination_account.currency_id); | ||||
|         }, | ||||
|         clearSource(index) { | ||||
|             // reset source account: | ||||
| @@ -540,7 +542,9 @@ export default { | ||||
|                     allowed_types: window.expectedSourceTypes.destination[this.ucFirst(transaction.type)] | ||||
|                 } | ||||
|             }; | ||||
|             // console.log('Source currency id is      ' + result.source_account.currency_id); | ||||
|             // console.log('Destination currency id is ' + result.destination_account.currency_id); | ||||
|  | ||||
|             // if transaction type is transfer, the destination currency_id etc. MUST match the actual account currency info. | ||||
|             // OR if the transaction type is a withdrawal, and the destination account is a liability account, same as above. | ||||
|             if ( | ||||
| @@ -553,6 +557,16 @@ export default { | ||||
|                 result.destination_account.currency_decimal_places = transaction.foreign_currency_decimal_places; | ||||
|                 // console.log('Set destination currency_id to ' + result.destination_account.currency_id); | ||||
|             } | ||||
|             // if the transaction type is a deposit, but the source account is a liability, the source | ||||
|             // account currency must not be overruled. | ||||
|  | ||||
|             if('deposit' === transaction.type && ['Loan', 'Debt', 'Mortgage'].includes(transaction.source_type)) { | ||||
|                 // console.log('Overrule for deposit from liability to ' + transaction.foreign_currency_id); | ||||
|                 result.destination_account.currency_id = transaction.foreign_currency_id; | ||||
|                 result.destination_account.currency_name = transaction.foreign_currency_name; | ||||
|                 result.destination_account.currency_code = transaction.foreign_currency_code; | ||||
|                 result.destination_account.currency_decimal_places = transaction.foreign_currency_decimal_places; | ||||
|             } | ||||
|  | ||||
|  | ||||
|             if (null === transaction.foreign_amount) { | ||||
| @@ -611,7 +625,12 @@ export default { | ||||
|             if ('deposit' === transactionType) { | ||||
|                 currencyId = this.transactions[0].destination_account.currency_id; | ||||
|             } | ||||
|             // console.log('Overruled currency ID to ' + currencyId); | ||||
|             // if transaction type is deposit BUT the source account is a liability, the currency ID must be the SOURCE account ID. | ||||
|             if ('deposit' === transactionType && ['Loan', 'Debt', 'Mortgage'].includes(firstSource)) { | ||||
|                 // console.log('Overruled currency ID to ' + this.transactions[0].source_account.currency_id); | ||||
|                 currencyId = this.transactions[0].source_account.currency_id; | ||||
|             } | ||||
|             // console.log('Final currency ID = ' + currencyId); | ||||
|  | ||||
|             for (let key in this.transactions) { | ||||
|                 if (this.transactions.hasOwnProperty(key) && /^0$|^[1-9]\d*$/.test(key) && key <= 4294967294) { | ||||
| @@ -691,6 +710,7 @@ export default { | ||||
|                 foreignCurrency = row.foreign_amount.currency_id; | ||||
|             } | ||||
|             if (foreignCurrency === row.currency_id) { | ||||
|                 // console.log('reset foreign currencyto NULL because ' + foreignCurrency + ' = ' + row.currency_id); | ||||
|                 foreignAmount = null; | ||||
|                 foreignCurrency = null; | ||||
|             } | ||||
|   | ||||
| @@ -38,7 +38,7 @@ | ||||
|                 {% endfor %} | ||||
|                 <td style="text-align: right;"> | ||||
|                     {% for sum in report.sums[budget.budget_id] %} | ||||
|                         {{ formatAmountBySymbol(sum.sum, sum.currency_symbol, sum.currency_decimal_places) }}  | ||||
|                         {{ formatAmountBySymbol(sum.sum, sum.currency_symbol, sum.currency_decimal_places) }} | ||||
|                         <br/> | ||||
|                     {% endfor %} | ||||
|                 </td> | ||||
|   | ||||
		Reference in New Issue
	
	Block a user