Is there any chance to add field "Inv. recpt date" to Payment block in Miro tcode so that the user could select "Inv. recpt date" instead of "Baseline Date". Is there any BAdi or BAPI?
There is no direct and straightforward way to add fields to MIRO payment tab, you can only add to details one (check LFDCB001
enhancement).
However you can change payment tab values on-the-fly to whatever you need via MRM_PAYMENT_TERMS BAdI. For changing baseline date in PAYMENT_TERMS_SET
method put something like this:
DATA: h_drseg TYPE mmcr_drseg,
h_reindat TYPE RBKP-REINDAT.
LOOP AT ti_drseg INTO h_drseg WHERE selkz = 'X'.
SELECT SINGLE budat FROM ekbe INTO h_reindat WHERE
ebeln = h_drseg-ebeln AND
ebelp = h_drseg-ebelp AND
lfbnr = h_drseg-lfbnr AND
lfgja = h_drseg-lfgja AND
lfpos = h_drseg-lfpos AND
vgabe = '2'.
CHECK sy-subrc = 0.
e_zfbdt = h_reindat.
EXIT.
ENDLOOP.
Here h_reindat
is an "Inv. recpt date" which is assigned to baseline date in runtime.
If you want anyway to make it visible in UI for manual entry, I recommend to stick to standard approach described here: How to activate Invoice Receipt Date in document header for any company
It will be put on the MIRO basic tab and then value is copied to baseline date on payment tab.
For your reference: SAP Note 1156325 - BAdIs in the Logistics Invoice Verification environment