📄 operation.java
字号:
package net.intuitsoft.xeon.table.sale.ex;import intuitsoft.eclipse.table.common.MsgConstant;import intuitsoft.eclipse.table.common.SheetLog;import intuitsoft.eclipse.table.common.SheetTypes;import intuitsoft.eclipse.table.common.ToolKit;import intuitsoft.eclipse.table.system.user.ConcreteSysUserAdapter;import intuitsoft.eclipse.table.system.user.LoginInfo;import java.util.Iterator;import java.util.LinkedList;import java.util.List;import java.util.Map;import net.intuitsoft.xeon.table.basic.brand.BrandBean;import net.intuitsoft.xeon.table.basic.brand.BrandModel;import net.intuitsoft.xeon.table.basic.customer.CCustGoodsAdapter;import net.intuitsoft.xeon.table.basic.customer.CCustomerAdapter;import net.intuitsoft.xeon.table.basic.customer.CSalePriceAdapter;import net.intuitsoft.xeon.table.basic.customer.CustBar;import net.intuitsoft.xeon.table.basic.customer.CustGoodsAdapter;import net.intuitsoft.xeon.table.basic.customer.CustomerAdapter;import net.intuitsoft.xeon.table.basic.customer.SalePriceAdapter;import net.intuitsoft.xeon.table.basic.goods.CGoodsAdapter;import net.intuitsoft.xeon.table.basic.goods.GoodsBean;import net.intuitsoft.xeon.table.basic.goods.GoodsModel;import net.intuitsoft.xeon.table.fin.catalog.CCatalogAdapter;import net.intuitsoft.xeon.table.fin.catalog.CatalogAdapter;import net.intuitsoft.xeon.table.fin.log.CashLog;import net.intuitsoft.xeon.table.fin.rec.RecItems;import net.intuitsoft.xeon.table.fin.rec.RecSheet;import net.intuitsoft.xeon.table.fin.settle.customer.CustMonthItems;import net.intuitsoft.xeon.table.order.order.COrderSheetAdapter;import net.intuitsoft.xeon.table.sale.EventCode;import net.intuitsoft.xeon.table.stock.io.CIoSheetAdapter;import net.intuitsoft.xeon.table.warehouse.balance.CBalanceAdapter;import net.intuitsoft.xeon.table.warehouse.log.CGoodsLogAdapter;public final class Operation { public static String canDel(ExSheetAdapter adapter, int loginUser, Map perms) { int dateStatus = ToolKit.isRightDate(adapter.getJndiName(), adapter .getCreateDate()); if (dateStatus == 3) { return "单据日期无效!"; } else if (dateStatus == 2) { return "单据日期超出允许未来日期范围!"; } else if (dateStatus == 1) { return "单据日期超出允许历史日期范围!"; } // 月结存判断 if (!ToolKit.allowOperator(adapter.getJndiName(), adapter .getCreateDate())) { return "单据日期在结存期限内,不允许在结存期限内进行操作!"; } if (adapter.getIsExt()) { return "销售出库单已收款,请先删除收款单!"; } if (adapter.getIsChecked()) { return MsgConstant.CANCEL; } if (adapter.getIsAcc()) { return "销售出库单已记账,请先反记账销售出库单!"; } if (adapter.getIsRegLed()) { return "销售出库单已出库,请先反出库销售出库单!"; } if (RecSheet.haveDateNoDelete(adapter.getJndiName(), adapter .getExSheetCode())) { return "已关联收款单。不能删除!"; } if (!ToolKit.allowModify(adapter.getOperator(), loginUser) && !intuitsoft.eclipse.table.system.SystemPerms.agree(perms, intuitsoft.eclipse.table.system.EventCode.PRIVILEGE)) { return MsgConstant.NO_ALLOW_MODIFY; } return null; } public static String canBack(ExSheetAdapter adapter, int loginUser, Map perms) { int dateStatus = ToolKit.isRightDate(adapter.getJndiName(), adapter .getCreateDate()); if (dateStatus == 3) { return "单据日期无效!"; } else if (dateStatus == 2) { return "单据日期超出允许未来日期范围!"; } else if (dateStatus == 1) { return "单据日期超出允许历史日期范围!"; } if (!ToolKit.allowOperator(adapter.getJndiName(), adapter .getCreateDate())) { return "单据日期在结存期限内,不允许在结存期限内进行操作!"; } if (adapter.getIsChecked()) { return MsgConstant.CANCEL; } if (adapter.getIsExt()) { return "销售出库单已收款,不能执行反记账操作!"; } if (!adapter.getIsAcc()) { return "销售出库单未记账,不能执行反记账操作!"; } if (adapter.getIsBack()) { return "销售出库单已是反记账状态,故本次反记账操作被取消!"; } if (!ToolKit.allowAudit(adapter.getUserName(), loginUser) && !intuitsoft.eclipse.table.system.SystemPerms.agree(perms, intuitsoft.eclipse.table.system.EventCode.PRIVILEGE)) { return MsgConstant.NO_ALLOW_MODIFY; } return null; } public static String canSave(ExSheetAdapter adapter, int loginUser, Map perms, ExSheetAdapter exSheetAdapter) { int dateStatus = ToolKit.isRightDate(adapter.getJndiName(), adapter .getCreateDate()); if (dateStatus == 3) { return "单据日期无效!"; } else if (dateStatus == 2) { return "单据日期超出允许未来日期范围!"; } else if (dateStatus == 1) { return "单据日期超出允许历史日期范围!"; } if (adapter.getIsChecked()) { return MsgConstant.CANCEL; } if (adapter.getIsAcc()) { return "销售出库单已记账!"; } if (adapter.getIsRegLed()) { return "销售出库单出库,请先反出库销售出库单!"; } if (adapter.getIsExt()) { return "销售出库单已收款!"; } if (!ToolKit.allowModify(adapter.getOperator(), loginUser) && !intuitsoft.eclipse.table.system.SystemPerms.agree(perms, intuitsoft.eclipse.table.system.EventCode.PRIVILEGE)) { return MsgConstant.NO_ALLOW_MODIFY; } return null; } public static String canCancel(ExSheetAdapter adapter, int loginUser, Map perms) { if (adapter.getIsAcc()) { return MsgConstant.ACC; } if (adapter.getIsChecked()) { return MsgConstant.CANCEL; } if (adapter.getIsRegLed()) { return "销售出库单出库,请先反出库销售出库单!"; } if (RecSheet.haveDateNoDelete(adapter.getJndiName(), adapter .getExSheetCode())) { adapter.setCheckRemark(""); return "已关联收款单。不能作废!"; } if (!ToolKit.allowModify(adapter.getOperator(), loginUser) && !intuitsoft.eclipse.table.system.SystemPerms.agree(perms, intuitsoft.eclipse.table.system.EventCode.PRIVILEGE)) { return MsgConstant.NO_ALLOW_MODIFY; } return null; } public static String canBackOut(ExSheetAdapter adapter, int loginUser, Map perms) { CExSheetAdapter temp = new CExSheetAdapter(adapter.getJndiName()); temp.setExSheetCode(adapter.getExSheetCode()); if (!temp.content()) { return MsgConstant.NO_CONTENT; } else { int dateStatus = ToolKit.isRightDate(temp.getJndiName(), temp .getCreateDate()); if (dateStatus == 3) { return "单据日期无效!"; } else if (dateStatus == 2) { return "单据日期超出允许未来日期范围!"; } else if (dateStatus == 1) { return "单据日期超出允许历史日期范围!"; } if (temp.getIsExt()) { return "单据已收款不能反出入库"; } if (temp.getIsChecked()) { return "作废单据不能反出库"; } if (temp.getIsAcc()) { return "已记账单据不能反出库"; } if (!temp.getIsRegLed()) { return "未出库单据不能反出库"; } } if (!ToolKit.allowAudit(adapter.getUserName(), loginUser) && !intuitsoft.eclipse.table.system.SystemPerms.agree(perms, intuitsoft.eclipse.table.system.EventCode.PRIVILEGE)) { return MsgConstant.NO_ALLOW_MODIFY; } return null; } public static String canOut(ExSheetAdapter adapter, int loginUser, Map perms, int eventCode, List items, int warehouseCode, ExSheetAdapter exSheetAdapter) { CExSheetAdapter temp = new CExSheetAdapter(adapter.getJndiName()); temp.setExSheetCode(adapter.getExSheetCode()); if (!temp.content()) { return MsgConstant.NO_CONTENT; } else { int dateStatus = ToolKit.isRightDate(temp.getJndiName(), temp .getCreateDate()); if (dateStatus == 3) { return "单据日期无效!"; } else if (dateStatus == 2) { return "单据日期超出允许未来日期范围!"; } else if (dateStatus == 1) { return "单据日期超出允许历史日期范围!"; } CustomerAdapter cust = new CCustomerAdapter(adapter.getJndiName()); if (!cust.getCanShort(temp.getCustID()) && cust.getShortAmo(temp.getCustID()) > 0) { return "此客户不允许欠款时处理单据[销售/发货]"; } if (!cust.getCanOverShort(temp.getCustID()) && cust.getShortAmo(temp.getCustID()) > cust .getPlanAmo(temp.getCustID())) { return "此客户不允许欠款超过欠款额度时处理单据[销售/发货]"; } if (temp.getIsExt()) { return "单据已收款不能出库"; } if (temp.getIsChecked()) { return "作废单据不能出库"; } if (temp.getIsReg()) { return "已验收单据不能再出库"; } if (temp.getIsRegLed()) { return "已出库单据不能再出库"; } if (temp.getIsAcc()) { return "记账单据不能再出库,请先反记账"; } } if (!ToolKit.allowModify(adapter.getOperator(), loginUser)) { if (eventCode == EventCode.EX_SHEET_OUT_BALANCE_V) { ExItemsAdapter order = null; List newItems = new LinkedList(); for (int i = 0; i < items.size(); i++) { order = (ExItemsAdapter) items.get(i); if (order.getGoodsID() != 0) { newItems.add(order); } } if (adapter.dirty(adapter.getExSheetCode(), newItems)) { return MsgConstant.DATA_DIRTY_ERROR; } } } else { if (!ToolKit.allowSameUser(adapter.getJndiName())) { return MsgConstant.AUDIT_USER_ERROR; } } if (!ToolKit.allowNeg(adapter.getJndiName())) { String msg = ToolKit.itemsBalanceAssert(adapter.getJndiName(), items); if (!"".equals(msg)) { return "不允许负库存,操作被取消。\\n" + msg; } } return null; } public static String canAud(ExSheetAdapter adapter, int loginUser, Map perms, int eventCode, List items, int warehouseCode, ExSheetAdapter exSheetAdapter) { int dateStatus = ToolKit.isRightDate(adapter.getJndiName(), adapter .getCreateDate()); if (dateStatus == 3) { return "单据日期无效!";
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -