--声明:本存储过程并非真正的交易成交程序
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS ON
GO
ALTER PROCEDURE shcj @clbz CHAR(1) = '0' AS
DECLARE @offset INT
--SELECT @offset = 101030000
IF @clbz NOT IN ('0' , '1' , '2' , '3' , '5' , '9')
BEGIN
RETURN
END
--@offset 规则,第1-2位OIW编号,之后补6个0
--bcye规则,第1-2位OIW编号,第3-4位SET编号(991用7表示,20用8表示),之后补6个0
DECLARE @set1 INT , @set2 INT , @set3 INT , @set4 INT
DECLARE @set5 INT , @set6 INT , @set7 INT , @set8 INT
SELECT @offset = 03000000
SELECT @set1 = 0300000000 , @set2 = 0300000000 , @set3 = 0300000000
SELECT @set4 = 0300000000 , @set5 = 0300000000 , @set6 = 0300000000
SELECT @set7 = 0300000000 , @set8 = 0300000000
DECLARE @reff CHAR (10) , @owflag CHAR(3) , @branchid CHAR(5)
DECLARE @gddm CHAR(10) , @gdxm CHAR (10) , @bcrq CHAR(8) ,
@cjbh INT , @gsdm CHAR(5) , @cjsl CHAR(10) ,
@bcye CHAR(10) , @zqdm CHAR(6) , @sbsj CHAR(6) ,
@cjsj CHAR(6) , @cjjg CHAR(8) , @cjje CHAR(12) ,
@sqbh CHAR(10) , @bs CHAR(1) , @mjbh CHAR(5)
DECLARE @rec_num INT , @date CHAR(8) , @time CHAR (8) ,
@status CHAR(1) , @qty2 CHAR(8) , @remark CHAR(30) ,
@status1 CHAR(1) , @teordernum CHAR(8) , @ordrec CHAR(8) ,
@checkord BINARY(16)
DECLARE @cjsl_cj INT
DECLARE @cjsl_gz CHAR(10)
DECLARE @stock_gz CHAR(6) , @bs_gz CHAR(1)
DECLARE @count INT
DECLARE @zqdm_etf CHAR(6) , @cjsl_etf CHAR(6) , @bs_etf CHAR(1)
DECLARE @sec_code CHAR(6) , @stock_vol INT
DECLARE @cjsl1 CHAR(10) , @cjsl2 CHAR(10) , @cjsl3 CHAR(10)
DECLARE @cjjg1 MONEY
DECLARE @bcye1 INT , @bcye2 INT , @bcye3 INT , @bcye4 INT
DECLARE @bcye5 INT , @bcye6 INT , @bcye7 INT , @bcye8 INT
SELECT @cjbh = ISNULL(MAX(cjbh) , @offset) FROM CJHB
SELECT @bcye1 = ISNULL(MAX(BCYE) , @set1) FROM CJHB WHERE GDXM = '1'
SELECT @bcye2 = ISNULL(MAX(BCYE) , @set2) FROM CJHB WHERE GDXM = '2'
SELECT @bcye3 = ISNULL(MAX(BCYE) , @set3) FROM CJHB WHERE GDXM = '3'
SELECT @bcye4 = ISNULL(MAX(BCYE) , @set4) FROM CJHB WHERE GDXM = '4'
SELECT @bcye5 = ISNULL(MAX(BCYE) , @set5) FROM CJHB WHERE GDXM = '5'
SELECT @bcye6 = ISNULL(MAX(BCYE) , @set6) FROM CJHB WHERE GDXM = '6'
SELECT @bcye7 = ISNULL(MAX(BCYE) , @set7) FROM CJHB WHERE GDXM = '991'
SELECT @bcye8 = ISNULL(MAX(BCYE) , @set8) FROM CJHB WHERE GDXM = '20'
SELECT @reff = ISNULL(MIN(reff) , '') FROM ORDWTH WHERE status = 'P'
SELECT @reff = LEFT(@reff , 9) + CONVERT(CHAR, (CONVERT(INT , RIGHT(@reff , 1)) - 1))
SELECT @date = CONVERT(CHAR(8), GETDATE() , 112)
WHILE 0=0
BEGIN
--未成交部分全部成交
IF @clbz = '3'
BEGIN
SELECT @reff = ISNULL(MIN(reff) , '') FROM ORDWTH WHERE status='P' and reff > @reff
IF @reff = ''
BEGIN
BREAK
END
--有撤单不处理
IF EXISTS(SELECT * FROM ORDWTH WHERE reff = @reff AND owflag = 'WTH')
BEGIN
CONTINUE
END
SELECT @gddm = acc ,
@gdxm = '' ,
@bcrq = CONVERT(CHAR(8) , GETDATE() , 112) ,
@gsdm = firmid ,
@cjsl = ' ' + STR(CONVERT(INT , qty) , 8) ,
-- @cjsl = qty ,
@bcye = STR('0' , 10),
@zqdm = stock ,
@sbsj = REPLACE(time , ':' , '') ,
@cjsj = REPLACE(CONVERT(CHAR(8) , GETDATE() , 108) , ':' , '') ,
-- @cjjg = LTRIM(price) ,
@cjjg = STR(CONVERT(MONEY , price) , 8 , 3) ,
@sqbh = reff ,
@bs = bs ,
@mjbh = '00000' ,
@time = time ,
@checkord = checkord ,
@owflag = owflag ,
@ordrec = ordrec ,
@branchid = branchid
FROM ORDWTH WHERE reff = @reff
SELECT @cjsl_cj = ISNULL(SUM(CONVERT(INT , cjsl)) , 0) FROM CJHB WHERE sqbh = @reff
SELECT @cjsl = @cjsl - @cjsl_cj
--如果已全部成交则不处理
IF @cjsl = 0
BEGIN
CONTINUE
END
SELECT @cjbh = @cjbh + 1
--根据set生成bcye
IF @gdxm = '1'
BEGIN
SELECT @bcye1 = @bcye1 + 1
SELECT @bcye = CONVERT(CHAR(10) , @bcye1)
END
IF @gdxm = '2'
BEGIN
SELECT @bcye2 = @bcye2 + 1
SELECT @bcye = CONVERT(CHAR(10) , @bcye2)
END
IF @gdxm = '3'
BEGIN
SELECT @bcye3 = @bcye3 + 1
SELECT @bcye = CONVERT(CHAR(10) , @bcye3)
END
IF @gdxm = '4'
BEGIN
SELECT @bcye4 = @bcye4 + 1
SELECT @bcye = CONVERT(CHAR(10) , @bcye4)
END
IF @gdxm = '5'
BEGIN
SELECT @bcye5 = @bcye5 + 1
SELECT @bcye = CONVERT(CHAR(10) , @bcye5)
END
IF @gdxm = '6'
BEGIN
SELECT @bcye6 = @bcye6 + 1
SELECT @bcye = CONVERT(CHAR(10) , @bcye6)
END
IF @gdxm = '991'
BEGIN
SELECT @bcye7 = @bcye7 + 1
SELECT @bcye = CONVERT(CHAR(10) , @bcye7)
END
IF @gdxm = '20'
BEGIN
SELECT @bcye8 = @bcye8 + 1
SELECT @bcye = CONVERT(CHAR(10) , @bcye8)
END
SELECT @bcye = CASE
WHEN LEN(@bcye) = 9 THEN '0' + @bcye
WHEN LEN(@bcye) = 8 THEN '00' + @bcye
END
SELECT @cjje = CASE
WHEN LEFT(@zqdm , 2) IN ('00' , '01' , '10' , '11' , '12') THEN STR(ROUND(CONVERT(INT , @cjsl) * CONVERT(MONEY , @cjjg) * 10 , 12 , 2) , 12 , 2) --调整国债/转债/企债的成交金额
WHEN LEFT(@zqdm , 2) IN ('20') THEN STR(ROUND(@cjsl * 1000 , 12 , 2) , 12 , 2) ----调整回购的成交金额
ELSE STR(ROUND(CONVERT(INT , @cjsl) * CONVERT(MONEY , @cjjg) , 12 , 2) , 12 , 2)
END
INSERT INTO CJHB VALUES (@gddm , @gdxm , @bcrq , @cjbh , @gsdm , @cjsl , @bcye , @zqdm , @sbsj , @cjsj , @cjjg , @cjje , @sqbh , @bs , @mjbh)
CONTINUE
END
SELECT @reff = ISNULL(MIN(reff) , '') FROM ORDWTH WHERE status='R'
SELECT @rec_num = ISNULL(MIN(rec_num) , '') FROM ORDWTH WHERE @reff = reff AND status='R'
IF @reff = ''
BEGIN
BREAK
END
SELECT @gddm = acc ,
@gdxm = '' ,
@bcrq = CONVERT(CHAR(8) , GETDATE() , 112) ,
@gsdm = firmid ,
@cjsl = STR(CONVERT(INT , qty) , 10) ,
-- @cjsl = qty,
@bcye = STR('0' , 10),
@zqdm = stock ,
@sbsj = REPLACE(time , ':' , '') ,
@cjsj = REPLACE(CONVERT(CHAR(8) , GETDATE() , 108) , ':' , '') ,
-- @cjjg = LTRIM(price) ,
@cjjg = STR(CONVERT(MONEY , price) , 8 , 3) ,
@sqbh = reff ,
@bs = bs ,
@mjbh = '00000' ,
@time = time ,
@checkord = checkord ,
@owflag = owflag ,
@ordrec = ordrec
FROM ORDWTH WHERE reff = @reff AND rec_num = @rec_num
SELECT @qty2 = '' , @remark = '' , @status1 = 'R' , @teordernum = ''
--select left(@zqdm,1)
--处理SET编号
SELECT @gdxm = CASE
WHEN LEFT(@zqdm , 1) = 9 THEN '20'
WHEN @rec_num % 7 = 0 THEN '991'
WHEN @rec_num % 7 = 1 THEN '1'
WHEN @rec_num % 7 = 2 THEN '2'
WHEN @rec_num % 7 = 3 THEN '3'
WHEN @rec_num % 7 = 4 THEN '4'
WHEN @rec_num % 7 = 5 THEN '5'
WHEN @rec_num % 7 = 6 THEN '6'
END
--ETF申购赎回只能单笔全部成交
IF (@zqdm IN ('510051' , '510181' , '510881')) AND (@clbz IN ('1' , '2'))
BEGIN
SELECT @clbz = '0'
END
--优先处理撤单
IF @owflag IN ('ORD' , 'NPT')
BEGIN
IF EXISTS(SELECT * FROM ORDWTH WHERE status='R' AND reff = @reff AND owflag = 'WTH')
BEGIN
SELECT @status = 'O' , @remark = ''
SELECT @cjsl = STR(CONVERT(INT , @cjsl) , 8) --调整ORDWTH2中的cjsl长度为8位
INSERT INTO ORDWTH2 VALUES (@rec_num , @date , @time , @reff , @gddm , @zqdm , @bs , @cjjg , @cjsl , @status , @qty2 , @remark , @status1 , @teORdernum , @owflag , @ordrec , @gsdm , @checkord , @branchid)
UPDATE ORDWTH SET status = 'P' WHERE reff = @reff AND @rec_num = rec_num
CONTINUE
END
END
--无效单委托无法撤单
IF EXISTS(SELECT * FROM ORDWTH2 WHERE reff = @reff AND owflag = 'ORD' AND status = 'F')
BEGIN
SELECT @status = 'F' , @remark = '224'
SELECT @cjsl = STR(CONVERT(INT , @cjsl) , 8) --调整ORDWTH2中的cjsl长度为8位
INSERT INTO ORDWTH2 VALUES (@rec_num , @date , @time , @reff , @gddm , @zqdm , @bs , @cjjg , @cjsl , @status , @qty2 , @remark , @status1 , @teORdernum , @owflag , @ordrec , @gsdm , @checkord , @branchid)
UPDATE ORDWTH SET status = 'P' WHERE reff = @reff and rec_num = @rec_num
CONTINUE
END
--无效单
IF (LEFT(@zqdm , 3) IN ('521' , '523' , '524' , '733' , '738' , '789' , '783' , '780' , '582') AND @bs= 'S' AND @owflag = 'ORD') --场内开放基金认购/分红/转换/投票/新股申购/行权的卖出
OR (LEFT(@zqdm , 3) IN ('522' , '181' , '190' , '191' , '760' , '762' , '764') AND @bs= 'B' AND @owflag = 'ORD') --场内开放基金转托管/要约收购/转股/配股/的买入
OR (LEFT(@zqdm , 3) IN ('121' , '203' , '740' , '741' , '790' , '791' , '000' , '794' , '793')) --专项资产/申购款/配号/指数/买断式回购
OR (@zqdm IN ('888880' , '799990' , '799988' , '510014' , '510054' , '510064' , '510184' , '510884' , '799997')) --ETF现金认购款/新标准券/市值股数/密码服务/回购登记
OR (@zqdm IN ('510053' , '510183' , '510883') AND @bs = 'S') --ETF现金认购卖出
OR (@zqdm IN ('510011' , '510051' , '510061' , '510181' , '510881' , '799999' , '799998' , '799996') AND @owflag = 'WTH') --ETF申购赎回/指定交易/撤消指定交易/回购登记/撤消回购登记的撤单
OR (@zqdm IN ('799999' , '799998' , '799996') AND @bs = 'S') --指定交易/撤消指定交易/撤消回购登记的卖出
OR (LEFT(@zqdm , 2) = '09' AND @owflag = 'WTH') --出入库代码撤单
OR ((LEFT(@zqdm , 3) IN ('738' , '788')) AND @owflag = 'WTH') --投票撤单
OR (LEFT(@zqdm , 2) NOT IN ('60' , '50' , '58' , '90') AND @zqdm NOT IN ('510010' , '510050' , '510060' , '510180' , '510880') AND @owflag in ('MPT' , 'NPT')) --不能进行市价委托
OR (@clbz = '9') --强制设为无效单
BEGIN
SELECT @status = 'F' , @remark = '109'
SELECT @cjsl = STR(CONVERT(INT , @cjsl) , 8) --调整ORDWTH2中的cjsl长度为8位
INSERT INTO ORDWTH2 VALUES (@rec_num , @date , @time , @reff , @gddm , @zqdm , @bs , @cjjg , @cjsl , @status , @qty2 , @remark , @status1 , @teORdernum , @owflag , @ordrec , @gsdm , @checkord , @branchid)
UPDATE ORDWTH SET status = 'P' WHERE reff = @reff and rec_num = @rec_num
CONTINUE
END
--有委托确认,没有回报
IF (LEFT(@zqdm , 3) IN ('519' , '521' , '522' , '523' , '524' , '733' , '738' , '788' , '780' , '730' , '731' , '781' , '783' , '706' , '181' , '190' , '191' , '582') AND @owflag <> 'WTH') --场内开放基金/投票/新股申购/要约收购/转股/行权
OR (@zqdm IN ('510013' , '510053' , '510063' , '510183' , '510883')) --ETF现金认购
OR (@clbz = '5' AND @owflag <> 'MPT') --除M市价外强制只处理委托状态,不再进行成交
BEGIN
SELECT @status = 'O' , @remark = ''
SELECT @cjsl = STR(CONVERT(INT , @cjsl) , 8) --调整ORDWTH2中的cjsl长度为8位
INSERT INTO ORDWTH2 VALUES (@rec_num , @date , @time , @reff , @gddm , @zqdm , @bs , @cjjg , @cjsl , @status , @qty2 , @remark , @status1 , @teORdernum , @owflag , @ordrec , @gsdm , @checkord , @branchid)
UPDATE ORDWTH SET status = 'P' WHERE reff = @reff and rec_num = @rec_num
CONTINUE
END
--M市价全部撤单
IF (@clbz = '5' AND @owflag = 'MPT')
BEGIN
SELECT @cjsl = STR(CONVERT(INT , @cjsl) , 8) --调整ORDWTH2中的cjsl长度为8位
SELECT @status = 'W' , @qty2 = @cjsl , @remark = ''
INSERT INTO ORDWTH2 VALUES (@rec_num , @date , @time , @reff , @gddm , @zqdm , @bs , @cjjg , @cjsl , @status , @qty2 , @remark , @status1 , @teordernum , @owflag , @ordrec , @gsdm , @checkord , @branchid)
UPDATE ORDWTH SET STATUS = 'P' WHERE REFF = @reff and REC_NUM = @rec_num
CONTINUE
END
--出入库抵押
IF LEFT(@zqdm , 2) = '09'
BEGIN
SELECT @cjjg = '0.000' , @cjje = '0.00'
--出入库代码成交
SELECT @cjbh = @cjbh + 1
--根据set生成bcye
IF @gdxm = '1'
BEGIN
SELECT @bcye1 = @bcye1 + 1
SELECT @bcye = CONVERT(CHAR(10) , @bcye1)
END
IF @gdxm = '2'
BEGIN
SELECT @bcye2 = @bcye2 + 1
SELECT @bcye = CONVERT(CHAR(10) , @bcye2)
END
IF @gdxm = '3'
BEGIN
SELECT @bcye3 = @bcye3 + 1
SELECT @bcye = CONVERT(CHAR(10) , @bcye3)
END
IF @gdxm = '4'
BEGIN
SELECT @bcye4 = @bcye4 + 1
SELECT @bcye = CONVERT(CHAR(10) , @bcye4)
END
IF @gdxm = '5'
BEGIN
SELECT @bcye5 = @bcye5 + 1
SELECT @bcye = CONVERT(CHAR(10) , @bcye5)
END
IF @gdxm = '6'
BEGIN
SELECT @bcye6 = @bcye6 + 1
SELECT @bcye = CONVERT(CHAR(10) , @bcye6)
END
IF @gdxm = '991'
BEGIN
SELECT @bcye7 = @bcye7 + 1
SELECT @bcye = CONVERT(CHAR(10) , @bcye7)
END
IF @gdxm = '20'
BEGIN
SELECT @bcye8 = @bcye8 + 1
SELECT @bcye = CONVERT(CHAR(10) , @bcye8)
END
SELECT @bcye = CASE
WHEN LEN(@bcye) = 9 THEN '0' + @bcye
WHEN LEN(@bcye) = 8 THEN '00' + @bcye
END
INSERT INTO CJHB VALUES (@gddm , @gdxm , @bcrq , @cjbh , @gsdm , @cjsl , @bcye , @zqdm , @sbsj , @cjsj , @cjjg , @cjje , @sqbh , @bs , @mjbh)
--现券代码成交
SELECT @bs_gz = CASE
WHEN @bs = 'S' THEN 'B'
WHEN @bs = 'B' THEN 'S'
END
SELECT @stock_gz = CASE
WHEN SUBSTRING(@zqdm , 3 , 1) = '9' THEN '00' + RIGHT(@zqdm , 4)
WHEN SUBSTRING(@zqdm , 3 , 1) = '0' THEN '01' + RIGHT(@zqdm , 4)
END
SELECT @cjbh = @cjbh + 1
--根据set生成bcye
IF @gdxm = '1'
BEGIN
SELECT @bcye1 = @bcye1 + 1
SELECT @bcye = CONVERT(CHAR(10) , @bcye1)
END
IF @gdxm = '2'
BEGIN
SELECT @bcye2 = @bcye2 + 1
SELECT @bcye = CONVERT(CHAR(10) , @bcye2)
END
IF @gdxm = '3'
BEGIN
SELECT @bcye3 = @bcye3 + 1
SELECT @bcye = CONVERT(CHAR(10) , @bcye3)
END
IF @gdxm = '4'
BEGIN
SELECT @bcye4 = @bcye4 + 1
SELECT @bcye = CONVERT(CHAR(10) , @bcye4)
END
IF @gdxm = '5'
BEGIN
SELECT @bcye5 = @bcye5 + 1
SELECT @bcye = CONVERT(CHAR(10) , @bcye5)
END
IF @gdxm = '6'
BEGIN
SELECT @bcye6 = @bcye6 + 1
SELECT @bcye = CONVERT(CHAR(10) , @bcye6)
END
IF @gdxm = '991'
BEGIN
SELECT @bcye7 = @bcye7 + 1
SELECT @bcye = CONVERT(CHAR(10) , @bcye7)
END
IF @gdxm = '20'
BEGIN
SELECT @bcye8 = @bcye8 + 1
SELECT @bcye = CONVERT(CHAR(10) , @bcye8)
END
SELECT @bcye = CASE
WHEN LEN(@bcye) = 9 THEN '0' + @bcye
WHEN LEN(@bcye) = 8 THEN '00' + @bcye
END
INSERT INTO CJHB VALUES (@gddm , @gdxm , @bcrq , @cjbh , @gsdm , @cjsl , @bcye , @stock_gz , @sbsj , @cjsj , @cjjg , @cjje , @sqbh , @bs_gz , @mjbh)
--标准券代码成交
--@clbz=1,标准券按1:0.93方式生成数量
--@clbz=2,标准券按1:1.08方式生成数量
--@clbz=0,标准券按1:1方式生成数量
SELECT @cjsl_gz = CASE
WHEN @clbz = '1' THEN STR(CONVERT(INT , CONVERT(INT , @cjsl) * 0.93) , 10)
WHEN @clbz = '2' THEN STR(CONVERT(INT , CONVERT(INT , @cjsl) * 1.08) , 10)
WHEN @clbz = '0' THEN @cjsl
END
SELECT @stock_gz = '888880' , @cjbh = @cjbh + 1
INSERT INTO CJHB VALUES (@gddm , @gdxm , @bcrq , @cjbh , @gsdm , @cjsl_gz , @bcye , @stock_gz , @sbsj , @cjsj , @cjjg , @cjje , @sqbh , @bs , @mjbh)
SELECT @status = 'O' , @remark = ''
SELECT @cjsl = STR(CONVERT(INT , @cjsl) , 8) --调整ORDWTH2中的cjsl长度为8位
INSERT INTO ORDWTH2 VALUES (@rec_num , @date , @time , @reff , @gddm , @zqdm , @bs , @cjjg , @cjsl , @status , @qty2 , @remark , @status1 , @teORdernum , @owflag , @ordrec , @gsdm , @checkord , @branchid)
UPDATE ORDWTH SET status = 'P' WHERE reff = @reff
CONTINUE
END
--ETF申购赎回
IF @zqdm IN ('510011' , '510051' , '510061`' , '510181' , '510881')
BEGIN
SELECT @count = CASE
WHEN @zqdm = '510011' THEN CONVERT(INT , @cjsl) / 1000000
WHEN @zqdm = '510051' THEN CONVERT(INT , @cjsl) / 1000000
WHEN @zqdm = '510061' THEN CONVERT(INT , @cjsl) / 1000000
WHEN @zqdm = '510181' THEN CONVERT(INT , @cjsl) / 300000
WHEN @zqdm = '510881' THEN CONVERT(INT , @cjsl) / 500000
END
--基金代码成交
SELECT @cjjg = STR(0.000 , 8, 3) , @cjje = STR(0.00 , 12 , 2) , @cjbh = @cjbh + 1
--根据set生成bcye
IF @gdxm = '1'
BEGIN
SELECT @bcye1 = @bcye1 + 1
SELECT @bcye = CONVERT(CHAR(10) , @bcye1)
END
IF @gdxm = '2'
BEGIN
SELECT @bcye2 = @bcye2 + 1
SELECT @bcye = CONVERT(CHAR(10) , @bcye2)
END
IF @gdxm = '3'
BEGIN
SELECT @bcye3 = @bcye3 + 1
SELECT @bcye = CONVERT(CHAR(10) , @bcye3)
END
IF @gdxm = '4'
BEGIN
SELECT @bcye4 = @bcye4 + 1
SELECT @bcye = CONVERT(CHAR(10) , @bcye4)
END
IF @gdxm = '5'
BEGIN
SELECT @bcye5 = @bcye5 + 1
SELECT @bcye = CONVERT(CHAR(10) , @bcye5)
END
IF @gdxm = '6'
BEGIN
SELECT @bcye6 = @bcye6 + 1
SELECT @bcye = CONVERT(CHAR(10) , @bcye6)
END
IF @gdxm = '991'
BEGIN
SELECT @bcye7 = @bcye7 + 1
SELECT @bcye = CONVERT(CHAR(10) , @bcye7)
END
IF @gdxm = '20'
BEGIN
SELECT @bcye8 = @bcye8 + 1
SELECT @bcye = CONVERT(CHAR(10) , @bcye8)
END
SELECT @bcye = CASE
WHEN LEN(@bcye) = 9 THEN '0' + @bcye
WHEN LEN(@bcye) = 8 THEN '00' + @bcye
END
SELECT @zqdm_etf = CASE
WHEN @zqdm = '510011' THEN '510010'
WHEN @zqdm = '510051' THEN '510050'
WHEN @zqdm = '510061' THEN '510060'
WHEN @zqdm = '510181' THEN '510180'
WHEN @zqdm = '510881' THEN '510880'
END
INSERT INTO CJHB VALUES (@gddm , @gdxm , @bcrq , @cjbh , @gsdm , @cjsl , @bcye , @zqdm_etf , @sbsj , @cjsj , @cjjg , @cjje , @sqbh , @bs , @mjbh)
--成份股成交
SELECT @bs_etf = CASE
WHEN @bs = 'S' THEN 'B'
WHEN @bs = 'B' THEN 'S'
END
DECLARE etf CURSOR FOR
SELECT sec_code , stock_vol FROM etf WHERE sgsh_tx_code = @zqdm AND cash_repl_flag <> 2
OPEN etf
FETCH NEXT FROM etf INTO @sec_code , @stock_vol
WHILE (@@FETCH_STATUS = 0)
BEGIN
SELECT @cjbh = @cjbh + 1
--根据set生成bcye
IF @gdxm = '1'
BEGIN
SELECT @bcye1 = @bcye1 + 1
SELECT @bcye = CONVERT(CHAR(10) , @bcye1)
END
IF @gdxm = '2'
BEGIN
SELECT @bcye2 = @bcye2 + 1
SELECT @bcye = CONVERT(CHAR(10) , @bcye2)
END
IF @gdxm = '3'
BEGIN
SELECT @bcye3 = @bcye3 + 1
SELECT @bcye = CONVERT(CHAR(10) , @bcye3)
END
IF @gdxm = '4'
BEGIN
SELECT @bcye4 = @bcye4 + 1
SELECT @bcye = CONVERT(CHAR(10) , @bcye4)
END
IF @gdxm = '5'
BEGIN
SELECT @bcye5 = @bcye5 + 1
SELECT @bcye = CONVERT(CHAR(10) , @bcye5)
END
IF @gdxm = '6'
BEGIN
SELECT @bcye6 = @bcye6 + 1
SELECT @bcye = CONVERT(CHAR(10) , @bcye6)
END
IF @gdxm = '991'
BEGIN
SELECT @bcye7 = @bcye7 + 1
SELECT @bcye = CONVERT(CHAR(10) , @bcye7)
END
IF @gdxm = '20'
BEGIN
SELECT @bcye8 = @bcye8 + 1
SELECT @bcye = CONVERT(CHAR(10) , @bcye8)
END
SELECT @bcye = CASE
WHEN LEN(@bcye) = 9 THEN '0' + @bcye
WHEN LEN(@bcye) = 8 THEN '00' + @bcye
END
-- SELECT @stock_vol = STR(CONVERT(INT , @stock_vol) , 10)
INSERT INTO CJHB VALUES (@gddm , @gdxm , @bcrq , @cjbh , @gsdm , @stock_vol , @bcye , @sec_code , @sbsj , @cjsj , @cjjg , @cjje , @sqbh , @bs_etf , @mjbh)
FETCH NEXT FROM etf INTO @sec_code , @stock_vol
END
CLOSE etf
DEALLOCATE etf
--现金替代成交
SELECT @cjsl_etf = '1' , @cjbh = @cjbh + 1
--根据set生成bcye
IF @gdxm = '1'
BEGIN
SELECT @bcye1 = @bcye1 + 1
SELECT @bcye = CONVERT(CHAR(10) , @bcye1)
END
IF @gdxm = '2'
BEGIN
SELECT @bcye2 = @bcye2 + 1
SELECT @bcye = CONVERT(CHAR(10) , @bcye2)
END
IF @gdxm = '3'
BEGIN
SELECT @bcye3 = @bcye3 + 1
SELECT @bcye = CONVERT(CHAR(10) , @bcye3)
END
IF @gdxm = '4'
BEGIN
SELECT @bcye4 = @bcye4 + 1
SELECT @bcye = CONVERT(CHAR(10) , @bcye4)
END
IF @gdxm = '5'
BEGIN
SELECT @bcye5 = @bcye5 + 1
SELECT @bcye = CONVERT(CHAR(10) , @bcye5)
END
IF @gdxm = '6'
BEGIN
SELECT @bcye6 = @bcye6 + 1
SELECT @bcye = CONVERT(CHAR(10) , @bcye6)
END
IF @gdxm = '991'
BEGIN
SELECT @bcye7 = @bcye7 + 1
SELECT @bcye = CONVERT(CHAR(10) , @bcye7)
END
IF @gdxm = '20'
BEGIN
SELECT @bcye8 = @bcye8 + 1
SELECT @bcye = CONVERT(CHAR(10) , @bcye8)
END
SELECT @bcye = CASE
WHEN LEN(@bcye) = 9 THEN '0' + @bcye
WHEN LEN(@bcye) = 8 THEN '00' + @bcye
END
SELECT @zqdm_etf = CASE
WHEN @zqdm = '510011' THEN '510010'
WHEN @zqdm = '510051' THEN '510052'
WHEN @zqdm = '510061' THEN '510060'
WHEN @zqdm = '510181' THEN '510182'
WHEN @zqdm = '510881' THEN '510882'
END
SELECT @cjjg = STR(SUM(CONVERT(MONEY , cash_repl_amt)) , 8 , 3) FROM etf WHERE sgsh_tx_code = @zqdm AND cash_repl_flag = 2
IF @cjjg IS NOT NULL
BEGIN
SELECT @cjje = STR(CONVERT(MONEY , @cjjg) , 12 , 2)
INSERT INTO CJHB VALUES (@gddm , @gdxm , @bcrq , @cjbh , @gsdm , @cjsl_etf , @bcye , @zqdm_etf , @sbsj , @cjsj , @cjjg , @cjje , @sqbh , @bs , @mjbh)
END
--申购赎回代码成交
SELECT @zqdm_etf = @zqdm , @cjjg = STR(0.000 , 8, 3) , @cjje = STR(0.00 , 12 , 2) , @cjbh = @cjbh + 1
--根据set生成bcye
IF @gdxm = '1'
BEGIN
SELECT @bcye1 = @bcye1 + 1
SELECT @bcye = CONVERT(CHAR(10) , @bcye1)
END
IF @gdxm = '2'
BEGIN
SELECT @bcye2 = @bcye2 + 1
SELECT @bcye = CONVERT(CHAR(10) , @bcye2)
END
IF @gdxm = '3'
BEGIN
SELECT @bcye3 = @bcye3 + 1
SELECT @bcye = CONVERT(CHAR(10) , @bcye3)
END
IF @gdxm = '4'
BEGIN
SELECT @bcye4 = @bcye4 + 1
SELECT @bcye = CONVERT(CHAR(10) , @bcye4)
END
IF @gdxm = '5'
BEGIN
SELECT @bcye5 = @bcye5 + 1
SELECT @bcye = CONVERT(CHAR(10) , @bcye5)
END
IF @gdxm = '6'
BEGIN
SELECT @bcye6 = @bcye6 + 1
SELECT @bcye = CONVERT(CHAR(10) , @bcye6)
END
IF @gdxm = '991'
BEGIN
SELECT @bcye7 = @bcye7 + 1
SELECT @bcye = CONVERT(CHAR(10) , @bcye7)
END
IF @gdxm = '20'
BEGIN
SELECT @bcye8 = @bcye8 + 1
SELECT @bcye = CONVERT(CHAR(10) , @bcye8)
END
SELECT @bcye = CASE
WHEN LEN(@bcye) = 9 THEN '0' + @bcye
WHEN LEN(@bcye) = 8 THEN '00' + @bcye
END
INSERT INTO CJHB VALUES (@gddm , @gdxm , @bcrq , @cjbh , @gsdm , @cjsl , @bcye , @zqdm_etf , @sbsj , @cjsj , @cjjg , @cjje , @sqbh , @bs , @mjbh)
SELECT @status = 'O' , @remark = ''
SELECT @cjsl = STR(CONVERT(INT , @cjsl) , 8) --调整ORDWTH2中的cjsl长度为8位
INSERT INTO ORDWTH2 VALUES (@rec_num , @date , @time , @reff , @gddm , @zqdm , @bs , @cjjg , @cjsl , @status , @qty2 , @remark , @status1 , @teORdernum , @owflag , @ordrec , @gsdm , @checkord , @branchid)
UPDATE ORDWTH SET status = 'P' WHERE reff = @reff
CONTINUE
END
--撤单处理
IF (@owflag='WTH') OR (@clbz = '5' AND @owflag = 'MPT') --M市价全部撤单
BEGIN
--已撤单成功的委托不能重复撤单
SELECT * FROM ORDWTH2 WHERE reff = @reff AND RTRIM(LTRIM(qty2)) <> 0
IF @@rowcount > 0
BEGIN
SELECT @status = 'F' , @remark = '已撤单委托不得重复撤单'
SELECT @cjsl = RIGHT(@cjsl , 8) --调整ORDWTH2中的cjsl长度为8位
INSERT INTO ORDWTH2 VALUES (@rec_num , @date , @time , @reff , @gddm , @zqdm , @bs , @cjjg , @cjsl , @status , @qty2 , @remark , @status1 , @teORdernum , @owflag , @ordrec , @gsdm , @checkord , @branchid)
UPDATE ORDWTH SET status = 'P' WHERE reff = @reff AND rec_num = @rec_num and owflag = 'WTH'
CONTINUE
END
--计算已成交数量
SELECT @cjsl_cj = ISNULL(SUM(CONVERT(INT , cjsl)) , 0) FROM CJHB WHERE sqbh = @reff
--委托已全部成交,无法撤单
IF @cjsl_cj = CONVERT(INT , @cjsl)
BEGIN
SELECT @status = 'F' , @remark = '224'
END
ELSE
BEGIN
--全部撤单,撤单数量=委托数量
IF @cjsl_cj = 0
BEGIN
SELECT @status = 'W' , @qty2 = STR(CONVERT(INT , @cjsl) , 8) ,@remark = ''
END
ELSE
BEGIN
--部分成交数量,撤单数量=委托数量-已成交数量
IF (CONVERT(INT , @cjsl) > 0)
BEGIN
SELECT @status = 'W' , @qty2 = STR((CONVERT(INT , @cjsl) - @cjsl_cj) , 8) , @remark = ''
END
END
END
SELECT @cjsl = STR(CONVERT(INT , @cjsl) , 8) --调整ORDWTH2中的cjsl长度为8位
INSERT INTO ORDWTH2 VALUES (@rec_num , @date , @time , @reff , @gddm , @zqdm , @bs , @cjjg , @cjsl , @status , @qty2 , @remark , @status1 , @teORdernum , @owflag , @ordrec , @gsdm , @checkord , @branchid)
UPDATE ORDWTH SET status = 'P' WHERE reff = @reff AND rec_num = @rec_num
CONTINUE
END
--普通股票/基金/ETF交易/国债/转债/企债/回购/配股/出入库/权证
IF @owflag IN ('ORD' , 'MPT' , 'NPT')
BEGIN
--处理市价委托的成交价
IF @owflag IN ('MPT' , 'NPT')
BEGIN
SELECT @cjjg = STR(s8 , 8 , 3) FROM show2003 WHERE s1 = @zqdm
SELECT @cjjg = STR(s3 , 8 , 3) FROM show2003 WHERE s1 = @zqdm AND s8 = 0
END
SELECT @cjjg1 = CONVERT(MONEY , @cjjg)
--单笔全部成交
IF @clbz = '0'
BEGIN
SELECT @cjbh = @cjbh + 1
--根据set生成bcye
IF @gdxm = '1'
BEGIN
SELECT @bcye1 = @bcye1 + 1
SELECT @bcye = CONVERT(CHAR(10) , @bcye1)
END
IF @gdxm = '2'
BEGIN
SELECT @bcye2 = @bcye2 + 1
SELECT @bcye = CONVERT(CHAR(10) , @bcye2)
END
IF @gdxm = '3'
BEGIN
SELECT @bcye3 = @bcye3 + 1
SELECT @bcye = CONVERT(CHAR(10) , @bcye3)
END
IF @gdxm = '4'
BEGIN
SELECT @bcye4 = @bcye4 + 1
SELECT @bcye = CONVERT(CHAR(10) , @bcye4)
END
IF @gdxm = '5'
BEGIN
SELECT @bcye5 = @bcye5 + 1
SELECT @bcye = CONVERT(CHAR(10) , @bcye5)
END
IF @gdxm = '6'
BEGIN
SELECT @bcye6 = @bcye6 + 1
SELECT @bcye = CONVERT(CHAR(10) , @bcye6)
END
IF @gdxm = '991'
BEGIN
SELECT @bcye7 = @bcye7 + 1
SELECT @bcye = CONVERT(CHAR(10) , @bcye7)
END
IF @gdxm = '20'
BEGIN
SELECT @bcye8 = @bcye8 + 1
SELECT @bcye = CONVERT(CHAR(10) , @bcye8)
END
SELECT @bcye = CASE
WHEN LEN(@bcye) = 9 THEN '0' + @bcye
WHEN LEN(@bcye) = 8 THEN '00' + @bcye
END
SELECT @cjje = CASE
WHEN LEFT(@zqdm , 2) IN ('00' , '01' , '10' , '11' , '12') THEN STR(ROUND(CONVERT(INT , @cjsl) * @cjjg1 * 10 , 12 , 2) , 12 , 2) --调整国债/转债/企债的成交金额
WHEN LEFT(@zqdm , 2) IN ('20') THEN STR(ROUND(@cjsl * 1000 , 12 , 2) , 12 , 2) ----调整回购的成交金额
ELSE STR(ROUND(CONVERT(INT , @cjsl) * @cjjg1 , 12 , 2) , 12 , 2)
END
INSERT INTO CJHB VALUES (@gddm , @gdxm , @bcrq , @cjbh , @gsdm , @cjsl , @bcye , @zqdm , @sbsj , @cjsj , @cjjg , @cjje , @sqbh , @bs , @mjbh)
/*
INSERT INTO CJHB VALUES (@gddm , @gdxm , @bcrq , @cjbh , @gsdm , 1 , @bcye , @zqdm , @sbsj , @cjsj , @cjjg , @cjje , @sqbh , @bs , @mjbh)
SELECT @cjbh = @cjbh + 1
--根据set生成bcye
IF @gdxm = '1'
BEGIN
SELECT @bcye1 = @bcye1 + 1
SELECT @bcye = CONVERT(CHAR(10) , @bcye1)
END
IF @gdxm = '2'
BEGIN
SELECT @bcye2 = @bcye2 + 1
SELECT @bcye = CONVERT(CHAR(10) , @bcye2)
END
IF @gdxm = '3'
BEGIN
SELECT @bcye3 = @bcye3 + 1
SELECT @bcye = CONVERT(CHAR(10) , @bcye3)
END
IF @gdxm = '4'
BEGIN
SELECT @bcye4 = @bcye4 + 1
SELECT @bcye = CONVERT(CHAR(10) , @bcye4)
END
IF @gdxm = '5'
BEGIN
SELECT @bcye5 = @bcye5 + 1
SELECT @bcye = CONVERT(CHAR(10) , @bcye5)
END
IF @gdxm = '6'
BEGIN
SELECT @bcye6 = @bcye6 + 1
SELECT @bcye = CONVERT(CHAR(10) , @bcye6)
END
IF @gdxm = '991'
BEGIN
SELECT @bcye7 = @bcye7 + 1
SELECT @bcye = CONVERT(CHAR(10) , @bcye7)
END
IF @gdxm = '20'
BEGIN
SELECT @bcye8 = @bcye8 + 1
SELECT @bcye = CONVERT(CHAR(10) , @bcye8)
END
SELECT @bcye = CASE
WHEN LEN(@bcye) = 9 THEN '0' + @bcye
WHEN LEN(@bcye) = 8 THEN '00' + @bcye
END
INSERT INTO CJHB VALUES (@gddm , @gdxm , @bcrq , @cjbh , @gsdm , 2 , @bcye , @zqdm , @sbsj , @cjsj , @cjjg , @cjje , @sqbh , @bs , @mjbh)
SELECT @cjbh = @cjbh + 1
--根据set生成bcye
IF @gdxm = '1'
BEGIN
SELECT @bcye1 = @bcye1 + 1
SELECT @bcye = CONVERT(CHAR(10) , @bcye1)
END
IF @gdxm = '2'
BEGIN
SELECT @bcye2 = @bcye2 + 1
SELECT @bcye = CONVERT(CHAR(10) , @bcye2)
END
IF @gdxm = '3'
BEGIN
SELECT @bcye3 = @bcye3 + 1
SELECT @bcye = CONVERT(CHAR(10) , @bcye3)
END
IF @gdxm = '4'
BEGIN
SELECT @bcye4 = @bcye4 + 1
SELECT @bcye = CONVERT(CHAR(10) , @bcye4)
END
IF @gdxm = '5'
BEGIN
SELECT @bcye5 = @bcye5 + 1
SELECT @bcye = CONVERT(CHAR(10) , @bcye5)
END
IF @gdxm = '6'
BEGIN
SELECT @bcye6 = @bcye6 + 1
SELECT @bcye = CONVERT(CHAR(10) , @bcye6)
END
IF @gdxm = '991'
BEGIN
SELECT @bcye7 = @bcye7 + 1
SELECT @bcye = CONVERT(CHAR(10) , @bcye7)
END
IF @gdxm = '20'
BEGIN
SELECT @bcye8 = @bcye8 + 1
SELECT @bcye = CONVERT(CHAR(10) , @bcye8)
END
SELECT @bcye = CASE
WHEN LEN(@bcye) = 9 THEN '0' + @bcye
WHEN LEN(@bcye) = 8 THEN '00' + @bcye
END
INSERT INTO CJHB VALUES (@gddm , @gdxm , @bcrq , @cjbh , @gsdm , 3 , @bcye , @zqdm , @sbsj , @cjsj , @cjjg , @cjje , @sqbh , @bs , @mjbh)
SELECT @cjbh = @cjbh + 1
--根据set生成bcye
IF @gdxm = '1'
BEGIN
SELECT @bcye1 = @bcye1 + 1
SELECT @bcye = CONVERT(CHAR(10) , @bcye1)
END
IF @gdxm = '2'
BEGIN
SELECT @bcye2 = @bcye2 + 1
SELECT @bcye = CONVERT(CHAR(10) , @bcye2)
END
IF @gdxm = '3'
BEGIN
SELECT @bcye3 = @bcye3 + 1
SELECT @bcye = CONVERT(CHAR(10) , @bcye3)
END
IF @gdxm = '4'
BEGIN
SELECT @bcye4 = @bcye4 + 1
SELECT @bcye = CONVERT(CHAR(10) , @bcye4)
END
IF @gdxm = '5'
BEGIN
SELECT @bcye5 = @bcye5 + 1
SELECT @bcye = CONVERT(CHAR(10) , @bcye5)
END
IF @gdxm = '6'
BEGIN
SELECT @bcye6 = @bcye6 + 1
SELECT @bcye = CONVERT(CHAR(10) , @bcye6)
END
IF @gdxm = '991'
BEGIN
SELECT @bcye7 = @bcye7 + 1
SELECT @bcye = CONVERT(CHAR(10) , @bcye7)
END
IF @gdxm = '20'
BEGIN
SELECT @bcye8 = @bcye8 + 1
SELECT @bcye = CONVERT(CHAR(10) , @bcye8)
END
SELECT @bcye = CASE
WHEN LEN(@bcye) = 9 THEN '0' + @bcye
WHEN LEN(@bcye) = 8 THEN '00' + @bcye
END
INSERT INTO CJHB VALUES (@gddm , @gdxm , @bcrq , @cjbh , @gsdm , 4 , @bcye , @zqdm , @sbsj , @cjsj , @cjjg , @cjje , @sqbh , @bs , @mjbh)
SELECT @cjbh = @cjbh + 1
--根据set生成bcye
IF @gdxm = '1'
BEGIN
SELECT @bcye1 = @bcye1 + 1
SELECT @bcye = CONVERT(CHAR(10) , @bcye1)
END
IF @gdxm = '2'
BEGIN
SELECT @bcye2 = @bcye2 + 1
SELECT @bcye = CONVERT(CHAR(10) , @bcye2)
END
IF @gdxm = '3'
BEGIN
SELECT @bcye3 = @bcye3 + 1
SELECT @bcye = CONVERT(CHAR(10) , @bcye3)
END
IF @gdxm = '4'
BEGIN
SELECT @bcye4 = @bcye4 + 1
SELECT @bcye = CONVERT(CHAR(10) , @bcye4)
END
IF @gdxm = '5'
BEGIN
SELECT @bcye5 = @bcye5 + 1
SELECT @bcye = CONVERT(CHAR(10) , @bcye5)
END
IF @gdxm = '6'
BEGIN
SELECT @bcye6 = @bcye6 + 1
SELECT @bcye = CONVERT(CHAR(10) , @bcye6)
END
IF @gdxm = '991'
BEGIN
SELECT @bcye7 = @bcye7 + 1
SELECT @bcye = CONVERT(CHAR(10) , @bcye7)
END
IF @gdxm = '20'
BEGIN
SELECT @bcye8 = @bcye8 + 1
SELECT @bcye = CONVERT(CHAR(10) , @bcye8)
END
SELECT @bcye = CASE
WHEN LEN(@bcye) = 9 THEN '0' + @bcye
WHEN LEN(@bcye) = 8 THEN '00' + @bcye
END
INSERT INTO CJHB VALUES (@gddm , @gdxm , @bcrq , @cjbh , @gsdm , 5 , @bcye , @zqdm , @sbsj , @cjsj , @cjjg , @cjje , @sqbh , @bs , @mjbh)
SELECT @cjbh = @cjbh + 1
--根据set生成bcye
IF @gdxm = '1'
BEGIN
SELECT @bcye1 = @bcye1 + 1
SELECT @bcye = CONVERT(CHAR(10) , @bcye1)
END
IF @gdxm = '2'
BEGIN
SELECT @bcye2 = @bcye2 + 1
SELECT @bcye = CONVERT(CHAR(10) , @bcye2)
END
IF @gdxm = '3'
BEGIN
SELECT @bcye3 = @bcye3 + 1
SELECT @bcye = CONVERT(CHAR(10) , @bcye3)
END
IF @gdxm = '4'
BEGIN
SELECT @bcye4 = @bcye4 + 1
SELECT @bcye = CONVERT(CHAR(10) , @bcye4)
END
IF @gdxm = '5'
BEGIN
SELECT @bcye5 = @bcye5 + 1
SELECT @bcye = CONVERT(CHAR(10) , @bcye5)
END
IF @gdxm = '6'
BEGIN
SELECT @bcye6 = @bcye6 + 1
SELECT @bcye = CONVERT(CHAR(10) , @bcye6)
END
IF @gdxm = '991'
BEGIN
SELECT @bcye7 = @bcye7 + 1
SELECT @bcye = CONVERT(CHAR(10) , @bcye7)
END
IF @gdxm = '20'
BEGIN
SELECT @bcye8 = @bcye8 + 1
SELECT @bcye = CONVERT(CHAR(10) , @bcye8)
END
SELECT @bcye = CASE
WHEN LEN(@bcye) = 9 THEN '0' + @bcye
WHEN LEN(@bcye) = 8 THEN '00' + @bcye
END
INSERT INTO CJHB VALUES (@gddm , @gdxm , @bcrq , @cjbh , @gsdm , 6 , @bcye , @zqdm , @sbsj , @cjsj , @cjjg , @cjje , @sqbh , @bs , @mjbh)
SELECT @cjbh = @cjbh + 1
--根据set生成bcye
IF @gdxm = '1'
BEGIN
SELECT @bcye1 = @bcye1 + 1
SELECT @bcye = CONVERT(CHAR(10) , @bcye1)
END
IF @gdxm = '2'
BEGIN
SELECT @bcye2 = @bcye2 + 1
SELECT @bcye = CONVERT(CHAR(10) , @bcye2)
END
IF @gdxm = '3'
BEGIN
SELECT @bcye3 = @bcye3 + 1
SELECT @bcye = CONVERT(CHAR(10) , @bcye3)
END
IF @gdxm = '4'
BEGIN
SELECT @bcye4 = @bcye4 + 1
SELECT @bcye = CONVERT(CHAR(10) , @bcye4)
END
IF @gdxm = '5'
BEGIN
SELECT @bcye5 = @bcye5 + 1
SELECT @bcye = CONVERT(CHAR(10) , @bcye5)
END
IF @gdxm = '6'
BEGIN
SELECT @bcye6 = @bcye6 + 1
SELECT @bcye = CONVERT(CHAR(10) , @bcye6)
END
IF @gdxm = '991'
BEGIN
SELECT @bcye7 = @bcye7 + 1
SELECT @bcye = CONVERT(CHAR(10) , @bcye7)
END
IF @gdxm = '20'
BEGIN
SELECT @bcye8 = @bcye8 + 1
SELECT @bcye = CONVERT(CHAR(10) , @bcye8)
END
SELECT @bcye = CASE
WHEN LEN(@bcye) = 9 THEN '0' + @bcye
WHEN LEN(@bcye) = 8 THEN '00' + @bcye
END
INSERT INTO CJHB VALUES (@gddm , @gdxm , @bcrq , @cjbh , @gsdm , 7 , @bcye , @zqdm , @sbsj , @cjsj , @cjjg , @cjje , @sqbh , @bs , @mjbh)
SELECT @cjbh = @cjbh + 1
--根据set生成bcye
IF @gdxm = '1'
BEGIN
SELECT @bcye1 = @bcye1 + 1
SELECT @bcye = CONVERT(CHAR(10) , @bcye1)
END
IF @gdxm = '2'
BEGIN
SELECT @bcye2 = @bcye2 + 1
SELECT @bcye = CONVERT(CHAR(10) , @bcye2)
END
IF @gdxm = '3'
BEGIN
SELECT @bcye3 = @bcye3 + 1
SELECT @bcye = CONVERT(CHAR(10) , @bcye3)
END
IF @gdxm = '4'
BEGIN
SELECT @bcye4 = @bcye4 + 1
SELECT @bcye = CONVERT(CHAR(10) , @bcye4)
END
IF @gdxm = '5'
BEGIN
SELECT @bcye5 = @bcye5 + 1
SELECT @bcye = CONVERT(CHAR(10) , @bcye5)
END
IF @gdxm = '6'
BEGIN
SELECT @bcye6 = @bcye6 + 1
SELECT @bcye = CONVERT(CHAR(10) , @bcye6)
END
IF @gdxm = '991'
BEGIN
SELECT @bcye7 = @bcye7 + 1
SELECT @bcye = CONVERT(CHAR(10) , @bcye7)
END
IF @gdxm = '20'
BEGIN
SELECT @bcye8 = @bcye8 + 1
SELECT @bcye = CONVERT(CHAR(10) , @bcye8)
END
SELECT @bcye = CASE
WHEN LEN(@bcye) = 9 THEN '0' + @bcye
WHEN LEN(@bcye) = 8 THEN '00' + @bcye
END
INSERT INTO CJHB VALUES (@gddm , @gdxm , @bcrq , @cjbh , @gsdm , 8 , @bcye , @zqdm , @sbsj , @cjsj , @cjjg , @cjje , @sqbh , @bs , @mjbh)
SELECT @cjbh = @cjbh + 1
--根据set生成bcye
IF @gdxm = '1'
BEGIN
SELECT @bcye1 = @bcye1 + 1
SELECT @bcye = CONVERT(CHAR(10) , @bcye1)
END
IF @gdxm = '2'
BEGIN
SELECT @bcye2 = @bcye2 + 1
SELECT @bcye = CONVERT(CHAR(10) , @bcye2)
END
IF @gdxm = '3'
BEGIN
SELECT @bcye3 = @bcye3 + 1
SELECT @bcye = CONVERT(CHAR(10) , @bcye3)
END
IF @gdxm = '4'
BEGIN
SELECT @bcye4 = @bcye4 + 1
SELECT @bcye = CONVERT(CHAR(10) , @bcye4)
END
IF @gdxm = '5'
BEGIN
SELECT @bcye5 = @bcye5 + 1
SELECT @bcye = CONVERT(CHAR(10) , @bcye5)
END
IF @gdxm = '6'
BEGIN
SELECT @bcye6 = @bcye6 + 1
SELECT @bcye = CONVERT(CHAR(10) , @bcye6)
END
IF @gdxm = '991'
BEGIN
SELECT @bcye7 = @bcye7 + 1
SELECT @bcye = CONVERT(CHAR(10) , @bcye7)
END
IF @gdxm = '20'
BEGIN
SELECT @bcye8 = @bcye8 + 1
SELECT @bcye = CONVERT(CHAR(10) , @bcye8)
END
SELECT @bcye = CASE
WHEN LEN(@bcye) = 9 THEN '0' + @bcye
WHEN LEN(@bcye) = 8 THEN '00' + @bcye
END
INSERT INTO CJHB VALUES (@gddm , @gdxm , @bcrq , @cjbh , @gsdm , 9 , @bcye , @zqdm , @sbsj , @cjsj , @cjjg , @cjje , @sqbh , @bs , @mjbh)
SELECT @cjbh = @cjbh + 1
--根据set生成bcye
IF @gdxm = '1'
BEGIN
SELECT @bcye1 = @bcye1 + 1
SELECT @bcye = CONVERT(CHAR(10) , @bcye1)
END
IF @gdxm = '2'
BEGIN
SELECT @bcye2 = @bcye2 + 1
SELECT @bcye = CONVERT(CHAR(10) , @bcye2)
END
IF @gdxm = '3'
BEGIN
SELECT @bcye3 = @bcye3 + 1
SELECT @bcye = CONVERT(CHAR(10) , @bcye3)
END
IF @gdxm = '4'
BEGIN
SELECT @bcye4 = @bcye4 + 1
SELECT @bcye = CONVERT(CHAR(10) , @bcye4)
END
IF @gdxm = '5'
BEGIN
SELECT @bcye5 = @bcye5 + 1
SELECT @bcye = CONVERT(CHAR(10) , @bcye5)
END
IF @gdxm = '6'
BEGIN
SELECT @bcye6 = @bcye6 + 1
SELECT @bcye = CONVERT(CHAR(10) , @bcye6)
END
IF @gdxm = '991'
BEGIN
SELECT @bcye7 = @bcye7 + 1
SELECT @bcye = CONVERT(CHAR(10) , @bcye7)
END
IF @gdxm = '20'
BEGIN
SELECT @bcye8 = @bcye8 + 1
SELECT @bcye = CONVERT(CHAR(10) , @bcye8)
END
SELECT @bcye = CASE
WHEN LEN(@bcye) = 9 THEN '0' + @bcye
WHEN LEN(@bcye) = 8 THEN '00' + @bcye
END
INSERT INTO CJHB VALUES (@gddm , @gdxm , @bcrq , @cjbh , @gsdm , 10 , @bcye , @zqdm , @sbsj , @cjsj , @cjjg , @cjje , @sqbh , @bs , @mjbh)
SELECT @cjbh = @cjbh + 1
--根据set生成bcye
IF @gdxm = '1'
BEGIN
SELECT @bcye1 = @bcye1 + 1
SELECT @bcye = CONVERT(CHAR(10) , @bcye1)
END
IF @gdxm = '2'
BEGIN
SELECT @bcye2 = @bcye2 + 1
SELECT @bcye = CONVERT(CHAR(10) , @bcye2)
END
IF @gdxm = '3'
BEGIN
SELECT @bcye3 = @bcye3 + 1
SELECT @bcye = CONVERT(CHAR(10) , @bcye3)
END
IF @gdxm = '4'
BEGIN
SELECT @bcye4 = @bcye4 + 1
SELECT @bcye = CONVERT(CHAR(10) , @bcye4)
END
IF @gdxm = '5'
BEGIN
SELECT @bcye5 = @bcye5 + 1
SELECT @bcye = CONVERT(CHAR(10) , @bcye5)
END
IF @gdxm = '6'
BEGIN
SELECT @bcye6 = @bcye6 + 1
SELECT @bcye = CONVERT(CHAR(10) , @bcye6)
END
IF @gdxm = '991'
BEGIN
SELECT @bcye7 = @bcye7 + 1
SELECT @bcye = CONVERT(CHAR(10) , @bcye7)
END
IF @gdxm = '20'
BEGIN
SELECT @bcye8 = @bcye8 + 1
SELECT @bcye = CONVERT(CHAR(10) , @bcye8)
END
SELECT @bcye = CASE
WHEN LEN(@bcye) = 9 THEN '0' + @bcye
WHEN LEN(@bcye) = 8 THEN '00' + @bcye
END
INSERT INTO CJHB VALUES (@gddm , @gdxm , @bcrq , @cjbh , @gsdm , 11 , @bcye , @zqdm , @sbsj , @cjsj , @cjjg , @cjje , @sqbh , @bs , @mjbh)
SELECT @cjbh = @cjbh + 1
--根据set生成bcye
IF @gdxm = '1'
BEGIN
SELECT @bcye1 = @bcye1 + 1
SELECT @bcye = CONVERT(CHAR(10) , @bcye1)
END
IF @gdxm = '2'
BEGIN
SELECT @bcye2 = @bcye2 + 1
SELECT @bcye = CONVERT(CHAR(10) , @bcye2)
END
IF @gdxm = '3'
BEGIN
SELECT @bcye3 = @bcye3 + 1
SELECT @bcye = CONVERT(CHAR(10) , @bcye3)
END
IF @gdxm = '4'
BEGIN
SELECT @bcye4 = @bcye4 + 1
SELECT @bcye = CONVERT(CHAR(10) , @bcye4)
END
IF @gdxm = '5'
BEGIN
SELECT @bcye5 = @bcye5 + 1
SELECT @bcye = CONVERT(CHAR(10) , @bcye5)
END
IF @gdxm = '6'
BEGIN
SELECT @bcye6 = @bcye6 + 1
SELECT @bcye = CONVERT(CHAR(10) , @bcye6)
END
IF @gdxm = '991'
BEGIN
SELECT @bcye7 = @bcye7 + 1
SELECT @bcye = CONVERT(CHAR(10) , @bcye7)
END
IF @gdxm = '20'
BEGIN
SELECT @bcye8 = @bcye8 + 1
SELECT @bcye = CONVERT(CHAR(10) , @bcye8)
END
SELECT @bcye = CASE
WHEN LEN(@bcye) = 9 THEN '0' + @bcye
WHEN LEN(@bcye) = 8 THEN '00' + @bcye
END
INSERT INTO CJHB VALUES (@gddm , @gdxm , @bcrq , @cjbh , @gsdm , 12 , @bcye , @zqdm , @sbsj , @cjsj , @cjjg , @cjje , @sqbh , @bs , @mjbh)
SELECT @cjbh = @cjbh + 1
--根据set生成bcye
IF @gdxm = '1'
BEGIN
SELECT @bcye1 = @bcye1 + 1
SELECT @bcye = CONVERT(CHAR(10) , @bcye1)
END
IF @gdxm = '2'
BEGIN
SELECT @bcye2 = @bcye2 + 1
SELECT @bcye = CONVERT(CHAR(10) , @bcye2)
END
IF @gdxm = '3'
BEGIN
SELECT @bcye3 = @bcye3 + 1
SELECT @bcye = CONVERT(CHAR(10) , @bcye3)
END
IF @gdxm = '4'
BEGIN
SELECT @bcye4 = @bcye4 + 1
SELECT @bcye = CONVERT(CHAR(10) , @bcye4)
END
IF @gdxm = '5'
BEGIN
SELECT @bcye5 = @bcye5 + 1
SELECT @bcye = CONVERT(CHAR(10) , @bcye5)
END
IF @gdxm = '6'
BEGIN
SELECT @bcye6 = @bcye6 + 1
SELECT @bcye = CONVERT(CHAR(10) , @bcye6)
END
IF @gdxm = '991'
BEGIN
SELECT @bcye7 = @bcye7 + 1
SELECT @bcye = CONVERT(CHAR(10) , @bcye7)
END
IF @gdxm = '20'
BEGIN
SELECT @bcye8 = @bcye8 + 1
SELECT @bcye = CONVERT(CHAR(10) , @bcye8)
END
SELECT @bcye = CASE
WHEN LEN(@bcye) = 9 THEN '0' + @bcye
WHEN LEN(@bcye) = 8 THEN '00' + @bcye
END
INSERT INTO CJHB VALUES (@gddm , @gdxm , @bcrq , @cjbh , @gsdm , 13 , @bcye , @zqdm , @sbsj , @cjsj , @cjjg , @cjje , @sqbh , @bs , @mjbh)
SELECT @cjbh = @cjbh + 1
--根据set生成bcye
IF @gdxm = '1'
BEGIN
SELECT @bcye1 = @bcye1 + 1
SELECT @bcye = CONVERT(CHAR(10) , @bcye1)
END
IF @gdxm = '2'
BEGIN
SELECT @bcye2 = @bcye2 + 1
SELECT @bcye = CONVERT(CHAR(10) , @bcye2)
END
IF @gdxm = '3'
BEGIN
SELECT @bcye3 = @bcye3 + 1
SELECT @bcye = CONVERT(CHAR(10) , @bcye3)
END
IF @gdxm = '4'
BEGIN
SELECT @bcye4 = @bcye4 + 1
SELECT @bcye = CONVERT(CHAR(10) , @bcye4)
END
IF @gdxm = '5'
BEGIN
SELECT @bcye5 = @bcye5 + 1
SELECT @bcye = CONVERT(CHAR(10) , @bcye5)
END
IF @gdxm = '6'
BEGIN
SELECT @bcye6 = @bcye6 + 1
SELECT @bcye = CONVERT(CHAR(10) , @bcye6)
END
IF @gdxm = '991'
BEGIN
SELECT @bcye7 = @bcye7 + 1
SELECT @bcye = CONVERT(CHAR(10) , @bcye7)
END
IF @gdxm = '20'
BEGIN
SELECT @bcye8 = @bcye8 + 1
SELECT @bcye = CONVERT(CHAR(10) , @bcye8)
END
SELECT @bcye = CASE
WHEN LEN(@bcye) = 9 THEN '0' + @bcye
WHEN LEN(@bcye) = 8 THEN '00' + @bcye
END
INSERT INTO CJHB VALUES (@gddm , @gdxm , @bcrq , @cjbh , @gsdm , 14 , @bcye , @zqdm , @sbsj , @cjsj , @cjjg , @cjje , @sqbh , @bs , @mjbh)
SELECT @cjbh = @cjbh + 1
--根据set生成bcye
IF @gdxm = '1'
BEGIN
SELECT @bcye1 = @bcye1 + 1
SELECT @bcye = CONVERT(CHAR(10) , @bcye1)
END
IF @gdxm = '2'
BEGIN
SELECT @bcye2 = @bcye2 + 1
SELECT @bcye = CONVERT(CHAR(10) , @bcye2)
END
IF @gdxm = '3'
BEGIN
SELECT @bcye3 = @bcye3 + 1
SELECT @bcye = CONVERT(CHAR(10) , @bcye3)
END
IF @gdxm = '4'
BEGIN
SELECT @bcye4 = @bcye4 + 1
SELECT @bcye = CONVERT(CHAR(10) , @bcye4)
END
IF @gdxm = '5'
BEGIN
SELECT @bcye5 = @bcye5 + 1
SELECT @bcye = CONVERT(CHAR(10) , @bcye5)
END
IF @gdxm = '6'
BEGIN
SELECT @bcye6 = @bcye6 + 1
SELECT @bcye = CONVERT(CHAR(10) , @bcye6)
END
IF @gdxm = '991'
BEGIN
SELECT @bcye7 = @bcye7 + 1
SELECT @bcye = CONVERT(CHAR(10) , @bcye7)
END
IF @gdxm = '20'
BEGIN
SELECT @bcye8 = @bcye8 + 1
SELECT @bcye = CONVERT(CHAR(10) , @bcye8)
END
SELECT @bcye = CASE
WHEN LEN(@bcye) = 9 THEN '0' + @bcye
WHEN LEN(@bcye) = 8 THEN '00' + @bcye
END
INSERT INTO CJHB VALUES (@gddm , @gdxm , @bcrq , @cjbh , @gsdm , 15 , @bcye , @zqdm , @sbsj , @cjsj , @cjjg , @cjje , @sqbh , @bs , @mjbh)
--return
*/
SELECT @remark = ''
--调整M市价的status
SELECT @status = CASE
WHEN @owflag = 'MPT' THEN 'W'
WHEN @owflag <> 'MPT' THEN 'O'
END
SELECT @cjsl = STR(CONVERT(INT , @cjsl) , 8) --调整ORDWTH2中的cjsl长度为8位
INSERT INTO ORDWTH2 VALUES (@rec_num , @date , @time , @reff , @gddm , @zqdm , @bs , @cjjg , @cjsl , @status , @qty2 , @remark , @status1 , @teORdernum , @owflag , @ordrec , @gsdm , @checkord , @branchid)
UPDATE ORDWTH SET status = 'P' WHERE reff = @reff AND rec_num = @rec_num
CONTINUE
END
--分笔成交
IF @clbz IN ('1' , '2' , '4')
BEGIN
--分笔全部成交/分笔多价位全部成交,第一笔成交数量固定=1股,第二笔成交数量=委托数量*45%,第三笔成交数量=余股
--分笔部分成交,第一笔成交数量固定=1股,第二笔成交数量=委托数量*45%,第三笔成交数量=委托数量*31%
SELECT @cjbh = @cjbh + 1 , @cjsl1 = STR(1 , 10)
--根据set生成bcye
IF @gdxm = '1'
BEGIN
SELECT @bcye1 = @bcye1 + 1
SELECT @bcye = CONVERT(CHAR(10) , @bcye1)
END
IF @gdxm = '2'
BEGIN
SELECT @bcye2 = @bcye2 + 1
SELECT @bcye = CONVERT(CHAR(10) , @bcye2)
END
IF @gdxm = '3'
BEGIN
SELECT @bcye3 = @bcye3 + 1
SELECT @bcye = CONVERT(CHAR(10) , @bcye3)
END
IF @gdxm = '4'
BEGIN
SELECT @bcye4 = @bcye4 + 1
SELECT @bcye = CONVERT(CHAR(10) , @bcye4)
END
IF @gdxm = '5'
BEGIN
SELECT @bcye5 = @bcye5 + 1
SELECT @bcye = CONVERT(CHAR(10) , @bcye5)
END
IF @gdxm = '6'
BEGIN
SELECT @bcye6 = @bcye6 + 1
SELECT @bcye = CONVERT(CHAR(10) , @bcye6)
END
IF @gdxm = '991'
BEGIN
SELECT @bcye7 = @bcye7 + 1
SELECT @bcye = CONVERT(CHAR(10) , @bcye7)
END
IF @gdxm = '20'
BEGIN
SELECT @bcye8 = @bcye8 + 1
SELECT @bcye = CONVERT(CHAR(10) , @bcye8)
END
SELECT @bcye = CASE
WHEN LEN(@bcye) = 9 THEN '0' + @bcye
WHEN LEN(@bcye) = 8 THEN '00' + @bcye
END
SELECT @cjje = CASE
WHEN LEFT(@zqdm , 2) IN ('00' , '01' , '10' , '11' , '12') THEN STR(ROUND(CONVERT(INT , @cjsl1) * CONVERT(MONEY , @cjjg) * 10 , 12 , 2) , 12 , 2) --调整国债/转债/企债的成交金额
WHEN LEFT(@zqdm , 2) IN ('20') THEN STR(ROUND(@cjsl1 * 1000 , 12 , 2) , 12 , 2) ----调整回购的成交金额
ELSE STR(ROUND(CONVERT(INT , @cjsl1) * @cjjg1 , 12 , 2) , 12 , 2)
END
INSERT INTO CJHB VALUES (@gddm , @gdxm , @bcrq , @cjbh , @gsdm , @cjsl1 , @bcye , @zqdm , @sbsj , @cjsj , @cjjg , @cjje , @sqbh , @bs , @mjbh)
SELECT @cjsl2 = STR(CONVERT(INT , ROUND(CONVERT(INT , @cjsl) * 0.45 , 0 , 1)) , 10)
IF @cjsl2 <> '0'
BEGIN
IF (@clbz = '4') AND (@cjjg1 > 0.001)
BEGIN
SELECT @cjjg = CASE
WHEN @bs = 'B' THEN CONVERT(CHAR , @cjjg1 * 0.98)
WHEN @bs = 'S' THEN CONVERT(CHAR , @cjjg1 * 1.02)
END
--调整成交价格的小数点位数
IF ROUND(CONVERT(MONEY , @cjjg1) * 100 , 0 , 1) / 100 = @cjjg1
BEGIN
SELECT @cjjg = CONVERT(CHAR , ROUND(CONVERT(FLOAT , @cjjg) , 2)) + '0'
END
ELSE
BEGIN
SELECT @cjjg = CONVERT(CHAR , ROUND(CONVERT(FLOAT , @cjjg) , 3))
END
END
SELECT @cjbh = @cjbh + 1
--根据set生成bcye
IF @gdxm = '1'
BEGIN
SELECT @bcye1 = @bcye1 + 1
SELECT @bcye = CONVERT(CHAR(10) , @bcye1)
END
IF @gdxm = '2'
BEGIN
SELECT @bcye2 = @bcye2 + 1
SELECT @bcye = CONVERT(CHAR(10) , @bcye2)
END
IF @gdxm = '3'
BEGIN
SELECT @bcye3 = @bcye3 + 1
SELECT @bcye = CONVERT(CHAR(10) , @bcye3)
END
IF @gdxm = '4'
BEGIN
SELECT @bcye4 = @bcye4 + 1
SELECT @bcye = CONVERT(CHAR(10) , @bcye4)
END
IF @gdxm = '5'
BEGIN
SELECT @bcye5 = @bcye5 + 1
SELECT @bcye = CONVERT(CHAR(10) , @bcye5)
END
IF @gdxm = '6'
BEGIN
SELECT @bcye6 = @bcye6 + 1
SELECT @bcye = CONVERT(CHAR(10) , @bcye6)
END
IF @gdxm = '991'
BEGIN
SELECT @bcye7 = @bcye7 + 1
SELECT @bcye = CONVERT(CHAR(10) , @bcye7)
END
IF @gdxm = '20'
BEGIN
SELECT @bcye8 = @bcye8 + 1
SELECT @bcye = CONVERT(CHAR(10) , @bcye8)
END
SELECT @bcye = CASE
WHEN LEN(@bcye) = 9 THEN '0' + @bcye
WHEN LEN(@bcye) = 8 THEN '00' + @bcye
END
SELECT @cjje = CASE
WHEN LEFT(@zqdm , 2) IN ('00' , '01' , '10' , '11' , '12') THEN STR(ROUND(CONVERT(INT , @cjsl2) * @cjjg1 * 10 , 2) , 12 , 2) --调整国债/转债/企债的成交金额
WHEN LEFT(@zqdm , 2) IN ('20') THEN STR(ROUND(CONVERT(INT , @cjsl2) * 1000 , 2) , 12 , 2)--调整回购的成交金额
ELSE STR(ROUND(CONVERT(INT , @cjsl2) * @cjjg1 , 2) , 12 , 2)
END
INSERT INTO CJHB VALUES (@gddm , @gdxm , @bcrq , @cjbh , @gsdm , @cjsl2 , @bcye , @zqdm , @sbsj , @cjsj , @cjjg , @cjje , @sqbh , @bs , @mjbh)
END
SELECT @cjsl3 = CASE
WHEN @clbz = '2' THEN STR(CONVERT(INT , ROUND(CONVERT(INT , @cjsl) * 0.31 , 0 , 1)) , 10)
ELSE STR(CONVERT(INT , @cjsl) - CONVERT(INT , @cjsl1) - CONVERT(INT , @cjsl2) , 10)
END
SELECT @status = 'O' , @remark = ''
IF @cjsl3 <> '0'
BEGIN
--分笔多价位调整第三笔成交价格
IF @clbz = '4' AND (@cjjg1 > 0.001)
BEGIN
SELECT @cjjg = CASE
WHEN @bs = 'B' THEN CONVERT(CHAR , @cjjg1 * 0.95)
WHEN @bs = 'S' THEN CONVERT(CHAR , @cjjg1 * 1.05)
END
--调整成交价格的小数点位数
IF ROUND(CONVERT(MONEY , @cjjg1) * 100 , 0 , 1) / 100 = @cjjg1
BEGIN
SELECT @cjjg = CONVERT(CHAR , ROUND(CONVERT(FLOAT , @cjjg) , 2)) + '0'
END
ELSE
BEGIN
SELECT @cjjg = CONVERT(CHAR , ROUND(CONVERT(FLOAT , @cjjg) , 3))
END
END
SELECT @cjbh = @cjbh + 1
--根据set生成bcye
IF @gdxm = '1'
BEGIN
SELECT @bcye1 = @bcye1 + 1
SELECT @bcye = CONVERT(CHAR(10) , @bcye1)
END
IF @gdxm = '2'
BEGIN
SELECT @bcye2 = @bcye2 + 1
SELECT @bcye = CONVERT(CHAR(10) , @bcye2)
END
IF @gdxm = '3'
BEGIN
SELECT @bcye3 = @bcye3 + 1
SELECT @bcye = CONVERT(CHAR(10) , @bcye3)
END
IF @gdxm = '4'
BEGIN
SELECT @bcye4 = @bcye4 + 1
SELECT @bcye = CONVERT(CHAR(10) , @bcye4)
END
IF @gdxm = '5'
BEGIN
SELECT @bcye5 = @bcye5 + 1
SELECT @bcye = CONVERT(CHAR(10) , @bcye5)
END
IF @gdxm = '6'
BEGIN
SELECT @bcye6 = @bcye6 + 1
SELECT @bcye = CONVERT(CHAR(10) , @bcye6)
END
IF @gdxm = '991'
BEGIN
SELECT @bcye7 = @bcye7 + 1
SELECT @bcye = CONVERT(CHAR(10) , @bcye7)
END
IF @gdxm = '20'
BEGIN
SELECT @bcye8 = @bcye8 + 1
SELECT @bcye = CONVERT(CHAR(10) , @bcye8)
END
SELECT @bcye = CASE
WHEN LEN(@bcye) = 9 THEN '0' + @bcye
WHEN LEN(@bcye) = 8 THEN '00' + @bcye
END
SELECT @cjje = CASE
WHEN LEFT(@zqdm , 2) IN ('00' , '01' , '10' , '11' , '12') THEN STR(CONVERT(INT , @cjsl3) * @cjjg1 * 10 , 12 , 2) --调整国债/转债/企债的成交金额
WHEN LEFT(@zqdm , 2) IN ('20') THEN STR(@cjsl3 * 1000 , 12 , 2) ----调整回购的成交金额
ELSE STR(CONVERT(INT , @cjsl3) * CONVERT(MONEY , @cjjg) , 12 , 2)
END
INSERT INTO CJHB VALUES (@gddm , @gdxm , @bcrq , @cjbh , @gsdm , @cjsl3 , @bcye , @zqdm , @sbsj , @cjsj , @cjjg , @cjje , @sqbh , @bs , @mjbh)
--调整M市价的status
SELECT @status = CASE
WHEN @owflag = 'MPT' THEN 'W'
WHEN @owflag <> 'MPT' THEN 'O'
END
--M市价,未成交部分自动撤单
IF (@clbz = '2' AND @owflag = 'MPT')
BEGIN
SELECT @qty2= STR(CONVERT(INT , @cjsl) - CONVERT(INT , @cjsl1) - CONVERT(INT , @cjsl2) - CONVERT(INT , @cjsl3), 8)
SELECT @owflag = 'MPT' , @ordrec = @rec_num
END
END
SELECT @cjsl = STR(CONVERT(INT , @cjsl) , 8) --调整ORDWTH2中的cjsl长度为8位
INSERT INTO ORDWTH2 VALUES (@rec_num , @date , @time , @reff , @gddm , @zqdm , @bs , @cjjg , @cjsl , @status , @qty2 , @remark , @status1 , @teORdernum , @owflag , @ordrec , @gsdm , @checkord , @branchid)
UPDATE ORDWTH SET status = 'P' WHERE reff = @reff AND rec_num = @rec_num
CONTINUE
END
END
END
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO