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->RegisterVariableInteger('VisuTariffEnd', 'Tarif Enddatum', '~UnixTimestamp', 13);
$this->RegisterVariableFloat('VisuTariffPrice', 'Tarif Rp/Einheit', 'BELEVO.TariffPrice', 14); $this->RegisterVariableFloat('VisuTariffPrice', 'Tarif Rp/Einheit', 'BELEVO.TariffPrice', 14);
$this->RegisterVariableString('VisuTariffStatus', 'Tarif Status', '', 15); $this->RegisterVariableString('VisuTariffStatus', 'Tarif Status', '', 15);
$this->RegisterVariableString('VisuTariffPayload', 'Tarif Payload', '', 16);
$this->EnableAction('FromDate'); $this->EnableAction('FromDate');
$this->EnableAction('ToDate'); $this->EnableAction('ToDate');
$this->EnableAction('VisuTariffType'); $this->EnableAction('VisuTariffType');
$this->EnableAction('VisuTariffStart'); $this->EnableAction('VisuTariffStart');
$this->EnableAction('VisuTariffEnd'); $this->EnableAction('VisuTariffEnd');
$this->EnableAction('VisuTariffPrice'); $this->EnableAction('VisuTariffPrice');
$this->EnableAction('VisuTariffPayload');
$this->RegisterScript( $this->RegisterScript(
'StartBilling', 'StartBilling',
@@ -102,13 +104,15 @@ class Abrechnung extends IPSModule
$this->RegisterVariableInteger('VisuTariffEnd', 'Tarif Enddatum', '~UnixTimestamp', 13); $this->RegisterVariableInteger('VisuTariffEnd', 'Tarif Enddatum', '~UnixTimestamp', 13);
$this->RegisterVariableFloat('VisuTariffPrice', 'Tarif Rp/Einheit', 'BELEVO.TariffPrice', 14); $this->RegisterVariableFloat('VisuTariffPrice', 'Tarif Rp/Einheit', 'BELEVO.TariffPrice', 14);
$this->RegisterVariableString('VisuTariffStatus', 'Tarif Status', '', 15); $this->RegisterVariableString('VisuTariffStatus', 'Tarif Status', '', 15);
$this->RegisterVariableString('VisuTariffPayload', 'Tarif Payload', '', 16);
$this->EnableAction('VisuTariffType'); $this->EnableAction('VisuTariffType');
$this->EnableAction('VisuTariffStart'); $this->EnableAction('VisuTariffStart');
$this->EnableAction('VisuTariffEnd'); $this->EnableAction('VisuTariffEnd');
$this->EnableAction('VisuTariffPrice'); $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); $this->HideObjectByIdent($ident);
} }
} }
@@ -344,6 +348,7 @@ class Abrechnung extends IPSModule
} }
$instanceID = (int)$this->InstanceID; $instanceID = (int)$this->InstanceID;
$payloadID = (int)$this->GetIDForIdent('VisuTariffPayload');
$status = $this->h(@GetValue($this->GetIDForIdent('VisuTariffStatus'))); $status = $this->h(@GetValue($this->GetIDForIdent('VisuTariffStatus')));
$html = " $html = "
@@ -410,14 +415,17 @@ root.querySelector('[data-action=save]').onclick=function(){
rows.push({unit_type:type,start:start,end:end,price:price}); rows.push({unit_type:type,start:start,end:end,price:price});
} }
}); });
var payload=JSON.stringify(rows);
status.textContent='Speichern...'; 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()})}) if(typeof requestAction==='function'){
.then(function(r){return r.json();}) requestAction(" . $payloadID . ",payload);
.then(function(j){ status.textContent='Speichern gesendet.';
if(j.error){throw new Error(j.error.message||'API-Fehler');} }else if(window.parent&&typeof window.parent.requestAction==='function'){
status.textContent=(typeof j.result==='string'&&j.result)?j.result:'Gespeichert.'; window.parent.requestAction(" . $payloadID . ",payload);
}) status.textContent='Speichern gesendet.';
.catch(function(e){status.textContent='Fehler: '+e.message;}); }else{
status.textContent='Fehler: requestAction nicht verfügbar.';
}
}; };
})(); })();
</script> </script>
@@ -523,6 +531,19 @@ root.querySelector('[data-action=save]').onclick=function(){
SetValue($this->GetIDForIdent($Ident), $Value); SetValue($this->GetIDForIdent($Ident), $Value);
break; 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': case 'SaveVisuTariff':
try { try {
$message = $this->SaveVisuTariffFromVariables(); $message = $this->SaveVisuTariffFromVariables();