Merge branch 'fronkdev' into 'master'
Now showing all Workorders in Preorder detail See merge request fronk/thetool!661
This commit is contained in:
@@ -292,7 +292,7 @@
|
||||
</td>
|
||||
|
||||
<?php if($me->is(["Admin", "netowner"])): ?>
|
||||
<td><?php if($preorder->adb_wohneinheit_id && is_object($preorder->adb_wohneinheit->rimo_workorder)):?><i class="fas fa-r" title="Rimo Workorder erstellt"></i><?php endif; ?></td>
|
||||
<td><?php if($preorder->adb_wohneinheit_id && is_array($preorder->adb_wohneinheit->rimo_workorders) && count($preorder->adb_wohneinheit->rimo_workorders)):?><i class="fas fa-r" title="Rimo Workorder erstellt"></i><?php endif; ?></td>
|
||||
<?php endif; ?>
|
||||
<td style="text-align: left; letter-spacing: 4px; font-size: 1.1em;">
|
||||
<?php if(!$me->is("preorderfront")): ?>
|
||||
@@ -907,24 +907,29 @@
|
||||
'json');
|
||||
}
|
||||
|
||||
function deleteWorkorder(pid) {
|
||||
console.log("in delete workorder");
|
||||
function deleteWorkorder(pid, wid) {
|
||||
//console.log("in delete workorder");
|
||||
if(!Number.isInteger(pid) || pid < 1) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if(!Number.isInteger(wid) || wid < 1) {
|
||||
return false;
|
||||
}
|
||||
|
||||
$.post("<?=self::getUrl("Preorder","Api")?>",
|
||||
{
|
||||
'do': "deleteWorkorder",
|
||||
id: pid,
|
||||
wid: wid
|
||||
},
|
||||
function(success) {
|
||||
if(success.status == "OK") {
|
||||
$("#preorder-detail-" + success.result.id + "-workorder td").each(function() {
|
||||
$("#preorder-detail-" + success.result.id + "-workorder-" + success.result.wid + " td").each(function() {
|
||||
$(this).html("<em class='text-monospace'>--gelöscht--</em>");
|
||||
});
|
||||
|
||||
$("#preorder-detail-" + success.result.id + "-workorder-del").remove();
|
||||
$("#preorder-detail-" + success.result.id + "-workorder-" + success.result.wid + "-del").remove();
|
||||
}
|
||||
},
|
||||
'json');
|
||||
|
||||
@@ -397,30 +397,33 @@
|
||||
|
||||
<div class="col-6">
|
||||
<h3>Workorder</h3>
|
||||
<?php if(is_object($preorder->adb_wohneinheit->rimo_workorder) && $preorder->adb_wohneinheit->rimo_workorder->id): ?>
|
||||
<small id="preorder-detail-<?=$preorder->id?>-workorder-del"><a href="#" onclick="if(confirm('Achtung: Löscht die Workorder in thetool, aber NICHT in RIMO!')) return deleteWorkorder(<?=$preorder->id?>)" class="text-danger"><i class="far fa-times-circle"></i> Workorder löschen</a></small>
|
||||
<table class="table table-sm table-striped" id="preorder-detail-<?=$preorder->id?>-workorder">
|
||||
<tr>
|
||||
<th>Name</th>
|
||||
<td class="text-monospace"><?=$preorder->adb_wohneinheit->rimo_workorder->rimo_name?></td>
|
||||
</tr><tr>
|
||||
<th>External ID</th>
|
||||
<td class="text-monospace"><?=$preorder->adb_wohneinheit->rimo_workorder->rimo_id?></td>
|
||||
</tr><tr>
|
||||
<th>Status</th>
|
||||
<td><?=$preorder->adb_wohneinheit->rimo_workorder->rimo_status?></td>
|
||||
</tr>
|
||||
<?php if($preorder->adb_wohneinheit->rimo_workorder->rimo_team_name): ?>
|
||||
<tr>
|
||||
<th>Zugewiesen an:</th>
|
||||
<td><?=$preorder->adb_wohneinheit->rimo_workorder->rimo_team_name?></td>
|
||||
</tr>
|
||||
<?php endif; ?>
|
||||
<tr>
|
||||
<th>Erstellt</th>
|
||||
<td class="text-monospace"><?=(is_object($preorder->adb_wohneinheit->rimo_workorder)) ? date("d.m.Y H:i:s", $preorder->adb_wohneinheit->rimo_workorder->create) : ""?></td>
|
||||
</tr>
|
||||
</table>
|
||||
<?php if(is_array($preorder->adb_wohneinheit->rimo_workorders) && count($preorder->adb_wohneinheit->rimo_workorders)): ?>
|
||||
<?php foreach($preorder->adb_wohneinheit->rimo_workorders as $wo): ?>
|
||||
<h4><?=$wo->rimo_name?></h4>
|
||||
<small id="preorder-detail-<?=$preorder->id?>-workorder-<?=$wo->id?>-del"><a href="#" onclick="if(confirm('Achtung: Löscht die Workorder in thetool, aber NICHT in RIMO!')) return deleteWorkorder(<?=$preorder->id?>, <?=$wo->id?>)" class="text-danger"><i class="far fa-times-circle"></i> Workorder löschen</a></small>
|
||||
<table class="table table-sm table-striped" id="preorder-detail-<?=$preorder->id?>-workorder-<?=$wo->id?>">
|
||||
<tr>
|
||||
<th>Name</th>
|
||||
<td class="text-monospace"><?=$wo->rimo_name?></td>
|
||||
</tr><tr>
|
||||
<th>External ID</th>
|
||||
<td class="text-monospace"><?=$wo->rimo_id?></td>
|
||||
</tr><tr>
|
||||
<th>Status</th>
|
||||
<td><?=$wo->rimo_status?></td>
|
||||
</tr>
|
||||
<?php if($wo->rimo_team_name): ?>
|
||||
<tr>
|
||||
<th>Zugewiesen an:</th>
|
||||
<td><?=$wo->rimo_team_name?></td>
|
||||
</tr>
|
||||
<?php endif; ?>
|
||||
<tr>
|
||||
<th>Erstellt</th>
|
||||
<td class="text-monospace"><?=date("d.m.Y H:i:s", $wo->create)?></td>
|
||||
</tr>
|
||||
</table>
|
||||
<?php endforeach; ?>
|
||||
<?php endif; ?>
|
||||
|
||||
</div>
|
||||
|
||||
@@ -146,7 +146,15 @@
|
||||
</select>
|
||||
<small>Beschränkt Benutzer auf Netzgebiete. Überschreibt Netzgebiete der Firma. Wenn leer werden Netzgebiete der Firma angezeigt</small>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="form-group" id="preorderreadonly-container">
|
||||
<label for="preorderreadonly">Preorder Readonly:</label>
|
||||
<select name="preorderreadonly" id="preorderreadonly" class="form-control">
|
||||
<option value="false" <?=(isset($user) && !$user->is("preorderreadonly")) ? "selected='selected'" : ""?>>Read/Write</option>
|
||||
<option value="true" <?=(isset($user) && $user->is("preorderreadonly")) ? "selected='selected'" : ""?>>Readonly</option>
|
||||
</select>
|
||||
</div>
|
||||
|
||||
<hr />
|
||||
|
||||
<h4 class="card-title mb-3">Modulberechtigungen</h4>
|
||||
|
||||
@@ -117,12 +117,6 @@ $pagination_entity_name = "Benutzer";
|
||||
style="text-align: left; letter-spacing: 4px; font-size: 1.1em;">
|
||||
<a href="<?= self::getUrl("User", "edit", ['id' => $user->id]) ?>"
|
||||
title="User bearbeiten"><i class="far fa-edit"></i></a>
|
||||
<?php if ($user->id > 1): ?>
|
||||
<a href="<?= self::getUrl("User", "delete", ['id' => $user->id]) ?>"
|
||||
class="text-danger" title="User löschen"
|
||||
onclick="if(!confirm('Benutzer wirklich löschen?')) return false;"><i
|
||||
class="fas fa-trash"></i></a>
|
||||
<?php endif; ?>
|
||||
</td>
|
||||
</tr>
|
||||
<?php endforeach; ?>
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
class ADBWohneinheit extends mfBaseModel {
|
||||
private $hausnummer;
|
||||
private $rimo_workorder;
|
||||
private $rimo_workorders;
|
||||
private $ftu_data;
|
||||
private $status;
|
||||
|
||||
@@ -244,7 +245,15 @@ class ADBWohneinheit extends mfBaseModel {
|
||||
}
|
||||
return $this->rimo_workorder;
|
||||
}
|
||||
|
||||
|
||||
if($name == "rimo_workorders") {
|
||||
$this->rimo_workorders = RimoWorkorderModel::search(["adb_wohneinheit_id" => $this->id]);
|
||||
/*if(count($workorders)) {
|
||||
$this->rimo_workorders = $workorders;
|
||||
}*/
|
||||
return $this->rimo_workorders;
|
||||
}
|
||||
|
||||
if($name == "ftu_data") {
|
||||
$rimo_data = $this->getExternalRimoData();
|
||||
|
||||
|
||||
@@ -46,6 +46,7 @@ class PreorderApicontroller extends mfBaseApicontroller {
|
||||
|
||||
$this->addRoute("/preorder", "submitPreorder", "POST");
|
||||
$this->addRoute("/preorder/open", "getOpenPreorders", "GET");
|
||||
$this->addRoute("/preorder/all", "getAllPreorders", "GET");
|
||||
$this->addRoute("/preorder/customerInstallationFeedback", [$modules["Cif"], "getCifData"], "GET");
|
||||
$this->addRoute("/preorder/customerInstallationFeedback", [$modules["Cif"], "userSetCif"], "POST");
|
||||
$this->addRoute("/preorder/fullexport", "exportPreorders", "GET");
|
||||
@@ -189,9 +190,12 @@ class PreorderApicontroller extends mfBaseApicontroller {
|
||||
if(count($this->filter_salescluster_ids)) {
|
||||
$preorder_search['netzgebiet_id'] = $this->filter_salescluster_ids;
|
||||
}*/
|
||||
|
||||
|
||||
$preorder_search = [];
|
||||
$preorder_search['partner_id'] = $this->me->address_id;
|
||||
if(!$this->me->preorderaddressreporting) {
|
||||
$preorder_search['partner_id'] = $this->me->address_id;
|
||||
}
|
||||
|
||||
if($update_ts) {
|
||||
$preorder_search['add-where'] = "AND tt_preorder.`edit` > $update_ts";
|
||||
} else {
|
||||
@@ -204,10 +208,40 @@ class PreorderApicontroller extends mfBaseApicontroller {
|
||||
foreach(PreorderModel::searchActive($preorder_search) as $preorder) {
|
||||
$return[] = $preorder->getApiArray();
|
||||
}
|
||||
|
||||
$this->requestLog->debug(print_r($return, true));
|
||||
return mfResponse::Ok(["preorders" => $return]);
|
||||
|
||||
}
|
||||
|
||||
protected function getAllPreorders() {
|
||||
|
||||
// nicht auf cluster einschränken, sondern auf partner_id
|
||||
/*
|
||||
$preorder_search = [];
|
||||
if(count($this->filter_salescluster_ids)) {
|
||||
$preorder_search['netzgebiet_id'] = $this->filter_salescluster_ids;
|
||||
}*/
|
||||
|
||||
$preorder_search = [];
|
||||
if($this->me->preorderaddressreporting) {
|
||||
|
||||
} else {
|
||||
// providers see their own orders
|
||||
$preorder_search['partner_id'] = $this->me->address_id;
|
||||
}
|
||||
|
||||
// if no timestamp, return only open orders (500 == finished)
|
||||
$preorder_search['<status_code'] = 500;
|
||||
|
||||
$return = [];
|
||||
|
||||
foreach(PreorderModel::searchActive($preorder_search) as $preorder) {
|
||||
$return[] = $preorder->getApiArray();
|
||||
}
|
||||
|
||||
$this->requestLog->debug(print_r($return, true));
|
||||
return mfResponse::Ok(["preorders" => $return]);
|
||||
}
|
||||
|
||||
protected function getPreorder($code) {
|
||||
$code = trim($code);
|
||||
|
||||
@@ -70,6 +70,7 @@ class Preorder extends mfBaseModel {
|
||||
$this->createHistoryEntry();
|
||||
//}
|
||||
|
||||
$this->updateRimoWorkorderContact();
|
||||
// run triggers based on new status
|
||||
$this->runStatusTrigger();
|
||||
// Cascade status changes down to adb_hausnummer and adb_wohneinheit
|
||||
@@ -82,6 +83,10 @@ class Preorder extends mfBaseModel {
|
||||
mfValuecache::singleton()->delete("preorder-save-nesting-level-" . $this->id);
|
||||
}
|
||||
|
||||
public function updateRimoWorkorderContact() {
|
||||
|
||||
}
|
||||
|
||||
public function createHistoryEntry() {
|
||||
if(!$this->id) return true;
|
||||
|
||||
|
||||
@@ -1264,8 +1264,9 @@ class PreorderController extends mfBaseController {
|
||||
if(!$this->me->is("Admin")) {
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
$preorder_id = $this->request->id;
|
||||
$wo_id = $this->request->wid;
|
||||
|
||||
if(!is_numeric($preorder_id) || $preorder_id < 1) {
|
||||
return false;
|
||||
@@ -1279,14 +1280,22 @@ class PreorderController extends mfBaseController {
|
||||
if(!$preorder->adb_wohneinheit_id) {
|
||||
return false;
|
||||
}
|
||||
|
||||
$workorder = RimoWorkorderModel::getFirst(["adb_wohneinheit_id" => $preorder->adb_wohneinheit_id]);
|
||||
if(!$workorder) {
|
||||
|
||||
if(!is_numeric($wo_id) || $wo_id < 1) {
|
||||
return false;
|
||||
}
|
||||
$workorder = new RimoWorkorder($wo_id);
|
||||
if(!$workorder->id) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if($preorder->adb_wohneinheit_id != $workorder->adb_wohneinheit_id) {
|
||||
$this->log->warning(__METHOD__.": wohneinheit_id not equal");
|
||||
return false;
|
||||
}
|
||||
|
||||
$workorder->delete();
|
||||
return ["message" => "Workorder deleted successfully", "id" => $preorder->id];
|
||||
return ["message" => "Workorder deleted successfully", "id" => $preorder->id, "wid" => $wo_id];
|
||||
}
|
||||
|
||||
}
|
||||
@@ -988,7 +988,7 @@ class PreordercampaignController extends mfBaseController {
|
||||
|
||||
|
||||
if($oaid->adb_wohneinheit_id != $wohneinheit->id) {
|
||||
$rimo = new OpenAccessId_Helper_Rimo($oaid->oaid);
|
||||
//$rimo = new OpenAccessId_Helper_Rimo($oaid->oaid);
|
||||
|
||||
$unit_ftu_data = $wohneinheit->ftu_data;
|
||||
//var_dump($unit_ftu_data);
|
||||
@@ -999,8 +999,8 @@ class PreordercampaignController extends mfBaseController {
|
||||
$oaid_ftu = $oaid->getExportData("rimo");
|
||||
//var_dump($oaid_ftu);
|
||||
if($oaid_ftu->ftu_id) {
|
||||
$rimo->unassignOaid($oaid_ftu->ftu_id);
|
||||
$rimo->assignOaid($unit_ftu_data["id"]);
|
||||
Rimoapi::unassignOaid($oaid->oaid, $oaid_ftu->ftu_id);
|
||||
Rimoapi::assignOaid($oaid->oaid, $unit_ftu_data["id"]);
|
||||
|
||||
$oaid->updateExportData("rimo", "ftu_id", $unit_ftu_data["id"]);
|
||||
$oaid->updateExportData("rimo", "ftu_name", $unit_ftu_data["name"]);
|
||||
|
||||
@@ -80,7 +80,7 @@ class UserController extends mfBaseController
|
||||
$this->layout()->set("addresses", $addresses);
|
||||
}
|
||||
|
||||
protected function generateApikey($request)
|
||||
protected function generateApikeyAction($request)
|
||||
{
|
||||
if (!$this->isAdmin()) {
|
||||
$this->redirect("Dashboard");
|
||||
@@ -219,7 +219,18 @@ class UserController extends mfBaseController
|
||||
} else {
|
||||
$user->permissions->preorderlogistics = "false";
|
||||
}
|
||||
|
||||
|
||||
if ($r->preorderaddressreporting == "true") {
|
||||
$user->permissions->preorderaddressreporting = "true";
|
||||
} else {
|
||||
$user->permissions->preorderaddressreporting = "false";
|
||||
}
|
||||
|
||||
if ($r->preorderreadonly == "true") {
|
||||
$user->permissions->preorderreadonly = "true";
|
||||
} else {
|
||||
$user->permissions->preorderreadonly = "false";
|
||||
}
|
||||
|
||||
// set can permissions
|
||||
$user->permissions->canBuilding = "false";
|
||||
@@ -271,9 +282,7 @@ class UserController extends mfBaseController
|
||||
} else {
|
||||
$enum->delete();
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
$this->layout()->setFlash("Benutzer gespeichert.", "success");
|
||||
@@ -282,8 +291,11 @@ class UserController extends mfBaseController
|
||||
|
||||
protected function deleteAction($request)
|
||||
{
|
||||
$this->layout()->setFlash("nope");
|
||||
$this->redirect("User");
|
||||
|
||||
if (!$this->isAdmin()) {
|
||||
$this->redirect("Bridge");
|
||||
$this->redirect("Dashboard");
|
||||
}
|
||||
$id = $request['id'];
|
||||
|
||||
|
||||
@@ -7,6 +7,7 @@ class WorkerPermission extends mfBaseModel {
|
||||
public $isPreorderfront = false;
|
||||
public $isPreorderaddressreporting = false;
|
||||
public $isPreorderlogistics = false;
|
||||
public $isPreorderreadonly = false;
|
||||
|
||||
public function loadByUserId($userid) {
|
||||
$res = $this->db->select($this->table,"*","worker_id=$userid");
|
||||
@@ -41,6 +42,9 @@ class WorkerPermission extends mfBaseModel {
|
||||
if($this->preorderlogistics == 'true') {
|
||||
$this->isPreorderlogistics = true;
|
||||
}
|
||||
if($this->preorderreadonly == 'true') {
|
||||
$this->isPreorderreadonly = true;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,31 @@
|
||||
<?php
|
||||
declare(strict_types=1);
|
||||
|
||||
use Phinx\Migration\AbstractMigration;
|
||||
|
||||
final class AddPreorderReadonlyPermission extends AbstractMigration
|
||||
{
|
||||
public function up(): void
|
||||
{
|
||||
if($this->getEnvironment() == "thetool") {
|
||||
$table = $this->table ("WorkerPermission");
|
||||
$table->addColumn("preorderreadonly", "enum", ["null" => false, "values" => 'false,true', "default" => "false", "after" => "preorderlogistics"]);
|
||||
$table->update();
|
||||
}
|
||||
|
||||
if($this->getEnvironment() == "addressdb") {
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
public function down(): void
|
||||
{
|
||||
if($this->getEnvironment() == "thetool") {
|
||||
$this->table ("WorkerPermission")->removeColumn("preorderreadonly");
|
||||
}
|
||||
|
||||
if($this->getEnvironment() == "addressdb") {
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user