SAP采购发票税额总额非自动计算。TAX不写行号

创建采购发票:要求跟销售发票一致。
FORM fr_miro CHANGING f_fs TYPE ty_out .

DATA: ls_headerdata LIKE bapi_incinv_create_header,
lt_itemdata LIKE TABLE OF bapi_incinv_create_item,
ls_itemdata LIKE bapi_incinv_create_item,
lt_return LIKE TABLE OF bapiret2,
ls_return LIKE bapiret2,
lv_invoicedocnumber LIKE bapi_incinv_fld-inv_doc_no.
DATA: lv_gross TYPE bapi_rmwwr.
DATA: lv_xsje TYPE bapi_rmwwr.

TYPES: BEGIN OF ty_ekpo,
ebeln TYPE ekko-ebeln,
bukrs TYPE ekko-bukrs,
waers TYPE ekko-waers,

       ebelp  TYPE ekpo-ebelp,netpr  TYPE ekpo-netpr,menge  TYPE ekpo-menge,meins  TYPE ekpo-meins,mblnr  TYPE mseg-mblnr,zeile  TYPE mseg-zeile,mjahr  TYPE mseg-mjahr,bwart  TYPE mseg-bwart,belnr  TYPE re_belnr,msg    TYPE string,            "销售发票retpo  TYPE ekpo-retpo,status TYPE c LENGTH 4,END OF ty_ekpo.

DATA: lt_ekpo TYPE TABLE OF ty_ekpo,
ls_ekpo TYPE ty_ekpo,
ls_ekpotmp TYPE ty_ekpo.

DATA:lt_vbeln TYPE TABLE OF ty_out WITH HEADER LINE.
DATA: lv_index TYPE i,
lv_mseg TYPE string.
DATA: l_vbeln TYPE vbeln,
l_lfpos TYPE lfpos.

DATA:xs_mwsbk TYPE vbrk-mwsbk,
xs_mwsbk_h TYPE vbrk-mwsbk.
DATA: lt_tax TYPE TABLE OF bapi_incinv_create_tax,
ls_tax TYPE bapi_incinv_create_tax.

"校验发票金额。20241029
"跑太快了取不到数
"400毫秒
DO 10000000 TIMES.
ENDDO.

DO 10000 TIMES.
SELECT SINGLE netwr , mwsbk INTO @DATA(l_xsje) FROM vbrk WHERE vbeln = @f_fs-vbeln_vf.
IF sy-subrc = 0.
EXIT.
ENDIF.
ENDDO.

lv_xsje = l_xsje-netwr + l_xsje-mwsbk.

CLEAR lt_ekpo.

SELECTa~ebelna~ebelpa~mblnra~mjahrc~bukrsc~waers
  • b~netpr
    

    b~meins
    b~menge
    d~retpo

    INTO CORRESPONDING FIELDS OF TABLE lt_ekpo
    FROM ztsto_04 AS a
    LEFT JOIN ztsto_03 AS b ON a~vgbel = b~vgbel
    LEFT JOIN ekko AS c ON c~ebeln = a~ebeln
    LEFT JOIN ekpo AS d ON d~ebeln = a~ebeln AND d~ebelp = a~ebelp
    WHERE a~vbeln_d = f_fs-vbeln_d.

    CLEAR: l_lfpos, xs_mwsbk,lv_gross.
    LOOP AT lt_ekpo ASSIGNING FIELD-SYMBOL(<fs_fh>) .
    lv_index = lv_index + 1.
    l_lfpos = l_lfpos + 2.
    ls_itemdata-invoice_doc_item = lv_index.
    ls_itemdata-po_number = <fs_fh>-ebeln.
    ls_itemdata-po_item = <fs_fh>-ebelp.
    ls_itemdata-item_amount = <fs_fh>-menge * f_fs-kbetr.

    CALL FUNCTION 'ROUND'EXPORTINGdecimals      = 2input         = ls_itemdata-item_amountsign          = 'X'IMPORTINGoutput        = ls_itemdata-item_amountEXCEPTIONSinput_invalid = 1overflow      = 2type_invalid  = 3OTHERS        = 4.
    IF sy-subrc <> 0.
    
  • Implement suitable error handling here
    ENDIF.

    ls_itemdata-quantity         = <fs_fh>-menge.
    ls_itemdata-po_unit          = <fs_fh>-meins..
    ls_itemdata-tax_code         = 'J2'.
    ls_itemdata-ref_doc          = <fs_fh>-mblnr."参考凭证项目
    ls_itemdata-ref_doc_year     = <fs_fh>-mjahr.
    ls_itemdata-ref_doc_it       = l_lfpos." 参考凭证项目
    APPEND ls_itemdata TO lt_itemdata."总税额
    xs_mwsbk          = xs_mwsbk  +  ls_itemdata-item_amount  * 13 / 100..AT END OF ebeln.
    

*&header
CLEAR: ls_headerdata.

    IF <fs_fh>-retpo = 'X'."退货ls_headerdata-invoice_ind  = ''.ls_headerdata-return_posting = 'H'.ELSE.ls_headerdata-invoice_ind  = 'X'.ENDIF.
  •  ls_headerdata-invoice_ind  = 'X'.ls_headerdata-doc_date     = sy-datum.ls_headerdata-pstng_date   = sy-datum.ls_headerdata-comp_code    = <fs_fh>-bukrs..ls_headerdata-currency     = <fs_fh>-waers.IF ls_headerdata-comp_code = '2000'.ls_headerdata-bus_area     = '2080'.ELSE.ls_headerdata-bus_area     = '2200'.ENDIF.ls_headerdata-bline_date = sy-datum.  "基准日期ls_headerdata-deliv_posting = 'S'.ls_headerdata-pmnttrms     = '0001'.
    

*ls_headerdata-item_text = ‘text’.

    "税CALL FUNCTION 'ROUND'EXPORTINGdecimals      = 2input         = xs_mwsbksign          = 'X'IMPORTINGoutput        = xs_mwsbkEXCEPTIONSinput_invalid = 1overflow      = 2type_invalid  = 3OTHERS        = 4.IF sy-subrc <> 0.
  • Implement suitable error handling here
    ENDIF.

      "税ls_tax-tax_code   =  'J2'.ls_tax-tax_amount =  xs_mwsbk. ".APPEND  ls_tax TO lt_tax.CLEAR   ls_tax."校验税额  采购总税   -   销售税IF xs_mwsbk - l_xsje-mwsbk > 0."税LOOP AT lt_tax ASSIGNING FIELD-SYMBOL(<tax>).<tax>-tax_amount = <tax>-tax_amount - ( xs_mwsbk - l_xsje-mwsbk ).ENDLOOP."金额READ TABLE lt_itemdata  ASSIGNING FIELD-SYMBOL(<lt_data>) INDEX 1.<lt_data>-item_amount = <lt_data>-item_amount + ( xs_mwsbk - l_xsje-mwsbk ).ELSEIF  xs_mwsbk - l_xsje-mwsbk < 0."税LOOP AT lt_tax ASSIGNING FIELD-SYMBOL(<tax2>).<tax2>-tax_amount = <tax2>-tax_amount + ( xs_mwsbk - l_xsje-mwsbk ).ENDLOOP."金额READ TABLE lt_itemdata  ASSIGNING FIELD-SYMBOL(<lt_data2>) INDEX 1.<lt_data2>-item_amount = <lt_data2>-item_amount - ( xs_mwsbk - l_xsje-mwsbk ).ENDIF.ls_headerdata-calc_tax_ind  = ''.   "自动税
    
  •    ls_headerdata-gross_amount  = l_xsje-mwsbk.ls_headerdata-gross_amount = lv_xsje.ls_headerdata-ref_doc_no = '123'."参考要啥CALL FUNCTION 'BAPI_INCOMINGINVOICE_CREATE'EXPORTINGheaderdata       = ls_headerdataIMPORTINGinvoicedocnumber = lv_invoicedocnumberTABLEStaxdata          = lt_taxitemdata         = lt_itemdatareturn           = lt_return.IF lv_invoicedocnumber IS NOT INITIAL .CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'EXPORTINGwait = 'X'.
    
  •    <fs_fh>-msg    = '采购开票完成'.
    
  •    <fs_fh>-status = icon_green_light.f_fs-msg =  '开票完成'.f_fs-status =  icon_green_light.CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'EXPORTINGinput  = lv_invoicedocnumberIMPORTINGoutput = l_vbeln.f_fs-belnr = l_vbeln.UPDATE ztsto_04 SET vbeln_vf = f_fs-vbeln_vf  kbetr = f_fs-kbetr   belnr = f_fs-belnr  s_msg = f_fs-msg  s_status = f_fs-statusWHERE vbeln_d = f_fs-vbeln_d.IF  sy-subrc = 0.COMMIT WORK.ENDIF.ELSE.CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'
    
  •     IMPORTING
    
  •       RETURN        =.f_fs-msg    = '开票失败'.f_fs-status = icon_red_light.LOOP AT lt_return INTO ls_return WHERE type = 'E' OR type = 'A' OR type = 'X'.f_fs-msg = f_fs-msg && ',' && ls_return-message.ENDLOOP."失败冲销掉销售发票20241021。。。PERFORM f_xsfpcx CHANGING f_fs.ENDIF.CLEAR:ls_ekpo,lv_gross,lt_itemdata,lv_index,lt_tax,xs_mwsbk.
    ENDAT.
    CLEAR:ls_ekpo,ls_itemdata,ls_ekpotmp.
    

    ENDLOOP.

ENDFORM.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/14644.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

并发编程(10)——内存模型和原子操作

文章目录 十、day101. 内存模型基础1.1 对象和内存区域1.2 改动序列 2. 原子操作及其类型2.1 原子操作2.2 原子类型2.3 内存次序2.4 std::atomic_flag2.4.1 自旋锁 2.5 std::atomic&#xff1c;bool&#xff1e;2.6 std::atomic<T*>2.7 标准整数原子类型2.8 std::atomic&…

【Flink】-- flink新版本发布:v2.0-preview1

目录 1、简介 2、非兼容变更 2.1、API 2.2、连接器适配计划 2.3、配置 2.4、其它 3、重要新特性 3.1、存算分离状态管理 3.2、物化表 3.3、批作业的自适应执行 3.4、流式湖仓 4、附加 4.1、非兼容性的 api 程序变更 4.1.2、Removed Classes # 4.1.3、Modified Cl…

ffmpeg+D3D实现的MFC音视频播放器,支持录像、截图、音视频播放、码流信息显示等功能

一、简介 本播放器是在vs2019下开发&#xff0c;通过ffmpeg实现拉流解码功能&#xff0c;通过D3D实现视频的渲染功能。截图功能采用libjpeg实现&#xff0c;可以截取jpg图片&#xff0c;图片的默认保存路径是在C:\MYRecPath中。录像功能采用封装好的类Mp4Record实现&#xff0c…

webpack指南

​&#x1f308;个人主页&#xff1a;前端青山 &#x1f525;系列专栏&#xff1a;webpack篇 &#x1f516;人终将被年少不可得之物困其一生 依旧青山,本期给大家带来webpack篇专栏内容:webpack-指南 概念 中文&#xff1a; webpack | webpack中文文档 | webpack中文网 英文&…

把越南语翻译成中文一般用什么翻译工具?《越南语翻译通》App或许能满足你的技术痛点需求!

在多语言交流日益频繁的今天&#xff0c;掌握越南语对于商务、旅游或学术交流都是一项重要技能。《越南语翻译通》App应运而生&#xff0c;旨在通过技术手段简化越南语学习和翻译过程&#xff0c;满足用户在不同场景下的需求。 核心技术 《越南语翻译通》App采用了先进的自然语…

Android Framework AMS(16)进程管理

该系列文章总纲链接&#xff1a;专题总纲目录 Android Framework 总纲 本章关键点总结 & 说明&#xff1a; 说明&#xff1a;本章节主要解读AMS 进程方面的知识。关注思维导图中左上侧部分即可。 我们本章节主要是对Android进程管理相关知识有一个基本的了解。先来了解下L…

Rust Struct 属性初始化

结构体是用户定义的数据类型&#xff0c;其中包含定义特定实例的字段。结构有助于实现更容易理解的抽象概念。本文介绍几种初始化结构体对象的方法&#xff0c;包括常规方法、Default特征、第三方包实现以及构建器模式。 Struct声明与初始化 struct Employee {id: i32,name: …

Vue全栈开发旅游网项目(10)-用户管理后端接口开发

1.异步用户登录\登出接口开发 1.设计公共响应数据类型 文件地址&#xff1a;utils/response404.py from django.http import JsonResponseclass BadRequestJsonResponse(JsonResponse):status_code 400def __init__(self, err_list, *args, **kwargs):data {"error_c…

数据结构:队列

目录 概念与结构底层结构的选择队列的实现队列头文件&#xff08;queue.h&#xff09;队列初始化队列的销毁入队列检查队列是否为空出队列查询队列第一个数据查询队列末尾数据查询队列有效数据个数代码试运行 概念与结构 概念&#xff1a;只允许在⼀端进行插⼊数据操作&#x…

Clickhouse集群新建用户、授权以及remote权限问题

新建用户 create user if not exists user on cluster 集群名称 IDENTIFIED WITH plaintext_password BY 密码;给用户授查询、建表、删表的权限 GRANT create table,select,drop table ON 数据库实例.* TO user on cluster 集群名称 ;再其他节点下用户建本地表成功&#…

JavaWeb--MySQL

1. MySQL概述 首先来了解一下什么是数据库。 数据库&#xff1a;英文为 DataBase&#xff0c;简称DB&#xff0c;它是存储和管理数据的仓库。 像我们日常访问的电商网站京东&#xff0c;企业内部的管理系统OA、ERP、CRM这类的系统&#xff0c;以及大家每天都会刷的头条、抖音…

i春秋-SQLi(无逗号sql注入,-- -注释)

练习平台地址 竞赛中心 题目描述 后台有获取flag的线索应该是让我们检查源码找到后台 题目内容 空白一片 F12检查源码 发现login.php 访问login.php?id1 F12没有提示尝试sql注入 常规sql注入 //联合注入得到表格列数 1 order by 3 # 1 union select 1,2,3 #&#xff08…

基于Spring Boot的电子商务平台架构

2 相关技术 2.1 SpringBoot框架介绍 Spring Boot是一种不需要代码生成的一种框架&#xff0c;并且可以不需要配置任何的XML文件就可以&#xff0c;因为Spring Boot里面自带了很多接口&#xff0c;只需要配置不同的接口就会自动的应用并且识别需要的依赖&#xff0c;在配置方面非…

华为云分布式缓存服务(DCS)专家深度解析Valkey,助力openEuler峰会

在数字化时代&#xff0c;开源技术已成为推动创新和协作的重要力量。 11月15日&#xff0c;openEuler峰会将于北京中关村国际创新中心举行。本次峰会&#xff0c;华为云分布式缓存服务&#xff08;DCS&#xff09;的两位专家将为大家深入讲解Valkey的核心特性与优势。 更多大…

如何进行产线高阶能耗数据的计算和可视化?

一、前言 在当前经济下行时期&#xff0c;越来越来多企业开始对产线进行数字化转型&#xff0c;提高企业竞争力。在产线数字化转型过程中&#xff0c;产线高阶能耗数据的计算和可视化是比较重要的一环&#xff0c;今天小编就和大家分享如何对产线能耗数据进行计算和可视化。 …

vsftp 修改端口 限制用户登录 开启防火墙 pasv模式

安装设置开机启动 yum -y install vsftpd systemctl start vsftpd systemctl enable vsftpd 修改配置&#xff0c;追加端口号到最后一行 vim /etc/vsftpd/vsftpd.conf listen_port5510 编辑 /etc/services 文件&#xff0c;将其中的三行端口改成5510 vim /etc/services ftp …

IntelliJ IDEA插件开发-代码补全插件入门开发

使用IntelliJ IDEA想必大家都有使用过代码自动补全功能&#xff0c;如输入ab&#xff0c;会自动触发补全&#xff0c;提供相应的补全建议列表。作为有追求的程序员&#xff0c;有没有想过这样的功能是如何实现的&#xff1f;本节将详细介绍如何实现一个类似的代码自动补全插件。…

❤React-React 组件基础(类组件)

❤React-React 组件基础 1、组件化开发介绍 组件化开发思想&#xff1a;分而治之 React的组件按照不同的方式可以分成类组件&#xff1a; 划分方式一&#xff08;按照组件的定义方式&#xff09; 函数组件(Functional Component )和类组件(Class Component)&#xff1b; …

Python →爬虫实践

爬取研究中心的书目 现在&#xff0c;想要把如下网站中的书目信息爬取出来。 案例一 耶鲁 Publications | Yale Law School 分析网页&#xff0c;如下图所示&#xff0c;需要爬取的页面&#xff0c;标签信息是“<p>”&#xff0c;所以用 itemssoup.find_all("p&…

机器学习: LightGBM模型(优化版)——高效且强大的树形模型

LightGBM&#xff08;Light Gradient Boosting Machine&#xff09;是一种基于梯度提升决策树&#xff08;GBDT&#xff09;的框架&#xff0c;由微软提出。它具有高效的训练速度、低内存占用、支持并行和GPU加速等特点&#xff0c;非常适合大规模数据的训练任务&#xff0c;尤…