Your IP : 216.73.216.79


Current Path : /var/www/html/aipa/frontend/models/
Upload File :
Current File : /var/www/html/aipa/frontend/models/Delegation.php

<?php

namespace frontend\models;

use Yii;
use frontend\models\Attendees;
use backend\modules\documentAutomation\models\Template;
use backend\modules\activities\models\Activities;

/**
 * This is the model class for table "delegation".
 *
 * @property int $delegation_id
 * @property string $delegation_country
 * @property string $delegation_name
 * @property string $delegation_salutation
 * @property string $delegation_passport_no
 * @property string $delegation_passport_photo
 * @property string $delegation_name_on_tag
 * @property string $delegation_category
 * @property string $delegation_organization
 * @property string $delegation_contact_details
 * @property string $delegation_medical_history
 * @property string $delegation_blood_type
 * @property string $delegation_dietary
 * @property string $delegation_special_request
 * @property string $delegation_flight_details
 * @property string $delegation_availbility_tour
 * @property string $delegation_accommodation
 * @property string $created_at
 * @property int $created_by
 * @property string $created_user_type
 * @property string $updated_at
 * @property int $updated_by
 * @property string $updated_user_type
 */
class Delegation extends \yii\db\ActiveRecord {

    /**
     * {@inheritdoc}
     */
    public static function tableName() {
        return 'delegation';
    }

    /**
     * {@inheritdoc}
     */
    public function rules() {
        return [
            [[
            'delegation_contact_details', 'delegation_medical_history', 'delegation_dietary',
            'delegation_special_request', 'delegation_flight_details', 'delegation_accommodation',
            'delegation_blood_type', 'created_user_type', 'updated_user_type',
            'created_at', 'updated_at', 'created_by', 'updated_by', 'delegation_type', 'delegation_activity',
            'delegation_code', 'delegation_organization','delegation_contact_phone_country_code'], 'safe'],
            [['delegation_availbility_tour', 'delegation_category', 'delegation_name_on_tag',
            'delegation_passport_no', 'delegation_country', 'delegation_name', 'delegation_salutation',
            'delegation_contact_phone', 'delegation_contact_email'], 'required'],
            [['delegation_passport_photo'], 'required', 'on' => 'create']
        ];
    }

    /**
     * {@inheritdoc}
     */
    public function attributeLabels() {
        return [
            'delegation_code' => 'Attendance QR Code',
            'delegation_activity' => 'Activity Involved',
            'delegation_id' => 'Delegation ID',
            'delegation_country' => 'Country',
            'delegation_name' => 'Name As Per Passport',
            'delegation_salutation' => 'Title',
            'delegation_passport_no' => 'Passport Number',
            'delegation_passport_photo' => 'Photo (Passport Size)',
            'delegation_name_on_tag' => 'Name on Tag',
            'delegation_category' => 'Participant Category',
            'delegation_organization' => 'Parliament / Organisation',
            'delegation_contact_details' => 'Contact Details',
            'delegation_contact_phone' => 'Contact Phone Number',
            'delegation_contact_email' => 'Contact Email Address',
            'delegation_medical_history' => 'Medical History / Allergies',
            'delegation_blood_type' => 'Blood Type',
            'delegation_dietary' => 'Dietary Requirements',
            'delegation_special_request' => 'Accessibility Needs / Other Special Requests',
            'delegation_flight_details' => 'Flight Details',
            'delegation_availbility_tour' => 'Availability for Tour Program',
            'delegation_accommodation' => 'Accommodation',
            'created_at' => 'Created At',
            'created_by' => 'Created By',
            'created_user_type' => 'Created User Type',
            'updated_at' => 'Updated At',
            'updated_by' => 'Updated By',
            'updated_user_type' => 'Updated User Type',
            'delegation_contact_phone_country_code' => 'Country Phone Code',
        ];
    }

    public static function updatecode($id) {
        $model = Delegation::findOne($id);
        if (!empty($model)) {
            //delegation_code
            $code = \backend\modules\refdynawebv2\models\Ref::getDesc('COUNTRY', $model->delegation_country, 'alt_code') .
                    '-' .
                    \backend\modules\refdynawebv2\models\Ref::getDesc('PARTICIPANT_CATEGORY', $model->delegation_category, 'alt_code') .
                    '-' .
                    sprintf('%08d', $model->delegation_id);
            $model->delegation_code = $code;
            $model->save(false);
        }
    }

    public static function sendemail($id, $activity_id) {
        $model = Attendees::find()
                ->where(['=', 'attendees_user_id', $id])
                ->andwhere(['=', 'attendees_activity_id', $activity_id])
                ->andwhere(['=', 'attendees_invitation_status', 0])
                ->one();
        if (!empty($model)) {

            $modelTemplate = Template::findOne(['code' => 'invitation-attendees']);
            if (!empty($modelTemplate)) {

                $to_mail = $model->user->delegation_contact_email;
                $subject_mail = $modelTemplate->title;

                $content_mail = $modelTemplate->content;
                $content_mail = str_replace("#ATTENDESS_NAME#", $model->user->delegation_name, $content_mail);
                $content_mail = str_replace("#ATTENDEES_ROLE#", \backend\modules\refdynawebv2\models\Ref::getDesc('PARTICIPANT_CATEGORY', $model->user->delegation_category), $content_mail);
                $content_mail = str_replace("#EVENT_NAME#", $model->activity->activity_name, $content_mail);
                $content_mail = str_replace("#EVENT_DATE#", date("d F Y", strtotime($model->activity->activity_start_date)), $content_mail);
                $content_mail = str_replace("#EVENT_VENUE#", $model->activity->activity_location, $content_mail);

                $email_bg = 'https://' . $_SERVER['SERVER_NAME'] . '/assets/img/background-aipa.jpg';
                $modelActivity = Activities::find()->where(['=', 'activity_id', $model->attendees_activity_id])->one();
                if (!empty($modelActivity)) {
                    if (!empty($modelActivity->activity_email_bg)) {
                        $email_bg = 'https://' . $_SERVER['SERVER_NAME'] . '/' . $modelActivity->activity_email_bg;
                    }
                }

                $content_mail = str_replace("#EMAIL_BG#", $email_bg, $content_mail);

                if (!empty($to_mail)) {

                    Yii::$app->emailModule->sendemail($to_mail, $subject_mail, $content_mail);
                    $model->attendees_invitation_status = 1;
                    $model->attendees_invitation_at = date("Y-m-d H:i:s");
                    $model->save(false);
                }
            }
        }
    }
}