parent
e7176b6371
commit
1378aefa9c
14 changed files with 93 additions and 35 deletions
|
|
@ -37,6 +37,23 @@ final class PricingService
|
|||
{
|
||||
return max(0, (int) round((float) str_replace(',', '.', trim($v)) * 100));
|
||||
}
|
||||
public static function adoptionFees(): array
|
||||
{
|
||||
$rows = DB::pdo()->query(
|
||||
"SELECT s.code,s.name,s.icon,COALESCE(r.fee_before_sterilization,200) fee_before_sterilization,COALESCE(r.fee_after_sterilization,220) fee_after_sterilization,COALESCE(r.is_free,0) is_free FROM ref_species s LEFT JOIN adoption_fee_rules r ON r.species_code=s.code WHERE s.active=1 ORDER BY s.sort_order,s.name COLLATE NOCASE",
|
||||
)->fetchAll(PDO::FETCH_ASSOC);
|
||||
return array_column($rows, null, 'code');
|
||||
}
|
||||
|
||||
public static function adoptionFee(string $species, bool $sterilized): ?int
|
||||
{
|
||||
$fees = self::adoptionFees();
|
||||
$rule = $fees[SpeciesService::normalize($species)] ?? null;
|
||||
if (!$rule || (int) $rule['is_free'] === 1) {
|
||||
return null;
|
||||
}
|
||||
return (int) $rule[$sterilized ? 'fee_after_sterilization' : 'fee_before_sterilization'];
|
||||
}
|
||||
public static function tariffs(bool $active = false): array
|
||||
{
|
||||
$w = $active ? 'WHERE ct.active=1 AND dc.deleted_at IS NULL' : '';
|
||||
|
|
|
|||
Loading…
Reference in a new issue