Element_OphTrOperationbooking_Operation::confirmLetterPrinted PHP Méthode

confirmLetterPrinted() public méthode

public confirmLetterPrinted ( $confirmto = null, $confirmdate = null )
    public function confirmLetterPrinted($confirmto = null, $confirmdate = null)
    {
        // admin users can set confirmto and confirm up to a specific point, steamrollering whatever else is in there
        if (!is_null($confirmto)) {
            if (!($dls = $this->date_letter_sent)) {
                $dls = new OphTrOperationbooking_Operation_Date_Letter_Sent();
                $dls->element_id = $this->id;
            }
            if ($confirmto == self::LETTER_GP) {
                $dls->date_invitation_letter_sent = Helper::convertNHS2MySQL($confirmdate);
                $dls->date_1st_reminder_letter_sent = Helper::convertNHS2MySQL($confirmdate);
                $dls->date_2nd_reminder_letter_sent = Helper::convertNHS2MySQL($confirmdate);
                $dls->date_gp_letter_sent = Helper::convertNHS2MySQL($confirmdate);
            }
            if ($confirmto == self::LETTER_INVITE) {
                $dls->date_invitation_letter_sent = Helper::convertNHS2MySQL($confirmdate);
                $dls->date_1st_reminder_letter_sent = null;
                $dls->date_2nd_reminder_letter_sent = null;
                $dls->date_gp_letter_sent = null;
            }
            if ($confirmto == self::LETTER_REMINDER_1) {
                $dls->date_invitation_letter_sent = Helper::convertNHS2MySQL($confirmdate);
                $dls->date_1st_reminder_letter_sent = Helper::convertNHS2MySQL($confirmdate);
                $dls->date_2nd_reminder_letter_sent = null;
                $dls->date_gp_letter_sent = null;
            }
            if ($confirmto == self::LETTER_REMINDER_2) {
                $dls->date_invitation_letter_sent = Helper::convertNHS2MySQL($confirmdate);
                $dls->date_1st_reminder_letter_sent = Helper::convertNHS2MySQL($confirmdate);
                $dls->date_2nd_reminder_letter_sent = Helper::convertNHS2MySQL($confirmdate);
                $dls->date_gp_letter_sent = null;
            }
            if ($confirmto == 'noletters') {
                $dls->date_invitation_letter_sent = null;
                $dls->date_1st_reminder_letter_sent = null;
                $dls->date_2nd_reminder_letter_sent = null;
                $dls->date_gp_letter_sent = null;
            }
            if (!$dls->save()) {
                throw new Exception('Unable to save date letter sent: ' . print_r($dls->getErrors(), true));
            }
            OELog::log("Letter print confirmed, datelettersent={$dls->id} confirmdate='{$confirmdate}'");
            // Only confirm if letter is actually due
        } elseif ($this->getDueLetter() !== $this->getLastLetter()) {
            if ($dls = $this->date_letter_sent) {
                if ($dls->date_invitation_letter_sent == null) {
                    $dls->date_invitation_letter_sent = date('Y-m-d H:i:s');
                } elseif ($dls->date_1st_reminder_letter_sent == null) {
                    $dls->date_1st_reminder_letter_sent = date('Y-m-d H:i:s');
                } elseif ($dls->date_2nd_reminder_letter_sent == null) {
                    $dls->date_2nd_reminder_letter_sent = date('Y-m-d H:i:s');
                } elseif ($dls->date_gp_letter_sent == null) {
                    $dls->date_gp_letter_sent = date('Y-m-d H:i:s');
                } elseif ($dls->date_scheduling_letter_sent == null) {
                    $dls->date_scheduling_letter_sent = date('Y-m-d H:i:s');
                }
                if (!$dls->save()) {
                    throw new SystemException("Unable to update date_letter_sent record {$dls->id}: " . print_r($dls->getErrors(), true));
                }
                OELog::log("Letter print confirmed, datelettersent={$dls->id}");
            } else {
                $dls = new OphTrOperationbooking_Operation_Date_Letter_Sent();
                $dls->element_id = $this->id;
                $dls->date_invitation_letter_sent = date('Y-m-d H:i:s');
                if (!$dls->save()) {
                    throw new SystemException('Unable to save new date_letter_sent record: ' . print_r($dls->getErrors(), true));
                }
                OELog::log("Letter print confirmed, datelettersent={$dls->id}");
            }
        }
    }