Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add new discount percentages as requested by rvdl #585

Merged
merged 6 commits into from
Oct 29, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 10 additions & 0 deletions app/Helpers/Payment/EventPayment.php
Original file line number Diff line number Diff line change
Expand Up @@ -58,6 +58,16 @@ public function getDiscount(): Discount
return Discount::max($this->participant->incomeBasedDiscount, $this->event->earlybirdDiscount);
}

public function isFree(): bool
{
return $this->event->prijs !== null && $this->getTotalAmount() === 0.0;
}

public function isUndetermined(): bool
{
return $this->event->prijs === null;
}

public function getTotalAmount(): float
{
return self::calculatePrice($this->event->prijs + $this->getPackagePrice(), $this->getDiscount());
Expand Down
9 changes: 8 additions & 1 deletion app/Http/Controllers/ProfileController.php
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@
use App\Models\Member;
use App\Services\Chart\ChartServiceInterface;
use Illuminate\Http\Request;
use Illuminate\Support\Carbon;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Mail;

Expand Down Expand Up @@ -387,6 +388,12 @@ public function onCampSave(Request $request)
$iDeal = $request->iDeal;
$type = 'existing';

if ($payment->isFree()) {
$camp->participants()->updateExistingPivot($participant->id, [
'datum_betaling' => Carbon::now(),
]);
}

// Send update to office committee
Mail::send(new ParticipantOnEventNotification(
$participant,
Expand All @@ -397,8 +404,8 @@ public function onCampSave(Request $request)
Mail::send(new ParticipantOnEventConfirmationMail(
$participant,
$camp,
$payment,
$givenCourses,
$toPay,
$iDeal,
$type
));
Expand Down
13 changes: 9 additions & 4 deletions app/Http/Controllers/RegistrationController.php
Original file line number Diff line number Diff line change
Expand Up @@ -289,9 +289,14 @@ public function storeParticipant(NewParticipantRequest $request)
->participant($participant)
->package($package)
->existing(false);
$toPay = $payment->getTotalAmount();
$iDeal = $request->iDeal;

if ($payment->isFree()) {
$camp->participants()->updateExistingPivot($participant->id, [
'datum_betaling' => Carbon::now(),
]);
}

// Send update to office committee
Mail::send(new NewParticipantNotification(
$participant,
Expand All @@ -304,19 +309,19 @@ public function storeParticipant(NewParticipantRequest $request)
$participant,
$camp,
$package,
$payment,
$givenCourses,
$password,
$toPay,
$iDeal
)
);

// If they want to pay with iDeal, set up the payment now
if ($iDeal === '1' && $toPay > 0) {
if ($iDeal === '1' && $payment->getTotalAmount() > 0) {
$redirectUrl = Mollie::process($payment);
return redirect($redirectUrl);
}
// Return closing view
return view('registration.participantStored', compact('participant', 'camp', 'toPay', 'incomeTable', 'package'));
return view('registration.participantStored', compact('participant', 'camp', 'incomeTable', 'package', 'payment'));
}
}
13 changes: 7 additions & 6 deletions app/Mail/participants/OnEventConfirmation.php
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@

namespace App\Mail\participants;

use App\Helpers\Payment\EventPayment;
use App\Models\Event;
use App\Models\Participant;
use Illuminate\Bus\Queueable;
Expand All @@ -17,26 +18,26 @@ class OnEventConfirmation extends Mailable

use SerializesModels;

public $participant;
public Participant $participant;

public $event;
public Event $event;

public $givenCourses;
public EventPayment $payment;

public $toPay;
public $givenCourses;

public $iDeal;

public $type;

public function __construct(Participant $participant, Event $event, $givenCourses, $toPay, $iDeal, $type)
public function __construct(Participant $participant, Event $event, EventPayment $payment, $givenCourses, $iDeal, $type)
{
$this->participant = $participant;
$this->event = $event;
$this->givenCourses = $givenCourses;
$this->toPay = $toPay;
$this->iDeal = $iDeal;
$this->type = $type;
$this->payment = $payment;
}

public function build()
Expand Down
15 changes: 8 additions & 7 deletions app/Mail/participants/ParticipantRegistrationConfirmation.php
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@

namespace App\Mail\participants;

use App\Helpers\Payment\EventPayment;
use App\Models\Event;
use App\Models\EventPackage;
use App\Models\Participant;
Expand All @@ -18,29 +19,29 @@ class ParticipantRegistrationConfirmation extends Mailable

use SerializesModels;

public $package;
public ?EventPackage $package;

public $participant;
public Participant $participant;

public $event;
public Event $event;

public EventPayment $payment;

public $givenCourses;

public $password;

public $toPay;

public $iDeal;

public function __construct(Participant $participant, Event $event, ?EventPackage $package, $givenCourses, $password, $toPay, $iDeal)
public function __construct(Participant $participant, Event $event, ?EventPackage $package, EventPayment $payment, $givenCourses, $password, $iDeal)
{
$this->participant = $participant;
$this->event = $event;
$this->givenCourses = $givenCourses;
$this->password = $password;
$this->toPay = $toPay;
$this->iDeal = $iDeal;
$this->package = $package;
$this->payment = $payment;
}

public function build()
Expand Down
8 changes: 4 additions & 4 deletions app/Models/Participant.php
Original file line number Diff line number Diff line change
Expand Up @@ -13,16 +13,16 @@ class Participant extends Model
{
public const INCOME_DESCRIPTION_TABLE = [
0 => 'Meer dan € 3400 (geen korting)',
1 => 'Tussen € 2400 en € 3400 (korting: 25%)',
1 => 'Tussen € 2400 en € 3400 (korting: 20%)',
2 => 'Tussen € 1600 en € 2400 (korting: 40%)',
3 => 'Minder dan € 1600 (korting: 60%)',
3 => 'Minder dan € 1600 (korting: 100%)',
];

public const INCOME_DISCOUNT_TABLE = [
0 => 0,
1 => 25,
1 => 20,
2 => 40,
3 => 60,
3 => 100,
];

public const INFORMATION_CHANNEL_DESCRIPTION_TABLE = [
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,12 @@
Onderaan dit bericht kunt u zien voor welke vakken u uw kind heeft opgegeven.
</p>

@if ($toPay == 0)
@if ($payment->isFree())
<p>
Uw kind staat op dit moment voorlopig ingeschreven voor het kamp.
Er is geen betaling nodig voor deze inschrijving.
</p>
@elseif ($payment->isUndetermined())
<p>
Uw kind staat op dit moment voorlopig ingeschreven voor het kamp. Om de inschrijving definitief te maken, dient u het kampgeld over te maken op onze rekening. <strong>Voor dit kamp is de prijs echter nog niet definitief vastgesteld.</strong> Zodra de prijs bekend is, ontvangt u daarover per e-mail bericht.
</p>
Expand All @@ -32,13 +37,14 @@
U heeft aangegeven het kampgeld direct via iDeal te betalen. Wanneer dit succesvol ontvangen is, ontvangt u een aparte bevestiging daarvan. Is er onverhoopt toch iets misgegaan, dan dient u het kampgeld zoals hieronder vermeld over te maken op onze rekening. Beschikbare plaatsen op een kamp worden vergeven op volgorde van betaling, dus wacht hier niet te lang mee. Uiterlijk twee weken nadat u het kampgeld heeft overgemaakt, ontvangt u per e-mail een bevestiging van de inschrijving.
</p>
@endif

<p>
BETALINGSINFORMATIE<br/>
Te betalen bedrag: € {{ $toPay }}<br/>
Te betalen bedrag: € {{ $payment->getTotalAmount() }}<br/>
Rekeningnummer: NL68 TRIO 0198 4197 83 t.n.v. Vereniging Anderwijs te Utrecht<br/>
Onder vermelding van: naam deelnemer + deze kampcode: {{ $event->code }}
</p>
blackshadev marked this conversation as resolved.
Show resolved Hide resolved

@endif

@if ($type == 'new' && $participant->inkomen)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,33 +25,39 @@
Anderwijskamp.
</p>

@if ($event->prijs === null)
@if ($payment->isUndetermined())
<p>
Uw kind staat op dit moment voorlopig ingeschreven voor het kamp. Om de inschrijving definitief te maken, dient
u het kampgeld over te maken op onze rekening. <strong>Voor dit kamp is de prijs echter nog niet definitief
vastgesteld.</strong> Zodra het kampgeld bekend is, ontvangt u daarover per e-mail bericht.
</p>
@elseif($payment->isFree())
<p>
Uw kind staat op dit moment voorlopig ingeschreven voor het kamp.
Er is geen betaling nodig voor deze inschrijving.
</p>
@else
@if ($iDeal == 0)
<p>
Uw kind staat op dit moment voorlopig ingeschreven voor het kamp. Om de inschrijving definitief te maken,
dient u het kampgeld zoals hieronder vermeld over te maken op onze rekening. Beschikbare plaatsen op een
kamp worden vegeven op volgorde van betaling, dus wacht hier niet te lang mee. Uiterlijk twee weken nadat u
kamp worden vergeven op volgorde van betaling, dus wacht hier niet te lang mee. Uiterlijk twee weken nadat u
het kampgeld heeft overgemaakt, ontvangt u per e-mail een bevestiging van de inschrijving.
</p>
@else
<p>
U heeft aangegeven het kampgeld direct via iDeal te betalen. Wanneer dit succesvol ontvangen is, ontvangt u
een aparte bevestiging daarvan. Is er onverhoopt toch iets misgegaan, dan dient u het kampgeld zoals
hieronder vermeld over te maken op onze rekening. Beschikbare plaatsen op een kamp worden vegeven op
hieronder vermeld over te maken op onze rekening. Beschikbare plaatsen op een kamp worden vergeven op
volgorde van betaling, dus wacht hier niet te lang mee. Uiterlijk twee weken nadat u het kampgeld heeft
overgemaakt, ontvangt u per e-mail een bevestiging van de inschrijving.
</p>
@endif


<p>
BETALINGSINFORMATIE<br/>
Te betalen bedrag: € {{ $toPay }}<br/>
Te betalen bedrag: € {{ $payment->getTotalAmount() }}<br/>
Rekeningnummer: NL68 TRIO 0198 4197 83 t.n.v. Vereniging Anderwijs te Utrecht<br/>
Onder vermelding van: naam deelnemer + deze kampcode: {{ $event->code }}
</p>
blackshadev marked this conversation as resolved.
Show resolved Hide resolved
Expand Down
15 changes: 10 additions & 5 deletions resources/views/registration/participantStored.blade.php
Original file line number Diff line number Diff line change
Expand Up @@ -11,11 +11,16 @@
<hr/>

<p>
U heeft uw kind succesvol ingeschreven voor een Anderwijskamp. U ontvangt een automatische bevestigingsmail op het opgegeven emailadres. Om de inschrijving definitief te maken, dient u het kampgeld over te maken op onze rekening.
@if ($toPay == 0)
<strong>Voor dit kamp is de prijs echter nog niet definitief vastgesteld.</strong> Zodra dat is gebeurd, ontvangt u daarover per email bericht.
@else
De betalingsinformatie vindt u in de bevestigingsmail. Het is handig om dit zo snel mogelijk te doen, want plaatsing voor een kamp gebeurt op volgorde van betaling.
U heeft uw kind succesvol ingeschreven voor een Anderwijskamp.
U ontvangt een automatische bevestigingsmail op het opgegeven emailadres.

@if (!$payment->isFree())
Om de inschrijving definitief te maken, dient u het kampgeld over te maken op onze rekening.
@if ($payment->isUndetermined())
<strong>Voor dit kamp is de prijs echter nog niet definitief vastgesteld.</strong> Zodra dat is gebeurd, ontvangt u daarover per email bericht.
@else
De betalingsinformatie vindt u in de bevestigingsmail. Het is handig om dit zo snel mogelijk te doen, want plaatsing voor een kamp gebeurt op volgorde van betaling.
@endif
@endif
</p>

Expand Down