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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +9 -3
- data/app/controllers/dorsale/billing_machine/application_controller.rb +1 -1
- data/app/helpers/dorsale/alexandrie/attachments_helper.rb +1 -1
- data/app/helpers/dorsale/comments_helper.rb +2 -2
- data/app/helpers/dorsale/customer_vault/application_helper.rb +1 -1
- data/app/helpers/dorsale/flyboy/application_helper.rb +2 -2
- data/app/models/dorsale/billing_machine/quotation.rb +6 -6
- data/app/models/dorsale/customer_vault/person.rb +1 -1
- data/app/models/dorsale/flyboy/task.rb +1 -1
- data/app/pdfs/dorsale/billing_machine/invoice_multiple_vat_pdf.rb +12 -10
- data/app/pdfs/dorsale/billing_machine/invoice_single_vat_pdf.rb +22 -20
- data/app/services/dorsale/billing_machine/invoice/statistics.rb +3 -3
- data/app/services/dorsale/billing_machine/quotation/statistics.rb +3 -3
- data/features/step_definitions/billing_machine_invoices_steps.rb +1 -1
- data/features/step_definitions/customer_vault_corporations_steps.rb +1 -1
- data/features/step_definitions/customer_vault_people_steps.rb +1 -1
- data/features/step_definitions/flyboy_tasks_steps.rb +1 -1
- data/lib/dorsale/engine.rb +6 -0
- data/lib/dorsale/version.rb +1 -1
- data/spec/controllers/dorsale/customer_vault/people_controller_spec.rb +2 -2
- data/spec/controllers/dorsale/expense_gun/expenses_controller_spec.rb +4 -4
- data/spec/controllers/dorsale/flyboy/task_comments_controller_spec.rb +1 -1
- data/spec/controllers/dorsale/flyboy/tasks_controller_spec.rb +2 -2
- data/spec/factories/customer_vault_individuals.rb +1 -1
- data/spec/factories/expense_gun_expenses.rb +1 -1
- data/spec/models/dorsale/billing_machine/invoice_line_spec.rb +5 -5
- data/spec/models/dorsale/billing_machine/invoice_spec.rb +5 -5
- data/spec/models/dorsale/billing_machine/quotation_line_spec.rb +5 -5
- data/spec/models/dorsale/billing_machine/quotation_spec.rb +4 -4
- data/spec/models/dorsale/customer_vault/individual_spec.rb +2 -2
- data/spec/models/dorsale/customer_vault/person_spec.rb +1 -1
- data/spec/models/dorsale/expense_gun/expense_line_spec.rb +1 -1
- data/spec/models/dorsale/flyboy/task_comment_spec.rb +5 -5
- data/spec/models/dorsale/flyboy/task_spec.rb +2 -2
- metadata +103 -103
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 56b219a64478090857cda126c0be0a10601039d5d5ca2ccb122e22dedf24e1f1
|
4
|
+
data.tar.gz: 3f0880733c208194536f26390e5a2bd9f9c457921dc09bc6ee9400cf9d34c799
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
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
|
-
|
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
|
-
|
20
|
+
## 3.18.0
|
15
21
|
- Change uploaders `extension_whitelist` to `extension_allowlist`
|
16
22
|
- Rails 6.1 compatibility
|
17
23
|
|
@@ -1,6 +1,6 @@
|
|
1
1
|
module Dorsale::CommentsHelper
|
2
2
|
def comments_for(commentable)
|
3
|
-
comments = policy_scope(::Dorsale::Comment).where(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
|
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
|
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:
|
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
|
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:
|
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
|
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
|
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
|
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
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
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
|
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
|
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
|
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
|
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:
|
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
|
-
|
217
|
-
|
218
|
-
|
219
|
-
|
220
|
-
|
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
|
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
|
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
|
-
.
|
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
|
-
.
|
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
|
-
.
|
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
|
-
.
|
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
|
-
.
|
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
|
-
.
|
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:
|
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:
|
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:
|
11
|
+
@comment = create(:customer_vault_event_comment, person: @person, text:)
|
12
12
|
end
|
13
13
|
|
14
14
|
Then(/^I see the truncated comment$/) do
|
data/lib/dorsale/engine.rb
CHANGED
@@ -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
|
data/lib/dorsale/version.rb
CHANGED
@@ -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:
|
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:
|
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:
|
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
|
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
|
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
|
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:
|
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:
|
7
|
+
email { Faker::Internet.email(name:) }
|
8
8
|
title { "Individual-Title" }
|
9
9
|
twitter { "#{first_name}#{last_name}" }
|
10
10
|
www { Faker::Internet.url }
|
@@ -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 =>
|
34
|
-
line2 = create(:billing_machine_invoice_line, :created_at =>
|
35
|
-
line3 = create(:billing_machine_invoice_line, :created_at =>
|
36
|
-
line4 = create(:billing_machine_invoice_line, :created_at =>
|
37
|
-
line3.update!(:created_at =>
|
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
|
133
|
-
line2 = create(:billing_machine_invoice_line, invoice
|
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
|
139
|
+
line1 = create(:billing_machine_invoice_line, invoice:, vat_rate: 10)
|
140
140
|
|
141
141
|
expect {
|
142
|
-
line2 = create(:billing_machine_invoice_line, invoice
|
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
|
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 =>
|
34
|
-
line2 = create(:billing_machine_quotation_line, :created_at =>
|
35
|
-
line3 = create(:billing_machine_quotation_line, :created_at =>
|
36
|
-
line4 = create(:billing_machine_quotation_line, :created_at =>
|
37
|
-
line3.update!(:created_at =>
|
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
|
87
|
-
line2 = create(:billing_machine_quotation_line, quotation
|
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
|
93
|
+
line1 = create(:billing_machine_quotation_line, quotation:, vat_rate: 10)
|
94
94
|
|
95
95
|
expect {
|
96
|
-
line2 = create(:billing_machine_quotation_line, quotation
|
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:
|
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:
|
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:
|
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:
|
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:
|
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:
|
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:
|
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
|
48
|
-
comment2 = create(:flyboy_task_comment, task
|
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:
|
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:
|
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:
|
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-
|
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:
|
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.
|
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/
|
972
|
-
- spec/
|
973
|
-
- spec/
|
974
|
-
- spec/
|
975
|
-
- spec/
|
976
|
-
- spec/
|
977
|
-
- spec/
|
978
|
-
- spec/
|
979
|
-
- spec/
|
980
|
-
- spec/
|
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/
|
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/
|
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/
|
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/
|
1017
|
-
- spec/factories/
|
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/
|
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/
|
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/
|
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/
|
1040
|
-
- spec/
|
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
|
-
-
|
1056
|
-
-
|
1057
|
-
-
|
1058
|
-
-
|
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/
|
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/
|
1071
|
-
- features/
|
1072
|
-
- features/
|
1073
|
-
- features/
|
1074
|
-
- features/
|
1075
|
-
- features/
|
1076
|
-
- features/
|
1077
|
-
- features/
|
1078
|
-
- features/step_definitions/
|
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/
|
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/
|
1093
|
+
- features/step_definitions/expense_gun_expenses_steps.rb
|
1088
1094
|
- features/step_definitions/flyboy_task_comments_steps.rb
|
1089
|
-
- features/step_definitions/
|
1090
|
-
- features/step_definitions/
|
1091
|
-
- features/step_definitions/
|
1092
|
-
- features/
|
1093
|
-
- features/
|
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
|