[Enhancement] AddressModel: Added 'id' parameter to getSqlFilter method
[Enhancement] PreorderModel: Added 'returnArray' parameter to reduce overhead [Refactor] DashboardController: Reworked getPartnerOrdersByStatus method
This commit is contained in:
@@ -250,30 +250,57 @@ class DashboardController extends mfBaseController {
|
||||
return $orders;
|
||||
//var_dump($orders);exit;
|
||||
}
|
||||
|
||||
|
||||
private function getPartnerOrdersByStatus($preordercampaign_id = [], $gemeinde_id = false) {
|
||||
$orders = [];
|
||||
|
||||
if($gemeinde_id) {
|
||||
|
||||
if ($gemeinde_id) {
|
||||
$preorders = PreorderModel::searchActive(["preordercampaign_id" => $preordercampaign_id, "gemeinde_id" => $gemeinde_id]);
|
||||
} else {
|
||||
$preorders = PreorderModel::searchActive(["preordercampaign_id" => $preordercampaign_id]);
|
||||
$preorders = PreorderModel::searchActive(["preordercampaign_id" => $preordercampaign_id], false, false, true);
|
||||
}
|
||||
|
||||
foreach($preorders as $preorder) {
|
||||
$name = $preorder->partner->getCompanyOrName();
|
||||
if(!$name) $name = "Kein Partner";
|
||||
if(!array_key_exists($name, $orders)) {
|
||||
|
||||
$preorderStatus = PreorderstatusModel::getAll();
|
||||
$preorderStatus = array_column($preorderStatus, null, 'id');
|
||||
|
||||
|
||||
$partners = [];
|
||||
// log add partnerids from preorders
|
||||
$parnerIDs = [];
|
||||
foreach ($preorders as $preorder) {
|
||||
if (!in_array($preorder->partner_id, $parnerIDs))
|
||||
$parnerIDs[] = $preorder->partner_id;
|
||||
}
|
||||
|
||||
foreach ($preorders as $preorder) {
|
||||
$partnerId = $preorder->partner_id;
|
||||
if (!array_key_exists($partnerId, $partners) && $partnerId !== null) {
|
||||
$partner = AddressModel::getFirst(["id" => $partnerId]);
|
||||
$partners[$partnerId] = $partner->getCompanyOrName();
|
||||
$name = $partners[$partnerId];
|
||||
} else if ($partnerId === null) {
|
||||
$name = "Kein Partner";
|
||||
} else {
|
||||
$name = $partners[$partnerId];
|
||||
}
|
||||
|
||||
if (!array_key_exists($name, $orders)) {
|
||||
$orders[$name] = [];
|
||||
$orders[$name]["total"] = 0;
|
||||
}
|
||||
if(!array_key_exists($preorder->status->id, $orders[$name])) {
|
||||
$orders[$name][$preorder->status->id] = 0;
|
||||
|
||||
$status_id = $preorder->status_id;
|
||||
$status_code = $preorderStatus[$status_id]->code;
|
||||
|
||||
if (!array_key_exists($preorder->status_id, $orders[$name])) {
|
||||
$orders[$name][$preorder->status_id] = 0;
|
||||
}
|
||||
$orders[$name][$preorder->status->id]++;
|
||||
|
||||
$orders[$name][$preorder->status_id]++;
|
||||
$orders[$name]["total"]++;
|
||||
}
|
||||
//var_dump($orders);exit;
|
||||
|
||||
|
||||
return $orders;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user