领料出库单审核时校验成本对象财务组织是否正确

栏目:eas cloud知识作者:金蝶来源:金蝶云社区发布:2024-09-16浏览:1

领料出库单审核时校验成本对象财务组织是否正确

场景:领料出库单上成本对象财务组织与单据的财务组织不一致时,会导致成本计算问题

       问题:单据都是很久以前做好的,等到成本计算时一般都是期末,才能发现问题,不好定位成本对象错误是如何产生的。

       解决方案:在领料出库单审核时,进行成本对象校验。这样在做单据的时候就可以发现问题,更方便的去定位成本对象错误的产生原因。

校验逻辑

       领料出库单审核时,检验每行分录上的成本对象财务组织与分录上财务组织是否一致,如果不一致,则抛出异常提示。校验会校验所有行数据,如果存在多行错误,会提示每一行的问题

dep源码

var imp = JavaImporter();
imp.importPackage(Packages.com.kingdee.bos.metadata.entity);
imp.importPackage(Packages.com.kingdee.eas.scm.im.inv);
imp.importPackage(Packages.java.lang);
with(imp) {
    //获取上下文,参数-单据pk
    var ctx = pluginCtx.getContext();
    var billPk = methodCtx.getParamValue(0);

    if (billPk != null) {
        // 重新查询单据信息
        var selector = new SelectorItemCollection();
        // 查询分录财务组织,分录成本对象,以及成本对象的财务组织
        selector.add("entry.seq");
        selector.add("entry.companyOrgUnit");
        selector.add("entry.costObject.company");
        var billInfo = MaterialReqBillFactory.getLocalInstance(ctx).getMaterialReqBillInfo(billPk, selector);
        if (billInfo != null && billInfo.getEntry() != null && billInfo.getEntry().size() > 0) {
            var entryColl = billInfo.getEntry();
            var entryInfo = null;
            var msg = new StringBuffer();
            var company = null;
            for (var i = 0, size = entryColl.size(); i < size; i++) {
                entryInfo = entryColl.get(i);
                if (i == 0 && entryInfo != null) {
                    company = entryInfo.getCompanyOrgUnit();
                    if (company == null) {
                        throw new InvBizException(InvBizException.COMMON, ["财务组织为空!"]);
                    }
                }
                // 如果分录上的成本对象上的财务组织与分录上的财务组织不同时,则拼接分录序号,供提示使用
                if (entryInfo != null &&
                    company != null && entryInfo.getCostObject() != null &&
                    !company.getId().toString().equals(entryInfo.getCostObject().getCompany().getId().toString())) {
                    msg.append(Integer.toString(entryInfo.getSeq())).append(",");
                }
            }
            // 如果存在需要提示的分录,则进行提示
            if (msg.length() > 0) {
                throw new InvBizException(InvBizException.COMMON, ["第 " + msg.substring(0, msg.length() - 1) + " 行成本对象财务组织与单据的财务组织不一致"]);
            }
        }
    }
}

部署位置

image.webp


领料出库单审核时校验成本对象财务组织是否正确

场景:领料出库单上成本对象财务组织与单据的财务组织不一致时,会导致成本计算问题 问题:单据都是很久以前做好的,等到成本计算...
点击下载文档
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息