| Current Path : /var/www/html/aipa/frontend/models/ |
| 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);
}
}
}
}
}