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

📄 upsservices.java

📁 Sequoia ERP是一个真正的企业级开源ERP解决方案。它提供的模块包括:电子商务应用(e-commerce), POS系统(point of sales),知识管理,存货与仓库管理
💻 JAVA
📖 第 1 页 / 共 5 页
字号:
            }            try {                shipmentRouteSegment.set("actualServiceCost", Double.valueOf(serviceOptionsMonetaryValue));            } catch (NumberFormatException e) {                String excErrMsg = "Error parsing the serviceOptionsMonetaryValue [" + serviceOptionsMonetaryValue + "]: " + e.toString();                Debug.logError(e, excErrMsg, module);                errorList.add(excErrMsg);            }            try {                shipmentRouteSegment.set("actualCost", Double.valueOf(totalMonetaryValue));            } catch (NumberFormatException e) {                String excErrMsg = "Error parsing the totalMonetaryValue [" + totalMonetaryValue + "]: " + e.toString();                Debug.logError(e, excErrMsg, module);                errorList.add(excErrMsg);            }                        // handle BillingWeight element info            Element billingWeightElement = UtilXml.firstChildElement(shipmentResultsElement, "BillingWeight");            Element billingWeightUnitOfMeasurementElement = UtilXml.firstChildElement(billingWeightElement, "UnitOfMeasurement");            String billingWeightUnitOfMeasurement = UtilXml.childElementValue(billingWeightUnitOfMeasurementElement, "Code");            String billingWeight = UtilXml.childElementValue(billingWeightElement, "Weight");            try {                shipmentRouteSegment.set("billingWeight", Double.valueOf(billingWeight));            } catch (NumberFormatException e) {                String excErrMsg = "Error parsing the billingWeight [" + billingWeight + "]: " + e.toString();                Debug.logError(e, excErrMsg, module);                errorList.add(excErrMsg);            }            shipmentRouteSegment.set("billingWeightUomId", unitsUpsToOfbiz.get(billingWeightUnitOfMeasurement));            // store the ShipmentIdentificationNumber and ShipmentDigest            String shipmentIdentificationNumber = UtilXml.childElementValue(shipmentResultsElement, "ShipmentIdentificationNumber");            // should compare to trackingIdNumber, should always be the same right?            shipmentRouteSegment.set("trackingIdNumber", shipmentIdentificationNumber);            // set ShipmentRouteSegment carrierServiceStatusId after each UPS service applicable             shipmentRouteSegment.put("carrierServiceStatusId", "SHRSCS_ACCEPTED");                        // write/store modified value object            shipmentRouteSegment.store();                            // now process the PackageResults elements            List packageResultsElements = UtilXml.childElementList(shipmentResultsElement, "PackageResults");            Iterator packageResultsElementIter = packageResultsElements.iterator();            Iterator shipmentPackageRouteSegIter = shipmentPackageRouteSegs.iterator();            while (packageResultsElementIter.hasNext()) {                Element packageResultsElement = (Element) packageResultsElementIter.next();                                    String trackingNumber = UtilXml.childElementValue(packageResultsElement, "TrackingNumber");                Element packageServiceOptionsChargesElement = UtilXml.firstChildElement(packageResultsElement, "ServiceOptionsCharges");                String packageServiceOptionsCurrencyCode = UtilXml.childElementValue(packageServiceOptionsChargesElement, "CurrencyCode");                String packageServiceOptionsMonetaryValue = UtilXml.childElementValue(packageServiceOptionsChargesElement, "MonetaryValue");                Element packageLabelImageElement = UtilXml.firstChildElement(packageResultsElement, "LabelImage");                Element packageLabelImageFormatElement = UtilXml.firstChildElement(packageResultsElement, "LabelImageFormat");                // will be EPL or GIF, should always be GIF since that is what we requested                String packageLabelImageFormatCode = UtilXml.childElementValue(packageLabelImageFormatElement, "Code");                String packageLabelImageFormatDescription = UtilXml.childElementValue(packageLabelImageFormatElement, "Description");                String packageLabelGraphicImageString = UtilXml.childElementValue(packageLabelImageElement, "GraphicImage");                String packageLabelInternationalSignatureGraphicImageString = UtilXml.childElementValue(packageLabelImageElement, "InternationalSignatureGraphicImage");                String packageLabelHTMLImageString = UtilXml.childElementValue(packageLabelImageElement, "HTMLImage");                if (!shipmentPackageRouteSegIter.hasNext()) {                    errorList.add("Error: More PackageResults were returned than there are Packages on this Shipment; the TrackingNumber is [" + trackingNumber + "], the ServiceOptionsCharges were " + packageServiceOptionsMonetaryValue + packageServiceOptionsCurrencyCode);                    // NOTE: if this happens much we should just create a new package to store all of the info...                    continue;                }                                    //NOTE: I guess they come back in the same order we sent them, so we'll get the packages in order and off we go...                GenericValue shipmentPackageRouteSeg = (GenericValue) shipmentPackageRouteSegIter.next();                shipmentPackageRouteSeg.set("trackingCode", trackingNumber);                shipmentPackageRouteSeg.set("boxNumber", "");                shipmentPackageRouteSeg.set("currencyUomId", packageServiceOptionsCurrencyCode);                try {                    shipmentPackageRouteSeg.set("packageServiceCost", Double.valueOf(packageServiceOptionsMonetaryValue));                } catch (NumberFormatException e) {                    String excErrMsg = "Error parsing the packageServiceOptionsMonetaryValue [" + packageServiceOptionsMonetaryValue + "] for Package [" + shipmentPackageRouteSeg.getString("shipmentPackageSeqId") + "]: " + e.toString();                    Debug.logError(e, excErrMsg, module);                    errorList.add(excErrMsg);                }                                    byte[] labelImageBytes = null;                if (packageLabelGraphicImageString != null) {                    labelImageBytes = Base64.base64Decode(packageLabelGraphicImageString.getBytes());                    shipmentPackageRouteSeg.setBytes("labelImage", labelImageBytes);                }                byte[] labelInternationalSignatureGraphicImageBytes = null;                if (packageLabelInternationalSignatureGraphicImageString != null) {                    labelInternationalSignatureGraphicImageBytes = Base64.base64Decode(packageLabelInternationalSignatureGraphicImageString.getBytes());                    shipmentPackageRouteSeg.set("labelIntlSignImage", labelInternationalSignatureGraphicImageBytes);                }                String packageLabelHTMLImageStringDecoded = Base64.base64Decode(packageLabelHTMLImageString);                shipmentPackageRouteSeg.set("labelHtml", packageLabelHTMLImageStringDecoded);                if (shipmentUpsSaveCertificationInfo) {                    if (labelImageBytes != null) {                        String outFileName = shipmentUpsSaveCertificationPath + "/UpsShipmentLabelImage" + shipmentRouteSegment.getString("shipmentId") + "_" + shipmentRouteSegment.getString("shipmentRouteSegmentId") + "_" + shipmentPackageRouteSeg.getString("shipmentPackageSeqId") + ".gif";                        try {                            FileOutputStream fileOut = new FileOutputStream(outFileName);                            fileOut.write(labelImageBytes);                            fileOut.flush();                            fileOut.close();                        } catch (IOException e) {                            Debug.log(e, "Could not save UPS LabelImage GIF file: [[[" + packageLabelGraphicImageString + "]]] to file: " + outFileName, module);                        }                    }                    if (labelInternationalSignatureGraphicImageBytes != null) {                        String outFileName = shipmentUpsSaveCertificationPath + "/UpsShipmentLabelIntlSignImage" + shipmentRouteSegment.getString("shipmentId") + "_" + shipmentRouteSegment.getString("shipmentRouteSegmentId") + "_" + shipmentPackageRouteSeg.getString("shipmentPackageSeqId") + ".gif";                        try {                            FileOutputStream fileOut = new FileOutputStream(outFileName);                            fileOut.write(labelInternationalSignatureGraphicImageBytes);                            fileOut.flush();                            fileOut.close();                        } catch (IOException e) {                            Debug.log(e, "Could not save UPS IntlSign LabelImage GIF file: [[[" + packageLabelInternationalSignatureGraphicImageString + "]]] to file: " + outFileName, module);                        }                    }                    if (packageLabelHTMLImageStringDecoded != null) {                        String outFileName = shipmentUpsSaveCertificationPath + "/UpsShipmentLabelHTMLImage" + shipmentRouteSegment.getString("shipmentId") + "_" + shipmentRouteSegment.getString("shipmentRouteSegmentId") + "_" + shipmentPackageRouteSeg.getString("shipmentPackageSeqId") + ".html";                        try {                            FileOutputStream fileOut = new FileOutputStream(outFileName);                            fileOut.write(packageLabelHTMLImageStringDecoded.getBytes());                            fileOut.flush();                            fileOut.close();                        } catch (IOException e) {                            Debug.log(e, "Could not save UPS LabelImage HTML file: [[[" + packageLabelHTMLImageStringDecoded + "]]] to file: " + outFileName, module);                        }                    }                }                            shipmentPackageRouteSeg.store();            }            if (shipmentPackageRouteSegIter.hasNext()) {                errorList.add("Error: There are more Packages on this Shipment than there were PackageResults returned from UPS");                while (shipmentPackageRouteSegIter.hasNext()) {                    GenericValue shipmentPackageRouteSeg = (GenericValue) shipmentPackageRouteSegIter.next();                    errorList.add("Error: No PackageResults were returned for the Package [" + shipmentPackageRouteSeg.getString("shipmentPackageSeqId") + "]");                }            }                            // -=-=-=- Okay, now done with that, just return any extra info...            StringBuffer successString = new StringBuffer("The UPS ShipmentAccept succeeded");            if (errorList.size() > 0) {                // this shouldn't happen much, but handle it anyway                successString.append(", but the following occurred: ");                Iterator errorListIter = errorList.iterator();                while (errorListIter.hasNext()) {                    String errorMsg = (String) errorListIter.next();                    successString.append(errorMsg);                    if (errorListIter.hasNext()) {                        successString.append(", ");                    }                }            }            return ServiceUtil.returnSuccess(successString.toString());        } else {            errorList.add(0, "The UPS ShipmentConfirm failed");            return ServiceUtil.returnError(errorList);        }    }        public static Map upsVoidShipment(DispatchContext dctx, Map context) {        Map result = new HashMap();        GenericDelegator delegator = dctx.getDelegator();        String shipmentId = (String) context.get("shipmentId");        String shipmentRouteSegmentId = (String) context.get("shipmentRouteSegmentId");        boolean shipmentUpsSaveCertificationInfo = "true".equals(UtilProperties.getPropertyValue("shipment", "shipment.ups.save.certification.info"));        String shipmentUpsSaveCertificationPath = UtilProperties.getPropertyValue("shipment", "shipment.ups.save.certification.path");        File shipmentUpsSaveCertificationFile = null;        if (shipmentUpsSaveCertificationInfo) {            shipmentUpsSaveCertificationFile = new File(shipmentUpsSaveCertificationPath);            if (!shipmentUpsSaveCertificationFile.exists()) {                shipmentUpsSaveCertificationFile.mkdirs();            }        }        String voidShipmentResponseString = null;        try {            GenericValue shipment = delegator.findByPrimaryKey("Shipment", UtilMisc.toMap("shipmentId", shipmentId));            GenericValue shipmentRouteSegment = delegator.findByPrimaryKey("ShipmentRouteSegment", UtilMisc.toMap("shipmentId", shipmentId, "shipmentRouteSegmentId", shipmentRouteSegmentId));            if (!"UPS".equals(shipmentRouteSegment.getString("carrierPartyId"))) {                return ServiceUtil.returnError("ERROR: The Carrier for ShipmentRouteSegment " + shipmentRouteSegmentId + " of Shipment " + shipmentId + ", is not UPS.");            }                        // add ShipmentRouteSegment carrierServiceStatusId, check before all UPS services            if (!"SHRSCS_CONFIRMED".equals(shipmentRouteS

⌨️ 快捷键说明

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