Files
OpenCart3/upload/admin/view/template/extension/payment/payanyway.twig
T
2026-10-26 17:44:54 +03:00

388 lines
20 KiB
Twig
Executable File

{{ header }} {{ column_left }}
<div id="content">
<div class="page-header">
<div class="container-fluid">
<div class="pull-right">
<button type="submit" form="form-payment" data-toggle="tooltip" title="{{ button_save }}"
class="btn btn-primary"><i class="fa fa-save"></i></button>
<a href="{{ cancel }}" data-toggle="tooltip" title="{{ button_cancel }}" class="btn btn-default"><i
class="fa fa-reply"></i></a></div>
<h1>{{ heading_title }}</h1>
<ul class="breadcrumb">
{% for breadcrumb in breadcrumbs %}
<li><a href="{{ breadcrumb.href }}">{{ breadcrumb.text }}</a></li>
{% endfor %}
</ul>
</div>
</div>
<div class="container-fluid">
{% if warning_ocmod %}
<div class="alert alert-warning"><i class="fa fa-exclamation-triangle"></i> {{ warning_ocmod }}</div>
{% endif %}
{% if warning_receipt_email %}
<div class="alert alert-warning"><i class="fa fa-exclamation-triangle"></i> {{ warning_receipt_email }}</div>
{% endif %}
{% if error_warning %}
<div class="alert alert-danger"><i class="fa fa-exclamation-circle"></i> {{ error_warning }}
<button type="button" class="close" data-dismiss="alert">&times;</button>
</div>
{% endif %}
<div class="panel panel-default">
<div class="panel-heading">
<h3 class="panel-title"><i class="fa fa-pencil"></i> {{ text_edit }}</h3>
</div>
<div class="panel-heading text-center">
<a href="https://www.payanyway.ru/" target="_blank">
<img src="view/image/payment/payanyway.png" alt="PayAnyWay" title="PayAnyWay" width="336" height="50"/>
</a>
</div>
<div class="panel-body">
<form action="{{ action }}" method="post" enctype="multipart/form-data" id="form-payment"
class="form-horizontal">
{# Вкл/выкл платежного модуля #}
<div class="form-group">
<div class="col-sm-10 col-sm-offset-2">
<div class="form-check" style="display: flex; column-gap: 8px;">
<input type="hidden" name="payment_payanyway_status" value="0"/>
<input class="form-check-input" type="checkbox" name="payment_payanyway_status" id="input-status"
value="1"
{% if payment_payanyway_status == "1" %} checked{% endif %}>
<label class="form-check-label" for="input-status">{{ entry_status_label }}</label>
</div>
</div>
</div>
{# Номер счета #}
<div class="form-group required">
<label class="col-sm-2 control-label" for="input-account">{{ entry_account_label }}</label>
<div class="col-sm-10">
<input type="number" oninput="this.value = this.value.replace(/[^0-9]/g, '')" step="1"
name="payment_payanyway_account" value="{{ payment_payanyway_account }}"
placeholder="{{ entry_account_description }}" id="input-account" class="form-control"/>
{% if error_account %}
<div class="text-danger">{{ error_account }}</div>
{% endif %}
</div>
</div>
{# Код проверки целостности данных #}
<div class="form-group required">
<label class="col-sm-2 control-label" for="input-integrity-code">{{ entry_integrity_code_label }}</label>
<div class="col-sm-10">
<div class="input-group">
<input type="password" name="payment_payanyway_integrity_code" value=""
placeholder="{{ integrity_code_placeholder }}" id="input-integrity-code"
class="form-control" autocomplete="off"/>
<span class="input-group-btn">
<button type="button" class="btn btn-default" id="button-integrity-code-toggle"
data-toggle="tooltip" title="{{ button_integrity_code_toggle }}"><i class="fa fa-eye"></i></button>
</span>
</div>
{% if error_integrity_code %}
<div class="text-danger">{{ error_integrity_code }}</div>
{% endif %}
</div>
</div>
{# Сервер платежей #}
<div class="form-group">
<label class="col-sm-2 control-label" for="input-server">{{ entry_server_label }}</label>
<div class="col-sm-10">
<select name="payment_payanyway_server" id="input-server" class="form-control">
<option value="prod" {% if payment_payanyway_server == 'prod' %} selected="selected" {% endif %}>{{ entry_server_prod_label }}</option>
<option value="demo" {% if payment_payanyway_server == 'demo' %} selected="selected" {% endif %}>{{ entry_server_demo_label }}</option>
</select>
</div>
</div>
{# Тестовый режим #}
<div class="form-group">
<div class="col-sm-10 col-sm-offset-2">
<div class="form-check" style="display: flex; column-gap: 8px;">
<input type="hidden" name="payment_payanyway_test_mode" value="0"/>
<input class="form-check-input" type="checkbox" name="payment_payanyway_test_mode" id="input-test-mode"
value="1"
{% if payment_payanyway_test_mode == "1" %} checked{% endif %}>
<label class="form-check-label" for="input-test-mode">{{ entry_test_mode_label }}</label>
</div>
<p class="help-block">{{ help_test_mode }}</p>
</div>
</div>
{# Фискализация чеков #}
<div class="form-group">
<div class="col-sm-10 col-sm-offset-2">
<div class="form-check" style="display: flex; column-gap: 8px;">
<input type="hidden" name="payment_payanyway_fiscalization" value="0"/>
<input class="form-check-input" type="checkbox" name="payment_payanyway_fiscalization"
id="input-fiscalization" value="1"
{% if payment_payanyway_fiscalization == "1" %} checked{% endif %}>
<label class="form-check-label" for="input-fiscalization">{{ entry_fiscalization_label }}</label>
</div>
<p class="help-block">{{ help_fiscalization }}</p>
</div>
</div>
{# Поля чека — только при фискализации. Скрываются, а не блокируются: заблокированное
поле браузер не отправляет, и значение потерялось бы. #}
<div id="fiscalization-fields">
{# Email для чеков #}
<div class="form-group required">
<label class="col-sm-2 control-label" for="input-receipt-email">{{ entry_receipt_email_label }}</label>
<div class="col-sm-10">
<input type="email" name="payment_payanyway_receipt_email" value="{{ payment_payanyway_receipt_email }}"
placeholder="shop@example.ru" id="input-receipt-email" class="form-control" maxlength="64"/>
<p class="help-block">{{ help_receipt_email }}</p>
{% if error_receipt_email %}
<div class="text-danger">{{ error_receipt_email }}</div>
{% endif %}
</div>
</div>
{# НДС #}
<div class="form-group">
<label class="col-sm-2 control-label" for="input-vat-rate">{{ entry_vat_rate_label }}</label>
<div class="col-sm-10">
<select name="payment_payanyway_vat_rate" id="input-vat-rate" class="form-control">
{% for vat_id, label in payment_payanyway_vat_rates %}
<option value="{{ vat_id }}"
{% if vat_id == payment_payanyway_vat_rate %}selected="selected"{% endif %}>
{{ label }}
</option>
{% endfor %}
</select>
</div>
</div>
{# Признак способа расчёта #}
<div class="form-group">
<label class="col-sm-2 control-label" for="input-payment-method">{{ entry_payment_method_label }}</label>
<div class="col-sm-10">
<select name="payment_payanyway_payment_method" id="input-payment-method" class="form-control">
{% for value, label in payment_payanyway_payment_methods %}
<option value="{{ value }}" {% if value == payment_payanyway_payment_method %}selected="selected"{% endif %}>{{ label }}</option>
{% endfor %}
</select>
</div>
</div>
{# Признак предмета расчёта #}
<div class="form-group">
<label class="col-sm-2 control-label" for="input-payment-object">{{ entry_payment_object_label }}</label>
<div class="col-sm-10">
<select name="payment_payanyway_payment_object" id="input-payment-object" class="form-control">
{% for value, label in payment_payanyway_payment_objects %}
<option value="{{ value }}" {% if value == payment_payanyway_payment_object %}selected="selected"{% endif %}>{{ label }}</option>
{% endfor %}
</select>
</div>
</div>
</div>
{# Валюта платежа #}
<div class="form-group">
<label class="col-sm-2 control-label" for="input-currency">{{ entry_currency_label }}</label>
<div class="col-sm-10">
<select name="payment_payanyway_currency" id="input-currency" class="form-control">
{% for code, data in payment_payanyway_currencies %}
<option value="{{ code }}" {% if code == payment_payanyway_currency %}selected="selected"{% endif %}>
{{ data.code }} ({{ entry_currency_rub_label }})
</option>
{% endfor %}
</select>
<p class="help-block">{{ entry_currency_description }}</p>
</div>
</div>
{# Статусы заказа #}
<div class="form-group required">
<label class="col-sm-2 control-label">{{ entry_order_statuses_label }}</label>
<div class="col-sm-10">
<div class="panel panel-default" style="margin-bottom: 0;">
<div class="panel-body">
{# pending #}
<div class="form-group">
<label class="col-sm-3 control-label" for="input-pending-order-status">
<span data-toggle="tooltip"
title="{{ help_pending_order_status }}">{{ entry_pending_order_status_label }}</span>
</label>
<div class="col-sm-9">
<select name="payment_payanyway_pending_order_status_id" id="input-pending-order-status"
class="form-control">
<option value="" disabled
selected="selected">{{ entry_select_order_status_label|default(text_select) }}</option>
{% for order_status in order_statuses %}
<option value="{{ order_status.order_status_id }}"
{% if order_status.order_status_id == payment_payanyway_pending_order_status_id %}selected="selected"{% endif %}>
{{ order_status.name }}
</option>
{% endfor %}
</select>
{% if error_pending_order_status %}
<div class="text-danger">{{ error_order_status }}</div>
{% endif %}
</div>
</div>
{# success #}
<div class="form-group">
<label class="col-sm-3 control-label" for="input-success-order-status">
<span data-toggle="tooltip"
title="{{ help_success_order_status }}">{{ entry_success_order_status_label }}</span>
</label>
<div class="col-sm-9">
<select name="payment_payanyway_success_order_status_id" id="input-success-order-status"
class="form-control">
<option value="" disabled
selected="selected">{{ entry_select_order_status_label|default(text_select) }}</option>
{% for order_status in order_statuses %}
<option value="{{ order_status.order_status_id }}"
{% if order_status.order_status_id == payment_payanyway_success_order_status_id %}selected="selected"{% endif %}>
{{ order_status.name }}
</option>
{% endfor %}
</select>
{% if error_success_order_status %}
<div class="text-danger">{{ error_order_status }}</div>
{% endif %}
</div>
</div>
{# error #}
<div class="form-group">
<label class="col-sm-3 control-label" for="input-error-order-status">
<span data-toggle="tooltip"
title="{{ help_error_order_status }}">{{ entry_error_order_status_label }}</span>
</label>
<div class="col-sm-9">
<select name="payment_payanyway_error_order_status_id" id="input-error-order-status"
class="form-control">
<option value="" disabled
selected="selected">{{ entry_select_order_status_label|default(text_select) }}</option>
{% for order_status in order_statuses %}
<option value="{{ order_status.order_status_id }}"
{% if order_status.order_status_id == payment_payanyway_error_order_status_id %}selected="selected"{% endif %}>
{{ order_status.name }}
</option>
{% endfor %}
</select>
{% if error_error_order_status %}
<div class="text-danger">{{ error_order_status }}</div>
{% endif %}
</div>
</div>
{# canceled #}
<div class="form-group">
<label class="col-sm-3 control-label">
<span data-toggle="tooltip"
title="{{ help_canceled_order_status }}">{{ entry_canceled_order_status_label }}</span>
</label>
<div class="col-sm-9">
<div class="well well-sm" style="height: 150px; overflow: auto; margin-bottom: 0;">
{% for order_status in order_statuses %}
<div class="checkbox">
<label>
<input type="checkbox" name="payment_payanyway_canceled_order_status_ids[]"
value="{{ order_status.order_status_id }}"
{% if order_status.order_status_id in payment_payanyway_canceled_order_status_ids %} checked="checked"{% endif %}/>
{{ order_status.name }}
</label>
</div>
{% endfor %}
</div>
{% if error_canceled_order_status %}
<div class="text-danger">{{ error_canceled_order_status }}</div>
{% endif %}
</div>
</div>
</div>
</div>
</div>
</div>
{# module_geo_zone #}
<div class="form-group">
<label class="col-sm-2 control-label" for="input-geo-zone">
<span data-toggle="tooltip" title="{{ help_geo_zone }}">{{ entry_geo_zone_label }}</span>
</label>
<div class="col-sm-10">
<select name="payment_payanyway_geo_zone_id" id="input-geo-zone" class="form-control">
<option value="0">{{ text_all_zones }}</option>
{% for geo_zone in geo_zones %}
{% if geo_zone.geo_zone_id == payment_payanyway_geo_zone_id %}
<option value="{{ geo_zone.geo_zone_id }}" selected="selected">{{ geo_zone.name }}</option>
{% else %}
<option value="{{ geo_zone.geo_zone_id }}">{{ geo_zone.name }}</option>
{% endif %}
{% endfor %}
</select>
<p class="help-block">{{ entry_geo_zone_description }}</p>
</div>
</div>
{# URL для уведомлений #}
<div class="form-group">
<label class="col-sm-2 control-label" for="input-callback-url">{{ entry_callback_url_label }}</label>
<div class="col-sm-10">
<div class="input-group">
<input type="text" value="{{ callback_url }}" id="input-callback-url" class="form-control" readonly/>
<span class="input-group-btn">
<button type="button" class="btn btn-default" id="button-callback-url-copy">{{ button_copy }}</button>
</span>
</div>
<p class="help-block">{{ help_callback_url }}</p>
</div>
</div>
{# sort-order #}
<div class="form-group">
<label class="col-sm-2 control-label" for="input-sort-order">
<span data-toggle="tooltip" title="{{ help_sort_order }}">{{ entry_sort_order_label }}</span>
</label>
<div class="col-sm-10">
<input type="number" oninput="this.value = this.value.replace(/[^-0-9]/g, '').replace(/(?!^-)-/g, '')"
step="1" name="payment_payanyway_sort_order" value="{{ payment_payanyway_sort_order }}"
placeholder="{{ module_sort_order_label }}" id="input-sort-order" class="form-control"/>
</div>
</div>
</form>
</div>
</div>
</div>
</div>
<style>
{# Разделитель админки — .form-group + .form-group: обёртка полей чека его разрывает. #}
#fiscalization-fields > .form-group:first-child,
#fiscalization-fields + .form-group {
border-top: 1px solid #ededed;
}
</style>
<script>
$(function () {
function toggleFiscalizationFields() {
$('#fiscalization-fields').toggle($('#input-fiscalization').is(':checked'));
}
$('#input-fiscalization').on('change', toggleFiscalizationFields);
toggleFiscalizationFields();
$('#button-integrity-code-toggle').on('click', function () {
var $input = $('#input-integrity-code');
$input.attr('type', $input.attr('type') === 'password' ? 'text' : 'password');
$(this).find('i').toggleClass('fa-eye fa-eye-slash');
});
$('#button-callback-url-copy').on('click', function () {
var $button = $(this);
$('#input-callback-url').trigger('select');
document.execCommand('copy');
$button.text('{{ text_copied }}');
setTimeout(function () { $button.text('{{ button_copy }}'); }, 2000);
});
});
</script>
{{ footer }}