public OrderItem apply(Map<String, Object> map) { if (map == null) { return null; } OrderItem orderItem = new OrderItem(); orderItem.setId(UUID.fromString((String) map.get("id"))); orderItem.setOrderId(UUID.fromString((String) map.get("order_id"))); if (map.containsKey("purchasable_id") && map.get("purchasable_id") != null) { // There might not be a purchasable id orderItem.setPurchasableId(UUID.fromString((String) map.get("purchasable_id"))); } orderItem.setType((String) map.get("type")); orderItem.setTitle((String) map.get("title")); orderItem.setMerchant((String) map.get("merchant")); orderItem.setQuantity(((Integer) map.get("quantity")).longValue()); orderItem.setUnitPrice(BigDecimal.valueOf((Double) map.get("unit_price"))); orderItem.setItemTotal(BigDecimal.valueOf((Double) map.get("item_total"))); if (map.containsKey("vat_rate") && map.get("vat_rate") != null) { // There might not be a VAT rate orderItem.setVatRate(BigDecimal.valueOf((Double) map.get("vat_rate"))); } if (map.containsKey("data") && map.get("data") != null) { // There might not be data orderItem.addData((Map<String, Object>) map.get("data")); } return orderItem; } }).filter(Predicates.notNull()).toList();
orderItem.setOrderId(order.getId());
@Override public Order create(@Valid Order order) throws EntityAlreadyExistsException, InvalidEntityException { this.dao.begin(); String slug = String.format("%08d", lastOrderNumber() + 1); order.setSlug(slug); order.setId(UUID.randomUUID()); this.dao.createEntity(order, ORDER_TABLE_NAME, getTenant()); this.dao.createOrder(order); for (OrderItem item : order.getOrderItems()) { item.setId(UUID.randomUUID()); item.setOrderId(order.getId()); } this.dao.insertOrderItems(order.getOrderItems()); this.dao.commit(); return order; }