自动加密箱如何核销收款
当您提交“过帐快速收现”时,应收款管理系统将在加密箱传输中对收款进行核销。您可以在运行加密箱时提交“过帐快速收现”,或在导入和验证收款之后将其作为独立的步骤来运行。“过帐快速收现”使用您在加密箱传输中提供的信息来更新客户的余额。
加密箱传输通常会包含匹配编号。在多数情况下,这些编号是要匹配和核销的事务处理编号,但它们也可以是其它类型的编号。加密箱使用您在提交程序时指定的“匹配收款依据”方法,以确定要搜索的编号类型,以便与付款相匹配。如果加密箱找到了匹配,它将使用匹配编号来确定客户(如果“自动关联”设置为“是”,并且在传输中不包含客户或
MICR 编号),并在“过帐快速收现”过程中对收款进行核销。
如果加密箱能够标识收款的客户,但不能确定应对此收款核销的发票,则加密箱将使用为此客户定义的自动收现规则集来核销收款。如果加密箱不能标识客户或对收款核销的发票,它将对收款指定“未标识”状态。
注:在 Oracle 应收款管理系统第 11 版中,您只能使用“核销”或“成批核销”窗口来核销交叉货币收款。您不能使用“过帐快速收现”来核销交叉货币收款。有关详情,请参阅:交叉货币收款
匹配规则
在确定对每个收款进行核销的方式时,加密箱将使用为此加密箱和客户或客户地点指定的“匹配收款依据”方法。如果在传输中未提供客户编号或 MICR 编号,加密箱将尝试根据所包含的任何信息来标识对每个收款应核销的客户和发票。加密箱将始终按以下顺序来搜索匹配:
如果加密箱找到了匹配的事务处理编号,它将检查此客户地点的“匹配收款依据”参数值。如果此客户地点的“匹配收款依据”设置为“事务处理”,加密箱将在您运行“过帐快速收现”时对此事务处理核销收款。如果此客户地点的“匹配收款依据”设置为“空”,加密箱将检查客户层的设置。如果此客户的“匹配收款依据”设置为“事务处理”,加密箱将在您运行“过帐快速收现”时对此事务处理核销收款。如果此客户的“匹配收款依据”设置为“空”,加密箱将检查您为此加密箱提交设置此选项的方式;如果此提交选项设置为“事务处理”,加密箱将在您运行“过帐快速收现”时对此事务处理核销收款。如果“匹配收款依据”具有的值与客户地点或客户层的事务处理不同,加密箱将按序列搜索数据库以获得下一个类型的匹配编号;在这种情况下,该编号就是销售订单编号。
如果匹配编号是销售订单编号,加密箱将搜索此订单的第一张发票。然后,在您运行“过帐快速收现”时,加密箱将对此发票核销收款。
如果匹配编号为采购订单编号,加密箱将搜索与此采购订单相关的参考编号。然后,在您运行“过帐快速收现”时,加密箱将对此发票核销收款。
如果匹配编号为合并开单发票编号,加密箱将可以标识客户,并且“过帐快速收现”将使用“结算按付款条件分组的过期发票”自动收现规则来对纳入的发票核销收款。
最后,如果您要使用自定义匹配规则来确定匹配编号,加密箱将使用指定的编号来确定对此收款核销的事务处理。请参阅:执行自定义匹配规则
如果加密箱按序列搜索每种类型的编号之后仍未找到匹配,它将使用为此客户定义的自动收现规则集来核销收款。
下图显示了加密箱在加密箱传输中如何使用每个匹配规则对收款进行核销。
在相应日期匹配
在将收款与事务处理相匹配之前,加密箱的“在相应日期匹配”选项将确定自动加密箱是否还应检查事务处理日期。例如,如果匹配编号是销售订单编号,并且“在相应日期匹配”设置为“始终”,则销售订单日期必须与收款记录中指定的日期相同,以使加密箱可以对收款进行核销。请参阅:加密箱
自动收现规则
对于已标识的收款,如果加密箱无法确定如何使用匹配编号来对收款进行核销,“过帐快速收现”在加密箱传输中将使用自动收现规则对收款进行核销。要使用自动收现规则来核销通过加密箱导入的收款,请确保:
- 请勿在传输记录中纳入匹配编号(否则,“过帐快速收现”将对每个事务处理核销收款以找到匹配)
- 为客户配置文件分类指定自动收现规则集(否则,应收款管理系统将使用“系统选项”窗口中的自动收现规则集)
或
- 在提交“过帐快速收现”之前,在“快速收款”窗口中指定自动收现规则集
在加密箱验证收款之后,您可以在“快速收款”窗口中复核这些收款。应收款管理系统将在“核销类型”字段中显示“自动收现规则”,以表明它将在您运行“过帐快速收现”时使用自动收现规则对收款进行核销。
超额核销发票
自动加密箱不验证对事务处理类型指定的标志属性。如果核销金额超出了发票的到期余额,“过帐快速收现”将关闭发票,并尝试使用您为客户或客户的配置文件分类指定的“余额规则集”来核销收款的余额。
此外,如果核销标志不同于发票上的到期余额标志,则“过帐快速收现”并不核销此收款,并且全部收款额将保持未核销状态。
核销规则集
“过帐快速收现”使用对借项的事务处理类型指定的核销规则集,以确定如何核销付款,以及折扣如何影响任何相关费用的未结余额。如果对此项目的事务处理类型未指定任何规则集,“过帐快速收现”将使用在“系统选项”窗口中定义的规则集。请参阅:应收款管理系统核销规则集
收款状态
根据传输中包含的信息,加密箱将为导入应收款管理系统中的每个收款指定一个状态。
- 未核销:加密箱能够标识此收款的客户,但它不能确定对此收款核销的事务处理。
- 已核销:加密箱能够标识此收款的客户,确定对此收款核销的事务处理,因此能够成功核销收款(在您提交“过帐快速收现”时)。
注意:如果您要使用自动收款功能,自动加密箱将忽略为自动收款选定的所有事务处理(例如,对某个付款方法指定的事务处理,此方法与创建方法设置为“自动”的收款分类相关联)。
执行自定义匹配规则
应收款管理系统提供了封装程序 arp_lockbox_hook.cursor_for_matching_rule,您可以使用它来添加自定义的与自动加密箱进行匹配的规则。例如,如果需要将传送至加密箱的匹配编号和日期与自定义表 (custom_table.custom_number and custom_table.custom_date)
中的编号和日期相匹配(而不是标准匹配选项或其它选项),您可以使用此功能。您也可以使用此功能来匹配现有应收款管理系统表中的其它编号和日期。
此程序要求 AR_LOOKUPS 表中具有 lookup_type = ARLPLB_MATCHING_OPTION 的行,而其它栏则要求有效值,以便使用自定义匹配规则。主程序 arp_process_lockbox 将读取该行,如果发现它是非标准(例如未建立核心 AR)行,程序将使用数据库中对应的 lookup_code 传送控制至此程序。此程序应返回动态 SQL 可以用来打开和分析光标的字符串。您需要创建此 SQL 字符串来替换名为 p_cursor_string 的字符串(请参阅下面的内容)。
字符串应具有以下限制条件:
a. b_current_matching_number - 将获得一个溢出或付款记录中传送的 matching_number 值。
b. b_current_matching_date - 将获得一个溢出或付款记录中传送的 matching_date 值。
c. b_current_installment - 将获得一个溢出或付款记录中传送的分期付款编号值(如果存在)。
d. b_customer_id - 如果使用客户编号或 MICR 编号来标识客户,此程序将强制 matching_number 用于相同的客户(除非 b_pay_unrelated_customers 中的值为“是”)。
e. b_pay_unrelated_customers - 在提交自动加密箱时,此程序将提示您选择是否允许无关客户的付款。此变量将根据您选择的值获得一个“是”或“否”值。
f. b_lockbox_matching_option - 此变量的值将与 ar_lookups.lookup_code 的值相匹配。它同时存储在 ar_customer_profiles.lockbox_matching_option 和 ar_lockboxes.lockbox_matching_option 中。
g. b_use_matching_date - 根据加密箱 (in ar_lockboxes)“在相应日期匹配”选项值,程序将对该变量指定值 NEVER、ALWAYS 或 FOR_DUPLICATES。
2. 如果您要使用此程序自定义自动加密箱,请确保它返回的字符串可以创建有效的光标,并且 SQL 将返回一行且仅限于一行(不是零也不是一行以上)。
3. 程序要求按以下顺序从 SQL 语句中返回三个值:
1. Customer_Id (NUMBER(15))
4. 程序要求发票编号与发票日期的组合在 ar_payment_schedules 中是唯一的。
5. 您无须使用 SQL 语句中提供的所有赋值变量。例如:
p_cursor_string := 'select ct.customer_id, ct.trx_number, ct.trx_date ' ||
'from custom_table ct ' ||
'where ct.matching_number = :b_current_matching_number ' ||
'and ct.matching_date = :b_current_matching_date ';
6. SQL 语句必须如上所示,如果它与给定的匹配编号和匹配日期(可选)不相匹配,则必须返回以下值:
customer_id = -9999,
trx_number = null,
trx_date = null.
7. 如果语句与多个客户和相同的事务处理编号相匹配,则必须返回customer_id = -7777。此时,该步骤将忽略 trx_number 和 trx_date。
注:程序调用此过程时未预计返回任何错误,这是因为光标定义是一次性过程,如果稍为小心将不会出现错误。
下面是应收款管理系统提供的封装程序 arp_lockbox_hook.cursor_for_matching_rule:
-----------------------------------------------------------------*/
PROCEDURE CURSOR_FOR_MATCHING_RULE(p_matching_option IN VARCHAR2,
p_cursor_string OUT VARCHAR2) IS
BEGIN
arp_util.debug('arp_lockbox_hook.cursor_for_matching_rule()+');
p_cursor_string := 'select -9999, NULL, NULL from dual';
arp_util.debug('arp_lockbox_hook.cursor_for_matching_rule()+');
RETURN;
END cursor_for_matching_rule;
END arp_lockbox_hook;
COMMIT;
EXIT;
有关设置加密箱使用自定义匹配规则的详情,请参阅文件 $AR_TOP/admin/sql/ARRLBHKS.pls and $AR_TOP/admin/sql/ARRLBHKB.pls。
另请参阅
自动加密箱如何标识收款客户
自动收现
自动收款
过帐快速收现
自动加密箱验证
常见问题
传输格式
加密箱