v.2.15
Order history
This commit is contained in:
54
commands/GETOrderHistory.php
Normal file
54
commands/GETOrderHistory.php
Normal file
@@ -0,0 +1,54 @@
|
||||
<?php
|
||||
|
||||
namespace App\Commands;
|
||||
|
||||
use App\Component\Models\ActionTypes;
|
||||
use App\Component\Models\Dishes;
|
||||
use App\Component\Models\ShiftOnlineActions;
|
||||
use App\Component\Models\ShiftOnlineItems;
|
||||
use App\Component\Models\Staff;
|
||||
use App\Component\Models\Units;
|
||||
use App\Component\Models\UnitsList;
|
||||
use App\Console\Commands\HRCCommand;
|
||||
use App\Console\Commands\HRCCommandInterface;
|
||||
|
||||
class GETOrderHistory extends HRCCommand implements HRCCommandInterface {
|
||||
protected $signature = 'getorderhistory';
|
||||
|
||||
public function command($input, $output = null) {
|
||||
|
||||
if (isset($input['order_id'])) {
|
||||
$order = ShiftOnlineActions::where('order_code', $input['order_id'])->orderBy('time', 'asc')->get();
|
||||
foreach ($order as $key => $item) {
|
||||
$action_type = ActionTypes::where('type_id', $item['type_action'])->first();
|
||||
$action_name = $action_type['name'];
|
||||
$staff = Staff::where('code', $item['who'])->first();
|
||||
$staff_name = $staff['name'];
|
||||
if ($item['type_action'] == 45 || $item['type_action'] == 39) {
|
||||
$action_name = $item['value'];
|
||||
}
|
||||
if ($item['type_action'] == 46 || $item['type_action'] == 35) {
|
||||
$action_name = $action_name . ': ' . $item['value'];
|
||||
}
|
||||
if ($item['type_action'] == 2) {
|
||||
$shiftOnlineItem = ShiftOnlineItems::where('order_code', $item['order_code'])->where('dish_code', $item['more'])->first();
|
||||
$unitsList = UnitsList::where('id', $shiftOnlineItem['units_code'])->first();
|
||||
$units = Units::where('id', $unitsList['unit_id'])->first();
|
||||
$unit_name = $units['name'];
|
||||
$dish = Dishes::where('code', $item['more'])->first();
|
||||
$action_name = $action_name . ': ' . $dish['name'] . ' в количестве ' . $item['value'] . ' ' . $unit_name;
|
||||
}
|
||||
$order_info[] = array('id' => $key, 'action' => $action_name, 'who' => $staff_name, 'time' => $item['time'], 'workgroup' => $item['workgroup'], 'workcode' => $item['workcode']);
|
||||
}
|
||||
return [
|
||||
'status' => 'success',
|
||||
'actions' => $order_info,
|
||||
];
|
||||
} else {
|
||||
return [
|
||||
'status' => 'success',
|
||||
'error_message' => 'Проверьте введенные данные',
|
||||
];
|
||||
}
|
||||
}
|
||||
}
|
||||
22
database/seeders/Add53ActionType.php
Normal file
22
database/seeders/Add53ActionType.php
Normal file
@@ -0,0 +1,22 @@
|
||||
<?php
|
||||
|
||||
namespace Database\Component\Seeders;
|
||||
|
||||
use App\Component\Models\ActionTypes;
|
||||
use Illuminate\Database\Seeder;
|
||||
|
||||
class Add53ActionType extends Seeder {
|
||||
/**
|
||||
* Run the database seeds.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function run() {
|
||||
if (ActionTypes::where('type_id', 53)->count() == 0) {
|
||||
$types = ActionTypes::upsert([
|
||||
['name' => 'Выход из заказа', 'type_id' => 53],
|
||||
], ['name'], ['type_id']
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
22
database/seeders/Add54ActionType.php
Normal file
22
database/seeders/Add54ActionType.php
Normal file
@@ -0,0 +1,22 @@
|
||||
<?php
|
||||
|
||||
namespace Database\Component\Seeders;
|
||||
|
||||
use App\Component\Models\ActionTypes;
|
||||
use Illuminate\Database\Seeder;
|
||||
|
||||
class Add54ActionType extends Seeder {
|
||||
/**
|
||||
* Run the database seeds.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function run() {
|
||||
if (ActionTypes::where('type_id', 54)->count() == 0) {
|
||||
$types = ActionTypes::upsert([
|
||||
['name' => 'Автоматический выход из заказа', 'type_id' => 54],
|
||||
], ['name'], ['type_id']
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
9
models/Staff.php
Normal file
9
models/Staff.php
Normal file
@@ -0,0 +1,9 @@
|
||||
<?php
|
||||
|
||||
namespace App\Component\Models;
|
||||
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
|
||||
class Staff extends Model {
|
||||
protected $table = 'staffs';
|
||||
}
|
||||
9
models/Units.php
Normal file
9
models/Units.php
Normal file
@@ -0,0 +1,9 @@
|
||||
<?php
|
||||
|
||||
namespace App\Component\Models;
|
||||
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
|
||||
class Units extends Model {
|
||||
protected $table = 'units';
|
||||
}
|
||||
9
models/UnitsList.php
Normal file
9
models/UnitsList.php
Normal file
@@ -0,0 +1,9 @@
|
||||
<?php
|
||||
|
||||
namespace App\Component\Models;
|
||||
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
|
||||
class UnitsList extends Model {
|
||||
protected $table = 'units_list';
|
||||
}
|
||||
@@ -722,6 +722,17 @@
|
||||
});
|
||||
};
|
||||
|
||||
$scope.getTotalItems = function (order) {
|
||||
$('#get-more-total').modal('toggle');
|
||||
smartRequest.get('dashboard/total/items?order=' + order.number, function (data) {
|
||||
$scope.order = data;
|
||||
smartRequest.get('v1/orderhistory?order_id=' + order.number, function (actions) {
|
||||
$scope.actions = actions;
|
||||
});
|
||||
$('#items-total').modal('toggle');
|
||||
});
|
||||
};
|
||||
|
||||
$scope.getStaffMore = function (staff) {
|
||||
smartRequest.get('dashboard/more/staff?code=' + staff.code, function (data) {
|
||||
$scope.staff = data;
|
||||
|
||||
55
web/views/dashboard/items/items-total — копия.html
Normal file
55
web/views/dashboard/items/items-total — копия.html
Normal file
@@ -0,0 +1,55 @@
|
||||
<div class="modal-dialog modal-lg">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<button type="button" class="close" data-toggle="modal" data-target="#items-total" ng-click="returnModal('total')">
|
||||
<i class="material-icons md-24">arrow_back</i>
|
||||
</button>
|
||||
<h5 class="modal-title" style="padding-bottom: 12px;">Подробнее о заказе № {{ order.title }}</h5>
|
||||
<div class="row">
|
||||
<div class="col-xs-6 col-md-3">
|
||||
<p class="text-muted m-b-0">Открыт</p>
|
||||
<p class="m-b-0">{{ order.who_open }}</p>
|
||||
<p class="m-b-0">{{ order.opened }}</p>
|
||||
</div>
|
||||
<div class="col-xs-6 col-md-3">
|
||||
<div ng-if="getClosedDate(order.closed) == NOT_CLOSED">
|
||||
<p class="text-muted m-b-0">{{NOT_CLOSED}}</p>
|
||||
</div>
|
||||
<div ng-if="getClosedDate(order.closed) != NOT_CLOSED">
|
||||
<p class="text-muted m-b-0">Закрыт</p>
|
||||
<p class="m-b-0">{{ order.who_close }}</p>
|
||||
<p class="m-b-0">{{ order.closed }}</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="modal-body p-lg">
|
||||
<div class="table-responsive">
|
||||
<table class="table m-a-0">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Блюдо</th>
|
||||
<th>Количество</th>
|
||||
<th class="text-right">Сумма, BYN</th>
|
||||
</tr>
|
||||
</thead>
|
||||
|
||||
<tbody>
|
||||
<tr ng-repeat="item in order.items">
|
||||
<td>{{ item.name }}</td>
|
||||
<td>{{ item.count }}</td>
|
||||
<td class="text-right">{{ item.sale_price | curr }}</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
|
||||
<thead>
|
||||
<tr>
|
||||
<th colspan="2"></th>
|
||||
<th class="text-right">Итого: {{ order.total | curr }} BYN</th>
|
||||
</tr>
|
||||
</thead>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -24,32 +24,71 @@
|
||||
</div>
|
||||
</div>
|
||||
<div class="modal-body p-lg">
|
||||
<div class="table-responsive">
|
||||
<table class="table m-a-0">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Блюдо</th>
|
||||
<th>Количество</th>
|
||||
<th class="text-right">Сумма, BYN</th>
|
||||
</tr>
|
||||
</thead>
|
||||
|
||||
<tbody>
|
||||
<tr ng-repeat="item in order.items">
|
||||
<td>{{ item.name }}</td>
|
||||
<td>{{ item.count }}</td>
|
||||
<td class="text-right">{{ item.sale_price | curr }}</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
|
||||
<thead>
|
||||
<tr>
|
||||
<th colspan="2"></th>
|
||||
<th class="text-right">Итого: {{ order.total | curr }} BYN</th>
|
||||
</tr>
|
||||
</thead>
|
||||
</table>
|
||||
<div>
|
||||
<div class="b-b nav-active-bg">
|
||||
<ul class="nav nav-tabs">
|
||||
<li class="nav-item">
|
||||
<a class="nav-link active" href="" data-toggle="tab" data-target="#tab1" aria-expanded="true">Товары</a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" href="" data-toggle="tab" data-target="#tab2" aria-expanded="false">Журнал заказа</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="tab-content p-a m-b-md">
|
||||
<div class="tab-pane animated fadeIn text-muted active" id="tab1" aria-expanded="true">
|
||||
<div class="table-responsive">
|
||||
<table class="table m-a-0">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Блюдо</th>
|
||||
<th>Количество</th>
|
||||
<th class="text-right">Сумма, BYN</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr ng-repeat="item in order.items">
|
||||
<td>{{ item.name }}</td>
|
||||
<td>{{ item.count }}</td>
|
||||
<td class="text-right">{{ item.sale_price | curr }}</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
<thead>
|
||||
<tr>
|
||||
<th colspan="2"></th>
|
||||
<th class="text-right">Итого: {{ order.total | curr }} BYN</th>
|
||||
</tr>
|
||||
</thead>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
<div class="tab-pane animated fadeIn text-muted" id="tab2" aria-expanded="false">
|
||||
<div class="table-responsive">
|
||||
<table class="table m-a-0">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Действие</th>
|
||||
<th>Персонал</th>
|
||||
<th>Время</th>
|
||||
<th>Группа</th>
|
||||
<th>Место</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr ng-repeat="action in actions.actions">
|
||||
<td>{{ action.action }}</td>
|
||||
<td>{{ action.who }}</td>
|
||||
<td>{{ action.time }}</td>
|
||||
<td>{{ action.workgroup }}</td>
|
||||
<td>{{ action.workcode }}</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -17,7 +17,7 @@
|
||||
</thead>
|
||||
|
||||
<tbody>
|
||||
<tr ng-repeat="order in moreData.orders" ng-click="getItems('total', order)">
|
||||
<tr ng-repeat="order in moreData.orders" ng-click="getTotalItems(order)">
|
||||
<td>{{ order.number }}</td>
|
||||
<td>{{ order.opened }}</td>
|
||||
<td>{{ getClosedDate(order.closed) }}</td>
|
||||
|
||||
Reference in New Issue
Block a user