-Fix modifiers in orders
This commit is contained in:
miroman-afk
2022-01-27 13:29:12 +03:00
parent 284d2bcb60
commit fb3a28e74e
9 changed files with 260 additions and 65 deletions

View File

@@ -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;

View File

@@ -1,6 +1,6 @@
{
"name": "hrc-admin/hello-world",
"version": "2.8",
"version": "2.9",
"require": {
"horeca/admin-php-module-core": "dev-master"
},

View File

@@ -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) {
//
});
}
}

View 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
View 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 = [];
}

View File

@@ -1,5 +1,5 @@
[info]
name=V1
version=2.8
version=2.9
[build]
version=2.8
version=2.9

View File

@@ -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)">

View 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;">&#xE2C7;</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;">&#xE2C7;</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;">&#xE2C7;</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;">&#xE893;</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>

View File

@@ -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;">&#xE893;</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">