diff --git a/hesabixCore/src/Controller/AdminController.php b/hesabixCore/src/Controller/AdminController.php
index 2306469b..d6090104 100644
--- a/hesabixCore/src/Controller/AdminController.php
+++ b/hesabixCore/src/Controller/AdminController.php
@@ -430,7 +430,7 @@ class AdminController extends AbstractController
if (array_key_exists('rejectChequeInput', $params['plugAccpro']))
$registryMGR->update('sms', 'plugAccproRejectChequeInput', $params['plugAccpro']['rejectChequeInput']);
}
-
+
return $this->json(JsonResp::success());
}
@@ -450,6 +450,10 @@ class AdminController extends AbstractController
$resp['parsianGatewayAPI'] = $registryMGR->get('system', key: 'parsianGatewayAPI');
$resp['paypingKey'] = $registryMGR->get('system', key: 'paypingKey');
$resp['bitpayKey'] = $registryMGR->get('system', key: 'bitpayKey');
+ $resp['inquiryPanel'] = $registryMGR->get('system', key: 'inquiryPanel');
+ $resp['inquiryZohalAPIKey'] = $registryMGR->get('system', key: 'inquiryZohalAPIKey');
+ $resp['enablePostalCodeToAddress'] = $registryMGR->get('system', key: 'enablePostalCodeToAddress');
+ $resp['inquiryPanelEnable'] = $registryMGR->get('system', key: 'inquiryPanelEnable');
return $this->json($resp);
}
@@ -474,6 +478,10 @@ class AdminController extends AbstractController
$registryMGR->update('system', 'parsianGatewayAPI', $params['parsianGatewayAPI']);
$registryMGR->update('system', 'paypingKey', $params['paypingKey']);
$registryMGR->update('system', 'bitpayKey', $params['bitpayKey']);
+ $registryMGR->update('system', 'inquiryPanel', $params['inquiryPanel']);
+ $registryMGR->update('system', 'inquiryZohalAPIKey', $params['inquiryZohalAPIKey']);
+ $registryMGR->update('system', 'enablePostalCodeToAddress', $params['enablePostalCodeToAddress']);
+ $registryMGR->update('system', 'inquiryPanelEnable', $params['inquiryPanelEnable']);
$entityManager->persist($item);
$entityManager->flush();
return $this->json(['result' => 1]);
diff --git a/hesabixCore/src/Controller/Plugins/inquiry/PlugInquiryMainController.php b/hesabixCore/src/Controller/Plugins/inquiry/PlugInquiryMainController.php
index 8dbcc154..15ebbc15 100644
--- a/hesabixCore/src/Controller/Plugins/inquiry/PlugInquiryMainController.php
+++ b/hesabixCore/src/Controller/Plugins/inquiry/PlugInquiryMainController.php
@@ -1,6 +1,6 @@
json([]);
}
}
\ No newline at end of file
diff --git a/webUI/src/i18n/fa_lang.ts b/webUI/src/i18n/fa_lang.ts
index d12fcc03..22355e82 100644
--- a/webUI/src/i18n/fa_lang.ts
+++ b/webUI/src/i18n/fa_lang.ts
@@ -812,6 +812,14 @@ const fa_lang = {
sms_settings_plug_accpro_pass_cheque_input: "واگذاری چک",
sms_settings_reject_cheque_input: "برگشت چک",
sms_settings_plug_accpro_reject_cheque_input: "برگشت چک",
+ inquiry_zohal_api_key: "کلید API زحل",
+ inquiry_zohal_api_key_des: "کلید API زحل برای دریافت اطلاعات از سامانه زحل",
+ inquiry_zohal_api_key_placeholder: "کلید API زحل",
+ inquiry_zohal_api_key_label: "کلید API زحل",
+ enable_postalcode_to_address: "تبدیل کد پستی به آدرس",
+ inquiry_panel_enable: "فعال سازی پنل سامانه استعلامات",
+ inquiry_panel: "پنل سامانه استعلامات",
+ inquiry_panel_zohal: "زحل",
app_site: "آدرس اینترفیس(رابط کاربری)",
keywords: "کلیدواژهها با کاما (,) از هم جدا شوند",
zarinpal_api: "کد API زرینپال",
diff --git a/webUI/src/views/user/manager/settings/system.vue b/webUI/src/views/user/manager/settings/system.vue
index 24a6532f..f5bca66c 100644
--- a/webUI/src/views/user/manager/settings/system.vue
+++ b/webUI/src/views/user/manager/settings/system.vue
@@ -29,6 +29,13 @@ export default defineComponent({
props: { subtitle: 'bitpay.ir' },
},
],
+ inquiryPanel: [
+ {
+ title: 'پنل زحل',
+ value: 'zohal',
+ props: { subtitle: 'zohal.ir' },
+ },
+ ],
systemInfo: {
keywords: '',
description: '',
@@ -38,6 +45,10 @@ export default defineComponent({
parsianGatewayAPI: '',
paypingKey: '',
bitpayKey: '',
+ inquiryPanel: '',
+ inquiryZohalAPIKey: '',
+ enablePostalCodeToAddress: false,
+ inquiryPanelEnable: false,
},
loading: true,
}
@@ -47,12 +58,32 @@ export default defineComponent({
this.loading = true;
axios.post('/api/admin/settings/system/info')
.then((response) => {
- this.systemInfo = response.data;
+ // Convert string values to proper types for switches and selects
+ const data = response.data;
+ this.systemInfo = {
+ ...data,
+ enablePostalCodeToAddress: data.enablePostalCodeToAddress === '1' || data.enablePostalCodeToAddress === true,
+ inquiryPanelEnable: data.inquiryPanelEnable === '1' || data.inquiryPanelEnable === true,
+ activeGateway: data.activeGateway || 'zarinpal',
+ inquiryPanel: data.inquiryPanel || 'zohal'
+ };
this.loading = false;
})
},
submit() {
this.loading = true;
+
+ // Validation: if inquiry panel is enabled, a panel must be selected
+ if (this.systemInfo.inquiryPanelEnable && !this.systemInfo.inquiryPanel) {
+ Swal.fire({
+ text: 'در صورت فعال بودن پنل سامانه استعلامات، حتماً باید یک پنل انتخاب شود.',
+ icon: 'error',
+ confirmButtonText: 'قبول',
+ });
+ this.loading = false;
+ return;
+ }
+
axios.post('/api/admin/settings/system/info/save', this.systemInfo).then((resp) => {
this.loading = false;
if (resp.data.result == 1) {
@@ -77,7 +108,7 @@ export default defineComponent({
-
+
@@ -106,6 +137,42 @@ export default defineComponent({
+
+
+
+ {{ $t('pages.manager.inquiry_panel') }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
{{ $t('dialog.save') }}