-
Mahmoud Aglan authored
Client clarified their earlier request: the member "special discount" dropdown should show board-approved special_discounts AND active عروض مجلس الإدارة (board_offers) cash discounts side by side, not one instead of the other — they'd stopped seeing anything they'd added under Board Offers. - Add members.special_discount_source ('special_discount'|'board_offer') and drop the hard FK on special_discount_id (a single column can no longer FK exactly one table). Integrity is now validated in MemberController::parseDiscountSelection(). - BoardOffer::allActiveWithCashDiscount() surfaces board offers that define a cash discount as selectable options. - SpecialDiscountService::resolveAssignedDiscount()/amountForType() give one place that normalizes "the member's assigned discount" across both source tables — used by BillingService's invoice line item, the show page's applied-discount banner, and the dropdown's own validation. - fill-form/edit/show views render two <optgroup>s ("عروض مجلس الإدارة" / "الخصومات الخاصة") with prefixed option values (bo:<id> / sd:<id>) so a single form field can select from either table; edit.php's live discount-amount preview now handles fixed-amount discounts too, not just percentage. Co-Authored-By:Claude Sonnet 5 <noreply@anthropic.com>
01e3b4ef
| Name |
Last commit
|
Last update |
|---|---|---|
| .. | ||
| ActivitySubscriptions.md | ||
| Authorization.md | ||
| DEPENDENCY-GRAPH.md | ||
| Dashboard.md | ||
| HR.md | ||
| Members.md | ||
| Pricing.md | ||
| Sports.md | ||
| SportsActivity.md | ||
| SportsDashboard.md | ||
| Subscriptions.md |