Search in sources :

Example 1 with ModelRecord

use of org.apache.ofbiz.datafile.ModelRecord 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)

Aggregations

BigDecimal (java.math.BigDecimal)1 ArrayList (java.util.ArrayList)1 Iterator (java.util.Iterator)1 List (java.util.List)1 DataFile (org.apache.ofbiz.datafile.DataFile)1 ModelField (org.apache.ofbiz.datafile.ModelField)1 ModelRecord (org.apache.ofbiz.datafile.ModelRecord)1 Record (org.apache.ofbiz.datafile.Record)1 Delegator (org.apache.ofbiz.entity.Delegator)1