当有负数行商品时，找其他正数商品进行金额冲抵（优先商品名称一致的冲抵）：

1）反算数量，数量=冲抵后金额/正数行单价，数量保留小数位设置有效，忽略负数行数量跟单价

2）勾选“与正数商品行名称、税率、规格型号、计量单位、单价一致时优先合并”，则按商品行合并规则处理，数量累加

举例：

负数行冲抵规则，只冲抵金额，负数行数量、单价忽略
行性质 | 商品名称 | 数量 | 单价 | 金额 | 其他条件
--- | --- | --- | --- | --- | ---
普通商品行 | A | 10 | 5 | 50 |
负数行 | A | -12 | 1 | -12 |
普通商品行 | B | 10 | 8 | 80 |
负数行 | B | -2 | 8 | -16 |
处理后实际开票结果展示：
普通商品行 | A | 9.6 | 5 | 48 | 负数商品行的名称一样，单价等其他值不一样，忽略负数行的数量、单价，反算数量
普通商品行 | B | 8 | 8 | 64 | 有跟正数商品一致的负数行时，合并后数量累加

同一单据因超限被拆分多张，且加上发票最后一行商品金额正好超限额，此时是否需要将最后一行商品行按数量拆分到多张发票中。

为满足商品单价、数量指定小数位，被拆分商品在最后一张发票上可能会出现：金额!=数量*单价，为保证被拆分商品的总金额恒等，系统将调整被拆分商品的数量、单价、金额，不同设置将影响最后一张发票中单价、数量的计算取值规则：

1）调整数量：最后一张拆分数量=剩余金额/单价，可能最终总数量不等，数量保留小数位设置有效；

2）调整单价：最后一张单价=剩余金额/剩余数量，可能最后一张发票上商品单价不一致，单价保留小数位设置有效；

举例：

商品行拆分，假设单张发票限额100，数量、单价都设置保留4位小数，以含税计算，两张单据合并后开票
行性质 | 商品名称 | 数量 | 单价 | 金额 | 其他说明
--- | --- | --- | --- | --- | ---
普通商品行 | 商品A | 10 | 8 | 80.01 | 这里为了更好的反应数据变化，假设传入的金额因为做账等原因有0.01的误差；（1分钱金额误差政策是允许开票的）
普通商品行 | 商品A | 10 | 8 | 80.01
合并后拆分：设置调整数量，单价不变
发票1 | 商品A | 12.5 | 8 | 100 | 100 | 最后一张发票数量=（160.02-100）/8=7.5025
发票2 | 商品A | 7.5025 | 8 | 60 | 60.02
合并后拆分：设置调整单价，数量不变
发票1 | 商品A | 12.5 | 8 | 100 | 100 | 最后一张发票单价 = (160.02-100)/(20-12.5) ≈ 8.0027
发票2 | 商品A | 7.5 | 8.0027 | 60 | 60.02

商品行/单据合并后，发票总税额汇总计算时，可能出现误差，系统必须调整以保证误差在允许的范围内，才能正常开出发票。

税额的计算规则将影响到系统误差调整规则

1）以系统计算为准，则系统自动计算明细行税额，税额=不含税金额*税率。

若出现误差，系统将调整税额，将误差分摊到其他明细行的税额中，可能出现明细的税额≠不含税金额*税率；

2）以实际输入税额为准，则明细行税额以自己传入的税额为准。

若出现误差，系统将反算当前明细行的不含税金额，可能出现整张发票的总不含税金额*税率≠明细行税额之和的情况；

误差=不含税金额*税率-税额，政策允许的税额误差范围内，单行±0.06，整张发票±1.27。