fix: show proper transaction type labels on loyalty terminal
Some checks failed
CI / ruff (push) Successful in 10s
CI / validate (push) Has been cancelled
CI / dependency-scanning (push) Has been cancelled
CI / docs (push) Has been cancelled
CI / deploy (push) Has been cancelled
CI / pytest (push) Has been cancelled

Replace naive points_delta > 0 check with actual transaction_type
labels. Previously card_created showed as "Redeemed" because
points_delta was 0. Now uses a label map matching all TransactionType
enum values with appropriate color coding.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-02-24 22:56:06 +01:00
parent 56afb9192b
commit d0d5aadaf7
2 changed files with 34 additions and 5 deletions

View File

@@ -263,6 +263,38 @@ function storeLoyaltyTerminal() {
},
// Format number
getTransactionLabel(tx) {
const labels = {
'card_created': 'Enrolled',
'welcome_bonus': 'Welcome Bonus',
'stamp_earned': 'Stamp Earned',
'stamp_redeemed': 'Stamp Redeemed',
'stamp_voided': 'Stamp Voided',
'stamp_adjustment': 'Stamp Adjusted',
'points_earned': 'Points Earned',
'points_redeemed': 'Points Redeemed',
'points_voided': 'Points Voided',
'points_adjustment': 'Points Adjusted',
'points_expired': 'Points Expired',
'card_deactivated': 'Deactivated',
};
return labels[tx.transaction_type] || tx.transaction_type?.replace(/_/g, ' ') || 'Unknown';
},
getTransactionColor(tx) {
const type = tx.transaction_type || '';
if (['card_created', 'welcome_bonus', 'stamp_earned', 'points_earned'].includes(type)) {
return 'text-green-700 bg-green-100 dark:bg-green-700 dark:text-green-100';
}
if (['stamp_redeemed', 'points_redeemed'].includes(type)) {
return 'text-blue-700 bg-blue-100 dark:bg-blue-700 dark:text-blue-100';
}
if (['stamp_voided', 'points_voided', 'points_expired', 'card_deactivated'].includes(type)) {
return 'text-red-700 bg-red-100 dark:bg-red-700 dark:text-red-100';
}
return 'text-gray-700 bg-gray-100 dark:bg-gray-700 dark:text-gray-100';
},
formatNumber(num) {
if (num === null || num === undefined) return '0';
return new Intl.NumberFormat('en-US').format(num);