@@ -203,6 +203,7 @@ private function associateToSigners(array $data, int $fileId): array {
203203 $ this ->deleteIdentifyMethodIfNotExits ($ data ['users ' ], $ fileId );
204204
205205 $ this ->sequentialSigningService ->resetOrderCounter ();
206+ $ fileStatus = $ data ['status ' ] ?? null ;
206207
207208 foreach ($ data ['users ' ] as $ user ) {
208209 $ userProvidedOrder = isset ($ user ['signingOrder ' ]) ? (int )$ user ['signingOrder ' ] : null ;
@@ -216,19 +217,21 @@ private function associateToSigners(array $data, int $fileId): array {
216217 ],
217218 displayName: $ user ['displayName ' ] ?? '' ,
218219 description: $ user ['description ' ] ?? '' ,
219- notify: empty ($ user ['notify ' ]) && $ this ->isStatusAbleToNotify ($ data [ ' status ' ] ?? null ),
220+ notify: empty ($ user ['notify ' ]) && $ this ->isStatusAbleToNotify ($ fileStatus ),
220221 fileId: $ fileId ,
221222 signingOrder: $ signingOrder ,
223+ fileStatus: $ fileStatus ,
222224 );
223225 }
224226 } else {
225227 $ return [] = $ this ->associateToSigner (
226228 identifyMethods: $ user ['identify ' ],
227229 displayName: $ user ['displayName ' ] ?? '' ,
228230 description: $ user ['description ' ] ?? '' ,
229- notify: empty ($ user ['notify ' ]) && $ this ->isStatusAbleToNotify ($ data [ ' status ' ] ?? null ),
231+ notify: empty ($ user ['notify ' ]) && $ this ->isStatusAbleToNotify ($ fileStatus ),
230232 fileId: $ fileId ,
231233 signingOrder: $ signingOrder ,
234+ fileStatus: $ fileStatus ,
232235 );
233236 }
234237 }
@@ -250,6 +253,7 @@ private function associateToSigner(
250253 bool $ notify ,
251254 int $ fileId ,
252255 int $ signingOrder = 0 ,
256+ ?int $ fileStatus = null ,
253257 ): SignRequestEntity {
254258 $ identifyMethodsIncances = $ this ->identifyMethod ->getByUserData ($ identifyMethods );
255259 if (empty ($ identifyMethodsIncances )) {
@@ -268,7 +272,7 @@ private function associateToSigner(
268272 $ currentStatus = $ signRequest ->getStatusEnum ();
269273
270274 if ($ isNewSignRequest || $ currentStatus === \OCA \Libresign \Enum \SignRequestStatus::DRAFT ) {
271- $ initialStatus = $ this ->determineInitialStatus ($ signingOrder );
275+ $ initialStatus = $ this ->determineInitialStatus ($ signingOrder, $ fileStatus );
272276 $ signRequest ->setStatusEnum ($ initialStatus );
273277 }
274278
@@ -284,7 +288,11 @@ private function associateToSigner(
284288 return $ signRequest ;
285289 }
286290
287- private function determineInitialStatus (int $ signingOrder ): \OCA \Libresign \Enum \SignRequestStatus {
291+ private function determineInitialStatus (int $ signingOrder , ?int $ fileStatus = null ): \OCA \Libresign \Enum \SignRequestStatus {
292+ if ($ fileStatus === FileEntity::STATUS_DRAFT ) {
293+ return \OCA \Libresign \Enum \SignRequestStatus::DRAFT ;
294+ }
295+
288296 if (!$ this ->sequentialSigningService ->isOrderedNumericFlow ()) {
289297 return \OCA \Libresign \Enum \SignRequestStatus::ABLE_TO_SIGN ;
290298 }
0 commit comments