fix: 统一报工归属金额舍入
This commit is contained in:
@@ -230,6 +230,26 @@ def test_item_split_fields_keep_original_totals_after_rounding_residual():
|
||||
assert round(sum(row.reference_wage for row in rows), 2) == 1
|
||||
|
||||
|
||||
def test_reference_wage_uses_half_up_rounding_for_allocation_totals():
|
||||
item = _item(good_qty=115, process_unit_price_yuan=Decimal("0.867"))
|
||||
report = _report(datetime(2026, 7, 25, 8, 0), datetime(2026, 7, 25, 10, 0), item)
|
||||
|
||||
rows = build_report_allocation_drafts(report)
|
||||
|
||||
assert len(rows) == 1
|
||||
assert rows[0].reference_wage == 99.71
|
||||
|
||||
|
||||
def test_split_reference_wage_residual_keeps_half_up_item_total():
|
||||
item = _item(good_qty=115, process_unit_price_yuan=Decimal("0.867"))
|
||||
report = _report(datetime(2026, 7, 25, 0, 10), datetime(2026, 7, 25, 11, 0), item)
|
||||
|
||||
rows = build_report_allocation_drafts(report)
|
||||
|
||||
assert [row.allocation_date for row in rows] == [date(2026, 7, 24), date(2026, 7, 25)]
|
||||
assert round(sum(row.reference_wage for row in rows), 2) == 99.71
|
||||
|
||||
|
||||
def test_items_sharing_same_started_at_split_the_segment_minutes():
|
||||
started_at = datetime(2026, 7, 25, 8, 0)
|
||||
first_item = _item(id=1, good_qty=10, started_at=started_at)
|
||||
|
||||
Reference in New Issue
Block a user