CREATE OR REPLACE PACKAGE MEW_AR_RECEIPT_IMPORT2 IS
PROCEDURE INTERFACE_IMPORT(P_METHOD VARCHAR2
,P_BANK_NUM VARCHAR2
,P_FACTOR_DISCOUNT_AMOUNT NUMBER
,P_CUSTOMER_NUMBER VARCHAR2
,P_CUSTOMER_SITE_USE VARCHAR2
,P_RECEIPT_NUMBER VARCHAR2
,P_DOC_SEQUENCE_VALUE VARCHAR2
,P_RECEIPT_DATE DATE
,P_USR_CURRENCY_CODE VARCHAR2
,P_AMOUNT NUMBER
,P_USR_EXCHANGE_RATE_TYPE VARCHAR2);
PROCEDURE INTERFACE_IMPORT_APPLY(P_RECEIPT_NUMBER VARCHAR2
,P_TRX_NUMBER VARCHAR2
,P_AMOUNT_APPLIED NUMBER
,P_AMOUNT_APPLIED_F NUMBER);
END MEW_AR_RECEIPT_IMPORT2;
/
CREATE OR REPLACE PACKAGE BODY MEW_AR_RECEIPT_IMPORT2 IS
-------------create by yuxunping 2009-10-12------------
PROCEDURE INTERFACE_IMPORT(P_METHOD VARCHAR2
,P_BANK_NUM VARCHAR2
,P_FACTOR_DISCOUNT_AMOUNT NUMBER
,P_CUSTOMER_NUMBER VARCHAR2
,P_CUSTOMER_SITE_USE VARCHAR2
,P_RECEIPT_NUMBER VARCHAR2
,P_DOC_SEQUENCE_VALUE VARCHAR2
,P_RECEIPT_DATE DATE
,
P_USR_CURRENCY_CODE VARCHAR2
,P_AMOUNT NUMBER
,P_USR_EXCHANGE_RATE_TYPE VARCHAR2) IS
GPR_RETURN_STATUS VARCHAR2(1) := NULL;
GPR_MSG_COUNT NUMBER := 0;
GPR_MSG_DATA VARCHAR2(2000);
L_MSG VARCHAR2(2000);
I NUMBER;
L_FLAG VARCHAR2(2);
L_CUSTOMER_ID NUMBER;
RECEIPT EXCEPTION; ------收款编号重复例外
BEGIN
BEGIN
SELECT 1
INTO L_FLAG
FROM AR.AR_RECEIPT_METHODS T
WHERE T.NAME = P_METHOD
AND ROWNUM = 1;
EXCEPTION
WHEN OTHERS THEN
APP_EXCEPTION.RAISE_EXCEPTION('MEW'
,204
,'收款方法有错误');
END;
/*
begin
select count(1)
into l_flag
from ar_cash_receipts_all t
where t.receipt_number = p_receipt_number
and rownum = 1;
if l_flag > 0
then
raise receipt;
end if;
exception
when receipt then
app_exception.raise_exception('MEW',
204,
'收款编号重复');
when others then
null;
end;*/
--delete by zhuhailong
BEGIN
SELECT S.CUSTOMER_ID
INTO L_CUSTOMER_ID
FROM AR_CUSTOMERS S
WHERE S.CUSTOMER_NUMBER = P_CUSTOMER_NUMBER
AND ROWNUM = 1;
EXCEPTION
WHEN OTHERS THEN
APP_EXCEPTION.RAISE_EXCEPTION('MEW'
,204
,'客户编码有错误');
END;
IF P_CUSTOMER_SITE_USE IS NOT NULL
THEN
BEGIN
SELECT 1
INTO L_FLAG
FROM HZ_CUST_SITE_USES SITE_USE
,HZ_CUST_ACCT_SITES ACCT_SITE
WHERE ACCT_SITE.CUST_ACCOUNT_ID = L_CUSTOMER_ID
AND ACCT_SITE.STATUS = 'A'
AND SITE_USE.CUST_ACCT_SITE_ID = ACCT_SITE.CUST_ACCT_SITE_ID
AND SITE_USE.STATUS = 'A'
AND SITE_USE.LOCATION = P_CUSTOMER_SITE_USE
AND ROWNUM = 1;
EXCEPTION
WHEN OTHERS THEN
APP_EXCEPTION.RAISE_EXCEPTION('MEW'
,204
,'客户地点有错误');
END;
END IF;
BEGIN
SELECT 1
INTO L_FLAG
FROM FND_CURRENCIES_VL S
WHERE S.CURRENCY_CODE = P_USR_CURRENCY_CODE
AND ROWNUM = 1;
EXCEPTION
WHEN OTHERS THEN
APP_EXCEPTION.RAISE_EXCEPTION('MEW'
,204
,'输入币种有错误');
END;
IF P_DOC_SEQUENCE_VALUE IS NULL
THEN
IF P_USR_EXCHANGE_RATE_TYPE IS NULL
THEN
AR_RECEIPT_API_PUB.CREATE_CASH(P_API_VERSION => 1
,P_INIT_MSG_LIST => FND_API.G_TRUE
,P_COMMIT => FND_API.G_FALSE
,P_VALIDATION_LEVEL => FND_API.G_VALID_LEVEL_FULL
,X_RETURN_STATUS => GPR_RETURN_STATUS
,X_MSG_COUNT => GPR_MSG_COUNT
,X_MSG_DATA => GPR_MSG_DATA
,P_CURRENCY_CODE => P_USR_CURRENCY_CODE
,P_AMOUNT => P_AMOUNT
,P_RECEIPT_DATE => P_RECEIPT_DATE
,P_REMITTANCE_BANK_ACCOUNT_NAME => P_BANK_NUM
,P_RECEIPT_NUMBER => P_RECEIPT_NUMBER
,P_CUSTOMER_NUMBER => P_CUSTOMER_NUMBER
,P_LOCATION => P_CUSTOMER_SITE_USE
,P_FACTOR_DISCOUNT_AMOUNT => P_FACTOR_DISCOUNT_AMOUNT
,P_RECEIPT_METHOD_NAME => P_METHOD
,P_CR_ID => I);
ELSE
BEGIN
SELECT 1
INTO L_FLAG
FROM GL_DAILY_CONVERSION_TYPES S
WHERE S.USER_CONVERSION_TYPE = P_USR_EXCHANGE_RATE_TYPE
AND ROWNUM = 1;
EXCEPTION
WHEN OTHERS THEN
APP_EXCEPTION.RAISE_EXCEPTION('MEW'
,204
,'输入汇率类型有错误');
END;
--------没有核销的发票号,则只建立收款,不核销.
AR_RECEIPT_API_PUB.CREATE_CASH(P_API_VERSION => 1
,P_INIT_MSG_LIST => FND_API.G_TRUE
,P_COMMIT => FND_API.G_FALSE
,P_VALIDATION_LEVEL => FND_API.G_VALID_LEVEL_FULL
,X_RETURN_STATUS => GPR_RETURN_STATUS
,X_MSG_COUNT => GPR_MSG_COUNT
,X_MSG_DATA => GPR_MSG_DATA
,P_CURRENCY_CODE => P_USR_CURRENCY_CODE
,P_USR_EXCHANGE_RATE_TYPE => P_USR_EXCHANGE_RATE_TYPE
,P_AMOUNT => P_AMOUNT
,P_REMITTANCE_BANK_ACCOUNT_NAME => P_BANK_NUM
,P_RECEIPT_DATE => P_RECEIPT_DATE
,P_RECEIPT_NUMBER => P_RECEIPT_NUMBER
,P_CUSTOMER_NUMBER => P_CUSTOMER_NUMBER
,P_LOCATION => P_CUSTOMER_SITE_USE
,P_FACTOR_DISCOUNT_AMOUNT => P_FACTOR_DISCOUNT_AMOUNT
,P_RECEIPT_METHOD_NAME => P_METHOD
,P_CR_ID => I);
END IF;
ELSE
IF P_USR_EXCHANGE_RATE_TYPE IS NULL
THEN
AR_RECEIPT_API_PUB.CREATE_CASH(P_API_VERSION => 1
,P_INIT_MSG_LIST => FND_API.G_TRUE
,P_COMMIT => FND_API.G_FALSE
,P_VALIDATION_LEVEL => FND_API.G_VALID_LEVEL_FULL
,X_RETURN_STATUS => GPR_RETURN_STATUS
,X_MSG_COUNT => GPR_MSG_COUNT
,X_MSG_DATA => GPR_MSG_DATA
,P_CURRENCY_CODE => P_USR_CURRENCY_CODE
,P_AMOUNT => P_AMOUNT
,P_REMITTANCE_BANK_ACCOUNT_NAME => P_BANK_NUM
,P_RECEIPT_DATE => P_RECEIPT_DATE
,P_RECEIPT_NUMBER => P_RECEIPT_NUMBER
,P_CUSTOMER_NUMBER => P_CUSTOMER_NUMBER
,P_LOCATION => P_CUSTOMER_SITE_USE
,P_DOC_SEQUENCE_VALUE => P_DOC_SEQUENCE_VALUE
,P_FACTOR_DISCOUNT_AMOUNT => P_FACTOR_DISCOUNT_AMOUNT
,P_RECEIPT_METHOD_NAME => P_METHOD
,P_CR_ID => I);
ELSE
BEGIN
SELECT 1
INTO L_FLAG
FROM GL_DAILY_CONVERSION_TYPES S
WHERE S.USER_CONVERSION_TYPE = P_USR_EXCHANGE_RATE_TYPE
AND ROWNUM = 1;
EXCEPTION
WHEN OTHERS THEN
APP_EXCEPTION.RAISE_EXCEPTION('MEW'
,204
,'输入汇率类型有错误');
END;
AR_RECEIPT_API_PUB.CREATE_CASH(P_API_VERSION => 1
,P_INIT_MSG_LIST => FND_API.G_TRUE
,P_COMMIT => FND_API.G_FALSE
,P_VALIDATION_LEVEL => FND_API.G_VALID_LEVEL_FULL
,X_RETURN_STATUS => GPR_RETURN_STATUS
,X_MSG_COUNT => GPR_MSG_COUNT
,X_MSG_DATA => GPR_MSG_DATA
,P_CURRENCY_CODE => P_USR_CURRENCY_CODE
,P_USR_EXCHANGE_RATE_TYPE => P_USR_EXCHANGE_RATE_TYPE
,P_AMOUNT => P_AMOUNT
,P_REMITTANCE_BANK_ACCOUNT_NAME => P_BANK_NUM
,P_RECEIPT_DATE => P_RECEIPT_DATE
,P_RECEIPT_NUMBER => P_RECEIPT_NUMBER
,P_CUSTOMER_NUMBER => P_CUSTOMER_NUMBER
,P_LOCATION => P_CUSTOMER_SITE_USE
,P_DOC_SEQUENCE_VALUE => P_DOC_SEQUENCE_VALUE
,P_FACTOR_DISCOUNT_AMOUNT => P_FACTOR_DISCOUNT_AMOUNT
,P_RECEIPT_METHOD_NAME => P_METHOD
,P_CR_ID => I);
END IF;
END IF;
IF GPR_RETURN_STATUS <> FND_API.G_RET_STS_SUCCESS
THEN
IF GPR_MSG_COUNT = 1
THEN
L_MSG := GPR_MSG_DATA;
ELSIF GPR_MSG_COUNT > 1
THEN
LOOP
IF NVL(I
,0) < GPR_MSG_COUNT
THEN
I := NVL(I
,0) + 1;
L_MSG := L_MSG || FND_MSG_PUB.GET(FND_MSG_PUB.G_NEXT
,FND_API.G_FALSE);
ELSE
EXIT;
END IF;
END LOOP;
END IF;
APP_EXCEPTION.RAISE_EXCEPTION('MEW'
,20004
,L_MSG);
END IF;
EXCEPTION
WHEN OTHERS THEN
APP_EXCEPTION.RAISE_EXCEPTION('MEW'
,20003
,SQLERRM);
END;
PROCEDURE INTERFACE_IMPORT_APPLY(P_RECEIPT_NUMBER VARCHAR2
,P_TRX_NUMBER VARCHAR2
, --核销发票编号
P_AMOUNT_APPLIED NUMBER
,P_AMOUNT_APPLIED_F NUMBER) IS
GPR_RETURN_STATUS VARCHAR2(1) := NULL;
GPR_MSG_COUNT NUMBER := 0;
GPR_MSG_DATA VARCHAR2(2000);
V_ID NUMBER; -- add by zhuhailong
V_STR VARCHAR2(50); -- add by zhuhailong
L_MSG VARCHAR2(2000);
I NUMBER;
BEGIN
V_ID := TO_NUMBER(SUBSTR(P_RECEIPT_NUMBER
,1
,INSTR(P_RECEIPT_NUMBER
,',') - 1)); -- add by zhuhailong
-- add by zhuhailong
IF V_ID IS NULL
THEN
V_STR := SUBSTR(P_RECEIPT_NUMBER
,2);
IF P_AMOUNT_APPLIED_F IS NULL
THEN
AR_RECEIPT_API_PUB.APPLY(P_API_VERSION => 1
,P_INIT_MSG_LIST => FND_API.G_TRUE
,P_COMMIT => FND_API.G_FALSE
,P_VALIDATION_LEVEL => FND_API.G_VALID_LEVEL_FULL
,X_RETURN_STATUS => GPR_RETURN_STATUS
,X_MSG_COUNT => GPR_MSG_COUNT
,X_MSG_DATA => GPR_MSG_DATA
,P_RECEIPT_NUMBER => V_STR
,P_TRX_NUMBER => P_TRX_NUMBER
,P_AMOUNT_APPLIED => P_AMOUNT_APPLIED /*
,P_AMOUNT_APPLIED_FROM => P_AMOUNT_APPLIED_F*/);
ELSE
AR_RECEIPT_API_PUB.APPLY(P_API_VERSION => 1
,P_INIT_MSG_LIST => FND_API.G_TRUE
,P_COMMIT => FND_API.G_FALSE
,P_VALIDATION_LEVEL => FND_API.G_VALID_LEVEL_FULL
,X_RETURN_STATUS => GPR_RETURN_STATUS
,X_MSG_COUNT => GPR_MSG_COUNT
,X_MSG_DATA => GPR_MSG_DATA
,P_RECEIPT_NUMBER => V_STR
,P_TRX_NUMBER => P_TRX_NUMBER
,P_AMOUNT_APPLIED => P_AMOUNT_APPLIED
,P_AMOUNT_APPLIED_FROM => P_AMOUNT_APPLIED_F);
END IF;
ELSE
IF P_AMOUNT_APPLIED_F IS NULL
THEN
AR_RECEIPT_API_PUB.APPLY(P_API_VERSION => 1
,P_INIT_MSG_LIST => FND_API.G_TRUE
,P_COMMIT => FND_API.G_FALSE
,P_VALIDATION_LEVEL => FND_API.G_VALID_LEVEL_FULL
,X_RETURN_STATUS => GPR_RETURN_STATUS
,X_MSG_COUNT => GPR_MSG_COUNT
,X_MSG_DATA => GPR_MSG_DATA
,P_CASH_RECEIPT_ID => V_ID
,P_TRX_NUMBER => P_TRX_NUMBER
,P_AMOUNT_APPLIED => P_AMOUNT_APPLIED /*
,P_AMOUNT_APPLIED_FROM => P_AMOUNT_APPLIED_F*/);
ELSE
AR_RECEIPT_API_PUB.APPLY(P_API_VERSION => 1
,P_INIT_MSG_LIST => FND_API.G_TRUE
,P_COMMIT => FND_API.G_FALSE
,P_VALIDATION_LEVEL => FND_API.G_VALID_LEVEL_FULL
,X_RETURN_STATUS => GPR_RETURN_STATUS
,X_MSG_COUNT => GPR_MSG_COUNT
,X_MSG_DATA => GPR_MSG_DATA
,P_CASH_RECEIPT_ID => V_ID
,P_TRX_NUMBER => P_TRX_NUMBER
,P_AMOUNT_APPLIED => P_AMOUNT_APPLIED
,P_AMOUNT_APPLIED_FROM => P_AMOUNT_APPLIED_F);
END IF;
END IF;
-- end add by zhuhailong
-- 暂时删除
/* if P_AMOUNT_APPLIED_F is null then
AR_RECEIPT_API_PUB.APPLY(P_API_VERSION => 1
,P_INIT_MSG_LIST => FND_API.G_TRUE
,P_COMMIT => FND_API.G_FALSE
,P_VALIDATION_LEVEL => FND_API.G_VALID_LEVEL_FULL
,X_RETURN_STATUS => GPR_RETURN_STATUS
,X_MSG_COUNT => GPR_MSG_COUNT
,X_MSG_DATA => GPR_MSG_DATA
,P_RECEIPT_NUMBER => P_RECEIPT_NUMBER
,P_TRX_NUMBER => P_TRX_NUMBER
,P_AMOUNT_APPLIED => P_AMOUNT_APPLIED \*
,P_AMOUNT_APPLIED_FROM => P_AMOUNT_APPLIED_F*\);
else
AR_RECEIPT_API_PUB.APPLY(P_API_VERSION => 1
,P_INIT_MSG_LIST => FND_API.G_TRUE
,P_COMMIT => FND_API.G_FALSE
,P_VALIDATION_LEVEL => FND_API.G_VALID_LEVEL_FULL
,X_RETURN_STATUS => GPR_RETURN_STATUS
,X_MSG_COUNT => GPR_MSG_COUNT
,X_MSG_DATA => GPR_MSG_DATA
,P_RECEIPT_NUMBER => P_RECEIPT_NUMBER
,P_TRX_NUMBER => P_TRX_NUMBER
,P_AMOUNT_APPLIED => P_AMOUNT_APPLIED
,P_AMOUNT_APPLIED_FROM => P_AMOUNT_APPLIED_F);
end if;*/
IF GPR_RETURN_STATUS <> FND_API.G_RET_STS_SUCCESS
THEN
IF GPR_MSG_COUNT = 1
THEN
L_MSG := GPR_MSG_DATA;
ELSIF GPR_MSG_COUNT > 1
THEN
LOOP
IF NVL(I
,0) < GPR_MSG_COUNT
THEN
I := NVL(I
,0) + 1;
L_MSG := L_MSG || FND_MSG_PUB.GET(FND_MSG_PUB.G_NEXT
,FND_API.G_FALSE);
ELSE
EXIT;
END IF;
END LOOP;
END IF;
APP_EXCEPTION.RAISE_EXCEPTION('MEW'
,20004
,L_MSG);
END IF;
EXCEPTION
WHEN OTHERS THEN
APP_EXCEPTION.RAISE_EXCEPTION('MEW'
,20003
,SQLERRM);
END;
END MEW_AR_RECEIPT_IMPORT2;
/
相关推荐
本操作手册详细介绍了如何在Oracle 12c EBS AR模块中执行收款、核销收款以及退款等一系列操作。 1. **收款录入**: - 当收到客户货款,如4613_C1客户的1000元,首先在“收款”菜单下选择“收款”,输入相关信息。...
- 收款管理:对客户的收款活动,如输入收款信息和收款核销。 - 客户余额管理:管理客户的应收余额和预收余额。 - 基础信息管理:管理与应收账款相关的客户和银行信息。 5. AR模块提供的工作台: - 事务处理工作...
此文档是ebs业务的AR模块的借项通知单,包含收款、核销、过账
- 进行收款核销。 - 进行转账处理,如预收款冲销应收账款等。 - 基于原始单据制作会计凭证。 #### 二、部门岗位划分 - **销售助理**: - 负责客户分类和客户档案的维护管理工作。 - 录入和复核销售订单及销售...
在现代企业运营中,对于任何从事财务和会计工作的人来说,了解并掌握Oracle ERP EBS系统中的应收模块(AR)是一项基础且关键的技能。作为企业资源规划系统中的关键组成部分,Oracle ERP EBS的应收模块AR扮演着管理...
13. **客户关系**:建立客户关系能控制和执行发票和收款的核销,关系可以是单向的或双向的,但不具有传递性,即A与B的关系并不自动延伸到A与C。 Oracle 11i AR系统通过这些功能和流程,提供了一个全面的解决方案,...
1. **概览**:AR模块提供了三个主要工作台,分别是事务处理工作台、收款工作台和收帐工作台。事务处理工作台专注于发票处理,收款工作台用于执行收款任务,而收帐工作台则用于客户账户审核和催收活动,如帐龄分析。 ...
课程会涵盖创建销售订单、发货、开具发票的过程,以及如何处理客户支付,包括预收账款、信用检查、折扣管理和收款核销。 在这个"入门版"的SAP FICO视频教程中,学员将通过15个不同课程逐步了解和掌握这些概念。每个...
7. 客户关系管理:Oracle 11i AR允许企业建立客户关系,用于控制和执行发票和收款的核销。这些关系可以是单向或双向的,并且仅限于特定的客户对。 8. 多地址和业务目的:企业可以为同一客户指定多个地址,并分配...
3. 应收核销:当客户支付剩余款项时,重复上述收款步骤,确保所有应收款得到妥善处理。 三、日记帐条目 日记帐条目是财务记录的核心,它反映了企业各项交易的发生。在SAP Business One中,每一步操作都会自动生成...
- 应收账款模块是Oracle财务系统的一个核心组件,它负责处理从客户收到款项的所有事务,包括输入发票、收款、核销以及与总账的交互。 3. **Oracle应收流程概览**: - 收到款项后,要在系统中输入,处理发票,核销...
应收款管理软件(AR)提供了三个主要的工作台:事务处理工作台、收款工作台和收帐工作台。事务处理工作台用于处理发票,收款工作台则负责执行收款相关任务,而收帐工作台则用于客户账户的复核和催收活动,如帐龄分析...
AR软件提供了三个核心工作台:事务处理工作台、收款工作台和收帐工作台。事务处理工作台主要用于创建和管理发票,收款工作台负责执行收款任务,而收帐工作台则用于客户账户的复核和催款活动,包括账龄分析。 2. **...
总的来说,Oracle EBS的应收会计分录功能为企业提供了全面的应收账款管理,包括从交易创建、发票处理、收款核销到财务报表生成的整个流程。通过与总账和其他子模块的紧密集成,确保了财务数据的准确性和一致性,为...
首先,文档提到了一个名为AR的软件,该软件提供了三个关键的工作台:事务处理工作台、收款工作台和收帐工作台。事务处理工作台主要用于处理发票的生成和管理,而收款工作台则关注收款过程中的各种任务,如查询发票和...
AR(Accounts Receivable,应收账款)软件为企业提供了一个完整的管理系统,涵盖了事务处理、收款和收帐三个工作台。事务处理工作台主要负责发票的制作和处理,收款工作台用于执行与收款相关的任务,而收帐工作台则...
通过采用先进的管理系统,如软件AR提供的工作台和报告工具,医疗企业可以有效地提高收款效率,降低坏账风险,维持良好的现金流状况,最终提升企业的财务管理效率和整体竞争力。良好的应收款管理不仅能确保企业的财务...
应收款管理软件(AR)提供了三个主要的工作台:事务处理工作台、收款工作台和收账工作台。事务处理工作台负责发票处理,收款工作台执行与收款相关的任务,而收账工作台则涉及账户审核和执行收款活动,如账龄分析。 ...
应收款管理软件(AR)提供了全面的工作台,包括事务处理、收款和收帐,以高效处理发票、收款和催款流程。事务处理工作台主要负责发票的录入和管理,收款工作台则用于执行收款任务,而收帐工作台则专注于账户复核和...
其中,概览部分介绍了一个名为AR(Accounts Receivable,应收款)的软件,该软件提供了三个核心工作台,分别是事务处理工作台、收款工作台和收帐工作台,分别对应发票处理、收款操作和账户审核与催收活动。...