ERPBAAN
6th August 2008, 15:38
Hi,
While booking the cost invoice system ask to link Reason for payment in session tfacp1110s000. Intrestingly, in our test company it never ask for it, and In live company also, it ask for some of the newly created Business Partners.

Can any one help me identifying the possible cause for this. I have checked in CMG Module-Pyt/Receipt Method, we have not selected Reason for payment.

Thanks in Advance
Rudolph

Jan Embrechts
6th August 2008, 17:16
Hallo,

In the session tfacp0100s000 (ACP Parameters) there is a field
add reason to foreign payments (tfacp000.reas)

is it on Yes?

Could that be the reason?

Jan

ERPBAAN
7th August 2008, 08:03
Hi Jan,
Thanks for your post. Actually I am getting this problem for Domestic Supllier. The session mentioned by you is applicable for Foreign Supplier.
Any other clue will be highly appreciated.

Regards
Rudolph

Leerkes
7th August 2008, 11:47
This is the code which checks whether a reason for payment needs to be entered:
|**********************************************************************
|* If the pay-to BP is a 1099 supplier, then a reason code for payment
|* is always mandatory.
|**********************************************************************
if isspace(i.reason.code) then
if tfacp.dll0055.pay.to.bp.is.1099.supplier(
i.financial.company,
i.pay.to.bp) then
o.error.message = form.text$("tfcmgs0131")
|* Reason for payment not filled
return(false)
endif
endif

|* A reason is required only if in the payment method the check box
|* for reasons is checked and if the amount is greater than
|* tfcmg003.mina and the country of pay-to differs from country of financial company.
|**********************************************************************
if isspace(i.reason.code) and
tfacp.dll0055.reason.code.is.mandatory.according.to.payment.method(
i.financial.company,
i.payment.method) and
tfacp.dll0055.invoice.amount.exceeds.min.amount.for.reason.for.payment(
i.financial.company,
i.payment.method,
i.invoice.amount.ref.pos) then
if not isspace(i.pay.to.bp) then
address.code.of.pay.to.bp =
tfacp.dll0055.get.pay.to.bp.address.code(
i.financial.company,
i.accounting.department,
i.pay.to.bp)
country.of.pay.to.bp =
tfacp.dll0055.get.country.from.the.address(
i.financial.company,
address.code.of.pay.to.bp)

country.of.current.company =
tfacp.dll0055.get.country.of.company(
i.financial.company)

if (country.of.pay.to.bp
<> country.of.current.company) then
o.error.message = form.text$("tfcmgs0131")
|* Reason for payment not filled
return(false)
endif
endif
endif

So in your case the first condition must be the reason that a reason for payment is mandatory, which means that your pay-to BP is a 1099 supplier.

Regards,
Michiel

ERPBAAN
8th August 2008, 10:16
Hi Michiel,
Your post really helped me in identifying the root cause. The problem was 1099 supplier.

Thanks a lot.

Rudolph