优化员工业绩
parent
0cc771f30e
commit
cd63ae1636
|
|
@ -2,6 +2,7 @@
|
|||
|
||||
namespace App\Admin\Controllers\Store;
|
||||
|
||||
use App\Admin\Renderable\Grid\Filter\OrderStatusIn;
|
||||
use App\Constants\OrderStatus;
|
||||
use App\Enums\PayWay;
|
||||
use App\Models\Store\{Store, Desk};
|
||||
|
|
@ -74,7 +75,9 @@ class OrderController extends AdminController
|
|||
$grid->column('profit_price')->display(fn () => bcdiv($this->total_amount + $this->point_discount_amount - $this->cost_price, 100, 2));
|
||||
$grid->column('user_coupon_id')->display(fn ($value) => $value ? data_get($this->userCoupon, 'coupon_name') . '(¥'.round($this->coupon_discount_amount/100, 2, PHP_ROUND_HALF_DOWN).')' : '');
|
||||
$grid->column('sales_value');
|
||||
$grid->column('order_status')->using($this->statusMap)->dot($this->statusColor);
|
||||
$grid->column('order_status')->using($this->statusMap)->dot($this->statusColor)->filter(
|
||||
OrderStatusIn::make($this->statusMap)
|
||||
);;
|
||||
$grid->column('created_at');
|
||||
$grid->column('pay_at');
|
||||
$grid->column('completed_at');
|
||||
|
|
@ -142,8 +145,8 @@ class OrderController extends AdminController
|
|||
OrderStatus::CANCELLED => '已取消'
|
||||
])->width(3);
|
||||
$filter->where('user_coupon_id', fn($q) => $this->input ? $q->whereNotNull('user_coupon_id') : $q->whereNull('user_coupon_id'))->select(['未使用', '已使用'])->width(3);
|
||||
$filter->between('completed_at')->dateTime()->width(6);
|
||||
$filter->where('pay_at', fn($q) => $this->input ? $q->whereNotNull('pay_at') : $q->whereNull('pay_at')->where('status', '!=', Order::STATUS_CANCELLED), '付款状态')->select(['待付款', '已付款'])->width(3);
|
||||
$filter->between('pay_at')->dateTime()->width(6);
|
||||
$filter->where('pay_status', fn($q) => $this->input ? $q->whereNotNull('pay_at') : $q->whereNull('pay_at')->where('status', '!=', Order::STATUS_CANCELLED), '付款状态')->select(['待付款', '已付款'])->width(3);
|
||||
});
|
||||
|
||||
$grid->footer(function ($collection) use ($grid) {
|
||||
|
|
|
|||
|
|
@ -44,6 +44,7 @@ class StaffPerformanceController extends AdminController
|
|||
DB::raw('COUNT(1) AS orders_count'),
|
||||
DB::raw('SUM(point_discount_amount) AS points_deduction_amount'),
|
||||
DB::raw('SUM(total_amount) AS payment_amount'),
|
||||
DB::raw('SUM(cost_price) AS cost_price'),
|
||||
DB::raw('SUM(profit) AS profit'),
|
||||
])
|
||||
->whereIn('status', [
|
||||
|
|
@ -91,6 +92,7 @@ class StaffPerformanceController extends AdminController
|
|||
DB::raw('online_performances.orders_count AS online_orders_count'),
|
||||
DB::raw('online_performances.points_deduction_amount AS online_points_deduction_amount'),
|
||||
DB::raw('online_performances.payment_amount AS online_payment_amount'),
|
||||
DB::raw('online_performances.cost_price AS online_cost_price'),
|
||||
DB::raw('online_performances.profit AS online_profit'),
|
||||
// 线下订单
|
||||
DB::raw('offline_performances.orders_count AS offline_orders_count'),
|
||||
|
|
@ -108,6 +110,7 @@ class StaffPerformanceController extends AdminController
|
|||
'online_total_amount',
|
||||
'online_points_deduction_amount',
|
||||
'online_payment_amount',
|
||||
'online_earnings',
|
||||
'online_profit',
|
||||
]);
|
||||
|
||||
|
|
@ -127,6 +130,7 @@ class StaffPerformanceController extends AdminController
|
|||
$grid->column('online_total_amount')->display(fn () => bcdiv($this->online_points_deduction_amount + $this->online_payment_amount, 100, 2));
|
||||
$grid->column('online_points_deduction_amount')->display(fn ($v) => bcdiv($v, 100, 2));
|
||||
$grid->column('online_payment_amount')->display(fn ($v) => bcdiv($v, 100, 2));
|
||||
$grid->column('online_earnings')->display(fn ($v) => bcdiv($this->online_points_deduction_amount + $this->online_payment_amount - $this->online_cost_price, 100, 2));
|
||||
$grid->column('online_profit')->display(fn ($v) => $v ?? '0.00');
|
||||
// 线下订单业绩
|
||||
$grid->column('offline_orders_count')->display(fn ($v) => (int) $v);
|
||||
|
|
@ -134,6 +138,9 @@ class StaffPerformanceController extends AdminController
|
|||
$grid->column('offline_points_deduction_amount')->display(fn ($v) => bcdiv($v, 100, 2));
|
||||
$grid->column('offline_payment_amount')->display(fn ($v) => bcdiv($v, 100, 2));
|
||||
|
||||
$grid->column('total_amount')->display(fn ($v) => bcdiv($this->online_points_deduction_amount + $this->online_payment_amount + $this->offline_points_deduction_amount + $this->offline_payment_amount, 100, 2));
|
||||
$grid->column('payment_amount')->display(fn ($v) => bcdiv($this->online_payment_amount + $this->offline_payment_amount, 100, 2));
|
||||
|
||||
$grid->disableRefreshButton();
|
||||
$grid->disableFilterButton();
|
||||
$grid->disableActions();
|
||||
|
|
@ -152,6 +159,7 @@ class StaffPerformanceController extends AdminController
|
|||
DB::raw('SUM(online_performances.orders_count) AS orders_count'),
|
||||
DB::raw('SUM(online_performances.points_deduction_amount) AS points_deduction_amount'),
|
||||
DB::raw('SUM(online_performances.payment_amount) AS payment_amount'),
|
||||
DB::raw('SUM(online_performances.cost_price) AS cost_price'),
|
||||
DB::raw('SUM(online_performances.profit) AS profit'),
|
||||
])
|
||||
->where('is_company', true);
|
||||
|
|
@ -177,11 +185,12 @@ class StaffPerformanceController extends AdminController
|
|||
});
|
||||
|
||||
$onlineResults = $onlineQuery->first();
|
||||
|
||||
$onlineOrdersCount = $onlineResults['orders_count'] ?? 0;
|
||||
$onlinePointsDeductionAmount = bcdiv($onlineResults['points_deduction_amount'] ?? 0, 100, 2);
|
||||
$onlinePaymentAmount = bcdiv($onlineResults['payment_amount'] ?? 0, 100, 2);
|
||||
$onlineTotalAmount = bcadd($onlinePointsDeductionAmount, $onlinePaymentAmount, 2);
|
||||
$onlineCostPrice = bcdiv($onlineResults['cost_price'] ?? 0, 100, 2);
|
||||
$onlineEarnings = bcsub($onlineTotalAmount, $onlineCostPrice, 2);
|
||||
$onlineProfit = $onlineResults['profit'] ?? 0;
|
||||
|
||||
$offlineResults = $offlineQuery->first();
|
||||
|
|
@ -199,6 +208,7 @@ class StaffPerformanceController extends AdminController
|
|||
<td>订单总额: $onlineTotalAmount</td>
|
||||
<td>积分抵扣: $onlinePointsDeductionAmount</td>
|
||||
<td>实付总额: $onlinePaymentAmount</td>
|
||||
<td>毛利总额: $onlineEarnings</td>
|
||||
<td>累计返利: $onlineProfit</td>
|
||||
<tr>
|
||||
<tr>
|
||||
|
|
@ -206,7 +216,7 @@ class StaffPerformanceController extends AdminController
|
|||
<td>订单数: $offlineOrdersCount</td>
|
||||
<td>订单总额: $offlineTotalAmount</td>
|
||||
<td>积分抵扣: $offlinePointsDeductionAmount</td>
|
||||
<td colspan="2">实付总额: $offlinePaymentAmount</td>
|
||||
<td colspan="3">实付总额: $offlinePaymentAmount</td>
|
||||
<tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
|
|
|||
|
|
@ -15,13 +15,16 @@ return [
|
|||
'online_total_amount' => '订单总额',
|
||||
'online_points_deduction_amount' => '积分抵扣',
|
||||
'online_payment_amount' => '实付金额',
|
||||
'online_profit' => '累计返利',
|
||||
'online_earnings' => '毛利',
|
||||
'online_profit' => '返利',
|
||||
'offline_order' => '线下订单',
|
||||
'offline_orders_count' => '订单数量',
|
||||
'offline_total_amount' => '订单总额',
|
||||
'offline_points_deduction_amount' => '积分抵扣',
|
||||
'offline_payment_amount' => '实付金额',
|
||||
'datetime' => '日期',
|
||||
'total_amount' => '总金额',
|
||||
'payment_amount' => '总实付',
|
||||
],
|
||||
'options' => [
|
||||
],
|
||||
|
|
|
|||
Loading…
Reference in New Issue