@@ -21,6 +21,7 @@ def call
2121 # NOTE: Update issuing_date on draft invoices.
2222 customer . invoices . draft . find_each do |invoice |
2323 invoice . issuing_date = invoice . issuing_date + issuing_date_adjustment ( invoice )
24+ invoice . expected_finalization_date = invoice . expected_finalization_date + grace_period_adjustment ( invoice )
2425 invoice . payment_due_date = grace_period_payment_due_date ( invoice )
2526 invoice . save!
2627 end
@@ -60,21 +61,37 @@ def set_issuing_date_settings
6061 end
6162
6263 def issuing_date_adjustment ( invoice )
63- recurring = invoice . invoice_subscriptions . first &.recurring?
64+ new_issuing_date_adjustment = new_issuing_date_service ( invoice ) . issuing_date_adjustment
65+ old_issuing_date_adjustment = old_issuing_date_service ( invoice ) . issuing_date_adjustment
6466
65- old_issuing_date_adjustment = Invoices ::IssuingDateService . new (
67+ new_issuing_date_adjustment - old_issuing_date_adjustment
68+ end
69+
70+ def grace_period_adjustment ( invoice )
71+ new_grace_period = new_issuing_date_service ( invoice ) . grace_period
72+ old_grace_period = old_issuing_date_service ( invoice ) . grace_period
73+
74+ new_grace_period - old_grace_period
75+ end
76+
77+ def old_issuing_date_service ( invoice )
78+ Invoices ::IssuingDateService . new (
6679 customer_settings : previous_issuing_date_settings ,
6780 billing_entity_settings : customer . billing_entity ,
68- recurring :
69- ) . issuing_date_adjustment
81+ recurring : recurring ( invoice )
82+ )
83+ end
7084
71- new_issuing_date_adjustment = Invoices ::IssuingDateService . new (
85+ def new_issuing_date_service ( invoice )
86+ Invoices ::IssuingDateService . new (
7287 customer_settings : customer ,
7388 billing_entity_settings : customer . billing_entity ,
74- recurring :
75- ) . issuing_date_adjustment
89+ recurring : recurring ( invoice )
90+ )
91+ end
7692
77- new_issuing_date_adjustment - old_issuing_date_adjustment
93+ def recurring ( invoice )
94+ invoice . invoice_subscriptions . first &.recurring?
7895 end
7996
8097 def grace_period_payment_due_date ( invoice )
0 commit comments