How to get the due date 14 days before shipment date?

419 Views Asked by At

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?

1

There are 1 best solutions below

0
On

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....