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->dish_code = $exchange_item["dishes_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;
|
||||
} else {
|
||||
$shift_online_item->modificator_code = 0;
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "hrc-admin/hello-world",
|
||||
"version": "2.8",
|
||||
"version": "2.9",
|
||||
"require": {
|
||||
"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]
|
||||
name=V1
|
||||
version=2.8
|
||||
version=2.9
|
||||
[build]
|
||||
version=2.8
|
||||
version=2.9
|
||||
|
||||
@@ -28,26 +28,25 @@
|
||||
<div class="col-sm-6">
|
||||
<input placeholder="Имя" ng-model="client_name" class="form-control" value="client_name" disabled></input>
|
||||
<p>
|
||||
</div>
|
||||
<div class="col-sm-6">
|
||||
<input ng-model="client_phone" class="form-control" ui-mask="+375 (99) 999-99-99" disabled></input>
|
||||
<p>
|
||||
</div>
|
||||
<br>
|
||||
<div class="col-sm-12">
|
||||
<input placeholder="Адрес" ng-model="client_address" class="form-control" disabled></input>
|
||||
<p>
|
||||
</div>
|
||||
<div class="col-sm-12">
|
||||
<button type="button" class="btn dark-white p-x-md" data-dismiss="modal" ng-click="deleteClient(orderId)">Отменить</button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-sm-6">
|
||||
<input ng-model="client_phone" class="form-control" ui-mask="+375 (99) 999-99-99" disabled></input>
|
||||
<p>
|
||||
</div>
|
||||
<div class="col-sm-12">
|
||||
<input placeholder="Адрес" ng-model="client_address" class="form-control" disabled></input>
|
||||
<p>
|
||||
</div>
|
||||
<div class="col-sm-12">
|
||||
<button type="button" class="btn dark-white p-x-md" data-dismiss="modal" ng-click="deleteClient(orderId)">Отменить</button>
|
||||
</div>
|
||||
</div>
|
||||
<hr>
|
||||
<div class="form-group row">
|
||||
<label>Заказ</label>
|
||||
</div>
|
||||
<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 class="form-group row">
|
||||
<div class="padding">
|
||||
@@ -56,26 +55,27 @@
|
||||
<table class="table table-bordered m-a-0 table-hover">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>#</th>
|
||||
<th>Наименование</th>
|
||||
<th>Наимен.</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>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr ng-repeat="item in items" ng-click="">
|
||||
<td>{{ item.num }}</td>
|
||||
<td>{{ item.item_name }}</td>
|
||||
<td>
|
||||
<small>{{ item.item_name }}</small>
|
||||
<p>
|
||||
<small>{{ item.item_price }} BYN</small>
|
||||
</td>
|
||||
<td>
|
||||
|
||||
<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-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>
|
||||
</div>
|
||||
</td>
|
||||
<td>{{ item.item_price }} BYN</td>
|
||||
<td>{{ item.item_price * item.item_count }} BYN</td>
|
||||
<td>
|
||||
<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 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 class="container">
|
||||
<div class="row justify-content-center inset" ng-if="selectMenuItemParams.currentMenu > 0">
|
||||
<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;">
|
||||
<p>
|
||||
<div style="word-wrap: break-word;">{{ item.name }}</div>
|
||||
</p>
|
||||
<p>
|
||||
<small class="block text-muted">{{ item.cosht | curr }} BYN</small>
|
||||
</p>
|
||||
</button>
|
||||
<p> </p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
<div class="modal-footer">
|
||||
|
||||
Reference in New Issue
Block a user