NC外币请购实施方案

更新时间:2023-05-31 21:03:01 阅读量: 实用文档 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

广西用友实施中心 韦敏生 gxwms@

2012-3-15

1 应用场景

需求:本位币为人民币,有外币采购业务。在请购单环节,需进行多币

种管理。

NC的请购单上没有币种信息,未区分原币和本币金额,不支持外

币处理业务。

提交NC在线的结果是不支持,建议二开。

需求点2:自动根据选择的币种,选择最新的汇率。

系统版本:NCV5.7/Oracle10G

2 需求分析

系统不支持,但是客户的进口采购业务量很多,需求是刚性的。且企业的管理流程和内控要求必须按上诉流程进行,要求客户调整流程是不合理的。只能通过变通的方法进行处理,变通的方法就是使用自定义项。

最先的思路是:在请购单表头上的自定义项2引用币种后,通过单据参照时的数据交换,将自定义项目2的值传递到采购订单的表头“整单币种”。实际操作中发现,该数据交换规则无效,币种仍默认为人民币。NC在线答复采购订单的币种时通过某种规则自动默认的,无法通过数据交换传递,看来NC采购业务的外币处理能力不是一般的差啊。

修改后的思路为:

请购单表头上的自定义项2(币种),自定义项3(汇率)分

别传递到采购订单表头的自定义项2(币种),自定义项3(汇率);

请购单表头上的自定义项2(币种),自定义项3(汇率)分

别传递到采购订单表体的自定义项2(币种),自定义项3(汇率);

然后通过采购订单的表头的必输字段的编辑公式进行触发

后,回写币种和汇率到采购订单的表头的币种和汇率信息;

通过采购订单的表体的必输字段的编辑公式进行触发后,回

写币种和汇率到采购订单的表体币种和汇率信息;

3 实施步骤

3.1 增加自定义项

增加“币种”和“汇率”两个自定义项,并分别引用到请购单表头和采购订单的表头/表体。

3.2 设置汇率

外币汇率维护通过期间汇率进行维护,每一个汇率月维护一次。

注意:即使2个月之间的汇率没有变化,也必须每月进行维护。

3.3 修改数据交换规则

3.2.1. 请购单到采购订单

删除请购单_表体_vdef2到采购订单_表体_vdef2交换;

删除请购单_表体_pk_defdoc2到采购订单_表体_ pk_defdoc2交换;

删除请购单_表体_vdef3到采购订单_表体_vdef3交换;

删除请购单_表体_pk_defdoc3到采购订单_表体_ pk_defdoc3交换;

增加以下交换规则:

3.2.2. 采购订单到下游单据

删除采购订单_ 表头_定义项2、采购订单_ 表头_定义项3、采购订

单_ 表体_定义项2、采购订单_ 表体_定义项3到下游单据的交换规则。

【本案例中,采购订单的下游单据为到货单】

3.4 修改单据模板

3.3.1. 请购单单据模板

修改请购单的单据模板,将表头“自定义2”、“自定义3”显示出来并设为可编辑与必输项。

自定义项2的编辑公式:

accperiod->left(dpraydate , 8) +"01";

pk_accperiod->getColValue(bd_accperiodmonth, pk_accperiodmonth, begindate, accperiod);

pk_curr->getColValue(bd_currtype,pk_currtype ,currtypename ,vdef2 );

pk_currinfo->getcolvalue( bd_currinfo, pk_currinfo, pk_currtype, pk_curr);

vdef3->iif(getcolvalue2(bd_adjustrate, adjustrate, pk_accperiodmonth,pk_accperiod,pk_currinfo,pk_currinfo),getcolvalue2(bd_adjustrate, adjustrate, pk_accperiodmonth,pk_accperiod,pk_currinfo,pk_currinfo) ,1 )

3.3.2. 请购单取汇率

修改请购单的单据模板,设置自定义项2(币种)的编辑公式如下: accperiod->left(dpraydate , 8) +"01";

pk_accperiod->getColValue(bd_accperiodmonth,

begindate, accperiod);

pk_curr->getColValue(bd_currtype,pk_currtype ,currtypename ,vdef2 ); pk_accperiodmonth,

pk_currinfo->getcolvalue( bd_currinfo, pk_currinfo, pk_currtype, pk_curr); vdef3->iif(getcolvalue2(bd_adjustrate, adjustrate, pk_accperiodmonth,pk_accperiod,pk_currinfo,pk_currinfo),getcolvalue2(bd_adjustrate,

pk_accperiodmonth,pk_accperiod,pk_currinfo,pk_currinfo) ,1 )

公式解释:

① 取请购日期dpraydate的月份的第一天,如请购日期为2012-03-16,则取值2012-03-01到accperiod变量;

② 取变量accperiod对应的会计月份的PK值;

③ 根据自定义项2(币种)取币种的PK值并赋值给变量pk_curr;

④ 根据币种PK pk_curr取得外币汇率关系pk并赋值给变量pk_currinfo ⑤ 根据外币汇率关系pkpk_currinfo和当前请购单的会计月份accperiod查询调整汇率表,取到取得利率并赋值给自定义3(汇率),当取不

到值时,默认汇率为1。

3.3.3. 采购订单单据模板

修改采购单的单据模板,将表头“自定义3”显示出来并设为不可编辑;将采购单_表头的整单币种与整单折本汇率字段隐藏;将采购单_表体的币种与折本汇率字段隐藏(因为参照后币种默认值仍是人民币,因此不需显示出来)。

采购订单_表头的自定义2值为币种的pk值,因此不显示,增加一个自定义字段(curr),通过设置显示公式显示正确的币种。

adjustrate,

设置显示公式为:curr->getColValue(bd_currtype, currtypename, pk_currtype, vdef2)

3.3.4. 触发公式

编辑采购订单表头,将“采购组织”设置为必输项,在“采购组织”的编辑公式中,增加下列公式:

ccurrencytypeid->vdef2;

nexchangeotobrate->vdef3

该公式的作用是当编辑采购组织时,将表头的自定义项2的币种信息和自定义项3的汇率复制给采购订单表头的整单币种和整单折本汇率。

编辑采购订单表体,将“收货库存组织”设置为必输项,在“收货库存组织”的编辑公式中,增加下列公式:

ccurrencytypeid->vdef2;

nexchangeotobrate->vdef3

该公式的作用是当编辑采购组织时,将表体的自定义项2的币种信息和

自定义项3的汇率复制给采购订单表体的币种和折本汇率。

并给相应角色分配单据模板

3.5 效果与日常维护

参照维护请购单生成采购订单时,将请购单的币种/汇率分别传递到了采购订单的表头和表体的自定义项;再通过必输项字段的触发,回写采购订单的预置币种和汇率字段,完成了外币和汇率的传递。

核心是通过必输项的编辑公式分别触发,模拟在采购订单上手工选择币种的过程。如本案例中采购订单表体的“收货库存组织”其实不是必输项,但是为了能够触发表体的币种信息,将其设为了必输项,实现了这个触发过程的严格执行。

注意:请购单和采购订单的下游单据不再需要传递自定义的“币种”和“汇率”,因此需要在数据交换规则去删除交换规则,否则下游单据会报错。

本文来源:https://www.bwwdw.com/article/6ly1.html

Top