Files
opensourcepos/tests/Support/CashupFixtureTrait.php
T
objecttothis f5233b20e6 refactor(cashups): extract value object and focused methods in Cashups controller (#4786)
Introduce a CashupAmounts transfer object and break down large Cashups
controller methods into focused private helpers. Includes a breaking
change to constructor parameter order.

- Add CashupAmounts (TransferObjects/Cashups) to bundle open/transfer/
  closed cash, due, card, and check amounts; reorder constructor params
  to cash-before-due sequence
- Replace positional _calculate_total() with calculateTotal(CashupAmounts),
  eliminating argument-order errors
- Decompose getView() into buildEmployeeLookup(), normalizeCashupInfo(),
  initializeNewCashup(), isPendingClose(), closeCashup(),
  buildReportDateRangeInputs(), applyPaymentTotals(), subtractCashExpenses()
- Decompose postSave() with parseCashupDate() and getCashupAmountsFromPost()
  helpers; update both CashupAmounts call sites to new param order
- Rename snake_case vars/params to camelCase throughout Cashups controller
- Drop stale TODO comments in OSPOS.php and Cashups::getIndex filter block
- Scope escape => false to cashup_headers() note column rather than a
  broad regex exclusion in transform_headers()
- Add CashupFixtureTrait and ExpenseFixtureTrait under tests/Support;
  tighten cashup view test to assertSeeInField on specific form fields

BREAKING CHANGE: CashupAmounts constructor positional argument order
changed — closedAmountCash now precedes closedAmountDue; any callers
passing positional args must swap those two arguments.

Signed-off-by: objecttothis <17935339+objecttothis@users.noreply.github.com>
2026-11-02 03:59:07 +04:00

33 lines
1.0 KiB
PHP

<?php
namespace Tests\Support;
use App\Models\Cashup;
trait CashupFixtureTrait
{
protected function createCashup(int $openEmployeeId, int $closeEmployeeId, array $overrides = []): int
{
$cashupData = array_merge([
'open_date' => date('Y-m-d H:i:s'),
'close_date' => date('Y-m-d H:i:s'),
'open_amount_cash' => 0,
'transfer_amount_cash' => 0,
'closed_amount_cash' => 0,
'closed_amount_due' => 0,
'closed_amount_card' => 0,
'closed_amount_check' => 0,
'closed_amount_total' => 0,
'note' => 0,
'description' => 'Test cashup',
'open_employee_id' => $openEmployeeId,
'close_employee_id' => $closeEmployeeId,
'deleted' => 0,
], $overrides);
model(Cashup::class)->save_value($cashupData, NEW_ENTRY);
return (int) $cashupData['cashup_id'];
}
}