diff --git a/GZ_KD_Parino/SQL文件/销售订单更新纸质合同号#.sql b/GZ_KD_Parino/SQL文件/销售订单更新纸质合同号#.sql index 864aea1..3fdca9b 100644 --- a/GZ_KD_Parino/SQL文件/销售订单更新纸质合同号#.sql +++ b/GZ_KD_Parino/SQL文件/销售订单更新纸质合同号#.sql @@ -1,67 +1,55 @@ -ALTER proc UpdateFlexNumber -( - @FID NVARCHAR(100) -) -AS - - -DECLARE @FLexNumber nvarchar(100) -SET @FLexNumber = '0000' - -DECLARE @FNumber nvarchar(100) -DECLARE @FDate nvarchar(100) -DECLARE @FORGNUMBER nvarchar(100) - -SELECT @FORGNUMBER=c.FNUMBER, @FNumber= CASE WHEN C.FNUMBER = 'PL'THEN B.FNUMBER ELSE CONCAT( C.FNUMBER,B.FNUMBER) END,@FDate=FORMAT(A.FDATE,'yyyyMMdd') FROM T_SAL_ORDER A -INNER JOIN V_ASSISTANTDATA B ON B.fentryid = F_Ordercategory -INNER JOIN T_ORG_ORGANIZATIONS c on c.FORGID= a.FSALEORGID -WHERE FID = @FID - - -PRINT @FNumber -PRINT @FDate -PRINT @FLexNumber - - print '123' - PRINT @FLexNumber - - - -SELECT top 1 @FLexNumber =RIGHT('0000' +SUBSTRING(F_contractnumber, CHARINDEX(@FDate,F_contractnumber)+8,4),4) -FROM T_SAL_ORDER WHERE F_contractnumber LIKE CONCAT('%',@FDate,'%') -order by RIGHT('0000' +SUBSTRING(F_contractnumber, CHARINDEX(@FDate,F_contractnumber)+8,4),4) desc - - - - print '123' - PRINT @FLexNumber - -IF @FNumber <> 'SX' - BEGIN - SET @FLexNumber=CONCAT(@FNumber,@FDate, FORMAT( CONVERT(decimal(18,2), @FLexNumber)+1,'0000')) - END -ELSE - BEGIN - SET @FLexNumber= CASE WHEN @FORGNUMBER = 'PL' THEN CONCAT('S',@FDate, FORMAT( CONVERT(decimal(18,2), @FLexNumber)+1,'0000'),'X') ELSE - CONCAT(@FORGNUMBER,'S',@FDate, FORMAT( CONVERT(decimal(18,2), @FLexNumber)+1,'0000'),'X') end - END + +ALTER PROCEDURE [dbo].[UpdateFlexNumber] +( + @FID NVARCHAR(100) +) +AS + + +DECLARE @FLexNumber nvarchar(100) +SET @FLexNumber = '0000' + +DECLARE @FNumber nvarchar(100) +DECLARE @FDate nvarchar(100) +DECLARE @FORGNUMBER nvarchar(100) + +SELECT @FORGNUMBER=c.FNUMBER, @FNumber= CASE WHEN C.FNUMBER = 'PL'THEN B.FNUMBER ELSE CONCAT( C.FNUMBER,B.FNUMBER) END,@FDate=FORMAT(A.FDATE,'yyyyMMdd') FROM T_SAL_ORDER A +INNER JOIN V_ASSISTANTDATA B ON B.fentryid = F_Ordercategory +INNER JOIN T_ORG_ORGANIZATIONS c on c.FORGID= a.FSALEORGID +WHERE FID = @FID + + +PRINT @FNumber +PRINT @FDate +PRINT @FLexNumber + + print '123' + PRINT @FLexNumber + + - - -PRINT @FLexNumber - -UPDATE T_SAL_ORDER SET F_contractnumber =@FLexNumber WHERE FID = @FID -AND F_contractnumber ='' +SELECT top 1 @FLexNumber =RIGHT('0000' +SUBSTRING(F_contractnumber, CHARINDEX(@FDate,F_contractnumber)+8,4),4) +FROM T_SAL_ORDER WHERE F_contractnumber LIKE CONCAT('%',@FDate,'%') AND F_CONTRACTNUMBER NOT LIKE 'CYJSQ%' +order by RIGHT('0000' +SUBSTRING(F_contractnumber, CHARINDEX(@FDate,F_contractnumber)+8,4),4) desc -UPDATE T_SAL_ORDER SET F_contractnumber = CONCAT( F_contractnumber, '-',F_Returntype) WHERE FID = @FID -AND F_Returntype <> '' - ---SELECT * ---UPDATE B SET @FNumber = @FLexNumber ---FROM T_SAL_ORDER A ---INNER JOIN T_BAS_PREBDONE b on b.fid = a. F_projectname - --- where a.fid = @FID --- AND F_contractnumber ='' ---PRINT @FLexNumber \ No newline at end of file + + print '123' + PRINT @FLexNumber + +IF @FNumber <> 'SX'AND TRY_CAST(@FLexNumber AS decimal(18,2)) IS NOT NULL + BEGIN + SET @FLexNumber=CONCAT(@FNumber,@FDate, FORMAT( CONVERT(decimal(18,2), @FLexNumber)+1,'0000')) + END +ELSE IF TRY_CAST(@FLexNumber AS decimal(18,2)) IS NOT NULL + BEGIN + SET @FLexNumber= CASE WHEN @FORGNUMBER = 'PL' THEN CONCAT('S',@FDate, FORMAT( CONVERT(decimal(18,2), @FLexNumber)+1,'0000'),'X') ELSE + CONCAT(@FORGNUMBER,'S',@FDate, FORMAT( CONVERT(decimal(18,2), @FLexNumber)+1,'0000'),'X') end + END + + + +PRINT @FLexNumber + +UPDATE T_SAL_ORDER SET F_contractnumber =@FLexNumber WHERE FID = @FID +AND F_contractnumber ='' \ No newline at end of file