dorsale 3.20.0 → 4.0.0

Sign up to get free protection for your applications and to get access to all the features.
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