2121
2222trait DeletesCaseRecords
2323{
24- private function deleteCasesStarted (string $ caseNumber ): void
24+ private function deleteCasesStarted (string | array $ caseNumbers ): void
2525 {
26- CaseStarted::query ()
27- ->where ('case_number ' , $ caseNumber )
28- ->delete ();
26+ if (is_array ($ caseNumbers ) && $ caseNumbers !== []) {
27+ CaseStarted::query ()
28+ ->whereIn ('case_number ' , $ caseNumbers )
29+ ->delete ();
30+ } else {
31+ CaseStarted::query ()
32+ ->where ('case_number ' , $ caseNumbers )
33+ ->delete ();
34+ }
2935 }
3036
31- private function deleteCasesParticipated (string $ caseNumber ): void
37+ private function deleteCasesParticipated (string | array $ caseNumbers ): void
3238 {
33- CaseParticipated::query ()
34- ->where ('case_number ' , $ caseNumber )
35- ->delete ();
39+ if (is_array ($ caseNumbers )) {
40+ CaseParticipated::query ()
41+ ->whereIn ('case_number ' , $ caseNumbers )
42+ ->delete ();
43+ } else {
44+ CaseParticipated::query ()
45+ ->where ('case_number ' , $ caseNumbers )
46+ ->delete ();
47+ }
3648 }
3749
3850 private function deleteCaseNumbers (array $ requestIds ): void
@@ -183,11 +195,18 @@ private function deleteRequestMedia(array $requestIds): void
183195 ->delete ();
184196 }
185197
186- private function deleteComments (string $ caseNumber , array $ requestIds , array $ tokenIds ): void
198+ private function deleteComments (string | array $ caseNumbers , array $ requestIds , array $ tokenIds ): void
187199 {
188- Comment::query ()
189- ->where ('case_number ' , $ caseNumber )
190- ->orWhere (function ($ query ) use ($ requestIds , $ tokenIds ) {
200+ if (is_array ($ caseNumbers ) && $ caseNumbers !== []) {
201+ $ query = Comment::query ()
202+ ->whereIn ('case_number ' , $ caseNumbers );
203+ } else {
204+ $ query = Comment::query ()
205+ ->where ('case_number ' , $ caseNumbers );
206+ }
207+
208+ if ($ requestIds !== [] || $ tokenIds !== []) {
209+ $ query ->orWhere (function ($ query ) use ($ requestIds , $ tokenIds ) {
191210 $ query ->where ('commentable_type ' , ProcessRequest::class)
192211 ->whereIn ('commentable_id ' , $ requestIds );
193212
@@ -197,8 +216,10 @@ private function deleteComments(string $caseNumber, array $requestIds, array $to
197216 ->whereIn ('commentable_id ' , $ tokenIds );
198217 });
199218 }
200- })
201- ->delete ();
219+ });
220+ }
221+
222+ $ query ->delete ();
202223 }
203224
204225 private function deleteNotifications (array $ requestIds ): void
@@ -220,4 +241,20 @@ private function deleteNotifications(array $requestIds): void
220241 ->whereIn ('data->type ' , $ notificationTypes )
221242 ->delete ();
222243 }
244+
245+ private function dispatchSavedSearchRecount (): void
246+ {
247+ if (!config ('savedsearch.count ' , false )) {
248+ return ;
249+ }
250+
251+ $ jobClass = 'ProcessMaker \\Package \\SavedSearch \\Jobs \\RecountAllSavedSearches ' ;
252+ if (!class_exists ($ jobClass )) {
253+ return ;
254+ }
255+
256+ DB ::afterCommit (static function () use ($ jobClass ): void {
257+ $ jobClass ::dispatch (['request ' , 'task ' ]);
258+ });
259+ }
223260}
0 commit comments