/*
 * 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 org.apache.ofbiz.entity.condition.*
import org.apache.ofbiz.entity.util.EntityUtil
import org.apache.ofbiz.base.util.UtilMisc

context.inputParamEnums = from("Enumeration").where("enumTypeId", "PROD_PRICE_IN_PARAM").orderBy("sequenceId").cache(true).queryList()
context.condOperEnums = from("Enumeration").where("enumTypeId", "PROD_PRICE_COND").orderBy("sequenceId").cache(true).queryList()
context.productPriceActionTypes = from("ProductPriceActionType").orderBy("description").cache(true).queryList()

String priceRuleId = request.getParameter("productPriceRuleId")

if (!priceRuleId) {
    priceRuleId = parameters.get("productPriceRuleId")
}

if (priceRuleId) {
    productPriceRules = []
    productPriceRules.add(from("ProductPriceRule").where("productPriceRuleId", priceRuleId).queryOne())
    productPriceConds = productPriceRules[0].getRelated("ProductPriceCond", null, ["productPriceCondSeqId"], true)
    productPriceActions = productPriceRules[0].getRelated("ProductPriceAction", null, ["productPriceActionSeqId"], true)
    
    productPriceCondAdd = []
    productPriceCondAdd.add(delegator.makeValue("ProductPriceCond"))
    productPriceCondAdd[0].productPriceRuleId = priceRuleId
    productPriceCondAdd[0].inputParamEnumId = context.inputParamEnums[0].enumId
    productPriceCondAdd[0].operatorEnumId = context.condOperEnums[0].enumId
    
    productPriceActionAdd = []
    productPriceActionAdd.add(delegator.makeValue("ProductPriceAction"))
    productPriceActionAdd[0].productPriceRuleId = priceRuleId
    productPriceActionAdd[0].productPriceActionTypeId = context.productPriceActionTypes[0].productPriceActionTypeId
    productPriceActionAdd[0].amount = BigDecimal.ZERO
    
    context.productPriceRules = productPriceRules
    context.productPriceConds = productPriceConds
    context.productPriceActions = productPriceActions
    context.productPriceCondAdd = productPriceCondAdd
    context.productPriceActionAdd = productPriceActionAdd
    
} else {
    context.productPriceRules = null
    context.productPriceConds = null
    context.productPriceActions = null
    context.productPriceCondsAdd = null
    context.productPriceActionsAdd = null
}
