cancel
Showing results for 
Search instead for 
Did you mean: 

Exclude W/H TAX DURING POSTING OF A PARKED DOCUMENT

stheod1
Explorer

Dear all,

i would like to exclude the withholding tax calculation during the accounting posting of a parked document without changing the master data of the vendor. Is it possible?

Business purpose:

we use a Z program to create parked documents which are related to goodwill retention monies. Specifically a contract with a vendor is created with a percentage of retention monies, meaning that if the contract has a total amount of 1000 euros with a 10% retention monies, the amount of 100 euros is holding by the company and is returning to the vendor periodically depending the project phase. So for example the user parked 20 euros after finishing a 20% of the project. If the quality control confirms the company standards ,the user creates the accounting document. The issue is that some vendors has withholding tax checked on master data, during the accounting posting, the 20 euros is decreased by the percentage of W/H tax which is totally wrong. Could we do affect to the event during the accounting posting to avoid the W/H without change the master data?

thank you in advance

Accepted Solutions (0)

Answers (2)

Answers (2)

GManousaridis
Participant
0 Kudos

I am reposting the solution as an answer in case anyone needs it too.

The issue SofTh mentioned, was resolved by implementing Gabriel's advice in a substitution exit, with the following piece of code:

  IF bkpf-tcode CP 'FBV*'.
ASSIGN ('(SAPLFWTG)X_WITH_ITEM[]') TO FIELD-SYMBOL(<lt_wht>).
IF <lt_wht> IS ASSIGNED.
CLEAR <lt_wht>.
UNASSIGN <lt_wht>.
ENDIF.
ENDIF.

Meticulously examined it's not optimal, as it doesn't substitute anything (from the structures within the substitution scope), instead just uses the substitution to access the memory from the corresponding user exit.

Nevertheless it got the job done and works smoothly!

Best,

George Manousarides

coleti
Active Contributor
0 Kudos

Dear Sof Th,

Yes, it´s possible... first you should check the way your Z program post the Parked Document. Thru BAPI or Call Transaction.

By my experience when some BAPI's, the WHT information should be filled "manually"(it´s not automatic as the transaction does), so is just they way to analyze your Z program and exclude this code where WHT ITAB is filled in the BAPI.When you use call transaction for example calling FV60, you should delete the WHT Type on the WHT Sheet... this way you will not have the WHT into accounting.

BR,

Gabriel Coleti

stheod1
Explorer

hello Gabriel,

Thank you for your response. To make it clear, the z program creates the parked document without including the W/H which is correct. When we try to post the parked document via standard SAP (FBV0) the W/H is included, otherwise we have to exclude it manually during a manual posting. this is not a preferable solution. We would like to find a solution to influence the event (fbv0) during the accounting posting to exclude the W/H automatically (user exit, badi, bte , substitution)

coleti
Active Contributor

I got it, I did once in the past some enhancements on the WHT definition for Vendor... at that time I tried to search for some BAdI, User Exit, BTE, etc... but I could not find at all.

So I added some enhancement on the end of Function Module: FI_WT_READ_LFBW. I think you can add your logic in there... you can manage the ITAB X_LFBW and T_LFBW because in this point is when the system get the Vendor WHT Information.

BR,

Gabriel Coleti

0 Kudos

Dear Gabriel,

My client also having same requirement and facing same issue what Sof Th mentioned. It will be great If you share more details on coding part in FM.

BR

Ananthakrishnan

GManousaridis
Participant
0 Kudos

Hi Ananthakrishnan,

The issue SofTh mentioned, was resolved by implementing Gabriel's advice in a substitution exit, with the following piece of code:

  IF bkpf-tcode CP 'FBV*'.
ASSIGN ('(SAPLFWTG)X_WITH_ITEM[]') TO FIELD-SYMBOL(<lt_wht>).
IF <lt_wht> IS ASSIGNED.
CLEAR <lt_wht>.
UNASSIGN <lt_wht>.
ENDIF.
ENDIF.

Meticulously examined it's not optimal, as it doesn't substitute anything (from the structures within the substitution scope), instead just uses the substitution to access the memory from the corresponding user exit.

Nevertheless it got the job done and works smoothly!

Best,

George Manousarides

0 Kudos

Dear George,

Thanks for the valuable suggestion and sharing the coding. Now document posted without WHT.

Great!

BR

Ananthakrishnan