diff --git a/hesabixCore/55.zip b/hesabixCore/55.zip new file mode 100644 index 0000000..edd1427 Binary files /dev/null and b/hesabixCore/55.zip differ diff --git a/hesabixCore/src/Controller/AdminController.php b/hesabixCore/src/Controller/AdminController.php index 05e96b3..783e9ef 100644 --- a/hesabixCore/src/Controller/AdminController.php +++ b/hesabixCore/src/Controller/AdminController.php @@ -38,4 +38,21 @@ class AdminController extends AbstractController 'message' => $content, ]); } + + /** + * @throws \Exception + */ + #[Route('/api/admin/has/role/{role}', name: 'app_admin_has_role')] + public function app_admin_has_role($role): JsonResponse + { + if(!is_bool(array_search($role,$this->getUser()->getRoles()))) + { + return $this->json([ + 'result' => true, + ]); + } + return $this->json([ + 'result' => false, + ]); + } } diff --git a/hesabixCore/src/Controller/Front/PayController.php b/hesabixCore/src/Controller/Front/PayController.php index 27447bc..4fffbef 100644 --- a/hesabixCore/src/Controller/Front/PayController.php +++ b/hesabixCore/src/Controller/Front/PayController.php @@ -167,7 +167,19 @@ class PayController extends AbstractController $doc->setDes($wt->getDes()); $doc->setAmount($wt->getAmount()); $doc->setCode($provider->getAccountingCode($wt->getBid(),'accounting')); - $doc->setSubmitter($entityManager->getRepository(User::class)->findOneBy(['email'=>'wallet@hesabix.ir'])); + $walletUser = $entityManager->getRepository(User::class)->findOneBy(['email'=>'wallet@hesabix.ir']); + if($walletUser) + $doc->setSubmitter($walletUser); + else{ + $wu = new User(); + $wu->setFullName('کیف پول حسابیکس'); + $wu->setEmail('wallet@hesabix.ir'); + $wu->setRoles([]); + $wu->setActive(true); + $entityManager->persist($wu); + $entityManager->flush(); + $doc->setSubmitter($wu); + } $entityManager->persist($doc); $entityManager->flush(); $originalDoc->addRelatedDoc($doc); @@ -182,7 +194,7 @@ class PayController extends AbstractController $row->setBank($doc->getBid()->getWalletMatchBank()); $row->setBd($doc->getAmount()); $row->setBs(0); - $row->setDes('دریافت وجه فاکتور آنلاین شماره ' . $doc->getCode()); + $row->setDes('دریافت وجه فاکتور آنلاین شماره ' . $originalDoc->getCode()); //get table ref $table = $entityManager->getRepository(HesabdariTable::class)->findOneBy(['code'=>5]); $row->setRef($table); @@ -196,8 +208,8 @@ class PayController extends AbstractController $rows = $entityManager->getRepository(HesabdariRow::class)->findBy(['doc' => $originalDoc]); $person = null; foreach ($rows as $oldRow) { - if ($row->getPerson()) - $person = $row->getPerson(); + if ($oldRow->getPerson()) + $person = $oldRow->getPerson(); } $row = new HesabdariRow(); $row->setBid($originalDoc->getBid()); @@ -205,7 +217,7 @@ class PayController extends AbstractController $row->setPerson($person); $row->setBs($doc->getAmount()); $row->setBd(0); - $row->setDes('پرداخت وجه فاکتور آنلاین شماره ' . $doc->getCode()); + $row->setDes('پرداخت وجه فاکتور آنلاین شماره ' . $originalDoc->getCode()); //get table ref $table = $entityManager->getRepository(HesabdariTable::class)->findOneBy(['code'=>3]); $row->setRef($table); diff --git a/hesabixCore/src/Controller/HesabdariController.php b/hesabixCore/src/Controller/HesabdariController.php index 10fd1e7..cc4e5a2 100644 --- a/hesabixCore/src/Controller/HesabdariController.php +++ b/hesabixCore/src/Controller/HesabdariController.php @@ -214,7 +214,9 @@ class HesabdariController extends AbstractController ]; if($params['type'] == 'buy' || $params['type'] == 'sell'){ $mainRow = $entityManager->getRepository(HesabdariRow::class)->getNotEqual($item,'person'); - $temp['person'] = $mainRow->getPerson()->getNikename(); + $temp['person'] = ''; + if($mainRow) + $temp['person'] = $mainRow->getPerson()->getNikename(); } //get status of doc @@ -232,6 +234,9 @@ class HesabdariController extends AbstractController return $this->json($dataTemp); } + /** + * @throws \ReflectionException + */ #[Route('/api/accounting/insert', name: 'app_accounting_insert')] public function app_accounting_insert(Provider $provider,Request $request,Access $access,Log $log,EntityManagerInterface $entityManager): JsonResponse { @@ -374,7 +379,10 @@ class HesabdariController extends AbstractController $entityManager->flush(); $log->insert('حسابداری','سند حسابداری شماره ' . $doc->getCode() . ' ثبت / ویرایش شد.',$this->getUser(),$request->headers->get('activeBid')); - return $this->json(['result'=>1]); + return $this->json([ + 'result'=>1, + 'doc'=>$provider->Entity2Array($doc,0) + ]); } #[Route('/api/accounting/remove', name: 'app_accounting_remove_doc')] @@ -410,8 +418,17 @@ class HesabdariController extends AbstractController } foreach ($rows as $row) $entityManager->remove($row); + foreach ($doc->getRelatedDocs() as $relatedDoc){ + if($relatedDoc->getType() != 'walletPay'){ + $items = $entityManager->getRepository(HesabdariRow::class)->findBy(['doc'=>$relatedDoc]); + foreach ($items as $item) + $entityManager->remove($item); + $entityManager->remove($relatedDoc); + $log->insert('حسابداری','سند حسابداری شماره ' . $relatedDoc->getCode() . ' حذف شد.',$this->getUser(),$request->headers->get('activeBid')); + } + } $entityManager->remove($doc); - + $entityManager->flush(); $log->insert('حسابداری','سند حسابداری شماره ' . $doc->getCode() . ' حذف شد.',$this->getUser(),$request->headers->get('activeBid')); return $this->json(['result'=>1]); diff --git a/hesabixCore/src/Controller/SupportController.php b/hesabixCore/src/Controller/SupportController.php index 4f177db..f781cab 100644 --- a/hesabixCore/src/Controller/SupportController.php +++ b/hesabixCore/src/Controller/SupportController.php @@ -4,6 +4,7 @@ namespace App\Controller; use App\Entity\Support; use App\Service\Jdate; +use App\Service\Provider; use App\Service\SMS; use Doctrine\ORM\EntityManagerInterface; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; @@ -15,6 +16,16 @@ use Symfony\Component\Serializer\SerializerInterface; class SupportController extends AbstractController { + #[Route('/api/admin/support/list', name: 'app_admin_support_list')] + public function app_admin_support_list(Provider $provider,Jdate $jdate,EntityManagerInterface $entityManager): JsonResponse + { + $items = $entityManager->getRepository(Support::class)->findBy(['main' => 0],['id'=>'DESC']); + foreach ($items as $item){ + $item->setDateSubmit($jdate->jdate('Y/n/d H:i',$item->getDateSubmit())); + } + return $this->json($provider->ArrayEntity2Array($items,1)); + } + #[Route('/api/support/list', name: 'app_support_list')] public function app_support_list(Jdate $jdate,EntityManagerInterface $entityManager): JsonResponse { diff --git a/hesabixCore/src/Service/SMS.php b/hesabixCore/src/Service/SMS.php index 082eb9d..91e21fb 100644 --- a/hesabixCore/src/Service/SMS.php +++ b/hesabixCore/src/Service/SMS.php @@ -37,7 +37,7 @@ class SMS } } - public function sendByBalance(array $params,$bodyID,$to,Business $business,User $user,$balance = 450): int + public function sendByBalance(array $params,$bodyID,$to,Business $business,User $user,$balance = 500): int { if($business->getSmsCharge() < ($balance * $this->smsPrice)) return 2;