Compare commits
8 Commits
fc9ebbd327
...
9887889ecb
Author | SHA1 | Date | |
---|---|---|---|
9887889ecb | |||
593958cc68 | |||
528827868b | |||
af6ebbb1b2 | |||
e08e23d647 | |||
bcc32bf445 | |||
ee2fce4c41 | |||
13aaaae34c |
@ -1,9 +1,9 @@
|
||||
<?php
|
||||
|
||||
namespace App\Controller;
|
||||
namespace App\Controller\Admin;
|
||||
|
||||
use App\Entity\Supervision;
|
||||
use App\Entity\User;
|
||||
use App\Entity\Staff\Supervision;
|
||||
use App\Entity\System\User;
|
||||
use App\Factory\MessageFactory;
|
||||
use App\Form\EditUserFormType;
|
||||
use App\Form\SupervisorFormType;
|
||||
@ -11,7 +11,6 @@ use App\Form\UserFormType;
|
||||
use App\Libs\Breadcrumb;
|
||||
use App\Libs\NavList;
|
||||
use App\Libs\Libs;
|
||||
use App\Libs\PageParameters;
|
||||
use App\Repository\UserRepository;
|
||||
use DateTime;
|
||||
use DateTimeZone;
|
@ -1,17 +1,15 @@
|
||||
<?php
|
||||
|
||||
namespace App\Controller;
|
||||
namespace App\Controller\Case;
|
||||
|
||||
use App\Entity\CaseDocument;
|
||||
use App\Entity\CaseLocation;
|
||||
use App\Entity\CompanyDocument;
|
||||
use App\Entity\Location;
|
||||
use App\Entity\Member;
|
||||
use App\Entity\MemberCase;
|
||||
use App\Entity\MemberDocument;
|
||||
use App\Entity\ReferralSource;
|
||||
use App\Entity\User;
|
||||
use App\Entity\UserCase;
|
||||
use App\Entity\Case\CaseLocation;
|
||||
use App\Entity\Company\CompanyDocument;
|
||||
use App\Entity\Case\Member;
|
||||
use App\Entity\Case\MemberCase;
|
||||
use App\Entity\System\Location;
|
||||
use App\Entity\System\ReferralSource;
|
||||
use App\Entity\System\User;
|
||||
use App\Entity\System\UserCase;
|
||||
use App\Factory\MessageFactory;
|
||||
use App\Form\CaseDocumentFormType;
|
||||
use App\Form\LocationFormType;
|
||||
@ -24,7 +22,6 @@ use Doctrine\ORM\EntityManagerInterface;
|
||||
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
|
||||
use Symfony\Component\HttpFoundation\Request;
|
||||
use Symfony\Component\HttpFoundation\Response;
|
||||
use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
|
||||
use Symfony\Component\Routing\Attribute\Route;
|
||||
use Symfony\Component\Security\Core\Exception\AccessDeniedException;
|
||||
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
|
||||
|
||||
namespace App\Controller;
|
||||
namespace App\Controller\Case;
|
||||
|
||||
use App\Entity\CaseItinerary;
|
||||
use App\Entity\MemberCase;
|
||||
use App\Entity\User;
|
||||
use App\Entity\UserCase;
|
||||
use App\Entity\Case\CaseItinerary;
|
||||
use App\Entity\Case\MemberCase;;
|
||||
use App\Entity\System\User;
|
||||
use App\Entity\System\UserCase;
|
||||
use App\Libs\Breadcrumb;
|
||||
use App\Libs\Libs;
|
||||
use App\Libs\NavList;
|
@ -1,14 +1,13 @@
|
||||
<?php
|
||||
|
||||
namespace App\Controller;
|
||||
namespace App\Controller\Case;
|
||||
|
||||
use App\Entity\CompanyDocument;
|
||||
use App\Entity\Member;
|
||||
use App\Entity\MemberCase;
|
||||
use App\Entity\MemberDocument;
|
||||
use App\Entity\Messages;
|
||||
use App\Entity\User;
|
||||
use App\Entity\UserCase;
|
||||
use App\Entity\Company\CompanyDocument;
|
||||
use App\Entity\Case\Member;
|
||||
use App\Entity\Case\MemberCase;;
|
||||
use App\Entity\Case\MemberDocument;
|
||||
use App\Entity\System\User;
|
||||
use App\Entity\System\UserCase;
|
||||
use App\Form\MemberFormType;
|
||||
use App\Libs\Breadcrumb;
|
||||
use App\Libs\Libs;
|
@ -1,26 +1,24 @@
|
||||
<?php
|
||||
|
||||
namespace App\Controller;
|
||||
namespace App\Controller\Case;
|
||||
|
||||
use App\Entity\Member;
|
||||
use App\Entity\MemberCase;
|
||||
use App\Entity\Referral;
|
||||
use App\Entity\StandardNote;
|
||||
use App\Entity\StandardNoteMember;
|
||||
use App\Entity\User;
|
||||
use App\Entity\UserCase;
|
||||
use App\Entity\VisitNote;
|
||||
use App\Entity\VisitNoteMembers;
|
||||
use App\Enums\NoteLocation;
|
||||
use App\Enums\NoteMethod;
|
||||
use App\Enums\ReferralServiceType;
|
||||
use App\Entity\Case\Member;
|
||||
use App\Entity\Case\MemberCase;;
|
||||
use App\Entity\Case\Referral;
|
||||
use App\Entity\Case\StandardNote;
|
||||
use App\Entity\Case\StandardNoteMember;
|
||||
use App\Entity\System\User;
|
||||
use App\Entity\System\UserCase;
|
||||
use App\Entity\Case\VisitNote;
|
||||
use App\Entity\Case\VisitNoteMembers;
|
||||
use App\Enums\Case\NoteLocation;
|
||||
use App\Enums\Case\NoteMethod;
|
||||
use App\Enums\Case\ReferralServiceType;
|
||||
use App\Form\StandardNoteFormType;
|
||||
use App\Form\VisitNoteFormType;
|
||||
use App\Libs\Breadcrumb;
|
||||
use App\Libs\Libs;
|
||||
use App\Libs\NavList;
|
||||
use DateTime;
|
||||
use DateTimeZone;
|
||||
use Doctrine\ORM\EntityManagerInterface;
|
||||
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
|
||||
use Symfony\Component\HttpFoundation\Request;
|
@ -1,12 +1,11 @@
|
||||
<?php
|
||||
|
||||
namespace App\Controller;
|
||||
namespace App\Controller\Case;
|
||||
|
||||
use App\Entity\MemberCase;
|
||||
use App\Entity\Messages;
|
||||
use App\Entity\Referral;
|
||||
use App\Entity\User;
|
||||
use App\Entity\UserCase;
|
||||
use App\Entity\Case\MemberCase;;
|
||||
use App\Entity\Case\Referral;
|
||||
use App\Entity\System\User;
|
||||
use App\Entity\System\UserCase;
|
||||
use App\Factory\MessageFactory;
|
||||
use App\Form\ReferralFormType;
|
||||
use App\Libs\Breadcrumb;
|
@ -1,10 +1,10 @@
|
||||
<?php
|
||||
|
||||
namespace App\Controller;
|
||||
namespace App\Controller\Company;
|
||||
|
||||
use App\Entity\Company;
|
||||
use App\Entity\CompanyDocument;
|
||||
use App\Entity\User;
|
||||
use App\Entity\Company\Company;
|
||||
use App\Entity\Company\CompanyDocument;
|
||||
use App\Entity\System\User;
|
||||
use App\Form\CompanyDocumentFormType;
|
||||
use App\Form\InternalCompanyFormType;
|
||||
use App\Libs\Breadcrumb;
|
@ -1,16 +1,17 @@
|
||||
<?php
|
||||
|
||||
namespace App\Controller;
|
||||
namespace App\Controller\Company;
|
||||
|
||||
use App\Entity\CompanyDocument;
|
||||
use App\Entity\Member;
|
||||
use App\Entity\MemberDocument;
|
||||
use App\Entity\User;
|
||||
use App\Entity\Company\CompanyDocument;
|
||||
use App\Entity\Case\Member;
|
||||
use App\Entity\Case\MemberDocument;
|
||||
use App\Entity\System\User;
|
||||
use App\Libs\Breadcrumb;
|
||||
use App\Libs\NavList;
|
||||
use App\Libs\Libs;
|
||||
use Doctrine\ORM\EntityManagerInterface;
|
||||
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
|
||||
use Symfony\Component\HttpFoundation\Request;
|
||||
use Symfony\Component\HttpFoundation\Response;
|
||||
use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
|
||||
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')]
|
||||
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 */
|
||||
$member = $this->entityManager->getRepository(Member::class)->find($memberId);
|
||||
/** @var CompanyDocument $doc */
|
||||
$doc = $this->entityManager->getRepository(CompanyDocument::class)->find($docId);
|
||||
|
||||
/** @var MemberDocument $memDoc */
|
||||
$memDoc = $this->entityManager->getRepository(MemberDocument::class)->findOneBy([
|
||||
'document' => $doc,
|
||||
'client' => $member,
|
||||
@ -65,6 +68,10 @@ class DocumentController extends AbstractController
|
||||
throw new NotFoundHttpException('Document not found');
|
||||
}
|
||||
|
||||
//$form = $this->createForm(MemberDocument::class);
|
||||
/** @todo add form data */
|
||||
//$form->add();
|
||||
|
||||
return $this->render(
|
||||
'internal/cases/members/documents/sign-member-doc.html.twig', [
|
||||
'doc' => $memDoc,
|
@ -1,10 +1,9 @@
|
||||
<?php
|
||||
|
||||
namespace App\Controller;
|
||||
namespace App\Controller\Resources;
|
||||
|
||||
use App\Entity\CommunityResource;
|
||||
use App\Entity\Messages;
|
||||
use App\Entity\User;
|
||||
use App\Entity\Resources\CommunityResource;
|
||||
use App\Entity\System\User;
|
||||
use App\Form\ResourceFormType;
|
||||
use App\Libs\Breadcrumb;
|
||||
use App\Libs\Libs;
|
@ -1,13 +1,12 @@
|
||||
<?php
|
||||
|
||||
namespace App\Controller;
|
||||
namespace App\Controller\Staff;
|
||||
|
||||
use App\Entity\MemberCase;
|
||||
use App\Entity\Messages;
|
||||
use App\Entity\StaffNote;
|
||||
use App\Entity\Supervision;
|
||||
use App\Entity\User;
|
||||
use App\Entity\UserCase;
|
||||
use App\Entity\Case\MemberCase;;
|
||||
use App\Entity\Staff\StaffNote;
|
||||
use App\Entity\Staff\Supervision;
|
||||
use App\Entity\System\User;
|
||||
use App\Entity\System\UserCase;
|
||||
use App\Factory\MessageFactory;
|
||||
use App\Form\StaffNoteFormType;
|
||||
use App\Form\SupervisorStaffNoteFormType;
|
||||
@ -20,6 +19,7 @@ use Symfony\Component\HttpFoundation\Request;
|
||||
use Symfony\Component\HttpFoundation\Response;
|
||||
use Symfony\Component\Routing\Annotation\Route;
|
||||
use Symfony\Component\Security\Http\Attribute\CurrentUser;
|
||||
use Symfony\Component\Translation\Exception\NotFoundResourceException;
|
||||
|
||||
class StaffController extends AbstractController
|
||||
{
|
||||
@ -82,7 +82,14 @@ class StaffController extends AbstractController
|
||||
$this->navLinks['staff_notes'] = NavList::PRESENT_LINK;
|
||||
|
||||
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(
|
||||
@ -109,15 +116,26 @@ class StaffController extends AbstractController
|
||||
if (!$this->isGranted('IS_AUTHENTICATED_FULLY')) {
|
||||
return $this->redirectToRoute('app_login');
|
||||
}
|
||||
$this->msgs = Libs::getMessages($user, $this->entityManager);
|
||||
|
||||
$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]);
|
||||
$cases = [];
|
||||
|
||||
foreach ($ucs as $case) {
|
||||
/** @var UserCase $case */
|
||||
$cases[] = $case->getMemberCase();
|
||||
foreach ($ucs as $uc) {
|
||||
/** @var MemberCase $case */
|
||||
$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(
|
||||
@ -129,9 +147,9 @@ class StaffController extends AbstractController
|
||||
'cases' => $cases,
|
||||
'breadcrumbs' => [
|
||||
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
|
||||
|
||||
namespace App\Controller;
|
||||
namespace App\Controller\System;
|
||||
|
||||
use App\Entity\CaseItinerary;
|
||||
use App\Entity\User;
|
||||
use App\Entity\System\User;
|
||||
use App\Libs\Breadcrumb;
|
||||
use App\Libs\Dashboard;
|
||||
use App\Libs\Libs;
|
||||
use App\Libs\NavList;
|
||||
use DateInterval;
|
||||
@ -56,59 +56,11 @@ class DefaultController extends AbstractController
|
||||
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);
|
||||
}
|
||||
|
||||
$ytdtravel = $this->entityManager->getRepository(CaseItinerary::class)->getYTDTravel($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++;
|
||||
}
|
||||
}
|
||||
$dashboard = new Dashboard($this->entityManager, $user);
|
||||
|
||||
$this->navLinks['user_dashboard'] = NavList::PRESENT_LINK;
|
||||
|
||||
@ -116,19 +68,12 @@ class DefaultController extends AbstractController
|
||||
'internal/dashboard.html.twig',
|
||||
array_merge(
|
||||
$this->navLinks,
|
||||
$dashboard->toArray(),
|
||||
[
|
||||
'breadcrumbs' => [
|
||||
new Breadcrumb('', 'Dashboard')
|
||||
],
|
||||
'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;
|
||||
|
||||
use App\Entity\Messages;
|
||||
use App\Entity\Supervision;
|
||||
use App\Entity\User;
|
||||
use App\Enums\MessageType;
|
||||
use App\Libs\Libs;
|
||||
use App\Entity\System\Messages;
|
||||
use App\Entity\Staff\Supervision;
|
||||
use App\Entity\System\User;
|
||||
use App\Enums\System\MessageType;
|
||||
use Doctrine\ORM\EntityManagerInterface;
|
||||
use Symfony\Component\HttpFoundation\Request;
|
||||
use Symfony\Component\HttpFoundation\Response;
|
@ -1,10 +1,9 @@
|
||||
<?php
|
||||
|
||||
namespace App\Controller;
|
||||
namespace App\Controller\System;
|
||||
|
||||
use App\Entity\Messages;
|
||||
use App\Entity\ReferralSource;
|
||||
use App\Entity\User;
|
||||
use App\Entity\System\ReferralSource;
|
||||
use App\Entity\System\User;
|
||||
use App\Form\ReferralSourceFormType;
|
||||
use App\Libs\Breadcrumb;
|
||||
use App\Libs\Libs;
|
@ -1,12 +1,11 @@
|
||||
<?php
|
||||
|
||||
namespace App\Controller;
|
||||
namespace App\Controller\System;
|
||||
|
||||
use App\DataTransferObject\CompanyDetailsDto;
|
||||
use App\Entity\User;
|
||||
use App\Enums\CaseLevel;
|
||||
use App\Enums\JobType;
|
||||
use App\Enums\RateType;
|
||||
use App\Entity\System\User;
|
||||
use App\Enums\Case\CaseLevel;
|
||||
use App\Enums\System\RateType;
|
||||
use App\Factory\CompanyFactory;
|
||||
use App\Form\CompanyFormType;
|
||||
use App\Form\RegistrationFormType;
|
||||
@ -80,11 +79,7 @@ class RegistrationController extends AbstractController
|
||||
)
|
||||
);
|
||||
|
||||
$user->setCaseWorker(true)
|
||||
->setCaseManager(true)
|
||||
->setTherapist(true)
|
||||
->setSu(true)
|
||||
->setRateType(RateType::FIXED)
|
||||
$user->setRateType(RateType::FIXED)
|
||||
->setRate('0.00')
|
||||
->setRoles(['ROLE_ADMIN'])
|
||||
->setLevel(CaseLevel::ADMIN);
|
@ -1,6 +1,6 @@
|
||||
<?php
|
||||
|
||||
namespace App\Controller;
|
||||
namespace App\Controller\System;
|
||||
|
||||
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
|
||||
use Symfony\Component\HttpFoundation\Response;
|
@ -2,12 +2,12 @@
|
||||
|
||||
namespace App\DataFixtures;
|
||||
|
||||
use App\Entity\MemberCase;
|
||||
use App\Entity\ReferralSource;
|
||||
use App\Entity\User;
|
||||
use App\Entity\UserCase;
|
||||
use App\Enums\CaseLevel;
|
||||
use App\Enums\County;
|
||||
use App\Entity\Case\MemberCase;;
|
||||
use App\Entity\System\ReferralSource;
|
||||
use App\Entity\System\User;
|
||||
use App\Entity\System\UserCase;
|
||||
use App\Enums\Case\CaseLevel;
|
||||
use App\Enums\System\County;
|
||||
use Doctrine\Bundle\FixturesBundle\Fixture;
|
||||
use Doctrine\Common\DataFixtures\DependentFixtureInterface;
|
||||
use Doctrine\Persistence\ObjectManager;
|
||||
|
@ -2,12 +2,12 @@
|
||||
|
||||
namespace App\DataFixtures;
|
||||
|
||||
use App\Entity\Member;
|
||||
use App\Entity\MemberCase;
|
||||
use App\Enums\GenderType;
|
||||
use App\Enums\RaceType;
|
||||
use App\Enums\RelationshipType;
|
||||
use App\Enums\State;
|
||||
use App\Entity\Case\Member;
|
||||
use App\Entity\Case\MemberCase;;
|
||||
use App\Enums\System\GenderType;
|
||||
use App\Enums\Case\RaceType;
|
||||
use App\Enums\Case\RelationshipType;
|
||||
use App\Enums\System\State;
|
||||
use Doctrine\Bundle\FixturesBundle\Fixture;
|
||||
use Doctrine\Common\DataFixtures\DependentFixtureInterface;
|
||||
use Doctrine\Persistence\ObjectManager;
|
||||
|
@ -2,15 +2,15 @@
|
||||
|
||||
namespace App\DataFixtures;
|
||||
|
||||
use App\Entity\MemberCase;
|
||||
use App\Entity\Referral;
|
||||
use App\Entity\StandardNote;
|
||||
use App\Entity\VisitNote;
|
||||
use App\Enums\NoteLocation;
|
||||
use App\Enums\NoteMethod;
|
||||
use App\Enums\NoteStatus;
|
||||
use App\Enums\ReferralServiceType;
|
||||
use App\Enums\VisitQualityLevel;
|
||||
use App\Entity\Case\MemberCase;;
|
||||
use App\Entity\Case\Referral;
|
||||
use App\Entity\Case\StandardNote;
|
||||
use App\Entity\Case\VisitNote;
|
||||
use App\Enums\Case\NoteLocation;
|
||||
use App\Enums\Case\NoteMethod;
|
||||
use App\Enums\Case\NoteStatus;
|
||||
use App\Enums\Case\ReferralServiceType;
|
||||
use App\Enums\Case\VisitQualityLevel;
|
||||
use Doctrine\Bundle\FixturesBundle\Fixture;
|
||||
use Doctrine\Common\DataFixtures\DependentFixtureInterface;
|
||||
use Doctrine\Persistence\ObjectManager;
|
||||
|
@ -2,9 +2,9 @@
|
||||
|
||||
namespace App\DataFixtures;
|
||||
|
||||
use App\Entity\MemberCase;
|
||||
use App\Entity\Referral;
|
||||
use App\Enums\ReferralServiceType;
|
||||
use App\Entity\Case\MemberCase;;
|
||||
use App\Entity\Case\Referral;
|
||||
use App\Enums\Case\ReferralServiceType;
|
||||
use Doctrine\Bundle\FixturesBundle\Fixture;
|
||||
use Doctrine\Common\DataFixtures\DependentFixtureInterface;
|
||||
use Doctrine\Persistence\ObjectManager;
|
||||
|
@ -2,8 +2,8 @@
|
||||
|
||||
namespace App\DataFixtures;
|
||||
|
||||
use App\Entity\ReferralSource;
|
||||
use App\Enums\County;
|
||||
use App\Entity\System\ReferralSource;
|
||||
use App\Enums\System\County;
|
||||
use Doctrine\Bundle\FixturesBundle\Fixture;
|
||||
use Doctrine\Persistence\ObjectManager;
|
||||
use Faker\Factory;
|
||||
|
@ -2,9 +2,9 @@
|
||||
|
||||
namespace App\DataFixtures;
|
||||
|
||||
use App\Entity\MemberCase;
|
||||
use App\Entity\StaffNote;
|
||||
use App\Enums\ReferralServiceType;
|
||||
use App\Entity\Case\MemberCase;;
|
||||
use App\Entity\Staff\StaffNote;
|
||||
use App\Enums\Case\ReferralServiceType;
|
||||
use DateTime;
|
||||
use DateTimeZone;
|
||||
use Doctrine\Bundle\FixturesBundle\Fixture;
|
||||
|
@ -2,10 +2,10 @@
|
||||
|
||||
namespace App\DataFixtures;
|
||||
|
||||
use App\Entity\Company;
|
||||
use App\Entity\User;
|
||||
use App\Enums\CaseLevel;
|
||||
use App\Enums\RateType;
|
||||
use App\Entity\Company\Company;
|
||||
use App\Entity\System\User;
|
||||
use App\Enums\Case\CaseLevel;
|
||||
use App\Enums\System\RateType;
|
||||
use Doctrine\Bundle\FixturesBundle\Fixture;
|
||||
use Doctrine\Persistence\ObjectManager;
|
||||
use Symfony\Component\PasswordHasher\Hasher\UserPasswordHasherInterface;
|
||||
@ -47,10 +47,6 @@ class UserFixture extends Fixture
|
||||
$user->setName($name)
|
||||
->setUsername($username)
|
||||
->setEmail($username.'@counselingpartnersllc.com')
|
||||
->setCaseManager($cm)
|
||||
->setCaseWorker($cw)
|
||||
->setTherapist($t)
|
||||
->setSu($su)
|
||||
->setRoles($roles)
|
||||
->setRateType($gen->randomElement(RateType::class))
|
||||
->setRate($gen->numberBetween(0, 100))
|
||||
|
@ -1,8 +1,10 @@
|
||||
<?php
|
||||
|
||||
namespace App\Entity;
|
||||
namespace App\Entity\Case;
|
||||
|
||||
use App\Repository\CaseItineraryRepository;
|
||||
use App\Entity\System\Location;
|
||||
use App\Repository\Case\CaseItineraryRepository;
|
||||
use DateTime;
|
||||
use DateInterval;
|
||||
use Doctrine\DBAL\Types\Types;
|
||||
use Doctrine\ORM\Mapping as ORM;
|
||||
@ -19,6 +21,9 @@ class CaseItinerary
|
||||
#[ORM\CustomIdGenerator(class: 'doctrine.uuid_generator')]
|
||||
private ?Uuid $id = null;
|
||||
|
||||
#[ORM\Column(type: Types::DATE_MUTABLE)]
|
||||
private ?\DateTimeInterface $date = null;
|
||||
|
||||
#[ORM\Column(type: Types::TIME_MUTABLE, nullable: true)]
|
||||
private ?\DateTimeInterface $departure = null;
|
||||
|
||||
@ -26,9 +31,6 @@ class CaseItinerary
|
||||
#[ORM\JoinColumn(nullable: false)]
|
||||
private ?Location $originLocation = null;
|
||||
|
||||
#[ORM\Column(type: Types::TIME_MUTABLE, nullable: true)]
|
||||
private ?\DateTimeInterface $arrival = null;
|
||||
|
||||
#[ORM\ManyToOne]
|
||||
#[ORM\JoinColumn(nullable: false)]
|
||||
private ?Location $destLocation = null;
|
||||
@ -43,9 +45,6 @@ class CaseItinerary
|
||||
#[ORM\JoinColumn(nullable: false)]
|
||||
private ?MemberCase $memberCase = null;
|
||||
|
||||
#[ORM\Column(type: Types::DATE_MUTABLE)]
|
||||
private ?\DateTimeInterface $date = null;
|
||||
|
||||
#[ORM\Column(nullable: true)]
|
||||
private ?float $distance = null;
|
||||
|
||||
@ -81,18 +80,6 @@ class CaseItinerary
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function getArrival(): ?\DateTimeInterface
|
||||
{
|
||||
return $this->arrival;
|
||||
}
|
||||
|
||||
public function setArrival(?\DateTimeInterface $arrival): static
|
||||
{
|
||||
$this->arrival = $arrival;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function getDestLocation(): ?Location
|
||||
{
|
||||
return $this->destLocation;
|
||||
@ -132,7 +119,7 @@ class CaseItinerary
|
||||
|
||||
public function calcDuration()
|
||||
{
|
||||
$this->duration = $this->departure - $this->arrival;
|
||||
//$this->duration = $this->departure - $this->arrival;
|
||||
}
|
||||
|
||||
public function getMemberCase(): ?MemberCase
|
||||
@ -203,10 +190,13 @@ class CaseItinerary
|
||||
|
||||
public function destinationInfoWindow(): string
|
||||
{
|
||||
/** @var DateTime $arrival */
|
||||
$arrival = $this->departure;
|
||||
$arrival->add($this->duration);
|
||||
return <<<EOL
|
||||
{$this->destLocation->getName()}<br/>
|
||||
<a href='http://maps.google.com/?q={$this->destLocation->getLat()},{$this->destLocation->getLon()}'>{$this->destLocation->getFormattedAddress()}</a><br/>
|
||||
{$this->arrival->format("g:i a")}
|
||||
{$arrival->format("g:i a")}
|
||||
EOL;
|
||||
}
|
||||
}
|
@ -1,8 +1,9 @@
|
||||
<?php
|
||||
|
||||
namespace App\Entity;
|
||||
namespace App\Entity\Case;
|
||||
|
||||
use App\Repository\CaseLocationRepository;
|
||||
use App\Entity\System\Location;
|
||||
use App\Repository\Case\CaseLocationRepository;
|
||||
use Doctrine\ORM\Mapping as ORM;
|
||||
use Symfony\Bridge\Doctrine\Types\UuidType;
|
||||
use Symfony\Component\Uid\Uuid;
|
@ -1,11 +1,11 @@
|
||||
<?php
|
||||
|
||||
namespace App\Entity;
|
||||
namespace App\Entity\Case;
|
||||
|
||||
use App\Enums\GenderType;
|
||||
use App\Enums\RaceType;
|
||||
use App\Enums\RelationshipType;
|
||||
use App\Repository\MemberRepository;
|
||||
use App\Enums\System\GenderType;
|
||||
use App\Enums\Case\RaceType;
|
||||
use App\Enums\Case\RelationshipType;
|
||||
use App\Repository\Case\MemberRepository;
|
||||
use Doctrine\DBAL\Types\Types;
|
||||
use Doctrine\ORM\Mapping as ORM;
|
||||
use Symfony\Bridge\Doctrine\Types\UuidType;
|
@ -1,11 +1,14 @@
|
||||
<?php
|
||||
|
||||
namespace App\Entity;
|
||||
namespace App\Entity\Case;
|
||||
|
||||
use App\Enums\CaseLevel;
|
||||
use App\Enums\County;
|
||||
use App\Entity\Staff\StaffNote;
|
||||
use App\Entity\System\ReferralSource;
|
||||
use App\Entity\System\UserCase;
|
||||
use App\Enums\Case\CaseLevel;
|
||||
use App\Enums\System\County;
|
||||
use App\Enums\Case\ReferralType;
|
||||
use App\Repository\MemberCaseRepository;
|
||||
use App\Repository\Case\MemberCaseRepository;
|
||||
use Doctrine\Common\Collections\ArrayCollection;
|
||||
use Doctrine\Common\Collections\Collection;
|
||||
use Doctrine\DBAL\Types\Types;
|
||||
@ -506,4 +509,10 @@ class MemberCase
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function emptyStaffNotes(): static
|
||||
{
|
||||
$this->staffNotes->clear();
|
||||
return $this;
|
||||
}
|
||||
}
|
@ -1,8 +1,10 @@
|
||||
<?php
|
||||
|
||||
namespace App\Entity;
|
||||
namespace App\Entity\Case;
|
||||
|
||||
use App\Repository\MemberDocumentRepository;
|
||||
use App\Entity\Company\CompanyDocument;
|
||||
use App\Entity\System\User;
|
||||
use App\Repository\Case\MemberDocumentRepository;
|
||||
use Doctrine\DBAL\Types\Types;
|
||||
use Doctrine\ORM\Mapping as ORM;
|
||||
use Symfony\Bridge\Doctrine\Types\UuidType;
|
||||
@ -41,6 +43,9 @@ class MemberDocument
|
||||
#[ORM\Column(nullable: true)]
|
||||
private ?array $workerSignature = null;
|
||||
|
||||
#[ORM\Column(type: Types::TEXT, nullable: true)]
|
||||
private ?string $docData = null;
|
||||
|
||||
public function getId(): ?Uuid
|
||||
{
|
||||
return $this->id;
|
||||
@ -129,4 +134,16 @@ class MemberDocument
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function getDocData(): ?string
|
||||
{
|
||||
return $this->docData;
|
||||
}
|
||||
|
||||
public function setDocData(?string $docData): static
|
||||
{
|
||||
$this->docData = $docData;
|
||||
|
||||
return $this;
|
||||
}
|
||||
}
|
115
src/Entity/Case/MonthlyCaseNote.php
Normal file
115
src/Entity/Case/MonthlyCaseNote.php
Normal file
@ -0,0 +1,115 @@
|
||||
<?php
|
||||
|
||||
namespace App\Entity\Case;
|
||||
|
||||
use App\Repository\Case\MonthlyCaseNoteRepository;
|
||||
use Doctrine\DBAL\Types\Types;
|
||||
use Doctrine\ORM\Mapping as ORM;
|
||||
use Symfony\Bridge\Doctrine\Types\UuidType;
|
||||
use Symfony\Component\Uid\Uuid;
|
||||
|
||||
#[ORM\Entity(repositoryClass: MonthlyCaseNoteRepository::class)]
|
||||
class MonthlyCaseNote
|
||||
{
|
||||
#[ORM\Id]
|
||||
#[ORM\Column(type: UuidType::NAME, unique: true)]
|
||||
#[ORM\GeneratedValue(strategy: 'CUSTOM')]
|
||||
#[ORM\CustomIdGenerator(class: 'doctrine.uuid_generator')]
|
||||
private ?Uuid $id = null;
|
||||
|
||||
#[ORM\Column(type: Types::TEXT, nullable: true)]
|
||||
private ?string $reason = null;
|
||||
|
||||
#[ORM\Column(type: Types::TEXT, nullable: true)]
|
||||
private ?string $familyStrength = null;
|
||||
|
||||
#[ORM\Column(type: Types::TEXT, nullable: true)]
|
||||
private ?string $recAndProgress = null;
|
||||
|
||||
#[ORM\ManyToOne(inversedBy: 'monthlyCaseNotes')]
|
||||
#[ORM\JoinColumn(nullable: false)]
|
||||
private ?MemberCase $memberCase = null;
|
||||
|
||||
#[ORM\Column(type: Types::DATE_MUTABLE)]
|
||||
private ?\DateTimeInterface $date = null;
|
||||
|
||||
#[ORM\Column(type: Types::DATE_MUTABLE)]
|
||||
private ?\DateTimeInterface $nextVisit = null;
|
||||
|
||||
public function getId(): ?Uuid
|
||||
{
|
||||
return $this->id;
|
||||
}
|
||||
|
||||
public function getReason(): ?string
|
||||
{
|
||||
return $this->reason;
|
||||
}
|
||||
|
||||
public function setReason(?string $reason): static
|
||||
{
|
||||
$this->reason = $reason;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function getFamilyStrength(): ?string
|
||||
{
|
||||
return $this->familyStrength;
|
||||
}
|
||||
|
||||
public function setFamilyStrength(?string $familyStrength): static
|
||||
{
|
||||
$this->familyStrength = $familyStrength;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function getRecAndProgress(): ?string
|
||||
{
|
||||
return $this->recAndProgress;
|
||||
}
|
||||
|
||||
public function setRecAndProgress(?string $recAndProgress): static
|
||||
{
|
||||
$this->recAndProgress = $recAndProgress;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function getMemberCase(): ?MemberCase
|
||||
{
|
||||
return $this->memberCase;
|
||||
}
|
||||
|
||||
public function setMemberCase(?MemberCase $memberCase): static
|
||||
{
|
||||
$this->memberCase = $memberCase;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function getDate(): ?\DateTimeInterface
|
||||
{
|
||||
return $this->date;
|
||||
}
|
||||
|
||||
public function setDate(\DateTimeInterface $date): static
|
||||
{
|
||||
$this->date = $date;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function getNextVisit(): ?\DateTimeInterface
|
||||
{
|
||||
return $this->nextVisit;
|
||||
}
|
||||
|
||||
public function setNextVisit(\DateTimeInterface $nextVisit): static
|
||||
{
|
||||
$this->nextVisit = $nextVisit;
|
||||
|
||||
return $this;
|
||||
}
|
||||
}
|
@ -1,11 +1,11 @@
|
||||
<?php
|
||||
|
||||
namespace App\Entity;
|
||||
namespace App\Entity\Case;
|
||||
|
||||
use App\Enums\NoteLocation;
|
||||
use App\Enums\NoteMethod;
|
||||
use App\Enums\NoteStatus;
|
||||
use App\Repository\NoteRepository;
|
||||
use App\Enums\Case\NoteLocation;
|
||||
use App\Enums\Case\NoteMethod;
|
||||
use App\Enums\Case\NoteStatus;
|
||||
use App\Repository\Case\NoteRepository;
|
||||
use Doctrine\DBAL\Types\Types;
|
||||
use Doctrine\ORM\Mapping as ORM;
|
||||
use Doctrine\ORM\Mapping\MappedSuperclass;
|
@ -1,12 +1,10 @@
|
||||
<?php
|
||||
|
||||
namespace App\Entity;
|
||||
namespace App\Entity\Case;
|
||||
|
||||
use App\Enums\DischargeReason;
|
||||
use App\Enums\ReferralServiceType;
|
||||
use App\Repository\ReferralRepository;
|
||||
use Doctrine\Common\Collections\ArrayCollection;
|
||||
use Doctrine\Common\Collections\Collection;
|
||||
use App\Enums\Case\DischargeReason;
|
||||
use App\Enums\Case\ReferralServiceType;
|
||||
use App\Repository\Case\ReferralRepository;
|
||||
use Doctrine\DBAL\Types\Types;
|
||||
use Doctrine\ORM\Mapping as ORM;
|
||||
use Symfony\Bridge\Doctrine\Types\UuidType;
|
@ -1,9 +1,9 @@
|
||||
<?php
|
||||
|
||||
namespace App\Entity;
|
||||
namespace App\Entity\Case;
|
||||
|
||||
use App\Enums\ReferralServiceType;
|
||||
use App\Repository\StandardNoteRepository;
|
||||
use App\Enums\Case\ReferralServiceType;
|
||||
use App\Repository\Case\StandardNoteRepository;
|
||||
use Doctrine\DBAL\Types\Types;
|
||||
use Doctrine\ORM\Mapping as ORM;
|
||||
use JsonSerializable;
|
@ -1,8 +1,8 @@
|
||||
<?php
|
||||
|
||||
namespace App\Entity;
|
||||
namespace App\Entity\Case;
|
||||
|
||||
use App\Repository\StandardNoteMemberRepository;
|
||||
use App\Repository\Case\StandardNoteMemberRepository;
|
||||
use Doctrine\ORM\Mapping as ORM;
|
||||
use Symfony\Bridge\Doctrine\Types\UuidType;
|
||||
use Symfony\Component\Uid\Uuid;
|
@ -1,10 +1,10 @@
|
||||
<?php
|
||||
|
||||
namespace App\Entity;
|
||||
namespace App\Entity\Case;
|
||||
|
||||
use App\Enums\ReferralServiceType;
|
||||
use App\Enums\VisitQualityLevel;
|
||||
use App\Repository\VisitNoteRepository;
|
||||
use App\Enums\Case\ReferralServiceType;
|
||||
use App\Enums\Case\VisitQualityLevel;
|
||||
use App\Repository\Case\VisitNoteRepository;
|
||||
use Doctrine\DBAL\Types\Types;
|
||||
use Doctrine\ORM\Mapping as ORM;
|
||||
use JsonSerializable;
|
@ -1,8 +1,8 @@
|
||||
<?php
|
||||
|
||||
namespace App\Entity;
|
||||
namespace App\Entity\Case;
|
||||
|
||||
use App\Repository\VisitNoteMembersRepository;
|
||||
use App\Repository\Case\VisitNoteMembersRepository;
|
||||
use Doctrine\ORM\Mapping as ORM;
|
||||
use Symfony\Bridge\Doctrine\Types\UuidType;
|
||||
use Symfony\Component\Uid\Uuid;
|
@ -1,8 +1,9 @@
|
||||
<?php
|
||||
|
||||
namespace App\Entity;
|
||||
namespace App\Entity\Company;
|
||||
|
||||
use App\Repository\CompanyRepository;
|
||||
use App\Entity\System\User;
|
||||
use App\Repository\Company\CompanyRepository;
|
||||
use Doctrine\Common\Collections\ArrayCollection;
|
||||
use Doctrine\Common\Collections\Collection;
|
||||
use Doctrine\DBAL\Types\Types;
|
@ -1,9 +1,9 @@
|
||||
<?php
|
||||
|
||||
namespace App\Entity;
|
||||
namespace App\Entity\Company;
|
||||
|
||||
use App\Enums\DocumentExtras;
|
||||
use App\Repository\CompanyDocumentRepository;
|
||||
use App\Enums\Company\DocumentExtras;
|
||||
use App\Repository\Company\CompanyDocumentRepository;
|
||||
use Doctrine\DBAL\Types\Types;
|
||||
use Doctrine\ORM\Mapping as ORM;
|
||||
use Symfony\Bridge\Doctrine\Types\UuidType;
|
@ -1,12 +1,13 @@
|
||||
<?php
|
||||
|
||||
namespace App\Entity;
|
||||
namespace App\Entity\Resources;
|
||||
|
||||
use App\Enums\County;
|
||||
use App\Enums\ResourceType;
|
||||
use App\Enums\State;
|
||||
use App\Entity\System\Location;
|
||||
use App\Enums\System\County;
|
||||
use App\Enums\Case\ResourceType;
|
||||
use App\Enums\System\State;
|
||||
use App\Libs\Libs;
|
||||
use App\Repository\CommunityResourceRepository;
|
||||
use App\Repository\Resources\CommunityResourceRepository;
|
||||
use DateTime;
|
||||
use DateTimeZone;
|
||||
use Doctrine\DBAL\Types\Types;
|
@ -1,9 +1,10 @@
|
||||
<?php
|
||||
|
||||
namespace App\Entity;
|
||||
namespace App\Entity\Staff;
|
||||
|
||||
use App\Enums\ReferralServiceType;
|
||||
use App\Repository\StaffNoteRepository;
|
||||
use App\Entity\Case\MemberCase;
|
||||
use App\Enums\Case\ReferralServiceType;
|
||||
use App\Repository\Staff\StaffNoteRepository;
|
||||
use Doctrine\DBAL\Types\Types;
|
||||
use Doctrine\ORM\Mapping as ORM;
|
||||
|
@ -1,8 +1,9 @@
|
||||
<?php
|
||||
|
||||
namespace App\Entity;
|
||||
namespace App\Entity\Staff;
|
||||
|
||||
use App\Repository\SupervisionRepository;
|
||||
use App\Entity\System\User;
|
||||
use App\Repository\Staff\SupervisionRepository;
|
||||
use Doctrine\ORM\Mapping as ORM;
|
||||
use Symfony\Bridge\Doctrine\Types\UuidType;
|
||||
use Symfony\Component\Uid\Uuid;
|
@ -1,9 +1,9 @@
|
||||
<?php
|
||||
|
||||
namespace App\Entity;
|
||||
namespace App\Entity\System;
|
||||
|
||||
use App\Enums\State;
|
||||
use App\Repository\LocationRepository;
|
||||
use App\Enums\System\State;
|
||||
use App\Repository\System\LocationRepository;
|
||||
use Doctrine\DBAL\Types\Types;
|
||||
use Doctrine\ORM\Mapping as ORM;
|
||||
use Symfony\Bridge\Doctrine\Types\UuidType;
|
@ -1,9 +1,9 @@
|
||||
<?php
|
||||
|
||||
namespace App\Entity;
|
||||
namespace App\Entity\System;
|
||||
|
||||
use App\Enums\MessageType;
|
||||
use App\Repository\MessagesRepository;
|
||||
use App\Enums\System\MessageType;
|
||||
use App\Repository\System\MessagesRepository;
|
||||
use Doctrine\DBAL\Types\Types;
|
||||
use Doctrine\ORM\Mapping as ORM;
|
||||
use Symfony\Bridge\Doctrine\Types\UuidType;
|
@ -1,8 +1,8 @@
|
||||
<?php
|
||||
|
||||
namespace App\Entity;
|
||||
namespace App\Entity\System;
|
||||
|
||||
use App\Repository\ReferralSourceRepository;
|
||||
use App\Repository\System\ReferralSourceRepository;
|
||||
use Doctrine\ORM\Mapping as ORM;
|
||||
use Symfony\Bridge\Doctrine\Types\UuidType;
|
||||
use Symfony\Component\Uid\Uuid;
|
86
src/Entity/System/Subscription.php
Normal file
86
src/Entity/System/Subscription.php
Normal file
@ -0,0 +1,86 @@
|
||||
<?php
|
||||
|
||||
namespace App\Entity\System;
|
||||
|
||||
use App\Enums\System\UserSubscriptions;
|
||||
use App\Repository\System\SubscriptionRepository;
|
||||
use Doctrine\DBAL\Types\Types;
|
||||
use Doctrine\ORM\Mapping as ORM;
|
||||
use Symfony\Bridge\Doctrine\Types\UuidType;
|
||||
use Symfony\Component\Uid\Uuid;
|
||||
|
||||
#[ORM\Entity(repositoryClass: SubscriptionRepository::class)]
|
||||
class Subscription
|
||||
{
|
||||
#[ORM\Id]
|
||||
#[ORM\Column(type: UuidType::NAME, unique: true)]
|
||||
#[ORM\GeneratedValue(strategy: 'CUSTOM')]
|
||||
#[ORM\CustomIdGenerator(class: 'doctrine.uuid_generator')]
|
||||
private ?Uuid $id = null;
|
||||
|
||||
#[ORM\ManyToOne(inversedBy: 'subscriptions')]
|
||||
#[ORM\JoinColumn(nullable: false)]
|
||||
private ?User $user = null;
|
||||
|
||||
#[ORM\Column]
|
||||
private ?bool $active = null;
|
||||
|
||||
#[ORM\Column(type: Types::DATE_MUTABLE)]
|
||||
private ?\DateTimeInterface $expiration = null;
|
||||
|
||||
#[ORM\Column(enumType: UserSubscriptions::class)]
|
||||
private ?UserSubscriptions $level = null;
|
||||
|
||||
public function getId(): ?Uuid
|
||||
{
|
||||
return $this->id;
|
||||
}
|
||||
|
||||
public function getUser(): ?User
|
||||
{
|
||||
return $this->user;
|
||||
}
|
||||
|
||||
public function setUser(?User $user): static
|
||||
{
|
||||
$this->user = $user;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function isActive(): ?bool
|
||||
{
|
||||
return $this->active;
|
||||
}
|
||||
|
||||
public function setActive(bool $active): static
|
||||
{
|
||||
$this->active = $active;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function getExpiration(): ?\DateTimeInterface
|
||||
{
|
||||
return $this->expiration;
|
||||
}
|
||||
|
||||
public function setExpiration(\DateTimeInterface $expiration): static
|
||||
{
|
||||
$this->expiration = $expiration;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function getLevel(): ?UserSubscriptions
|
||||
{
|
||||
return $this->level;
|
||||
}
|
||||
|
||||
public function setLevel(UserSubscriptions $level): static
|
||||
{
|
||||
$this->level = $level;
|
||||
|
||||
return $this;
|
||||
}
|
||||
}
|
@ -1,10 +1,11 @@
|
||||
<?php
|
||||
|
||||
namespace App\Entity;
|
||||
namespace App\Entity\System;
|
||||
|
||||
use App\Repository\UserRepository;
|
||||
use App\Enums\RateType;
|
||||
use App\Enums\CaseLevel;
|
||||
use App\Entity\Company\Company;
|
||||
use App\Repository\System\UserRepository;
|
||||
use App\Enums\System\RateType;
|
||||
use App\Enums\Case\CaseLevel;
|
||||
use Doctrine\Common\Collections\ArrayCollection;
|
||||
use Doctrine\Common\Collections\Collection;
|
||||
use Doctrine\DBAL\Types\Types;
|
||||
@ -95,9 +96,16 @@ class User implements UserInterface, PasswordAuthenticatedUserInterface
|
||||
|
||||
private ?User $supervisor = null;
|
||||
|
||||
/**
|
||||
* @var Collection<int, Subscription>
|
||||
*/
|
||||
#[ORM\OneToMany(targetEntity: Subscription::class, mappedBy: 'user', orphanRemoval: true)]
|
||||
private Collection $subscriptions;
|
||||
|
||||
public function __construct()
|
||||
{
|
||||
$this->userCases = new ArrayCollection();
|
||||
$this->subscriptions = new ArrayCollection();
|
||||
}
|
||||
|
||||
public function getId(): ?Uuid
|
||||
@ -441,4 +449,34 @@ class User implements UserInterface, PasswordAuthenticatedUserInterface
|
||||
($this->imageName ? "\nPHOTO;TYPE={$fileExt};ENCODING=b:{$b64image}" : null) .
|
||||
"\nEND:VCARD";
|
||||
}
|
||||
|
||||
/**
|
||||
* @return Collection<int, Subscription>
|
||||
*/
|
||||
public function getSubscriptions(): Collection
|
||||
{
|
||||
return $this->subscriptions;
|
||||
}
|
||||
|
||||
public function addSubscription(Subscription $subscription): static
|
||||
{
|
||||
if (!$this->subscriptions->contains($subscription)) {
|
||||
$this->subscriptions->add($subscription);
|
||||
$subscription->setUser($this);
|
||||
}
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function removeSubscription(Subscription $subscription): static
|
||||
{
|
||||
if ($this->subscriptions->removeElement($subscription)) {
|
||||
// set the owning side to null (unless already changed)
|
||||
if ($subscription->getUser() === $this) {
|
||||
$subscription->setUser(null);
|
||||
}
|
||||
}
|
||||
|
||||
return $this;
|
||||
}
|
||||
}
|
@ -1,9 +1,9 @@
|
||||
<?php
|
||||
|
||||
namespace App\Entity;
|
||||
namespace App\Entity\System;
|
||||
|
||||
use App\Enums\CaseLevel;
|
||||
use App\Repository\UserCaseRepository;
|
||||
use App\Entity\Case\MemberCase;
|
||||
use App\Repository\System\UserCaseRepository;
|
||||
use Doctrine\ORM\Mapping as ORM;
|
||||
|
||||
#[ORM\Entity(repositoryClass: UserCaseRepository::class)]
|
@ -1,6 +1,6 @@
|
||||
<?php
|
||||
|
||||
namespace App\Enums;
|
||||
namespace App\Enums\Case;
|
||||
|
||||
enum CaseLevel: int
|
||||
{
|
@ -1,6 +1,6 @@
|
||||
<?php
|
||||
|
||||
namespace App\Enums;
|
||||
namespace App\Enums\Case;
|
||||
|
||||
enum DischargeReason: string
|
||||
{
|
@ -1,6 +1,6 @@
|
||||
<?php
|
||||
|
||||
namespace App\Enums;
|
||||
namespace App\Enums\Case;
|
||||
|
||||
enum NoteLocation: string
|
||||
{
|
@ -1,6 +1,6 @@
|
||||
<?php
|
||||
|
||||
namespace App\Enums;
|
||||
namespace App\Enums\Case;
|
||||
|
||||
enum NoteMethod: int
|
||||
{
|
@ -1,6 +1,6 @@
|
||||
<?php
|
||||
|
||||
namespace App\Enums;
|
||||
namespace App\Enums\Case;
|
||||
|
||||
enum NoteStatus: string
|
||||
{
|
@ -1,6 +1,6 @@
|
||||
<?php
|
||||
|
||||
namespace App\Enums;
|
||||
namespace App\Enums\Case;
|
||||
|
||||
enum RaceType: string
|
||||
{
|
@ -1,10 +1,11 @@
|
||||
<?php
|
||||
|
||||
namespace App\Enums;
|
||||
namespace App\Enums\Case;
|
||||
|
||||
enum ReferralServiceType: string
|
||||
{
|
||||
case FE_FF = 'FE-FF';
|
||||
case VS_THBB = 'VS-THBB';
|
||||
case VS_THBBT = 'VS-THBBT';
|
||||
case VS_THBBCT = 'VS-THBBCT';
|
||||
}
|
@ -1,6 +1,6 @@
|
||||
<?php
|
||||
|
||||
namespace App\Enums;
|
||||
namespace App\Enums\Case;
|
||||
|
||||
enum RelationshipType: string
|
||||
{
|
@ -1,6 +1,6 @@
|
||||
<?php
|
||||
|
||||
namespace App\Enums;
|
||||
namespace App\Enums\Case;
|
||||
|
||||
enum ResourceType: int
|
||||
{
|
||||
@ -9,4 +9,5 @@ enum ResourceType: int
|
||||
case JOB_OPENINGS = 2;
|
||||
case HOUSING = 3;
|
||||
case PARENT_SUPPORT = 4;
|
||||
case PLAY_AREA = 5;
|
||||
}
|
@ -1,6 +1,6 @@
|
||||
<?php
|
||||
|
||||
namespace App\Enums;
|
||||
namespace App\Enums\Case;
|
||||
|
||||
enum VisitQualityLevel: int
|
||||
{
|
@ -1,6 +1,6 @@
|
||||
<?php
|
||||
|
||||
namespace App\Enums;
|
||||
namespace App\Enums\Company;
|
||||
|
||||
enum DocumentExtras: int
|
||||
{
|
@ -1,6 +1,6 @@
|
||||
<?php
|
||||
|
||||
namespace App\Enums;
|
||||
namespace App\Enums\System;
|
||||
|
||||
enum County: string
|
||||
{
|
@ -1,6 +1,6 @@
|
||||
<?php
|
||||
|
||||
namespace App\Enums;
|
||||
namespace App\Enums\System;
|
||||
|
||||
enum GenderType: string
|
||||
{
|
@ -1,6 +1,6 @@
|
||||
<?php
|
||||
|
||||
namespace App\Enums;
|
||||
namespace App\Enums\System;
|
||||
|
||||
enum JobType: string
|
||||
{
|
@ -1,6 +1,6 @@
|
||||
<?php
|
||||
|
||||
namespace App\Enums;
|
||||
namespace App\Enums\System;
|
||||
|
||||
enum MessageType: int
|
||||
{
|
@ -1,6 +1,6 @@
|
||||
<?php
|
||||
|
||||
namespace App\Enums;
|
||||
namespace App\Enums\System;
|
||||
|
||||
enum RateType: string
|
||||
{
|
@ -1,6 +1,6 @@
|
||||
<?php
|
||||
|
||||
namespace App\Enums;
|
||||
namespace App\Enums\System;
|
||||
|
||||
enum State: string
|
||||
{
|
10
src/Enums/System/UserSubscriptions.php
Normal file
10
src/Enums/System/UserSubscriptions.php
Normal file
@ -0,0 +1,10 @@
|
||||
<?php
|
||||
|
||||
namespace App\Enums\System;
|
||||
|
||||
enum UserSubscriptions: int
|
||||
{
|
||||
case Free = 0;
|
||||
case Basic = 1;
|
||||
case Pro = 2;
|
||||
}
|
@ -3,8 +3,8 @@
|
||||
namespace App\Factory;
|
||||
|
||||
use App\DataTransferObject\CompanyDetailsDto;
|
||||
use App\Entity\Company;
|
||||
use App\Entity\User;
|
||||
use App\Entity\Company\Company;
|
||||
use App\Entity\System\User;
|
||||
|
||||
final class CompanyFactory
|
||||
{
|
||||
|
@ -2,10 +2,10 @@
|
||||
|
||||
namespace App\Factory;
|
||||
|
||||
use App\Entity\MemberCase;
|
||||
use App\Entity\Messages;
|
||||
use App\Entity\User;
|
||||
use App\Enums\MessageType;
|
||||
use App\Entity\Case\MemberCase;;
|
||||
use App\Entity\System\Messages;
|
||||
use App\Entity\System\User;
|
||||
use App\Enums\System\MessageType;
|
||||
use DateTimeImmutable;
|
||||
|
||||
class MessageFactory
|
||||
|
@ -1,38 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace App\Form;
|
||||
|
||||
use App\Entity\CaseDocument;
|
||||
use App\Entity\CompanyDocument;
|
||||
use App\Entity\Member;
|
||||
use App\Entity\User;
|
||||
use Symfony\Bridge\Doctrine\Form\Type\EntityType;
|
||||
use Symfony\Component\Form\AbstractType;
|
||||
use Symfony\Component\Form\Extension\Core\Type\EnumType;
|
||||
use Symfony\Component\Form\FormBuilderInterface;
|
||||
use Symfony\Component\OptionsResolver\OptionsResolver;
|
||||
|
||||
class CaseDocumentFormType extends AbstractType
|
||||
{
|
||||
public function buildForm(FormBuilderInterface $builder, array $options): void
|
||||
{
|
||||
$docs = $options['docs'];
|
||||
$builder
|
||||
->add('document', EntityType::class, [
|
||||
'class' => CompanyDocument::class,
|
||||
'choices' => $docs,
|
||||
'multiple' => true,
|
||||
'expanded' => true,
|
||||
'choice_label' => 'title',
|
||||
])
|
||||
;
|
||||
}
|
||||
|
||||
public function configureOptions(OptionsResolver $resolver): void
|
||||
{
|
||||
$resolver->setDefaults([
|
||||
'data_class' => CaseDocument::class,
|
||||
'docs' => [],
|
||||
]);
|
||||
}
|
||||
}
|
@ -2,10 +2,8 @@
|
||||
|
||||
namespace App\Form;
|
||||
|
||||
use App\Enums\DocumentExtras;
|
||||
use App\Entity\Company;
|
||||
use App\Entity\CompanyDocument;
|
||||
use Symfony\Bridge\Doctrine\Form\Type\EntityType;
|
||||
use App\Enums\Company\DocumentExtras;
|
||||
use App\Entity\Company\CompanyDocument;
|
||||
use Symfony\Component\Form\Extension\Core\Type\EnumType;
|
||||
use Symfony\Component\Form\Extension\Core\Type\TextareaType;
|
||||
use Symfony\Component\Form\AbstractType;
|
||||
|
@ -2,10 +2,9 @@
|
||||
|
||||
namespace App\Form;
|
||||
|
||||
use App\Entity\User;
|
||||
use App\Enums\CaseLevel;
|
||||
use App\Enums\JobType;
|
||||
use App\Enums\RateType;
|
||||
use App\Entity\System\User;
|
||||
use App\Enums\Case\CaseLevel;
|
||||
use App\Enums\System\RateType;
|
||||
use Symfony\Component\Form\AbstractType;
|
||||
use Symfony\Component\Form\Extension\Core\Type\CheckboxType;
|
||||
use Symfony\Component\Form\Extension\Core\Type\EmailType;
|
||||
|
@ -2,7 +2,7 @@
|
||||
|
||||
namespace App\Form;
|
||||
|
||||
use App\Entity\Company;
|
||||
use App\Entity\Company\Company;
|
||||
use Symfony\Component\Form\AbstractType;
|
||||
use Symfony\Component\Form\Extension\Core\Type\EmailType;
|
||||
use Symfony\Component\Form\Extension\Core\Type\FileType;
|
||||
|
@ -2,10 +2,8 @@
|
||||
|
||||
namespace App\Form;
|
||||
|
||||
use App\Entity\Location;
|
||||
use App\Entity\MemberCase;
|
||||
use App\Enums\State;
|
||||
use Symfony\Bridge\Doctrine\Form\Type\EntityType;
|
||||
use App\Entity\System\Location;
|
||||
use App\Enums\System\State;
|
||||
use Symfony\Component\Form\AbstractType;
|
||||
use Symfony\Component\Form\Extension\Core\Type\EnumType;
|
||||
use Symfony\Component\Form\FormBuilderInterface;
|
||||
|
@ -2,10 +2,10 @@
|
||||
|
||||
namespace App\Form;
|
||||
|
||||
use App\Entity\MemberCase;
|
||||
use App\Entity\ReferralSource;
|
||||
use App\Enums\CaseLevel;
|
||||
use App\Enums\County;
|
||||
use App\Entity\Case\MemberCase;;
|
||||
use App\Entity\System\ReferralSource;
|
||||
use App\Enums\Case\CaseLevel;
|
||||
use App\Enums\System\County;
|
||||
use App\Enums\Case\ReferralType;
|
||||
use Symfony\Bridge\Doctrine\Form\Type\EntityType;
|
||||
use Symfony\Component\Form\AbstractType;
|
||||
|
@ -2,11 +2,11 @@
|
||||
|
||||
namespace App\Form;
|
||||
|
||||
use App\Entity\CompanyDocument;
|
||||
use App\Entity\Member;
|
||||
use App\Enums\GenderType;
|
||||
use App\Enums\RaceType;
|
||||
use App\Enums\RelationshipType;
|
||||
use App\Entity\Company\CompanyDocument;
|
||||
use App\Entity\Case\Member;
|
||||
use App\Enums\System\GenderType;
|
||||
use App\Enums\Case\RaceType;
|
||||
use App\Enums\Case\RelationshipType;
|
||||
use Symfony\Bridge\Doctrine\Form\Type\EntityType;
|
||||
use Symfony\Component\Form\AbstractType;
|
||||
use Symfony\Component\Form\Extension\Core\Type\CheckboxType;
|
||||
|
@ -2,11 +2,9 @@
|
||||
|
||||
namespace App\Form;
|
||||
|
||||
use App\Entity\MemberCase;
|
||||
use App\Entity\Referral;
|
||||
use App\Enums\DischargeReason;
|
||||
use App\Enums\ReferralServiceType;
|
||||
use Symfony\Bridge\Doctrine\Form\Type\EntityType;
|
||||
use App\Entity\Case\Referral;
|
||||
use App\Enums\Case\DischargeReason;
|
||||
use App\Enums\Case\ReferralServiceType;
|
||||
use Symfony\Component\Form\AbstractType;
|
||||
use Symfony\Component\Form\Extension\Core\Type\EnumType;
|
||||
use Symfony\Component\Form\FormBuilderInterface;
|
||||
|
@ -2,7 +2,7 @@
|
||||
|
||||
namespace App\Form;
|
||||
|
||||
use App\Entity\ReferralSource;
|
||||
use App\Entity\System\ReferralSource;
|
||||
use Symfony\Component\Form\AbstractType;
|
||||
use Symfony\Component\Form\FormBuilderInterface;
|
||||
use Symfony\Component\OptionsResolver\OptionsResolver;
|
||||
|
@ -2,7 +2,7 @@
|
||||
|
||||
namespace App\Form;
|
||||
|
||||
use App\Entity\User;
|
||||
use App\Entity\System\User;
|
||||
use Symfony\Component\Form\AbstractType;
|
||||
use Symfony\Component\Form\Extension\Core\Type\PasswordType;
|
||||
use Symfony\Component\Form\Extension\Core\Type\RepeatedType;
|
||||
|
@ -2,10 +2,10 @@
|
||||
|
||||
namespace App\Form;
|
||||
|
||||
use App\Entity\CommunityResource;
|
||||
use App\Enums\County;
|
||||
use App\Enums\ResourceType;
|
||||
use App\Enums\State;
|
||||
use App\Entity\Resources\CommunityResource;
|
||||
use App\Enums\Case\ResourceType;
|
||||
use App\Enums\System\County;
|
||||
use App\Enums\System\State;
|
||||
use Symfony\Component\Form\AbstractType;
|
||||
use Symfony\Component\Form\Extension\Core\Type\EmailType;
|
||||
use Symfony\Component\Form\Extension\Core\Type\EnumType;
|
||||
|
@ -2,9 +2,8 @@
|
||||
|
||||
namespace App\Form;
|
||||
|
||||
use App\Entity\Member;
|
||||
use App\Entity\StaffNote;
|
||||
use App\Enums\ReferralServiceType;
|
||||
use App\Entity\Staff\StaffNote;
|
||||
use App\Enums\Case\ReferralServiceType;
|
||||
use Symfony\Component\Form\AbstractType;
|
||||
use Symfony\Component\Form\Extension\Core\Type\EnumType;
|
||||
use Symfony\Component\Form\Extension\Core\Type\TextareaType;
|
||||
|
@ -2,12 +2,11 @@
|
||||
|
||||
namespace App\Form;
|
||||
|
||||
use App\Entity\Member;
|
||||
use App\Entity\Referral;
|
||||
use App\Entity\StandardNote;
|
||||
use App\Enums\NoteLocation;
|
||||
use App\Enums\NoteMethod;
|
||||
use App\Enums\NoteStatus;
|
||||
use App\Entity\Case\Member;
|
||||
use App\Entity\Case\StandardNote;
|
||||
use App\Enums\Case\NoteLocation;
|
||||
use App\Enums\Case\NoteMethod;
|
||||
use App\Enums\Case\NoteStatus;
|
||||
use Symfony\Bridge\Doctrine\Form\Type\EntityType;
|
||||
use Symfony\Component\Form\AbstractType;
|
||||
use Symfony\Component\Form\Extension\Core\Type\EnumType;
|
||||
|
@ -2,12 +2,10 @@
|
||||
|
||||
namespace App\Form;
|
||||
|
||||
use App\Entity\Supervision;
|
||||
use App\Entity\User;
|
||||
use Doctrine\ORM\Mapping\Entity;
|
||||
use App\Entity\Staff\Supervision;
|
||||
use App\Entity\System\User;
|
||||
use Symfony\Bridge\Doctrine\Form\Type\EntityType;
|
||||
use Symfony\Component\Form\AbstractType;
|
||||
use Symfony\Component\Form\Extension\Core\Type\ChoiceType;
|
||||
use Symfony\Component\Form\FormBuilderInterface;
|
||||
use Symfony\Component\OptionsResolver\OptionsResolver;
|
||||
|
||||
|
@ -2,10 +2,8 @@
|
||||
|
||||
namespace App\Form;
|
||||
|
||||
use App\Entity\MemberCase;
|
||||
use App\Entity\StaffNote;
|
||||
use App\Enums\ReferralServiceType;
|
||||
use Symfony\Bridge\Doctrine\Form\Type\EntityType;
|
||||
use App\Entity\Staff\StaffNote;
|
||||
use App\Enums\Case\ReferralServiceType;
|
||||
use Symfony\Component\Form\AbstractType;
|
||||
use Symfony\Component\Form\Extension\Core\Type\EnumType;
|
||||
use Symfony\Component\Form\Extension\Core\Type\TextareaType;
|
||||
|
@ -2,8 +2,8 @@
|
||||
|
||||
namespace App\Form;
|
||||
|
||||
use App\Entity\User;
|
||||
use App\Entity\UserCase;
|
||||
use App\Entity\System\User;
|
||||
use App\Entity\System\UserCase;
|
||||
use Symfony\Bridge\Doctrine\Form\Type\EntityType;
|
||||
use Symfony\Component\Form\AbstractType;
|
||||
use Symfony\Component\Form\Extension\Core\Type\CheckboxType;
|
||||
|
@ -2,10 +2,9 @@
|
||||
|
||||
namespace App\Form;
|
||||
|
||||
use App\Entity\User;
|
||||
use App\Enums\CaseLevel;
|
||||
use App\Enums\JobType;
|
||||
use App\Enums\RateType;
|
||||
use App\Entity\System\User;
|
||||
use App\Enums\Case\CaseLevel;
|
||||
use App\Enums\System\RateType;
|
||||
use Symfony\Component\Form\AbstractType;
|
||||
use Symfony\Component\Form\Extension\Core\Type\CheckboxType;
|
||||
use Symfony\Component\Form\Extension\Core\Type\EmailType;
|
||||
|
@ -2,12 +2,12 @@
|
||||
|
||||
namespace App\Form;
|
||||
|
||||
use App\Entity\Member;
|
||||
use App\Entity\VisitNote;
|
||||
use App\Enums\NoteLocation;
|
||||
use App\Enums\NoteMethod;
|
||||
use App\Enums\NoteStatus;
|
||||
use App\Enums\VisitQualityLevel;
|
||||
use App\Entity\Case\Member;
|
||||
use App\Entity\Case\VisitNote;
|
||||
use App\Enums\Case\NoteLocation;
|
||||
use App\Enums\Case\NoteMethod;
|
||||
use App\Enums\Case\NoteStatus;
|
||||
use App\Enums\Case\VisitQualityLevel;
|
||||
use Symfony\Bridge\Doctrine\Form\Type\EntityType;
|
||||
use Symfony\Component\Form\AbstractType;
|
||||
use Symfony\Component\Form\Extension\Core\Type\EnumType;
|
||||
|
@ -2,15 +2,14 @@
|
||||
|
||||
namespace App\Libs;
|
||||
|
||||
use App\Entity\Location;
|
||||
use App\Entity\MemberCase;
|
||||
use App\Entity\Messages;
|
||||
use App\Entity\Supervision;
|
||||
use App\Entity\User;
|
||||
use App\Entity\UserCase;
|
||||
use App\Entity\Case\MemberCase;
|
||||
use App\Entity\Staff\Supervision;
|
||||
use App\Entity\System\Location;
|
||||
use App\Entity\System\Messages;
|
||||
use App\Entity\System\User;
|
||||
use App\Entity\System\UserCase;
|
||||
use Doctrine\ORM\EntityManagerInterface;
|
||||
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
|
||||
use Symfony\Component\HttpFoundation\Response;
|
||||
|
||||
class Libs extends AbstractController
|
||||
{
|
||||
@ -69,27 +68,6 @@ class Libs extends AbstractController
|
||||
return null;
|
||||
}
|
||||
|
||||
#[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 AbstractController::json($result);
|
||||
}
|
||||
|
||||
public static function Phone(string $phone): string
|
||||
{
|
||||
$phone = preg_replace('/[^0-9]/', '', $phone);
|
||||
|
@ -1,11 +1,11 @@
|
||||
<?php
|
||||
|
||||
namespace App\Repository;
|
||||
namespace App\Repository\Case;
|
||||
|
||||
use App\Entity\CaseItinerary;
|
||||
use App\Entity\MemberCase;
|
||||
use App\Entity\User;
|
||||
use App\Entity\UserCase;
|
||||
use App\Entity\Case\CaseItinerary;
|
||||
use App\Entity\Case\MemberCase;;
|
||||
use App\Entity\System\User;
|
||||
use App\Entity\System\UserCase;
|
||||
use DateTime;
|
||||
use DateTimeZone;
|
||||
use Doctrine\Bundle\DoctrineBundle\Repository\ServiceEntityRepository;
|
||||
@ -42,7 +42,7 @@ class CaseItineraryRepository extends ServiceEntityRepository
|
||||
}
|
||||
|
||||
$query->orderBy('ci.date', 'DESC')
|
||||
->addOrderBy('ci.arrival', 'DESC');
|
||||
->addOrderBy('ci.departure', 'DESC');
|
||||
|
||||
//dd($query->getQuery());
|
||||
|
||||
@ -60,7 +60,7 @@ class CaseItineraryRepository extends ServiceEntityRepository
|
||||
->andWhere('ci.date >= :from')
|
||||
->setParameter('from', $startDate->format('Y-01-01'))
|
||||
->orderBy('ci.date', 'DESC')
|
||||
->addOrderBy('ci.arrival', 'DESC')
|
||||
->addOrderBy('ci.departure', 'DESC')
|
||||
;
|
||||
|
||||
return $query->getQuery()->getResult();
|
||||
@ -77,7 +77,7 @@ class CaseItineraryRepository extends ServiceEntityRepository
|
||||
->andWhere('ci.date >= :from')
|
||||
->setParameter('from', $startDate->modify('-30 days')->format('Y-m-d'))
|
||||
->orderBy('ci.date', 'DESC')
|
||||
->addOrderBy('ci.arrival', 'DESC')
|
||||
->addOrderBy('ci.departure', 'DESC')
|
||||
;
|
||||
|
||||
return $query->getQuery()->getResult();
|
@ -1,10 +1,10 @@
|
||||
<?php
|
||||
|
||||
namespace App\Repository;
|
||||
namespace App\Repository\Case;
|
||||
|
||||
use App\Entity\CaseLocation;
|
||||
use App\Entity\Location;
|
||||
use App\Entity\MemberCase;
|
||||
use App\Entity\Case\CaseLocation;
|
||||
use App\Entity\System\Location;
|
||||
use App\Entity\Case\MemberCase;;
|
||||
use Doctrine\Bundle\DoctrineBundle\Repository\ServiceEntityRepository;
|
||||
use Doctrine\Persistence\ManagerRegistry;
|
||||
|
@ -1,9 +1,9 @@
|
||||
<?php
|
||||
|
||||
namespace App\Repository;
|
||||
namespace App\Repository\Case;
|
||||
|
||||
use App\Entity\Company;
|
||||
use App\Entity\MemberCase;
|
||||
use App\Entity\Company\Company;
|
||||
use App\Entity\Case\MemberCase;;
|
||||
use Doctrine\Bundle\DoctrineBundle\Repository\ServiceEntityRepository;
|
||||
use Doctrine\Persistence\ManagerRegistry;
|
||||
|
@ -1,9 +1,9 @@
|
||||
<?php
|
||||
|
||||
namespace App\Repository;
|
||||
namespace App\Repository\Case;
|
||||
|
||||
use App\Entity\MemberDocument;
|
||||
use App\Entity\Member;
|
||||
use App\Entity\Case\MemberDocument;
|
||||
use App\Entity\Case\Member;
|
||||
use Doctrine\Bundle\DoctrineBundle\Repository\ServiceEntityRepository;
|
||||
use Doctrine\Persistence\ManagerRegistry;
|
||||
|
@ -1,9 +1,9 @@
|
||||
<?php
|
||||
|
||||
namespace App\Repository;
|
||||
namespace App\Repository\Case;
|
||||
|
||||
use App\Entity\Member;
|
||||
use App\Entity\MemberCase;
|
||||
use App\Entity\Case\Member;
|
||||
use App\Entity\Case\MemberCase;;
|
||||
use Doctrine\Bundle\DoctrineBundle\Repository\ServiceEntityRepository;
|
||||
use Doctrine\Persistence\ManagerRegistry;
|
||||
|
43
src/Repository/Case/MonthlyCaseNoteRepository.php
Normal file
43
src/Repository/Case/MonthlyCaseNoteRepository.php
Normal file
@ -0,0 +1,43 @@
|
||||
<?php
|
||||
|
||||
namespace App\Repository\Case;
|
||||
|
||||
use App\Entity\Case\MonthlyCaseNote;
|
||||
use Doctrine\Bundle\DoctrineBundle\Repository\ServiceEntityRepository;
|
||||
use Doctrine\Persistence\ManagerRegistry;
|
||||
|
||||
/**
|
||||
* @extends ServiceEntityRepository<MonthlyCaseNote>
|
||||
*/
|
||||
class MonthlyCaseNoteRepository extends ServiceEntityRepository
|
||||
{
|
||||
public function __construct(ManagerRegistry $registry)
|
||||
{
|
||||
parent::__construct($registry, MonthlyCaseNote::class);
|
||||
}
|
||||
|
||||
// /**
|
||||
// * @return MonthlyCaseNote[] Returns an array of MonthlyCaseNote objects
|
||||
// */
|
||||
// public function findByExampleField($value): array
|
||||
// {
|
||||
// return $this->createQueryBuilder('m')
|
||||
// ->andWhere('m.exampleField = :val')
|
||||
// ->setParameter('val', $value)
|
||||
// ->orderBy('m.id', 'ASC')
|
||||
// ->setMaxResults(10)
|
||||
// ->getQuery()
|
||||
// ->getResult()
|
||||
// ;
|
||||
// }
|
||||
|
||||
// public function findOneBySomeField($value): ?MonthlyCaseNote
|
||||
// {
|
||||
// return $this->createQueryBuilder('m')
|
||||
// ->andWhere('m.exampleField = :val')
|
||||
// ->setParameter('val', $value)
|
||||
// ->getQuery()
|
||||
// ->getOneOrNullResult()
|
||||
// ;
|
||||
// }
|
||||
}
|
@ -1,9 +1,9 @@
|
||||
<?php
|
||||
|
||||
namespace App\Repository;
|
||||
namespace App\Repository\Case;
|
||||
|
||||
use App\Entity\Note;
|
||||
use App\Entity\Referral;
|
||||
use App\Entity\Case\Note;
|
||||
use App\Entity\Case\Referral;
|
||||
use Doctrine\Bundle\DoctrineBundle\Repository\ServiceEntityRepository;
|
||||
use Doctrine\Persistence\ManagerRegistry;
|
||||
|
@ -1,10 +1,10 @@
|
||||
<?php
|
||||
|
||||
namespace App\Repository;
|
||||
namespace App\Repository\Case;
|
||||
|
||||
use App\Entity\MemberCase;
|
||||
use App\Entity\Referral;
|
||||
use App\Enums\ReferralServiceType;
|
||||
use App\Entity\Case\MemberCase;;
|
||||
use App\Entity\Case\Referral;
|
||||
use App\Enums\Case\ReferralServiceType;
|
||||
use Doctrine\Bundle\DoctrineBundle\Repository\ServiceEntityRepository;
|
||||
use Doctrine\Common\Collections\ArrayCollection;
|
||||
use Doctrine\Persistence\ManagerRegistry;
|
||||
@ -57,10 +57,10 @@ class ReferralRepository extends ServiceEntityRepository
|
||||
|
||||
public function populateNotes(Referral &$referral): void
|
||||
{
|
||||
$noteType = 'App\Entity\StandardNote';
|
||||
$noteType = 'App\Entity\Case\StandardNote';
|
||||
|
||||
if ($referral->getServiceCode() == ReferralServiceType::VS_THBB) {
|
||||
$noteType = 'App\Entity\VisitNote';
|
||||
$noteType = 'App\Entity\Case\VisitNote';
|
||||
}
|
||||
|
||||
$query = $this->getEntityManager()->createQuery("
|
||||
@ -74,8 +74,6 @@ class ReferralRepository extends ServiceEntityRepository
|
||||
if (!count($res)){
|
||||
return;
|
||||
}
|
||||
|
||||
$referral->setNotes(new ArrayCollection($res));
|
||||
}
|
||||
|
||||
// /**
|
@ -1,8 +1,8 @@
|
||||
<?php
|
||||
|
||||
namespace App\Repository;
|
||||
namespace App\Repository\Case;
|
||||
|
||||
use App\Entity\StandardNoteMember;
|
||||
use App\Entity\Case\StandardNoteMember;
|
||||
use Doctrine\Bundle\DoctrineBundle\Repository\ServiceEntityRepository;
|
||||
use Doctrine\Persistence\ManagerRegistry;
|
||||
|
@ -1,11 +1,13 @@
|
||||
<?php
|
||||
|
||||
namespace App\Repository;
|
||||
namespace App\Repository\Case;
|
||||
|
||||
use App\Entity\Referral;
|
||||
use App\Entity\StandardNote;
|
||||
use App\Entity\User;
|
||||
use App\Entity\UserCase;
|
||||
use App\Entity\Case\Referral;
|
||||
use App\Entity\Case\StandardNote;
|
||||
use App\Entity\System\User;
|
||||
use App\Entity\System\UserCase;
|
||||
use App\Enums\Case\ReferralType;
|
||||
use DateTime;
|
||||
use Doctrine\Bundle\DoctrineBundle\Repository\ServiceEntityRepository;
|
||||
use Doctrine\Persistence\ManagerRegistry;
|
||||
|
||||
@ -69,6 +71,36 @@ class StandardNoteRepository extends ServiceEntityRepository
|
||||
;
|
||||
}
|
||||
|
||||
/**
|
||||
* Method to return the total time billed
|
||||
*
|
||||
* @param User $user
|
||||
* @param DateTime $startDate
|
||||
*
|
||||
* @return int
|
||||
* Total minutes rounded to the nearest 15 min increment
|
||||
*/
|
||||
public function getTotalBillableHours(User $user, DateTime $startDate, ReferralType $referralType = null): array
|
||||
{
|
||||
$res = $this->createQueryBuilder('s')
|
||||
->leftJoin(Referral::class, 'r', 'WITH', 'r.id = s.referral')
|
||||
->leftJoin(UserCase::class, 'uc', 'WITH', 'uc.memberCase = r.memberCase')
|
||||
->where('uc.user = :user')
|
||||
->andWhere('s.date >= :startDate')
|
||||
->setParameter('user', $user->getId()->toBinary())
|
||||
->setParameter('startDate', $startDate->format('Y-m-d'))
|
||||
;
|
||||
|
||||
if (null !== $referralType) {
|
||||
$res->andWhere('r.serviceCode = :referralType')
|
||||
->setParameter('referralType', $referralType);
|
||||
}
|
||||
|
||||
$ret = $res->getQuery()->getResult();
|
||||
|
||||
return $ret;
|
||||
}
|
||||
|
||||
// /**
|
||||
// * @return StandardNote[] Returns an array of StandardNote objects
|
||||
// */
|
@ -1,8 +1,8 @@
|
||||
<?php
|
||||
|
||||
namespace App\Repository;
|
||||
namespace App\Repository\Case;
|
||||
|
||||
use App\Entity\VisitNoteMembers;
|
||||
use App\Entity\Case\VisitNoteMembers;
|
||||
use Doctrine\Bundle\DoctrineBundle\Repository\ServiceEntityRepository;
|
||||
use Doctrine\Persistence\ManagerRegistry;
|
||||
|
@ -1,13 +1,13 @@
|
||||
<?php
|
||||
|
||||
namespace App\Repository;
|
||||
namespace App\Repository\Case;
|
||||
|
||||
use App\Entity\Referral;
|
||||
use App\Entity\UserCase;
|
||||
use App\Entity\User;
|
||||
use App\Entity\VisitNote;
|
||||
use App\Entity\VisitNoteMembers;
|
||||
use DateTimeImmutable;
|
||||
use App\Entity\Case\Referral;
|
||||
use App\Entity\System\UserCase;
|
||||
use App\Entity\System\User;
|
||||
use App\Entity\Case\VisitNote;
|
||||
use App\Enums\Case\ReferralType;
|
||||
use DateTime;
|
||||
use Doctrine\Bundle\DoctrineBundle\Repository\ServiceEntityRepository;
|
||||
use Doctrine\Persistence\ManagerRegistry;
|
||||
|
||||
@ -69,6 +69,36 @@ class VisitNoteRepository extends ServiceEntityRepository
|
||||
;
|
||||
}
|
||||
|
||||
/**
|
||||
* Method to return the total time billed
|
||||
*
|
||||
* @param User $user
|
||||
* @param DateTime $startDate
|
||||
*
|
||||
* @return int
|
||||
* Total minutes rounded to the nearest 15 min increment
|
||||
*/
|
||||
public function getTotalBillableHours(User $user, DateTime $startDate, ReferralType $referralType = null): array
|
||||
{
|
||||
$res = $this->createQueryBuilder('v')
|
||||
->leftJoin(Referral::class, 'r', 'WITH', 'r.id = v.referral')
|
||||
->leftJoin(UserCase::class, 'uc', 'WITH', 'uc.memberCase = r.memberCase')
|
||||
->where('uc.user = :user')
|
||||
->andWhere('v.date >= :startDate')
|
||||
->setParameter('user', $user->getId()->toBinary())
|
||||
->setParameter('startDate', $startDate->format('Y-m-d'))
|
||||
;
|
||||
|
||||
if (null !== $referralType) {
|
||||
$res->andWhere('r.serviceCode = :referralType')
|
||||
->setParameter('referralType', $referralType);
|
||||
}
|
||||
|
||||
$ret = $res->getQuery()->getResult();
|
||||
|
||||
return $ret;
|
||||
}
|
||||
|
||||
// /**
|
||||
// * @return VisitNote[] Returns an array of VisitNote objects
|
||||
// */
|
@ -1,8 +1,8 @@
|
||||
<?php
|
||||
|
||||
namespace App\Repository;
|
||||
namespace App\Repository\Company;
|
||||
|
||||
use App\Entity\CompanyDocument;
|
||||
use App\Entity\Company\CompanyDocument;
|
||||
use Doctrine\Bundle\DoctrineBundle\Repository\ServiceEntityRepository;
|
||||
use Doctrine\Persistence\ManagerRegistry;
|
||||
|
@ -1,8 +1,8 @@
|
||||
<?php
|
||||
|
||||
namespace App\Repository;
|
||||
namespace App\Repository\Company;
|
||||
|
||||
use App\Entity\Company;
|
||||
use App\Entity\Company\Company;
|
||||
use Doctrine\Bundle\DoctrineBundle\Repository\ServiceEntityRepository;
|
||||
use Doctrine\Persistence\ManagerRegistry;
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user