no message

This commit is contained in:
2026-06-28 12:22:57 +02:00
parent 6950b924ac
commit 4f1026f39c
+29 -8
View File
@@ -69,12 +69,14 @@ class Abrechnung extends IPSModule
$this->RegisterVariableInteger('VisuTariffEnd', 'Tarif Enddatum', '~UnixTimestamp', 13);
$this->RegisterVariableFloat('VisuTariffPrice', 'Tarif Rp/Einheit', 'BELEVO.TariffPrice', 14);
$this->RegisterVariableString('VisuTariffStatus', 'Tarif Status', '', 15);
$this->RegisterVariableString('VisuTariffPayload', 'Tarif Payload', '', 16);
$this->EnableAction('FromDate');
$this->EnableAction('ToDate');
$this->EnableAction('VisuTariffType');
$this->EnableAction('VisuTariffStart');
$this->EnableAction('VisuTariffEnd');
$this->EnableAction('VisuTariffPrice');
$this->EnableAction('VisuTariffPayload');
$this->RegisterScript(
'StartBilling',
@@ -102,13 +104,15 @@ class Abrechnung extends IPSModule
$this->RegisterVariableInteger('VisuTariffEnd', 'Tarif Enddatum', '~UnixTimestamp', 13);
$this->RegisterVariableFloat('VisuTariffPrice', 'Tarif Rp/Einheit', 'BELEVO.TariffPrice', 14);
$this->RegisterVariableString('VisuTariffStatus', 'Tarif Status', '', 15);
$this->RegisterVariableString('VisuTariffPayload', 'Tarif Payload', '', 16);
$this->EnableAction('VisuTariffType');
$this->EnableAction('VisuTariffStart');
$this->EnableAction('VisuTariffEnd');
$this->EnableAction('VisuTariffPrice');
$this->EnableAction('VisuTariffPayload');
foreach (['VisuTariffType', 'VisuTariffStart', 'VisuTariffEnd', 'VisuTariffPrice', 'VisuTariffStatus', 'SaveVisuTariff', 'DeleteVisuTariff'] as $ident) {
foreach (['VisuTariffType', 'VisuTariffStart', 'VisuTariffEnd', 'VisuTariffPrice', 'VisuTariffStatus', 'VisuTariffPayload', 'SaveVisuTariff', 'DeleteVisuTariff'] as $ident) {
$this->HideObjectByIdent($ident);
}
}
@@ -344,6 +348,7 @@ class Abrechnung extends IPSModule
}
$instanceID = (int)$this->InstanceID;
$payloadID = (int)$this->GetIDForIdent('VisuTariffPayload');
$status = $this->h(@GetValue($this->GetIDForIdent('VisuTariffStatus')));
$html = "
@@ -410,14 +415,17 @@ root.querySelector('[data-action=save]').onclick=function(){
rows.push({unit_type:type,start:start,end:end,price:price});
}
});
var payload=JSON.stringify(rows);
status.textContent='Speichern...';
fetch('/api/',{method:'POST',headers:{'Content-Type':'application/json'},body:JSON.stringify({jsonrpc:'2.0',method:'IPS_RequestAction',params:[" . $instanceID . ",'SaveTariffTable',JSON.stringify(rows)],id:Date.now()})})
.then(function(r){return r.json();})
.then(function(j){
if(j.error){throw new Error(j.error.message||'API-Fehler');}
status.textContent=(typeof j.result==='string'&&j.result)?j.result:'Gespeichert.';
})
.catch(function(e){status.textContent='Fehler: '+e.message;});
if(typeof requestAction==='function'){
requestAction(" . $payloadID . ",payload);
status.textContent='Speichern gesendet.';
}else if(window.parent&&typeof window.parent.requestAction==='function'){
window.parent.requestAction(" . $payloadID . ",payload);
status.textContent='Speichern gesendet.';
}else{
status.textContent='Fehler: requestAction nicht verfügbar.';
}
};
})();
</script>
@@ -523,6 +531,19 @@ root.querySelector('[data-action=save]').onclick=function(){
SetValue($this->GetIDForIdent($Ident), $Value);
break;
case 'VisuTariffPayload':
SetValue($this->GetIDForIdent('VisuTariffPayload'), (string)$Value);
try {
$message = $this->SaveTariffTableFromPayload($Value);
SetValue($this->GetIDForIdent('VisuTariffStatus'), $message);
echo $message;
} catch (Throwable $e) {
$message = 'Fehler beim Speichern der Tarifliste: ' . $e->getMessage();
SetValue($this->GetIDForIdent('VisuTariffStatus'), $message);
echo $message;
}
break;
case 'SaveVisuTariff':
try {
$message = $this->SaveVisuTariffFromVariables();