some bug fix in some parts

This commit is contained in:
Hesabix 2025-03-19 10:56:02 +00:00
parent fb1124333d
commit f41123b4b2
23 changed files with 430 additions and 412 deletions

View file

@ -3,4 +3,4 @@ framework:
dsn: '%env(MAILER_DSN)%'
message_bus: false
headers:
From: 'Hesabix.ir <noreplay@cp.hesabix.ir>'
From: 'Hesabix.ir <noreplay@hesabix.ir>'

View file

@ -595,7 +595,7 @@ class AdminController extends AbstractController
$item->setAmount($params['amount']);
$item->setCardPan($params['card']);
$item->setDateSubmit(time());
$item->setDes('واریز به حساب کسب و کار از طرف حسابیکس');
$item->setDes('تراکنش تسویه کیف پول');
$item->setRefID($params['refID']);
$item->setGatePay($params['bank']);
$item->setBank($bid->getWalletMatchBank()->getName());
@ -679,43 +679,4 @@ class AdminController extends AbstractController
return $this->json($res);
}
/**
* @throws Exception
*/
#[Route('/script', name: 'script')]
public function script(EntityManagerInterface $entitymanager): JsonResponse
{
$items = $entitymanager->getRepository(\App\Entity\HesabdariDoc::class)->findAll();
foreach ($items as $item) {
$item->setDate(str_replace("-", "/", $item->getDate()));
$entitymanager->persist($item);
$entitymanager->flush();
}
echo str_replace("-", "/", "1403-02-06");
}
/**
* @throws Exception
*/
#[Route('/script2', name: 'script2')]
public function script2(EntityManagerInterface $entitymanager): JsonResponse
{
$banks = $entitymanager->getRepository(BankAccount::class)->findAll();
foreach ($banks as $bank) {
if ($bank->getMoney() == null) {
$bank->setMoney($bank->getBid()->getMoney());
$entitymanager->persist($bank);
}
}
$items = $entitymanager->getRepository(Cashdesk::class)->findAll();
foreach ($items as $item) {
if ($item->getMoney() == null) {
$item->setMoney($item->getBid()->getMoney());
$entitymanager->persist($bank);
}
}
$entitymanager->flush();
}
}

View file

@ -332,10 +332,10 @@ class BuyController extends AbstractController
$temp['commodities'] = [];
foreach ($item->getHesabdariRows() as $item) {
if ($item->getRef()->getCode() == '104') {
$temp['discountAll'] = $item->getBd();
if ($item->getRef()->getCode() == '51') {
$temp['discountAll'] = $item->getBs();
} elseif ($item->getRef()->getCode() == '90') {
$temp['transferCost'] = $item->getBs();
$temp['transferCost'] = $item->getBd();
}
if ($item->getCommodity()) {
$temp['commodities'][] = Explore::ExploreCommodity($item->getCommodity(), $item->getCommdityCount());
@ -442,9 +442,9 @@ class BuyController extends AbstractController
foreach ($doc->getHesabdariRows() as $item) {
if ($item->getPerson()) {
$person = $item->getPerson();
} elseif ($item->getRef()->getCode() == 104) {
} elseif ($item->getRef()->getCode() == 90) {
$discount = $item->getBd();
} elseif ($item->getRef()->getCode() == 61) {
} elseif ($item->getRef()->getCode() == 51) {
$transfer = $item->getBs();
}
}

View file

@ -127,7 +127,7 @@ class PayController extends AbstractController
$doc->setSubmitter($walletUser);
else {
$wu = new User();
$wu->setFullName('کیف پول حسابیکس');
$wu->setFullName('کیف پول');
$wu->setEmail('wallet@hesabix.ir');
$wu->setRoles([]);
$wu->setActive(true);

View file

@ -11,6 +11,6 @@ class UiGeneralController extends AbstractController
#[Route('/', name: 'general_home')]
public function general_home(): JsonResponse
{
return $this->json(['message'=>'HesabixApi is running ...']);
return $this->json(['message'=>'System is running ...']);
}
}

View file

@ -80,7 +80,7 @@ class GeneralController extends AbstractController
Response::HTTP_OK,
[
'Content-Type' => 'application/pdf',
'Content-Disposition' => 'inline; filename="Hesabix PrintOut.pdf"',
'Content-Disposition' => 'inline; filename="PrintOut.pdf"',
]
);
}

View file

@ -53,7 +53,8 @@ final class RegistrySettingsController extends AbstractController
'sponsorMessage' => $registryMGR->get('system', 'sponsers'),
'footerLeft' => $registryMGR->get('system', 'footerLeft'),
'footerRight' => $registryMGR->get('system', 'footerRight'),
'appName' => $registryMGR->get('system', 'appName'),
'appUrl' => $registryMGR->get('system', 'appUrl'),
];
return new JsonResponse([
@ -82,6 +83,8 @@ final class RegistrySettingsController extends AbstractController
$registryMGR->update('system', 'sponsers', $data['sponsorMessage'] ?? '');
$registryMGR->update('system', 'footerLeft', $data['footerLeft'] ?? '');
$registryMGR->update('system', 'footerRight', $data['footerRight'] ?? '');
$registryMGR->update('system', 'appName', $data['appName'] ?? '');
$registryMGR->update('system', 'appUrl', $data['appUrl'] ?? '');
return new JsonResponse([
'result' => 1,

View file

@ -36,8 +36,8 @@ use Symfony\Contracts\Translation\TranslatorInterface;
use SymfonyCasts\Bundle\VerifyEmail\Exception\VerifyEmailExceptionInterface;
use Symfony\Component\EventDispatcher\EventDispatcher,
Symfony\Component\Security\Core\Authentication\Token\UsernamePasswordToken,
Symfony\Component\Security\Http\Event\InteractiveLoginEvent;
Symfony\Component\Security\Core\Authentication\Token\UsernamePasswordToken,
Symfony\Component\Security\Http\Event\InteractiveLoginEvent;
use function PHPUnit\Framework\throwException;
class UserController extends AbstractController
@ -388,7 +388,7 @@ class UserController extends AbstractController
$email = (new Email())
->to($user->getEmail())
->priority(Email::PRIORITY_HIGH)
->subject('تایید ایمیل در حسابیکس')
->subject('تایید ایمیل')
->html(
$this->renderView('user/email/confrim-register.html.twig', [
'code' => $user->getVerifyCode()
@ -455,7 +455,7 @@ class UserController extends AbstractController
$email = (new Email())
->to($user->getEmail())
->priority(Email::PRIORITY_HIGH)
->subject('تایید ایمیل در حسابیکس')
->subject('تایید ایمیل ')
->html(
$this->renderView('user/email/confrim-register.html.twig', [
'code' => $user->getVerifyCode()
@ -613,7 +613,7 @@ class UserController extends AbstractController
$email = (new Email())
->to($user->getEmail())
->priority(Email::PRIORITY_HIGH)
->subject('حسابیکس - فراموشی کلمه عبور')
->subject('فراموشی کلمه عبور')
->html(
$this->renderView('user/email/confrim-forget-password.html.twig', [
'code' => $user->getVerifyCode()
@ -690,7 +690,7 @@ class UserController extends AbstractController
$email = (new Email())
->to($user->getEmail())
->priority(Email::PRIORITY_HIGH)
->subject('تایید ایمیل در حسابیکس')
->subject('تایید ایمیل ')
->html(
$this->renderView('user/email/confrim-register.html.twig', [
'code' => $user->getVerifyCode()
@ -716,4 +716,53 @@ class UserController extends AbstractController
'canRegister' => $canRegister
]);
}
#[Route('/api/admin/user/change-password/{userId}', name: 'change_user_password', methods: ['POST'])]
public function changePassword(
int $userId,
Request $request,
EntityManagerInterface $entityManager,
UserPasswordHasherInterface $passwordHasher,
registryMGR $registryMGR,
MailerInterface $mailer,
SMS $SMS
): JsonResponse {
$data = json_decode($request->getContent(), true);
$password = $data['password'] ?? null;
$notifyUser = $data['notifyUser'] ?? false;
if (!$password) {
return new JsonResponse(['error' => 'Password is required'], 400);
}
$user = $entityManager->getRepository(User::class)->find($userId);
if (!$user) {
return new JsonResponse(['error' => 'User not found'], 404);
}
$user->setPassword($passwordHasher->hashPassword($user, $password));
$entityManager->persist($user);
$entityManager->flush();
if ($notifyUser) {
$SMS->send(
[$password],
$registryMGR->get('sms', 'changePassword'),
$user->getMobile()
);
$email = (new Email())
->to($user->getEmail())
->priority(Email::PRIORITY_HIGH)
->subject('تغییر کلمه عبور')
->html(
$this->renderView('user/email/reset-password.html.twig', [
'code' => $password
])
);
$mailer->send($email);
}
return new JsonResponse(['message' => 'Password changed successfully']);
}
}

View file

@ -59,7 +59,7 @@ class pdfMGR
$htmlContent = $printQueue->getView() ?: '<p>محتوای PDF در دسترس نیست.</p>';
$mpdf->WriteHTML($htmlContent);
$mpdf->SetAutoPageBreak(true);
$mpdf->SetTitle('حسابیکس');
$mpdf->SetTitle('PDF Export');
// به جای Output مستقیم، محتوا رو برگردونید
return $mpdf->Output('', 'S'); // 'S' برای برگرداندن به صورت رشته

View file

@ -4,9 +4,9 @@
<meta charset="UTF-8">
<meta lang="fa">
<meta content="width=device-width,initial-scale=1.0" name="viewport"/>
<meta content="حسابیکس برترین نرم افزار حسابداری ابری و رایگان" name="description"/>
<meta content="{{twigFunctions.getStaticData('system', 'appName')}} برترین نرم افزار حسابداری ابری و رایگان" name="description"/>
<meta content="Babak Alizadeh" name="author"/>
<title>حسابیکس - {% block title %}{% endblock %}</title>
<title>{{twigFunctions.getStaticData('system', 'appName')}} - {% block title %}{% endblock %}</title>
{# Run `composer require symfony/webpack-encore-bundle` to start using Symfony UX #}
{% block stylesheets %}
{#{{ encore_entry_link_tags('app') }}#}

View file

@ -13,7 +13,7 @@
<!-- Header -->
<div class="flex-grow-0 p-5">
<a class="link-fx fw-bold fs-2" href="/">
<span class="text-dark">حساب</span><span class="text-primary">یکس</span>
<span class="text-dark">{{twigFunctions.getStaticData('system', 'appName')}}</span>
</a>
<p class="text-uppercase fw-bold fs-sm text-muted mb-0"> به روزترین سامانه حسابداری ابری و رایگان </p>
</div>
@ -35,7 +35,7 @@
<!-- Footer -->
<ul class="list-inline flex-gow-1 p-5 fs-sm fw-medium mb-0">
<li class="list-inline-item">
<a class="text-muted" href="{{ twigFunctions.systemSettings().appSite }}/"> ورود به حسابیکس </a>
<a class="text-muted" href="{{ twigFunctions.systemSettings().appSite }}/"> ورود به {{twigFunctions.getStaticData('system', 'appName')}} </a>
</li>
</ul>
<!-- END Footer -->

View file

@ -1,20 +0,0 @@
<!DOCTYPE html>
<title>Hello MembershipController!</title>
{% block body %}
<style>
.example-wrapper { margin: 1em auto; max-width: 800px; width: 95%; font: 18px/1.5 sans-serif; }
.example-wrapper code { background: #F5F5F5; padding: 2px 6px; }
</style>
<div class="example-wrapper">
<h1>Hello {{ controller_name }}! ✅</h1>
This friendly message is coming from:
<ul>
<li>Your controller at <code>/var/www/html/next.hesabix.ir/hesabixCore/src/Controller/MembershipController.php</code></li>
<li>Your template at <code>/var/www/html/next.hesabix.ir/hesabixCore/templates/membership/index.html.twig</code></li>
</ul>
</div>
{% endblock %}

View file

@ -9,8 +9,8 @@
<div class="block">
<div class="block-header block-header-default">
<div class="block-title text-primary-dark text-start">
<img src="{{ asset('/img/logo-blue.png') }}" class="img-avatar img-avatar32" alt="حسابیکس"/>
حسابیکس
<img src="{{ asset('/img/logo-blue.png') }}" class="img-avatar img-avatar32" alt="{{twigFunctions.getStaticData('system', 'appName')}}"/>
{{twigFunctions.getStaticData('system', 'appName')}}
</div>
</div>
<div class="block-content p-3">

View file

@ -14,9 +14,10 @@
<h2 class="flex-grow-1 fs-3 fw-semibold my-2 my-sm-3">
مشاهده قبض تعمیرات
</h2>
<a class="btn btn-alt-primary my-2" href="https://hesabix.ir">
<a class="btn btn-alt-primary my-2" href="{{twigFunctions.getStaticData('system', 'appUrl')}}">
<i class="fa fa-fw fa-door-open me-1"></i>
ورود به حسابیکس
ورود به
{{twigFunctions.getStaticData('system', 'appName')}}
</a>
</div>
</div>
@ -58,7 +59,7 @@
{{bid.name}}
</p>
<address>آدرس :
استان
استان
{{bid.ostan}}
شهرستان
{{bid.shahrestan}}
@ -86,7 +87,7 @@
{{ person.nikename }}
</p>
<address>آدرس :
استان
استان
{{person.ostan}}
شهرستان
{{person.shahr}}
@ -162,8 +163,8 @@
</tbody>
</table>
<!-- Footer -->
<a href="https://hesabix.ir" class="p-4 mb-3text-primary text-center my-5">
حسابیکس
<a href="{{twigFunctions.getStaticData('system', 'appUrl')}}" class="p-4 mb-3text-primary text-center my-5">
{{twigFunctions.getStaticData('system', 'appName')}}
<label class="text-muted">سامانه جامع مالی رایگان ، ابری و متن باز</label>
</a>
<!-- END Footer -->

View file

@ -239,8 +239,8 @@
</div>
</div>
<!-- Footer -->
<a href="https://hesabix.ir" class="p-4 mb-3text-primary text-center my-5">
حسابیکس
<a href="{{twigFunctions.getStaticData('system', 'appUrl')}}" class="p-4 mb-3text-primary text-center my-5">
{{twigFunctions.getStaticData('system', 'appName')}}
<label class="text-muted">سامانه جامع مالی رایگان ، ابری و متن باز</label>
</a>
<!-- END Footer -->

View file

@ -130,8 +130,8 @@
{{ doc.des }}
</div>
<!-- Footer -->
<a href="https://hesabix.ir" class="p-4 mb-3text-primary text-center my-5">
حسابیکس
<a href="{{twigFunctions.getStaticData('system', 'appUrl')}}" class="p-4 mb-3text-primary text-center my-5">
{{twigFunctions.getStaticData('system', 'appName')}}
<label class="text-muted">سامانه جامع مالی رایگان ، ابری و متن باز</label>
</a>
<!-- END Footer -->

View file

@ -1,327 +1,348 @@
<!DOCTYPE html>
<html dir="rtl" lang="fa"><head>
<meta charset="utf-8"/>
<meta content="width=device-width,initial-scale=1.0" name="viewport"/>
<html dir="rtl" lang="fa">
<head>
<meta charset="utf-8"/>
<meta content="width=device-width,initial-scale=1.0" name="viewport"/>
<title>{% block title %}{% endblock %}</title>
<title>
{% block title %}{% endblock %}
</title>
<meta content="حسابیکس فروشگاه آنلاین" name="description"/>
<meta content="Hesabix.ir" name="author"/>
<meta content="{{twigFunctions.getStaticData('system', 'appName')}} فروشگاه آنلاین" name="description"/>
<meta
content="Hesabix.ir" name="author"/>
<!-- Open Graph Meta -->
<meta content="Dashmix - Bootstrap 5 Admin Template & UI Framework" property="og:title"/>
<meta content="Hesabix" property="og:site_name"/>
<meta content="Dashmix - Bootstrap 5 Admin Template & UI Framework created by pixelcave and published on Themeforest" property="og:description"/>
<meta content="website" property="og:type"/>
<meta content="" property="og:url"/>
<meta content="" property="og:image"/>
<!-- Open Graph Meta -->
<meta content="Dashmix - Bootstrap 5 Admin Template & UI Framework" property="og:title"/>
<meta content="Hesabix" property="og:site_name"/>
<meta content="Dashmix - Bootstrap 5 Admin Template & UI Framework created by pixelcave and published on Themeforest" property="og:description"/>
<meta content="website" property="og:type"/>
<meta content="" property="og:url"/>
<meta content="" property="og:image"/>
<!-- Icons -->
<!-- The following icons can be replaced with your own, they are used by desktop and mobile browsers -->
<link href="/assets/media/favicons/favicon.png" rel="shortcut icon"/>
<link href="/assets/media/favicons/favicon-192x192.png" rel="icon" sizes="192x192" type="image/png"/>
<link href="/assets/media/favicons/apple-touch-icon-180x180.png" rel="apple-touch-icon" sizes="180x180"/>
<!-- END Icons -->
<!-- Icons -->
<!-- The following icons can be replaced with your own, they are used by desktop and mobile browsers -->
<link href="/assets/media/favicons/favicon.png" rel="shortcut icon"/> <link href="/assets/media/favicons/favicon-192x192.png" rel="icon" sizes="192x192" type="image/png"/>
<link href="/assets/media/favicons/apple-touch-icon-180x180.png" rel="apple-touch-icon" sizes="180x180"/>
<!-- END Icons -->
<!-- Stylesheets -->
<!-- Dashmix framework -->
<link href="/assets/css/dashmix.min.css" id="css-main" rel="stylesheet"/>
<!-- Stylesheets -->
<!-- Dashmix framework -->
<link href="/assets/css/dashmix.min.css" id="css-main" rel="stylesheet"/> <!-- You can include a specific file from css/themes/ folder to alter the default color theme of the template. eg: -->
<!-- <link rel="stylesheet" id="css-theme" href="assets/css/themes/xwork.min.css"> -->
<!-- END Stylesheets -->
<!--===== Custom Font css =====-->
<link href="/assets/css/custom-fonts.css" rel="stylesheet"/> </head>
<body>
<!-- Page Container -->
<!--
Available classes for #page-container:
GENERIC
'remember-theme' Remembers active color theme and dark mode between pages using localStorage when set through
- Theme helper buttons [data-toggle="theme"],
- Layout helper buttons [data-toggle="layout" data-action="dark_mode_[on/off/toggle]"]
- ..and/or Dashmix.layout('dark_mode_[on/off/toggle]')
SIDEBAR & SIDE OVERLAY
'sidebar-r' Right Sidebar and left Side Overlay (default is left Sidebar and right Side Overlay)
'sidebar-mini' Mini hoverable Sidebar (screen width > 991px)
'sidebar-o' Visible Sidebar by default (screen width > 991px)
'sidebar-o-xs' Visible Sidebar by default (screen width < 992px)
'sidebar-dark' Dark themed sidebar
'side-overlay-hover' Hoverable Side Overlay (screen width > 991px)
'side-overlay-o' Visible Side Overlay by default
'enable-page-overlay' Enables a visible clickable Page Overlay (closes Side Overlay on click) when Side Overlay opens
'side-scroll' Enables custom scrolling on Sidebar and Side Overlay instead of native scrolling (screen width > 991px)
HEADER
'' Static Header if no class is added
'page-header-fixed' Fixed Header
FOOTER
'' Static Footer if no class is added
'page-footer-fixed' Fixed Footer (please have in mind that the footer has a specific height when is fixed)
HEADER STYLE
'' Classic Header style if no class is added
'page-header-dark' Dark themed Header
'page-header-glass' Light themed Header with transparency by default
(absolute position, perfect for light images underneath - solid light background on scroll if the Header is also set as fixed)
'page-header-glass page-header-dark' Dark themed Header with transparency by default
(absolute position, perfect for dark images underneath - solid dark background on scroll if the Header is also set as fixed)
MAIN CONTENT LAYOUT
'' Full width Main Content if no class is added
'main-content-boxed' Full width Main Content with a specific maximum width (screen width > 1200px)
'main-content-narrow' Full width Main Content with a percentage width (screen width > 1200px)
DARK MODE
'sidebar-dark page-header-dark dark-mode' Enable dark mode (light sidebar/header is not supported with dark mode)
-->
<div
class="rtl-support page-header-dark main-content-boxed" id="page-container"> <!-- Header -->
<header
id="page-header">
<!-- Header Content -->
<div
class="content-header">
<!-- Left Section -->
<div
class="d-flex align-items-center">
<!-- Logo -->
<a class="fw-semibold text-dual tracking-wide" href="/s/{{ bid.storeUsername }}">
فروشگاه
{{ bid.name }}
</a>
<!-- END Logo -->
</div>
<!-- END Left Section -->
<!-- You can include a specific file from css/themes/ folder to alter the default color theme of the template. eg: -->
<!-- <link rel="stylesheet" id="css-theme" href="assets/css/themes/xwork.min.css"> -->
<!-- END Stylesheets -->
<!--===== Custom Font css =====-->
<link href="/assets/css/custom-fonts.css" rel="stylesheet"/>
<!-- Right Section -->
<div>
<!-- Open Search Section -->
<!-- Layout API, functionality initialized in Template._uiApiLayout() -->
<button class="btn btn-alt-secondary ms-2" data-action="header_search_on" data-toggle="layout" type="button"> <i class="fa fa-search"></i>
</button>
<!-- END Open Search Section -->
<a class="btn btn-alt-secondary ms-2" href="/s/{{ bid.storeUsername }}/basket">
<i class="fa fa-shopping-basket"></i>
</a>
<!-- Toggle Main Navigation -->
<button class="d-lg-none btn btn-alt-secondary ms-2" data-class="d-none" data-target="#main-navigation" data-toggle="class-toggle" type="button">
<i class="fa fa-bars"></i>
</button>
<!-- END Toggle Main Navigation -->
</div>
<!-- END Right Section -->
</div>
<!-- END Header Content -->
</head>
<body>
<!-- Page Container -->
<!--
Available classes for #page-container:
<!-- Header Search -->
<div class="overlay-header bg-sidebar-dark" id="page-header-search">
<div class="content-header">
<form action="bd_search.html" class="w-100" method="POST">
<div class="input-group">
<input
class="form-control" id="page-header-search-input" name="page-header-search-input" placeholder="محصول مورد نظر را جست و جو کنید" type="text"/>
<!-- Layout API, functionality initialized in Template._uiApiLayout() -->
<button class="btn btn-alt-danger" data-action="header_search_off" data-toggle="layout" type="button">
<i class="fa fa-fw fa-times-circle"></i>
</button>
</div>
</form>
</div>
</div>
<!-- END Header Search -->
GENERIC
<!-- Header Loader -->
<!-- Please check out the Loaders page under Components category to see examples of showing/hiding it -->
<div class="overlay-header bg-sidebar-dark" id="page-header-loader"> <div class="content-header">
<div class="w-100 text-center">
<i class="fa fa-fw fa-2x fa-spinner fa-spin text-primary"></i>
</div>
</div>
</div>
<!-- END Header Loader -->
</header>
<!-- END Header -->
'remember-theme' Remembers active color theme and dark mode between pages using localStorage when set through
- Theme helper buttons [data-toggle="theme"],
- Layout helper buttons [data-toggle="layout" data-action="dark_mode_[on/off/toggle]"]
- ..and/or Dashmix.layout('dark_mode_[on/off/toggle]')
<!-- Main Container -->
<main
id="main-container">
<!-- Navigation -->
<div class="bg-sidebar-dark">
<div
class="content">
<!-- Main Navigation -->
<div class="d-none d-lg-block push" id="main-navigation">
<ul class="nav-main nav-main-horizontal nav-main-hover nav-main-dark">
<li class="nav-main-item">
<a class="nav-main-link" href="/s/{{ bid.storeUsername }}">
<i class="nav-main-link-icon fa fa-compass"></i>
<span class="nav-main-link-name">
صفحه نخست
</span>
</a>
</li>
</ul>
</div>
<!-- END Main Navigation -->
</div>
</div>
<!-- END Navigation -->
<!-- Page Content -->
<div
class="content">
<!-- Hero -->
<div class="block block-rounded">
<div class="block-content">
<div class="py-4 text-center">
<h1 class="mb-2">
داشبورد
</h1>
<h2 class="h4 fw-normal text-muted">به برنامه خود خوش آمدید، همه چیز عالی به نظر می رسد!</h2>
</div>
</div>
</div>
<!-- END Hero -->
SIDEBAR & SIDE OVERLAY
<!-- Dummy content -->
<div class="row">
<div class="col-sm-4">
<div class="block block-rounded">
<div class="block-content">
<p class="text-center py-6">...</p>
</div>
</div>
</div>
<div class="col-sm-4">
<div class="block block-rounded">
<div class="block-content">
<p class="text-center py-6">...</p>
</div>
</div>
</div>
<div class="col-sm-4">
<div class="block block-rounded">
<div class="block-content">
<p class="text-center py-6">...</p>
</div>
</div>
</div>
<div class="col-12">
<div class="block block-rounded">
<div class="block-content">
<p class="text-center py-6">...</p>
</div>
</div>
</div>
<div class="col-sm-6">
<div class="block block-rounded">
<div class="block-content">
<p class="text-center py-6">...</p>
</div>
</div>
</div>
<div class="col-sm-6">
<div class="block block-rounded">
<div class="block-content">
<p class="text-center py-6">...</p>
</div>
</div>
</div>
<div class="col-12">
<div class="block block-rounded">
<div class="block-content">
<p class="text-center py-6">...</p>
</div>
</div>
</div>
</div>
<!-- END Dummy content -->
</div>
<!-- END Page Content -->
</main>
<!-- END Main Container -->
'sidebar-r' Right Sidebar and left Side Overlay (default is left Sidebar and right Side Overlay)
'sidebar-mini' Mini hoverable Sidebar (screen width > 991px)
'sidebar-o' Visible Sidebar by default (screen width > 991px)
'sidebar-o-xs' Visible Sidebar by default (screen width < 992px)
'sidebar-dark' Dark themed sidebar
<!-- Footer -->
<footer class="footer-static bg-body-extra-light" id="page-footer">
<div
class="content py-4">
<!-- Footer Navigation -->
<div class="row items-push fs-sm border-bottom pt-4">
<div class="col-sm-12 col-md-6">
<h3 class="fw-light">تماس با فروشگاه</h3>
<ul class="list list-simple-mini">
{% if bid.tel != null or bid.tel != '' %}
<li>
<a class="fw-semibold" href="javascript:void(0)">
<i class="fa fa-fw fa-mobile text-primary-lighter me-1"></i>
تلفن:
{{ bid.tel }}
</a>
</li>
{% endif %}
{% if bid.mobile != null or bid.mobile != '' %}
<li>
<a class="fw-semibold" href="javascript:void(0)">
<i class="fa fa-fw fa-mobile-android text-primary-lighter me-1"></i>
موبایل:
{{ bid.mobile }}
</a>
</li>
{% endif %}
{% if bid.email != null or bid.email != '' %}
<li>
<a class="fw-semibold" href="javascript:void(0)">
<i class="fa fa-fw fa-message text-primary-lighter me-1"></i>
پست الکترونیکی:
{{ bid.email }}
</a>
</li>
{% endif %}
{% if bid.postalCode != null or bid.postalCode != '' %}
<li>
<a class="fw-semibold" href="javascript:void(0)">
<i class="fa fa-fw fa-message text-primary-lighter me-1"></i>
کد پستی :
{{ bid.postalCode }}
</a>
</li>
{% endif %}
{% if bid.address != null or bid.address != '' %}
<li>
<a class="fw-semibold" href="javascript:void(0)">
<i class="fa fa-fw fa-message text-primary-lighter me-1"></i>
آدرس : استان
{{ bid.ostan }}
شهر
{{ bid.shahrestan }}
{{ bid.address }}
</a>
</li>
{% endif %}
</ul>
</div>
</div>
<!-- END Footer Navigation -->
'side-overlay-hover' Hoverable Side Overlay (screen width > 991px)
'side-overlay-o' Visible Side Overlay by default
<!-- Footer Copyright -->
<div class="row fs-sm pt-4">
<div class="col-sm-6 order-sm-2 mb-1 mb-sm-0 text-center text-sm-end">
ساخته شده با
<i class="fa fa-heart text-danger"></i>
در
<a class="fw-semibold" href="{{twigFunctions.getStaticData('system', 'appUrl')}}" target="_blank">{{twigFunctions.getStaticData('system', 'appName')}}</a>
</div>
<div class="col-sm-6 order-sm-1 text-center text-sm-start"></div>
</div>
<!-- END Footer Copyright -->
</div>
</footer>
<!-- END Footer -->
</div>
<!-- END Page Container -->
'enable-page-overlay' Enables a visible clickable Page Overlay (closes Side Overlay on click) when Side Overlay opens
'side-scroll' Enables custom scrolling on Sidebar and Side Overlay instead of native scrolling (screen width > 991px)
HEADER
'' Static Header if no class is added
'page-header-fixed' Fixed Header
<!--
Dashmix JS
Core libraries and functionality
webpack is putting everything together at assets/_js/main/app.js
-->
<script src="/assets/js/dashmix.app.min.js"></script>
FOOTER
'' Static Footer if no class is added
'page-footer-fixed' Fixed Footer (please have in mind that the footer has a specific height when is fixed)
HEADER STYLE
'' Classic Header style if no class is added
'page-header-dark' Dark themed Header
'page-header-glass' Light themed Header with transparency by default
(absolute position, perfect for light images underneath - solid light background on scroll if the Header is also set as fixed)
'page-header-glass page-header-dark' Dark themed Header with transparency by default
(absolute position, perfect for dark images underneath - solid dark background on scroll if the Header is also set as fixed)
MAIN CONTENT LAYOUT
'' Full width Main Content if no class is added
'main-content-boxed' Full width Main Content with a specific maximum width (screen width > 1200px)
'main-content-narrow' Full width Main Content with a percentage width (screen width > 1200px)
DARK MODE
'sidebar-dark page-header-dark dark-mode' Enable dark mode (light sidebar/header is not supported with dark mode)
-->
<div class="rtl-support page-header-dark main-content-boxed" id="page-container">
<!-- Header -->
<header id="page-header">
<!-- Header Content -->
<div class="content-header">
<!-- Left Section -->
<div class="d-flex align-items-center">
<!-- Logo -->
<a class="fw-semibold text-dual tracking-wide" href="/s/{{ bid.storeUsername }}">
فروشگاه
{{ bid.name }}
</a>
<!-- END Logo -->
</div>
<!-- END Left Section -->
<!-- Right Section -->
<div>
<!-- Open Search Section -->
<!-- Layout API, functionality initialized in Template._uiApiLayout() -->
<button class="btn btn-alt-secondary ms-2" data-action="header_search_on" data-toggle="layout" type="button">
<i class="fa fa-search"></i>
</button>
<!-- END Open Search Section -->
<a class="btn btn-alt-secondary ms-2" href="/s/{{ bid.storeUsername }}/basket">
<i class="fa fa-shopping-basket"></i>
</a>
<!-- Toggle Main Navigation -->
<button class="d-lg-none btn btn-alt-secondary ms-2" data-class="d-none" data-target="#main-navigation" data-toggle="class-toggle" type="button"><i class="fa fa-bars"></i></button>
<!-- END Toggle Main Navigation -->
</div>
<!-- END Right Section -->
</div>
<!-- END Header Content -->
<!-- Header Search -->
<div class="overlay-header bg-sidebar-dark" id="page-header-search">
<div class="content-header">
<form action="bd_search.html" class="w-100" method="POST">
<div class="input-group">
<input class="form-control" id="page-header-search-input" name="page-header-search-input" placeholder="محصول مورد نظر را جست و جو کنید" type="text"/>
<!-- Layout API, functionality initialized in Template._uiApiLayout() -->
<button class="btn btn-alt-danger" data-action="header_search_off" data-toggle="layout" type="button">
<i class="fa fa-fw fa-times-circle"></i>
</button>
</div>
</form>
</div>
</div>
<!-- END Header Search -->
<!-- Header Loader -->
<!-- Please check out the Loaders page under Components category to see examples of showing/hiding it -->
<div class="overlay-header bg-sidebar-dark" id="page-header-loader">
<div class="content-header">
<div class="w-100 text-center">
<i class="fa fa-fw fa-2x fa-spinner fa-spin text-primary"></i>
</div>
</div>
</div>
<!-- END Header Loader -->
</header>
<!-- END Header -->
<!-- Main Container -->
<main id="main-container">
<!-- Navigation -->
<div class="bg-sidebar-dark">
<div class="content">
<!-- Main Navigation -->
<div class="d-none d-lg-block push" id="main-navigation">
<ul class="nav-main nav-main-horizontal nav-main-hover nav-main-dark">
<li class="nav-main-item">
<a class="nav-main-link" href="/s/{{ bid.storeUsername }}">
<i class="nav-main-link-icon fa fa-compass"></i>
<span class="nav-main-link-name"> صفحه نخست </span>
</a>
</li>
</ul>
</div>
<!-- END Main Navigation -->
</div>
</div>
<!-- END Navigation -->
<!-- Page Content -->
<div class="content">
<!-- Hero -->
<div class="block block-rounded">
<div class="block-content">
<div class="py-4 text-center">
<h1 class="mb-2"> داشبورد </h1>
<h2 class="h4 fw-normal text-muted">به برنامه خود خوش آمدید، همه چیز عالی به نظر می رسد!</h2>
</div>
</div>
</div>
<!-- END Hero -->
<!-- Dummy content -->
<div class="row">
<div class="col-sm-4">
<div class="block block-rounded">
<div class="block-content">
<p class="text-center py-6">...</p>
</div>
</div>
</div>
<div class="col-sm-4">
<div class="block block-rounded">
<div class="block-content">
<p class="text-center py-6">...</p>
</div>
</div>
</div>
<div class="col-sm-4">
<div class="block block-rounded">
<div class="block-content">
<p class="text-center py-6">...</p>
</div>
</div>
</div>
<div class="col-12">
<div class="block block-rounded">
<div class="block-content">
<p class="text-center py-6">...</p>
</div>
</div>
</div>
<div class="col-sm-6">
<div class="block block-rounded">
<div class="block-content">
<p class="text-center py-6">...</p>
</div>
</div>
</div>
<div class="col-sm-6">
<div class="block block-rounded">
<div class="block-content">
<p class="text-center py-6">...</p>
</div>
</div>
</div>
<div class="col-12">
<div class="block block-rounded">
<div class="block-content">
<p class="text-center py-6">...</p>
</div>
</div>
</div>
</div>
<!-- END Dummy content -->
</div>
<!-- END Page Content -->
</main>
<!-- END Main Container -->
<!-- Footer -->
<footer class="footer-static bg-body-extra-light" id="page-footer">
<div class="content py-4">
<!-- Footer Navigation -->
<div class="row items-push fs-sm border-bottom pt-4">
<div class="col-sm-12 col-md-6">
<h3 class="fw-light">تماس با فروشگاه</h3>
<ul class="list list-simple-mini">
{% if bid.tel != null or bid.tel != '' %}
<li>
<a class="fw-semibold" href="javascript:void(0)">
<i class="fa fa-fw fa-mobile text-primary-lighter me-1"></i>
تلفن: {{ bid.tel }}
</a>
</li>
{% endif %}
{% if bid.mobile != null or bid.mobile != '' %}
<li>
<a class="fw-semibold" href="javascript:void(0)">
<i class="fa fa-fw fa-mobile-android text-primary-lighter me-1"></i>
موبایل: {{ bid.mobile }}
</a>
</li>
{% endif %}
{% if bid.email != null or bid.email != '' %}
<li>
<a class="fw-semibold" href="javascript:void(0)">
<i class="fa fa-fw fa-message text-primary-lighter me-1"></i>
پست الکترونیکی: {{ bid.email }}
</a>
</li>
{% endif %}
{% if bid.postalCode != null or bid.postalCode != '' %}
<li>
<a class="fw-semibold" href="javascript:void(0)">
<i class="fa fa-fw fa-message text-primary-lighter me-1"></i>
کد پستی : {{ bid.postalCode }}
</a>
</li>
{% endif %}
{% if bid.address != null or bid.address != '' %}
<li>
<a class="fw-semibold" href="javascript:void(0)">
<i class="fa fa-fw fa-message text-primary-lighter me-1"></i>
آدرس : استان {{ bid.ostan }} شهر {{ bid.shahrestan }} {{ bid.address }}
</a>
</li>
{% endif %}
</ul>
</div>
</div>
<!-- END Footer Navigation -->
<!-- Footer Copyright -->
<div class="row fs-sm pt-4">
<div class="col-sm-6 order-sm-2 mb-1 mb-sm-0 text-center text-sm-end"> ساخته شده با <i class="fa fa-heart text-danger"></i> در <a class="fw-semibold" href="https://hesabix.ir" target="_blank">حسابیکس</a>
</div>
<div class="col-sm-6 order-sm-1 text-center text-sm-start">
</div>
</div>
<!-- END Footer Copyright -->
</div>
</footer>
<!-- END Footer -->
</div>
<!-- END Page Container -->
<!--
Dashmix JS
Core libraries and functionality
webpack is putting everything together at assets/_js/main/app.js
-->
<script src="/assets/js/dashmix.app.min.js"></script>
</body></html>
</body>
</html>

View file

@ -89,7 +89,7 @@
<td class="edtext" valign="top" style="padding: 20px; color: #5f5f5f; font-size: 12px; font-family: Tahoma, Geneva, sans-serif; text-align: right; direction: rtl; box-sizing: border-box;">
<div class="style1" style="text-align: center; color: #000000; font-size: 28px; font-family: Helvetica, Arial, sans-serif;">
<strong>
<span style="color: #5f497a;">حسابیکس
<span style="color: #5f497a;">{{twigFunctions.getStaticData('system', 'appName')}}
</span>
<br>
</strong>

View file

@ -5,8 +5,7 @@
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="viewport" content="width=device-width">
<style>
type="text/css"
body,
type="text/css" body,
html {
direction: rtl;
margin: 0;
@ -89,7 +88,7 @@
<td class="edtext" valign="top" style="padding: 20px; color: #5f5f5f; font-size: 12px; font-family: Tahoma, Geneva, sans-serif; text-align: right; direction: rtl; box-sizing: border-box;">
<div class="style1" style="text-align: center; color: #000000; font-size: 28px; font-family: Helvetica, Arial, sans-serif;">
<strong>
<span style="color: #5f497a;">حسابیکس
<span style="color: #5f497a;">{{twigFunctions.getStaticData('system', 'appName')}}
</span>
<br>
</strong>
@ -100,9 +99,13 @@
<br>
</p>
<div style="text-align: center;">
به حسابیکس خوش آمدید. کد فعال سازی شما به شرح ذیل می باشد.
به
{{twigFunctions.getStaticData('system', 'appName')}}
خوش آمدید. کد فعال سازی شما به شرح ذیل می باشد.
<br>
در صورت مواجعه با مشکل در فعال سازی حساب کاربری خود با پشتیبانی حسابیکس تماس بگیرید.
در صورت مواجعه با مشکل در فعال سازی حساب کاربری خود با پشتیبانی
{{twigFunctions.getStaticData('system', 'appName')}}
تماس بگیرید.
</div>
</span>
</span>

View file

@ -89,7 +89,7 @@
<td class="edtext" valign="top" style="padding: 20px; color: #5f5f5f; font-size: 12px; font-family: Tahoma, Geneva, sans-serif; text-align: right; direction: rtl; box-sizing: border-box;">
<div class="style1" style="text-align: center; color: #000000; font-size: 28px; font-family: Helvetica, Arial, sans-serif;">
<strong>
<span style="color: #5f497a;">حسابیکس
<span style="color: #5f497a;">{{twigFunctions.getStaticData('system', 'appName')}}
</span>
<br>
</strong>
@ -100,7 +100,7 @@
<br>
</p>
<div style="text-align: center;">
کلمه عبور ورود به حسابیکس به درخواست شما تغییر یافت . جهت ورود از کلمه عبور زیر استفاده نمایید.
کلمه عبور ورود به {{twigFunctions.getStaticData('system', 'appName')}} به درخواست شما تغییر یافت . جهت ورود از کلمه عبور زیر استفاده نمایید.
</div>
</span>
</span>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 28 KiB

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.2 KiB

After

Width:  |  Height:  |  Size: 9.8 KiB