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)%' dsn: '%env(MAILER_DSN)%'
message_bus: false message_bus: false
headers: 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->setAmount($params['amount']);
$item->setCardPan($params['card']); $item->setCardPan($params['card']);
$item->setDateSubmit(time()); $item->setDateSubmit(time());
$item->setDes('واریز به حساب کسب و کار از طرف حسابیکس'); $item->setDes('تراکنش تسویه کیف پول');
$item->setRefID($params['refID']); $item->setRefID($params['refID']);
$item->setGatePay($params['bank']); $item->setGatePay($params['bank']);
$item->setBank($bid->getWalletMatchBank()->getName()); $item->setBank($bid->getWalletMatchBank()->getName());
@ -679,43 +679,4 @@ class AdminController extends AbstractController
return $this->json($res); 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'] = []; $temp['commodities'] = [];
foreach ($item->getHesabdariRows() as $item) { foreach ($item->getHesabdariRows() as $item) {
if ($item->getRef()->getCode() == '104') { if ($item->getRef()->getCode() == '51') {
$temp['discountAll'] = $item->getBd(); $temp['discountAll'] = $item->getBs();
} elseif ($item->getRef()->getCode() == '90') { } elseif ($item->getRef()->getCode() == '90') {
$temp['transferCost'] = $item->getBs(); $temp['transferCost'] = $item->getBd();
} }
if ($item->getCommodity()) { if ($item->getCommodity()) {
$temp['commodities'][] = Explore::ExploreCommodity($item->getCommodity(), $item->getCommdityCount()); $temp['commodities'][] = Explore::ExploreCommodity($item->getCommodity(), $item->getCommdityCount());
@ -442,9 +442,9 @@ class BuyController extends AbstractController
foreach ($doc->getHesabdariRows() as $item) { foreach ($doc->getHesabdariRows() as $item) {
if ($item->getPerson()) { if ($item->getPerson()) {
$person = $item->getPerson(); $person = $item->getPerson();
} elseif ($item->getRef()->getCode() == 104) { } elseif ($item->getRef()->getCode() == 90) {
$discount = $item->getBd(); $discount = $item->getBd();
} elseif ($item->getRef()->getCode() == 61) { } elseif ($item->getRef()->getCode() == 51) {
$transfer = $item->getBs(); $transfer = $item->getBs();
} }
} }

View file

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

View file

@ -11,6 +11,6 @@ class UiGeneralController extends AbstractController
#[Route('/', name: 'general_home')] #[Route('/', name: 'general_home')]
public function general_home(): JsonResponse 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, Response::HTTP_OK,
[ [
'Content-Type' => 'application/pdf', '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'), 'sponsorMessage' => $registryMGR->get('system', 'sponsers'),
'footerLeft' => $registryMGR->get('system', 'footerLeft'), 'footerLeft' => $registryMGR->get('system', 'footerLeft'),
'footerRight' => $registryMGR->get('system', 'footerRight'), 'footerRight' => $registryMGR->get('system', 'footerRight'),
'appName' => $registryMGR->get('system', 'appName'),
'appUrl' => $registryMGR->get('system', 'appUrl'),
]; ];
return new JsonResponse([ return new JsonResponse([
@ -82,6 +83,8 @@ final class RegistrySettingsController extends AbstractController
$registryMGR->update('system', 'sponsers', $data['sponsorMessage'] ?? ''); $registryMGR->update('system', 'sponsers', $data['sponsorMessage'] ?? '');
$registryMGR->update('system', 'footerLeft', $data['footerLeft'] ?? ''); $registryMGR->update('system', 'footerLeft', $data['footerLeft'] ?? '');
$registryMGR->update('system', 'footerRight', $data['footerRight'] ?? ''); $registryMGR->update('system', 'footerRight', $data['footerRight'] ?? '');
$registryMGR->update('system', 'appName', $data['appName'] ?? '');
$registryMGR->update('system', 'appUrl', $data['appUrl'] ?? '');
return new JsonResponse([ return new JsonResponse([
'result' => 1, 'result' => 1,

View file

@ -36,8 +36,8 @@ use Symfony\Contracts\Translation\TranslatorInterface;
use SymfonyCasts\Bundle\VerifyEmail\Exception\VerifyEmailExceptionInterface; use SymfonyCasts\Bundle\VerifyEmail\Exception\VerifyEmailExceptionInterface;
use Symfony\Component\EventDispatcher\EventDispatcher, use Symfony\Component\EventDispatcher\EventDispatcher,
Symfony\Component\Security\Core\Authentication\Token\UsernamePasswordToken, Symfony\Component\Security\Core\Authentication\Token\UsernamePasswordToken,
Symfony\Component\Security\Http\Event\InteractiveLoginEvent; Symfony\Component\Security\Http\Event\InteractiveLoginEvent;
use function PHPUnit\Framework\throwException; use function PHPUnit\Framework\throwException;
class UserController extends AbstractController class UserController extends AbstractController
@ -388,7 +388,7 @@ class UserController extends AbstractController
$email = (new Email()) $email = (new Email())
->to($user->getEmail()) ->to($user->getEmail())
->priority(Email::PRIORITY_HIGH) ->priority(Email::PRIORITY_HIGH)
->subject('تایید ایمیل در حسابیکس') ->subject('تایید ایمیل')
->html( ->html(
$this->renderView('user/email/confrim-register.html.twig', [ $this->renderView('user/email/confrim-register.html.twig', [
'code' => $user->getVerifyCode() 'code' => $user->getVerifyCode()
@ -455,7 +455,7 @@ class UserController extends AbstractController
$email = (new Email()) $email = (new Email())
->to($user->getEmail()) ->to($user->getEmail())
->priority(Email::PRIORITY_HIGH) ->priority(Email::PRIORITY_HIGH)
->subject('تایید ایمیل در حسابیکس') ->subject('تایید ایمیل ')
->html( ->html(
$this->renderView('user/email/confrim-register.html.twig', [ $this->renderView('user/email/confrim-register.html.twig', [
'code' => $user->getVerifyCode() 'code' => $user->getVerifyCode()
@ -613,7 +613,7 @@ class UserController extends AbstractController
$email = (new Email()) $email = (new Email())
->to($user->getEmail()) ->to($user->getEmail())
->priority(Email::PRIORITY_HIGH) ->priority(Email::PRIORITY_HIGH)
->subject('حسابیکس - فراموشی کلمه عبور') ->subject('فراموشی کلمه عبور')
->html( ->html(
$this->renderView('user/email/confrim-forget-password.html.twig', [ $this->renderView('user/email/confrim-forget-password.html.twig', [
'code' => $user->getVerifyCode() 'code' => $user->getVerifyCode()
@ -690,7 +690,7 @@ class UserController extends AbstractController
$email = (new Email()) $email = (new Email())
->to($user->getEmail()) ->to($user->getEmail())
->priority(Email::PRIORITY_HIGH) ->priority(Email::PRIORITY_HIGH)
->subject('تایید ایمیل در حسابیکس') ->subject('تایید ایمیل ')
->html( ->html(
$this->renderView('user/email/confrim-register.html.twig', [ $this->renderView('user/email/confrim-register.html.twig', [
'code' => $user->getVerifyCode() 'code' => $user->getVerifyCode()
@ -716,4 +716,53 @@ class UserController extends AbstractController
'canRegister' => $canRegister '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>'; $htmlContent = $printQueue->getView() ?: '<p>محتوای PDF در دسترس نیست.</p>';
$mpdf->WriteHTML($htmlContent); $mpdf->WriteHTML($htmlContent);
$mpdf->SetAutoPageBreak(true); $mpdf->SetAutoPageBreak(true);
$mpdf->SetTitle('حسابیکس'); $mpdf->SetTitle('PDF Export');
// به جای Output مستقیم، محتوا رو برگردونید // به جای Output مستقیم، محتوا رو برگردونید
return $mpdf->Output('', 'S'); // 'S' برای برگرداندن به صورت رشته return $mpdf->Output('', 'S'); // 'S' برای برگرداندن به صورت رشته

View file

@ -4,9 +4,9 @@
<meta charset="UTF-8"> <meta charset="UTF-8">
<meta lang="fa"> <meta lang="fa">
<meta content="width=device-width,initial-scale=1.0" name="viewport"/> <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"/> <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 #} {# Run `composer require symfony/webpack-encore-bundle` to start using Symfony UX #}
{% block stylesheets %} {% block stylesheets %}
{#{{ encore_entry_link_tags('app') }}#} {#{{ encore_entry_link_tags('app') }}#}

View file

@ -13,7 +13,7 @@
<!-- Header --> <!-- Header -->
<div class="flex-grow-0 p-5"> <div class="flex-grow-0 p-5">
<a class="link-fx fw-bold fs-2" href="/"> <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> </a>
<p class="text-uppercase fw-bold fs-sm text-muted mb-0"> به روزترین سامانه حسابداری ابری و رایگان </p> <p class="text-uppercase fw-bold fs-sm text-muted mb-0"> به روزترین سامانه حسابداری ابری و رایگان </p>
</div> </div>
@ -35,7 +35,7 @@
<!-- Footer --> <!-- Footer -->
<ul class="list-inline flex-gow-1 p-5 fs-sm fw-medium mb-0"> <ul class="list-inline flex-gow-1 p-5 fs-sm fw-medium mb-0">
<li class="list-inline-item"> <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> </li>
</ul> </ul>
<!-- END Footer --> <!-- 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">
<div class="block-header block-header-default"> <div class="block-header block-header-default">
<div class="block-title text-primary-dark text-start"> <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> </div>
<div class="block-content p-3"> <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 class="flex-grow-1 fs-3 fw-semibold my-2 my-sm-3">
مشاهده قبض تعمیرات مشاهده قبض تعمیرات
</h2> </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> <i class="fa fa-fw fa-door-open me-1"></i>
ورود به حسابیکس ورود به
{{twigFunctions.getStaticData('system', 'appName')}}
</a> </a>
</div> </div>
</div> </div>
@ -58,7 +59,7 @@
{{bid.name}} {{bid.name}}
</p> </p>
<address>آدرس : <address>آدرس :
استان استان
{{bid.ostan}} {{bid.ostan}}
شهرستان شهرستان
{{bid.shahrestan}} {{bid.shahrestan}}
@ -86,7 +87,7 @@
{{ person.nikename }} {{ person.nikename }}
</p> </p>
<address>آدرس : <address>آدرس :
استان استان
{{person.ostan}} {{person.ostan}}
شهرستان شهرستان
{{person.shahr}} {{person.shahr}}
@ -162,8 +163,8 @@
</tbody> </tbody>
</table> </table>
<!-- Footer --> <!-- 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> <label class="text-muted">سامانه جامع مالی رایگان ، ابری و متن باز</label>
</a> </a>
<!-- END Footer --> <!-- END Footer -->

View file

@ -239,8 +239,8 @@
</div> </div>
</div> </div>
<!-- Footer --> <!-- 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> <label class="text-muted">سامانه جامع مالی رایگان ، ابری و متن باز</label>
</a> </a>
<!-- END Footer --> <!-- END Footer -->

View file

@ -130,8 +130,8 @@
{{ doc.des }} {{ doc.des }}
</div> </div>
<!-- Footer --> <!-- 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> <label class="text-muted">سامانه جامع مالی رایگان ، ابری و متن باز</label>
</a> </a>
<!-- END Footer --> <!-- END Footer -->

View file

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

View file

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