Preorder statistics update
This commit is contained in:
@@ -144,7 +144,7 @@
|
||||
</div>
|
||||
<div class="float-right">
|
||||
<a class="btn btn-primary mb-2" href="<?=self::getUrl("AddressDB", "add")?>"><i class="fas fa-plus"></i> Neue Adresse anlegen</a>
|
||||
<a class="btn btn-outline-violett mb-2" href="#" onclick="return false;"><i class="fas fa-marker"></i> Bulk update</a>
|
||||
<!--a class="btn btn-outline-violett mb-2" href="#" onclick="return false;"><i class="fas fa-marker"></i> Bulk update</a-->
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
@@ -69,18 +69,43 @@ $chartColors = [
|
||||
<h4 class="card-title">Akquise Statistiken</h4>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<div class="row mb-2">
|
||||
<div class="row">
|
||||
<div class="col">
|
||||
<label for="campaign_id">Kampagne:</label>
|
||||
<select name="campaign_id" id="campaign_id" class="form-control">
|
||||
<option value="0">Alle</option>
|
||||
<?php foreach($campaigns as $c): ?>
|
||||
<option value="<?=$c->id?>" <?=($c->id == $campaign_id) ? 'selected="selected"' : ""?>><?=$c->name?></option>
|
||||
<?php endforeach; ?>
|
||||
</select>
|
||||
<div class="card">
|
||||
<div class="card-body">
|
||||
|
||||
<?php if($me->is("Admin")): ?>
|
||||
<h5 class="mt-3">Netzinhaber:</h5>
|
||||
<div class="row mb-2">
|
||||
<div class="col-3 pb-1">
|
||||
<a href="<?=self::getUrl("Dashboard")?>" class="form-control btn btn-rounded <?=(!$netowner_id) ? "btn-primary" : "btn-outline-primary"?>">Alle</a>
|
||||
</div>
|
||||
<?php foreach(AddressModel::search(["addresstype" => ["netowner"]]) as $netowner): ?>
|
||||
<div class="col-3 pb-1">
|
||||
<?php if($netowner_id == $netowner->id): ?>
|
||||
<a href="<?=self::getUrl("Dashboard")?>" class="form-control btn btn-rounded btn-primary"><?=$netowner->getCompanyOrName()?></a>
|
||||
<?php else: ?>
|
||||
<a href="<?=self::getUrl("Dashboard", "", ["netowner_id" => $netowner->id])?>" class="form-control btn btn-rounded btn-outline-primary"><?=$netowner->getCompanyOrName()?></a>
|
||||
<?php endif; ?>
|
||||
</div>
|
||||
<?php endforeach; ?>
|
||||
</div>
|
||||
<?php endif; ?>
|
||||
|
||||
<label for="campaign_id">Kampagne:</label>
|
||||
<select name="campaign_id" id="campaign_id" class="form-control">
|
||||
<option value="0">Alle</option>
|
||||
<?php foreach($campaigns as $c): ?>
|
||||
<option value="<?=$c->id?>" <?=($c->id == $campaign_id) ? 'selected="selected"' : ""?>><?=$c->name?></option>
|
||||
<?php endforeach; ?>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="row">
|
||||
<div class="col-xl-3 col-lg-6">
|
||||
<div class="card">
|
||||
|
||||
@@ -39,50 +39,51 @@ class DashboardController extends mfBaseController {
|
||||
$campaign_ids = [$campaign_ids];
|
||||
}
|
||||
|
||||
|
||||
$netowner_id = intval($r->netowner_id);
|
||||
$this->layout()->set("netowner_id", $netowner_id);
|
||||
|
||||
if($this->me->is("Admin")) {
|
||||
$campaigns = PreordercampaignModel::getAll();
|
||||
if($netowner_id) {
|
||||
$campaigns = PreordercampaignModel::search(["owner_id" => $netowner_id]);
|
||||
} else {
|
||||
$campaigns = PreordercampaignModel::getAll();
|
||||
}
|
||||
|
||||
if(!$campaign_ids) {
|
||||
foreach(PreordercampaignModel::getAll() as $campaign) {
|
||||
$campaign_filter = [];
|
||||
if($netowner_id) {
|
||||
$campaign_filter['owner_id'] = $netowner_id;
|
||||
}
|
||||
foreach(PreordercampaignModel::search($campaign_filter) as $campaign) {
|
||||
$campaign_ids[] = $campaign->id;
|
||||
}
|
||||
}
|
||||
|
||||
$max_connections = $this->getTotalHomes($campaign_ids);
|
||||
$count_orders = PreorderModel::count(["preordercampaign_id" => $campaign_ids, "deleted" => 0]);
|
||||
$weekly_orders = $this->getWeeklyOrders($campaign_ids);
|
||||
|
||||
$status_connected_single = PreorderModel::count(["preordercampaign_id" => $campaign_ids, "deleted" => 0, "status_code" => 244]);
|
||||
$status_connected_multi = PreorderModel::count(["preordercampaign_id" => $campaign_ids, "deleted" => 0, "status_code" => 245]);
|
||||
|
||||
$status_connected = PreorderModel::count(["preordercampaign_id" => $campaign_ids, "deleted" => 0, "status_code" => 500]);
|
||||
|
||||
$partner_orders = $this->getPartnerOrderCount($campaign_ids);
|
||||
$partner_orders_by_status = $this->getPartnerOrdersByStatus($campaign_ids);
|
||||
} else {
|
||||
$campaigns = PreordercampaignModel::search(["owner_id" => $this->me->address_id]);
|
||||
|
||||
$campaign_filter = ["preordercampaign_id" => $campaign_ids];
|
||||
if(!$campaign_ids) {
|
||||
foreach(PreordercampaignModel::search(["owner_id" => $this->me->address_id]) as $campaign) {
|
||||
$campaign_ids[] = $campaign->id;
|
||||
}
|
||||
}
|
||||
|
||||
$max_connections = $this->getTotalHomes($campaign_ids);
|
||||
$count_orders = PreorderModel::count(["preordercampaign_id" => $campaign_ids, "deleted" => 0]);
|
||||
$weekly_orders = $this->getWeeklyOrders($campaign_ids);
|
||||
|
||||
$status_connected_single = PreorderModel::count(["preordercampaign_id" => $campaign_ids, "deleted" => 0, "status_code" => 244]);
|
||||
$status_connected_multi = PreorderModel::count(["preordercampaign_id" => $campaign_ids, "deleted" => 0, "status_code" => 245]);
|
||||
|
||||
$status_connected = PreorderModel::count(["preordercampaign_id" => $campaign_ids, "deleted" => 0, "status_code" => 500]);
|
||||
|
||||
$partner_orders = $this->getPartnerOrderCount($campaign_ids);
|
||||
$partner_orders_by_status = $this->getPartnerOrdersByStatus($campaign_ids);
|
||||
}
|
||||
|
||||
if(!$campaign_ids) {
|
||||
$campaign_ids = [0];
|
||||
}
|
||||
|
||||
$max_connections = $this->getTotalHomes($campaign_ids);
|
||||
$count_orders = PreorderModel::count(["preordercampaign_id" => $campaign_ids, "deleted" => 0]);
|
||||
$weekly_orders = $this->getWeeklyOrders($campaign_ids);
|
||||
|
||||
$status_connected_single = PreorderModel::count(["preordercampaign_id" => $campaign_ids, "deleted" => 0, "status_code" => 244]);
|
||||
$status_connected_multi = PreorderModel::count(["preordercampaign_id" => $campaign_ids, "deleted" => 0, "status_code" => 245]);
|
||||
|
||||
$status_connected = PreorderModel::count(["preordercampaign_id" => $campaign_ids, "deleted" => 0, "status_code" => 500]);
|
||||
|
||||
$partner_orders = $this->getPartnerOrderCount($campaign_ids);
|
||||
$partner_orders_by_status = $this->getPartnerOrdersByStatus($campaign_ids);
|
||||
|
||||
$total_orders = $partner_orders["total"];
|
||||
unset($partner_orders["total"]);
|
||||
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
class Preorder extends mfBaseModel {
|
||||
protected $forcestr = ['street','company','zip','phone','email','note'];
|
||||
private $in_after_save = false;
|
||||
private $in_after_save = 0;
|
||||
|
||||
private $status;
|
||||
private $campaign;
|
||||
@@ -38,7 +38,7 @@ class Preorder extends mfBaseModel {
|
||||
|
||||
// prevent potential infinite loop
|
||||
if($this->in_after_save) return true;
|
||||
$this->in_after_save = true;
|
||||
$this->in_after_save++;
|
||||
// update preorder OAID if it's different from the unit OAID
|
||||
// but only if the unit OAID is of the same origin as the campaign
|
||||
$old_oaid = $this->oaid;
|
||||
@@ -52,6 +52,8 @@ class Preorder extends mfBaseModel {
|
||||
$this->cascadeStatus();
|
||||
// Cascade status changes down all active preorders with the same hausnummer
|
||||
$this->cascadeStatusToPreorders();
|
||||
|
||||
$this->in_after_save--;
|
||||
}
|
||||
|
||||
/*
|
||||
|
||||
Reference in New Issue
Block a user