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