This commit is contained in:
余宇波 2025-11-11 09:28:50 +08:00
parent 15401e84b1
commit f939378bd8

View File

@ -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
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 =''