void changeLossProvisionConfiguration()

in api/src/main/java/org/apache/fineract/cn/individuallending/api/v1/client/IndividualLending.java [49:106]


  void changeLossProvisionConfiguration(
      @PathVariable("productidentifier") final String productIdentifier,
      @RequestBody LossProvisionConfiguration lossProvisionConfiguration);

  @RequestMapping(
      value = "/individuallending/products/{productidentifier}/lossprovisionconfiguration",
      method = RequestMethod.GET,
      produces = MediaType.ALL_VALUE,
      consumes = MediaType.APPLICATION_JSON_VALUE
  )
  LossProvisionConfiguration getLossProvisionConfiguration(
      @PathVariable("productidentifier") final String productIdentifier);

  @RequestMapping(
      value = "/individuallending/products/{productidentifier}/cases/{caseidentifier}/plannedpayments",
      method = RequestMethod.GET,
      produces = MediaType.ALL_VALUE,
      consumes = MediaType.APPLICATION_JSON_VALUE
  )
  PlannedPaymentPage getPaymentScheduleForCase(
      @PathVariable("productidentifier") final String productIdentifier,
      @PathVariable("caseidentifier") final String caseIdentifier,
      @RequestParam(value = "pageIndex", required = false) final Integer pageIndex,
      @RequestParam(value = "size", required = false) final Integer size,
      @RequestParam(value = "initialDisbursalDate", required = false) final String initialDisbursalDate);

  @RequestMapping(
      value = "/individuallending/products/{productidentifier}/plannedpayments",
      method = RequestMethod.POST,
      produces = MediaType.ALL_VALUE,
      consumes = MediaType.APPLICATION_JSON_VALUE
  )
  PlannedPaymentPage getPaymentScheduleForParameters(
      @PathVariable("productidentifier") final String productIdentifier,
      @RequestParam(value = "pageIndex", required = false) final Integer pageIndex,
      @RequestParam(value = "size", required = false) final Integer size,
      @RequestParam(value = "initialDisbursalDate", required = false) final String initialDisbursalDate,
      final Case caseInstance);

  default Stream<PlannedPayment> getPaymentScheduleForCaseStream(
      final String productIdentifier,
      final String caseIdentifier,
      final String initialDisbursalDate) {
    final PlannedPaymentPage firstPage = this.getPaymentScheduleForCase(
        productIdentifier,
        caseIdentifier,
        0,
        10,
        initialDisbursalDate);

    final Integer pageCount = firstPage.getTotalPages();
        // Sort column is always date and order always ascending so that the order and adjacency of account
        // entries is always stable. This has the advantage that the set of account entries included in the
        // stream is set the moment the first call to fetchAccountEntries (above) is made.
    return Stream.iterate(0, (i) -> i + 1).limit(pageCount)
        .map(i -> this.getPaymentScheduleForCase(productIdentifier, caseIdentifier, i, 10, initialDisbursalDate))
        .flatMap(pageI -> pageI.getElements().stream());
  }