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; }