Changes between Version 21 and Version 22 of AdvancedApplicationDevelopment


Ignore:
Timestamp:
09/30/25 09:30:29 (2 weeks ago)
Author:
223270
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • AdvancedApplicationDevelopment

    v21 v22  
    209209}}}
    210210
     2113. Се вметнуваат:
     212* TravelPackage
     213* TravelActivity за секоја активност
     214* activity_reservation за секоја активност
     215* Reservation за целиот пакет
     216* Се намалува amount за секоја активност
     217{{{
     218DB::transaction(function () use ($request) {
     219    $packageData = $request->validate([
     220        'package_name' => 'required|string|max:255',
     221        'price' => 'required|numeric',
     222        'start_date' => 'required|date',
     223        'end_date' => 'required|date|after_or_equal:start_date',
     224        'id_destination' => 'required|integer|exists:destination,id_destination'
     225    ]);
     226
     227    $package = TravelPackage::create($packageData);
     228
     229    foreach ($request->activities as $activityData) {
     230        $validatedActivity = validator($activityData, [
     231            'activity_name' => 'required|string|max:255',
     232            'information' => 'nullable|string|max:255',
     233            'category' => 'required|string|max:255',
     234            'amount' => 'nullable|numeric',
     235            'id_destination' => 'required|integer|exists:destination,id_destination'
     236        ])->validate();
     237
     238        $activity = TravelActivity::create($validatedActivity);
     239
     240        DB::table('activity_reservation')->insert([
     241            'id_user' => auth()->id(),
     242            'id_activity' => $activity->id_activity,
     243            'reservation_date' => now()
     244        ]);
     245
     246        DB::table('activity')->where('id_activity', $activity->id_activity)->decrement('amount', 1);
     247
     248        DB::table('package_activity')->insert([
     249            'id_package' => $package->id_package,
     250            'id_activity' => $activity->id_activity
     251        ]);
     252    }
     253
     254    Reservation::create([
     255        'id_user' => auth()->id(),
     256        'id_package' => $package->id_package,
     257        'time_point' => now()
     258    ]);
     259});
     260}}}
     261
    211262=== Складирани функции и процедури
    212263Функциите и процедурите се дефинирани во базата и можат да се повикуваат од апликацијата. На тој начин се централизира логиката и се олеснува одржувањето.