110 lines
4.3 KiB
PHP
110 lines
4.3 KiB
PHP
<?php
|
|
|
|
class WarehouseAdministrationController extends mfBaseController {
|
|
private User $me;
|
|
|
|
protected function init(): void {
|
|
$me = new User();
|
|
$me->loadMe();
|
|
$this->layout()->set("me", $me);
|
|
$this->me = $me;
|
|
|
|
if (!$this->me->isAdmin()) {
|
|
$this->redirect("dashboard");
|
|
}
|
|
}
|
|
|
|
protected function indexAction(): void {
|
|
$this->layout()->set('additionalJS', ['js/pages/WarehouseHistory/WarehouseHistoryModal.js']);
|
|
|
|
Helper::renderVue($this, 'WarehouseAdministration', 'Administration-Tools', ["CREATE_URL" => $this::getUrl($this->mod . "/create"),
|
|
"TABLE_URL" => $this::getUrl($this->mod . "/get"),
|
|
"UPDATE_URL" => $this::getUrl($this->mod . "/update"),
|
|
"DELETE_URL" => $this::getUrl($this->mod . "/delete"),]);
|
|
}
|
|
|
|
//TODO: this needs improvement as it is inefficient but it doesnt matter as it doesnt get called very often
|
|
// and also maybe we should move it to WarehouseLocationController
|
|
protected function createLocationsAction(): void {
|
|
$existingLocations = WarehouseLocationModel::getAll();
|
|
$companyCars = TimerecordingCarModel::getAll();
|
|
|
|
|
|
$wantedCarLocations = [];
|
|
foreach ($companyCars as $car) {
|
|
// check if $car->brand includes "Anhänger" or "Anhaenger", if yes then continue
|
|
if (strpos($car->brand, "Anhänger") !== false || strpos($car->brand, "Anhaenger") !== false) {
|
|
continue;
|
|
}
|
|
|
|
$carModelParts = explode(" ", $car->model);
|
|
if (count($carModelParts) > 1) {
|
|
$wantedCarLocations[] = "{$car->number_plate} {$car->brand} {$carModelParts[0]} {$carModelParts[1]}";
|
|
} else {
|
|
$wantedCarLocations[] = "{$car->number_plate} {$car->brand} {$carModelParts[0]}";
|
|
}
|
|
}
|
|
|
|
|
|
// create a warehouse location for each wantedcar but check if $existingLocations[]->title already exists with the same title
|
|
foreach ($wantedCarLocations as $wantedCarLocation) {
|
|
$locationExists = false;
|
|
foreach ($existingLocations as $existingLocation) {
|
|
if ($existingLocation->title === $wantedCarLocation) {
|
|
$locationExists = true;
|
|
break;
|
|
}
|
|
}
|
|
|
|
if (!$locationExists) {
|
|
$numberPlate = explode(" ", $wantedCarLocation)[0];
|
|
$assignedTo = 1;
|
|
foreach ($companyCars as $car) {
|
|
if ($car->number_plate === $numberPlate) {
|
|
$assignedTo = $car->user_id;
|
|
break;
|
|
}
|
|
}
|
|
if ($assignedTo === null) {
|
|
$assignedTo = 6;
|
|
}
|
|
|
|
WarehouseLocationModel::create([
|
|
"title" => $wantedCarLocation,
|
|
"description" => "Automatisch erstellt",
|
|
"assignedTo" => $assignedTo,
|
|
"createdBy" => $this->me->id,
|
|
"create" => time()
|
|
]);
|
|
}
|
|
}
|
|
|
|
$existingLocations = WarehouseLocationModel::getAll();
|
|
$users = UserModel::search(['employee' => true]);
|
|
|
|
// now create a warehouse location for each user only if they dont already have one (for example if they have a company car)
|
|
foreach ($users as $user) {
|
|
$locationExists = false;
|
|
foreach ($existingLocations as $existingLocation) {
|
|
if (intval($existingLocation->assignedTo) === intval($user->id)) {
|
|
$locationExists = true;
|
|
break;
|
|
}
|
|
}
|
|
|
|
if (!$locationExists) {
|
|
WarehouseLocationModel::create([
|
|
"title" => $user->name . "'s Lagerort",
|
|
"description" => "Automatisch erstellt",
|
|
"assignedTo" => $user->id,
|
|
"createdBy" => $this->me->id,
|
|
"create" => time()
|
|
]);
|
|
}
|
|
}
|
|
|
|
var_dump($existingLocations);
|
|
die();
|
|
|
|
}
|
|
} |