mirror of
https://github.com/LaCasemate/fab-manager.git
synced 2024-11-28 09:24:24 +01:00
(feat) multiple accounting journals
This commit is contained in:
parent
31ba4d3486
commit
4d7e09c98d
@ -56,25 +56,28 @@ export const AccountingCodesSettings: React.FC<AccountingCodesSettingsProps> = (
|
||||
tooltip={t('app.admin.accounting_codes_settings.enable_advanced_help')} />
|
||||
</FabPanel>
|
||||
<FabPanel>
|
||||
<h4>{t('app.admin.accounting_codes_settings.journal_code')}</h4>
|
||||
<FormInput register={register} id="accounting_journal_code" label={t('app.admin.accounting_codes_settings.journal_code')} />
|
||||
<h4>{t('app.admin.accounting_codes_settings.payment_means')}</h4>
|
||||
<h5>{t('app.admin.accounting_codes_settings.card')}</h5>
|
||||
<div className="cards">
|
||||
<FormInput register={register} id="accounting_card_client_journal_code" label={t('app.admin.accounting_codes_settings.journal_code')} />
|
||||
<FormInput register={register} id="accounting_card_client_code" label={t('app.admin.accounting_codes_settings.code')} />
|
||||
<FormInput register={register} id="accounting_card_client_label" label={t('app.admin.accounting_codes_settings.label')} />
|
||||
</div>
|
||||
<h5>{t('app.admin.accounting_codes_settings.wallet_debit')}</h5>
|
||||
<div className="wallets">
|
||||
<FormInput register={register} id="accounting_wallet_client_journal_code" label={t('app.admin.accounting_codes_settings.journal_code')} />
|
||||
<FormInput register={register} id="accounting_wallet_client_code" label={t('app.admin.accounting_codes_settings.code')} />
|
||||
<FormInput register={register} id="accounting_wallet_client_label" label={t('app.admin.accounting_codes_settings.label')} />
|
||||
</div>
|
||||
<h5>{t('app.admin.accounting_codes_settings.other')}</h5>
|
||||
<div className="others">
|
||||
<FormInput register={register} id="accounting_other_client_journal_code" label={t('app.admin.accounting_codes_settings.journal_code')} />
|
||||
<FormInput register={register} id="accounting_other_client_code" label={t('app.admin.accounting_codes_settings.code')} />
|
||||
<FormInput register={register} id="accounting_other_client_label" label={t('app.admin.accounting_codes_settings.label')} />
|
||||
</div>
|
||||
<h4>{t('app.admin.accounting_codes_settings.sales')}</h4>
|
||||
<h5>{t('app.admin.accounting_codes_settings.sales_journal')}</h5>
|
||||
<FormInput register={register} id="accounting_sales_journal_code" label={t('app.admin.accounting_codes_settings.journal_code')} />
|
||||
<h5>{t('app.admin.accounting_codes_settings.subscriptions')}</h5>
|
||||
<div className="subscriptions">
|
||||
<FormInput register={register} id="accounting_subscription_code" label={t('app.admin.accounting_codes_settings.code')} />
|
||||
@ -110,23 +113,25 @@ export const AccountingCodesSettings: React.FC<AccountingCodesSettingsProps> = (
|
||||
<FormInput register={register} id="accounting_Product_code" label={t('app.admin.accounting_codes_settings.code')} />
|
||||
<FormInput register={register} id="accounting_Product_label" label={t('app.admin.accounting_codes_settings.label')} />
|
||||
</div>
|
||||
<h4>{t('app.admin.accounting_codes_settings.wallet_credit')}</h4>
|
||||
<div className="wallets">
|
||||
<FormInput register={register} id="accounting_wallet_code" label={t('app.admin.accounting_codes_settings.code')} />
|
||||
<FormInput register={register} id="accounting_wallet_label" label={t('app.admin.accounting_codes_settings.label')} />
|
||||
</div>
|
||||
<h4>{t('app.admin.accounting_codes_settings.VAT')}</h4>
|
||||
<div className="vat">
|
||||
<FormInput register={register} id="accounting_VAT_code" label={t('app.admin.accounting_codes_settings.code')} />
|
||||
<FormInput register={register} id="accounting_VAT_label" label={t('app.admin.accounting_codes_settings.label')} />
|
||||
</div>
|
||||
<h4>{t('app.admin.accounting_codes_settings.error')}</h4>
|
||||
<h5>{t('app.admin.accounting_codes_settings.error')}</h5>
|
||||
<div className="error">
|
||||
<FormInput register={register} id="accounting_Error_code" label={t('app.admin.accounting_codes_settings.code')} />
|
||||
<FormInput register={register} id="accounting_Error_label"
|
||||
label={t('app.admin.accounting_codes_settings.label')}
|
||||
tooltip={t('app.admin.accounting_codes_settings.error_help')} />
|
||||
</div>
|
||||
<h4>{t('app.admin.accounting_codes_settings.wallet_credit')}</h4>
|
||||
<div className="wallets">
|
||||
<FormInput register={register} id="accounting_wallet_journal_code" label={t('app.admin.accounting_codes_settings.journal_code')} />
|
||||
<FormInput register={register} id="accounting_wallet_code" label={t('app.admin.accounting_codes_settings.code')} />
|
||||
<FormInput register={register} id="accounting_wallet_label" label={t('app.admin.accounting_codes_settings.label')} />
|
||||
</div>
|
||||
<h4>{t('app.admin.accounting_codes_settings.VAT')}</h4>
|
||||
<div className="vat">
|
||||
<FormInput register={register} id="accounting_VAT_journal_code" label={t('app.admin.accounting_codes_settings.journal_code')} />
|
||||
<FormInput register={register} id="accounting_VAT_code" label={t('app.admin.accounting_codes_settings.code')} />
|
||||
<FormInput register={register} id="accounting_VAT_label" label={t('app.admin.accounting_codes_settings.label')} />
|
||||
</div>
|
||||
</FabPanel>
|
||||
<FabPanel className="actions">
|
||||
<FabButton type="submit" className="is-info submit-btn">
|
||||
|
@ -96,17 +96,22 @@ export const titleSettings = [
|
||||
] as const;
|
||||
|
||||
export const accountingSettings = [
|
||||
'accounting_journal_code',
|
||||
'accounting_sales_journal_code',
|
||||
'accounting_card_client_code',
|
||||
'accounting_card_client_label',
|
||||
'accounting_card_client_journal_code',
|
||||
'accounting_wallet_client_code',
|
||||
'accounting_wallet_client_label',
|
||||
'accounting_wallet_client_journal_code',
|
||||
'accounting_other_client_code',
|
||||
'accounting_other_client_label',
|
||||
'accounting_other_client_journal_code',
|
||||
'accounting_wallet_code',
|
||||
'accounting_wallet_label',
|
||||
'accounting_wallet_journal_code',
|
||||
'accounting_VAT_code',
|
||||
'accounting_VAT_label',
|
||||
'accounting_VAT_journal_code',
|
||||
'accounting_subscription_code',
|
||||
'accounting_subscription_label',
|
||||
'accounting_Machine_code',
|
||||
|
@ -4,9 +4,12 @@
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
|
||||
.form-item:first-child {
|
||||
.form-item {
|
||||
margin-right: 32px;
|
||||
}
|
||||
.form-item:last-child {
|
||||
margin-right: 0;
|
||||
}
|
||||
}
|
||||
.actions {
|
||||
background-color: transparent;
|
||||
|
@ -56,17 +56,22 @@ class Setting < ApplicationRecord
|
||||
reservation_deadline
|
||||
display_name_enable
|
||||
machines_sort_by
|
||||
accounting_journal_code
|
||||
accounting_sales_journal_code
|
||||
accounting_card_client_code
|
||||
accounting_card_client_label
|
||||
accounting_card_client_journal_code
|
||||
accounting_wallet_client_code
|
||||
accounting_wallet_client_label
|
||||
accounting_wallet_client_journal_code
|
||||
accounting_other_client_code
|
||||
accounting_other_client_label
|
||||
accounting_other_client_journal_code
|
||||
accounting_wallet_code
|
||||
accounting_wallet_label
|
||||
accounting_wallet_journal_code
|
||||
accounting_VAT_code
|
||||
accounting_VAT_label
|
||||
accounting_VAT_journal_code
|
||||
accounting_subscription_code
|
||||
accounting_subscription_label
|
||||
accounting_Machine_code
|
||||
@ -164,6 +169,9 @@ class Setting < ApplicationRecord
|
||||
# - app/frontend/src/javascript/models/setting.ts#SettingName
|
||||
# - db/seeds.rb (to set the default value)
|
||||
# - app/policies/setting_policy.rb#public_whitelist (if the setting can be read by anyone)
|
||||
# - test/fixtures/settings.yml (for backend testing)
|
||||
# - test/fixtures/history_values.yml (example value for backend testing)
|
||||
# - test/frontend/__fixtures__/settings.ts (example value for frontend testing)
|
||||
|
||||
def value
|
||||
last_value = history_values.order(HistoryValue.arel_table['created_at'].desc).limit(1).first
|
||||
|
37
app/services/accounting/accounting_journal_service.rb
Normal file
37
app/services/accounting/accounting_journal_service.rb
Normal file
@ -0,0 +1,37 @@
|
||||
# frozen_string_literal: false
|
||||
|
||||
# module definition
|
||||
module Accounting; end
|
||||
|
||||
# fetch the journal code matching the given resource
|
||||
class Accounting::AccountingJournalService
|
||||
def initialize
|
||||
@journal_codes = {
|
||||
sales: Setting.get('accounting_sales_journal_code') || '',
|
||||
wallet: Setting.get('accounting_wallet_journal_code') || '',
|
||||
vat: Setting.get('accounting_VAT_journal_code') || '',
|
||||
client: {
|
||||
card: Setting.get('accounting_card_client_journal_code') || '',
|
||||
wallet: Setting.get('accounting_wallet_client_journal_code') || '',
|
||||
other: Setting.get('accounting_other_client_journal_code') || ''
|
||||
}
|
||||
}
|
||||
end
|
||||
|
||||
def client_journal(payment_mean)
|
||||
@journal_codes[:client][payment_mean]
|
||||
end
|
||||
|
||||
def vat_journal
|
||||
@journal_codes[:vat]
|
||||
end
|
||||
|
||||
def sales_journal(object_type)
|
||||
case object_type
|
||||
when 'WalletTransaction'
|
||||
@journal_codes[:wallet]
|
||||
else
|
||||
@journal_codes[:sales]
|
||||
end
|
||||
end
|
||||
end
|
@ -5,11 +5,9 @@ module Accounting; end
|
||||
|
||||
# Provides the routine to build the accounting data and save them in DB
|
||||
class Accounting::AccountingService
|
||||
attr_reader :currency, :journal_code
|
||||
|
||||
def initialize
|
||||
@currency = ENV.fetch('INTL_CURRENCY') { '' }
|
||||
@journal_code = Setting.get('accounting_journal_code') || ''
|
||||
@journal_service = Accounting::AccountingJournalService.new
|
||||
end
|
||||
|
||||
# build accounting lines for invoices between the provided dates
|
||||
@ -58,9 +56,10 @@ class Accounting::AccountingService
|
||||
lines << line(
|
||||
invoice,
|
||||
'item',
|
||||
@journal_service.sales_journal(object_type),
|
||||
Accounting::AccountingCodeService.sales_account(item),
|
||||
Accounting::AccountingCodeService.sales_account(item, type: :label),
|
||||
item.net_amount,
|
||||
account_label: Accounting::AccountingCodeService.sales_account(item, type: :label),
|
||||
analytical_code: Accounting::AccountingCodeService.sales_account(item, section: :analytical_section)
|
||||
)
|
||||
end
|
||||
@ -75,9 +74,10 @@ class Accounting::AccountingService
|
||||
lines << line(
|
||||
invoice,
|
||||
'client',
|
||||
@journal_service.client_journal(details[:means]),
|
||||
Accounting::AccountingCodeService.client_account(details[:means]),
|
||||
Accounting::AccountingCodeService.client_account(details[:means], type: :label),
|
||||
details[:amount],
|
||||
account_label: Accounting::AccountingCodeService.client_account(details[:means], type: :label),
|
||||
debit_method: :debit_client,
|
||||
credit_method: :credit_client
|
||||
)
|
||||
@ -95,14 +95,16 @@ class Accounting::AccountingService
|
||||
line(
|
||||
invoice,
|
||||
'vat',
|
||||
@journal_service.vat_journal,
|
||||
Accounting::AccountingCodeService.vat_account,
|
||||
Accounting::AccountingCodeService.vat_account(type: :label),
|
||||
total_vat
|
||||
total_vat,
|
||||
account_label: Accounting::AccountingCodeService.vat_account(type: :label)
|
||||
)
|
||||
end
|
||||
|
||||
# Generate a row of the export, filling the configured columns with the provided values
|
||||
def line(invoice, line_type, account_code, account_label, amount, analytical_code: '', debit_method: :debit, credit_method: :credit)
|
||||
def line(invoice, line_type, journal_code, account_code, amount,
|
||||
account_label: '', analytical_code: '', debit_method: :debit, credit_method: :credit)
|
||||
{
|
||||
line_type: line_type,
|
||||
journal_code: journal_code,
|
||||
@ -114,7 +116,7 @@ class Accounting::AccountingService
|
||||
invoicing_profile_id: invoice.invoicing_profile_id,
|
||||
debit: method(debit_method).call(invoice, amount),
|
||||
credit: method(credit_method).call(invoice, amount),
|
||||
currency: currency,
|
||||
currency: @currency,
|
||||
summary: summary(invoice)
|
||||
}
|
||||
end
|
||||
|
@ -145,6 +145,7 @@ en:
|
||||
code: "Accounting code"
|
||||
label: "Account label"
|
||||
journal_code: "Journal code"
|
||||
sales_journal: "Sales journal"
|
||||
payment_means: "Payment means"
|
||||
card: "Card clients"
|
||||
wallet_debit: "Virtual wallet clients"
|
||||
|
@ -528,17 +528,22 @@ en:
|
||||
reservation_deadline: "Prevent reservation before it starts"
|
||||
display_name_enable: "Display names in the calendar"
|
||||
machines_sort_by: "Machines display order"
|
||||
accounting_journal_code: "Journal code"
|
||||
accounting_sales_journal_code: "Sales journal code"
|
||||
accounting_card_client_code: "Card clients code"
|
||||
accounting_card_client_label: "Card clients label"
|
||||
accounting_card_client_journal_code: "Card clients journal code"
|
||||
accounting_wallet_client_code: "Wallet clients code"
|
||||
accounting_wallet_client_label: "Wallet clients label"
|
||||
accounting_wallet_client_journal_code: "Wallet clients journal code"
|
||||
accounting_other_client_code: "Other means client code"
|
||||
accounting_other_client_label: "Other means client label"
|
||||
accounting_other_client_journal_code: "Other means client journal code"
|
||||
accounting_wallet_code: "Wallet code"
|
||||
accounting_wallet_label: "Wallet label"
|
||||
accounting_wallet_journal_code: "Wallet journal code"
|
||||
accounting_VAT_code: "VAT code"
|
||||
accounting_VAT_label: "VAT label"
|
||||
accounting_VAT_journal_code: "VAT journal code"
|
||||
accounting_subscription_code: "Subscriptions code"
|
||||
accounting_subscription_label: "Subscriptions label"
|
||||
accounting_Machine_code: "Machines code"
|
||||
@ -549,6 +554,10 @@ en:
|
||||
accounting_Event_label: "Events label"
|
||||
accounting_Space_code: "Spaces code"
|
||||
accounting_Space_label: "Spaces label"
|
||||
accounting_Pack_code: "Prepaid-hours pack code"
|
||||
accounting_Pack_label: "Prepaid-hours pack label"
|
||||
accounting_Product_code: "Store products code"
|
||||
accounting_Product_label: "Store products label"
|
||||
hub_last_version: "Last Fab-manager's version"
|
||||
hub_public_key: "Instance public key"
|
||||
fab_analytics: "Fab Analytics"
|
||||
|
12
db/migrate/20221208123822_rename_journal_code_setting.rb
Normal file
12
db/migrate/20221208123822_rename_journal_code_setting.rb
Normal file
@ -0,0 +1,12 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
# From this migration the setting "accounting_journal_code" will be renamed to "accounting_sales_journal_code"
|
||||
class RenameJournalCodeSetting < ActiveRecord::Migration[5.2]
|
||||
def up
|
||||
Setting.find_by(name: 'accounting_journal_code')&.update(name: 'accounting_sales_journal_code')
|
||||
end
|
||||
|
||||
def down
|
||||
Setting.find_by(name: 'accounting_sales_journal_code')&.update(name: 'accounting_journal_code')
|
||||
end
|
||||
end
|
@ -10,7 +10,7 @@
|
||||
#
|
||||
# It's strongly recommended that you check this file into your version control system.
|
||||
|
||||
ActiveRecord::Schema.define(version: 2022_12_06_100225) do
|
||||
ActiveRecord::Schema.define(version: 2022_12_08_123822) do
|
||||
|
||||
# These are extensions that must be enabled in order to support this database
|
||||
enable_extension "fuzzystrmatch"
|
||||
|
@ -4,7 +4,7 @@
|
||||
namespace :fablab do
|
||||
namespace :maintenance do
|
||||
desc 'Regenerate the invoices (invoices & avoirs) PDF'
|
||||
task :regenerate_invoices, %i[year month] => :environment do |_task, args|
|
||||
task :regenerate_invoices, %i[year month end] => :environment do |_task, args|
|
||||
start_date, end_date = dates_from_args(args)
|
||||
puts "-> Start regenerate the invoices PDF between #{I18n.l start_date, format: :long} and " \
|
||||
"#{I18n.l end_date - 1.minute, format: :long}"
|
||||
@ -14,7 +14,7 @@ namespace :fablab do
|
||||
puts '-> Done'
|
||||
end
|
||||
|
||||
task :regenerate_schedules, %i[year month] => :environment do |_task, args|
|
||||
task :regenerate_schedules, %i[year month end] => :environment do |_task, args|
|
||||
start_date, end_date = dates_from_args(args)
|
||||
puts "-> Start regenerate the payment schedules PDF between #{I18n.l start_date, format: :long} and " \
|
||||
"#{I18n.l end_date - 1.minute, format: :long}"
|
||||
@ -119,7 +119,7 @@ namespace :fablab do
|
||||
end
|
||||
|
||||
desc 'Regenerate the invoices (invoices & avoirs) reference'
|
||||
task :regenerate_invoices_reference, %i[year month] => :environment do |_task, args|
|
||||
task :regenerate_invoices_reference, %i[year month end] => :environment do |_task, args|
|
||||
start_date, end_date = dates_from_args(args)
|
||||
puts "-> Start regenerate the invoices reference between #{I18n.l start_date, format: :long} and " \
|
||||
"#{I18n.l end_date - 1.minute, format: :long}"
|
||||
@ -130,11 +130,11 @@ namespace :fablab do
|
||||
end
|
||||
|
||||
desc 'Regenerate accounting lines'
|
||||
task :regenerate_accounting_lines, %i[year month] => :environment do |_task, args|
|
||||
task :regenerate_accounting_lines, %i[year month end] => :environment do |_task, args|
|
||||
start_date, end_date = dates_from_args(args)
|
||||
puts "-> Start regenerate the accounting lines between #{I18n.l start_date, format: :long} and " \
|
||||
"#{I18n.l end_date - 1.minute, format: :long}"
|
||||
AccountingLine.where(date: start_date..end_date).destroy_all
|
||||
AccountingLine.where(date: start_date.beginning_of_day..end_date.end_of_day).delete_all
|
||||
Accounting::AccountingService.new.build(start_date.beginning_of_day, end_date.end_of_day)
|
||||
puts '-> Done'
|
||||
end
|
||||
@ -143,7 +143,8 @@ namespace :fablab do
|
||||
year = args.year || Time.current.year
|
||||
month = args.month || Time.current.month
|
||||
start_date = Time.zone.local(year.to_i, month.to_i, 1)
|
||||
[start_date, start_date.next_month]
|
||||
end_date = args.end == 'today' ? Time.current.end_of_day : start_date.next_month
|
||||
[start_date, end_date]
|
||||
end
|
||||
end
|
||||
end
|
||||
|
361
test/fixtures/accounting_lines.yml
vendored
361
test/fixtures/accounting_lines.yml
vendored
@ -1,7 +1,7 @@
|
||||
accounting_line_1:
|
||||
id: 1
|
||||
accounting_line_43:
|
||||
id: 43
|
||||
line_type: client
|
||||
journal_code: '530'
|
||||
journal_code: CB01
|
||||
date: '2012-03-12 11:03:31.651441'
|
||||
account_code: '5801'
|
||||
account_label: Client card
|
||||
@ -12,10 +12,11 @@ accounting_line_1:
|
||||
credit: 0
|
||||
currency: EUR
|
||||
summary: 1604001/VL, subscr.
|
||||
created_at: '2022-11-18 15:04:08.437029'
|
||||
updated_at: '2022-11-18 15:04:08.437029'
|
||||
accounting_line_2:
|
||||
id: 2
|
||||
created_at: '2022-12-09 14:47:11.004319'
|
||||
updated_at: '2022-12-09 14:47:11.004319'
|
||||
|
||||
accounting_line_44:
|
||||
id: 44
|
||||
line_type: item
|
||||
journal_code: '530'
|
||||
date: '2012-03-12 11:03:31.651441'
|
||||
@ -28,12 +29,13 @@ accounting_line_2:
|
||||
credit: 10000
|
||||
currency: EUR
|
||||
summary: 1604001/VL, subscr.
|
||||
created_at: '2022-11-18 15:04:08.455753'
|
||||
updated_at: '2022-11-18 15:04:08.455753'
|
||||
accounting_line_3:
|
||||
id: 3
|
||||
created_at: '2022-12-09 14:47:11.018100'
|
||||
updated_at: '2022-12-09 14:47:11.018100'
|
||||
|
||||
accounting_line_45:
|
||||
id: 45
|
||||
line_type: client
|
||||
journal_code: '530'
|
||||
journal_code: CA01
|
||||
date: '2012-03-12 13:40:22.342717'
|
||||
account_code: '5803'
|
||||
account_label: Client other
|
||||
@ -44,10 +46,11 @@ accounting_line_3:
|
||||
credit: 0
|
||||
currency: EUR
|
||||
summary: 1604002, subscr.
|
||||
created_at: '2022-11-18 15:04:08.463802'
|
||||
updated_at: '2022-11-18 15:04:08.463802'
|
||||
accounting_line_4:
|
||||
id: 4
|
||||
created_at: '2022-12-09 14:47:11.026505'
|
||||
updated_at: '2022-12-09 14:47:11.026505'
|
||||
|
||||
accounting_line_46:
|
||||
id: 46
|
||||
line_type: item
|
||||
journal_code: '530'
|
||||
date: '2012-03-12 13:40:22.342717'
|
||||
@ -60,12 +63,13 @@ accounting_line_4:
|
||||
credit: 2000
|
||||
currency: EUR
|
||||
summary: 1604002, subscr.
|
||||
created_at: '2022-11-18 15:04:08.471904'
|
||||
updated_at: '2022-11-18 15:04:08.471904'
|
||||
accounting_line_5:
|
||||
id: 5
|
||||
created_at: '2022-12-09 14:47:11.051484'
|
||||
updated_at: '2022-12-09 14:47:11.051484'
|
||||
|
||||
accounting_line_47:
|
||||
id: 47
|
||||
line_type: client
|
||||
journal_code: '530'
|
||||
journal_code: CA01
|
||||
date: '2015-06-10 11:20:01.341130'
|
||||
account_code: '5803'
|
||||
account_label: Client other
|
||||
@ -76,10 +80,11 @@ accounting_line_5:
|
||||
credit: 0
|
||||
currency: EUR
|
||||
summary: 1203001, subscr.
|
||||
created_at: '2022-11-18 15:04:08.480362'
|
||||
updated_at: '2022-11-18 15:04:08.480362'
|
||||
accounting_line_6:
|
||||
id: 6
|
||||
created_at: '2022-12-09 14:47:11.059774'
|
||||
updated_at: '2022-12-09 14:47:11.059774'
|
||||
|
||||
accounting_line_48:
|
||||
id: 48
|
||||
line_type: item
|
||||
journal_code: '530'
|
||||
date: '2015-06-10 11:20:01.341130'
|
||||
@ -92,12 +97,13 @@ accounting_line_6:
|
||||
credit: 3000
|
||||
currency: EUR
|
||||
summary: 1203001, subscr.
|
||||
created_at: '2022-11-18 15:04:08.488755'
|
||||
updated_at: '2022-11-18 15:04:08.488755'
|
||||
accounting_line_7:
|
||||
id: 7
|
||||
created_at: '2022-12-09 14:47:11.068258'
|
||||
updated_at: '2022-12-09 14:47:11.068258'
|
||||
|
||||
accounting_line_49:
|
||||
id: 49
|
||||
line_type: client
|
||||
journal_code: '530'
|
||||
journal_code: CA01
|
||||
date: '2016-04-05 08:35:52.931187'
|
||||
account_code: '5803'
|
||||
account_label: Client other
|
||||
@ -108,10 +114,11 @@ accounting_line_7:
|
||||
credit: 0
|
||||
currency: EUR
|
||||
summary: 1203002, training reserv.
|
||||
created_at: '2022-11-18 15:04:08.497148'
|
||||
updated_at: '2022-11-18 15:04:08.497148'
|
||||
accounting_line_8:
|
||||
id: 8
|
||||
created_at: '2022-12-09 14:47:11.076845'
|
||||
updated_at: '2022-12-09 14:47:11.076845'
|
||||
|
||||
accounting_line_50:
|
||||
id: 50
|
||||
line_type: item
|
||||
journal_code: '530'
|
||||
date: '2016-04-05 08:35:52.931187'
|
||||
@ -124,12 +131,13 @@ accounting_line_8:
|
||||
credit: 0
|
||||
currency: EUR
|
||||
summary: 1203002, training reserv.
|
||||
created_at: '2022-11-18 15:04:08.505540'
|
||||
updated_at: '2022-11-18 15:04:08.505540'
|
||||
accounting_line_9:
|
||||
id: 9
|
||||
created_at: '2022-12-09 14:47:11.085317'
|
||||
updated_at: '2022-12-09 14:47:11.085317'
|
||||
|
||||
accounting_line_51:
|
||||
id: 51
|
||||
line_type: client
|
||||
journal_code: '530'
|
||||
journal_code: CA01
|
||||
date: '2016-04-05 08:36:46.853368'
|
||||
account_code: '5803'
|
||||
account_label: Client other
|
||||
@ -140,10 +148,11 @@ accounting_line_9:
|
||||
credit: 0
|
||||
currency: EUR
|
||||
summary: 1506031, machine reserv.
|
||||
created_at: '2022-11-18 15:04:08.513708'
|
||||
updated_at: '2022-11-18 15:04:08.513708'
|
||||
accounting_line_10:
|
||||
id: 10
|
||||
created_at: '2022-12-09 14:47:11.093737'
|
||||
updated_at: '2022-12-09 14:47:11.093737'
|
||||
|
||||
accounting_line_52:
|
||||
id: 52
|
||||
line_type: item
|
||||
journal_code: '530'
|
||||
date: '2016-04-05 08:36:46.853368'
|
||||
@ -156,12 +165,13 @@ accounting_line_10:
|
||||
credit: 1500
|
||||
currency: EUR
|
||||
summary: 1506031, machine reserv.
|
||||
created_at: '2022-11-18 15:04:08.522222'
|
||||
updated_at: '2022-11-18 15:04:08.522222'
|
||||
accounting_line_11:
|
||||
id: 11
|
||||
created_at: '2022-12-09 14:47:11.102073'
|
||||
updated_at: '2022-12-09 14:47:11.102073'
|
||||
|
||||
accounting_line_53:
|
||||
id: 53
|
||||
line_type: client
|
||||
journal_code: '530'
|
||||
journal_code: CA01
|
||||
date: '2021-01-04 14:51:21.616153'
|
||||
account_code: '5803'
|
||||
account_label: Client other
|
||||
@ -172,10 +182,11 @@ accounting_line_11:
|
||||
credit: 0
|
||||
currency: EUR
|
||||
summary: 2101041, subscr.
|
||||
created_at: '2022-11-18 15:04:08.530494'
|
||||
updated_at: '2022-11-18 15:04:08.530494'
|
||||
accounting_line_12:
|
||||
id: 12
|
||||
created_at: '2022-12-09 14:47:11.110627'
|
||||
updated_at: '2022-12-09 14:47:11.110627'
|
||||
|
||||
accounting_line_54:
|
||||
id: 54
|
||||
line_type: item
|
||||
journal_code: '530'
|
||||
date: '2021-01-04 14:51:21.616153'
|
||||
@ -188,12 +199,13 @@ accounting_line_12:
|
||||
credit: 3000
|
||||
currency: EUR
|
||||
summary: 2101041, subscr.
|
||||
created_at: '2022-11-18 15:04:08.538721'
|
||||
updated_at: '2022-11-18 15:04:08.538721'
|
||||
accounting_line_13:
|
||||
id: 13
|
||||
created_at: '2022-12-09 14:47:11.118764'
|
||||
updated_at: '2022-12-09 14:47:11.118764'
|
||||
|
||||
accounting_line_55:
|
||||
id: 55
|
||||
line_type: client
|
||||
journal_code: '530'
|
||||
journal_code: CA01
|
||||
date: '2022-09-20 15:14:22.873707'
|
||||
account_code: '5803'
|
||||
account_label: Client other
|
||||
@ -204,14 +216,15 @@ accounting_line_13:
|
||||
credit: 0
|
||||
currency: EUR
|
||||
summary: 2209002, shop order
|
||||
created_at: '2022-11-18 15:04:08.547966'
|
||||
updated_at: '2022-11-18 15:04:08.547966'
|
||||
accounting_line_14:
|
||||
id: 14
|
||||
created_at: '2022-12-09 14:47:11.126381'
|
||||
updated_at: '2022-12-09 14:47:11.126381'
|
||||
|
||||
accounting_line_56:
|
||||
id: 56
|
||||
line_type: item
|
||||
journal_code: '530'
|
||||
date: '2022-09-20 15:14:22.873707'
|
||||
account_code: '7067'
|
||||
account_code: '7071'
|
||||
account_label: Shop order
|
||||
analytical_code:
|
||||
invoice_id: 5811
|
||||
@ -220,14 +233,15 @@ accounting_line_14:
|
||||
credit: 4000
|
||||
currency: EUR
|
||||
summary: 2209002, shop order
|
||||
created_at: '2022-11-18 15:04:08.556504'
|
||||
updated_at: '2022-11-18 15:04:08.556504'
|
||||
accounting_line_15:
|
||||
id: 15
|
||||
created_at: '2022-12-09 14:47:11.134781'
|
||||
updated_at: '2022-12-09 14:47:11.134781'
|
||||
|
||||
accounting_line_57:
|
||||
id: 57
|
||||
line_type: item
|
||||
journal_code: '530'
|
||||
date: '2022-09-20 15:14:22.873707'
|
||||
account_code: '7067'
|
||||
account_code: '7071'
|
||||
account_label: Shop order
|
||||
analytical_code:
|
||||
invoice_id: 5811
|
||||
@ -236,12 +250,13 @@ accounting_line_15:
|
||||
credit: 500
|
||||
currency: EUR
|
||||
summary: 2209002, shop order
|
||||
created_at: '2022-11-18 15:04:08.563733'
|
||||
updated_at: '2022-11-18 15:04:08.563733'
|
||||
accounting_line_16:
|
||||
id: 16
|
||||
created_at: '2022-12-09 14:47:11.144686'
|
||||
updated_at: '2022-12-09 14:47:11.144686'
|
||||
|
||||
accounting_line_58:
|
||||
id: 58
|
||||
line_type: client
|
||||
journal_code: '530'
|
||||
journal_code: CA01
|
||||
date: '2022-09-20 15:14:48.345927'
|
||||
account_code: '5803'
|
||||
account_label: Client other
|
||||
@ -252,14 +267,15 @@ accounting_line_16:
|
||||
credit: 0
|
||||
currency: EUR
|
||||
summary: 2209004, shop order
|
||||
created_at: '2022-11-18 15:04:08.571992'
|
||||
updated_at: '2022-11-18 15:04:08.571992'
|
||||
accounting_line_17:
|
||||
id: 17
|
||||
created_at: '2022-12-09 14:47:11.151435'
|
||||
updated_at: '2022-12-09 14:47:11.151435'
|
||||
|
||||
accounting_line_59:
|
||||
id: 59
|
||||
line_type: item
|
||||
journal_code: '530'
|
||||
date: '2022-09-20 15:14:48.345927'
|
||||
account_code: '7067'
|
||||
account_code: '7071'
|
||||
account_label: Shop order
|
||||
analytical_code:
|
||||
invoice_id: 5812
|
||||
@ -268,12 +284,13 @@ accounting_line_17:
|
||||
credit: 6000
|
||||
currency: EUR
|
||||
summary: 2209004, shop order
|
||||
created_at: '2022-11-18 15:04:08.580452'
|
||||
updated_at: '2022-11-18 15:04:08.580452'
|
||||
accounting_line_18:
|
||||
id: 18
|
||||
created_at: '2022-12-09 14:47:11.161817'
|
||||
updated_at: '2022-12-09 14:47:11.161817'
|
||||
|
||||
accounting_line_60:
|
||||
id: 60
|
||||
line_type: client
|
||||
journal_code: '530'
|
||||
journal_code: CB01
|
||||
date: '2022-10-04 12:36:03.060832'
|
||||
account_code: '5801'
|
||||
account_label: Client card
|
||||
@ -284,14 +301,15 @@ accounting_line_18:
|
||||
credit: 0
|
||||
currency: EUR
|
||||
summary: 2210002/VL, shop order
|
||||
created_at: '2022-11-18 15:04:08.589664'
|
||||
updated_at: '2022-11-18 15:04:08.589664'
|
||||
accounting_line_19:
|
||||
id: 19
|
||||
created_at: '2022-12-09 14:47:11.186575'
|
||||
updated_at: '2022-12-09 14:47:11.186575'
|
||||
|
||||
accounting_line_61:
|
||||
id: 61
|
||||
line_type: item
|
||||
journal_code: '530'
|
||||
date: '2022-10-04 12:36:03.060832'
|
||||
account_code: '7067'
|
||||
account_code: '7071'
|
||||
account_label: Shop order
|
||||
analytical_code:
|
||||
invoice_id: 5816
|
||||
@ -300,14 +318,15 @@ accounting_line_19:
|
||||
credit: 119
|
||||
currency: EUR
|
||||
summary: 2210002/VL, shop order
|
||||
created_at: '2022-11-18 15:04:08.598371'
|
||||
updated_at: '2022-11-18 15:04:08.598371'
|
||||
accounting_line_20:
|
||||
id: 20
|
||||
created_at: '2022-12-09 14:47:11.203226'
|
||||
updated_at: '2022-12-09 14:47:11.203226'
|
||||
|
||||
accounting_line_62:
|
||||
id: 62
|
||||
line_type: item
|
||||
journal_code: '530'
|
||||
date: '2022-10-04 12:36:03.060832'
|
||||
account_code: '7067'
|
||||
account_code: '7071'
|
||||
account_label: Shop order
|
||||
analytical_code:
|
||||
invoice_id: 5816
|
||||
@ -316,12 +335,13 @@ accounting_line_20:
|
||||
credit: 200
|
||||
currency: EUR
|
||||
summary: 2210002/VL, shop order
|
||||
created_at: '2022-11-18 15:04:08.613961'
|
||||
updated_at: '2022-11-18 15:04:08.613961'
|
||||
accounting_line_21:
|
||||
id: 21
|
||||
created_at: '2022-12-09 14:47:11.219605'
|
||||
updated_at: '2022-12-09 14:47:11.219605'
|
||||
|
||||
accounting_line_63:
|
||||
id: 63
|
||||
line_type: client
|
||||
journal_code: '530'
|
||||
journal_code: CB01
|
||||
date: '2022-10-04 13:54:42.975196'
|
||||
account_code: '5801'
|
||||
account_label: Client card
|
||||
@ -332,14 +352,15 @@ accounting_line_21:
|
||||
credit: 0
|
||||
currency: EUR
|
||||
summary: 2210004/VL, shop order
|
||||
created_at: '2022-11-18 15:04:08.622056'
|
||||
updated_at: '2022-11-18 15:04:08.622056'
|
||||
accounting_line_22:
|
||||
id: 22
|
||||
created_at: '2022-12-09 14:47:11.234721'
|
||||
updated_at: '2022-12-09 14:47:11.234721'
|
||||
|
||||
accounting_line_64:
|
||||
id: 64
|
||||
line_type: item
|
||||
journal_code: '530'
|
||||
date: '2022-10-04 13:54:42.975196'
|
||||
account_code: '7067'
|
||||
account_code: '7071'
|
||||
account_label: Shop order
|
||||
analytical_code:
|
||||
invoice_id: 5817
|
||||
@ -348,14 +369,15 @@ accounting_line_22:
|
||||
credit: 95
|
||||
currency: EUR
|
||||
summary: 2210004/VL, shop order
|
||||
created_at: '2022-11-18 15:04:08.630519'
|
||||
updated_at: '2022-11-18 15:04:08.630519'
|
||||
accounting_line_23:
|
||||
id: 23
|
||||
created_at: '2022-12-09 14:47:11.243121'
|
||||
updated_at: '2022-12-09 14:47:11.243121'
|
||||
|
||||
accounting_line_65:
|
||||
id: 65
|
||||
line_type: item
|
||||
journal_code: '530'
|
||||
date: '2022-10-04 13:54:42.975196'
|
||||
account_code: '7067'
|
||||
account_code: '7071'
|
||||
account_label: Shop order
|
||||
analytical_code:
|
||||
invoice_id: 5817
|
||||
@ -364,12 +386,13 @@ accounting_line_23:
|
||||
credit: 1200
|
||||
currency: EUR
|
||||
summary: 2210004/VL, shop order
|
||||
created_at: '2022-11-18 15:04:08.640333'
|
||||
updated_at: '2022-11-18 15:04:08.640333'
|
||||
accounting_line_24:
|
||||
id: 24
|
||||
created_at: '2022-12-09 14:47:11.253093'
|
||||
updated_at: '2022-12-09 14:47:11.253093'
|
||||
|
||||
accounting_line_66:
|
||||
id: 66
|
||||
line_type: client
|
||||
journal_code: '530'
|
||||
journal_code: CB01
|
||||
date: '2022-10-04 14:04:12.742685'
|
||||
account_code: '5801'
|
||||
account_label: Client card
|
||||
@ -380,14 +403,15 @@ accounting_line_24:
|
||||
credit: 0
|
||||
currency: EUR
|
||||
summary: 2210006/VL, shop order
|
||||
created_at: '2022-11-18 15:04:08.656104'
|
||||
updated_at: '2022-11-18 15:04:08.656104'
|
||||
accounting_line_25:
|
||||
id: 25
|
||||
created_at: '2022-12-09 14:47:11.268142'
|
||||
updated_at: '2022-12-09 14:47:11.268142'
|
||||
|
||||
accounting_line_67:
|
||||
id: 67
|
||||
line_type: item
|
||||
journal_code: '530'
|
||||
date: '2022-10-04 14:04:12.742685'
|
||||
account_code: '7067'
|
||||
account_code: '7071'
|
||||
account_label: Shop order
|
||||
analytical_code:
|
||||
invoice_id: 5818
|
||||
@ -396,12 +420,13 @@ accounting_line_25:
|
||||
credit: 1000
|
||||
currency: EUR
|
||||
summary: 2210006/VL, shop order
|
||||
created_at: '2022-11-18 15:04:08.663862'
|
||||
updated_at: '2022-11-18 15:04:08.663862'
|
||||
accounting_line_26:
|
||||
id: 26
|
||||
created_at: '2022-12-09 14:47:11.278069'
|
||||
updated_at: '2022-12-09 14:47:11.278069'
|
||||
|
||||
accounting_line_68:
|
||||
id: 68
|
||||
line_type: client
|
||||
journal_code: '530'
|
||||
journal_code: CB01
|
||||
date: '2022-10-04 14:17:52.854636'
|
||||
account_code: '5801'
|
||||
account_label: Client card
|
||||
@ -412,14 +437,15 @@ accounting_line_26:
|
||||
credit: 0
|
||||
currency: EUR
|
||||
summary: 2210008/VL, shop order
|
||||
created_at: '2022-11-18 15:04:08.672150'
|
||||
updated_at: '2022-11-18 15:04:08.672150'
|
||||
accounting_line_27:
|
||||
id: 27
|
||||
created_at: '2022-12-09 14:47:11.294694'
|
||||
updated_at: '2022-12-09 14:47:11.294694'
|
||||
|
||||
accounting_line_69:
|
||||
id: 69
|
||||
line_type: item
|
||||
journal_code: '530'
|
||||
date: '2022-10-04 14:17:52.854636'
|
||||
account_code: '7067'
|
||||
account_code: '7071'
|
||||
account_label: Shop order
|
||||
analytical_code:
|
||||
invoice_id: 5819
|
||||
@ -428,14 +454,15 @@ accounting_line_27:
|
||||
credit: 2
|
||||
currency: EUR
|
||||
summary: 2210008/VL, shop order
|
||||
created_at: '2022-11-18 15:04:08.680577'
|
||||
updated_at: '2022-11-18 15:04:08.680577'
|
||||
accounting_line_28:
|
||||
id: 28
|
||||
created_at: '2022-12-09 14:47:11.311492'
|
||||
updated_at: '2022-12-09 14:47:11.311492'
|
||||
|
||||
accounting_line_70:
|
||||
id: 70
|
||||
line_type: item
|
||||
journal_code: '530'
|
||||
date: '2022-10-04 14:17:52.854636'
|
||||
account_code: '7067'
|
||||
account_code: '7071'
|
||||
account_label: Shop order
|
||||
analytical_code:
|
||||
invoice_id: 5819
|
||||
@ -444,12 +471,13 @@ accounting_line_28:
|
||||
credit: 4000
|
||||
currency: EUR
|
||||
summary: 2210008/VL, shop order
|
||||
created_at: '2022-11-18 15:04:08.688864'
|
||||
updated_at: '2022-11-18 15:04:08.688864'
|
||||
accounting_line_29:
|
||||
id: 29
|
||||
created_at: '2022-12-09 14:47:11.318065'
|
||||
updated_at: '2022-12-09 14:47:11.318065'
|
||||
|
||||
accounting_line_71:
|
||||
id: 71
|
||||
line_type: client
|
||||
journal_code: '530'
|
||||
journal_code: CA01
|
||||
date: '2022-10-04 14:25:37.291945'
|
||||
account_code: '5803'
|
||||
account_label: Client other
|
||||
@ -460,14 +488,15 @@ accounting_line_29:
|
||||
credit: 0
|
||||
currency: EUR
|
||||
summary: 2210010, shop order
|
||||
created_at: '2022-11-18 15:04:08.697635'
|
||||
updated_at: '2022-11-18 15:04:08.697635'
|
||||
accounting_line_30:
|
||||
id: 30
|
||||
created_at: '2022-12-09 14:47:11.326477'
|
||||
updated_at: '2022-12-09 14:47:11.326477'
|
||||
|
||||
accounting_line_72:
|
||||
id: 72
|
||||
line_type: item
|
||||
journal_code: '530'
|
||||
date: '2022-10-04 14:25:37.291945'
|
||||
account_code: '7067'
|
||||
account_code: '7071'
|
||||
account_label: Shop order
|
||||
analytical_code:
|
||||
invoice_id: 5820
|
||||
@ -476,12 +505,13 @@ accounting_line_30:
|
||||
credit: 12000
|
||||
currency: EUR
|
||||
summary: 2210010, shop order
|
||||
created_at: '2022-11-18 15:04:08.705822'
|
||||
updated_at: '2022-11-18 15:04:08.705822'
|
||||
accounting_line_31:
|
||||
id: 31
|
||||
created_at: '2022-12-09 14:47:11.336473'
|
||||
updated_at: '2022-12-09 14:47:11.336473'
|
||||
|
||||
accounting_line_73:
|
||||
id: 73
|
||||
line_type: client
|
||||
journal_code: '530'
|
||||
journal_code: CA01
|
||||
date: '2022-10-04 14:32:28.204985'
|
||||
account_code: '5803'
|
||||
account_label: Client other
|
||||
@ -492,14 +522,15 @@ accounting_line_31:
|
||||
credit: 0
|
||||
currency: EUR
|
||||
summary: 2210012, shop order
|
||||
created_at: '2022-11-18 15:04:08.713849'
|
||||
updated_at: '2022-11-18 15:04:08.713849'
|
||||
accounting_line_32:
|
||||
id: 32
|
||||
created_at: '2022-12-09 14:47:11.353361'
|
||||
updated_at: '2022-12-09 14:47:11.353361'
|
||||
|
||||
accounting_line_74:
|
||||
id: 74
|
||||
line_type: item
|
||||
journal_code: '530'
|
||||
date: '2022-10-04 14:32:28.204985'
|
||||
account_code: '7067'
|
||||
account_code: '7071'
|
||||
account_label: Shop order
|
||||
analytical_code:
|
||||
invoice_id: 5821
|
||||
@ -508,12 +539,13 @@ accounting_line_32:
|
||||
credit: 12000
|
||||
currency: EUR
|
||||
summary: 2210012, shop order
|
||||
created_at: '2022-11-18 15:04:08.722579'
|
||||
updated_at: '2022-11-18 15:04:08.722579'
|
||||
accounting_line_33:
|
||||
id: 33
|
||||
created_at: '2022-12-09 14:47:11.368203'
|
||||
updated_at: '2022-12-09 14:47:11.368203'
|
||||
|
||||
accounting_line_75:
|
||||
id: 75
|
||||
line_type: client
|
||||
journal_code: '530'
|
||||
journal_code: CA01
|
||||
date: '2022-10-04 14:35:40.584472'
|
||||
account_code: '5803'
|
||||
account_label: Client other
|
||||
@ -524,14 +556,15 @@ accounting_line_33:
|
||||
credit: 0
|
||||
currency: EUR
|
||||
summary: 2210014, shop order
|
||||
created_at: '2022-11-18 15:04:08.731248'
|
||||
updated_at: '2022-11-18 15:04:08.731248'
|
||||
accounting_line_34:
|
||||
id: 34
|
||||
created_at: '2022-12-09 14:47:11.378107'
|
||||
updated_at: '2022-12-09 14:47:11.378107'
|
||||
|
||||
accounting_line_76:
|
||||
id: 76
|
||||
line_type: item
|
||||
journal_code: '530'
|
||||
date: '2022-10-04 14:35:40.584472'
|
||||
account_code: '7067'
|
||||
account_code: '7071'
|
||||
account_label: Shop order
|
||||
analytical_code:
|
||||
invoice_id: 5822
|
||||
@ -540,5 +573,5 @@ accounting_line_34:
|
||||
credit: 3000
|
||||
currency: EUR
|
||||
summary: 2210014, shop order
|
||||
created_at: '2022-11-18 15:04:08.739474'
|
||||
updated_at: '2022-11-18 15:04:08.739474'
|
||||
created_at: '2022-12-09 14:47:11.394849'
|
||||
updated_at: '2022-12-09 14:47:11.394849'
|
||||
|
51
test/fixtures/history_values.yml
vendored
51
test/fixtures/history_values.yml
vendored
@ -440,7 +440,7 @@ history_value_45:
|
||||
history_value_46:
|
||||
id: 46
|
||||
setting_id: 46
|
||||
value: '4091'
|
||||
value: '419100'
|
||||
created_at: '2019-09-20 11:02:32.125400'
|
||||
updated_at: '2021-05-31 15:00:36.672119'
|
||||
footprint: 160a865d5709e9b365b1e18fa930e9069cab3b4e3c23e7d79cd0fdeee758539b
|
||||
@ -458,7 +458,7 @@ history_value_47:
|
||||
history_value_48:
|
||||
id: 48
|
||||
setting_id: 48
|
||||
value: '445'
|
||||
value: '4457'
|
||||
created_at: '2019-09-20 11:02:32.125400'
|
||||
updated_at: '2021-05-31 15:00:36.710257'
|
||||
footprint: f585a1b670e6cb1632398360513793ce1f459f49884f971ca7f36594bb67fa70
|
||||
@ -855,8 +855,53 @@ history_value_89:
|
||||
history_value_90:
|
||||
id: 90
|
||||
setting_id: 89
|
||||
value: '7067'
|
||||
value: '7071'
|
||||
created_at: '2022-10-26 12:46:16.125400000 Z'
|
||||
updated_at: '2022-10-26 12:46:16.125400000 Z'
|
||||
footprint:
|
||||
invoicing_profile_id: 1
|
||||
|
||||
history_value_91:
|
||||
id: 91
|
||||
setting_id: 90
|
||||
value: 'CB01'
|
||||
created_at: 2022-12-09 14:00:14.512000000 Z
|
||||
updated_at: 2022-12-09 14:00:14.512000000 Z
|
||||
footprint:
|
||||
invoicing_profile_id: 1
|
||||
|
||||
history_value_92:
|
||||
id: 92
|
||||
setting_id: 91
|
||||
value: 'W001'
|
||||
created_at: 2022-12-09 14:00:14.512000000 Z
|
||||
updated_at: 2022-12-09 14:00:14.512000000 Z
|
||||
footprint:
|
||||
invoicing_profile_id: 1
|
||||
|
||||
history_value_93:
|
||||
id: 93
|
||||
setting_id: 92
|
||||
value: 'CA01'
|
||||
created_at: 2022-12-09 14:00:14.512000000 Z
|
||||
updated_at: 2022-12-09 14:00:14.512000000 Z
|
||||
footprint:
|
||||
invoicing_profile_id: 1
|
||||
|
||||
history_value_94:
|
||||
id: 94
|
||||
setting_id: 93
|
||||
value: 'W002'
|
||||
created_at: 2022-12-09 14:00:14.512000000 Z
|
||||
updated_at: 2022-12-09 14:00:14.512000000 Z
|
||||
footprint:
|
||||
invoicing_profile_id: 1
|
||||
|
||||
history_value_95:
|
||||
id: 95
|
||||
setting_id: 94
|
||||
value: 'TVA1'
|
||||
created_at: 2022-12-09 14:00:14.512000000 Z
|
||||
updated_at: 2022-12-09 14:00:14.512000000 Z
|
||||
footprint:
|
||||
invoicing_profile_id: 1
|
||||
|
32
test/fixtures/settings.yml
vendored
32
test/fixtures/settings.yml
vendored
@ -223,7 +223,7 @@ setting_38:
|
||||
|
||||
setting_39:
|
||||
id: 39
|
||||
name: accounting_journal_code
|
||||
name: accounting_sales_journal_code
|
||||
created_at: 2019-09-20 11:02:32.125400000 Z
|
||||
updated_at: 2019-09-20 11:02:32.125400000 Z
|
||||
|
||||
@ -526,3 +526,33 @@ setting_89:
|
||||
name: accounting_Product_code
|
||||
created_at: 2022-10-26 12:46:16.125400000 Z
|
||||
updated_at: 2022-10-26 12:46:16.125400000 Z
|
||||
|
||||
setting_90:
|
||||
id: 90
|
||||
name: accounting_card_client_journal_code
|
||||
created_at: 2022-12-09 14:00:14.512000000 Z
|
||||
updated_at: 2022-12-09 14:00:14.512000000 Z
|
||||
|
||||
setting_91:
|
||||
id: 91
|
||||
name: accounting_wallet_client_journal_code
|
||||
created_at: 2022-12-09 14:00:14.512000000 Z
|
||||
updated_at: 2022-12-09 14:00:14.512000000 Z
|
||||
|
||||
setting_92:
|
||||
id: 92
|
||||
name: accounting_other_client_journal_code
|
||||
created_at: 2022-12-09 14:00:14.512000000 Z
|
||||
updated_at: 2022-12-09 14:00:14.512000000 Z
|
||||
|
||||
setting_93:
|
||||
id: 93
|
||||
name: accounting_wallet_journal_code
|
||||
created_at: 2022-12-09 14:00:14.512000000 Z
|
||||
updated_at: 2022-12-09 14:00:14.512000000 Z
|
||||
|
||||
setting_94:
|
||||
id: 94
|
||||
name: accounting_VAT_journal_code
|
||||
created_at: 2022-12-09 14:00:14.512000000 Z
|
||||
updated_at: 2022-12-09 14:00:14.512000000 Z
|
||||
|
@ -536,10 +536,10 @@ export const settings: Array<Setting> = [
|
||||
localized: 'Code TVA'
|
||||
},
|
||||
{
|
||||
name: 'accounting_journal_code',
|
||||
name: 'accounting_sales_journal_code',
|
||||
value: '22A',
|
||||
last_update: '2022-11-22T17:27:19+0100',
|
||||
localized: 'Code journal'
|
||||
localized: 'Code journal des ventes'
|
||||
},
|
||||
{
|
||||
name: 'accounting_card_client_code',
|
||||
@ -579,105 +579,105 @@ export const settings: Array<Setting> = [
|
||||
},
|
||||
{
|
||||
name: 'accounting_wallet_code',
|
||||
value: '',
|
||||
value: '419100',
|
||||
last_update: '2022-11-22T17:27:19+0100',
|
||||
localized: 'Code porte-monnaie'
|
||||
},
|
||||
{
|
||||
name: 'accounting_wallet_label',
|
||||
value: '',
|
||||
value: 'Wallet credit',
|
||||
last_update: '2022-11-22T17:27:19+0100',
|
||||
localized: 'Libellé porte-monnaie'
|
||||
},
|
||||
{
|
||||
name: 'accounting_VAT_label',
|
||||
value: '',
|
||||
value: 'VAT',
|
||||
last_update: '2022-11-22T17:27:19+0100',
|
||||
localized: 'Libellé TVA'
|
||||
},
|
||||
{
|
||||
name: 'accounting_subscription_code',
|
||||
value: '',
|
||||
value: '7061',
|
||||
last_update: '2022-11-22T17:27:19+0100',
|
||||
localized: 'Code abonnements'
|
||||
},
|
||||
{
|
||||
name: 'accounting_subscription_label',
|
||||
value: '',
|
||||
value: 'Subscriptions',
|
||||
last_update: '2022-11-22T17:27:19+0100',
|
||||
localized: 'Libellé abonnements'
|
||||
},
|
||||
{
|
||||
name: 'accounting_Machine_code',
|
||||
value: '',
|
||||
value: '7065',
|
||||
last_update: '2022-11-22T17:27:19+0100',
|
||||
localized: 'Code machines'
|
||||
},
|
||||
{
|
||||
name: 'accounting_Machine_label',
|
||||
value: '',
|
||||
value: 'Machine reservation',
|
||||
last_update: '2022-11-22T17:27:19+0100',
|
||||
localized: 'Libellé machines'
|
||||
},
|
||||
{
|
||||
name: 'accounting_Training_code',
|
||||
value: '',
|
||||
value: '7062',
|
||||
last_update: '2022-11-22T17:27:19+0100',
|
||||
localized: 'Code formations'
|
||||
},
|
||||
{
|
||||
name: 'accounting_Training_label',
|
||||
value: '',
|
||||
value: 'Training reservation',
|
||||
last_update: '2022-11-22T17:27:19+0100',
|
||||
localized: 'Libellé formations'
|
||||
},
|
||||
{
|
||||
name: 'accounting_Event_code',
|
||||
value: '',
|
||||
value: '7063',
|
||||
last_update: '2022-11-22T17:27:19+0100',
|
||||
localized: 'Code évènements'
|
||||
},
|
||||
{
|
||||
name: 'accounting_Event_label',
|
||||
value: '',
|
||||
value: 'Event reservation',
|
||||
last_update: '2022-11-22T17:27:19+0100',
|
||||
localized: 'Libellé évènements'
|
||||
},
|
||||
{
|
||||
name: 'accounting_Space_code',
|
||||
value: '',
|
||||
value: '7064',
|
||||
last_update: '2022-11-22T17:27:19+0100',
|
||||
localized: 'Code espaces'
|
||||
},
|
||||
{
|
||||
name: 'accounting_Space_label',
|
||||
value: '',
|
||||
value: 'Space reservation',
|
||||
last_update: '2022-11-22T17:27:19+0100',
|
||||
localized: 'Libellé espaces'
|
||||
},
|
||||
{
|
||||
name: 'accounting_Pack_code',
|
||||
value: '',
|
||||
value: '7066',
|
||||
last_update: '2022-11-22T17:27:19+0100',
|
||||
localized: 'translation missing: fr.settings.accounting_Pack_code'
|
||||
localized: "Code packs d'heures prépayées"
|
||||
},
|
||||
{
|
||||
name: 'accounting_Pack_label',
|
||||
value: '',
|
||||
value: 'Prepaid pack',
|
||||
last_update: '2022-11-22T17:27:20+0100',
|
||||
localized: 'translation missing: fr.settings.accounting_Pack_label'
|
||||
localized: "Libellé packs d'heures prépayées"
|
||||
},
|
||||
{
|
||||
name: 'accounting_Product_code',
|
||||
value: '',
|
||||
value: '7071',
|
||||
last_update: '2022-11-22T17:27:20+0100',
|
||||
localized: 'translation missing: fr.settings.accounting_Product_code'
|
||||
localized: 'Code des produits de la boutique'
|
||||
},
|
||||
{
|
||||
name: 'accounting_Product_label',
|
||||
value: '',
|
||||
value: 'Shop order',
|
||||
last_update: '2022-11-22T17:27:20+0100',
|
||||
localized: 'translation missing: fr.settings.accounting_Product_label'
|
||||
localized: 'Libellé des produits de la boutique'
|
||||
},
|
||||
{
|
||||
name: 'accounting_Error_code',
|
||||
@ -690,5 +690,35 @@ export const settings: Array<Setting> = [
|
||||
value: '',
|
||||
last_update: '2022-11-22T17:27:20+0100',
|
||||
localized: 'Libellé erreurs'
|
||||
},
|
||||
{
|
||||
name: 'accounting_card_client_journal_code',
|
||||
value: 'CB01',
|
||||
last_update: '2022-11-22T17:27:20+0100',
|
||||
localized: 'Libellé erreurs'
|
||||
},
|
||||
{
|
||||
name: 'accounting_wallet_client_journal_code',
|
||||
value: 'W001',
|
||||
last_update: '2022-11-22T17:27:20+0100',
|
||||
localized: 'Libellé erreurs'
|
||||
},
|
||||
{
|
||||
name: 'accounting_other_client_journal_code',
|
||||
value: 'CA01',
|
||||
last_update: '2022-11-22T17:27:20+0100',
|
||||
localized: 'Libellé erreurs'
|
||||
},
|
||||
{
|
||||
name: 'accounting_wallet_journal_code',
|
||||
value: 'W002',
|
||||
last_update: '2022-11-22T17:27:20+0100',
|
||||
localized: 'Libellé erreurs'
|
||||
},
|
||||
{
|
||||
name: 'accounting_VAT_journal_code',
|
||||
value: 'TVA1',
|
||||
last_update: '2022-11-22T17:27:20+0100',
|
||||
localized: 'Libellé erreurs'
|
||||
}
|
||||
];
|
||||
|
@ -80,7 +80,6 @@ class Exports::AccountingExportTest < ActionDispatch::IntegrationTest
|
||||
end
|
||||
|
||||
def check_client_line(invoice, client_line)
|
||||
check_journal_code(client_line)
|
||||
check_entry_date(invoice, client_line)
|
||||
check_client_accounts(invoice, client_line)
|
||||
check_entry_label(invoice, client_line)
|
||||
@ -99,7 +98,7 @@ class Exports::AccountingExportTest < ActionDispatch::IntegrationTest
|
||||
end
|
||||
|
||||
def check_item_line(invoice, invoice_item, item_line)
|
||||
check_journal_code(item_line)
|
||||
check_sales_journal_code(item_line)
|
||||
check_entry_date(invoice, item_line)
|
||||
|
||||
check_subscription_accounts(invoice, item_line)
|
||||
@ -115,8 +114,8 @@ class Exports::AccountingExportTest < ActionDispatch::IntegrationTest
|
||||
assert_equal 0, item_line[I18n.t('accounting_export.debit_euro')].to_f, 'Debit euro amount does not match'
|
||||
end
|
||||
|
||||
def check_journal_code(line)
|
||||
journal_code = Setting.get('accounting_journal_code')
|
||||
def check_sales_journal_code(line)
|
||||
journal_code = Setting.get('accounting_sales_journal_code')
|
||||
assert_equal journal_code, line[I18n.t('accounting_export.journal_code')], 'Wrong journal code'
|
||||
end
|
||||
|
||||
@ -132,6 +131,9 @@ class Exports::AccountingExportTest < ActionDispatch::IntegrationTest
|
||||
|
||||
wallet_client_label = Setting.get('accounting_wallet_client_label')
|
||||
assert_equal wallet_client_label, client_line[I18n.t('accounting_export.account_label')], 'Account label for wallet client is wrong'
|
||||
|
||||
wallet_client_journal = Setting.get('accounting_wallet_client_journal_code')
|
||||
assert_equal wallet_client_journal, client_line[I18n.t('accounting_export.journal_code')], 'Journal code for wallet client is wrong'
|
||||
end
|
||||
mean = invoice.paid_by_card? ? 'card' : 'other'
|
||||
|
||||
@ -140,6 +142,9 @@ class Exports::AccountingExportTest < ActionDispatch::IntegrationTest
|
||||
|
||||
client_label = Setting.get("accounting_#{mean}_client_label")
|
||||
assert_equal client_label, client_line[I18n.t('accounting_export.account_label')], 'Account label for client is wrong'
|
||||
|
||||
client_journal = Setting.get("accounting_#{mean}_client_journal_code")
|
||||
assert_equal client_journal, client_line[I18n.t('accounting_export.journal_code')], 'Journal code for client is wrong'
|
||||
end
|
||||
|
||||
def check_subscription_accounts(invoice, item_line)
|
||||
|
@ -60,20 +60,24 @@ class AccountingServiceTest < ActionDispatch::IntegrationTest
|
||||
client_wallet = lines.find { |l| l.account_code == Setting.get('accounting_wallet_client_code') }
|
||||
assert_not_nil client_wallet
|
||||
assert_equal 1000, client_wallet&.debit
|
||||
assert_equal Setting.get('accounting_wallet_client_journal_code'), client_wallet&.journal_code
|
||||
# Check the local payment line
|
||||
client_other = lines.find { |l| l.account_code == Setting.get('accounting_other_client_code') }
|
||||
assert_not_nil client_other
|
||||
assert_equal invoice.total - 1000, client_other&.debit
|
||||
assert_equal Setting.get('accounting_other_client_journal_code'), client_other&.journal_code
|
||||
|
||||
# Check the machine reservation line
|
||||
assert 2, lines.filter { |l| l.line_type == 'item' }.count
|
||||
item_machine = lines.find { |l| l.account_code == Setting.get('accounting_Machine_code') }
|
||||
assert_not_nil item_machine
|
||||
assert_equal invoice.main_item.net_amount, item_machine&.credit
|
||||
assert_equal Setting.get('accounting_sales_journal_code'), item_machine&.journal_code
|
||||
# Check the subscription line
|
||||
item_suscription = lines.find { |l| l.account_code == Setting.get('accounting_subscription_code') }
|
||||
assert_not_nil item_suscription
|
||||
assert_equal invoice.other_items.last.net_amount, item_suscription&.credit
|
||||
assert_equal Setting.get('accounting_sales_journal_code'), item_suscription&.journal_code
|
||||
|
||||
# Check the VAT line
|
||||
vat_service = VatHistoryService.new
|
||||
@ -82,5 +86,6 @@ class AccountingServiceTest < ActionDispatch::IntegrationTest
|
||||
vat_line = lines.find { |l| l.account_code == Setting.get('accounting_VAT_code') }
|
||||
assert_not_nil vat_line
|
||||
assert_equal vat_rate_groups.values.pluck(:total_vat).sum, vat_line&.credit
|
||||
assert_equal Setting.get('accounting_VAT_journal_code'), vat_line&.journal_code
|
||||
end
|
||||
end
|
||||
|
Loading…
Reference in New Issue
Block a user