Reputation: 21
have the requirement to set the payment term 14 days before shipment date. so my baseline date will be the shipment date. How to get the due date for 'baseline date - 14 days' because all the resource i searched it only showed for baseline date + days.
I tried to make the days = -14 in OBB8 but the system doesn't allow that.
This is how I changed NET_DUE_DATE_GET
FM
FUNCTION NET_DUE_DATE_GET.
*"----------------------------------------------------------------------
*"*"Lokale Schnittstelle:
*" IMPORTING
*" VALUE(I_ZFBDT) LIKE BSID-ZFBDT
*" VALUE(I_ZBD1T) LIKE BSID-ZBD1T
*" VALUE(I_ZBD2T) LIKE BSID-ZBD2T
*" VALUE(I_ZBD3T) LIKE BSID-ZBD3T
*" VALUE(I_SHKZG) LIKE BSID-SHKZG
*" VALUE(I_REBZG) LIKE BSID-REBZG
*" VALUE(I_KOART) LIKE RFPOS-KOART DEFAULT 'D'
*" EXPORTING
*" VALUE(E_FAEDT) LIKE RFPOS-FAEDT
*"----------------------------------------------------------------------
* ------ Initialisierung -----------------------------------------------
CLEAR: E_FAEDT.
* ------ ZFBDT muß gesetzt sein ----------------------------------------
CHECK NOT I_ZFBDT IS INITIAL.
* ------ REFEZ = späteste Tage aus Skontolinie -------------------------
E_FAEDT = I_ZFBDT.
SEITZFBDT = SY-DATLO - I_ZFBDT.
*------- ... REFEZ = Späteste Tage aus Skontolinie ---------------------
IF I_ZBD3T NE 0.
REFEZ = I_ZBD3T.
ELSE.
IF I_ZBD2T NE 0.
REFEZ = I_ZBD2T.
ELSE.
REFEZ = I_ZBD1T.
ENDIF.
ENDIF.
*------- REFEZ = 0 bei Gutschriften ohne Rechnungsbezug und ohne Valuta
if i_rebzg eq space.
CASE I_KOART.
WHEN 'D'.
IF I_SHKZG = 'H'.
REFEZ = 0.
ENDIF.
WHEN 'K'.
IF I_SHKZG = 'S'.
REFEZ = 0.
ENDIF.
ENDCASE.
endif.
*------- Fälligkeitsdatum setzen ---------------------------------------
E_FAEDT = E_FAEDT + REFEZ.
ENDFUNCTION.
Is it a good idea change the FM to cater for my requirement?
Upvotes: 2
Views: 502
Reputation: 427
You should never modify an standard function module. The leading practice if you want to do this via a FM is to make a copy of it to a Z function module and then change it as you like.
Alternatively and it depends on how you are using the FM, the calc is so basic that I would suggest you just make the calculation in your report or custom screen you are making. If you think you will use the calculation in several programs then it might make sense to do it with a function module but you'll know that based on what you are trying to achieve.
Later....
Upvotes: 2