@@ -59,8 +59,6 @@ public function index(Request $request)
5959 'badgeCount ' => $ badges ->count (),
6060 'unpickedBadges ' => $ unpickedBadges ,
6161 'canCreate ' => Gate::allows ('create ' , Badge::class),
62- 'hasFreeBadge ' => $ user ->hasFreeBadge (),
63- 'freeBadgeCopies ' => $ user ->free_badge_copies ,
6462 'prepaidBadges ' => $ prepaidBadges ,
6563 'prepaidBadgesLeft ' => $ prepaidBadgesLeft ,
6664 'event ' => $ activeEvent ? [
@@ -84,8 +82,6 @@ public function create(Request $request)
8482
8583 return Inertia::render ('Badges/BadgeForm ' , [
8684 'species ' => Species::has ('fursuits ' , count: 5 )->orWhere ('checked ' , true )->get ('name ' ),
87- 'isFree ' => $ user ->hasFreeBadge (),
88- 'freeBadgeCopies ' => $ user ->hasFreeBadge () ? $ user ->free_badge_copies : 0 ,
8985 'prepaidBadgesLeft ' => $ prepaidBadgesLeft ,
9086 ]);
9187 }
@@ -134,12 +130,11 @@ public function store(BadgeCreateRequest $request)
134130 // prepaidBadges is now a max limit, not decremented
135131 $ prepaidBadgesLeft = max (0 , $ prepaidBadges - $ orderedBadges );
136132
137- $ isFreeBadge = $ request ->user ()->hasFreeBadge ();
138133 $ isPrepaidBadge = $ prepaidBadgesLeft > 0 ;
139134
140- // Returns in cents
135+ // Returns in cents - all badges cost 2€ unless prepaid
141136 $ total = BadgeCalculationService::calculate (
142- isFreeBadge: $ isFreeBadge || $ isPrepaidBadge ,
137+ isFreeBadge: $ isPrepaidBadge , // Use prepaid logic for "free" calculation
143138 isLate: false , // No late fees in new system
144139 );
145140
@@ -155,43 +150,15 @@ public function store(BadgeCreateRequest $request)
155150 'tax ' => round ($ tax ),
156151 'total ' => round ($ total ),
157152 'dual_side_print ' => true ,
158- 'is_free_badge ' => $ isFreeBadge || $ isPrepaidBadge ,
153+ 'is_free_badge ' => $ isPrepaidBadge ,
159154 'apply_late_fee ' => false , // No late fees in new system
160155 'paid_at ' => $ total === 0 ? now () : null ,
161156 ]);
162157 // Pay for Badge (force pay as we allow negative balance)
163158 $ request ->user ()->forcePay ($ badge );
164159
165- // No longer decrement prepaid_badges, just use as max limit
166-
167- if ($ isFreeBadge ) {
168- $ eventUser = $ request ->user ()->eventUser ($ event ->id );
169- $ freeBadgeCopies = $ eventUser ? $ eventUser ->free_badge_copies : 0 ;
170-
171- $ total = BadgeCalculationService::calculate (isSpareCopy: true );
172- for ($ i = 0 ; $ i < $ freeBadgeCopies ; $ i ++) {
173- $ clone = $ badge ->replicate ();
174- $ clone ->is_free_badge = false ;
175- $ clone ->extra_copy = true ;
176- $ clone ->total = round ($ total );
177- $ clone ->subtotal = round ($ total / 1.19 );
178- $ clone ->tax = round ($ clone ->total - $ clone ->subtotal );
179- $ clone ->extra_copy_of = $ badge ->id ;
180- $ clone ->save ();
181- $ request ->user ()->forcePay ($ clone ->fresh ());
182- }
183- $ request ->user ()->wallet ->deposit ($ total * $ freeBadgeCopies , ['title ' => 'Fuirsuit Badge ' , 'description ' => 'Already paid with the EF registration system ' ]);
184-
185- // No longer update prepaid_badges to 0
186-
187- // Mark fursuitbadge as created
188- \Illuminate \Support \Facades \Http::attsrv ()
189- ->withToken ($ request ->user ()->token )
190- ->post ('/attendees/ ' .$ eventUser ->attendee_id .'/additional-info/fursuitbadge ' , [
191- 'created ' => true ,
192- ]);
193-
194- } elseif ($ validated ['upgrades ' ]['spareCopy ' ]) {
160+ // Handle spare copy if requested
161+ if ($ validated ['upgrades ' ]['spareCopy ' ]) {
195162 $ total = BadgeCalculationService::calculate (isSpareCopy: true );
196163 $ clone = $ badge ->replicate ();
197164 $ clone ->is_free_badge = false ;
0 commit comments