材料批量调价与库存金额变动

  由于物价局要求从2007年1月1日起所有卫生材料必须按新的标准进行作价,HIS目前不支持批量调价功能,所以编写此存储过程,本来想在一个存储过程中进行处理,测试发现数据未提交最后一个过程提不出数据,所以分开为2个.

[@more@]

create or replace procedure zl_材料调价 as
v_收费价目_ID NUMBER;
v_NO VARCHAR2(10);
Cursor C_调价明细 is
select A.材料ID AS 收费细目ID,a.成本价,b.现价 as 原价,b.id as 原价ID,
B.收入项目ID,round(A.成本价/(100-a.指导差价率)*100,2) AS 调整价
from
材料特性 A,
收费价目 B
where a.材料ID=B.收费细目ID
and (b.终止日期 is null or b.终止日期>sysdate);
BEGIN
FOR v_调价明细 in C_调价明细 loop
Select 收费价目_id.Nextval Into v_收费价目_id From dual;
select nextno(9,0) into v_no from dual;
zl_收费价目_stop(v_调价明细.收费细目ID,SYSDATE);
zl_收费价目_insert(v_收费价目_id,v_调价明细.原价ID,v_调价明细.收费细目ID,v_调价明细.收入项目ID,
v_调价明细.原价,v_调价明细.调整价,NULL,NULL,'按2007年材料新物价标准调价',v_收费价目_ID,
'系统调价',SYSDATE,0,v_no,1);
END LOOP;
END zl_材料调价;
/

create or replace procedure zl_材料调价变动 as
Cursor C_调价明细 is
select A.材料ID AS 收费细目ID,a.成本价,b.现价 as 原价,b.id as 原价ID,
B.收入项目ID,round(A.成本价/(100-a.指导差价率)*100,2) AS 调整价
from
材料特性 A,
收费价目 B
where a.材料ID=B.收费细目ID
and (b.终止日期 is null or b.终止日期>sysdate);
BEGIN
FOR v_调价明细 in C_调价明细 loop
zl_材料收发记录_adjust(v_调价明细.原价ID,0);
END LOOP;
END zl_材料调价变动;
/


execute zl_材料调价;

execute zl_材料调价变动;

commit;

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/8351093/viewspace-887828/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/8351093/viewspace-887828/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值