almost finish customizition of dashboard
This commit is contained in:
parent
6f30c0b11a
commit
0ede84e486
71
hesabixCore/src/Controller/DashboardController.php
Normal file
71
hesabixCore/src/Controller/DashboardController.php
Normal file
|
@ -0,0 +1,71 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Controller;
|
||||||
|
|
||||||
|
use App\Entity\DashboardSettings;
|
||||||
|
use App\Service\Access;
|
||||||
|
use App\Service\Explore;
|
||||||
|
use App\Service\Extractor;
|
||||||
|
use App\Service\JsonResp;
|
||||||
|
use Doctrine\ORM\EntityManagerInterface;
|
||||||
|
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
|
||||||
|
use Symfony\Component\HttpFoundation\JsonResponse;
|
||||||
|
use Symfony\Component\HttpFoundation\Request;
|
||||||
|
use Symfony\Component\Routing\Attribute\Route;
|
||||||
|
|
||||||
|
class DashboardController extends AbstractController
|
||||||
|
{
|
||||||
|
#[Route('/api/dashboard/settings/load', name: 'app_dashboard_load')]
|
||||||
|
public function app_dashboard_load(Extractor $extractor, Access $access, EntityManagerInterface $entityManagerInterface): JsonResponse
|
||||||
|
{
|
||||||
|
$acc = $access->hasRole('join');
|
||||||
|
if (!$acc)
|
||||||
|
throw $this->createAccessDeniedException();
|
||||||
|
|
||||||
|
$setting = $entityManagerInterface->getRepository(DashboardSettings::class)->findOneBy([
|
||||||
|
'submitter' => $this->getUser(),
|
||||||
|
'bid' => $acc['bid']
|
||||||
|
]);
|
||||||
|
if (!$setting) {
|
||||||
|
$setting = new DashboardSettings();
|
||||||
|
$setting->setSubmitter($this->getUser());
|
||||||
|
$setting->setBid($acc['bid']);
|
||||||
|
$entityManagerInterface->persist($setting);
|
||||||
|
$entityManagerInterface->flush();
|
||||||
|
}
|
||||||
|
|
||||||
|
return $this->json($extractor->operationSuccess(Explore::ExploreDashboardSettings($setting)));
|
||||||
|
}
|
||||||
|
#[Route('/api/dashboard/settings/save', name: 'app_dashboard_save')]
|
||||||
|
public function app_dashboard_save(Request $request,Extractor $extractor, Access $access, EntityManagerInterface $entityManagerInterface): JsonResponse
|
||||||
|
{
|
||||||
|
$acc = $access->hasRole('join');
|
||||||
|
if (!$acc)
|
||||||
|
throw $this->createAccessDeniedException();
|
||||||
|
|
||||||
|
$setting = $entityManagerInterface->getRepository(DashboardSettings::class)->findOneBy([
|
||||||
|
'submitter' => $this->getUser(),
|
||||||
|
'bid' => $acc['bid']
|
||||||
|
]);
|
||||||
|
if (!$setting) {
|
||||||
|
$setting = new DashboardSettings();
|
||||||
|
$setting->setSubmitter($this->getUser());
|
||||||
|
$setting->setBid($acc['bid']);
|
||||||
|
}
|
||||||
|
$params = $request->getPayload()->all();
|
||||||
|
if(array_key_exists('banks',$params)) $setting->setBanks($params['banks']);
|
||||||
|
if(array_key_exists('buys',$params)) $setting->setBuys($params['buys']);
|
||||||
|
if(array_key_exists('sells',$params)) $setting->setSells($params['sells']);
|
||||||
|
if(array_key_exists('wallet',$params)) $setting->setWallet($params['wallet']);
|
||||||
|
if(array_key_exists('acc_docs',$params)) $setting->setAccDocs($params['acc_docs']);
|
||||||
|
if(array_key_exists('accounting_total',$params)) $setting->setAccountingTotal($params['accounting_total']);
|
||||||
|
if(array_key_exists('commodities',$params)) $setting->setCommodities($params['commodities']);
|
||||||
|
if(array_key_exists('persons',$params)) $setting->setPersons($params['persons']);
|
||||||
|
if(array_key_exists('notif',$params)) $setting->setNotif($params['notif']);
|
||||||
|
|
||||||
|
$entityManagerInterface->persist($setting);
|
||||||
|
$entityManagerInterface->flush();
|
||||||
|
|
||||||
|
return $this->json($extractor->operationSuccess(Explore::ExploreDashboardSettings($setting)));
|
||||||
|
}
|
||||||
|
}
|
|
@ -45,6 +45,9 @@ class DashboardSettings
|
||||||
#[ORM\Column(nullable: true)]
|
#[ORM\Column(nullable: true)]
|
||||||
private ?bool $accountingTotal = null;
|
private ?bool $accountingTotal = null;
|
||||||
|
|
||||||
|
#[ORM\Column(nullable: true)]
|
||||||
|
private ?bool $notif = null;
|
||||||
|
|
||||||
public function getId(): ?int
|
public function getId(): ?int
|
||||||
{
|
{
|
||||||
return $this->id;
|
return $this->id;
|
||||||
|
@ -169,4 +172,16 @@ class DashboardSettings
|
||||||
|
|
||||||
return $this;
|
return $this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function isNotif(): ?bool
|
||||||
|
{
|
||||||
|
return $this->notif;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function setNotif(?bool $notif): static
|
||||||
|
{
|
||||||
|
$this->notif = $notif;
|
||||||
|
|
||||||
|
return $this;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -3,6 +3,7 @@
|
||||||
namespace App\Service;
|
namespace App\Service;
|
||||||
|
|
||||||
use App\Entity\BankAccount;
|
use App\Entity\BankAccount;
|
||||||
|
use App\Entity\DashboardSettings;
|
||||||
use App\Entity\Project;
|
use App\Entity\Project;
|
||||||
use App\Entity\Storeroom;
|
use App\Entity\Storeroom;
|
||||||
use App\Entity\Support;
|
use App\Entity\Support;
|
||||||
|
@ -72,7 +73,7 @@ class Explore
|
||||||
$result['transferCost'] = 0;
|
$result['transferCost'] = 0;
|
||||||
$result['person'] = $person;
|
$result['person'] = $person;
|
||||||
$result['pair_docs'] = [];
|
$result['pair_docs'] = [];
|
||||||
foreach($hesabdariDoc->getPairDoc() as $pair){
|
foreach ($hesabdariDoc->getPairDoc() as $pair) {
|
||||||
$result['pair_docs'][] = $pair->getCode();
|
$result['pair_docs'][] = $pair->getCode();
|
||||||
}
|
}
|
||||||
return $result;
|
return $result;
|
||||||
|
@ -391,7 +392,7 @@ class Explore
|
||||||
return [
|
return [
|
||||||
'id' => $user->getId(),
|
'id' => $user->getId(),
|
||||||
'name' => $user->getFullName(),
|
'name' => $user->getFullName(),
|
||||||
'fullName'=>$user->getFullName()
|
'fullName' => $user->getFullName()
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -478,7 +479,7 @@ class Explore
|
||||||
'tel' => $item->getTel(),
|
'tel' => $item->getTel(),
|
||||||
'address' => $item->getAdr(),
|
'address' => $item->getAdr(),
|
||||||
'manager' => $item->getManager(),
|
'manager' => $item->getManager(),
|
||||||
'active'=>$item->isActive()
|
'active' => $item->isActive()
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -542,20 +543,47 @@ class Explore
|
||||||
return $res;
|
return $res;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static function ExploreSupportTicket(Support $support,User | null $user):array{
|
public static function ExploreSupportTicket(Support $support, User|null $user): array
|
||||||
|
{
|
||||||
$jdate = new Jdate();
|
$jdate = new Jdate();
|
||||||
$res = [];
|
$res = [];
|
||||||
$res['id'] = $support->getId();
|
$res['id'] = $support->getId();
|
||||||
$res['title'] = $support->getTitle();
|
$res['title'] = $support->getTitle();
|
||||||
$res['body'] = $support->getBody();
|
$res['body'] = $support->getBody();
|
||||||
$res['state'] = $support->getState();
|
$res['state'] = $support->getState();
|
||||||
$res['dateSubmit'] = $jdate->jdate('Y/n/d H:i',$support->getDateSubmit());
|
$res['dateSubmit'] = $jdate->jdate('Y/n/d H:i', $support->getDateSubmit());
|
||||||
$res['submitter'] = self::ExploreUser($support->getSubmitter());
|
$res['submitter'] = self::ExploreUser($support->getSubmitter());
|
||||||
$res['main'] = $support->getMain();
|
$res['main'] = $support->getMain();
|
||||||
$res['owner'] = true;
|
$res['owner'] = true;
|
||||||
if($user->getId() != $support->getSubmitter()->getId()){
|
if ($user->getId() != $support->getSubmitter()->getId()) {
|
||||||
$res['owner'] = false;
|
$res['owner'] = false;
|
||||||
}
|
}
|
||||||
return $res;
|
return $res;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static function ExploreDashboardSettings(DashboardSettings $item)
|
||||||
|
{
|
||||||
|
$result = [
|
||||||
|
'banks' => $item->isBanks(),
|
||||||
|
'buys' => $item->isBuys(),
|
||||||
|
'sells' => $item->isSells(),
|
||||||
|
'wallet' => $item->isWallet(),
|
||||||
|
'acc_docs'=> $item->isAccDocs(),
|
||||||
|
'accounting_total'=>$item->isAccountingTotal(),
|
||||||
|
'commodities'=>$item->isCommodities(),
|
||||||
|
'persons'=>$item->isPersons(),
|
||||||
|
'notif'=>$item->isNotif(),
|
||||||
|
];
|
||||||
|
if($result['banks'] === null) $result['banks'] = true;
|
||||||
|
if($result['buys'] === null) $result['buys'] = true;
|
||||||
|
if($result['sells'] === null) $result['sells'] = true;
|
||||||
|
if($result['wallet'] === null) $result['wallet'] = true;
|
||||||
|
if($result['acc_docs'] === null) $result['acc_docs'] = true;
|
||||||
|
if($result['accounting_total'] ===null) $result['accounting_total'] = true;
|
||||||
|
if($result['commodities'] === null) $result['commodities'] = true;
|
||||||
|
if($result['persons'] === null) $result['persons'] = true;
|
||||||
|
if($result['notif'] === null) $result['notif'] = true;
|
||||||
|
|
||||||
|
return $result;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue