From 6ecb76a829616570d3dffe0156fb842aee61a7cb Mon Sep 17 00:00:00 2001 From: Ryan Prather Date: Wed, 22 Jan 2025 21:20:24 -0500 Subject: [PATCH] fix: MemberController member editting * Add documents * Cleanup --- src/Controller/MemberController.php | 74 ++++++++++++++++++----------- 1 file changed, 45 insertions(+), 29 deletions(-) diff --git a/src/Controller/MemberController.php b/src/Controller/MemberController.php index e66a61d..f31a980 100644 --- a/src/Controller/MemberController.php +++ b/src/Controller/MemberController.php @@ -130,40 +130,54 @@ class MemberController extends AbstractController #[Route('/case/{caseId}/edit-member/{memberId}', name: 'app_case_edit_member')] public function editMember(Request $request, #[CurrentUser()] User $user, string $caseId, string $memberId): Response { + /** @var Member $member */ $member = $this->entityManager->getRepository(Member::class)->find($memberId); + /** @var MemberCase $case */ + $case = $this->entityManager->getRepository(MemberCase::class)->find($caseId); - $form = $this->createForm(MemberFormType::class, $member); + /** @var array $docs */ + $docs = $this->entityManager->getRepository(CompanyDocument::class)->findBy(['company' => $user->getCompany()], ['title' => 'ASC']); + /** @var array $memberDocs */ + $memberDocs = $this->entityManager->getRepository(MemberDocument::class)->findBy(['client' => $member]); + $memberDbDocs = []; + foreach($memberDocs as $md) { + $memberDbDocs[] = $md->getDocument()->getId()->toString(); + } + + foreach ($docs as $idx => $d) { + if (in_array($d->getId()->toString(), $memberDbDocs)) { + $docs[$idx]->setSelected(); + } + } + + $form = $this->createForm(MemberFormType::class, $member, ['docs' => $docs]); $form->handleRequest($request); if ($form->isSubmitted() && $form->isValid()) { - $member->setFirstName($form->get('firstName')->getData()) - ->setLastName($form->get('lastName')->getData()) - ->setDob($form->get('dob')->getData()) - ->setGender($form->get('gender')->getData()) - ->setRace($form->get('race')->getData()) - ->setLanguage($form->get('language')->getData()) - ->setPersonalId($form->get('personalId')->getData()) - ->setEmergencyContact($form->get('emergencyContact')->getData()) - ->setEmail($form->get('email')->getData()) - ->setAddress($form->get('address')->getData()) - ->setCity($form->get('city')->getData()) - ->setState($form->get('state')->getData()) - ->setZip($form->get('zip')->getData()) - ->setPhone($form->get('phone')->getData()) - ->setRelationship($form->get('relationship')->getData()) - ->setDayPhone($form->get('dayPhone')->getData()) - ->setEveningPhone($form->get('eveningPhone')->getData()) - ->setCellPhone($form->get('cellPhone')->getData()) - ->setSchool($form->get('school')->getData()) - ->setMaritalStatus($form->get('maritalStatus')->getData()) - ->setChild($form->get('isChild')->getData()) - ->setParent($form->get('isParent')->getData()) - ->setAdultChild($form->get('isAdultChild')->getData()) - ->setLegalGuardian($form->get('isLegalGuardian')->getData()) - ->setParentsLiveTogether($form->get('parentsLiveTogether')->getData()) - ->setDcsApproved($form->get('dcsApproved')->getData()) + $member = $form->getData(); + $member->setChild(($form->get('isChild') ? true : false)) + ->setParent(($form->get('isParent') ? true : false)) + ->setAdultChild(($form->get('isAdultChild') ? true : false)) + ->setLegalGuardian(($form->get('isLegalGuardian') ? true : false)) + ->setParentsLiveTogether(($form->get('parentsLiveTogether') ? true : false)) + ->setDcsApproved(($form->get('dcsApproved') ? true : false)) ; + $this->entityManager->getRepository(MemberDocument::class)->removeUnsigned($member); + + $selectedDocs = $form->get('docs')->getData(); + + foreach ($selectedDocs as $d) { + $md = new MemberDocument(); + $md->setClient($member) + ->setCaseWorker($user) + ->setDocument($d) + ; + + $this->entityManager->persist($md); + $this->entityManager->flush(); + } + $this->entityManager->flush(); $this->addFlash( @@ -180,14 +194,16 @@ class MemberController extends AbstractController $this->navLinks, [ 'breadcrumbs' => [ - new Breadcrumb($this->generateUrl('app_list_cases'), 'List Cases'), - new Breadcrumb($this->generateUrl('app_case_members', ['id' => $caseId]), 'List Members'), + new Breadcrumb($this->generateUrl('app_list_cases'), 'Cases'), + new Breadcrumb($this->generateUrl('app_case_members', ['id' => $caseId]), 'Members'), new Breadcrumb($this->generateUrl('app_case_edit_member', ['caseId' => $caseId, 'memberId' => $memberId]), 'Edit Member'), ], 'notifications' => Libs::getMessages($user, $this->entityManager), 'member' => $member, 'form' => $form->createView(), 'caseId' => $caseId, + 'docs' => $docs, + 'selectedDocs' => $memberDbDocs, ] ) );