progress in repservice

This commit is contained in:
babak alizadeh 2024-06-01 19:11:40 +03:30
parent 232a51ea67
commit cac898f4d5
5 changed files with 364 additions and 217 deletions

View file

@ -44,7 +44,6 @@ services:
twigFunctions:
class: App\Service\twigFunctions
arguments: [ "@doctrine.orm.entity_manager" ]
registryMGR:
class: App\Service\registryMGR
arguments: [ "@doctrine.orm.entity_manager" ]

View file

@ -219,7 +219,7 @@ class AdminController extends AbstractController
'get' => $registryMGR->get('sms', 'plugRepserviceStateGet'),
'getback' => $registryMGR->get('sms', 'plugRepserviceStateGetback'),
'repired' => $registryMGR->get('sms', 'plugRepserviceStateRepaired'),
'unrepired' => $registryMGR->get('sms', 'plugRepserviceStateUnrepired')
'unrepaired' => $registryMGR->get('sms', 'plugRepserviceStateUnrepired')
];
return $this->json($resp);
}
@ -260,13 +260,13 @@ class AdminController extends AbstractController
if (array_key_exists('plugRepservice', $params)) {
if (array_key_exists('get', $params['plugRepservice']))
$registryMGR->update('sms', 'plugRepserviceStateGet', $params['plugRepservice']['plugRepserviceStateGet']);
$registryMGR->update('sms', 'plugRepserviceStateGet', $params['plugRepservice']['get']);
if (array_key_exists('repired', $params['plugRepservice']))
$registryMGR->update('sms', 'plugRepserviceStateRepaired', $params['plugRepservice']['repired']);
if (array_key_exists('plugRepserviceStateGet', $params['plugRepservice']))
$registryMGR->update('sms', 'plugRepserviceStateGet', $params['plugRepservice']['plugRepserviceStateGet']);
if (array_key_exists('plugRepserviceStateGet', $params['plugRepservice']))
$registryMGR->update('sms', 'plugRepserviceStateGet', $params['plugRepservice']['plugRepserviceStateGet']);
if (array_key_exists('unrepaired', $params['plugRepservice']))
$registryMGR->update('sms', 'plugRepserviceStateUnrepired', $params['plugRepservice']['unrepaired']);
if (array_key_exists('getback', $params['plugRepservice']))
$registryMGR->update('sms', 'plugRepserviceStateGetback', $params['plugRepservice']['getback']);
}
@ -290,7 +290,7 @@ class AdminController extends AbstractController
#[Route('/api/admin/settings/system/info/save', name: 'admin_settings_system_info_save')]
public function admin_settings_system_info_save(Registry $registry, EntityManagerInterface $entityManager, Request $request): Response
public function admin_settings_system_info_save(EntityManagerInterface $entityManager, Request $request): Response
{
$params = [];
if ($content = $request->getContent()) {

View file

@ -32,16 +32,16 @@ class UiGeneralController extends AbstractController
$lastBusiness = $entityManager->getRepository(Business::class)->findLast();
if($lastBusiness)
return $this->render('general/home.html.twig',[
'business' => $busCount + 9405,
'users' => $users + 25471,
'business' => $busCount + 11405,
'users' => $users + 29471,
'docs' => $docs + 105412,
'lastBusinessName' => $lastBusiness->getname(),
'lastBusinessOwner' => $lastBusiness->getOwner()->getFullName(),
'blogPosts'=> $entityManager->getRepository(BlogPost::class)->findBy([],['dateSubmit'=>'DESC'],3)
]);
return $this->render('general/home.html.twig',[
'business' => $busCount + 9405,
'users' => $users + 25471,
'business' => $busCount + 11405,
'users' => $users + 29471,
'docs' => $docs + 105412,
'lastBusinessName' => 'ثبت نشده',
'lastBusinessOwner' => 'ثبت نشده',

View file

@ -2,6 +2,7 @@
namespace App\Controller\Plugins;
use App\Entity\Business;
use App\Service\Log;
use App\Service\SMS;
use App\Entity\Person;
@ -22,6 +23,21 @@ use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
class PlugRepserviceController extends AbstractController
{
#[Route('/p/rep/{bid}/{sharelink}', name: 'app_plug_repservice_order_view_front')]
public function app_plug_repservice_order_view_front(string $bid,string $sharelink ,$provider, registryMGR $registryMGR, SMS $sms, Log $log, EntityManagerInterface $entityManagerInterface, Access $access, Request $request, Extractor $extractor): Response
{
$bid = $entityManagerInterface->getRepository(Business::class)->find($bid);
if(!$bid) throw $this->createNotFoundException();
$order = $entityManagerInterface->getRepository(PlugRepserviceOrder::class)->findOneBy([
'bid' => $bid,
'sharelink' => $sharelink
]);
return $this->render('repservice/view.html.twig',[
'order'=>$order
]);
}
#[Route('/api/plug/repservice/order/mod', name: 'app_plug_repservice_order_mod')]
public function app_plug_repservice_order_mod(Provider $provider, registryMGR $registryMGR, SMS $sms, Log $log, EntityManagerInterface $entityManagerInterface, Access $access, Request $request, Extractor $extractor): JsonResponse
{

View file

@ -1,12 +1,15 @@
{% extends "base.html.twig" %}
{% block title %}نرم افزار حسابداری آنلاین ، متن باز و کاملا رایگان{% endblock %}
{% block title %}
نرم افزار حسابداری آنلاین ، متن باز و کاملا رایگان
{% endblock %}
{% block body %}
<div class="px-4 py-3 text-center">
<div class="row">
<div class="col-sm-12 col-md-6 mb-2 pt-4">
<h1 class="fw-bold text-primary-darker">
<img class="" src="/img/logo-blue.png" alt="حسابیکس لوگو" width="72" height="72">
حسابداری آنلاین حسابیکس</h1>
حسابداری آنلاین حسابیکس
</h1>
<p class="lead mb-4">
برای کار با حسابیکس فقط به یک دستگاه متصل به اینترنت نیاز دارید، فرقی نمی‌کند که این دستگاه تبلت یا موبایل باشد یا اینکه رایانه و لپ تاپ.
نیاز نیست که هیچگونه نرم افزاری را نصب کنید. کافیست در سایت ثبت نام کرده و بلافاصله کسب و کار خود را مدیریت کنید.
@ -29,7 +32,50 @@
</div>
</div>
</div>
<div class="container">
<div class="container py-3 d-block d-sm-none">
<div class="row">
<div class="col-12 d-md-flex align-items-md-center">
<div class="block block-rounded w-100 my-3 bg-image text-center bg-primary-op">
<div class="block-content block-content-full bg-white-90">
<img alt="" class="img-avatar img-avatar96 img-avatar-thumb" src="{{asset('/img/logo-blue.png')}}">
<p class="text-black-75 fw-medium mb-0">نتیجه اعتماد کاربران</p>
</div>
<div class="block-content block-content-full bg-body-extra-light">
<div class="row g-sm my-2">
<div class="col-4">
<p class="mb-2">
<i class="fa fa-fw fa-2x fa-shop text-muted"></i>
</p>
<p class="fs-sm mb-0">
{{ business | number_format }}
کسب‌و‌کار
</p>
</div>
<div class="col-4">
<p class="mb-2">
<i class="fa fa-fw fa-2x fa-user-tie text-muted"></i>
</p>
<p class="fs-sm mb-0">
{{ users | number_format }}
کاربر
</p>
</div>
<div class="col-4">
<p class="mb-2">
<i class="fa fa-fw fa-2x fa-money-bill-wave text-muted"></i>
</p>
<p class="fs-sm mb-0">
{{ docs | number_format }}
سند
</p>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="container d-none d-sm-block">
<div class="row items-push py-5">
<div class="col-sm-3 col-xl-3 mb-2">
<a class="block block-rounded block-fx-pop text-center h-100 mb-0 border border-primary" href="javascript:void(0)">
@ -37,8 +83,12 @@
<div class="item item-circle bg-primary-lighter mx-auto my-3">
<i class="fa fa-users text-primary"></i>
</div>
<div class="display-5 fw-bold">{{ users | number_format}}</div>
<div class="text-muted mt-1">کاربران</div>
<div class="display-5 fw-bold">
{{ users | number_format }}
</div>
<div class="text-muted mt-1">
کاربران
</div>
</div>
</a>
</div>
@ -48,8 +98,12 @@
<div class="item item-circle bg-xinspire-lighter mx-auto my-3">
<i class="fa fa-home-user text-xinspire-dark"></i>
</div>
<div class="display-5 fw-bold">{{ business | number_format }}</div>
<div class="text-muted mt-1">کسب‌و‌کارها</div>
<div class="display-5 fw-bold">
{{ business | number_format }}
</div>
<div class="text-muted mt-1">
کسب‌و‌کارها
</div>
</div>
</a>
</div>
@ -59,8 +113,12 @@
<div class="item item-circle bg-xsmooth-lighter mx-auto my-3">
<i class="fa fa-paperclip text-xsmooth"></i>
</div>
<div class="display-5 fw-bold">{{ docs | number_format }}</div>
<div class="text-muted mt-1">اسناد</div>
<div class="display-5 fw-bold">
{{ docs | number_format }}
</div>
<div class="text-muted mt-1">
اسناد
</div>
</div>
</a>
</div>
@ -70,8 +128,12 @@
<div class="item item-circle bg-xplay-lighter mx-auto my-3">
<i class="fa fa-box text-xplay"></i>
</div>
<div class="display-5 fw-bold">11,149,174</div>
<div class="text-muted mt-1">کالاها‌و‌خدمات</div>
<div class="display-5 fw-bold">
780,000+
</div>
<div class="text-muted mt-1">
کالاها‌و‌خدمات
</div>
</div>
</a>
</div>
@ -83,7 +145,9 @@
<div class="col-12 mb-2">
<div class="card">
<div class="card-body">
<h5 class="card-title text-primary-dark">حسابیکس چیست؟</h5>
<h5 class="card-title text-primary-dark">
حسابیکس چیست؟
</h5>
<p class="card-text">
حسابیکس اولین نرم افزار کامل حسابداری تحت وب است. این نرم افزار بر اساس فناوری رایانش ابری ساخته شده است. یعنی کلیه اطلاعات شما بر روی سرورهای حسابیکس قرار می گیرد. ما امنیت اطلاعات و حریم خصوصی کلیه کاربران را به طور کامل تضمین می کنیم. برای کار با حسابیکس فقط به یک دستگاه متصل به اینترنت نیاز دارید، فرقی نمی کند که این دستگاه تبلت یا موبایل باشد یا اینکه رایانه و لپ تاپ. نیاز نیست که هیچگونه نرم افزاری را نصب کنید. کافیست در سایت ثبت نام کرده و بلافاصله کسب و کار خود را مدیریت کنید.
</p>
@ -93,7 +157,9 @@
<div class="col-12 mb-2">
<div class="card">
<div class="card-body">
<h5 class="card-title text-primary-dark">ساده و قدرتمند</h5>
<h5 class="card-title text-primary-dark">
ساده و قدرتمند
</h5>
<p class="card-text">
برای کار با حسابیکس فقط به یک دستگاه متصل به اینترنت نیاز دارید، مهم نیست که این دستگاه تبلت یا موبایل باشد یا اینکه رایانه و لپ تاپ.
نیاز نیست که هیچگونه نرم افزاری را نصب کنید. کافیست در سایت ثبت نام کرده و بلافاصله کسب و کار خود را مدیریت کنید.
@ -107,18 +173,24 @@
<div class="col-12 mb-2">
<div class="card">
<div class="card-body">
<h5 class="card-title text-primary-dark">نقاط قوت و تمایز</h5>
<h5 class="card-title text-primary-dark">
نقاط قوت و تمایز
</h5>
<p class="card-text">
در حسابیکس می توانید فاکتورهای مشتریان را به صورت آنلاین برای آنها ارسال کنید، مشتری نیز می تواند فاکتور یا حتی مانده بدهی خود را به صورت آنلاین پرداخت کند. کلیه اسناد مربوطه نیز توسط نرم افزار به صورت اتوماتیک صادر می شوند. از سوی دیگر ذینفعان کسب و کار شما، مانند مشتریان یا تامین کنندگان، می توانند به صورت آنلاین و بروز، کارت حساب خود را مشاهده کنند.</p>
در حسابیکس می توانید فاکتورهای مشتریان را به صورت آنلاین برای آنها ارسال کنید، مشتری نیز می تواند فاکتور یا حتی مانده بدهی خود را به صورت آنلاین پرداخت کند. کلیه اسناد مربوطه نیز توسط نرم افزار به صورت اتوماتیک صادر می شوند. از سوی دیگر ذینفعان کسب و کار شما، مانند مشتریان یا تامین کنندگان، می توانند به صورت آنلاین و بروز، کارت حساب خود را مشاهده کنند.
</p>
</div>
</div>
</div>
<div class="col-12 mb-2">
<div class="card">
<div class="card-body">
<h5 class="card-title text-primary-dark">سریع و به روز</h5>
<h5 class="card-title text-primary-dark">
سریع و به روز
</h5>
<p class="card-text">
با وجود اینکه حسابیکس بر روی بستر اینترنت ارائه می شود، این نرم افزار بسیار سریع است. تجربه کاربری ارائه شده در حسابیکس نه تنها از لحاظ سرعت با نرم افزارهای تحت ویندوز رقابت می کند بلکه در بسیاری از موارد عملیات را سریعتر انجام می دهد. به علاوه حسابیکس همیشه بروز است. هر زمان که به سیستم وارد می شوید، آخرین نسخه از نرم افزار در دسترس شما قرار می گیرد. این امکانات به رایگان در اختیار کلیه کاربران قرار می گیرد. </p>
با وجود اینکه حسابیکس بر روی بستر اینترنت ارائه می شود، این نرم افزار بسیار سریع است. تجربه کاربری ارائه شده در حسابیکس نه تنها از لحاظ سرعت با نرم افزارهای تحت ویندوز رقابت می کند بلکه در بسیاری از موارد عملیات را سریعتر انجام می دهد. به علاوه حسابیکس همیشه بروز است. هر زمان که به سیستم وارد می شوید، آخرین نسخه از نرم افزار در دسترس شما قرار می گیرد. این امکانات به رایگان در اختیار کلیه کاربران قرار می گیرد.
</p>
</div>
</div>
</div>
@ -132,16 +204,22 @@
<div class="block-content block-content-full">
<div class="row justify-content-sm-between align-items-center p-md-3">
<div class="col-sm-6">
<h4 class="mb-2">راه اندازی حسابیکس در کسب و کار شما</h4>
<h4 class="mb-2">
راه اندازی حسابیکس در کسب و کار شما
</h4>
<p class="text-muted mb-sm-0">
حسابیکس بسیار انعطاف پذیر و برای مدیریت اکثر کسب و کارها کارآمد است.برای آموزش راه اندازی اولیه کسب و کار خود در حسابیکس کافی است با ما تماس بگیرید .
راه‌اندازی کسب و کار و مشاوره با کارشناسان ما کاملا رایگان است
</p>
</div>
<div class="col-sm-6 text-sm-end">
<a class="btn btn-primary px-4 py-2 mt-1" href="{{path('general_contact')}}">تماس با ما<i class="fa fa-fw fa-arrow-left opacity-50 ms-1"></i>
<a class="btn btn-primary px-4 py-2 mt-1" href="{{ path('general_contact') }}">
تماس با ما
<i class="fa fa-fw fa-arrow-left opacity-50 ms-1"></i>
</a>
<a class="btn btn-info px-4 py-2 mt-1" href="{{ twigFunctions.systemSettings().appSite }}/user/login">ارسال تیکت<i class="fa fa-fw fa-arrow-left opacity-50 ms-1"></i>
<a class="btn btn-info px-4 py-2 mt-1" href="{{ twigFunctions.systemSettings().appSite }}/user/login">
ارسال تیکت
<i class="fa fa-fw fa-arrow-left opacity-50 ms-1"></i>
</a>
</div>
</div>
@ -161,9 +239,13 @@
</h4>
<p class=" mb-sm-0">
به جدیدترین عضو حسابیکس
<span class="text-primary">{{ lastBusinessOwner }}</span>
<span class="text-primary">
{{ lastBusinessOwner }}
</span>
که کسب‌و‌کار خود را با نام
<span class="text-primary">{{ lastBusinessName }}</span>
<span class="text-primary">
{{ lastBusinessName }}
</span>
ایجاد کرده‌اند خوش‌آمد می‌گوییم.
</p>
</div>
@ -174,15 +256,60 @@
</div>
</div>
</div>
<div class="container mb-3 d-none d-sm-block">
<div class="row">
<div class="col-12 py-2 text-center">
<h1>حامیان حسابیکس</h1>
</div>
<div class="col-sm-12 col-md-4">
<div class="card">
<img src="{{ asset('/banners/raddata.png') }}" class="card-img-top" alt="راددیتا">
<div class="card-body text-center">
<h5 class="card-title text-primary">مرکز ارتباطات راد دیتا</h5>
<p class="card-text">پیشرو در ارائه خدمات فنی مهندسی و سرویس های مرکز داده در ایران و خارج با بالاترین کیفیت و قیمت مناسب</p>
<a href="https://raddata.ir" target="_blank" class="btn btn-primary">وب سایت</a>
</div>
</div>
</div>
<div class="col-sm-12 col-md-4">
<div class="card">
<img src="{{ asset('/img/parspack-black.png') }}" class="card-img-top bg-black p-3" alt="پارس‌پک">
<div class="card-body text-center">
<h5 class="card-title text-primary">پارس‌پک</h5>
<p class="card-text">از یک استارت‌آپ کوچک تا سازمانی بزرگ پشتیبان‌تان هستیم. پیشرو در راهکارهای ابری</p>
<a href="https://parspack.com" target="_blank" class="btn btn-primary">وب سایت</a>
</div>
</div>
</div>
<div class="col-sm-12 col-md-4">
<div class="card">
<img src="{{ asset('/img/melipayamak-card.png') }}" class="img-flude card-img-top bg-white p-3" alt="ملی پیامک">
<div class="card-body text-center">
<h5 class="card-title text-primary">سامانه پیام کوتاه ملی‌پیامک</h5>
<p class="card-text">ملی پیامک یک سامانه پیامکی معمولی نیست! یک ابزار قدرتمند است برای آنکه مشتری را جذب کنید، از او نگهداری کنید، یک رابطه پایدار بسازید و خدمات بهتری ارائه دهید. وقت آن رسیده که نگاهی بزرگ‌تر به پیام کوتاه داشته باشیم.
</p>
<a href="https://www.melipayamak.com/?utm_source=hesabix&utm_medium=affiliate&utm_campaign=hesabix-camp" target="_blank" class="btn btn-primary">
<i class="fa fa-link me-2"></i>
سفارش پنل پیامک
</a>
</div>
</div>
</div>
</div>
</div>
<div class="content content-boxed mt-0 pt-0">
{% if blogPosts | length > 0 %}
<h3>وبلاگ حسابیکس</h3>
<h3>
وبلاگ حسابیکس
</h3>
<div class="row items-push">
{% for item in blogPosts %}
<div class="col-sm-12 col-md-4">
<a class="block block-rounded block-transparent d-md-flex align-items-md-stretch bg-image h-100 mb-0 js-click-ripple-enabled" data-toggle="click-ripple" href="{{ path('general_blog_post',{'url':item.url}) }}" style="background-image: url('/blog/media/{{ item.img }}'); overflow: hidden; position: relative; z-index: 1;">
<div class="block-content block-content-full bg-black-50">
<span class="d-inline-block py-1 px-2 rounded bg-black-75 fs-sm fw-bold text-uppercase text-white">{{ item.cat.label }}</span>
<span class="d-inline-block py-1 px-2 rounded bg-black-75 fs-sm fw-bold text-uppercase text-white">
{{ item.cat.label }}
</span>
<div class="py-6">
<div class="fs-sm mb-2">
<i class="fa fa-star text-warning"></i>
@ -191,10 +318,15 @@
<i class="fa fa-star text-warning"></i>
<i class="fa fa-star text-warning"></i>
</div>
<h3 class="fw-bold text-white mb-1">{{ item.title }}</h3>
<h3 class="fw-bold text-white mb-1">
{{ item.title }}
</h3>
</div>
<span class="fs-sm fw-bold text-uppercase text-white-75">
{{ item.submitter.fullname}} | {{ Jdate.jdate('Y/n/d',item.dateSubmit)}} </span>
{{ item.submitter.fullname }}
|
{{ Jdate.jdate('Y/n/d',item.dateSubmit) }}
</span>
</div>
</a>
</div>