private void fillPreviousNCsInLineItems( Rnr requisition, Integer numberOfMonths, Date trackingDate) { if (numberOfMonths >= 3 && !(requisition.isEmergency() || requisition.isForVirtualFacility())) { return; } for (RnrLineItem lineItem : requisition.getFullSupplyLineItems()) { List<RnrLineItem> previousLineItems = requisitionRepository.getAuthorizedRegularUnSkippedLineItems( lineItem.getProductCode(), requisition, getNumberOfPreviousNCToTrack(numberOfMonths), trackingDate); List<Integer> nNormalizedConsumptions = (List<Integer>) collect( previousLineItems, new Transformer() { @Override public Object transform(Object o) { return ((RnrLineItem) o).getNormalizedConsumption(); } }); lineItem.setPreviousNormalizedConsumptions(nNormalizedConsumptions); } }
public void fillReportingDays(Rnr requisition) { Date startDate = requisition.getPeriod().getStartDate(); Integer numberOfMonths = requisition.getPeriod().getNumberOfMonths(); List<ProcessingPeriod> twoPreviousPeriods = processingScheduleService.getNPreviousPeriodsInDescOrder(requisition.getPeriod(), 2); if (twoPreviousPeriods.size() != 0) { numberOfMonths = twoPreviousPeriods.get(0).getNumberOfMonths(); startDate = (numberOfMonths < 3 && twoPreviousPeriods.size() != 1) ? twoPreviousPeriods.get(1).getStartDate() : twoPreviousPeriods.get(0).getStartDate(); } for (RnrLineItem lineItem : requisition.getNonSkippedLineItems()) { Integer reportingDays = getReportingDaysBasedOnRequisition( requisition, lineItem.getProductCode(), startDate, numberOfMonths); lineItem.setReportingDays(reportingDays); } }