上传文件至 /

This commit is contained in:
2025-01-14 01:53:00 +08:00
commit 9688eb58a5
4 changed files with 843 additions and 0 deletions
+344
View File
@@ -0,0 +1,344 @@
/****** 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-20011.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