/* * 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. */ import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import org.apache.ofbiz.base.util.UtilHttp; import org.apache.ofbiz.base.util.UtilMisc; import org.apache.ofbiz.entity.Delegator; import org.apache.ofbiz.entity.GenericValue; import org.apache.ofbiz.order.shoppingcart.CheckOutHelper; import org.apache.ofbiz.order.shoppingcart.ShoppingCart; import org.apache.ofbiz.order.shoppingcart.ShoppingCartEvents; import org.apache.ofbiz.service.LocalDispatcher; import org.apache.ofbiz.service.ModelService; import org.apache.ofbiz.service.ServiceUtil; cart = ShoppingCartEvents.getCartObject(request); dispatcher = request.getAttribute("dispatcher"); delegator = request.getAttribute("delegator"); checkOutHelper = new CheckOutHelper(dispatcher, delegator, cart); paramMap = UtilHttp.getParameterMap(request); paymentMethodTypeId = paramMap.paymentMethodTypeId; errorMessages = []; errorMaps = [:]; if (paymentMethodTypeId) { paymentMethodId = request.getAttribute("paymentMethodId"); if ("EXT_OFFLINE".equals(paymentMethodTypeId)) { paymentMethodId = "EXT_OFFLINE"; } singleUsePayment = paramMap.singleUsePayment; appendPayment = paramMap.appendPayment; isSingleUsePayment = "Y".equalsIgnoreCase(singleUsePayment) ?: false; doAppendPayment = "Y".equalsIgnoreCase(appendPayment) ?: false; callResult = checkOutHelper.finalizeOrderEntryPayment(paymentMethodId, null, isSingleUsePayment, doAppendPayment); cpi = cart.getPaymentInfo(paymentMethodId, null, null, null, true); cpi.securityCode = paramMap.cardSecurityCode; ServiceUtil.addErrors(errorMessages, errorMaps, callResult); } if (!errorMessages && !errorMaps) { selPaymentMethods = null; addGiftCard = paramMap.addGiftCard; if ("Y".equalsIgnoreCase(addGiftCard)) { selPaymentMethods = [paymentMethodTypeId : null]; callResult = checkOutHelper.checkGiftCard(paramMap, selPaymentMethods); ServiceUtil.addErrors(errorMessages, errorMaps, callResult); if (!errorMessages && !errorMaps) { gcPaymentMethodId = callResult.paymentMethodId; giftCardAmount = callResult.amount; gcCallRes = checkOutHelper.finalizeOrderEntryPayment(gcPaymentMethodId, giftCardAmount, true, true); ServiceUtil.addErrors(errorMessages, errorMaps, gcCallRes); } } } //See whether we need to return an error or not callResult = ServiceUtil.returnSuccess(); if (errorMessages || errorMaps) { request.setAttribute(ModelService.ERROR_MESSAGE_LIST, errorMessages); request.setAttribute(ModelService.RESPONSE_MESSAGE, ModelService.RESPOND_ERROR); return "error"; } return "success";