• MIR7创建预制发票BAPI


    1、事务代码MIR7

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

    2、代码实现

    调用BAPI:BAPI_INCOMINGINVOICE_PARK创建发票

    1. "--------------------@斌将军--------------------
    2. DATA:ls_headerdata TYPE bapi_incinv_create_header,
    3. lv_invoicedocnumber LIKE bapi_incinv_fld-inv_doc_no,
    4. lv_fiscalyear LIKE bapi_incinv_fld-fisc_year,
    5. lt_itemdata TYPE STANDARD TABLE OF bapi_incinv_create_item,
    6. ls_itemdata TYPE bapi_incinv_create_item,
    7. lt_taxdata LIKE TABLE OF bapi_incinv_create_tax,
    8. ls_taxdata LIKE bapi_incinv_create_tax,
    9. lt_return TYPE STANDARD TABLE OF bapiret2,
    10. ls_return TYPE bapiret2.
    11. DATA:lv_item TYPE bapi_incinv_create_item-invoice_doc_item,
    12. lv_check TYPE char1,
    13. lv_message TYPE char200.
    14. CLEAR:ls_headerdata.
    15. ls_headerdata-invoice_ind = 'X'. "标识: 记帐发票
    16. ls_headerdata-doc_type = 'RE'."凭证类型
    17. ls_headerdata-doc_date = sy-datum."凭证中的凭证日期
    18. ls_headerdata-pstng_date = sy-datum."凭证中的过账日期
    19. ls_headerdata-comp_code = '1010'."公司代码
    20. ls_headerdata-currency = 'CNY'."货币码
    21. ls_headerdata-bline_date = sy-datum."用于到期日计算的基准日期
    22. CLEAR ls_itemdata.
    23. lv_item = lv_item + 1.
    24. ls_itemdata-invoice_doc_item = lv_item."发票凭证中的凭证项目
    25. ls_itemdata-po_number = '4600000075'."采购凭证号
    26. ls_itemdata-po_item = '20'."采购凭证的项目编号
    27. ls_itemdata-item_amount = '50'."凭证货币金额
    28. ls_itemdata-quantity = '5'."数量
    29. ls_itemdata-po_unit = 'EA'."订单单位
    30. ls_itemdata-tax_code = 'J1'."销售/购买税代码
    31. ls_itemdata-ref_doc = '5000001650'."参考凭证号
    32. ls_itemdata-ref_doc_it = '3'."发票凭证中的凭证项目
    33. ls_itemdata-ref_doc_year = '2022'."会计年度
    34. APPEND ls_itemdata TO lt_itemdata.
    35. CLEAR:ls_taxdata.
    36. ls_taxdata-tax_code = 'J1'.
    37. ls_taxdata-tax_amount = '8'.
    38. APPEND ls_taxdata TO lt_taxdata.
    39. CALL FUNCTION 'BAPI_INCOMINGINVOICE_PARK'
    40. EXPORTING
    41. headerdata = ls_headerdata
    42. IMPORTING
    43. invoicedocnumber = lv_invoicedocnumber
    44. fiscalyear = lv_fiscalyear
    45. TABLES
    46. itemdata = lt_itemdata
    47. taxdata = lt_taxdata
    48. return = lt_return.
    49. CLEAR:lv_check,lv_message.
    50. LOOP AT lt_return INTO ls_return WHERE type CA 'AEX'.
    51. lv_check = 'E'.
    52. lv_message = lv_message && ls_return-message.
    53. ENDLOOP.
    54. IF lv_check = 'E'.
    55. CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.
    56. ELSE.
    57. CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
    58. EXPORTING
    59. wait = 'X'.
    60. ENDIF.
    61. "--------------------@斌将军--------------------

    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'.

    定期更文,欢迎关注

  • 相关阅读:
    手撸mybatis07: SQL执行器的定义和实现
    Swift Combine 使用调试器调试管道 从入门到精通二十六
    Spring Boot 整合 RestTemplate:详解与实战
    Servlet---从创建项目到部署项目的整个流程
    【网络编程实例】C++11实现基于TCP的回射服务器和客户端通信
    因势而变,因时而动,Go lang1.18入门精炼教程,由白丁入鸿儒,Go lang泛型(generic)的使用EP15
    ON DUPLICATE KEY UPDATE 导致自增ID跳跃式增长
    CentOS7搭建FLV和RTMP流媒体服务器
    HarBor私有镜像仓库
    一、何为算法,什么是伪代码
  • 原文地址:https://blog.csdn.net/BinGeneral/article/details/128126387