@@ -484,13 +484,16 @@ private function getLatestSignedDateFromEnvelope(): ?\DateTime {
484484 $ childrenFiles = $ this ->fileMapper ->getChildrenFiles ($ this ->file ->getId ());
485485 $ latestDate = null ;
486486
487- foreach ($ childrenFiles as $ childFile ) {
488- $ signRequests = $ this ->signRequestMapper ->getByFileId ($ childFile ->getId ());
489- foreach ($ signRequests as $ signRequest ) {
490- $ signed = $ signRequest ->getSigned ();
491- if ($ signed && (!$ latestDate || $ signed > $ latestDate )) {
492- $ latestDate = $ signed ;
493- }
487+ $ childFileIds = array_map (fn ($ childFile ) => $ childFile ->getId (), $ childrenFiles );
488+ if (empty ($ childFileIds )) {
489+ return null ;
490+ }
491+
492+ $ signRequests = $ this ->signRequestMapper ->getByMultipleFileId ($ childFileIds );
493+ foreach ($ signRequests as $ signRequest ) {
494+ $ signed = $ signRequest ->getSigned ();
495+ if ($ signed && (!$ latestDate || $ signed > $ latestDate )) {
496+ $ latestDate = $ signed ;
494497 }
495498 }
496499
@@ -556,10 +559,7 @@ public function toArray(): array {
556559 }
557560
558561 private function computeEnvelopeSignersProgress (): void {
559- if (!$ this ->file || $ this ->file ->getParentFileId ()) {
560- return ;
561- }
562- if (empty ($ this ->fileData ->signers )) {
562+ if (!$ this ->file || $ this ->file ->getParentFileId () || empty ($ this ->fileData ->signers )) {
563563 return ;
564564 }
565565
@@ -568,13 +568,20 @@ private function computeEnvelopeSignersProgress(): void {
568568 return ;
569569 }
570570
571- $ signRequestsByFileId = [];
571+ $ childFileIds = array_map (fn ($ childFile ) => $ childFile ->getId (), $ childrenFiles );
572+ $ allSignRequests = $ this ->signRequestMapper ->getByMultipleFileId ($ childFileIds );
573+
574+ $ signRequestsByFileId = array_fill_keys ($ childFileIds , []);
575+ foreach ($ allSignRequests as $ signRequest ) {
576+ $ signRequestsByFileId [$ signRequest ->getFileId ()][] = $ signRequest ;
577+ }
578+
572579 $ identifyMethodsBySignRequest = [];
573- foreach ( $ childrenFiles as $ child ) {
574- $ signRequestsByFileId [ $ child -> getId ()] = $ this -> signRequestMapper -> getByFileId ( $ child -> getId ());
575- foreach ( $ signRequestsByFileId [ $ child -> getId ()] as $ sr ) {
576- $ identifyMethodsBySignRequest [ $ sr -> getId ()] = $ this -> identifyMethodService -> setIsRequest (false )-> getIdentifyMethodsFromSignRequestId ( $ sr -> getId ());
577- }
580+ if (! empty ( $ allSignRequests ) ) {
581+ $ allSignRequestIds = array_map ( fn ( $ sr ) => $ sr -> getId (), $ allSignRequests );
582+ $ identifyMethodsBySignRequest = $ this -> identifyMethodService
583+ -> setIsRequest (false )
584+ -> getIdentifyMethodsFromSignRequestIds ( $ allSignRequestIds );
578585 }
579586
580587 $ this ->envelopeProgressService ->computeProgress (
0 commit comments