Beispiel #1
0
 /**
  * Creates data provider instance with search query applied
  *
  * @param array $params
  *
  * @return ActiveDataProvider
  */
 public function search($params)
 {
     $query = Advisor::find();
     if (!isset($params['sort'])) {
         $query->orderBy(['id_advisor' => SORT_DESC]);
     }
     $dataProvider = new ActiveDataProvider(['query' => $query]);
     $this->load($params);
     if (!$this->validate()) {
         // uncomment the following line if you do not want to return any records when validation fails
         // $query->where('0=1');
         return $dataProvider;
     }
     $query->andFilterWhere(['id_advisor' => $this->id_advisor, 'id_user' => $this->id_user, 'id_institution' => $this->id_institution, 'trained' => $this->trained, 'approved' => $this->approved, 'train_date' => $this->train_date, 'delete' => $this->delete, 'created_at' => $this->created_at, 'updated_at' => $this->updated_at]);
     $query->andFilterWhere(['like', 'advisor_id', $this->advisor_id])->andFilterWhere(['like', 'phone', $this->phone]);
     return $dataProvider;
 }
Beispiel #2
0
 public static function createAppFormPdfByApplication($application)
 {
     $appForm = $application->appForm;
     $primaryAppApplicant = $application->primaryAppApplicant;
     $dataJson = json_decode(file_get_contents('../../common/pdf-template/data/data_app_form.json'), true);
     $dataJson['a.full_name'] = $primaryAppApplicant->first_name . ($primaryAppApplicant->mid_name ? ' ' . $primaryAppApplicant->mid_name : '') . ' ' . $primaryAppApplicant->last_name;
     $dataJson['a.street'] = $primaryAppApplicant->address_street;
     $dataJson['a.city_state_zip'] = $primaryAppApplicant->getFullAddress();
     $dataJson['a.home_phone'] = $primaryAppApplicant->home_phone;
     $dataJson['a.work_phone'] = $primaryAppApplicant->work_phone;
     $dataJson['a.cell_phone'] = $primaryAppApplicant->cell_phone;
     $dataJson['a.email'] = $primaryAppApplicant->email_address;
     $dataJson['a.ssn'] = $primaryAppApplicant->social_security_number;
     $dataJson['a.dob'] = $primaryAppApplicant->date_of_birth ? date('m/d/Y', $primaryAppApplicant->date_of_birth) : '';
     if ($primaryAppApplicant->is_united_states_citizen === DictApplicant::AMERICAN_CITIZEN_NOT) {
         $dataJson['a.us_n'] = 'checked';
     } elseif ($primaryAppApplicant->is_united_states_citizen === DictApplicant::AMERICAN_CITIZEN_YES) {
         $dataJson['a.us_y'] = 'checked';
     }
     switch ($primaryAppApplicant->identification_type) {
         case DictApplicant::IDENTIFICATION_DRIVERS_LICENSE:
             $dataJson['a.id_dl'] = 'checked';
             break;
         case DictApplicant::IDENTIFICATION_PASSPORT:
             $dataJson['a.id_pp'] = 'checked';
             break;
         case DictApplicant::IDENTIFICATION_PHOTO_ID:
             $dataJson['a.id_gid'] = 'checked';
             break;
     }
     $dataJson['a.id_no'] = $primaryAppApplicant->identification_number;
     $dataJson['a.id_state'] = $primaryAppApplicant->identification_state;
     $dataJson['a.id_ed'] = $primaryAppApplicant->identification_expiration_date ? date('m/d/Y', $primaryAppApplicant->identification_expiration_date) : '';
     $dataJson['a.occupation'] = $primaryAppApplicant->occupation;
     $dataJson['a.employer'] = $primaryAppApplicant->employer;
     switch ($primaryAppApplicant->total_annual_income) {
         case DictApplicant::TOTAL_ANNUAL_INCOME_1:
             $dataJson['a.income_less'] = 'checked';
             break;
         case DictApplicant::TOTAL_ANNUAL_INCOME_2:
             $dataJson['a.income_5010'] = 'checked';
             break;
         case DictApplicant::TOTAL_ANNUAL_INCOME_3:
             $dataJson['a.income_1025'] = 'checked';
             break;
         case DictApplicant::TOTAL_ANNUAL_INCOME_4:
             $dataJson['a.income_2550'] = 'checked';
             break;
         case DictApplicant::TOTAL_ANNUAL_INCOME_5:
             $dataJson['a.income_500100'] = 'checked';
             break;
         case DictApplicant::TOTAL_ANNUAL_INCOME_6:
             $dataJson['a.income_1000'] = 'checked';
             break;
     }
     switch ($primaryAppApplicant->marital_status) {
         case DictApplicant::MARITAL_MARRIED:
             $dataJson['a.marital_m'] = 'checked';
             break;
         case DictApplicant::MARITAL_SEPARATED:
             $dataJson['a.marital_s'] = 'checked';
             break;
         case DictApplicant::MARITAL_UNMARRIED:
             $dataJson['a.marital_u'] = 'checked';
             break;
     }
     if ($coAppApplicant = $application->coAppApplicant) {
         $dataJson['co.full_name'] = $coAppApplicant->first_name . ($coAppApplicant->mid_name ? ' ' . $coAppApplicant->mid_name : '') . ' ' . $coAppApplicant->last_name;
         $dataJson['co.street'] = $coAppApplicant->address_street;
         $dataJson['co.city_state_zip'] = $coAppApplicant->getFullAddress();
         $dataJson['co.home_phone'] = $coAppApplicant->home_phone;
         $dataJson['co.work_phone'] = $coAppApplicant->work_phone;
         $dataJson['co.cell_phone'] = $coAppApplicant->cell_phone;
         $dataJson['co.email'] = $coAppApplicant->email_address;
         $dataJson['co.ssn'] = $coAppApplicant->social_security_number;
         $dataJson['co.dob'] = $coAppApplicant->date_of_birth ? date('m/d/Y', $coAppApplicant->date_of_birth) : '';
         if ($coAppApplicant->is_united_states_citizen === DictApplicant::AMERICAN_CITIZEN_NOT) {
             $dataJson['co.us_n'] = 'checked';
         } elseif ($coAppApplicant->is_united_states_citizen === DictApplicant::AMERICAN_CITIZEN_YES) {
             $dataJson['co.us_y'] = 'checked';
         }
         switch ($coAppApplicant->identification_type) {
             case DictApplicant::IDENTIFICATION_DRIVERS_LICENSE:
                 $dataJson['co.id_dl'] = 'checked';
                 break;
             case DictApplicant::IDENTIFICATION_PASSPORT:
                 $dataJson['co.id_pp'] = 'checked';
                 break;
             case DictApplicant::IDENTIFICATION_PHOTO_ID:
                 $dataJson['co.id_gid'] = 'checked';
                 break;
         }
         $dataJson['co.id_no'] = $coAppApplicant->identification_number;
         $dataJson['co.id_state'] = $coAppApplicant->identification_state;
         $dataJson['co.id_ed'] = $coAppApplicant->identification_expiration_date ? date('m/d/Y', $coAppApplicant->identification_expiration_date) : '';
         $dataJson['co.occupation'] = $coAppApplicant->occupation;
         $dataJson['co.employer'] = $coAppApplicant->employer;
         switch ($coAppApplicant->total_annual_income) {
             case DictApplicant::TOTAL_ANNUAL_INCOME_1:
                 $dataJson['co.income_less'] = 'checked';
                 break;
             case DictApplicant::TOTAL_ANNUAL_INCOME_2:
                 $dataJson['co.income_5010'] = 'checked';
                 break;
             case DictApplicant::TOTAL_ANNUAL_INCOME_3:
                 $dataJson['co.income_1025'] = 'checked';
                 break;
             case DictApplicant::TOTAL_ANNUAL_INCOME_4:
                 $dataJson['co.income_2550'] = 'checked';
                 break;
             case DictApplicant::TOTAL_ANNUAL_INCOME_5:
                 $dataJson['co.income_500100'] = 'checked';
                 break;
             case DictApplicant::TOTAL_ANNUAL_INCOME_6:
                 $dataJson['co.income_1000'] = 'checked';
                 break;
         }
         switch ($coAppApplicant->marital_status) {
             case DictApplicant::MARITAL_MARRIED:
                 $dataJson['co.marital_m'] = 'checked';
                 break;
             case DictApplicant::MARITAL_SEPARATED:
                 $dataJson['co.marital_s'] = 'checked';
                 break;
             case DictApplicant::MARITAL_UNMARRIED:
                 $dataJson['co.marital_u'] = 'checked';
                 break;
         }
     }
     switch ($primaryAppApplicant->years_with_advisor) {
         case DictApplicant::YEARS_WITH_ADVISOR_1:
             $dataJson['with_advisor_1'] = 'checked';
             break;
         case DictApplicant::YEARS_WITH_ADVISOR_2:
             $dataJson['with_advisor_14'] = 'checked';
             break;
         case DictApplicant::YEARS_WITH_ADVISOR_3:
             $dataJson['with_advisor_59'] = 'checked';
             break;
         case DictApplicant::YEARS_WITH_ADVISOR_4:
             $dataJson['with_advisor_10'] = 'checked';
             break;
     }
     switch ($primaryAppApplicant->net_worth) {
         case DictApplicant::NET_WORTH_1:
             $dataJson['net_worth_10'] = 'checked';
             break;
         case DictApplicant::NET_WORTH_2:
             $dataJson['net_worth_1025'] = 'checked';
             break;
         case DictApplicant::NET_WORTH_3:
             $dataJson['net_worth_2550'] = 'checked';
             break;
         case DictApplicant::NET_WORTH_4:
             $dataJson['net_worth_50100'] = 'checked';
             break;
         case DictApplicant::NET_WORTH_5:
             $dataJson['net_worth_100500'] = 'checked';
             break;
         case DictApplicant::NET_WORTH_6:
             $dataJson['net_worth_500'] = 'checked';
             break;
     }
     $dataJson['value_account'] = number_format($primaryAppApplicant->total_value_with_advisor ?: 0);
     $dataJson['loc_amount'] = number_format($application->loc ?: 0);
     $dataJson['loc_max'] = $application->loc_max ? 'checked' : '';
     $application->have_existing_loan ? $dataJson['exsting_loan_y'] = 'checked' : ($dataJson['exsting_loan_n'] = 'checked');
     $dataJson['payoff_amount'] = number_format($application->existing_loan_amount ?: 0);
     $dataJson['lender_name'] = $application->name_of_lender;
     $dataJson['exsting_loan_number'] = $application->loan_number;
     switch ($appForm->primary_purpose) {
         case DictApplication::PRIMARY_PURPOSE_TAX_PAYMENTS:
             $dataJson['purpose_tax'] = 'checked';
             break;
         case DictApplication::PRIMARY_PURPOSE_PERSONAL_PURCHASE:
             $dataJson['purpose_luxury'] = 'checked';
             break;
         case DictApplication::PRIMARY_PURPOSE_REAL_ESTATE:
             $dataJson['purpose_real_estate'] = 'checked';
             break;
         case DictApplication::PRIMARY_PURPOSE_GENERAL_LIQUIDITY_PURPOSES:
             $dataJson['purpos_general'] = 'checked';
             break;
     }
     if ($collateralAccounts = $application->collateralAccounts) {
         $dataJson['accounts'] = [];
         foreach ($collateralAccounts as $collateralAccount) {
             $account = [];
             $account['account_namer'] = $collateralAccount->account_name_title;
             $account['registration'] = $collateralAccount->registration;
             $account['custodian'] = $collateralAccount->custodian;
             $account['account_number'] = $collateralAccount->account_number;
             $collateralAccount->has_regular_distribution ? $account['distribution_y'] = 'checked' : ($account['distribution_n'] = 'checked');
             $account['distribution_amount'] = number_format($collateralAccount->regular_distribution_amount ?: 0);
             $account['distribution_payee'] = $collateralAccount->payee;
             $account['revocable_trust'] = $collateralAccount->is_trust_account ? 'checked' : '';
             $account['trust_name'] = $collateralAccount->trust_name;
             $account['grantor_name'] = $collateralAccount->names_of_grantors;
             $account['trustee_name'] = $collateralAccount->names_of_trustees;
             $account['tax_id'] = $collateralAccount->tax_id;
             $account['address_street'] = $collateralAccount->address_street;
             $account['address_state'] = $collateralAccount->address_state_where_organized;
             $account['address_city_state_zip'] = $collateralAccount->getFullAddress();
             $account['trustee_phone'] = $collateralAccount->trustee_phone_number;
             $dataJson['accounts'][] = $account;
         }
     }
     $dataJson['bank_name'] = $appForm->bank_name;
     $dataJson['routing'] = $appForm->routing_number;
     $dataJson['account_name'] = $appForm->account_name;
     $dataJson['account_number'] = $appForm->account_number;
     if ((string) $appForm->applicant_has_a_freeze === '0') {
         $dataJson['a_freeze_n'] = 'checked';
     } elseif ((string) $appForm->applicant_has_a_freeze === '1') {
         $dataJson['a_freeze_y'] = 'checked';
     }
     if ($application->coAppApplicant) {
         if ((string) $appForm->co_applicant_has_a_freeze === '0') {
             $dataJson['co_freeze_n'] = 'checked';
         } elseif ((string) $appForm->co_applicant_has_a_freeze === '1') {
             $dataJson['co_freeze_y'] = 'checked';
         }
     }
     $advisor = Advisor::findOne(['id_user' => $application->primaryAdvisor->id_user]);
     $dataJson['advisor_firm_name'] = $advisor->institution->institution_name;
     $dataJson['print_name'] = $advisor->user->first_name . ' ' . $advisor->user->last_name;
     $dataJson['advisor_name'] = $advisor->user->first_name . ' ' . $advisor->user->last_name;
     $dataJson['firm_name'] = $advisor->institution->institution_name;
     $dataJson['firm_phone'] = $advisor->institution->phone;
     $dataJson['firm_address'] = $advisor->office->address;
     $dataJson['firm_city'] = $advisor->office->city;
     $dataJson['firm_state'] = $advisor->office->state;
     $dataJson['firm_zip'] = $advisor->office->zip;
     $dataJson['advisor_email'] = $advisor->user->email;
     if (file_exists(Yii::$app->params['outpdfPath'] . $application->id_application . '_app_form.pdf')) {
         unlink(Yii::$app->params['outpdfPath'] . $application->id_application . '_app_form.pdf');
     }
     if (file_exists(Yii::$app->params['outpdfPath'] . $application->id_application . '_signaure_spec_app_form.json')) {
         unlink(Yii::$app->params['outpdfPath'] . $application->id_application . '_signaure_spec_app_form.json');
     }
     if ($application->charge_fee) {
         $document = new Document("../../common/pdf-template/config/config_app_form.json", $dataJson, "../../common/pdf-template/", Yii::$app->params['outpdfPath'] . $application->id_application . "_app_form.pdf", Yii::$app->params['outpdfPath'] . $application->id_application . "_signaure_spec_app_form.json");
     } else {
         $document = new Document("../../common/pdf-template/config/config_app_form.json", $dataJson, "../../common/pdf-template/nofee/", Yii::$app->params['outpdfPath'] . $application->id_application . "_app_form.pdf", Yii::$app->params['outpdfPath'] . $application->id_application . "_signaure_spec_app_form.json");
     }
     $document->render();
     return $result = Upload::uploadFileByApplication($application->id_application, Yii::$app->params['outpdfPath'] . $application->id_application . '_app_form.pdf', 'app_form.pdf', DictDocument::TYPE_APPLICATION_FORM);
 }
Beispiel #3
0
 public function afterSave($insert, $changeAttributes)
 {
     if ($insert) {
         $applicationModel = $this->application;
         $primaryAppApplicant = $applicationModel->primaryAppApplicant;
         $coAppApplicant = $applicationModel->coAppApplicant;
         $loanBorrowerModel = new LoanBorrower();
         $loanBorrowerModel->id_loan = $this->id_loan;
         $loanBorrowerModel->id_user = $primaryAppApplicant->id_user;
         $loanBorrowerModel->type = 1;
         $loanBorrowerModel->save();
         if ($applicationModel->coAppApplicant) {
             $loanBorrowerModel = new LoanBorrower();
             $loanBorrowerModel->id_loan = $this->id_loan;
             $loanBorrowerModel->id_user = $coAppApplicant->id_user;
             $loanBorrowerModel->type = 0;
             $loanBorrowerModel->save();
         }
         $loanPaymentPreferenceModel = new LoanPaymentPreference();
         $loanPaymentPreferenceModel->id_loan = $this->id_loan;
         $loanPaymentPreferenceModel->type = 2;
         $loanPaymentPreferenceModel->ach_max_debtied_amount = 0;
         $loanPaymentPreferenceModel->ach_id_loan_bank_acount = 0;
         $loanPaymentPreferenceModel->save();
         $loanCollateralAccountModel = new LoanCollateralAccount();
         $loanCollateralAccountModel->id_loan = $this->id_loan;
         $loanCollateralAccountModel->id_institution = Advisor::findOne(['id_user' => $applicationModel->primaryAdvisor->id_user])->id_institution;
         $loanCollateralAccountModel->id_group = $applicationModel->id_group;
         $appFormCollateralAccountModels = AppFormCollateralAccount::find()->andWhere(['id_application' => $this->id_application])->all();
         foreach ($appFormCollateralAccountModels as $appFormCollateralAccountModel) {
             $newLoanCollateralAccountModel = clone $loanCollateralAccountModel;
             $newLoanCollateralAccountModel->load([$newLoanCollateralAccountModel->formName() => $appFormCollateralAccountModel->getAttributes()]);
             $newLoanCollateralAccountModel->save();
         }
     }
 }
Beispiel #4
0
 public static function getDate($id)
 {
     $model = new Advisor();
     $group_arr = '';
     if (!empty($_GET['id'])) {
         $advisorid = is_numeric($_GET['id']) ? $_GET['id'] : '';
         $advisorarr = $model->find()->where(['id_advisor' => $advisorid])->asArray()->one();
     }
     $train_date = empty($advisorarr['train_date']) ? date('Y-m-d') : date('Y-m-d', $advisorarr['train_date']);
     return $train_date;
 }
 /**
  * Creates a new Application model.
  * If creation is successful, the browser will be redirected to the 'view' page.
  * @return mixed
  */
 public function actionCreate()
 {
     $model = new Application();
     $appModel = new AppApplicant(['scenario' => 'primary-create']);
     $coAppModel = new AppApplicant(['scenario' => 'co-create']);
     $appFormModel = new AppForm();
     //加载数据并验证
     if ($model->load(Yii::$app->request->post()) && $appModel->load(Yii::$app->request->post()) && $coAppModel->load(Yii::$app->request->post()) && $appFormModel->load(Yii::$app->request->post()) && $model->validate() && $appModel->validate() && ($model->is_joint_application == 1 ? $coAppModel->validate() : true) && ($model->is_joint_application == 1 ? $appModel->email_address != $coAppModel->email_address : true)) {
         //开启事务
         $transaction = Yii::$app->db->beginTransaction();
         try {
             if (!$appModel->id_user) {
                 $user = User::createUser(Dict::USER_ROLE_CLIENT, ['User' => ['first_name' => $appModel->first_name, 'last_name' => $appModel->last_name, 'mid_name' => $appModel->mid_name, 'email' => $appModel->email_address], 'Client' => ['id_group' => $model->id_group]]);
                 //设置applicant的id_user
                 $appModel->id_user = $user->id_user;
                 SendEmail::email(DictEmail::EMAIL_INVITE_USER, [$user]);
             }
             if ($model->is_joint_application && !$coAppModel->id_user) {
                 $user = User::createUser(Dict::USER_ROLE_CLIENT, ['User' => ['first_name' => $coAppModel->first_name, 'last_name' => $coAppModel->last_name, 'mid_name' => $coAppModel->mid_name, 'email' => $coAppModel->email_address], 'Client' => ['id_group' => $model->id_group]]);
                 //设置co-applicant的id_user
                 $coAppModel->id_user = $user->id_user;
                 SendEmail::email(DictEmail::EMAIL_INVITE_USER, [$user]);
             }
             $model->application_name = $appModel->first_name . ($model->is_joint_application ? ' and ' . $coAppModel->first_name : '') . "'s application";
             $model->charge_fee = Advisor::findOne(['id_user' => Yii::$app->user->getId()])->will_charge_fee;
             if (!$model->save()) {
                 $transaction->rollBack();
             }
             $user = Yii::$app->user->getIdentity();
             Active::operationLog($model->id_application, [$user->first_name, $user->last_name], DictActive::CREATE_APPLICATION, $user->id);
             $appModel->id_application = $model->id_application;
             $appModel->id_app_applicant_type = 1;
             if (!$appModel->save()) {
                 $transaction->rollBack();
             }
             if ($model->is_joint_application == 1) {
                 $coAppModel->id_application = $model->id_application;
                 $coAppModel->id_app_applicant_type = 2;
                 if (!$coAppModel->save()) {
                     $transaction->rollBack();
                 }
             }
             $appFormModel->id_application = $model->id_application;
             if (!$appFormModel->save()) {
                 $transaction->rollBack();
             }
             //初始化任务
             AppTask::initialize($model->id_application);
             // 将AppTaskCheckpoint中的模板转换为实例
             AppTaskCheckpoint::initialize($model->appTask);
             //创建AppUser记录
             AppUser::createByApplication($model);
             //send email to notificate advisor create application success.method email([$task_type,$id_application,$id_app_owner_task],$notify_type)
             SendEmail::email(DictEmail::EMAIL_TASK_NOTIFICATION, [DictTask::TYPE_APPLICATION_FORM, $model->id_application, 0]);
             //id_app_owner_task_type:1(app-form);0:表示没有传递id_app_owner_task
             $transaction->commit();
         } catch (Exception $e) {
             $transaction->rollBack();
         }
         return $this->redirect(['/app-form/basic-info', 'id_application' => $model->id_application]);
     }
     return $this->render('create', ['model' => $model, 'appModel' => $appModel, 'coAppModel' => $coAppModel, 'appFormModel' => $appFormModel]);
 }
Beispiel #6
0
 public function getAdvisors()
 {
     return $this->hasMany(Advisor::className(), ['id_advisor' => 'id_advisor'])->via('advisorGroups');
 }
Beispiel #7
0
<?php

use yii\helpers\Url;
use common\models\Advisor;
$groups = Advisor::findGroupByAdvisor(Yii::$app->user->getIdentity()->id_extend);
?>
<!-- START SIDEBAR -->
<div class="sidebar clearfix">

<ul class="sidebar-panel nav">
  <li class="sidetitle">MAIN</li>
  <li><a href="<?php 
echo Url::to(['/advisor/index']);
?>
"><span class="icon color5"><i class="fa fa-home"></i></span>Dashboard</a></li>
  <li><a href="<?php 
echo Url::to(['/loan/list']);
?>
"><span class="icon color5"><i class="fa fa-group"></i></span><?php 
echo Yii::t('app', 'Lines');
?>
</a></li>
  <li><a href="<?php 
echo Url::to(['/application/index']);
?>
"><span class="icon color5"><i class="fa fa-th"></i></span>Applications</a></li>
  <li><a href="<?php 
echo Url::to(['/client/index']);
?>
"><span class="icon color5"><i class="fa fa-group"></i></span>Clients</a></li>
</ul>
Beispiel #8
0
use yii\helpers\Html;
use yii\widgets\ActiveForm;
use yii\helpers\Url;
use common\models\Client;
use common\models\Group;
use kartik\widgets\DepDrop;
use yii\helpers\ArrayHelper;
use kartik\date\DatePicker;
use common\models\Advisor;
use common\models\AppApplicant;
use yii\widgets\MaskedInput;
use common\models\State;
use kartik\widgets\Select2;
use common\models\Betterdebt;
if ($model->getIsNewRecord()) {
    $advisor = Advisor::findOne(['id_user' => Yii::$app->user->getId()]);
    $group = ArrayHelper::map($advisor->groups, 'id_group', 'group_id');
}
$betterdebt = Betterdebt::find()->andWhere(['id_user' => Yii::$app->user->getId()])->one();
if (Yii::$app->user->getIdentity()->id_user_role == Dict::USER_ROLE_ADVISOR && !$model->isNewRecord && !$model->isNewRecord || Yii::$app->user->getIdentity()->id_user_role == Dict::USER_ROLE_CLIENT || Yii::$app->user->getIdentity()->id_user_role == Dict::USER_ROLE_BETTERDEBT) {
    //  	$readonly = true;
    //判断不属于service team的supernova只能有读的权限
    if (Yii::$app->user->getIdentity()->id_user_role == Dict::USER_ROLE_BETTERDEBT) {
        if ($betterdebt->is_in_service_team == Dict::BD_SERVICE_TEAM_YES) {
            $readonly = false;
        } else {
            $readonly = true;
        }
    } else {
        $readonly = true;
    }
 public function actionUpdate($id)
 {
     $model = $this->findModel($id);
     $userModel = User::find()->andWhere(['id_user' => $model->id_user])->one();
     if ($this->user->id_user_role == Dict::USER_ROLE_CLIENT) {
         if ($model->id_user != $this->user->id) {
             throw new UnauthorizedHttpException("Sorry, you don't have permission to access this page.");
         }
     } else {
         if ($this->user->id_user_role == dict::USER_ROLE_ADVISOR) {
             $advisor = Advisor::findOne(['id_user' => $this->user->id_user]);
             $groups = AdvisorGroup::find()->andWhere(['id_advisor' => $advisor->id_advisor])->all();
             $id_groups = [];
             foreach ($groups as $val) {
                 $id_groups[] = $val->id_group;
             }
             // check
             if (!in_array($model->id_group, $id_groups)) {
                 throw new UnauthorizedHttpException("Sorry, you don't have permission to access this page.");
             }
         }
     }
     //validate email
     if (Yii::$app->request->isAjax && $userModel->load(Yii::$app->request->post())) {
         Yii::$app->response->format = Response::FORMAT_JSON;
         return ActiveForm::validate($userModel);
     }
     if ($model->load(Yii::$app->request->post()) && $userModel->load(Yii::$app->request->post())) {
         $arr = ['User' => $_POST['User'], 'Client' => $_POST['Client']];
         $result = $userModel->UserUpdate($this->_roleId, $arr, $id);
         if ($result) {
             return $this->redirect(['index']);
         } else {
             return $this->render('update', ['model' => $model, 'userModel' => $userModel]);
         }
     } else {
         return $this->render('update', ['model' => $model, 'userModel' => $userModel]);
     }
 }
 /**
  * add advisor
  */
 public function actionAddAdvisor($id = null)
 {
     $model = new Advisor();
     $userModel = new User();
     //validate email unique
     if (Yii::$app->request->isAjax && $model->load(Yii::$app->request->post()) && $userModel->load(Yii::$app->request->post())) {
         Yii::$app->response->format = Response::FORMAT_JSON;
         return array_merge(ActiveForm::validate($userModel), ActiveForm::validate($model));
     }
     if ($model->load(Yii::$app->request->get()) && $userModel->load(Yii::$app->request->get())) {
         Yii::$app->response->format = Response::FORMAT_JSON;
         $user = User::createUser(Dict::USER_ROLE_ADVISOR, ['User' => $_GET['User'], 'Advisor' => $_GET['Advisor']]);
         if ($user) {
             if (!empty($id)) {
                 $advisorGroup = new AdvisorGroup();
                 $advisorGroup->id_group = $id;
                 $advisorGroup->id_advisor = $user->advisor->id_advisor;
                 $advisorGroup->save();
             }
             return true;
         } else {
             return false;
         }
     }
     return $this->renderAjax('add_advisor', ['model' => $model, 'user' => $userModel, 'id' => $id]);
 }
Beispiel #11
0
 public function getInfo()
 {
     switch ($this->id_user_role) {
         case Dict::USER_ROLE_BETTERDEBT:
             return $this->hasOne(Betterdebt::classname(), ['id_user' => 'id_user']);
             break;
         case Dict::USER_ROLE_ADVISOR:
             return $this->hasOne(Advisor::classname(), ['id_user' => 'id_user']);
             break;
         case Dict::USER_ROLE_CLIENT:
             return $this->hasOne(Client::classname(), ['id_user' => 'id_user']);
             break;
         case Dict::USER_ROLE_BANK:
             return $this->hasOne(BankUser::classname(), ['id_user' => 'id_user']);
             break;
         default:
             return null;
             break;
     }
 }
Beispiel #12
0
 public function actionList()
 {
     $searchModel = new LoanSearch();
     if ($this->user->id_user_role == Dict::USER_ROLE_ADVISOR) {
         $advisor = Advisor::find()->andWhere(['id_user' => $this->user->id])->one();
         //find related groups
         $id_groups = AdvisorGroup::find()->andWhere(['id_advisor' => $advisor['id_advisor']])->all();
         $ids = [];
         foreach ($id_groups as $value) {
             $ids[] = $value['id_group'];
         }
         $applications = Application::find()->andWhere(['in', 'id_group', $ids])->all();
         $id_applications = [];
         foreach ($applications as $value) {
             $id_applications[] = $value['id_application'];
         }
         $query = Loan::find()->andWhere(['in', 'id_application', $id_applications])->andWhere(['status' => 1]);
         //->orderBy(['id_loan' => SORT_DESC]);
         $dataProvider = $searchModel->search(Yii::$app->request->get(), $query);
     } else {
         if ($this->user->id_user_role == Dict::USER_ROLE_BETTERDEBT) {
             $query = Loan::find()->andWhere(['status' => 1]);
             //->orderBy(['id_loan' => SORT_DESC]);
             $dataProvider = $searchModel->search(Yii::$app->request->get(), $query);
             // 			$query->orderBy(['id_loan' => SORT_DESC]);
             // 			$dataProvider = new ActiveDataProvider([
             // 				'query' => $query,
             // 			]);
         }
     }
     return $this->render('list', ['searchModel' => $searchModel, 'dataProvider' => $dataProvider]);
 }
Beispiel #13
0
    }
}
SCRIPT;
$form = ActiveForm::begin(['enableClientScript' => false]);
?>
<section class="content-wrap">
  <div class="container">
    <div class="row pt50">
      <main class="col-md-9 main-content">
        <div class="new-application frame">
          <h3 class="border-bottom h3">NEW APPLICATION</h3>
          <div class="application-box">
             <div class="clearfix">
              <div class="form-group padding-left-Zero col-xs-6 mb0">
                <?php 
echo $form->field($model, 'id_group', ['options' => ['class' => 'form-group']])->label('Please select Master Account (group)')->dropDownList(ArrayHelper::map(Advisor::find()->where(['id_user' => Yii::$app->user->getIdentity()->id])->one()->groups, 'id_group', function ($model, $defaultValue) {
    return $model->group_id;
}));
?>
              </div>
              <div class="col-xs-6 padding-right0">
                        <?php 
echo $form->field($model, 'is_joint_application')->label('Select Application Type')->radioList(DictApplication::$applicationJoint, ['item' => function ($index, $label, $name, $checked, $value) {
    $radio = Html::radio($name, $checked, ['value' => $value, 'id' => $name . $index]);
    $label = Html::label($radio . $label);
    return Html::tag('div', $label, ['class' => 'radio col-xs-6']);
}]);
?>

                </div>
              </div>
Beispiel #14
0
 public function getAdvisorUser()
 {
     return $this->hasOne(Advisor::className(), ['id_advisor' => 'id_advisor'])->joinwith('users');
 }
 /**
  * Finds the Advisor model based on its primary key value.
  * If the model is not found, a 404 HTTP exception will be thrown.
  * @param integer $id
  * @return Advisor the loaded model
  * @throws NotFoundHttpException if the model cannot be found
  */
 protected function findModel($id)
 {
     if (($model = Advisor::findOne($id)) !== null) {
         return $model;
     } else {
         throw new NotFoundHttpException('The requested page does not exist.');
     }
 }
Beispiel #16
0
$form = ActiveForm::begin();
?>
    					<?php 
echo $form->field($model, 'group_id')->textInput(['maxlength' => true]);
?>
              <?php 
echo $form->field($model, 'name')->textInput(['maxlength' => true]);
?>
    					<?php 
echo $form->field($model, 'id_custodian')->dropDownList(ArrayHelper::map(Custodian::find()->all(), 'id_custodian', 'name'), ['id' => 'id_custodian', 'prompt' => 'Select...']);
?>
    					<div class="form-group field-advisorgroup-id_advisor required">
	    					<label class="col-sm-3 control-label form-label" for="id_advisor">Id Advisor</label>
	    					<div class="col-sm-8">
		    					<?php 
echo Select2::widget(['name' => 'id_advisor', 'value' => ArrayHelper::map($model->advisors, 'id_advisor', 'id_advisor'), 'data' => ArrayHelper::map(Advisor::find()->all(), 'id_advisor', function ($item) {
    return $item->user->first_name;
}), 'options' => ['placeholder' => 'Select  ...', 'multiple' => true], 'pluginOptions' => ['maximumInputLength' => 10, 'ajax' => ['url' => Url::to(['get-all-advisor-list']), 'dataType' => 'json', 'data' => new JsExpression('function(params) { return {q:params.term}; }')]]]);
?>
	    					</div>
    					</div>
    					<div class="form-group">
       					<div class="col-sm-2"></div>
        						<div class="col-sm-10">
        							<?php 
echo Html::button(Yii::t('app', 'Add Advisor'), ['class' => 'fa fa-plus btn btn-success "', 'data-toggle' => 'modal', 'data-target' => '#myModal']);
?>
            						<?php 
echo Html::submitButton($model->isNewRecord ? 'Create' : 'Update', ['class' => $model->isNewRecord ? 'btn btn-success' : 'btn btn-primary']);
?>
        						</div>