diff --git a/hesabixCore/src/Controller/Plugins/TaxSettingsController.php b/hesabixCore/src/Controller/Plugins/TaxSettingsController.php index 5bf4ab46..85480d51 100644 --- a/hesabixCore/src/Controller/Plugins/TaxSettingsController.php +++ b/hesabixCore/src/Controller/Plugins/TaxSettingsController.php @@ -124,28 +124,47 @@ class TaxSettingsController extends AbstractController $params = $request->getPayload()->all(); - if (empty($params['nationalId']) || empty($params['nameFa']) || empty($params['nameEn']) || empty($params['email'])) { + $personType = $params['personType'] ?? 'natural'; + + if (empty($params['nationalId'])) { return $this->json([ 'success' => false, - 'message' => 'تمام فیلدها الزامی هستند' + 'message' => 'شناسه ملی الزامی است' ]); } + + if ($personType === 'legal') { + if (empty($params['nameFa']) || empty($params['nameEn']) || empty($params['email'])) { + return $this->json([ + 'success' => false, + 'message' => 'برای اشخاص حقوقی، تمام فیلدها الزامی هستند' + ]); + } + } try { $privateKey = $this->generatePrivateKey(); $publicKey = $this->generatePublicKey($privateKey); - $csr = $this->generateCSR($privateKey, $params); - + $businessId = is_object($acc['bid']) ? $acc['bid']->getId() : $acc['bid']; - $log->insert('تنظیمات مالیاتی', 'کلید و CSR تولید شد (بدون ذخیره)', $this->getUser(), $businessId); - - return $this->json([ + + $response = [ 'success' => true, - 'message' => 'کلید و CSR با موفقیت تولید شد', 'privateKey' => $privateKey, - 'publicKey' => $publicKey, - 'csr' => $csr - ]); + 'publicKey' => $publicKey + ]; + + if ($personType === 'legal') { + $csr = $this->generateCSR($privateKey, $params); + $response['csr'] = $csr; + $response['message'] = 'کلید و CSR با موفقیت تولید شد'; + $log->insert('تنظیمات مالیاتی', 'کلید و CSR تولید شد (بدون ذخیره)', $this->getUser(), $businessId); + } else { + $response['message'] = 'کلید با موفقیت تولید شد'; + $log->insert('تنظیمات مالیاتی', 'کلید خصوصی و عمومی تولید شد (بدون ذخیره)', $this->getUser(), $businessId); + } + + return $this->json($response); } catch (\Exception $e) { return $this->json([ 'success' => false, @@ -291,7 +310,6 @@ class TaxSettingsController extends AbstractController $taxInvoice->setUser($em->getRepository(\App\Entity\User::class)->find($userId)); $taxInvoice->setInvoice($invoice); $taxInvoice->setInvoiceCode($invoice->getCode()); - // $taxInvoice->setAmount($invoice->getAmount()); $taxInvoice->setStatus('pending'); $customerName = null; @@ -1058,15 +1076,6 @@ class TaxSettingsController extends AbstractController $data = $extractedData['data']; $taxId = $moadianTaxId; $internalId = $invoice->getId() ?? 1; - - $date = $data['date'] ?? 'now'; - // if (is_string($date)) { - // $dateTime = new DateTime($date); - // } elseif ($date instanceof DateTime) { - // $dateTime = $date; - // } else { - // $dateTime = new DateTime(); - // } if (!method_exists($moadian, 'generateTaxId') || !method_exists($moadian, 'normalizeInvoiceNumber')) { throw new \Exception('متدهای مورد نیاز در کلاس Moadian وجود ندارد'); diff --git a/webUI/src/router/index.ts b/webUI/src/router/index.ts index bedfb9e5..fd4d23d4 100755 --- a/webUI/src/router/index.ts +++ b/webUI/src/router/index.ts @@ -522,6 +522,12 @@ const router = createRouter({ component: () => import('../views/acc/plugins/tax/settings.vue'), }, + { + path: 'plugins/taxsettings/intro', + name: 'taxsettings_intro', + component: () => + import('../views/acc/plugins/taxsettings/intro.vue'), + }, { path: 'business/logs', name: 'business_logs', diff --git a/webUI/src/views/acc/plugins/tax/settings.vue b/webUI/src/views/acc/plugins/tax/settings.vue index 44c9fbe9..10324a81 100755 --- a/webUI/src/views/acc/plugins/tax/settings.vue +++ b/webUI/src/views/acc/plugins/tax/settings.vue @@ -192,8 +192,7 @@
+ ارسال خودکار فاکتورها به سامانه مودیان سازمان امور مالیاتی کشور +
+تولید و مدیریت کلیدهای خصوصی و عمومی برای ارتباط امن با سامانه مودیان
+انتخاب و ارسال فاکتورهای فروش به سامانه مودیان با امکان بررسی قبل از ارسال
+بررسی خودکار فاکتورها قبل از ارسال و اطمینان از صحت اطلاعات مالیاتی
+بررسی وضعیت فاکتورهای ارسال شده و دریافت تاییدیه از سامانه مودیان
+نمایش و مدیریت تمام فاکتورهای ارسال شده با امکان فیلتر و جستجو
+گزارشهای جامع از فاکتورهای ارسال شده و وضعیت آنها
+فاکتورهای فروش عادی با مالیات بر ارزش افزوده
+اصلاح فاکتورهای قبلی ارسال شده
+تولید کلید خصوصی و درخواست گواهی دیجیتال
+وارد کردن شناسه مالیاتی و کد اقتصادی در تنظیمات افزونه
+بررسی اتصال به سامانه مودیان و تایید تنظیمات
+انتخاب فاکتورها و ارسال آنها به سامانه مودیان
+رعایت کامل نرخهای مالیاتی و قواعد کنترلی
+سازگاری با API و پروتکلهای سامانه مالیاتی
+رمزنگاری و انتقال امن اطلاعات مالی
+ذخیره و نگهداری کامل سوابق ارسال فاکتورها
+