예제 #1
0
 public function actionAssignToGrid()
 {
     $LastBC = Proc::GetLastBreadcrumbsFromSession();
     if ($LastBC['dopparams']['foreign']['model'] === 'Authassignment') {
         Proc::AssignToModelFromGrid(True, new Authassignment(), 'user_id');
     } elseif ($LastBC['dopparams']['foreign']['model'] === 'Authitemchild') {
         Proc::AssignToModelFromGrid(True, new Authitemchild(), 'parent');
     }
 }
예제 #2
0
파일: index.php 프로젝트: vovancho/yii2test
<?php

use yii\helpers\Html;
use kartik\dynagrid\DynaGrid;
use app\func\Proc;
use yii\helpers\Url;
/* @var $this yii\web\View */
/* @var $searchModel app\models\Fregat\TrMatSearch */
/* @var $dataProvider yii\data\ActiveDataProvider */
$this->title = 'Установленные комплектующие';
$this->params['breadcrumbs'] = Proc::Breadcrumbs($this);
?>
<div class="tr-mat-index">
    <?php 
$result = Proc::GetLastBreadcrumbsFromSession();
$foreign = isset($result['dopparams']['foreign']) ? $result['dopparams']['foreign'] : '';
echo DynaGrid::widget(Proc::DGopts(['options' => ['id' => 'trmatgrid'], 'columns' => Proc::DGcols(['columns' => ['idMattraffic.idMaterial.material_name', 'idMattraffic.idMaterial.material_inv', 'idMattraffic.mattraffic_number', ['attribute' => 'idParent.idMaterial.material_name', 'label' => 'Укомплекторано в мат-ую цен-ть'], ['attribute' => 'idParent.idMaterial.material_inv', 'label' => 'Инвентарный номер мат-ой цен-ти, в которую укомплектован материал'], ['attribute' => 'idParent.idMol.idbuild.build_name', 'label' => 'Здание, где установлено'], ['attribute' => 'idParent.trOsnovs.tr_osnov_kab', 'label' => 'Кабинет, где установлено', 'value' => function ($model) {
    return $model->idParent->trOsnovs[0]->tr_osnov_kab;
}], ['attribute' => 'idMattraffic.idMol.idperson.auth_user_fullname', 'label' => 'ФИО материально-ответственного лица'], ['attribute' => 'idMattraffic.idMol.iddolzh.dolzh_name', 'label' => 'Должность материально-ответственного лица']], 'buttons' => array_merge(empty($foreign) ? [] : ['chooseajax' => ['Fregat/tr-mat/assign-to-grid']])]), 'gridOptions' => ['dataProvider' => $dataProvider, 'filterModel' => $searchModel, 'panel' => ['heading' => '<i class="glyphicon glyphicon-align-paste"></i> ' . $this->title]]]));
?>

</div>
예제 #3
0
파일: Proc.php 프로젝트: vovancho/yii2test
 /**
  * Присваивает выбранное значение из справочника модели, в сессии.
  * При выборе значения из справочника, значение присваивается в сессию предыдущей хлебной крошки, для формы, с которой был открыт справочник.
  * @param bool $RedirectPreviousUrl
  * @param ActiveRecord $ActiveRecord Модель к которой присваивается знаечния из справочника.
  * @param string $AttributeForeignID Имя атрибута
  * @return string
  */
 public static function AssignToModelFromGrid($RedirectPreviousUrl = True, $ActiveRecord = NULL, $AttributeForeignID = NULL)
 {
     if (Yii::$app->request->isAjax) {
         $LastBC = Proc::GetLastBreadcrumbsFromSession();
         $assigndata = filter_input(INPUT_POST, 'assigndata');
         $foreign = isset($LastBC['dopparams']['foreign']) ? $LastBC['dopparams']['foreign'] : '';
         if (!empty($foreign) && !empty($assigndata)) {
             $BC = Proc::GetBreadcrumbsFromSession();
             end($BC);
             prev($BC);
             $BC[key($BC)]['dopparams'][$foreign['model']][$foreign['field']] = $assigndata;
             $session = new Session();
             $session->open();
             $session['breadcrumbs'] = $BC;
             $session->close();
             if ($ActiveRecord instanceof ActiveRecord && is_string($AttributeForeignID)) {
                 $field = $LastBC['dopparams']['foreign']['field'];
                 if ($ActiveRecord->formName() === $LastBC['dopparams']['foreign']['model']) {
                     $ActiveRecord->{$field} = $assigndata;
                     $ActiveRecord->{$AttributeForeignID} = $foreign['id'];
                     if ($ActiveRecord->validate()) {
                         $ActiveRecord->save(false);
                     }
                 }
             }
             if ($RedirectPreviousUrl) {
                 Yii::$app->response->redirect(Proc::GetPreviousURLBreadcrumbsFromSession());
             }
         } else {
             return 'error foreign or assigndata empty AssignToModelFromGrid()';
         }
     }
 }