forked from Yara724/api
Merge pull request 'YARA-1202 FIX removed all damaged parts' (#248) from s.yahyaee/yara724-api:main into main
Reviewed-on: Yara724/api#248
This commit is contained in:
@@ -8198,8 +8198,12 @@ export class ClaimRequestManagementService {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
// 4. Validate outer parts haven't been selected yet
|
// 4. Validate outer parts haven't been selected yet.
|
||||||
|
// Skip this guard when FileMaker rejected the claim and the FileReviewer
|
||||||
|
// is updating (overwriting) the previous selection.
|
||||||
|
const isFileMakerRejectedRerun = !!(claimCase as any).fileMakerRejectedPendingReview;
|
||||||
if (
|
if (
|
||||||
|
!isFileMakerRejectedRerun &&
|
||||||
claimCase.damage?.selectedParts &&
|
claimCase.damage?.selectedParts &&
|
||||||
claimCase.damage.selectedParts.length > 0
|
claimCase.damage.selectedParts.length > 0
|
||||||
) {
|
) {
|
||||||
@@ -8266,7 +8270,9 @@ export class ClaimRequestManagementService {
|
|||||||
}));
|
}));
|
||||||
const selectedPartIds = selectedItems.map((p) => p.id);
|
const selectedPartIds = selectedItems.map((p) => p.id);
|
||||||
|
|
||||||
// 6. Update claim case with selected parts and move to next step
|
// 6. Update claim case with selected parts and move to next step.
|
||||||
|
// Also clear fileMakerRejectedPendingReview now that the reviewer has
|
||||||
|
// actively re-submitted outer parts.
|
||||||
const updatedClaim = await this.claimCaseDbService.findByIdAndUpdate(
|
const updatedClaim = await this.claimCaseDbService.findByIdAndUpdate(
|
||||||
claimRequestId,
|
claimRequestId,
|
||||||
{
|
{
|
||||||
@@ -8276,7 +8282,10 @@ export class ClaimRequestManagementService {
|
|||||||
status: ClaimCaseStatus.SELECTING_OTHER_PARTS,
|
status: ClaimCaseStatus.SELECTING_OTHER_PARTS,
|
||||||
"workflow.currentStep": ClaimWorkflowStep.SELECT_OTHER_PARTS,
|
"workflow.currentStep": ClaimWorkflowStep.SELECT_OTHER_PARTS,
|
||||||
"workflow.nextStep": ClaimWorkflowStep.CAPTURE_PART_DAMAGES,
|
"workflow.nextStep": ClaimWorkflowStep.CAPTURE_PART_DAMAGES,
|
||||||
$unset: { "damage.selectedOuterParts": "" },
|
$unset: {
|
||||||
|
"damage.selectedOuterParts": "",
|
||||||
|
"fileMakerRejectedPendingReview": "",
|
||||||
|
},
|
||||||
$push: {
|
$push: {
|
||||||
"workflow.completedSteps": ClaimWorkflowStep.SELECT_OUTER_PARTS,
|
"workflow.completedSteps": ClaimWorkflowStep.SELECT_OUTER_PARTS,
|
||||||
history: {
|
history: {
|
||||||
@@ -8401,8 +8410,11 @@ export class ClaimRequestManagementService {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
// 4. Validate other parts and bank info haven't been submitted yet
|
// 4. Validate other parts and bank info haven't been submitted yet.
|
||||||
|
// Skip when FileMaker rejected the claim — the FileReviewer can update bank info.
|
||||||
|
const isFileMakerRejectedRerun = !!(claimCase as any).fileMakerRejectedPendingReview;
|
||||||
if (
|
if (
|
||||||
|
!isFileMakerRejectedRerun &&
|
||||||
claimCase.money?.sheba &&
|
claimCase.money?.sheba &&
|
||||||
claimCase.money?.nationalCodeOfInsurer &&
|
claimCase.money?.nationalCodeOfInsurer &&
|
||||||
claimCase.workflow?.currentStep !== ClaimWorkflowStep.USER_EXPERT_RESEND
|
claimCase.workflow?.currentStep !== ClaimWorkflowStep.USER_EXPERT_RESEND
|
||||||
|
|||||||
@@ -10615,8 +10615,8 @@ export class RequestManagementService {
|
|||||||
const newRejectionCount = currentRejections + 1;
|
const newRejectionCount = currentRejections + 1;
|
||||||
const actorName = `${fileMaker.firstName || ""} ${fileMaker.lastName || ""}`.trim();
|
const actorName = `${fileMaker.firstName || ""} ${fileMaker.lastName || ""}`.trim();
|
||||||
|
|
||||||
// Steps that belong to the damage-assessment cycle being discarded.
|
// Steps that belong to the re-run assessment cycle.
|
||||||
// They are pulled from completedSteps so the FileReviewer can re-run them.
|
// Pulled from completedSteps so workflow ordering guards pass on re-run.
|
||||||
const assessmentSteps = [
|
const assessmentSteps = [
|
||||||
ClaimWorkflowStep.SELECT_OUTER_PARTS,
|
ClaimWorkflowStep.SELECT_OUTER_PARTS,
|
||||||
ClaimWorkflowStep.SELECT_OTHER_PARTS,
|
ClaimWorkflowStep.SELECT_OTHER_PARTS,
|
||||||
@@ -10630,21 +10630,18 @@ export class RequestManagementService {
|
|||||||
claimStatus: ClaimStatus.NEEDS_REVISION,
|
claimStatus: ClaimStatus.NEEDS_REVISION,
|
||||||
fileMakerRejectionCount: newRejectionCount,
|
fileMakerRejectionCount: newRejectionCount,
|
||||||
fileMakerRejectionReason: reason ?? null,
|
fileMakerRejectionReason: reason ?? null,
|
||||||
// Reset to UPLOAD_REQUIRED_DOCUMENTS so advanceV3ClaimToOuterPartsIfReady
|
// Land directly at SELECT_OUTER_PARTS: the FileReviewer sees the
|
||||||
// can advance the claim to SELECT_OUTER_PARTS when the FileReviewer calls
|
// existing parts pre-populated and can adjust or confirm them.
|
||||||
// select-outer-parts again.
|
"workflow.currentStep": ClaimWorkflowStep.SELECT_OUTER_PARTS,
|
||||||
"workflow.currentStep": ClaimWorkflowStep.UPLOAD_REQUIRED_DOCUMENTS,
|
"workflow.nextStep": ClaimWorkflowStep.SELECT_OTHER_PARTS,
|
||||||
"workflow.nextStep": ClaimWorkflowStep.SELECT_OUTER_PARTS,
|
|
||||||
"workflow.locked": false,
|
"workflow.locked": false,
|
||||||
|
// Flag consumed by selectOuterPartsV2 / selectOtherPartsV2 to allow
|
||||||
|
// overwriting previously submitted data instead of throwing ConflictException.
|
||||||
|
"fileMakerRejectedPendingReview": true,
|
||||||
},
|
},
|
||||||
// Clear all stale data from the rejected assessment cycle:
|
// Clear stale lock/evaluation fields and media that must be re-captured.
|
||||||
// - workflow lock fields left over from the completed review cycle
|
// Part selections (damage.selectedParts, damage.otherParts) are intentionally
|
||||||
// - evaluation sub-documents (reply, resend, approvals)
|
// preserved as a pre-populated starting point for the FileReviewer to adjust.
|
||||||
// - damage selections: selectedParts, otherParts
|
|
||||||
// - media captures: damagedPart photos, walk-around video
|
|
||||||
// (the FileReviewer must re-select parts and re-photograph everything)
|
|
||||||
// - assignedForReviewBy intentionally kept so the same reviewer
|
|
||||||
// is still scoped to this file on re-lock
|
|
||||||
$unset: {
|
$unset: {
|
||||||
"workflow.lockedAt": "",
|
"workflow.lockedAt": "",
|
||||||
"workflow.expiredAt": "",
|
"workflow.expiredAt": "",
|
||||||
@@ -10654,14 +10651,13 @@ export class RequestManagementService {
|
|||||||
"evaluation.damageExpertResend": "",
|
"evaluation.damageExpertResend": "",
|
||||||
"evaluation.ownerInsurerApproval": "",
|
"evaluation.ownerInsurerApproval": "",
|
||||||
"evaluation.ownerPricedPartsApproval": "",
|
"evaluation.ownerPricedPartsApproval": "",
|
||||||
"damage.selectedParts": "",
|
// Photos and walk-around video must be re-taken for the new part set.
|
||||||
"damage.otherParts": "",
|
|
||||||
"media.damagedParts": "",
|
"media.damagedParts": "",
|
||||||
"media.captures": "",
|
"media.captures": "",
|
||||||
"media.videoCaptureId": "",
|
"media.videoCaptureId": "",
|
||||||
},
|
},
|
||||||
// Remove assessment-cycle steps from completedSteps so none of the
|
// Remove assessment-cycle steps from completedSteps so workflow ordering
|
||||||
// "already completed" guards fire when the FileReviewer re-runs them.
|
// guards pass when the FileReviewer re-runs each step.
|
||||||
$pull: {
|
$pull: {
|
||||||
"workflow.completedSteps": { $in: assessmentSteps },
|
"workflow.completedSteps": { $in: assessmentSteps },
|
||||||
},
|
},
|
||||||
|
|||||||
Reference in New Issue
Block a user