diff --git a/frontend/controllers/CustomerController.php b/frontend/controllers/CustomerController.php index 8709a0b..c803171 100644 --- a/frontend/controllers/CustomerController.php +++ b/frontend/controllers/CustomerController.php @@ -98,6 +98,13 @@ class CustomerController extends Controller return $this->redirect([ 'ticket/create', 'number' => $model->card->number ]); } + if ( isset($model->card) ){ + $user = User::findOne( [ 'id' => Yii::$app->user->id ] ); + + $user->key_listener_enabled = 0; + $user->save(); + } + return $this->render('reception',['model' => $model]); } diff --git a/frontend/controllers/ProductController.php b/frontend/controllers/ProductController.php index 6ce30be..034af3f 100644 --- a/frontend/controllers/ProductController.php +++ b/frontend/controllers/ProductController.php @@ -38,113 +38,118 @@ class ProductController extends Controller { protected $card; protected $customer; public function behaviors() { - return [ - 'verbs' => [ + return [ + 'verbs' => [ 'class' => VerbFilter::className (), - 'actions' => [ - 'delete' => [ - 'post' - ] - ] + 'actions' => [ + 'delete' => [ + 'post' + ] + ] ], - 'access' => [ + 'access' => [ 'class' => \yii\filters\AccessControl::className (), - 'only' => [ + 'only' => [ 'sale', 'payout-customer-cart', 'payout-user-cart', 'lookup', - 'find' + 'find' ], 'rules' => [ // allow authenticated users - [ + [ 'allow' => true, - 'roles' => [ - '@' - ] - ] - ] + 'roles' => [ + '@' + ] + ] + ] ], // everything else is denied - + // named behavior, configuration array - 'defaultAccount' => [ - 'class' => DefaultAccountBehavior::className () + 'defaultAccount' => [ + 'class' => DefaultAccountBehavior::className () ], - 'cassaIsOpen' => [ - 'class' => CassaOpenBehavior::className () - ] + 'cassaIsOpen' => [ + 'class' => CassaOpenBehavior::className () + ] ]; } public function actionSale($number = null) { - + // $this->findByNumber($number); $receptionForm = new ReceptionForm (); $receptionForm->number = $number; $receptionForm->readCard (); - + $this->card = $receptionForm->card; $this->customer = $receptionForm->customer; - + $model = new ProductSaleForm (); - + $lookupModel = new ProductLookupForm (); - + $currencies = Currency::find ()->all (); - + $accounts = Account::read (); - + $discounts = Discount::readProductDiscounts(); - + $user = User::findOne ( Yii::$app->user->id ); - + $model->customer = $this->customer; $model->card = $this->card; - + $products = Product::readForDefaultAccount (); $products = Product::modelToMapIdName ( $products ); - + $model->products = $products; - + if (Yii::$app->request->isAjax) { - + \Yii::$app->response->format = \yii\web\Response::FORMAT_JSON; - + $model->currencies = $currencies; $model->accounts = $accounts; $model->discounts = $discounts; - + $model->id_account = Account::readDefault (); - + $result = [ ]; $result ['code'] = 'unknown'; if ($model->load ( Yii::$app->request->post () )) { if ($model->save ()) { - + $result ['code'] = 'success'; - $result ['message'] = Yii::t ( 'common/product', "Sold: {product}", [ - 'product' => $model->transfer->toProductSoldString () + $result ['message'] = Yii::t ( 'common/product', "Sold: {product}", [ + 'product' => $model->transfer->toProductSoldString () ] ); } else { $result ['code'] = 'invalid'; $result ['errors'] = $model->getErrors (); } } - + $userTransfers = Transfer::modelsToArray ( Transfer::readUserSoldTransfers ( $user ) ); $customerCart = Transfer::modelsToArray ( Transfer::readCustomerCart ( $this->customer ) ); $result ['transfers'] = $userTransfers; $result ['customer_cart'] = $customerCart; - + return $result; } else { - + + $user = User::findOne( [ 'id' => Yii::$app->user->id ] ); + + $user->key_listener_enabled = 0; + $user->save(); + // $userTransfers = Transfer::readUserSoldTransfers( $user ); $model->customerCart = Transfer::modelsToArray ( Transfer::readCustomerCart ( $this->customer ) ); $userTransfers = Transfer::modelsToArray ( Transfer::readUserSoldTransfers ( $user ) ); - - return $this->render ( "sale", [ + + return $this->render ( "sale", [ 'customer' => $this->customer, 'card' => $this->card, 'model' => $model, @@ -153,28 +158,28 @@ class ProductController extends Controller { 'accounts' => $accounts, 'discounts' => $discounts, 'userTransfers' => $userTransfers, - 'receptionForm' => $receptionForm + 'receptionForm' => $receptionForm ] ); } } public function actionPayoutUserCart() { $model = new UserCartPayoutForm (); $user = User::findOne ( Yii::$app->user->id ); - + if ($model->load ( Yii::$app->request->post () ) && $model->validate () && isset ( $user ) && count ( $model->transfers ) > 0) { - + $connection = \Yii::$app->db; $transaction = $connection->beginTransaction (); try { - $tp = new TransferPayout ( [ + $tp = new TransferPayout ( [ 'idUser' => \Yii::$app->user->id, 'idTransfers' => $model->transfers, 'cartType' => 'user', - 'idAccount' => Account::readDefault () + 'idAccount' => Account::readDefault () ] ); - + $tp->payout (); - + // UserSoldItem::payout ( $user, $model->transfers ); $transaction->commit (); \Yii::$app->session->setFlash ( 'success', 'Recepicó kosár fizetve' ); @@ -189,37 +194,37 @@ class ProductController extends Controller { Yii::error ( "faled to save : transfer" ); \Yii::$app->session->setFlash ( 'warning', 'Nem történt változás' ); } - + return $this->redirect ( Yii::$app->request->referrer ); } - - + + public function actionPayoutCustomerCart($number) { $cart = [ ]; $code = 'error'; $message = 'Hiba történt'; - + // post $model = new CustomerCartPayoutForm (); - + if ($model->load ( Yii::$app->request->post () ) && $model->validate ()) { - + $this->findByNumber ( $number ); - + if (isset ( $this->customer ) && count ( $model->transfers ) > 0) { $connection = \Yii::$app->db; $transaction = $connection->beginTransaction (); try { - $tp = new TransferPayout ( [ + $tp = new TransferPayout ( [ 'idUser' => \Yii::$app->user->id, 'idTransfers' => $model->transfers, 'cartType' => 'customer', 'idAccount' => Account::readDefault (), - 'idCustomer' => $this->customer->id_customer + 'idCustomer' => $this->customer->id_customer ] ); - + $tp->payout (); - + // UserSoldItem::payout ( $user, $model->transfers ); $transaction->commit (); \Yii::$app->session->setFlash ( 'success', 'Vendég kosár fizetve : ' . $this->customer->name ); @@ -239,56 +244,56 @@ class ProductController extends Controller { } return $this->redirect ( Yii::$app->request->referrer ); } - + /** */ public function actionLookup($query = null) { $result = [ ]; $product = Product::findProduct ( $query, Account::readDefault () ); $product = Product::modelToArray ( $product ); - + $result ['product'] = $product; - + \Yii::$app->response->format = \yii\web\Response::FORMAT_JSON; - + return $result; } - + /** */ public function actionFind($id = null) { $result = [ ]; $product = Product::findOne ( $id ); $product = Product::modelToArray ( $product ); - + $result ['product'] = $product; - + \Yii::$app->response->format = \yii\web\Response::FORMAT_JSON; - + return $result; } public function actionInventory() { - $searchModel = new ProductInventorySearch ( [ - 'account' => Account::readDefaultObject () + $searchModel = new ProductInventorySearch ( [ + 'account' => Account::readDefaultObject () ] ); - + // $searchModel->search(\Yii::$app->request->params); $dataProvider = $searchModel->search ( Yii::$app->request->queryParams ); - + // $inventory = new ProductInventory([ // ]); // if ( $output == 'xls'){ // $inventory->pagination = false; // } - + // $inventory->createDataProvider(); // $dp = $inventory->dataProvider; - + if ($searchModel->output == 'xls') { - + $models = $dataProvider->getModels (); $objPHPExcel = new \PHPExcel (); - + $sheet = $objPHPExcel->setActiveSheetIndex ( 0 ); /** * Termék azonosító Termék neve Termék szám Termék vonalkód Termék raktáron Termék eladva @@ -296,29 +301,29 @@ class ProductController extends Controller { $row = 1; $sheet->setCellValue ( 'A' . $row, "Termék azonosító" )->setCellValue ( 'B' . $row, "Termék név" )->setCellValue ( 'C' . $row, "Termék szám" )->setCellValue ( 'D' . $row, "Termék vonalkód" )->setCellValue ( 'E' . $row, "Termék raktáron" ); // ->setCellValue('F'.$row, "Eladott mennyiség"); - + foreach ( $models as $model ) { $row ++; $sheet->setCellValue ( 'A' . $row, $model ['product_id'] )->setCellValue ( 'B' . $row, $model ['product_name'] )->setCellValue ( 'C' . $row, $model ['product_number'] )->setCellValue ( 'D' . $row, $model ['product_barcode'] )->setCellValue ( 'E' . $row, $model ['product_stock'] ); // ->setCellValue('F'.$row, $model['product_sold']); } - + $styleArray = array ( 'font' => array ( - 'bold' => true - ) + 'bold' => true + ) ); // 'color' => array('rgb' => 'FF0000'), // 'size' => 15, // 'name' => 'Verdana' - - - + + + foreach ( range ( 'A', 'E' ) as $columnID ) { $sheet->getColumnDimension ( $columnID )->setAutoSize ( true ); $sheet->getStyle ( $columnID . '1' )->applyFromArray ( $styleArray ); } - + // Redirect output to a client’s web browser (Excel5) header ( 'Content-Type: application/vnd.ms-excel' ); header ( 'Content-Disposition: attachment;filename="leltar.xls"' ); @@ -334,18 +339,18 @@ class ProductController extends Controller { $objWriter->save ( 'php://output' ); exit (); } - - return $this->render ( 'inventory', [ + + return $this->render ( 'inventory', [ 'searchModel' => $searchModel, - 'dataProvider' => $dataProvider + 'dataProvider' => $dataProvider ] ); } - + /** * Finds the Product model based on its primary key value. * If the model is not found, a 404 HTTP exception will be thrown. * - * @param integer $id + * @param integer $id * @return Product the loaded model * @throws NotFoundHttpException if the model cannot be found */ @@ -362,8 +367,8 @@ class ProductController extends Controller { if ($number != null) { $this->card = Card::readCard ( $number ); if ($this->card != null) { - $this->customer = Customer::find ()->innerJoin ( Card::tableName (), "customer.id_customer_card = card.id_card" )->andWhere ( [ - 'customer.id_customer_card' => $this->card->id_card + $this->customer = Customer::find ()->innerJoin ( Card::tableName (), "customer.id_customer_card = card.id_card" )->andWhere ( [ + 'customer.id_customer_card' => $this->card->id_card ] )->one (); } } @@ -389,7 +394,7 @@ class ProductController extends Controller { /** * Displays a single Product model. * - * @param integer $id + * @param integer $id * @return mixed */ /* @@ -404,7 +409,7 @@ class ProductController extends Controller { * Updates an existing Product model. * If update is successful, the browser will be redirected to the 'view' page. * - * @param integer $id + * @param integer $id * @return mixed */ /* @@ -425,7 +430,7 @@ class ProductController extends Controller { * Deletes an existing Product model. * If deletion is successful, the browser will be redirected to the 'index' page. * - * @param integer $id + * @param integer $id * @return mixed */ /* diff --git a/frontend/web/js/app.js b/frontend/web/js/app.js index f0c2b7a..71fd91b 100644 --- a/frontend/web/js/app.js +++ b/frontend/web/js/app.js @@ -16,7 +16,7 @@ $(document).ready( addDocumentKeypressedListener(); } ); - +//10WMVXMZ function addDocumentKeypressedListener(){ $( document ).keypress(function( event ) { @@ -43,9 +43,13 @@ function addDocumentKeypressedListener(){ console.info("isWordTypedListenerAllowedOnlyForEmptyCustomer",isWordTypedListenerAllowedOnlyForEmptyCustomer); if ( word && word.length > 0){ var redirectAllowed = userKeyListenerEnabled == 1; + console.info("word typed",data.word) if ( redirectAllowed){ + console.info("redirect allowed"); location.href= reception_card_url +'&number=' + word; + }else { + console.info("redirect disabled"); }