Added Preorder cancel request UI changes
This commit is contained in:
@@ -6,6 +6,9 @@
|
|||||||
<div class="col-12">
|
<div class="col-12">
|
||||||
<ul class="nav nav-tabs order-tab">
|
<ul class="nav nav-tabs order-tab">
|
||||||
<li class="nav-item"><a class="nav-link active" href="#preorder-detail-<?=$preorder->id?>-detail" data-toggle="tab" aria-expanded="false">Bestellung</a></li>
|
<li class="nav-item"><a class="nav-link active" href="#preorder-detail-<?=$preorder->id?>-detail" data-toggle="tab" aria-expanded="false">Bestellung</a></li>
|
||||||
|
<?php if($preorder->cancel_request): ?>
|
||||||
|
<li class="nav-item"><a class="nav-link" href="#preorder-detail-<?=$preorder->id?>-cancelation" data-toggle="tab" aria-expanded="false">Storno/Kündigung</a></li>
|
||||||
|
<?php endif; ?>
|
||||||
<li class="nav-item"><a class="nav-link" href="#preorder-detail-<?=$preorder->id?>-address" data-toggle="tab" aria-expanded="false">Adressdetails</a></li>
|
<li class="nav-item"><a class="nav-link" href="#preorder-detail-<?=$preorder->id?>-address" data-toggle="tab" aria-expanded="false">Adressdetails</a></li>
|
||||||
<li class="nav-item"><a class="nav-link" href="#preorder-detail-<?=$preorder->id?>-flags" data-toggle="tab" aria-expanded="false">Status</a></li>
|
<li class="nav-item"><a class="nav-link" href="#preorder-detail-<?=$preorder->id?>-flags" data-toggle="tab" aria-expanded="false">Status</a></li>
|
||||||
<?php if($preorder->campaign->fulfillment != "citycom_oan"): ?>
|
<?php if($preorder->campaign->fulfillment != "citycom_oan"): ?>
|
||||||
@@ -293,6 +296,47 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<?php if($preorder->cancel_request): ?>
|
||||||
|
<div id="preorder-detail-<?=$preorder->id?>-cancelation" class="tab-pane">
|
||||||
|
<div class="row justify-content-center">
|
||||||
|
<div class="col-12">
|
||||||
|
<div class="card">
|
||||||
|
<div class="card-body">
|
||||||
|
|
||||||
|
<div class="card-header bg-info text-white pl-2 pr-2 pt-1 pb-1">Storno/Kündigung</div>
|
||||||
|
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-6">
|
||||||
|
<h3>Storno / Kündigung</h3>
|
||||||
|
|
||||||
|
<table class="table table-sm table-striped">
|
||||||
|
<tr>
|
||||||
|
<th>Kündigungsdatum</th>
|
||||||
|
<td class="text-monospace"><?=($preorder->cancel_request_execution_date) ? (new DateTime($preorder->cancel_request_execution_date))->format("d.m.Y") : ""?></td>
|
||||||
|
</tr><tr>
|
||||||
|
<th>Demontage ab</th>
|
||||||
|
<td class="text-monospace"><?=($preorder->cancel_request_execution_date) ? (new DateTime($preorder->cancel_request_execution_date))->modify("+1 day")->format("d.m.Y") : ""?></td>
|
||||||
|
</tr><tr>
|
||||||
|
<th>Kündigungsgrund</th>
|
||||||
|
<td class="text-monospace"><?=$preorder->cancel_request_status->code?> - <?=$preorder->cancel_request_status->name?></td>
|
||||||
|
</tr><tr>
|
||||||
|
<th>Kündigung erstellt</th>
|
||||||
|
<td class="text-monospace"><?=date("d.m.Y H:i", $preorder->cancel_request)?> (<?=$preorder->cancel_request_creator->name?>)</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
|
||||||
|
<button type="button" class="btn btn-success" onclick="approveCancelRequest(<?=$preorder->id?>)"><i class="fas fa-check"></i> Kündigung freigeben</button>
|
||||||
|
<button type="button" class="btn btn-danger ml-2" onclick="denyCancelRequest(<?=$preorder->id?>)"><i class="fas fa-xmark"></i> Kündigung ablehnen</button>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<?php endif; ?>
|
||||||
|
|
||||||
<div id="preorder-detail-<?=$preorder->id?>-address" class="tab-pane">
|
<div id="preorder-detail-<?=$preorder->id?>-address" class="tab-pane">
|
||||||
<div class="row justify-content-center">
|
<div class="row justify-content-center">
|
||||||
<div class="col-12">
|
<div class="col-12">
|
||||||
|
|||||||
@@ -24,6 +24,8 @@ class Preorder extends mfBaseModel {
|
|||||||
private $citycomoan; // ONT data
|
private $citycomoan; // ONT data
|
||||||
private $ctags; // network-keyed array of Ctags
|
private $ctags; // network-keyed array of Ctags
|
||||||
private $statusjournals;
|
private $statusjournals;
|
||||||
|
private $cancel_request_status;
|
||||||
|
private $cancel_request_creator;
|
||||||
|
|
||||||
protected function beforeUpdate($data) {
|
protected function beforeUpdate($data) {
|
||||||
if(!array_key_exists("edit_by", $data)) {
|
if(!array_key_exists("edit_by", $data)) {
|
||||||
@@ -1573,19 +1575,6 @@ class Preorder extends mfBaseModel {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if($name == "creator") {
|
|
||||||
$user = mfValuecache::singleton()->get("Worker-id-" . $this->create_by);
|
|
||||||
if($user) {
|
|
||||||
$this->creator = $user;
|
|
||||||
return $this->creator;
|
|
||||||
}
|
|
||||||
$this->creator = new User($this->create_by);
|
|
||||||
if($this->creator->id) {
|
|
||||||
mfValuecache::singleton()->set("Worker-id-" . $this->create_by, $this->creator);
|
|
||||||
}
|
|
||||||
return $this->creator;
|
|
||||||
}
|
|
||||||
|
|
||||||
if($name === 'fcp') {
|
if($name === 'fcp') {
|
||||||
if(!$this->adb_hausnummer->fcp_id) return null;
|
if(!$this->adb_hausnummer->fcp_id) return null;
|
||||||
return ADBRimoFcp::get($this->adb_hausnummer->fcp_id);
|
return ADBRimoFcp::get($this->adb_hausnummer->fcp_id);
|
||||||
@@ -1605,8 +1594,69 @@ class Preorder extends mfBaseModel {
|
|||||||
return $this->ctags;
|
return $this->ctags;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if($name == "cancel_request_status") {
|
||||||
|
if(!$this->cancel_request_status_code) return null;
|
||||||
|
|
||||||
|
$this->cancel_request_status = mfValuecache::singleton()->get("mfObjectmodel-Preorderstatus-code-" . $this->cancel_request_status_code);
|
||||||
|
if(!$this->cancel_request_status) {
|
||||||
|
$cancel_request_status = PreorderstatusModel::getFirst(["code" => $this->cancel_request_status_code]);
|
||||||
|
if($cancel_request_status) {
|
||||||
|
mfValuecache::singleton()->set("mfObjectmodel-Preorderstatus-code-" . $this->cancel_request_status_code, $cancel_request_status);
|
||||||
|
$this->cancel_request_status = $cancel_request_status;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return $this->cancel_request_status;
|
||||||
|
}
|
||||||
|
|
||||||
|
if($name == "cancel_request_creator") {
|
||||||
|
$user = mfValuecache::singleton()->get("Worker-id-" . $this->cancel_request_by);
|
||||||
|
if($user) {
|
||||||
|
$this->cancel_request_creator = $user;
|
||||||
|
return $this->cancel_request_creator;
|
||||||
|
}
|
||||||
|
$this->cancel_request_creator = new User($this->cancel_request_by);
|
||||||
|
if($this->cancel_request_creator->id) {
|
||||||
|
mfValuecache::singleton()->set("Worker-id-" . $this->cancel_request_by, $this->cancel_request_creator);
|
||||||
|
}
|
||||||
|
return $this->cancel_request_creator;
|
||||||
|
}
|
||||||
|
|
||||||
|
if($name == "cancel_approver") {
|
||||||
|
$user = mfValuecache::singleton()->get("Worker-id-" . $this->cancel_approved_by);
|
||||||
|
if($user) {
|
||||||
|
$this->cancel_approver = $user;
|
||||||
|
return $this->cancel_approver;
|
||||||
|
}
|
||||||
|
$this->cancel_approver = new User($this->cancel_approved_by);
|
||||||
|
if($this->cancel_approver->id) {
|
||||||
|
mfValuecache::singleton()->set("Worker-id-" . $this->cancel_approved_by, $this->cancel_approver);
|
||||||
|
}
|
||||||
|
return $this->editor;
|
||||||
|
}
|
||||||
|
|
||||||
|
if($name == "creator") {
|
||||||
|
$user = mfValuecache::singleton()->get("Worker-id-" . $this->create_by);
|
||||||
|
if($user) {
|
||||||
|
$this->creator = $user;
|
||||||
|
return $this->creator;
|
||||||
|
}
|
||||||
|
$this->creator = new User($this->create_by);
|
||||||
|
if($this->creator->id) {
|
||||||
|
mfValuecache::singleton()->set("Worker-id-" . $this->create_by, $this->creator);
|
||||||
|
}
|
||||||
|
return $this->creator;
|
||||||
|
}
|
||||||
|
|
||||||
if($name == "editor") {
|
if($name == "editor") {
|
||||||
|
$user = mfValuecache::singleton()->get("Worker-id-" . $this->edit_by);
|
||||||
|
if($user) {
|
||||||
|
$this->editor = $user;
|
||||||
|
return $this->editor;
|
||||||
|
}
|
||||||
$this->editor = new User($this->edit_by);
|
$this->editor = new User($this->edit_by);
|
||||||
|
if($this->editor->id) {
|
||||||
|
mfValuecache::singleton()->set("Worker-id-" . $this->edit_by, $this->editor);
|
||||||
|
}
|
||||||
return $this->editor;
|
return $this->editor;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1090,6 +1090,12 @@ class PreorderController extends mfBaseController {
|
|||||||
case "saveStatusJournal":
|
case "saveStatusJournal":
|
||||||
$return = $this->saveStatusJournalApi();
|
$return = $this->saveStatusJournalApi();
|
||||||
break;
|
break;
|
||||||
|
case "approveCancelRequest":
|
||||||
|
$return = $this->approveCancelRequest();
|
||||||
|
break;
|
||||||
|
case "denyCancelRequest":
|
||||||
|
$return = $this->denyCancelRequest();
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
$return = false;
|
$return = false;
|
||||||
}
|
}
|
||||||
@@ -1108,6 +1114,49 @@ class PreorderController extends mfBaseController {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
protected function approveCancelRequest() {
|
||||||
|
return true; // disabled
|
||||||
|
|
||||||
|
$preorder_id = $this->request->pid;
|
||||||
|
|
||||||
|
$preorder = new Preorder($preorder_id);
|
||||||
|
if(!$preorder->id) {
|
||||||
|
$this->log->debug(__METHOD__.": Preorder $preorder_id not found");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
if(!$preorder->cancel_request) {
|
||||||
|
$this->log->debug(__METHOD__.": Preorder $preorder_id has no cancel request");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
protected function denyCancelRequest() {
|
||||||
|
return true; // disabled
|
||||||
|
|
||||||
|
$preorder_id = $this->request->pid;
|
||||||
|
|
||||||
|
$preorder = new Preorder($preorder_id);
|
||||||
|
if(!$preorder->id) {
|
||||||
|
$this->log->debug(__METHOD__.": Preorder $preorder_id not found");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
if(!$preorder->cancel_request) {
|
||||||
|
$this->log->debug(__METHOD__.": Preorder $preorder_id has no cancel request");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
// empty all cancel request fields
|
||||||
|
$preorder->cancel_request = null;
|
||||||
|
$preorder->cancel_request_by = null;
|
||||||
|
$preorder->cancel_request_status_code = null;
|
||||||
|
$preorder->cancel_request_execution_date = null;
|
||||||
|
$preorder->save();
|
||||||
|
|
||||||
|
return ["message" => "Cancel request removed"];
|
||||||
|
}
|
||||||
|
|
||||||
protected function saveStatusJournalApi() {
|
protected function saveStatusJournalApi() {
|
||||||
$preorder_id = $this->request->preorder_id;
|
$preorder_id = $this->request->preorder_id;
|
||||||
$text = $this->request->text;
|
$text = $this->request->text;
|
||||||
|
|||||||
@@ -0,0 +1,32 @@
|
|||||||
|
<?php
|
||||||
|
declare(strict_types=1);
|
||||||
|
|
||||||
|
use Phinx\Migration\AbstractMigration;
|
||||||
|
|
||||||
|
final class PreorderAddCancelRequestStatusCode extends AbstractMigration
|
||||||
|
{
|
||||||
|
public function up(): void
|
||||||
|
{
|
||||||
|
if($this->getEnvironment() == "thetool") {
|
||||||
|
$table = $this->table("Preorder");
|
||||||
|
$table->addColumn("cancel_request_status_code", "string", ["null" => true, "default" => null, "limit" => 64, "after" => "cancel_request_by"]);
|
||||||
|
$table->addColumn("cancel_request_execution_date", "date", ["null" => true, "default" => null, "limit" => 64, "after" => "cancel_request_status_code"]);
|
||||||
|
$table->update();
|
||||||
|
}
|
||||||
|
|
||||||
|
if($this->getEnvironment() == "addressdb") {
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public function down(): void
|
||||||
|
{
|
||||||
|
if($this->getEnvironment() == "thetool") {
|
||||||
|
$this->table("Preorder")->removeColumn("cancel_request_status_code")->update();
|
||||||
|
}
|
||||||
|
|
||||||
|
if($this->getEnvironment() == "addressdb") {
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user