diff --git a/app/controllers/open_api/v1/accounting_controller.rb b/app/controllers/open_api/v1/accounting_controller.rb index a8b144016..b1dfdf02e 100644 --- a/app/controllers/open_api/v1/accounting_controller.rb +++ b/app/controllers/open_api/v1/accounting_controller.rb @@ -8,9 +8,9 @@ class OpenAPI::V1::AccountingController < OpenAPI::V1::BaseController def index @codes = { - card: Setting.get('accounting_card_client_code'), - wallet: Setting.get('accounting_wallet_client_code'), - other: Setting.get('accounting_other_client_code') + card: Setting.get('accounting_payment_card_code'), + wallet: Setting.get('accounting_payment_wallet_code'), + other: Setting.get('accounting_payment_other_code') } @lines = AccountingLine.order(date: :desc) diff --git a/app/doc/open_api/v1/accounting_doc.rb b/app/doc/open_api/v1/accounting_doc.rb index a022ba21c..dbe3da885 100644 --- a/app/doc/open_api/v1/accounting_doc.rb +++ b/app/doc/open_api/v1/accounting_doc.rb @@ -17,7 +17,7 @@ class OpenAPI::V1::AccountingDoc < OpenAPI::V1::BaseDoc 'Ordered by *date* descendant.
' \ 'The field *status* indicates if the accounting data is being built or if the build is over. ' \ 'Possible status are: building or built.
' \ - 'The field *invoice.payment_details* is available if line_type=client. It will contain the following data:
' \ + 'The field *invoice.payment_details* is available if line_type=payment. It will contain the following data:
' \ '· *payment_mean*, possible status are: card, wallet or other. *WARNING*: If an invoice was settled ' \ 'using multiple payment means, this will only report the payment mean applicable to current line.
' \ '· *gateway_object_id*, if payment_mean=card, report the ID of the payment gateway related object
' \ @@ -35,7 +35,7 @@ class OpenAPI::V1::AccountingDoc < OpenAPI::V1::BaseDoc "lines": [ { "id": 1, - "line_type": "client", + "line_type": "payment", "journal_code": "VT01", "date": "2022-01-02T18:14:21+01:00", "account_code": "5802", diff --git a/app/frontend/src/javascript/components/accounting/accounting-codes-settings.tsx b/app/frontend/src/javascript/components/accounting/accounting-codes-settings.tsx index eb7a4ad77..d6fc9bde4 100644 --- a/app/frontend/src/javascript/components/accounting/accounting-codes-settings.tsx +++ b/app/frontend/src/javascript/components/accounting/accounting-codes-settings.tsx @@ -56,24 +56,24 @@ export const AccountingCodesSettings: React.FC = ( tooltip={t('app.admin.accounting_codes_settings.enable_advanced_help')} /> -

{t('app.admin.accounting_codes_settings.payment_means')}

+

{t('app.admin.accounting_codes_settings.financial')}

{t('app.admin.accounting_codes_settings.card')}
- - - + + +
{t('app.admin.accounting_codes_settings.wallet_debit')}
- - - + + +
{t('app.admin.accounting_codes_settings.other')}
- - - + + +

{t('app.admin.accounting_codes_settings.sales')}

{t('app.admin.accounting_codes_settings.sales_journal')}
diff --git a/app/frontend/src/javascript/models/setting.ts b/app/frontend/src/javascript/models/setting.ts index 419d69298..770cefa28 100644 --- a/app/frontend/src/javascript/models/setting.ts +++ b/app/frontend/src/javascript/models/setting.ts @@ -97,15 +97,15 @@ export const titleSettings = [ export const accountingSettings = [ '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_payment_card_code', + 'accounting_payment_card_label', + 'accounting_payment_card_journal_code', + 'accounting_payment_wallet_code', + 'accounting_payment_wallet_label', + 'accounting_payment_wallet_journal_code', + 'accounting_payment_other_code', + 'accounting_payment_other_label', + 'accounting_payment_other_journal_code', 'accounting_wallet_code', 'accounting_wallet_label', 'accounting_wallet_journal_code', diff --git a/app/models/setting.rb b/app/models/setting.rb index b69441f9a..9580bf577 100644 --- a/app/models/setting.rb +++ b/app/models/setting.rb @@ -57,15 +57,15 @@ class Setting < ApplicationRecord display_name_enable machines_sort_by 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_payment_card_code + accounting_payment_card_label + accounting_payment_card_journal_code + accounting_payment_wallet_code + accounting_payment_wallet_label + accounting_payment_wallet_journal_code + accounting_payment_other_code + accounting_payment_other_label + accounting_payment_other_journal_code accounting_wallet_code accounting_wallet_label accounting_wallet_journal_code diff --git a/app/services/accounting/accounting_code_service.rb b/app/services/accounting/accounting_code_service.rb index 1a4876b03..7cd6d75c3 100644 --- a/app/services/accounting/accounting_code_service.rb +++ b/app/services/accounting/accounting_code_service.rb @@ -6,10 +6,10 @@ module Accounting; end # fetch the code matching the given resource class Accounting::AccountingCodeService class << self - def client_account(payment_mean, type: :code) + def payment_account(payment_mean, type: :code) raise ArgumentError('invalid type') unless %i[code label].include?(type) - Setting.get("accounting_#{payment_mean}_client_#{type}") + Setting.get("accounting_payment_#{payment_mean}_#{type}") end def vat_account(type: :code) diff --git a/app/services/accounting/accounting_journal_service.rb b/app/services/accounting/accounting_journal_service.rb index 151e11dd9..454d01836 100644 --- a/app/services/accounting/accounting_journal_service.rb +++ b/app/services/accounting/accounting_journal_service.rb @@ -10,16 +10,16 @@ class Accounting::AccountingJournalService 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') || '' + payment: { + card: Setting.get('accounting_payment_card_journal_code') || '', + wallet: Setting.get('accounting_payment_wallet_journal_code') || '', + other: Setting.get('accounting_payment_other_journal_code') || '' } } end - def client_journal(payment_mean) - @journal_codes[:client][payment_mean] + def payment_journal(payment_mean) + @journal_codes[:payment][payment_mean] end def vat_journal diff --git a/app/services/accounting/accounting_service.rb b/app/services/accounting/accounting_service.rb index e33b52422..da2cd01b6 100644 --- a/app/services/accounting/accounting_service.rb +++ b/app/services/accounting/accounting_service.rb @@ -37,7 +37,7 @@ class Accounting::AccountingService private def generate_lines(invoice) - lines = client_lines(invoice) + items_lines(invoice) + lines = payment_lines(invoice) + items_lines(invoice) vat = vat_line(invoice) lines << vat unless vat.nil? @@ -67,17 +67,17 @@ class Accounting::AccountingService lines end - # Generate the "client" lines, which contains the debit to the client account, all taxes included - def client_lines(invoice) + # Generate the "payment" lines, which contains the debit to the client account, all taxes included + def payment_lines(invoice) lines = [] invoice.payment_means.each do |details| lines << line( invoice, - 'client', - @journal_service.client_journal(details[:means]), - Accounting::AccountingCodeService.client_account(details[:means]), + 'payment', + @journal_service.payment_journal(details[:means]), + Accounting::AccountingCodeService.payment_account(details[:means]), details[:amount], - account_label: Accounting::AccountingCodeService.client_account(details[:means], type: :label), + account_label: Accounting::AccountingCodeService.payment_account(details[:means], type: :label), debit_method: :debit_client, credit_method: :credit_client ) @@ -158,13 +158,13 @@ class Accounting::AccountingService # In case of rounding errors, fix the balance by adding or removing a cent to the last item line # This case should only happen when a coupon has been used. def fix_rounding_errors(lines) - debit_sum = lines.filter { |l| l[:line_type] == 'client' }.pluck(:debit).sum - credit_sum = lines.filter { |l| l[:line_type] != 'client' }.pluck(:credit).sum + debit_sum = lines.filter { |l| l[:line_type] == 'payment' }.pluck(:debit).sum + credit_sum = lines.filter { |l| l[:line_type] != 'payment' }.pluck(:credit).sum return if debit_sum == credit_sum diff = debit_sum - credit_sum - fixable_line = lines.filter { |l| l[:line_type] == 'item' }.last + fixable_line = lines.filter { |l| l[:line_type] == 'payment' }.last fixable_line.credit += diff end end diff --git a/app/views/open_api/v1/accounting/index.json.jbuilder b/app/views/open_api/v1/accounting/index.json.jbuilder index b0061e1eb..11bd3fc1c 100644 --- a/app/views/open_api/v1/accounting/index.json.jbuilder +++ b/app/views/open_api/v1/accounting/index.json.jbuilder @@ -7,7 +7,7 @@ json.lines @lines do |line| json.extract! line.invoice, :reference, :id json.label Invoices::LabelService.build(line.invoice) json.url download_open_api_v1_invoice_path(line.invoice) - if @codes.values.include?(line.account_code) # if this is a 'client' line + if @codes.values.include?(line.account_code) # if this is a 'payment' line mean = @codes.select { |_key, value| value == line.account_code } json.payment_details line.invoice.payment_details(mean.keys[0]) end diff --git a/config/locales/app.admin.en.yml b/config/locales/app.admin.en.yml index d40e9262c..ee7dfb9ce 100644 --- a/config/locales/app.admin.en.yml +++ b/config/locales/app.admin.en.yml @@ -146,10 +146,10 @@ en: label: "Account label" journal_code: "Journal code" sales_journal: "Sales journal" - payment_means: "Payment means" - card: "Card clients" - wallet_debit: "Virtual wallet clients" - other: "Other payment mean clients" + financial: "Financial" + card: "Card payments" + wallet_debit: "Virtual wallet payments" + other: "Other payment means" wallet_credit: "Virtual wallet credit" VAT: "VAT" sales: "Sales" diff --git a/db/migrate/20221208123822_rename_accounting_settings.rb b/db/migrate/20221208123822_rename_accounting_settings.rb new file mode 100644 index 000000000..2109f472a --- /dev/null +++ b/db/migrate/20221208123822_rename_accounting_settings.rb @@ -0,0 +1,25 @@ +# frozen_string_literal: true + +# From this migration some settings related to accounting will be renamed. +# Eg. "accounting_journal_code" will be renamed to "accounting_sales_journal_code" +class RenameAccountingSettings < ActiveRecord::Migration[5.2] + def up + Setting.find_by(name: 'accounting_journal_code')&.update(name: 'accounting_sales_journal_code') + Setting.find_by(name: 'accounting_card_client_code')&.update(name: 'accounting_payment_card_code') + Setting.find_by(name: 'accounting_card_client_label')&.update(name: 'accounting_payment_card_label') + Setting.find_by(name: 'accounting_wallet_client_code')&.update(name: 'accounting_payment_wallet_code') + Setting.find_by(name: 'accounting_wallet_client_label')&.update(name: 'accounting_payment_wallet_label') + Setting.find_by(name: 'accounting_other_client_code')&.update(name: 'accounting_payment_other_code') + Setting.find_by(name: 'accounting_other_client_label')&.update(name: 'accounting_payment_other_label') + end + + def down + Setting.find_by(name: 'accounting_sales_journal_code')&.update(name: 'accounting_journal_code') + Setting.find_by(name: 'accounting_payment_card_client_code')&.update(name: 'accounting_card_client_code') + Setting.find_by(name: 'accounting_payment_card_client_label')&.update(name: 'accounting_card_client_label') + Setting.find_by(name: 'accounting_payment_wallet_code')&.update(name: 'accounting_wallet_client_code') + Setting.find_by(name: 'accounting_payment_wallet_label')&.update(name: 'accounting_wallet_client_label') + Setting.find_by(name: 'accounting_payment_other_code')&.update(name: 'accounting_other_client_code') + Setting.find_by(name: 'accounting_payment_other_label')&.update(name: 'accounting_other_client_label') + end +end diff --git a/db/migrate/20221208123822_rename_journal_code_setting.rb b/db/migrate/20221208123822_rename_journal_code_setting.rb deleted file mode 100644 index f44f3056d..000000000 --- a/db/migrate/20221208123822_rename_journal_code_setting.rb +++ /dev/null @@ -1,12 +0,0 @@ -# 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 diff --git a/db/schema.rb b/db/schema.rb index f051bb0a0..e26667f13 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -19,8 +19,8 @@ ActiveRecord::Schema.define(version: 2022_12_08_123822) do enable_extension "unaccent" create_table "abuses", id: :serial, force: :cascade do |t| - t.integer "signaled_id" t.string "signaled_type" + t.integer "signaled_id" t.string "first_name" t.string "last_name" t.string "email" @@ -68,8 +68,8 @@ ActiveRecord::Schema.define(version: 2022_12_08_123822) do t.string "locality" t.string "country" t.string "postal_code" - t.integer "placeable_id" t.string "placeable_type" + t.integer "placeable_id" t.datetime "created_at" t.datetime "updated_at" end @@ -93,8 +93,8 @@ ActiveRecord::Schema.define(version: 2022_12_08_123822) do end create_table "assets", id: :serial, force: :cascade do |t| - t.integer "viewable_id" t.string "viewable_type" + t.integer "viewable_id" t.string "attachment" t.string "type" t.datetime "created_at" @@ -176,8 +176,8 @@ ActiveRecord::Schema.define(version: 2022_12_08_123822) do end create_table "credits", id: :serial, force: :cascade do |t| - t.integer "creditable_id" t.string "creditable_type" + t.integer "creditable_id" t.integer "plan_id" t.integer "hours" t.datetime "created_at" @@ -408,15 +408,15 @@ ActiveRecord::Schema.define(version: 2022_12_08_123822) do create_table "notifications", id: :serial, force: :cascade do |t| t.integer "receiver_id" - t.integer "attached_object_id" t.string "attached_object_type" + t.integer "attached_object_id" t.integer "notification_type_id" t.boolean "is_read", default: false t.datetime "created_at" t.datetime "updated_at" t.string "receiver_type" t.boolean "is_send", default: false - t.jsonb "meta_data", default: {} + t.jsonb "meta_data", default: "{}" t.index ["notification_type_id"], name: "index_notifications_on_notification_type_id" t.index ["receiver_id"], name: "index_notifications_on_receiver_id" end @@ -656,8 +656,8 @@ ActiveRecord::Schema.define(version: 2022_12_08_123822) do create_table "prices", id: :serial, force: :cascade do |t| t.integer "group_id" t.integer "plan_id" - t.integer "priceable_id" t.string "priceable_type" + t.integer "priceable_id" t.integer "amount" t.datetime "created_at", null: false t.datetime "updated_at", null: false @@ -857,8 +857,8 @@ ActiveRecord::Schema.define(version: 2022_12_08_123822) do t.text "message" t.datetime "created_at" t.datetime "updated_at" - t.integer "reservable_id" t.string "reservable_type" + t.integer "reservable_id" t.integer "nb_reserve_places" t.integer "statistic_profile_id" t.index ["reservable_type", "reservable_id"], name: "index_reservations_on_reservable_type_and_reservable_id" @@ -867,8 +867,8 @@ ActiveRecord::Schema.define(version: 2022_12_08_123822) do create_table "roles", id: :serial, force: :cascade do |t| t.string "name" - t.integer "resource_id" t.string "resource_type" + t.integer "resource_id" t.datetime "created_at" t.datetime "updated_at" t.index ["name", "resource_type", "resource_id"], name: "index_roles_on_name_and_resource_type_and_resource_id" diff --git a/test/fixtures/accounting_lines.yml b/test/fixtures/accounting_lines.yml index 2ee1b5368..d1ece0e09 100644 --- a/test/fixtures/accounting_lines.yml +++ b/test/fixtures/accounting_lines.yml @@ -1,10 +1,10 @@ accounting_line_43: id: 43 - line_type: client + line_type: payment journal_code: CB01 date: '2012-03-12 11:03:31.651441' account_code: '5801' - account_label: Client card + account_label: Payment by card analytical_code: '' invoice_id: 1 invoicing_profile_id: 3 @@ -34,11 +34,11 @@ accounting_line_44: accounting_line_45: id: 45 - line_type: client + line_type: payment journal_code: CA01 date: '2012-03-12 13:40:22.342717' account_code: '5803' - account_label: Client other + account_label: Payment by other analytical_code: '' invoice_id: 2 invoicing_profile_id: 4 @@ -68,11 +68,11 @@ accounting_line_46: accounting_line_47: id: 47 - line_type: client + line_type: payment journal_code: CA01 date: '2015-06-10 11:20:01.341130' account_code: '5803' - account_label: Client other + account_label: Payment by other analytical_code: '' invoice_id: 3 invoicing_profile_id: 7 @@ -102,11 +102,11 @@ accounting_line_48: accounting_line_49: id: 49 - line_type: client + line_type: payment journal_code: CA01 date: '2016-04-05 08:35:52.931187' account_code: '5803' - account_label: Client other + account_label: Payment by other analytical_code: '' invoice_id: 4 invoicing_profile_id: 7 @@ -136,11 +136,11 @@ accounting_line_50: accounting_line_51: id: 51 - line_type: client + line_type: payment journal_code: CA01 date: '2016-04-05 08:36:46.853368' account_code: '5803' - account_label: Client other + account_label: Payment by other analytical_code: '' invoice_id: 5 invoicing_profile_id: 3 @@ -170,11 +170,11 @@ accounting_line_52: accounting_line_53: id: 53 - line_type: client + line_type: payment journal_code: CA01 date: '2021-01-04 14:51:21.616153' account_code: '5803' - account_label: Client other + account_label: Payment by other analytical_code: '' invoice_id: 6 invoicing_profile_id: 8 @@ -204,11 +204,11 @@ accounting_line_54: accounting_line_55: id: 55 - line_type: client + line_type: payment journal_code: CA01 date: '2022-09-20 15:14:22.873707' account_code: '5803' - account_label: Client other + account_label: Payment by other analytical_code: '' invoice_id: 5811 invoicing_profile_id: 3 @@ -255,11 +255,11 @@ accounting_line_57: accounting_line_58: id: 58 - line_type: client + line_type: payment journal_code: CA01 date: '2022-09-20 15:14:48.345927' account_code: '5803' - account_label: Client other + account_label: Payment by other analytical_code: '' invoice_id: 5812 invoicing_profile_id: 7 @@ -289,11 +289,11 @@ accounting_line_59: accounting_line_60: id: 60 - line_type: client + line_type: payment journal_code: CB01 date: '2022-10-04 12:36:03.060832' account_code: '5801' - account_label: Client card + account_label: Payment by card analytical_code: '' invoice_id: 5816 invoicing_profile_id: 4 @@ -340,11 +340,11 @@ accounting_line_62: accounting_line_63: id: 63 - line_type: client + line_type: payment journal_code: CB01 date: '2022-10-04 13:54:42.975196' account_code: '5801' - account_label: Client card + account_label: Payment by card analytical_code: '' invoice_id: 5817 invoicing_profile_id: 4 @@ -391,11 +391,11 @@ accounting_line_65: accounting_line_66: id: 66 - line_type: client + line_type: payment journal_code: CB01 date: '2022-10-04 14:04:12.742685' account_code: '5801' - account_label: Client card + account_label: Payment by card analytical_code: '' invoice_id: 5818 invoicing_profile_id: 4 @@ -425,11 +425,11 @@ accounting_line_67: accounting_line_68: id: 68 - line_type: client + line_type: payment journal_code: CB01 date: '2022-10-04 14:17:52.854636' account_code: '5801' - account_label: Client card + account_label: Payment by card analytical_code: '' invoice_id: 5819 invoicing_profile_id: 4 @@ -476,11 +476,11 @@ accounting_line_70: accounting_line_71: id: 71 - line_type: client + line_type: payment journal_code: CA01 date: '2022-10-04 14:25:37.291945' account_code: '5803' - account_label: Client other + account_label: Payment by other analytical_code: '' invoice_id: 5820 invoicing_profile_id: 3 @@ -510,11 +510,11 @@ accounting_line_72: accounting_line_73: id: 73 - line_type: client + line_type: payment journal_code: CA01 date: '2022-10-04 14:32:28.204985' account_code: '5803' - account_label: Client other + account_label: Payment by other analytical_code: '' invoice_id: 5821 invoicing_profile_id: 2 @@ -544,11 +544,11 @@ accounting_line_74: accounting_line_75: id: 75 - line_type: client + line_type: payment journal_code: CA01 date: '2022-10-04 14:35:40.584472' account_code: '5803' - account_label: Client other + account_label: Payment by other analytical_code: '' invoice_id: 5822 invoicing_profile_id: 2 diff --git a/test/fixtures/history_values.yml b/test/fixtures/history_values.yml index b6792f2d5..7b5a13972 100644 --- a/test/fixtures/history_values.yml +++ b/test/fixtures/history_values.yml @@ -395,7 +395,7 @@ history_value_40: history_value_41: id: 41 setting_id: 41 - value: Client card + value: Payment by card created_at: '2019-09-20 11:02:32.125400' updated_at: '2021-05-31 15:00:36.518127' footprint: bad61ed94921d492052622f6da1e7b1611c8abee4d0e3260229f0bf23bc24f70 @@ -413,7 +413,7 @@ history_value_42: history_value_43: id: 43 setting_id: 43 - value: Client wallet + value: Payment by wallet created_at: '2019-09-20 11:02:32.125400' updated_at: '2021-05-31 15:00:36.553577' footprint: 430cdf800a4e84f0385ebbdb7b48a107450c618b9c49b9b97016e80047407036 @@ -431,7 +431,7 @@ history_value_44: history_value_45: id: 45 setting_id: 45 - value: Client other + value: Payment by other created_at: '2019-09-20 11:02:32.125400' updated_at: '2021-05-31 15:00:36.593026' footprint: 383ef2b5ad5aaa5e014893e0ca8f7bdcd13d565a3bfd97446e5543e8d0dca941 diff --git a/test/fixtures/settings.yml b/test/fixtures/settings.yml index 30b122c85..90e7ba3a6 100644 --- a/test/fixtures/settings.yml +++ b/test/fixtures/settings.yml @@ -229,37 +229,37 @@ setting_39: setting_40: id: 40 - name: accounting_card_client_code + name: accounting_payment_card_code created_at: 2019-09-20 11:02:32.125400000 Z updated_at: 2019-09-20 11:02:32.125400000 Z setting_41: id: 41 - name: accounting_card_client_label + name: accounting_payment_card_label created_at: 2019-09-20 11:02:32.125400000 Z updated_at: 2019-09-20 11:02:32.125400000 Z setting_42: id: 42 - name: accounting_wallet_client_code + name: accounting_payment_wallet_code created_at: 2019-09-20 11:02:32.125400000 Z updated_at: 2019-09-20 11:02:32.125400000 Z setting_43: id: 43 - name: accounting_wallet_client_label + name: accounting_payment_wallet_label created_at: 2019-09-20 11:02:32.125400000 Z updated_at: 2019-09-20 11:02:32.125400000 Z setting_44: id: 44 - name: accounting_other_client_code + name: accounting_payment_other_code created_at: 2019-09-20 11:02:32.125400000 Z updated_at: 2019-09-20 11:02:32.125400000 Z setting_45: id: 45 - name: accounting_other_client_label + name: accounting_payment_other_label created_at: 2019-09-20 11:02:32.125400000 Z updated_at: 2019-09-20 11:02:32.125400000 Z @@ -529,19 +529,19 @@ setting_89: setting_90: id: 90 - name: accounting_card_client_journal_code + name: accounting_payment_card_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 + name: accounting_payment_wallet_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 + name: accounting_payment_other_journal_code created_at: 2022-12-09 14:00:14.512000000 Z updated_at: 2022-12-09 14:00:14.512000000 Z diff --git a/test/frontend/__fixtures__/settings.ts b/test/frontend/__fixtures__/settings.ts index 58d4a2a12..bfcdea52c 100644 --- a/test/frontend/__fixtures__/settings.ts +++ b/test/frontend/__fixtures__/settings.ts @@ -543,7 +543,7 @@ export const settings: Array = [ }, { name: 'accounting_card_client_code', - value: '411210', + value: '5801', last_update: '2022-11-22T17:27:19+0100', localized: 'Code clients par carte' }, @@ -555,7 +555,7 @@ export const settings: Array = [ }, { name: 'accounting_wallet_client_code', - value: '411211', + value: '5802', last_update: '2022-11-22T17:27:19+0100', localized: 'Code clients par porte-monnaie' }, @@ -567,7 +567,7 @@ export const settings: Array = [ }, { name: 'accounting_other_client_code', - value: '411212', + value: '5803', last_update: '2022-11-22T17:27:19+0100', localized: 'Code clients autre moyen' }, diff --git a/test/frontend/components/accounting/accounting-codes-settings.test.tsx b/test/frontend/components/accounting/accounting-codes-settings.test.tsx index b5c08520c..ab742902a 100644 --- a/test/frontend/components/accounting/accounting-codes-settings.test.tsx +++ b/test/frontend/components/accounting/accounting-codes-settings.test.tsx @@ -10,7 +10,7 @@ describe('AccountingCodesSettings', () => { render(); await waitFor(() => screen.getByRole('heading', { name: /app.admin.accounting_codes_settings.advanced_accounting/ })); expect(screen.getByLabelText(/app.admin.accounting_codes_settings.enable_advanced/)).toBeInTheDocument(); - expect(screen.getByLabelText(/app.admin.accounting_codes_settings.journal_code/)).toBeInTheDocument(); + expect(screen.getAllByLabelText(/app.admin.accounting_codes_settings.journal_code/)).toHaveLength(6); expect(screen.getAllByLabelText(/app.admin.accounting_codes_settings.code/)).toHaveLength(13); expect(screen.getAllByLabelText(/app.admin.accounting_codes_settings.label/)).toHaveLength(13); expect(screen.getByRole('button', { name: /app.admin.accounting_codes_settings.save/ })).toBeInTheDocument(); diff --git a/test/integration/exports/accounting_export_test.rb b/test/integration/exports/accounting_export_test.rb index 463ba5d8a..22a02d729 100644 --- a/test/integration/exports/accounting_export_test.rb +++ b/test/integration/exports/accounting_export_test.rb @@ -53,8 +53,8 @@ class Exports::AccountingExportTest < ActionDispatch::IntegrationTest # test values first_invoice = Invoice.first - # first line = client line - check_client_line(first_invoice, data[0]) + # first line = payment line + check_payment_line(first_invoice, data[0]) # second line = sold item line check_item_line(first_invoice, first_invoice.invoice_items.first, data[1]) @@ -65,12 +65,12 @@ class Exports::AccountingExportTest < ActionDispatch::IntegrationTest # test with a reservation invoice machine_invoice = Invoice.find(5) - check_client_line(machine_invoice, data[6]) + check_payment_line(machine_invoice, data[6]) check_item_line(machine_invoice, machine_invoice.invoice_items.first, data[7]) # test with a shop order invoice (local payment) shop_invoice = Invoice.find(5811) - check_client_line(shop_invoice, data[10]) + check_payment_line(shop_invoice, data[10]) check_item_line(shop_invoice, shop_invoice.invoice_items.first, data[11]) check_item_line(shop_invoice, shop_invoice.invoice_items.last, data[12]) @@ -79,22 +79,22 @@ class Exports::AccountingExportTest < ActionDispatch::IntegrationTest FileUtils.rm(e.file) end - def check_client_line(invoice, client_line) - check_entry_date(invoice, client_line) - check_client_accounts(invoice, client_line) - check_entry_label(invoice, client_line) - check_document(invoice, client_line) + def check_payment_line(invoice, payment_line) + check_entry_date(invoice, payment_line) + check_client_accounts(invoice, payment_line) + check_entry_label(invoice, payment_line) + check_document(invoice, payment_line) if invoice.wallet_transaction_id.nil? - assert_equal invoice.total / 100.00, client_line[I18n.t('accounting_export.debit_origin')].to_f, + assert_equal invoice.total / 100.00, payment_line[I18n.t('accounting_export.debit_origin')].to_f, 'Origin debit amount does not match' - assert_equal invoice.total / 100.00, client_line[I18n.t('accounting_export.debit_euro')].to_f, 'Euro debit amount does not match' + assert_equal invoice.total / 100.00, payment_line[I18n.t('accounting_export.debit_euro')].to_f, 'Euro debit amount does not match' else warn "WARNING: unable to test accurately accounting export: invoice #{invoice.id} is using wallet" end - assert_equal 0, client_line[I18n.t('accounting_export.credit_origin')].to_f, 'Credit origin amount does not match' - assert_equal 0, client_line[I18n.t('accounting_export.credit_euro')].to_f, 'Credit euro amount does not match' + assert_equal 0, payment_line[I18n.t('accounting_export.credit_origin')].to_f, 'Credit origin amount does not match' + assert_equal 0, payment_line[I18n.t('accounting_export.credit_euro')].to_f, 'Credit euro amount does not match' end def check_item_line(invoice, invoice_item, item_line) @@ -126,24 +126,24 @@ class Exports::AccountingExportTest < ActionDispatch::IntegrationTest def check_client_accounts(invoice, client_line) if invoice.wallet_transaction && invoice.wallet_amount.positive? - wallet_client_code = Setting.get('accounting_wallet_client_code') + wallet_client_code = Setting.get('accounting_payment_wallet_code') assert_equal wallet_client_code, client_line[I18n.t('accounting_export.account_code')], 'Account code for wallet client is wrong' - wallet_client_label = Setting.get('accounting_wallet_client_label') + wallet_client_label = Setting.get('accounting_payment_wallet_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') + wallet_client_journal = Setting.get('accounting_payent_wallet_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' - client_code = Setting.get("accounting_#{mean}_client_code") + client_code = Setting.get("accounting_payment_#{mean}_code") assert_equal client_code, client_line[I18n.t('accounting_export.account_code')], 'Account code for client is wrong' - client_label = Setting.get("accounting_#{mean}_client_label") + client_label = Setting.get("accounting_payment_#{mean}_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") + client_journal = Setting.get("accounting_payment_#{mean}_journal_code") assert_equal client_journal, client_line[I18n.t('accounting_export.journal_code')], 'Journal code for client is wrong' end diff --git a/test/integration/open_api/accounting_test.rb b/test/integration/open_api/accounting_test.rb index 42c264a38..60f677abb 100644 --- a/test/integration/open_api/accounting_test.rb +++ b/test/integration/open_api/accounting_test.rb @@ -70,28 +70,28 @@ class OpenApi::AccountingTest < ActionDispatch::IntegrationTest end test 'list all accounting lines with type filtering' do - get '/open_api/v1/accounting?type=[client,vat]', headers: open_api_headers(@token) + get '/open_api/v1/accounting?type=[payment,vat]', headers: open_api_headers(@token) assert_response :success assert_equal Mime[:json], response.content_type lines = json_response(response.body) assert lines[:lines].count.positive? - assert(lines[:lines].all? { |line| %w[client vat].include?(line[:line_type]) }) + assert(lines[:lines].all? { |line| %w[payment vat].include?(line[:line_type]) }) end - test 'list all accounting client lines have payment details' do - get '/open_api/v1/accounting?type=client', headers: open_api_headers(@token) + test 'list all accounting payment lines should have payment details' do + get '/open_api/v1/accounting?type=payment', headers: open_api_headers(@token) assert_response :success assert_equal Mime[:json], response.content_type - card_code = Setting.get('accounting_card_client_code') - wallet_code = Setting.get('accounting_wallet_client_code') - other_code = Setting.get('accounting_other_client_code') + card_code = Setting.get('accounting_payment_card_code') + wallet_code = Setting.get('accounting_payment_wallet_code') + other_code = Setting.get('accounting_payment_other_code') lines = json_response(response.body) assert lines[:lines].count.positive? - assert(lines[:lines].all? { |line| line[:line_type] == 'client' }) - assert(lines[:lines].all? { |line| !line[:invoice][:payment_details].nil? }) + assert(lines[:lines].all? { |line| line[:line_type] == 'payment' }) + assert(lines[:lines].none? { |line| line[:invoice][:payment_details].nil? }) assert(lines[:lines].all? { |line| %w[card wallet other].include?(line[:invoice][:payment_details][:payment_mean]) }) assert(lines[:lines].filter { |line| line[:account_code] == card_code } .none? { |line| line[:invoice][:payment_details][:gateway_object_id].nil? }) @@ -100,6 +100,6 @@ class OpenApi::AccountingTest < ActionDispatch::IntegrationTest assert(lines[:lines].filter { |line| line[:account_code] == wallet_code } .none? { |line| line[:invoice][:payment_details][:wallet_transaction_id].nil? }) assert(lines[:lines].filter { |line| line[:account_code] == other_code } - .all? { |line| line[:invoice][:payment_details].empty? }) + .all? { |line| line[:invoice][:payment_details][:payment_mean] == 'other' }) end end diff --git a/test/services/accounting_service_test.rb b/test/services/accounting_service_test.rb index d836fdcbc..03431bab9 100644 --- a/test/services/accounting_service_test.rb +++ b/test/services/accounting_service_test.rb @@ -56,16 +56,16 @@ class AccountingServiceTest < ActionDispatch::IntegrationTest assert 5, lines.count # Check the wallet line - assert 2, lines.filter { |l| l.line_type == 'client' }.count - 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 + assert 2, lines.filter { |l| l.line_type == 'payment' }.count + payment_wallet = lines.find { |l| l.account_code == Setting.get('accounting_payment_wallet_code') } + assert_not_nil payment_wallet + assert_equal 1000, payment_wallet&.debit + assert_equal Setting.get('accounting_payment_wallet_journal_code'), payment_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 + payment_other = lines.find { |l| l.account_code == Setting.get('accounting_payment_other_code') } + assert_not_nil payment_other + assert_equal invoice.total - 1000, payment_other&.debit + assert_equal Setting.get('accounting_payment_other_journal_code'), payment_other&.journal_code # Check the machine reservation line assert 2, lines.filter { |l| l.line_type == 'item' }.count