mirror of
https://github.com/LaCasemate/fab-manager.git
synced 2024-12-01 12:24:28 +01:00
interface to customize accounting codes and labels
This commit is contained in:
parent
f772bc3509
commit
a9ea4057f3
@ -76,6 +76,86 @@ Application.Controllers.controller('InvoicesController', ['$scope', '$state', 'I
|
||||
}
|
||||
};
|
||||
|
||||
// Accounting codes
|
||||
$scope.settings = {
|
||||
journalCode: {
|
||||
name: 'accounting_journal_code',
|
||||
value: settings['accounting_journal_code']
|
||||
},
|
||||
clientCode: {
|
||||
name: 'accounting_client_code',
|
||||
value: settings['accounting_client_code']
|
||||
},
|
||||
clientLabel: {
|
||||
name: 'accounting_client_label',
|
||||
value: settings['accounting_client_label']
|
||||
},
|
||||
walletCode: {
|
||||
name: 'accounting_wallet_code',
|
||||
value: settings['accounting_wallet_code']
|
||||
},
|
||||
walletLabel: {
|
||||
name: 'accounting_wallet_label',
|
||||
value: settings['accounting_wallet_label']
|
||||
},
|
||||
vatCode: {
|
||||
name: 'accounting_VAT_code',
|
||||
value: settings['accounting_VAT_code']
|
||||
},
|
||||
vatLabel: {
|
||||
name: 'accounting_VAT_label',
|
||||
value: settings['accounting_VAT_label']
|
||||
},
|
||||
subscriptionCode: {
|
||||
name: 'accounting_subscription_code',
|
||||
value: settings['accounting_subscription_code']
|
||||
},
|
||||
subscriptionLabel: {
|
||||
name: 'accounting_subscription_label',
|
||||
value: settings['accounting_subscription_label']
|
||||
},
|
||||
machineCode: {
|
||||
name: 'accounting_Machine_code',
|
||||
value: settings['accounting_Machine_code']
|
||||
},
|
||||
machineLabel: {
|
||||
name: 'accounting_Machine_label',
|
||||
value: settings['accounting_Machine_label']
|
||||
},
|
||||
trainingCode: {
|
||||
name: 'accounting_Training_code',
|
||||
value: settings['accounting_Training_code']
|
||||
},
|
||||
trainingLabel: {
|
||||
name: 'accounting_Training_label',
|
||||
value: settings['accounting_Training_label']
|
||||
},
|
||||
eventCode: {
|
||||
name: 'accounting_Event_code',
|
||||
value: settings['accounting_Event_code']
|
||||
},
|
||||
eventLabel: {
|
||||
name: 'accounting_Event_label',
|
||||
value: settings['accounting_Event_label']
|
||||
},
|
||||
spaceCode: {
|
||||
name: 'accounting_Space_code',
|
||||
value: settings['accounting_Space_code']
|
||||
},
|
||||
spaceLabel: {
|
||||
name: 'accounting_Space_label',
|
||||
value: settings['accounting_Space_label']
|
||||
},
|
||||
couponCode: {
|
||||
name: 'accounting_coupon_code',
|
||||
value: settings['accounting_coupon_code']
|
||||
},
|
||||
couponLabel: {
|
||||
name: 'accounting_coupon_label',
|
||||
value: settings['accounting_coupon_label']
|
||||
}
|
||||
};
|
||||
|
||||
// Placeholding date for the invoice creation
|
||||
$scope.today = moment();
|
||||
|
||||
@ -432,6 +512,14 @@ Application.Controllers.controller('InvoicesController', ['$scope', '$state', 'I
|
||||
});
|
||||
}
|
||||
|
||||
$scope.toggleExportModal = function() {
|
||||
$uibModal.open({
|
||||
templateUrl: '<%= asset_path "admin/invoices/accountingExportModal.html" %>',
|
||||
controller: 'AccountingExportModalController',
|
||||
size: 'lg'
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Test if the given date is within a closed accounting period
|
||||
* @param date {Date} date to test
|
||||
@ -446,6 +534,19 @@ Application.Controllers.controller('InvoicesController', ['$scope', '$state', 'I
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Callback to save the setting value to the database
|
||||
* @param setting {{value:*, name:string}} note that the value will be stringified
|
||||
*/
|
||||
$scope.save = function(setting) {
|
||||
Setting.update(
|
||||
{ name: setting.name },
|
||||
{ value: setting.value },
|
||||
function () { growl.success(_t('invoices.customization_of_SETTING_successfully_saved', { SETTING: _t(`invoices.${setting.name}`) })); },
|
||||
function (error) { console.log(error); }
|
||||
);
|
||||
}
|
||||
|
||||
/* PRIVATE SCOPE */
|
||||
|
||||
/**
|
||||
@ -791,7 +892,7 @@ Application.Controllers.controller('ClosePeriodModalController', ['$scope', '$ui
|
||||
};
|
||||
|
||||
/**
|
||||
* Cancel the refund, dismiss the modal window
|
||||
* Just dismiss the modal window
|
||||
*/
|
||||
$scope.cancel = function () { $uibModalInstance.dismiss('cancel'); };
|
||||
|
||||
@ -803,3 +904,17 @@ Application.Controllers.controller('ClosePeriodModalController', ['$scope', '$ui
|
||||
}
|
||||
}
|
||||
]);
|
||||
|
||||
Application.Controllers.controller('AccountingExportModalController', ['$scope', '$uibModalInstance', function ($scope, $uibModalInstance) {
|
||||
|
||||
/**
|
||||
* Validate the close period creation
|
||||
*/
|
||||
$scope.ok = function () {
|
||||
console.log('ok');
|
||||
};
|
||||
/**
|
||||
* Just dismiss the modal window
|
||||
*/
|
||||
$scope.cancel = function () { $uibModalInstance.dismiss('cancel'); };
|
||||
}]);
|
||||
|
@ -899,15 +899,12 @@ angular.module('application.router', ['ui.router'])
|
||||
resolve: {
|
||||
settings: ['Setting', function (Setting) {
|
||||
return Setting.query({
|
||||
names: `['invoice_legals', \
|
||||
'invoice_text', \
|
||||
'invoice_VAT-rate', \
|
||||
'invoice_VAT-active', \
|
||||
'invoice_order-nb', \
|
||||
'invoice_code-value', \
|
||||
'invoice_code-active', \
|
||||
'invoice_reference', \
|
||||
'invoice_logo']` }).$promise;
|
||||
names: `['invoice_legals', 'invoice_text', 'invoice_VAT-rate', 'invoice_VAT-active', 'invoice_order-nb', 'invoice_code-value', \
|
||||
'invoice_code-active', 'invoice_reference', 'invoice_logo', 'accounting_journal_code', 'accounting_client_code' \
|
||||
'accounting_client_label', 'accounting_wallet_code', 'accounting_wallet_label', 'accounting_VAT_code', 'accounting_VAT_label', \
|
||||
'accounting_subscription_code', 'accounting_subscription_label', 'accounting_Machine_code', 'accounting_Machine_label' \
|
||||
'accounting_Training_code', 'accounting_Training_label', 'accounting_Event_code', 'accounting_Event_label' \
|
||||
'accounting_Space_code', 'accounting_Space_label', 'accounting_coupon_code', 'accounting_coupon_label']` }).$promise;
|
||||
}],
|
||||
invoices: [ 'Invoice', function (Invoice) {
|
||||
return Invoice.list({
|
||||
|
@ -276,3 +276,11 @@ table.scrollable-3-cols {
|
||||
input.form-control.as-writable {
|
||||
background-color: white;
|
||||
}
|
||||
|
||||
.accounting-codes .row {
|
||||
margin-top: 2rem;
|
||||
|
||||
button {
|
||||
margin-top: 1em;
|
||||
}
|
||||
}
|
||||
|
@ -0,0 +1,10 @@
|
||||
<div class="modal-header">
|
||||
<h3 class="text-center red" translate>{{ 'invoices.export_accounting_data' }}</h3>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<h4>hello</h4>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<button class="btn btn-warning" ng-click="ok()" translate>{{ 'confirm' }}</button>
|
||||
<button class="btn btn-default" ng-click="cancel()" translate>{{ 'cancel' }}</button>
|
||||
</div>
|
@ -12,6 +12,7 @@
|
||||
</div>
|
||||
<div class="col-xs-12 col-sm-12 col-md-3 b-t hide-b-md">
|
||||
<section class="heading-actions wrapper">
|
||||
<a class="btn btn-default rounded m-t-sm" ng-click="toggleExportModal()"><i class="fa fa-book"></i></a>
|
||||
<a class="btn btn-lg btn-default rounded m-t-sm text-sm" ng-click="closeAnAccountingPeriod()"><i class="fa fa-calendar-check-o"></i> {{ 'invoices.accounting_periods' | translate }}</a>
|
||||
</section>
|
||||
</div>
|
||||
@ -201,6 +202,131 @@
|
||||
</div>
|
||||
</form>
|
||||
</uib-tab>
|
||||
|
||||
|
||||
|
||||
|
||||
<uib-tab heading="{{ 'invoices.accounting_codes' | translate }}">
|
||||
<div class="panel panel-default m-t-md accounting-codes">
|
||||
<div class="panel-body">
|
||||
<div class="row">
|
||||
<div class="col-md-6">
|
||||
<label for="journalCode" translate>{{ 'invoices.accounting_journal_code' }}</label>
|
||||
<input type="text" id="journalCode" ng-model="settings.journalCode.value" class="form-control" placeholder="{{ 'invoices.general_journal_code' | translate }}"/>
|
||||
<button name="button" class="btn btn-warning" ng-click="save(settings.journalCode)" translate>{{ 'save' }}</button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-md-4">
|
||||
<label for="clientCode" translate>{{ 'invoices.accounting_client_code' }}</label>
|
||||
<input type="text" id="clientCode" ng-model="settings.clientCode.value" class="form-control" placeholder="{{ 'invoices.general_client_code' | translate }}" />
|
||||
<button name="button" class="btn btn-warning" ng-click="save(settings.clientCode)" translate>{{ 'save' }}</button>
|
||||
</div>
|
||||
<div class="col-md-4">
|
||||
<label for="clientLabel" translate>{{ 'invoices.accounting_client_label' }}</label>
|
||||
<input type="text" id="clientLabel" ng-model="settings.clientLabel.value" class="form-control" placeholder="{{ 'invoices.general_client_label' | translate }}"/>
|
||||
<button name="button" class="btn btn-warning" ng-click="save(settings.clientLabel)" translate>{{ 'save' }}</button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-md-4">
|
||||
<label for="walletCode" translate>{{ 'invoices.accounting_wallet_code' }}</label>
|
||||
<input type="text" id="walletCode" ng-model="settings.walletCode.value" class="form-control" placeholder="{{ 'invoices.general_wallet_code' | translate }}" />
|
||||
<button name="button" class="btn btn-warning" ng-click="save(settings.walletCode)" translate>{{ 'save' }}</button>
|
||||
</div>
|
||||
<div class="col-md-4">
|
||||
<label for="walletLabel" translate>{{ 'invoices.accounting_wallet_label' }}</label>
|
||||
<input type="text" id="walletLabel" ng-model="settings.walletLabel.value" class="form-control" placeholder="{{ 'invoices.general_wallet_label' | translate }}"/>
|
||||
<button name="button" class="btn btn-warning" ng-click="save(settings.walletLabel)" translate>{{ 'save' }}</button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-md-4">
|
||||
<label for="vatCode" translate>{{ 'invoices.accounting_vat_code' }}</label>
|
||||
<input type="text" id="vatCode" ng-model="settings.vatCode.value" class="form-control" placeholder="{{ 'invoices.general_vat_code' | translate }}"/>
|
||||
<button name="button" class="btn btn-warning" ng-click="save(settings.vatCode)" translate>{{ 'save' }}</button>
|
||||
</div>
|
||||
<div class="col-md-4">
|
||||
<label for="vatLabel" translate>{{ 'invoices.accounting_vat_label' }}</label>
|
||||
<input type="text" id="vatLabel" ng-model="settings.vatLabel.value" class="form-control" placeholder="{{ 'invoices.general_vat_label' | translate }}"/>
|
||||
<button name="button" class="btn btn-warning" ng-click="save(settings.vatLabel)" translate>{{ 'save' }}</button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-md-4">
|
||||
<label for="subscriptionCode" translate>{{ 'invoices.accounting_subscription_code' }}</label>
|
||||
<input type="text" id="subscriptionCode" ng-model="settings.subscriptionCode.value" class="form-control" placeholder="{{ 'invoices.general_subscription_code' | translate }}" />
|
||||
<button name="button" class="btn btn-warning" ng-click="save(settings.subscriptionCode)" translate>{{ 'save' }}</button>
|
||||
</div>
|
||||
<div class="col-md-4">
|
||||
<label for="subscriptionLabel" translate>{{ 'invoices.accounting_subscription_label' }}</label>
|
||||
<input type="text" id="subscriptionLabel" ng-model="settings.subscriptionLabel.value" class="form-control" placeholder="{{ 'invoices.general_subscription_label' | translate }}"/>
|
||||
<button name="button" class="btn btn-warning" ng-click="save(settings.subscriptionLabel)" translate>{{ 'save' }}</button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-md-4">
|
||||
<label for="machineCode" translate>{{ 'invoices.accounting_machine_code' }}</label>
|
||||
<input type="text" id="machineCode" ng-model="settings.machineCode.value" class="form-control" placeholder="{{ 'invoices.general_machine_code' | translate }}"/>
|
||||
<button name="button" class="btn btn-warning" ng-click="save(settings.machineCode)" translate>{{ 'save' }}</button>
|
||||
</div>
|
||||
<div class="col-md-4">
|
||||
<label for="machineLabel" translate>{{ 'invoices.accounting_machine_label' }}</label>
|
||||
<input type="text" id="machineLabel" ng-model="settings.machineLabel.value" class="form-control" placeholder="{{ 'invoices.general_machine_label' | translate }}"/>
|
||||
<button name="button" class="btn btn-warning" ng-click="save(settings.machineLabel)" translate>{{ 'save' }}</button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-md-4">
|
||||
<label for="trainingCode" translate>{{ 'invoices.accounting_training_code' }}</label>
|
||||
<input type="text" id="trainingCode" ng-model="settings.trainingCode.value" class="form-control" placeholder="{{ 'invoices.general_training_code' | translate }}" />
|
||||
<button name="button" class="btn btn-warning" ng-click="save(settings.trainingCode)" translate>{{ 'save' }}</button>
|
||||
</div>
|
||||
<div class="col-md-4">
|
||||
<label for="trainingLabel" translate>{{ 'invoices.accounting_training_label' }}</label>
|
||||
<input type="text" id="trainingLabel" ng-model="settings.trainingLabel.value" class="form-control" placeholder="{{ 'invoices.general_training_label' | translate }}"/>
|
||||
<button name="button" class="btn btn-warning" ng-click="save(settings.trainingLabel)" translate>{{ 'save' }}</button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-md-4">
|
||||
<label for="eventCode" translate>{{ 'invoices.accounting_event_code' }}</label>
|
||||
<input type="text" id="eventCode" ng-model="settings.eventCode.value" class="form-control" placeholder="{{ 'invoices.general_event_code' | translate }}"/>
|
||||
<button name="button" class="btn btn-warning" ng-click="save(settings.eventCode)" translate>{{ 'save' }}</button>
|
||||
</div>
|
||||
<div class="col-md-4">
|
||||
<label for="eventLabel" translate>{{ 'invoices.accounting_event_label' }}</label>
|
||||
<input type="text" id="eventLabel" ng-model="settings.eventLabel.value" class="form-control" placeholder="{{ 'invoices.general_event_label' | translate }}"/>
|
||||
<button name="button" class="btn btn-warning" ng-click="save(settings.eventLabel)" translate>{{ 'save' }}</button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-md-4">
|
||||
<label for="spaceCode" translate>{{ 'invoices.accounting_space_code' }}</label>
|
||||
<input type="text" id="spaceCode" ng-model="settings.spaceCode.value" class="form-control" placeholder="{{ 'invoices.general_space_code' | translate }}" />
|
||||
<button name="button" class="btn btn-warning" ng-click="save(settings.spaceCode)" translate>{{ 'save' }}</button>
|
||||
</div>
|
||||
<div class="col-md-4">
|
||||
<label for="spaceLabel" translate>{{ 'invoices.accounting_space_label' }}</label>
|
||||
<input type="text" id="spaceLabel" ng-model="settings.spaceLabel.value" class="form-control" placeholder="{{ 'invoices.general_space_label' | translate }}"/>
|
||||
<button name="button" class="btn btn-warning" ng-click="save(settings.spaceLabel)" translate>{{ 'save' }}</button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-md-4">
|
||||
<label for="couponCode" translate>{{ 'invoices.accounting_coupon_code' }}</label>
|
||||
<input type="text" id="couponCode" ng-model="settings.couponCode.value" class="form-control" placeholder="{{ 'invoices.general_coupon_code' | translate }}"/>
|
||||
<button name="button" class="btn btn-warning" ng-click="save(settings.couponCode)" translate>{{ 'save' }}</button>
|
||||
</div>
|
||||
<div class="col-md-4">
|
||||
<label for="couponLabel" translate>{{ 'invoices.accounting_coupon_label' }}</label>
|
||||
<input type="text" id="couponLabel" ng-model="settings.couponLabel.value" class="form-control" placeholder="{{ 'invoices.general_coupon_label' | translate }}"/>
|
||||
<button name="button" class="btn btn-warning" ng-click="save(settings.couponLabel)" translate>{{ 'save' }}</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</uib-tab>
|
||||
</uib-tabset>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -40,7 +40,26 @@ class Setting < ActiveRecord::Base
|
||||
visibility_yearly
|
||||
visibility_others
|
||||
display_name_enable
|
||||
machines_sort_by] }
|
||||
machines_sort_by
|
||||
accounting_journal_code
|
||||
accounting_client_code
|
||||
accounting_client_label
|
||||
accounting_wallet_code
|
||||
accounting_wallet_label
|
||||
accounting_VAT_code
|
||||
accounting_VAT_label
|
||||
accounting_subscription_code
|
||||
accounting_subscription_label
|
||||
accounting_Machine_code
|
||||
accounting_Machine_label
|
||||
accounting_Training_code
|
||||
accounting_Training_label
|
||||
accounting_Event_code
|
||||
accounting_Event_label
|
||||
accounting_Space_code
|
||||
accounting_Space_label
|
||||
accounting_coupon_code
|
||||
accounting_coupon_label] }
|
||||
|
||||
after_update :update_stylesheet, :notify_privacy_policy_changed if :value_changed?
|
||||
|
||||
|
@ -2,19 +2,18 @@
|
||||
|
||||
# Provides the routine to export the accounting data to an external accounting software
|
||||
class AccountingExportService
|
||||
attr_reader :file, :encoding, :format, :separator, :log_code, :date_format
|
||||
attr_reader :encoding, :format, :separator, :journal_code, :date_format
|
||||
|
||||
def initialize(file, columns, encoding = 'UTF-8', format = 'CSV', separator = ';')
|
||||
@file = file
|
||||
def initialize(columns, encoding = 'UTF-8', format = 'CSV', separator = ';', date_format = '%d/%m/%Y')
|
||||
@encoding = encoding
|
||||
@format = format
|
||||
@separator = separator
|
||||
@log_code = Setting.find_by(name: 'accounting-export_log-code').value
|
||||
@date_format = Setting.find_by(name: 'accounting-export_date-format').value
|
||||
@journal_code = Setting.find_by(name: 'accounting-export_journal-code').value
|
||||
@date_format = date_format
|
||||
@columns = columns
|
||||
end
|
||||
|
||||
def export(start_date, end_date)
|
||||
def export(start_date, end_date, file)
|
||||
# build CVS content
|
||||
content = ''
|
||||
invoices = Invoice.where('created_at >= ? AND created_at <= ?', start_date, end_date).order('created_at ASC')
|
||||
@ -47,8 +46,8 @@ class AccountingExportService
|
||||
row = ''
|
||||
columns.each do |column|
|
||||
case column
|
||||
when :log_code
|
||||
row << log_code
|
||||
when :journal_code
|
||||
row << journal_code
|
||||
when :date
|
||||
row << invoice.created_at.strftime(date_format)
|
||||
when :account_code
|
||||
@ -81,8 +80,8 @@ class AccountingExportService
|
||||
row = ''
|
||||
columns.each do |column|
|
||||
case column
|
||||
when :log_code
|
||||
row << log_code
|
||||
when :journal_code
|
||||
row << journal_code
|
||||
when :date
|
||||
row << invoice.created_at.strftime(date_format)
|
||||
when :account_code
|
||||
@ -116,8 +115,8 @@ class AccountingExportService
|
||||
row = ''
|
||||
columns.each do |column|
|
||||
case column
|
||||
when :log_code
|
||||
row << log_code
|
||||
when :journal_code
|
||||
row << journal_code
|
||||
when :date
|
||||
row << invoice.created_at.strftime(date_format)
|
||||
when :account_code
|
||||
@ -152,8 +151,8 @@ class AccountingExportService
|
||||
row = ''
|
||||
columns.each do |column|
|
||||
case column
|
||||
when :log_code
|
||||
row << log_code
|
||||
when :journal_code
|
||||
row << journal_code
|
||||
when :date
|
||||
row << invoice.created_at.strftime(date_format)
|
||||
when :account_code
|
||||
@ -183,17 +182,17 @@ class AccountingExportService
|
||||
def account(invoice, account, type = :code)
|
||||
case account
|
||||
when :client
|
||||
Setting.find_by(name: "accounting-export_client-account-#{type}").value
|
||||
Setting.find_by(name: "accounting_client_#{type}").value
|
||||
when :vat
|
||||
Setting.find_by(name: "accounting-export_VAT-account-#{type}").value
|
||||
Setting.find_by(name: "accounting_VAT_#{type}").value
|
||||
when :subscription
|
||||
return if invoice.invoiced_type != 'Subscription'
|
||||
|
||||
Setting.find_by(name: "accounting-export_subscription-account-#{type}").value
|
||||
Setting.find_by(name: "accounting_subscription_#{type}").value
|
||||
when :reservation
|
||||
return if invoice.invoiced_type != 'Reservation'
|
||||
|
||||
Setting.find_by(name: "accounting-export_#{invoice.invoiced.reservable_type}-account-#{type}").value
|
||||
Setting.find_by(name: "accounting_#{invoice.invoiced.reservable_type}_#{type}").value
|
||||
else
|
||||
puts "Unsupported account #{account}"
|
||||
end
|
||||
|
@ -10,9 +10,9 @@ class AccountingExportWorker
|
||||
raise SecurityError, 'Not allowed to export' unless export.user.admin?
|
||||
|
||||
data = JSON.parse(export.query)
|
||||
service = AccountingExportService.new(export.file, data['columns'], data['encoding'], export.extension, export.key)
|
||||
service = AccountingExportService.new(data['columns'], data['encoding'], export.extension, export.key, data['date_format'])
|
||||
|
||||
service.export(data['start_date'], data['end_date'])
|
||||
service.export(data['start_date'], data['end_date'], export.file)
|
||||
|
||||
NotificationCenter.call type: :notify_admin_export_complete,
|
||||
receiver: export.user,
|
||||
|
@ -432,6 +432,47 @@ en:
|
||||
period_START_END_closed_success: "The accounting period from {{START}} to {{END}} has been successfully closed. Archive generation is running, you'll be notified when it's done."
|
||||
failed_to_close_period: "An error occurred, unable to close the accounting period"
|
||||
no_periods: "No closings for now"
|
||||
accounting_codes: "Accounting codes"
|
||||
accounting_journal_code: "Journal code"
|
||||
general_journal_code: "Journal code"
|
||||
accounting_client_code: "Customers code"
|
||||
general_client_code: "Accounting code for all customers"
|
||||
accounting_client_label: "Customers label"
|
||||
general_client_label: "Account label for all customers"
|
||||
accounting_wallet_code: "Wallet code"
|
||||
general_wallet_code: "Accounting code for wallet credit"
|
||||
accounting_wallet_label: "Wallet label"
|
||||
general_wallet_label: "Account label for wallet credit"
|
||||
accounting_vat_code: "VAT code"
|
||||
general_vat_code: "Accounting code for VAT"
|
||||
accounting_vat_label: "VAT label"
|
||||
general_vat_label: "VAT account label"
|
||||
accounting_subscription_code: "Subscriptions code"
|
||||
general_subscription_code: "Accounting code for all subscriptions"
|
||||
accounting_subscription_label: "Subscriptions label"
|
||||
general_subscription_label: "Account label for all subscriptions"
|
||||
accounting_machine_code: "Machines code"
|
||||
general_machine_code: "Accounting code for all machines"
|
||||
accounting_machine_label: "Machine label"
|
||||
general_machine_label: "Account label for all machines"
|
||||
accounting_training_code: "Trainings code"
|
||||
general_training_code: "Accounting code for all trainings"
|
||||
accounting_training_label: "Trainings label"
|
||||
general_training_label: "Account label for all trainings"
|
||||
accounting_event_code: "Events code"
|
||||
general_event_code: "Accounting code for all events"
|
||||
accounting_event_label: "Events label"
|
||||
general_event_label: "Account label for all events"
|
||||
accounting_space_code: "Space code"
|
||||
general_space_code: "Accounting code for all spaces"
|
||||
accounting_space_label: "Spaces label"
|
||||
general_space_label: "Account label for all spaces"
|
||||
accounting_coupon_code: "Coupons code"
|
||||
general_coupon_code: "Accounting code for all coupons"
|
||||
accounting_coupon_label: "Coupons label"
|
||||
general_coupon_label: "Account label for all coupons"
|
||||
customization_of_SETTING_successfully_saved: "Customization of the {{SETTING}} successfully saved." # angular interpolation
|
||||
export_accounting_data: "Export accounting data"
|
||||
|
||||
members:
|
||||
# management of users, labels, groups, and so on
|
||||
|
@ -432,6 +432,47 @@ es:
|
||||
period_START_END_closed_success: "The accounting period from {{START}} to {{END}} has been successfully closed. Archive generation is running, you'll be notified when it's done." # translation_missing
|
||||
failed_to_close_period: "An error occurred, unable to close the accounting period" # translation_missing
|
||||
no_periods: "No closings for now" # translation_missing
|
||||
accounting_codes: "Accounting codes" # translation_missing
|
||||
accounting_journal_code: "Journal code" # translation_missing
|
||||
general_journal_code: "Journal code" # translation_missing
|
||||
accounting_client_code: "Customers code" # translation_missing
|
||||
general_client_code: "Accounting code for all customers" # translation_missing
|
||||
accounting_client_label: "Customers label" # translation_missing
|
||||
general_client_label: "Account label for all customers" # translation_missing
|
||||
accounting_wallet_code: "Wallet code" # translation_missing
|
||||
general_wallet_code: "Accounting code for wallet credit" # translation_missing
|
||||
accounting_wallet_label: "Wallet label" # translation_missing
|
||||
general_wallet_label: "Account label for wallet credit" # translation_missing
|
||||
accounting_vat_code: "VAT code" # translation_missing
|
||||
general_vat_code: "Accounting code for VAT" # translation_missing
|
||||
accounting_vat_label: "VAT label" # translation_missing
|
||||
general_vat_label: "VAT account label" # translation_missing
|
||||
accounting_subscription_code: "Subscriptions code" # translation_missing
|
||||
general_subscription_code: "Accounting code for all subscriptions" # translation_missing
|
||||
accounting_subscription_label: "Subscriptions label" # translation_missing
|
||||
general_subscription_label: "Account label for all subscriptions" # translation_missing
|
||||
accounting_machine_code: "Machines code" # translation_missing
|
||||
general_machine_code: "Accounting code for all machines" # translation_missing
|
||||
accounting_machine_label: "Machine label" # translation_missing
|
||||
general_machine_label: "Account label for all machines" # translation_missing
|
||||
accounting_training_code: "Trainings code" # translation_missing
|
||||
general_training_code: "Accounting code for all trainings" # translation_missing
|
||||
accounting_training_label: "Trainings label" # translation_missing
|
||||
general_training_label: "Account label for all trainings" # translation_missing
|
||||
accounting_event_code: "Events code" # translation_missing
|
||||
general_event_code: "Accounting code for all events" # translation_missing
|
||||
accounting_event_label: "Events label" # translation_missing
|
||||
general_event_label: "Account label for all events" # translation_missing
|
||||
accounting_space_code: "Space code" # translation_missing
|
||||
general_space_code: "Accounting code for all spaces" # translation_missing
|
||||
accounting_space_label: "Spaces label" # translation_missing
|
||||
general_space_label: "Account label for all spaces" # translation_missing
|
||||
accounting_coupon_code: "Coupons code" # translation_missing
|
||||
general_coupon_code: "Accounting code for all coupons" # translation_missing
|
||||
accounting_coupon_label: "Coupons label" # translation_missing
|
||||
general_coupon_label: "Account label for all coupons" # translation_missing
|
||||
customization_of_SETTING_successfully_saved: "Customization of the {{SETTING}} successfully saved." # angular interpolation # translation_missing
|
||||
export_accounting_data: "Export accounting data" # translation_missing
|
||||
|
||||
members:
|
||||
# management of users, labels, groups, and so on
|
||||
|
@ -432,6 +432,47 @@ fr:
|
||||
period_START_END_closed_success: "La période comptable du {{START}} au {{END}} a bien été clôturée. La génération de l'archive est en cours, vous serez prévenu lorsque celle-ci sera terminée."
|
||||
failed_to_close_period: "Une erreur est survenue, impossible de clôturer la période comptable"
|
||||
no_periods: "Aucune clôture pour le moment"
|
||||
accounting_codes: "Codes comptables"
|
||||
accounting_journal_code: "Code journal"
|
||||
general_journal_code: "Code journal"
|
||||
accounting_client_code: "Code clients"
|
||||
general_client_code: "Code comptable pour tous les clients"
|
||||
accounting_client_label: "Libellé client"
|
||||
general_client_label: "Libellé du compte pour tous les clients"
|
||||
accounting_wallet_code: "Code porte-monnaie"
|
||||
general_wallet_code: "Code comptable pour le crédit du porte-monnaie"
|
||||
accounting_wallet_label: "Libellé porte-monnaie"
|
||||
general_wallet_label: "Libellé du compte pour le crédit du porte-monnaie"
|
||||
accounting_vat_code: "Code TVA"
|
||||
general_vat_code: "Code comptable pour la TVA"
|
||||
accounting_vat_label: "Libellé TVA"
|
||||
general_vat_label: "Libellé du compte TVA"
|
||||
accounting_subscription_code: "Code abonnements"
|
||||
general_subscription_code: "Code comptable pour tous les abonnements"
|
||||
accounting_subscription_label: "Libellé abonnements"
|
||||
general_subscription_label: "Libellé du compte pour tous les abonnements"
|
||||
accounting_machine_code: "Code machines"
|
||||
general_machine_code: "Code comptable pour toutes les machines"
|
||||
accounting_machine_label: "Libellé machine"
|
||||
general_machine_label: "Libellé du compte pour toutes les machines"
|
||||
accounting_training_code: "Code formations"
|
||||
general_training_code: "Code comptable pour toutes les formations"
|
||||
accounting_training_label: "Libellé formations"
|
||||
general_training_label: "Libellé du compte pour toutes les formations"
|
||||
accounting_event_code: "Code évènements"
|
||||
general_event_code: "Code comptable pour tous les évènements"
|
||||
accounting_event_label: "Libellé évènements"
|
||||
general_event_label: "Libellé du compte pour tous les évènements"
|
||||
accounting_space_code: "Code espaces"
|
||||
general_space_code: "Code comptable pour tous les espaces"
|
||||
accounting_space_label: "Libellé espaces"
|
||||
general_space_label: "Libellé du compte pour tous les espaces"
|
||||
accounting_coupon_code: "Code pour codes promo"
|
||||
general_coupon_code: "Code comptable pour tous les codes promo"
|
||||
accounting_coupon_label: "Libellé codes promo"
|
||||
general_coupon_label: "Libellé du compte pour tous les codes promo"
|
||||
customization_of_SETTING_successfully_saved: "La personnalisation de {{SETTING}} a bien été enregistrée." # angular interpolation
|
||||
export_accounting_data: "Exporter les données comptables"
|
||||
|
||||
members:
|
||||
# gestion des utilisateurs, des groupes, des étiquettes, etc.
|
||||
|
@ -432,6 +432,47 @@ pt:
|
||||
period_START_END_closed_success: "The accounting period from {{START}} to {{END}} has been successfully closed. Archive generation is running, you'll be notified when it's done." # translation_missing
|
||||
failed_to_close_period: "An error occurred, unable to close the accounting period" # translation_missing
|
||||
no_periods: "No closings for now" # translation_missing
|
||||
accounting_codes: "Accounting codes" # translation_missing
|
||||
accounting_journal_code: "Journal code" # translation_missing
|
||||
general_journal_code: "Journal code" # translation_missing
|
||||
accounting_client_code: "Customers code" # translation_missing
|
||||
general_client_code: "Accounting code for all customers" # translation_missing
|
||||
accounting_client_label: "Customers label" # translation_missing
|
||||
general_client_label: "Account label for all customers" # translation_missing
|
||||
accounting_wallet_code: "Wallet code" # translation_missing
|
||||
general_wallet_code: "Accounting code for wallet credit" # translation_missing
|
||||
accounting_wallet_label: "Wallet label" # translation_missing
|
||||
general_wallet_label: "Account label for wallet credit" # translation_missing
|
||||
accounting_vat_code: "VAT code" # translation_missing
|
||||
general_vat_code: "Accounting code for VAT" # translation_missing
|
||||
accounting_vat_label: "VAT label" # translation_missing
|
||||
general_vat_label: "VAT account label" # translation_missing
|
||||
accounting_subscription_code: "Subscriptions code" # translation_missing
|
||||
general_subscription_code: "Accounting code for all subscriptions" # translation_missing
|
||||
accounting_subscription_label: "Subscriptions label" # translation_missing
|
||||
general_subscription_label: "Account label for all subscriptions" # translation_missing
|
||||
accounting_machine_code: "Machines code" # translation_missing
|
||||
general_machine_code: "Accounting code for all machines" # translation_missing
|
||||
accounting_machine_label: "Machine label" # translation_missing
|
||||
general_machine_label: "Account label for all machines" # translation_missing
|
||||
accounting_training_code: "Trainings code" # translation_missing
|
||||
general_training_code: "Accounting code for all trainings" # translation_missing
|
||||
accounting_training_label: "Trainings label" # translation_missing
|
||||
general_training_label: "Account label for all trainings" # translation_missing
|
||||
accounting_event_code: "Events code" # translation_missing
|
||||
general_event_code: "Accounting code for all events" # translation_missing
|
||||
accounting_event_label: "Events label" # translation_missing
|
||||
general_event_label: "Account label for all events" # translation_missing
|
||||
accounting_space_code: "Space code" # translation_missing
|
||||
general_space_code: "Accounting code for all spaces" # translation_missing
|
||||
accounting_space_label: "Spaces label" # translation_missing
|
||||
general_space_label: "Account label for all spaces" # translation_missing
|
||||
accounting_coupon_code: "Coupons code" # translation_missing
|
||||
general_coupon_code: "Accounting code for all coupons" # translation_missing
|
||||
accounting_coupon_label: "Coupons label" # translation_missing
|
||||
general_coupon_label: "Account label for all coupons" # translation_missing
|
||||
customization_of_SETTING_successfully_saved: "Customization of the {{SETTING}} successfully saved." # angular interpolation # translation_missing
|
||||
export_accounting_data: "Export accounting data" # translation_missing
|
||||
|
||||
members:
|
||||
# management of users, labels, groups, and so on
|
||||
|
Loading…
Reference in New Issue
Block a user