144 lines
4.0 KiB
Plaintext
144 lines
4.0 KiB
Plaintext
|
|
create or replace procedure p_ppcl
|
|||
|
|
(
|
|||
|
|
p_tpbh kwjbxx.tpbh%type, --ת<><D7AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̱<EFBFBD><CCB1><EFBFBD>,
|
|||
|
|
p_cpbh cpkcxx.cpbh%type, --ת<><D7AA><EFBFBD>IJ<EFBFBD>Ʒ<EFBFBD><C6B7><EFBFBD><EFBFBD>
|
|||
|
|
p_lpxx cpkcxx.lpxx%type, --ת<><D7AA><EFBFBD><EFBFBD><EFBFBD>ϵ<EFBFBD><CFB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
|
|||
|
|
p_sl cpkcxx.sl%type, --ת<><D7AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
p_boxno cpkcxx.boxno%type --ת<><D7AA><EFBFBD><EFBFBD><EFBFBD>ϵļƻ<C4BC><C6BB><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
) as
|
|||
|
|
/**<2A><><EFBFBD>̴<EFBFBD><CCB4><EFBFBD>
|
|||
|
|
* <20><>һ<EFBFBD><D2BB><EFBFBD>տ<EFBFBD>λ<EFBFBD>Ŀ<EFBFBD><C4BF><EFBFBD>ת<EFBFBD>Ƶ<EFBFBD><C6B5><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB>
|
|||
|
|
*<2A>ⲿ<EFBFBD>ֿ<EFBFBD>λ<EFBFBD>dz<EFBFBD><C7B3><EFBFBD><EFBFBD><EFBFBD>ѡ<EFBFBD><D1A1>ת<EFBFBD>Ƶ<EFBFBD><C6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>棬<EFBFBD><E6A3AC>λΪ<CEBB><CEAA>
|
|||
|
|
*dengbiao
|
|||
|
|
*/
|
|||
|
|
v_ckmc cpkcxx.ckmc%type;
|
|||
|
|
v_kwbh cpkcxx.kwbh%type;
|
|||
|
|
v_jldw cpkcxx.jldw%type;
|
|||
|
|
v_kc_jlh cpkcxx.jlh%type;
|
|||
|
|
v_lpxx cpkcxx.lpxx%type;
|
|||
|
|
v_wzlb cpkcxx.wzlb%type;
|
|||
|
|
v_cpbh cpkcxx.cpbh%type;
|
|||
|
|
v_rksl cpkcxx.sl%type;
|
|||
|
|
v_zlzt cpkcxx.zlzt%type;
|
|||
|
|
v_cpmc cpkcxx.cpmc%type;
|
|||
|
|
v_cpgg1 cpkcxx.cpgg1%type;
|
|||
|
|
v_cpgg2 cpkcxx.cpgg2%type;
|
|||
|
|
v_cpgg3 cpkcxx.cpgg3%type;
|
|||
|
|
v_jhj cpkcxx.jhj%type;
|
|||
|
|
v_rksj cpkcxx.rksj%type;
|
|||
|
|
v_gydw cpkcxx.gydw%type;
|
|||
|
|
v_djbz cprkd.bz%type;
|
|||
|
|
v_boxno ckzl.boxno%type;
|
|||
|
|
v_sclkc char(1); -- <20>Ƿ<EFBFBD>ɾ<EFBFBD><C9BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
v_gxcpcfkw sys_config.dqz%type; -- <20>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD>´<EFBFBD><C2B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2>¼<EFBFBD><C2BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ſ<EFBFBD>λ<EFBFBD>͵<EFBFBD>ǰ<EFBFBD><C7B0><EFBFBD>ſ<EFBFBD>λ
|
|||
|
|
v_zc_kc_jlh cpkcxx.jlh%type; --ת<><D7AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>¼<EFBFBD><C2BC>
|
|||
|
|
v_txm cpkcxx.txm%type;
|
|||
|
|
-- CREATE GLOBAL TEMPORARY TABLE admin_work_area
|
|||
|
|
--(startdate DATE,
|
|||
|
|
--enddate DATE,
|
|||
|
|
--class CHAR(20))
|
|||
|
|
--ON COMMIT DELETE ROWS;
|
|||
|
|
|
|||
|
|
cursor c_kcxx is
|
|||
|
|
select jlh, ckmc, cpbh, lpxx, zlzt, sl, rksj, jldw, cpmc, cpgg1, cpgg2, cpgg3, jhj, wzlb, gydw, bz, boxno, txm
|
|||
|
|
from cpkcxx
|
|||
|
|
where cpbh = p_cpbh
|
|||
|
|
and nvl(lpxx, ' ') = p_lpxx
|
|||
|
|
and boxno = p_boxno
|
|||
|
|
and kwbh is null;
|
|||
|
|
|
|||
|
|
begin
|
|||
|
|
|
|||
|
|
select max(dqz)
|
|||
|
|
into v_sclkc
|
|||
|
|
from sys_config
|
|||
|
|
where id_pzx = 'delete_0_inventory';
|
|||
|
|
select max(dqz)
|
|||
|
|
into v_gxcpcfkw
|
|||
|
|
from sys_config
|
|||
|
|
where id_pzx = 'update_cpxx_cfkw';
|
|||
|
|
|
|||
|
|
select a.kwbh
|
|||
|
|
into v_kwbh
|
|||
|
|
from cpkcxx a
|
|||
|
|
join kwjbxx b
|
|||
|
|
on a.kwbh = b.kwbh
|
|||
|
|
where tpbh = p_tpbh;
|
|||
|
|
if v_kwbh is null
|
|||
|
|
then
|
|||
|
|
select max(kwbh)
|
|||
|
|
into v_kwbh
|
|||
|
|
from kwjbxx
|
|||
|
|
where zsl = 0
|
|||
|
|
and sfsd = 0
|
|||
|
|
and qysx = 'P';
|
|||
|
|
end if;
|
|||
|
|
if v_kwbh is null
|
|||
|
|
then
|
|||
|
|
raise_application_error(-20010, 'δ<>ҵ<EFBFBD><D2B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ');
|
|||
|
|
return;
|
|||
|
|
end if;
|
|||
|
|
open c_kcxx;
|
|||
|
|
loop
|
|||
|
|
fetch c_kcxx
|
|||
|
|
into v_zc_kc_jlh, v_ckmc, v_cpbh, v_lpxx, v_zlzt, v_rksl, v_rksj, v_jldw, v_cpmc, v_cpgg1, v_cpgg2, v_cpgg3, v_jhj, v_wzlb, v_gydw, v_djbz, v_boxno, v_txm;
|
|||
|
|
exit when c_kcxx%notfound;
|
|||
|
|
if v_rksl < p_sl
|
|||
|
|
then
|
|||
|
|
close c_kcxx;
|
|||
|
|
raise_application_error(-20010, '<27><>Ʒ' || v_cpbh || '<27><>λ' || v_kwbh ||
|
|||
|
|
'ԭ<><D4AD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>' || v_rksl || 'С<><D0A1>ת<EFBFBD><D7AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>' || p_sl);
|
|||
|
|
end if;
|
|||
|
|
|
|||
|
|
select max(jlh)
|
|||
|
|
into v_kc_jlh
|
|||
|
|
from cpkcxx
|
|||
|
|
where ckmc = v_ckmc
|
|||
|
|
and kwbh = v_kwbh
|
|||
|
|
and cpbh = v_cpbh
|
|||
|
|
and nvl(lpxx, ' ') = nvl(v_lpxx, ' ')
|
|||
|
|
and nvl(boxno, ' ') = nvl(v_boxno, ' ')
|
|||
|
|
and nvl(txm, ' ') = nvl(v_txm, ' ');
|
|||
|
|
--ת<><D7AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
if v_kc_jlh is null
|
|||
|
|
then
|
|||
|
|
insert into cpkcxx
|
|||
|
|
(jlh, ckmc, kwbh, cpbh, lpxx, sl, zlzt, rksj, jldw, cpmc, cpgg1, cpgg2, cpgg3, jhj, wzlb, gydw, bz, boxno, txm)
|
|||
|
|
values
|
|||
|
|
(cpkcxx_jlh.nextval, v_ckmc, v_kwbh, v_cpbh, v_lpxx, p_sl, v_zlzt, v_rksj, v_jldw, v_cpmc, v_cpgg1, v_cpgg2, v_cpgg3, v_jhj, v_wzlb, v_gydw, v_djbz, v_boxno, v_txm);
|
|||
|
|
else
|
|||
|
|
update cpkcxx set sl = sl + p_sl where jlh = v_kc_jlh;
|
|||
|
|
end if;
|
|||
|
|
|
|||
|
|
--ԭ<><D4AD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
update cpkcxx set sl = sl - p_sl where jlh = v_zc_kc_jlh;
|
|||
|
|
if p_sl - v_rksl = 0
|
|||
|
|
then
|
|||
|
|
delete cpkcxx
|
|||
|
|
where sl = 0
|
|||
|
|
and jlh = v_zc_kc_jlh;
|
|||
|
|
end if;
|
|||
|
|
|
|||
|
|
--<2D>Ŀ<DEB8>λ<EFBFBD><CEBB>Ϣ
|
|||
|
|
update kwjbxx
|
|||
|
|
set sjwzlx = v_zlzt, sfwzzl = 'M', tpbh = p_tpbh
|
|||
|
|
where ckmc = v_ckmc
|
|||
|
|
and kwbh = v_kwbh
|
|||
|
|
and (sjwzlx <> v_zlzt or sjwzlx is null or sfwzzl is null or
|
|||
|
|
zsl = 0 or sfwzzl <> 'M' or tpbh is null);
|
|||
|
|
--<2D>Ŀ<DEB8>λ<EFBFBD>ϵ<EFBFBD><CFB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
update kwjbxx
|
|||
|
|
set zsl =
|
|||
|
|
(select nvl(sum(sl), 0) as sumsl
|
|||
|
|
from cpkcxx
|
|||
|
|
where ckmc = v_ckmc
|
|||
|
|
and kwbh = v_kwbh)
|
|||
|
|
where ckmc = v_ckmc
|
|||
|
|
and kwbh = v_kwbh;
|
|||
|
|
|
|||
|
|
end loop;
|
|||
|
|
close c_kcxx;
|
|||
|
|
|
|||
|
|
end;
|
|||
|
|
/
|