add contraint , that everybody expect admin is limited to 3 days, Add card package
This commit is contained in:
@@ -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
|
||||
] );
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user