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

📄 orderchangehelper.java

📁 Sequoia ERP是一个真正的企业级开源ERP解决方案。它提供的模块包括:电子商务应用(e-commerce), POS系统(point of sales),知识管理,存货与仓库管理
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
            }            if (orderHeader != null) {                List orderItems = null;                try {                    orderItems = orderHeader.getRelated("OrderItem");                } catch (GenericEntityException e) {                    Debug.logError(e, "ERROR: Unable to get OrderItem records for OrderHeader : " + orderId, module);                }                if (orderItems != null && orderItems.size() > 0) {                    Iterator oii = orderItems.iterator();                    while (oii.hasNext()) {                        GenericValue orderItem = (GenericValue) oii.next();                        String orderItemSeqId = orderItem.getString("orderItemSeqId");                        GenericValue product = null;                        try {                            product = orderItem.getRelatedOne("Product");                        } catch (GenericEntityException e) {                            Debug.logError(e, "ERROR: Unable to get Product record for OrderItem : " + orderId + "/" + orderItemSeqId, module);                        }                        if (product != null) {                            GenericValue productType = null;                            try {                                productType = product.getRelatedOne("ProductType");                            } catch (GenericEntityException e) {                                Debug.logError(e, "ERROR: Unable to get ProductType from Product : " + product, module);                            }                            if (productType != null) {                                String isDigital = productType.getString("isDigital");                                if (isDigital != null && "Y".equalsIgnoreCase(isDigital)) {                                                                    // update the status                                    Map digitalStatusFields = UtilMisc.toMap("orderId", orderId, "orderItemSeqId", orderItemSeqId, "statusId", digitalItemStatus, "userLogin", userLogin);                                    Map digitalStatusChange = dispatcher.runSync("changeOrderItemStatus", digitalStatusFields);                                    if (ModelService.RESPOND_ERROR.equals(digitalStatusChange.get(ModelService.RESPONSE_MESSAGE))) {                                        Debug.logError("Problems with digital product status change : " + product, module);                                    }                                }                            }                        }                    }                }            }        }    }    public static void cancelInventoryReservations(LocalDispatcher dispatcher, GenericValue userLogin, String orderId) throws GenericServiceException {        // cancel the inventory reservations        Map cancelInvFields = UtilMisc.toMap("orderId", orderId, "userLogin", userLogin);        Map cancelInvResult = dispatcher.runSync("cancelOrderInventoryReservation", cancelInvFields);        if (ModelService.RESPOND_ERROR.equals(cancelInvResult.get(ModelService.RESPONSE_MESSAGE))) {            Debug.logError("Problems reversing inventory reservations for order #" + orderId, module);        }    }    public static void releasePaymentAuthorizations(LocalDispatcher dispatcher, GenericValue userLogin, String orderId) throws GenericServiceException {        Map releaseFields = UtilMisc.toMap("orderId", orderId, "userLogin", userLogin);        Map releaseResult = dispatcher.runSync("releaseOrderPayments", releaseFields);        if (ModelService.RESPOND_ERROR.equals(releaseResult.get(ModelService.RESPONSE_MESSAGE))) {            Debug.logError("Problems releasing payment authorizations for order #" + orderId, module);        }    }    public static void createReceivedPayments(LocalDispatcher dispatcher, GenericValue userLogin, String orderId) throws GenericEntityException, GenericServiceException {        GenericValue orderHeader = null;        try {            orderHeader = dispatcher.getDelegator().findByPrimaryKey("OrderHeader", UtilMisc.toMap("orderId", orderId));        } catch (GenericEntityException e) {            Debug.logError(e, module);        }        if (orderHeader != null) {            OrderReadHelper orh = new OrderReadHelper(orderHeader);            GenericValue btparty = orh.getBillToParty();            String partyId = "_NA_";            if (btparty != null) {                partyId = btparty.getString("partyId");            }            List opps = orh.getPaymentPreferences();            Iterator oppi = opps.iterator();            while (oppi.hasNext()) {                GenericValue opp = (GenericValue) oppi.next();                if ("PAYMENT_RECEIVED".equals(opp.getString("statusId"))) {                    List payments = orh.getOrderPayments(opp);                    if (payments == null || payments.size() == 0) {                        // only do this one time; if we have payment already for this pref ignore.                        Map results = dispatcher.runSync("createPaymentFromPreference",                                 UtilMisc.toMap("userLogin", userLogin, "orderPaymentPreferenceId", opp.getString("orderPaymentPreferenceId"),                                 "paymentRefNum",  UtilDateTime.nowTimestamp().toString(), "paymentFromId", partyId));                        if (results.get(ModelService.RESPONSE_MESSAGE).equals(ModelService.RESPOND_ERROR)) {                            Debug.logError((String) results.get(ModelService.ERROR_MESSAGE), module);                        }                    }                }            }        }    }    public static void createOrderInvoice(LocalDispatcher dispatcher, GenericValue userLogin, String orderId) throws GenericServiceException {        GenericValue orderHeader = null;        try {            orderHeader = dispatcher.getDelegator().findByPrimaryKey("OrderHeader", UtilMisc.toMap("orderId", orderId));        } catch (GenericEntityException e) {            Debug.logError(e, module);        }        if (orderHeader != null) {            OrderReadHelper orh = new OrderReadHelper(orderHeader);            List items = orh.getOrderItems();            Map serviceParam = UtilMisc.toMap("orderId", orderId, "billItems", items, "userLogin", userLogin);            Map serviceRes = dispatcher.runSync("createInvoiceForOrder", serviceParam);            if (ServiceUtil.isError(serviceRes)) {                throw new GenericServiceException(ServiceUtil.getErrorMessage(serviceRes));            }        }    }    public static boolean releaseInitialOrderHold(LocalDispatcher dispatcher, String orderId) {        // get the delegator from the dispatcher        GenericDelegator delegator = dispatcher.getDelegator();        // find the workEffortId for this order        List workEfforts = null;        try {            workEfforts = delegator.findByAnd("WorkEffort", UtilMisc.toMap("currentStatusId", "WF_SUSPENDED", "sourceReferenceId", orderId));        } catch (GenericEntityException e) {            Debug.logError(e, "Problems getting WorkEffort with order ref number: " + orderId, module);            return false;        }        if (workEfforts != null) {            // attempt to release the order workflow from 'Hold' status (resume workflow)            boolean allPass = true;            Iterator wei = workEfforts.iterator();            while (wei.hasNext()) {                GenericValue workEffort = (GenericValue) wei.next();                String workEffortId = workEffort.getString("workEffortId");                try {                    if (workEffort.getString("currentStatusId").equals("WF_SUSPENDED")) {                        WorkflowClient client = new WorkflowClient(dispatcher.getDispatchContext());                        client.resume(workEffortId);                    } else {                        Debug.logVerbose("Current : --{" + workEffort + "}-- not resuming", module);                    }                } catch (WfException e) {                    Debug.logError(e, "Problem resuming activity : " + workEffortId, module);                    allPass = false;                }            }            return allPass;        } else {            Debug.logWarning("No WF found for order ID : " + orderId, module);        }        return false;    }    public static boolean abortOrderProcessing(LocalDispatcher dispatcher, String orderId) {        Debug.logInfo("Aborting workflow for order " + orderId, module);        GenericDelegator delegator = dispatcher.getDelegator();        // find the workEffortId for this order        GenericValue workEffort = null;        try {            List workEfforts = delegator.findByAnd("WorkEffort", UtilMisc.toMap("workEffortTypeId", "WORK_FLOW", "sourceReferenceId", orderId));            if (workEfforts != null && workEfforts.size() > 1) {                Debug.logWarning("More then one workflow found for defined order: " + orderId, module);            }            workEffort = EntityUtil.getFirst(workEfforts);        } catch (GenericEntityException e) {            Debug.logError(e, "Problems getting WorkEffort with order ref number: " + orderId, module);            return false;        }        if (workEffort != null) {            String workEffortId = workEffort.getString("workEffortId");            if (workEffort.getString("currentStatusId").equals("WF_RUNNING")) {                Debug.logInfo("WF is running; trying to abort", module);                WorkflowClient client = new WorkflowClient(dispatcher.getDispatchContext());                try {                    client.abortProcess(workEffortId);                } catch (WfException e) {                    Debug.logError(e, "Problem aborting workflow", module);                    return false;                }                return true;            }        }        return false;    }}

⌨️ 快捷键说明

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