SET @mSellCardNumber=CONVERT(INT,@SellCardNumber)
SET @ERR_CODE=0
SET @mYY=REPLACE(RIGHT(STR(YEAR(GETDATE ( ) )),2),' ','0')
SET @mMM=REPLACE(RIGHT(STR(MONTH(GETDATE())),2),' ','0')
SET @mDD=REPLACE(RIGHT(STR(DAY(GETDATE())),2),' ','0')
SET @mGET_SEQ_DATE=CONVERT(VARCHAR,GETDATE(),111)
SELECT @mSEQ=SEQ,@mSEQ_DATE=SEQ_DATE,@mSEQ_TYPE =SEQ_TYPE FROM EC_SEQ
WHERE SEQ_NAME='CARD_EXCHG_SEQ'
IF @mSEQ_DATE IS NULL OR @mSEQ_DATE<>@mGET_SEQ_DATE
BEGIN
SET @mSEQ=1
END
SET @mSEQ=@mSEQ+@mSellCardNumber
SELECT TOP 1 @sPROVINCEID=PROVINCEID, @sSTORAGEID=STORAGEID FROM EC_CUST
WHERE CUST_ID= @SALE_CUST_ID
SELECT @sQUANTITY = fCardQuantity FROM tCustomOwnership
WHERE fCustomName= @SALE_CUST_ID and fCardTypeID = @CARD_TYPE
IF @sQUANTITY < @SellCardNumber
BEGIN
SET @ERR_CODE =1
RETURN
END
DECLARE @sSERIAL INT
SET @sSERIAL=(SELECT MAX(fCustomDaySerial) FROM tCardSaleRecord
WHERE datediff(day,fSaleTime,getDate())=0 and fSaleCustomName = @SALE_CUST_ID GROUP BY fSaleCustomName)
IF @sSERIAL IS NULL
BEGIN
SET @sSERIAL=1
END
DECLARE @printid VARCHAR(20)
SET @sSERIAL=@sSERIAL+@mSellCardNumber
SET @mGET_SEQ= @mSEQ_TYPE+@mYY+@mMM+@mDD+REPLACE(STR(@mSEQ,6),' ','0')
SET @printid=SUBSTRING(@mGET_SEQ, 3, 6)+RIGHT ('00' + CAST(@sPROVINCEID AS varchar(255)), 2) + RIGHT ('00000' + CAST(@sSTORAGEID AS varchar(255)), 5) + RIGHT ('0000' + CAST(@sSERIAL AS varchar(255)),4)
BEGIN TRANSACTION
SET @mSTR='INSERT INTO TCARDSALERECORD(fSaleShowID,fSalePrintID,fSaleCustomName,fSaleOperatorID,fCardTypeID,fSalePrice,fSaleTime,fSaleIP,fCustomDaySerial,fCardImportID,fCardAccount,fCardPassword)'
SET @mSTR=@mSTR+'SELECT TOP '+CAST(@mSellCardNumber AS VARCHAR)
SET @mSTR=@mSTR+' '+@mGET_SEQ+','+ @printid+','+@SALE_CUST_ID+','+@operator_id+','+@CARD_TYPE+','+convert(varchar, @sell_money)+','+cast(getdate() as varchar)+','+ @Login_IP+','+cast(@sSERIAL as varchar)+',fCardImportID,fCardAccount,fCardPassword '
SET @mSTR=@mSTR+' from tcardonsale where fCardTypeID ='+ @CARD_TYPE+' and fCardSaleFlag is null order by fCardImportID '
--print @mSTR
EXECUTE (@mSTR)
IF @@ERROR<>0 or @@rowcount<>@mSellCardNumber
BEGIN
SET @ERR_CODE =1
ROLLBACK TRANSACTION
END
SET @mSTR='delete tcardonsale where fcardid in('
SET @mSTR=@mSTR+'select top '+CAST(@mSellCardNumber AS VARCHAR)
SET @mSTR=@mSTR+' fcardid from tcardonsale where fCardTypeID ='+ @CARD_TYPE+' and fCardSaleFlag is null order by fCardImportID) '
EXECUTE (@mSTR)
IF @@ERROR<>0 or @@rowcount<>@mSellCardNumber
BEGIN
SET @ERR_CODE =2
ROLLBACK TRANSACTION
END
SET @FSPRINTID=@printid
UPDATE tCustomOwnership SET fCardQuantity = fCardQuantity - @mSellCardNumber
WHERE fCustomName= @SALE_CUST_ID and fCardTypeID = @CARD_TYPE
IF @@ERROR<>0
BEGIN
SET @ERR_CODE =3
ROLLBACK TRANSACTION
END
UPDATE EC_SEQ SET SEQ =@mSEQ,SEQ_DATE=@mGET_SEQ_DATE
WHERE SEQ_NAME='CARD_EXCHG_SEQ'
IF @@ERROR<>0
BEGIN
SET @ERR_CODE =4
ROLLBACK TRANSACTION
END
COMMIT TRANSACTION
GO