Commit a0a791bb authored by Mahmoud Aglan's avatar Mahmoud Aglan

fix(sports): send subscription to cashier queue after coach assessment

After coach assesses and assigns player to group, the monthly subscription
payment request is now sent to the cashier queue (payment_type=sports_subscription,
entity_type=sa_subscriptions). When cashier completes it, the event listener
auto-marks the subscription as paid.
Co-Authored-By: 's avatarClaude Opus 4.6 <noreply@anthropic.com>
parent 00b63658
...@@ -158,11 +158,12 @@ final class CoachAssessmentService ...@@ -158,11 +158,12 @@ final class CoachAssessmentService
'updated_at' => date('Y-m-d H:i:s'), 'updated_at' => date('Y-m-d H:i:s'),
], 'id = ?', [$registrationId]); ], 'id = ?', [$registrationId]);
$subscriptionId = null;
if ($monthlyFee > 0) { if ($monthlyFee > 0) {
$periodStart = date('Y-m-01'); $periodStart = date('Y-m-01');
$periodEnd = date('Y-m-t'); $periodEnd = date('Y-m-t');
$db->insert('sa_subscriptions', [ $subscriptionId = $db->insert('sa_subscriptions', [
'subscription_number' => self::generateSubNumber(), 'subscription_number' => self::generateSubNumber(),
'player_id' => $playerId, 'player_id' => $playerId,
'group_id' => $groupId, 'group_id' => $groupId,
...@@ -191,6 +192,21 @@ final class CoachAssessmentService ...@@ -191,6 +192,21 @@ final class CoachAssessmentService
'assessed_by' => $assessedBy, 'assessed_by' => $assessedBy,
]); ]);
if ($subscriptionId && $monthlyFee > 0) {
$memberId = (int) ($registration['member_id'] ?? 0);
$playerName = $registration['full_name_ar'] ?? '';
$groupName = $group['name_ar'] ?? '';
PaymentRequestService::createRequest([
'member_id' => $memberId,
'payment_type' => 'sports_subscription',
'amount' => (string) $monthlyFee,
'description_ar' => 'اشتراك شهري — ' . $playerName . ' — مجموعة ' . $groupName,
'related_entity_type' => 'sa_subscriptions',
'related_entity_id' => $subscriptionId,
]);
}
return [ return [
'success' => true, 'success' => true,
'enrollment_id' => $enrollmentId, 'enrollment_id' => $enrollmentId,
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment