$counts["orders_all"] = (new Orders())->ofProject($project_id)->count();
// 待处理
$counts["orders_pending"] = (new Orders())->ofProject($project_id)->whereIn("status", [Orders::STATUS_UNCONFIRMED, Orders::STATUS_UNASSIGNED])->count();
// 在陪患者
$counts["orders_ongoing"] = (new Orders())->ofProject($project_id)->where("status", Orders::STATUS_ONGOING)->count();
// 日派工
$counts["orders_ongoing_in_today"] = (new Orders())->ofProject($project_id)
->where("status", Orders::STATUS_ONGOING)
->whereRaw("DATEDIFF(`from_date`,now()) = 0")
->count();
// 已完成
$counts["orders_finished"] = (new Orders())->ofProject($project_id)->where("status", Orders::STATUS_FINISHED)->count();
// 日结算
$counts["orders_finished_in_today"] = (new Orders())->ofProject($project_id)
->where("status", Orders::STATUS_FINISHED)
->whereRaw("DATEDIFF(`to_date`,now()) = 0")
->count();
// 护工数量
$counts["paramedics"] = (new Paramedic())->ofProject($project_id)->count();
// 今日应收
$counts["bill_today"] = (new OrderItems())->where("service_date", date("Y-m-d"))->whereHas("order", function ($query) use ($project_id) {
$query->ofProject($project_id);
})->sum("total");
// 今日退款
$counts["refund_today"] = (new Refund())->whereNotNull("paid_at")->whereRaw("DATEDIFF(`paid_at`,now()) = 0")->whereHas("order", function ($query) use ($project_id) {
$query->ofProject($project_id);
})->sum("money");
// 在岗护工
$counts["paramedic_has_order"] = (new Paramedic())->ofProject($project_id)->whereHas("orders", function ($query) {
$query->where("status", Orders::STATUS_ONGOING);
})->count();
// 各产品占比
$allMontn = [
date("Y") . '-01',
date("Y") . '-02',
date("Y") . '-03',
date("Y") . '-04',
date("Y") . '-05',
date("Y") . '-06',
date("Y") . '-07',
date("Y") . '-08',
date("Y") . '-09',
date("Y") . '-10',
date("Y") . '-11',
date("Y") . '-12',
];
// 销售额
$saleList = [];
foreach ($allMontn as $month) {
$saleList[] = [
'month' => $month,
'total' => (new OrderItems())->where("service_date", $month)->whereHas("order", function ($query) use ($project_id) {
$query->ofProject($project_id);
})->sum("total")
];
}
// 订单量
$orderList = [];
foreach ($allMontn as $month) {
$orderList[] = [
'month' => $month,
'total' => (new Orders())->ofProject($project_id)->where('created_at', 'like', $month . '%')->count()