/******************************************************************************* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. *******************************************************************************/ package org.apache.ofbiz.order.test; import java.math.BigDecimal; import java.util.LinkedList; import java.util.List; import java.util.Map; import org.apache.ofbiz.base.util.UtilMisc; import org.apache.ofbiz.entity.GenericValue; import org.apache.ofbiz.entity.util.EntityQuery; import org.apache.ofbiz.service.testtools.OFBizTestCase; public class SalesOrderTest extends OFBizTestCase { protected GenericValue userLogin = null; public SalesOrderTest(String name) { super(name); } @Override protected void setUp() throws Exception { userLogin = EntityQuery.use(delegator).from("UserLogin").where("userLoginId", "system").queryOne(); } @Override protected void tearDown() throws Exception { } public void testCreateSalesOrder() throws Exception { Map<String, Object> ctx = UtilMisc.<String, Object>toMap("partyId", "DemoCustomer", "orderTypeId", "SALES_ORDER", "currencyUom", "USD", "productStoreId", "9000"); List<GenericValue> orderPaymentInfo = new LinkedList<GenericValue>(); GenericValue orderContactMech = delegator.makeValue("OrderContactMech", UtilMisc.toMap("contactMechId", "9015", "contactMechPurposeTypeId", "BILLING_LOCATION")); orderPaymentInfo.add(orderContactMech); GenericValue orderPaymentPreference = delegator.makeValue("OrderPaymentPreference", UtilMisc.toMap("paymentMethodId", "9015", "paymentMethodTypeId", "CREDIT_CARD", "statusId", "PAYMENT_NOT_AUTH", "overflowFlag", "N", "maxAmount", new BigDecimal("49.26"))); orderPaymentInfo.add(orderPaymentPreference); ctx.put("orderPaymentInfo", orderPaymentInfo); List<GenericValue> orderItemShipGroupInfo = new LinkedList<GenericValue>(); orderContactMech.set("contactMechPurposeTypeId", "SHIPPING_LOCATION"); orderItemShipGroupInfo.add(orderContactMech); GenericValue orderItemShipGroup = delegator.makeValue("OrderItemShipGroup", UtilMisc.toMap("carrierPartyId", "UPS", "contactMechId", "9015", "isGift", "N", "shipGroupSeqId", "00001", "shipmentMethodTypeId", "NEXT_DAY")); orderItemShipGroupInfo.add(orderItemShipGroup); GenericValue orderItemShipGroupAssoc = delegator.makeValue("OrderItemShipGroupAssoc", UtilMisc.toMap("orderItemSeqId", "00001", "quantity", BigDecimal.ONE, "shipGroupSeqId", "00001")); orderItemShipGroupInfo.add(orderItemShipGroupAssoc); GenericValue orderAdjustment = null; orderAdjustment = delegator.makeValue("OrderAdjustment", UtilMisc.toMap("orderAdjustmentTypeId", "SHIPPING_CHARGES", "shipGroupSeqId", "00001", "amount", new BigDecimal("12.45"))); orderItemShipGroupInfo.add(orderAdjustment); orderAdjustment = delegator.makeValue("OrderAdjustment", UtilMisc.toMap("orderAdjustmentTypeId", "SALES_TAX", "orderItemSeqId", "00001", "overrideGlAccountId", "224153", "primaryGeoId", "UT", "shipGroupSeqId", "00001", "sourcePercentage", new BigDecimal(4.7))); orderAdjustment.set("taxAuthGeoId", "UT"); orderAdjustment.set("taxAuthPartyId", "UT_TAXMAN"); orderAdjustment.set("taxAuthorityRateSeqId", "9004"); orderAdjustment.set("amount", new BigDecimal(1.824)); orderAdjustment.set("comments", "Utah State Sales Tax"); orderItemShipGroupInfo.add(orderAdjustment); orderAdjustment = delegator.makeValue("OrderAdjustment", UtilMisc.toMap("orderAdjustmentTypeId", "SALES_TAX", "orderItemSeqId", "00001", "overrideGlAccountId", "224153", "primaryGeoId", "UT-UTAH", "shipGroupSeqId", "00001", "sourcePercentage", new BigDecimal(0.1))); orderAdjustment.set("taxAuthGeoId", "UT-UTAH"); orderAdjustment.set("taxAuthPartyId", "UT_UTAH_TAXMAN"); orderAdjustment.set("taxAuthorityRateSeqId", "9005"); orderAdjustment.set("amount", new BigDecimal(0.039)); orderAdjustment.set("comments", "Utah County, Utah Sales Tax"); orderItemShipGroupInfo.add(orderAdjustment); orderAdjustment = delegator.makeValue("OrderAdjustment", UtilMisc.toMap("orderAdjustmentTypeId", "SALES_TAX", "orderItemSeqId", "00001", "overrideGlAccountId", "224000", "primaryGeoId", "_NA_", "shipGroupSeqId", "00001", "sourcePercentage", new BigDecimal(1))); orderAdjustment.set("taxAuthGeoId", "_NA_"); orderAdjustment.set("taxAuthPartyId", "_NA_"); orderAdjustment.set("taxAuthorityRateSeqId", "9000"); orderAdjustment.set("amount", new BigDecimal(0.384)); orderAdjustment.set("comments", "1% OFB _NA_ Tax"); orderItemShipGroupInfo.add(orderAdjustment); ctx.put("orderItemShipGroupInfo", orderItemShipGroupInfo); List<GenericValue> orderAdjustments = new LinkedList<GenericValue>(); orderAdjustment = delegator.makeValue("OrderAdjustment", UtilMisc.toMap("orderAdjustmentTypeId", "PROMOTION_ADJUSTMENT", "productPromoActionSeqId", "01", "productPromoId", "9011", "productPromoRuleId", "01", "amount", new BigDecimal(-3.84))); orderAdjustments.add(orderAdjustment); ctx.put("orderAdjustments", orderAdjustments); List<GenericValue> orderItems = new LinkedList<GenericValue>(); GenericValue orderItem = delegator.makeValue("OrderItem", UtilMisc.toMap("orderItemSeqId", "00001", "orderItemTypeId", "PRODUCT_ORDER_ITEM", "prodCatalogId", "DemoCatalog", "productId", "GZ-2644", "quantity", BigDecimal.ONE, "selectedAmount", BigDecimal.ZERO)); orderItem.set("isPromo", "N"); orderItem.set("isModifiedPrice", "N"); orderItem.set("unitPrice", new BigDecimal("38.4")); orderItem.set("unitListPrice", new BigDecimal("48.0")); orderItem.set("statusId", "ITEM_CREATED"); orderItems.add(orderItem); orderItem = delegator.makeValue("OrderItem", UtilMisc.toMap("orderItemSeqId", "00002", "orderItemTypeId", "PRODUCT_ORDER_ITEM", "prodCatalogId", "DemoCatalog", "productId", "GZ-1006-1", "quantity", BigDecimal.ONE, "selectedAmount", BigDecimal.ZERO)); orderItem.set("isPromo", "N"); orderItem.set("isModifiedPrice", "N"); orderItem.set("unitPrice", new BigDecimal("1.99")); orderItem.set("unitListPrice", new BigDecimal("5.99")); orderItem.set("statusId", "ITEM_CREATED"); orderItems.add(orderItem); ctx.put("orderItems", orderItems); List<GenericValue> orderTerms = new LinkedList<GenericValue>(); ctx.put("orderTerms", orderTerms); GenericValue OrderContactMech = delegator.makeValue("OrderContactMech"); OrderContactMech.set("contactMechPurposeTypeId", "SHIPPING_LOCATION"); OrderContactMech.set("contactMechId", "10000"); List<GenericValue> orderContactMechs = new LinkedList<GenericValue>(); orderContactMechs.add(OrderContactMech); ctx.put("placingCustomerPartyId", "DemoCustomer"); ctx.put("endUserCustomerPartyId", "DemoCustomer"); ctx.put("shipToCustomerPartyId", "DemoCustomer"); ctx.put("billToCustomerPartyId", "DemoCustomer"); ctx.put("billFromVendorPartyId", "Company"); ctx.put("userLogin", userLogin); Map<String, Object> resp = dispatcher.runSync("storeOrder", ctx); String orderId = (String) resp.get("orderId"); String statusId = (String) resp.get("statusId"); assertNotNull(orderId); assertNotNull(statusId); } }