Files
opensourcepos/app/Models/Customer_rewards.php
Ollama 0a0a1e9aae fix: Remove type declarations from model properties and fix primaryKey bug
- Remove PHP type declarations from model property overrides to prevent fatal errors (CI4 Model declares without types)
- Fix wrong $primaryKey in Tax_jurisdiction (was 'cashup_id', now 'jurisdiction_id')
- Fix wrong $table in Customer_rewards (was 'customer_packages', now 'customers_packets')

Addresses CodeRabbit review comments
2026-04-16 19:37:52 +00:00

101 lines
2.5 KiB
PHP

<?php
namespace App\Models;
use CodeIgniter\Database\ResultInterface;
class Customer_rewards extends BaseModel
{
protected $table = 'customers_packages';
protected $primaryKey = 'package_id';
protected $useAutoIncrement = true;
protected $useSoftDeletes = false;
protected $allowedFields = [
'package_name',
'points_percent',
'deleted'
];
/**
* @param int $package_id
* @return bool
*/
public function exists(int $package_id): bool
{
$builder = $this->db->table('customers_packages');
$builder->where('package_id', $package_id);
return ($builder->get()->getNumRows() >= 1);
}
/**
* @param array $package_data
* @param int $package_id
* @return bool
*/
public function save_value(array $package_data, int $package_id): bool
{
$package_data_to_save = [
'package_name' => $package_data['package_name'],
'deleted' => 0,
'points_percent' => $package_data['points_percent']
];
if (!$this->exists($package_id)) {
$builder = $this->db->table('customers_packages');
return $builder->insert($package_data_to_save);
}
$builder = $this->db->table('customers_packages');
$builder->where('package_id', $package_id);
return $builder->update($package_data_to_save);
}
/**
* @param int $package_id
* @return string
*/
public function get_name(int $package_id): string
{
$builder = $this->db->table('customers_packages');
$builder->where('package_id', $package_id);
return $builder->get()->getRow()->package_name;
}
/**
* @param int $package_id
* @return float
*/
public function get_points_percent(int $package_id): float
{
$builder = $this->db->table('customers_packages');
$builder->where('package_id', $package_id);
return $builder->get()->getRow()->points_percent;
}
/**
* @return ResultInterface
*/
public function get_all(): ResultInterface
{
$builder = $this->db->table('customers_packages');
$builder->where('deleted', 0);
return $builder->get();
}
/**
* Deletes one reward package
*/
public function delete($package_id = null, bool $purge = false): bool
{
$builder = $this->db->table('customers_packages');
$builder->where('package_id', $package_id);
return $builder->update(['deleted' => 1]);
}
}