Files
old_jintiantongye_wms/db/数据库更新20171107.sql

363 lines
30 KiB
MySQL
Raw Normal View History

2025-09-12 17:30:18 +08:00
<EFBFBD><EFBFBD>/****** Object: StoredProcedure [dbo].[p_increaseInventory] Script Date: 2017/11/7 fg<EFBFBD>N 7:49:27 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[p_increaseInventory]
-- WITH ENCRYPTION
AS
/**
* (WY*N<EFBFBD>^MO
N<EFBFBD>m<EFBFBD>R<EFBFBD>^X[Ǐ z0
* <EFBFBD>_<EFBFBD>ReQ<EFBFBD>v<EFBFBD>^X[penc(W4N<EFBFBD>eh<EFBFBD>#inserted-N0<><30>4N<34>eh<65><68>v<EFBFBD>Q<EFBFBD>[(W<03>(u<><75>Ǐ zMR
* 1uvQ<EFBFBD> zb<EFBFBD><EFBFBD><EFBFBD>ShVbvQ<EFBFBD>NSQL<EFBFBD>Nx<EFBFBD>#<23>kXeQ0
*
* Created by jzx on 2006-07-31
* Modified by jzx on 2006-12-19 (W<EFBFBD>^X[h<EFBFBD>-N<EFBFBD>X<EFBFBD>R<EFBFBD>[<EFBFBD>O<EFBFBD>^USMOW[<EFBFBD>k<EFBFBD>vX[<EFBFBD>P
* Modified by jzx on 2007-02-26 <EFBFBD>^MO
N<EFBFBD>^X[;`ϑ<EFBFBD>v<EFBFBD>f<EFBFBD>e<EFBFBD>R<EFBFBD>l9ebGl;`<EFBFBD>^MO<EFBFBD>^X[;`peT<EFBFBD>v<P <EFBFBD> <EFBFBD> N/f<EFBFBD>{US<EFBFBD>v<EFBFBD><EFBFBD>Q
* Modified by jzx on 2009-4-12 <EFBFBD>OYu<EFBFBD><EFBFBD><EFBFBD>^MO<EFBFBD>^X[<EFBFBD><EFBFBD>U_ <EFBFBD><EFBFBD><EFBFBD>0R<EFBFBD><EFBFBD><EFBFBD>_<EFBFBD>v<EFBFBD>v
* Modified by jzx on 2009-4-28 N<EFBFBD>Q<EFBFBD>OYu<EFBFBD><EFBFBD><EFBFBD>^MO<EFBFBD>^X[<EFBFBD><EFBFBD>U_ <EFBFBD><EFBFBD><EFBFBD>0R<EFBFBD><EFBFBD><EFBFBD>_<EFBFBD>v<EFBFBD>v0<EFBFBD>V:N<EFBFBD><EFBFBD>7hO<EFBFBD>Q<EFBFBD>s<EFBFBD>_Y<EFBFBD><EFBFBD><EFBFBD>^X[<EFBFBD><EFBFBD>U_ <EFBFBD><EFBFBD>d\O<EFBFBD><EFBFBD>_<EFBFBD>p
* Modified by jzx on 2010-8-8 <EFBFBD>X<EFBFBD>R<EFBFBD>[<EFBFBD>^X[Y<EFBFBD>l<EFBFBD>Oo`<EFBFBD>vX[<EFBFBD>P
* Modified by jzx on 2010-9-17 Rd<EFBFBD><EFBFBD>[<EFBFBD>eHeh<EFBFBD>inventory<EFBFBD>v<EFBFBD>d\O
* Modified by jzx on 2011-5-4 <EFBFBD>X<EFBFBD>R<EFBFBD>[jzl<EFBFBD>Ttxm<EFBFBD>vX[<EFBFBD>P
* Modified by jzx on 2011-5-10 <EFBFBD>S<EFBFBD>Q<EFBFBD>^X[h<EFBFBD>-NjeW[<EFBFBD>k<P<EFBFBD>vYt0<EFBFBD><EFBFBD>W[<EFBFBD>k<EFBFBD><EFBFBD><EFBFBD><EFBFBD> g<EFBFBD>
* Modified by jzx on 2014-10-31 Rd<EFBFBD><EFBFBD><EFBFBD><EFBFBD>^X[<EFBFBD><EFBFBD>U_<EFBFBD>e <EFBFBD><EFBFBD>N<EFBFBD>[insertedh<EFBFBD><EFBFBD>d\O<EFBFBD>v<EFBFBD>^MOYt <EFBFBD> <EFBFBD> N/fte*NS_MR<EFBFBD>^X[h<EFBFBD>-N@b g<EFBFBD>v<EFBFBD>^MO
* Modified by jzx on 2015-9-17 <EFBFBD>[cpkcxxh<EFBFBD><EFBFBD>e<EFBFBD>XW[<EFBFBD>k MRyb<EFBFBD>^X[pe <EFBFBD>T TybeQ<EFBFBD>^<EFBFBD>e<EFBFBD><EFBFBD> K<EFBFBD><P<EFBFBD>/}<EFBFBD>RMR<EFBFBD>^MO:N0<EFBFBD>v <EFBFBD>ReQ<EFBFBD>^<EFBFBD>e<EFBFBD><EFBFBD>_N<EFBFBD>f<EFBFBD>e
* Modified by jzx on 2016-3-16 <EFBFBD>~cpkcxxh<EFBFBD><EFBFBD>vcfwzxxW[<EFBFBD>kK<EFBFBD><P0ُ*NW[<EFBFBD>k<EFBFBD>_<EFBFBD>e1\ g<EFBFBD>N <EFBFBD><EFBFBD>S/f<EFBFBD>N386y<EFBFBD><EFBFBD>v_<EFBFBD>YMbO(u
* Modified by jzx on 2016-5-13 <EFBFBD>~cpkcxxh<EFBFBD><EFBFBD>e<EFBFBD>XW[<EFBFBD>k <EFBFBD><EFBFBD><EFBFBD>~<EFBFBD>Q<EFBFBD>^<EFBFBD>e<EFBFBD><EFBFBD> K<EFBFBD><P<EFBFBD><EFBFBD>g~b<EFBFBD>^X[<EFBFBD><EFBFBD>U_<EFBFBD>e <EFBFBD><EFBFBD>X<EFBFBD>RtxmW[<EFBFBD>k9SM<EFBFBD>ag<EFBFBD>N
* Modified by jzx on 2016-7-16 <EFBFBD>~cpkcxxh<EFBFBD><EFBFBD>e<EFBFBD>XW[<EFBFBD>krkzbsj<EFBFBD>eQ<EFBFBD>^<EFBFBD>QY<EFBFBD>e<EFBFBD><EFBFBD> <EFBFBD>W[<EFBFBD>kK<EFBFBD><P
* Modified by jzx on 2016-9-18 <EFBFBD>X<EFBFBD>Rset nocount on<EFBFBD><EFBFBD><EFBFBD>S
* Modified by jzx on 2016-11-5 debug:KNMR\P(u8nh<EFBFBD>d\O<EFBFBD>e <EFBFBD>(u<EFBFBD>v@zlzt<EFBFBD><P$R<EFBFBD>e<EFBFBD>e<EFBFBD>^X[<EFBFBD><EFBFBD>U_<EFBFBD>v(<EFBFBD>ϑ<EFBFBD>r`<P <EFBFBD>9ebi.zlzt<EFBFBD> T<EFBFBD>e<EFBFBD>b<EFBFBD><EFBFBD>[IN<EFBFBD><EFBFBD><EFBFBD><EFBFBD>c
* Modified by jzx on 2016-12-23 OS<EFBFBD>Nx <EFBFBD>O(uh<EFBFBD><EFBFBD>0<EFBFBD><EFBFBD><EFBFBD> cgqsQ.<EFBFBD>W[<EFBFBD>kGl;`4N<EFBFBD>eh<EFBFBD>#inserted<1B><>X<EFBFBD>RpizW[<5B>kX[<5B>P
* Modified by jzx on 2017-2-17 <EFBFBD><EFBFBD><EFBFBD>{<EFBFBD><EFBFBD><EFBFBD>~<EFBFBD>Q<EFBFBD>^<EFBFBD>e<EFBFBD><EFBFBD>9e(usQT<EFBFBD><EFBFBD>eh<EFBFBD>sc_StandByDuration <EFBFBD> <EFBFBD> N/fKNMR<EFBFBD>vsc_gwxx
* Modified by jzx on 2017-2-18 debug: KNMR<EFBFBD>l g<EFBFBD>~@cntInsertK<EFBFBD><P <EFBFBD><EFBFBD><EFBFBD><EFBFBD>,{<EFBFBD>~@cntUpdateK<EFBFBD><P$NM<EFBFBD>
* Modified by jzx on 2017-10-18 <EFBFBD>~kwjbxxh<EFBFBD>
N<EFBFBD>e<EFBFBD>XW[<EFBFBD>kwzzlsK<EFBFBD><P
* Modified by jzx on 2017-11-7 <EFBFBD>O9ekwjbxxh<EFBFBD><EFBFBD>e <EFBFBD><EFBFBD>X<EFBFBD>Rsl>0ag<EFBFBD>N <EFBFBD>sScprkzlh<EFBFBD><EFBFBD>ceQ<EFBFBD><EFBFBD>U_<EFBFBD><EFBFBD><EFBFBD>ShV<EFBFBD>X<EFBFBD>R<EFBFBD>v<EFBFBD><EFBFBD><EFBFBD>^X[<EFBFBD><EFBFBD>U_ N<EFBFBD>Q<EFBFBD>0
*/
BEGIN
SET NOCOUNT ON;
DECLARE @cntAll INT, @cntUpdate INT, @cntInsert INT;
DECLARE @inserted TABLE(cpbh type_cpbh, lpxx type_ph null, ckmc type_ck, kwbh type_kwbh, zlzt CHAR(1)
, txm varchar(30) null, tpbh nvarchar(50) null
, sl type_sl, rksj datetime, cfwzxx tinyint null, rkzbsj datetime null, yycksj datetime null
, cpmc type_pm null, cpgg1 type_gg null, cpgg2 type_cz null, cpgg3 type_th null
, jldw type_jldw null, wzlb type_wzlb null
, gydw nvarchar(60) null, jhj type_dj null, jzl type_sl null, bz varchar(200) null
, piz numeric(8,3),scrq DATETIME null,hth NVARCHAR(50) null,maoz NVARCHAR(50) null,hjzt NVARCHAR(50) null
,ywy NVARCHAR(50) null,mxcc NVARCHAR(50) null,gdh NVARCHAR(50) null,yt NVARCHAR(50) null, gx NVARCHAR(50) null, scfc NVARCHAR(50) null, bc NVARCHAR(50) null
);
INSERT INTO @inserted
SELECT i.cpbh, i.lpxx, MAX(i.ckmc), i.kwbh, i.zlzt, i.txm, i.tpbh
, SUM(i.sl), MAX(i.rksj), MAX(i.cfwzxx), MAX(i.rkzbsj)
--, DATEADD(MI, CASE WHEN i.zlzt IN('9','A') THEN S.gwcs8 ELSE S.gwcs2 END, MAX(i.rksj)) AS yycksj
, DATEADD(MI, MAX(s.duration), MAX(i.rksj)) AS yycksj
, MAX(i.cpmc), MAX(i.cpgg1), MAX(i.cpgg2), MAX(i.cpgg3), MAX(jldw), MAX(i.wzlb), MAX(i.gydw), MAX(i.jhj)
, MAX(i.jzl), MAX(i.bz), MIN(i.piz),i.scrq,i.hth,i.maoz,i.hjzt,i.ywy,i.mxcc,i.gdh,i.yt,i.gx,i.scfc,i.bc
FROM #inserted i
--LEFT JOIN kwjbxx K ON i.kwbh = K.kwbh
--LEFT JOIN sc_gwxx S ON CAST(K.hdh AS VARCHAR) + '#:g'=S.gwid
--GROUP BY i.kwbh,i.zlzt,i.cpbh,i.lpxx,i.txm,i.tpbh,S.gwcs8,S.gwcs2;
LEFT JOIN sc_StandByDuration s ON i.wzlb=s.wzlb AND i.zlzt=s.dczt
GROUP BY i.kwbh,i.zlzt,i.cpbh,i.lpxx,i.txm,i.tpbh,i.scrq,i.hth,i.maoz,i.hjzt,i.ywy,i.mxcc,i.gdh,i.yt,i.gx,i.scfc,i.bc
-- <EFBFBD><EFBFBD>HQ<EFBFBD>h<EFBFBD>g<EFBFBD>^MO<EFBFBD>S/f&T<EFBFBD>l gkX<EFBFBD>Q<EFBFBD>v
SELECT @cntAll = count(*) FROM @inserted WHERE kwbh IS NULL OR LEN(kwbh) = 0;
IF @cntAll > 0
BEGIN
RAISERROR('*gc<>[ gHe<48>v<EFBFBD>^MO<4D>S', 16, 1);
RETURN;
END;
-- <EFBFBD>Q<EFBFBD>h<EFBFBD>g/f&T g<EFBFBD><EFBFBD>U_X[(W0:N<EFBFBD>N<EFBFBD>h<EFBFBD>g<EFBFBD>( z<EFBFBD>e <EFBFBD>/f&T gY<EFBFBD><EFBFBD> z<EFBFBD>^ Rd<EFBFBD><EFBFBD>N4N<EFBFBD>eh<EFBFBD><EFBFBD><EFBFBD>U_
SELECT @cntAll = count(*) FROM @inserted;
IF @cntAll = 0
BEGIN
RAISERROR('<00>_9e<39>R<EFBFBD>v<EFBFBD>^X[<5B><>U_pe:N0', 16, 1);
RETURN;
END;
UPDATE cpkcxx SET sl = r.sl + i.sl
, rksj = CASE WHEN r.sl<=0 THEN i.rksj ELSE r.rksj END
, jldw = i.jldw
, cpmc =i.cpmc
, cpgg1=i.cpgg1
, cpgg2=i.cpgg2
, cpgg3= i.cpgg3
, jhj =i.jhj
, wzlb = i.wzlb
, gydw = ISNULL(i.gydw, r.gydw)
, bz = ISNULL(i.bz, r.bz)
, MRyb<EFBFBD>^X[pe=r.sl
, TybeQ<EFBFBD>^<EFBFBD>e<EFBFBD><EFBFBD>=i.rksj
, cfwzxx = i.cfwzxx
, <EFBFBD><EFBFBD><EFBFBD>~<EFBFBD>Q<EFBFBD>^<EFBFBD>e<EFBFBD><EFBFBD> = i.yycksj
, rkzbsj = i.rkzbsj
, piz = i.piz
, txm = i.txm
,scrq=i.scrq
,hth=i.hth
,maoz=i.maoz
,hjzt=i.hjzt
,ywy=i.ywy
,mxcc=i.mxcc
,gdh=i.gdh
,yt=i.yt
,gx=i.gx
,scfc=i.scfc
,bc=i.bc
FROM cpkcxx r, @inserted i
WHERE r.kwbh = i.kwbh
AND r.zlzt = i.zlzt
AND r.cpbh = i.cpbh
--AND ISNULL(r.txm, ISNULL(i.txm, ' ')) = ISNULL(i.txm, ' ')
AND ISNULL(r.lpxx, ' ') = ISNULL(i.lpxx, ' ')
AND ISNULL(r.tpbh, ' ') = ISNULL(i.tpbh, ' ');
SET @cntUpdate = @@ROWCOUNT;
SET @cntInsert = 0;
--set @cntUpdate = 0;; 2017-2-18 debug
IF (@cntUpdate < @cntAll)
BEGIN
INSERT INTO cpkcxx (ckmc, kwbh, cpbh, lpxx, sl, zlzt, rksj, jldw, cpmc, cpgg1, cpgg2, cpgg3, jhj, wzlb, gydw, bz, jzl, txm
, MRyb<EFBFBD>^X[pe, TybeQ<EFBFBD>^<EFBFBD>e<EFBFBD><EFBFBD>, tpbh, cfwzxx, <EFBFBD><EFBFBD><EFBFBD>~<EFBFBD>Q<EFBFBD>^<EFBFBD>e<EFBFBD><EFBFBD>, rkzbsj, piz,scrq,hth,maoz,hjzt,ywy,mxcc,gdh,yt,gx,scfc,bc)
SELECT i.ckmc, i.kwbh, i.cpbh, i.lpxx, i.sl, i.zlzt, i.rksj, i.jldw, i.cpmc, i.cpgg1, i.cpgg2, i.cpgg3, i.jhj, i.wzlb, i.gydw, i.bz, i.jzl, i.txm
, 0, i.rksj, i.tpbh, i.cfwzxx, i.yycksj, i.rkzbsj, i.piz,i.scrq,i.hth,i.maoz,i.hjzt,i.ywy,i.mxcc,i.gdh,i.yt,i.gx,i.scfc,i.bc
FROM @inserted i
WHERE NOT EXISTS(SELECT 2 FROM cpkcxx a WHERE a.kwbh = i.kwbh
AND a.zlzt = i.zlzt
AND a.cpbh = i.cpbh
--AND ISNULL(a.txm, ISNULL(i.txm, ' ')) = ISNULL(i.txm, ' ')
AND ISNULL(a.lpxx, ' ') = ISNULL(i.lpxx, ' ')
AND ISNULL(a.tpbh, ' ') = ISNULL(i.tpbh, ' '));
SET @cntInsert = @@ROWCOUNT;
--SET @cntUpdate = @@ROWCOUNT;2017-2-18 debug
END;
-- ؏<EFBFBD><EFBFBD><EFBFBD>h<EFBFBD>gN!k
IF @cntInsert + @cntUpdate != @cntAll
BEGIN
RAISERROR('<00>ceQ<65>T<EFBFBD>O9e<39><65>U_peKN<4B>T NI{<7B>N<EFBFBD>_Yt<><74>U_;`L<>pe', 16, 1);
RETURN;
END;
--<EFBFBD>O9e<EFBFBD>^MO
N<EFBFBD>v;`peϑ
UPDATE kwjbxx SET zsl=ISNULL(sumsl, 0), sjwzlx = t.zlzt, sfwzzl='M', wzzls=zls
FROM (SELECT i.kw, SUM(a.sl) AS sumsl, MAX(a.zlzt) zlzt, COUNT(DISTINCT cpbh+ISNULL(lpxx,'')) zls
FROM cpkcxx a JOIN (SELECT DISTINCT kwbh kw FROM @inserted) i
ON a.kwbh = i.kw AND a.sl>0 -- 2017-11-7 debug <EFBFBD>X<EFBFBD>Rsl>0<EFBFBD>vag<EFBFBD>N
GROUP BY i.kw)T
WHERE kwbh = t.kw;
/*
DECLARE @ckmc type_ck
, @kwbh type_kwbh, @jldw type_jldw
, @kc_jlh INT, @lpxx type_ph, @wzlb type_wzlb
, @cpbh nvarchar(50), @rksl type_sl, @zlzt CHAR(1)
, @cpmc varchar(80), @cpgg1 varchar(255), @cpgg2 type_cz, @cpgg3 type_th, @jhj type_dj
, @pmh VARCHAR(10), @rksj datetime, @v_gydw NVARCHAR(60)
, @v_kcsl type_sl, @v_kcbz VARCHAR(200), @v_jzl type_sl, @v_txm VARCHAR(30), @v_tpbh varchar(12)
, @v_cfwzxx nvarchar(20), @txm varchar(30), @<EFBFBD>e<EFBFBD> INT, @rkzbsj DATETIME;
DECLARE c_kc CURSOR FOR--<EFBFBD>O9e<EFBFBD>^X[<EFBFBD>e<EFBFBD>v8nh
SELECT ckmc, kwbh, cpbh, lpxx, zlzt, txm
, sl, cpmc, cpgg1, cpgg2, cpgg3, jhj, pmh, wzlb, jldw, rksj, gydw, bz, jzl, txm, tpbh, cfwzxx
, rkzbsj
FROM #inserted;
--M<EFBFBD><EFBFBD>S8nh <EFBFBD><EFBFBD>O9e<EFBFBD>^X[
OPEN c_kc
WHILE 1 = 1
BEGIN
FETCH c_kc INTO @ckmc, @kwbh, @cpbh, @lpxx, @zlzt, @txm, @rksl, @cpmc, @cpgg1, @cpgg2, @cpgg3
, @jhj, @pmh, @wzlb, @jldw, @rksj, @v_gydw, @v_kcbz, @v_jzl, @v_txm, @v_tpbh, @v_cfwzxx
, @rkzbsj
IF @@FETCH_STATUS <> 0 BREAK;
IF @kwbh IS NULL OR LEN(@kwbh) = 0 -- 2016-5-13 <EFBFBD>X<EFBFBD>Q<EFBFBD>^MO<EFBFBD>S/f&T:Nzz<P$R<EFBFBD>e
BEGIN
RAISERROR('*gc<>[ gHe<48>v<EFBFBD>^MO<4D>S', 16, 1);
BREAK;
END;
-- 2016-5-13 386y<EFBFBD><EFBFBD>vyr'`0
SELECT @<EFBFBD>e<EFBFBD> = CASE WHEN @zlzt IN('9','A') THEN S.gwcs8 ELSE S.gwcs2 END
FROM kwjbxx K, sc_gwxx S
WHERE CAST(K.hdh AS VARCHAR) + '#:g'=S.gwid
AND kwbh = @kwbh;
-- <EFBFBD>h<EFBFBD>g/f&T g<EFBFBD>v T<EFBFBD>v<EFBFBD>^X[<EFBFBD><EFBFBD>U_
SET @kc_jlh = NULL
SET @v_kcsl = NULL
SELECT @kc_jlh = jlh, @v_kcsl = sl
FROM cpkcxx
WHERE kwbh = @kwbh
AND zlzt = @zlzt
AND cpbh = @cpbh
--AND ISNULL(txm, ' ') = ISNULL(@txm, ' ')
AND ISNULL(lpxx, ' ') = ISNULL(@lpxx, ' ')
AND ISNULL(tpbh, ' ') = ISNULL(@v_tpbh, ' ');
IF @kc_jlh IS NULL OR @v_kcsl = 0
BEGIN
IF @v_kcsl = 0
UPDATE cpkcxx SET sl = sl + @rksl, jhj=@jhj, rksj = CASE WHEN sl<=0 THEN @rksj ELSE rksj END
, MRyb<EFBFBD>^X[pe=sl, TybeQ<EFBFBD>^<EFBFBD>e<EFBFBD><EFBFBD>=@rksj
, cpmc=@cpmc, cpgg1=@cpgg1, cpgg2=@cpgg2, cpgg3 = @cpgg3, jldw = @jldw, wzlb = @wzlb
, gydw = ISNULL(@v_gydw, gydw)
, bz = ISNULL(@v_kcbz, bz), tpbh = @v_tpbh
, cfwzxx = @v_cfwzxx
, <EFBFBD><EFBFBD><EFBFBD>~<EFBFBD>Q<EFBFBD>^<EFBFBD>e<EFBFBD><EFBFBD> = DATEADD(MI, @<EFBFBD>e<EFBFBD>, @rksj)
, rkzbsj = @rkzbsj
WHERE jlh = @kc_jlh;
--<EFBFBD>ceQ<EFBFBD>^MO<EFBFBD>^X[
ELSE
BEGIN
INSERT INTO cpkcxx (ckmc, kwbh, cpbh, lpxx, sl, zlzt, rksj, jldw, cpmc, cpgg1, cpgg2, cpgg3, jhj, wzlb, gydw, bz, jzl, txm
, MRyb<EFBFBD>^X[pe, TybeQ<EFBFBD>^<EFBFBD>e<EFBFBD><EFBFBD>, tpbh, cfwzxx, <EFBFBD><EFBFBD><EFBFBD>~<EFBFBD>Q<EFBFBD>^<EFBFBD>e<EFBFBD><EFBFBD>, rkzbsj)
VALUES(@ckmc, @kwbh, @cpbh, @lpxx, @rksl, @zlzt, @rksj, @jldw, @cpmc, @cpgg1, @cpgg2, @cpgg3, @jhj, @wzlb, @v_gydw, @v_kcbz, @v_jzl, @v_txm
, 0, @rksj, @v_tpbh, @v_cfwzxx, DATEADD(MI, @<EFBFBD>e<EFBFBD>, @rksj), @rkzbsj);
IF (@@ERROR <> 0)
BREAK;
END
END
ELSE
BEGIN
UPDATE cpkcxx SET sl=sl + @rksl, jhj=@jhj, MRyb<EFBFBD>^X[pe=sl, TybeQ<EFBFBD>^<EFBFBD>e<EFBFBD><EFBFBD>=@rksj
--, cpmc=@cpmc, cpgg1=@cpgg1, cpgg2=@cpgg2, cpgg3 = @cpgg3, jldw = @jldw, wzlb = @wzlb
, gydw = ISNULL(@v_gydw, gydw)
, bz = ISNULL(@v_kcbz, bz)
WHERE jlh = @kc_jlh;
END
--<EFBFBD>O9e<EFBFBD>^MO<EFBFBD>Oo`
UPDATE kwjbxx SET sjwzlx = @zlzt, sfwzzl='M'
WHERE ckmc = @ckmc
AND kwbh = @kwbh
AND (sjwzlx <> @zlzt OR sjwzlx IS NULL OR sfwzzl IS NULL OR sfwzzl <> 'M');
--<EFBFBD>O9e<EFBFBD>^MO
N<EFBFBD>v;`peϑ
UPDATE kwjbxx SET zsl=ISNULL(sumsl, 0)
FROM (SELECT ckmc ck, kwbh kw FROM kwjbxx WHERE ckmc=@ckmc AND kwbh = @kwbh) A
LEFT JOIN (SELECT ckmc ck2, kwbh kw2, SUM(sl) AS sumsl
FROM cpkcxx
WHERE ckmc=@ckmc AND kwbh = @kwbh GROUP BY ckmc, kwbh )T
ON A.ck=T.ck2 AND A.kw=T.kw2
WHERE ckmc = A.ck AND kwbh = A.kw AND zsl<>ISNULL(sumsl, 0)
END
CLOSE c_kc
DEALLOCATE c_kc*/
IF EXISTS(SELECT 2 FROM sys_config WHERE id_pzx='delete_0_inventory' AND dqz='1')
DELETE cpkcxx WHERE sl=0 AND kwbh IN(SELECT DISTINCT kwbh FROM @inserted);
END
go
ALTER TRIGGER [dbo].[t_wlRkzl_IU] ON [dbo].[cprkzl] --WITH ENCRYPTION
FOR INSERT, UPDATE
AS
/**
* ubc<EFBFBD>Nb<EFBFBD>O9eeQ<EFBFBD>^c<EFBFBD>N<EFBFBD>veQ<EFBFBD>^<EFBFBD>^MOT <EFBFBD><EFBFBD><EFBFBD>[c<EFBFBD>N<EFBFBD>d\O<EFBFBD>v<EFBFBD>^MO
* Created by <EFBFBD><EFBFBD>zfXn ON 06-06-07
* Modified by <EFBFBD><EFBFBD>zfXn ON 2007-03-09 <EFBFBD>(u<EFBFBD>^MO
N<EFBFBD>Ǐ z<EFBFBD>e <EFBFBD><EFBFBD>m<EFBFBD>R<EFBFBD>{|<EFBFBD>W<EFBFBD>Spe<EFBFBD>v<P
* Modified by jzx on 2009-5-4 <EFBFBD>~cprkzl.qcztW[<EFBFBD>kK<EFBFBD><P0<EFBFBD>[<EFBFBD>^<EFBFBD>~W[eQ<EFBFBD>^US <EFBFBD>;`/fK<EFBFBD><EFBFBD>N0 <EFBFBD>&TR9hnc;`<EFBFBD>S<EFBFBD>^X[peϑ/f&T:N0<EFBFBD><EFBFBD><EFBFBD>[/f&T0؏/fzz<P0
* Modified by jzx on 2014-11-3 <EFBFBD>[<EFBFBD>O9eTeQ<EFBFBD>^<EFBFBD>^MO:NNull<EFBFBD>vYt0
* Modified by jzx on 2015-7-8 :N<EFBFBD>N<EFBFBD>wS<EFBFBD>Xb<EFBFBD>v(W<EFBFBD>Ǐ z-N`S(u<EFBFBD>^MO<EFBFBD>v<EFBFBD>^X[<EFBFBD>`<EFBFBD>Q <EFBFBD><EFBFBD>cMR(W<EFBFBD>[<EFBFBD>c<EFBFBD>^MO<EFBFBD>v<EFBFBD>eP1\<EFBFBD>ceQ<EFBFBD><EFBFBD><EFBFBD>^X[<EFBFBD><EFBFBD>U_L<EFBFBD>
* Modified by jzx on 2015-12-13 /ec<EFBFBD>ceQ<EFBFBD>v<EFBFBD>ec<EFBFBD>N<EFBFBD><EFBFBD>U_<EFBFBD>v<EFBFBD>r`:N<EFBFBD>[b<EFBFBD>r`<EFBFBD>e <EFBFBD><EFBFBD>e<EFBFBD><EFBFBD><EFBFBD>[<EFBFBD>^MO0ُ<EFBFBD>y<EFBFBD>`<EFBFBD>Q(u<EFBFBD>NYt N<EFBFBD><EFBFBD>&<EFBFBD><EFBFBD>veQ<EFBFBD>^<EFBFBD><EFBFBD>U_<EFBFBD>e<EFBFBD>_
* Modified by jzx on 2016-3-15 <EFBFBD>V386y<EFBFBD><EFBFBD>v5u`lXb<EFBFBD>vagx<EFBFBD><EFBFBD>^<EFBFBD><EFBFBD>Ǐ7*NW[&{ <EFBFBD><EFBFBD>O9e<EFBFBD>Nx
* Modified by jzx on 2016-3-17 debug:<EFBFBD>[<EFBFBD>N*gsQT<EFBFBD>eQ<EFBFBD>^US<EFBFBD>veQ<EFBFBD>^c<EFBFBD>N <EFBFBD><EFBFBD>ceQ<EFBFBD>v<EFBFBD>^X[<EFBFBD>v(<EFBFBD>ϑ<EFBFBD>r`؞<EFBFBD><EFBFBD><EFBFBD>Ncprkzlh<EFBFBD><EFBFBD>vzlztW[<EFBFBD>k-N<EFBFBD><EFBFBD><EFBFBD>S <EFBFBD> <EFBFBD> N/f:_6R:NT<h2;
* T<EFBFBD>e\cfwzxxW[<EFBFBD>k_N<EFBFBD>ceQ<EFBFBD>^X[<EFBFBD><EFBFBD>U_h<EFBFBD>
* Modified by jzx on 2016-7-17 <EFBFBD>f9ejccsW[<EFBFBD>k<P<EFBFBD>v[{ <EFBFBD>ag<EFBFBD>N<EFBFBD>f9e<EFBFBD>N
* Modified by jzx on 2016-7-31 <EFBFBD>N<EFBFBD>N<EFBFBD><EFBFBD><EFBFBD>[xnkw=0<EFBFBD>^MOMb<EFBFBD><EFBFBD>U_<EFBFBD>^X[penc<EFBFBD>8^)nX[>e<EFBFBD>SvQT<EFBFBD>~<EFBFBD>]<EFBFBD>^ N<EFBFBD><EFBFBD><EFBFBD>9e<EFBFBD>S<EFBFBD>hKm!kpeW[<EFBFBD>k<EFBFBD>v<P
* Modified by jzx on 2016-8-7 :N<EFBFBD>N<EFBFBD>cؚHe<EFBFBD>s <EFBFBD> N<EFBFBD>Q O5u`l<EFBFBD>S0R<EFBFBD>^X[h<EFBFBD> <EFBFBD><EFBFBD>S<EFBFBD><EFBFBD>(W5u`l<EFBFBD>Oo`h<EFBFBD> w5u`l0
* Modified by jzx on 2017-10-20 <EFBFBD>f9eXb<EFBFBD>v<EFBFBD>S<EFBFBD><EFBFBD>vpenc{|<EFBFBD>W:Nvarchar(50) <EFBFBD> <EFBFBD> N/fvarchar(12)
* Modified by jzx on 2017-11-7 <EFBFBD>ceQ<EFBFBD>v<EFBFBD><EFBFBD><EFBFBD>^X[<EFBFBD><EFBFBD>U_ <EFBFBD>lpxxW[<EFBFBD>k(W386y<EFBFBD><EFBFBD>v-N<EFBFBD><EFBFBD>c<EFBFBD>N<EFBFBD>386 lpxxW[<EFBFBD>kX[<EFBFBD>P<EFBFBD>v5u`lagx <EFBFBD><EFBFBD>[E<EFBFBD>/}<EFBFBD>R<EFBFBD>^X[<EFBFBD>e <EFBFBD> N<EFBFBD><EFBFBD>U_agx <EFBFBD> <EFBFBD>
<EFBFBD>[<EFBFBD><EFBFBD><EFBFBD>[8hc<EFBFBD>N<EFBFBD>X<EFBFBD>R<EFBFBD>^X[<EFBFBD>e <EFBFBD><EFBFBD><EFBFBD>Y<EFBFBD>e<EFBFBD>X<EFBFBD>N<EFBFBD><EFBFBD>U_L<EFBFBD> <EFBFBD>b` Y<EFBFBD>Veg0
*/
BEGIN
DECLARE @ckmc type_ck --<EFBFBD>N<EFBFBD>^<EFBFBD>Nx
, @kwbh type_kwbh --<EFBFBD>^MO<EFBFBD>S
, @tpbh varchar(50) --Xb<EFBFBD>v<EFBFBD>S
, @ckmc_old type_ck
, @kwbh_old type_kwbh
, @tpbh_old varchar(50)
, @zlbh INT
, @kcs type_sl
, @v_pzbh varchar(30);
SET NOCOUNT ON;
IF UPDATE(kwbh) OR UPDATE(tpbh) OR UPDATE(ckmc)-- OR UPDATE(tpbh)
BEGIN
SELECT @ckmc_old = ckmc, @kwbh_old = kwbh, @tpbh_old = tpbh
FROM deleted;
SELECT @ckmc = ckmc, @kwbh = kwbh, @tpbh = tpbh, @zlbh = zlbh, @kcs = ykcs, @v_pzbh = pzbh
FROM inserted
WHERE zt!=2;-- 2015-12-13 jzx <EFBFBD>Y<EFBFBD>g<EFBFBD>ceQ<EFBFBD>vc<EFBFBD>N1\/f<EFBFBD>[b<EFBFBD>r` <EFBFBD>R N(uۏL<EFBFBD><EFBFBD><EFBFBD>[Yt
IF @kwbh_old IS NOT NULL AND (ISNULL(@kwbh,' ') <> @kwbh_old)
BEGIN
-- <EFBFBD><EFBFBD>[<EFBFBD>e<EFBFBD>^MO
IF @kwbh IS NOT NULL
BEGIN
EXEC p_lockCell @ckmc, @kwbh, 'M', @zlbh, @kcs, 1
IF @@ERROR > 0
RETURN;
END;
--ʑ>e<EFBFBD>O9eMR<EFBFBD>v<EFBFBD>^MO
EXEC p_unlockCell @ckmc_old, @kwbh_old, @zlbh
-- <EFBFBD><EFBFBD>U_W[<EFBFBD>k /f&T<EFBFBD>S<EFBFBD>Q <EFBFBD>v<P
UPDATE cprkzl SET qczt = CASE WHEN ykcs > 0 THEN 0 ELSE NULL END
WHERE zlbh = @zlbh;
END
ELSE IF @kwbh_old IS NULL AND @kwbh IS NOT NULL --<EFBFBD>ceQ<EFBFBD><EFBFBD>U_<EFBFBD>e <EFBFBD>MbO<EFBFBD>Q<EFBFBD>sIS NULL<EFBFBD>v<EFBFBD>`<EFBFBD>Q
BEGIN
EXEC p_lockCell @ckmc, @kwbh, 'M', @zlbh, @kcs, 1
IF @@ERROR > 0
RETURN;
-- <EFBFBD><EFBFBD>U_W[<EFBFBD>k /f&T<EFBFBD>S<EFBFBD>Q <EFBFBD>v<P
UPDATE cprkzl SET qczt = 0
WHERE zlbh = @zlbh AND ykcs > 0;
END
IF (ISNULL(@kwbh_old, ' ') <> ISNULL(@kwbh, ' ')) OR (ISNULL(@tpbh_old, ' ') <> ISNULL(@tpbh, ' '))
BEGIN
IF @kwbh_old IS NOT NULL
DELETE cpkcxx
FROM deleted z LEFT JOIN cprkd d ON z.pzbh = d.ysdh
WHERE cpkcxx.sl = 0
AND cpkcxx.kwbh = z.kwbh
AND cpkcxx.zlzt = ISNULL(d.zl, ISNULL(z.zlzt,'2'))
AND cpkcxx.cpbh = z.cpbh
AND ISNULL(cpkcxx.lpxx, ' ') = ISNULL(z.lpxx, ' ')
AND ISNULL(cpkcxx.tpbh, ' ') = ISNULL(z.tpbh, ' ')
AND cpkcxx.bz = ISNULL('eQ<65>^US' + z.pzbh, 'eQ<65>^c<>N' + CAST(z.zlbh AS VARCHAR(12)));
IF @kwbh IS NOT NULL
BEGIN
INSERT INTO cpkcxx (ckmc, kwbh, tpbh, zlzt, cpbh, lpxx, txm, sl, rksj, jldw, cpmc, cpgg1, cpgg2, cpgg3, jhj, wzlb, jzl, cfwzxx, bz)
SELECT z.ckmc, z.kwbh, z.tpbh, ISNULL(d.zl, ISNULL(z.zlzt,'2')), z.cpbh,z.lpxx, MAX(z.txm), 0, GETDATE()
, MAX(m.jldw), MAX(m.cpmc), MAX(m.cpgg1), MAX(m.cpgg2), MAX(m.cpgg3), MAX(m.jhj), MAX(m.wzlb)
, MAX(ISNULL(z.bzl, m.jzl)), MAX(z.cfwzxx)
, MAX(ISNULL('eQ<65>^US' + z.pzbh, 'eQ<65>^c<>N' + CAST(z.zlbh AS VARCHAR(12))))
FROM inserted z LEFT JOIN cprkd d ON z.pzbh=d.ysdh LEFT JOIN cprkdmx m ON z.mxbh = m.mxbh
JOIN kwjbxx k on z.kwbh = k.kwbh AND xnkw=0 -- 2016-7-31
WHERE NOT EXISTS(SELECT 2 FROM cpkcxx r
WHERE r.kwbh = z.kwbh
AND r.zlzt = ISNULL(d.zl, ISNULL(z.zlzt,'2'))
AND r.cpbh = z.cpbh
AND ISNULL(r.lpxx, ' ') = ISNULL(z.lpxx, ' ')
AND ISNULL(r.tpbh, ' ') = ISNULL(z.tpbh, ' ')
)
GROUP BY z.ckmc,z.kwbh,z.tpbh,d.zl,z.cpbh,z.lpxx,z.zlzt;
END;
END;
END
END
go