add contraint , that everybody expect admin is limited to 3 days, Add card package

This commit is contained in:
2016-02-13 17:23:43 +01:00
parent 556bdc3066
commit 70f43468af
37 changed files with 1418 additions and 19 deletions

View File

@@ -78,6 +78,8 @@ class AdminMenuStructure{
$items[] = ['label' => 'Bérletkártyák', 'url' => ['/card/index'] ];
$items[] = ['label' => 'Bérletek', 'url' => ['/ticket/index' , 'TicketSearch[start]' =>$today,'TicketSearch[end]' => $tomorrow ] ];
$items[] = ['label' => 'Statisztika', 'url' => ['/ticket/statistics' , 'TicketSearchStatisitcs[start]' =>$today,'TicketSearchStatisitcs[end]' => $tomorrow ] ];
$items[] = ['label' => 'Kártya létrehozás', 'url' => ['/card-package/index' , ] ];
$items[] = ['label' => 'Kártya csomag RFId hozzárendelés', 'url' => ['/card-package/import' , ] ];
$this->menuItems[] = ['label' => 'Bérletek/Vendégek', 'url' => $this->emptyUrl,
'items' => $items
];
@@ -119,7 +121,7 @@ class AdminMenuStructure{
// $items[] = ['label' => 'Bevétel', 'url' => ['/transfer/summary' , 'TransferSummarySearch[start]' =>$today,'TransferSummarySearch[end]' => $tomorrow ] ];
// $items[] = ['label' => 'Napi bevételek', 'url' => ['/transfer/list', 'TransferListSearch[start]' =>$todayDatetime,'TransferListSearch[end]' => $tomorrowDatetime ] ];
// $items[] = ['label' => 'Kassza müveletek', 'url' => ['/account-state/index'] ];
if ( RoleDefinition::isAdmin() || RoleDefinition::isEmployee() ){
if ( RoleDefinition::isAdmin() ){
$this->menuItems[] = ['label' => 'Tartós megbízások', 'url' => $this->emptyUrl,
'items' => $items
];

View File

@@ -12,6 +12,7 @@ use yii\helpers\Json;
use backend\models\CardImportRfidForm;
use yii\web\UploadedFile;
use common\components\Helper;
use backend\models\CardInsertForm;
/**
* CardController implements the CRUD actions for Card model.
@@ -30,7 +31,8 @@ class CardController extends \backend\controllers\BackendController {
'view',
'update',
'list' ,
'import-rfid'
'import-rfid',
'insert'
],
'allow' => true,
'roles' => [
@@ -224,6 +226,7 @@ class CardController extends \backend\controllers\BackendController {
$failed = [];
$sqls = [];
$inserts = [];
foreach ($arr as $item ){
$card = Card::find()->andWhere(['number' => $item['number']])->one();
if ( $card != null ){
@@ -232,7 +235,17 @@ class CardController extends \backend\controllers\BackendController {
$sqls[] = $sql;
$i++;
}else{
$failed [] = $item;
// $failed [] = $item;
$sql = "insert into card (number,status,type,created_at,updated_at, rfid_key) values(";
$sql .= " '" .$item['number'] . "'" ;
$sql .= " ," . Card::STATUS_ACTIVE ;
$sql .= " ," . Card::TYPE_RFID;
$sql .= " ,'" . date("Y-m-d H:i:s") ."'" ;
$sql .= " ,'" . date("Y-m-d H:i:s") ."'" ;
$sql .=" ,'" .$item['key'] ."'";
$sql .= " );";
$inserts[] = $sql;
// rfid_key = '" . strtolower( $item['key'] )."' where id_card = " .$card->id_card .";";
}
}
@@ -241,6 +254,8 @@ class CardController extends \backend\controllers\BackendController {
$model->message .= "<br> failed: " . print_r($failed,true);
$model->message .= "<br>sql:";
$model->message .= "<br>". implode("<br>", $sqls);
$model->message .= "<br><br><br>Inserts<br><br><br>";
$model->message .= "<br>". implode("<br>", $inserts);
}
@@ -248,4 +263,90 @@ class CardController extends \backend\controllers\BackendController {
'model' => $model
] );
}
public function actionInsert() {
$model = new CardInsertForm();
$arr = [];
if (Yii::$app->request->isPost) {
$model->file = UploadedFile::getInstance($model, 'file');
// print_r($model->file);
// $model->message = "ok";
$file = $model->file->tempName;
$file = fopen ( $file , "r" );
$trans = null;
$i = 0;
$j = 0;
while ( ($data = fgetcsv ( $file, 0, "," )) != null ) {
// if ($i == 0) {
// $i ++;
// continue;
// }
$j++;
$number = $key = false;
if ( isset($data[0]) ){
$number = $data[0];
}
if ( isset($data[1]) ){
$key = $data[1];
}
if ( isset($number) && isset($key) && !strpos($key, "E+") && strlen($key) > 7 ){
$item = [];
$item['number'] = $number;
$item['key'] = Helper::fixAsciiChars( $key);
$arr[] = $item;
}
}
$failed = [];
$sqls = [];
$inserts = [];
foreach ($arr as $item ){
// $failed [] = $item;
$sql = "insert into card (number,status,type,created_at,updated_at, rfid_key) values(";
$sql .= " '" .$item['number'] . "'" ;
$sql .= " ," . Card::STATUS_ACTIVE ;
$sql .= " ," . Card::TYPE_RFID;
$sql .= " ,'" . date("Y-m-d H:i:s") ."'" ;
$sql .= " ,'" . date("Y-m-d H:i:s") ."'" ;
$sql .=" ,'" .$item['key'] ."'";
$sql .= " );";
$inserts[] = $sql;
}
$model->message = "rows read: " .$j ." / ". "updated cards: " .$i;
$model->message .= "<br> array size: " . count($arr);
$model->message .= "<br> failed: " . print_r($failed,true);
$model->message .= "<br>sql:";
$model->message .= "<br>". implode("<br>", $sqls);
$model->message .= "<br><br><br>Inserts<br><br><br>";
$model->message .= "<br>". implode("<br>", $inserts);
$inserts = implode("\n", $inserts);
header("Content-type:text/plain"); //for pdf file
//header('Content-Type:text/plain; charset=ISO-8859-15');
//if you want to read text file using text/plain header
header('Content-Disposition: attachment; filename="insert.sql"');
header('Content-Length: ' . strlen($inserts));
echo $inserts;
exit();
}
return $this->render ( 'insert.php', [
'model' => $model
] );
}
}

View File

@@ -0,0 +1,315 @@
<?php
namespace backend\controllers;
use Yii;
use common\models\CardPackage;
use backend\models\CardPackageSearch;
use yii\web\Controller;
use yii\web\NotFoundHttpException;
use yii\filters\VerbFilter;
use common\components\Helper;
use common\components\FreeUniqueCardNumberGenerator;
use common\models\Card;
use common\models\CardCardPackageAssignment;
use yii\data\ActiveDataProvider;
use backend\models\CardPackageImportForm;
use common\components\XLSUtil;
use yii\web\UploadedFile;
use common\components\Upload;
/**
* CardPackageController implements the CRUD actions for CardPackage model.
*/
class CardPackageController extends Controller {
public function behaviors() {
return [
'verbs' => [
'class' => VerbFilter::className (),
'actions' => [
'delete' => [
'post'
]
]
]
];
}
/**
* Lists all CardPackage models.
*
* @return mixed
*/
public function actionIndex() {
$searchModel = new CardPackageSearch ();
$dataProvider = $searchModel->search ( Yii::$app->request->queryParams );
return $this->render ( 'index', [
'searchModel' => $searchModel,
'dataProvider' => $dataProvider
] );
}
/**
* Displays a single CardPackage model.
*
* @param integer $id
* @return mixed
*/
public function actionView($id) {
$model = $this->findModel ( $id );
$query = Card::find ();
$query->innerJoin ( "card_card_package_assignment", "card_card_package_assignment.id_card = card.id_card " );
$query->andWhere ( [
'card_card_package_assignment.id_card_package' => $id
] );
$dataProvider = new ActiveDataProvider ( [
'query' => $query
] );
return $this->render ( 'view', [
'model' => $model,
'dataProvider' => $dataProvider
] );
}
public function actionDownload($id) {
$model = $this->findModel ( $id );
$model->updateCounters ( [
'printed' => 1
] );
$query = Card::find ();
$query->innerJoin ( "card_card_package_assignment", "card_card_package_assignment.id_card = card.id_card " );
$query->andWhere ( [
'card_card_package_assignment.id_card_package' => $id
] );
$cards = $query->all ();
$numbers = [ ];
foreach ( $cards as $card ) {
$numbers [] = $card->number;
}
$this->generateXLS ( $model, $numbers );
}
/**
* Creates a new CardPackage model.
* If creation is successful, the browser will be redirected to the 'view' page.
*
* @return mixed
*/
public function actionCreate() {
$model = new CardPackage ();
$model->id_user = \Yii::$app->user->id;
$model->printed = 0;
if ($model->load ( Yii::$app->request->post () ) && $model->validate ()) {
$conn = \Yii::$app->db;
$tx = $conn->beginTransaction ();
$model->save ( false );
$count = $model->count;
$numGen = new FreeUniqueCardNumberGenerator ( [
'count' => $model->count,
'prefix' => '10'
] );
$numGen->generate ();
$numbers = $numGen->cache;
try {
foreach ( $numbers as $number ) {
$card = new Card ();
$card->number = $number;
$card->type = Card::TYPE_RFID;
$card->status = Card::STATUS_ACTIVE;
$card->save ( false );
$cardAssignment = new CardCardPackageAssignment ();
$cardAssignment->id_card = $card->id_card;
$cardAssignment->id_card_package = $model->id_card_package;
$cardAssignment->save ( false );
}
$tx->commit ();
return $this->redirect ( [
'index'
] );
} catch ( \Exception $e ) {
$tx->rollBack ();
}
return $this->render ( 'create', [
'model' => $model
] );
} else {
return $this->render ( 'create', [
'model' => $model
] );
}
}
protected function generateXLS($model, $numbers) {
$objPHPExcel = new \PHPExcel ();
$sheet = $objPHPExcel->setActiveSheetIndex ( 0 );
// $row = 1;
// $sheet->setCellValue('A'.$row, "Termék név")
// ->setCellValue('B'.$row, "Eladási ár")
// ->setCellValue('C'.$row, "Kassza")
// ->setCellValue('D'.$row, "Eladott mennyiség")
// ->setCellValue('E'.$row, "Eladás összege");
$row = 0;
foreach ( $numbers as $number ) {
$row ++;
$sheet->setCellValue ( 'A' . $row, $number );
}
$fileName = "kartya_csomag";
$fileName .= "_" . $model->id_card_package;
$fileName .= "_" . date ( "Ymd_His" );
$fileName .= ".xls";
// Redirect output to a clients web browser (Excel5)
header ( 'Content-Type: application/vnd.ms-excel' );
header ( 'Content-Disposition: attachment;filename="' . $fileName . '"' );
header ( 'Cache-Control: max-age=0' );
// If you're serving to IE 9, then the following may be needed
header ( 'Cache-Control: max-age=1' );
// If you're serving to IE over SSL, then the following may be needed
header ( 'Expires: Mon, 26 Jul 1997 05:00:00 GMT' ); // Date in the past
header ( 'Last-Modified: ' . gmdate ( 'D, d M Y H:i:s' ) . ' GMT' ); // always modified
header ( 'Cache-Control: cache, must-revalidate' ); // HTTP/1.1
header ( 'Pragma: public' ); // HTTP/1.0
$objWriter = \PHPExcel_IOFactory::createWriter ( $objPHPExcel, 'Excel5' );
$objWriter->save ( 'php://output' );
exit ();
}
public function actionImport() {
$model = new CardPackageImportForm ();
if (Yii::$app->request->isPost) {
$model->file = UploadedFile::getInstance ( $model, 'file' );
if ($model->validate ()) {
// print_r($model->file);
// $model->message = "ok";
$file = $model->file->tempName;
$xlsUtil = new XLSUtil ();
$xlsUtil->loadFromFileName ( $file );
$array = $xlsUtil->toArray ();
// print_r($array);
// print_r( array_column($array, 2));
// foreach ($array as $item ){
// echo $item[2];
// }
foreach ( $array as $row ) {
try {
$tx = \Yii::$app->db->beginTransaction ();
$card = Card::find ()->andWhere ( [
'number' => $row [0]
] )->one ();
if ( isset( $card )) {
$card->rfid_key = Helper::fixAsciiChars( $row [2 ] );
$card->save(false);
}else{
throw new \Exception("Card not found");
}
$tx->commit ();
$model->done = $model->done + 1;
} catch ( \Exception $e ) {
$tx->rollBack ();
$model->failed = $model->failed + 1;
\Yii::error ( "Failed to import card rfid: " . print_r ( $row, true ) );
}
}
\Yii::$app->session->setFlash ( 'success', "Az importálás eredménye: sikeres:" . $model->done . "; Sikertelen: " . $model->failed );
\Yii::info('Importálás: sikeres: ' .$model->done . " , sikertelen: " . $model->failed);
return $this->redirect ( [
'card-package/import'
] );
}
}
return $this->render ( "import", [
'model' => $model
] );
}
/**
* Updates an existing CardPackage model.
* If update is successful, the browser will be redirected to the 'view' page.
*
* @param integer $id
* @return mixed
*/
public function actionUpdate($id) {
$model = $this->findModel ( $id );
if ($model->load ( Yii::$app->request->post () ) && $model->save ()) {
return $this->redirect ( [
'view',
'id' => $model->id_card_package
] );
} else {
return $this->render ( 'update', [
'model' => $model
] );
}
}
/**
* Deletes an existing CardPackage model.
* If deletion is successful, the browser will be redirected to the 'index' page.
*
* @param integer $id
* @return mixed
*/
public function actionDelete($id) {
$this->findModel ( $id )->delete ();
return $this->redirect ( [
'index'
] );
}
/**
* Finds the CardPackage model based on its primary key value.
* If the model is not found, a 404 HTTP exception will be thrown.
*
* @param integer $id
* @return CardPackage the loaded model
* @throws NotFoundHttpException if the model cannot be found
*/
protected function findModel($id) {
if (($model = CardPackage::findOne ( $id )) !== null) {
return $model;
} else {
throw new NotFoundHttpException ( 'The requested page does not exist.' );
}
}
}

View File

@@ -8,6 +8,7 @@ use yii\data\ActiveDataProvider;
use common\models\AccountState;
use common\components\RoleDefinition;
use common\models\Account;
use common\components\Helper;
/**
* AccountStateSearch represents the model behind the search form about `common\models\AccountState`.
@@ -65,6 +66,8 @@ class AccountStateSearch extends AccountState
if ( RoleDefinition::isReception()){
$query->andWhere(['transfer.id_user' => Yii::$app->user->id ]);
}
Helper::restrictIfNotAdminTheStartDate($query, $this->timestampStart,['account_state.created_at'],"date" );
}
$dataProvider = new ActiveDataProvider([

View File

@@ -0,0 +1,30 @@
<?php
namespace backend\models;
use Yii;
use yii\base\Model;
use common\models\Card;
use common\models\Customer;
use common\models\Ticket;
use common\models\Account;
use yii\web\UploadedFile;
/**
* ContactForm is the model behind the contact form.
* @property \Yii\web\UploadedFile $file
*/
class CardInsertForm extends Model{
public $file;
public $message;
public function rules(){
return [
[['file'], 'file']
];
}
}

View File

@@ -0,0 +1,32 @@
<?php
namespace backend\models;
use Yii;
use yii\base\Model;
use common\models\Card;
use common\models\Customer;
use common\models\Ticket;
use common\models\Account;
use yii\web\UploadedFile;
/**
* ContactForm is the model behind the contact form.
* @property \Yii\web\UploadedFile $file
*/
class CardPackageImportForm extends Model{
public $file;
public $failed = 0;
public $done = 0;
public function rules(){
return [
[['file'], 'file' ],
[['file'], 'required' ],
];
}
}

View File

@@ -0,0 +1,92 @@
<?php
namespace backend\models;
use Yii;
use yii\base\Model;
use yii\data\ActiveDataProvider;
use common\models\CardPackage;
/**
* CardPackageSearch represents the model behind the search form about `common\models\CardPackage`.
*/
class CardPackageSearch extends CardPackage
{
public static $STATUS_NOT_PRINTED = 10;
public static $STATUS_PRINTED = 20;
public $printStatus;
/**
* @inheritdoc
*/
public function rules()
{
return [
[['id_card_package', 'id_user', 'printed','printStatus'], 'integer'],
];
}
/**
* @inheritdoc
*/
public function scenarios()
{
// bypass scenarios() implementation in the parent class
return Model::scenarios();
}
/**
* Creates data provider instance with search query applied
*
* @param array $params
*
* @return ActiveDataProvider
*/
public function search($params)
{
$query = CardPackage::find();
$dataProvider = new ActiveDataProvider([
'query' => $query,
'sort' =>[
'defaultOrder' => ['created_at' => SORT_DESC]
]
]);
$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_card_package' => $this->id_card_package,
'id_user' => $this->id_user,
]);
if ( isset($this->printStatus)){
switch ($this->printStatus){
case self::$STATUS_NOT_PRINTED:
$query->andWhere( ['or' ,['card_package.printed' => null], [ "card_package.printed" => 0 ] ]);
break;
case self::$STATUS_PRINTED:
$query->andWhere( [">" ,"card_package.printed" , 0 ]);
break;
}
}
return $dataProvider;
}
public static function getPrintStatuses(){
return [
self::$STATUS_NOT_PRINTED => "Nincs letöltve",
self::$STATUS_PRINTED => "Letöltve",
];
}
}

View File

@@ -97,6 +97,8 @@ class TransferSearch extends Transfer
return $dataProvider;
}
echo "start date:" .$this->timestampStart;
$query->andFilterWhere([
'transfer.id_account' => $this->id_account,
'transfer.type' => $this->type,
@@ -111,6 +113,10 @@ class TransferSearch extends Transfer
$query->andFilterWhere(['or' , $created_condition , $paid_condition]);
if (!RoleDefinition::isAdmin()){
Helper::restrictIfNotAdminTheStartDate($query, $this->timestampStart,['transfer.created_at','transfer.paid_at'],'date');
}
return $dataProvider;
}
@@ -127,8 +133,14 @@ class TransferSearch extends Transfer
$accountMap = ArrayHelper::map( $accounts ,'id_account','name' );
$idUser = $this->id_user;
/**mk totals need date time format*/
$start = $this->timestampStart;
if ( isset($start) && !empty($start)){
$start .= " 00:00";
}
$this->totals = Transfer::mkTotals($this->timestampStart, $this->timestampEnd, $idUser, $this->types, $this->id_account, $accounts, $accountMap);
$this->totals = Transfer::mkTotals($start, $this->timestampEnd, $idUser, $this->types, $this->id_account, $accounts, $accountMap);
}

View File

@@ -0,0 +1,28 @@
<?php
use yii\helpers\Html;
use yii\widgets\ActiveForm;
/* @var $this yii\web\View */
/* @var $model common\models\CardPackage */
/* @var $form yii\widgets\ActiveForm */
?>
<div class="card-package-form">
<?php $form = ActiveForm::begin(); ?>
<div class="row">
<div class="col-md-4">
<?= $form->field($model, 'count')->textInput()->label("Hány új kártyát szerentnél?") ?>
</div>
</div>
<div class="form-group">
<?= Html::submitButton( Yii::t('common/card_package', 'Kártyák létrehozása') , ['class' => 'btn btn-success' ]) ?>
</div>
<?php ActiveForm::end(); ?>
</div>

View File

@@ -0,0 +1,49 @@
<?php
use yii\helpers\Html;
use yii\widgets\ActiveForm;
use common\models\User;
use common\components\Helper;
use frontend\components\HtmlHelper;
use backend\models\CardPackageSearch;
/* @var $this yii\web\View */
/* @var $model backend\models\CardPackageSearch */
/* @var $form yii\widgets\ActiveForm */
?>
<?php
$userOptions = ['' => 'Mind'] + HtmlHelper::mkOptions( User::read() ,'id','username');
$statusOptions = ['' => 'Mind'] + CardPackageSearch::getPrintStatuses();
?>
<div class="card-package-search">
<?php $form = ActiveForm::begin([
'action' => ['index'],
'method' => 'get',
]); ?>
<div class="row">
<div class="col-md-3">
<?= $form->field($model, 'id_card_package') ?>
</div>
<div class="col-md-3">
<?= $form->field($model, 'id_user')->dropDownList( $userOptions ) ?>
</div>
<div class="col-md-3">
<?= $form->field($model, 'printStatus')->dropDownList($statusOptions)->label("Letöltve") ?>
</div>
</div>
<div class="form-group">
<?= Html::submitButton(Yii::t('common/card_package', 'Keresés'), ['class' => 'btn btn-primary']) ?>
</div>
<?php ActiveForm::end(); ?>
</div>

View File

@@ -0,0 +1,21 @@
<?php
use yii\helpers\Html;
/* @var $this yii\web\View */
/* @var $model common\models\CardPackage */
$this->title = Yii::t('common/card_package', 'Új kártya csomag');
$this->params['breadcrumbs'][] = ['label' => Yii::t('common/card_package', 'Kártya csomagok'), 'url' => ['index']];
$this->params['breadcrumbs'][] = $this->title;
?>
<div class="card-package-create">
<h1><?= Html::encode($this->title) ?></h1>
<?= $this->render('_form', [
'model' => $model,
]) ?>
</div>

View File

@@ -0,0 +1,38 @@
<?php use yii\widgets\ActiveForm;
use yii\helpers\Html;
use yii\helpers\Url;
?>
<h1>Kártya csomag rfid hozzárendelés feltöltés</h1>
<p>Itt van lehetőséged a kártyás cégtől kapott kártya-rfid hozzárendelés fájl feltöltésére</p>
<div class="card-package-form">
<?php $form = ActiveForm::begin(['options' => ['enctype' => 'multipart/form-data']]) ?>
<div class="row">
<div class="col-md-4">
<?= $form->field($model, 'file')->fileInput([''])->label("Excel fájl kiválasztása") ?>
</div>
</div>
<div class="form-group">
<?= Html::submitButton( Yii::t('common/card_package', 'Kártyához tartozó RFID kódok importálása') , ['class' => 'btn btn-success' ]) ?>
</div>
<?php ActiveForm::end(); ?>
</div>
<p>
Az excel fájlnak a következő formátumban kell lennie:
<ul>
<li>Első oszlop: Kártya azonosító</li>
<li>Második oszlop: Vonalkód azonosító</li>
<li>Harmadik oszlop: RFID azonosító</li>
</ul>
Az importálás során csak az első és harmadik oszlopot olvassuk be.
<p>
<?php echo Html::img(Url::base() ."/images/card_package.jpg")?>

View File

@@ -0,0 +1,81 @@
<?php
use yii\helpers\Html;
use yii\grid\GridView;
use yii\helpers\Url;
/* @var $this yii\web\View */
/* @var $searchModel backend\models\CardPackageSearch */
/* @var $dataProvider yii\data\ActiveDataProvider */
$this->title = Yii::t('common/card_package', 'Kártyacsomagok');
$this->params['breadcrumbs'][] = $this->title;
?>
<div class="card-package-index">
<h1><?= Html::encode($this->title) ?></h1>
<p>
Itt generálhatunk a rendszerbe új beléptető kártyákat.<br>
A kártyak generálása úgynevezett csomagonként történik.
A művelet során az új kártyákat egy csomagba rendezzük,
majd letölthetjük a csomaghoz tartozó excel fájlt, ami az elkészítendő kártyák
kártya azonosítóit tartalmazzák.
A letöltött fájlt továbbküldhetjük a kártya készítő cégnek.
</p>
<p>
Miután a kártya készítő cég végzett, a kártyák mellé mellékel egy excel fájlt, amit
a <a href='<?php echo Url::toRoute(['card-package/import'])?>'>
Kártya csomag RFID hozzárendelés
</a>
menüpont alatt importálhatunk be.
Ezután lesz használható a kártya az rfid olvasóval
</p>
<?php echo $this->render('_search', ['model' => $searchModel]); ?>
<p>
<?= Html::a(Yii::t('common/card_package', 'Új kártyák létrehozása'), ['create'], ['class' => 'btn btn-success']) ?>
</p>
<?= GridView::widget([
'dataProvider' => $dataProvider,
'columns' => [
'id_card_package',
[
'attribute' => 'id_user',
'value' => 'userName'
],
'count',
'printed',
'created_at:datetime',
['attribute'=> 'updated_at','value' => 'printedDate', 'label' =>'Utolsó letöltés ideje','format' => 'datetime'],
['class' => 'yii\grid\ActionColumn',
'template' => '{view}, {download}',
'urlCreator' => function ($action, $model, $key, $index){
$result = "";
if ( 'view' == $action ){
$result = Url::toRoute(['card-package/view' , 'id' => $model->id_card_package ]);
}else if ( 'download' == $action ){
$result = Url::toRoute(['card-package/download' , 'id' => $model->id_card_package ]);
}
return $result;
},
'buttons' =>[
'view' => function ($url, $model, $key) {
return Html::a("Részletek" ,$url,['class' =>'btn btn-primary btn-xs']);
},
'download' => function ($url, $model, $key) {
return Html::a("Excel letöltés" ,$url,['class' =>'btn btn-primary btn-xs']);
},
]
],
],
]); ?>
</div>

View File

@@ -0,0 +1,23 @@
<?php
use yii\helpers\Html;
/* @var $this yii\web\View */
/* @var $model common\models\CardPackage */
$this->title = Yii::t('common/card_package', 'Update {modelClass}: ', [
'modelClass' => 'Card Package',
]) . ' ' . $model->id_card_package;
$this->params['breadcrumbs'][] = ['label' => Yii::t('common/card_package', 'Card Packages'), 'url' => ['index']];
$this->params['breadcrumbs'][] = ['label' => $model->id_card_package, 'url' => ['view', 'id' => $model->id_card_package]];
$this->params['breadcrumbs'][] = Yii::t('common/card_package', 'Update');
?>
<div class="card-package-update">
<h1><?= Html::encode($this->title) ?></h1>
<?= $this->render('_form', [
'model' => $model,
]) ?>
</div>

View File

@@ -0,0 +1,59 @@
<?php
use yii\helpers\Html;
use yii\widgets\DetailView;
use yii\grid\GridView;
/* @var $this yii\web\View */
/* @var $model common\models\CardPackage */
$this->title = "Kártya csomag: "+$model->id_card_package;
$this->params['breadcrumbs'][] = ['label' => Yii::t('common/card_package', 'Kártya csomagok'), 'url' => ['index']];
$this->params['breadcrumbs'][] = $this->title;
?>
<div class="card-package-view">
<h1><?= Html::encode($this->title) ?></h1>
<p>
<?= Html::a(Yii::t('common/card_package', 'Excel letöltés'), ['download', 'id' => $model->id_card_package], ['class' => 'btn btn-primary']) ?>
</p>
<?= DetailView::widget([
'model' => $model,
'attributes' => [
'id_card_package',
['attribute' => 'user','value' => $model->userName],
'id_user',
'count',
'printed',
'created_at:datetime',
'printedDate:datetime',
],
]) ?>
<?= GridView::widget([
'dataProvider' => $dataProvider,
'columns' => [
[
'attribute' => 'id_card',
'label' => "Kártya azonosító"
],
[
'attribute' => 'number',
'label' => "Kártyaszám"
],
[
'attribute' => 'rfid_key',
'label' => "RFID szám"
],
[
'attribute' => 'created_at',
'label' => "Létrehozva",
'format' => 'datetime'
],
]
]);
?>
</div>

View File

@@ -0,0 +1,16 @@
<?php
use yii\widgets\ActiveForm;
use yii\helpers\Html;
?>
<?php $form = ActiveForm::begin(['options' => ['enctype' => 'multipart/form-data']]) ?>
<?= $form->field($model, 'file')->fileInput() ?>
<button>Submit</button>
<?php
echo ($model->message);
?>
<?php ActiveForm::end() ?>

Binary file not shown.

After

Width:  |  Height:  |  Size: 135 KiB