コード例 #1
0
  public DeliveryOrder confirm(DeliveryOrder deliveryOrder) {
    deliveryOrder.setStatus("Confirm");

    List<DeliveryOrderDetail> deliveryOrderDetailList = new ArrayList<DeliveryOrderDetail>();
    for (int i = 0; i < deliveryOrder.getDeliveryOrderDetailList().size(); i++) {
      DeliveryOrderDetail deliveryOrderDetail = deliveryOrder.getDeliveryOrderDetailList().get(i);
      if (deliveryOrderDetail.getQty() != null
          && deliveryOrderDetail.getQty().compareTo(BigDecimal.ZERO) > 0) {
        deliveryOrderDetailList.add(deliveryOrderDetail);

        if (deliveryOrderDetail.getPurchaseOrderDetail() != null) {
          PurchaseOrderDetail purchaseOrderDetail = deliveryOrderDetail.getPurchaseOrderDetail();
          if (purchaseOrderDetail.getShipQty() == null) {
            purchaseOrderDetail.setShipQty(deliveryOrderDetail.getQty());
          } else {
            BigDecimal deliverQty =
                purchaseOrderDetail.getShipQty().add(deliveryOrderDetail.getQty());
            purchaseOrderDetail.setShipQty(deliverQty);
          }

          purchaseOrderDetail = this.purchaseOrderDetailManager.save(purchaseOrderDetail);

          if (purchaseOrderDetail.getQty().compareTo(purchaseOrderDetail.getShipQty()) == 0) {
            this.purchaseOrderManager.tryClosePurchaseOrder(
                purchaseOrderDetail.getPurchaseOrder().getPoNo(), purchaseOrderDetail);
          }

        } else if (deliveryOrderDetail.getScheduleItemDetail() != null) {
          ScheduleItemDetail scheduleItemDetail = deliveryOrderDetail.getScheduleItemDetail();
          if (scheduleItemDetail.getDeliverQty() == null) {
            scheduleItemDetail.setDeliverQty(deliveryOrderDetail.getQty());
          } else {
            BigDecimal deliverQty =
                scheduleItemDetail.getDeliverQty().add(deliveryOrderDetail.getQty());
            scheduleItemDetail.setDeliverQty(deliverQty);
          }

          this.scheduleItemDetailManager.save(scheduleItemDetail);
        }
      } else {
        this.deliveryOrderDetailManager.remove(deliveryOrderDetail.getId());
      }
    }

    deliveryOrder.setDeliveryOrderDetailList(deliveryOrderDetailList);
    this.genericDao.save(deliveryOrder);

    return deliveryOrder;
  }