345 lines
10 KiB
Plaintext
345 lines
10 KiB
Plaintext
/****** Object: Table [dbo].[DJBHWH_ERP_LQ] Script Date: 2024-11-08 17:51:57 ******/
|
||
IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[DJBHWH_ERP_LQ]') AND type in (N'U'))
|
||
DROP TABLE [dbo].[DJBHWH_ERP_LQ]
|
||
GO
|
||
|
||
/****** Object: Table [dbo].[DJBHWH_ERP_LQ] Script Date: 2024-11-08 17:51:57 ******/
|
||
SET ANSI_NULLS ON
|
||
GO
|
||
|
||
SET QUOTED_IDENTIFIER ON
|
||
GO
|
||
|
||
CREATE TABLE [dbo].[DJBHWH_ERP_LQ](
|
||
[BMFS] [varchar](50) NOT NULL,
|
||
[DJMC] [varchar](50) NOT NULL,
|
||
[DM] [varchar](50) NOT NULL,
|
||
[DJH] [int] NULL,
|
||
[BYZD1] [varchar](20) NULL,
|
||
[BYZD2] [varchar](20) NULL,
|
||
[BYZD3] [numeric](18, 4) NULL,
|
||
[BYZD4] [numeric](18, 4) NULL,
|
||
CONSTRAINT [PK_DJBHWH_ERP_LQ] PRIMARY KEY NONCLUSTERED
|
||
(
|
||
[BMFS] ASC,
|
||
[DJMC] ASC,
|
||
[DM] ASC
|
||
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
|
||
) ON [PRIMARY]
|
||
GO
|
||
|
||
|
||
|
||
INSERT INTO [DJBHWH_ERP_LQ] ([BMFS], [DJMC], [DM], [DJH], [BYZD1], [BYZD2], [BYZD3], [BYZD4]) VALUES ('LIQUAN', 'LIQUAN', 'XSQ', 1, NULL, NULL, NULL, NULL);
|
||
|
||
|
||
|
||
/****** Object: StoredProcedure [dbo].[P_SendCoupon] Script Date: 2024-11-08 18:07:04 ******/
|
||
DROP PROCEDURE [dbo].[P_SendCoupon]
|
||
GO
|
||
|
||
/****** Object: StoredProcedure [dbo].[P_SendCoupon] Script Date: 2024-11-08 18:07:04 ******/
|
||
SET ANSI_NULLS ON
|
||
GO
|
||
|
||
SET QUOTED_IDENTIFIER ON
|
||
GO
|
||
|
||
|
||
|
||
CREATE proc [dbo].[P_SendCoupon]
|
||
@DJBH varchar(20), --单据编号
|
||
@Cards VARCHAR(MAX)
|
||
AS
|
||
DECLARE @StartDate DATETIME, @EndDate DATETIME, @YXQX INT, @YXQFS INT;
|
||
SELECT @DJBH=a.DJBH,@StartDate = a.RQ_S, @EndDate = a.RQ_E, @YXQX = a.YXQX, @YXQFS = a.ZDYXQFS
|
||
FROM dbo.LQZCD a WITH (NOLOCK)
|
||
WHERE a.DJBH = @DJBH;
|
||
DECLARE @TabCoupn Table
|
||
(
|
||
Id int,
|
||
VPDM VARCHAR(50),
|
||
GKDM VARCHAR(50),
|
||
LQBH VARCHAR(50),
|
||
CODE VARCHAR(2),
|
||
MSG VARCHAR(100)
|
||
);
|
||
BEGIN
|
||
IF @DJBH=''
|
||
GOTO FAIL
|
||
DECLARE @ERROR INT =0;
|
||
--生成随机数
|
||
DECLARE @CODE VARCHAR(50);
|
||
SELECT @CODE=NEWID();
|
||
BEGIN TRAN
|
||
DECLARE @DJH INT=1,@DM VARCHAR(20)='',@LQBHMAX int;
|
||
SELECT @DJH=DJH,@DM=DM FROM DJBHWH_ERP_LQ WHERE BMFS='LIQUAN'
|
||
SELECT @LQBHMAX=MAX( CONVERT(INT, REPLACE(LQBH,@DM,'')) ) FROM LIQUAN WHERE LQBH LIKE @DM+'%'
|
||
|
||
IF @LQBHMAX>@DJH
|
||
BEGIN
|
||
|
||
UPDATE DJBHWH_ERP_LQ SET DJH=@LQBHMAX WHERE BMFS='LIQUAN'
|
||
SELECT @DJH=DJH,@DM=DM FROM DJBHWH_ERP_LQ WHERE BMFS='LIQUAN'
|
||
|
||
END
|
||
|
||
|
||
--插入数据到临时表
|
||
INSERT INTO @TabCoupn(VPDM,Id,CODE) SELECT *,'0' FROM FT_GetSplitTable(@Cards);
|
||
--券号15位 固定前缀@DM
|
||
UPDATE A SET A.CODE='1',LQBH=@DM+SUBSTRING('000000000000',1,12-LEN(CAST(ID+@DJH AS VARCHAR(20))))+ CAST(ID+@DJH AS VARCHAR(20)),GKDM=B.GKDM
|
||
FROM @TabCoupn A INNER JOIN V_VIPSET B ON A.VPDM=B.DM
|
||
-- 过滤调VPDM不存在的数据
|
||
UPDATE A SET CODE='9',MSG='VIP不存在' FROM @TabCoupn A WHERE CODE='0';
|
||
SET @ERROR+=@@ERROR
|
||
--数据发券数量
|
||
DECLARE @CouponNum INT=0;
|
||
SELECT @CouponNum=COUNT(1) FROM @TabCoupn WHERE CODE='1';
|
||
--更新流水号表发券标记
|
||
UPDATE DJBHWH_ERP_LQ SET DJH=DJH+@CouponNum WHERE BMFS='LIQUAN'
|
||
--插入礼券制成单明细表
|
||
INSERT INTO LQZCDMX(DJBH, LQBH, STATE)
|
||
SELECT @DJBH,LQBH,'2' FROM @TabCoupn
|
||
SET @ERROR+=@@ERROR
|
||
--插入会员表
|
||
INSERT INTO wx_user_coupon(lqbh, cardno, createddate)
|
||
SELECT LQBH,VPDM,GETDATE() FROM @TabCoupn A WHERE CODE='1'
|
||
SET @ERROR+=@@ERROR
|
||
--插入礼券表
|
||
DECLARE @QDDM NVARCHAR(100),@CKDM NVARCHAR(100),@SJ NVARCHAR(20)
|
||
IF @YXQFS = 2
|
||
BEGIN
|
||
SET @StartDate = GETDATE();
|
||
SET @EndDate = DATEADD(DAY, -1, DATEADD(MONTH, @YXQX, @StartDate));
|
||
END;
|
||
IF @YXQFS = 3
|
||
BEGIN
|
||
SET @StartDate = GETDATE();
|
||
SET @EndDate = DATEADD(DAY, @YXQX - 1, @StartDate);
|
||
END;
|
||
INSERT INTO LIQUAN ( LQBH,LBDM,QDDM,CKDM,QYBJ,TYBJ,ZS,XFJE,BZJE,FSJE,SYJE,BYZD1,RQ_S,RQ_E,status,LQLX,LQZK,LQTOWM,SPZK,VPDM,SPFW)
|
||
SELECT A.LQBH,LQZCD.LBDM, B.QDDM,B.CKDM,'1','0','0',LQLB.XFJE,LQZCD.BZJE,LQLB.FSJE,LQLB.FSJE ,ISNULL(LQZCD.BYZD1,'0'),
|
||
CONVERT(VARCHAR(50), @StartDate, 23) + ' 00:00:00' ,
|
||
CONVERT(VARCHAR(50), @EndDate, 23) + ' 23:59:59' ,
|
||
'1' ,
|
||
LQLB.LQLX ,
|
||
LQZCD.lqzk,
|
||
'1' ,LQZCD.SPZK,A.VPDM,SPFW
|
||
FROM LQZCD
|
||
INNER JOIN LQLB ON LQLB.LBDM = LQZCD.LBDM
|
||
INNER JOIN @TabCoupn A ON A.CODE='1'
|
||
INNER JOIN V_VIPSET B WITH (NOLOCK) ON A.VPDM=B.DM
|
||
WHERE LQZCD.DJBH=@DJBH
|
||
SET @ERROR+=@@ERROR
|
||
IF (@ERROR>0)
|
||
BEGIN
|
||
ROLLBACK TRAN
|
||
GOTO FAIL
|
||
END
|
||
ELSE
|
||
BEGIN
|
||
COMMIT;
|
||
GOTO OK
|
||
END
|
||
FAIL:
|
||
SELECT CODE,LQBH,VPDM,GKDM,MSG,@StartDate StartDate,@EndDate EndDate,@DJBH DJBH FROM @TabCoupn;
|
||
RETURN;
|
||
OK:
|
||
SELECT CODE,LQBH,VPDM,GKDM,MSG,@StartDate StartDate,@EndDate EndDate,@DJBH DJBH FROM @TabCoupn ;
|
||
END
|
||
GO
|
||
|
||
|
||
|
||
DROP PROCEDURE [dbo].[xb_sjsx]
|
||
GO
|
||
|
||
/****** Object: StoredProcedure [dbo].[xb_sjsx] Script Date: 2024-11-08 18:07:50 ******/
|
||
SET ANSI_NULLS ON
|
||
GO
|
||
|
||
SET QUOTED_IDENTIFIER ON
|
||
GO
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
--零售销货单满额赠券
|
||
CREATE PROCEDURE [dbo].[xb_sjsx] @dh varchar(100) --零售单号
|
||
AS
|
||
declare @rq varchar(100)
|
||
declare @dp varchar(50)
|
||
declare @je numeric(18, 4)
|
||
declare @zcdh1 varchar(50)
|
||
declare @zcdh2 varchar(50)
|
||
declare @zcdh3 varchar(50)
|
||
declare @djbh varchar(100)
|
||
declare @kbcxdh varchar(100)
|
||
declare @Sql VARCHAR(MAX)
|
||
declare @sql1 VARCHAR(MAX)
|
||
declare @hdje numeric(18, 4)
|
||
declare @lqzs int
|
||
declare @i int
|
||
declare @j int
|
||
declare @k int
|
||
declare @vpdm varchar(50)
|
||
IF EXISTS(SELECT 1
|
||
FROM LSXHD
|
||
WHERE XPBH = @DH)
|
||
BEGIN
|
||
begin
|
||
set @i = 1 --制成单1变量
|
||
set @j = 1 --制成单2变量
|
||
set @k = 1 --制成单3变量
|
||
set @zcdh1 = 'LPH0000041' --制成单1-800-200,11.08-11.12 312门店,409门店
|
||
set @zcdh2 = 'LPH00000027' --制成单2----------------
|
||
set @zcdh3 = 'LPH00000028' --制成单3----------------
|
||
set @hdje = '800' --活动金额
|
||
|
||
select @rq = CONVERT(varchar(100), rq, 23), @dp = dm1, @djbh = DJBH ,@vpdm=dm6
|
||
from LSXHD
|
||
where XPBH = @dh --取日期,店铺,零售单号
|
||
select @je = SUM(je) from LSXHDJS where djbh = @djbh and JSFS not in ('001', '005', '066') --查有效金额
|
||
set @lqzs = @je / @hdje
|
||
if not exists(select 1 from lsxhdjs where djbh = @djbh and JSFS = '001') --有礼券不参与返券
|
||
begin
|
||
if @dp in (select sddm from lqzcdfw where djbh = @zcdh1) and @rq >= '2024-11-08' and
|
||
@rq <= '2024-11-12'
|
||
---判断店铺和日期是否符合-礼券制成单1 exec P_SendCoupon @zcdh1 ,@vpdm
|
||
begin
|
||
|
||
DECLARE @zs INT = 1;
|
||
WHILE @zs <= @lqzs
|
||
BEGIN
|
||
exec P_SendCoupon @zcdh1 ,@vpdm
|
||
SET @zs = @zs + 1;
|
||
END
|
||
|
||
end
|
||
else
|
||
if @dp in (select sddm from lqzcdfw where djbh = @zcdh2) and @rq >= '2023-06-17' and
|
||
@rq <= '2023-06-28'
|
||
---判断店铺和日期是否符合-礼券制成单2
|
||
begin
|
||
select 1
|
||
|
||
end
|
||
else
|
||
if @dp in (select sddm from lqzcdfw where djbh = @zcdh3) and @rq >= '2023-06-22' and
|
||
@rq <= '2023-06-29'
|
||
---判断店铺和日期是否符合-礼券制成单3
|
||
begin
|
||
select 1
|
||
|
||
end
|
||
end
|
||
END
|
||
print (@sql)
|
||
EXEC (@sql)
|
||
end
|
||
|
||
GO
|
||
|
||
|
||
|
||
|
||
/****** Object: StoredProcedure [dbo].[P_API_IPOS_SAVE_ZP] Script Date: 2024-11-08 18:09:48 ******/
|
||
DROP PROCEDURE [dbo].[P_API_IPOS_SAVE_ZP]
|
||
GO
|
||
|
||
/****** Object: StoredProcedure [dbo].[P_API_IPOS_SAVE_ZP] Script Date: 2024-11-08 18:09:48 ******/
|
||
SET ANSI_NULLS ON
|
||
GO
|
||
|
||
SET QUOTED_IDENTIFIER ON
|
||
GO
|
||
|
||
|
||
|
||
CREATE PROC [dbo].[P_API_IPOS_SAVE_ZP] (
|
||
@XPBH VARCHAR (50) -- 小票号
|
||
) AS
|
||
BEGIN
|
||
|
||
DECLARE @XHDH VARCHAR(50)=''; -- 零售销货单单号
|
||
DECLARE @THDH VARCHAR(50)=''; -- 零售退货单单号
|
||
DECLARE @ERRMSG NVARCHAR(4000) = N'',@ERRS INT
|
||
SET @ERRS=0
|
||
SELECT @XHDH=DJBH FROM LSXHD WITH(NOLOCK) WHERE XPBH=@XPBH
|
||
SELECT @THDH=DJBH FROM LSTHD WITH(NOLOCK) WHERE XPBH=@XPBH AND @XHDH=''
|
||
|
||
IF @XHDH='' AND @THDH=''
|
||
BEGIN
|
||
SELECT 0
|
||
RETURN
|
||
END
|
||
|
||
BEGIN TRAN
|
||
BEGIN TRY
|
||
IF @XHDH <> ''
|
||
BEGIN
|
||
INSERT INTO LSXHDZP (DJBH,SPDM,GG1DM,GG2DM,SL,SL_1,CKJ,ZK,DJ,DJ_1,JE,JE_1,BYZD1,BYZD2,BYZD3,BYZD4,BYZD5,BYZD6,BYZD7,BYZD8,BZ,DJ_3)
|
||
SELECT DJBH,SPDM,GG1DM,GG2DM,SL,SL_1,CKJ,ZK,DJ,DJ_1,JE,JE_1,BYZD1,BYZD2,BYZD3,BYZD4,XPBH,BYZD6,BYZD7,BYZD8,BZ,DJ_3
|
||
FROM LSXHDMX WITH(NOLOCK) WHERE DJBH = @XHDH AND SP_Status=3
|
||
SET @ERRS=@ERRS+@@ERROR
|
||
DELETE FROM LSXHDMX WHERE DJBH = @XHDH AND SP_Status=3
|
||
SET @ERRS=@ERRS+@@ERROR
|
||
END
|
||
ELSE IF @THDH <> ''
|
||
BEGIN
|
||
INSERT INTO LSTHDZP (DJBH,SPDM,GG1DM,GG2DM,SL,SL_1,CKJ,ZK,DJ,DJ_1,JE,JE_1,BYZD1,BYZD2,BYZD3,BYZD4,BYZD5,BYZD6,BYZD7,BYZD8,BZ,DJ_3)
|
||
SELECT DJBH,SPDM,GG1DM,GG2DM,SL,SL_1,CKJ,ZK,DJ,DJ_1,JE,JE_1,BYZD1,BYZD2,BYZD3,BYZD4,XPBH,BYZD6,BYZD7,BYZD8,BZ,DJ_3
|
||
FROM LSTHDMX WITH(NOLOCK) WHERE DJBH = @THDH AND SP_Status=3
|
||
SET @ERRS=@ERRS+@@ERROR
|
||
DELETE FROM LSTHDMX WHERE DJBH = @THDH AND SP_Status=3
|
||
SET @ERRS=@ERRS+@@ERROR
|
||
END
|
||
|
||
EXEC xb_sjsx @XPBH
|
||
|
||
END TRY
|
||
|
||
BEGIN CATCH
|
||
SET @ERRMSG = N'出现异常, 错误编号: ' + CONVERT(varchar, ERROR_NUMBER())
|
||
+ N', 错误行号:' + CONVERT(varchar, ERROR_LINE())
|
||
+ N', 错误消息:' + ERROR_MESSAGE();
|
||
SET @ERRS=@ERRS+@@ERROR
|
||
END CATCH;
|
||
|
||
IF @ERRS=0
|
||
BEGIN
|
||
COMMIT TRAN
|
||
SELECT 0
|
||
END
|
||
ELSE BEGIN
|
||
ROLLBACK TRAN
|
||
SELECT -1
|
||
END
|
||
|
||
IF @ERRMSG<>''
|
||
BEGIN
|
||
INSERT INTO dbo.ProERRMSG( ProName ,FMID ,ERRMSG,BYZD1 )
|
||
VALUES ('P_API_IPOS_SAVE_ZP' ,@XPBH ,ISNULL(@ERRMSG,''),'')
|
||
RETURN;
|
||
END
|
||
END
|
||
GO
|
||
|
||
|
||
|
||
|
||
|