SAP for Utilities Discussions
Connect with fellow SAP users to share best practices, troubleshoot challenges, and collaborate on building a sustainable energy future. Join the discussion.
cancel
Showing results for 
Search instead for 
Did you mean: 

INCENTIVE FOR Pompt Payment by Customer

Former Member
0 Kudos

Hi Gurus,

Here I have one Issue Related to DM VS FICA(IS –U). Our Client used to give Incentive for Prompt payment. Subject to some Condition.

Condition

No1. Business Partner has to consume more than 75% on Demand.

No 2. He has to make Payment before the Due date.

Even after fulfilling the above two conditions. System should calculate the Incentive but it should not release the Incentive or set off it against the Open item Up to 1 month.

But now what happening is, the system Calculates Incentive as per requirement but Deducted in the two Consecutive months.

How to stop the System, from it is being deducted more than one time.

It is an very urgent issue. Please give Solutions as earlier as Possible.

Thanks in Advance

Regards

S. Babu

8 REPLIES 8

AmlanBanerjee
Active Contributor
0 Kudos

Hi Srinivas,

I guess you are performing the prompt payment functionality through some custom code that is plugged either in some User exit or in some events.

Check the logic of the custom code and you will be able to find the way out.

Thanks,

Amlan

0 Kudos

This message was moderated.

0 Kudos

Hi Banarjee,

I hope we need to Do some changes in Events 0042 it is related to Open item.

Regards

S. Babu

0 Kudos

Hi Srinivas,

You need to identify the event where in the custom FM is plugged in and is getting triggered for generating the prompt payment.

I would advice you to check with your Developer first and see which events are getting triggered.

Thanks,

Amlan

0 Kudos

Hi Amalan,

I Confirm that it is Plugged with Event 0042 and it is Triggering the following FM. and the Source Code.

I hope this have enough information.

function z_fkk_sample_0042.

*"----------------------------------------------------------------------

*"*"Local Interface:

*"  IMPORTING

*"     VALUE(I_FKKKO) LIKE  FKKKO STRUCTURE  FKKKO

*"     VALUE(I_FKKOP) LIKE  FKKOP STRUCTURE  FKKOP

*"  EXPORTING

*"     VALUE(E_AUGRS_INV) LIKE  BOOLE-BOOLE

*"----------------------------------------------------------------------

"----------------------------------------------------------------------

"*"Local Interface:

"  IMPORTING

"     VALUE(I_FKKKO) LIKE  FKKKO STRUCTURE  FKKKO

"     VALUE(I_FKKOP) LIKE  FKKOP STRUCTURE  FKKOP

"  EXPORTING

"     VALUE(E_AUGRS_INV) LIKE  BOOLE-BOOLE

"----------------------------------------------------------------------

*if  i_fkkop-hvorg = '0040' and i_fkkop-tvorg = '0020'.

*

*    e_augrs_inv = 'X'.

*

*ENDIF.

*BREAK-POINT.

  types: begin of ty_erdb,

           doc_no type erdb-invopbel,

           prt_do type erdb-opbel,

         end of ty_erdb,

         begin of ty_erchc,

           prt_do type erchc-opbel,

           bil_do type erchc-belnr,

         end of ty_erchc.

  data : t_fkkko type fkkko.

  data : t_fkkop type fkkop.

  data : v_budat type budat.

******* changes by Ateeq ur Rahman, 8th Aprail 2013.

  data: it_dfkkop type table of dfkkop,

        it_erdb type table of ty_erdb,

        it_erchc type table of ty_erchc,

        it_dber type table of dberchz1,

        wa_dfkkop type dfkkop,

        wa_erdb type ty_erdb,

        wa_erchc type ty_erchc,

        wa_dber type dberchz1.

  "Changes on 17/03/2014

*  DATA: lit_dfkkop TYPE TABLE OF dfkkop.

if  i_fkkop-hvorg = '0040' and i_fkkop-tvorg = '0020'.

    e_augrs_inv = 'X'.

endif.

if i_fkkop-hvorg = '0100' and i_fkkop-tvorg = '0025'.

**  LOGIF TO CHECK If AUGBD <= BUDAT+10days

*            v_budat = I_fkkop-budat + 10.

***

*    IF I_fkkop-augbd LE v_budat.

**  LFI Line Item Type ZA0015 in the Table DBERCHZ1

*

  e_augrs_inv = 'X'.

*  ENDIF.

endif.

  if i_fkkop is not initial.

    select * from dfkkop into table it_dfkkop

                         where opbel = i_fkkop-opbel

                           and opupw = i_fkkop-opupw

                           and opupk = i_fkkop-opupk

                           and opupz = i_fkkop-opupz.

  endif.

  if it_dfkkop is not initial.

    select invopbel

           opbel from erdb into table it_erdb

                       for all entries in it_dfkkop

                       where opbel = it_dfkkop-opbel.

  endif.

*  DATA:   BEGIN OF wa_fkkop,

*          hvorg TYPE fkkop-hvorg,

*          tvorg TYPE fkkop-tvorg,

*          END OF wa_fkkop.

  t_fkkko = i_fkkko.

  t_fkkop = i_fkkop.

  if it_erdb is not initial.

    select opbel belnr from erchc into table it_erchc

                                  for all entries in it_erdb

                                  where opbel = it_erdb-prt_do.

  endif.

  if it_erchc is not initial.

    select * from dberchz1 into table it_dber

                           for all entries in it_erchc

                           where belnr = it_erchc-bil_do

                             and belzart = 'ZA0015'

                             and tvorg = '0025'.

  endif.

          if sy-subrc is initial.

            v_budat = wa_dfkkop-budat + 10.

**

            if wa_dfkkop-augbd le v_budat.

              wa_dfkkop-augrs = '8'.

              e_augrs_inv = 'X'.

           else.

              e_augrs_inv = ''.

            endif.

          endif.

***********************************************************************************

*LOOP AT it_dfkkop INTO wa_dfkkop.

*

*IF wa_dfkkop-hvorg = '0100' and wa_dfkkop-tvorg = '0025'.

*

* v_budat = wa_dfkkop-budat + 10.

*

*  IF wa_dfkkop-augbd LE v_budat.

*

**     wa_dfkkop-AUGRS = '8'.

*     e_augrs_inv = 'X'.

*  ENDIF.

* ENDIF.

*

****************************BEGIN OF CHANGES BY MOHD FAROOQ***********************

*         E_AUGRS_INV = 'X'.

****************************END OF CHANGES BY MOHD FAROOQ*************************

*

*    else.

*              e_augrs_inv = ''.

*        ENDIF.

*      ENDIF.

*    ENDIF.

*  ENDIF.

*ENDLOOP.

endfunction.

0 Kudos

Hi Srinivas,

Event 0042 decides whether clearing restriction '8' is set in an open item. If this clearing restriction is set, you cannot process (clear, charge interest, dunn) the item until the next regular bill is sent to the business partner.

Value 'X' is returned to export parameter E_AUGRS_INV if a clearing restriction is set. Otherwise the value SPACE is returned.

If you don't want to process items with clearing restriction 8, you need to plug in another FM at event R411.

Hope this helps...

Thanks,

Amlan

0 Kudos

Hi Banerjee,

We Want Restriction so i think 0042 only the right solution for us, please confirm

OK now i found another Corner where we can find solution for our Problem

SPRO> IMG> Facctg New > contract accts recvble > Basic Functions > Open item management > Clearing Control

whatever available inside this nodes having something related to Clearing restrictions and  Custom module as FM Module

I hope this is the workarea where we can get solution. Please correct me if i am wrong

Regards

S. Babu

0 Kudos

Hi Gurus,

Please let me Explain the Issue once again. 


Conditions

No1. Business Partner has to consume more than 75% from Previous month’s Consumption

No 2. He has to make Payment on or before the Due date.

Even after fulfilling the above two conditions. System should calculate the Incentive but it should not release the Incentive or set off it against the Open item Up to 1 month.

But now what happening is, the system Calculates Incentive as per requirement but Deducted in the two Consecutive months.

How to stop the System, from it is being deducted more than one time.

It is a very urgent issue. Please give Solutions as earlier as Possible.

To meet this requirement what should be done from the Module

DM

Billing

FICA

Thanks in Advance

Regards

S. Babu