Fix on update attendee status

Change-Id: I90bfa077bdeab331fe1c741e3a030350dcf18700
Signed-off-by: smarcet <smarcet@gmail.com>
This commit is contained in:
smarcet 2020-12-11 09:48:15 -03:00
parent b025fb244c
commit a0d7bbd308
6 changed files with 18 additions and 17 deletions

View File

@ -30,6 +30,7 @@ class SummitAttendeeSerializer extends SilverStripeSerializer
'Email' => 'email:json_string', 'Email' => 'email:json_string',
'CompanyName' => 'company:json_string', 'CompanyName' => 'company:json_string',
'DisclaimerAcceptedDate' => 'disclaimer_accepted_date:datetime_epoch', 'DisclaimerAcceptedDate' => 'disclaimer_accepted_date:datetime_epoch',
'DisclaimerAccepted' => 'disclaimer_accepted:json_boolean',
'Status' => 'status:json_string', 'Status' => 'status:json_string',
]; ];

View File

@ -94,7 +94,7 @@ final class SummitAttendeeFactory
if (isset($payload['disclaimer_accepted']) && !empty($payload['disclaimer_accepted'])) { if (isset($payload['disclaimer_accepted']) && !empty($payload['disclaimer_accepted'])) {
$disclaimer_accepted = boolval($payload['disclaimer_accepted']); $disclaimer_accepted = boolval($payload['disclaimer_accepted']);
if ($disclaimer_accepted && !$attendee->hasDisclaimerAccepted()) { if ($disclaimer_accepted && !$attendee->isDisclaimerAccepted()) {
$attendee->setDisclaimerAcceptedDate $attendee->setDisclaimerAcceptedDate
( (
new \DateTime('now', new \DateTimeZone('UTC')) new \DateTime('now', new \DateTimeZone('UTC'))

View File

@ -478,7 +478,7 @@ class SummitAttendee extends SilverstripeBaseModel
/** /**
* @return bool * @return bool
*/ */
public function hasDisclaimerAccepted():bool{ public function isDisclaimerAccepted():bool{
return !is_null($this->disclaimer_accepted_date); return !is_null($this->disclaimer_accepted_date);
} }
@ -592,7 +592,7 @@ class SummitAttendee extends SilverstripeBaseModel
$is_disclaimer_mandatory = $this->summit->isRegistrationDisclaimerMandatory(); $is_disclaimer_mandatory = $this->summit->isRegistrationDisclaimerMandatory();
// mandatory fields // mandatory fields
if($is_disclaimer_mandatory && !$this->hasDisclaimerAccepted()){ if($is_disclaimer_mandatory && !$this->isDisclaimerAccepted()){
$this->status = self::StatusIncomplete; $this->status = self::StatusIncomplete;
Log::debug(sprintf("SummitAttendee::updateStatus StatusIncomplete for attendee %s (disclaimer mandatory)", $this->id)); Log::debug(sprintf("SummitAttendee::updateStatus StatusIncomplete for attendee %s (disclaimer mandatory)", $this->id));
return $this->status; return $this->status;

View File

@ -359,12 +359,12 @@ final class AttendeeService extends AbstractService implements IAttendeeService
$attendee->sendRevocationTicketEmail($ticket); $attendee->sendRevocationTicketEmail($ticket);
$attendee->removeTicket($ticket); $attendee->removeTicket($ticket);
$attendee->updateStatus();
$new_owner->addTicket($ticket); $new_owner->addTicket($ticket);
$ticket->generateQRCode(); $ticket->generateQRCode();
$ticket->generateHash(); $ticket->generateHash();
$new_owner->updateStatus();
$new_owner->sendInvitationEmail($ticket); $new_owner->sendInvitationEmail($ticket);
return $ticket; return $ticket;

View File

@ -311,7 +311,7 @@ final class RegistrationIngestionService
if ($refunded) { if ($refunded) {
$ticket->setRefunded(); $ticket->setRefunded();
} }
$attendee->updateStatus();
$order->addTicket($ticket); $order->addTicket($ticket);
$ticket->generateQRCode(); $ticket->generateQRCode();
$ticket->generateHash(); $ticket->generateHash();

View File

@ -347,7 +347,7 @@ final class ReserveOrderTask extends AbstractTask
], ],
$this->member_repository->getByEmail($attendee_email) $this->member_repository->getByEmail($attendee_email)
); );
$attendee->updateStatus();
$local_attendees[$attendee_email] = $attendee; $local_attendees[$attendee_email] = $attendee;
$ticket->setOwner($attendee); $ticket->setOwner($attendee);
} }
@ -1188,7 +1188,7 @@ final class SummitOrderService
$ticket->generateQRCode(); $ticket->generateQRCode();
$ticket->generateHash(); $ticket->generateHash();
$attendee->updateStatus();
$attendee->sendInvitationEmail($ticket); $attendee->sendInvitationEmail($ticket);
return $ticket; return $ticket;
@ -2505,7 +2505,7 @@ final class SummitOrderService
// update it // update it
SummitAttendeeFactory::populate($summit, $attendee, $reduced_payload); SummitAttendeeFactory::populate($summit, $attendee, $reduced_payload);
$attendee->updateStatus();
$attendee->sendInvitationEmail($ticket); $attendee->sendInvitationEmail($ticket);
return $ticket; return $ticket;
@ -2568,11 +2568,11 @@ final class SummitOrderService
} }
} }
// update it if(!is_null($attendee)) {
SummitAttendeeFactory::populate($summit, $attendee, $payload, !empty($email) ? $this->member_repository->getByEmail($email) : null); // update it
SummitAttendeeFactory::populate($summit, $attendee, $payload, !empty($email) ? $this->member_repository->getByEmail($email) : null);
if (is_null($attendee)) {
$attendee->addTicket($ticket); $attendee->addTicket($ticket);
$attendee->updateStatus();
$attendee->sendInvitationEmail($ticket); $attendee->sendInvitationEmail($ticket);
} }
@ -2661,10 +2661,10 @@ final class SummitOrderService
} }
} }
// update it if(!is_null($attendee)) {
SummitAttendeeFactory::populate($summit, $attendee, $payload, !empty($email) ? $this->member_repository->getByEmail($email) : null); // update it
SummitAttendeeFactory::populate($summit, $attendee, $payload, !empty($email) ? $this->member_repository->getByEmail($email) : null);
if (is_null($attendee)) { $attendee->updateStatus();
$attendee->addTicket($ticket); $attendee->addTicket($ticket);
$attendee->sendInvitationEmail($ticket); $attendee->sendInvitationEmail($ticket);
} }