blob: c0b1be3ce42ae09dc391dbf9ae13cbcddef43ce0 [file] [log] [blame]
/*
* 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"