Preorder: order_date can be changed now

This commit is contained in:
Frank Schubert
2025-03-12 17:10:21 +01:00
parent baf610ab28
commit 519a4e3713
3 changed files with 91 additions and 0 deletions

View File

@@ -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("<?=self::getUrl("Preorder","Api")?>",
{
'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;

View File

@@ -72,6 +72,18 @@
</tr><tr>
<th>Partner:</th>
<td><?=$preorder->partner->getCompanyOrName()?></td>
</tr><tr>
<th>Bestelldatum:</th>
<td>
<span id="preorder-detail-orderdate-<?=$preorder->id?>-text" data-orderdate="<?=$preorder->order_date?>"><span id="preorder-detail-orderdate-<?=$preorder->id?>-textpart"><?=date("d.m.Y",$preorder->order_date)?></span> <a href="#" onclick="return toggleOrderdateControl(<?=$preorder->id?>)"><i class="fas fa-fw fa-edit"></i></a></span>
<div class="input-group" id="preorder-detail-orderdate-<?=$preorder->id?>-input" style="display:none">
<input type="text" class="form-control datepicker" value="<?=date("d.m.Y",$preorder->order_date)?>" />
<div class="input-group-append">
<button type="button" class="btn btn-primary" title="Speichern" onclick="savePreorderOrderdateControl(<?=$preorder->id?>)"><i class="fas fa-check"></i></button>
<button type="button" class="btn btn-secondary" title="Abbrechen" onclick="toggleOrderdateControl(<?=$preorder->id?>)"><i class="fas fa-times"></i></button>
</div>
</div>
</td>
</tr><tr>
<th>Erstellt:</th>
<td class="text-monospace"><?=date("d.m.Y H:i",$preorder->create)?> (<?=$preorder->creator->name?>)</td>

View File

@@ -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;