use of org.apache.ofbiz.datafile.ModelField 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();
}
Aggregations