在abap开发中,有时我们需要在程序中去判断预制发票是否为贷方发票,现总结如下:
预制发票的来源有两种:
1、通过采购订单创建,这类预制发票,除了RBKP(预制发票表头)中有数据外,在RSEG(预制发票表体)中也有行项目数据,可以通过RESG-SHKZG(借/贷标识)进行判断,为‘H’,即是贷方发票
2、无采购订单创建,这类发票在数据库表中,只有RBKP(预制发票表头)中有数据,是没有表体行项目数据的。这类发票的判断,就需要使用到预制凭证(VBKPF)。
我们知道,SAP在创建预制发票的时候,会同时生成相应的预制凭证(VBKPF),而同时对应的会生成预制凭证的贷方行项目(VBSEGK),预制凭证的行项目中会有SHKZG(借/贷标识)的数据。通过该数据,我们可以判断出对应的发票是否为贷方发票(即当 SHKZG = ‘S’ 时,发票为贷方发票)。
对应的业务知识补充:公司与供应商的关系,当在正向创建预制发票时(即普通的预制发票),公司为借方,供应商为贷方;而当在逆向创建预制发票(即产生退库或者退货,需要红冲发票)的情况下,产生映射关系时,公司为贷方,供应商为借方。如下图: