Compare commits
14 Commits
55b1ef4f3d
...
5b0ededa27
Author | SHA1 | Date | |
---|---|---|---|
5b0ededa27 | |||
ff50c96b74 | |||
52a39792e0 | |||
f76ca5c3cc | |||
d67db33ed0 | |||
1e3a6dd612 | |||
6a9c35842f | |||
2206fe33c9 | |||
fc2218ee23 | |||
b9d165928a | |||
f877e3f4df | |||
2655848d96 | |||
12199b6152 | |||
b87e970164 |
@ -47,7 +47,8 @@
|
|||||||
"symfony/yaml": "7.2.*",
|
"symfony/yaml": "7.2.*",
|
||||||
"twig/extra-bundle": "^2.12|^3.0",
|
"twig/extra-bundle": "^2.12|^3.0",
|
||||||
"twig/intl-extra": "^3.15",
|
"twig/intl-extra": "^3.15",
|
||||||
"twig/twig": "^2.12|^3.0"
|
"twig/twig": "^2.12|^3.0",
|
||||||
|
"vich/uploader-bundle": "^2.5"
|
||||||
},
|
},
|
||||||
"config": {
|
"config": {
|
||||||
"allow-plugins": {
|
"allow-plugins": {
|
||||||
|
@ -32,4 +32,42 @@ return [
|
|||||||
'@symfony/ux-leaflet-map' => [
|
'@symfony/ux-leaflet-map' => [
|
||||||
'path' => './vendor/symfony/ux-leaflet-map/assets/dist/map_controller.js',
|
'path' => './vendor/symfony/ux-leaflet-map/assets/dist/map_controller.js',
|
||||||
],
|
],
|
||||||
|
'bootstrap' => [
|
||||||
|
'version' => '5.3.3',
|
||||||
|
],
|
||||||
|
'@popperjs/core' => [
|
||||||
|
'version' => '2.11.8',
|
||||||
|
],
|
||||||
|
'bootstrap/dist/css/bootstrap.min.css' => [
|
||||||
|
'version' => '5.3.3',
|
||||||
|
'type' => 'css',
|
||||||
|
],
|
||||||
|
'perfect-scrollbar' => [
|
||||||
|
'version' => '1.5.6',
|
||||||
|
],
|
||||||
|
'perfect-scrollbar/css/perfect-scrollbar.min.css' => [
|
||||||
|
'version' => '1.5.6',
|
||||||
|
'type' => 'css',
|
||||||
|
],
|
||||||
|
'smooth-scrollbar' => [
|
||||||
|
'version' => '8.8.4',
|
||||||
|
],
|
||||||
|
'tslib' => [
|
||||||
|
'version' => '1.14.1',
|
||||||
|
],
|
||||||
|
'core-js/es/map' => [
|
||||||
|
'version' => '3.33.2',
|
||||||
|
],
|
||||||
|
'core-js/es/set' => [
|
||||||
|
'version' => '3.33.2',
|
||||||
|
],
|
||||||
|
'core-js/es/weak-map' => [
|
||||||
|
'version' => '3.33.2',
|
||||||
|
],
|
||||||
|
'core-js/es/array/from' => [
|
||||||
|
'version' => '3.33.2',
|
||||||
|
],
|
||||||
|
'core-js/es/object/assign' => [
|
||||||
|
'version' => '3.33.2',
|
||||||
|
],
|
||||||
];
|
];
|
||||||
|
@ -140,7 +140,8 @@ class AdminController extends AbstractController
|
|||||||
->setRateType($form->get('rateType')->getData())
|
->setRateType($form->get('rateType')->getData())
|
||||||
->setRate($form->get('rate')->getData())
|
->setRate($form->get('rate')->getData())
|
||||||
->setLevel($form->get('level')->getData())
|
->setLevel($form->get('level')->getData())
|
||||||
->setCompany($admin->getCompany());
|
->setCompany($admin->getCompany())
|
||||||
|
;
|
||||||
|
|
||||||
|
|
||||||
$msg = MessageFactory::createUser($admin, $user, 'Welcome', "Welcome to CM Tracker");
|
$msg = MessageFactory::createUser($admin, $user, 'Welcome', "Welcome to CM Tracker");
|
||||||
|
@ -96,6 +96,37 @@ class CaseController extends AbstractController
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[Route('/case/{caseId}', name: 'app_view_case')]
|
||||||
|
public function showCase(Request $request, string $caseId): Response
|
||||||
|
{
|
||||||
|
if (!$this->isGranted('IS_AUTHENTICATED_FULLY')) {
|
||||||
|
return $this->redirectToRoute('app_login');
|
||||||
|
}
|
||||||
|
|
||||||
|
$case = $this->entityManager->getRepository(MemberCase::class)->find($caseId);
|
||||||
|
$sources = $this->entityManager->getRepository(ReferralSource::class)->findAll();
|
||||||
|
|
||||||
|
$this->msgs = $this->entityManager->getRepository(Messages::class)->getUnreadMessages($this->getUser());
|
||||||
|
$this->notificationCount = $this->entityManager->getRepository(Messages::class)->getUnreadMessageCount($this->getUser());
|
||||||
|
|
||||||
|
return $this->render(
|
||||||
|
'internal/cases/view-case.html.twig',
|
||||||
|
array_merge(
|
||||||
|
$this->navLinks,
|
||||||
|
[
|
||||||
|
'case' => $case,
|
||||||
|
'sources' => $sources,
|
||||||
|
'breadcrumbs' => [
|
||||||
|
new Breadcrumb($this->generateUrl('app_list_cases'), 'List Cases'),
|
||||||
|
new Breadcrumb($this->generateUrl('app_view_case', ['caseId' => $case->getId()]), 'View Case')
|
||||||
|
],
|
||||||
|
'notifications' => $this->msgs,
|
||||||
|
'notificationCount' => $this->notificationCount,
|
||||||
|
]
|
||||||
|
)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
#[Route('/add-case', name: 'app_add_case')]
|
#[Route('/add-case', name: 'app_add_case')]
|
||||||
public function addCase(Request $request, #[CurrentUser()] User $admin): Response
|
public function addCase(Request $request, #[CurrentUser()] User $admin): Response
|
||||||
{
|
{
|
||||||
|
@ -34,11 +34,15 @@ class ReferralController extends AbstractController
|
|||||||
private array $navLinks = []
|
private array $navLinks = []
|
||||||
) {
|
) {
|
||||||
$this->navLinks = NavList::LIST;
|
$this->navLinks = NavList::LIST;
|
||||||
$this->navLinks['case_list'] = NavList::PRESENT_LINK;
|
if (strpos($_SERVER['HTTP_REFERER'], 'my-cases') !== false) {
|
||||||
|
$this->navLinks['my_cases'] = NavList::PRESENT_LINK;
|
||||||
|
} else {
|
||||||
|
$this->navLinks['case_list'] = NavList::PRESENT_LINK;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#[Route('/list-referrals/{id}', name: 'app_list_referrals')]
|
#[Route('/list-referrals/{id}', name: 'app_list_referrals')]
|
||||||
public function listReferrals(#[CurrentUser()] User $user, string $id): Response
|
public function listReferrals(#[CurrentUser()] User $user, string $id, Request $request): Response
|
||||||
{
|
{
|
||||||
$this->msgs = $this->entityManager->getRepository(Messages::class)->getUnreadMessages($user);
|
$this->msgs = $this->entityManager->getRepository(Messages::class)->getUnreadMessages($user);
|
||||||
$this->notificationCount = $this->entityManager->getRepository(Messages::class)->getUnreadMessageCount($user);
|
$this->notificationCount = $this->entityManager->getRepository(Messages::class)->getUnreadMessageCount($user);
|
||||||
@ -53,7 +57,11 @@ class ReferralController extends AbstractController
|
|||||||
$this->navLinks,
|
$this->navLinks,
|
||||||
[
|
[
|
||||||
'breadcrumbs' => [
|
'breadcrumbs' => [
|
||||||
new Breadcrumb($this->generateUrl('app_list_cases'), 'List Cases'),
|
(
|
||||||
|
strpos($request->server->get('HTTP_REFERER'), 'my-cases') !== false
|
||||||
|
? new Breadcrumb($this->generateUrl('app_my_cases'), 'My Cases')
|
||||||
|
: new Breadcrumb($this->generateUrl('app_list_cases'), 'List Cases')
|
||||||
|
),
|
||||||
new Breadcrumb($this->generateUrl('app_list_referrals', ['id' => $case->getId()]), 'Referrals'),
|
new Breadcrumb($this->generateUrl('app_list_referrals', ['id' => $case->getId()]), 'Referrals'),
|
||||||
],
|
],
|
||||||
'notifications' => $this->msgs,
|
'notifications' => $this->msgs,
|
||||||
|
@ -16,13 +16,15 @@ class MemberCaseFixture extends Fixture implements DependentFixtureInterface
|
|||||||
{
|
{
|
||||||
public function load(ObjectManager $manager): void
|
public function load(ObjectManager $manager): void
|
||||||
{
|
{
|
||||||
return;
|
if(!$_ENV['CREATE_CASES']) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
$sources = $manager->getRepository(ReferralSource::class)->findAll();
|
$sources = $manager->getRepository(ReferralSource::class)->findAll();
|
||||||
$users = $manager->getRepository(User::class)->findAll();
|
$users = $manager->getRepository(User::class)->findAll();
|
||||||
|
|
||||||
$gen = \Faker\Factory::create();
|
$gen = \Faker\Factory::create();
|
||||||
|
|
||||||
for ($x = 0; $x < 50; $x++) {
|
for ($x = 0; $x < $_ENV['CREATE_CASES']; $x++) {
|
||||||
$case = new MemberCase();
|
$case = new MemberCase();
|
||||||
$case->setCaseNumber($gen->numberBetween(1000000, 9999999))
|
$case->setCaseNumber($gen->numberBetween(1000000, 9999999))
|
||||||
->setDcsCaseId($gen->numberBetween(1000000, 9999999))
|
->setDcsCaseId($gen->numberBetween(1000000, 9999999))
|
||||||
|
@ -16,7 +16,9 @@ class MemberFixture extends Fixture implements DependentFixtureInterface
|
|||||||
{
|
{
|
||||||
public function load(ObjectManager $manager): void
|
public function load(ObjectManager $manager): void
|
||||||
{
|
{
|
||||||
return;
|
if (!$_ENV['CREATE_MEMBERS']) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
$gen = \Faker\Factory::create();
|
$gen = \Faker\Factory::create();
|
||||||
$cases = $manager->getRepository(MemberCase::class)->findAll();
|
$cases = $manager->getRepository(MemberCase::class)->findAll();
|
||||||
|
|
||||||
@ -24,7 +26,7 @@ class MemberFixture extends Fixture implements DependentFixtureInterface
|
|||||||
/** @var MemberCase $case */
|
/** @var MemberCase $case */
|
||||||
$caseLastName = $case->getLastName();
|
$caseLastName = $case->getLastName();
|
||||||
print "Adding members for case {$case->getCaseName()}".PHP_EOL;
|
print "Adding members for case {$case->getCaseName()}".PHP_EOL;
|
||||||
$memCount = $gen->numberBetween(0, 5);
|
$memCount = $gen->numberBetween(0, $_ENV['CREATE_MEMBERS']);
|
||||||
for ($x = 0; $x < $memCount; $x++) {
|
for ($x = 0; $x < $memCount; $x++) {
|
||||||
$isChild = $gen->boolean();
|
$isChild = $gen->boolean();
|
||||||
$isParent = ($isChild ? false : $gen->boolean());
|
$isParent = ($isChild ? false : $gen->boolean());
|
||||||
|
@ -19,14 +19,16 @@ class NoteFixture extends Fixture implements DependentFixtureInterface
|
|||||||
{
|
{
|
||||||
public function load(ObjectManager $manager): void
|
public function load(ObjectManager $manager): void
|
||||||
{
|
{
|
||||||
return;
|
if(!$_ENV['CREATE_NOTES']) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
$gen = \Faker\Factory::create();
|
$gen = \Faker\Factory::create();
|
||||||
$refs = $manager->getRepository(Referral::class)->findAll();
|
$refs = $manager->getRepository(Referral::class)->findAll();
|
||||||
|
|
||||||
foreach ($refs as $ref) {
|
foreach ($refs as $ref) {
|
||||||
/** @var Referral $ref */
|
/** @var Referral $ref */
|
||||||
print "Adding notes for referral {$ref->getReferralId()}".PHP_EOL;
|
print "Adding notes for referral {$ref->getReferralId()}".PHP_EOL;
|
||||||
$noteCount = $gen->numberBetween(0, 10);
|
$noteCount = $gen->numberBetween(0, $_ENV['CREATE_NOTES']);
|
||||||
|
|
||||||
$case = $ref->getMemberCase();
|
$case = $ref->getMemberCase();
|
||||||
$caseMembers = $case->getMembers();
|
$caseMembers = $case->getMembers();
|
||||||
|
@ -13,13 +13,15 @@ class ReferralFixture extends Fixture implements DependentFixtureInterface
|
|||||||
{
|
{
|
||||||
public function load(ObjectManager $manager): void
|
public function load(ObjectManager $manager): void
|
||||||
{
|
{
|
||||||
return;
|
if(!$_ENV['CREATE_REFERRALS']) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
$gen = \Faker\Factory::create();
|
$gen = \Faker\Factory::create();
|
||||||
$cases = $manager->getRepository(MemberCase::class)->findAll();
|
$cases = $manager->getRepository(MemberCase::class)->findAll();
|
||||||
|
|
||||||
foreach ($cases as $case) {
|
foreach ($cases as $case) {
|
||||||
print "Adding referrals for case {$case->getCaseNumber()}".PHP_EOL;
|
print "Adding referrals for case {$case->getCaseNumber()}".PHP_EOL;
|
||||||
$refCount = $gen->numberBetween(0, 2);
|
$refCount = $gen->numberBetween(0, $_ENV['CREATE_REFERRALS']);
|
||||||
for ($x = 0; $x < $refCount; $x++) {
|
for ($x = 0; $x < $refCount; $x++) {
|
||||||
$ref = new Referral();
|
$ref = new Referral();
|
||||||
$ref->setReferralId($gen->numberBetween(1000000, 9999999))
|
$ref->setReferralId($gen->numberBetween(1000000, 9999999))
|
||||||
|
@ -12,10 +12,12 @@ class ReferralSourceFixture extends Fixture
|
|||||||
{
|
{
|
||||||
public function load(ObjectManager $manager): void
|
public function load(ObjectManager $manager): void
|
||||||
{
|
{
|
||||||
return;
|
if(!$_ENV['CREATE_SOURCES']) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
$gen = Factory::create();
|
$gen = Factory::create();
|
||||||
|
|
||||||
for ($x = 0; $x < 20; $x++) {
|
for ($x = 0; $x < $_ENV['CREATE_REFERRALS']; $x++) {
|
||||||
$src = new ReferralSource();
|
$src = new ReferralSource();
|
||||||
$name = "{$gen->firstName()} {$gen->lastName()}";
|
$name = "{$gen->firstName()} {$gen->lastName()}";
|
||||||
$username = strtolower(str_replace(' ', '.', $name));
|
$username = strtolower(str_replace(' ', '.', $name));
|
||||||
|
64
src/DataFixtures/StaffNoteFixture.php
Normal file
64
src/DataFixtures/StaffNoteFixture.php
Normal file
@ -0,0 +1,64 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\DataFixtures;
|
||||||
|
|
||||||
|
use App\Entity\MemberCase;
|
||||||
|
use App\Entity\StaffNote;
|
||||||
|
use App\Enums\ReferralServiceType;
|
||||||
|
use DateTime;
|
||||||
|
use Doctrine\Bundle\FixturesBundle\Fixture;
|
||||||
|
use Doctrine\Common\DataFixtures\DependentFixtureInterface;
|
||||||
|
use Doctrine\Persistence\ObjectManager;
|
||||||
|
|
||||||
|
class StaffNoteFixture extends Fixture implements DependentFixtureInterface
|
||||||
|
{
|
||||||
|
public function load(ObjectManager $manager): void
|
||||||
|
{
|
||||||
|
if(!$_ENV['CREATE_STAFF_NOTES']) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
$cases = $manager->getRepository(MemberCase::class)->findAll();
|
||||||
|
|
||||||
|
$gen = \Faker\Factory::create();
|
||||||
|
|
||||||
|
foreach ($cases as $case) {
|
||||||
|
/** @var MemberCase $case */
|
||||||
|
$note = new StaffNote();
|
||||||
|
$admitDate = new DateTime($case->getAdmitDate()?->format('Y-m-d').' '.$gen->time('H:i:s'));
|
||||||
|
$admitDate->add(\DateInterval::createFromDateString('7 day'));
|
||||||
|
$note->setDate($admitDate);
|
||||||
|
$note->setMemberCase($case);
|
||||||
|
$note->setServicesProvided($gen->randomElements(ReferralServiceType::class, $gen->numberBetween(1, 3)));
|
||||||
|
|
||||||
|
while ($admitDate->getTimestamp() < time()) {
|
||||||
|
$workerSignDatetime = clone $admitDate;
|
||||||
|
$workerSignDatetime->setTime($gen->time('H'), $gen->time('i'), $gen->time('s'));
|
||||||
|
$workerSignDatetime->add(\DateInterval::createFromDateString('1 day'));
|
||||||
|
$note->setWorkerSignDatetime($workerSignDatetime);
|
||||||
|
|
||||||
|
$supervisorSignDatetime = clone $admitDate;
|
||||||
|
$supervisorSignDatetime->setTime($gen->time('H'), $gen->time('i'), $gen->time('s'));
|
||||||
|
$supervisorSignDatetime->add(\DateInterval::createFromDateString('1 day'));
|
||||||
|
$note->setSupervisorSignDatetime($supervisorSignDatetime);
|
||||||
|
|
||||||
|
$note->setNote($gen->text(200));
|
||||||
|
$note->setRecommendations($gen->text(20));
|
||||||
|
|
||||||
|
$manager->persist($note);
|
||||||
|
|
||||||
|
$admitDate->add(\DateInterval::createFromDateString('14 days'));
|
||||||
|
$note = clone $note;
|
||||||
|
$note->setDate(clone $admitDate);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
$manager->flush();
|
||||||
|
}
|
||||||
|
|
||||||
|
public function getDependencies(): array
|
||||||
|
{
|
||||||
|
return [
|
||||||
|
MemberCaseFixture::class,
|
||||||
|
];
|
||||||
|
}
|
||||||
|
}
|
@ -20,10 +20,12 @@ class UserFixture extends Fixture
|
|||||||
|
|
||||||
public function load(ObjectManager $manager): void
|
public function load(ObjectManager $manager): void
|
||||||
{
|
{
|
||||||
return;
|
if(!$_ENV['CREATE_USERS']) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
$comp = $manager->getRepository(Company::class)->findOneBy(['name' => 'Counseling Partners, LLC']);
|
$comp = $manager->getRepository(Company::class)->findOneBy(['name' => 'Counseling Partners, LLC']);
|
||||||
$gen = \Faker\Factory::create();
|
$gen = \Faker\Factory::create();
|
||||||
for ($x = 0; $x < 20; $x++) {
|
for ($x = 0; $x < $_ENV['CREATE_USERS']; $x++) {
|
||||||
$user = new User();
|
$user = new User();
|
||||||
$name = $gen->firstName().' '.$gen->lastName();
|
$name = $gen->firstName().' '.$gen->lastName();
|
||||||
$username = strtolower(str_replace(' ', '.', $name));
|
$username = strtolower(str_replace(' ', '.', $name));
|
||||||
|
@ -19,7 +19,35 @@ class Libs
|
|||||||
if (isset($result['results'][0]['lat']) && isset($result['results'][0]['lon'])) {
|
if (isset($result['results'][0]['lat']) && isset($result['results'][0]['lon'])) {
|
||||||
$lat = $result['results'][0]['lat'];
|
$lat = $result['results'][0]['lat'];
|
||||||
$lon = $result['results'][0]['lon'];
|
$lon = $result['results'][0]['lon'];
|
||||||
return [$lat, $lon];
|
return [number_format($lat, 6), number_format($lon, 6)];
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static function getRoute($lat1, $lon1, $lat2, $lon2): ?array
|
||||||
|
{
|
||||||
|
$params = [
|
||||||
|
'waypoints' => "{$lat1},{$lon1}|{$lat2},{$lon2}",
|
||||||
|
'mode' => 'drive',
|
||||||
|
'units' => 'imperial',
|
||||||
|
'format' => 'json',
|
||||||
|
'apiKey' => $_ENV['GEOAPIFY_API_KEY']
|
||||||
|
];
|
||||||
|
|
||||||
|
|
||||||
|
$url = "https://api.geoapify.com/v1/routing?".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);
|
||||||
|
$result = json_decode($result, true);
|
||||||
|
dd($result);
|
||||||
|
if (isset($result['features'][0]['geometry']['coordinates'])) {
|
||||||
|
$route = $result['features'][0]['geometry']['coordinates'];
|
||||||
|
return $route;
|
||||||
}
|
}
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
@ -14,9 +14,10 @@ class NavList
|
|||||||
'add_user' => 'nav-link text-dark',
|
'add_user' => 'nav-link text-dark',
|
||||||
'referral_sources' => 'nav-link text-dark',
|
'referral_sources' => 'nav-link text-dark',
|
||||||
'case_notes' => 'nav-link text-dark',
|
'case_notes' => 'nav-link text-dark',
|
||||||
'community_resource' => 'nav-link text-dark',
|
'community_resources' => 'nav-link text-dark',
|
||||||
'my_cases' => 'nav-link text-dark',
|
'my_cases' => 'nav-link text-dark',
|
||||||
'staff_notes' => 'nav-link text-dark',
|
'staff_notes' => 'nav-link text-dark',
|
||||||
|
'case_itinerary' => 'nav-link text-dark',
|
||||||
];
|
];
|
||||||
|
|
||||||
public const PRESENT_LINK = 'nav-link text-white active bg-gradient-dark';
|
public const PRESENT_LINK = 'nav-link text-white active bg-gradient-dark';
|
||||||
|
@ -11,8 +11,8 @@
|
|||||||
</title>
|
</title>
|
||||||
|
|
||||||
<!-- Simple CSS
|
<!-- Simple CSS
|
||||||
<link
|
<link
|
||||||
rel="stylesheet" href="https://cdn.simplecss.org/simple.min.css">-->
|
rel="stylesheet" href="https://cdn.simplecss.org/simple.min.css">-->
|
||||||
|
|
||||||
<!-- Fonts and icons -->
|
<!-- Fonts and icons -->
|
||||||
<link
|
<link
|
||||||
@ -35,10 +35,6 @@
|
|||||||
|
|
||||||
{% block javascripts %}
|
{% block javascripts %}
|
||||||
<script src="https://unpkg.com/leaflet@1.9.4/dist/leaflet.js" integrity="sha256-20nQCchB9co0qIjJZRGuk2/Z9VM+kNiyxNV1lvTlZBo=" crossorigin=""></script>
|
<script src="https://unpkg.com/leaflet@1.9.4/dist/leaflet.js" integrity="sha256-20nQCchB9co0qIjJZRGuk2/Z9VM+kNiyxNV1lvTlZBo=" crossorigin=""></script>
|
||||||
<script src="{{ asset('js/core/popper.min.js') }}"></script>
|
|
||||||
<script src="{{ asset('js/core/bootstrap.min.js') }}"></script>
|
|
||||||
<script src="{{ asset('js/plugins/perfect-scrollbar.min.js') }}"></script>
|
|
||||||
<script src="{{ asset('js/plugins/smooth-scrollbar.min.js') }}"></script>
|
|
||||||
<script>
|
<script>
|
||||||
var win = navigator.platform.indexOf('Win') > -1;
|
var win = navigator.platform.indexOf('Win') > -1;
|
||||||
if (win && document.querySelector('#sidenav-scrollbar')) {
|
if (win && document.querySelector('#sidenav-scrollbar')) {
|
||||||
|
@ -87,6 +87,5 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</main>
|
</main>
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
@ -60,13 +60,16 @@
|
|||||||
<p class='text-center text-xs font-weight-bold mb-0'>{{ c.referrals|length }}</p>
|
<p class='text-center text-xs font-weight-bold mb-0'>{{ c.referrals|length }}</p>
|
||||||
</td>
|
</td>
|
||||||
<td class='align-right'>
|
<td class='align-right'>
|
||||||
<a href='{{ path('app_list_referrals', {id: c.id}) }}' class='' title='List Referrals' data-toggle='tooltip'>
|
<a href='{{ path('app_view_case', {caseId: c.id}) }}' title='View Case'>
|
||||||
|
<i class='material-symbols-rounded opacity-5'>visibility</i>
|
||||||
|
</a>
|
||||||
|
<a href='{{ path('app_list_referrals', {id: c.id}) }}' title='List Referrals'>
|
||||||
<i class='material-symbols-rounded opacity-5'>create_new_folder</i>
|
<i class='material-symbols-rounded opacity-5'>create_new_folder</i>
|
||||||
</a>
|
</a>
|
||||||
<a href='{{ path('app_case_members', {id: c.id}) }}' class='' title='List Members' data-toggle='tooltip'>
|
<a href='{{ path('app_case_members', {id: c.id}) }}' title='List Members'>
|
||||||
<i class='material-symbols-rounded opacity-5'>group_add</i>
|
<i class='material-symbols-rounded opacity-5'>group_add</i>
|
||||||
</a>
|
</a>
|
||||||
<a href='{{ path('app_case_notes', {id: c.id}) }}' class='' title='Show Notes' data-toggle='tooltip'>
|
<a href='{{ path('app_case_notes', {id: c.id}) }}' title='Show Notes'>
|
||||||
<i class='material-symbols-rounded opacity-5'>clinical_notes</i>
|
<i class='material-symbols-rounded opacity-5'>clinical_notes</i>
|
||||||
</a>
|
</a>
|
||||||
</td>
|
</td>
|
||||||
|
148
templates/internal/cases/view-case.html.twig
Normal file
148
templates/internal/cases/view-case.html.twig
Normal file
@ -0,0 +1,148 @@
|
|||||||
|
{% extends 'base.html.twig' %}
|
||||||
|
|
||||||
|
{% block body %}
|
||||||
|
{{ block('nav', 'internal/libs/nav.html.twig') }}
|
||||||
|
|
||||||
|
<main class="main-content position-relative max-height-vh-100 h-100 border-radius-lg ">
|
||||||
|
{{ block('topnav', 'internal/libs/top-nav.html.twig') }}
|
||||||
|
|
||||||
|
<section>
|
||||||
|
<div class="card card-plain">
|
||||||
|
<div class="card-header">
|
||||||
|
<h4 class="font-weight-bolder">Case Info</h4>
|
||||||
|
<p class="mb-0"></p>
|
||||||
|
</div>
|
||||||
|
<div class="card-body">
|
||||||
|
<div class="container">
|
||||||
|
<div class="row">
|
||||||
|
<div class='col'>
|
||||||
|
<div class='input-group input-group-outline mb-3 is-filled'>
|
||||||
|
<label for='case_form_caseNumber' class='form-label'>Case #</label>
|
||||||
|
<input type='text' name='caseNumber' id='case_form_caseNumber' value='{{ case.caseNumber }}' class='form-control' required='required'/>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class='input-group input-group-outline mb-3 is-filled'>
|
||||||
|
<label for='case_form_dcsCaseId' class='form-label'>DCS Case ID</label>
|
||||||
|
<input type='text' name='dcsCaseId' id='case_form_dcsCaseId' value='{{ case.dcsCaseId }}' class='form-control' required='required'/>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class='input-group input-group-outline mb-3 is-filled'>
|
||||||
|
<label for='case_form_admitDate' class='form-label'>Admit Date</label>
|
||||||
|
<input type='date' name='admitDate' id='case_form_admitDate' value='{{ case.admitDate|date('Y-m-d') }}' class='form-control'/>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class='input-group input-group-outline mb-3{% if case.closeDate %} is-filled{% endif %}'>
|
||||||
|
<label for='case_form_closeDate' class='form-label'></label>
|
||||||
|
<input type='date' name='closeDate' id='case_form_closeDate' value='{% if case.closeDate %}{{ case.closeDate|date('Y-m-d') }}{% endif %}' class='form-control'/>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class='input-group input-group-outline mb-3'>
|
||||||
|
<label for='case_form_caseEmail' class='form-label'>Case Email</label>
|
||||||
|
<input type='text' name='caseEmail' id='case_form_caseEmail' value='{{ case.caseEmail }}' class='form-control'/>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class='input-group input-group-outline mb-3 is-filled'>
|
||||||
|
<label for='case_form_referralType' class='form-label'>Referral Type</label>
|
||||||
|
<input type='text' name='referralType' id='case_form_referralType' value='{{ case.referralType }}' class='form-control'/>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class='input-group input-group-outline mb-3 is-filled'>
|
||||||
|
<label for='case_form_level' class='form-label'>Level</label>
|
||||||
|
<select name='level' id='case_form_level' class='form-control'>
|
||||||
|
<option value=''></option>
|
||||||
|
{% for l in enum('App\\Enums\\CaseLevel').cases() %}
|
||||||
|
<option value='{{ l.value }}' {% if case.level.value == l.value %} selected='selected' {% endif %}>{{ l.name }}</option>
|
||||||
|
{% endfor %}
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class='input-group input-group-outline mb-3 is-filled'>
|
||||||
|
<label for='case_form_referralSource' class='form-label'>Referral Source</label>
|
||||||
|
<select name='referralSource' id='case_form_referralSource' class='form-control'>
|
||||||
|
<option value=''></option>
|
||||||
|
|
||||||
|
{% for src in sources %}
|
||||||
|
<option value='{{ src.id }}' {% if case.referralSource.id == src.id %} selected='selected' {% endif %}>{{ src.name}}</option>
|
||||||
|
{% endfor %}
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class='input-group input-group-outline mb-3 {% if case.referralSource2 %}is-filled{% endif %}'>
|
||||||
|
<label for='case_form_referralSources2' class='form-label'>2nd Referral Source</label>
|
||||||
|
<select name='referralSource2' id='case_form_referralSources2' class='form-control'>
|
||||||
|
<option value=''></option>
|
||||||
|
|
||||||
|
{% for src in sources %}
|
||||||
|
<option value='{{ src.id }}' {% if case.referralSource2 and case.referralSource2.id == src.id %} selected='selected' {% endif %}>{{ src.name }}</option>
|
||||||
|
{% endfor %}
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class='col'>
|
||||||
|
<div class='input-group input-group-outline mb-3 is-filled'>
|
||||||
|
<label for='case_form_firstName' class='form-label'>First Name</label>
|
||||||
|
<input type='text' name='firstName' id='case_form_firstName' value='{{ case.firstName }}' class='form-control' required='required'/>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class='input-group input-group-outline mb-3 is-filled'>
|
||||||
|
<label for='case_form_lastName' class='form-label'>Last Name</label>
|
||||||
|
<input type='text' name='lastName' id='case_form_lastName' value='{{ case.lastName }}' class='form-control' required='required'/>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class='input-group input-group-outline mb-3{% if case.address %} is-filled{% endif %}'>
|
||||||
|
<label for='case_form_address' class='form-label'>Address</label>
|
||||||
|
<input type='text' name='address' id='case_form_address' value='{{ case.address }}' class='form-control'/>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class='input-group input-group-outline mb-3{% if case.address2 %} is-filled{% endif %}'>
|
||||||
|
<label for='case_form_address2' class='form-label'>Address 2</label>
|
||||||
|
<input type='text' name='address2' id='case_form_address2' value='{{ case.address2 }}' class='form-control'/>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class='input-group input-group-outline mb-3{% if case.city %} is-filled{% endif %}'>
|
||||||
|
<label for='case_form_city' class='form-label'>City</label>
|
||||||
|
<input type='text' name='city' id='case_form_city' value='{{ case.city }}' class='form-control'/>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class='input-group input-group-outline mb-3{% if case.state %} is-filled{% endif %}'>
|
||||||
|
<label for='case_form_state' class='form-label'>State</label>
|
||||||
|
<input type='text' name='state' id='case_form_state' value='{{ case.state }}' class='form-control'/>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class='input-group input-group-outline mb-3{% if case.zip %} is-filled{% endif %}'>
|
||||||
|
<label for='case_form_zip' class='form-label'>Zip</label>
|
||||||
|
<input type='text' name='zip' id='case_form_zip' value='{{ case.zip }}' class='form-control'/>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class='input-group input-group-outline mb-3 is-filled'>
|
||||||
|
<label for='case_form_county' class='form-label'>County</label>
|
||||||
|
<select name='county' id='case_form_county' class='form-control'>
|
||||||
|
<option value=''></option>
|
||||||
|
{% for c in enum('App\\Enums\\County').cases() %}
|
||||||
|
<option value='{{ c.value }}' {% if case.county.value == c.value %} selected='selected' {% endif %}>{{ c.name }}</option>
|
||||||
|
{% endfor %}
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class='input-group input-group-outline mb-3{% if case.insurance %} is-filled{% endif %}'>
|
||||||
|
<label for='case_form_insurance' class='form-label'>Insurance</label>
|
||||||
|
<input type='text' name='insurance' id='case_form_insurance' value='{{ case.insurance }}' class='form-control'/>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class='input-group input-group-outline mb-3{% if case.medicaid %} is-filled{% endif %}'>
|
||||||
|
<label for='case_form_medicaid' class='form-label'>Medicaid</label>
|
||||||
|
<input type='text' name='medicaid' id='case_form_medicaid' value='{{ case.medicaid }}' class='form-control'/>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class='row'>
|
||||||
|
<div class="text-center">
|
||||||
|
<button type="button" class="btn btn-lg bg-gradient-dark btn-lg w-100 mt-4 mb-0" onclick='history.go(-1)'>Back</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
</main>
|
||||||
|
{% endblock %}
|
@ -44,6 +44,7 @@
|
|||||||
<th class="text-uppercase text-secondary text-xxs font-weight-bolder opacity-7 ps-2">Address</th>
|
<th class="text-uppercase text-secondary text-xxs font-weight-bolder opacity-7 ps-2">Address</th>
|
||||||
<th class="text-center text-uppercase text-secondary text-xxs font-weight-bolder opacity-7">Contact Info</th>
|
<th class="text-center text-uppercase text-secondary text-xxs font-weight-bolder opacity-7">Contact Info</th>
|
||||||
<th class="text-center text-uppercase text-secondary text-xxs font-weight-bolder opacity-7">Hours</th>
|
<th class="text-center text-uppercase text-secondary text-xxs font-weight-bolder opacity-7">Hours</th>
|
||||||
|
<th class="text-center text-uppercase text-secondary text-xxs font-weight-bolder opacity-7">Lat/Lon</th>
|
||||||
<th class="text-secondary opacity-7"></th>
|
<th class="text-secondary opacity-7"></th>
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
@ -58,6 +59,7 @@
|
|||||||
<td>{{ r.getFormattedAddress()|raw }}</td>
|
<td>{{ r.getFormattedAddress()|raw }}</td>
|
||||||
<td>{{ r.getContactCard()|raw }}</td>
|
<td>{{ r.getContactCard()|raw }}</td>
|
||||||
<td>{{ r.getHours() }}</td>
|
<td>{{ r.getHours() }}</td>
|
||||||
|
<td>{{ r.lat|number_format(6) }}/{{ r.lon|number_format(6) }}</td>
|
||||||
<td class='align-right'>
|
<td class='align-right'>
|
||||||
<a href='{{ path('app_community_resource_edit', {id: r.id}) }}' title='Edit Resource'>
|
<a href='{{ path('app_community_resource_edit', {id: r.id}) }}' title='Edit Resource'>
|
||||||
<i class="material-symbols-rounded opacity-5">edit</i>
|
<i class="material-symbols-rounded opacity-5">edit</i>
|
||||||
|
@ -86,7 +86,13 @@
|
|||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
<li class='nav-item'>
|
<li class='nav-item'>
|
||||||
<a class='{{ community_resource }}' href='{{ path('app_community_resource') }}'>
|
<a class='{{ case_itinerary }}' href='{{ path('app_list_case_addresses') }}'>
|
||||||
|
<i class='material-symbols-rounded opacity-5'>map</i>
|
||||||
|
<span class='nav-link-text ms-1'>Case Addresses</span>
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
<li class='nav-item'>
|
||||||
|
<a class='{{ community_resources }}' href='{{ path('app_community_resource') }}'>
|
||||||
<i class='material-symbols-rounded opacity-5'>verified</i>
|
<i class='material-symbols-rounded opacity-5'>verified</i>
|
||||||
<span class='nav-link-text ms-1'>Resources</span>
|
<span class='nav-link-text ms-1'>Resources</span>
|
||||||
</a>
|
</a>
|
||||||
|
Reference in New Issue
Block a user