Исправлен пересчет весовых товаров в онлайн реализации
This commit is contained in:
miroman-afk
2023-08-15 10:54:39 +03:00
parent 468cb21e40
commit a7c1679d12
6 changed files with 76 additions and 34 deletions

View File

@@ -92,7 +92,6 @@ class GETDashboard extends HRCCommand implements HRCCommandInterface
} else { } else {
continue; continue;
} }
foreach ($order_items as $order_item) { foreach ($order_items as $order_item) {
$profit += $order_item['profit']; $profit += $order_item['profit'];
} }

View File

@@ -2416,13 +2416,22 @@ class GETDataReport extends HRCCommand implements HRCCommandInterface
if ($reportType == 'presales') { if ($reportType == 'presales') {
$code = Filesystem::GetCode($input['token']); $code = Filesystem::GetCode($input['token']);
$cache = Cache::get($code, 'shift', $input); if (isset($input['shift_id'])) {
$plugin = 'shift';
}
if (isset($input['start_date']) && isset($input['end_date'])) {
$plugin = 'report';
}
$cache = Cache::get($code, $plugin, $input);
if ($cache) { if ($cache) {
return $cache; return $cache;
} }
if (isset($input['shift_id'])) {
if (isset($input['shift_id'])) {
$collection = new Collection();
} }
if (isset($input['start_date']) && isset($input['end_date'])) { if (isset($input['start_date']) && isset($input['end_date'])) {
$end_date = date('Y-m-d H:i:s', strtotime($input['end_date'] . ' 23:59:59')); $end_date = date('Y-m-d H:i:s', strtotime($input['end_date'] . ' 23:59:59'));
$start_date = date('Y-m-d H:i:s', strtotime($input['start_date'] . ' 00:00:01')); $start_date = date('Y-m-d H:i:s', strtotime($input['start_date'] . ' 00:00:01'));
@@ -2436,6 +2445,14 @@ class GETDataReport extends HRCCommand implements HRCCommandInterface
} }
} }
$return = array(
'status' => 'success',
'data' => $collection
);
if (!$cache) {
$cache = Cache::store(strval($code), $plugin, $input, $return);
}
return $cache;
} }
} else { } else {
return [ return [

View File

@@ -0,0 +1,50 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class UpdateItemCountAndItemPriceInOrderItemsToFloatV2 extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::table('order_items', function (Blueprint $table) {
$table->decimal('item_price', $precision = 16, $scale = 2)->nullable()->change();
});
Schema::table('order_items', function (Blueprint $table) {
$table->decimal('item_count', $precision = 16, $scale = 3)->nullable()->change();
});
Schema::table('shift_online_items', function (Blueprint $table) {
$table->decimal('count', $precision = 16, $scale = 3)->nullable()->change();
});
Schema::table('shift_online_deleted', function (Blueprint $table) {
$table->decimal('count', $precision = 16, $scale = 3)->nullable()->change();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::table('order_items', function (Blueprint $table) {
$table->integer('item_price')->nullable()->change();
});
Schema::table('order_items', function (Blueprint $table) {
$table->integer('item_count')->nullable()->change();
});
Schema::table('shift_online_items', function (Blueprint $table) {
$table->decimal('count', $precision = 16, $scale = 2)->nullable()->change();
});
Schema::table('shift_online_deleted', function (Blueprint $table) {
$table->decimal('count', $precision = 16, $scale = 2)->nullable()->change();
});
}
}

View File

@@ -29,7 +29,7 @@ class ExchangeOrders extends Model
->first(); ->first();
$start_order_info[] = array( $start_order_info[] = array(
'code' => intval($start_order_item['more']), 'code' => intval($start_order_item['more']),
'count' => floatval($start_order_item['value']), 'count' => Base::tofloat($start_order_item['value']),
'sale_price' => $item['sale_price'], 'sale_price' => $item['sale_price'],
'special_price' => $item['special_price'] 'special_price' => $item['special_price']
); );

View File

@@ -26,7 +26,7 @@ class ShiftOnlineOrders extends Model
->first(); ->first();
$start_order_info[] = array( $start_order_info[] = array(
'code' => intval($start_order_item['more']), 'code' => intval($start_order_item['more']),
'count' => floatval($start_order_item['value']), 'count' => Base::tofloat($start_order_item['value']),
'sale_price' => $item['sale_price'], 'sale_price' => $item['sale_price'],
'special_price' => $item['special_price'] 'special_price' => $item['special_price']
); );
@@ -71,7 +71,6 @@ class ShiftOnlineOrders extends Model
} else { } else {
$end_order = $start_order_info; $end_order = $start_order_info;
} }
return $end_order; return $end_order;
} }
@@ -184,6 +183,7 @@ class ShiftOnlineOrders extends Model
if ($order_status == "Возвращен" || $order_status == "Возвращен частично") { if ($order_status == "Возвращен" || $order_status == "Возвращен частично") {
$returned_items = self::getReturnedItems($order['code']); $returned_items = self::getReturnedItems($order['code']);
Log::debug($returned_items);
foreach ($returned_items as $returned_item) { foreach ($returned_items as $returned_item) {
$returned_sum += round(abs($returned_item['sale_price']) * $returned_item['count'], 2); $returned_sum += round(abs($returned_item['sale_price']) * $returned_item['count'], 2);
$returned_count += $returned_item['count']; $returned_count += $returned_item['count'];
@@ -216,6 +216,7 @@ class ShiftOnlineOrders extends Model
foreach ($items as $key => $item) { foreach ($items as $key => $item) {
$realPrice = $item['real_price'] * $item['count'] * $item['cof']; $realPrice = $item['real_price'] * $item['count'] * $item['cof'];
$salePrice = $item['sale_price'] * $item['count']; $salePrice = $item['sale_price'] * $item['count'];
$specialPrice = $item['special_price'] * $item['count'];
if ($realPrice > 0) { if ($realPrice > 0) {
$discount = $salePrice / $realPrice; $discount = $salePrice / $realPrice;
$discount = (1 - $discount) * 100; $discount = (1 - $discount) * 100;
@@ -239,15 +240,13 @@ class ShiftOnlineOrders extends Model
'amount' => round($item['sale_price'] * $item['count'], 2), 'amount' => round($item['sale_price'] * $item['count'], 2),
'discount' => round($discount), 'discount' => round($discount),
'total_count' => floatval($item['count']), 'total_count' => floatval($item['count']),
'profit' => floatval($item['count']) * round($item['sale_price'], 2) - floatval($item['count']) * round($item['special_price'], 2) 'profit' => $salePrice - $specialPrice
); );
foreach ($deleted_items as $deleted_item) { foreach ($deleted_items as $deleted_item) {
if ($item['menu_code'] == $deleted_item['menu_code']) { if ($item['menu_code'] == $deleted_item['menu_code']) {
$order_info[$key]['deleted_count'] = $deleted_item['count']; $order_info[$key]['deleted_count'] = $deleted_item['count'];
$order_info[$key]['total_count'] = $order_info[$key]['total_count'] - $deleted_item['count']; $order_info[$key]['total_count'] = $order_info[$key]['total_count'] - $deleted_item['count'];
$order_info[$key]['deleted_sum'] = abs($deleted_item['sale_price']) * $deleted_item['count']; $order_info[$key]['deleted_sum'] = abs($deleted_item['sale_price']) * $deleted_item['count'];
$order_info[$key]['profit'] = $order_info[$key]['total_count'] * round($item['sale_price'], 2) - $order_info[$key]['total_count'] * round($item['special_price'], 2);
$deleted_count += $deleted_item['count']; $deleted_count += $deleted_item['count'];
$deleted_sum += abs($deleted_item['sale_price']) * $deleted_item['count']; $deleted_sum += abs($deleted_item['sale_price']) * $deleted_item['count'];
} }

View File

@@ -72,7 +72,7 @@
var timer = $interval(function () { var timer = $interval(function () {
$scope.currentDate = new Date(); $scope.currentDate = new Date();
}, 1000); }, 5000);
$scope.nextImage = function () { $scope.nextImage = function () {
$('.carousel').carousel('next'); $('.carousel').carousel('next');
@@ -83,7 +83,7 @@
//Автоматическое обновление данных //Автоматическое обновление данных
$scope.timerEnabled = false; $scope.timerEnabled = false;
$scope.timeRemaining = new Date(0, 0, 0, 0, 1, 0); $scope.timeRemaining = new Date(0, 0, 0, 0, 5, 0);
var updateTimer = null; var updateTimer = null;
$scope.toggleTimer = function () { $scope.toggleTimer = function () {
@@ -134,29 +134,6 @@
paging: false, paging: false,
info: false, info: false,
}; };
/* $scope.dtoptions = {
/!*dom: "lfBrtip",*!/
language: {
url: "https://cdn.datatables.net/plug-ins/1.13.3/i18n/ru.json",
},
autoWidth: true,
searching: true,
paging: false,
info: false,
aoColumns: [
{title: "#"},
{title: "Гость", visible: false},
{title: "Статус", className: "text-right"},
{title: "Открыт", className: "text-right"},
{title: "Закрыт", className: "text-right"},
{title: "Сумма, BYN", className: "text-right"}
]
/!*buttons: [
{text: 'Экспорт в PDF', className: 'md-btn md-raised m-b-sm blue', extend: 'pdf'},
]*!/
};*/
$scope.orders_closed = { $scope.orders_closed = {
percent: 0, percent: 0,
total: 0, total: 0,