⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 paymentmethodservices.java

📁 Sequoia ERP是一个真正的企业级开源ERP解决方案。它提供的模块包括:电子商务应用(e-commerce), POS系统(point of sales),知识管理,存货与仓库管理
💻 JAVA
📖 第 1 页 / 共 3 页
字号:
/* * $Id: PaymentMethodServices.java 6726 2006-02-14 03:24:33Z jonesde $ * *  Copyright (c) 2001-2006 The Open For Business Project - www.ofbiz.org * *  Permission is hereby granted, free of charge, to any person obtaining a *  copy of this software and associated documentation files (the "Software"), *  to deal in the Software without restriction, including without limitation *  the rights to use, copy, modify, merge, publish, distribute, sublicense, *  and/or sell copies of the Software, and to permit persons to whom the *  Software is furnished to do so, subject to the following conditions: * *  The above copyright notice and this permission notice shall be included *  in all copies or substantial portions of the Software. * *  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *  OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *  MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *  IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY *  CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT *  OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *  THE USE OR OTHER DEALINGS IN THE SOFTWARE. */package org.ofbiz.accounting.payment;import java.sql.Timestamp;import java.util.HashMap;import java.util.LinkedList;import java.util.List;import java.util.Map;import org.ofbiz.base.util.Debug;import org.ofbiz.base.util.StringUtil;import org.ofbiz.base.util.UtilDateTime;import org.ofbiz.base.util.UtilMisc;import org.ofbiz.base.util.UtilValidate;import org.ofbiz.entity.GenericDelegator;import org.ofbiz.entity.GenericEntityException;import org.ofbiz.entity.GenericValue;import org.ofbiz.entity.util.EntityUtil;import org.ofbiz.security.Security;import org.ofbiz.service.DispatchContext;import org.ofbiz.service.ModelService;import org.ofbiz.service.ServiceUtil;/** * Services for Payment maintenance * * @author     <a href="mailto:jonesde@ofbiz.org">David E. Jones</a> * @version    $Rev: 6726 $ * @since      2.0 */public class PaymentMethodServices {        public final static String module = PaymentMethodServices.class.getName();    /**     * Deletes a PaymentMethod entity according to the parameters passed in the context     * <b>security check</b>: userLogin partyId must equal paymentMethod partyId, or must have PAY_INFO_DELETE permission     * @param ctx The DispatchContext that this service is operating in     * @param context Map containing the input parameters     * @return Map with the result of the service, the output parameters     */    public static Map deletePaymentMethod(DispatchContext ctx, Map context) {        Map result = new HashMap();        GenericDelegator delegator = ctx.getDelegator();        Security security = ctx.getSecurity();        GenericValue userLogin = (GenericValue) context.get("userLogin");        Timestamp now = UtilDateTime.nowTimestamp();        // never delete a PaymentMethod, just put a to date on the link to the party        String paymentMethodId = (String) context.get("paymentMethodId");        GenericValue paymentMethod = null;        try {            paymentMethod = delegator.findByPrimaryKey("PaymentMethod", UtilMisc.toMap("paymentMethodId", paymentMethodId));        } catch (GenericEntityException e) {            Debug.logWarning(e.toString(), module);            return ServiceUtil.returnError("ERROR: Could not find Payment Method to delete (read failure: " + e.getMessage() + ")");        }        if (paymentMethod == null) {            return ServiceUtil.returnError("ERROR: Could not find Payment Method to delete (read failure)");        }        // <b>security check</b>: userLogin partyId must equal paymentMethod partyId, or must have PAY_INFO_DELETE permission        if (paymentMethod.get("partyId") == null || !paymentMethod.getString("partyId").equals(userLogin.getString("partyId"))) {            if (!security.hasEntityPermission("PAY_INFO", "_DELETE", userLogin)) {                return ServiceUtil.returnError("You do not have permission to delete Payment Method for this partyId");            }        }        paymentMethod.set("thruDate", now);        try {            paymentMethod.store();        } catch (GenericEntityException e) {            Debug.logWarning(e.toString(), module);            return ServiceUtil.returnError("ERROR: Could not delete Payment Method (write failure): " + e.getMessage());        }        result.put(ModelService.RESPONSE_MESSAGE, ModelService.RESPOND_SUCCESS);        return result;    }        public static Map makeExpireDate(DispatchContext ctx, Map context) {        Map result = new HashMap();        String expMonth = (String) context.get("expMonth");        String expYear = (String) context.get("expYear");                StringBuffer expDate = new StringBuffer();        expDate.append(expMonth);        expDate.append("/");        expDate.append(expYear);        result.put("expireDate", expDate.toString());        result.put(ModelService.RESPONSE_MESSAGE, ModelService.RESPOND_SUCCESS);        return result;    }    /**     * Creates CreditCard and PaymentMethod entities according to the parameters passed in the context     * <b>security check</b>: userLogin partyId must equal partyId, or must have PAY_INFO_CREATE permission     * @param ctx The DispatchContext that this service is operating in     * @param context Map containing the input parameters     * @return Map with the result of the service, the output parameters     */    public static Map createCreditCard(DispatchContext ctx, Map context) {        Map result = new HashMap();        GenericDelegator delegator = ctx.getDelegator();        Security security = ctx.getSecurity();        GenericValue userLogin = (GenericValue) context.get("userLogin");        Timestamp now = UtilDateTime.nowTimestamp();        String partyId = ServiceUtil.getPartyIdCheckSecurity(userLogin, security, context, result, "PAY_INFO", "_CREATE");        if (result.size() > 0) return result;        // do some more complicated/critical validation...        List messages = new LinkedList();        // first remove all spaces from the credit card number        context.put("cardNumber", StringUtil.removeSpaces((String) context.get("cardNumber")));        if (!UtilValidate.isCardMatch((String) context.get("cardType"), (String) context.get("cardNumber")))            messages.add(                (String) context.get("cardNumber")                    + UtilValidate.isCreditCardPrefixMsg                    + (String) context.get("cardType")                    + UtilValidate.isCreditCardSuffixMsg                    + " (It appears to be a "                    + UtilValidate.getCardType((String) context.get("cardNumber"))                    + " credit card number)");        if (!UtilValidate.isDateAfterToday((String) context.get("expireDate")))            messages.add("The expiration date " + (String) context.get("expireDate") + " is before today.");        if (messages.size() > 0) {            return ServiceUtil.returnError(messages);        }        List toBeStored = new LinkedList();        GenericValue newPm = delegator.makeValue("PaymentMethod", null);        toBeStored.add(newPm);        GenericValue newCc = delegator.makeValue("CreditCard", null);        toBeStored.add(newCc);        String newPmId = null;        try {            newPmId = delegator.getNextSeqId("PaymentMethod");        } catch (IllegalArgumentException e) {            return ServiceUtil.returnError("ERROR: Could not create credit card (id generation failure)");                    }        newPm.set("partyId", partyId);        newPm.set("description",context.get("description"));        newPm.set("fromDate", (context.get("fromDate") != null ? context.get("fromDate") : now));        newPm.set("thruDate", context.get("thruDate"));        newCc.set("companyNameOnCard", context.get("companyNameOnCard"));        newCc.set("titleOnCard", context.get("titleOnCard"));        newCc.set("firstNameOnCard", context.get("firstNameOnCard"));        newCc.set("middleNameOnCard", context.get("middleNameOnCard"));        newCc.set("lastNameOnCard", context.get("lastNameOnCard"));        newCc.set("suffixOnCard", context.get("suffixOnCard"));        newCc.set("cardType", context.get("cardType"));        newCc.set("cardNumber", context.get("cardNumber"));        newCc.set("expireDate", context.get("expireDate"));        newPm.set("paymentMethodId", newPmId);        newPm.set("paymentMethodTypeId", "CREDIT_CARD");        newCc.set("paymentMethodId", newPmId);        GenericValue newPartyContactMechPurpose = null;        String contactMechId = (String) context.get("contactMechId");        if (contactMechId != null && contactMechId.length() > 0 && !contactMechId.equals("_NEW_")) {            // set the contactMechId on the credit card            newCc.set("contactMechId", context.get("contactMechId"));            // add a PartyContactMechPurpose of BILLING_LOCATION if necessary            String contactMechPurposeTypeId = "BILLING_LOCATION";            GenericValue tempVal = null;            try {                List allPCMPs = EntityUtil.filterByDate(delegator.findByAnd("PartyContactMechPurpose",                        UtilMisc.toMap("partyId", partyId, "contactMechId", contactMechId, "contactMechPurposeTypeId", contactMechPurposeTypeId), null), true);                tempVal = EntityUtil.getFirst(allPCMPs);            } catch (GenericEntityException e) {                Debug.logWarning(e.getMessage(), module);                tempVal = null;            }            if (tempVal == null) {                // no value found, create a new one                newPartyContactMechPurpose = delegator.makeValue("PartyContactMechPurpose",                        UtilMisc.toMap("partyId", partyId, "contactMechId", contactMechId, "contactMechPurposeTypeId", contactMechPurposeTypeId, "fromDate", now));            }        }        if (newPartyContactMechPurpose != null) toBeStored.add(newPartyContactMechPurpose);        try {            delegator.storeAll(toBeStored);        } catch (GenericEntityException e) {            Debug.logWarning(e.getMessage(), module);            return ServiceUtil.returnError("ERROR: Could not create credit card (write failure): " + e.getMessage());        }        result.put("paymentMethodId", newCc.getString("paymentMethodId"));        result.put(ModelService.RESPONSE_MESSAGE, ModelService.RESPOND_SUCCESS);        return result;    }    /**     * Updates CreditCard and PaymentMethod entities according to the parameters passed in the context     * <b>security check</b>: userLogin partyId must equal partyId, or must have PAY_INFO_UPDATE permission     * @param ctx The DispatchContext that this service is operating in     * @param context Map containing the input parameters     * @return Map with the result of the service, the output parameters     */    public static Map updateCreditCard(DispatchContext ctx, Map context) {        Map result = new HashMap();        GenericDelegator delegator = ctx.getDelegator();        Security security = ctx.getSecurity();        GenericValue userLogin = (GenericValue) context.get("userLogin");        Timestamp now = UtilDateTime.nowTimestamp();        String partyId = ServiceUtil.getPartyIdCheckSecurity(userLogin, security, context, result, "PAY_INFO", "_UPDATE");        if (result.size() > 0) return result;        List toBeStored = new LinkedList();        boolean isModified = false;        GenericValue paymentMethod = null;        GenericValue newPm = null;        GenericValue creditCard = null;        GenericValue newCc = null;        String paymentMethodId = (String) context.get("paymentMethodId");        try {            creditCard = delegator.findByPrimaryKey("CreditCard", UtilMisc.toMap("paymentMethodId", paymentMethodId));            paymentMethod = delegator.findByPrimaryKey("PaymentMethod", UtilMisc.toMap("paymentMethodId", paymentMethodId));        } catch (GenericEntityException e) {            Debug.logWarning(e.getMessage(), module);            return ServiceUtil.returnError(

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -