USE [MimsDB] GO /****** Object: StoredProcedure [dbo].[Up_MSZ430_C_Insert001] Script Date: 02/01/2016 17:33:06 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO /*=========================================================================== PROC ¸í: Mims.dbo.Up_MSZ060_C_Insert001 PROC±â´É: Áö±Þº¸·ù ¿ùÁ¤»ê ÀÔ ·Â º¯¼ö: Return °ª: (»óŹÝȯ code·Î½á returnÀ» »ç¿ëÇÒ °æ¿ì »ç¿ë) ÀÛ¼º ÀÏÀÚ: 2011/09/23 ÀÛ¼ºÀÚ : ÃÖÁ¾¼öÁ¤ÀÏ: 2012/09/26 Àüü ·ÎÁ÷ ¼öÁ¤... ÃÖÁ¾¼öÁ¤ÀÚ: ¼öÁ¤ ÀÌ·Â: ½ÇÇà ¿¹Á¦: Up_MSZ430_C_Insert001 @p_JumCd=N'01',@p_YM=N'201305',@p_BrandCd=N'',@p_UserId=N'Admin' ============================================================================*/ ALTER PROCEDURE [dbo].[Up_MSZ430_C_Insert001] @p_JumCd VARCHAR(2) /* Á¡ÄÚµå varchar(2) */ , @p_YM VARCHAR(6) /* ³â¿ù varchar(6) */ , @p_BrandCd VARCHAR(6) /* ºê·£µå varchar(6) */ , @p_USERID NVARCHAR(13) = '' , @p_RtnCd INT =0 OUTPUT AS /* ·Ôµ¥¸ô ¸ÅÃâ¼ö¼ö·á ŸÀÔ. 1) ¼Òǰ(¸íǰ¸ÖƼ¼¥)ÀÇ °æ¿ì ? ±âÁØ : 16% ? ÇÁ¶ó´Ù,±¸Âî,Æä¶ó°¡¸ð,·çÀ̺ñÅë,»þ³Ú 13% 2) ÆíÀÇÁ¡ ¼¼ºìÀÏ·¹ºì ? ±âº»: 12% ? ´ã¹è: 5% 3) ¿ù¸ÅÃâ¾×¿¡ µû¸¥ Â÷µî Àû¿ë ? ´ë»ó ºê·£µå: ¾Ë¸¶¸¶¸£¼Ò, ¿ÀÅä¿À¾Æ½Ã½º,ºÏ¸ÞÄ« ? ¾Ë¸¶¸¶¸£¼Ò: ~1õ 13%, ~2õ 14%, 2õÃʰú 15% ? ¿ÀÅä¿À¾Æ½Ã½º: ~4õ 8%, ~5õ 9%, ~6õ 10%,~8õ 11%, ~1¾ï 12%, ~1.3¾ï 13%,1.3¾ïÃʰú 14% ? ºÏ¸ÞÄ«: 2õÀÌÇÏ 17%,20~25 18%,25~30 19%,3õÃʰú 20%, 4) ¸ÅÃⱸ°£º° ¼ö¼ö·á Ã¥Á¤(±¸°£º° °è»êÈÄ ÇÕ»ê) ? ´ë»óºê·£µå: ÄÚÄÚÀÌÂî¹æ¾ß,TGIF,³ë½ºÅÚÁö¾î ? ÄÚÄÚÀÌÂî¹æ¾ß: ~1¾ï 17%, 1¾ï~ 20% ? TGIF: ~2¾ï 10%, 2~3¾ï 15%, 3¾ï~ 17% ? ³ë½ºÅÅÁö¾î: 17% (êÅ216,670õ¿ø ÀÌ»ó~ 23%) 5) °íÁ¤¸ÅÃâ¼ö¼ö·á ? ±×¿Ü ¸ðµç ºê·£µå */ DECLARE @vBrandCd VARCHAR(06), @vPmCd VARCHAR(08), @vProfMngUnit VARCHAR(01), @vSaleAmt NUMERIC(13,0), @vChaSaleAmt NUMERIC(13,0), @vProfAmt NUMERIC(13,0), @vSaleEnuri NUMERIC(13,0), @vProfRatio NUMERIC(5,2), @vCustCd VARCHAR(06), @vBrandClsCd VARCHAR(06), @vLicenseAmt NUMERIC(13,0), @vGiftLicenseAmt NUMERIC(13,0), @vLotteBrandPoint NUMERIC(13,0), @vSaleMinAmt NUMERIC(13,0), @vSeq INT, @vMBBrandCd VARCHAR(06), @vMBAcceptDt VARCHAR(08), @vMBSEQ VARCHAR(08), @vMBSeizeAmt NUMERIC(13,0), @vMBSeizeDt VARCHAR(08), @vMBCancelDt VARCHAR(08), @vDedAmt2 NUMERIC(13,0), @vDedAmt3 NUMERIC(13,0), @vMEBYM VARCHAR(08), @vMEBJumCd VARCHAR(02), @vMEBBrandCd VARCHAR(06), @vMEBGubun VARCHAR(01), @vDEDUCTAmt NUMERIC(13,0), @vGUBUN VARCHAR(01), @vSEIAcceptDt VARCHAR(08), @vSEISEQ VARCHAR(08), @vSEIGubun VARCHAR(02), @vSEIBrandCd VARCHAR(06), @vMijiAmt NUMERIC(13,0), @vDeferAmt NUMERIC(13,0), @vSEISeizeAmt NUMERIC(13,0), @vSEIDeferAmt NUMERIC(13,0); DECLARE @v_CloseYN VARCHAR(1); -- ¸¶°¨¿©ºÎ DECLARE @v_CloseYN_B VARCHAR(1); DECLARE @v_MaxYM VARCHAR(6); DECLARE @p_EndDate VARCHAR(8); --SET @vDedAmt2 = 0; --SET @vDedAmt3 = 0; --// ÀÓ½ÃÅ×ÀÌºí ¼±¾ð: ÀÏÀÚº° ¼ö¼ö·áÀ² DECLARE @BrandProfRatio TABLE ( YMD VARCHAR(8) /* ³â¿ùÀÏ */ , JumCd VARCHAR(2) /* Á¡ÄÚµå */ , BrandCd VARCHAR(6) /* ºê·£µå */ , PmCd VARCHAR(8) /* ǰ¸ñ */ , ProfRatio NUMERIC(5,2) /* ¼ö¼ö·áÀ² */ , ProfDcRatio NUMERIC(5,2) /* ÇÒÀμö¼ö·áÀ² */ , SaleMinAmt NUMERIC(15,0) /* ¸ÅÃâÇÏÇÑ±Ý¾× */ ); --// ÀÓ½ÃÅ×ÀÌºí ¼±¾ð: ¸ÅÃâ±Ý¾×º° ¼ö¼ö·á DECLARE @BrandSaleProfRatio TABLE ( BrandCd VARCHAR(6) , Seq INT , SaleAmt NUMERIC(10,0) , ProfRatio NUMERIC(4,2) , JunSeq INT ); BEGIN --// ¸ÅÃⱸ°£º° ¼ö¼ö·á °è»ê½Ã, »ý¼º¿ùÀÇ ¸¶Áö¸·ÀÏÀÚ¸¦ ºñ±³ÇÑ´Ù. SET @p_EndDate = CONVERT(VARCHAR,DATEADD(D,-1,DATEADD(M,1,@p_YM+'01')),112); --// ¿ùȸ°è¸¶°¨ È®ÀÎ BEGIN SELECT @v_CloseYN = ISNULL(CloseYN,'0') -- 0: È®Á¤µÈ µ¥ÀÌŸ(¿À·ù), 1: Á¤»ó , 9:È®Á¤ÇÒ µ¥ÀÌŸ°¡ ¾øÀ½(¿À·ù) , 8: ¿ù¸¶°¨ FROM ClosingTB WHERE JumCd = @p_JumCd AND YMD = @p_YM AND CloseType = 'S' /*¿ù¸¶°¨*/ END IF @v_CloseYN = '1' BEGIN SET @p_RtnCd = 8; return END --// Áö±Þº¸·ù¿ùÁ¤»ê È®ÀÎ BEGIN SELECT @v_CloseYN_B = ISNULL(CloseYN,'0') -- 0: È®Á¤µÈ µ¥ÀÌŸ(¿À·ù), 1: Á¤»ó , 9:È®Á¤ÇÒ µ¥ÀÌŸ°¡ ¾øÀ½(¿À·ù) , 8: ¿ù¸¶°¨ FROM ClosingTB WHERE JumCd = @p_JumCd AND YMD = @p_YM AND CloseType = 'B' /*¿ù¸¶°¨*/ END IF @v_CloseYN_B = '1' BEGIN SET @p_RtnCd = 9; return END --// ÀÓ½ÃÅ×ÀÌºí ¼±¾ð: ¸ÅÃⱸ°£º° ¼ö¼ö·áÀ² Àû¿ëºê·£µå Á¶È¸ BEGIN SELECT BrandCd INTO #TB_BrandCd --ÀÓ½ÃÅ×À̺í FROM JumBrandMst WHERE JumCd = @p_JumCd AND ProfMngUnit IN ('3','4') /*ǰ¹ø(¸ÅÃâÇÕ°è), ǰ¹ø(¸ÅÃâÂ÷µî)*/ END --// ǰ¹ø, ǰ¹ø+ǰ¸ñ :ºê·£µåÀÇ ÀÏÀÚº° ¼ö¼ö·áÀ²À» ±¸ÇÑ´Ù. BEGIN INSERT INTO @BrandProfRatio SELECT A.YMD , B.JumCd , B.BrandCd , B.PmCd , MAX(CASE WHEN A.YMD BETWEEN B.EvtStrDate AND B.EvtEndDate THEN B.ProfRatio ELSE 0 END) AS ProfRatio -- ¼ö¼ö·áÀ² , MAX(CASE WHEN A.YMD BETWEEN C.StrDate AND C.EndDate THEN C.ProfDcRatio ELSE 0 END) AS ProfDcRatio -- ÇÒÀÎ ¼ö¼ö·áÀ² , MAX(D.SaleMinAmt) AS SaleMinAmt -- ¸ÅÃâÇÏÇÑ±Ý¾× FROM CALENDAR A CROSS JOIN BrandPmProfMst B --ON A.YMD BETWEEN B.EvtStrDate AND B.EvtEndDate LEFT OUTER JOIN BrandProfDcMst C ON A.YMD BETWEEN C.StrDate AND C.EndDate AND B.BrandCd = C.BrandCd LEFT OUTER JOIN JumBrandMst D ON B.BrandCd = D.BrandCd AND B.JumCd = D.JumCd WHERE A.YMD LIKE @p_YM + '%' --AND B.BrandCd LIKE @p_BrandCd + '%' AND B.BrandCd NOT IN (SELECT BrandCd FROM #TB_BrandCd) GROUP BY A.YMD,B.JumCd,B.BrandCd,B.PmCd ORDER BY B.BrandCd,A.YMD END --// ¸ÅÃâ±Ý¾×º° ¼ö¼ö·áÀ² Å×À̺íÀ» »ý¼ºÇÑ´Ù. BEGIN INSERT INTO @BrandSaleProfRatio SELECT BrandCd , Seq + 1 AS Seq , SaleAmt , ProfRatio , Seq AS JunSeq FROM BrandSaleSecProfMst WHERE JumCd = @p_JumCd --AND BrandCd LIKE @p_BrandCd + '%' AND BrandCd IN (SELECT BrandCd FROM #TB_BrandCd) UNION SELECT BrandCd , 1 AS Seq , 0 AS SaleAmt , ProfRatio , 0 AS JunSeq FROM BrandPmProfMst WHERE JumCd = @p_JumCd --AND BrandCd LIKE @p_BrandCd + '%' AND BrandCd IN (SELECT BrandCd FROM #TB_BrandCd) AND PmCd = '00000000' AND @p_EndDate BETWEEN EvtStrDate AND EvtEndDate END --// ÇØ´ç ¿ùÀÌ Á¸ÀçÇÏ´Â °æ¿ì »èÁ¦ BEGIN IF EXISTS ( SELECT 1 FROM SeizeSUM WHERE YM = @p_YM /* ³â¿ù */ AND JumCd = @p_JumCd /* Á¡ÄÚµå */ --AND BrandCd LIKE @p_BrandCd + '%' /* ºê·£µåÄÚµå */ ) BEGIN DELETE SeizeSUM --ÇØ´ç ¿ùÀÇ ¼ö¼ö·áÅ×ÀÌºí »èÁ¦ WHERE YM = @p_YM /* ³â¿ù */ AND JumCd = @p_JumCd /* Á¡ÄÚµå */ --AND BrandCd LIKE @p_BrandCd + '%' /* ºê·£µåÄÚµå */ END END BEGIN DECLARE CURSOR_001 CURSOR FOR SELECT BrandCd , PmCd , ProfMngUnit , SUM(SaleAmt) SaleAmt , SUM(ProfAmt) ProfAmt , SUM(SaleEnuri) SaleEnuri FROM ( SELECT BrandCd , '00000000' AS PmCd , '0' AS ProfMngUnit , SUM(SaleAmt) AS SaleAmt , SUM(ProfAmt) AS ProfAmt , SUM(SaleEnuri) AS SaleEnuri FROM ( SELECT A.BrandCd /* ºê·£µåÄÚµå */ , A.PmCd /* Æû¸ñÄÚµå */ , ISNULL(SUM(A.SaleAmt),0) AS SaleAmt /* ÆÇ¸Å±Ý¾× */ , ISNULL(FLOOR(SUM(A.SaleAmt*((CASE WHEN B.ProfRatio IS NULL THEN dbo.Uf_GetBrandProfRatio(A.JumCd, A.BrandCd) ELSE B.ProfRatio END) - ISNULL(B.ProfDcRatio,0))/100)),0) AS ProfAmt /* ÀÌÀÍ¾× */ , ISNULL(SUM(SaleEnuri),0) AS SaleEnuri /* ÆÇ¸Å¿¡´©¸® */ FROM DailyBrandPmSUM A LEFT OUTER JOIN @BrandProfRatio B ON A.YMD = B.YMD AND A.JumCd = B.JumCd AND A.BrandCd = B.BrandCd AND A.PmCd = B.PmCd WHERE A.YMD LIKE @p_YM+ '%' /* ³â¿ù */ AND A.JumCd = @p_JumCd /* Á¡ÄÚµå */ --AND A.BrandCd LIKE @p_BrandCd + '%' /* ºê·£µåÄÚµå */ AND A.BrandCd NOT IN (SELECT BrandCd FROM #TB_BrandCd) GROUP BY A.BrandCd, A.PmCd ) X GROUP BY BrandCd UNION ALL SELECT A.BrandCd , '00000000' AS PmCd , B.ProfMngUnit , SUM(A.SaleAmt) AS SaleAmt , 0 AS ProfAmt , SUM(A.SaleEnuri) AS SaleEnuri FROM DailyBrandPmSUM A INNER JOIN JumBrandMst B ON A.JumCd = B.JumCd AND A.BrandCd = B.BrandCd WHERE B.BrandCd IN (SELECT BrandCd FROM #TB_BrandCd) --// 3:¿ù¸ÅÃâ¾× ÇÕ°è¿¡ µû¶ó ¼ö¼ö·áÀ²Àû¿ë 4:¸ÅÃⱸ°£º° ¼ö¼ö·á Ã¥Á¤ AND A.JumCd = @p_JumCd --AND A.BrandCd LIKE @p_BrandCd +'%' AND A.YMD LIKE @p_YM + '%' GROUP BY A.BrandCd, B.ProfMngUnit -- 2016.01.28 ¿ùÃÖÀúÀÓ´ë·á µî·ÏµÇ¾î ÀÖ´Â ºê·£µå Ãß°¡ UNION ALL SELECT BrandCd , '00000000' AS PmCd , CASE WHEN ProfMngUnit = '3' OR ProfMngUnit = '4' THEN ProfMngUnit ELSE '0' END AS ProfMngUnit , 0 AS SaleAmt , 0 AS ProfAmt , 0 AS SaleEnuri FROM JumBrandMst WHERE JumCd = @p_JumCd --AND BrandCd LIKE @p_BrandCd +'%' and ISNULL(SaleMinAmt,0) > 0 )AA GROUP BY BrandCd, PmCd, ProfMngUnit ORDER BY BrandCd OPEN CURSOR_001 FETCH NEXT FROM CURSOR_001 INTO @vBrandCd, @vPmCd, @vProfMngUnit, @vSaleAmt, @vProfAmt, @vSaleEnuri; WHILE @@FETCH_STATUS = 0 BEGIN IF @vSaleAmt >= 0 -- 2016.01.28 ÀÌÁöÇö ¸ÅÃâÀÌ 0¿øÀÏ °æ¿ì¿¡µµ ¿ùÃÖÀúÀÓ´ë·á°¡ ¹Ý¿µµÇµµ·Ï ¼öÁ¤ BEGIN --// ǰ¹ø/ǰ¹ø+ǰ¸ñº° ¸ÅÃâ¼ö¼ö·á °è»ê : ÀÏÀÚº° ¼ö¼ö·áÀ²À» ºñ±³ÇÏ¿© °è»êÇÑ´Ù. IF (@vProfMngUnit = '0') BEGIN SET @vLicenseAmt = @vProfAmt; END --// ¸ÅÃⱸ°£º° ¸ÅÃâ¼ö¼ö·á °è»ê: ¸ÅÃⱸ°£º° ¼ö¼ö·áÀ²À» ±¸ÇÑ µÚ ¼ö¼ö·áÀû¿ë¹æ½Å(¸ÅÃâÇÕ°è ¶Ç´Â ¸ÅÃâÂ÷µî)¿¡ µû¶ó¼­ °è»êÇÑ´Ù. ELSE BEGIN -->> 2012.08.07 LYG ¸ÅÃâÂ÷µî °è»ê½Ä º¯°æ --// ǰ¹ø(¸ÅÃâÇÕ°è) IF @vProfMngUnit = '3' BEGIN BEGIN SELECT @vProfRatio = dbo.Uf_GetBrandProfRatio(@p_JumCd, @vBrandCd) END SET @vLicenseAmt = FLOOR(@vSaleAmt * @vProfRatio / 100); END --// ǰ¹ø(¸ÅÃâÂ÷µî) ELSE BEGIN -- Â÷µî¿¡ µû¶ó Á¤ÇØÁø °è¾à¼ö¼ö·á Àû¿ë SELECT @vLicenseAmt = FLOOR(SUM(CASE WHEN @vSaleAmt > A.MaxSaleAmt THEN (A.MaxSaleAmt - A.MinSaleAmt) * A.ProfRatio / 100 ELSE CASE WHEN @vSaleAmt <= A.MaxSaleAmt THEN CASE WHEN @vSaleAmt <= A.MinSaleAmt THEN 0 ELSE (@vSaleAmt - A.MinSaleAmt) * A.ProfRatio / 100 END ELSE (@vSaleAmt - A.MinSaleAmt) * A.ProfRatio / 100 END END)) FROM ( SELECT A.SaleAmt AS MinSaleAmt , ISNULL(B.SaleAmt, 9999999999) AS MaxSaleAmt , A.ProfRatio FROM @BrandSaleProfRatio A LEFT OUTER JOIN @BrandSaleProfRatio B ON A.BrandCd = B.BrandCd AND A.Seq = B.JunSeq WHERE A.BrandCd = @vBrandCd ) A END --<< 2012.08.07 LYG END --// ¸ÅÃâ¼ö¼ö·á°¡ ¸ÅÃâÇÏÇѱݾ׺¸´Ù ÀÛÀº °æ¿ì, ¸ÅÃâÇÏÇÑ ±Ý¾×À¸·Î Àû¿ëÇÑ´Ù. BEGIN --IF @p_JumCd <> '03' --2015.07.02 ÀÌÁöÇö ·Ôµ¥¿ùµå¸ôµµ ÃÖÀúÀÓ´ë·Î Àû¿ëÇϱâ·Î ÇÔ. --BEGIN SELECT @vSaleMinAmt = SaleMinAmt FROM JumBrandMst WHERE JumCd = @p_JumCd AND BrandCd = @vBrandCd IF @vSaleMinAmt > @vLicenseAmt BEGIN SET @vLicenseAmt = @vSaleMinAmt; END --END END END --// ¸ÅÃâ±Ý¾×ÀÌ -ÀÏ °æ¿ì -±Ý¾×¿¡ ´ëÇÑ ¸ÅÃâ¼ö¼ö·áÀ²À» »ý¼º. ELSE BEGIN BEGIN SELECT @vProfRatio = dbo.Uf_GetBrandProfRatio(@p_JumCd, @vBrandCd) END SET @vLicenseAmt = FLOOR(@vSaleAmt * @vProfRatio / 100); END --IF @vSaleAmt <> 0 -- BEGIN BEGIN SELECT @vCustCd = JB.CustCd -- °Å·¡Ã³ÄÚµå , @vBrandClsCd = JB.BrandClsCd -- »óǰ±ºÄÚµå , @vGiftLicenseAmt = ISNULL(TS.GiftLicenseAmt,0) , @vLotteBrandPoint = ISNULL(PL.LotteBrandPoint,0) FROM JumBrandMst JB LEFT OUTER JOIN ( SELECT a.BrandCd , FLOOR(SUM(a.TradAmt *b.GiftRate/100)) GiftLicenseAmt FROM DailyTradSUM a INNER JOIN GiftMst b ON a.TradSCd = b.GiftCd AND b.GiftRate > 0 INNER JOIN JumBrandMst C ON A.JumCd = C.JumCd AND A.BrandCd = C.BrandCd AND C.GiftYN = '1' WHERE a.JumCd = @p_JumCd AND a.BrandCd = @vBrandCd AND a.YMD LIKE @p_YM + '%' AND a.TradCd = '04' -- Àû¸³ AND A.Gbn = '10' GROUP BY a.BrandCd ) AS TS ON JB.BrandCd = TS.BrandCd LEFT OUTER JOIN ( SELECT BrandCd , FLOOR(SUM(CASE WHEN AddGbn = '1' THEN EvtPoint ELSE -EvtPoint END)) LotteBrandPoint FROM PointLog WHERE JumCd = @p_JumCd AND BrandCd = @vBrandCd AND SaleDate LIKE @p_YM + '%' AND DealGbn = '10' -- Àû¸³ GROUP BY BrandCd ) AS PL ON JB.BrandCd = PL.BrandCd WHERE JB.BrandCd = @vBrandCd END BEGIN --»çÈÄ°í°´¿¹Ä¡±ÝS BEGIN SET @vDedAmt2 = 0; END DECLARE CURSOR_002 CURSOR FOR SELECT ISNULL(BrandCd,'') AS BrandCd ,ISNULL(AcceptDt,'') AS AcceptDt ,ISNULL(SEQ,'') AS SEQ ,ISNULL(SeizeAmt,0) AS SeizeAmt ,ISNULL(SeizeDt,'') AS SeizeDt ,ISNULL(CancelDt,'') AS CancelDt FROM MemberBalanceMst WHERE JumCd = @p_JumCd AND @p_YM BETWEEN SUBSTRING(SeizeDt,1,6) AND SUBSTRING(CancelDt,1,6) AND BrandCd = @vBrandCd AND CalGubun = '0' OPEN CURSOR_002 FETCH NEXT FROM CURSOR_002 INTO @vMBBrandCd, @vMBAcceptDt, @vMBSEQ, @vMBSeizeAmt, @vMBSeizeDt, @vMBCancelDt; WHILE @@FETCH_STATUS = 0 BEGIN IF SUBSTRING(@vMBSeizeDt,1,6) = @p_YM BEGIN SET @vDedAmt2 = @vMBSeizeAmt END ELSE-- IF @vMBSeizeDt <> '' AND ISNULL(@vMBSeizeDt,'') <> @p_YM BEGIN SET @vDedAmt2 = 0; IF EXISTS ( SELECT 1 FROM MemberBalanceMove WHERE YM = @p_YM /* ³â¿ù */ AND JumCd = @p_JumCd /* Á¡ÄÚµå */ AND BrandCd = @vBrandCd /* ºê·£µåÄÚµå */ ) BEGIN DECLARE CURSOR_003 CURSOR FOR SELECT YM,JumCd,BrandCd,Gubun FROM MemberBalanceMove WHERE YM = @p_YM /* ³â¿ù */ AND JumCd = @p_JumCd /* Á¡ÄÚµå */ AND BrandCd = @vBrandCd /* ºê·£µåÄÚµå */ OPEN CURSOR_003 FETCH NEXT FROM CURSOR_003 INTO @vMEBYM, @vMEBJumCd, @vMEBBrandCd, @vMEBGubun; WHILE @@FETCH_STATUS = 0 BEGIN DELETE MemberBalanceMove --ÇØ´ç ¿ùÀÇ ¼ö¼ö·áÅ×ÀÌºí »èÁ¦ WHERE YM = @vMEBYM /* ³â¿ù */ AND JumCd = @vMEBJumCd /* Á¡ÄÚµå */ AND BrandCd = @vMEBBrandCd /* ºê·£µåÄÚµå */ AND Gubun = @vMEBGubun FETCH NEXT FROM CURSOR_003 INTO @vMEBYM, @vMEBJumCd, @vMEBBrandCd, @vMEBGubun; END CLOSE CURSOR_003 DEALLOCATE CURSOR_003 END BEGIN DECLARE CURSOR_004 CURSOR FOR SELECT A.GUBUN,A.AMT FROM( SELECT '1' AS GUBUN,@vSaleAmt*-1 AS AMT UNION ALL --½ÉÀç±Ç Ã¥ÀÓ´Ô ¿äûÀ¸·Î ¿øº¹ 2014/02/05 --SELECT '1' AS GUBUN,(@vSaleAmt+SUM(INAMT))*-1 AS AMT --FROM ATMINFO WITH (NOLOCK) --WHERE JUMCD = @p_JumCd --AND INDATE LIKE @p_YM+'%' --AND BRANDCD = @vBrandCd --AND JUMCD IN (SELECT JUMCD FROM dbo.[Uf_UserJum_TB](@p_USERID)) --GROUP BY JUMCD, SUBSTRING(INDATE,1,6), BRANDCD --UNION ALL SELECT '2' AS GUBUN,@vLicenseAmt*-1 AS AMT UNION ALL SELECT '3' AS GUBUN,ISNULL(SUM(GojiAmt),0) AS AMT -- 70.°ü¸®ºñ FROM GojiData WITH (NOLOCK) WHERE JumCd = @p_JumCd AND YM = @p_YM AND BRANDCD = @vBrandCd AND JumCd IN (SELECT JUMCD FROM dbo.[Uf_UserJum_TB](@p_USERID)) ) A WHERE A.AMT <> 0 OPEN CURSOR_004 FETCH NEXT FROM CURSOR_004 INTO @vGUBUN, @vDEDUCTAmt; WHILE @@FETCH_STATUS = 0 BEGIN INSERT INTO MemberBalanceMove(YM,JumCd,BrandCd,Gubun,SeizeDt,CancelDt,Dt,Amt,LinceseGubun,AcceptDt,SEQ,RegUserId,RegDt,UpdUserId,UpdDt)VALUES (@p_YM,@p_JumCd,@vBrandCd,@vGUBUN,@vMBSeizeDt,@vMBCancelDt,CONVERT(VARCHAR, GETDATE(), 112),@vDEDUCTAmt,'1',@vMBAcceptDt,@vMBSEQ,@p_USERID,GETDATE(),@p_USERID,GETDATE()) FETCH NEXT FROM CURSOR_004 INTO @vGUBUN, @vDEDUCTAmt; END CLOSE CURSOR_004 DEALLOCATE CURSOR_004 END END FETCH NEXT FROM CURSOR_002 INTO @vMBBrandCd, @vMBAcceptDt, @vMBSEQ, @vMBSeizeAmt, @vMBSeizeDt, @vMBCancelDt; END CLOSE CURSOR_002 DEALLOCATE CURSOR_002 END --»çÈÄ°í°´¿¹Ä¡±ÝE --ä±Ç°¡¾Ð·ùS BEGIN BEGIN SET @vDedAmt3 = 0; END DECLARE CURSOR_005 CURSOR FOR /*Á¤»ê³â¿ùº¸´Ù À۰ųª °°Àº ä±ÇÀÚÁß*/ SELECT A.AcceptDt ,A.SEQ ,A.Gubun ,C.BrandCd FROM SeizeMst A LEFT OUTER JOIN SeizeDetail B ON A.AcceptDt = B.AcceptDt AND A.SEQ = B.SEQ LEFT OUTER JOIN ( SELECT A.BrandCd,B.CustCd,B.BizRegNo FROM JumBrandMst A LEFT OUTER JOIN CustMst B ON A.CustCd = B.CustCd WHERE A.JumCd = @p_JumCd AND JumCd IN (SELECT JumCd FROM dbo.[Uf_UserJum_TB](@p_USERID)))C ON B.BizRegNo = C.BizRegNo WHERE SeizeCon = '1' --¾Ð·ù AND C.BrandCd = @vBrandCd AND SUBSTRING(A.SeizeDt,1,6) <= @p_YM OPEN CURSOR_005 FETCH NEXT FROM CURSOR_005 INTO @vSEIAcceptDt, @vSEISEQ, @vSEIGubun, @vSEIBrandCd; WHILE @@FETCH_STATUS = 0 BEGIN /*¹«Á¦ÇѾзù*/ --print '±¸ºÐ : '+ @vSEIGubun IF @vSEIGubun = '1' BEGIN BEGIN IF EXISTS ( SELECT 1 FROM SeizeMove WHERE YM = @p_YM /* ³â¿ù */ AND AcceptDt = @vSEIAcceptDt AND SEQ = @vSEISEQ AND JumCd = @p_JumCd /* Á¡ÄÚµå */ AND BrandCd = @vSEIBrandCd /* ºê·£µåÄÚµå */ AND LinceseGubun = '1' ) BEGIN DELETE SeizeMove --ÇØ´ç ¿ùÀÇ ¼ö¼ö·áÅ×ÀÌºí »èÁ¦ WHERE YM = @p_YM /* ³â¿ù */ AND AcceptDt = @vSEIAcceptDt AND SEQ = @vSEISEQ AND JumCd = @p_JumCd /* Á¡ÄÚµå */ AND BrandCd = @vSEIBrandCd /* ºê·£µåÄÚµå */ AND LinceseGubun = '1' END END SELECT @vMijiAmt = SUM(A.CASHIAMT + A.GIFTAMT + A.CARDAMT + A.POINTAMT) - (@vLicenseAmt + @vGiftLicenseAmt) - SUM(A.GOJIAMT) - SUM(A.MiddleAmt)--03.¹ÌÁö±Þ±Ý FROM ( SELECT A.JumCd --Á¡ÄÚµå , A.YM --³â¿ù , A.BRANDCD , 0 AS CASHIAMT , 0 AS GIFTAMT , 0 AS CARDAMT , 0 AS POINTAMT , 0 AS LICENSEAMT --¼ö¼ö·á±Ý¾× , 0 AS GIFTLICENSEAMT --»óǰ±Ç¼ö¼ö·á¾× , 0 AS GOJIAMT , 0 AS DEDAMT --±âŸ°øÁ¦±Ý¾× , SUM(MiddleAmt) AS MiddleAmt --Áß°£Áö±Þ¾×(2013.03.21) FROM LicenseSaleSUM_Middle A with(nolock) --Áß°£¼ö¼ö·á¸ÅÃâÁý°è WHERE A.JUMCD = @p_JumCd AND A.YM = @p_YM AND A.BRANDCD = @vSEIBrandCd AND A.JUMCD IN (SELECT JUMCD FROM dbo.[Uf_UserJum_TB](@p_USERID)) GROUP BY A.JUMCD, A.YM, A.BRANDCD UNION ALL SELECT A.JUMCD , A.YM , A.BRANDCD , ISNULL(ATM,0) +ISNULL(MEMOIRS,0) CASHIAMT -- 10.Çö±Ý , 0 AS GIFTAMT , 0 AS CARDAMT , 0 AS POINTAMT , 0 AS LICENSEAMT , 0 AS GIFTLICENSEAMT , 0 AS GOJIAMT , 0 AS DEDAMT , 0 AS MiddleAmt FROM ( SELECT JUMCD , SUBSTRING(INDATE,1,6) AS YM , BRANDCD , SUM(CASE WHEN REGGBN = '0' THEN INAMT END) ATM --ATM , SUM(CASE WHEN REGGBN = '1' THEN INAMT END) MEMOIRS --¼ö±â FROM ATMINFO WITH (NOLOCK) WHERE JUMCD = @p_JumCd AND INDATE LIKE @p_YM+'%' AND BRANDCD = @vSEIBrandCd AND JUMCD IN (SELECT JUMCD FROM dbo.[Uf_UserJum_TB](@p_USERID)) GROUP BY JUMCD, SUBSTRING(INDATE,1,6), BRANDCD ) A UNION ALL SELECT JUMCD , SUBSTRING(YMD,1,6) AS YM , BRANDCD , 0 AS CASHIAMT , SUM(CASE WHEN GBN = '10' THEN TRADAMT END) AS GIFTAMT -- 20.»óǰ±Ç , 0 AS CARDAMT , 0 AS POINTAMT , 0 AS LICENSEAMT , 0 AS GIFTLICENSEAMT , 0 AS GOJIAMT , 0 AS DEDAMT , 0 AS MiddleAmt FROM DAILYTRADSUM WITH (NOLOCK) WHERE TRADCD = '04' -- Ÿ»ç»óǰ±Ç AND JUMCD = @p_JumCd AND YMD LIKE @p_YM+'%' AND BRANDCD = @vSEIBrandCd AND JUMCD IN (SELECT JUMCD FROM dbo.[Uf_UserJum_TB](@p_USERID)) GROUP BY JUMCD, SUBSTRING(YMD,1,6), BRANDCD UNION ALL SELECT JUMCD , SUBSTRING(SALEDATE,1,6) AS YM , BRANDCD , 0 AS CASHIAMT , 0 AS GIFTAMT , ISNULL(SUM(SALEAMT),0) CARDAMT -- 30.Ä«µå , 0 AS POINTAMT , 0 AS LICENSEAMT , 0 AS GIFTLICENSEAMT , 0 AS GOJIAMT , 0 AS DEDAMT , 0 AS MiddleAmt FROM CARDSALELOG WITH (NOLOCK) WHERE JUMCD = @p_JumCd AND SALEDATE LIKE @p_YM+'%' AND BRANDCD = @vSEIBrandCd AND JUMCD IN (SELECT JUMCD FROM dbo.[Uf_UserJum_TB](@p_USERID)) GROUP BY JUMCD, SUBSTRING(SALEDATE,1,6), BRANDCD UNION ALL SELECT JUMCD , SUBSTRING(SALEDATE,1,6) AS YM , BRANDCD , 0 AS CASHIAMT , 0 AS GIFTAMT , 0 AS CARDAMT , SUM(CASE WHEN DEALGBN='20' THEN (CASE WHEN ADDGBN='1' THEN ADDPOINT WHEN ADDGBN='2' THEN -ADDPOINT ELSE 0 END) ELSE 0 END) POINTAMT -- 40.Æ÷ÀÎÆ® , 0 AS LICENSEAMT , 0 AS GIFTLICENSEAMT , 0 AS GOJIAMT , 0 AS DEDAMT , 0 AS MiddleAmt FROM POINTLOG WITH (NOLOCK) WHERE JUMCD = @p_JumCd AND SALEDATE LIKE @p_YM+'%' AND BRANDCD = @vSEIBrandCd AND JUMCD IN (SELECT JUMCD FROM dbo.[Uf_UserJum_TB](@p_USERID)) GROUP BY JUMCD, SUBSTRING(SALEDATE,1,6), BRANDCD UNION ALL SELECT JumCd AS JUMCD , YM , BRANDCD , 0 AS CASHIAMT , 0 AS GIFTAMT , 0 AS CARDAMT , 0 AS POINTAMT , 0 AS LICENSEAMT , 0 AS GIFTLICENSEAMT , SUM(GojiAmt) AS GOJIAMT -- 70.°ü¸®ºñ , 0 AS DEDAMT , 0 AS MiddleAmt FROM GojiData WITH (NOLOCK) WHERE JumCd = @p_JumCd AND YM = @p_YM AND BRANDCD = @vSEIBrandCd AND JumCd IN (SELECT JUMCD FROM dbo.[Uf_UserJum_TB](@p_USERID)) GROUP BY JumCd, YM, BRANDCD ) A INNER JOIN JumBrandMst B ON A.JumCd = B.JumCd AND A.BrandCd = B.BrandCd --AND B.UseYn = '1' --2012.10.09 ºê·£µå ¹Ì»ç¿ëµµ Æ÷ÇÔÇϵµ·Ï ¼öÁ¤ AND B.BrandCd <> '999999' group BY A.JUMCD, A.YM, A.BRANDCD --print @vMijiAmt --print '±Ý¾×Á¦ÇÑ1' IF @vMijiAmt > 0 BEGIN INSERT INTO SeizeMove(YM,AcceptDt,SEQ,JumCd,BrandCd,Gubun,Amt,LinceseGubun,BizRegNo,RegUserId,RegDt,UpdUserId,UpdDt)VALUES (@p_YM,@vSEIAcceptDt,@vSEISEQ,@p_JumCd,@vSEIBrandCd,@vSEIGubun,@vMijiAmt-isnull(@vDedAmt2,0),'1','0000000000000',@p_USERID,GETDATE(),@p_USERID,GETDATE()) END SET @vDedAmt3 = @vMijiAmt-@vDedAmt2 END /*±Ý¾×Á¦ÇÑ*/ ELSE IF @vSEIGubun = '0' BEGIN BEGIN IF EXISTS ( SELECT 1 FROM SeizeMove WHERE YM = @p_YM /* ³â¿ù */ AND AcceptDt = @vSEIAcceptDt AND SEQ = @vSEISEQ AND JumCd = @p_JumCd /* Á¡ÄÚµå */ AND BrandCd = @vSEIBrandCd /* ºê·£µåÄÚµå */ AND LinceseGubun = '1' ) BEGIN DELETE SeizeMove --ÇØ´ç ¿ùÀÇ ¼ö¼ö·áÅ×ÀÌºí »èÁ¦ WHERE YM = @p_YM /* ³â¿ù */ AND AcceptDt = @vSEIAcceptDt AND SEQ = @vSEISEQ AND JumCd = @p_JumCd /* Á¡ÄÚµå */ AND BrandCd = @vSEIBrandCd /* ºê·£µåÄÚµå */ AND LinceseGubun = '1' END END SELECT @vMijiAmt = SUM(A.CASHIAMT + A.GIFTAMT + A.CARDAMT + A.POINTAMT) - (@vLicenseAmt + @vGiftLicenseAmt) - SUM(A.GOJIAMT) - SUM(A.MiddleAmt)--03.¹ÌÁö±Þ±Ý FROM ( SELECT A.JumCd --Á¡ÄÚµå , A.YM --³â¿ù , A.BRANDCD , 0 AS CASHIAMT , 0 AS GIFTAMT , 0 AS CARDAMT , 0 AS POINTAMT , 0 AS LICENSEAMT --¼ö¼ö·á±Ý¾× , 0 AS GIFTLICENSEAMT --»óǰ±Ç¼ö¼ö·á¾× , 0 AS GOJIAMT , 0 AS DEDAMT --±âŸ°øÁ¦±Ý¾× , SUM(MiddleAmt) AS MiddleAmt --Áß°£Áö±Þ¾×(2013.03.21) FROM LicenseSaleSUM_Middle A with(nolock) --Áß°£¼ö¼ö·á¸ÅÃâÁý°è WHERE A.JUMCD = @p_JumCd AND A.YM = @p_YM AND A.BRANDCD = @vSEIBrandCd AND A.JUMCD IN (SELECT JUMCD FROM dbo.[Uf_UserJum_TB](@p_USERID)) GROUP BY A.JUMCD, A.YM, A.BRANDCD UNION ALL SELECT A.JUMCD , A.YM , A.BRANDCD , ISNULL(ATM,0) +ISNULL(MEMOIRS,0) CASHIAMT -- 10.Çö±Ý , 0 AS GIFTAMT , 0 AS CARDAMT , 0 AS POINTAMT , 0 AS LICENSEAMT , 0 AS GIFTLICENSEAMT , 0 AS GOJIAMT , 0 AS DEDAMT , 0 AS MiddleAmt FROM ( SELECT JUMCD , SUBSTRING(INDATE,1,6) AS YM , BRANDCD , SUM(CASE WHEN REGGBN = '0' THEN INAMT END) ATM --ATM , SUM(CASE WHEN REGGBN = '1' THEN INAMT END) MEMOIRS --¼ö±â FROM ATMINFO WITH (NOLOCK) WHERE JUMCD = @p_JumCd AND INDATE LIKE @p_YM+'%' AND BRANDCD = @vSEIBrandCd AND JUMCD IN (SELECT JUMCD FROM dbo.[Uf_UserJum_TB](@p_USERID)) GROUP BY JUMCD, SUBSTRING(INDATE,1,6), BRANDCD ) A UNION ALL SELECT JUMCD , SUBSTRING(YMD,1,6) AS YM , BRANDCD , 0 AS CASHIAMT , SUM(CASE WHEN GBN = '10' THEN TRADAMT END) AS GIFTAMT -- 20.»óǰ±Ç , 0 AS CARDAMT , 0 AS POINTAMT , 0 AS LICENSEAMT , 0 AS GIFTLICENSEAMT , 0 AS GOJIAMT , 0 AS DEDAMT , 0 AS MiddleAmt FROM DAILYTRADSUM WITH (NOLOCK) WHERE TRADCD = '04' -- Ÿ»ç»óǰ±Ç AND JUMCD = @p_JumCd AND YMD LIKE @p_YM+'%' AND BRANDCD = @vSEIBrandCd AND JUMCD IN (SELECT JUMCD FROM dbo.[Uf_UserJum_TB](@p_USERID)) GROUP BY JUMCD, SUBSTRING(YMD,1,6), BRANDCD UNION ALL SELECT JUMCD , SUBSTRING(SALEDATE,1,6) AS YM , BRANDCD , 0 AS CASHIAMT , 0 AS GIFTAMT , ISNULL(SUM(SALEAMT),0) CARDAMT -- 30.Ä«µå , 0 AS POINTAMT , 0 AS LICENSEAMT , 0 AS GIFTLICENSEAMT , 0 AS GOJIAMT , 0 AS DEDAMT , 0 AS MiddleAmt FROM CARDSALELOG WITH (NOLOCK) WHERE JUMCD = @p_JumCd AND SALEDATE LIKE @p_YM+'%' AND BRANDCD = @vSEIBrandCd AND JUMCD IN (SELECT JUMCD FROM dbo.[Uf_UserJum_TB](@p_USERID)) GROUP BY JUMCD, SUBSTRING(SALEDATE,1,6), BRANDCD UNION ALL SELECT JUMCD , SUBSTRING(SALEDATE,1,6) AS YM , BRANDCD , 0 AS CASHIAMT , 0 AS GIFTAMT , 0 AS CARDAMT , SUM(CASE WHEN DEALGBN='20' THEN (CASE WHEN ADDGBN='1' THEN ADDPOINT WHEN ADDGBN='2' THEN -ADDPOINT ELSE 0 END) ELSE 0 END) POINTAMT -- 40.Æ÷ÀÎÆ® , 0 AS LICENSEAMT , 0 AS GIFTLICENSEAMT , 0 AS GOJIAMT , 0 AS DEDAMT , 0 AS MiddleAmt FROM POINTLOG WITH (NOLOCK) WHERE JUMCD = @p_JumCd AND SALEDATE LIKE @p_YM+'%' AND BRANDCD = @vSEIBrandCd AND JUMCD IN (SELECT JUMCD FROM dbo.[Uf_UserJum_TB](@p_USERID)) GROUP BY JUMCD, SUBSTRING(SALEDATE,1,6), BRANDCD UNION ALL SELECT JumCd AS JUMCD , YM , BRANDCD , 0 AS CASHIAMT , 0 AS GIFTAMT , 0 AS CARDAMT , 0 AS POINTAMT , 0 AS LICENSEAMT , 0 AS GIFTLICENSEAMT , SUM(GojiAmt) AS GOJIAMT -- 70.°ü¸®ºñ , 0 AS DEDAMT , 0 AS MiddleAmt FROM GojiData WITH (NOLOCK) WHERE JumCd = @p_JumCd AND YM = @p_YM AND BRANDCD = @vSEIBrandCd AND JumCd IN (SELECT JUMCD FROM dbo.[Uf_UserJum_TB](@p_USERID)) GROUP BY JumCd, YM, BRANDCD ) A INNER JOIN JumBrandMst B ON A.JumCd = B.JumCd AND A.BrandCd = B.BrandCd --AND B.UseYn = '1' --2012.10.09 ºê·£µå ¹Ì»ç¿ëµµ Æ÷ÇÔÇϵµ·Ï ¼öÁ¤ AND B.BrandCd <> '999999' group BY A.JUMCD, A.YM, A.BRANDCD SELECT @vSEISeizeAmt = SeizeAmt --¾Ð·ù±Ý¾× ,@vSEIDeferAmt = DeferAmt --º¸·ù±Ý¾× FROM SeizeMst WHERE AcceptDt = @vSEIAcceptDt AND SEQ = @vSEISEQ IF @vMijiAmt-@vDedAmt2 <= @vSEISeizeAmt-@vSEIDeferAmt BEGIN IF @vMijiAmt-@vDedAmt2 > 0 BEGIN SET @vDeferAmt = @vMijiAmt-@vDedAmt2 END END ELSE BEGIN SET @vDeferAmt = @vSEISeizeAmt-@vSEIDeferAmt END --print @vMijiAmt --print '¹«Á¦ÇѾзù' IF @vDeferAmt > 0 BEGIN INSERT INTO SeizeMove(YM,AcceptDt,SEQ,JumCd,BrandCd,Gubun,Amt,LinceseGubun,BizRegNo,RegUserId,RegDt,UpdUserId,UpdDt)VALUES (@p_YM,@vSEIAcceptDt,@vSEISEQ,@p_JumCd,@vBrandCd,@vSEIGubun,@vDeferAmt,'1','0000000000000',@p_USERID,GETDATE(),@p_USERID,GETDATE()) END SET @vDedAmt3 = @vDeferAmt END FETCH NEXT FROM CURSOR_005 INTO @vSEIAcceptDt, @vSEISEQ, @vSEIGubun, @vSEIBrandCd; END CLOSE CURSOR_005 DEALLOCATE CURSOR_005 END --ä±Ç°¡¾Ð·ùE --// ¿ù¼ö¼ö·á¸ÅÃâ Å×À̺íÀ» »ý¼ºÇÑ´Ù. IF @vDedAmt2 > 0 OR @vDedAmt3 > 0 BEGIN BEGIN INSERT INTO SeizeSUM ( YM -- ³â¿ù , JumCd -- Á¡ÄÚµå , BrandCd -- ºê·£µåÄÚµå , SaleAmt -- ¸ÅÃâ¾× , MBAmt , SeizeAmt , DedAmt1 , DedAmt2 , RegUserId -- µî·ÏÀÚId , RegDt -- µî·ÏÀϽà , UpdUserId -- ¼öÁ¤ÀÚId , UpdDt -- ¼öÁ¤ÀϽà ) VALUES ( @p_YM , @p_JumCd , @vBrandCd , @vSaleAmt , @vDedAmt2 , @vDedAmt3 , 0 , 0 , @p_UserId , GETDATE() , @p_UserId , GETDATE() ) END END --END FETCH NEXT FROM CURSOR_001 INTO @vBrandCd, @vPmCd, @vProfMngUnit, @vSaleAmt, @vProfAmt, @vSaleEnuri; END CLOSE CURSOR_001 DEALLOCATE CURSOR_001 -- ¸¶°¨ ó¸® IF EXISTS ( SELECT 1 FROM ClosingTB WHERE JumCd = @p_JumCd AND YMD = @p_YM AND CloseType='B' ) UPDATE ClosingTB SET CloseYN = '1' , AccNo = 'Áö±Þº¸·ù¿ùÁ¤»ê' , AccDate = '' WHERE JumCd = @p_JumCd AND YMD = @p_YM AND CloseType='B' ELSE INSERT INTO ClosingTB ( JumCd , YMD , CloseType , Gbn , AccDate , AccNo , CloseYN , RegUserId , RegDt , UpdUserId , UpdDt ) SELECT @p_JumCd JumCd , @p_YM YMD , 'B' CloseType , '' Gbn , '' AccDate , 'Áö±Þº¸·ù¿ùÁ¤»ê' AccNo , '1' CloseYN , @p_USERID RegUserId , GETDATE() RegDt , @p_USERID UpdUserId , GETDATE() UpdDt SET @p_RtnCd = 0; END END