dorsale 3.20.0 → 4.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (36) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +9 -3
  3. data/app/controllers/dorsale/billing_machine/application_controller.rb +1 -1
  4. data/app/helpers/dorsale/alexandrie/attachments_helper.rb +1 -1
  5. data/app/helpers/dorsale/comments_helper.rb +2 -2
  6. data/app/helpers/dorsale/customer_vault/application_helper.rb +1 -1
  7. data/app/helpers/dorsale/flyboy/application_helper.rb +2 -2
  8. data/app/models/dorsale/billing_machine/quotation.rb +6 -6
  9. data/app/models/dorsale/customer_vault/person.rb +1 -1
  10. data/app/models/dorsale/flyboy/task.rb +1 -1
  11. data/app/pdfs/dorsale/billing_machine/invoice_multiple_vat_pdf.rb +12 -10
  12. data/app/pdfs/dorsale/billing_machine/invoice_single_vat_pdf.rb +22 -20
  13. data/app/services/dorsale/billing_machine/invoice/statistics.rb +3 -3
  14. data/app/services/dorsale/billing_machine/quotation/statistics.rb +3 -3
  15. data/features/step_definitions/billing_machine_invoices_steps.rb +1 -1
  16. data/features/step_definitions/customer_vault_corporations_steps.rb +1 -1
  17. data/features/step_definitions/customer_vault_people_steps.rb +1 -1
  18. data/features/step_definitions/flyboy_tasks_steps.rb +1 -1
  19. data/lib/dorsale/engine.rb +6 -0
  20. data/lib/dorsale/version.rb +1 -1
  21. data/spec/controllers/dorsale/customer_vault/people_controller_spec.rb +2 -2
  22. data/spec/controllers/dorsale/expense_gun/expenses_controller_spec.rb +4 -4
  23. data/spec/controllers/dorsale/flyboy/task_comments_controller_spec.rb +1 -1
  24. data/spec/controllers/dorsale/flyboy/tasks_controller_spec.rb +2 -2
  25. data/spec/factories/customer_vault_individuals.rb +1 -1
  26. data/spec/factories/expense_gun_expenses.rb +1 -1
  27. data/spec/models/dorsale/billing_machine/invoice_line_spec.rb +5 -5
  28. data/spec/models/dorsale/billing_machine/invoice_spec.rb +5 -5
  29. data/spec/models/dorsale/billing_machine/quotation_line_spec.rb +5 -5
  30. data/spec/models/dorsale/billing_machine/quotation_spec.rb +4 -4
  31. data/spec/models/dorsale/customer_vault/individual_spec.rb +2 -2
  32. data/spec/models/dorsale/customer_vault/person_spec.rb +1 -1
  33. data/spec/models/dorsale/expense_gun/expense_line_spec.rb +1 -1
  34. data/spec/models/dorsale/flyboy/task_comment_spec.rb +5 -5
  35. data/spec/models/dorsale/flyboy/task_spec.rb +2 -2
  36. metadata +103 -103
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 40c57412c903d5b5e12ca0c7fb7abc5103325840da2f27a624d4bdeace505ee4
4
- data.tar.gz: a65375f0c67fd74790657e085a8b974cff8eca322e45c31d69bbb6577856b97a
3
+ metadata.gz: 56b219a64478090857cda126c0be0a10601039d5d5ca2ccb122e22dedf24e1f1
4
+ data.tar.gz: 3f0880733c208194536f26390e5a2bd9f9c457921dc09bc6ee9400cf9d34c799
5
5
  SHA512:
6
- metadata.gz: 18694d47b193684c2f80e486fbad25d375e70b2d7b3e63b8fca836a1dd2950c2f2c62a049efc9eec99f2d566f68c624a7654c913dfc7f4dec272b1a6a8617224
7
- data.tar.gz: 848df210eb6928360cd50cb254c6d6c905263d8ac46af11d8806166dd5aa89d99d12a03afff0d5d95580cb60e4ac6c0ec9456314677d3c0c5d470951f62cec67
6
+ metadata.gz: ba48401d91d362381d54fb18baed9336dd332a80f7d20883228767aa183d47a591c4850774bbcb1855ca98fe6701bc20306177f11bc02a7253ac60be60643035
7
+ data.tar.gz: 5f2d24d3ff51d349b30c42ee2017989ee8e04d9fc6d4e54d67cde9e019bc69be5116fd33a2d0f2a32bfd5e87fb829a09af6457b7a110e1e08c0b314d17c2b43a
data/CHANGELOG.md CHANGED
@@ -1,17 +1,23 @@
1
1
  # Changelog
2
2
 
3
- # 3.20.0
4
3
  ## Next version
4
+
5
+ ## 4.0.0
6
+ - Ruby 3.1 required
7
+ - Rails 7.0
8
+ - Zeitwerk compatibility
9
+
10
+ ## 3.20.0
5
11
  - Change email deliver_now to deliver_later on save
6
12
 
7
- # 3.19.1
13
+ ## 3.19.1
8
14
  - Expenses : add colors to list
9
15
 
10
16
  # 3.19.0
11
17
  - Change expenses state machine
12
18
  - Change expenses list view
13
19
 
14
- # 3.18.0
20
+ ## 3.18.0
15
21
  - Change uploaders `extension_whitelist` to `extension_allowlist`
16
22
  - Rails 6.1 compatibility
17
23
 
@@ -25,6 +25,6 @@ class Dorsale::BillingMachine::ApplicationController < ::Dorsale::ApplicationCon
25
25
  def email_params
26
26
  params.fetch(:email, {})
27
27
  .permit(email_permitted_params)
28
- .merge(current_user: current_user)
28
+ .merge(current_user:)
29
29
  end
30
30
  end
@@ -1,5 +1,5 @@
1
1
  module Dorsale::Alexandrie::AttachmentsHelper
2
2
  def attachments_for(attachable)
3
- render "dorsale/alexandrie/attachments/loader", attachable: attachable
3
+ render "dorsale/alexandrie/attachments/loader", attachable:
4
4
  end
5
5
  end
@@ -1,6 +1,6 @@
1
1
  module Dorsale::CommentsHelper
2
2
  def comments_for(commentable)
3
- comments = policy_scope(::Dorsale::Comment).where(commentable: commentable)
3
+ comments = policy_scope(::Dorsale::Comment).where(commentable:)
4
4
  new_comment = new_comment_for(commentable)
5
5
 
6
6
  render(
@@ -13,7 +13,7 @@ module Dorsale::CommentsHelper
13
13
  end
14
14
 
15
15
  def new_comment_for(commentable)
16
- policy_scope(Dorsale::Comment).new(commentable: commentable, author: current_user)
16
+ policy_scope(Dorsale::Comment).new(commentable:, author: current_user)
17
17
  end
18
18
 
19
19
  def truncate_comments_in_this_page?
@@ -55,7 +55,7 @@ module Dorsale::CustomerVault::ApplicationHelper
55
55
  end
56
56
 
57
57
  def new_event_for(person)
58
- policy_scope(Dorsale::CustomerVault::Event).new(person: person, author: current_user)
58
+ policy_scope(Dorsale::CustomerVault::Event).new(person:, author: current_user)
59
59
  end
60
60
 
61
61
  def customer_vault_tag_list
@@ -14,11 +14,11 @@ module Dorsale::Flyboy::ApplicationHelper
14
14
  end
15
15
  end
16
16
 
17
- tasks = ::Dorsale::Flyboy::Task.where(taskable: taskable)
17
+ tasks = ::Dorsale::Flyboy::Task.where(taskable:)
18
18
  tasks = @filters.apply(tasks)
19
19
  tasks = tasks.order(order)
20
20
 
21
- render "dorsale/flyboy/tasks/tasks_for_taskable", tasks: tasks, taskable: taskable
21
+ render "dorsale/flyboy/tasks/tasks_for_taskable", tasks:, taskable:
22
22
  end
23
23
 
24
24
  def show_tasks_summary
@@ -85,12 +85,6 @@ class Dorsale::BillingMachine::Quotation < ::Dorsale::ApplicationRecord
85
85
  self.total_including_taxes = total_excluding_taxes + vat_amount
86
86
  end
87
87
 
88
- # rubocop:disable Style/SingleLineMethods
89
- private def total_excluding_taxes=(*); super; end
90
- private def vat_amount=(*); super; end
91
- private def total_including_taxes=(*); super; end
92
- # rubocop:enable Style/SingleLineMethods
93
-
94
88
  def balance
95
89
  total_including_taxes
96
90
  end
@@ -124,4 +118,10 @@ class Dorsale::BillingMachine::Quotation < ::Dorsale::ApplicationRecord
124
118
  def on_attachment_action(_attachment, _action)
125
119
  Dorsale::BillingMachine::PdfFileGenerator.(self)
126
120
  end
121
+
122
+ # rubocop:disable Style/SingleLineMethods
123
+ private def total_excluding_taxes=(*); super; end
124
+ private def vat_amount=(*); super; end
125
+ private def total_including_taxes=(*); super; end
126
+ # rubocop:enable Style/SingleLineMethods
127
127
  end
@@ -58,7 +58,7 @@ class Dorsale::CustomerVault::Person < ::Dorsale::ApplicationRecord
58
58
  def taken_emails
59
59
  taken_emails = {}
60
60
  ([email] + secondary_emails).select(&:present?).each do |e|
61
- person = Dorsale::CustomerVault::Person.where.not(id: id).having_email(e).first
61
+ person = Dorsale::CustomerVault::Person.where.not(id:).having_email(e).first
62
62
  taken_emails[e] = person if person.present?
63
63
  end
64
64
  taken_emails
@@ -120,7 +120,7 @@ class Dorsale::Flyboy::Task < ::Dorsale::ApplicationRecord
120
120
 
121
121
  comments.create!(
122
122
  :progress => progress,
123
- :description => I18n.t("messages.tasks.snoozed", old_date: old_date, new_date: new_date),
123
+ :description => I18n.t("messages.tasks.snoozed", old_date:, new_date:),
124
124
  :author => author,
125
125
  )
126
126
  end
@@ -1,11 +1,11 @@
1
1
  class Dorsale::BillingMachine::InvoiceMultipleVatPdf < ::Dorsale::BillingMachine::InvoiceSingleVatPdf
2
- # rubocop:disable Style/SingleLineMethods, Layout/EmptyLineBetweenDefs
2
+ # rubocop:disable Style/SingleLineMethods
3
3
  def first_column_width; 64.mm; end
4
4
  def second_column_width; 22.mm; end
5
5
  def third_column_width; 20.mm; end
6
6
  def fourth_column_width; 20.mm; end
7
7
  def fifth_column_width; 29.mm; end
8
- # rubocop:enable Style/SingleLineMethods, Layout/EmptyLineBetweenDefs
8
+ # rubocop:enable Style/SingleLineMethods
9
9
 
10
10
  def last_column_width
11
11
  bounds.width - first_column_width - second_column_width - third_column_width - fourth_column_width - fifth_column_width
@@ -32,14 +32,16 @@ class Dorsale::BillingMachine::InvoiceMultipleVatPdf < ::Dorsale::BillingMachine
32
32
 
33
33
  # Products table
34
34
  bb height: height do
35
- table_products = [[
36
- main_document.t(:designation).mb_chars.upcase.to_s,
37
- main_document.t(:quantity).mb_chars.upcase.to_s,
38
- main_document.t(:unit).mb_chars.upcase.to_s,
39
- main_document.t(:tax).mb_chars.upcase.to_s,
40
- main_document.t(:unit_price).mb_chars.upcase.to_s,
41
- main_document.t(:line_total).mb_chars.upcase.to_s,
42
- ]]
35
+ table_products = [
36
+ [
37
+ main_document.t(:designation).mb_chars.upcase.to_s,
38
+ main_document.t(:quantity).mb_chars.upcase.to_s,
39
+ main_document.t(:unit).mb_chars.upcase.to_s,
40
+ main_document.t(:tax).mb_chars.upcase.to_s,
41
+ main_document.t(:unit_price).mb_chars.upcase.to_s,
42
+ main_document.t(:line_total).mb_chars.upcase.to_s,
43
+ ],
44
+ ]
43
45
 
44
46
  main_document.lines.each do |line|
45
47
  table_products.push [
@@ -24,7 +24,7 @@ class Dorsale::BillingMachine::InvoiceSingleVatPdf < Dorsale::ApplicationPdf
24
24
  currency(n, Dorsale::BillingMachine.default_currency)
25
25
  end
26
26
 
27
- # rubocop:disable Style/SingleLineMethods, Layout/EmptyLineBetweenDefs
27
+ # rubocop:disable Style/SingleLineMethods
28
28
  def header_height; 90.mm; end
29
29
  def logo_height; 32.mm; end
30
30
  def logo_width; 50.mm; end
@@ -42,7 +42,7 @@ class Dorsale::BillingMachine::InvoiceSingleVatPdf < Dorsale::ApplicationPdf
42
42
  def second_column_width; 2.4.cm; end
43
43
  def third_column_width; 2.5.cm; end
44
44
  def fourth_column_width; 2.9.cm; end
45
- # rubocop:enable Style/SingleLineMethods, Layout/EmptyLineBetweenDefs
45
+ # rubocop:enable Style/SingleLineMethods
46
46
 
47
47
  def last_column_width
48
48
  bounds.width - first_column_width - second_column_width - third_column_width - fourth_column_width
@@ -110,7 +110,7 @@ class Dorsale::BillingMachine::InvoiceSingleVatPdf < Dorsale::ApplicationPdf
110
110
 
111
111
  def build_contact_infos
112
112
  top = bounds.top - 4.cm
113
- width = bounds.width / 2 - 1.1.cm
113
+ width = (bounds.width / 2) - 1.1.cm
114
114
  height = contact_infos_height
115
115
 
116
116
  bb top: top, width: width, height: height do
@@ -120,7 +120,7 @@ class Dorsale::BillingMachine::InvoiceSingleVatPdf < Dorsale::ApplicationPdf
120
120
 
121
121
  def build_subject
122
122
  top = bounds.top - 7.5.cm
123
- width = bounds.width / 2 - 1.1.cm
123
+ width = (bounds.width / 2) - 1.1.cm
124
124
  height = 15.mm
125
125
 
126
126
  bb top: top, width: width, height: height do
@@ -146,7 +146,7 @@ class Dorsale::BillingMachine::InvoiceSingleVatPdf < Dorsale::ApplicationPdf
146
146
  content << main_document.customer.address.country
147
147
 
148
148
  if main_document.customer.try(:european_union_vat_number).present?
149
- content << main_document.customer.t(:european_union_vat_number) + " : "
149
+ content << (main_document.customer.t(:european_union_vat_number) + " : ")
150
150
  content << main_document.customer.european_union_vat_number
151
151
  end
152
152
 
@@ -155,8 +155,8 @@ class Dorsale::BillingMachine::InvoiceSingleVatPdf < Dorsale::ApplicationPdf
155
155
 
156
156
  def build_customer
157
157
  top = bounds.top - 4.cm
158
- left = bounds.width / 2 + 1.1.cm
159
- width = bounds.width / 2 - 1.1.cm
158
+ left = (bounds.width / 2) + 1.1.cm
159
+ width = (bounds.width / 2) - 1.1.cm
160
160
  height = 4.5.cm
161
161
  padding = 3.mm
162
162
 
@@ -177,11 +177,11 @@ class Dorsale::BillingMachine::InvoiceSingleVatPdf < Dorsale::ApplicationPdf
177
177
  end
178
178
 
179
179
  def has_advance
180
- main_document.try(:advance) && main_document.advance.to_d != 0.0.to_d
180
+ main_document.try(:advance) && main_document.advance.to_d != BigDecimal("0.0")
181
181
  end
182
182
 
183
183
  def has_discount
184
- main_document.try(:commercial_discount) && main_document.commercial_discount.to_d != 0.0.to_d
184
+ main_document.try(:commercial_discount) && main_document.commercial_discount.to_d != BigDecimal("0.0")
185
185
  end
186
186
 
187
187
  def build_table
@@ -199,7 +199,7 @@ class Dorsale::BillingMachine::InvoiceSingleVatPdf < Dorsale::ApplicationPdf
199
199
  fourth_column_width,
200
200
  last_column_width,
201
201
  ],
202
- :cell_style => {height: height} \
202
+ :cell_style => {height:} \
203
203
  do
204
204
  row(0).style :text_color => BLACK
205
205
  row(0).style :font_style => :bold
@@ -212,13 +212,15 @@ class Dorsale::BillingMachine::InvoiceSingleVatPdf < Dorsale::ApplicationPdf
212
212
 
213
213
  # Products table
214
214
  bb height: height do
215
- table_products = [[
216
- main_document.t(:designation).mb_chars.upcase.to_s,
217
- main_document.t(:quantity).mb_chars.upcase.to_s,
218
- main_document.t(:unit).mb_chars.upcase.to_s,
219
- main_document.t(:unit_price).mb_chars.upcase.to_s,
220
- main_document.t(:line_total).mb_chars.upcase.to_s,
221
- ]]
215
+ table_products = [
216
+ [
217
+ main_document.t(:designation).mb_chars.upcase.to_s,
218
+ main_document.t(:quantity).mb_chars.upcase.to_s,
219
+ main_document.t(:unit).mb_chars.upcase.to_s,
220
+ main_document.t(:unit_price).mb_chars.upcase.to_s,
221
+ main_document.t(:line_total).mb_chars.upcase.to_s,
222
+ ],
223
+ ]
222
224
 
223
225
  main_document.lines.each do |line|
224
226
  table_products.push [
@@ -331,7 +333,7 @@ class Dorsale::BillingMachine::InvoiceSingleVatPdf < Dorsale::ApplicationPdf
331
333
  height = middle_height - products_table_height - 5.mm
332
334
  width = 10.cm
333
335
 
334
- btb document_infos_content, top: top, height: height, width: width
336
+ btb document_infos_content, top:, height:, width:
335
337
  end
336
338
 
337
339
  def build_footer
@@ -355,7 +357,7 @@ class Dorsale::BillingMachine::InvoiceSingleVatPdf < Dorsale::ApplicationPdf
355
357
  end
356
358
 
357
359
  def build_footer_line
358
- top = bounds.top - footer_top_height - (footer_height - footer_top_height - footer_bottom_height - footer_pagination_height) / 2
360
+ top = bounds.top - footer_top_height - ((footer_height - footer_top_height - footer_bottom_height - footer_pagination_height) / 2)
359
361
  stroke do
360
362
  horizontal_line bounds.left, bounds.right, at: top
361
363
  end
@@ -369,7 +371,7 @@ class Dorsale::BillingMachine::InvoiceSingleVatPdf < Dorsale::ApplicationPdf
369
371
  height = footer_bottom_height
370
372
  top = bounds.bottom + height + footer_pagination_height
371
373
 
372
- btb footer_bottom_content, top: top, height: height, size: 9
374
+ btb footer_bottom_content, top:, height:, size: 9
373
375
  end
374
376
 
375
377
  def build_page_numbers
@@ -8,21 +8,21 @@ class Dorsale::BillingMachine::Invoice::Statistics
8
8
  def total_excluding_taxes
9
9
  @total_excluding_taxes ||= @invoices
10
10
  .pluck(:total_excluding_taxes)
11
- .delete_if(&:blank?)
11
+ .compact
12
12
  .sum
13
13
  end
14
14
 
15
15
  def vat_amount
16
16
  @vat_amount ||= @invoices
17
17
  .pluck(:vat_amount)
18
- .delete_if(&:blank?)
18
+ .compact
19
19
  .sum
20
20
  end
21
21
 
22
22
  def total_including_taxes
23
23
  @total_including_taxes ||= @invoices
24
24
  .pluck(:total_including_taxes)
25
- .delete_if(&:blank?)
25
+ .compact
26
26
  .sum
27
27
  end
28
28
 
@@ -9,7 +9,7 @@ class Dorsale::BillingMachine::Quotation::Statistics
9
9
  @total_excluding_taxes ||= @quotations
10
10
  .where.not(state: "canceled")
11
11
  .pluck(:total_excluding_taxes)
12
- .delete_if(&:blank?)
12
+ .compact
13
13
  .sum
14
14
  end
15
15
 
@@ -17,7 +17,7 @@ class Dorsale::BillingMachine::Quotation::Statistics
17
17
  @vat_amount ||= @quotations
18
18
  .where.not(state: "canceled")
19
19
  .pluck(:vat_amount)
20
- .delete_if(&:blank?)
20
+ .compact
21
21
  .sum
22
22
  end
23
23
 
@@ -25,7 +25,7 @@ class Dorsale::BillingMachine::Quotation::Statistics
25
25
  @total_including_taxes ||= @quotations
26
26
  .where.not(state: "canceled")
27
27
  .pluck(:total_including_taxes)
28
- .delete_if(&:blank?)
28
+ .compact
29
29
  .sum
30
30
  end
31
31
 
@@ -178,7 +178,7 @@ When(/^the user download the pdf$/) do
178
178
  end
179
179
 
180
180
  Then(/^he should see (\d+) invoices?$/) do |count|
181
- expect(page).to have_selector ".invoice", count: count
181
+ expect(page).to have_selector ".invoice", count:
182
182
  end
183
183
 
184
184
  Then(/^the invoice is displayed correctly$/) do
@@ -47,7 +47,7 @@ Then(/^i see an error message for the missing name$/) do
47
47
  end
48
48
 
49
49
  Then(/^he can see (\d+) corporate$/) do |count|
50
- expect(page).to have_selector ".person", count: count
50
+ expect(page).to have_selector ".person", count:
51
51
  end
52
52
 
53
53
  Then(/^the corporation is created$/) do
@@ -8,7 +8,7 @@ end
8
8
 
9
9
  Given(/^a very long comment on this person$/) do
10
10
  text = Faker::Lorem.paragraph(sentence_count: 30)
11
- @comment = create(:customer_vault_event_comment, person: @person, text: text)
11
+ @comment = create(:customer_vault_event_comment, person: @person, text:)
12
12
  end
13
13
 
14
14
  Then(/^I see the truncated comment$/) do
@@ -7,7 +7,7 @@ Given(/^an existing undone task$/) do
7
7
  end
8
8
 
9
9
  Given(/^an existing task named "(.*?)"$/) do |name|
10
- create(:flyboy_task, name: name)
10
+ create(:flyboy_task, name:)
11
11
  end
12
12
 
13
13
  Given(/^an existing task$/) do
@@ -35,6 +35,12 @@ module Dorsale
35
35
  class Engine < ::Rails::Engine
36
36
  isolate_namespace Dorsale
37
37
 
38
+ initializer "inflections" do
39
+ ActiveSupport::Inflector.inflections(:en) do |inflect|
40
+ inflect.acronym "DH"
41
+ end
42
+ end
43
+
38
44
  initializer "factory_bot" do
39
45
  if Rails.env.test? || Rails.env.development?
40
46
  FactoryBot.definition_file_paths.unshift Dorsale::Engine.root.join("spec/factories/").to_s
@@ -1,3 +1,3 @@
1
1
  module Dorsale
2
- VERSION = "3.20.0"
2
+ VERSION = "4.0.0"
3
3
  end
@@ -57,7 +57,7 @@ RSpec.describe ::Dorsale::CustomerVault::PeopleController, type: :controller do
57
57
 
58
58
  it "should filter by person origin" do
59
59
  origin = create(:customer_vault_origin)
60
- individual1 = create(:customer_vault_individual, origin: origin)
60
+ individual1 = create(:customer_vault_individual, origin:)
61
61
  individual2 = create(:customer_vault_individual)
62
62
 
63
63
  cookies[:filters] = {person_origin: origin.id}.to_json
@@ -68,7 +68,7 @@ RSpec.describe ::Dorsale::CustomerVault::PeopleController, type: :controller do
68
68
 
69
69
  it "should filter by person activity_type" do
70
70
  activity_type = create(:customer_vault_activity_type)
71
- corporation1 = create(:customer_vault_corporation, activity_type: activity_type)
71
+ corporation1 = create(:customer_vault_corporation, activity_type:)
72
72
  corporation2 = create(:customer_vault_corporation)
73
73
 
74
74
  cookies[:filters] = {person_activity: activity_type.id}.to_json
@@ -66,7 +66,7 @@ RSpec.describe ::Dorsale::ExpenseGun::ExpensesController, type: :controller do
66
66
  render_views
67
67
 
68
68
  it "should be ok as PDF" do
69
- expense = create(:expense_gun_expense, user: user)
69
+ expense = create(:expense_gun_expense, user:)
70
70
  get :show, params: {id: expense, format: :pdf}
71
71
  expect(response).to be_ok
72
72
  end
@@ -74,7 +74,7 @@ RSpec.describe ::Dorsale::ExpenseGun::ExpensesController, type: :controller do
74
74
 
75
75
  describe "#go_to_pending" do
76
76
  it "should go to pending and redirect" do
77
- expense = create(:expense_gun_expense, user: user, state: "draft")
77
+ expense = create(:expense_gun_expense, user:, state: "draft")
78
78
  post :go_to_pending, params: {id: expense}
79
79
  expect(response).to be_redirect
80
80
  expect(flash.notice).to be_present
@@ -84,7 +84,7 @@ RSpec.describe ::Dorsale::ExpenseGun::ExpensesController, type: :controller do
84
84
 
85
85
  describe "#go_to_paid" do
86
86
  it "should go to paid and redirect" do
87
- expense = create(:expense_gun_expense, user: user, state: "pending")
87
+ expense = create(:expense_gun_expense, user:, state: "pending")
88
88
  post :go_to_paid, params: {id: expense}
89
89
  expect(response).to be_redirect
90
90
  expect(flash.notice).to be_present
@@ -94,7 +94,7 @@ RSpec.describe ::Dorsale::ExpenseGun::ExpensesController, type: :controller do
94
94
 
95
95
  describe "#go_to_canceled" do
96
96
  it "should go to canceled and redirect" do
97
- expense = create(:expense_gun_expense, user: user, state: "draft")
97
+ expense = create(:expense_gun_expense, user:, state: "draft")
98
98
  post :go_to_canceled, params: {id: expense}
99
99
  expect(response).to be_redirect
100
100
  expect(flash.notice).to be_present
@@ -8,7 +8,7 @@ describe Dorsale::Flyboy::TaskCommentsController, type: :controller do
8
8
  before(:each) { sign_in(user) }
9
9
 
10
10
  let(:task) { create(:flyboy_task) }
11
- let(:task_comment) { create(:flyboy_task_comment, task: task) }
11
+ let(:task_comment) { create(:flyboy_task_comment, task:) }
12
12
 
13
13
  describe "#create" do
14
14
  let(:valid_params) { {task_id: task.id, task_comment: task_comment.attributes} }
@@ -20,7 +20,7 @@ describe Dorsale::Flyboy::TasksController, type: :controller do
20
20
 
21
21
  describe "#complete" do
22
22
  before(:each) do
23
- request.env["HTTP_REFERER"] = "where_i_came_from"
23
+ request.env["HTTP_REFERER"] = "/where_i_came_from"
24
24
  end
25
25
 
26
26
  it "should mark the task as done" do
@@ -42,7 +42,7 @@ describe Dorsale::Flyboy::TasksController, type: :controller do
42
42
 
43
43
  it "should redirect to the referer page" do
44
44
  patch :complete, params: {id: task.id}
45
- expect(response).to redirect_to "where_i_came_from"
45
+ expect(response).to redirect_to "/where_i_came_from"
46
46
  end
47
47
  end
48
48
 
@@ -4,7 +4,7 @@ FactoryBot.define do
4
4
  first_name { Faker::Name.first_name }
5
5
  last_name { Faker::Name.last_name }
6
6
  short_name { "SN" }
7
- email { Faker::Internet.email(name: name) }
7
+ email { Faker::Internet.email(name:) }
8
8
  title { "Individual-Title" }
9
9
  twitter { "#{first_name}#{last_name}" }
10
10
  www { Faker::Internet.url }
@@ -6,7 +6,7 @@ FactoryBot.define do
6
6
 
7
7
  after(:create) { |expense|
8
8
  rand(2..5).times {
9
- create(:expense_gun_expense_line, expense: expense)
9
+ create(:expense_gun_expense_line, expense:)
10
10
  }
11
11
  }
12
12
  end
@@ -30,11 +30,11 @@ describe Dorsale::BillingMachine::InvoiceLine, type: :model do
30
30
  end
31
31
 
32
32
  it "should be sorted by created_at" do
33
- line1 = create(:billing_machine_invoice_line, :created_at => Time.zone.now + 1.minute)
34
- line2 = create(:billing_machine_invoice_line, :created_at => Time.zone.now + 2.minutes)
35
- line3 = create(:billing_machine_invoice_line, :created_at => Time.zone.now + 3.minutes)
36
- line4 = create(:billing_machine_invoice_line, :created_at => Time.zone.now + 4.minutes)
37
- line3.update!(:created_at => Time.zone.now + 5.minutes)
33
+ line1 = create(:billing_machine_invoice_line, :created_at => 1.minute.from_now)
34
+ line2 = create(:billing_machine_invoice_line, :created_at => 2.minutes.from_now)
35
+ line3 = create(:billing_machine_invoice_line, :created_at => 3.minutes.from_now)
36
+ line4 = create(:billing_machine_invoice_line, :created_at => 4.minutes.from_now)
37
+ line3.update!(:created_at => 5.minutes.from_now)
38
38
 
39
39
  lines = described_class.all
40
40
  expect(lines).to eq [line1, line2, line4, line3]
@@ -129,17 +129,17 @@ describe Dorsale::BillingMachine::Invoice, type: :model do
129
129
 
130
130
  it "it should be first line vat rate" do
131
131
  invoice = create(:billing_machine_invoice)
132
- line1 = create(:billing_machine_invoice_line, invoice: invoice, vat_rate: 10)
133
- line2 = create(:billing_machine_invoice_line, invoice: invoice, vat_rate: 10)
132
+ line1 = create(:billing_machine_invoice_line, invoice:, vat_rate: 10)
133
+ line2 = create(:billing_machine_invoice_line, invoice:, vat_rate: 10)
134
134
  expect(invoice.vat_rate).to eq 10
135
135
  end
136
136
 
137
137
  it "it should raise if multiple vat_rates" do
138
138
  invoice = create(:billing_machine_invoice)
139
- line1 = create(:billing_machine_invoice_line, invoice: invoice, vat_rate: 10)
139
+ line1 = create(:billing_machine_invoice_line, invoice:, vat_rate: 10)
140
140
 
141
141
  expect {
142
- line2 = create(:billing_machine_invoice_line, invoice: invoice, vat_rate: 15)
142
+ line2 = create(:billing_machine_invoice_line, invoice:, vat_rate: 15)
143
143
  }.to raise_error(RuntimeError)
144
144
  end
145
145
 
@@ -247,7 +247,7 @@ describe Dorsale::BillingMachine::Invoice, type: :model do
247
247
  it "should work fine even with empty lines" do
248
248
  invoice = create(:billing_machine_invoice)
249
249
 
250
- create(:billing_machine_invoice_line, invoice: invoice, quantity: nil, unit_price: nil)
250
+ create(:billing_machine_invoice_line, invoice:, quantity: nil, unit_price: nil)
251
251
 
252
252
  expect(invoice.total_excluding_taxes).to eq(0.0)
253
253
  expect(invoice.vat_amount).to eq(0)
@@ -30,11 +30,11 @@ describe Dorsale::BillingMachine::QuotationLine do
30
30
  end
31
31
 
32
32
  it "should be sorted by created_at" do
33
- line1 = create(:billing_machine_quotation_line, :created_at => Time.zone.now + 1.minute)
34
- line2 = create(:billing_machine_quotation_line, :created_at => Time.zone.now + 2.minutes)
35
- line3 = create(:billing_machine_quotation_line, :created_at => Time.zone.now + 3.minutes)
36
- line4 = create(:billing_machine_quotation_line, :created_at => Time.zone.now + 4.minutes)
37
- line3.update!(:created_at => Time.zone.now + 5.minutes)
33
+ line1 = create(:billing_machine_quotation_line, :created_at => 1.minute.from_now)
34
+ line2 = create(:billing_machine_quotation_line, :created_at => 2.minutes.from_now)
35
+ line3 = create(:billing_machine_quotation_line, :created_at => 3.minutes.from_now)
36
+ line4 = create(:billing_machine_quotation_line, :created_at => 4.minutes.from_now)
37
+ line3.update!(:created_at => 5.minutes.from_now)
38
38
  lines = described_class.all
39
39
  expect(lines).to eq [line1, line2, line4, line3]
40
40
  end
@@ -83,17 +83,17 @@ describe Dorsale::BillingMachine::Quotation do
83
83
 
84
84
  it "it should be first line vat rate" do
85
85
  quotation = create(:billing_machine_quotation)
86
- line1 = create(:billing_machine_quotation_line, quotation: quotation, vat_rate: 10)
87
- line2 = create(:billing_machine_quotation_line, quotation: quotation, vat_rate: 10)
86
+ line1 = create(:billing_machine_quotation_line, quotation:, vat_rate: 10)
87
+ line2 = create(:billing_machine_quotation_line, quotation:, vat_rate: 10)
88
88
  expect(quotation.vat_rate).to eq 10
89
89
  end
90
90
 
91
91
  it "it should raise if multiple vat_rates" do
92
92
  quotation = create(:billing_machine_quotation)
93
- line1 = create(:billing_machine_quotation_line, quotation: quotation, vat_rate: 10)
93
+ line1 = create(:billing_machine_quotation_line, quotation:, vat_rate: 10)
94
94
 
95
95
  expect {
96
- line2 = create(:billing_machine_quotation_line, quotation: quotation, vat_rate: 15)
96
+ line2 = create(:billing_machine_quotation_line, quotation:, vat_rate: 15)
97
97
  }.to raise_error(RuntimeError)
98
98
  end
99
99
 
@@ -26,7 +26,7 @@ RSpec.describe ::Dorsale::CustomerVault::Individual, :type => :model do
26
26
  describe "activity type" do
27
27
  it "should have the same activity than his corporation" do
28
28
  corporation = create(:customer_vault_corporation)
29
- individual = create(:customer_vault_individual, corporation: corporation)
29
+ individual = create(:customer_vault_individual, corporation:)
30
30
  expect(individual.activity_type).to eq corporation.activity_type
31
31
  end
32
32
 
@@ -37,7 +37,7 @@ RSpec.describe ::Dorsale::CustomerVault::Individual, :type => :model do
37
37
 
38
38
  it "should have no activity if his corporation has no activity" do
39
39
  corporation = create(:customer_vault_corporation, activity_type: nil)
40
- individual = create(:customer_vault_individual, corporation: corporation)
40
+ individual = create(:customer_vault_individual, corporation:)
41
41
  expect(individual.activity_type).to eq nil
42
42
  end
43
43
  end
@@ -28,7 +28,7 @@ RSpec.describe ::Dorsale::CustomerVault::Person, type: :model do
28
28
 
29
29
  it "should return self_and_related_events" do
30
30
  corporation = create(:customer_vault_corporation)
31
- individual = create(:customer_vault_individual, corporation: corporation)
31
+ individual = create(:customer_vault_individual, corporation:)
32
32
  corporation_event = create(:customer_vault_event, person: corporation)
33
33
  individual_event = create(:customer_vault_event, person: individual)
34
34
 
@@ -47,7 +47,7 @@ RSpec.describe ::Dorsale::ExpenseGun::ExpenseLine, type: :model do
47
47
 
48
48
  it "#total_vat_deductible should be 0 if categorie is non vat_decuctible" do
49
49
  category = build(:expense_gun_category, vat_deductible: false)
50
- expense_line = build(:expense_gun_expense_line, category: category)
50
+ expense_line = build(:expense_gun_expense_line, category:)
51
51
  expect(expense_line.total_vat_deductible).to eq 0.0
52
52
  end
53
53
  end
@@ -16,19 +16,19 @@ describe Dorsale::Flyboy::TaskComment do
16
16
 
17
17
  it "should update the task progress upon creation" do
18
18
  task = create(:flyboy_task, progress: 10)
19
- comment = create(:flyboy_task_comment, progress: 20, task: task)
19
+ comment = create(:flyboy_task_comment, progress: 20, task:)
20
20
  expect(task.reload.progress).to eq(20)
21
21
  end
22
22
 
23
23
  it "should mark task as complete when progress == 100" do
24
24
  task = create(:flyboy_task, progress: 10, done: false)
25
- comment = create(:flyboy_task_comment, progress: 100, task: task)
25
+ comment = create(:flyboy_task_comment, progress: 100, task:)
26
26
  expect(task.reload.done).to be true
27
27
  end
28
28
 
29
29
  it "should mark task as un complete when progress < 100" do
30
30
  task = create(:flyboy_task, progress: 100, done: true)
31
- comment = create(:flyboy_task_comment, progress: 90, task: task)
31
+ comment = create(:flyboy_task_comment, progress: 90, task:)
32
32
  expect(task.reload.done).to be false
33
33
  end
34
34
 
@@ -44,8 +44,8 @@ describe Dorsale::Flyboy::TaskComment do
44
44
 
45
45
  it "#new progress should not override exisring progress" do
46
46
  task = create(:flyboy_task)
47
- comment1 = create(:flyboy_task_comment, task: task, progress: 30)
48
- comment2 = create(:flyboy_task_comment, task: task, progress: 50)
47
+ comment1 = create(:flyboy_task_comment, task:, progress: 30)
48
+ comment2 = create(:flyboy_task_comment, task:, progress: 50)
49
49
  expect(task.reload.progress).to eq 50
50
50
  expect(comment1.reload.progress).to eq 30
51
51
  expect(comment2.reload.progress).to eq 50
@@ -235,7 +235,7 @@ describe Dorsale::Flyboy::Task do
235
235
 
236
236
  it "should create comment" do
237
237
  expect {
238
- task.create_term_changed_comment!(previous: Date.new(2019, 10, 1), author: author)
238
+ task.create_term_changed_comment!(previous: Date.new(2019, 10, 1), author:)
239
239
  }.to change(Dorsale::Flyboy::TaskComment, :count).by(1)
240
240
 
241
241
  task_comment = task.comments.last_created
@@ -247,7 +247,7 @@ describe Dorsale::Flyboy::Task do
247
247
 
248
248
  it "should not create comment if date not changed" do
249
249
  expect {
250
- task.create_term_changed_comment!(previous: Date.new(2019, 10, 2), author: author)
250
+ task.create_term_changed_comment!(previous: Date.new(2019, 10, 2), author:)
251
251
  }.to_not change(Dorsale::Flyboy::TaskComment, :count)
252
252
  end
253
253
  end # describe "#create_term_changed_comment!"
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dorsale
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.20.0
4
+ version: 4.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - agilidée
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-04-11 00:00:00.000000000 Z
11
+ date: 2022-11-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -948,7 +948,7 @@ homepage: https://github.com/agilidee/dorsale
948
948
  licenses:
949
949
  - Nonstandard
950
950
  metadata: {}
951
- post_install_message:
951
+ post_install_message:
952
952
  rdoc_options: []
953
953
  require_paths:
954
954
  - lib
@@ -956,144 +956,144 @@ required_ruby_version: !ruby/object:Gem::Requirement
956
956
  requirements:
957
957
  - - ">="
958
958
  - !ruby/object:Gem::Version
959
- version: '0'
959
+ version: 3.1.0
960
960
  required_rubygems_version: !ruby/object:Gem::Requirement
961
961
  requirements:
962
962
  - - ">="
963
963
  - !ruby/object:Gem::Version
964
964
  version: '0'
965
965
  requirements: []
966
- rubygems_version: 3.1.6
967
- signing_key:
966
+ rubygems_version: 3.3.7
967
+ signing_key:
968
968
  specification_version: 4
969
969
  summary: Modular ERP made with Ruby on Rails
970
970
  test_files:
971
- - spec/spec_helper.rb
972
- - spec/mailers/user_mailer_spec.rb
973
- - spec/models/dorsale/billing_machine_spec.rb
974
- - spec/models/dorsale/i18n_spec.rb
975
- - spec/models/dorsale/alexandrie/attachment_spec.rb
976
- - spec/models/dorsale/alexandrie/attachment_type_spec.rb
977
- - spec/models/dorsale/expense_gun/expense_spec.rb
978
- - spec/models/dorsale/expense_gun/expense_line_spec.rb
979
- - spec/models/dorsale/expense_gun/category_spec.rb
980
- - spec/models/dorsale/email_spec.rb
981
- - spec/models/dorsale/customer_vault/person_spec.rb
982
- - spec/models/dorsale/customer_vault/individual_spec.rb
983
- - spec/models/dorsale/customer_vault/activity_type_spec.rb
984
- - spec/models/dorsale/customer_vault/origin_spec.rb
985
- - spec/models/dorsale/customer_vault/event_spec.rb
986
- - spec/models/dorsale/customer_vault/corporation_spec.rb
987
- - spec/models/dorsale/customer_vault/link_spec.rb
988
- - spec/models/dorsale/users_spec.rb
989
- - spec/models/dorsale/billing_machine/quotation_line_spec.rb
990
- - spec/models/dorsale/billing_machine/quotation_spec.rb
991
- - spec/models/dorsale/billing_machine/invoice_line_spec.rb
992
- - spec/models/dorsale/billing_machine/invoice_spec.rb
993
- - spec/models/dorsale/comment_spec.rb
994
- - spec/models/dorsale/flyboy/task_spec.rb
995
- - spec/models/dorsale/flyboy/task_comment_spec.rb
996
- - spec/models/dorsale/address_spec.rb
997
- - spec/sorters/dorsale/expense_gun/expenses_sorter_spec.rb
998
- - spec/support/devise.rb
999
- - spec/support/message_delivery.rb
1000
- - spec/factories/expense_gun_categories.rb
1001
- - spec/factories/dorsale_addresses.rb
1002
- - spec/factories/billing_machine_invoice_lines.rb
1003
- - spec/factories/customer_vault_origins.rb
1004
- - spec/factories/customer_vault_links.rb
971
+ - spec/controllers/dorsale/alexandrie/attachments_controller_spec.rb
972
+ - spec/controllers/dorsale/billing_machine/invoices_controller_spec.rb
973
+ - spec/controllers/dorsale/billing_machine/quotations_controller_spec.rb
974
+ - spec/controllers/dorsale/comments_controller_spec.rb
975
+ - spec/controllers/dorsale/customer_vault/events_controller_spec.rb
976
+ - spec/controllers/dorsale/customer_vault/people_controller_spec.rb
977
+ - spec/controllers/dorsale/expense_gun/expenses_controller_spec.rb
978
+ - spec/controllers/dorsale/flyboy/task_comments_controller_spec.rb
979
+ - spec/controllers/dorsale/flyboy/tasks_controller_spec.rb
980
+ - spec/factories/alexandrie_attachment_types.rb
1005
981
  - spec/factories/alexandrie_attachments.rb
1006
- - spec/factories/customer_vault_event.rb
982
+ - spec/factories/billing_machine_invoice_lines.rb
1007
983
  - spec/factories/billing_machine_invoices.rb
1008
- - spec/factories/customer_vault_activity_types.rb
1009
984
  - spec/factories/billing_machine_payment_terms.rb
1010
- - spec/factories/customer_vault_corporations.rb
1011
- - spec/factories/expense_gun_expenses.rb
1012
- - spec/factories/alexandrie_attachment_types.rb
985
+ - spec/factories/billing_machine_quotation_lines.rb
1013
986
  - spec/factories/billing_machine_quotations.rb
1014
- - spec/factories/flyboy_tasks.rb
987
+ - spec/factories/customer_vault_activity_types.rb
988
+ - spec/factories/customer_vault_corporations.rb
989
+ - spec/factories/customer_vault_event.rb
1015
990
  - spec/factories/customer_vault_individuals.rb
1016
- - spec/factories/billing_machine_quotation_lines.rb
1017
- - spec/factories/expense_gun_expense_lines.rb
991
+ - spec/factories/customer_vault_links.rb
992
+ - spec/factories/customer_vault_origins.rb
993
+ - spec/factories/dorsale_addresses.rb
1018
994
  - spec/factories/dorsale_comments.rb
995
+ - spec/factories/expense_gun_categories.rb
996
+ - spec/factories/expense_gun_expense_lines.rb
997
+ - spec/factories/expense_gun_expenses.rb
1019
998
  - spec/factories/flyboy_task_comments.rb
999
+ - spec/factories/flyboy_tasks.rb
1020
1000
  - spec/files/avatar.png
1021
1001
  - spec/files/pdf.pdf
1022
- - spec/pdfs/dorsale/expense_gun/expense_pdf_spec.rb
1002
+ - spec/mailers/user_mailer_spec.rb
1003
+ - spec/models/dorsale/address_spec.rb
1004
+ - spec/models/dorsale/alexandrie/attachment_spec.rb
1005
+ - spec/models/dorsale/alexandrie/attachment_type_spec.rb
1006
+ - spec/models/dorsale/billing_machine/invoice_line_spec.rb
1007
+ - spec/models/dorsale/billing_machine/invoice_spec.rb
1008
+ - spec/models/dorsale/billing_machine/quotation_line_spec.rb
1009
+ - spec/models/dorsale/billing_machine/quotation_spec.rb
1010
+ - spec/models/dorsale/billing_machine_spec.rb
1011
+ - spec/models/dorsale/comment_spec.rb
1012
+ - spec/models/dorsale/customer_vault/activity_type_spec.rb
1013
+ - spec/models/dorsale/customer_vault/corporation_spec.rb
1014
+ - spec/models/dorsale/customer_vault/event_spec.rb
1015
+ - spec/models/dorsale/customer_vault/individual_spec.rb
1016
+ - spec/models/dorsale/customer_vault/link_spec.rb
1017
+ - spec/models/dorsale/customer_vault/origin_spec.rb
1018
+ - spec/models/dorsale/customer_vault/person_spec.rb
1019
+ - spec/models/dorsale/email_spec.rb
1020
+ - spec/models/dorsale/expense_gun/category_spec.rb
1021
+ - spec/models/dorsale/expense_gun/expense_line_spec.rb
1022
+ - spec/models/dorsale/expense_gun/expense_spec.rb
1023
+ - spec/models/dorsale/flyboy/task_comment_spec.rb
1024
+ - spec/models/dorsale/flyboy/task_spec.rb
1025
+ - spec/models/dorsale/i18n_spec.rb
1026
+ - spec/models/dorsale/users_spec.rb
1027
+ - spec/pdfs/dorsale/billing_machine/invoice_multiple_vat_pdf_spec.rb
1023
1028
  - spec/pdfs/dorsale/billing_machine/invoice_single_vat_pdf_spec.rb
1024
1029
  - spec/pdfs/dorsale/billing_machine/quotation_multiple_vat_pdf_spec.rb
1025
1030
  - spec/pdfs/dorsale/billing_machine/quotation_single_vat_pdf_spec.rb
1026
- - spec/pdfs/dorsale/billing_machine/invoice_multiple_vat_pdf_spec.rb
1031
+ - spec/pdfs/dorsale/expense_gun/expense_pdf_spec.rb
1032
+ - spec/rails_helper.rb
1027
1033
  - spec/routing/dorsale/alexandrie/attachments_routing_spec.rb
1034
+ - spec/routing/dorsale/billing_machine/invoices_routing_spec.rb
1035
+ - spec/routing/dorsale/billing_machine/quotations_routing_spec.rb
1028
1036
  - spec/routing/dorsale/comments_routing_spec.rb
1029
- - spec/routing/dorsale/expense_gun/expenses_routing_spec.rb
1030
- - spec/routing/dorsale/users_routing_spec.rb
1031
1037
  - spec/routing/dorsale/customer_vault/activity_types_routing_spec.rb
1038
+ - spec/routing/dorsale/customer_vault/events_routing_spec.rb
1032
1039
  - spec/routing/dorsale/customer_vault/origins_routing_spec.rb
1033
1040
  - spec/routing/dorsale/customer_vault/people_routing_spec.rb
1034
- - spec/routing/dorsale/customer_vault/events_routing_spec.rb
1035
- - spec/routing/dorsale/billing_machine/quotations_routing_spec.rb
1036
- - spec/routing/dorsale/billing_machine/invoices_routing_spec.rb
1037
- - spec/routing/dorsale/flyboy/tasks_routing_spec.rb
1041
+ - spec/routing/dorsale/expense_gun/expenses_routing_spec.rb
1038
1042
  - spec/routing/dorsale/flyboy/task_comments_routing_spec.rb
1039
- - spec/controllers/dorsale/alexandrie/attachments_controller_spec.rb
1040
- - spec/controllers/dorsale/comments_controller_spec.rb
1041
- - spec/controllers/dorsale/expense_gun/expenses_controller_spec.rb
1042
- - spec/controllers/dorsale/customer_vault/events_controller_spec.rb
1043
- - spec/controllers/dorsale/customer_vault/people_controller_spec.rb
1044
- - spec/controllers/dorsale/billing_machine/invoices_controller_spec.rb
1045
- - spec/controllers/dorsale/billing_machine/quotations_controller_spec.rb
1046
- - spec/controllers/dorsale/flyboy/tasks_controller_spec.rb
1047
- - spec/controllers/dorsale/flyboy/task_comments_controller_spec.rb
1048
- - spec/rails_helper.rb
1049
- - spec/services/dorsale/expense_gun/expense/copy_spec.rb
1050
- - spec/services/dorsale/billing_machine/quotation/statistics.rb
1043
+ - spec/routing/dorsale/flyboy/tasks_routing_spec.rb
1044
+ - spec/routing/dorsale/users_routing_spec.rb
1051
1045
  - spec/services/dorsale/billing_machine/quotation/copy_spec.rb
1046
+ - spec/services/dorsale/billing_machine/quotation/statistics.rb
1052
1047
  - spec/services/dorsale/billing_machine/quotation/to_invoice_spec.rb
1048
+ - spec/services/dorsale/expense_gun/expense/copy_spec.rb
1053
1049
  - spec/services/dorsale/flyboy/task/copy_spec.rb
1054
1050
  - spec/services/dorsale/flyboy/task/snoozer_spec.rb
1055
- - features/customer_vault_people.feature
1056
- - features/expense_gun_categories.feature
1057
- - features/customer_vault_activity_types.feature
1058
- - features/users_management.feature
1059
- - features/customer_vault_individuals.feature
1060
- - features/billing_machine_quotations.feature
1061
- - features/expense_gun_expenses.feature
1051
+ - spec/sorters/dorsale/expense_gun/expenses_sorter_spec.rb
1052
+ - spec/spec_helper.rb
1053
+ - spec/support/devise.rb
1054
+ - spec/support/message_delivery.rb
1062
1055
  - features/access.feature
1063
- - features/flyboy_tasks_summary.feature
1064
- - features/customer_vault_corporations.feature
1065
1056
  - features/billing_machine_invoices.feature
1066
- - features/support/env.rb
1067
- - features/customer_vault_search.feature
1057
+ - features/billing_machine_multiple_vat.feature
1068
1058
  - features/billing_machine_payment_terms.feature
1059
+ - features/billing_machine_quotations.feature
1060
+ - features/customer_vault_activity_types.feature
1061
+ - features/customer_vault_corporations.feature
1062
+ - features/customer_vault_filters.feature
1063
+ - features/customer_vault_individuals.feature
1064
+ - features/customer_vault_invoices.feature
1065
+ - features/customer_vault_links.feature
1069
1066
  - features/customer_vault_origins.feature
1070
- - features/billing_machine_multiple_vat.feature
1071
- - features/step_definitions/customer_vault_filters_steps.rb
1072
- - features/step_definitions/billing_machine_quotations_steps.rb
1073
- - features/step_definitions/customer_vault_search_steps.rb
1074
- - features/step_definitions/expense_gun_expenses_steps.rb
1075
- - features/step_definitions/customer_vault_corporations_steps.rb
1076
- - features/step_definitions/tasks_summary_steps.rb
1077
- - features/step_definitions/flyboy_tasks_steps.rb
1078
- - features/step_definitions/customer_vault_individuals_steps.rb
1079
- - features/step_definitions/billing_machine_payment_terms_steps.rb
1067
+ - features/customer_vault_people.feature
1068
+ - features/customer_vault_search.feature
1069
+ - features/customer_vault_tasks.feature
1070
+ - features/expense_gun_categories.feature
1071
+ - features/expense_gun_expenses.feature
1072
+ - features/flyboy_task_comments.feature
1073
+ - features/flyboy_tasks.feature
1074
+ - features/flyboy_tasks_summary.feature
1075
+ - features/step_definitions/access_steps.rb
1080
1076
  - features/step_definitions/alexandrie_steps.rb
1081
1077
  - features/step_definitions/billing_machine_invoices_steps.rb
1082
1078
  - features/step_definitions/billing_machine_multiple_vat.rb
1079
+ - features/step_definitions/billing_machine_payment_terms_steps.rb
1080
+ - features/step_definitions/billing_machine_quotations_steps.rb
1081
+ - features/step_definitions/common_steps.rb
1082
+ - features/step_definitions/customer_vault_activity_types_steps.rb
1083
+ - features/step_definitions/customer_vault_corporations_steps.rb
1084
+ - features/step_definitions/customer_vault_filters_steps.rb
1085
+ - features/step_definitions/customer_vault_individuals_steps.rb
1083
1086
  - features/step_definitions/customer_vault_invoices_steps.rb
1087
+ - features/step_definitions/customer_vault_links_steps.rb
1088
+ - features/step_definitions/customer_vault_origins_steps.rb
1084
1089
  - features/step_definitions/customer_vault_people_steps.rb
1085
- - features/step_definitions/users_management_step.rb
1090
+ - features/step_definitions/customer_vault_search_steps.rb
1091
+ - features/step_definitions/customer_vault_tasks_steps.rb
1086
1092
  - features/step_definitions/expense_gun_categories_steps.rb
1087
- - features/step_definitions/customer_vault_origins_steps.rb
1093
+ - features/step_definitions/expense_gun_expenses_steps.rb
1088
1094
  - features/step_definitions/flyboy_task_comments_steps.rb
1089
- - features/step_definitions/customer_vault_activity_types_steps.rb
1090
- - features/step_definitions/customer_vault_tasks_steps.rb
1091
- - features/step_definitions/common_steps.rb
1092
- - features/step_definitions/access_steps.rb
1093
- - features/step_definitions/customer_vault_links_steps.rb
1094
- - features/customer_vault_invoices.feature
1095
- - features/customer_vault_links.feature
1096
- - features/customer_vault_filters.feature
1097
- - features/flyboy_task_comments.feature
1098
- - features/customer_vault_tasks.feature
1099
- - features/flyboy_tasks.feature
1095
+ - features/step_definitions/flyboy_tasks_steps.rb
1096
+ - features/step_definitions/tasks_summary_steps.rb
1097
+ - features/step_definitions/users_management_step.rb
1098
+ - features/support/env.rb
1099
+ - features/users_management.feature