Skip to content

Commit c34dc67

Browse files
JanJan
andauthored
CM-742: payment cycle adjustments (#47)
Co-authored-by: Jan <[email protected]>
1 parent 430a333 commit c34dc67

File tree

1 file changed

+12
-3
lines changed

1 file changed

+12
-3
lines changed

payroll/services.py

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
from core.signals import register_service_signal
1414
from invoice.models import Bill, PaymentInvoice, DetailPaymentInvoice
1515
from invoice.services import PaymentInvoiceService
16+
from payment_cycle.models import PaymentCycle
1617
from payroll.apps import PayrollConfig
1718
from payroll.models import (
1819
PaymentPoint,
@@ -69,6 +70,7 @@ def create(self, obj_data):
6970
obj_data = self._adjust_create_payload(obj_data)
7071
from_failed_invoices_payroll_id = obj_data.pop("from_failed_invoices_payroll_id", None)
7172
payment_plan = self._get_payment_plan(obj_data)
73+
payment_cycle = self._get_payment_cycle(obj_data)
7274
date_valid_from, date_valid_to = self._get_dates_parameter(obj_data)
7375
payroll, dict_representation = self._save_payroll(obj_data)
7476
if not bool(from_failed_invoices_payroll_id):
@@ -78,7 +80,8 @@ def create(self, obj_data):
7880
beneficiaries_queryset,
7981
date_valid_from,
8082
date_valid_to,
81-
payroll
83+
payroll,
84+
payment_cycle
8285
)
8386
else:
8487
self._move_benefit_consumptions(payroll, from_failed_invoices_payroll_id)
@@ -162,6 +165,11 @@ def _get_payment_plan(self, obj_data):
162165
payment_plan = PaymentPlan.objects.get(id=payment_plan_id)
163166
return payment_plan
164167

168+
def _get_payment_cycle(self, obj_data):
169+
payment_cycle_id = obj_data.get("payment_cycle_id")
170+
payment_cycle = PaymentCycle.objects.get(id=payment_cycle_id)
171+
return payment_cycle
172+
165173
def _get_dates_parameter(self, obj_data):
166174
date_valid_from = obj_data.get('date_valid_from', None)
167175
date_valid_to = obj_data.get('date_valid_to', None)
@@ -188,14 +196,15 @@ def _select_beneficiary_based_on_criteria(self, obj_data, payment_plan):
188196

189197
return beneficiaries_queryset
190198

191-
def _generate_benefits(self, payment_plan, beneficiaries_queryset, date_from, date_to, payroll):
199+
def _generate_benefits(self, payment_plan, beneficiaries_queryset, date_from, date_to, payroll, payment_cycle):
192200
calculation = get_calculation_object(payment_plan.calculation)
193201
calculation.calculate_if_active_for_object(
194202
payment_plan,
195203
user_id=self.user.id,
196204
start_date=date_from, end_date=date_to,
197205
beneficiaries_queryset=beneficiaries_queryset,
198-
payroll=payroll
206+
payroll=payroll,
207+
payment_cycle=payment_cycle
199208
)
200209

201210
@transaction.atomic

0 commit comments

Comments
 (0)