|
@@ -1577,6 +1577,7 @@ public class BatchDealServiceImpl implements BatchDealService {
|
|
}
|
|
}
|
|
}
|
|
}
|
|
Object pi_fztype = StringUtil.hasText(store.get(0).get("pi_fztype")) ? store.get(0).get("pi_fztype") : "CC";
|
|
Object pi_fztype = StringUtil.hasText(store.get(0).get("pi_fztype")) ? store.get(0).get("pi_fztype") : "CC";
|
|
|
|
+ boolean groupTaxRate = baseDao.isDBSetting("ARCheck", "groupTaxRate");
|
|
if (StringUtil.hasText(accode)) {
|
|
if (StringUtil.hasText(accode)) {
|
|
// 判断指定的采购单状态是否[在录入],指定采购单的请购类型是否与当前的一致
|
|
// 判断指定的采购单状态是否[在录入],指定采购单的请购类型是否与当前的一致
|
|
ac = baseDao.getFieldsDataByCondition("archeck", new String[] { "ac_statuscode", "ac_custcode", "ac_id", "ac_currency",
|
|
ac = baseDao.getFieldsDataByCondition("archeck", new String[] { "ac_statuscode", "ac_custcode", "ac_id", "ac_currency",
|
|
@@ -1609,6 +1610,15 @@ public class BatchDealServiceImpl implements BatchDealService {
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
+ if (StringUtil.hasText(map.get("pd_taxrate"))) {
|
|
|
|
+ int count=baseDao.getCount("select count(1) from ARCheck left join ARCHECKDETAIL on ac_id = ad_acid " +
|
|
|
|
+ "where ac_code = '"+accode+"' and ad_taxrate <> '"+map.get("pd_taxrate")+"'");
|
|
|
|
+ if(count!=0){
|
|
|
|
+ log1 = "选定发票的税率不同,不能合并生成!";
|
|
|
|
+ sb1.append(log1).append("<hr>");
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
}
|
|
}
|
|
if (sb1.length() > 0) {
|
|
if (sb1.length() > 0) {
|
|
BaseUtil.showError(sb1.toString());
|
|
BaseUtil.showError(sb1.toString());
|
|
@@ -1619,18 +1629,38 @@ public class BatchDealServiceImpl implements BatchDealService {
|
|
if ("CC".equals(pi_fztype)) {
|
|
if ("CC".equals(pi_fztype)) {
|
|
// 按客户+币别分组
|
|
// 按客户+币别分组
|
|
if (StringUtil.hasText(accode)) {
|
|
if (StringUtil.hasText(accode)) {
|
|
- ac = baseDao.getFieldsDataByCondition("archeck", new String[] { "ac_custcode", "ac_currency" }, "ac_code='" + accode + "'");
|
|
|
|
- mm = ac[0].toString() + "#" + ac[1].toString();
|
|
|
|
|
|
+ if (groupTaxRate) {
|
|
|
|
+ ac = baseDao.getFieldsDataByCondition("archeck left join (select max(ad_taxrate) ad_taxrate,ad_acid from ARCHECKDETAIL group by ad_acid) on ad_acid = ac_id", new String[]{"ac_custcode", "ac_currency", "ad_taxrate"}, "ac_code='" + accode + "'");
|
|
|
|
+ mm = ac[0].toString() + "#" + ac[1].toString() + "#" + ac[2].toString();
|
|
|
|
+ }else{
|
|
|
|
+ ac = baseDao.getFieldsDataByCondition("archeck", new String[]{"ac_custcode", "ac_currency"}, "ac_code='" + accode + "'");
|
|
|
|
+ mm = ac[0].toString() + "#" + ac[1].toString();
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+ if (groupTaxRate) {
|
|
|
|
+ map = BaseUtil.groupsMap(store, new Object[]{"pi_arcode", "pi_currency", "pd_taxrate"});
|
|
|
|
+ }else {
|
|
|
|
+ map = BaseUtil.groupsMap(store, new Object[]{"pi_arcode", "pi_currency"});
|
|
}
|
|
}
|
|
- map = BaseUtil.groupsMap(store, new Object[] { "pi_arcode", "pi_currency" });
|
|
|
|
} else if ("CCS".equals(pi_fztype)) {
|
|
} else if ("CCS".equals(pi_fztype)) {
|
|
// 按客户+币别+业务员分组
|
|
// 按客户+币别+业务员分组
|
|
if (StringUtil.hasText(accode)) {
|
|
if (StringUtil.hasText(accode)) {
|
|
- ac = baseDao.getFieldsDataByCondition("archeck", new String[] { "ac_custcode", "ac_currency", "ac_sellercode" },
|
|
|
|
- "ac_code='" + accode + "'");
|
|
|
|
- mm = ac[0].toString() + "#" + ac[1].toString() + "#" + ac[2].toString();
|
|
|
|
|
|
+ if (groupTaxRate) {
|
|
|
|
+ ac = baseDao.getFieldsDataByCondition("archeck left join (select max(ad_taxrate) ad_taxrate,ad_acid from ARCHECKDETAIL group by ad_acid) on ad_acid = ac_id", new String[]{"ac_custcode", "ac_currency", "ac_sellercode", "ad_taxrate"},
|
|
|
|
+ "ac_code='" + accode + "'");
|
|
|
|
+ mm = ac[0].toString() + "#" + ac[1].toString() + "#" + ac[2].toString();
|
|
|
|
+ }else{
|
|
|
|
+ ac = baseDao.getFieldsDataByCondition("archeck", new String[]{"ac_custcode", "ac_currency", "ac_sellercode"},
|
|
|
|
+ "ac_code='" + accode + "'");
|
|
|
|
+ mm = ac[0].toString() + "#" + ac[1].toString() + "#" + ac[2].toString() + "#" + ac[3].toString();
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ if (groupTaxRate) {
|
|
|
|
+ map = BaseUtil.groupsMap(store, new Object[]{"pi_arcode", "pi_currency", "pi_sellercode", "pd_taxrate"});
|
|
|
|
+ }else {
|
|
|
|
+ map = BaseUtil.groupsMap(store, new Object[]{"pi_arcode", "pi_currency", "pi_sellercode"});
|
|
}
|
|
}
|
|
- map = BaseUtil.groupsMap(store, new Object[] { "pi_arcode", "pi_currency", "pi_sellercode" });
|
|
|
|
}
|
|
}
|
|
List<Map<Object, Object>> s = null;
|
|
List<Map<Object, Object>> s = null;
|
|
String vCode = "";
|
|
String vCode = "";
|