/var/www/vhosts/nabawater/backend/controllers
Edit: /var/www/vhosts/nabawater/backend/controllers/VendorController.php (24491B)
render('index',
[
'searchModel' => $searchModel,
'dataProvider' => $searchModel->search(Yii::$app->request->queryParams),
'branchName' => $branchName
]
);
}
/**
*
* @return string
*
* @Title("Create")
*/
public function actionCreate()
{
$model = new Vendor();
$feature = Vendor::getfeaturedlist();
$model->setScenario($model::SCENARIO_CREATE);
$modelCuisine = new Cuisine();
$modelVendorCuisine = new VendorCuisine();
$modelVendorCategory = new VendorCategory();
$modelVendorType = new VendorType();
$modelVendorTypeDetail = new VendorTypeDetail();
$modelLang = new VendorLang();
$modelUploadForm = new VendorUploadForm();
$modelCategory = new Category;
$modelUploadForm->setScenario($modelUploadForm::SCENARIO_CREATE);
$post = Yii::$app->getRequest()->post();
$appLanguages = Language::getAppLanguages();
if($post){
$model->load($post);
$model->payment_option = implode(",", $model->payment_option);
}
if ($post && $modelLang->load($post)) {
if ($post['Vendor']['commision_type'] == Vendor::COMMISSION_TYPE_VALUE) {
$model->commision_percent = 0;
} else if ($post['Vendor']['commision_type'] == Vendor::COMMISSION_TYPE_PERCENT) {
$model->commission = 0;
}
if ($model->validate()) {
$modelVendorCuisine->load($post);
$modelVendorTypeDetail->load($post);
$modelVendorCategory->load($post);
$secretPassword = Yii::$app->getSecurity()->generateRandomString(6);
$password = $model->password;
$model->secret_password_hash = $secretPassword;
$model->setPassword(trim($model->password));
$model->save();
$fileHelper = FileUploadHelper::getInstance()->convertFileArray();
foreach($appLanguages as $langCode => $langName) {
$modelTranslation = new VendorLang();
$uploadedFile = $fileHelper->getFileInstance($modelUploadForm, 'vendor_image_path', $langCode);
if (!empty($uploadedFile)) {
$uploadHelper = UploadHelper::getInstance();
$uploadHelper->setPath($uploadHelper::VENDOR);
$uploadHelper->setUploadedFile($uploadedFile);
$path = $uploadHelper->getPath(true);
$uploadedFile->saveAs($path);
$realpath = $uploadHelper->getRealPath($path);
$modelTranslation->loadTranslationAttribute($post, $langCode);
$modelTranslation->vendor_id = $model->getPrimaryKey();
$modelTranslation->vendor_image_path = '/'. $realpath ;
$modelTranslation->save();
} else {
$modelTranslation->loadTranslationAttribute($post, $langCode);
$modelTranslation->vendor_id = $model->getPrimaryKey();
$modelTranslation->save();
}
}
$adminUserData = Yii::$app->getUser()->getIdentity();
$adminUserName = $adminUserData->attributes['user_name'];
$vendorName = $post['VendorLang']['vendor_name']['en'];
ActivityLog::log($adminUserName.' '. 'created New Vendor named '.' '. $vendorName);
$mailerQueueHelper = MailerQueueHelper::getInstance()
->setTo($model->vendor_email)
->setSubject('Vendor Registration')
->setView(
'VendorRegistration',
[
'username'=>$model->user_name,
'password'=>$password
])
->push();
// foreach ((array)$modelVendorCuisine->cuisine_id as $cuisine => $cuisineId) {
// $modelCuisinemodel = new VendorCuisine();
// $modelCuisinemodel->vendor_id = $model->getPrimaryKey();
// $modelCuisinemodel->cuisine_id = $cuisineId;
// if (!($modelCuisinemodel->save())) {
// $data = $modelCuisinemodel->attributes;
// $modelCuisinemodel->setAttributes($data);
// return $this->render('create', [
// 'model' => $model,
// 'appLanguages' => Language::getAll(),
// 'modelLang' => $modelLangmodel,
// 'modelUploadForm' => $modelUploadForm,
// 'modelCuisine' => $modelCuisine,
// 'modelVendorCuisine' => $modelVendorCuisine,
// 'modelVendorCategory' => $modelVendorCategory,
// 'modelCategory' => $modelCategory
// ]);
// }
// }
// $modelCuisinemodel->save();
foreach ((array)$modelVendorCategory->category_id as $category => $categoryId) {
$modelCategorymodel = new VendorCategory();
$modelCategorymodel->vendor_id = $model->getPrimaryKey();
$modelCategorymodel->category_id = $categoryId;
if (!($modelCategorymodel->save())) {
$data = $modelCategorymodel->attributes;
$modelCategorymodel->setAttributes($data);
return $this->render('update', [
'model' => $model,
'appLanguages' => Language::getAll(),
'modelLang' => $modelLangmodel,
'modelUploadForm' => $modelUploadForm,
'modelCuisine' => $modelCuisine,
'modelVendorCuisine' => $modelVendorCuisine,
'modelVendorType' => $modelVendorType,
'modelVendorTypeDetail' => $modelVendorTypeDetail,
'modelVendorTypeDetailData' => $modelVendorTypeDetailData,
'modelVendorCategory' => $modelVendorCategory,
'modelCategory' => $modelCategory,
'appLanguages' => $appLanguages
]);
}
}
$modelCategorymodel->save();
foreach ((array)$modelVendorTypeDetail->vendor_type_id as $vendorType => $vendorTypeId) {
$modelVendorTypeDetail = new VendorTypeDetail();
$modelVendorTypeDetail->vendor_id = $model->getPrimaryKey();
$modelVendorTypeDetail->vendor_type_id = $vendorTypeId;
if (!($modelVendorTypeDetail->save())) {
$data = $modelVendorTypeDetail->attributes;
$modelVendorTypeDetail->setAttributes($data);
return $this->render('update', [
'model' => $model,
'appLanguages' => Language::getAll(),
'modelLang' => $modelLangmodel,
'modelUploadForm' => $modelUploadForm,
'modelCuisine' => $modelCuisine,
'modelVendorCuisine' => $modelVendorCuisine,
'modelVendorType' => $modelVendorType,
'modelVendorTypeDetail' => $modelVendorTypeDetail,
'modelVendorCategory' => $modelVendorCategory,
'modelCategory' => $modelCategory,
'appLanguages' => $appLanguages
]);
}
}
$modelVendorTypeDetail->save();
Com::successFlash('Created Successfully');
return $this->redirect(['index']);
}
}
return $this->render('create', [
'model' => $model,
'modelLang' => $modelLang,
'modelUploadForm' => $modelUploadForm,
'modelCuisine' => $modelCuisine,
'modelVendorCuisine' => $modelVendorCuisine,
'modelVendorType' => $modelVendorType,
'modelVendorTypeDetail' => $modelVendorTypeDetail,
'modelVendorCategory' => $modelVendorCategory,
'modelCategory' => $modelCategory,
'feature' => $feature,
'appLanguages' => $appLanguages
]);
}
/**
*
* @param type $id
* @return string
*
* @Title("Update")
*/
public function actionUpdate($id)
{
$model = $this->findModel($id);
//print_r($model); die;
$feature = Vendor::getfeaturedlist();
/* print_r($feature); die;*/
$model->setScenario($model::SCENARIO_UPDATE);
$modelLang = new VendorLang();
$modelCuisine = new Cuisine();
$modelVendorCuisineData = VendorCuisine::find()->select(['GROUP_CONCAT(cuisine_id) AS cuisine_id'])->Where(['vendor_id' => $model->getPrimaryKey()])->asArray()->one();
$modelVendorCuisine = new VendorCuisine();
$modelVendorCategoryData = VendorCategory::find()->select(['GROUP_CONCAT(category_id) AS category_id'])->Where(['vendor_id' => $model->getPrimaryKey()])->asArray()->one();
$modelVendorCategory = new VendorCategory();
$modelVendorType = new VendorType();
$modelVendorTypeDetail = new VendorTypeDetail();
$modelVendorTypeDetailData = VendorTypeDetail::find()->select(['GROUP_CONCAT(vendor_type_id) AS vendor_type_id'])->where(['vendor_id' => $model->getPrimaryKey()])->asArray()->one();
$modelCategory = new Category;
$modelUploadForm = new VendorUploadForm();
$modelUploadForm->setScenario($modelUploadForm::SCENARIO_UPDATE);
$post = Yii::$app->getRequest()->post();
$appLanguages = Language::getAppLanguages();
VendorLang::updateTranslationAttribute($modelLang, $model->getPrimaryKey());
if($post){
$model->load($post);
$model->payment_option = implode(",", $model->payment_option);
}
if ($post && $model->validate()) {
$modelLang->load($post);
$modelVendorCuisine->load($post);
$modelVendorTypeDetail->load($post);
$modelVendorCategory->load($post);
$model->save();
$fileHelper = FileUploadHelper::getInstance()->convertFileArray();
foreach ($appLanguages as $langCode => $langName) {
$modelTranslation = VendorLang::findOne([
'vendor_id' => $model->getPrimaryKey(),
'language_code' => $langCode
]);
if ($modelTranslation === null) {
$modelTranslation = new VendorLang();
$modelTranslation->vendor_id = $model->getPrimaryKey();
}
$uploadedFile = $fileHelper->getFileInstance($modelUploadForm, 'vendor_image_path', $langCode);
if (!empty($uploadedFile)) {
$uploadHelper = UploadHelper::getInstance();
$uploadHelper->setPath($uploadHelper::VENDOR);
$uploadHelper->setUploadedFile($uploadedFile);
$path = $uploadHelper->getPath(true);
$uploadedFile->saveAs($path);
$realpath = $uploadHelper->getRealPath($path);
$modelTranslation->loadTranslationAttribute($post, $langCode);
$modelTranslation->vendor_id = $model->getPrimaryKey();
$modelTranslation->vendor_image_path = '/'. $realpath ;
$modelTranslation->save();
} else {
$modelTranslation->loadTranslationAttribute($post, $langCode);
$modelTranslation->vendor_id = $model->getPrimaryKey();
$modelTranslation->save();
}
}
$adminUserData = Yii::$app->getUser()->getIdentity();
$adminUserName = $adminUserData->attributes['user_name'];
$vendorName = $post['VendorLang']['vendor_name']['en'];
ActivityLog::log($adminUserName.' '. 'update Vendor named '.' '. $vendorName);
VendorCuisine::deleteAll(['vendor_id' => $model->getPrimaryKey()]);
VendorTypeDetail::deleteAll(['vendor_id' => $model->getPrimaryKey()]);
VendorCategory::deleteAll(['vendor_id' => $model->getPrimaryKey()]);
foreach ((array)$modelVendorCuisine->cuisine_id as $cuisine => $cuisineId) {
$modelCuisinemodel = new VendorCuisine();
$modelCuisinemodel->vendor_id = $model->getPrimaryKey();
$modelCuisinemodel->cuisine_id = $cuisineId;
if (!($modelCuisinemodel->save())) {
$data = $modelCuisinemodel->attributes;
$modelCuisinemodel->setAttributes($data);
return $this->render('update', [
'model' => $model,
'appLanguages' => Language::getAll(),
'modelLang' => $modelLangmodel,
'modelUploadForm' => $modelUploadForm,
'modelCuisine' => $modelCuisine,
'modelVendorCuisine' => $modelVendorCuisine,
'modelVendorType' => $modelVendorType,
'modelVendorTypeDetail' => $modelVendorTypeDetail,
'modelVendorTypeDetailData' => $modelVendorTypeDetailData,
'modelVendorCategory' => $modelVendorCategory,
'modelCategory' => $modelCategory,
'appLanguages' => $appLanguages
]);
}
}
// $modelCuisinemodel->save();
foreach ((array)$modelVendorCategory->category_id as $category => $categoryId) {
$modelCategorymodel = new VendorCategory();
$modelCategorymodel->vendor_id = $model->getPrimaryKey();
$modelCategorymodel->category_id = $categoryId;
if (!($modelCategorymodel->save())) {
$data = $modelCategorymodel->attributes;
$modelCategorymodel->setAttributes($data);
return $this->render('update', [
'model' => $model,
'appLanguages' => Language::getAll(),
'modelLang' => $modelLangmodel,
'modelUploadForm' => $modelUploadForm,
'modelCuisine' => $modelCuisine,
'modelVendorCuisine' => $modelVendorCuisine,
'modelVendorType' => $modelVendorType,
'modelVendorTypeDetail' => $modelVendorTypeDetail,
'modelVendorTypeDetailData' => $modelVendorTypeDetailData,
'modelVendorCategory' => $modelVendorCategory,
'modelCategory' => $modelCategory,
'appLanguages' => $appLanguages
]);
}
}
// $modelCategorymodel->save();
foreach ((array)$modelVendorTypeDetail->vendor_type_id as $vendorType => $vendorTypeId) {
$modelVendorTypeDetail = new VendorTypeDetail();
$modelVendorTypeDetail->vendor_id = $model->getPrimaryKey();
$modelVendorTypeDetail->vendor_type_id = $vendorTypeId;
if (!($modelVendorTypeDetail->save())) {
$data = $modelVendorTypeDetail->attributes;
$modelVendorTypeDetail->setAttributes($data);
return $this->render('update', [
'model' => $model,
'appLanguages' => Language::getAll(),
'modelLang' => $modelLangmodel,
'modelUploadForm' => $modelUploadForm,
'modelCuisine' => $modelCuisine,
'modelVendorCuisine' => $modelVendorCuisine,
'modelVendorType' => $modelVendorType,
'modelVendorTypeDetail' => $modelVendorTypeDetail,
'modelVendorTypeDetailData' => $modelVendorTypeDetailData,
'modelVendorCategory' => $modelVendorCategory,
'modelCategory' => $modelCategory,
'appLanguages' => $appLanguages
]);
}
}
$modelVendorTypeDetail->save();
Com::successFlash('Updated Successfully');
return $this->redirect(['index']);
}
return $this->render('update', [
'model' => $model,
'modelLang' => $modelLang,
'modelUploadForm' => $modelUploadForm,
'modelCuisine' => $modelCuisine,
'modelVendorCuisineData' => $modelVendorCuisineData,
'modelVendorCuisine' => $modelVendorCuisine,
'modelVendorType' => $modelVendorType,
'modelVendorTypeDetail' => $modelVendorTypeDetail,
'modelVendorTypeDetailData' => $modelVendorTypeDetailData,
'modelVendorCategory' => $modelVendorCategory,
'modelCategory' => $modelCategory,
'modelVendorCategoryData' => $modelVendorCategoryData,
'feature' => $feature,
'appLanguages' => $appLanguages
]);
}
/**
* @throws \Throwable
* @throws \yii\base\ExitException
*
* @Title("Export New")
*/
public function actionExport()
{
$searchModel = new VendorSearch();
$dataProvider = $searchModel->search(Yii::$app->request->queryParams);
$model = $dataProvider->query->all();
$thead = [];
$tbody = [];
$theading = [
'Vendor id',
'Vendor Name',
'vendor Email',
'Vendor Contact Number'
];
$spreadsheet = new Spreadsheet();
$sheet = $spreadsheet->getActiveSheet();
$writer = new \PhpOffice\PhpSpreadsheet\Writer\Xlsx($spreadsheet);
$index = 1;
foreach ($theading as $key => $value) {
$sheet->setCellValueByColumnAndRow($index, 1,$theading[$key]);
$index++;
}
$fileName = 'Vendor-Report'.'-'.date('Y-m-d').'.xslx';
$positionValue = 2;
foreach ($model as $key => $value) {
$sheet->setCellValue("A$positionValue", $value['vendor_id'])
->setCellValue("B$positionValue", $value['vendor_name'])
->setCellValue("C$positionValue", $value['vendor_email'])
->setCellValue("D$positionValue", $value['vendor_contact_number']);
++$positionValue;
}
// We'll be outputting an excel file
header('Content-type: text/x-csv');
// It will be called file.xls
header("Content-Disposition: attachment; filename=$fileName");
$writer->save('php://output');
exit;
}
/**
* @return string
* @param type $id
*
* @Title("Delete")
*/
public function actionDelete($id)
{
$model = $this->findModel($id);
if ($model === null) {
Com::failureFlash('Unable to find the Vendor');
return $this->redirect(['index']);
}
$model->vendor_status = Vendor::DELETE;
$model->save(false);
$adminUserData = Yii::$app->getUser()->getIdentity();
$adminUserName = $adminUserData->attributes['user_name'];
$branchName = VendorLang::find()->where(['vendor_id' => $model->vendor_id,'language_code' => Yii::$app->language])->one();
ActivityLog::log($adminUserName.' '. 'deleted vendor '.' '. $branchName->vendor_name);
//$model = $this->findModel($id)->delete();
Com::successFlash('Deleted Successfully');
return $this->redirect(['index']);
}
/**
*
* @param type $id
* @return $model
* @throws NotFoundHttpException
*/
protected function findModel($id)
{
if (($model = Vendor::findOne(['vendor_key' => $id])) !== null) {
return $model;
} else {
throw new NotFoundHttpException('The requested page does not exist.');
}
}
/**
* @return string
* @throws \yii\base\InvalidParamException
*
* @Title("Vendor Status")
*/
public function actionChangeStatus()
{
$params = ['key', 'status'];
$post = Yii::$app->getRequest()->post();
$result = ['status' => STATUS_FAIL, 'msg' => ''];
foreach ($params as $param) {
if (!array_key_exists($param, $post)) {
$result['msg'] = 'Required param missing';
goto skip;
}
}
$model = Vendor::findOne(['vendor_key' => $post['key']]);
if ($model === null) {
$result['msg'] = 'Unable to find the vendor';
goto skip;
}
$model->vendor_status = $post['status'];
if(!$model->save()) {
print_r($model->getErrors()); die;
}
$result['msg'] = 'Vendor deactivated successfully';
if ((int)$model->vendor_status === $model::ACTIVE) {
$result['msg'] = 'Vendor activated successfully';
}
$result['status'] = STATUS_SUCCESS;
skip:
return $this->asJson($result);
}
public function actionView($id)
{
$model = $this->findModel($id);
$modelVendorCuisine = new VendorCuisine();
return $this->render('view', [
'model' => $model
]);
}
public function actionWebPushNotification()
{
$post = Yii::$app->getRequest()->post();
$vendor =Yii::$app->getUser()->getIdentity();
$model = Vendor::find()->where(['vendor_id' => $vendor->vendor_id])->one();
$model->web_token = $post['playerId'];
$model->save();
}
}