fix: MemberRepository
* Fix getting selected members from a note
This commit is contained in:
parent
52f835bbda
commit
2cd4c68baf
@ -3,9 +3,17 @@
|
||||
namespace App\Repository\Case;
|
||||
|
||||
use App\Entity\Case\Member;
|
||||
use App\Entity\Case\MemberCase;;
|
||||
use App\Entity\Case\MemberCase;
|
||||
use App\Entity\Case\Note;
|
||||
use App\Entity\Case\StandardNote;
|
||||
use App\Entity\Case\VisitNote;
|
||||
use App\Enums\Case\RelationshipType;
|
||||
use App\Enums\System\GenderType;
|
||||
|
||||
;
|
||||
use Doctrine\Bundle\DoctrineBundle\Repository\ServiceEntityRepository;
|
||||
use Doctrine\Persistence\ManagerRegistry;
|
||||
use Symfony\Component\Uid\Uuid;
|
||||
|
||||
/**
|
||||
* @extends ServiceEntityRepository<Member>
|
||||
@ -28,6 +36,73 @@ class MemberRepository extends ServiceEntityRepository
|
||||
;
|
||||
}
|
||||
|
||||
public function getMembersByCaseAndNote(MemberCase $case, Note $note)
|
||||
{
|
||||
$table = 'standard_note_member';
|
||||
if ($note instanceof VisitNote) {
|
||||
$table = 'visit_note_members';
|
||||
}
|
||||
|
||||
$conn = $this->getEntityManager()->getConnection();
|
||||
$sql = "SELECT m.*,
|
||||
(
|
||||
SELECT COUNT(1)
|
||||
FROM {$table} n
|
||||
WHERE n.note_id = :note_id
|
||||
AND
|
||||
n.person_id = m.id
|
||||
) as 'checked'
|
||||
FROM member m
|
||||
JOIN member_case mc ON mc.id = m.member_case_id
|
||||
WHERE
|
||||
mc.id = :case_id";
|
||||
$stmt = $conn->prepare($sql);
|
||||
|
||||
$result = $stmt->executeQuery([
|
||||
'note_id' => $note->getId()->toBinary(),
|
||||
'case_id' => $case->getId()->toBinary()
|
||||
]);
|
||||
|
||||
$res = [];
|
||||
|
||||
foreach ($result->fetchAllAssociative() as $row) {
|
||||
$member = new Member();
|
||||
$member->setId(Uuid::fromBinary($row['id']))
|
||||
->setCaseId($this->getEntityManager()->find(MemberCase::class, Uuid::fromBinary($row['member_case_id'])))
|
||||
->setFirstName($row['first_name'])
|
||||
->setLastName($row['last_name'])
|
||||
->setRelationship(RelationshipType::from($row['relationship']))
|
||||
->setPersonalId($row['personal_id'])
|
||||
->setGender(GenderType::from($row['gender']))
|
||||
->setDob(new \DateTime($row['dob']))
|
||||
->setLanguage($row['language'])
|
||||
->setEmergencyContact($row['emergency_contact'])
|
||||
->setPhone($row['phone'])
|
||||
->setDayPhone($row['day_phone'])
|
||||
->setEveningPhone($row['evening_phone'])
|
||||
->setCellPhone($row['cell_phone'])
|
||||
->setEmail($row['email'])
|
||||
->setSchool($row['school'])
|
||||
->setAddress($row['address'])
|
||||
->setCity($row['city'])
|
||||
->setState($row['state'])
|
||||
->setZip($row['zip'])
|
||||
->setMaritalStatus($row['marital_status'])
|
||||
->setChild($row['is_child'])
|
||||
->setParent($row['is_parent'])
|
||||
->setAdultChild($row['is_adult_child'])
|
||||
->setLegalGuardian($row['is_legal_guardian'])
|
||||
->setParentsLiveTogether($row['parents_live_together'])
|
||||
->setDcsApproved($row['dcs_approved'])
|
||||
->setChecked($row['checked'])
|
||||
;
|
||||
|
||||
$res[] = $member;
|
||||
}
|
||||
|
||||
return $res;
|
||||
}
|
||||
|
||||
// /**
|
||||
// * @return Member[] Returns an array of Member objects
|
||||
// */
|
||||
|
Loading…
Reference in New Issue
Block a user