1、木头坦克 SAP版自动金税开票解决方案 简介: 背景 1. 金税系统:在中国,增值税销项税发票必须使用税务局指定的防伪税控开票系统 开具(简称:金税系统). 2. 与 SAP 的集成:企业所使用的 SAP 软件管理系统和税务上防伪税控开票系统相 互独立,两者间缺少有效的数据共享接口,造成税务流程涉及大量的手工重复 工作和多系统间的数据人工传递。同时,由于 SAP 软件系统通常没有办法直 接接收防伪税控开票系统返回的发票信息,导致增值税发票往往难以核查,销 售与财务的报表数据常常对应不上,从而影响整个企业的业务管理流程。 3. 税务部门对于开票的要求: 1) 每张票的不含税总金额有上限,上限的具
2、体值根据公司代码所对应公司 所在当地税务机关的规定而定. 2) 每张票以及票中的每一行的税额计算误差不得超过 0.06 元 3) 只有部分用户有权限开红字发票(金额为负的发票) 4. 甲方单位本身对开票的要求: 1) 甲方本身已经购买了第三方的金税接口软件,但是因为用户导入的接口 文件中无法保证每票每行的误差不超过 0.06 元, 同时也没有根据每票 金额上限分折.这样导入接口程序就出现很多异常情况, 有时是无法开票, 有 时则会拆分成许多发票. 即使是接口能拆分开票的,也有问题:一、因为其拆分规则没有照顾到用 户的一些特殊要求,将一些像退货冲销这样不应该拆分的记录也拆分了。 二、在金税已经开
3、完票之后回传到 SAP 时就会出现无法与原来的内部 编号一一对应的情况。为了避免这两种情况,所以必须在 SAP ECC 系 统 中开发本模块以实现金税接口软件中所有拆分的逻辑, 这样本模块产 生的接口文件都是已经保证上限和误差都符合金税要求的文件.导入接 口程序时就不会再触发拆分的过程。 2) 对于是否有权开红票要自定义数据表进行维护,在开票时自动检查是否 有红票开出.并且只有在 BL 数据是退货时才允许开出红字的发票,如果 无权限又开出退货红票,要能检查出来, 并且提示. 3) 对于 SAP 中不是因为退货而在 BL 中开出的金额为负的数据(出错,调 价,冲销等),无论该客户是否有权限开出红
4、字发票都不允许开出红字发 票,而要和对应 BL 一一自动合并 ;对于没有对应 BL 的数据(如调价等), 要 在所有当前票和票下面的行中进行自动分配.最终要保证每张发票的金 额为正,同时每张的每一行也要为正. 4) 因为开票时 BL 的数据量极大(一个月 20 万的 BL 记录量),所以在选择 多个客户的数据时,要根据客户自动合并开票. 使用一个发票只能有一个 客户的 BL 数据,同时在一客户下的数据要尽可能的合并开票,减少开票 数量. 5) 对于零散用户使用一个客户编码的,要提供批量修改抬头的地方.并且修 改之后的抬头也要参与上一条提到的合并开票逻辑. 开发完解决方案的特点: 1. 自动动态
5、拆分:当正在开出的发票金额超过上限或误差超限时自动拆分,拆分方 式是从先按金额上限拆分再按误差上限拆分.拆分是从末尾往前求出最优的拆分 点来拆分的.保证了拆分出的票数最小. 根据税务部门要求:在票和行的级别都会 进行拆分以保证每张票和票中的每一行的误差都不超过 0.06(这样就完全不需 要第三方的金税接口软件了) 2. 自动动态调整:当发票找到不到拆分点时(即上述自动拆分之后误差仍超过 0.06 的情况一),会自动将误差调整至规定误差以下. 为了避免调整时将误差调整到某 一行时导致该行的误差超限,分配调整金额是按每一行的累计误差动态分配调整 的( 以 0.01 元为单位), 保证了不会使行的误
6、差超限.调整的金额记录到行, 保证 未来调账时有据可查,并可以在回写数据时自动产生调账凭证. 根据税务部门要 求:在票和行的级别都会进行调整,以保证每张票和票中的每一行的误差都不超 过 0.06 3. 自动合并:可以分公司分客户自动合并开票,退货凭证与对应凭证自动合并开票. 支持手工调整合并方式.支持用户手工调整开票抬头,并且自动按抬头自动合并 开票. 4. 中间存储开票数据:所有开票数据从 VBRKVBRP 先取到中间表 ,提升取数效率. 5. 开票灵活:选择中间数据(VBRKVBRP) 开票过程中可以随时删除不需要的数据 , 即使在一个行内也允许输入部分金额或者数量进行部分开票. 6. 提
7、示信息以弹出窗表格式显示:一个步骤所返回给用户的信息用弹出表格式一 次显示给用户,而不是像传统的 SAP 界面一个个提示消息. 7. 界面友好直观:处理界面使用可调式分屏界面,发票数据用树型表示,界面友好. 解决方案的介绍: 1. 概览: 使用的主要事务码: Z0021 金税开票 - 处理 Z0022 金税开票 - 下载 Z0023 金税开票 回传 Z0024 金税开票 查询 Z0025 金税开票-开冲销发票的控制表 Z0037 金税开票-开票金额上限的控制 表 2. Z0021 金税开票 - 处理介绍: 此部分功能针对销司项目涉及到的系统发票的汇总拆分到金税票的处理,包括 正向发票,退货贷项
8、,调价补差类型的发票;针对这些数据进行合并,总额拆分,精度 拆分,产生系统的传输票号,用于进行上传金税票的 TXT 信息下载; 合并逻辑:1)正常销售发票/冲红发票,退货贷项/退货冲红 都是通过 同一分 组+同一结算方+同一结算方抬头名称+同一型号+同一单价 进行合并; 2)借贷项(调价补差)发票通过同一分组+同一结算方+同一结算 方抬头名称进行合并,产生单票的折扣行; 3) 手工进行特殊合并到行的处理,可通过同一客户进行合并到传输票的一行; 拆分逻辑:全部开金税票都必须进行的检查逻辑,总的单张金税传输票的总额 小于等于公司可开票额度,和 单张传输票的精度以及传输票的每行的精度=(净值*0.1
9、7- 税额)如下图: 画面按钮解释: 功能键 说明 范例 合并到发票(F9) 按正常合并拆分逻辑进行合并到多票多行; 合并到发票行 (Shift+F9) 手工合并到行,即对选择出的项目合并到一票一行;适用一些不能 按正常合并的规则进行合并的发票项目,如和正向不同价格或物料 的退货项目,需要合并到正向发票的一起开票的情形; 刷新(F2) 点击刷新,按输入的数量计算出金额 取消(ESC) 退出当前画面 点击合并到票按钮出现下图: 屏幕或字段信息 说明 处理屏幕下方树形信息 按正常合并拆分规则拆分出多张传输发票信息,第一层信息:自动 产生的传输票号,即如打印成金税的标准 TXT 格式,则此传输票号
10、产生一金税票号,即可理解成,拆分的传输票号,即是打印的一张 金税票;第二层信息:打印成金税票的行信息,数据的组成为系统 发票的相同客户+相同物料+相同含税单价的汇总合并;第三层信息: 即是具体的系统发票行数据; 树形信息误差调整字段 是否有误差的调整标识:X 有误差调整,空 - 没有误差调整 树形信息误差调整值 如有误差上的调整值=传输票的行调整后的净值-原发票的汇总净值; 因金税票的调价补差需进行合并到一折扣行,这部分很有可能行的 计算精度0.06,如大于 0.06,即传输票的行,会按总额再次进行调 整净值和税额,调整后的净值和此行汇总的净值的误差就会记录到 此字段中; 选择列 当 当前已开
11、票金额=金税未开票金额 时为不可操作 点击保存按钮,并且在弹出的框中点击是,如点否并直接退出不保存则系统不保存此次产生的 传输票号, 保存成功,更新相关状态成功信息提示,点击确定按钮或按回车,回到选择画面,操作完成! 如需对特殊的退货进行合并开票,则可使用手工合并开票-合并到行按钮 系统自动合并和拆分出 2 张传输票,由下图看出,不同的单价,不同的料通过此功能可以合并到 一起! 点击保存按钮,即可保存传输票号; 点击按钮是,成功保存 OK; 2.2 分客户批量开票 操作细部描述 针对公司下不同的结算客户批量,并可对相同客户按不同的分组进行手工组合开票; 选择画面中勾选需处理的系统发票项目,然后
12、点击分客户批量开票按钮,进入下面处理画面; 屏幕解释(处理屏幕字段栏位解释外字段) 栏 位 说 明 范 例 分 组 标 识 可手工进行输入,不输入,即默认标识为相同 分组 0,在需要进行合并到一起的标识相同的 编号; 把 90000459 中 的 50 -80 行 项 目 分 为 同 一 组 , 即 想 这 几 个 是 需 要 放 到 一 张 传 输 票 中 ; 点 击 点击 ,进入如下画面,系统按 既定的逻辑合并,然后拆分,得出如下传输票号, 即不同的客户分开传输票号,不同的分组合在一 起进行开票,借贷项进行合并到折扣行! 确认信息后,点击保存按钮进行保存。 3. Z0022金税开票 - 下
13、载 说明: 该处理过程主要针对的是对金税处理好的传输的票号进行下载成标准的金税上 传文本格式; 附:金税标准文本格式示例: 操作细部描述: SJJK0101固 定 .docx 进入下载画面 筛选条件画面字段解释: 字段名或功能键 类型 用途及说明 公司代码 必须 直接输入公司代码或点击 选取所需公司代码 开票凭证 可选 用于修改当前筛选条件的选项,改变查找条件 销售机构 可选 用于增加筛选条件,缩小查找范围,提高查找效率 分销渠道 可选 用于增加筛选条件,缩小查找范围,提高查找效率 物料号 可选 SKU 码用于增加筛选条件,缩小查找范围,提高查找效率 付款方 可选 用于增加筛选条件,缩小查找范
14、围,提高查找效率 出具发票日期 可选 用于增加筛选条件,缩小查找范围,提高查找效率 金税接口传输票号 可选 ZFIAP0021 处理画面处理数据产生保存的传输票号; 尚未下载过 可选 默认为选上,表示筛选找出状态尚未进行下载的传输票号 已经下载过的 可选 一般不选,因为下载过的一般都是下载成 TXT 并去金税接口开始打 票了的,只是可能还没有回传至 SAP,并可允许发票并未进行回传的 传输票进行再此的下载,但是发票正常回传的,和发票作废回传的并 不能进行选择; 状态解释:尚未下载过:即传输票号保存了,但并未下载成金税上传 文本;发票没有回传:金税回传里的功能,即传输票号下载成金税上 传文本,但
15、是并没有金税回传文本,做回传更新的;发票作废回传: 金税回传里的功能,可根据已经保存的传输票号,因处理的失误产生 等原因,但还未被金税打印成金税票的,可以进行传输票的作废回传; 按照查询条件找出保存的传输票号,进入到处理画面; 画面按钮解释: 功能键 说明 全选(F2) 全选中查询出的传输票号 全部选(Shift+F2) 全不选中传输票号 传输票号下载(F8) 下载成标准的金税上传文件格式 下载到 Excel(F7) 把传输票号的信息下载成 Excel 格式,用于统计分析 说明:功能键说明括号内的表示快捷键; 点击传输票号下载按钮,然后在弹出的另存为画面中,选择文本存放的地点,输入名称后保存;
16、 保存成功后按确认或 Enter 键退出,下载金税上传文档成功; 下载格式文本对应的系统栏位说明: 标准文本信息 SAP 对应字段说明 第一行 1.SJJK0101(固定标识) 2.销售订单传入(固定标识) 3.销售方公司代码名称 第二行 1./发票+数字(第几张发票,为顺序变数) 第三行:发票抬头信息 1. 传输票号:SAP 产生的传输票号 2. 发票行数:合并后的传输票号的行数 3. 客户名称:传输票号中保存结算方的发票名称 4. 客户税号:维护在结算方客户的基本资料中增票税号栏位 5. 客户地址/电话:维护在结算方客户基本资料的街道+街道 3/移 动电话栏位; 6. 客户开户行:维护在客
17、户主数据基本资料的银行信息-开户行栏 位 7. 客户帐号:维护在客户主数据基本资料的银行数据- 帐户栏位 8. 备注:维护在客户主数据公司代码资料信函屏幕下的金税备注 栏位中 9-11:为空值; 12开票日期:开具发票的日期 第四行:传输票号的项目 信息 1. 商品描述:SKU 码的物料描述 2. 单位 :数量单位 3. SKU 码 4. 数量 5. 不含税金额 6. 税率 7. 税目 :固定 1503 8. 折扣金额 9. 税额 10. 折扣税额 . 4. Z0023 金税开票 回传 业务情形:为了记录已经传入到金税并开金税票后,系统传输票号状态等相关 信息的更新; 操作步骤: 回传的格式是
18、金税标准回传格式,选择好回传文件后,点击执行按钮,成功解析文本后,提示 如下:如果需要更新系统资料,按确认 Enter 按钮,否则按取消按钮; 1.1 系统传输票号作废回传 只能针对未下载的传输票号,和对下载了但未进行回传的传输票号进行,针对下载但未进行回 传的传输票号,因为很有可能已经进行金税开票了,只是未进行回传,所以一般建议不使用此 项功能,如果需要使用此项功能,一定需要确保这下载的传输票号并未进行金税开票,而且并 删除下载的传输票的文本; 操作细部描述: 字段名或功能键 类型 用途及说明 公司代码 必须 直接输入公司代码或点击 选取所需公司代码 开票凭证 可选 用于修改当前筛选条件的选
19、项,改变查找条件 销售机构 可选 用于增加筛选条件,缩小查找范围,提高查找效率 分销渠道 可选 用于增加筛选条件,缩小查找范围,提高查找效率 物料号 可选 SKU 码用于增加筛选条件,缩小查找范围,提高查找效率 付款方 可选 用于增加筛选条件,缩小查找范围,提高查找效率 出具发票日期 可选 用于增加筛选条件,缩小查找范围,提高查找效率 金税接口传输票号 可选 ZFIAP0021 处理画面处理数据产生保存的传输票号;操作时最好先通过 ZFIAP0024-金税开票查询找出需要进行作废回传的具体票号; 尚未下载过 可选 默认为选上,表示筛选找出状态尚未进行下载的传输票号 已经下载过的 可选 一般不选
20、,因为下载过的一般都是下载成 TXT 并去金税接口开始打 票了的,只是可能还没有回传至 SAP,并可允许发票并未进行回传的 传输票进行再此的下载,但是发票正常回传的,和发票作废回传的并 不能进行选择; 状态解释:尚未下载过:即传输票号保存了,但并未下载成金税上传 文本;发票没有回传:金税回传里的功能,即传输票号下载成金税上 传文本,但是并没有金税回传文本,做回传更新的;发票作废回传: 金税回传里的功能,可根据已经保存的传输票号,因处理的失误产生 等原因,但还未被金税打印成金税票的,可以进行传输票的作废回传; 点击执行后,进入处理的画面,如下图,选中需要进行作废的传输票号,点击传输票号作废按 钮
21、; 系统提示成功后,按 enter 后确认,此时的冲回的传输号内的系统发票可再进行处理开具传输 票; 5. Z0024 金税开票 查询 查询系统中的传输票号的状态信息; 1) 2) 字段名或功能键 类型 用途及说明 公司代码 必须 直接输入公司代码或点击 选取所需公司代码 开票凭证 可选 用于修改当前筛选条件的选项,改变查找条件 销售机构 可选 用于增加筛选条件,缩小查找范围,提高查找效率 分销渠道 可选 用于增加筛选条件,缩小查找范围,提高查找效率 物料号 可选 SKU码用于增加筛选条件,缩小查找范围,提高查找效率 付款方 可选 用于增加筛选条件,缩小查找范围,提高查找效率 出具发票日期 可
22、选 用于增加筛选条件,缩小查找范围,提高查找效率 金税接口传输票号 可选 ZFIAP0021处理画面处理数据产生保存的传输票号;操作时最好先通过 ZFIAP0024-金税开票查询找出需要进行作废回传的具体票号; 尚未下载过 可选 默认为选上,表示筛选找出状态尚未进行下载的传输票号 已经下载过的 可选 状态解释:尚未下载过:即传输票号保存了,但并未下载成金税上传 文本;发票没有回传:金税回传里的功能,即传输票号下载成金税上 传文本,但是并没有金税回传文本,做回传更新的;发票作废回传: 金税回传里的功能,可根据已经保存的传输票号,因处理的失误产生 等原因,但还未被金税打印成金税票的,可以进行传输票的作废回传; 发票正常下载并回传:传输票号正常进行下载,并且打印票后,成功 回传系统; 3) 4) QQ:277421543