feat(payments): Block Zahlungsvorgang im Bestell-Editor, Storno-Felder bei automatischem Storno
- Bestell-Editor rechts: Zahlungsvorgang (Status, Grund, Transaktions-ID, Referenz, Betraege, Zeiten, Verlauf aus PG payment_log), anbieterneutral ueber payment_transactions (Payments\Overview, Log::forOrder) - markCancelled() fuellt Stornodatum, Stornostatus, Stornogrund und Storno-Nachricht der Bestellung (nur leere Felder) - neuer Stornogrund 'Zahlung beim Anbieter nicht abgeschlossen' (install.sql) - reconcile: 404-Grund lesbar mit Alter des Vorgangs
This commit is contained in:
@@ -483,6 +483,56 @@
|
||||
<input style="width:300px;" type="text" readonly="readonly" value="{$order->paymorrow_response_result_code}" />
|
||||
{/if}
|
||||
</div>
|
||||
|
||||
{if $payment_tx}
|
||||
{* 22.09.2026 -- Zahlungsvorgang aus core/payments (anbieterneutral: PayPal v2, spaeter Mollie) *}
|
||||
<div class="info_block" id="payment_tx_block">
|
||||
<div class="edit_title">Zahlungsvorgang {$payment_tx.provider_label|escape}</div>
|
||||
|
||||
<label>Status</label>
|
||||
<input style="width:300px;{if $payment_tx.status == 'paid'}color:green;{elseif $payment_tx.status == 'mismatch'}color:red;font-weight:bold;{elseif $payment_tx.status == 'cancelled'}color:#990000;{/if}" type="text" readonly="readonly" value="{$payment_tx.status_label|escape}" />
|
||||
|
||||
{if $payment_tx.detail}
|
||||
<label>Grund / Quelle</label>
|
||||
<textarea style="width:300px;" rows="3" readonly="readonly">{$payment_tx.detail|escape}</textarea>
|
||||
{/if}
|
||||
|
||||
<label>Transaktions-ID (Anbieter)</label>
|
||||
<input style="width:300px;" type="text" readonly="readonly" value="{$payment_tx.capture_id|escape}" onclick="this.select();" />
|
||||
|
||||
<label>Vorgangs-Referenz (Anbieter)</label>
|
||||
<input style="width:300px;" type="text" readonly="readonly" value="{$payment_tx.reference|escape}" onclick="this.select();" />
|
||||
|
||||
<label>Sollbetrag / gezahlt</label>
|
||||
<input style="width:300px;" type="text" readonly="readonly" value="{$payment_tx.expected_amount|escape}{if $payment_tx.paid_amount} / {$payment_tx.paid_amount|escape}{/if}" />
|
||||
|
||||
<label>Gestartet</label>
|
||||
<input style="width:300px;" type="text" readonly="readonly" value="{$payment_tx.created_at|escape}" />
|
||||
|
||||
{if $payment_tx.paid_at}
|
||||
<label>Bezahlt am</label>
|
||||
<input style="width:300px;" type="text" readonly="readonly" value="{$payment_tx.paid_at|escape}" />
|
||||
{else}
|
||||
<label>Letzte Änderung</label>
|
||||
<input style="width:300px;" type="text" readonly="readonly" value="{$payment_tx.updated_at|escape}" />
|
||||
{/if}
|
||||
|
||||
{if $payment_tx.history}
|
||||
<label>Verlauf</label>
|
||||
<div style="width:300px;max-height:220px;overflow-y:auto;background:#fff;border:1px solid #ddd;font-size:11px;line-height:1.35;">
|
||||
{foreach $payment_tx.history as $h}
|
||||
<div style="margin:0;padding:3px 5px;border-bottom:1px solid #eee;">
|
||||
<span style="color:#666;margin:0;">{$h.zeit|escape}</span><br />
|
||||
<span style="margin:0;">{$h.aktion|escape}</span>
|
||||
{if $h.status}<span style="color:#003580;margin:0;"> · {$h.status|escape}</span>{/if}
|
||||
{if $h.http}<span style="color:#999;margin:0;"> · {$h.http|escape}</span>{/if}
|
||||
{if $h.detail}<br /><span style="color:#990000;margin:0;">{$h.detail|escape}</span>{/if}
|
||||
</div>
|
||||
{/foreach}
|
||||
</div>
|
||||
{/if}
|
||||
</div>
|
||||
{/if}
|
||||
|
||||
<div class="info_block">
|
||||
<div class="edit_title">Rechnung</div>
|
||||
|
||||
Reference in New Issue
Block a user