WIP Dashboard & liezen bulk update

This commit is contained in:
Frank Schubert
2024-01-10 18:36:45 +01:00
parent 5a88b4fe64
commit 1c516c4b70
6 changed files with 31836 additions and 79 deletions

View File

@@ -1,7 +1,7 @@
<?php include(realpath(dirname(__FILE__)."/../../$mfLayoutPackage")."/header.php"); ?>
<!-- start page title -->
<div class="row">
<div class="row mb-0">
<div class="col-12">
<div class="page-title-box">
<div class="page-title-right">
@@ -10,18 +10,19 @@
<li class="breadcrumb-item active">Dashboard</li>
</ol>
</div>
<h4 class="page-title">Dashboard</h4>
</div>
</div>
</div>
<!-- end page title -->
<?php if(is_array($newss) && count($newss)): ?>
<h4>Neuigkeiten</h4>
<?php foreach($newss as $news): ?>
<div class="row">
<div class="row justify-content-center mt-0">
<div class="col-12 col-xl-10">
<h4>Neuigkeiten</h4>
<div class="card">
<div class="card-header bg-info text-white pt-1 pb-1" style="font-size: 1rem; font-weight: 400;">
<span><?=date("d.m.Y", $news->create)?>:</span>
@@ -42,6 +43,141 @@
</div>
<?php endforeach; ?>
<?php endif; ?>
<div class="row mt-4">
<div class="col-12">
<div class="card border-top-success">
<div class="card-body">
<div class="row mb-2">
<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>
</div>
<div class="row">
<div class="col-xl-3 col-lg-6">
<div class="card widget-flat no-shadow">
<div class="card-body p-0 bg-danger">
<div class="p-3 pb-0">
<div class="float-right">
<i class="mdi mdi-cart text-white widget-icon"></i>
</div>
<h5 class="text-white font-weight-normal mt-0">Bestellungen</h5>
<h3 class="mt-2 text-white"><?=$count_orders?> / <?=$max_connections?></h3>
</div>
<div id="sparkline1"></div>
</div> <!-- end card-body-->
</div> <!-- end card-->
</div> <!-- end col-->
<div class="col-xl-3 col-lg-6">
<div class="card widget-flat no-shadow">
<div class="card-body p-0 bg-primary">
<div class="p-3 pb-0">
<div class="float-right">
<i class="mdi mdi-cart text-white widget-icon"></i>
</div>
<h5 class="text-white font-weight-normal mt-0">Status BEP Installed (244, SD)</h5>
<h3 class="mt-2 text-white"><?=$status_connected_single?> / <?=$count_orders?></h3>
</div>
<div id="sparkline1"></div>
</div> <!-- end card-body-->
</div> <!-- end card-->
</div> <!-- end col-->
<div class="col-xl-3 col-lg-6">
<div class="card widget-flat no-shadow">
<div class="card-body p-0 bg-info">
<div class="p-3 pb-0">
<div class="float-right">
<i class="mdi mdi-cart text-white widget-icon"></i>
</div>
<h5 class="text-white font-weight-normal mt-0">Status OTO Installed (245, MD)</h5>
<h3 class="mt-2 text-white"><?=$status_connected_multi?> / <?=$count_orders?></h3>
</div>
<div id="sparkline1"></div>
</div> <!-- end card-body-->
</div> <!-- end card-->
</div> <!-- end col-->
<div class="col-xl-3 col-lg-6">
<div class="card widget-flat no-shadow">
<div class="card-body p-0 bg-warning">
<div class="p-3 pb-0">
<div class="float-right">
<i class="mdi mdi-cart text-dark widget-icon"></i>
</div>
<h5 class="text-dark font-weight-normal mt-0">Aktive Anschlüsse</h5>
<h3 class="mt-2 text-dark"><?=$status_connected?> / <?=$count_orders?></h3>
</div>
<div id="sparkline1"></div>
</div> <!-- end card-body-->
</div> <!-- end card-->
</div> <!-- end col-->
</div>
<div class="row mt-2">
<div class="col-lg">
<h4 class="card-title">Kunden pro Provider</h4>
<div class="row">
<?php if(1): ?>
<div class="col-lg-7">
<canvas id="partner-chart" height="200"></canvas>
</div>
<div class="col-lg-5">
<table>
</table>
</div>
<?php else: ?>
<i>Keine Aktiven Anschlüsse</i>
<?php endif; ?>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<script type="text/javascript">
$(document).ready(function() {
$("#campaign_id").select2({
});
$("#campaign_id").change(function() {
var cid = parseInt($(this).val());
<?php if($campaign_id): ?>
if(cid == <?=$campaign_id?>) {
return;
}
<?php endif; ?>
if(cid > 0) {
location.href="<?=self::getUrl("Dashboard")?>?campaign_id=" + cid;
} else {
location.href="<?=self::getUrl("Dashboard")?>";
}
});
});
</script>
<?php include(realpath(dirname(__FILE__)."/../../$mfLayoutPackage")."/footer.php"); ?>

View File

@@ -11,6 +11,8 @@ class DashboardController extends mfBaseController {
}
protected function indexAction() {
if($this->me->is("preorderfront")) {
$this->redirect("Preorder");
}
@@ -21,44 +23,83 @@ class DashboardController extends mfBaseController {
$newss = NewsModel::getAll();
$this->layout()->set("newss", $newss);
if($this->me->is(["Admin", "netowner", "salespartner"]) || $this->me->can("Preorder")) {
return $this->dashboardAction();
}
}
protected function testAction() {
var_dump(ADBWohneinheitModel::count(["hausnummer_id" => 1772369]));
exit;
}
protected function colorAction() {
protected function dashboardAction() {
$r = $this->request;
foreach(TT_CABLE_COLORS as $name => $color) {
if(!$color['two-color']) continue;
$hex = $color['hex'];
$hexfg = $color['hexfg'];
$hex2 = $color['hex2'];
$hexfg2 = $color['hexfg2'];
$r = $color['r'];
$g = $color['g'];
$b = $color['b'];
$r2 = $color['r2'];
$g2 = $color['g2'];
$b2 = $color['b2'];
$class = ".btn-outline-".$name." {
color: #$hexfg;
border-left-color: #$hex;
border-top-color: #$hex;
border-right-color: #$hex2;
border-bottom-color: #$hex2;
background: linear-gradient(90deg, rgba($r,$g,$b,.5) 0%, rgba($r,$g,$b,.5) 50%, rgba($r2,$g2,$b2,.5) 50%, rgba($r2,$g2,$b2,.5) 100%);
}";
echo "<pre>$class</pre>\n";
$campaign_ids = $r->campaign_id;
if($campaign_ids && !is_array($campaign_ids)) {
$campaign_ids = [$campaign_ids];
}
exit;
if($this->me->is("Admin")) {
$campaigns = PreordercampaignModel::getAll();
if(!$campaign_ids) {
foreach(PreordercampaignModel::getAll() as $campaign) {
$campaign_ids[] = $campaign->id;
}
}
$max_connections = $this->getTotalHomes($campaign_ids);
$count_orders = PreorderModel::count(["preordercampaign_id" => $campaign_ids, "deleted" => 0]);
$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]);
} else {
$campaigns = PreordercampaignModel::search(["owner_id" => $this->me->address_id]);
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]);
$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]);
}
$this->layout()->set("max_connections", $max_connections);
$this->layout()->set("count_orders", $count_orders);
$this->layout()->set("status_connected_single", $status_connected_single);
$this->layout()->set("status_connected_multi", $status_connected_multi);
$this->layout()->set("status_connected", $status_connected);
$this->layout()->set("campaigns", $campaigns);
$this->layout()->set("campaign_id", $r->campaign_id);
}
private function getTotalHomes($preordercampaign_id = []) {
$total_homes = 0;
foreach($preordercampaign_id as $campaign_id) {
$campaign = new Preordercampaign($campaign_id);
if($campaign->id) {
$total_homes += $campaign->total_homes;
}
}
return $total_homes;
}
protected function pdfAction() {
$order = new Order(7);
$owner = new Address(1);

View File

@@ -84,6 +84,11 @@ h1, h2, h3, h4, h5, h6 {
border-color: #f0f0f0;
box-shadow: 3px 3px 2px #a0a0a0;
}
.card.no-shadow {
box-shadow: none;
}
.card.border-top-primary {
border-top: 2px solid #007bff;
}

View File

@@ -135,11 +135,13 @@ foreach($clustersResponse->item as $cluster) {
$hausnummer = $AddressHelper->findAddressFromRimoBuilding($building);
if(!$hausnummer) {
echo "Adresse nicht gefunden: $rimo_building_id\n";
continue;
}
foreach($building->homes->item as $home) {
print_r($home);exit;
}
/*foreach($building->homes->item as $home) {
var_dump($home->ftus->item);exit;
}*/
//exit;
}

View File

@@ -19,7 +19,7 @@ $freigabe_default = json_encode(["order", "reorder"]);
$me = new User(1);
$folder = __DIR__."/import/";
$csvname = "Adressendatensatz_Update-RMLI_2023-03-02.csv";
$csvname = "Adressendatensatz_Update_RMLI-2024-01-04_final.csv";
$filename = $folder.$csvname;
$db = FronkDB::singleton(ADDRESSDB_DBHOST, ADDRESSDB_DBUSER, ADDRESSDB_DBPASS, ADDRESSDB_DBNAME);
@@ -45,27 +45,31 @@ while($csv = fgetcsv($input, 0, ",")) {
$hausnummer_extref = trim($csv[1]);
$adrcd = trim($csv[2]);
$oaid = trim($csv[3]);
$netzgebiet_extref = trim($csv[4]);
$netzgebiet_name = trim($csv[5]);
$gkz = trim($csv[6]);
$gem_name = trim($csv[7]);
$okz = trim($csv[8]);
$ort_name = trim($csv[9]);
$plz_string = trim($csv[10]);
$skz = trim($csv[11]);
$strasse_name = trim($csv[12]);
$hausnummer_string = trim($csv[13]);
$grund_nr = trim($csv[14]);
$status_code = trim($csv[4]);
$status_name = trim($csv[5]);
$netzgebiet_extref = trim($csv[6]);
$netzgebiet_name = trim($csv[7]);
$gkz = trim($csv[8]);
$gem_name = trim($csv[9]);
$okz = trim($csv[10]);
$ort_name = trim($csv[11]);
$plz_string = trim($csv[12]);
$skz = trim($csv[13]);
$strasse_name = trim($csv[14]);
$hausnummer_string = trim($csv[15]);
$grund_nr = trim($csv[16]);
//gps_long, gps_lat
$rollout_time = trim($csv[17]);
$rollout_info = trim($csv[18]);
//$freigabe = trim($csv[19])
$unit_count = trim($csv[20]);
$gps_lat = trim($csv[17]);
$gps_long = trim($csv[18]);
$rollout_time = trim($csv[19]);
$rollout_info = trim($csv[20]);
//$freigabe = trim($csv[21])
$unit_count = trim($csv[22]);
$gdaeigenschaft = trim($csv[21]);
$meridian = trim($csv[22]);
$rw = trim($csv[23]);
$hw = trim($csv[24]);
$gdaeigenschaft = trim($csv[23]);
$meridian = trim($csv[24]);
$rw = trim($csv[25]);
$hw = trim($csv[26]);
/*
$adrcd = trim($csv[0]);
@@ -87,8 +91,8 @@ while($csv = fgetcsv($input, 0, ",")) {
//$long = str_replace(",",".",trim($csv[8]));
if(!is_numeric($adrcd) || !is_numeric($hausnummer_id)) {
die("Invalid adrcd or hausnummer_id\n");
if(!is_numeric($hausnummer_id)) {
die("Invalid hausnummer_id '$hausnummer_id'\n");
}
if(!strlen($hausnummer_string) || !strlen($strasse_name)) {
@@ -99,9 +103,9 @@ while($csv = fgetcsv($input, 0, ",")) {
die("!! Konnte Adresse nicht parsen\n");
}
if(!$hausnummer_extref) {
die("!!! Keine Hausnummer Extref\n");
}
/*if(!$hausnummer_extref) {
die("!!! $hausnummer_id Keine Hausnummer Extref\n");
}*/
if(!$netzgebiet_extref) {
die("!!! Keine Netzgebiet Extref\n");
@@ -119,59 +123,71 @@ while($csv = fgetcsv($input, 0, ",")) {
$updates = [];
if($existing_hausnummer->netzgebiet->extref != $netzgebiet_extref) {
echo "$hausnummer_id: netzgebiet '".$existing_hausnummer->netzgebiet->name."' => '$netzgebiet_name'\n";
echo "$hausnummer_id - netzgebiet '".$existing_hausnummer->netzgebiet->name."' => '$netzgebiet_name'\n";
$updates[] = "netzgebiet";
}
if($existing_hausnummer->strasse->name != $strasse_name) {
echo "$hausnummer_id: strasse '".$existing_hausnummer->strasse->name."' => '$strasse_name'\n";
echo "$hausnummer_id - strasse '".$existing_hausnummer->strasse->name."' => '$strasse_name'\n";
$updates[] = "strasse";
}
if($existing_hausnummer->strasse->gemeinde->name != $gem_name) {
echo "$hausnummer_id: gemeinde '".$existing_hausnummer->strasse->gemeinde->name."' => '$gem_name'\n";
echo "$hausnummer_id - gemeinde '".$existing_hausnummer->strasse->gemeinde->name."' => '$gem_name'\n";
$updates[] = "gemeinde";
}
if($existing_hausnummer->hausnummer != $hausnummer_string) {
echo "$hausnummer_id: hausnummer '".$existing_hausnummer->hausnummer."' => '$hausnummer_string'\n";
echo "$hausnummer_id - hausnummer '".$existing_hausnummer->hausnummer."' => '$hausnummer_string'\n";
$updates[] = "hausnummer";
}
if($existing_hausnummer->grund_nr != $grund_nr) {
echo "$hausnummer_id - grund_nr '".$existing_hausnummer->grund_nr."' => '$grund_nr'\n";
$updates[] = "grund_nr";
}
if($existing_hausnummer->gps_lat!= $gps_lat) {
echo "$hausnummer_id - gps_lat '".$existing_hausnummer->gps_lat."' => '$gps_lat'\n";
$updates[] = "gps_lat";
}
if($existing_hausnummer->gps_long!= $gps_long) {
echo "$hausnummer_id - gps_long '".$existing_hausnummer->gps_long."' => '$gps_long'\n";
$updates[] = "gps_long";
}
if($existing_hausnummer->ortschaft->name != $ort_name) {
echo "$hausnummer_id: ortschaft '".$existing_hausnummer->ortschaft->name."' => '$ort_name'\n";
echo "$hausnummer_id - ortschaft '".$existing_hausnummer->ortschaft->name."' => '$ort_name'\n";
$updates[] = "ortschaft";
}
if($existing_hausnummer->plz->plz != $plz_string) {
echo "$hausnummer_id: plz '".$existing_hausnummer->plz->plz."' => '$plz_string'\n";
echo "$hausnummer_id - plz '".$existing_hausnummer->plz->plz."' => '$plz_string'\n";
$updates[] = "plz";
}
if($existing_hausnummer->rollout != $rollout_time) {
echo "$hausnummer_id: rollout '".$existing_hausnummer->rollout."' => '$rollout_time'\n";
echo "$hausnummer_id - rollout '".$existing_hausnummer->rollout."' => '$rollout_time'\n";
$updates[] = "rollout";
}
if($existing_hausnummer->rollout_info != $rollout_info) {
echo "$hausnummer_id: rollout_info '".$existing_hausnummer->rollout_info."' => '$rollout_info'\n";
echo "$hausnummer_id - rollout_info '".$existing_hausnummer->rollout_info."' => '$rollout_info'\n";
$updates[] = "rollout_info";
}
if($existing_hausnummer->unit_count != $unit_count) {
echo "$hausnummer_id: unit_count '".$existing_hausnummer->unit_count."' => '$unit_count'\n";
echo "$hausnummer_id - unit_count '".$existing_hausnummer->unit_count."' => '$unit_count'\n";
$updates[] = "unit_count";
}
if($existing_hausnummer->gdaeigenschaft != $gdaeigenschaft) {
echo "$hausnummer_id: gdaeigenschaft '".$existing_hausnummer->gdaeigenschaft."' => '$gdaeigenschaft'\n";
echo "$hausnummer_id - gdaeigenschaft '".$existing_hausnummer->gdaeigenschaft."' => '$gdaeigenschaft'\n";
$updates[] = "gdaeigenschaft";
}
if($existing_hausnummer->meridian != $meridian) {
echo "$hausnummer_id: meridian '".$existing_hausnummer->meridian."' => '$meridian'\n";
echo "$hausnummer_id - meridian '".$existing_hausnummer->meridian."' => '$meridian'\n";
$updates[] = "meridian";
}
if($existing_hausnummer->rw != $rw) {
echo "$hausnummer_id: rw '".$existing_hausnummer->rw."' => '$rw'\n";
echo "$hausnummer_id - rw '".$existing_hausnummer->rw."' => '$rw'\n";
$updates[] = "rw";
}
if($existing_hausnummer->hw != $hw) {
echo "$hausnummer_id: hw '".$existing_hausnummer->hw."' => '$hw'\n";
echo "$hausnummer_id - hw '".$existing_hausnummer->hw."' => '$hw'\n";
$updates[] = "hw";
}
//continue;
continue;
if(!count($updates)) {
continue;
@@ -207,6 +223,16 @@ while($csv = fgetcsv($input, 0, ",")) {
}
}
if(in_array("grund_nr", $updates)) {
$existing_hausnummer->grund_nr = $grund_nr;
}
if(in_array("gps_lat", $updates)) {
$existing_hausnummer->gps_lat = $gps_lat;
}
if(in_array("gps_long", $updates)) {
$existing_hausnummer->gps_long = $gps_long;
}
if(in_array("rollout", $updates) || in_array("rollout_info", $updates)) {
$new_rollout = false;
$new_rollout_info = false;

File diff suppressed because it is too large Load Diff