add refund logic and fix books inventory logic
Deploy to Shared Hosting / Shared hosting deploy (push) Failing after 47s
Tests / PHPUnit (push) Failing after 1m20s

This commit is contained in:
root
2026-08-22 13:44:25 -04:00
parent 23d1cbb64c
commit d906a915d6
45 changed files with 4711 additions and 442 deletions
+36
View File
@@ -0,0 +1,36 @@
<?php
namespace App\Models;
use CodeIgniter\Model;
class StudentBookIssueModel extends Model
{
protected $table = 'student_book_issues';
protected $primaryKey = 'id';
protected $returnType = 'array';
protected $useTimestamps = true;
protected $allowedFields = [
'student_id', 'enrollment_id', 'parent_id', 'inventory_item_id',
'inventory_item_year_id', 'school_year', 'class_section_id', 'quantity',
'unit_charge_price_cents', 'total_charge_cents', 'distribution_movement_id',
'idempotency_key', 'status', 'issued_at', 'issued_by', 'reversed_at',
'reversed_by', 'reversal_reason', 'reversal_quantity', 'reversal_movement_id',
];
protected $validationRules = [
'student_id' => 'required|integer',
'enrollment_id' => 'required|integer',
'parent_id' => 'required|integer',
'inventory_item_id' => 'required|integer',
'inventory_item_year_id' => 'required|integer',
'school_year' => 'required|string|max_length[16]',
'quantity' => 'required|integer|greater_than[0]',
'unit_charge_price_cents' => 'required|integer|greater_than[0]',
'total_charge_cents' => 'required|integer|greater_than[0]',
'idempotency_key' => 'required|string|max_length[160]',
'status' => 'required|in_list[issued,reversed]',
'issued_at' => 'required|valid_date[Y-m-d H:i:s]',
];
}