NC65根据发票类型验证进项税必输方案文档作者:王珑悦建立日期:2022-05-191引言在日常业务中,费用报销人会提供获得的发票进行费用报销,发票是能够进行费用报销以及企业依法进行费用列支的重要依据。发票分为普通发票和增值税专用发票(以下简称“专用发票”)和专业发票。专用发票指专门用于结算销售货物和提供加工、修理修配劳务使用的一种发票。普通发票主要由营业税纳税人和增值税小规模纳税人使用,增值税一般纳税人在不能开具专用发票的情况下也可使用普通发票。专业发票是一种特殊种类的发票,但不套印发票监制章。纳税人在获取普通发票、专用发票时,计入费用的金额为发票的总金额,税额不能用于抵扣;纳税人在获取增值税专用发票的时候,计入费用的金额为发票的不含税金额,税额可以做税前抵扣。2应用场景和问题描述在系统预制的费用单模板中,没有对发票的类型作区分。如果纳税人获取得是增值税专用发票,实际业务应该生成的凭证为:借:管理费用/销售费用/制造费用(计入费用的金额)借:应交税费-应交增值税进项税(发票上的税额)贷方:银行存款/现金(总金额)而当纳税人获取的是普通发票的时候,应该生成的凭证为:借:管理费用/销售费用/制造费用(计入费用的金额)贷:银行存款/现金(发票总金额)单据模板中并没有确认计入费用金额字段以及进项税字段,所以实际业务中不能准确的根据发票的种类不同生成不同的凭证,所以我们需要增加两个自定义字段,一个是定义为发票类型,一个定义为进项税额。如何设置费用报销单的模板,可以根据选择的发票类型,决定进项税是否输入。当发票类型选择的是“普通发票”或者“专用发票”的时候,税额必须为空;当发票类型选择的是“专用发票”的时候,税额必须不为空。3解决方案3.1总结第一步,在自定义档案定义中增加一个自定义档案:发票类型。在自定义档案维护中添加发票类型的分类:专用发票、普通发票、专业发票。第二步,在动态建模平台-客户化配置-模板设置(业务单元)中找到费用报销单单据模板,在模板的表体部分,将自定义项13命名为发票类型,将自定义项15命名为进项税额,并将这两个字段在卡片中显示出来。第三步,在单据模板自定义13“发票类型”字段处,设置高级属性,类型设置定义数据类型为自定义档案发票类型。第四步,在自定义13设置验证公式:$Error->iif(defitem13=="专用发票"&&defitem15==null,"进项税不能为空",iif((defitem13=="普通发票"||defitem13=="专业发票")&&defitem13<>null,"进项税必须为空",null))第五步,模板保存并分配后,在费用报销单节点处新增费用报销单验证公式,验证成功!3.2详细步骤3.2.1第一步第一步,在自定义档案定义中增加一个自定义档案:发票类型。在自定义档案维护中添加发票类型的分类:专用发票、普通发票、专业发票。3.2.2第二步第二步,在动态建模平台-客户化配置-模板设置(业务单元)中找到费用报销单单据模板,在模板的表体部分,将自定义项13命名为发票类型,将自定义项15命名为进项税额,并将这两个字段在卡片中显示出来:3.2.3第三步第三步,在单据模板自定义13“发票类型”字段处,设置高级属性,类型设置设置如下图:3.2.4第四步第四步,在自定义13设置验证公式:$Error->iif(defitem13=="专用发票"&&defitem15==null,"进项税不能为空",iif((defitem13=="普通发票"||defitem13=="专业发票")&&defitem13<>null,"进项税必须为空",null))3.2.5第五步模板保存并分配后,在费用报销单节点处新增费用报销单验证公式:4注意事项无