-- Script kiểm tra nợ tồn IsNotApproval,IsNotNhapCoc,IsNotOTP
-- SalePlatform..SPF_FSER_GetDebitRule_2022Aug16
--
-- input
DECLARE @pAccountID INT =1000485693
DECLARE @pRegIDs1 NVARCHAR(500) = '1091197463'
DECLARE @pRegIDs NVARCHAR(500) = '1091175913,1091175983,1091176013,1091176053,1091176093,1091176103,1091176743,1091176793,1091176573,1091176553,1091176533,1091176523,1091176583,1082261923,1082262073,1082262163,1082263663,1082263263,1082302023'
DECLARE @pRegIDProList NVARCHAR(500) = ',1099694563,1099695433,1099695733,1099696503,1099696603,1099696803,1099696903,1099698973,1099699343,1099699743,1099700313,1099701583,1099701783,1099703053,,'
DECLARE @pRegIDDevList NVARCHAR(500) = '1054341553,1020298652,1064246363,1064246893,1064247013,1064247523,1064248463,1064248473,1064249553,1064250293,1064250933,1064247073,1064247383,1064248253,1064248333,1064249253,1064249283,1064249883,1064250603'
-- tim don hang trong thoi gian 1 nam
DECLARE @vFirstDay_PrevYear DATETIME = DATEADD(YEAR, DATEDIFF(YEAR, 0, GETDATE()) - 1, 0);
IF (OBJECT_ID('tempdb..#vListReg') IS NOT NULL)
DROP TABLE #vListReg;
IF (OBJECT_ID('tempdb..#vListRegDebit') IS NOT NULL)
DROP TABLE #vListRegDebit;
-- step 2 table RegDebit ngay thanh toán
CREATE TABLE #vListRegDebit
(
RegID INT,
RegCode VARCHAR(20),
ObjID INT,
Contract VARCHAR(50),
Supporter VARCHAR(100),
Approval INT,
LocalType INT,
DebitDate DATETIME,
ObjDate DATETIME,
OrderCode VARCHAR(20),
ServiceList VARCHAR(100),
IsNotNhapCoc INT,
IsNotOTP INT,
IsNotApproval INT,
OrderPaymentType INT ,
ContentStr VARCHAR(100)
);
INSERT INTO #vListRegDebit
(
RegID,
RegCode,
ObjID,
Contract,
Supporter,
Approval,
LocalType,
DebitDate,
ObjDate,
OrderCode,
ServiceList,
IsNotApproval,
OrderPaymentType,
ContentStr
)
SELECT r.ID AS RegId,
r.RegCode,
o.Id AS ObjId,
o.Contract,
r.Approval,
r.LocalType,
r.Supporter,
CASE
WHEN r.StatusDeposit = 0 THEN
o.Start_Date
ELSE
r.DepositDate
END AS DebitDate,
o.Start_Date,
NULL AS OrderCode,
NULL AS ServiceList,
1 AS IsNotApproval,
e.OrderPaymentType AS OrderPaymentType,
'IsNotApproval' AS ContentStr
FROM Internet.dbo.RegistrationFTS (NOLOCK) AS r
INNER JOIN Internet.dbo.Object (NOLOCK) AS o
ON r.ObjID = o.Id
INNER JOIN PowerInside.dbo.ExtraRegistrationFTS (NOLOCK) AS e
ON r.ID = e.RegID
WHERE 1=1
--AND r.Supporter = CAST(@pAccountID AS VARCHAR(100))
AND r.ID IN (SELECT value FROM STRING_SPLIT(@pRegIds, ','))
AND r.CreateDate >= @vFirstDay_PrevYear
AND ISNULL(r.Approval, 0) <> 1
AND ISNULL(r.InputType, 0) = 1 -- Phiếu đăng ký của Mobisale
AND ISNULL(r.StatusReg, 0) <> 6 -- Lấy tình trạng phiếu bình thường
AND o.Status NOT IN ( 6, 5 ) -- hợp đồng tình trạng bình thường
AND
(
r.StatusDeposit = 1 -- Lấy danh sách những phiếu đã thanh toán , nhưng duyệt khác tình trạng OK
OR
(
r.StatusDeposit = 0
AND r.RegType IS NULL
)
); -- lấy những phiếu bán mới, nhưng chưa thanh toán
SELECT * FROM #vListRegDebit
--step 3 Xoa COD
-- Xóa những record exception để by pass -> làm tạm cho phần COD
DELETE #vListRegDebit WHERE ISNULL(OrderPaymentType,0) = 12
/* Phiếu nào dính chưa nhập cọc, thì sẽ đánh dấu */
UPDATE l
SET l.IsNotNhapCoc = 1, l.ContentStr += ',IsNotNhapCoc'
FROM #vListRegDebit AS l
INNER JOIN PowerInfo.dbo.Online_Receipt (NOLOCK) AS B
ON l.RegID = B.ResourceID
AND B.Type = 27
LEFT JOIN PowerInfo.dbo.Online_Receipt_Payment (NOLOCK) AS P
ON B.BillNumber = P.BillNumber
WHERE B.PaidAction = 0 /* 0 : Binh Thuong ; 1: Huy*/
AND (ISNULL(B.PayAfter, 0) <> 1 OR P.ID IS NULL) /*Tình trạng chưa nhập cọc và chưa thanh toán */
/* phiếu nào chưa OTP, thì sẽ đánh dấu*/
UPDATE l
SET l.IsNotOTP = 1, l.ContentStr += ',IsNotOTP'
FROM #vListRegDebit AS l
INNER JOIN PowerInfo.dbo.DocumentDigital (NOLOCK) AS d
ON d.LinkID = l.RegID
AND d.Source = 220
WHERE d.Status = 1
AND ISNULL(d.Confirm, 0) <> 1
and d.TemplateID in (188,189); /*Chỉ lấy những Template bán hàng, ko lấy những template Preview*/
SELECT RegID,
RegCode,
ObjID,
Contract,
Approval,
LocalType,
OrderPaymentType,
DebitDate,
ObjDate,
OrderCode,
ServiceList,
IsNotNhapCoc,
IsNotOTP,
IsNotApproval,
ContentStr
FROM #vListRegDebit;
0 Nhận xét