v.2.24
1. Редактор карты зала.
This commit is contained in:
@@ -126,31 +126,21 @@ class GETDataReport extends HRCCommand implements HRCCommandInterface
|
||||
return $retval;
|
||||
}
|
||||
|
||||
function staffName($data)
|
||||
{
|
||||
$staff_name = Staff::where('code', $data)->where('is_history', 0)->first();
|
||||
if ($staff_name) {
|
||||
$staff_name = $staff_name['name'];
|
||||
} else {
|
||||
$staff_name = Staff::where('code', $data)->where('is_history', 1)->first();
|
||||
if ($staff_name) {
|
||||
$staff_name = $staff_name['name'];
|
||||
} else {
|
||||
$staff_name = 'Связанный персонал не найден';
|
||||
}
|
||||
}
|
||||
return $staff_name;
|
||||
}
|
||||
|
||||
$reportType = $input['type'];
|
||||
//merge, slice, move
|
||||
if (isset($reportType)) {
|
||||
//merge
|
||||
if ($reportType == 'merge') {
|
||||
$merged_order_items = [];
|
||||
$orders = ExchangeActions::select('order_code')->where('shift_id', $input['shift_id'])->groupBy('order_code')->get();
|
||||
$orders = ExchangeActions::select('order_code')
|
||||
->where('shift_id', $input['shift_id'])
|
||||
->groupBy('order_code')
|
||||
->get();
|
||||
foreach ($orders as $key => $order) {
|
||||
$actions = ExchangeActions::where('order_code', $order['order_code'])->where('shift_id', $input['shift_id'])->orderBy('time', 'asc')->get();
|
||||
$actions = ExchangeActions::where('order_code', $order['order_code'])
|
||||
->where('shift_id', $input['shift_id'])
|
||||
->orderBy('time', 'asc')
|
||||
->get();
|
||||
foreach ($actions as $key => $item) {
|
||||
if ($item['action_type'] == 31) {
|
||||
$merge_order = intval($item['value']);
|
||||
@@ -174,44 +164,69 @@ class GETDataReport extends HRCCommand implements HRCCommandInterface
|
||||
$merge_order_items_before = $merge_order_items['before']['items'];
|
||||
$merge_order_items_after = $merge_order_items['after']['items'];
|
||||
foreach ($merge_order_items_before as $key => $merge_order_item_before) {
|
||||
$merge_items_before[] = array('id' => $key + 1,
|
||||
$merge_items_before[] = array(
|
||||
'id' => $key + 1,
|
||||
'code' => $merge_order_item_before['id'],
|
||||
'name' => $merge_order_item_before['name'],
|
||||
'count' => $merge_order_item_before['count'],
|
||||
'sale_price' => $merge_order_item_before['sale_price']);
|
||||
'sale_price' => $merge_order_item_before['sale_price']
|
||||
);
|
||||
}
|
||||
foreach ($merge_order_items_after as $key => $merge_order_item_after) {
|
||||
$merge_items_after[] = array('id' => $key + 1,
|
||||
$merge_items_after[] = array(
|
||||
'id' => $key + 1,
|
||||
'code' => $merge_order_item_after['id'],
|
||||
'name' => $merge_order_item_after['name'],
|
||||
'count' => $merge_order_item_after['count'],
|
||||
'sale_price' => $merge_order_item_after['sale_price']);
|
||||
'sale_price' => $merge_order_item_after['sale_price']
|
||||
);
|
||||
}
|
||||
foreach ($merge_order_items_after as $key => $merge_order_item_after) {
|
||||
if (!in_array(array('id' => $key + 1,
|
||||
if (!in_array(array(
|
||||
'id' => $key + 1,
|
||||
'code' => $merge_order_item_after['id'],
|
||||
'name' => $merge_order_item_after['name'],
|
||||
'count' => $merge_order_item_after['count'],
|
||||
'sale_price' => $merge_order_item_after['sale_price']), $merge_items_before, true)) {
|
||||
$merged_items[] = array('code' => $merge_order_item_after['id'],
|
||||
'sale_price' => $merge_order_item_after['sale_price']), $merge_items_before, true)
|
||||
) {
|
||||
$merged_items[] = array(
|
||||
'code' => $merge_order_item_after['id'],
|
||||
'name' => $merge_order_item_after['name'],
|
||||
'count' => $merge_order_item_after['count'],
|
||||
'sale_price' => $merge_order_item_after['sale_price']);
|
||||
'sale_price' => $merge_order_item_after['sale_price']
|
||||
);
|
||||
}
|
||||
}
|
||||
foreach ($merged_items as $key => $merged_item) {
|
||||
$merge_items[] = array('id' => $key + 1,
|
||||
$merge_items[] = array(
|
||||
'id' => $key + 1,
|
||||
'code' => $merged_item['code'],
|
||||
'name' => $merged_item['name'],
|
||||
'count' => $merged_item['count'],
|
||||
'sale_price' => $merged_item['sale_price']);
|
||||
'sale_price' => $merged_item['sale_price']
|
||||
);
|
||||
}
|
||||
$staff_name = staffName($item['who']);
|
||||
$start_order_place = ExchangeActions::where('order_code', $item['order_code'])->where('action_type', 45)->where('shift_id', $input['shift_id'])->first();
|
||||
$staff_name = Staff::getName($item['who']);
|
||||
$start_order_place = ExchangeActions::where('order_code', $item['order_code'])
|
||||
->where('action_type', 45)
|
||||
->where('shift_id', $input['shift_id'])
|
||||
->first();
|
||||
$start_order_place = data_decode($start_order_place['value']);
|
||||
$end_order_place = ExchangeActions::where('order_code', $merge_order + 0)->where('action_type', 45)->where('shift_id', $input['shift_id'])->first();
|
||||
$end_order_place = ExchangeActions::where('order_code', $merge_order)
|
||||
->where('action_type', 45)
|
||||
->where('shift_id', $input['shift_id'])
|
||||
->first();
|
||||
$end_order_place = data_decode($end_order_place['value']);
|
||||
$merged_order_items[] = array('start_order' => $item['order_code'], 'end_order' => $merge_order + 0, 'time' => date('d.m.Y H:i:s', strtotime($item['time'])), 'staff' => $staff_name, 'start_order_place' => $start_order_place, 'end_order_place' => $end_order_place, 'merge_order_items' => $merge_order_items, 'items' => $merge_items);
|
||||
$merged_order_items[] = array(
|
||||
'start_order' => $item['order_code'],
|
||||
'end_order' => $merge_order,
|
||||
'time' => date('d.m.Y H:i:s', strtotime($item['time'])),
|
||||
'staff' => $staff_name,
|
||||
'start_order_place' => $start_order_place,
|
||||
'end_order_place' => $end_order_place,
|
||||
'merge_order_items' => $merge_order_items,
|
||||
'items' => $merge_items
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -227,11 +242,20 @@ class GETDataReport extends HRCCommand implements HRCCommandInterface
|
||||
//slice
|
||||
if ($reportType == 'slice') {
|
||||
$sliced_order_data = [];
|
||||
$orders = ExchangeActions::select('order_code')->where('shift_id', $input['shift_id'])->groupBy('order_code')->get();
|
||||
$action_count = ExchangeActions::where('shift_id', $input['shift_id'])->where('action_type', 35)->count();
|
||||
$orders = ExchangeActions::select('order_code')
|
||||
->where('shift_id', $input['shift_id'])
|
||||
->groupBy('order_code')
|
||||
->get();
|
||||
$action_count = ExchangeActions::where('shift_id', $input['shift_id'])
|
||||
->where('action_type', 35)
|
||||
->count();
|
||||
if ($action_count > 0) {
|
||||
foreach ($orders as $key => $order) {
|
||||
$actions = ExchangeActions::where('order_code', $order['order_code'])->where('shift_id', $input['shift_id'])->where('action_type', 35)->orderBy('time', 'asc')->get();
|
||||
$actions = ExchangeActions::where('order_code', $order['order_code'])
|
||||
->where('shift_id', $input['shift_id'])
|
||||
->where('action_type', 35)
|
||||
->orderBy('time', 'asc')
|
||||
->get();
|
||||
foreach ($actions as $key => $action) {
|
||||
$value = $action['value'];
|
||||
$codeOrder = $action['order_code'];
|
||||
@@ -240,19 +264,38 @@ class GETDataReport extends HRCCommand implements HRCCommandInterface
|
||||
} else {
|
||||
$moved_items = json_decode(utf8_encode(base64_decode($action['more'], TRUE)), true, JSON_INVALID_UTF8_SUBSTITUTE);
|
||||
}
|
||||
$from_place = ExchangeActions::where('order_code', $codeOrder)->where('action_type', 45)->where('shift_id', $input['shift_id'])->first();
|
||||
$from_place = ExchangeActions::where('order_code', $codeOrder)
|
||||
->where('action_type', 45)
|
||||
->where('shift_id', $input['shift_id'])
|
||||
->first();
|
||||
$from_place = data_decode($from_place['value']);
|
||||
$to_place = ExchangeActions::where('order_code', $value)->where('action_type', 45)->where('shift_id', $input['shift_id'])->first();
|
||||
$to_place = ExchangeActions::where('order_code', $value)
|
||||
->where('action_type', 45)
|
||||
->where('shift_id', $input['shift_id'])
|
||||
->first();
|
||||
$to_place = data_decode($to_place['value']);
|
||||
$to_action = ExchangeActions::where('value', $codeOrder)->where('order_code', $value)->where('action_type', 34)->where('shift_id', $input['shift_id'])->first();
|
||||
$to_action = ExchangeActions::where('value', $codeOrder)
|
||||
->where('order_code', $value)
|
||||
->where('action_type', 34)
|
||||
->where('shift_id', $input['shift_id'])
|
||||
->first();
|
||||
if (validate_json($to_action['more'])) {
|
||||
$start_data = json_decode(utf8_encode($to_action['more']), true, JSON_INVALID_UTF8_SUBSTITUTE);
|
||||
} else {
|
||||
$start_data = json_decode(utf8_encode(base64_decode($to_action['more'], TRUE)), true, JSON_INVALID_UTF8_SUBSTITUTE);
|
||||
}
|
||||
$staff_name = staffName($action['who']);
|
||||
$staff_name = Staff::getName($action['who']);
|
||||
$time = date('d.m.Y H:i:s', strtotime($action['time']));
|
||||
$sliced_order_data[] = array('from_order' => $codeOrder, 'from_place' => $from_place, 'staff' => $staff_name, 'time' => $time, 'start_data' => $start_data, 'to_order' => $value, 'to_place' => $to_place, 'moved_items' => $moved_items);
|
||||
$sliced_order_data[] = array(
|
||||
'from_order' => $codeOrder,
|
||||
'from_place' => $from_place,
|
||||
'staff' => $staff_name,
|
||||
'time' => $time,
|
||||
'start_data' => $start_data,
|
||||
'to_order' => $value,
|
||||
'to_place' => $to_place,
|
||||
'moved_items' => $moved_items
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -265,18 +308,35 @@ class GETDataReport extends HRCCommand implements HRCCommandInterface
|
||||
}
|
||||
|
||||
if ($reportType == 'move') {
|
||||
$orders = ExchangeActions::select('order_code')->where('shift_id', $input['shift_id'])->groupBy('order_code')->get();
|
||||
$orders = ExchangeActions::select('order_code')
|
||||
->where('shift_id', $input['shift_id'])
|
||||
->groupBy('order_code')
|
||||
->get();
|
||||
foreach ($orders as $key => $order) {
|
||||
$actions = ExchangeActions::where('order_code', $order['order_code'])->where('shift_id', $input['shift_id'])->orderBy('time', 'asc')->get();
|
||||
$actions = ExchangeActions::where('order_code', $order['order_code'])
|
||||
->where('shift_id', $input['shift_id'])
|
||||
->orderBy('time', 'asc')
|
||||
->get();
|
||||
foreach ($actions as $key => $item) {
|
||||
$moved_order_data = [];
|
||||
if ($item['action_type'] == 39) {
|
||||
$staff_name_to = staffName($item['who']);
|
||||
$staff_name_to = Staff::getName($item['who']);
|
||||
$time_to = date('d.m.Y H:i:s', strtotime($item['time']));
|
||||
$data_from = ExchangeActions::where('order_code', $item['order_code'])->where('shift_id', $input['shift_id'])->where('action_type', 45)->first();
|
||||
$staff_name_from = staffName($data_from['who']);
|
||||
$data_from = ExchangeActions::where('order_code', $item['order_code'])
|
||||
->where('shift_id', $input['shift_id'])
|
||||
->where('action_type', 45)
|
||||
->first();
|
||||
$staff_name_from = Staff::getName($data_from['who']);
|
||||
$time_from = date('d.m.Y H:i:s', strtotime($data_from['time']));
|
||||
$moved_order_data[] = array('order' => $item['order_code'], 'move_from' => data_decode($data_from['value']), 'move_from_staff' => $staff_name_from, 'move_from_time' => $time_from, 'move_to' => data_decode($item['value']), 'move_to_staff' => $staff_name_to, 'move_to_time' => $time_to);
|
||||
$moved_order_data[] = array(
|
||||
'order' => $item['order_code'],
|
||||
'move_from' => data_decode($data_from['value']),
|
||||
'move_from_staff' => $staff_name_from,
|
||||
'move_from_time' => $time_from,
|
||||
'move_to' => data_decode($item['value']),
|
||||
'move_to_staff' => $staff_name_to,
|
||||
'move_to_time' => $time_to
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -309,8 +369,8 @@ class GETDataReport extends HRCCommand implements HRCCommandInterface
|
||||
}
|
||||
$staff = array_unique($staff);
|
||||
foreach ($staff as $key => $value) {
|
||||
$staffId = $value + 0;
|
||||
$name = staffName($staffId);
|
||||
$staffId = intval($value);
|
||||
$name = Staff::getName($staffId);
|
||||
$code = $staffId;
|
||||
$countOpened = ExchangeOrders::where('who_open', $staffId)
|
||||
->where('shift_id', $input['shift_id'])
|
||||
@@ -398,11 +458,11 @@ class GETDataReport extends HRCCommand implements HRCCommandInterface
|
||||
}
|
||||
$staff_data[] = array(
|
||||
'name' => $name,
|
||||
'code' => $code + 0,
|
||||
'opened_count' => $countOpened + 0,
|
||||
'closed_count' => $countClosed,
|
||||
'opened_sum' => $sumOpened + 0,
|
||||
'closed_sum' => $sumClosed + 0,
|
||||
'code' => $code,
|
||||
'opened_count' => intval($countOpened),
|
||||
'closed_count' => intval($countClosed),
|
||||
'opened_sum' => floatval($sumOpened),
|
||||
'closed_sum' => floatval($sumClosed),
|
||||
'input_count' => $inputCount,
|
||||
'output_count' => $outputCount,
|
||||
'input_sum' => $inputSum,
|
||||
@@ -412,7 +472,8 @@ class GETDataReport extends HRCCommand implements HRCCommandInterface
|
||||
'return_count' => $returnCount,
|
||||
'return_sum' => round($returnSum, 2),
|
||||
'deleted_count' => $deletedCount,
|
||||
'deleted_sum' => $deletedSum);
|
||||
'deleted_sum' => $deletedSum
|
||||
);
|
||||
}
|
||||
return [
|
||||
'status' => 'success',
|
||||
@@ -448,8 +509,8 @@ class GETDataReport extends HRCCommand implements HRCCommandInterface
|
||||
}
|
||||
$staff = array_unique($staff);
|
||||
foreach ($staff as $key => $value) {
|
||||
$staffId = $value + 0;
|
||||
$name = staffName($staffId);
|
||||
$staffId = intval($value);
|
||||
$name = Staff::getName($staffId);
|
||||
$code = $staffId;
|
||||
$countOpened = ExchangeOrders::where('who_open', $staffId)
|
||||
->whereIn('shift_id', $shifts)
|
||||
@@ -534,7 +595,7 @@ class GETDataReport extends HRCCommand implements HRCCommandInterface
|
||||
}
|
||||
$staff_data[] = array(
|
||||
'name' => $name,
|
||||
'code' => intval($code),
|
||||
'code' => $code,
|
||||
'opened_count' => intval($countOpened),
|
||||
'closed_count' => intval($countClosed),
|
||||
'opened_sum' => floatval($sumOpened),
|
||||
@@ -548,7 +609,8 @@ class GETDataReport extends HRCCommand implements HRCCommandInterface
|
||||
'return_count' => $returnCount,
|
||||
'return_sum' => round($returnSum, 2),
|
||||
'deleted_count' => $deletedCount,
|
||||
'deleted_sum' => $deletedSum);
|
||||
'deleted_sum' => $deletedSum
|
||||
);
|
||||
}
|
||||
return [
|
||||
'status' => 'success',
|
||||
@@ -562,14 +624,23 @@ class GETDataReport extends HRCCommand implements HRCCommandInterface
|
||||
$deleted = [];
|
||||
if (isset($input['shift_id'])) {
|
||||
$shift_id = $input['shift_id'];
|
||||
$deleted_from_orders = ExchangeActions::select('order_code')->where('action_type', 5)->where('shift_id', $shift_id)->groupBy('order_code')->get();
|
||||
$deleted_from_orders = ExchangeActions::select('order_code')
|
||||
->where('action_type', 5)
|
||||
->where('shift_id', $shift_id)
|
||||
->groupBy('order_code')
|
||||
->get();
|
||||
foreach ($deleted_from_orders as $deleted_from_order) {
|
||||
$items = [];
|
||||
$order_id = $deleted_from_order['order_code'];
|
||||
//$count = ExchangeActions::where('action_type', 5)->where('shift_id', $shift_id)->where('order_code', $deleted_from_order['order_code'])->count();
|
||||
$deleted_items = ExchangeDeleted::where('shift_id', $shift_id)->where('order_code', $order_id)->get();
|
||||
$deleted_items = ExchangeDeleted::where('shift_id', $shift_id)
|
||||
->where('order_code', $order_id)
|
||||
->get();
|
||||
foreach ($deleted_items as $deleted_item) {
|
||||
$item_info = ExchangeActions::where('shift_id', $shift_id)->where('order_code', $deleted_item['order_code'])->where('action_type', 5)->where('order_position', $deleted_item['item_id'])->first();
|
||||
$item_info = ExchangeActions::where('shift_id', $shift_id)
|
||||
->where('order_code', $deleted_item['order_code'])
|
||||
->where('action_type', 5)
|
||||
->where('order_position', $deleted_item['item_id'])
|
||||
->first();
|
||||
$time = $item_info['time'];
|
||||
$who = Staff::getName($item_info['who']);
|
||||
$reason = Reasons::getName($item_info['reason']);
|
||||
@@ -579,24 +650,52 @@ class GETDataReport extends HRCCommand implements HRCCommandInterface
|
||||
$item_name = Dishes::getName($deleted_item['menu_code']);
|
||||
$total_count += $item_count;
|
||||
$total_sum += $item_count * $item_price;
|
||||
$items[] = array('dish_name' => $item_name, 'who' => $who, 'approved' => $approved, 'reason' => $reason, 'time' => $time, 'count' => $item_count, 'price' => $item_price, 'sum' => floatval($item_price * $item_count));
|
||||
$items[] = array(
|
||||
'dish_name' => $item_name,
|
||||
'who' => $who,
|
||||
'approved' => $approved,
|
||||
'reason' => $reason,
|
||||
'time' => $time,
|
||||
'count' => $item_count,
|
||||
'price' => $item_price,
|
||||
'sum' => floatval($item_price * $item_count)
|
||||
);
|
||||
}
|
||||
$deleted[] = array('order_code' => $order_id, 'shift_id' => $shift_id, 'items' => $items);
|
||||
$deleted[] = array(
|
||||
'order_code' => $order_id,
|
||||
'shift_id' => $shift_id,
|
||||
'items' => $items
|
||||
);
|
||||
}
|
||||
}
|
||||
if (isset($input['start_date']) && isset($input['end_date'])) {
|
||||
$end_date = date('Y-m-d H:i:s', strtotime($input['end_date']));
|
||||
$start_date = date('Y-m-d H:i:s', strtotime($input['start_date']));
|
||||
$deletedShifts = ExchangeActions::select('shift_id')->where('action_type', 5)->where('time', '>', $start_date)->where('time', '<', $end_date)->groupBy('shift_id')->get();
|
||||
$deletedShifts = ExchangeActions::select('shift_id')
|
||||
->where('action_type', 5)
|
||||
->where('time', '>', $start_date)
|
||||
->where('time', '<', $end_date)
|
||||
->groupBy('shift_id')
|
||||
->get();
|
||||
foreach ($deletedShifts as $deletedShift) {
|
||||
$shift_id = intval($deletedShift['shift_id']);
|
||||
$deleted_from_orders = ExchangeActions::select('order_code')->where('action_type', 5)->where('shift_id', $shift_id)->groupBy('order_code')->get();
|
||||
$deleted_from_orders = ExchangeActions::select('order_code')
|
||||
->where('action_type', 5)
|
||||
->where('shift_id', $shift_id)
|
||||
->groupBy('order_code')
|
||||
->get();
|
||||
foreach ($deleted_from_orders as $deleted_from_order) {
|
||||
$items = [];
|
||||
$order_id = $deleted_from_order['order_code'];
|
||||
$deleted_items = ExchangeDeleted::where('shift_id', $shift_id)->where('order_code', $order_id)->get();
|
||||
$deleted_items = ExchangeDeleted::where('shift_id', $shift_id)
|
||||
->where('order_code', $order_id)
|
||||
->get();
|
||||
foreach ($deleted_items as $deleted_item) {
|
||||
$item_info = ExchangeActions::where('shift_id', $shift_id)->where('order_code', $deleted_item['order_code'])->where('action_type', 5)->where('order_position', $deleted_item['item_id'])->first();
|
||||
$item_info = ExchangeActions::where('shift_id', $shift_id)
|
||||
->where('order_code', $deleted_item['order_code'])
|
||||
->where('action_type', 5)
|
||||
->where('order_position', $deleted_item['item_id'])
|
||||
->first();
|
||||
$time = $item_info['time'];
|
||||
$who = Staff::getName($item_info['who']);
|
||||
$reason = Reasons::getName($item_info['reason']);
|
||||
@@ -606,9 +705,22 @@ class GETDataReport extends HRCCommand implements HRCCommandInterface
|
||||
$item_name = Dishes::getName($deleted_item['menu_code']);
|
||||
$total_count += $item_count;
|
||||
$total_sum += $item_count * $item_price;
|
||||
$items[] = array('dish_name' => $item_name, 'who' => $who, 'approved' => $approved, 'reason' => $reason, 'time' => $time, 'count' => $item_count, 'price' => $item_price, 'sum' => floatval($item_price * $item_count));
|
||||
$items[] = array(
|
||||
'dish_name' => $item_name,
|
||||
'who' => $who,
|
||||
'approved' => $approved,
|
||||
'reason' => $reason,
|
||||
'time' => $time,
|
||||
'count' => $item_count,
|
||||
'price' => $item_price,
|
||||
'sum' => floatval($item_price * $item_count)
|
||||
);
|
||||
}
|
||||
$deleted[] = array('order_code' => $order_id, 'shift_id' => $shift_id, 'items' => $items);
|
||||
$deleted[] = array(
|
||||
'order_code' => $order_id,
|
||||
'shift_id' => $shift_id,
|
||||
'items' => $items
|
||||
);
|
||||
}
|
||||
}
|
||||
$report = new Report;
|
||||
|
||||
Reference in New Issue
Block a user