Keep payroll carryovers internal
This commit is contained in:
parent
c9d7e10185
commit
f466714641
@ -14,8 +14,6 @@ from finance.models import (
|
||||
|
||||
|
||||
class PayrollStatementLineSerializer(serializers.ModelSerializer):
|
||||
is_automatic_carryover = serializers.SerializerMethodField()
|
||||
|
||||
class Meta:
|
||||
model = PayrollStatementLine
|
||||
fields = [
|
||||
@ -26,15 +24,9 @@ class PayrollStatementLineSerializer(serializers.ModelSerializer):
|
||||
"source_period_from",
|
||||
"source_period_to",
|
||||
"is_retro",
|
||||
"is_automatic_carryover",
|
||||
"calculated",
|
||||
]
|
||||
|
||||
def get_is_automatic_carryover(self, obj) -> bool:
|
||||
return obj.source_ref.startswith(
|
||||
"api:payroll-carryover:"
|
||||
) or obj.source_ref.startswith("payroll-carryover:")
|
||||
|
||||
|
||||
class PayrollStatementAcknowledgementSerializer(serializers.ModelSerializer):
|
||||
class Meta:
|
||||
@ -174,8 +166,6 @@ class OwnPayrollStatementSerializer(serializers.ModelSerializer):
|
||||
"deduction_total",
|
||||
"net_pay",
|
||||
"payment_total",
|
||||
"opening_balance",
|
||||
"closing_balance",
|
||||
"payable",
|
||||
"lines",
|
||||
"acknowledgement",
|
||||
|
||||
@ -967,7 +967,11 @@ def test_employee_api_only_returns_own_published_statement_and_no_stores_it(
|
||||
assert stranger_client.get(detail_url).status_code == 404
|
||||
detail_response = employee_client.get(detail_url)
|
||||
assert detail_response.status_code == 200
|
||||
assert len(detail_response.json()["lines"]) == 4
|
||||
detail = detail_response.json()
|
||||
assert len(detail["lines"]) == 4
|
||||
assert "opening_balance" not in detail
|
||||
assert "closing_balance" not in detail
|
||||
assert all("is_automatic_carryover" not in line for line in detail["lines"])
|
||||
assert PayrollAuditEvent.objects.filter(
|
||||
action="payroll.statement_viewed",
|
||||
actor=payroll_users["employee"],
|
||||
|
||||
@ -338,14 +338,7 @@ export function PayrollStatementDetailModal({
|
||||
Итоги расчёта
|
||||
</h4>
|
||||
</div>
|
||||
<div className="grid grid-cols-2 gap-2 sm:grid-cols-6">
|
||||
<StatCard
|
||||
label="Остаток на начало"
|
||||
value={formatPayrollMoney(
|
||||
detail.opening_balance,
|
||||
detail.currency,
|
||||
)}
|
||||
/>
|
||||
<div className="grid grid-cols-2 gap-2 sm:grid-cols-4">
|
||||
<StatCard
|
||||
label="До корректировок"
|
||||
value={formatPayrollMoney(
|
||||
@ -374,13 +367,6 @@ export function PayrollStatementDetailModal({
|
||||
detail.currency,
|
||||
)}
|
||||
/>
|
||||
<StatCard
|
||||
label="Остаток к переносу"
|
||||
value={formatPayrollMoney(
|
||||
detail.closing_balance,
|
||||
detail.currency,
|
||||
)}
|
||||
/>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
@ -425,9 +411,7 @@ export function PayrollStatementDetailModal({
|
||||
</p>
|
||||
{line.is_retro ? (
|
||||
<span className="app-badge app-badge-accent px-2 py-0.5 text-[0.65rem]">
|
||||
{line.is_automatic_carryover
|
||||
? "Автоперенос"
|
||||
: "Перерасчёт"}
|
||||
Перерасчёт
|
||||
</span>
|
||||
) : null}
|
||||
</div>
|
||||
|
||||
@ -54,7 +54,6 @@ export type PayrollStatementLine = {
|
||||
source_period_from: string | null;
|
||||
source_period_to: string | null;
|
||||
is_retro: boolean;
|
||||
is_automatic_carryover: boolean;
|
||||
calculated: boolean;
|
||||
};
|
||||
|
||||
@ -66,8 +65,6 @@ export type PayrollStatement = PayrollStatementSummary & {
|
||||
deduction_total: string;
|
||||
net_pay: string;
|
||||
payment_total: string;
|
||||
opening_balance: string;
|
||||
closing_balance: string;
|
||||
lines: PayrollStatementLine[];
|
||||
};
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user