1
0
mirror of https://github.com/LaCasemate/fab-manager.git synced 2024-11-29 10:24:20 +01:00

frontend invoice configuration page uses multiVAT

This commit is contained in:
Sylvain 2021-12-29 12:08:41 +01:00
parent 9286738b69
commit 16242d2127
4 changed files with 15 additions and 6 deletions

View File

@ -226,6 +226,14 @@ Application.Controllers.controller('InvoicesController', ['$scope', '$state', 'I
// Is shown the modal dialog to select a payment gateway // Is shown the modal dialog to select a payment gateway
$scope.openSelectGatewayModal = false; $scope.openSelectGatewayModal = false;
/**
* Return the VAT rate applicable to the machine reservations
* @return {number}
*/
$scope.getMachineExampleRate = function () {
return $scope.invoice.multiVAT.rateMachine || $scope.invoice.VAT.rate;
};
/** /**
* Change the invoices ordering criterion to the one provided * Change the invoices ordering criterion to the one provided
* @param orderBy {string} ordering criterion * @param orderBy {string} ordering criterion

View File

@ -54,12 +54,12 @@
</tr> </tr>
<tr class="invoice-vat invoice-editable vat-line italic" ng-click="openEditVAT()" ng-show="invoice.VAT.active"> <tr class="invoice-vat invoice-editable vat-line italic" ng-click="openEditVAT()" ng-show="invoice.VAT.active">
<td>{{ 'app.admin.invoices.including_VAT' | translate }} {{invoice.VAT.rate}} %</td> <td translate translate-values="{RATE:getMachineExampleRate(), AMOUNT:(30.0 | currency)}">{{ 'app.admin.invoices.including_VAT' }}</td>
<td>{{30-(30/(invoice.VAT.rate/100+1)) | currency}}</td> <td>{{30-(30/(getMachineExampleRate()/100+1)) | currency}}</td>
</tr> </tr>
<tr class="invoice-ht vat-line italic" ng-show="invoice.VAT.active"> <tr class="invoice-ht vat-line italic" ng-show="invoice.VAT.active">
<td translate>{{ 'app.admin.invoices.including_total_excluding_taxes' }}</td> <td translate>{{ 'app.admin.invoices.including_total_excluding_taxes' }}</td>
<td>{{30/(invoice.VAT.rate/100+1) | currency}}</td> <td>{{30/(getMachineExampleRate()/100+1) | currency}}</td>
</tr> </tr>
<tr class="invoice-payed vat-line bold" ng-show="invoice.VAT.active"> <tr class="invoice-payed vat-line bold" ng-show="invoice.VAT.active">
<td translate>{{ 'app.admin.invoices.including_amount_payed_on_ordering' }}</td> <td translate>{{ 'app.admin.invoices.including_amount_payed_on_ordering' }}</td>

View File

@ -58,6 +58,7 @@ class VatHistoryService
# {start: 0000-01-01, end: fab-manager initial setup date, enabled: false} # {start: 0000-01-01, end: fab-manager initial setup date, enabled: false}
# ] => VAT was enabled at some point, and disabled at some other point later # ] => VAT was enabled at some point, and disabled at some other point later
date_rates = []
if vat_rate_type.present? if vat_rate_type.present?
vat_rate_by_type = Setting.find_by(name: "invoice_VAT-rate_#{vat_rate_type}")&.history_values&.order(created_at: 'ASC') vat_rate_by_type = Setting.find_by(name: "invoice_VAT-rate_#{vat_rate_type}")&.history_values&.order(created_at: 'ASC')
first_vat_rate_by_type = vat_rate_by_type&.select { |v| v.value.present? }&.first first_vat_rate_by_type = vat_rate_by_type&.select { |v| v.value.present? }&.first
@ -87,7 +88,6 @@ class VatHistoryService
end end
# Now we have all the rates history, we can build the final chronology, depending on whether VAT was enabled or not # Now we have all the rates history, we can build the final chronology, depending on whether VAT was enabled or not
date_rates = []
vat_rate_history_values.each do |rate| vat_rate_history_values.each do |rate|
# when the VAT rate was enabled, set the date it was enabled and the rate # when the VAT rate was enabled, set the date it was enabled and the rate
range = chronology.select { |p| rate.created_at.to_i.between?(p[:start].to_i, p[:end].to_i) }.first range = chronology.select { |p| rate.created_at.to_i.between?(p[:start].to_i, p[:end].to_i) }.first

View File

@ -495,13 +495,14 @@ en:
details: "Details" details: "Details"
amount: "Amount" amount: "Amount"
machine_booking-3D_printer: "Machine booking - 3D printer" machine_booking-3D_printer: "Machine booking - 3D printer"
training_booking-3D_print: "Training booking - initiation to 3d printing"
total_amount: "Total amount" total_amount: "Total amount"
total_including_all_taxes: "Total incl. all taxes" total_including_all_taxes: "Total incl. all taxes"
VAT_disabled: "VAT disabled" VAT_disabled: "VAT disabled"
VAT_enabled: "VAT enabled" VAT_enabled: "VAT enabled"
including_VAT: "Including VAT" including_VAT: "Including VAT {RATE}% of {AMOUNT}"
including_total_excluding_taxes: "Including Total excl. taxes" including_total_excluding_taxes: "Including Total excl. taxes"
including_amount_payed_on_ordering: "Including Amount payed on ordering" including_amount_payed_on_ordering: "Including amount payed on ordering"
settlement_by_debit_card_on_DATE_at_TIME_for_an_amount_of_AMOUNT: "Settlement by debit card on {DATE} at {TIME}, for an amount of {AMOUNT}" settlement_by_debit_card_on_DATE_at_TIME_for_an_amount_of_AMOUNT: "Settlement by debit card on {DATE} at {TIME}, for an amount of {AMOUNT}"
important_notes: "Important notes" important_notes: "Important notes"
address_and_legal_information: "Address and legal information" address_and_legal_information: "Address and legal information"