Quantcast
Channel: SCN: Message List
Viewing all articles
Browse latest Browse all 9110

Re: Copying one particular Pricing Condition Types from Invoice to Credit Memo Req

$
0
0

Hi all ;

 

We implement this project of invoice correction request creation referance from invoice. We eleminate all discount and calculate net price.

 

Program RV61AFZA and RV61AFZB.

 

Also check oss note :

 

SAP Note 24832 - Pricing rules / TVCPF

SAP Note 672681 - VPRS calculation in RK document

 

For example :

 

rv61afza

 

form userexit_pricing_copy.

 

* the following example modifies the calculation rule within invoices

* for condition type HD00

*

*   CHECK VBTYP_NEW CA VBTYP_FAKT.

*   IF KONV-KSCHL = 'HD00'.

*     KONV-KRECH = 'B'.

*   ENDIF.

*---------------------------------------------------------------------*

 

 

   data: lv_kposn like konv-kposn,

         lv_kposn_new like konv-kposn,

         lv_kschl  like konv-kschl,

         lv_kwert_old like konv-kwert,

         ls_konv like konv.

 

   data: ls_vbrp like vbrp,

         ls_vbrk like vbrk.

 

   data: lv_netpr type p decimals 2,

         lv_menge type p decimals 3,

         lv_netpr_new type p decimals 2.

 

   if vbtyp_new ca 'K'.

 

     clear: lv_kposn, lv_kschl, lv_kposn_new.

     lv_kposn = konv-kposn.

     lv_kschl = konv-kschl.

     lv_kposn_new = item_number_to.

 

     clear ls_konv.

     select single * into ls_konv from konv

             where knumv eq konv-knumv

               and kposn eq lv_kposn

               and kschl between 'ZI01' and 'ZI99'.

 

     if sy-subrc = 0 and ls_konv is not initial.

       clear ls_vbrk.

       select single * into ls_vbrk from vbrk

               where knumv eq konv-knumv.

 

       if sy-subrc = 0.

         clear ls_vbrp.

         select single * into ls_vbrp from vbrp

                 where vbeln = ls_vbrk-vbeln

                   and posnr = lv_kposn.

 

         if lv_kschl = 'ZFIY'.

           konv-kwert = ls_vbrp-netwr.

           konv-kbetr = ls_vbrp-netwr * 1000 * konv-kpein / ls_vbrp-fkimg.

         elseif lv_kschl = 'ZKDV' or lv_kschl = 'ZRMP'.

         elseif lv_kschl(2) = 'ZI'.

           u15_subrc = 4 .

         endif.

       endif.

     endif.

   endif.

 

endform.                    "USEREXIT_PRICING_COPY



rv61afzb


form userexit_xkomv_bewerten_init.


data: lv_kposn like konv-kposn,

         lv_kposn_new like konv-kposn,

         lv_kschl  like konv-kschl,

         lv_kwert_old like konv-kwert.

 

   data: ls_vbrp like vbrp,

         ls_vbrk like vbrk,

         ls_konv like konv.

 

   data: begin of lt_cvbrp occurs 10.

           include structure vbrpvb.

   data: pstyn like vbap-pstyv.

   data: end of lt_cvbrp.

 

   constants: c_cvbrp(15) type c value '(SAPFV45C)CVBRP'.

   field-symbols: <fs_cvbrp> like lt_cvbrp.

 

   assign (c_cvbrp) to <fs_cvbrp>.

 

   if <fs_cvbrp> is assigned.

     if <fs_cvbrp>-rkcop = 'X' and vbtyp_new ca 'K'.

 

       clear: lv_kposn, lv_kschl, lv_kposn_new.

       lv_kposn = konv-kposn.

       lv_kschl = konv-kschl.

       lv_kposn_new = item_number_to.

 

       clear ls_konv.

       select single * into ls_konv from konv

               where knumv eq konv-knumv

                 and kposn eq lv_kposn

                 and kschl between 'ZI01' and 'ZI99'.

"added by ounal.

       if ls_konv is initial.

 

       select single * into ls_konv from konv

               where knumv eq konv-knumv

                 and kposn eq lv_kposn

                 and kschl eq 'ZFIY'

                 and kinak ne ''. "inaktif koşul

       endif.

 

       if  ls_konv is not initial.

 

         clear ls_vbrk.

         select single * into ls_vbrk from vbrk

                 where knumv eq konv-knumv.

 

         if sy-subrc = 0.

           clear ls_vbrp.

           select single * into ls_vbrp from vbrp

                   where vbeln = ls_vbrk-vbeln

                     and posnr = lv_kposn.

 

           loop at xkomv where kposn = lv_kposn_new.

             if xkomv-kschl = 'ZFIY'.

               xkomv-kbetr = ls_vbrp-netwr * 1000 * xkomv-kpein / ls_vbrp-fkimg.

               modify xkomv.

             elseif xkomv-kschl = 'ZKDV' or xkomv-kschl = 'ZRMP'.

             elseif xkomv-kschl(2) = 'ZI'.

               delete xkomv.

             endif.

           endloop.

         endif.

       endif.

     endif.

   endif.

 

   " ************** Değişiklik-1 son ***************

 

 

endform.                    "USEREXIT_XKOMV_BEWERTEN_INIT



Regards.

 

M.Ozgur Unal


Viewing all articles
Browse latest Browse all 9110

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>