@Test public void shouldNotCopyExtraLineItemForApprovalRnr() throws Exception { long userId = 5L; Rnr newRnr = make(a(defaultRequisition, with(modifiedBy, userId))); ProgramRnrTemplate template = new ProgramRnrTemplate(new ArrayList<RnrColumn>()); RnrLineItem lineItem1 = make(a(defaultRnrLineItem, with(beginningBalance, 24), with(RnrLineItemBuilder.productCode, "P1"))); RnrLineItem lineItem2 = make(a(defaultRnrLineItem, with(beginningBalance, 25), with(RnrLineItemBuilder.productCode, "P2"))); RnrLineItem spyLineItem1 = spy(lineItem1); newRnr.setFullSupplyLineItems(asList(lineItem1, lineItem2)); rnr.setFullSupplyLineItems(asList(spyLineItem1)); exception.expect(DataException.class); exception.expectMessage("product.code.invalid"); rnr.copyApproverEditableFields(newRnr, template); }
public void copyApproverEditableFields(Rnr rnr, ProgramRnrTemplate template) { this.modifiedBy = rnr.modifiedBy; copyApproverEditableFieldsToLineItems(rnr, template, rnr.fullSupplyLineItems); copyApproverEditableFieldsToLineItems(rnr, template, rnr.nonFullSupplyLineItems); }
Rnr extends BaseModel { public void copyApproverEditableFields(Rnr rnr, ProgramRnrTemplate template) { this.modifiedBy = rnr.modifiedBy; copyApproverEditableFieldsToLineItems(rnr, template, rnr.fullSupplyLineItems); copyApproverEditableFieldsToLineItems(rnr, template, rnr.nonFullSupplyLineItems); } }
Rnr extends BaseModel { public void copyApproverEditableFields(Rnr rnr, ProgramRnrTemplate template) { this.modifiedBy = rnr.modifiedBy; copyApproverEditableFieldsToLineItems(rnr, template, rnr.fullSupplyLineItems); copyApproverEditableFieldsToLineItems(rnr, template, rnr.nonFullSupplyLineItems); } Rnr(Facility facility, Program program, ProcessingPeriod period, Boolean emergency, Long modifiedBy, Long createdBy);  Rnr(Facility facility, Program program, ProcessingPeriod period, Boolean emergency, List<FacilityTypeApprovedProduct> facilityTypeApprovedProducts,
             List<Regimen> regimens, Long modifiedBy);  Rnr(Facility facility, Program program, ProcessingPeriod period);  Rnr(Long id); }
Rnr extends BaseModel { public void copyApproverEditableFields(Rnr rnr, ProgramRnrTemplate template) { this.modifiedBy = rnr.modifiedBy; copyApproverEditableFieldsToLineItems(rnr, template, rnr.fullSupplyLineItems); copyApproverEditableFieldsToLineItems(rnr, template, rnr.nonFullSupplyLineItems); } Rnr(Facility facility, Program program, ProcessingPeriod period, Boolean emergency, Long modifiedBy, Long createdBy);  Rnr(Facility facility, Program program, ProcessingPeriod period, Boolean emergency, List<FacilityTypeApprovedProduct> facilityTypeApprovedProducts,
             List<Regimen> regimens, Long modifiedBy);  Rnr(Facility facility, Program program, ProcessingPeriod period);  Rnr(Long id); void add(RnrLineItem rnrLineItem, Boolean fullSupply); void calculateForApproval(); void fillLineItems(List<FacilityTypeApprovedProduct> facilityTypeApprovedProducts); void setFieldsForApproval(); List<RnrLineItem> getAllLineItems(); void fillBasicInformation(Facility facility, Program program, ProcessingPeriod period); RnrLineItem findCorrespondingLineItem(final RnrLineItem item); RegimenLineItem findCorrespondingRegimenLineItem(final RegimenLineItem regimenLineItem); void setFieldsAccordingToTemplateFrom(Rnr previousRequisition, ProgramRnrTemplate template, RegimenTemplate regimenTemplate); void convertToOrder(Long userId); void fillFullSupplyCost(); void fillNonFullSupplyCost(); void validateForApproval(); void copyCreatorEditableFields(Rnr rnr, ProgramRnrTemplate rnrTemplate, RegimenTemplate regimenTemplate, List<ProgramProduct> programProducts); void copyApproverEditableFields(Rnr rnr, ProgramRnrTemplate template); void setAuditFieldsForRequisition(Long modifiedBy, RnrStatus status); void prepareForFinalApproval(); void approveAndAssignToNextSupervisoryNode(SupervisoryNode parent); boolean isApprovable(); boolean preAuthorize(); void addToNonFullSupplyCost(Money cost); void addToFullSupplyCost(Money cost); boolean isForVirtualFacility(); List<RnrLineItem> getNonSkippedLineItems(); void validateRegimenLineItems(RegimenTemplate regimenTemplate); @JsonIgnore boolean isBudgetingApplicable(); }
Rnr extends BaseModel { public void copyApproverEditableFields(Rnr rnr, ProgramRnrTemplate template) { this.modifiedBy = rnr.modifiedBy; copyApproverEditableFieldsToLineItems(rnr, template, rnr.fullSupplyLineItems); copyApproverEditableFieldsToLineItems(rnr, template, rnr.nonFullSupplyLineItems); } Rnr(Facility facility, Program program, ProcessingPeriod period, Boolean emergency, Long modifiedBy, Long createdBy);  Rnr(Facility facility, Program program, ProcessingPeriod period, Boolean emergency, List<FacilityTypeApprovedProduct> facilityTypeApprovedProducts,
             List<Regimen> regimens, Long modifiedBy);  Rnr(Facility facility, Program program, ProcessingPeriod period);  Rnr(Long id); void add(RnrLineItem rnrLineItem, Boolean fullSupply); void calculateForApproval(); void fillLineItems(List<FacilityTypeApprovedProduct> facilityTypeApprovedProducts); void setFieldsForApproval(); List<RnrLineItem> getAllLineItems(); void fillBasicInformation(Facility facility, Program program, ProcessingPeriod period); RnrLineItem findCorrespondingLineItem(final RnrLineItem item); RegimenLineItem findCorrespondingRegimenLineItem(final RegimenLineItem regimenLineItem); void setFieldsAccordingToTemplateFrom(Rnr previousRequisition, ProgramRnrTemplate template, RegimenTemplate regimenTemplate); void convertToOrder(Long userId); void fillFullSupplyCost(); void fillNonFullSupplyCost(); void validateForApproval(); void copyCreatorEditableFields(Rnr rnr, ProgramRnrTemplate rnrTemplate, RegimenTemplate regimenTemplate, List<ProgramProduct> programProducts); void copyApproverEditableFields(Rnr rnr, ProgramRnrTemplate template); void setAuditFieldsForRequisition(Long modifiedBy, RnrStatus status); void prepareForFinalApproval(); void approveAndAssignToNextSupervisoryNode(SupervisoryNode parent); boolean isApprovable(); boolean preAuthorize(); void addToNonFullSupplyCost(Money cost); void addToFullSupplyCost(Money cost); boolean isForVirtualFacility(); List<RnrLineItem> getNonSkippedLineItems(); void validateRegimenLineItems(RegimenTemplate regimenTemplate); @JsonIgnore boolean isBudgetingApplicable(); static final String RNR_VALIDATION_ERROR; }