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;
|
namespace App\Repository\Case;
|
||||||
|
|
||||||
use App\Entity\Case\Member;
|
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\Bundle\DoctrineBundle\Repository\ServiceEntityRepository;
|
||||||
use Doctrine\Persistence\ManagerRegistry;
|
use Doctrine\Persistence\ManagerRegistry;
|
||||||
|
use Symfony\Component\Uid\Uuid;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @extends ServiceEntityRepository<Member>
|
* @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
|
// * @return Member[] Returns an array of Member objects
|
||||||
// */
|
// */
|
||||||
|
Loading…
Reference in New Issue
Block a user