From 519a4e3713101b8139cc8f3a083e75402b235d84 Mon Sep 17 00:00:00 2001 From: Frank Schubert Date: Wed, 12 Mar 2025 17:10:21 +0100 Subject: [PATCH] Preorder: order_date can be changed now --- Layout/default/Preorder/Index.php | 56 +++++++++++++++++++ .../Preorder/include/preorder-detail.php | 12 ++++ application/Preorder/PreorderController.php | 23 ++++++++ 3 files changed, 91 insertions(+) diff --git a/Layout/default/Preorder/Index.php b/Layout/default/Preorder/Index.php index 7053cff9c..e3a4002d2 100644 --- a/Layout/default/Preorder/Index.php +++ b/Layout/default/Preorder/Index.php @@ -1139,6 +1139,62 @@ $pagination_entity_name = "Vorbestellungen"; 'json'); } + function toggleOrderdateControl(pid) { + // set select to current status id + //$("#preorder-detail-orderdate-" + pid + "-input select").val($("#preorder-detail-orderdate-" + pid + "-text").data("orderdate")); + + // toggle controls + $("#preorder-detail-orderdate-" + pid + "-text").toggle(); + $("#preorder-detail-orderdate-" + pid + "-input").toggle(); + + return false; + } + + function savePreorderOrderdateControl(pid) { + if(!Number.isInteger(pid) || pid < 1) { + return false; + } + + var value = $("#preorder-detail-orderdate-" + pid + "-input input").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("", + { + 'do': "saveOrderdate", + id: pid, + order_date: value + }, + function(success) { + if(success.status == "OK") { + console.log(success); + var new_orderdate = success.result.order_date; + var pid = success.result.preorder_id; + //console.log(updates); + $("#preorder-detail-orderdate-" + pid + "-textpart").text(new_orderdate); + $("#preorder-detail-orderdate-" + pid + "-input").val(new_orderdate); + + $("#preorder-detail-orderdate-" + pid + "-text").addClass("text-success"); + setTimeout(() => { $("#preorder-detail-orderdate-" + pid + "-text").removeClass("text-success") }, 1500); + + toggleOrderdateControl(pid); + + } + + $("#preorder-" + pid + "-body").removeClass("opacity-5"); + $("#preorder-" + pid + "-body .loader-big").hide(); + }, + 'json'); + } + function createWorkorder(pid) { if(!Number.isInteger(pid) || pid < 1) { return false; diff --git a/Layout/default/Preorder/include/preorder-detail.php b/Layout/default/Preorder/include/preorder-detail.php index accb01668..374d95f6c 100644 --- a/Layout/default/Preorder/include/preorder-detail.php +++ b/Layout/default/Preorder/include/preorder-detail.php @@ -72,6 +72,18 @@ Partner: partner->getCompanyOrName()?> + + Bestelldatum: + + order_date)?> + + Erstellt: create)?> (creator->name?>) diff --git a/application/Preorder/PreorderController.php b/application/Preorder/PreorderController.php index d7eada23b..1def2ffe4 100644 --- a/application/Preorder/PreorderController.php +++ b/application/Preorder/PreorderController.php @@ -1061,6 +1061,9 @@ class PreorderController extends mfBaseController { case "addWorkorderRemark": $return = $this->addWorkorderRemarkApi(); break; + case "saveOrderdate": + $return = $this->saveOrderdateApi(); + break; default: $return = false; } @@ -1074,6 +1077,26 @@ class PreorderController extends mfBaseController { $this->returnJson($data); } + private function saveOrderdateApi() { + $preorder_id = $this->request->id; + $order_date = $this->request->order_date; + + $preorder = new Preorder($preorder_id); + if(!$preorder->id) { + $this->log->debug(__METHOD__.": preorder ($preorder_id) not found"); + return false; + } + + $orderdate_ts = Layout::dateToInt($order_date); + $preorder->order_date = $orderdate_ts; + if(!$preorder->save()) { + $this->log->debug(__METHOD__.": error saving orderdate"); + return false; + } + + return ["message" => "Orderdate saved successfully", "preorder_id" => $preorder_id, "order_date" => $order_date]; + } + private function addWorkorderRemarkApi() { $preorder_id = $this->request->preorder_id; $workorder_id = $this->request->workorder_id;