Compare commits

...

8 Commits

Author SHA1 Message Date
9887889ecb ref: Repositories
* Refactor all files
2025-01-28 20:59:14 -05:00
593958cc68 ref: Libs
* Refactor files
* Move autocompleteAddress method to GeoapifyController
2025-01-28 20:58:47 -05:00
528827868b upd: Forms
* Move classes
2025-01-28 20:54:50 -05:00
af6ebbb1b2 mv: Factories
* move files
2025-01-28 20:48:41 -05:00
e08e23d647 mv: Enums
* Move enums
2025-01-28 20:48:00 -05:00
bcc32bf445 mv: Refactor
* Move entities for organization
2025-01-28 20:47:26 -05:00
ee2fce4c41 upd: DataFixtures
* Refactor after moving files
2025-01-28 20:46:38 -05:00
13aaaae34c mv: All Controllers
* Move all controllers to sub-directories for organization
2025-01-28 20:43:23 -05:00
109 changed files with 1101 additions and 510 deletions

View File

@ -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;

View File

@ -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;

View 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);
}
}

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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,

View File

@ -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;

View File

@ -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),
]
)
);

View 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));
}
}

View File

@ -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,
]
)
);

View File

@ -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;

View File

@ -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;

View File

@ -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);

View File

@ -1,6 +1,6 @@
<?php
namespace App\Controller;
namespace App\Controller\System;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Response;

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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))

View File

@ -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;
}
}

View File

@ -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;

View File

@ -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;

View File

@ -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;
}
}

View File

@ -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;
}
}

View 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;
}
}

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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;

View 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;
}
}

View File

@ -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;
}
}

View File

@ -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)]

View File

@ -1,6 +1,6 @@
<?php
namespace App\Enums;
namespace App\Enums\Case;
enum CaseLevel: int
{

View File

@ -1,6 +1,6 @@
<?php
namespace App\Enums;
namespace App\Enums\Case;
enum DischargeReason: string
{

View File

@ -1,6 +1,6 @@
<?php
namespace App\Enums;
namespace App\Enums\Case;
enum NoteLocation: string
{

View File

@ -1,6 +1,6 @@
<?php
namespace App\Enums;
namespace App\Enums\Case;
enum NoteMethod: int
{

View File

@ -1,6 +1,6 @@
<?php
namespace App\Enums;
namespace App\Enums\Case;
enum NoteStatus: string
{

View File

@ -1,6 +1,6 @@
<?php
namespace App\Enums;
namespace App\Enums\Case;
enum RaceType: string
{

View File

@ -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';
}

View File

@ -1,6 +1,6 @@
<?php
namespace App\Enums;
namespace App\Enums\Case;
enum RelationshipType: string
{

View File

@ -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;
}

View File

@ -1,6 +1,6 @@
<?php
namespace App\Enums;
namespace App\Enums\Case;
enum VisitQualityLevel: int
{

View File

@ -1,6 +1,6 @@
<?php
namespace App\Enums;
namespace App\Enums\Company;
enum DocumentExtras: int
{

View File

@ -1,6 +1,6 @@
<?php
namespace App\Enums;
namespace App\Enums\System;
enum County: string
{

View File

@ -1,6 +1,6 @@
<?php
namespace App\Enums;
namespace App\Enums\System;
enum GenderType: string
{

View File

@ -1,6 +1,6 @@
<?php
namespace App\Enums;
namespace App\Enums\System;
enum JobType: string
{

View File

@ -1,6 +1,6 @@
<?php
namespace App\Enums;
namespace App\Enums\System;
enum MessageType: int
{

View File

@ -1,6 +1,6 @@
<?php
namespace App\Enums;
namespace App\Enums\System;
enum RateType: string
{

View File

@ -1,6 +1,6 @@
<?php
namespace App\Enums;
namespace App\Enums\System;
enum State: string
{

View File

@ -0,0 +1,10 @@
<?php
namespace App\Enums\System;
enum UserSubscriptions: int
{
case Free = 0;
case Basic = 1;
case Pro = 2;
}

View File

@ -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
{

View File

@ -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

View File

@ -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' => [],
]);
}
}

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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);

View File

@ -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();

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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;

View 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()
// ;
// }
}

View File

@ -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;

View File

@ -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));
}
// /**

View File

@ -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;

View File

@ -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
// */

View File

@ -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;

View File

@ -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
// */

View File

@ -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;

View File

@ -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