Added preorderTrigger / added cif api docs
This commit is contained in:
@@ -705,5 +705,195 @@
|
||||
setTimeout((id) => {maps["map-" + id].invalidateSize()}, 50, id);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// detail
|
||||
function togglePortdata(pid) {
|
||||
$("#preorder-detail-" + pid + "-patchposition-data-form input[name='patch_cluster']").val($("#preorder-detail-" + pid + "-patchposition-data-form input[name='patch_cluster']").data("default"));
|
||||
$("#preorder-detail-" + pid + "-patchposition-data-form input[name='patch_shelf']").val($("#preorder-detail-" + pid + "-patchposition-data-form input[name='patch_shelf']").data("default"));
|
||||
$("#preorder-detail-" + pid + "-patchposition-data-form input[name='patch_module']").val($("#preorder-detail-" + pid + "-patchposition-data-form input[name='patch_module']").data("default"));
|
||||
|
||||
$("#preorder-detail-" + pid + "-patchposition-port-form input[name='patch_port']").val($("#preorder-detail-" + pid + "-patchposition-port-form input[name='patch_port']").data("default"));
|
||||
|
||||
|
||||
$("#preorder-detail-" + pid + "-patchposition-data-form").toggle();
|
||||
$("#preorder-detail-" + pid + "-patchposition-string").toggle();
|
||||
|
||||
$("#preorder-detail-" + pid + "-patchposition-port-form").toggle();
|
||||
$("#preorder-detail-" + pid + "-patchposition-port").toggle();
|
||||
|
||||
$("#preorder-detail-" + pid + "-patchposition-edit").toggle();
|
||||
$("#preorder-detail-" + pid + "-patchposition-controls").toggle();
|
||||
|
||||
}
|
||||
|
||||
function savePortdata(pid) {
|
||||
if(!pid) return;
|
||||
|
||||
var cluster = $("#preorder-detail-" + pid + "-patchposition-data-form input[name='patch_cluster']").val();
|
||||
var shelf = $("#preorder-detail-" + pid + "-patchposition-data-form input[name='patch_shelf']").val();
|
||||
var module = $("#preorder-detail-" + pid + "-patchposition-data-form input[name='patch_module']").val();
|
||||
var port = $("#preorder-detail-" + pid + "-patchposition-port-form input[name='patch_port']").val();
|
||||
|
||||
$.post("<?=self::getUrl("Preorder", "Api")?>", {
|
||||
do: "savePatchposition",
|
||||
id: pid,
|
||||
cluster: cluster,
|
||||
shelf: shelf,
|
||||
module: module,
|
||||
port: port
|
||||
},
|
||||
(success) => {
|
||||
if(success.status == "OK") {
|
||||
var pid = success.result.id;
|
||||
var default_cluster = $("#preorder-detail-" + pid + "-patchposition-data-form input[name='patch_cluster']").data("default");
|
||||
var cluster = $("#preorder-detail-" + pid + "-patchposition-data-form input[name='patch_cluster']").val();
|
||||
var shelf = $("#preorder-detail-" + pid + "-patchposition-data-form input[name='patch_shelf']").val();
|
||||
var module = $("#preorder-detail-" + pid + "-patchposition-data-form input[name='patch_module']").val();
|
||||
var port = $("#preorder-detail-" + pid + "-patchposition-port-form input[name='patch_port']").val();
|
||||
|
||||
if(!cluster) cluster = default_cluster;
|
||||
|
||||
$("#preorder-detail-" + pid + "-patchposition-data-form input[name='patch_cluster']").data("default", cluster);
|
||||
$("#preorder-detail-" + pid + "-patchposition-data-form input[name='patch_shelf']").data("default", shelf);
|
||||
$("#preorder-detail-" + pid + "-patchposition-data-form input[name='patch_module']").data("default", module);
|
||||
$("#preorder-detail-" + pid + "-patchposition-port-form input[name='patch_port']").data("default", port);
|
||||
$("#preorder-detail-" + pid + "-patchposition-string").text(cluster + "-" + shelf + "-" + module);
|
||||
$("#preorder-detail-" + pid + "-patchposition-port").text(port);
|
||||
togglePortdata(pid);
|
||||
|
||||
}
|
||||
},
|
||||
"json"
|
||||
);
|
||||
}
|
||||
|
||||
function toggleStatusControl(pid, sid) {
|
||||
// set select to current status id
|
||||
$("#preorder-detail-status-" + pid + "-input select").val($("#preorder-detail-status-" + pid + "-text").data("status-id"));
|
||||
|
||||
// toggle controls
|
||||
$("#preorder-detail-status-" + pid + "-text").toggle();
|
||||
$("#preorder-detail-status-" + pid + "-input").toggle();
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
function savePreorderStatusControl(pid) {
|
||||
if(!Number.isInteger(pid) || pid < 1) {
|
||||
return false;
|
||||
}
|
||||
|
||||
var value = $("#preorder-detail-status-" + pid + "-input select").val();
|
||||
|
||||
//console.log("add opacity-5 to ")
|
||||
$("#preorder-" + pid + "-body").addClass("opacity-5");
|
||||
$("#preorder-" + pid + "-body .loader-big").show();
|
||||
|
||||
// reset loading overlay if request times out
|
||||
setTimeout(() => {
|
||||
$("#preorder-" + pid + "-body").removeClass("opacity-5");
|
||||
$("#preorder-" + pid + "-body .loader-big").hide();
|
||||
}, 5000);
|
||||
|
||||
$.post("<?=self::getUrl("Preorder","Api")?>",
|
||||
{
|
||||
'do': "updateStatus",
|
||||
id: pid,
|
||||
status_id: value
|
||||
},
|
||||
function(success) {
|
||||
if(success.status == "OK") {
|
||||
var updates = success.result.updates;
|
||||
//console.log(updates);
|
||||
|
||||
updates.forEach(function(u) {
|
||||
//console.log(u);
|
||||
// update detail status text
|
||||
$("#preorder-detail-status-" + u.id + "-statustext").text(u.code + " - " + u.text);
|
||||
$("#preorder-detail-status-" + u.id + "-text").addClass("text-success");
|
||||
setTimeout(() => { $("#preorder-detail-status-" + u.id + "-text").removeClass("text-success") }, 1500);
|
||||
|
||||
// update list status text
|
||||
$("#preorder-" + u.id + " .status").text(u.code + " - " + u.text);
|
||||
$("#preorder-" + u.id + " .status").addClass("text-success");
|
||||
setTimeout(() => { $("#preorder-" + u.id + " .status").removeClass("text-success") }, 1500);
|
||||
|
||||
// update status id data attribute
|
||||
$("#preorder-detail-status-" + u.id + "-text").data("status-id", u.sid);
|
||||
|
||||
if(u.bcode) {
|
||||
$("#preorder-detail-building-status-" + u.id).text(u.bcode + " - " + u.btext);
|
||||
}
|
||||
if(u.ucode) {
|
||||
$("#preorder-detail-unit-status-" + u.id).text(u.ucode + " - " + u.utext);
|
||||
}
|
||||
|
||||
if(u.ciftoken) {
|
||||
$("#preorder-detail-ciftoken-" + u.id).text(u.ciftoken);
|
||||
}
|
||||
if(u.cifcableurl) {
|
||||
$("#preorder-detail-cifcableurl-" + u.id).text(u.cifcableurl);
|
||||
}
|
||||
});
|
||||
/*
|
||||
if("preorder" in update) {
|
||||
// update detail status text
|
||||
$("#preorder-detail-status-" + pid + "-statustext").text(update.preorder.status.code + " - " + update.preorder.status.text);
|
||||
$("#preorder-detail-status-" + pid + "-text").addClass("text-success");
|
||||
setTimeout(() => { $("#preorder-detail-status-" + pid + "-text").removeClass("text-success") }, 1500);
|
||||
|
||||
// update list status text
|
||||
$("#preorder-" + pid + " .status").text(update.preorder.status.code + " - " + update.preorder.status.text);
|
||||
$("#preorder-" + pid + " .status").addClass("text-success");
|
||||
setTimeout(() => { $("#preorder-" + pid + " .status").removeClass("text-success") }, 1500);
|
||||
|
||||
// update status id data attribute
|
||||
$("#preorder-detail-status-" + pid + "-text").data("status-id", update.preorder.status.id);
|
||||
}
|
||||
|
||||
if("building" in update) {
|
||||
// update building status text
|
||||
$("#preorder-detail-building-status-" + pid).text(update.building.status.code + " - " + update.building.status.text);
|
||||
}
|
||||
if("unit" in update) {
|
||||
// update unit status text
|
||||
$("#preorder-detail-unit-status-" + pid).text(update.unit.status.code + " - " + update.unit.status.text);
|
||||
}
|
||||
*/
|
||||
toggleStatusControl(pid);
|
||||
|
||||
}
|
||||
|
||||
$("#preorder-" + pid + "-body").removeClass("opacity-5");
|
||||
$("#preorder-" + pid + "-body .loader-big").hide();
|
||||
},
|
||||
'json');
|
||||
}
|
||||
|
||||
function deleteWorkorder(pid) {
|
||||
console.log("in delete workorder");
|
||||
if(!Number.isInteger(pid) || pid < 1) {
|
||||
return false;
|
||||
}
|
||||
|
||||
$.post("<?=self::getUrl("Preorder","Api")?>",
|
||||
{
|
||||
'do': "deleteWorkorder",
|
||||
id: pid,
|
||||
},
|
||||
function(success) {
|
||||
if(success.status == "OK") {
|
||||
$("#preorder-detail-" + success.result.id + "-workorder td").each(function() {
|
||||
$(this).html("<em class='text-monospace'>--gelöscht--</em>");
|
||||
});
|
||||
|
||||
$("#preorder-detail-" + success.result.id + "-workorder-del").remove();
|
||||
}
|
||||
},
|
||||
'json');
|
||||
|
||||
return false;
|
||||
}
|
||||
</script>
|
||||
<?php include(realpath(dirname(__FILE__)."/../../$mfLayoutPackage")."/footer.php"); ?>
|
||||
|
||||
@@ -113,10 +113,10 @@
|
||||
<table class="table table-sm table-striped">
|
||||
<tr>
|
||||
<th>CIF Token:</th>
|
||||
<td class="text-monospace"><?=$preorder->ciftoken?></td>
|
||||
<td class="text-monospace" id="preorder-detail-ciftoken-<?=$preorder->id?>"><?=$preorder->ciftoken?></td>
|
||||
</tr><tr>
|
||||
<th>CIF Kabelnachbestell-Url:</th>
|
||||
<td class="text-monospace"><?=$preorder->cifcableurl?></td>
|
||||
<td class="text-monospace" id="preorder-detail-cifcableurl-<?=$preorder->id?>"><?=$preorder->cifcableurl?></td>
|
||||
</tr><tr>
|
||||
<th>Starterpaket versandt:</th>
|
||||
<td class="text-monospace"><?=($preorder->logistics && $preorder->logistics->sent) ? '<i class="fas fa-fw fa-check text-success"></i> '.date("d.m.Y H:i", $preorder->logistics->sent) : '<i class="fas fa-fw fa-xmark text-danger"></i>'?></td>
|
||||
@@ -466,187 +466,3 @@
|
||||
|
||||
</div>
|
||||
|
||||
<script type="text/javascript">
|
||||
|
||||
function togglePortdata(pid) {
|
||||
$("#preorder-detail-" + pid + "-patchposition-data-form input[name='patch_cluster']").val($("#preorder-detail-" + pid + "-patchposition-data-form input[name='patch_cluster']").data("default"));
|
||||
$("#preorder-detail-" + pid + "-patchposition-data-form input[name='patch_shelf']").val($("#preorder-detail-" + pid + "-patchposition-data-form input[name='patch_shelf']").data("default"));
|
||||
$("#preorder-detail-" + pid + "-patchposition-data-form input[name='patch_module']").val($("#preorder-detail-" + pid + "-patchposition-data-form input[name='patch_module']").data("default"));
|
||||
|
||||
$("#preorder-detail-" + pid + "-patchposition-port-form input[name='patch_port']").val($("#preorder-detail-" + pid + "-patchposition-port-form input[name='patch_port']").data("default"));
|
||||
|
||||
|
||||
$("#preorder-detail-" + pid + "-patchposition-data-form").toggle();
|
||||
$("#preorder-detail-" + pid + "-patchposition-string").toggle();
|
||||
|
||||
$("#preorder-detail-" + pid + "-patchposition-port-form").toggle();
|
||||
$("#preorder-detail-" + pid + "-patchposition-port").toggle();
|
||||
|
||||
$("#preorder-detail-" + pid + "-patchposition-edit").toggle();
|
||||
$("#preorder-detail-" + pid + "-patchposition-controls").toggle();
|
||||
|
||||
}
|
||||
|
||||
function savePortdata(pid) {
|
||||
if(!pid) return;
|
||||
|
||||
var cluster = $("#preorder-detail-" + pid + "-patchposition-data-form input[name='patch_cluster']").val();
|
||||
var shelf = $("#preorder-detail-" + pid + "-patchposition-data-form input[name='patch_shelf']").val();
|
||||
var module = $("#preorder-detail-" + pid + "-patchposition-data-form input[name='patch_module']").val();
|
||||
var port = $("#preorder-detail-" + pid + "-patchposition-port-form input[name='patch_port']").val();
|
||||
|
||||
$.post("<?=self::getUrl("Preorder", "Api")?>", {
|
||||
do: "savePatchposition",
|
||||
id: pid,
|
||||
cluster: cluster,
|
||||
shelf: shelf,
|
||||
module: module,
|
||||
port: port
|
||||
},
|
||||
(success) => {
|
||||
if(success.status == "OK") {
|
||||
var pid = success.result.id;
|
||||
var default_cluster = $("#preorder-detail-" + pid + "-patchposition-data-form input[name='patch_cluster']").data("default");
|
||||
var cluster = $("#preorder-detail-" + pid + "-patchposition-data-form input[name='patch_cluster']").val();
|
||||
var shelf = $("#preorder-detail-" + pid + "-patchposition-data-form input[name='patch_shelf']").val();
|
||||
var module = $("#preorder-detail-" + pid + "-patchposition-data-form input[name='patch_module']").val();
|
||||
var port = $("#preorder-detail-" + pid + "-patchposition-port-form input[name='patch_port']").val();
|
||||
|
||||
if(!cluster) cluster = default_cluster;
|
||||
|
||||
$("#preorder-detail-" + pid + "-patchposition-data-form input[name='patch_cluster']").data("default", cluster);
|
||||
$("#preorder-detail-" + pid + "-patchposition-data-form input[name='patch_shelf']").data("default", shelf);
|
||||
$("#preorder-detail-" + pid + "-patchposition-data-form input[name='patch_module']").data("default", module);
|
||||
$("#preorder-detail-" + pid + "-patchposition-port-form input[name='patch_port']").data("default", port);
|
||||
$("#preorder-detail-" + pid + "-patchposition-string").text(cluster + "-" + shelf + "-" + module);
|
||||
$("#preorder-detail-" + pid + "-patchposition-port").text(port);
|
||||
togglePortdata(pid);
|
||||
|
||||
}
|
||||
},
|
||||
"json"
|
||||
);
|
||||
}
|
||||
|
||||
function toggleStatusControl(pid, sid) {
|
||||
// set select to current status id
|
||||
$("#preorder-detail-status-" + pid + "-input select").val($("#preorder-detail-status-" + pid + "-text").data("status-id"));
|
||||
|
||||
// toggle controls
|
||||
$("#preorder-detail-status-" + pid + "-text").toggle();
|
||||
$("#preorder-detail-status-" + pid + "-input").toggle();
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
function savePreorderStatusControl(pid) {
|
||||
if(!Number.isInteger(pid) || pid < 1) {
|
||||
return false;
|
||||
}
|
||||
|
||||
var value = $("#preorder-detail-status-" + pid + "-input select").val();
|
||||
|
||||
//console.log("add opacity-5 to ")
|
||||
$("#preorder-" + pid + "-body").addClass("opacity-5");
|
||||
$("#preorder-" + pid + "-body .loader-big").show();
|
||||
|
||||
// reset loading overlay if request times out
|
||||
setTimeout(() => {
|
||||
$("#preorder-" + pid + "-body").removeClass("opacity-5");
|
||||
$("#preorder-" + pid + "-body .loader-big").hide();
|
||||
}, 5000);
|
||||
|
||||
$.post("<?=self::getUrl("Preorder","Api")?>",
|
||||
{
|
||||
'do': "updateStatus",
|
||||
id: pid,
|
||||
status_id: value
|
||||
},
|
||||
function(success) {
|
||||
if(success.status == "OK") {
|
||||
var updates = success.result.updates;
|
||||
//console.log(updates);
|
||||
|
||||
updates.forEach(function(u) {
|
||||
//console.log(u);
|
||||
// update detail status text
|
||||
$("#preorder-detail-status-" + u.id + "-statustext").text(u.code + " - " + u.text);
|
||||
$("#preorder-detail-status-" + u.id + "-text").addClass("text-success");
|
||||
setTimeout(() => { $("#preorder-detail-status-" + u.id + "-text").removeClass("text-success") }, 1500);
|
||||
|
||||
// update list status text
|
||||
$("#preorder-" + u.id + " .status").text(u.code + " - " + u.text);
|
||||
$("#preorder-" + u.id + " .status").addClass("text-success");
|
||||
setTimeout(() => { $("#preorder-" + u.id + " .status").removeClass("text-success") }, 1500);
|
||||
|
||||
// update status id data attribute
|
||||
$("#preorder-detail-status-" + u.id + "-text").data("status-id", u.sid);
|
||||
|
||||
if(u.bcode) {
|
||||
$("#preorder-detail-building-status-" + u.id).text(u.bcode + " - " + u.btext);
|
||||
}
|
||||
if(u.ucode) {
|
||||
$("#preorder-detail-unit-status-" + u.id).text(u.ucode + " - " + u.utext);
|
||||
}
|
||||
});
|
||||
/*
|
||||
if("preorder" in update) {
|
||||
// update detail status text
|
||||
$("#preorder-detail-status-" + pid + "-statustext").text(update.preorder.status.code + " - " + update.preorder.status.text);
|
||||
$("#preorder-detail-status-" + pid + "-text").addClass("text-success");
|
||||
setTimeout(() => { $("#preorder-detail-status-" + pid + "-text").removeClass("text-success") }, 1500);
|
||||
|
||||
// update list status text
|
||||
$("#preorder-" + pid + " .status").text(update.preorder.status.code + " - " + update.preorder.status.text);
|
||||
$("#preorder-" + pid + " .status").addClass("text-success");
|
||||
setTimeout(() => { $("#preorder-" + pid + " .status").removeClass("text-success") }, 1500);
|
||||
|
||||
// update status id data attribute
|
||||
$("#preorder-detail-status-" + pid + "-text").data("status-id", update.preorder.status.id);
|
||||
}
|
||||
|
||||
if("building" in update) {
|
||||
// update building status text
|
||||
$("#preorder-detail-building-status-" + pid).text(update.building.status.code + " - " + update.building.status.text);
|
||||
}
|
||||
if("unit" in update) {
|
||||
// update unit status text
|
||||
$("#preorder-detail-unit-status-" + pid).text(update.unit.status.code + " - " + update.unit.status.text);
|
||||
}
|
||||
*/
|
||||
toggleStatusControl(pid);
|
||||
|
||||
}
|
||||
|
||||
$("#preorder-" + pid + "-body").removeClass("opacity-5");
|
||||
$("#preorder-" + pid + "-body .loader-big").hide();
|
||||
},
|
||||
'json');
|
||||
}
|
||||
|
||||
function deleteWorkorder(pid) {
|
||||
console.log("in delete workorder");
|
||||
if(!Number.isInteger(pid) || pid < 1) {
|
||||
return false;
|
||||
}
|
||||
|
||||
$.post("<?=self::getUrl("Preorder","Api")?>",
|
||||
{
|
||||
'do': "deleteWorkorder",
|
||||
id: pid,
|
||||
},
|
||||
function(success) {
|
||||
if(success.status == "OK") {
|
||||
$("#preorder-detail-" + success.result.id + "-workorder td").each(function() {
|
||||
$(this).html("<em class='text-monospace'>--gelöscht--</em>");
|
||||
});
|
||||
|
||||
$("#preorder-detail-" + success.result.id + "-workorder-del").remove();
|
||||
}
|
||||
},
|
||||
'json');
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
</script>
|
||||
@@ -48,6 +48,8 @@ class Preorder extends mfBaseModel {
|
||||
$this->save();
|
||||
}
|
||||
|
||||
// run triggers based on new status
|
||||
$this->runStatusTrigger();
|
||||
// Cascade status changes down to adb_hausnummer and adb_wohneinheit
|
||||
$this->cascadeStatus();
|
||||
// Cascade status changes down all active preorders with the same hausnummer
|
||||
@@ -56,6 +58,59 @@ class Preorder extends mfBaseModel {
|
||||
$this->in_after_save--;
|
||||
}
|
||||
|
||||
public function runStatusTrigger() {
|
||||
if(!$this->id) return true;
|
||||
if($this->status_id == $this->_old_data->status_id) return true;
|
||||
|
||||
$this->log->debug(__METHOD__." running");
|
||||
|
||||
$new_status = $this->getProperty("status");
|
||||
$old_status = new Preorderstatus($this->_old_data->status_id);
|
||||
|
||||
if(!$new_status->id || !$old_status->id) return true;
|
||||
$this->log->debug(__METHOD__." status changed from '".($old_status ? $old_status->code : "")."' to '".$new_status->code."'");
|
||||
|
||||
if($new_status->code <= $old_status->code) return true;
|
||||
|
||||
if(!defined("TT_PREORDER_STATUS_MATRIX") || !TT_PREORDER_STATUS_MATRIX) {
|
||||
$this->log->error("config TT_PREORDER_STATUS_MATRIX not defined!");
|
||||
}
|
||||
|
||||
// run every trigger bnetween old and new status code
|
||||
foreach(TT_PREORDER_STATUS_MATRIX as $intermediate_code => $status) {
|
||||
if($intermediate_code <= $old_status->code) continue;
|
||||
if($intermediate_code > $new_status->code) continue;
|
||||
|
||||
$code = $intermediate_code;
|
||||
// find trigger for new status code
|
||||
$classname = "Preorder_Statustrigger_$code";
|
||||
$filepath = __DIR__."/statustrigger/$code.php";
|
||||
|
||||
$this->log->debug(__METHOD__.": Looking for $classname in $filepath");
|
||||
|
||||
if(!file_exists($filepath)) {
|
||||
$this->log->debug(__METHOD__.": $filepath not found");
|
||||
continue;
|
||||
}
|
||||
|
||||
require_once $filepath;
|
||||
|
||||
if(!class_exists($classname)) {
|
||||
$this->log->debug(__METHOD__.": $classname not found");
|
||||
continue;
|
||||
}
|
||||
|
||||
$trigger = new $classname($this, $new_status);
|
||||
$trigger->run();
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
return true;
|
||||
|
||||
}
|
||||
|
||||
/*
|
||||
* Cascade status changes down to adb_hausnummer and adb_wohneinheit
|
||||
*/
|
||||
@@ -400,6 +455,7 @@ class Preorder extends mfBaseModel {
|
||||
|
||||
$hausnummer = $this->getProperty("adb_hausnummer");
|
||||
$wohneinheit = $this->getProperty("adb_wohneinheit");
|
||||
$campaign = $this->getProperty("campaign");
|
||||
|
||||
$a = [];
|
||||
$a["ciftoken"] = $this->ciftoken;
|
||||
|
||||
@@ -1016,6 +1016,9 @@ class PreorderController extends mfBaseController {
|
||||
"text" => $affected_preorder->status->name,
|
||||
"bcode" => $affected_preorder->adb_hausnummer->status->code,
|
||||
"btext" => $affected_preorder->adb_hausnummer->status->name,
|
||||
"ciftoken" => $affected_preorder->ciftoken,
|
||||
"cifurl" => $affected_preorder->cifurl,
|
||||
"cifcableurl" => $affected_preorder->cifcableurl,
|
||||
];
|
||||
if($preorder->adb_wohneinheit_id) {
|
||||
$up["ucode"] = $affected_preorder->adb_wohneinheit->status->code;
|
||||
|
||||
46
application/Preorder/statustrigger/145.php
Normal file
46
application/Preorder/statustrigger/145.php
Normal file
@@ -0,0 +1,46 @@
|
||||
<?php
|
||||
|
||||
class Preorder_Statustrigger_145 {
|
||||
private $log;
|
||||
|
||||
private $preorder;
|
||||
private $new_status;
|
||||
|
||||
public function __construct(Preorder $preorder, Preorderstatus $new_status) {
|
||||
$this->log = mfLoghandler::singleton();
|
||||
|
||||
$this->preorder = $preorder;
|
||||
$this->new_status = $new_status;
|
||||
}
|
||||
|
||||
public function run() {
|
||||
$this->log->debug(__METHOD__.": running trigger");
|
||||
|
||||
$changes = false;
|
||||
|
||||
if(!$this->preorder->ciftoken) {
|
||||
$this->preorder->ciftoken = $this->preorder->createCiftoken();
|
||||
$changes = true;
|
||||
}
|
||||
|
||||
/*if(!$this->preorder->ciftoken) {
|
||||
$this->log->warning("Error creating ciftoken for preorder ".$this->preorder->id);
|
||||
return true;
|
||||
}*/
|
||||
if(!$this->preorder->cifurl) {
|
||||
$this->preorder->cifurl = $this->preorder->generateCifUrl();
|
||||
$changes = true;
|
||||
}
|
||||
|
||||
if(!$this->preorder->cifcableurl) {
|
||||
$this->preorder->cifcableurl = $this->preorder->generateCifCableUrl();
|
||||
$changes = true;
|
||||
}
|
||||
|
||||
if($changes) {
|
||||
$this->preorder->save();
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
||||
@@ -6,6 +6,7 @@ class UserToken extends mfBaseController
|
||||
public static function checkToken()
|
||||
{
|
||||
if (isset($_COOKIE[MFAPPNAME . '_remembertoken'])) {
|
||||
$refresh = false;
|
||||
$cookie = explode(':', $_COOKIE[MFAPPNAME . '_remembertoken']);
|
||||
if (count($cookie) === 2) {
|
||||
$db = new FronkDB();
|
||||
|
||||
@@ -14,6 +14,8 @@ tags:
|
||||
description: Abfrage von GWR-Daten
|
||||
- name: preorder
|
||||
description: Abfragen und Operationen zu Vorbestellungen
|
||||
- name: Customer Installation Feedback
|
||||
description: Kundenfeedback Lehrrohrverlegung
|
||||
paths:
|
||||
/addressdb/getClusters:
|
||||
get:
|
||||
@@ -806,6 +808,62 @@ paths:
|
||||
description: Unauthorized
|
||||
'404':
|
||||
description: Vorbestellung nicht gefunden
|
||||
/preorder/customerInstallationFeedback:
|
||||
get:
|
||||
tags:
|
||||
- Customer Installation Feedback
|
||||
summary: Anschluss-/Kundendaten zu ciftoken
|
||||
description: Gibt Anschluss-/Kundendaten zum abgefragten CIF-Token zurück. Dient zum Validieren des Anschlusses durch den Kunden
|
||||
operationId: getCifData
|
||||
parameters:
|
||||
- name: ciftoken
|
||||
in: query
|
||||
description: Client Installation Feedback Token
|
||||
required: true
|
||||
schema:
|
||||
type: string
|
||||
responses:
|
||||
'200':
|
||||
description: Successful operation
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
type: object
|
||||
properties:
|
||||
status:
|
||||
type: string
|
||||
description: Status string
|
||||
example: OK
|
||||
result:
|
||||
$ref: '#/components/schemas/cifResponseData'
|
||||
'400':
|
||||
description: ciftoken missing
|
||||
'401':
|
||||
description: Unauthorized
|
||||
'404':
|
||||
description: Invalid ciftoken
|
||||
post:
|
||||
tags:
|
||||
- Customer Installation Feedback
|
||||
summary: Bestellung auf Status 200 - Rohr im Gebäude setzen
|
||||
description: Setzt Status der Bestellung auf 200 - Rohr im Gebäude. Wird gesetzt wenn beim Kunden die Lehrrohrinstallation abgeschlossen ist. (CIF)
|
||||
operationId: setCifData
|
||||
parameters:
|
||||
- name: ciftoken
|
||||
in: query
|
||||
description: Client Installation Feedback Token
|
||||
required: true
|
||||
schema:
|
||||
type: string
|
||||
responses:
|
||||
'200':
|
||||
description: Successful operation
|
||||
'400':
|
||||
description: ciftoken missing
|
||||
'401':
|
||||
description: Unauthorized
|
||||
'404':
|
||||
description: Invalid ciftoken
|
||||
components:
|
||||
schemas:
|
||||
timestampString:
|
||||
@@ -1595,6 +1653,75 @@ components:
|
||||
type: integer
|
||||
description: Zeitpunkt der letzten Bearbeitung der Bestellung in Sekunden seit der Unix Epoche
|
||||
example: 1675206000
|
||||
cifResponseData:
|
||||
type: object
|
||||
properties:
|
||||
ciftoken:
|
||||
code:
|
||||
type: string
|
||||
description: Eindeutiger Code der Vorbestellung
|
||||
example: A1B2C3D4
|
||||
oaid:
|
||||
type: string
|
||||
description: Open Access ID der Wohneinheit
|
||||
example: AT-9999-abcdef01.001
|
||||
company:
|
||||
type: string
|
||||
description: Firmenname Kunde
|
||||
example:
|
||||
uid:
|
||||
type: string
|
||||
description: UID (wenn Firmenkunde)
|
||||
example:
|
||||
firstname:
|
||||
type: string
|
||||
description: Vorname Kunde
|
||||
example: Vor
|
||||
lastname:
|
||||
type: string
|
||||
description: Nachname Kunde
|
||||
example: Nachname
|
||||
street:
|
||||
type: string
|
||||
description: Straße Kunde
|
||||
example: Beispielstraße
|
||||
housenumber:
|
||||
type: string
|
||||
description: Hausnummer Kunde
|
||||
example: 42
|
||||
zip:
|
||||
type: string
|
||||
description: PLZ Kunde
|
||||
example: 9999
|
||||
city:
|
||||
type: string
|
||||
description: Gemeinde oder Ortschaft
|
||||
example: Gemeinde/Ort
|
||||
municipality:
|
||||
type: string
|
||||
description: Gemeinde
|
||||
example: Gemeinde
|
||||
district:
|
||||
type: string
|
||||
description: Ortschaft/Ortsteil
|
||||
example: Ortschaft/Ortsteil
|
||||
block:
|
||||
type: string
|
||||
description: Adresszusatz
|
||||
example: null
|
||||
stiege:
|
||||
type: string
|
||||
description: Adresszusatz
|
||||
example: null
|
||||
stock:
|
||||
type: string
|
||||
description: Adresszusatz
|
||||
example: null
|
||||
tuer:
|
||||
type: string
|
||||
description: Adresszusatz
|
||||
example: null
|
||||
|
||||
securitySchemes:
|
||||
api_key_header:
|
||||
type: apiKey
|
||||
|
||||
Reference in New Issue
Block a user