v.2.9
-Fix modifiers in orders
This commit is contained in:
@@ -129,7 +129,7 @@ class POSTRestoreShift extends HRCCommand implements HRCCommandInterface {
|
|||||||
$shift_online_item->count_return = $exchange_item["count_return"];
|
$shift_online_item->count_return = $exchange_item["count_return"];
|
||||||
$shift_online_item->dish_code = $exchange_item["dishes_code"];
|
$shift_online_item->dish_code = $exchange_item["dishes_code"];
|
||||||
$shift_online_item->menu_code = $exchange_item["menu_code"];
|
$shift_online_item->menu_code = $exchange_item["menu_code"];
|
||||||
if ($exchange_item["modificator_code"] > 0) {
|
if ($exchange_item["menu_code"] == 0 && $exchange_item["menu_code"] == 0 && $exchange_item["units_id"] == 0) {
|
||||||
$shift_online_item->modificator_code = 1;
|
$shift_online_item->modificator_code = 1;
|
||||||
} else {
|
} else {
|
||||||
$shift_online_item->modificator_code = 0;
|
$shift_online_item->modificator_code = 0;
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "hrc-admin/hello-world",
|
"name": "hrc-admin/hello-world",
|
||||||
"version": "2.8",
|
"version": "2.9",
|
||||||
"require": {
|
"require": {
|
||||||
"horeca/admin-php-module-core": "dev-master"
|
"horeca/admin-php-module-core": "dev-master"
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -0,0 +1,34 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
use Illuminate\Database\Migrations\Migration;
|
||||||
|
use Illuminate\Database\Schema\Blueprint;
|
||||||
|
use Illuminate\Support\Facades\Schema;
|
||||||
|
|
||||||
|
class CreateActionTypesTable extends Migration {
|
||||||
|
/**
|
||||||
|
* Run the migrations.
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function up() {
|
||||||
|
if (!Schema::hasTable('action_types')) {
|
||||||
|
Schema::create('action_types', function (Blueprint $table) {
|
||||||
|
$table->id();
|
||||||
|
$table->string('name', 255)->nullable();
|
||||||
|
$table->integer('type_id')->nullable();
|
||||||
|
$table->timestamps();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Reverse the migrations.
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function down() {
|
||||||
|
Schema::table('action_types', function (Blueprint $table) {
|
||||||
|
//
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
67
database/seeders/AddActionTypes.php
Normal file
67
database/seeders/AddActionTypes.php
Normal file
@@ -0,0 +1,67 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace Database\Component\Seeders;
|
||||||
|
|
||||||
|
use App\Component\Models\ActionTypes;
|
||||||
|
use Illuminate\Database\Seeder;
|
||||||
|
|
||||||
|
class AddActionTypes extends Seeder {
|
||||||
|
/**
|
||||||
|
* Run the database seeds.
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function run() {
|
||||||
|
if (ActionTypes::count() == 0) {
|
||||||
|
$types = ActionTypes::upsert([
|
||||||
|
['name' => 'Заказ открыт', 'type_id' => 1],
|
||||||
|
['name' => 'Добавлена позиция', 'type_id' => 2],
|
||||||
|
['name' => 'Удалена позиция', 'type_id' => 5],
|
||||||
|
['name' => 'Заказ закрыт', 'type_id' => 6],
|
||||||
|
['name' => 'Заказ отложен', 'type_id' => 7],
|
||||||
|
['name' => 'Заказ удален', 'type_id' => 8],
|
||||||
|
['name' => 'Клиент добавлен', 'type_id' => 11],
|
||||||
|
['name' => 'Клиент отменен', 'type_id' => 12],
|
||||||
|
['name' => 'Добавлен модификатор', 'type_id' => 15],
|
||||||
|
['name' => 'Удален модификатор', 'type_id' => 16],
|
||||||
|
['name' => 'Начат возврат заказа', 'type_id' => 17],
|
||||||
|
['name' => 'Отмена возврата заказа', 'type_id' => 18],
|
||||||
|
['name' => 'Заказ возвращен', 'type_id' => 19],
|
||||||
|
['name' => 'Возврат заказа окончен', 'type_id' => 20],
|
||||||
|
['name' => 'Печать завершена', 'type_id' => 21],
|
||||||
|
['name' => 'Отмена позиции', 'type_id' => 22],
|
||||||
|
['name' => 'Ошибка печати', 'type_id' => 23],
|
||||||
|
['name' => 'Наличными', 'type_id' => 24],
|
||||||
|
['name' => 'Безналичными', 'type_id' => 25],
|
||||||
|
['name' => 'Кредитной картой', 'type_id' => 26],
|
||||||
|
['name' => 'Питание штата', 'type_id' => 27],
|
||||||
|
['name' => 'Аванс', 'type_id' => 28],
|
||||||
|
['name' => 'Остаток', 'type_id' => 29],
|
||||||
|
['name' => 'Удалены все позиции', 'type_id' => 30],
|
||||||
|
['name' => 'Начато объединение', 'type_id' => 31],
|
||||||
|
['name' => 'Объединение окончено', 'type_id' => 32],
|
||||||
|
['name' => 'Начато разбиение', 'type_id' => 33],
|
||||||
|
['name' => 'Разбиение окончено', 'type_id' => 34],
|
||||||
|
['name' => 'Конечный заказ разбиения', 'type_id' => 35],
|
||||||
|
['name' => 'Заказ открыт администратором', 'type_id' => 36],
|
||||||
|
['name' => 'Заказ заблокирован', 'type_id' => 37],
|
||||||
|
['name' => 'Заказ разблокирован', 'type_id' => 38],
|
||||||
|
['name' => 'Перевод', 'type_id' => 39],
|
||||||
|
['name' => 'Custom', 'type_id' => 40],
|
||||||
|
['name' => 'Заказ перенесен', 'type_id' => 41],
|
||||||
|
['name' => 'Здравница', 'type_id' => 42],
|
||||||
|
['name' => 'Аннулирование заказа', 'type_id' => 43],
|
||||||
|
['name' => 'Открыть с перезагрузки', 'type_id' => 44],
|
||||||
|
['name' => 'Место заказа', 'type_id' => 45],
|
||||||
|
['name' => 'Количество клиентов', 'type_id' => 46],
|
||||||
|
['name' => 'Изменить курс', 'type_id' => 47],
|
||||||
|
['name' => 'Бонус', 'type_id' => 48],
|
||||||
|
['name' => 'Внесение денежных средств', 'type_id' => 49],
|
||||||
|
['name' => 'Выплата денежных средств', 'type_id' => 50],
|
||||||
|
['name' => 'Электронными деньгами', 'type_id' => 51],
|
||||||
|
['name' => 'Заказ вызван', 'type_id' => 52],
|
||||||
|
], ['name'], ['type_id']
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
15
models/ActionTypes.php
Normal file
15
models/ActionTypes.php
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Component\Models;
|
||||||
|
|
||||||
|
use Illuminate\Database\Eloquent\Model;
|
||||||
|
|
||||||
|
class ActionTypes extends Model {
|
||||||
|
protected $table = 'action_types';
|
||||||
|
/**
|
||||||
|
* The attributes that aren't mass assignable.
|
||||||
|
*
|
||||||
|
* @var array
|
||||||
|
*/
|
||||||
|
protected $guarded = [];
|
||||||
|
}
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
[info]
|
[info]
|
||||||
name=V1
|
name=V1
|
||||||
version=2.8
|
version=2.9
|
||||||
[build]
|
[build]
|
||||||
version=2.8
|
version=2.9
|
||||||
|
|||||||
@@ -33,7 +33,6 @@
|
|||||||
<input ng-model="client_phone" class="form-control" ui-mask="+375 (99) 999-99-99" disabled></input>
|
<input ng-model="client_phone" class="form-control" ui-mask="+375 (99) 999-99-99" disabled></input>
|
||||||
<p>
|
<p>
|
||||||
</div>
|
</div>
|
||||||
<br>
|
|
||||||
<div class="col-sm-12">
|
<div class="col-sm-12">
|
||||||
<input placeholder="Адрес" ng-model="client_address" class="form-control" disabled></input>
|
<input placeholder="Адрес" ng-model="client_address" class="form-control" disabled></input>
|
||||||
<p>
|
<p>
|
||||||
@@ -47,7 +46,7 @@
|
|||||||
<label>Заказ</label>
|
<label>Заказ</label>
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group row">
|
<div class="form-group row">
|
||||||
<button type="button" class="btn danger p-x-md pull-right" data-toggle="modal" data-target="#edit-selectmenuitem" ng-click="selectMenuItem(orderId)">Добавить товары в заказ</button>
|
<button type="button" class="btn danger p-x-md pull-right" data-toggle="modal" data-target="#edit-selectmenuitem" ng-click="selectMenuItem(orderId)">Открыть меню</button>
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group row">
|
<div class="form-group row">
|
||||||
<div class="padding">
|
<div class="padding">
|
||||||
@@ -56,26 +55,27 @@
|
|||||||
<table class="table table-bordered m-a-0 table-hover">
|
<table class="table table-bordered m-a-0 table-hover">
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
<th>#</th>
|
<th>Наимен.</th>
|
||||||
<th>Наименование</th>
|
|
||||||
<th style="width: 120px; text-align: center">Количество</th>
|
<th style="width: 120px; text-align: center">Количество</th>
|
||||||
<th style="width: 80px; text-align: center">Цена</th>
|
<th style="width: 80px; text-align: center">Итог</th>
|
||||||
<th style="width: 80px; text-align: center">Итого</th>
|
|
||||||
<th style="width: 20px; text-align: center">#</th>
|
<th style="width: 20px; text-align: center">#</th>
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
<tbody>
|
<tbody>
|
||||||
<tr ng-repeat="item in items" ng-click="">
|
<tr ng-repeat="item in items" ng-click="">
|
||||||
<td>{{ item.num }}</td>
|
|
||||||
<td>{{ item.item_name }}</td>
|
|
||||||
<td>
|
<td>
|
||||||
|
<small>{{ item.item_name }}</small>
|
||||||
|
<p>
|
||||||
|
<small>{{ item.item_price }} BYN</small>
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
|
||||||
<div class="btn-group" role="group">
|
<div class="btn-group" role="group">
|
||||||
<button type="button" class="btn btn-secondary btn-sm" ng-click="inOrderDecrement(item, item.item_count)" ng-disabled="item.item_count<=1">-</button>
|
<button type="button" class="btn btn-secondary btn-sm" ng-click="inOrderDecrement(item, item.item_count)" ng-disabled="item.item_count<=1">-</button>
|
||||||
<button type="button" class="btn btn-secondary btn-sm" ng-model="item.item_count" disabled>{{item.item_count}}</button>
|
<button type="button" class="btn btn-secondary btn-sm" ng-model="item.item_count" disabled>{{item.item_count}}</button>
|
||||||
<button type="button" class="btn btn-secondary btn-sm" ng-click="inOrderIncrement(item, item.item_count)">+</button>
|
<button type="button" class="btn btn-secondary btn-sm" ng-click="inOrderIncrement(item, item.item_count)">+</button>
|
||||||
</div>
|
</div>
|
||||||
</td>
|
</td>
|
||||||
<td>{{ item.item_price }} BYN</td>
|
|
||||||
<td>{{ item.item_price * item.item_count }} BYN</td>
|
<td>{{ item.item_price * item.item_count }} BYN</td>
|
||||||
<td>
|
<td>
|
||||||
<button type="button" class="btn danger btn-sm" ng-model="item" ng-click="deleteItem(item)">
|
<button type="button" class="btn danger btn-sm" ng-model="item" ng-click="deleteItem(item)">
|
||||||
|
|||||||
104
web/views/orders/selectmenuitem — old.html
Normal file
104
web/views/orders/selectmenuitem — old.html
Normal file
@@ -0,0 +1,104 @@
|
|||||||
|
<div class="modal-dialog modal-list">
|
||||||
|
<div class="modal-content">
|
||||||
|
<div class="modal-header">
|
||||||
|
<h5 class="modal-title">Выбор элемента меню</h5>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="modal-body p-lg">
|
||||||
|
<div ng-if="selectMenuItemParams.currentMenu > 0">
|
||||||
|
<div class="list-item pointer no_selection" ios-dblclick="upMenuItem()">
|
||||||
|
<div class="list-left">
|
||||||
|
<span class="w-30">
|
||||||
|
<i class="material-icons" style="font-size: 30px;"></i>
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="list-body" style="line-height: 30px">...</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div ng-if="selectMenuItemParams.currentMenu == 0">
|
||||||
|
<div class="list inset" ng-repeat="menu in selectMenuItemParams.menus">
|
||||||
|
<div class="list-item pointer no_selection" ios-dblclick="openMenuItem(menu)"
|
||||||
|
sglclick="selectItem(menu.id, 'menu', menu.name)"
|
||||||
|
ng-class="menu.id == selectedElement.value && selectedElement.type == 'menu' ? 'active' : ''">
|
||||||
|
<div class="list-left">
|
||||||
|
<span class="w-30">
|
||||||
|
<i class="material-icons" style="font-size: 30px;"></i>
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="list-body" style="line-height: 30px">
|
||||||
|
{{ menu.name }}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div ng-if="selectMenuItemParams.currentMenu > 0">
|
||||||
|
<div class="list inset" ng-repeat="folder in selectMenuItemParams.folders">
|
||||||
|
<div class="list-item pointer no_selection" ios-dblclick="openFolderItem(folder)"
|
||||||
|
sglclick="selectItem(folder.id, 'folder', folder.name)"
|
||||||
|
ng-class="folder.id == selectedElement.value && selectedElement.type == 'folder' ? 'active' : ''">
|
||||||
|
<div class="list-left">
|
||||||
|
<span class="w-30">
|
||||||
|
<i class="material-icons" style="font-size: 30px;"></i>
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="list-body" style="line-height: 30px">
|
||||||
|
{{ folder.name }}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div ng-if="selectMenuItemParams.currentMenu > 0">
|
||||||
|
<div class="list inset" ng-repeat="item in selectMenuItemParams.items">
|
||||||
|
<li class="list-item pointer no_selection" ng-click="selectItem(item.id, 'item', item.name)">
|
||||||
|
<div class="list-left">
|
||||||
|
<span class="w-30">
|
||||||
|
<i class="material-icons" style="font-size: 30px;"></i>
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="list-body">
|
||||||
|
|
||||||
|
<div class="container">
|
||||||
|
<div class="row justify-content-around">
|
||||||
|
<div class="col-6 col-sm-3">
|
||||||
|
{{ item.name }} <span class="text-muted">#{{ item.code }}</span>
|
||||||
|
<small class="block text-muted">{{ item.cosht | curr }} BYN</small>
|
||||||
|
</div>
|
||||||
|
<div ng-if="item.realCount" class="col-6 col-sm-4">
|
||||||
|
<div class="btn-group" role="group">
|
||||||
|
<button type="button" class="btn btn-secondary" ng-click="decrement(item, item.realCount)" ng-disabled="realCount<=0">-</button>
|
||||||
|
<button type="button" class="btn btn-secondary" ng-model="item.realCount" disabled>{{item.realCount}}</button>
|
||||||
|
<button type="button" class="btn btn-secondary" ng-click="increment(item, item.realCount)">+</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div ng-if="!item.realCount" class="col-6 col-sm-4">
|
||||||
|
<div class="btn-group" role="group">
|
||||||
|
<button type="button" class="btn btn-secondary" ng-click="decrement(item, defaultCount)" ng-disabled="defaultCount<=0">-</button>
|
||||||
|
<button type="button" class="btn btn-secondary" ng-model="defaultCount" disabled>{{defaultCount}}</button>
|
||||||
|
<button type="button" class="btn btn-secondary" ng-click="increment(item, defaultCount)">+</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="col-6 col-sm-3">
|
||||||
|
<button ng-if="!item.realCount" type="button" class="btn btn btn-success p-x-md" ng-model="orderId" ng-click="addItem(orderId, item.code, defaultCount)">+</button>
|
||||||
|
<button ng-if="item.realCount" type="button" class="btn btn btn-success p-x-md" ng-model="orderId" ng-click="addItem(orderId, item.code, item.realCount)">+</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<hr>
|
||||||
|
</li>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="modal-footer">
|
||||||
|
<button type="button" class="btn dark-white p-x-md" data-dismiss="modal">Закрыть</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
@@ -53,48 +53,23 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div ng-if="selectMenuItemParams.currentMenu > 0">
|
<div class="container">
|
||||||
<div class="list inset" ng-repeat="item in selectMenuItemParams.items">
|
<div class="row justify-content-center inset" ng-if="selectMenuItemParams.currentMenu > 0">
|
||||||
<li class="list-item pointer no_selection" ng-click="selectItem(item.id, 'item', item.name)"
|
<div class="col-xs-6" ng-repeat="item in selectMenuItemParams.items">
|
||||||
>
|
<button ng-if="!item.realCount" type="button" class="btn btn-secondary" ng-model="orderId" ng-click="addItem(orderId, item.code, defaultCount)" style="width: 160px; height: 130px; white-space: unset;">
|
||||||
<div class="list-left">
|
<p>
|
||||||
<span class="w-30">
|
<div style="word-wrap: break-word;">{{ item.name }}</div>
|
||||||
<i class="material-icons" style="font-size: 30px;"></i>
|
</p>
|
||||||
</span>
|
<p>
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="list-body">
|
|
||||||
<div class="container">
|
|
||||||
<div class="row justify-content-around">
|
|
||||||
<div class="col-6 col-sm-3">
|
|
||||||
{{ item.name }} <span class="text-muted">#{{ item.code }}</span>
|
|
||||||
<small class="block text-muted">{{ item.cosht | curr }} BYN</small>
|
<small class="block text-muted">{{ item.cosht | curr }} BYN</small>
|
||||||
|
</p>
|
||||||
|
</button>
|
||||||
|
<p> </p>
|
||||||
</div>
|
</div>
|
||||||
<div ng-if="item.realCount" class="col-6 col-sm-4">
|
|
||||||
<div class="btn-group" role="group">
|
|
||||||
<button type="button" class="btn btn-secondary" ng-click="decrement(item, item.realCount)" ng-disabled="realCount<=0">-</button>
|
|
||||||
<button type="button" class="btn btn-secondary" ng-model="item.realCount" disabled>{{item.realCount}}</button>
|
|
||||||
<button type="button" class="btn btn-secondary" ng-click="increment(item, item.realCount)">+</button>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div ng-if="!item.realCount" class="col-6 col-sm-4">
|
|
||||||
<div class="btn-group" role="group">
|
|
||||||
<button type="button" class="btn btn-secondary" ng-click="decrement(item, defaultCount)" ng-disabled="defaultCount<=0">-</button>
|
|
||||||
<button type="button" class="btn btn-secondary" ng-model="defaultCount" disabled>{{defaultCount}}</button>
|
|
||||||
<button type="button" class="btn btn-secondary" ng-click="increment(item, defaultCount)">+</button>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="col-6 col-sm-3">
|
|
||||||
<button ng-if="!item.realCount" type="button" class="btn btn btn-success p-x-md" ng-model="orderId" ng-click="addItem(orderId, item.code, defaultCount)">+</button>
|
|
||||||
<button ng-if="item.realCount" type="button" class="btn btn btn-success p-x-md" ng-model="orderId" ng-click="addItem(orderId, item.code, item.realCount)">+</button>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<hr>
|
|
||||||
</li>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="modal-footer">
|
<div class="modal-footer">
|
||||||
|
|||||||
Reference in New Issue
Block a user