mv: All Controllers
* Move all controllers to sub-directories for organization
This commit is contained in:
parent
fc9ebbd327
commit
13aaaae34c
@ -1,9 +1,9 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
namespace App\Controller;
|
namespace App\Controller\Admin;
|
||||||
|
|
||||||
use App\Entity\Supervision;
|
use App\Entity\Staff\Supervision;
|
||||||
use App\Entity\User;
|
use App\Entity\System\User;
|
||||||
use App\Factory\MessageFactory;
|
use App\Factory\MessageFactory;
|
||||||
use App\Form\EditUserFormType;
|
use App\Form\EditUserFormType;
|
||||||
use App\Form\SupervisorFormType;
|
use App\Form\SupervisorFormType;
|
||||||
@ -11,7 +11,6 @@ use App\Form\UserFormType;
|
|||||||
use App\Libs\Breadcrumb;
|
use App\Libs\Breadcrumb;
|
||||||
use App\Libs\NavList;
|
use App\Libs\NavList;
|
||||||
use App\Libs\Libs;
|
use App\Libs\Libs;
|
||||||
use App\Libs\PageParameters;
|
|
||||||
use App\Repository\UserRepository;
|
use App\Repository\UserRepository;
|
||||||
use DateTime;
|
use DateTime;
|
||||||
use DateTimeZone;
|
use DateTimeZone;
|
@ -1,17 +1,15 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
namespace App\Controller;
|
namespace App\Controller\Case;
|
||||||
|
|
||||||
use App\Entity\CaseDocument;
|
use App\Entity\Case\CaseLocation;
|
||||||
use App\Entity\CaseLocation;
|
use App\Entity\Company\CompanyDocument;
|
||||||
use App\Entity\CompanyDocument;
|
use App\Entity\Case\Member;
|
||||||
use App\Entity\Location;
|
use App\Entity\Case\MemberCase;
|
||||||
use App\Entity\Member;
|
use App\Entity\System\Location;
|
||||||
use App\Entity\MemberCase;
|
use App\Entity\System\ReferralSource;
|
||||||
use App\Entity\MemberDocument;
|
use App\Entity\System\User;
|
||||||
use App\Entity\ReferralSource;
|
use App\Entity\System\UserCase;
|
||||||
use App\Entity\User;
|
|
||||||
use App\Entity\UserCase;
|
|
||||||
use App\Factory\MessageFactory;
|
use App\Factory\MessageFactory;
|
||||||
use App\Form\CaseDocumentFormType;
|
use App\Form\CaseDocumentFormType;
|
||||||
use App\Form\LocationFormType;
|
use App\Form\LocationFormType;
|
||||||
@ -24,7 +22,6 @@ use Doctrine\ORM\EntityManagerInterface;
|
|||||||
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
|
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
|
||||||
use Symfony\Component\HttpFoundation\Request;
|
use Symfony\Component\HttpFoundation\Request;
|
||||||
use Symfony\Component\HttpFoundation\Response;
|
use Symfony\Component\HttpFoundation\Response;
|
||||||
use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
|
|
||||||
use Symfony\Component\Routing\Attribute\Route;
|
use Symfony\Component\Routing\Attribute\Route;
|
||||||
use Symfony\Component\Security\Core\Exception\AccessDeniedException;
|
use Symfony\Component\Security\Core\Exception\AccessDeniedException;
|
||||||
use Symfony\Component\Security\Http\Attribute\CurrentUser;
|
use Symfony\Component\Security\Http\Attribute\CurrentUser;
|
31
src/Controller/Case/GeoapifyController.php
Normal file
31
src/Controller/Case/GeoapifyController.php
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Controller\Case;
|
||||||
|
|
||||||
|
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
|
||||||
|
use Symfony\Component\Routing\Annotation\Route;
|
||||||
|
use Symfony\Component\HttpFoundation\Response;
|
||||||
|
|
||||||
|
class GeoapifyController extends AbstractController
|
||||||
|
{
|
||||||
|
#[Route('/api/autocomplete-address/{searchText}', name: 'app_api_autocomplete_address')]
|
||||||
|
public function autocompleteAddress(string $searchText): Response
|
||||||
|
{
|
||||||
|
$params = [
|
||||||
|
'text' => $searchText,
|
||||||
|
'format' => 'json',
|
||||||
|
'apiKey' => $_ENV['GEOAPIFY_API_KEY']
|
||||||
|
];
|
||||||
|
|
||||||
|
$url = "https://api.geoapify.com/v1/autocomplete?".http_build_query($params);
|
||||||
|
$ch = curl_init();
|
||||||
|
curl_setopt($ch, CURLOPT_URL, $url);
|
||||||
|
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
|
||||||
|
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
|
||||||
|
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
|
||||||
|
$result = curl_exec($ch);
|
||||||
|
curl_close($ch);
|
||||||
|
|
||||||
|
return $this->json($result);
|
||||||
|
}
|
||||||
|
}
|
@ -1,11 +1,11 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
namespace App\Controller;
|
namespace App\Controller\Case;
|
||||||
|
|
||||||
use App\Entity\CaseItinerary;
|
use App\Entity\Case\CaseItinerary;
|
||||||
use App\Entity\MemberCase;
|
use App\Entity\Case\MemberCase;;
|
||||||
use App\Entity\User;
|
use App\Entity\System\User;
|
||||||
use App\Entity\UserCase;
|
use App\Entity\System\UserCase;
|
||||||
use App\Libs\Breadcrumb;
|
use App\Libs\Breadcrumb;
|
||||||
use App\Libs\Libs;
|
use App\Libs\Libs;
|
||||||
use App\Libs\NavList;
|
use App\Libs\NavList;
|
@ -1,14 +1,13 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
namespace App\Controller;
|
namespace App\Controller\Case;
|
||||||
|
|
||||||
use App\Entity\CompanyDocument;
|
use App\Entity\Company\CompanyDocument;
|
||||||
use App\Entity\Member;
|
use App\Entity\Case\Member;
|
||||||
use App\Entity\MemberCase;
|
use App\Entity\Case\MemberCase;;
|
||||||
use App\Entity\MemberDocument;
|
use App\Entity\Case\MemberDocument;
|
||||||
use App\Entity\Messages;
|
use App\Entity\System\User;
|
||||||
use App\Entity\User;
|
use App\Entity\System\UserCase;
|
||||||
use App\Entity\UserCase;
|
|
||||||
use App\Form\MemberFormType;
|
use App\Form\MemberFormType;
|
||||||
use App\Libs\Breadcrumb;
|
use App\Libs\Breadcrumb;
|
||||||
use App\Libs\Libs;
|
use App\Libs\Libs;
|
@ -1,26 +1,24 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
namespace App\Controller;
|
namespace App\Controller\Case;
|
||||||
|
|
||||||
use App\Entity\Member;
|
use App\Entity\Case\Member;
|
||||||
use App\Entity\MemberCase;
|
use App\Entity\Case\MemberCase;;
|
||||||
use App\Entity\Referral;
|
use App\Entity\Case\Referral;
|
||||||
use App\Entity\StandardNote;
|
use App\Entity\Case\StandardNote;
|
||||||
use App\Entity\StandardNoteMember;
|
use App\Entity\Case\StandardNoteMember;
|
||||||
use App\Entity\User;
|
use App\Entity\System\User;
|
||||||
use App\Entity\UserCase;
|
use App\Entity\System\UserCase;
|
||||||
use App\Entity\VisitNote;
|
use App\Entity\Case\VisitNote;
|
||||||
use App\Entity\VisitNoteMembers;
|
use App\Entity\Case\VisitNoteMembers;
|
||||||
use App\Enums\NoteLocation;
|
use App\Enums\Case\NoteLocation;
|
||||||
use App\Enums\NoteMethod;
|
use App\Enums\Case\NoteMethod;
|
||||||
use App\Enums\ReferralServiceType;
|
use App\Enums\Case\ReferralServiceType;
|
||||||
use App\Form\StandardNoteFormType;
|
use App\Form\StandardNoteFormType;
|
||||||
use App\Form\VisitNoteFormType;
|
use App\Form\VisitNoteFormType;
|
||||||
use App\Libs\Breadcrumb;
|
use App\Libs\Breadcrumb;
|
||||||
use App\Libs\Libs;
|
use App\Libs\Libs;
|
||||||
use App\Libs\NavList;
|
use App\Libs\NavList;
|
||||||
use DateTime;
|
|
||||||
use DateTimeZone;
|
|
||||||
use Doctrine\ORM\EntityManagerInterface;
|
use Doctrine\ORM\EntityManagerInterface;
|
||||||
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
|
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
|
||||||
use Symfony\Component\HttpFoundation\Request;
|
use Symfony\Component\HttpFoundation\Request;
|
@ -1,12 +1,11 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
namespace App\Controller;
|
namespace App\Controller\Case;
|
||||||
|
|
||||||
use App\Entity\MemberCase;
|
use App\Entity\Case\MemberCase;;
|
||||||
use App\Entity\Messages;
|
use App\Entity\Case\Referral;
|
||||||
use App\Entity\Referral;
|
use App\Entity\System\User;
|
||||||
use App\Entity\User;
|
use App\Entity\System\UserCase;
|
||||||
use App\Entity\UserCase;
|
|
||||||
use App\Factory\MessageFactory;
|
use App\Factory\MessageFactory;
|
||||||
use App\Form\ReferralFormType;
|
use App\Form\ReferralFormType;
|
||||||
use App\Libs\Breadcrumb;
|
use App\Libs\Breadcrumb;
|
@ -1,10 +1,10 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
namespace App\Controller;
|
namespace App\Controller\Company;
|
||||||
|
|
||||||
use App\Entity\Company;
|
use App\Entity\Company\Company;
|
||||||
use App\Entity\CompanyDocument;
|
use App\Entity\Company\CompanyDocument;
|
||||||
use App\Entity\User;
|
use App\Entity\System\User;
|
||||||
use App\Form\CompanyDocumentFormType;
|
use App\Form\CompanyDocumentFormType;
|
||||||
use App\Form\InternalCompanyFormType;
|
use App\Form\InternalCompanyFormType;
|
||||||
use App\Libs\Breadcrumb;
|
use App\Libs\Breadcrumb;
|
@ -1,16 +1,17 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
namespace App\Controller;
|
namespace App\Controller\Company;
|
||||||
|
|
||||||
use App\Entity\CompanyDocument;
|
use App\Entity\Company\CompanyDocument;
|
||||||
use App\Entity\Member;
|
use App\Entity\Case\Member;
|
||||||
use App\Entity\MemberDocument;
|
use App\Entity\Case\MemberDocument;
|
||||||
use App\Entity\User;
|
use App\Entity\System\User;
|
||||||
use App\Libs\Breadcrumb;
|
use App\Libs\Breadcrumb;
|
||||||
use App\Libs\NavList;
|
use App\Libs\NavList;
|
||||||
use App\Libs\Libs;
|
use App\Libs\Libs;
|
||||||
use Doctrine\ORM\EntityManagerInterface;
|
use Doctrine\ORM\EntityManagerInterface;
|
||||||
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
|
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
|
||||||
|
use Symfony\Component\HttpFoundation\Request;
|
||||||
use Symfony\Component\HttpFoundation\Response;
|
use Symfony\Component\HttpFoundation\Response;
|
||||||
use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
|
use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
|
||||||
use Symfony\Component\Routing\Attribute\Route;
|
use Symfony\Component\Routing\Attribute\Route;
|
||||||
@ -49,12 +50,14 @@ class DocumentController extends AbstractController
|
|||||||
}
|
}
|
||||||
|
|
||||||
#[Route('/member/{memberId}/document/{docId}/sign', name: 'app_member_sign_case_doc')]
|
#[Route('/member/{memberId}/document/{docId}/sign', name: 'app_member_sign_case_doc')]
|
||||||
public function signCaseDocument(string $memberId, string $docId, #[CurrentUser()] User $user): Response
|
public function signCaseDocument(string $memberId, string $docId, #[CurrentUser()] User $user, Request $request): Response
|
||||||
{
|
{
|
||||||
/** @var Member $member */
|
/** @var Member $member */
|
||||||
$member = $this->entityManager->getRepository(Member::class)->find($memberId);
|
$member = $this->entityManager->getRepository(Member::class)->find($memberId);
|
||||||
|
/** @var CompanyDocument $doc */
|
||||||
$doc = $this->entityManager->getRepository(CompanyDocument::class)->find($docId);
|
$doc = $this->entityManager->getRepository(CompanyDocument::class)->find($docId);
|
||||||
|
|
||||||
|
/** @var MemberDocument $memDoc */
|
||||||
$memDoc = $this->entityManager->getRepository(MemberDocument::class)->findOneBy([
|
$memDoc = $this->entityManager->getRepository(MemberDocument::class)->findOneBy([
|
||||||
'document' => $doc,
|
'document' => $doc,
|
||||||
'client' => $member,
|
'client' => $member,
|
||||||
@ -65,6 +68,10 @@ class DocumentController extends AbstractController
|
|||||||
throw new NotFoundHttpException('Document not found');
|
throw new NotFoundHttpException('Document not found');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//$form = $this->createForm(MemberDocument::class);
|
||||||
|
/** @todo add form data */
|
||||||
|
//$form->add();
|
||||||
|
|
||||||
return $this->render(
|
return $this->render(
|
||||||
'internal/cases/members/documents/sign-member-doc.html.twig', [
|
'internal/cases/members/documents/sign-member-doc.html.twig', [
|
||||||
'doc' => $memDoc,
|
'doc' => $memDoc,
|
@ -1,10 +1,9 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
namespace App\Controller;
|
namespace App\Controller\Resources;
|
||||||
|
|
||||||
use App\Entity\CommunityResource;
|
use App\Entity\Resources\CommunityResource;
|
||||||
use App\Entity\Messages;
|
use App\Entity\System\User;
|
||||||
use App\Entity\User;
|
|
||||||
use App\Form\ResourceFormType;
|
use App\Form\ResourceFormType;
|
||||||
use App\Libs\Breadcrumb;
|
use App\Libs\Breadcrumb;
|
||||||
use App\Libs\Libs;
|
use App\Libs\Libs;
|
@ -1,13 +1,12 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
namespace App\Controller;
|
namespace App\Controller\Staff;
|
||||||
|
|
||||||
use App\Entity\MemberCase;
|
use App\Entity\Case\MemberCase;;
|
||||||
use App\Entity\Messages;
|
use App\Entity\Staff\StaffNote;
|
||||||
use App\Entity\StaffNote;
|
use App\Entity\Staff\Supervision;
|
||||||
use App\Entity\Supervision;
|
use App\Entity\System\User;
|
||||||
use App\Entity\User;
|
use App\Entity\System\UserCase;
|
||||||
use App\Entity\UserCase;
|
|
||||||
use App\Factory\MessageFactory;
|
use App\Factory\MessageFactory;
|
||||||
use App\Form\StaffNoteFormType;
|
use App\Form\StaffNoteFormType;
|
||||||
use App\Form\SupervisorStaffNoteFormType;
|
use App\Form\SupervisorStaffNoteFormType;
|
||||||
@ -20,6 +19,7 @@ use Symfony\Component\HttpFoundation\Request;
|
|||||||
use Symfony\Component\HttpFoundation\Response;
|
use Symfony\Component\HttpFoundation\Response;
|
||||||
use Symfony\Component\Routing\Annotation\Route;
|
use Symfony\Component\Routing\Annotation\Route;
|
||||||
use Symfony\Component\Security\Http\Attribute\CurrentUser;
|
use Symfony\Component\Security\Http\Attribute\CurrentUser;
|
||||||
|
use Symfony\Component\Translation\Exception\NotFoundResourceException;
|
||||||
|
|
||||||
class StaffController extends AbstractController
|
class StaffController extends AbstractController
|
||||||
{
|
{
|
||||||
@ -82,7 +82,14 @@ class StaffController extends AbstractController
|
|||||||
$this->navLinks['staff_notes'] = NavList::PRESENT_LINK;
|
$this->navLinks['staff_notes'] = NavList::PRESENT_LINK;
|
||||||
|
|
||||||
foreach ($ucs as $uc) {
|
foreach ($ucs as $uc) {
|
||||||
$cases[] = $uc->getMemberCase();
|
$case = $uc->getMemberCase();
|
||||||
|
$lastNote = $this->entityManager->getRepository(StaffNote::class)->findOneBy(['memberCase' => $case], ['date' => 'DESC']);
|
||||||
|
if ($lastNote) {
|
||||||
|
$case->emptyStaffNotes();
|
||||||
|
$case->addStaffNote($lastNote);
|
||||||
|
}
|
||||||
|
|
||||||
|
$cases[] = $case;
|
||||||
}
|
}
|
||||||
|
|
||||||
return $this->render(
|
return $this->render(
|
||||||
@ -109,15 +116,26 @@ class StaffController extends AbstractController
|
|||||||
if (!$this->isGranted('IS_AUTHENTICATED_FULLY')) {
|
if (!$this->isGranted('IS_AUTHENTICATED_FULLY')) {
|
||||||
return $this->redirectToRoute('app_login');
|
return $this->redirectToRoute('app_login');
|
||||||
}
|
}
|
||||||
$this->msgs = Libs::getMessages($user, $this->entityManager);
|
|
||||||
|
|
||||||
$staff = $this->entityManager->getRepository(User::class)->find($staffId);
|
$staff = $this->entityManager->getRepository(User::class)->find($staffId);
|
||||||
|
|
||||||
|
$sup = $this->entityManager->getRepository(Supervision::class)->findOneBy(['worker' => $staff, 'supervisor' => $user]);
|
||||||
|
if (!$sup) {
|
||||||
|
throw new NotFoundResourceException("It does not appear you are the supervisor to this case worker");
|
||||||
|
}
|
||||||
|
|
||||||
$ucs = $this->entityManager->getRepository(UserCase::class)->findBy(['user' => $staff]);
|
$ucs = $this->entityManager->getRepository(UserCase::class)->findBy(['user' => $staff]);
|
||||||
$cases = [];
|
$cases = [];
|
||||||
|
|
||||||
foreach ($ucs as $case) {
|
foreach ($ucs as $uc) {
|
||||||
/** @var UserCase $case */
|
/** @var MemberCase $case */
|
||||||
$cases[] = $case->getMemberCase();
|
$case = $uc->getMemberCase();
|
||||||
|
$lastNote = $this->entityManager->getRepository(StaffNote::class)->findOneBy(['memberCase' => $case], ['date' => 'DESC']);
|
||||||
|
if ($lastNote) {
|
||||||
|
$case->emptyStaffNotes();
|
||||||
|
$case->addStaffNote($lastNote);
|
||||||
|
}
|
||||||
|
$cases[] = $case;
|
||||||
}
|
}
|
||||||
|
|
||||||
return $this->render(
|
return $this->render(
|
||||||
@ -131,7 +149,7 @@ class StaffController extends AbstractController
|
|||||||
new Breadcrumb($this->generateUrl('app_staff_dashboard'), 'Staff Dashboard'),
|
new Breadcrumb($this->generateUrl('app_staff_dashboard'), 'Staff Dashboard'),
|
||||||
new Breadcrumb('', 'Staff Cases')
|
new Breadcrumb('', 'Staff Cases')
|
||||||
],
|
],
|
||||||
'notifications' => $this->msgs,
|
'notifications' => Libs::getMessages($user, $this->entityManager),
|
||||||
]
|
]
|
||||||
)
|
)
|
||||||
);
|
);
|
268
src/Controller/System/AjaxController.php
Normal file
268
src/Controller/System/AjaxController.php
Normal file
@ -0,0 +1,268 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Controller\System;
|
||||||
|
|
||||||
|
use App\Entity\Case\CaseItinerary;
|
||||||
|
use App\Entity\Case\CaseLocation;
|
||||||
|
use App\Entity\Resources\CommunityResource;
|
||||||
|
use App\Entity\Case\MemberCase;;
|
||||||
|
use App\Entity\Case\Referral;
|
||||||
|
use App\Entity\Case\StandardNote;
|
||||||
|
use App\Entity\Case\StandardNoteMember;
|
||||||
|
use App\Entity\System\Location;
|
||||||
|
use App\Entity\System\User;
|
||||||
|
use App\Entity\System\UserCase;
|
||||||
|
use App\Entity\Case\VisitNote;
|
||||||
|
use App\Entity\Case\VisitNoteMembers;
|
||||||
|
use App\Libs\Libs;
|
||||||
|
use DateTime;
|
||||||
|
use DateTimeZone;
|
||||||
|
use Doctrine\ORM\EntityManagerInterface;
|
||||||
|
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
|
||||||
|
use Symfony\Component\HttpFoundation\Request;
|
||||||
|
use Symfony\Component\HttpFoundation\Response;
|
||||||
|
use Symfony\Component\HttpFoundation\Session\Session;
|
||||||
|
use Symfony\Component\HttpKernel\Exception\AccessDeniedHttpException;
|
||||||
|
use Symfony\Component\Routing\Annotation\Route;
|
||||||
|
use Symfony\Component\Security\Http\Attribute\CurrentUser;
|
||||||
|
|
||||||
|
class AjaxController extends AbstractController
|
||||||
|
{
|
||||||
|
public function __construct(
|
||||||
|
private EntityManagerInterface $entityManager,
|
||||||
|
) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
#[Route('/api/itinerary/{id}/add', name: 'ajax_itinerary_add')]
|
||||||
|
public function addItinerary(string $id, Request $request): Response
|
||||||
|
{
|
||||||
|
$itinerary = $this->entityManager->getRepository(UserCase::class)->find($id);
|
||||||
|
$data = json_decode($request->getContent());
|
||||||
|
$location = new Location();
|
||||||
|
//$location->setItinerary($itinerary)
|
||||||
|
;
|
||||||
|
|
||||||
|
return $this->json($location);
|
||||||
|
}
|
||||||
|
|
||||||
|
#[Route('/api/filter-address-by-case/{caseId}', name: 'ajax_filter_address_by_case')]
|
||||||
|
public function filterAddressByCase(string $caseId, Request $request): Response
|
||||||
|
{
|
||||||
|
$case = $this->entityManager->getRepository(MemberCase::class)->find($caseId);
|
||||||
|
$addresses = $this->entityManager->getRepository(Location::class)->getLocationsByCase($case);
|
||||||
|
|
||||||
|
return $this->json($addresses);
|
||||||
|
}
|
||||||
|
|
||||||
|
#[Route('/api/case/{caseId}/user/{userId}', name: 'ajax_case_user_level_check')]
|
||||||
|
public function checkUserCaseLevel(string $caseId, string $userId, #[CurrentUser()] User $admin) : Response
|
||||||
|
{
|
||||||
|
$ret = true;
|
||||||
|
|
||||||
|
$user = $this->entityManager->getRepository(User::class)->find($userId);
|
||||||
|
$case = $this->entityManager->getRepository(MemberCase::class)->find($caseId);
|
||||||
|
|
||||||
|
if (!Libs::checkPermissions($user, $case, $this->entityManager)) {
|
||||||
|
throw new AccessDeniedHttpException ('You do not have permission to access this resource.');
|
||||||
|
}
|
||||||
|
|
||||||
|
$res = UserCase::checkLevel($admin, $case);
|
||||||
|
|
||||||
|
if (!$res) {
|
||||||
|
$ret = [
|
||||||
|
'userLevel' => ucwords(str_replace('_', ' ', strtolower($user->getLevel()->name))),
|
||||||
|
'caseLevel' => ucwords(str_replace('_', ' ', strtolower($case->getLevel()->name))),
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
return $this->json($ret);
|
||||||
|
}
|
||||||
|
|
||||||
|
#[Route('/api/filter-cases-by-user', name: 'ajax_filter_cases_by_user')]
|
||||||
|
public function filterCasesByUser(Request $request): Response
|
||||||
|
{
|
||||||
|
/** @var User $user */
|
||||||
|
$user = $this->entityManager->getRepository(User::class)->find($request->query->get('userId'));
|
||||||
|
/** @var UserCase[] $ucs */
|
||||||
|
$ucs = $this->entityManager->getRepository(UserCase::class)->findBy(['user' => $user]);
|
||||||
|
|
||||||
|
$ret = [];
|
||||||
|
foreach ($ucs as $uc) {
|
||||||
|
$ret[] = $uc->getMemberCase();
|
||||||
|
}
|
||||||
|
|
||||||
|
return $this->json($ret);
|
||||||
|
}
|
||||||
|
|
||||||
|
#[Route('/api/filter-resource-by-county', name: 'app_api_filter_resource_by_county')]
|
||||||
|
public function filterResourceByCounty(Request $request): Response
|
||||||
|
{
|
||||||
|
$data = json_decode($request->getContent(), true);
|
||||||
|
$county = $data['county'];
|
||||||
|
if ($county) {
|
||||||
|
$resources = $this->entityManager->getRepository(CommunityResource::class)->findBy(['county' => $county]);
|
||||||
|
} else {
|
||||||
|
$resources = $this->entityManager->getRepository(CommunityResource::class)->findAll();
|
||||||
|
}
|
||||||
|
return $this->json($resources);
|
||||||
|
}
|
||||||
|
|
||||||
|
#[Route('/api/get-case-locations/{caseId}', name: 'get_case_locations')]
|
||||||
|
public function createItinerary(string $caseId): Response
|
||||||
|
{
|
||||||
|
$case = $this->entityManager->getRepository(MemberCase::class)->find($caseId);
|
||||||
|
$cls = $this->entityManager->getRepository(CaseLocation::class)->getCaseLocations($case);
|
||||||
|
$crs = $this->entityManager->getRepository(CommunityResource::class)->findAll();
|
||||||
|
|
||||||
|
$locations = [];
|
||||||
|
foreach ($cls as $cl) {
|
||||||
|
/** @var CaseLocation $cl */
|
||||||
|
$locations[] = $cl->getLocation();
|
||||||
|
}
|
||||||
|
|
||||||
|
foreach ($crs as $cr) {
|
||||||
|
$locations[] = $cr->toLocation();
|
||||||
|
}
|
||||||
|
|
||||||
|
return $this->json($locations);
|
||||||
|
}
|
||||||
|
|
||||||
|
#[Route('/api/add-location-to-itinerary', name: 'add_location_to_itinerary')]
|
||||||
|
public function addLocationToItinerary(Request $request, Session $session): Response
|
||||||
|
{
|
||||||
|
$case = $this->entityManager->getRepository(MemberCase::class)->find($request->getPayload()->get('caseId'));
|
||||||
|
$origin = $this->entityManager->getRepository(Location::class)->find($request->getPayload()->get('origin'));
|
||||||
|
$destination = $this->entityManager->getRepository(Location::class)->find($request->getPayload()->get('destination'));
|
||||||
|
$departure = $request->getPayload()->get('departure');
|
||||||
|
$caseMileage = (bool) $request->getPayload()->get('caseMileage');
|
||||||
|
$date = new DateTime($request->getPayload()->get('date'), new DateTimeZone($_ENV['COMPANY_TIMEZONE']));
|
||||||
|
|
||||||
|
$route = Libs::getRouteDistance($origin, $destination);
|
||||||
|
|
||||||
|
if (!$route) {
|
||||||
|
return $this->json(['success' => false, 'message' => 'No route found']);
|
||||||
|
}
|
||||||
|
|
||||||
|
$ci = new CaseItinerary();
|
||||||
|
$ci->setMemberCase($case)
|
||||||
|
->setDate($date)
|
||||||
|
->setCaseMileage($caseMileage)
|
||||||
|
->setOriginLocation($origin)
|
||||||
|
->setDestLocation($destination)
|
||||||
|
->setDeparture(new \DateTimeImmutable($departure))
|
||||||
|
->setDistance($route->getDistance())
|
||||||
|
->setDuration($route->getDuration())
|
||||||
|
->setGpsRoute($route->getGeometry())
|
||||||
|
;
|
||||||
|
|
||||||
|
$this->entityManager->persist($ci);
|
||||||
|
$this->entityManager->flush();
|
||||||
|
|
||||||
|
$session->getFlashBag()->add(
|
||||||
|
'success',
|
||||||
|
'Location added to itinerary'
|
||||||
|
);
|
||||||
|
return $this->json(['success' => true, 'message' => 'Location added to itinerary']);
|
||||||
|
}
|
||||||
|
|
||||||
|
#[Route('/api/filter-itinerary-by-case', name: 'ajax_filter_itinerary_by_case')]
|
||||||
|
public function filterItineraryByCase(Request $request, #[CurrentUser()] ?User $user): Response
|
||||||
|
{
|
||||||
|
$case = null;
|
||||||
|
$startDate = null;
|
||||||
|
$endDate = null;
|
||||||
|
|
||||||
|
//dd($request->getPayload());
|
||||||
|
|
||||||
|
if ($request->getPayload()->get('caseId')) {
|
||||||
|
$caseId = $request->getPayload()->get('caseId');
|
||||||
|
$case = $this->entityManager->getRepository(MemberCase::class)->find($caseId);
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($request->getPayload()->get('startDate')) {
|
||||||
|
$startDate = new DateTime($request->getPayload()->get('startDate'), new DateTimeZone($_ENV['COMPANY_TIMEZONE']));
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($request->getPayload()->get('endDate')) {
|
||||||
|
$endDate = new DateTime($request->getPayload()->get('endDate'), new DateTimeZone($_ENV['COMPANY_TIMEZONE']));
|
||||||
|
}
|
||||||
|
|
||||||
|
$itineraries = $this->entityManager->getRepository(CaseItinerary::class)->getRecentTravel($user, [
|
||||||
|
'case' => $case,
|
||||||
|
'from' => $startDate,
|
||||||
|
'to' => $endDate,
|
||||||
|
]);
|
||||||
|
|
||||||
|
$ret = [];
|
||||||
|
|
||||||
|
foreach ($itineraries as $itinerary) {
|
||||||
|
/** @var CaseItinerary $itinerary */
|
||||||
|
$ret[] = [
|
||||||
|
'id' => $itinerary->getId()->toString(),
|
||||||
|
'date' => $itinerary->getDate()->format('F j, Y'),
|
||||||
|
'origin' => $itinerary->getOriginLocation(),
|
||||||
|
'destination' => $itinerary->getDestLocation(),
|
||||||
|
'distance' => $itinerary->getDistance(),
|
||||||
|
'duration' => $itinerary->getDuration()->format("%h:%i'%s''"),
|
||||||
|
'case' => $itinerary->getMemberCase()->getCaseName(),
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
return $this->json($ret);
|
||||||
|
}
|
||||||
|
|
||||||
|
#[Route('/api/filter-notes', name: 'api_filter_notes')]
|
||||||
|
public function filterNotes(#[CurrentUser()] User $user, Request $request): Response
|
||||||
|
{
|
||||||
|
$startDate = null;
|
||||||
|
$endDate = null;
|
||||||
|
$referral = null;
|
||||||
|
$case = null;
|
||||||
|
|
||||||
|
if ($request->getPayload()->get('startDate')) {
|
||||||
|
$startDate = new DateTime($request->getPayload()->get('startDate'), new DateTimeZone($_ENV['COMPANY_TIMEZONE']));
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($request->getPayload()->get('endDate')) {
|
||||||
|
$endDate = new DateTime($request->getPayload()->get('endDate'), new DateTimeZone($_ENV['COMPANY_TIMEZONE']));
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($request->getPayload()->get('referral')) {
|
||||||
|
$referral = $this->entityManager->getRepository(Referral::class)->find($request->getPayload()->get('referral'));
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($request->getPayload()->get('case')) {
|
||||||
|
$case = $this->entityManager->getRepository(MemberCase::class)->find($request->getPayload()->get('case'));
|
||||||
|
}
|
||||||
|
|
||||||
|
$params = [
|
||||||
|
'startDate' => $startDate,
|
||||||
|
'endDate' => $endDate,
|
||||||
|
'referral' => $referral,
|
||||||
|
'case' => $case,
|
||||||
|
];
|
||||||
|
|
||||||
|
$notes = array_merge(
|
||||||
|
$this->entityManager->getRepository(VisitNote::class)->filterNotes($user, $params),
|
||||||
|
$this->entityManager->getRepository(StandardNote::class)->filterNotes($user, $params),
|
||||||
|
);
|
||||||
|
|
||||||
|
foreach ($notes as $idx => $note) {
|
||||||
|
/** @var VisitNote|StandardNote $note */
|
||||||
|
|
||||||
|
/** @var VisitNoteMember[]|StandardNoteMember[] $members */
|
||||||
|
if ($note instanceof VisitNote) {
|
||||||
|
$members = $this->entityManager->getRepository(VisitNoteMembers::class)->findBy(['note' => $note]);
|
||||||
|
} elseif ($note instanceof StandardNote) {
|
||||||
|
$members = $this->entityManager->getRepository(StandardNoteMember::class)->findBy(['note' => $note]);
|
||||||
|
} else {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
$notes[$idx]->setMembers($members);
|
||||||
|
}
|
||||||
|
|
||||||
|
return new Response(json_encode($notes, 0, 3));
|
||||||
|
}
|
||||||
|
}
|
@ -1,10 +1,10 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
namespace App\Controller;
|
namespace App\Controller\System;
|
||||||
|
|
||||||
use App\Entity\CaseItinerary;
|
use App\Entity\System\User;
|
||||||
use App\Entity\User;
|
|
||||||
use App\Libs\Breadcrumb;
|
use App\Libs\Breadcrumb;
|
||||||
|
use App\Libs\Dashboard;
|
||||||
use App\Libs\Libs;
|
use App\Libs\Libs;
|
||||||
use App\Libs\NavList;
|
use App\Libs\NavList;
|
||||||
use DateInterval;
|
use DateInterval;
|
||||||
@ -56,59 +56,11 @@ class DefaultController extends AbstractController
|
|||||||
return $this->redirectToRoute('app_profile');
|
return $this->redirectToRoute('app_profile');
|
||||||
}
|
}
|
||||||
|
|
||||||
if($_SERVER['HTTP_REFERER'] == "{$_SERVER['HTTP_X_FORWARDED_PROTO']}://{$_SERVER['HTTP_HOST']}/") {
|
if(isset($_SERVER['HTTP_REFERER']) && $_SERVER['HTTP_REFERER'] == "{$_SERVER['HTTP_X_FORWARDED_PROTO']}://{$_SERVER['HTTP_HOST']}/") {
|
||||||
$this->entityManager->getRepository(User::class)->updateLastLogin($user);
|
$this->entityManager->getRepository(User::class)->updateLastLogin($user);
|
||||||
}
|
}
|
||||||
|
|
||||||
$ytdtravel = $this->entityManager->getRepository(CaseItinerary::class)->getYTDTravel($user);
|
$dashboard = new Dashboard($this->entityManager, $user);
|
||||||
$last30days = $this->entityManager->getRepository(CaseItinerary::class)->getTravelLast30Days($user);
|
|
||||||
$ytdMiles = 0;
|
|
||||||
$milesTravelled30Days = 0;
|
|
||||||
$caseMileageYTD = 0;
|
|
||||||
$caseMileage30Days = 0;
|
|
||||||
$totalTimeTravelledYTD = new DateInterval('PT0S');
|
|
||||||
$totalTimeTravelled30Days = new DateInterval('PT0S');
|
|
||||||
|
|
||||||
if ($ytdtravel) {
|
|
||||||
$timeTravelled = new DateTime('00:00:00');
|
|
||||||
$timeTravelYTDStart = new DateTime('00:00:00');
|
|
||||||
foreach ($ytdtravel as $travel) {
|
|
||||||
/** @var CaseItinerary $travel */
|
|
||||||
$ytdMiles += $travel->getDistance();
|
|
||||||
$timeTravelled->add($travel->getDuration());
|
|
||||||
|
|
||||||
if ($travel->isCaseMileage()) {
|
|
||||||
$caseMileageYTD += $travel->getDistance();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
$totalTimeTravelledYTD = $timeTravelled->diff($timeTravelYTDStart);
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($last30days) {
|
|
||||||
$timeTravelled30Days = new DateTime('00:00:00');
|
|
||||||
$timeTravel30DaysStart = new DateTime('00:00:00');
|
|
||||||
foreach ($last30days as $travel) {
|
|
||||||
/** @var CaseItinerary $travel */
|
|
||||||
$milesTravelled30Days += $travel->getDistance();
|
|
||||||
$timeTravelled30Days->add($travel->getDuration());
|
|
||||||
|
|
||||||
if ($travel->isCaseMileage()) {
|
|
||||||
$caseMileage30Days += $travel->getDistance();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
$totalTimeTravelled30Days = $timeTravelled30Days->diff($timeTravel30DaysStart);
|
|
||||||
}
|
|
||||||
|
|
||||||
$activeCases = 0;
|
|
||||||
$totalCases = 0;
|
|
||||||
foreach ($user->getUserCases() as $uc) {
|
|
||||||
$totalCases++;
|
|
||||||
if (!$uc->getMemberCase()->getCloseDate()) {
|
|
||||||
$activeCases++;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
$this->navLinks['user_dashboard'] = NavList::PRESENT_LINK;
|
$this->navLinks['user_dashboard'] = NavList::PRESENT_LINK;
|
||||||
|
|
||||||
@ -116,19 +68,12 @@ class DefaultController extends AbstractController
|
|||||||
'internal/dashboard.html.twig',
|
'internal/dashboard.html.twig',
|
||||||
array_merge(
|
array_merge(
|
||||||
$this->navLinks,
|
$this->navLinks,
|
||||||
|
$dashboard->toArray(),
|
||||||
[
|
[
|
||||||
'breadcrumbs' => [
|
'breadcrumbs' => [
|
||||||
new Breadcrumb('', 'Dashboard')
|
new Breadcrumb('', 'Dashboard')
|
||||||
],
|
],
|
||||||
'notifications' => Libs::getMessages($user, $this->entityManager),
|
'notifications' => Libs::getMessages($user, $this->entityManager),
|
||||||
'milesTravelledYTD' => $ytdMiles,
|
|
||||||
'milesTravelled30Days' => $milesTravelled30Days,
|
|
||||||
'totalTimeTravelledYTD' => $totalTimeTravelledYTD,
|
|
||||||
'totalTimeTravelled30Days' => $totalTimeTravelled30Days,
|
|
||||||
'activeCases' => $activeCases,
|
|
||||||
'totalCases' => $totalCases,
|
|
||||||
'caseMileageYTD' => $caseMileageYTD,
|
|
||||||
'caseMileage30Days' => $caseMileage30Days,
|
|
||||||
]
|
]
|
||||||
)
|
)
|
||||||
);
|
);
|
@ -2,11 +2,10 @@
|
|||||||
|
|
||||||
namespace App\Controller;
|
namespace App\Controller;
|
||||||
|
|
||||||
use App\Entity\Messages;
|
use App\Entity\System\Messages;
|
||||||
use App\Entity\Supervision;
|
use App\Entity\Staff\Supervision;
|
||||||
use App\Entity\User;
|
use App\Entity\System\User;
|
||||||
use App\Enums\MessageType;
|
use App\Enums\System\MessageType;
|
||||||
use App\Libs\Libs;
|
|
||||||
use Doctrine\ORM\EntityManagerInterface;
|
use Doctrine\ORM\EntityManagerInterface;
|
||||||
use Symfony\Component\HttpFoundation\Request;
|
use Symfony\Component\HttpFoundation\Request;
|
||||||
use Symfony\Component\HttpFoundation\Response;
|
use Symfony\Component\HttpFoundation\Response;
|
@ -1,10 +1,9 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
namespace App\Controller;
|
namespace App\Controller\System;
|
||||||
|
|
||||||
use App\Entity\Messages;
|
use App\Entity\System\ReferralSource;
|
||||||
use App\Entity\ReferralSource;
|
use App\Entity\System\User;
|
||||||
use App\Entity\User;
|
|
||||||
use App\Form\ReferralSourceFormType;
|
use App\Form\ReferralSourceFormType;
|
||||||
use App\Libs\Breadcrumb;
|
use App\Libs\Breadcrumb;
|
||||||
use App\Libs\Libs;
|
use App\Libs\Libs;
|
@ -1,12 +1,11 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
namespace App\Controller;
|
namespace App\Controller\System;
|
||||||
|
|
||||||
use App\DataTransferObject\CompanyDetailsDto;
|
use App\DataTransferObject\CompanyDetailsDto;
|
||||||
use App\Entity\User;
|
use App\Entity\System\User;
|
||||||
use App\Enums\CaseLevel;
|
use App\Enums\Case\CaseLevel;
|
||||||
use App\Enums\JobType;
|
use App\Enums\System\RateType;
|
||||||
use App\Enums\RateType;
|
|
||||||
use App\Factory\CompanyFactory;
|
use App\Factory\CompanyFactory;
|
||||||
use App\Form\CompanyFormType;
|
use App\Form\CompanyFormType;
|
||||||
use App\Form\RegistrationFormType;
|
use App\Form\RegistrationFormType;
|
||||||
@ -80,11 +79,7 @@ class RegistrationController extends AbstractController
|
|||||||
)
|
)
|
||||||
);
|
);
|
||||||
|
|
||||||
$user->setCaseWorker(true)
|
$user->setRateType(RateType::FIXED)
|
||||||
->setCaseManager(true)
|
|
||||||
->setTherapist(true)
|
|
||||||
->setSu(true)
|
|
||||||
->setRateType(RateType::FIXED)
|
|
||||||
->setRate('0.00')
|
->setRate('0.00')
|
||||||
->setRoles(['ROLE_ADMIN'])
|
->setRoles(['ROLE_ADMIN'])
|
||||||
->setLevel(CaseLevel::ADMIN);
|
->setLevel(CaseLevel::ADMIN);
|
@ -1,6 +1,6 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
namespace App\Controller;
|
namespace App\Controller\System;
|
||||||
|
|
||||||
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
|
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
|
||||||
use Symfony\Component\HttpFoundation\Response;
|
use Symfony\Component\HttpFoundation\Response;
|
Loading…
Reference in New Issue
Block a user