88use App \Filament \Resources \Beneficiaries \Resources \Catagraphies \CatagraphyResource ;
99use App \Filament \Resources \Beneficiaries \Resources \Catagraphies \Concerns \GetRecordFromParentRecord ;
1010use App \Filament \Resources \Beneficiaries \Resources \Catagraphies \Concerns \HasBreadcrumbs ;
11- use Filament \ Actions \ DeleteAction ;
12- use Filament \ Actions \ ViewAction ;
11+ use App \ Models \ Catagraphy ;
12+ use App \ Models \ Vulnerability \ Vulnerability ;
1313use Filament \Resources \Pages \EditRecord ;
14+ use Illuminate \Database \Eloquent \Model ;
1415
1516class EditCatagraphy extends EditRecord
1617{
@@ -20,11 +21,58 @@ class EditCatagraphy extends EditRecord
2021
2122 protected static string $ resource = CatagraphyResource::class;
2223
23- protected function getHeaderActions (): array
24+ public function getTitle (): string
2425 {
25- return [
26- ViewAction::make (),
27- DeleteAction::make (),
28- ];
26+ return __ ('catagraphy.form.edit ' );
27+ }
28+
29+ public function getBreadcrumb (): string
30+ {
31+ return $ this ->getTitle ();
32+ }
33+
34+ protected function authorizeAccess (): void
35+ {
36+ parent ::authorizeAccess ();
37+
38+ abort_unless ($ this ->getParentRecord ()->isRegular (), 404 );
39+ }
40+
41+ /**
42+ * @param Catagraphy $record
43+ * @param array<string, mixed> $data
44+ * @return Catagraphy
45+ */
46+ protected function handleRecordUpdate (Model $ record , array $ data ): Model
47+ {
48+ $ data ['nurse_id ' ] = auth ()->id ();
49+ $ data ['beneficiary_id ' ] = $ this ->getParentRecord ()->id ;
50+ // dd($data);
51+ // Handle pregnancy data
52+ if (! Vulnerability::isPregnancy ($ data ['cat_rep ' ])) {
53+ $ data ['cat_preg ' ] = null ;
54+ }
55+
56+ $ record ->fill ($ data )->save ();
57+
58+ if ($ record ->beneficiary ->isRegistered ()) {
59+ $ record ->beneficiary ->markAsCatagraphed ();
60+ }
61+
62+ $ this ->form ->saveRelationships ();
63+
64+ // Clear disabilities relationship if has_disabilities is false
65+ // using each->delete() to trigger the model events
66+ if (! $ record ->has_disabilities ) {
67+ $ record ->disabilities ->each ->delete ();
68+ }
69+
70+ // Clear diseases relationship if has_health_issues is false
71+ // using each->delete() to trigger the model events
72+ if (! $ record ->has_health_issues ) {
73+ $ record ->diseases ->each ->delete ();
74+ }
75+
76+ return $ record ;
2977 }
3078}
0 commit comments