Kaynağa Gözat

2023020054
做了凭证有科目余额不允许修改父级科目

zxl 1 yıl önce
ebeveyn
işleme
f43457b6d5

+ 8 - 1
src/com/uas/erp/service/fa/impl/CategoryBaseServiceImpl.java

@@ -172,7 +172,7 @@ public class CategoryBaseServiceImpl implements CategoryBaseService {
 		checkBank(id, store.get("ca_bank"), caller);
 		checkpcode(store.get("ca_code"), store.get("ca_pcode"));
 		// 修改科目的编号、核算类型时,关联校验
-		SqlRowList rs = baseDao.queryForRowSet("select ca_code,abs(ca_currencytype),ca_asstype from category where ca_id=?", id);
+		SqlRowList rs = baseDao.queryForRowSet("select ca_code,abs(ca_currencytype),ca_asstype,ca_pcode from category where ca_id=?", id);
 		if (rs.next()) {
 			String oldCode = rs.getString(1);
 			// 已制作凭证
@@ -202,6 +202,13 @@ public class CategoryBaseServiceImpl implements CategoryBaseService {
 					BaseUtil.showError("科目 " + oldCode + " 还有余额,不允许修改科目核算类型");
 				}
 			}
+			if (!StringUtil.nvl(store.get("ca_pcode"), "").equals(rs.getGeneralString(4))) {
+				if (hasVoucher) {
+					BaseUtil.showError("科目 " + oldCode + " 已经制作凭证,不允许修改父级科目");
+				} else if (hasInit) {
+					BaseUtil.showError("科目 " + oldCode + " 还有余额,不允许修改父级科目");
+				}
+			}
 		}
 		checkVoucher(store.get("ca_pcode"));
 		// 修改