Search in sources :

Example 1 with DataFile

use of org.apache.ofbiz.datafile.DataFile in project ofbiz-framework by apache.

the class TaxwareUTL method process.

public int process() throws TaxwareException {
    // make sure we have everything before processing
    checkFields();
    if (processed)
        throw new TaxwareException("Cannot re-process records.");
    processed = true;
    Iterator i = records.iterator();
    while (i.hasNext()) {
        Record rec = (Record) i.next();
        rec = makeItemData(rec);
        outItem.addRecord(rec);
    }
    // create a shipping item
    if (shippingAmount > 0) {
        Record shipping = outItem.makeRecord("outItem");
        shipping = makeItemData(shipping);
        shipping.set("FREIGHT_AMOUNT", shippingAmount);
        outItem.addRecord(shipping);
    }
    // make the header file
    Record header = outHead.makeRecord("outHead");
    header.set("NUMBER_RECORDS", Long.valueOf(outItem.getRecords().size()));
    header.set("PROCESS_INDICATOR", "1");
    outHead.addRecord(header);
    int returnCode = -1;
    try {
        // add the header
        StringBuilder outBuffer = new StringBuilder();
        outBuffer.append(outHead.writeDataFile());
        // append the items
        outBuffer.append(outItem.writeDataFile());
        // print out the datafile
        if (Debug.verboseOn())
            Debug.logVerbose("::Out String::", module);
        if (Debug.verboseOn())
            Debug.logVerbose("\"" + outBuffer.toString() + "\"", module);
        File outFile = new File("TAXWARE-TEST.IN");
        FileOutputStream fos = null;
        try {
            fos = new FileOutputStream(outFile);
        } catch (FileNotFoundException e) {
            Debug.logError(e, module);
        }
        outHead.writeDataFile(fos);
        outItem.writeDataFile(fos);
        try {
            fos.close();
        } catch (IOException e) {
            Debug.logError(e, module);
        }
        outItem.writeDataFile("TaxwareTest.in");
        StringBuilder retBuffer = taxCalc(outBuffer);
        // make the return data file
        returnCode = processOutFile(retBuffer);
    } catch (DataFileException dfe) {
        throw new TaxwareException("Problems with the data file.", dfe);
    }
    return returnCode;
}
Also used : FileOutputStream(java.io.FileOutputStream) Iterator(java.util.Iterator) FileNotFoundException(java.io.FileNotFoundException) DataFileException(org.apache.ofbiz.datafile.DataFileException) ModelRecord(org.apache.ofbiz.datafile.ModelRecord) Record(org.apache.ofbiz.datafile.Record) IOException(java.io.IOException) DataFile(org.apache.ofbiz.datafile.DataFile) File(java.io.File)

Example 2 with DataFile

use of org.apache.ofbiz.datafile.DataFile in project ofbiz-framework by apache.

the class TaxwareUTL method processOutFile.

private int processOutFile(StringBuilder retBuffer) throws DataFileException, TaxwareException {
    DataFile retHead = createDataFile("TaxwareInHead");
    DataFile retItem = createDataFile("TaxwareInItem");
    String headStr = retBuffer.toString().substring(0, 283);
    String itemStr = retBuffer.toString().substring(284);
    if (Debug.verboseOn())
        Debug.logVerbose("Return Size: " + retBuffer.length(), module);
    Delegator delegator = shipToAddress.getDelegator();
    retHead.readDataFile(headStr);
    retItem.readDataFile(itemStr);
    List retRecords = retItem.getRecords();
    Iterator i = retRecords.iterator();
    if (Debug.verboseOn())
        Debug.logVerbose("Returned Records: " + retRecords.size(), module);
    if (Debug.verboseOn())
        Debug.logVerbose("Sent Items: " + records.size(), module);
    while (i.hasNext()) {
        Record rec = (Record) i.next();
        ModelRecord model = rec.getModelRecord();
        // make the adjustment lists
        if (itemAdjustments.size() < records.size()) {
            List currentItem = new ArrayList();
            if (rec.getBigDecimal("TAX_AMT_COUNTRY").compareTo(BigDecimal.ZERO) > 0) {
                if (Debug.verboseOn())
                    Debug.logVerbose("Country Tax Amount: " + rec.getBigDecimal("TAX_AMT_COUNTRY"), module);
                BigDecimal rate = rec.getBigDecimal("TAX_RATE_COUNTRY").movePointRight(2);
                String type = "S".equals(rec.getString("TAX_TYPE_COUNTRY")) ? "SALES TAX" : "USE TAX";
                String jur = rec.get("JUR_COUNTRY") != null ? rec.getString("JUR_COUNTRY").trim() : "";
                String comments = jur + "|" + type + "|" + rate.toString();
                currentItem.add(delegator.makeValue("OrderAdjustment", UtilMisc.toMap("amount", rec.getBigDecimal("TAX_AMT_COUNTRY"), "orderAdjustmentTypeId", "SALES_TAX", "comments", comments)));
            }
            if (rec.getBigDecimal("TAX_AMT_STATE").compareTo(BigDecimal.ZERO) > 0) {
                BigDecimal rate = rec.getBigDecimal("TAX_RATE_STATE").movePointRight(2);
                String type = "S".equals(rec.getString("TAX_TYPE_STATE")) ? "SALES TAX" : "USE TAX";
                String jur = rec.get("JUR_STATE") != null ? rec.getString("JUR_STATE").trim() : "";
                String comments = jur + "|" + type + "|" + rate.toString();
                currentItem.add(delegator.makeValue("OrderAdjustment", UtilMisc.toMap("amount", rec.getBigDecimal("TAX_AMT_STATE"), "orderAdjustmentTypeId", "SALES_TAX", "comments", comments)));
            }
            if (rec.getBigDecimal("TAX_AMT_COUNTY").compareTo(BigDecimal.ZERO) > 0) {
                BigDecimal rate = rec.getBigDecimal("TAX_RATE_COUNTY").movePointRight(2);
                String type = "S".equals(rec.getString("TAX_TYPE_COUNTY")) ? "SALES TAX" : "USE TAX";
                String jur = rec.get("JUR_COUNTY_CODE") != null ? rec.getString("JUR_COUNTY_CODE").trim() : "";
                String comments = jur + "|" + type + "|" + rate.toString();
                currentItem.add(delegator.makeValue("OrderAdjustment", UtilMisc.toMap("amount", rec.getBigDecimal("TAX_AMT_COUNTY"), "orderAdjustmentTypeId", "SALES_TAX", "comments", comments)));
            }
            if (rec.getBigDecimal("TAX_AMT_CITY").compareTo(BigDecimal.ZERO) > 0) {
                BigDecimal rate = rec.getBigDecimal("TAX_RATE_CITY").movePointRight(2);
                String type = "S".equals(rec.getString("TAX_TYPE_CITY")) ? "SALES TAX" : "USE TAX";
                String jur = rec.get("JUR_CITY") != null ? rec.getString("JUR_CITY").trim() : "";
                String comments = jur + "|" + type + "|" + rate.toString();
                currentItem.add(delegator.makeValue("OrderAdjustment", UtilMisc.toMap("amount", rec.getBigDecimal("TAX_AMT_CITY"), "orderAdjustmentTypeId", "SALES_TAX", "comments", comments)));
            }
            if (rec.getBigDecimal("TAX_AMT_SEC_STATE").compareTo(BigDecimal.ZERO) > 0) {
                BigDecimal rate = rec.getBigDecimal("TAX_RATE_SEC_STATE").movePointRight(2);
                String type = "S".equals(rec.getString("TAX_TYPE_SEC_STATE")) ? "SALES TAX" : "USE TAX";
                String jur = rec.get("JUR_SEC_STATE") != null ? rec.getString("JUR_SEC_STATE").trim() : "";
                String comments = jur + "|" + type + "|" + rate.toString();
                currentItem.add(delegator.makeValue("OrderAdjustment", UtilMisc.toMap("amount", rec.getBigDecimal("TAX_AMT_SEC_STATE"), "orderAdjustmentTypeId", "SALES_TAX", "comments", comments)));
            }
            if (rec.getBigDecimal("TAX_AMT_SEC_COUNTY").compareTo(BigDecimal.ZERO) > 0) {
                BigDecimal rate = rec.getBigDecimal("TAX_RATE_SEC_COUNTY").movePointRight(2);
                String type = "S".equals(rec.getString("TAX_TYPE_SEC_COUNTY")) ? "SALES TAX" : "USE TAX";
                String jur = rec.get("JUR_SEC_COUNTY_CODE") != null ? rec.getString("JUR_SEC_COUNTY_CODE").trim() : "";
                String comments = jur + "|" + type + "|" + rate.toString();
                currentItem.add(delegator.makeValue("OrderAdjustment", UtilMisc.toMap("amount", rec.getBigDecimal("TAX_AMT_SEC_COUNTY"), "orderAdjustmentTypeId", "SALES_TAX", "comments", comments)));
            }
            if (rec.getBigDecimal("TAX_AMT_SEC_CITY").compareTo(BigDecimal.ZERO) > 0) {
                BigDecimal rate = rec.getBigDecimal("TAX_RATE_SEC_CITY").movePointRight(2);
                String type = "S".equals(rec.getString("TAX_TYPE_SEC_CITY")) ? "SALES TAX" : "USE TAX";
                String jur = rec.get("JUR_SEC_CITY") != null ? rec.getString("JUR_SEC_CITY").trim() : "";
                String comments = jur + "|" + type + "|" + rate.toString();
                currentItem.add(delegator.makeValue("OrderAdjustment", UtilMisc.toMap("amount", rec.getBigDecimal("TAX_AMT_SEC_CITY"), "orderAdjustmentTypeId", "SALES_TAX", "comments", comments)));
            }
            // add a list of adjustments to the adjustment list
            itemAdjustments.add(currentItem);
        } else if (orderAdjustments.size() == 0) {
            if (rec.getBigDecimal("TAX_AMT_COUNTRY").compareTo(BigDecimal.ZERO) > 0) {
                BigDecimal rate = rec.getBigDecimal("TAX_RATE_COUNTRY").movePointRight(2);
                String type = "S".equals(rec.getString("TAX_TYPE_COUNTRY")) ? "SALES TAX" : "USE TAX";
                String jur = rec.get("JUR_COUNTRY") != null ? rec.getString("JUR_COUNTRY").trim() : "";
                String comments = jur + "|" + type + "|" + rate.toString();
                orderAdjustments.add(delegator.makeValue("OrderAdjustment", UtilMisc.toMap("amount", rec.getBigDecimal("TAX_AMT_COUNTRY"), "orderAdjustmentTypeId", "SALES_TAX", "comments", comments)));
            }
            if (rec.getBigDecimal("TAX_AMT_STATE").compareTo(BigDecimal.ZERO) > 0) {
                BigDecimal rate = rec.getBigDecimal("TAX_RATE_STATE").movePointRight(2);
                String type = "S".equals(rec.getString("TAX_TYPE_STATE")) ? "SALES TAX" : "USE TAX";
                String jur = rec.get("JUR_STATE") != null ? rec.getString("JUR_STATE").trim() : "";
                String comments = jur + "|" + type + "|" + rate.toString();
                orderAdjustments.add(delegator.makeValue("OrderAdjustment", UtilMisc.toMap("amount", rec.getBigDecimal("TAX_AMT_STATE"), "orderAdjustmentTypeId", "SALES_TAX", "comments", comments)));
            }
            if (rec.getBigDecimal("TAX_AMT_COUNTY").compareTo(BigDecimal.ZERO) > 0) {
                BigDecimal rate = rec.getBigDecimal("TAX_RATE_COUNTY").movePointRight(2);
                String type = "S".equals(rec.getString("TAX_TYPE_COUNTY")) ? "SALES TAX" : "USE TAX";
                String jur = rec.get("JUR_COUNTY_CODE") != null ? rec.getString("JUR_COUNTY_CODE").trim() : "";
                String comments = jur + "|" + type + "|" + rate.toString();
                orderAdjustments.add(delegator.makeValue("OrderAdjustment", UtilMisc.toMap("amount", rec.getBigDecimal("TAX_AMT_COUNTY"), "orderAdjustmentTypeId", "SALES_TAX", "comments", comments)));
            }
            if (rec.getBigDecimal("TAX_AMT_CITY").compareTo(BigDecimal.ZERO) > 0) {
                BigDecimal rate = rec.getBigDecimal("TAX_RATE_CITY").movePointRight(2);
                String type = "S".equals(rec.getString("TAX_TYPE_CITY")) ? "SALES TAX" : "USE TAX";
                String jur = rec.get("JUR_CITY") != null ? rec.getString("JUR_CITY").trim() : "";
                String comments = jur + "|" + type + "|" + rate.toString();
                orderAdjustments.add(delegator.makeValue("OrderAdjustment", UtilMisc.toMap("amount", rec.getBigDecimal("TAX_AMT_CITY"), "orderAdjustmentTypeId", "SALES_TAX", "comments", comments)));
            }
            if (rec.getBigDecimal("TAX_AMT_SEC_STATE").compareTo(BigDecimal.ZERO) > 0) {
                BigDecimal rate = rec.getBigDecimal("TAX_RATE_SEC_STATE").movePointRight(2);
                String type = "S".equals(rec.getString("TAX_TYPE_SEC_STATE")) ? "SALES TAX" : "USE TAX";
                String jur = rec.get("JUR_SEC_STATE") != null ? rec.getString("JUR_SEC_STATE").trim() : "";
                String comments = jur + "|" + type + "|" + rate.toString();
                orderAdjustments.add(delegator.makeValue("OrderAdjustment", UtilMisc.toMap("amount", rec.getBigDecimal("TAX_AMT_SEC_STATE"), "orderAdjustmentTypeId", "SALES_TAX", "comments", comments)));
            }
            if (rec.getBigDecimal("TAX_AMT_SEC_COUNTY").compareTo(BigDecimal.ZERO) > 0) {
                BigDecimal rate = rec.getBigDecimal("TAX_RATE_SEC_COUNTY").movePointRight(2);
                String type = "S".equals(rec.getString("TAX_TYPE_SEC_COUNTY")) ? "SALES TAX" : "USE TAX";
                String jur = rec.get("JUR_SEC_COUNTY_CODE") != null ? rec.getString("JUR_SEC_COUNTY_CODE").trim() : "";
                String comments = jur + "|" + type + "|" + rate.toString();
                orderAdjustments.add(delegator.makeValue("OrderAdjustment", UtilMisc.toMap("amount", rec.getBigDecimal("TAX_AMT_SEC_COUNTY"), "orderAdjustmentTypeId", "SALES_TAX", "comments", comments)));
            }
            if (rec.getBigDecimal("TAX_AMT_SEC_CITY").compareTo(BigDecimal.ZERO) > 0) {
                BigDecimal rate = rec.getBigDecimal("TAX_RATE_SEC_CITY").movePointRight(2);
                String type = "S".equals(rec.getString("TAX_TYPE_SEC_CITY")) ? "SALES TAX" : "USE TAX";
                String jur = rec.get("JUR_SEC_CITY") != null ? rec.getString("JUR_SEC_CITY").trim() : "";
                String comments = jur + "|" + type + "|" + rate.toString();
                orderAdjustments.add(delegator.makeValue("OrderAdjustment", UtilMisc.toMap("amount", rec.getBigDecimal("TAX_AMT_SEC_CITY"), "orderAdjustmentTypeId", "SALES_TAX", "comments", comments)));
            }
        } else {
            throw new TaxwareException("Invalid number of return adjustments.");
        }
        for (int a = 0; a < model.fields.size(); a++) {
            ModelField mf = (ModelField) model.fields.get(a);
            String name = mf.name;
            String value = rec.getString(name);
            if (Debug.verboseOn())
                Debug.logVerbose("Field: " + name + " => " + value, module);
        }
    }
    return retRecords.size();
}
Also used : DataFile(org.apache.ofbiz.datafile.DataFile) Delegator(org.apache.ofbiz.entity.Delegator) ModelField(org.apache.ofbiz.datafile.ModelField) Iterator(java.util.Iterator) ArrayList(java.util.ArrayList) ArrayList(java.util.ArrayList) List(java.util.List) ModelRecord(org.apache.ofbiz.datafile.ModelRecord) Record(org.apache.ofbiz.datafile.Record) ModelRecord(org.apache.ofbiz.datafile.ModelRecord) BigDecimal(java.math.BigDecimal)

Example 3 with DataFile

use of org.apache.ofbiz.datafile.DataFile in project ofbiz-framework by apache.

the class ZipSalesServices method importFlatTable.

// import table service
public static Map<String, Object> importFlatTable(DispatchContext dctx, Map<String, ? extends Object> context) {
    Delegator delegator = dctx.getDelegator();
    Security security = dctx.getSecurity();
    GenericValue userLogin = (GenericValue) context.get("userLogin");
    String taxFileLocation = (String) context.get("taxFileLocation");
    String ruleFileLocation = (String) context.get("ruleFileLocation");
    Locale locale = (Locale) context.get("locale");
    // do security check
    if (!security.hasPermission("SERVICE_INVOKE_ANY", userLogin)) {
        return ServiceUtil.returnError(UtilProperties.getMessage(resource_error, "OrderYouDoNotHavePermissionToLoadTaxTables", locale));
    }
    // get a now stamp (we'll use 2000-01-01)
    Timestamp now = parseDate("20000101", null);
    // load the data file
    DataFile tdf = null;
    try {
        tdf = DataFile.makeDataFile(UtilURL.fromResource(dataFile), flatTable);
    } catch (DataFileException e) {
        Debug.logError(e, module);
        return ServiceUtil.returnError(UtilProperties.getMessage(resource_error, "OrderUnableToReadZipSalesDataFile", locale));
    }
    // locate the file to be imported
    URL tUrl = UtilURL.fromResource(taxFileLocation);
    if (tUrl == null) {
        return ServiceUtil.returnError(UtilProperties.getMessage(resource_error, "OrderUnableToLocateTaxFileAtLocation", UtilMisc.toMap("taxFileLocation", taxFileLocation), locale));
    }
    RecordIterator tri = null;
    try {
        tri = tdf.makeRecordIterator(tUrl);
    } catch (DataFileException e) {
        Debug.logError(e, module);
        return ServiceUtil.returnError(UtilProperties.getMessage(resource_error, "OrderProblemGettingTheRecordIterator", locale));
    }
    if (tri != null) {
        while (tri.hasNext()) {
            Record entry = null;
            try {
                entry = tri.next();
            } catch (DataFileException e) {
                Debug.logError(e, module);
            }
            GenericValue newValue = delegator.makeValue("ZipSalesTaxLookup");
            // PK fields
            newValue.set("zipCode", entry.getString("zipCode").trim());
            newValue.set("stateCode", entry.get("stateCode") != null ? entry.getString("stateCode").trim() : "_NA_");
            newValue.set("city", entry.get("city") != null ? entry.getString("city").trim() : "_NA_");
            newValue.set("county", entry.get("county") != null ? entry.getString("county").trim() : "_NA_");
            newValue.set("fromDate", parseDate(entry.getString("effectiveDate"), now));
            // non-PK fields
            newValue.set("countyFips", entry.get("countyFips"));
            newValue.set("countyDefault", entry.get("countyDefault"));
            newValue.set("generalDefault", entry.get("generalDefault"));
            newValue.set("insideCity", entry.get("insideCity"));
            newValue.set("geoCode", entry.get("geoCode"));
            newValue.set("stateSalesTax", entry.get("stateSalesTax"));
            newValue.set("citySalesTax", entry.get("citySalesTax"));
            newValue.set("cityLocalSalesTax", entry.get("cityLocalSalesTax"));
            newValue.set("countySalesTax", entry.get("countySalesTax"));
            newValue.set("countyLocalSalesTax", entry.get("countyLocalSalesTax"));
            newValue.set("comboSalesTax", entry.get("comboSalesTax"));
            newValue.set("stateUseTax", entry.get("stateUseTax"));
            newValue.set("cityUseTax", entry.get("cityUseTax"));
            newValue.set("cityLocalUseTax", entry.get("cityLocalUseTax"));
            newValue.set("countyUseTax", entry.get("countyUseTax"));
            newValue.set("countyLocalUseTax", entry.get("countyLocalUseTax"));
            newValue.set("comboUseTax", entry.get("comboUseTax"));
            try {
                delegator.createOrStore(newValue);
            } catch (GenericEntityException e) {
                Debug.logError(e, module);
                return ServiceUtil.returnError(UtilProperties.getMessage(resource_error, "OrderErrorWritingRecordsToTheDatabase", locale));
            }
            // console log
            Debug.logInfo(newValue.get("zipCode") + "/" + newValue.get("stateCode") + "/" + newValue.get("city") + "/" + newValue.get("county") + "/" + newValue.get("fromDate"), module);
        }
    }
    // load the data file
    DataFile rdf = null;
    try {
        rdf = DataFile.makeDataFile(UtilURL.fromResource(dataFile), ruleTable);
    } catch (DataFileException e) {
        Debug.logError(e, module);
        return ServiceUtil.returnError(UtilProperties.getMessage(resource_error, "OrderUnableToReadZipSalesDataFile", locale));
    }
    // locate the file to be imported
    URL rUrl = UtilURL.fromResource(ruleFileLocation);
    if (rUrl == null) {
        return ServiceUtil.returnError(UtilProperties.getMessage(resource_error, "OrderUnableToLocateRuleFileFromLocation", UtilMisc.toMap("ruleFileLocation", ruleFileLocation), locale));
    }
    RecordIterator rri = null;
    try {
        rri = rdf.makeRecordIterator(rUrl);
    } catch (DataFileException e) {
        Debug.logError(e, module);
        return ServiceUtil.returnError(UtilProperties.getMessage(resource_error, "OrderProblemGettingTheRecordIterator", locale));
    }
    if (rri != null) {
        while (rri.hasNext()) {
            Record entry = null;
            try {
                entry = rri.next();
            } catch (DataFileException e) {
                Debug.logError(e, module);
            }
            if (UtilValidate.isNotEmpty(entry.getString("stateCode"))) {
                GenericValue newValue = delegator.makeValue("ZipSalesRuleLookup");
                // PK fields
                newValue.set("stateCode", entry.get("stateCode") != null ? entry.getString("stateCode").trim() : "_NA_");
                newValue.set("city", entry.get("city") != null ? entry.getString("city").trim() : "_NA_");
                newValue.set("county", entry.get("county") != null ? entry.getString("county").trim() : "_NA_");
                newValue.set("fromDate", parseDate(entry.getString("effectiveDate"), now));
                // non-PK fields
                newValue.set("idCode", entry.get("idCode") != null ? entry.getString("idCode").trim() : null);
                newValue.set("taxable", entry.get("taxable") != null ? entry.getString("taxable").trim() : null);
                newValue.set("shipCond", entry.get("shipCond") != null ? entry.getString("shipCond").trim() : null);
                try {
                    // using storeAll as an easy way to create/update
                    delegator.storeAll(UtilMisc.toList(newValue));
                } catch (GenericEntityException e) {
                    Debug.logError(e, module);
                    return ServiceUtil.returnError(UtilProperties.getMessage(resource_error, "OrderErrorWritingRecordsToTheDatabase", locale));
                }
                // console log
                Debug.logInfo(newValue.get("stateCode") + "/" + newValue.get("city") + "/" + newValue.get("county") + "/" + newValue.get("fromDate"), module);
            }
        }
    }
    return ServiceUtil.returnSuccess();
}
Also used : Locale(java.util.Locale) DataFile(org.apache.ofbiz.datafile.DataFile) GenericValue(org.apache.ofbiz.entity.GenericValue) RecordIterator(org.apache.ofbiz.datafile.RecordIterator) Delegator(org.apache.ofbiz.entity.Delegator) GenericEntityException(org.apache.ofbiz.entity.GenericEntityException) DataFileException(org.apache.ofbiz.datafile.DataFileException) Record(org.apache.ofbiz.datafile.Record) Security(org.apache.ofbiz.security.Security) Timestamp(java.sql.Timestamp) URL(java.net.URL) UtilURL(org.apache.ofbiz.base.util.UtilURL)

Aggregations

DataFile (org.apache.ofbiz.datafile.DataFile)3 Record (org.apache.ofbiz.datafile.Record)3 Iterator (java.util.Iterator)2 DataFileException (org.apache.ofbiz.datafile.DataFileException)2 ModelRecord (org.apache.ofbiz.datafile.ModelRecord)2 Delegator (org.apache.ofbiz.entity.Delegator)2 File (java.io.File)1 FileNotFoundException (java.io.FileNotFoundException)1 FileOutputStream (java.io.FileOutputStream)1 IOException (java.io.IOException)1 BigDecimal (java.math.BigDecimal)1 URL (java.net.URL)1 Timestamp (java.sql.Timestamp)1 ArrayList (java.util.ArrayList)1 List (java.util.List)1 Locale (java.util.Locale)1 UtilURL (org.apache.ofbiz.base.util.UtilURL)1 ModelField (org.apache.ofbiz.datafile.ModelField)1 RecordIterator (org.apache.ofbiz.datafile.RecordIterator)1 GenericEntityException (org.apache.ofbiz.entity.GenericEntityException)1