diff --git a/backend/components/AdminMenuStructure.php b/backend/components/AdminMenuStructure.php index 06a0c75..98ab72c 100644 --- a/backend/components/AdminMenuStructure.php +++ b/backend/components/AdminMenuStructure.php @@ -36,6 +36,10 @@ class AdminMenuStructure{ $today = \Yii::$app->formatter->asDate( strtotime('today UTC') ); $tomorrow = \Yii::$app->formatter->asDate( ( 60 *60 *24 + time())); + $todayDatetime = \Yii::$app->formatter->asDatetime( strtotime('today UTC') ); + $tomorrowDatetime = \Yii::$app->formatter->asDatetime( strtotime('tomorrow UTC') ); + + // if ( $this->can('backend.user.index')){ $items[] = ['label' => 'Felhasználók', 'url' =>['/user/index']]; // } @@ -53,7 +57,7 @@ class AdminMenuStructure{ $items[] = ['label' => 'Tranzakciók', 'url' => ['/transfer/index' , 'TransferSearch[start]' =>$today,'TransferSearch[end]' => $tomorrow ] ]; $items[] = ['label' => 'Kassza müveletek', 'url' => ['/account-state/index'] ]; - $items[] = ['label' => 'Zárások', 'url' => ['/collection/index' , 'CollectionSearch[start]' =>$today,'CollectionSearch[end]' => $tomorrow ] ]; + $items[] = ['label' => 'Zárások', 'url' => ['/collection/index' , 'CollectionSearch[start]' =>$todayDatetime,'CollectionSearch[end]' => $tomorrowDatetime ] ]; if ( count($items) > 0 ){ $userMainMenu = ['label' => 'Beállítások', 'url' => null, diff --git a/backend/controllers/CollectionController.php b/backend/controllers/CollectionController.php index aed7761..a7b517c 100644 --- a/backend/controllers/CollectionController.php +++ b/backend/controllers/CollectionController.php @@ -8,6 +8,9 @@ use backend\models\CollectionSearch; use yii\web\Controller; use yii\web\NotFoundHttpException; use yii\filters\VerbFilter; +use common\models\Account; +use common\models\Transfer; +use common\models\User; /** * CollectionController implements the CRUD actions for Collection model. @@ -15,6 +18,25 @@ use yii\filters\VerbFilter; class CollectionController extends \backend\controllers\BackendController { + + public function behaviors() + { + return [ + 'access' => [ + 'class' => \yii\filters\AccessControl::className(), + 'rules' => [ + // allow authenticated users + [ + 'actions' => [ 'index','view' ], + 'allow' => true, + 'roles' => ['@'], + ], + // everything else is denied + ], + ], + ]; + } + /** * Lists all Collection models. * @return mixed @@ -22,7 +44,13 @@ class CollectionController extends \backend\controllers\BackendController public function actionIndex() { $searchModel = new CollectionSearch(); + $searchModel->accounts = Account::read(); + $searchModel->accountMap = Account::toAccaountMap($searchModel->accounts); + + $searchModel->users = User::find()->all( ); + $dataProvider = $searchModel->search(Yii::$app->request->queryParams); + $searchModel->searchTotal(); return $this->render('index', [ 'searchModel' => $searchModel, @@ -37,61 +65,20 @@ class CollectionController extends \backend\controllers\BackendController */ public function actionView($id) { + + $model = $this->findModel($id); + + $accounts = Account::read(); + $accountMap = Account::toAccaountMap($accounts); + + $totals = Transfer::mkTotals($model->start, $model->end, $model->id_user, null, $model->id_account, $accounts, $accountMap); return $this->render('view', [ - 'model' => $this->findModel($id), + 'model' => $model, + 'totals' => $totals, ]); } - /** - * Creates a new Collection model. - * If creation is successful, the browser will be redirected to the 'view' page. - * @return mixed - */ - public function actionCreate() - { - $model = new Collection(); - - if ($model->load(Yii::$app->request->post()) && $model->save()) { - return $this->redirect(['view', 'id' => $model->id_collection]); - } else { - return $this->render('create', [ - 'model' => $model, - ]); - } - } - - /** - * Updates an existing Collection 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_collection]); - } else { - return $this->render('update', [ - 'model' => $model, - ]); - } - } - - /** - * Deletes an existing Collection 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 Collection model based on its primary key value. * If the model is not found, a 404 HTTP exception will be thrown. diff --git a/backend/controllers/TransferController.php b/backend/controllers/TransferController.php index 4d02a83..90806d6 100644 --- a/backend/controllers/TransferController.php +++ b/backend/controllers/TransferController.php @@ -1,5 +1,4 @@ search(Yii::$app->request->queryParams); $accounts = Account::readAccounts(); - $users = User::read(); - - $searchModel->totals(Yii::$app->request->queryParams); + $searchModel->totalsTransfers(); + $users = User::read(); return $this->render('index', [ 'searchModel' => $searchModel, diff --git a/backend/models/CollectionSearch.php b/backend/models/CollectionSearch.php index e185d52..8656fbe 100644 --- a/backend/models/CollectionSearch.php +++ b/backend/models/CollectionSearch.php @@ -6,21 +6,34 @@ use Yii; use yii\base\Model; use yii\data\ActiveDataProvider; use common\models\Collection; +use common\components\Helper; /** * CollectionSearch represents the model behind the search form about `common\models\Collection`. */ class CollectionSearch extends Collection { + + public $accounts; + public $accountMap; + + public $users; + + public $timestampStart; + public $timestampEnd; + + public $totals; + /** * @inheritdoc */ public function rules() { - return [ - [['id_collection', 'id_user', 'created_by', 'id_account', 'money', 'type'], 'integer'], - [['start', 'end', 'created_at', 'updated_at'], 'safe'], - ]; + return [ + [[ 'start', ], 'date', 'format' =>Yii::$app->formatter->datetimeFormat , 'timestampAttribute' => 'timestampStart' ,'timestampAttributeFormat' => 'yyyy-MM-dd HH:mm' ,'timeZone' => 'UTC' ], + [[ 'end' , ], 'date' ,'format' =>Yii::$app->formatter->datetimeFormat , 'timestampAttribute' => 'timestampEnd' ,'timestampAttributeFormat' => 'yyyy-MM-dd HH:mm' ,'timeZone' => 'UTC' ], + [['id_account','id_user'],'integer'] + ]; } /** @@ -56,18 +69,17 @@ class CollectionSearch extends Collection } $query->andFilterWhere([ - 'id_collection' => $this->id_collection, 'id_user' => $this->id_user, - 'created_by' => $this->created_by, 'id_account' => $this->id_account, - 'money' => $this->money, - 'start' => $this->start, - 'end' => $this->end, - 'type' => $this->type, - 'created_at' => $this->created_at, - 'updated_at' => $this->updated_at, ]); + + Helper::inInterval($query, 'collection.end', $this->timestampStart, $this->timestampEnd); return $dataProvider; } + + public function searchTotal(){ + $this->totals = Collection::mkReceptionTotal($this->timestampStart, $this->timestampEnd , Yii::$app->user->id, [Collection::TYPE_RECEPTION], $this->id_account, $this->accounts, $this->accountMap); + } + } diff --git a/backend/models/TransferSearch.php b/backend/models/TransferSearch.php index 7f9e7e7..f91ce60 100644 --- a/backend/models/TransferSearch.php +++ b/backend/models/TransferSearch.php @@ -11,6 +11,7 @@ use yii\base\Object; use yii\db\Query; use yii\helpers\ArrayHelper; use common\models\Account; +use common\components\Helper; /** * TransferSearch represents the model behind the search form about `common\models\Transfer`. @@ -29,6 +30,9 @@ class TransferSearch extends Transfer public $accountTotals; public $fullTotal; + public $types; + public $totals; + /** * @inheritdoc */ @@ -39,6 +43,7 @@ class TransferSearch extends Transfer // [[ 'searchObjectName' ], 'string'], [[ 'start', ], 'date' , 'timestampAttribute' => 'timestampStart' ,'timestampAttributeFormat' => 'yyyy-MM-dd' ], [[ 'end' , ], 'date' , 'timestampAttribute' => 'timestampEnd' ,'timestampAttributeFormat' => 'yyyy-MM-dd' ], + ['types', 'each', 'rule' => ['integer']], ]; } @@ -66,17 +71,8 @@ class TransferSearch extends Transfer 'query' => $query, ]); -// $selectObjectName = ""; -// $selectObjectName .= " case when transfer.type = " .self::TYPE_PRODUCT ." then product.name "; -// $selectObjectName .= " when transfer.type = " .self::TYPE_TICKET ." then ticket_type.name "; -// $selectObjectName .= " when transfer.type = " .self::TYPE_MONEY_MOVEMENT_OUT ." then 'Pénzmozgás' "; -// $selectObjectName .= " else '' "; -// $selectObjectName .= " end as object_name"; $query->addSelect( ['*' ]); -// $query->joinWith('ticket'); -// $query->joinWith('ticketType'); -// $query->joinWith('product'); $this->load($params); @@ -92,94 +88,33 @@ class TransferSearch extends Transfer 'transfer.id_user' => $this->id_user, ]); - $query->andFilterWhere([ '>=', 'transfer.created_at' , $this->timestampStart ] ); - $query->andFilterWhere([ '<' , 'transfer.created_at' , $this->timestampEnd ] ); - -// if ( isset($this->searchObjectName)) -// $query->andWhere( new Expression(" case when transfer.type = " .self::TYPE_PRODUCT ." then product.name else ticket_type.name end like '%" . $this->searchObjectName ."%'")); - + $created_condition = ['and',[ '>=', 'transfer.created_at', $this->timestampStart ] ,[ '<', 'transfer.created_at', $this->timestampEnd ] ]; + $paid_condition = ['and',[ '>=', 'transfer.paid_at', $this->timestampStart ] ,[ '<', 'transfer.paid_at', $this->timestampEnd ] ]; + $query->andFilterWhere(['or' , $created_condition , $paid_condition]); return $dataProvider; } - public function search2(){ - $query = new Query() ; - $query->select('*'); - - - } - - public function totals($params){ - $query = new Query(); - - $result = [ ]; - + public function totalsTransfers( ){ $accountTotals = []; $fullTotal = [ - 'label' => Yii::t('common/transfer', 'Total'), - 'money' => 0 + 'label' => Yii::t('common/transfer', 'Total'), + 'money' => 0 ]; - - $query->addSelect( [ new Expression( 'transfer.id_account as account'), new Expression( ' COALESCE(sum( ( case when direction = '.Transfer::DIRECTION_OUT.' then -1 else 1 end )* transfer.money ),0) as money' )]); - $query->from('transfer'); -// $query->leftJoin('ticket', 'transfer.type = ' .self::TYPE_TICKET .' and transfer.id_object = ticket.id_ticket ' ); -// $query->leftJoin('ticket_type', 'ticket.id_ticket_type = ticket_type.id_ticket_type ' ); -// $query->leftJoin('product', 'product.id_product = ' .self::TYPE_TICKET .' and transfer.id_object = ticket.id_ticket ' ); - - $this->load($params); - - if (!$this->validate()) { - return ; - } - - $query->andFilterWhere([ - 'transfer.id_account' => $this->id_account, - 'transfer.type' => $this->type, - 'transfer.id_user' => $this->id_user, - ]); - - $query->andFilterWhere([ '>=', 'transfer.created_at', $this->timestampStart ] ); - $query->andFilterWhere([ '<', 'transfer.created_at', $this->timestampEnd ] ); - - -// if ( isset($this->searchObjectName) && !empty($this->searchObjectName)){ -// $query->andWhere( new Expression(" case when transfer.type = " .self::TYPE_PRODUCT ." then product.name else ticket_type.name end like '%" . $this->searchObjectName ."%'")); -// } - - $query->groupBy('transfer.id_account'); - - $command = $query->createCommand(); - // $command->sql returns the actual SQL - $result = $command->queryAll(); - - - $accounts = Account::find()->orderBy("name asc")->all(); - $accountMap = ArrayHelper::map( $accounts ,'id_account','name' ); - - - - foreach ($result as $item){ - $account = ""; - if ( array_key_exists($item['account'], $accountMap)){ - $account = $accountMap[$item['account']]; - } - - $accountTotal = [ - 'label' => $account, - 'money' => $item['money'] - ]; - - $accountTotals[] = $accountTotal; - - $fullTotal['money'] += $item['money']; - } - - $this->accountTotals = $accountTotals; - $this->fullTotal = $fullTotal; - -// return $result; + + + $accounts = Account::find()->orderBy("name asc")->all(); + $accountMap = ArrayHelper::map( $accounts ,'id_account','name' ); + $idUser = Yii::$app->user->id; + + $this->totals = Transfer::mkTotals($this->timestampStart, $this->timestampEnd, $idUser, $this->types, $this->id_account, $accounts, $accountMap); + + } + + + } diff --git a/backend/views/collection/_search.php b/backend/views/collection/_search.php index e2f80ec..9ebdada 100644 --- a/backend/views/collection/_search.php +++ b/backend/views/collection/_search.php @@ -2,12 +2,22 @@ use yii\helpers\Html; use yii\widgets\ActiveForm; +use frontend\components\HtmlHelper; +use kartik\widgets\DateTimePicker; +use yii\helpers\ArrayHelper; /* @var $this yii\web\View */ /* @var $model backend\models\CollectionSearch */ /* @var $form yii\widgets\ActiveForm */ ?> +Yii::t('frontend/collection','All')]+ HtmlHelper::mkAccountOptions($model->accounts); +$userOptions = ['' =>Yii::t('frontend/collection','All')]+ ArrayHelper::map($model->users,'id','username'); + +?> + diff --git a/backend/views/transfer/_search.php b/backend/views/transfer/_search.php index 1c41156..e2172d3 100644 --- a/backend/views/transfer/_search.php +++ b/backend/views/transfer/_search.php @@ -26,7 +26,7 @@ use kartik\widgets\DatePicker; field($model, 'id_account')->dropDownList( ['' => Yii::t('common/transfer', 'All')] +HtmlHelper::mkAccountOptions($accounts) ) ?>
- field($model, 'type')->dropDownList( ['' => Yii::t('common/transfer', 'All')] + Transfer::types() ) ?> + field($model, 'types')->checkboxList( Transfer::types()) ?>
field($model, 'id_user')->dropDownList( ['' => Yii::t('common/transfer', 'All')] +ArrayHelper::map($users,'id' , 'username') ) ?> diff --git a/backend/views/transfer/index.php b/backend/views/transfer/index.php index 1046315..8ddc5f9 100644 --- a/backend/views/transfer/index.php +++ b/backend/views/transfer/index.php @@ -6,6 +6,7 @@ use yii\widgets\DetailView; use yii\base\Widget; use yii\base\Object; use yii\data\ArrayDataProvider; +use common\components\AccountStatisticWidget; /* @var $this yii\web\View */ /* @var $searchModel backend\models\TransferSearch */ @@ -28,42 +29,15 @@ $this->params['breadcrumbs'][] = $this->title;

title) ?>

render('_search', ['model' => $searchModel, 'accounts' => $accounts,'users' => $users,]); ?> + $searchModel->totals + ]); + ?> -

Összesen

- $searchModel->fullTotal, - 'attributes' => [ - [ - 'value' => $searchModel->fullTotal['money'], - 'label' => $searchModel->fullTotal['label'], - ], - ] - ]) - ?> -

Kasszák összesen

- new ArrayDataProvider([ - 'allModels' => $searchModel->accountTotals, - 'sort' => false, - 'pagination' => false, - ]) , - 'columns' => [ - [ - 'label' => Yii::t('common/transfer','Account'), - 'value' => 'label' - ], - [ - 'label' => Yii::t('common/transfer','Money total'), - 'value' => 'money' - ], - ] - ] - ); - ?> -

Pénzmozgások

+ +

Tranzakciók

['class' => 'table table-striped table-bordered table-transfer'], 'dataProvider' => $dataProvider, diff --git a/common/components/AccountStatisticWidget.php b/common/components/AccountStatisticWidget.php new file mode 100644 index 0000000..ab94b6a --- /dev/null +++ b/common/components/AccountStatisticWidget.php @@ -0,0 +1,23 @@ +render($this->viewFile,[ 'model' => $this ]); + } + +} \ No newline at end of file diff --git a/common/components/AccountTotalWidget.php b/common/components/AccountTotalWidget.php new file mode 100644 index 0000000..93f9dbd --- /dev/null +++ b/common/components/AccountTotalWidget.php @@ -0,0 +1,26 @@ + 0, 'accounts' => [] ]; + + + public $viewFile = '@common/views/common/_account_total'; + + public function init(){ + parent::init(); + + } + + public function run(){ + echo $this->render($this->viewFile,[ 'model' => $this ]); + } + +} \ No newline at end of file diff --git a/common/components/Helper.php b/common/components/Helper.php index b705b20..9f74fc4 100644 --- a/common/components/Helper.php +++ b/common/components/Helper.php @@ -13,4 +13,18 @@ class Helper return $result; } + + + public static function notInInterval($query ,$field , $start,$end ){ + $query->andFilterWhere( ['or', [ '<', $field , isset( $start ) ? $start : '1900-01-01' ] ,[ '>=' , $field , isset($end) ? $end : '3000-01-01' ] ] ); + } + + public static function notPaid($query ,$field , $start,$end ){ + $query->andFilterWhere( ['or', [ '<', $field , isset( $start ) ? $start : '1900-01-01' ] ,[ '>=' , $field , isset($end) ? $end : '3000-01-01' ] ,[ "transfer.status" => Transfer::STATUS_NOT_PAID ] ] ); + } + public static function inInterval($query ,$field , $start,$end ){ + $query->andFilterWhere([ '>=', $field , $start ] ); + $query->andFilterWhere([ '<' , $field , $end ] ); + } + } \ No newline at end of file diff --git a/common/messages/hu/app.php b/common/messages/hu/app.php index fa06131..cb0ff66 100644 --- a/common/messages/hu/app.php +++ b/common/messages/hu/app.php @@ -17,12 +17,10 @@ * NOTE: this file must be saved in UTF-8 encoding. */ return [ - 'It is recommended you use an upgraded browser to display the {type} control properly.' => 'Ajánlott újabb böngésző verziót használni!', 'Aktív' => 'Aktív', - 'Are you sure you want to delete this item?' => 'Biztosan törölni szeretné ezt az element?', - 'Delete' => 'Törlés', 'Felhasználók' => 'Felhasználók', 'Inaktív' => 'Inaktív', + 'It is recommended you use an upgraded browser to display the {type} control properly.' => 'Ajánlott újabb böngésző verziót használni!', 'Jelszó' => 'Jelszó', 'Jelszó és jelszó újra nem egyezik!' => 'Jelszó és jelszó újra nem egyezik!', 'Jelszó újra' => 'Jelszó újra', diff --git a/common/messages/hu/backend/collection.php b/common/messages/hu/backend/collection.php new file mode 100644 index 0000000..56fb65d --- /dev/null +++ b/common/messages/hu/backend/collection.php @@ -0,0 +1,25 @@ + 'Zárás', + 'Create' => 'Mentés', + 'Create Collection' => 'Új zárás', + 'Update' => 'Módosítás', + 'Update {modelClass}: ' => '{modelClass} módosítása: ', +]; diff --git a/common/messages/hu/backend/user.php b/common/messages/hu/backend/user.php new file mode 100644 index 0000000..0767089 --- /dev/null +++ b/common/messages/hu/backend/user.php @@ -0,0 +1,23 @@ + 'Létrehozás ideje', + 'E-Mail' => 'E-Mail', + 'Username' => 'Felhasználónév', +]; diff --git a/common/messages/hu/common/card.php b/common/messages/hu/common/card.php index 2f6cf77..1e3d4b7 100644 --- a/common/messages/hu/common/card.php +++ b/common/messages/hu/common/card.php @@ -17,6 +17,7 @@ * NOTE: this file must be saved in UTF-8 encoding. */ return [ + 'Create/Next' => 'Mentés/Következő', 'Active' => 'Aktív', 'BARCODE' => 'VONALKÓD', 'Card: ' => 'Bérletkártya: ', diff --git a/common/messages/hu/common/collection.php b/common/messages/hu/common/collection.php new file mode 100644 index 0000000..7babb3e --- /dev/null +++ b/common/messages/hu/common/collection.php @@ -0,0 +1,30 @@ + 'Létrehozás ideje', + 'Created By' => 'Létrehozta', + 'End' => 'Időszak vége', + 'Id Account' => 'Kassza', + 'Id Collection' => 'Zárás azonosító', + 'Id User' => 'Felhasználó', + 'Money' => 'Összeg', + 'Start' => 'Időszak kezdete', + 'Type' => 'Típus', + 'Updated At' => 'Módosítás ideje', +]; diff --git a/common/messages/hu/common/ticket.php b/common/messages/hu/common/ticket.php index fd7c80a..c906fe4 100644 --- a/common/messages/hu/common/ticket.php +++ b/common/messages/hu/common/ticket.php @@ -17,11 +17,11 @@ * NOTE: this file must be saved in UTF-8 encoding. */ return [ + 'Reset' => 'Reset', 'Are you sure you want to delete this item?' => 'Biztosan törölni szeretné a bérletet?', 'Comment' => 'Megjegyzés', 'Create' => 'Mentés', 'Create Ticket' => 'Új bérlet', - 'Create and add to cart' => 'Mentés és kosárba helyezés', 'Created At' => 'Hozzáadva', 'Delete' => 'Törlés', 'End' => 'Érvényesség vége', @@ -32,7 +32,6 @@ return [ 'Id User' => 'Felhasználó', 'Max Usage Count' => 'Max alkalmak', 'Price Brutto' => 'Bruttó ár', - 'Reset' => '', 'Search' => 'Keresés', 'Start' => 'Érvényesség kezdete', 'Status' => 'Státusz', diff --git a/common/messages/hu/common/transfer.php b/common/messages/hu/common/transfer.php index 43caddd..cf8f4af 100644 --- a/common/messages/hu/common/transfer.php +++ b/common/messages/hu/common/transfer.php @@ -17,8 +17,13 @@ * NOTE: this file must be saved in UTF-8 encoding. */ return [ - 'Money movement' => 'Pénzmozgás', - 'Pénzmozgás' => 'Pénzmozgás', + 'Customer' => 'Vendég', + 'End' => 'Időszak vége', + 'Fizetve' => 'Fizetve', + 'Nincs fizetve' => 'Nincs fizetve', + 'Paid At' => 'Fizetés ideje', + 'Start' => 'Időszak kezdete', + 'Types' => 'Típusok', 'Account' => 'Kassza', 'All' => 'Mind', 'Comment' => 'Megjegyzés', @@ -32,8 +37,9 @@ return [ 'Item Price' => 'Termék ár', 'Money' => 'Összeg', 'Money Currency' => 'Ár valuta', - 'Money total' => 'Összesen', + 'Money movement' => 'Pénzmozgás', 'Product' => 'Termék', + 'Pénzmozgás' => 'Pénzmozgás', 'Rate' => 'Árfolyam', 'Status' => 'Státusz', 'Ticket' => 'Bérlet', diff --git a/common/messages/hu/customer/backend.php b/common/messages/hu/customer/backend.php new file mode 100644 index 0000000..5e56d21 --- /dev/null +++ b/common/messages/hu/customer/backend.php @@ -0,0 +1,21 @@ + 'E-mail vagy telefonszám megadása kötelező!', +]; diff --git a/common/messages/hu/frontend/account.php b/common/messages/hu/frontend/account.php index 86fa3c3..e3b0dff 100644 --- a/common/messages/hu/frontend/account.php +++ b/common/messages/hu/frontend/account.php @@ -17,6 +17,8 @@ * NOTE: this file must be saved in UTF-8 encoding. */ return [ + 'Account' => 'Kassza', + 'Select account!' => 'Válasszon kasszát!', 'Accounts' => 'Kasszák', 'Are you sure you want to delete this item?' => 'Biztosan törölni szeretné ezt az element?', 'Create' => 'Mentés', diff --git a/common/messages/hu/frontend/collection.php b/common/messages/hu/frontend/collection.php new file mode 100644 index 0000000..c6eec2c --- /dev/null +++ b/common/messages/hu/frontend/collection.php @@ -0,0 +1,39 @@ + 'Kassza', + 'All' => 'Mind', + 'Collections' => 'Zárások', + 'Create' => 'Mentés', + 'Create Collection' => 'Új zárás', + 'Create Collection - Select Account' => 'Új zárás - kassza választás', + 'End date is invalid' => 'Idészak vége dátum érvénytelen', + 'End of interval' => 'Időszak vége', + 'Invalid transfer!' => 'Érvénytelen tranzakció!', + 'Last collection' => 'Utolsó zárás', + 'Next' => 'Következő', + 'No collection found' => 'Nem találtam zárást', + 'Reception collection' => 'Recepció zárás', + 'Refresh' => 'Frissítés', + 'Search' => 'Keresés', + 'Select another account' => 'Másik kassza választása', + 'Start of interval' => 'Időszak kezdete', + 'Update' => 'Módosítás', + 'Update {modelClass}: ' => '{modelClass} módosítása: ', +]; diff --git a/common/messages/hu/frontend/product.php b/common/messages/hu/frontend/product.php index 6df19ec..408021f 100644 --- a/common/messages/hu/frontend/product.php +++ b/common/messages/hu/frontend/product.php @@ -17,11 +17,7 @@ * NOTE: this file must be saved in UTF-8 encoding. */ return [ - 'Customer cart' => 'Vendég kosár', - 'Fizetve' => 'Fizetve', - 'To cart' => 'Kosárba', - 'User Cart' => 'Recepció kosár', - 'Write up' => 'Felír', + 'Sale' => 'Eladás', 'Account' => 'Kassza', 'Are you sure you want to delete this item?' => 'Biztosan törölni szeretné ezt a vendéget?', 'Barcode' => 'Vonalkód', @@ -32,6 +28,7 @@ return [ 'Create Product' => 'Új termék', 'Currency' => 'Valuta', 'Currency not found' => 'Valuta nem található', + 'Customer cart' => 'Vendég kosár', 'Delete' => 'Törlés', 'Discount' => 'Kedvezmény', 'Discount not found' => 'Kedvezmény nem található', @@ -50,7 +47,10 @@ return [ 'Sell product' => 'Termék eladás', 'Stock' => 'Raktáron', 'Stock {stock} lower then {count}!' => 'Raktáron {stock} kevesebb mint {count}!', + 'To cart' => 'Kosárba', 'Total Price' => 'Összesen', 'Update' => 'Módosítás', 'Update {modelClass}: ' => 'Módosítás {modelClass}: ', + 'User Cart' => 'Recepció kosár', + 'Write up' => 'Felír', ]; diff --git a/common/messages/hu/frontend/ticket.php b/common/messages/hu/frontend/ticket.php index b4ffac3..93d1851 100644 --- a/common/messages/hu/frontend/ticket.php +++ b/common/messages/hu/frontend/ticket.php @@ -17,8 +17,11 @@ * NOTE: this file must be saved in UTF-8 encoding. */ return [ + 'Customer cart paid!' => 'Vendég kosrá fizetve!', + 'To cart' => 'Kosárba', + 'User cart paid!' => 'Recepció kosár fizetve!', + 'Write up' => 'Felír', 'Default account is set!' => 'Alapértelmezett kassza beállítva!', - 'Cart' => 'Kosár', 'Invalid discount' => 'Érvénytelen kedvezmény', 'Invalid ticket type' => 'Érvénytelen bérlet típus', 'Invalid transfer' => 'Érvénytelen transfer', diff --git a/common/messages/hu/frontend/transfer.php b/common/messages/hu/frontend/transfer.php index 8a2619f..b562ffd 100644 --- a/common/messages/hu/frontend/transfer.php +++ b/common/messages/hu/frontend/transfer.php @@ -17,12 +17,9 @@ * NOTE: this file must be saved in UTF-8 encoding. */ return [ - 'Create Money Movement' => 'Új pénzmozgás', - 'Reset' => 'Reset', - 'Are you sure you want to delete this item?' => 'Biztosan törölni szeretné a bérletet?', 'Create' => 'Mentés', + 'Create Money Movement' => 'Új pénzmozgás', 'Create Transfer' => 'Új pénzmozgás', - 'Delete' => 'Törlés', 'Search' => 'Keresés', 'Termékeladás' => 'Termékeladás', 'Ticket' => 'Bérlet', diff --git a/common/models/Account.php b/common/models/Account.php index 295e603..bfab0d5 100644 --- a/common/models/Account.php +++ b/common/models/Account.php @@ -4,6 +4,7 @@ namespace common\models; use Yii; use yii\behaviors\TimestampBehavior; +use yii\helpers\ArrayHelper; /** * This is the model class for table "account". @@ -174,4 +175,8 @@ class Account extends \yii\db\ActiveRecord return $accounts; } + public static function toAccaountMap($accounts){ + return ArrayHelper::map( $accounts,'id_account','name' ); + } + } diff --git a/common/models/Collection.php b/common/models/Collection.php index 513a602..9372b54 100644 --- a/common/models/Collection.php +++ b/common/models/Collection.php @@ -7,6 +7,8 @@ use common\components\AccountAwareBehavior; use common\components\UserAwareBehavior; use yii\helpers\ArrayHelper; use yii\behaviors\TimestampBehavior; +use yii\db\Query; +use yii\db\Expression; /** * This is the model class for table "collection". @@ -104,4 +106,98 @@ class Collection extends \common\models\BaseFitnessActiveRecord return $result; } + + + /** + * + * */ +public static function mkTotalQuery($mode = 'reception', $start,$end,$idUser,$types,$idAccount){ + + $query = new Query(); + + $query->addSelect( [ + new Expression( ' collection.id_account as account'), + new Expression( ' COALESCE(sum( collection.money ) ,0) as money /** collections total money */' ) + + ]); + $query->from('collection'); + + $query->andFilterWhere([ + 'id_account' => $idAccount, + ]); + + $query->andFilterWhere(['id_user' => $idUser]); + $query->andFilterWhere(['in' ,'type', $types]); + self::inInterval($query, 'collection.end' , $start, $end); + + $query->groupBy('collection.id_account'); + + return $query; + + + } + + public static function mkTotalsResultWithAllAvailableAccount($queryResult,$accounts,$accountMap,$idAccount){ + + $totals = []; + $totals['total'] = 0; + + $totals['accounts'] = []; + + foreach ($accounts as $account){ + if ( isset($idAccount) && is_numeric($idAccount) && $idAccount != $account->id_account ){ + continue ; + } + + $accountTotal = [ + 'id_account' => $account->id_account, + 'label' => $account->name, + 'money' => 0, + ]; + + $item = self::findByAccountInQueryResult($queryResult, $account); + + if ( isset($item)){ + $accountTotal['money'] = $item['money']; + } + + $totals['accounts'][] = $accountTotal; + $totals['total'] += $accountTotal['money']; + } + return $totals; + } + + public static function findByAccountInQueryResult( $queryResult, $account ){ + $result = null; + foreach ($queryResult as $item){ + if( $item['account'] == $account->id_account ){ + $result = $item; + } + } + return $result; + } + + public static function inInterval($query ,$field , $start,$end ){ + $query->andFilterWhere([ '>=', $field , $start ] ); + $query->andFilterWhere([ '<' , $field , $end ] ); + } + + + /**create and execute a "total" query*/ + public static function exTotalQuery($mode,$start,$end,$idUser,$types,$idAccount){ + $query = self::mkTotalQuery($mode, $start, $end, $idUser, $types, $idAccount ); + $command = $query->createCommand(); + $result = $command->queryAll(); + return $result; + } + + /** + *find all transfers which were paid in the period + * */ + public static function mkReceptionTotal( $start, $end, $idUser, $types, $idAccount, $accounts, $accountMap){ + $result = []; + $queryResult = self::exTotalQuery('reception', $start, $end, $idUser, $types, $idAccount ); + $result = self::mkTotalsResultWithAllAvailableAccount($queryResult, $accounts, $accountMap, $idAccount); + return $result; + } } diff --git a/common/models/CollectionCreate.php b/common/models/CollectionCreate.php index 0ec535e..9108501 100644 --- a/common/models/CollectionCreate.php +++ b/common/models/CollectionCreate.php @@ -30,6 +30,7 @@ class CollectionCreate extends \common\models\Collection public $accountMap; public $account; public $totals; + public $userCartTotal; public $timestampEnd; public $timestampStart; @@ -38,7 +39,10 @@ class CollectionCreate extends \common\models\Collection public function rules(){ return [ ['end','required'], - [[ 'end' , ], 'date' ,'format' =>Yii::$app->formatter->datetimeFormat , 'timestampAttribute' => 'timestampEnd' ,'timestampAttributeFormat' => 'yyyy-MM-dd HH:mm' ,'timeZone' => 'UTC' ], + /**enable seconds*/ + [[ 'end' , ], 'date' ,'format' => 'yyyy-MM-dd HH:mm:ss' , 'timestampAttribute' => 'timestampEnd' ,'timestampAttributeFormat' => 'yyyy-MM-dd HH:mm:ss' ,'timeZone' => 'UTC' ], + /*enable only minutes*/ +// [[ 'end' , ], 'date' ,'format' => 'yyyy-MM-dd HH:mm' , 'timestampAttribute' => 'timestampEnd' ,'timestampAttributeFormat' => 'yyyy-MM-dd HH:mm' ,'timeZone' => 'UTC' ], [[ 'end' ], 'validateEndDate' ] ]; } diff --git a/common/models/Transfer.php b/common/models/Transfer.php index 673325e..6373bfc 100644 --- a/common/models/Transfer.php +++ b/common/models/Transfer.php @@ -114,6 +114,9 @@ class Transfer extends \common\models\BaseFitnessActiveRecord 'created_at' => Yii::t('common/transfer', 'Created At'), 'updated_at' => Yii::t('common/transfer', 'Updated At'), 'paid_at' => Yii::t('common/transfer', 'Paid At'), + 'types' => Yii::t('common/transfer', 'Types'), + 'start' => Yii::t('common/transfer', 'Start'), + 'end' => Yii::t('common/transfer', 'End'), ]; } @@ -144,9 +147,6 @@ class Transfer extends \common\models\BaseFitnessActiveRecord return $this->hasOne( Currency::className(), ["id_currency" =>"id_currency" ] ); } -// public function getDiscount(){ -// return $this->hasOne( Discount::className(), ["id_discount" =>"id_discount" ] ); -// } public function getUserSoldItem(){ return $this->hasOne( UserSoldItem::className(), ["id_transfer" =>"id_transfer" ] ); diff --git a/common/models/UserSoldItem.php b/common/models/UserSoldItem.php index ff40dd0..b74dbe2 100644 --- a/common/models/UserSoldItem.php +++ b/common/models/UserSoldItem.php @@ -3,6 +3,8 @@ namespace common\models; use Yii; +use yii\db\Query; +use yii\db\Expression; /** * This is the model class for table "user_sold_item". @@ -60,6 +62,29 @@ class UserSoldItem extends \yii\db\ActiveRecord } + public static function readTotalForAccount($idUser,$idAccount){ + + $query = new Query(); + + $query->addSelect( [ + new Expression( ' COALESCE(sum( transfer.money ) ,0) as money /** total unpaid reception cart */' ) + + ]); + $query->innerJoin('transfer',['user_sold_item.id_transfer' =>'transfer.id_transfer']); + + $query->from('user_sold_item'); + + $query->andFilterWhere([ + 'transfer.id_account' => $idAccount, + ]); + + $query->andFilterWhere(['user_sold_item.id_user' => $idUser]); + + + return $query->scalar(); + + } + /** * @param common\models\User $user diff --git a/common/views/common/_account_statistic.php b/common/views/common/_account_statistic.php new file mode 100644 index 0000000..7f54d89 --- /dev/null +++ b/common/views/common/_account_statistic.php @@ -0,0 +1,64 @@ + +
+
+ $model->totals['created_at'], + 'panelHeading' => 'Kiadva', + ]); + ?> +
+
+ $model->totals['created_at_paid'], + 'panelHeading' => 'Kiadva/fizetve', + ]); + ?> +
+
+ $model->totals['created_at_not_paid'], + 'panelHeading' => 'Kiadva/nem fizetve (Hitel)', + 'panelType' => 'panel-danger' + ]); + ?> +
+
+
+
+ +
+
+ $model->totals['paid_at_not_created_at'], + 'panelHeading' => 'Adósság (Hitel)/Fizetve' , + ]); + ?> +
+
+ +
+
+ +
+
+ +
+
+ $model->totals['paid_at'], + 'panelHeading' => 'Fizetve' , + 'panelType' => 'panel-success' + ]); + ?> +
+
+ +
+
\ No newline at end of file diff --git a/common/views/common/_account_total.php b/common/views/common/_account_total.php new file mode 100644 index 0000000..9c9617d --- /dev/null +++ b/common/views/common/_account_total.php @@ -0,0 +1,17 @@ +
+
panelHeading?>
+
+
+ statistic['accounts'] as $acc ){ + ?> +
+
+ +
totalHeading ?>
+
statistic['total'] ?>
+
+
+
\ No newline at end of file diff --git a/frontend/components/FrontendMenuStructure.php b/frontend/components/FrontendMenuStructure.php index 21a79d3..9b6f243 100644 --- a/frontend/components/FrontendMenuStructure.php +++ b/frontend/components/FrontendMenuStructure.php @@ -36,9 +36,6 @@ class FrontendMenuStructure{ } } -// print_r($this->start); -// print_r($this->tomorrow); - } @@ -59,9 +56,7 @@ class FrontendMenuStructure{ protected function addRecepcio(){ if ( $this->isLogged() ){ - $this->menuItems[] = ['label' => 'Recepcio', 'url' => ['/customer/reception'] ]; -// , 'MoneyMovementSearch[start]' => $this->start, 'MoneyMovementSearch[end]' => $this->tomorrow -// $this->menuItems[] = ['label' => 'Pénzmozgások', 'url' => [ '/money-movement/index', 'MoneyMovementSearch[start]' => $this->start, 'MoneyMovementSearch[end]' => $this->tomorrow ] ]; + $this->menuItems[] = ['label' => 'Recepció', 'url' => ['/customer/reception'] ]; $this->menuItems[] = ['label' => 'Kassza', 'items' => [ ['label' => Yii::t('frontend/account-state','Default account'), 'url' => ['/account/select'] ], @@ -72,7 +67,6 @@ class FrontendMenuStructure{ ['label' => Yii::t('frontend/transfer','Transfers'), 'url' => ['/transfer/index', 'TransferSearch[start]' => $this->start, 'TransferSearch[end]' => $this->tomorrow ] ], ['label' => 'Zárások', 'url' => ['/collection/index' , 'CollectionSearch[start]' =>$this->start,'CollectionSearch[end]' => $this->tomorrow ] ] ] - ]; } } diff --git a/frontend/controllers/CollectionController.php b/frontend/controllers/CollectionController.php index 8b6d973..f0fa37a 100644 --- a/frontend/controllers/CollectionController.php +++ b/frontend/controllers/CollectionController.php @@ -14,6 +14,7 @@ use common\models\CollectionCreate; use common\models\Transfer; use frontend\models\CreateAccountSelectForm; use yii\helpers\ArrayHelper; +use common\models\UserSoldItem; /** * CollectionController implements the CRUD actions for Collection model. @@ -41,8 +42,11 @@ class CollectionController extends Controller $searchModel = new CollectionSearch(); $searchModel->accounts = Account::read(); + $searchModel->accountMap = Account::toAccaountMap($searchModel->accounts); + $dataProvider = $searchModel->search(Yii::$app->request->queryParams); + $searchModel->searchTotal(); return $this->render('index', [ 'searchModel' => $searchModel, @@ -57,8 +61,16 @@ class CollectionController extends Controller */ public function actionView($id) { + $model = $this->findModel($id); + + $accounts = Account::read(); + $accountMap = Account::toAccaountMap($accounts); + + $totals = Transfer::mkTotals($model->start, $model->end, $model->id_user, null, $model->id_account, $accounts, $accountMap); + return $this->render('view', [ - 'model' => $this->findModel($id), + 'model' => $model, + 'totals' => $totals, ]); } @@ -83,12 +95,14 @@ class CollectionController extends Controller $model->timestampStart = isset($model->lastCollection) ? $model->lastCollection->end :null; $model->timestampEnd = date("Y-m-d H:i:s"); - $model->start = isset($model->timestampStart) ? Yii::$app->formatter->asDatetime( $model->timestampStart ) : ''; - $model->end = isset($model->timestampEnd) ? Yii::$app->formatter->asDatetime( $model->timestampEnd ): ''; + $model->start = isset($model->timestampStart) ? Yii::$app->formatter->asDatetime( $model->timestampStart ,'yyyy-MM-dd HH:mm:ss') : ''; + $model->end = isset($model->timestampEnd) ? Yii::$app->formatter->asDatetime( $model->timestampEnd ,'yyyy-MM-dd HH:mm:ss'): ''; $model->type = Collection::TYPE_RECEPTION; + $model->userCartTotal = UserSoldItem::readTotalForAccount($model->id_user, $model->id_account); + if ( $model->load(Yii::$app->request->post()) && $model->save() ) { return $this->redirect(['view', 'id' => $model->id_collection]); } else { @@ -119,37 +133,7 @@ class CollectionController extends Controller ]); } - /** - * Updates an existing Collection 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_collection]); - } else { - return $this->render('update', [ - 'model' => $model, - ]); - } - } - - /** - * Deletes an existing Collection 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 Collection model based on its primary key value. diff --git a/frontend/models/CollectionSearch.php b/frontend/models/CollectionSearch.php index 3bcf41d..7b604bc 100644 --- a/frontend/models/CollectionSearch.php +++ b/frontend/models/CollectionSearch.php @@ -13,10 +13,14 @@ use common\models\Collection; class CollectionSearch extends Collection { public $accounts; + public $accountMap; + public $users; public $timestampStart; public $timestampEnd; + public $totals; + /** * @inheritdoc */ @@ -25,7 +29,8 @@ class CollectionSearch extends Collection return [ [[ 'start', ], 'date', 'format' =>Yii::$app->formatter->datetimeFormat , 'timestampAttribute' => 'timestampStart' ,'timestampAttributeFormat' => 'yyyy-MM-dd HH:mm' ,'timeZone' => 'UTC' ], [[ 'end' , ], 'date' ,'format' =>Yii::$app->formatter->datetimeFormat , 'timestampAttribute' => 'timestampEnd' ,'timestampAttributeFormat' => 'yyyy-MM-dd HH:mm' ,'timeZone' => 'UTC' ], - ]; + [['id_account'],'integer'] +]; } /** @@ -54,12 +59,15 @@ class CollectionSearch extends Collection $this->load($params); + $this->id_user = Yii::$app->user->id; + 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_account' => $this->id_account, ]); @@ -69,4 +77,8 @@ class CollectionSearch extends Collection return $dataProvider; } + + public function searchTotal(){ + $this->totals = Collection::mkReceptionTotal($this->timestampStart, $this->timestampEnd , Yii::$app->user->id, [Collection::TYPE_RECEPTION], $this->id_account, $this->accounts, $this->accountMap); + } } diff --git a/frontend/models/TransferSearch.php b/frontend/models/TransferSearch.php index a2b48a9..5116cca 100644 --- a/frontend/models/TransferSearch.php +++ b/frontend/models/TransferSearch.php @@ -24,13 +24,15 @@ class TransferSearch extends Transfer public $timestampStart; public $timestampEnd; - public $totalsCreatedAt = ['total' => 0, 'accounts' =>[] ]; - public $totalsCreatedAtNotPaid= ['total' => 0, 'accounts' =>[]]; - public $totalsCreatedAtPaid= ['total' => 0, 'accounts' =>[]]; - public $totalsPaidAt= ['total' => 0, 'accounts' =>[]]; - public $totalsPaidAtNotCreatedAt= ['total' => 0, 'accounts' =>[]]; +// public $totalsCreatedAt = ['total' => 0, 'accounts' =>[] ]; +// public $totalsCreatedAtNotPaid= ['total' => 0, 'accounts' =>[]]; +// public $totalsCreatedAtPaid= ['total' => 0, 'accounts' =>[]]; +// public $totalsPaidAt= ['total' => 0, 'accounts' =>[]]; +// public $totalsPaidAtNotCreatedAt= ['total' => 0, 'accounts' =>[]]; + public $totals; + public $accounts; public $types; @@ -41,19 +43,12 @@ class TransferSearch extends Transfer public function rules() { return [ -// [[ 'start', ], 'date' , 'timestampAttribute' => 'timestampStart' ,'timestampAttributeFormat' => 'yyyy-MM-dd' ], -// [[ 'end' , ], 'date' , 'timestampAttribute' => 'timestampEnd' ,'timestampAttributeFormat' => 'yyyy-MM-dd' ], [[ 'start', ], 'date', 'format' =>Yii::$app->formatter->datetimeFormat , 'timestampAttribute' => 'timestampStart' ,'timestampAttributeFormat' => 'yyyy-MM-dd HH:mm' ,'timeZone' => 'UTC' ], [[ 'end' , ], 'date' ,'format' =>Yii::$app->formatter->datetimeFormat , 'timestampAttribute' => 'timestampEnd' ,'timestampAttributeFormat' => 'yyyy-MM-dd HH:mm' ,'timeZone' => 'UTC' ], [ [ 'id_account' ] , 'integer'], ['types', 'each', 'rule' => ['integer']], -// [ [ 'types' ], function ($attribute, $params) { -// if (!is_array($this->$attribute)) { -// $this->addError($attribute, 'Invalid array'); -// } -// }], ]; } @@ -73,13 +68,16 @@ class TransferSearch extends Transfer 'query' => $query, ]); + + $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->where('0=1'); } + $query->andWhere(['id_user' => Yii::$app->user->id ] ); $query->andFilterWhere([ 'id_account' => $this->id_account, @@ -103,23 +101,13 @@ class TransferSearch extends Transfer 'money' => 0 ]; - if ( $this->hasErrors() ){ - return; - } - - $accounts = Account::find()->orderBy("name asc")->all(); $accountMap = ArrayHelper::map( $accounts ,'id_account','name' ); $idUser = Yii::$app->user->id; - $totals = Transfer::mkTotals($this->timestampStart, $this->timestampEnd, $idUser, $this->types, $this->id_account, $accounts, $accountMap); + $this->totals = Transfer::mkTotals($this->timestampStart, $this->timestampEnd, $idUser, $this->types, $this->id_account, $accounts, $accountMap); - $this->totalsCreatedAt = $totals['created_at']; - $this->totalsPaidAt = $totals['paid_at']; - $this->totalsCreatedAtPaid = $totals['created_at_paid']; - $this->totalsCreatedAtNotPaid = $totals['created_at_not_paid']; - $this->totalsPaidAtNotCreatedAt = $totals['paid_at_not_created_at']; } diff --git a/frontend/views/collection/_search.php b/frontend/views/collection/_search.php index ef8ea74..e143267 100644 --- a/frontend/views/collection/_search.php +++ b/frontend/views/collection/_search.php @@ -2,8 +2,8 @@ use yii\helpers\Html; use yii\widgets\ActiveForm; -use kartik\widgets\DateTimePicker; use frontend\components\HtmlHelper; +use kartik\widgets\DateTimePicker; /* @var $this yii\web\View */ /* @var $model frontend\models\CollectionSearch */ diff --git a/frontend/views/collection/create.php b/frontend/views/collection/create.php index 79da8d7..4eb3b26 100644 --- a/frontend/views/collection/create.php +++ b/frontend/views/collection/create.php @@ -2,6 +2,7 @@ use yii\helpers\Html; use frontend\components\TransferTotalWidget; +use common\components\AccountStatisticWidget; /* @var $this yii\web\View */ @@ -20,10 +21,10 @@ $this->params['breadcrumbs'][] = $this->title;
lastCollection) ? Yii::$app->formatter->asDatetime($model->lastCollection->end) : Yii::t('frontend/collection', "No collection found") ?>
-
formatter->asDatetime($model->timestampStart) ?>
+
formatter->asDatetime($model->timestampStart,'yyyy-MM-dd HH:mm:ss') ?> (inkluzív)
-
formatter->asDatetime($model->timestampEnd) ?>
+
formatter->asDatetime($model->timestampEnd,'yyyy-MM-dd HH:mm:ss') ?> (exkluzív)

@@ -31,78 +32,23 @@ $this->params['breadcrumbs'][] = $this->title; 'btn btn-primary']) ?>

-
-
- [ - 'statistic' => $model->totals['created_at'], - 'panelHeading' => 'Kiadva', - ] - ]); - ?> -
-
- [ - 'statistic' => $model->totals['created_at_paid'], - 'panelHeading' => 'Kiadva/fizetve', - ] - ]); - ?> -
-
- [ - 'statistic' => $model->totals['created_at_not_paid'], - 'panelHeading' => 'Kiadva/nem fizetve (Hitel)', - 'panel-type' => 'panel-danger' - ] - ]); - ?> -
-
-
-
- -
-
+ userCartTotal > 0){ + ?> +

+ Figyelem! A recepció kassza tartalmaz még fizetetlen elemeket! +

[ - 'statistic' => $model->totals['paid_at_not_created_at'], - 'panelHeading' => 'Adósság (Hitel)/Fizetve' , - ] - ]); - ?> -
-
- -
-
- -
-
- -
-
- [ - 'statistic' => $model->totals['paid_at'], - 'panelHeading' => 'Fizetve' , - 'panel-type' => 'panel-success' - ] - ]); - ?> -
-
- -
-
+ } + ?> + + $model->totals + ]); + ?> render('_form', [ 'model' => $model, ]) ?> diff --git a/frontend/views/collection/index.php b/frontend/views/collection/index.php index 275848c..1560c04 100644 --- a/frontend/views/collection/index.php +++ b/frontend/views/collection/index.php @@ -2,6 +2,7 @@ use yii\helpers\Html; use yii\grid\GridView; +use common\components\AccountTotalWidget; /* @var $this yii\web\View */ /* @var $searchModel frontend\models\CollectionSearch */ @@ -19,15 +20,42 @@ $this->params['breadcrumbs'][] = $this->title; 'btn btn-success']) ?>

+ +
+
+ $searchModel->totals + ])?> +
+
+ + $dataProvider, 'columns' => [ 'id_collection', - 'id_user', - 'id_account', - 'money', - 'start:datetime', - 'end:datetime', + [ + 'attribute' => 'id_user', + 'value' => 'userName', + ], + [ + 'attribute' => 'id_account', + 'value' => 'accountName', + ], + 'money:integer', + [ + 'attribute' => 'start', + 'value' => function($model){ + return Yii::$app->formatter->asDatetime($model->start,'yyyy-MM-dd HH:mm:ss'); + } + ], + [ + 'attribute' => 'end', + 'value' => function($model){ + return Yii::$app->formatter->asDatetime($model->end,'yyyy-MM-dd HH:mm:ss'); + } + ], 'created_at:datetime', ['class' => 'yii\grid\ActionColumn', diff --git a/frontend/views/collection/view.php b/frontend/views/collection/view.php index 61b8f0c..5dfb30c 100644 --- a/frontend/views/collection/view.php +++ b/frontend/views/collection/view.php @@ -2,11 +2,12 @@ use yii\helpers\Html; use yii\widgets\DetailView; +use common\components\AccountStatisticWidget; /* @var $this yii\web\View */ /* @var $model common\models\Collection */ -$this->title = $model->id_collection; +$this->title = Yii::t('frontend/collection','Reception collection') . ' #'. $model->id_collection; $this->params['breadcrumbs'][] = ['label' => Yii::t('frontend/collection', 'Collections'), 'url' => ['index']]; $this->params['breadcrumbs'][] = $this->title; ?> @@ -34,4 +35,11 @@ $this->params['breadcrumbs'][] = $this->title; ], ]) ?> + $totals + ]); + ?> + +
diff --git a/frontend/views/transfer/_index_stat.php b/frontend/views/transfer/_index_stat.php index b808064..65d0bf4 100644 --- a/frontend/views/transfer/_index_stat.php +++ b/frontend/views/transfer/_index_stat.php @@ -1,57 +1,11 @@ -
-
-
- [ - 'statistic' => $searchModel->totalsCreatedAt, - 'panelHeading' => 'Kiadva az adott időszakban' - ] - ]);?> -
-
- [ - 'statistic' => $searchModel->totalsCreatedAtPaid, - 'panelHeading' => 'Kiadva/fizetve az adott időszakban' - ] - ]);?> -
-
- [ - 'statistic' => $searchModel->totalsCreatedAtNotPaid, - 'panelHeading' => 'Kiadva/nem fizetve az adott időszakban' - ] - ]);?> -
-
-
-
- -
-
- [ - 'statistic' => $searchModel->totalsPaidAtNotCreatedAt, - 'panelHeading' => 'Adósságok fizetve az adott időszakban' - ] - ]);?> -
-
-
-
-
-
- [ - 'statistic' => $searchModel->totalsPaidAt, - 'panelHeading' => 'Kiadva fizetve/adósság fizetve az adott időszakban' - ] - ]);?> -
-
-
\ No newline at end of file + $model->totals + ]); + +?> \ No newline at end of file diff --git a/frontend/views/transfer/_search.php b/frontend/views/transfer/_search.php index 7f11b47..038d103 100644 --- a/frontend/views/transfer/_search.php +++ b/frontend/views/transfer/_search.php @@ -48,7 +48,6 @@ use kartik\widgets\DateTimePicker; field($model, 'id_account')->dropDownList($accountOptions) ?>
- field($model, 'type')->dropDownList( ['' =>'Mind']+ Transfer::types()) ?> field($model, 'types')->checkboxList( Transfer::types()) ?>
diff --git a/frontend/views/transfer/index.php b/frontend/views/transfer/index.php index 3aeff9f..8772692 100644 --- a/frontend/views/transfer/index.php +++ b/frontend/views/transfer/index.php @@ -32,7 +32,7 @@ $this->params['breadcrumbs'][] = $this->title;

title) ?>

render('_search', ['model' => $searchModel]); ?> - render('_index_stat', ['searchModel' => $searchModel]); ?> + render('_index_stat', ['model' => $searchModel]); ?> diff --git a/init b/init old mode 100644 new mode 100755