入库单优化费用汇总明细分录逻辑
This commit is contained in:
		
							parent
							
								
									1aef4df699
								
							
						
					
					
						commit
						beade8ba3d
					
				| 
						 | 
				
			
			@ -1609,7 +1609,7 @@ public class MaterialInBillEditPluginExt extends AbstractEcmaBillPlugin implemen
 | 
			
		|||
                recordTransamount = transamount.divide(new BigDecimal(entryRowCount3), 10, RoundingMode.CEILING);
 | 
			
		||||
                recordTransoftaxamount = transoftaxamount.divide(new BigDecimal(entryRowCount3), 10, RoundingMode.CEILING);
 | 
			
		||||
                zcgj_transtaxamounts = transtaxamount.divide(new BigDecimal(entryRowCount3), 10, RoundingMode.CEILING);
 | 
			
		||||
                this.getModel().beginInit();
 | 
			
		||||
//                this.getModel().beginInit();//二开注释掉的
 | 
			
		||||
                lastTransamount = new BigDecimal(0);
 | 
			
		||||
                lastTransoftaxamount = new BigDecimal(0);
 | 
			
		||||
                zcgj_transtaxamounts2 = new BigDecimal(0);
 | 
			
		||||
| 
						 | 
				
			
			@ -1633,9 +1633,9 @@ public class MaterialInBillEditPluginExt extends AbstractEcmaBillPlugin implemen
 | 
			
		|||
                this.getModel().setValue("taxtransamount", splitTaxAmount, entryRowCount3 - 1);//含税运费
 | 
			
		||||
                this.getModel().setValue("zcgj_transtaxamount", zcgj_transtaxamounts3, entryRowCount3 - 1);//运费税额
 | 
			
		||||
                this.getModel().setValue("amount", EcNumberHelper.add(this.getModel().getValue("ftransamount", entryRowCount3 - 1), amount1), entryRowCount3 - 1);//含运费金额(不含税)
 | 
			
		||||
                this.getModel().endInit();
 | 
			
		||||
//                this.getModel().endInit();//二开注释掉的
 | 
			
		||||
            } else if ("2".equals(splitType)) {
 | 
			
		||||
                this.getModel().beginInit();
 | 
			
		||||
//                this.getModel().beginInit();//二开注释掉的
 | 
			
		||||
                recordTransamount = new BigDecimal(0);
 | 
			
		||||
                recordTransoftaxamount = new BigDecimal(0);
 | 
			
		||||
                zcgj_transtaxamounts = new BigDecimal(0);
 | 
			
		||||
| 
						 | 
				
			
			@ -1662,14 +1662,14 @@ public class MaterialInBillEditPluginExt extends AbstractEcmaBillPlugin implemen
 | 
			
		|||
                this.getModel().setValue("taxtransamount", lastTransoftaxamount, entryRowCount3 - 1);//含税运费
 | 
			
		||||
                this.getModel().setValue("zcgj_transtaxamount", zcgj_transtaxamounts2, entryRowCount3 - 1);//含税运费
 | 
			
		||||
                this.getModel().setValue("amount", EcNumberHelper.add(this.getModel().getValue("ftransamount", entryRowCount3 - 1), amount), entryRowCount3 - 1);//含运费金额(不含税)
 | 
			
		||||
                this.getModel().endInit();
 | 
			
		||||
            } else {
 | 
			
		||||
//                this.getModel().endInit();//二开注释掉的
 | 
			
		||||
            }/* else {
 | 
			
		||||
                for (int i = 0; i < entryRowCount3; ++i) {
 | 
			
		||||
                    this.getModel().setValue("ftransamount", 0, i);//运费
 | 
			
		||||
                    this.getModel().setValue("taxtransamount", 0, i);//含税运费
 | 
			
		||||
                    this.getModel().setValue("zcgj_transtaxamount", 0, i);//运费税额
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
            }*///二开注释掉的
 | 
			
		||||
 | 
			
		||||
            this.getView().updateView("entryentity");
 | 
			
		||||
            this.fieldLockLogic();
 | 
			
		||||
| 
						 | 
				
			
			@ -1899,9 +1899,10 @@ public class MaterialInBillEditPluginExt extends AbstractEcmaBillPlugin implemen
 | 
			
		|||
                this.getView().getModel().setValue("transamount", transamount);
 | 
			
		||||
                this.getView().getModel().setValue("transoftaxamount", transoftaxamount);
 | 
			
		||||
                this.getView().getModel().setValue("transtaxamount", transtaxamount);
 | 
			
		||||
                this.getView().getModel().setValue("splittype", splittype);
 | 
			
		||||
//                this.getView().getModel().setValue("splittype", splittype);//二开注释掉的
 | 
			
		||||
                this.getView().getModel().setValue("taxrate", cbsInfo);
 | 
			
		||||
                this.getModel().endInit();
 | 
			
		||||
                this.getView().getModel().setValue("splittype", splittype);//二开添加的
 | 
			
		||||
                this.transamountChanged(transamount);
 | 
			
		||||
                this.transoftaxamountChanged(transoftaxamount);
 | 
			
		||||
                this.transtaxamountChanged(transtaxamount);
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -221,8 +221,8 @@ public class MaterialInbPurchaseApplyPlugin extends AbstractBillPlugIn implement
 | 
			
		|||
            } else {
 | 
			
		||||
                this.getModel().setValue("zcgj_applidepart", null);//清空申请人部门字段
 | 
			
		||||
            }
 | 
			
		||||
        } else if ("totaloftaxamount".equals(key) || "taxamount".equals(key)) {
 | 
			
		||||
            //入库含税总金额,税额
 | 
			
		||||
        } else if ("totaloftaxamount".equals(key) || "taxamount".equals(key) || "splittype".equals(key)) {
 | 
			
		||||
            //入库含税总金额,税额,分摊类型
 | 
			
		||||
            if ("taxamount".equals(key)) {
 | 
			
		||||
                //税额
 | 
			
		||||
                Boolean adjustamount = (Boolean) this.getModel().getValue("adjustamount");//微调金额
 | 
			
		||||
| 
						 | 
				
			
			@ -244,7 +244,6 @@ public class MaterialInbPurchaseApplyPlugin extends AbstractBillPlugIn implement
 | 
			
		|||
            BigDecimal calculatedTaxIncludedFreight = totalFreightTaxAmount.add(totalFreightAmount); // 含税运费 = 运费税额 + 运费
 | 
			
		||||
            BigDecimal calculatedTotalTaxIncluded = totalFreightAmount.add(totalFreightTaxAmount).add(totalNoTaxAmount).add(totalTaxAmount); // 入库含税总金额
 | 
			
		||||
 | 
			
		||||
            this.getModel().beginInit();
 | 
			
		||||
            this.getModel().setValue("totaltaxamount", calculatedTotalTax);            // 总税额
 | 
			
		||||
            this.getModel().setValue("transtaxamount", totalFreightTaxAmount);         // 运费总税额
 | 
			
		||||
            this.getModel().setValue("transoftaxamount", calculatedTaxIncludedFreight); // 含税总运费
 | 
			
		||||
| 
						 | 
				
			
			@ -254,7 +253,6 @@ public class MaterialInbPurchaseApplyPlugin extends AbstractBillPlugIn implement
 | 
			
		|||
            this.getView().updateView("transtaxamount");
 | 
			
		||||
            this.getView().updateView("transoftaxamount");
 | 
			
		||||
            this.getView().updateView("totaloftaxamount");
 | 
			
		||||
            this.getModel().endInit();
 | 
			
		||||
            setNewExpenseSummary();
 | 
			
		||||
        } else if ("ftransamount".equals(key)) {
 | 
			
		||||
            // 入库单明细-运费
 | 
			
		||||
| 
						 | 
				
			
			@ -269,7 +267,6 @@ public class MaterialInbPurchaseApplyPlugin extends AbstractBillPlugIn implement
 | 
			
		|||
            BigDecimal calculatedTaxIncludedFreight = totalFreightTaxAmount.add(totalFreightAmount); // 含税运费 = 运费税额 + 运费
 | 
			
		||||
            BigDecimal calculatedTotalTaxIncluded = totalFreightAmount.add(totalFreightTaxAmount).add(totalNoTaxAmount).add(totalTaxAmount); // 入库含税总金额
 | 
			
		||||
 | 
			
		||||
            this.getModel().beginInit();
 | 
			
		||||
            this.getModel().setValue("transamount", totalFreightAmount);               // 总运费
 | 
			
		||||
            this.getModel().setValue("totalamount", calculatedTotalAmount);            // 入库总金额
 | 
			
		||||
            this.getModel().setValue("transoftaxamount", calculatedTaxIncludedFreight); // 含税总运费
 | 
			
		||||
| 
						 | 
				
			
			@ -279,7 +276,6 @@ public class MaterialInbPurchaseApplyPlugin extends AbstractBillPlugIn implement
 | 
			
		|||
            this.getView().updateView("totalamount");
 | 
			
		||||
            this.getView().updateView("transoftaxamount");
 | 
			
		||||
            this.getView().updateView("totaloftaxamount");
 | 
			
		||||
            this.getModel().endInit();
 | 
			
		||||
            setNewExpenseSummary();
 | 
			
		||||
        } else if ("oftaxamount".equals(key) || "taxprice".equals(key)) {
 | 
			
		||||
            //入库单明细-含税金额、入库单明细-入库含税单价
 | 
			
		||||
| 
						 | 
				
			
			@ -552,11 +548,11 @@ public class MaterialInbPurchaseApplyPlugin extends AbstractBillPlugIn implement
 | 
			
		|||
        DynamicObjectCollection entryEntityCollection = this.getModel().getDataEntity(true).getDynamicObjectCollection("entryentity");//入库单分录
 | 
			
		||||
        DynamicObjectCollection expenseSummaryCollection = this.getModel().getDataEntity(true).getDynamicObjectCollection("zcgj_expensesummary");//费用汇总分录
 | 
			
		||||
 | 
			
		||||
        // 查找现有的运费行,如果没有则创建新的
 | 
			
		||||
        DynamicObject freightLine = findOrCreateFreightLine(expenseSummaryCollection);
 | 
			
		||||
        // 获取分摊类型
 | 
			
		||||
        String splitType = (String) this.getModel().getValue("splittype");
 | 
			
		||||
 | 
			
		||||
        // 清空费用汇总分录(保留运费行)
 | 
			
		||||
        clearNonFreightLines(expenseSummaryCollection);
 | 
			
		||||
        // 清空费用汇总分录
 | 
			
		||||
        expenseSummaryCollection.clear();
 | 
			
		||||
 | 
			
		||||
        // 根据入库单分录创建费用行
 | 
			
		||||
        DynamicObjectType expenseSummaryType = expenseSummaryCollection.getDynamicObjectType();
 | 
			
		||||
| 
						 | 
				
			
			@ -586,10 +582,13 @@ public class MaterialInbPurchaseApplyPlugin extends AbstractBillPlugIn implement
 | 
			
		|||
            expenseSummaryCollection.add(newExpenseSummaryEntity);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        // 更新运费行数据并确保其存在于集合中
 | 
			
		||||
        updateFreightLineData(freightLine);
 | 
			
		||||
        if (!expenseSummaryCollection.contains(freightLine)) {
 | 
			
		||||
            expenseSummaryCollection.add(freightLine);
 | 
			
		||||
        // 根据分摊类型处理运费行
 | 
			
		||||
        if ("3".equals(splitType)) {
 | 
			
		||||
            // 不分摊 - 创建一条固定的运费行,使用汇总值
 | 
			
		||||
            handleUnsplitFreightLine(expenseSummaryCollection);
 | 
			
		||||
        } else if ("1".equals(splitType) || "2".equals(splitType)) {
 | 
			
		||||
            // 平分分摊或比例分摊 - 为每条入库单明细创建运费行
 | 
			
		||||
            handleSplitFreightLines(entryEntityCollection, expenseSummaryCollection);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        // 处理发票号码汇总逻辑
 | 
			
		||||
| 
						 | 
				
			
			@ -599,6 +598,134 @@ public class MaterialInbPurchaseApplyPlugin extends AbstractBillPlugIn implement
 | 
			
		|||
        this.getView().updateView("zcgj_expensesummary");//刷新分录
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 处理不分摊情况下的运费行
 | 
			
		||||
     *
 | 
			
		||||
     * @param expenseSummaryCollection 费用汇总分录集合
 | 
			
		||||
     */
 | 
			
		||||
    private void handleUnsplitFreightLine(DynamicObjectCollection expenseSummaryCollection) {
 | 
			
		||||
        DynamicObject newFreightLine = new DynamicObject(expenseSummaryCollection.getDynamicObjectType());
 | 
			
		||||
        
 | 
			
		||||
        // 设置运费行标识
 | 
			
		||||
        newFreightLine.set("zcgj_isfreightline", true);
 | 
			
		||||
        
 | 
			
		||||
        // 使用单据头上的字段(汇总值)
 | 
			
		||||
        BigDecimal transSoftTaxAmount = (BigDecimal) getModel().getValue("transoftaxamount"); // 含税运费
 | 
			
		||||
        BigDecimal transAmount = (BigDecimal) getModel().getValue("transamount"); // 总运费
 | 
			
		||||
        BigDecimal transtaxAmount = (BigDecimal) getModel().getValue("transtaxamount"); // 运费总税额
 | 
			
		||||
        DynamicObject taxRate = (DynamicObject) getModel().getValue("taxrate"); // 运费税率
 | 
			
		||||
        
 | 
			
		||||
        // 设置运费行数据
 | 
			
		||||
        newFreightLine.set("zcgj_pa_amount", transSoftTaxAmount); // 价税合计-含税总运费
 | 
			
		||||
        newFreightLine.set("zcgj_amountnotax", transAmount); // 不含税金额-总运费
 | 
			
		||||
        newFreightLine.set("zcgj_taxamt", transtaxAmount); // 税额-运费总税额
 | 
			
		||||
        if (taxRate != null) {
 | 
			
		||||
            newFreightLine.set("zcgj_rateval", taxRate.get("taxrate")); // 税率
 | 
			
		||||
        }
 | 
			
		||||
        
 | 
			
		||||
        // 设置固定的运费费用项目
 | 
			
		||||
        DynamicObject ecbd_resource = BusinessDataServiceHelper.loadSingle("ecbd_resource",
 | 
			
		||||
                "id,zcgj_expenseitem", new QFilter[]{new QFilter("number", QCP.equals, "ZCKS07")});//清单分类-固定运费
 | 
			
		||||
        if (ecbd_resource != null) {
 | 
			
		||||
            DynamicObject expenseItem = ecbd_resource.getDynamicObject("zcgj_expenseitem");
 | 
			
		||||
            newFreightLine.set("zcgj_expenseitem", expenseItem);
 | 
			
		||||
            newFreightLine.set("zcgj_shippingcostitem", expenseItem); // 运费费用项目
 | 
			
		||||
        }
 | 
			
		||||
        
 | 
			
		||||
        // 添加到费用汇总分录
 | 
			
		||||
        expenseSummaryCollection.add(newFreightLine);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 处理平分分摊或比例分摊情况下的运费行
 | 
			
		||||
     *
 | 
			
		||||
     * @param entryEntityCollection    入库单明细集合
 | 
			
		||||
     * @param expenseSummaryCollection 费用汇总分录集合
 | 
			
		||||
     */
 | 
			
		||||
    private void handleSplitFreightLines(DynamicObjectCollection entryEntityCollection, DynamicObjectCollection expenseSummaryCollection) {
 | 
			
		||||
        // 获取单据头上的税率
 | 
			
		||||
        DynamicObject taxRate = (DynamicObject) getModel().getValue("taxrate");
 | 
			
		||||
        BigDecimal rateValue = taxRate != null ? (BigDecimal) taxRate.get("taxrate") : BigDecimal.ZERO;
 | 
			
		||||
 | 
			
		||||
        // 遍历入库单明细,为每条记录创建一条运费行
 | 
			
		||||
        for (DynamicObject entryEntity : entryEntityCollection) {
 | 
			
		||||
            DynamicObject newFreightLine = new DynamicObject(expenseSummaryCollection.getDynamicObjectType());
 | 
			
		||||
 | 
			
		||||
            // 设置运费行标识
 | 
			
		||||
            newFreightLine.set("zcgj_isfreightline", true);
 | 
			
		||||
 | 
			
		||||
            // 获取运费相关字段
 | 
			
		||||
            BigDecimal ftransamount = (BigDecimal) entryEntity.get("ftransamount"); // 运费
 | 
			
		||||
            BigDecimal zcgj_transtaxamount = (BigDecimal) entryEntity.get("zcgj_transtaxamount"); // 运费税额
 | 
			
		||||
            BigDecimal taxtransamount = (BigDecimal) entryEntity.get("taxtransamount"); // 含税运费
 | 
			
		||||
 | 
			
		||||
            // 计算含税运费(运费 + 运费税额)
 | 
			
		||||
            BigDecimal calculatedTaxTransAmount = ftransamount.add(zcgj_transtaxamount);
 | 
			
		||||
 | 
			
		||||
            // 价税合计-含税运费
 | 
			
		||||
            newFreightLine.set("zcgj_pa_amount", calculatedTaxTransAmount);
 | 
			
		||||
 | 
			
		||||
            // 不含税金额-运费
 | 
			
		||||
            newFreightLine.set("zcgj_amountnotax", ftransamount);
 | 
			
		||||
 | 
			
		||||
            // 税额-运费税额
 | 
			
		||||
            newFreightLine.set("zcgj_taxamt", zcgj_transtaxamount);
 | 
			
		||||
 | 
			
		||||
            // 设置税率
 | 
			
		||||
            newFreightLine.set("zcgj_rateval", rateValue);
 | 
			
		||||
 | 
			
		||||
            // 设置费用项目 - 根据入库单明细中的资源编码获取对应的费用项目
 | 
			
		||||
            DynamicObject material = entryEntity.getDynamicObject("material");
 | 
			
		||||
            if (material != null) {
 | 
			
		||||
                DynamicObject resource = material.getDynamicObject("resource");
 | 
			
		||||
                if (resource != null) {
 | 
			
		||||
                    String resourceNumber = resource.getString("number");
 | 
			
		||||
                    DynamicObject ecbd_resource = BusinessDataServiceHelper.loadSingle("ecbd_resource",
 | 
			
		||||
                            "id,zcgj_expenseitem", new QFilter[]{new QFilter("number", QCP.equals, resourceNumber)});
 | 
			
		||||
                    if (ecbd_resource != null) {
 | 
			
		||||
                        DynamicObject expenseItem = ecbd_resource.getDynamicObject("zcgj_expenseitem");
 | 
			
		||||
                        newFreightLine.set("zcgj_expenseitem", expenseItem);
 | 
			
		||||
                    }
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            // 添加到费用汇总分录
 | 
			
		||||
            expenseSummaryCollection.add(newFreightLine);
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 获取运费对应的费用项目
 | 
			
		||||
     *
 | 
			
		||||
     * @param entryEntity 入库单明细实体
 | 
			
		||||
     * @return 费用项目对象
 | 
			
		||||
     */
 | 
			
		||||
    private DynamicObject getExpenseItemForFreight(DynamicObject entryEntity) {
 | 
			
		||||
        DynamicObject expenseItem = null;
 | 
			
		||||
        DynamicObject material = entryEntity.getDynamicObject("material");//入库单分录-资源编码
 | 
			
		||||
        if (material != null) {
 | 
			
		||||
            DynamicObject resource = material.getDynamicObject("resource");//入库单分录-资源编码-清单分类
 | 
			
		||||
            if (resource != null) {
 | 
			
		||||
                String resourceNumber = resource.getString("number");//资源编码-清单分类-编码
 | 
			
		||||
                DynamicObject ecbd_resource = BusinessDataServiceHelper.loadSingle("ecbd_resource",
 | 
			
		||||
                        "id,zcgj_expenseitem", new QFilter[]{new QFilter("number", QCP.equals, resourceNumber)});//清单分类
 | 
			
		||||
                expenseItem = ecbd_resource.getDynamicObject("zcgj_expenseitem");//费用项目
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        // 如果没有找到对应的费用项目,使用默认的运费费用项目
 | 
			
		||||
        if (expenseItem == null) {
 | 
			
		||||
            DynamicObject ecbd_resource = BusinessDataServiceHelper.loadSingle("ecbd_resource",
 | 
			
		||||
                    "id,zcgj_expenseitem", new QFilter[]{new QFilter("number", QCP.equals, "ZCKS07")});//清单分类-固定运费
 | 
			
		||||
            if (ecbd_resource != null) {
 | 
			
		||||
                expenseItem = ecbd_resource.getDynamicObject("zcgj_expenseitem");
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        return expenseItem;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 处理发票号码汇总逻辑
 | 
			
		||||
     *
 | 
			
		||||
| 
						 | 
				
			
			@ -636,7 +763,7 @@ public class MaterialInbPurchaseApplyPlugin extends AbstractBillPlugIn implement
 | 
			
		|||
            invoiceTypeMap.put(invoiceNumber, invoice);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        // 更新运费行的发票号码和专票/抵扣字段
 | 
			
		||||
        // 更新所有运费行的发票号码和专票/抵扣字段
 | 
			
		||||
        for (DynamicObject line : expenseSummaryCollection) {
 | 
			
		||||
            if (Boolean.TRUE.equals(line.getBoolean("zcgj_isfreightline"))) {
 | 
			
		||||
                // 运费行 - 设置运费发票号码
 | 
			
		||||
| 
						 | 
				
			
			@ -653,33 +780,26 @@ public class MaterialInbPurchaseApplyPlugin extends AbstractBillPlugIn implement
 | 
			
		|||
                    line.set("zcgj_isspecialinvoice", false);
 | 
			
		||||
                    line.set("zcgj_offset", false);
 | 
			
		||||
                }
 | 
			
		||||
                break;
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        // 更新所有非运费行的发票号码和专票/抵扣字段
 | 
			
		||||
        for (DynamicObject line : expenseSummaryCollection) {
 | 
			
		||||
            if (Boolean.TRUE.equals(line.getBoolean("zcgj_isfreightline"))) {
 | 
			
		||||
                continue; // 跳过运费行
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            // 非运费行 - 设置非运费发票号码
 | 
			
		||||
            if (!nonFreightInvoiceNumbers.isEmpty()) {
 | 
			
		||||
                String invoiceNumbersStr = String.join(",", nonFreightInvoiceNumbers);
 | 
			
		||||
                line.set("zcgj_invoicenoentry", invoiceNumbersStr);
 | 
			
		||||
 | 
			
		||||
                // 设置专票和抵扣字段
 | 
			
		||||
                boolean isSpecialInvoice = checkIfSpecialInvoice(nonFreightInvoiceNumbers, invoiceTypeMap);
 | 
			
		||||
                line.set("zcgj_isspecialinvoice", isSpecialInvoice);
 | 
			
		||||
                line.set("zcgj_offset", isSpecialInvoice);
 | 
			
		||||
            } else {
 | 
			
		||||
                line.set("zcgj_invoicenoentry", null);
 | 
			
		||||
                line.set("zcgj_isspecialinvoice", false);
 | 
			
		||||
                line.set("zcgj_offset", false);
 | 
			
		||||
                // 非运费行 - 设置非运费发票号码
 | 
			
		||||
                if (!nonFreightInvoiceNumbers.isEmpty()) {
 | 
			
		||||
                    String invoiceNumbersStr = String.join(",", nonFreightInvoiceNumbers);
 | 
			
		||||
                    line.set("zcgj_invoicenoentry", invoiceNumbersStr);
 | 
			
		||||
 | 
			
		||||
                    // 设置专票和抵扣字段
 | 
			
		||||
                    boolean isSpecialInvoice = checkIfSpecialInvoice(nonFreightInvoiceNumbers, invoiceTypeMap);
 | 
			
		||||
                    line.set("zcgj_isspecialinvoice", isSpecialInvoice);
 | 
			
		||||
                    line.set("zcgj_offset", isSpecialInvoice);
 | 
			
		||||
                } else {
 | 
			
		||||
                    line.set("zcgj_invoicenoentry", null);
 | 
			
		||||
                    line.set("zcgj_isspecialinvoice", false);
 | 
			
		||||
                    line.set("zcgj_offset", false);
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 检查发票列表中是否包含专票类型的发票
 | 
			
		||||
     *
 | 
			
		||||
| 
						 | 
				
			
			@ -705,7 +825,6 @@ public class MaterialInbPurchaseApplyPlugin extends AbstractBillPlugIn implement
 | 
			
		|||
    }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 查找或创建运费行
 | 
			
		||||
     *
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue