示例#1
0
 public function testItems()
 {
     $this->specify("Попытка получить список операторов", function () {
         $items = ['operator1' => 'Оператор 1', 'operator2' => 'Оператор 2'];
         expect("Список должен состоять из пар идентификатор - имя", Operator::items())->equals($items);
     });
 }
示例#2
0
 /**
  * @param OperatorXML $xml
  * @return Report|null
  */
 public static function generate(OperatorXML $xml)
 {
     $operator = Operator::findOne(['contract' => $xml->getContract()]);
     $operatorId = $operator !== null ? $operator->getPrimaryKey() : null;
     $period = ['month' => $xml->getMonth(), 'year' => $xml->getYear()];
     $report = self::findOne(['operatorId' => $operatorId, 'period' => $period]);
     if (!$report instanceof Report) {
         $report = new Report();
         $report['operatorId'] = $operatorId;
         $report['period'] = $period;
     } else {
         $report->outSideDb = [];
         $report->outSideOperator = [];
     }
     if (!$report->save()) {
         return null;
     }
     $report->unlinkAll('items', true);
     $outSideOperator = Number::find()->where(['operatorId' => $report->operatorId])->indexBy('number')->all();
     $outSideDB = [];
     foreach ($xml->getItems() as $item) {
         $number = $item['number'];
         if (array_key_exists($number, $outSideOperator)) {
             $report->addItem($outSideOperator[$number], $item['expenditure']);
             unset($outSideOperator[$number]);
         } else {
             $outSideDB[] = $item;
         }
     }
     $report->outSideOperator = array_map(function ($item) {
         return ['number' => $item->number, 'id' => $item->getPrimaryKey()];
     }, array_values($outSideOperator));
     $report->outSideDb = $outSideDB;
     $report->save(false);
     return $report;
 }
示例#3
0
var formatEmployeeList = function(item) {
    return '<b>' + item.name + '</b><p><small>' + item.post + ' (' + item.division + ')</small></p>';
}
var formatEmployeeSelection = function (employee) {
    return employee.name || employee.text;
}
JS;
$this->registerJs($formatJs, View::POS_HEAD);
?>

<?php 
echo $form->field($model, 'ownerId')->widget(\kartik\select2\Select2::className(), ['initValueText' => $model->owner->fullName, 'showToggleAll' => false, 'options' => ['placeholder' => 'Имя сотрудника...'], 'pluginOptions' => ['allowClear' => true, 'minimumInputLength' => 3, 'ajax' => ['url' => \yii\helpers\Url::to(['owner-list']), 'dataType' => 'json', 'data' => new JsExpression('function(params) { return {q:params.term}; }'), 'delay' => 250], 'escapeMarkup' => new JsExpression('function (markup) { return markup; }'), 'templateResult' => new JsExpression('formatEmployeeList'), 'templateSelection' => new JsExpression('formatEmployeeSelection')]]);
?>

<?php 
echo $form->field($model, 'operatorId')->dropDownList(Operator::items());
?>

<?php 
echo ActiveRadioList::widget(['activeField' => $form->field($model, 'destination'), 'items' => $model::destinationItems(), 'options' => ['class' => 'btn-group  btn-group-sm']]);
?>

<?php 
echo $form->field($model, 'limit', ['enableClientValidation' => true]);
?>

<?php 
echo $form->field($model, 'options')->checkboxList($model::optionItems());
?>

<?php 
示例#4
0
 /**
  * @return \yii\db\ActiveQueryInterface
  */
 public function getOperator()
 {
     return $this->hasOne(Operator::className(), ['_id' => 'operatorId']);
 }
示例#5
0
 public function getOperators()
 {
     return array_merge([self::OPERATOR_ANY => 'Выберите оператора'], Operator::items());
 }
示例#6
0
 public static function getOperatorItems()
 {
     if (self::$operatorList === null) {
         self::$operatorList = array_merge([self::OPERATOR_ALL => "Все операторы"], Operator::items());
     }
     return self::$operatorList;
 }
 public function actionOperators()
 {
     $this->stdout("Загружаю операторов\n", Console::FG_BLUE, Console::BOLD);
     $query = (new Query())->from($this->operatorTableName);
     $this->stdout("Источник: таблица '{$this->operatorTableName}' " . $query->count() . " записей.\nЦелевая коллекция: '" . Operator::collectionName() . "'\n");
     $this->cleanCollection(Operator::collectionName());
     foreach ($query->all() as $item) {
         $operator = new Operator(['name' => $item['name'], 'contract' => $item['contract'], 'contact' => $item['contact']]);
         if ($operator->save()) {
             $this->operatorJunction[$item['id']] = $operator->getPrimaryKey();
         }
     }
     $this->stdout("Успешно загружено " . count($this->operatorJunction) . " записей\n", Console::BOLD, Console::FG_GREEN);
     $this->stdout("\n");
     return Controller::EXIT_CODE_NORMAL;
 }
示例#8
0
 public static function operatorList()
 {
     return Operator::items();
 }