MIR7创建预制发票BAPI

1、事务代码MIR7

前台输入采购订单等相关字段进行开票

2、代码实现

调用BAPI:BAPI_INCOMINGINVOICE_PARK创建发票

"--------------------@斌将军--------------------
DATA:ls_headerdata       TYPE bapi_incinv_create_header,
     lv_invoicedocnumber LIKE bapi_incinv_fld-inv_doc_no,
     lv_fiscalyear       LIKE bapi_incinv_fld-fisc_year,
     lt_itemdata         TYPE STANDARD TABLE OF bapi_incinv_create_item,
     ls_itemdata         TYPE bapi_incinv_create_item,
     lt_taxdata          LIKE TABLE OF bapi_incinv_create_tax,
     ls_taxdata          LIKE bapi_incinv_create_tax,
     lt_return           TYPE STANDARD TABLE OF bapiret2,
     ls_return           TYPE bapiret2.

DATA:lv_item    TYPE bapi_incinv_create_item-invoice_doc_item,
     lv_check   TYPE char1,
     lv_message TYPE char200.

CLEAR:ls_headerdata.
ls_headerdata-invoice_ind = 'X'. "标识: 记帐发票
ls_headerdata-doc_type = 'RE'."凭证类型
ls_headerdata-doc_date = sy-datum."凭证中的凭证日期
ls_headerdata-pstng_date = sy-datum."凭证中的过账日期
ls_headerdata-comp_code = '1010'."公司代码
ls_headerdata-currency = 'CNY'."货币码
ls_headerdata-bline_date = sy-datum."用于到期日计算的基准日期

CLEAR ls_itemdata.
lv_item = lv_item + 1.
ls_itemdata-invoice_doc_item = lv_item."发票凭证中的凭证项目
ls_itemdata-po_number = '4600000075'."采购凭证号
ls_itemdata-po_item = '20'."采购凭证的项目编号
ls_itemdata-item_amount = '50'."凭证货币金额
ls_itemdata-quantity = '5'."数量
ls_itemdata-po_unit = 'EA'."订单单位
ls_itemdata-tax_code = 'J1'."销售/购买税代码
ls_itemdata-ref_doc = '5000001650'."参考凭证号
ls_itemdata-ref_doc_it = '3'."发票凭证中的凭证项目
ls_itemdata-ref_doc_year = '2022'."会计年度
APPEND ls_itemdata TO lt_itemdata.

CLEAR:ls_taxdata.
ls_taxdata-tax_code   = 'J1'.
ls_taxdata-tax_amount = '8'.
APPEND ls_taxdata TO lt_taxdata.

CALL FUNCTION 'BAPI_INCOMINGINVOICE_PARK'
  EXPORTING
    headerdata       = ls_headerdata
  IMPORTING
    invoicedocnumber = lv_invoicedocnumber
    fiscalyear       = lv_fiscalyear
  TABLES
    itemdata         = lt_itemdata
    taxdata          = lt_taxdata
    return           = lt_return.

CLEAR:lv_check,lv_message.
LOOP AT lt_return INTO ls_return WHERE type CA 'AEX'.
  lv_check = 'E'.
  lv_message = lv_message && ls_return-message.
ENDLOOP.

IF lv_check = 'E'.
  CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.
ELSE.
  CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
    EXPORTING
      wait = 'X'.
ENDIF.
"--------------------@斌将军--------------------

MIR7有四种处理业务,传值稍有不同

1.发票:

HEADERDATA-INVOICE_IND = 'X'.

TEMDATA-DE-CRE_IND = ''.

2.贷项凭证:

HEADERDATA-INVOICE_IND = ''.

TEMDATA-DE-CRE_IND = ''.

3.后续借记:

HEADERDATA-INVOICE_IND = 'X'.

TEMDATA-DE-CRE_IND = 'X'.

4.后续贷记:

HEADERDATA-INVOICE_IND = ''.

TEMDATA-DE-CRE_IND = 'X'.

定期更文,欢迎关注

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值