public function up()
 {
     $tableOptions = null;
     if ($this->db->driverName === 'mysql') {
         $tableOptions = 'CHARACTER SET utf8 COLLATE utf8_general_ci ENGINE=InnoDB';
     }
     //    * серия карты
     //    * номер карты
     //    * дата выпуска карты
     //    * дата окончания активности карты
     //    * дата использования
     //    * сумма
     //    * статус карты (не активирована/активирована/просрочена)
     $this->createTable('{{%serial}}', ['id' => $this->primaryKey(), 'serial' => $this->string(20)->notNull(), 'release_date' => $this->dateTime()->notNull(), 'duration' => "enum ('" . implode("','", array_keys(Serial::getDurations())) . "') not null"], $tableOptions);
     $this->createIndex('serial_uniq', '{{%serial}}', ['serial'], true);
     $this->createTable('{{%card}}', ['id' => $this->primaryKey(), 'serial_id' => $this->integer()->notNull(), 'number' => $this->integer()->notNull(), 'begin_date' => $this->dateTime()->defaultValue(null), 'end_date' => $this->dateTime()->defaultValue(null), 'amount' => $this->money()->notNull()->defaultValue(0), 'status' => "enum ('" . implode("','", array_keys(Card::getStatuses())) . "') not null default '" . Card::STATUS_NEW . "'"], $tableOptions);
     $this->createIndex('serial_number_uniq', '{{%card}}', ['serial_id', 'number'], true);
     $this->addForeignKey('FK_card_serial', '{{%card}}', 'serial_id', '{{%serial}}', 'id');
 }
Esempio n. 2
0
 public function rules()
 {
     return [[['status', 'old_status'], 'required'], [['status', 'old_status'], 'in', 'range' => array_keys(Card::getStatuses())]];
 }
Esempio n. 3
0
/* @var $searchModel \app\models\CardSearch */
use yii\grid\GridView;
use yii\helpers\Html;
use yii\jui\DatePicker;
use app\models\Card;
use app\models\Serial;
$this->title = 'Карты';
$this->params['breadcrumbs'][] = '';
$js = <<<JS
\$('.card-delete').on('click', function(event){
    event.preventDefault();
    var self = \$(this);
    \$.post('/card/delete', {id:self.data('id')})
        .done(function(data){
            if (data.result==true) {
                self.parents('tr').remove();
            }
        });
});
JS;
$this->registerJs($js);
?>

<?php 
echo GridView::widget(['dataProvider' => $dataProvider, 'filterModel' => $searchModel, 'layout' => '{items}{pager}', 'columns' => ['id', ['attribute' => 'serialSerial', 'value' => 'serial.serial'], 'number', ['attribute' => 'serialReleaseDate', 'value' => 'serial.release_date', 'filter' => DatePicker::widget(['model' => $searchModel, 'attribute' => 'serialReleaseDate', 'options' => ['class' => 'form-control'], 'dateFormat' => 'yyyy-MM-dd'])], ['attribute' => 'end_date', 'filter' => DatePicker::widget(['model' => $searchModel, 'attribute' => 'end_date', 'options' => ['class' => 'form-control'], 'dateFormat' => 'yyyy-MM-dd'])], ['attribute' => 'status', 'format' => 'raw', 'value' => function ($data) {
    return Html::a($data->statusText, ['/card/update', 'id' => $data->id], ['class' => 'book-view']);
}, 'filter' => Html::activeDropDownList($searchModel, 'status', Card::getStatuses(), ['class' => 'form-control', 'prompt' => ''])], ['class' => \yii\grid\ActionColumn::class, 'header' => 'Действия', 'headerOptions' => ['width' => '150'], 'template' => '{view} {delete}', 'buttons' => ['delete' => function ($url, $model) {
    return Html::a('Удалить', null, ['class' => 'card-delete', 'data-id' => $model->id]);
}, 'view' => function ($url, $model) {
    return Html::a('Просмотр', $url, ['class' => 'book-view']);
}]]]]);
Esempio n. 4
0
 public function rules()
 {
     return [[['id', 'number'], 'integer'], ['serialSerial', 'string', 'max' => 20], [['serialReleaseDate', 'begin_date', 'end_date'], 'date', 'format' => 'y-m-d'], ['status', 'in', 'range' => array_keys(Card::getStatuses())], ['serialDuration', 'in', 'range' => array_keys(Serial::getDurations())]];
 }