You are on page 1of 2

/* Formatted on 7/15/2016 9:01:33 PM (QP5 v5.215.12089.

38647) */
DECLARE
K_api_version CONSTANT NUMBER := 1;
K_init_msg_list CONSTANT VARCHAR2 (1) := FND_API.g_false;
K_comments CONSTANT ar_receivable_applications.comments%TYPE
:= 'Test' ;
K_commit CONSTANT VARCHAR2 (1) := FND_API.g_false;
l_acctd_amount_applied_from
ar_receivable_applications_all.acctd_amount_applied_from%TYPE;
l_acctd_amount_applied_to
ar_receivable_applications_all.acctd_amount_applied_to%TYPE;
l_cm_app_rec AR_CM_API_PUB.cm_app_rec_type;
l_msg_count NUMBER;
l_msg_data VARCHAR2 (4000);
l_out_rec_application_id NUMBER;
l_return_status VARCHAR2 (1);

-- corsur to get all data that will be updated ---

CURSOR C
IS
SELECT *
FROM xx_trx_cr
WHERE status <> 'D';
BEGIN
Fnd_Global.apps_initialize (&user_Id, &responsibility_Id, 222);

FOR I IN C
LOOP
l_cm_app_rec.cm_customer_trx_id := I.CREDIT_MEMO_ID;

l_cm_app_rec.inv_customer_trx_id := I.TRX_ID;
l_cm_app_rec.amount_applied := I.APPLIED_AMOUNT;
l_cm_app_rec.apply_date := TO_DATE (I.APPLY_DATE, 'DD/MM/RRRR');
l_cm_app_rec.gl_date := TO_DATE (I.GL_DATE, 'DD/MM/RRRR');

l_cm_app_rec.comments := K_comments;

ar_cm_api_pub.apply_on_account (
p_api_version => K_api_version,
p_init_msg_list => K_init_msg_list,
p_commit => K_commit,
p_cm_app_rec => l_cm_app_rec,
x_return_status => l_return_status,
x_msg_count => l_msg_count,
x_msg_data => l_msg_data,
x_out_rec_application_id => l_out_rec_application_id,
x_acctd_amount_applied_from => l_acctd_amount_applied_from,
x_acctd_amount_applied_to => l_acctd_amount_applied_to);
DBMS_OUTPUT.put_line ('return_status: ' || l_return_status);
DBMS_OUTPUT.put_line ('msg_count: ' || l_msg_count);
DBMS_OUTPUT.put_line (
'out_rec_application_id: ' || l_out_rec_application_id);
DBMS_OUTPUT.put_line (
'acctd_amount_applied_from: ' || l_acctd_amount_applied_from);
DBMS_OUTPUT.put_line (
'acctd_amount_applied_to: ' || l_acctd_amount_applied_to);
IF l_return_status LIKE 'S'
THEN
UPDATE xx_trx_cr
SET status = 'D'
WHERE CREDIT_MEMO_ID = i.CREDIT_MEMO_ID AND TRX_ID = i.TRX_ID;
ELSE
UPDATE xx_trx_cr
SET status = 'E'
WHERE CREDIT_MEMO_ID = i.CREDIT_MEMO_ID AND TRX_ID = i.TRX_ID;
END IF;

IF l_msg_count = 1
THEN
DBMS_OUTPUT.put_line (l_msg_data);
ELSIF l_msg_count > 1
THEN
FOR I IN 1 .. l_msg_count
LOOP
DBMS_OUTPUT.put_line (
I
|| '. '
|| SUBSTR (FND_MSG_PUB.Get (p_encoded => FND_API.G_FALSE),
1,
1000));
END LOOP;
END IF;
END LOOP;

COMMIT;
END;

You might also like