From 3a4369486422ff3c191f5aa9c45d686041c0818c Mon Sep 17 00:00:00 2001 From: Babak Alizadeh Date: Fri, 3 Nov 2023 08:00:57 -0400 Subject: [PATCH] add storeroom to project --- .idea/inspectionProfiles/Project_Default.xml | 21 ++ hesabixCore/composer.lock | 36 +-- .../src/Controller/AdminController.php | 20 +- hesabixCore/src/Controller/BlogController.php | 5 +- .../src/Controller/BusinessController.php | 3 +- .../src/Controller/CommodityController.php | 15 +- .../src/Controller/Front/UserController.php | 23 ++ .../src/Controller/HesabdariController.php | 5 + .../src/Controller/StoreroomController.php | 221 +++++++++++++++++- hesabixCore/src/Entity/BlogPost.php | 15 ++ hesabixCore/src/Entity/Commodity.php | 65 +++++- hesabixCore/src/Entity/HesabdariDoc.php | 16 ++ hesabixCore/src/Entity/HesabdariRow.php | 15 ++ hesabixCore/templates/base.html.twig | 4 +- hesabixCore/templates/general/faq.html.twig | 97 ++++++-- .../templates/general/sponsors.html.twig | 19 +- public_html/banners/raddata.png | Bin 0 -> 60785 bytes public_html/img/raddata.png | Bin 0 -> 16026 bytes 18 files changed, 518 insertions(+), 62 deletions(-) create mode 100644 .idea/inspectionProfiles/Project_Default.xml create mode 100644 public_html/banners/raddata.png create mode 100644 public_html/img/raddata.png diff --git a/.idea/inspectionProfiles/Project_Default.xml b/.idea/inspectionProfiles/Project_Default.xml new file mode 100644 index 0000000..9f44ea3 --- /dev/null +++ b/.idea/inspectionProfiles/Project_Default.xml @@ -0,0 +1,21 @@ + + + + \ No newline at end of file diff --git a/hesabixCore/composer.lock b/hesabixCore/composer.lock index eeea583..f468ebe 100644 --- a/hesabixCore/composer.lock +++ b/hesabixCore/composer.lock @@ -2101,16 +2101,16 @@ }, { "name": "monolog/monolog", - "version": "3.4.0", + "version": "3.5.0", "source": { "type": "git", "url": "https://github.com/Seldaek/monolog.git", - "reference": "e2392369686d420ca32df3803de28b5d6f76867d" + "reference": "c915e2634718dbc8a4a15c61b0e62e7a44e14448" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Seldaek/monolog/zipball/e2392369686d420ca32df3803de28b5d6f76867d", - "reference": "e2392369686d420ca32df3803de28b5d6f76867d", + "url": "https://api.github.com/repos/Seldaek/monolog/zipball/c915e2634718dbc8a4a15c61b0e62e7a44e14448", + "reference": "c915e2634718dbc8a4a15c61b0e62e7a44e14448", "shasum": "" }, "require": { @@ -2186,7 +2186,7 @@ ], "support": { "issues": "https://github.com/Seldaek/monolog/issues", - "source": "https://github.com/Seldaek/monolog/tree/3.4.0" + "source": "https://github.com/Seldaek/monolog/tree/3.5.0" }, "funding": [ { @@ -2198,7 +2198,7 @@ "type": "tidelift" } ], - "time": "2023-06-21T08:46:11+00:00" + "time": "2023-10-27T15:32:31+00:00" }, { "name": "mpdf/mpdf", @@ -4827,16 +4827,16 @@ }, { "name": "symfony/flex", - "version": "v2.3.3", + "version": "v2.4.1", "source": { "type": "git", "url": "https://github.com/symfony/flex.git", - "reference": "9c402af768c6c9f8126a9ffa192ecf7c16581e35" + "reference": "ae6dea68771c5fca9d172e0c0910bdd06199f6f4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/flex/zipball/9c402af768c6c9f8126a9ffa192ecf7c16581e35", - "reference": "9c402af768c6c9f8126a9ffa192ecf7c16581e35", + "url": "https://api.github.com/repos/symfony/flex/zipball/ae6dea68771c5fca9d172e0c0910bdd06199f6f4", + "reference": "ae6dea68771c5fca9d172e0c0910bdd06199f6f4", "shasum": "" }, "require": { @@ -4872,7 +4872,7 @@ "description": "Composer plugin for Symfony", "support": { "issues": "https://github.com/symfony/flex/issues", - "source": "https://github.com/symfony/flex/tree/v2.3.3" + "source": "https://github.com/symfony/flex/tree/v2.4.1" }, "funding": [ { @@ -4888,7 +4888,7 @@ "type": "tidelift" } ], - "time": "2023-08-04T09:02:35+00:00" + "time": "2023-10-30T18:35:17+00:00" }, { "name": "symfony/form", @@ -10696,16 +10696,16 @@ }, { "name": "symfony/phpunit-bridge", - "version": "v6.3.2", + "version": "v6.3.6", "source": { "type": "git", "url": "https://github.com/symfony/phpunit-bridge.git", - "reference": "e020e1efbd1b42cb670fcd7d19a25abbddba035d" + "reference": "c6f1df6a76c2c12bd14a0a5bf7c556dd935efe1d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/phpunit-bridge/zipball/e020e1efbd1b42cb670fcd7d19a25abbddba035d", - "reference": "e020e1efbd1b42cb670fcd7d19a25abbddba035d", + "url": "https://api.github.com/repos/symfony/phpunit-bridge/zipball/c6f1df6a76c2c12bd14a0a5bf7c556dd935efe1d", + "reference": "c6f1df6a76c2c12bd14a0a5bf7c556dd935efe1d", "shasum": "" }, "require": { @@ -10757,7 +10757,7 @@ "description": "Provides utilities for PHPUnit, especially user deprecation notices management", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/phpunit-bridge/tree/v6.3.2" + "source": "https://github.com/symfony/phpunit-bridge/tree/v6.3.6" }, "funding": [ { @@ -10773,7 +10773,7 @@ "type": "tidelift" } ], - "time": "2023-07-12T16:00:22+00:00" + "time": "2023-10-12T15:02:41+00:00" }, { "name": "symfony/web-profiler-bundle", diff --git a/hesabixCore/src/Controller/AdminController.php b/hesabixCore/src/Controller/AdminController.php index 783e9ef..8fa5ece 100644 --- a/hesabixCore/src/Controller/AdminController.php +++ b/hesabixCore/src/Controller/AdminController.php @@ -2,6 +2,10 @@ namespace App\Controller; +use App\Entity\User; +use App\Service\Provider; +use Doctrine\ORM\EntityManagerInterface; +use Exception; use Symfony\Bundle\FrameworkBundle\Console\Application; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\Console\Input\ArrayInput; @@ -13,7 +17,7 @@ use Symfony\Component\Routing\Annotation\Route; class AdminController extends AbstractController { /** - * @throws \Exception + * @throws Exception */ #[Route('/api/admin/sync/database', name: 'app_admin_sync_database')] public function app_admin_sync_database(KernelInterface $kernel): JsonResponse @@ -40,7 +44,7 @@ class AdminController extends AbstractController } /** - * @throws \Exception + * @throws Exception */ #[Route('/api/admin/has/role/{role}', name: 'app_admin_has_role')] public function app_admin_has_role($role): JsonResponse @@ -55,4 +59,16 @@ class AdminController extends AbstractController 'result' => false, ]); } + + /** + * @throws Exception + */ + #[Route('/api/admin/users/list', name: 'app_admin_users_list')] + public function app_admin_users_list(Provider $provider,EntityManagerInterface $entityManager): JsonResponse + { + $users = $entityManager->getRepository(User::class)->findAll(); + return $this->json($provider->ArrayEntity2ArrayJustIncludes($users,[ + + ])); + } } diff --git a/hesabixCore/src/Controller/BlogController.php b/hesabixCore/src/Controller/BlogController.php index 2623f26..8b21305 100644 --- a/hesabixCore/src/Controller/BlogController.php +++ b/hesabixCore/src/Controller/BlogController.php @@ -228,7 +228,7 @@ class BlogController extends AbstractController public function app_admin_posts_get(Jdate $jdate, Provider $provider,Request $request,SerializerInterface $serializer, EntityManagerInterface $entityManager): JsonResponse { - $items = $entityManager->getRepository(BlogPost::class)->findAll(); + $items = array_reverse($entityManager->getRepository(BlogPost::class)->findAll()); $response = []; foreach ($items as $item){ $temp = []; @@ -237,6 +237,9 @@ class BlogController extends AbstractController $temp['submitter'] = $item->getSubmitter()->getFullName(); $temp['views'] = $item->getViews(); $temp['url'] = $item->getUrl(); + $temp['cat'] = $item->getCat()->getLabel(); + $temp['dateSubmit'] = $jdate->jdate('Y/n/d H:i',$item->getDateSubmit()); + $temp['submitter'] = $item->getSubmitter()->getFullName(); $response[] = $temp; } return $this->json($response); diff --git a/hesabixCore/src/Controller/BusinessController.php b/hesabixCore/src/Controller/BusinessController.php index 8b2e882..28fc47a 100644 --- a/hesabixCore/src/Controller/BusinessController.php +++ b/hesabixCore/src/Controller/BusinessController.php @@ -318,7 +318,8 @@ class BusinessController extends AbstractController return $this->json(['result'=>-1]); } $perm = $entityManager->getRepository(Permission::class)->findOneBy([ - 'user'=>$user + 'user'=>$user, + 'bid'=>$business ]); if($perm && ! $perm->isOwner()){ $entityManager->remove($perm); diff --git a/hesabixCore/src/Controller/CommodityController.php b/hesabixCore/src/Controller/CommodityController.php index 7820f97..f59a12b 100644 --- a/hesabixCore/src/Controller/CommodityController.php +++ b/hesabixCore/src/Controller/CommodityController.php @@ -44,6 +44,11 @@ class CommodityController extends AbstractController $temp['khadamat'] = false; if($item->isKhadamat()) $temp['khadamat'] = true; + + $temp['commodityCountCheck'] = $item->isCommodityCountCheck(); + $temp['minOrderCount'] = $item->getMinOrderCount(); + $temp['dayLoading'] = $item->getDayLoading(); + $temp['orderPoint'] = $item->getOrderPoint(); $res[] = $temp; } return $this->json($res); @@ -78,7 +83,9 @@ class CommodityController extends AbstractController 'code'=>$code ]); $data->setUnit($data->getUnit()->getName()); - return $this->json($provider->Entity2Array($data,0)); + $res = $provider->Entity2ArrayJustIncludes($data,['isCommodityCountCheck','getName','getUnit','getPriceBuy','getPriceSell','getCat','getOrderPoint','getdes','getId','getDayLoading','isKhadamat','getCode','getMinOrderCount','getLabel'],1); + $res['cat'] = $data->getCat()->getId(); + return $this->json($res); } #[Route('/api/commodity/mod/{code}', name: 'app_commodity_mod')] @@ -124,6 +131,12 @@ class CommodityController extends AbstractController $data->setDes($params['des']); $data->setPriceSell($params['priceSell']); $data->setPriceBuy($params['priceBuy']); + if(array_key_exists('commodityCountCheck',$params)){ + $data->setCommodityCountCheck($params['commodityCountCheck']); + } + $data->setMinOrderCount($params['minOrderCount']); + $data->setDayLoading($params['dayLoading']); + $data->setOrderPoint($params['orderPoint']); //set cat if(array_key_exists('cat',$params)){ if($params['cat'] != null){ diff --git a/hesabixCore/src/Controller/Front/UserController.php b/hesabixCore/src/Controller/Front/UserController.php index e4241f7..eb9ec6d 100644 --- a/hesabixCore/src/Controller/Front/UserController.php +++ b/hesabixCore/src/Controller/Front/UserController.php @@ -148,4 +148,27 @@ class UserController extends AbstractController return $this->redirectToRoute('app_register'); } + #[Route('/login/by/token', name: 'app_login_by_token')] + public function app_login_by_token(Request $request): Response + { + + // log the user in on the current firewall + $security->login($user); + + // if the firewall has more than one authenticator, you must pass it explicitly + // by using the name of built-in authenticators... + $security->login($user, 'form_login'); + // ...or the service id of custom authenticators + $security->login($user, ExampleAuthenticator::class); + + // you can also log in on a different firewall + $security->login($user, 'form_login', 'other_firewall'); + + // use the redirection logic applied to regular login + $redirectResponse = $security->login($user); + return $redirectResponse; + + // or use a custom redirection logic (e.g. redirect users to their account page) + // return new RedirectResponse('...'); + } } diff --git a/hesabixCore/src/Controller/HesabdariController.php b/hesabixCore/src/Controller/HesabdariController.php index f50ee89..90bf61b 100644 --- a/hesabixCore/src/Controller/HesabdariController.php +++ b/hesabixCore/src/Controller/HesabdariController.php @@ -13,6 +13,7 @@ use App\Entity\PayInfoTemp; use App\Entity\Person; use App\Entity\PlugNoghreOrder; use App\Entity\Salary; +use App\Entity\StoreroomTicket; use App\Service\Access; use App\Service\Jdate; use App\Service\Log; @@ -427,6 +428,10 @@ class HesabdariController extends AbstractController 'message'=>'سند به دلیل داشتن تراکنش پرداخت آنلاین قابل حذف نیست.' ]); } + //check storeroom tickets + $tickets = $entityManager->getRepository(StoreroomTicket::class)->findBy(['doc'=>$doc]); + foreach ($tickets as $ticket) + $entityManager->remove($ticket); foreach ($rows as $row) $entityManager->remove($row); foreach ($doc->getRelatedDocs() as $relatedDoc){ diff --git a/hesabixCore/src/Controller/StoreroomController.php b/hesabixCore/src/Controller/StoreroomController.php index 80aa9f9..b25c0c0 100644 --- a/hesabixCore/src/Controller/StoreroomController.php +++ b/hesabixCore/src/Controller/StoreroomController.php @@ -2,6 +2,7 @@ namespace App\Controller; +use App\Entity\Commodity; use App\Entity\HesabdariDoc; use App\Entity\HesabdariRow; use App\Entity\Person; @@ -22,15 +23,21 @@ use Symfony\Component\Routing\Annotation\Route; class StoreroomController extends AbstractController { - #[Route('/api/storeroom/list', name: 'app_storeroom_list')] - public function app_storeroom_list(Provider $provider,Request $request,Access $access,Log $log,EntityManagerInterface $entityManager): JsonResponse + #[Route('/api/storeroom/list/{type}', name: 'app_storeroom_list')] + public function app_storeroom_list(Provider $provider,Request $request,Access $access,Log $log,EntityManagerInterface $entityManager,String $type='active'): JsonResponse { $acc = $access->hasRole('store'); if(!$acc) throw $this->createAccessDeniedException(); - $items = $entityManager->getRepository(Storeroom::class)->findBy([ - 'bid'=>$acc['bid'] - ]); + if($type == 'active') + $items = $entityManager->getRepository(Storeroom::class)->findBy([ + 'bid'=>$acc['bid'], + 'active'=>true + ]); + else + $items = $entityManager->getRepository(Storeroom::class)->findBy([ + 'bid'=>$acc['bid'], + ]); return $this->json($provider->ArrayEntity2Array($items,0)); } @@ -98,6 +105,9 @@ class StoreroomController extends AbstractController return $this->json($provider->Entity2Array($data,0)); } + /** + * @throws ReflectionException + */ #[Route('/api/storeroom/docs/get', name: 'app_storeroom_get_docs')] public function app_storeroom_get_docs(Provider $provider,Request $request,Access $access,Log $log,EntityManagerInterface $entityManager): JsonResponse { @@ -108,20 +118,68 @@ class StoreroomController extends AbstractController 'bid'=>$acc['bid'], 'type'=>'buy' ]); - foreach ($buys as $buy) - $buy->setDes('فاکتور خرید شماره # ' . $buy->getCode()); + $buysForExport =[]; + foreach ($buys as $buy){ + $temp = $provider->Entity2Array($buy,0); + $person = $this->getPerson($buy); + $temp['person'] = $provider->Entity2ArrayJustIncludes($person,['getCode','getNikename','getDes']); + $temp['person']['des'] =' # ' . $person->getCode() . ' ' . $person->getNikename(); + $temp['commodities'] = $this->getCommodities($buy,$provider); + //check storeroom exist + $this->calcStoreRemaining($temp,$buy,$entityManager); + $temp['des'] = 'فاکتور خرید شماره # ' . $buy->getCode(); + if(array_key_exists('storeroomComplete',$temp)) + if(!$temp['storeroomComplete']){ + $buysForExport[] = $temp; + } + } + $sells = $entityManager->getRepository(HesabdariDoc::class)->findBy([ 'bid'=>$acc['bid'], 'type'=>'sell' ]); - foreach ($sells as $sell) - $sell->setDes('فاکتور فروش شماره # ' . $sell->getCode()); + $sellsForExport =[]; + foreach ($sells as $sell){ + $temp = $provider->Entity2Array($sell,0); + $person = $this->getPerson($sell); + $temp['person'] = $provider->Entity2ArrayJustIncludes($person,['getCode','getNikename','getDes']); + $temp['person']['des'] =' # ' . $person->getCode() . ' ' . $person->getNikename(); + $temp['commodities'] = $this->getCommodities($sell,$provider); + //check storeroom exist + $this->calcStoreRemaining($temp,$sell,$entityManager); + $temp['des'] = 'فاکتور فروش شماره # ' . $sell->getCode(); + if(array_key_exists('storeroomComplete',$temp)) + if(!$temp['storeroomComplete']){ + $sellsForExport[] = $temp; + } + } + return $this->json([ - 'buys'=> $provider->ArrayEntity2Array($buys,0), - 'sells'=> $provider->ArrayEntity2Array($sells,0) + 'buys'=> $buysForExport, + 'sells'=> $sellsForExport ]); } + private function getPerson(HesabdariDoc $doc): Person | bool{ + foreach ($doc->getHesabdariRows() as $row){ + if($row->getPerson()) + return $row->getPerson(); + } + return false; + } + + private function getCommodities(HesabdariDoc $doc,Provider $provider): array{ + $res = []; + foreach ($doc->getHesabdariRows() as $row){ + if($row->getCommodity()){ + $arrayRow = $provider->Entity2ArrayJustIncludes($row->getCommodity(),['getCode','getName']); + $arrayRow['commdityCount'] = $row->getCommdityCount(); + $res[] = $arrayRow; + } + + } + return $res; + } /** * @throws ReflectionException */ @@ -165,9 +223,62 @@ class StoreroomController extends AbstractController $res['person'] = $provider->Entity2Array($person,0); $res['person']['des'] =' # ' . $person->getCode() . ' ' . $person->getNikename(); $res['commodities'] = $provider->ArrayEntity2Array($commodities,1,['doc','bid','year']); + //calculate rows data + $this->calcStoreRemaining($res,$doc,$entityManager); return $this->json($res); } + private function calcStoreRemaining(array &$ref,HesabdariDoc $doc,EntityManagerInterface $entityManager){ + $tickets = $entityManager->getRepository(StoreroomTicket::class)->findBy(['doc'=>$doc]); + + if(count($tickets) == 0){ + $ref['storeroomComplete'] = false; + foreach ($ref['commodities'] as $key => $commodity){ + $ref['commodities'][$key]['countBefore'] = 0; + $ref['commodities'][$key]['hesabdariCount'] = $commodity['commdityCount']; + $ref['commodities'][$key]['remain'] = $ref['commodities'][$key]['hesabdariCount']; + } + } + else{ + $ref['storeroomComplete'] = true; + foreach ($tickets as $ticket){ + $rows = $entityManager->getRepository(StoreroomItem::class)->findBy(['ticket'=>$ticket]); + foreach ($rows as $key => $row){ + $comRows = $entityManager->getRepository(HesabdariRow::class)->findBy(['doc'=>$doc]); + foreach ($comRows as $comRow){ + if($comRow->getCommodity()){ + if($comRow->getCommodity() === $row->getCommodity()){ + if(array_key_exists('countBefore',$ref['commodities'][$key])){ + $ref['commodities'][$key]['countBefore'] += $row->getCount(); + $ref['commodities'][$key]['hesabdariCount'] = $comRow->getCommdityCount(); + } + else{ + $ref['commodities'][$key]['countBefore'] = $row->getCount(); + $ref['commodities'][$key]['hesabdariCount'] = $comRow->getCommdityCount(); + } + + } + } + } + $ref['commodities'][$key]['remain'] = $ref['commodities'][$key]['hesabdariCount'] - $ref['commodities'][$key]['countBefore']; + $ref['commodities'][$key]['commodityComplete'] = true; + if($ref['commodities'][$key]['remain'] != 0){ + $ref['commodities'][$key]['commodityComplete'] = false; + } + } + } + foreach ($tickets as $ticket){ + $rows = $entityManager->getRepository(StoreroomItem::class)->findBy(['ticket'=>$ticket]); + $ref['storeroomComplete'] = true; + foreach ($rows as $key => $row){ + if(!$ref['commodities'][$key]['commodityComplete']){ + $ref['storeroomComplete'] = false; + } + } + } + } + + } #[Route('/api/storeroom/transfertype/list', name: 'app_storeroom_get_transfertype_list')] public function app_storeroom_get_transfertype_list(Provider $provider,Request $request,Access $access,Log $log,EntityManagerInterface $entityManager): JsonResponse { @@ -298,6 +409,92 @@ class StoreroomController extends AbstractController 'getNikename', 'getDoc', 'getTypeString' - ],1)); + ])); + } + + #[Route('/api/storeroom/tickets/info/{code}', name: 'app_storeroom_ticket_view')] + public function app_storeroom_ticket_view(String $code,Provider $provider,Request $request,Access $access,Log $log,EntityManagerInterface $entityManager): JsonResponse + { + $acc = $access->hasRole('store'); + if(!$acc) + throw $this->createAccessDeniedException(); + $ticket = $entityManager->getRepository(StoreroomTicket::class)->findOneBy([ + 'bid'=>$acc['bid'], + 'code'=>$code + ]); + if(!$ticket) + throw $this->createNotFoundException('حواله یافت نشد.'); + //get items + $items = $entityManager->getRepository(StoreroomItem::class)->findBy(['ticket'=>$ticket]); + $res = []; + $res['ticket']=$provider->Entity2ArrayJustIncludes($ticket,['getStoreroom','getManager','getDate','getSubmitDate','getDes','getReceiver','getTransfer','getCode','getType','getReferral','getTypeString'],2); + $res['transferType']=$provider->Entity2ArrayJustIncludes($ticket->getTransferType(),['getName'],0); + $res['person']=$provider->Entity2ArrayJustIncludes($ticket->getPerson(),['getKeshvar','getOstan','getShahr','getAddress','getNikename','getCodeeghtesadi','getPostalcode','getName','getTel','getSabt'],0); + //get rows + $rows = $entityManager->getRepository(StoreroomItem::class)->findBy(['ticket'=>$ticket]); + $res['commodities'] = $provider->ArrayEntity2ArrayJustIncludes($rows,['getId','getDes','getCode','getName','getCommodity','getUnit','getCount'],2); + + //calculate rows data + $this->calcStoreRemaining($res,$ticket->getDoc(),$entityManager); + return $this->json($res); + } + #[Route('/api/storeroom/commodity/list/{sid}', name: 'app_storeroom_commodity_list')] + public function app_storeroom_commodity_list(String $sid,Provider $provider,Request $request,Access $access,Log $log,EntityManagerInterface $entityManager): JsonResponse + { + $acc = $access->hasRole('store'); + if(!$acc) + throw $this->createAccessDeniedException(); + $store = $entityManager->getRepository(Storeroom::class)->find($sid); + if(!$store) + throw $this->createNotFoundException('انبار یافت نشد'); + if($store->getBid() != $acc['bid']) + throw $this->createAccessDeniedException('شما دسترسی به این انبار را ندارید.'); + + $rows = $entityManager->getRepository(StoreroomItem::class)->findBy([ + 'Storeroom'=>$store + ]); + $commodities = $entityManager->getRepository(Commodity::class)->findBy([ + 'bid'=>$acc['bid'], + 'khadamat'=>false + ]); + $items = []; + foreach ($commodities as $commodity){ + $temp =[]; + $temp['commodity']=$provider->Entity2ArrayJustIncludes($commodity,['getUnit','getCode','getName','getCat','getOrderPoint']); + $temp['input'] = 0; + $temp['output'] = 0; + foreach ($rows as $row){ + if($row->getCommodity()->getId() == $commodity->getId()){ + if($row->getType() == 'output') + $temp['output'] += $row->getCount(); + elseif($row->getType() == 'input') + $temp['input'] += $row->getCount(); + } + } + $temp['existCount'] = $temp['input'] - $temp['output']; + $items[] = $temp; + } + return $this->json($items); + } + + #[Route('/api/storeroom/ticket/remove/{id}', name: 'app_storeroom_ticket_remove')] + public function app_storeroom_ticket_remove(String $id,Provider $provider,Request $request,Access $access,Log $log,EntityManagerInterface $entityManager): JsonResponse + { + $acc = $access->hasRole('store'); + if(!$acc) + throw $this->createAccessDeniedException(); + $ticket = $entityManager->getRepository(StoreroomTicket::class)->findOneBy(['code'=>$id]); + if(!$ticket) + throw $this->createNotFoundException('حواله یافت نشد'); + $items = $entityManager->getRepository(StoreroomItem::class)->findBy(['ticket'=>$ticket]); + foreach ($items as $item) + $entityManager->remove($item); + $entityManager->remove($ticket); + $entityManager->flush(); + //save logs + $log->insert('انبارداری','حواله انبار با شماره '. $ticket->getCode() . ' حذف شد.',$this->getUser(),$acc['bid']); + return $this->json([ + 'result'=>0 + ]); } } diff --git a/hesabixCore/src/Entity/BlogPost.php b/hesabixCore/src/Entity/BlogPost.php index 13d0dca..fdb6827 100644 --- a/hesabixCore/src/Entity/BlogPost.php +++ b/hesabixCore/src/Entity/BlogPost.php @@ -48,6 +48,9 @@ class BlogPost #[ORM\OneToMany(mappedBy: 'post', targetEntity: BlogComment::class, orphanRemoval: true)] private Collection $blogComments; + #[ORM\Column(length: 255, nullable: true)] + private ?string $keywords = null; + public function __construct() { $this->blogComments = new ArrayCollection(); @@ -195,4 +198,16 @@ class BlogPost return $this; } + + public function getKeywords(): ?string + { + return $this->keywords; + } + + public function setKeywords(?string $keywords): static + { + $this->keywords = $keywords; + + return $this; + } } diff --git a/hesabixCore/src/Entity/Commodity.php b/hesabixCore/src/Entity/Commodity.php index fb422d7..e8041e4 100644 --- a/hesabixCore/src/Entity/Commodity.php +++ b/hesabixCore/src/Entity/Commodity.php @@ -47,16 +47,29 @@ class Commodity #[ORM\Column(nullable: true)] private ?bool $khadamat = null; - + #[Ignore] #[ORM\OneToMany(mappedBy: 'commodity', targetEntity: CommodityDropLink::class, orphanRemoval: true)] private Collection $commodityDropLinks; - + #[Ignore] #[ORM\ManyToOne(inversedBy: 'commodities')] private ?CommodityCat $cat = null; + #[Ignore] #[ORM\OneToMany(mappedBy: 'commodity', targetEntity: StoreroomItem::class, orphanRemoval: true)] private Collection $storeroomItems; + #[ORM\Column(length: 255, nullable: true)] + private ?string $orderPoint = null; + + #[ORM\Column(nullable: true)] + private ?bool $commodityCountCheck = null; + + #[ORM\Column(length: 255, nullable: true)] + private ?string $minOrderCount = null; + + #[ORM\Column(length: 255, nullable: true)] + private ?string $dayLoading = null; + public function __construct() { $this->setPriceBuy(0); @@ -268,4 +281,52 @@ class Commodity return $this; } + + public function getOrderPoint(): ?string + { + return $this->orderPoint; + } + + public function setOrderPoint(?string $orderPoint): static + { + $this->orderPoint = $orderPoint; + + return $this; + } + + public function isCommodityCountCheck(): ?bool + { + return $this->commodityCountCheck; + } + + public function setCommodityCountCheck(?bool $commodityCountCheck): static + { + $this->commodityCountCheck = $commodityCountCheck; + + return $this; + } + + public function getMinOrderCount(): ?string + { + return $this->minOrderCount; + } + + public function setMinOrderCount(?string $minOrderCount): static + { + $this->minOrderCount = $minOrderCount; + + return $this; + } + + public function getDayLoading(): ?string + { + return $this->dayLoading; + } + + public function setDayLoading(?string $dayLoading): static + { + $this->dayLoading = $dayLoading; + + return $this; + } } diff --git a/hesabixCore/src/Entity/HesabdariDoc.php b/hesabixCore/src/Entity/HesabdariDoc.php index 84abd30..4eaa16b 100644 --- a/hesabixCore/src/Entity/HesabdariDoc.php +++ b/hesabixCore/src/Entity/HesabdariDoc.php @@ -86,8 +86,12 @@ class HesabdariDoc private ?string $status = null; #[ORM\OneToMany(mappedBy: 'doc', targetEntity: StoreroomTicket::class)] + #[Ignore] private Collection $storeroomTickets; + #[ORM\Column(type: Types::ARRAY, nullable: true)] + private ?array $tempStatus = null; + public function __construct() { $this->hesabdariRows = new ArrayCollection(); @@ -406,4 +410,16 @@ class HesabdariDoc return $this; } + + public function getTempStatus(): ?array + { + return $this->tempStatus; + } + + public function setTempStatus(?array $tempStatus): static + { + $this->tempStatus = $tempStatus; + + return $this; + } } diff --git a/hesabixCore/src/Entity/HesabdariRow.php b/hesabixCore/src/Entity/HesabdariRow.php index 48deb3f..c2b07a4 100644 --- a/hesabixCore/src/Entity/HesabdariRow.php +++ b/hesabixCore/src/Entity/HesabdariRow.php @@ -79,6 +79,9 @@ class HesabdariRow #[ORM\Column(length: 255, nullable: true)] private ?string $plugin = null; + #[ORM\Column(type: Types::ARRAY, nullable: true)] + private ?array $tempData = null; + public function __construct() { @@ -281,4 +284,16 @@ class HesabdariRow return $this; } + + public function getTempData(): ?array + { + return $this->tempData; + } + + public function setTempData(?array $tempData): static + { + $this->tempData = $tempData; + + return $this; + } } diff --git a/hesabixCore/templates/base.html.twig b/hesabixCore/templates/base.html.twig index 2c78192..4441d87 100644 --- a/hesabixCore/templates/base.html.twig +++ b/hesabixCore/templates/base.html.twig @@ -7,12 +7,12 @@ - + حسابیکس - {% block title %}{% endblock %} {# Run `composer require symfony/webpack-encore-bundle` to start using Symfony UX #} {% block stylesheets %} {% endblock %} - + {% block javascripts %} {% endblock %} diff --git a/hesabixCore/templates/general/faq.html.twig b/hesabixCore/templates/general/faq.html.twig index fb5c2b5..79cbc14 100644 --- a/hesabixCore/templates/general/faq.html.twig +++ b/hesabixCore/templates/general/faq.html.twig @@ -8,48 +8,101 @@

سوالات متداول

-
+

+ ابر چیست؟ +

+

+ ابر زیرساختی مجازی از منابع محاسباتی و ذخیره‌سازی داده است که از طریق اینترنت به کاربران ارائه می‌شود. این منابع می‌توانند شامل سرورها، فضای ذخیره‌سازی داده، شبکه‌ و تجهیزات مجازی‌سازی باشند. +

+
+
+
+

+ نرم ‌افزار حسابداری ابری چیست؟ +

+

+ نرم افزار حسابداری ابری که به آن نرم افزار حسابداری آنلاین هم می‌گویند، نرم افزاری است که به شما کمک می‌کند دفاتر حسابداری خود را آنلاین ثبت و نگهداری کنید. نرم افزار حسابداری ابری مانند حسابیکس به جای اینکه روی رایانه رومیزی یا سرورهای سازمان (در محل مشتری) نصب شود، در فضای ابری قرار دارد. همین ویژگی باعث می‌شود تا به داده‌های مالی و امکانات سیستم از هر دستگاه آنلاینی در هر زمانی و مکانی دسترسی داشته باشید. +

+
+
+
+

+ آیا امکان قطع شدن حسابیکس وجود دارد؟ +

+

+ 24 ساعته و با ضریب دسترسی بالای 99 درصد، دسترسی به حسابیکس وجود دارد. +

+
+
+
+

آیا حسابیکس آنلاین است یا نیاز به دانلود و نصب نرم افزار است؟ -

-
+ +

شما نیاز به دانلود و نصب هیچ نرم افزاری ندارید. حسابیکس کاملاً آنلاین است و شما پس از ثبت نام می توانید وارد حساب کاربری خود شده و حسابداری خود را شروع کنید. -

+


-
- آیا می توانم اکانت خود را به طرح های بالاتر ارتقا دهم؟ -
-
- استفاده از کلیه امکانات حسابیکس رایگان است و درآمد ما از طریق نمایش تبلیغات تامین می‌شود. - ولی، شما می توانید هر زمان که مایل بودید طرح خود را ارتقا دهید و تبلیغات را از پنل خود پنهان کنید. -
-
-
-
-
+

آیا برای اپ موبایل هزینه جداگانه ای باید بپردازم؟ -

-
+ +

خیر، اپ موبایل حسابیکس رایگان بوده و شما با همان اکانت خود که در وب سایت وارد می شوید می توانید وارد اپ موبایل هم شوید و نیازی به پرداخت هزینه جداگانه نیست. -

+


-
+

+ چقدر طول می‌کشد تا به حسابیکس مسلط شویم؟ +

+

+ فقط کافی است کار با حسابیکس را آغاز کنید. متوجه می‌شوید که تجربه کاربری نرم‌افزار طوری است که با حداقل زمان به نرم‌افزار مسلط شوید.همچنین می‌توانید از بخش دانشنامه به مطالب و ویدئوهای آموزشی دسترسی داشته باشید. +

+
+
+
+

آیا برای کار با حسابیکس نیاز به دانش حسابداری است؟ -

-
+ +

خیر، حسابیکس بگونه ای طراحی شده که تقریبا همه کارهای لازم بصورت اتوماتیک انجام می شوند. به عنوان مثال با ثبت فاکتور فروش، سند حسابداری مربوطه بصورت اتوماتیک ثبت می شود، همینطور در مورد سایر عملیات های حسابداری مثل دریافت، پرداخت، ضایعات و ...
اگر چه حسابداران و افرادی که دانش حسابداری دارند نیز می توانند بخوبی با حسابیکس کار کنند و از مزایای دانش خود بهره ببرند. -

+

+
+
+
+

+ نسخه پشتیبان در این نرم‌افزار چگونه تهیه می‌شود؟ +

+

+ حسابیکس، خودکار و روزانه، از اطلاعات شما نسخه پشتیبان تهیه می‌کند؛ بنابراین نگرانی بابت از بین رفتن اطلاعات وجود ندارد.بعلاوه بصورت خودکار هر روز از داده های کاربران نسخه پشتیبان تهیه و تمامی داده ها بصورت رمزنگاری شده روی فضای ابری نگهداری می شوند.همچنین کاربران می توانند نسخه مستقیم پایگاه داده را با تماس با بخش پشتیبانی دریافت کنند. +

+
+
+
+

+ آینده نرم‌افزارهای حسابداری ابری چیست؟ +

+

+ به نظر می‌رسد با امکانات متمایز این تکنولوژی، در آینده نزدیک نرم‌افزارهای سنتی حذف شوند و با نرم‌افزارهای ابری جایگزین شوند. حدود 70% کسب‌وکارهای کوچک و متوسط در دنیا نرم‌افزار حسابداری ابری را به نرم‌افزار حسابداری سنتی ترجیح می‌دهند. این روند در ایران در حال شکل‌گیری است. +

+
+
+
+

+ اگر اینترنت قطع شود امکان کار با حسابیکس وجود دارد؟ +

+

+ برای استفاده از نرم افزارهای ابری شما باید به شبکه اینترنت دسترسی داشته باشید. به دلیل استفاده حسابیکس از سرورهای داخل ایران، با قطع شدن اینترنت بین المللی امکان دسترسی به دیتا برای کاربران حسابیکس وجود دارد و با محدودیتی مواجه نخواهند شد. +

diff --git a/hesabixCore/templates/general/sponsors.html.twig b/hesabixCore/templates/general/sponsors.html.twig index dfc1fe9..10684bc 100644 --- a/hesabixCore/templates/general/sponsors.html.twig +++ b/hesabixCore/templates/general/sponsors.html.twig @@ -2,7 +2,7 @@ {% block title %}حامیان مالی{% endblock %} {% block body %}
-
+

حسابیکس با @@ -17,4 +17,21 @@

+
+
+
+

حامیان حسابیکس

+
+
+
+ راددیتا +
+
مرکز ارتباطات راد دیتا
+

پیشرو در ارائه خدمات فنی مهندسی و سرویس های مرکز داده در ایران و خارج با بالاترین کیفیت و قیمت مناسب

+ وب سایت +
+
+
+
+
{% endblock %} \ No newline at end of file diff --git a/public_html/banners/raddata.png b/public_html/banners/raddata.png new file mode 100644 index 0000000000000000000000000000000000000000..4f922a6e92e038258a31e98eb63fab2148c494a0 GIT binary patch literal 60785 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 !g`5X)#R`RzU(vNucmQ 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 kZa9Ppz*3w-YoQg04z;AwEzGB literal 0 HcmV?d00001 diff --git a/public_html/img/raddata.png b/public_html/img/raddata.png new file mode 100644 index 0000000000000000000000000000000000000000..0acdc2c24c7184635596c7edb7ccdbee2916ff4e GIT binary patch literal 16026 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