USE [prince]
GO
/****** Object:  StoredProcedure [Common].[GOA_UpdatePricesByGetValuesOfGoldApi]    Script Date: 11/06/2025 12:57:49 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		Ghasem Babaie
-- Create date: 2023/02/20 | 1401/12/01
-- Description: API بروز رسانی قیمت های مختلف در جداول دیتابیس براساس داده های دریافتی از 
-- =============================================
ALTER PROCEDURE [Common].[GOA_UpdatePricesByGetValuesOfGoldApi]
(
    @InsertDate			[Common].[_DATE_], -- تاریخ شمسی - Ex: 1401/12/01
    @InsertTime			[Common].[_TIME_]  -- ساعت - Ex: 16:54:10
)
AS
BEGIN
       SET NOCOUNT ON;
       ---------------
		
		-- ×××××××××××××××××××××××××××××××××××××××
		-- [Gold].[GPI_Insert] معرفی فیلدهای اس پی
		-- از این اس پی به کرات در این جا استفاده شده است
		-- به همین دلیل همه پارامترهای اس پی رو در این قسمت شرح دادم
		-- ×××××××××××××××××××××××××××××××××××××××
		-- @GPI_ID		[ آیدی جدول ]
		-- @GPI_GCM_ID	[ آیدی کالای مرتبط ]
		-- @GPI_Fixed_ID   [ شناسه ثایت ]
		-- @GPI_Price      [ آخرین قیمت ]
		-- @GPI_Date       [ تاریخ ثبت ]
		-- @GPI_Time       [ ساعت ثبت ],
		-- @GPI_Difference [ تفاوت آخرین قیمت با قیمت قبلی ],
		-- @GPI_UserId     [ کاربر ثبت کننده ],
		-- @GCM_BuyPrice   [ قیمت خرید ], 
		-- @GCM_GPI_Show   [ !!!!! ]  
		-- ×××××××××××××××××××××××××××××××××××××××
		
		-- ×××××××××××××××××××××××××××××××××××
		-- معرفی برخی جداول و تنظیمات و تعاریف
		-- ×××××××××××××××××××××××××××××××××××
		-- GoldPriceInformation: جدول قیمت روزانه
		-- GoldApi: طلا API جدول
		-- ×××××××××××××××××××××××××××××××××××
		-- يك اونس طلا: 31.1034768 گرم با عيار (999.9) يا عيار (24)
		-- يك مثقال طلا: 4.608 گرم
		-- مظنه: قيمت يك مثقال (معادل 4.608 گرم) طلاي 17 عيار (705)
		-- سكه تمام بهار آزادي(قديمي و امامي): وزن 8.133 گرم - عيار 21.6 (900) 
		-- سكه نيم بهار آزادي: وزن 4.0665 گرم – عيار 21.6 (900) 
		-- سكه ربع بهار آزادي: وزن 2.03225 گرم - عيار 21.6 (900)
		-- ×××××××××××××××××××××××××××××××××××
		-- https://www.tgju.org/news/2572/%D9%81%D8%B1%D9%85%D9%88%D9%84-%D9%85%D8%AD%D8%A7%D8%B3%D8%A8%D8%A7%D8%AA-%D8%B7%D9%84%D8%A7
		-- برخی فرمول ها:
		-- بدست آوردن مظنه طلاي ايران 17 (705) عيار از طريق اونس جهانی:
		-- مظنه طلای ايران = ( قيمت يك دلار × قيمت يک اونس طلا ) / 9.5742
		-- ---
		-- بدست آوردن قيمت سكه تمام از طريق اونس جهانی:
		-- قیمت یک عدد سکه تمام = ( قيمت يك دلار × قيمت يك اونس طلا ) / 4.24927
		-- ---
		-- براي بدست آوردن يك مثقال طلاي 18 (750) عيار از اونس جهاني:
		-- قیمت یک مثقال طلای 18 عیار 750 = ( قيمت يك دلار × قيمت يك اونس طلا ) / 8.999
		-- ×××××××××××××××××××××××××××××××××××
		
		DECLARE @GPI_Fixed_ID_GoldMelted		[Common].[_INT_] = 1
		DECLARE @GPI_Fixed_ID_GoldSale			[Common].[_INT_] = 2
		DECLARE @GPI_Fixed_ID_GoldBuy			[Common].[_INT_] = 3
		DECLARE @GPI_Fixed_ID_GoldReplacement	[Common].[_INT_] = 4
		DECLARE @GPI_Fixed_ID_Quotation			[Common].[_INT_] = 5
		DECLARE @GPI_Fixed_ID_Dollar			[Common].[_INT_] = 6
		DECLARE @GPI_Fixed_ID_GoldOunce			[Common].[_INT_] = 7
		DECLARE @GPI_Fixed_ID_PlatinumGram		[Common].[_INT_] = 8
		DECLARE @GPI_Fixed_ID_SilverGram		[Common].[_INT_] = 9
		
		DECLARE @GPI_GCM_ID_GoldCoinOld			[Common].[_INT_] = 0
		DECLARE @GPI_GCM_ID_GoldCoinNew			[Common].[_INT_] = 0
		DECLARE @GPI_GCM_ID_GoldHalfCoin		[Common].[_INT_] = 0
		DECLARE @GPI_GCM_ID_GoldQuarterCoin		[Common].[_INT_] = 0
		DECLARE @GPI_GCM_ID_GoldGramCoin		[Common].[_INT_] = 0
		
		-- [Gold].[GoldCommodity] استخراج آیدی جدول
		DECLARE @TBL_Handled_GoldCommodity	[Common].[_INT_] = (SELECT TOP 1 [TBL_ID] FROM [Common].[Table] WHERE [TBL_Name] = 'GoldCommodity')
		
		-- کاربر ثبت کننده اطلاعات در جدول قیمت روزانه
		DECLARE @UserID		[Common].[_INT_]  = 1
		
		/*
		 وب سرویس
		 0 -- Ratebox.ir
         1 -- شرکت تابان گوهر نفیس 
         2 -- زر بها
		*/
		DECLARE @GoldApiProviderCo              [Common].[_INT_]
		SET @GoldApiProviderCo = (SELECT SST_Value FROM Common.SystemSetting WHERE SST_Title = 'GoldApiProviderCo' AND SST_UserID = 0 )   
		
		
		-- مابه التفاوت نرخ قبلی و نرخ فعلی
		-- این مقدار محاسبه و درج می گردد [Gold].[GPI_Insert] در صورتی که این مقدار 1- باشد، در اس پی
		-- به همین دلیل ما برای همه مقادیر به غیر از سکه ها، این مقدار رو 1- در نظر می گیریم
		-- در سکه ها چون این ما به التفاوت درج نمی شود، به همین دلیل صفر در نظر گرفته می شود
		DECLARE @GPI_Difference			[Common].[_INT_]  = -1
		DECLARE @GPI_Difference_Coins	[Common].[_INT_]  = 0 
		
		DECLARE @GPI_ID		[Common].[_INT_]
		
		-- ضریب تبدیل اونس به گرم
		-- اونس معمولی در سیستم بین المللی اوزان، برابر با یک شانزدهم پوند یا ۴۰۰ ارزن است که در سیستم متریک مساوی ۲۸٫۳۴۹۵۲۳۱۲۵ گرم می شود
		-- هم‌چنین برای اندازه‌گیری وزن فلزات گران‌بها یعنی؛ طلا، نقره، پلاتین و پالادیم از اونس بین المللی تروا استفاده می شود. که معادل ۳۱٫۱۰۳۴۷۶۸ گرم است
		-- این اونس فقط برای اندازه گیری این فلزات گران بها کاربرد دارد و وزن شمش ها و سکه های طلا و دیگر فلزات گران بها و همین طور قیمت آن ها معمولاً با اونس تروا بیان می شود
		-- از این ضریب برای تبدیل قیمت اونس نقره / پلاتین به قیمت گرم نقره / پلاتین استفاده می شود
		-- چون ما در نرم افزار قیمت گرم نقره / پلاتین را داریم
		DECLARE @OunceToGramConversionRatio		[Common].[_MONEY_] = 31.1034768
		
		-- ضریب تبدیل مثقال به گرم
		-- يك مثقال طلا: 4.608 گرم می باشد
		DECLARE @MesghalToGramConversionRatio	[Common].[_MONEY_] = 4.608
		
		-- =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
		-- استخراج قیمت دلار
		-- جهت بروز رسانی مقدار مورد نظر در جدول قیمت روزانه
		-- بایستی تنظیمات مربوط به بروز رسانی / عدم بروز رسانی این مقدار نیز بررسی شود
		-- =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
		DECLARE @UpdatePrice_Dollar [Common].[_INT_]
		SELECT @UpdatePrice_Dollar = SST_Value FROM Common.SystemSetting WHERE SST_Title = 'UpdatePrice_Dollar' AND SST_UserID = 0

		IF @UpdatePrice_Dollar = 1
		BEGIN
			DECLARE @LastPrice_Dollar [Common].[_MONEY_]
			SET @LastPrice_Dollar = CAST(ROUND(ISNULL((SELECT TOP 1 [GOA_Price] 
															FROM [Common].[GoldApi] 
															WHERE [GOA_Slug] = CASE @GoldApiProviderCo 
															                        WHEN 0 THEN 'usd'
															                        WHEN 1 THEN 'Dollar'
															                        WHEN 2 THEN 'Dollar'
															                   END 
															ORDER BY [GOA_ID] DESC), 0), 0, 0) AS MONEY)
		
			IF @LastPrice_Dollar > 0
			BEGIN
				-- درج اطلاعات در جدول قیمت های روزانه
				EXEC [Gold].[GPI_Insert] @GPI_ID OUTPUT, -1, @GPI_Fixed_ID_Dollar, @LastPrice_Dollar, @InsertDate, @InsertTime, 
					@GPI_Difference, @UserID, 0, 0
				
				-- بروز رسانی تنظیمات مربوطه
				EXEC [Common].[SST_UpdateByTitle] 'DollarPrice', @LastPrice_Dollar, 0
			END 
		END
		-- =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=		
		
		-- =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
		-- استخراج قیمت اونس جهانی طلا [ این قیمت به دلار است ]
		-- جهت بروز رسانی مقدار مورد نظر در جدول قیمت روزانه
		-- بایستی تنظیمات مربوط به بروز رسانی / عدم بروز رسانی این مقدار نیز بررسی شود
		-- =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
		DECLARE @UpdatePrice_GoldOunce [Common].[_INT_]
		SELECT @UpdatePrice_GoldOunce = SST_Value FROM Common.SystemSetting WHERE SST_Title = 'UpdatePrice_GoldOunce' AND SST_UserID = 0

		IF @UpdatePrice_GoldOunce = 1
		BEGIN
			DECLARE @LastPrice_GoldOunce [Common].[_MONEY_]
			SET @LastPrice_GoldOunce = CAST(ROUND(ISNULL((SELECT TOP 1 [GOA_Price] 
															FROM [Common].[GoldApi] 
															WHERE [GOA_Slug] = CASE @GoldApiProviderCo 
															                        WHEN 0 THEN 'ons_gold'
															                        WHEN 1 THEN 'OunceTala'
															                        WHEN 2 THEN 'Ons'
															                   END
															ORDER BY [GOA_ID] DESC), 0), 2, 0) AS MONEY)
		
			IF @LastPrice_GoldOunce > 0
			BEGIN
				-- درج اطلاعات در جدول قیمت های روزانه
				EXEC [Gold].[GPI_Insert] @GPI_ID OUTPUT, -1, @GPI_Fixed_ID_GoldOunce, @LastPrice_GoldOunce, @InsertDate, @InsertTime, 
					@GPI_Difference, @UserID, 0, 0
				
				-- بروز رسانی تنظیمات مربوطه
				EXEC [Common].[SST_UpdateByTitle] 'WorldOuncesPrice', @LastPrice_GoldOunce, 0
			END 
		END
		-- =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
		
		-- =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
		-- استخراج قیمت اونس جهانی نقره [ این قیمت به دلار است ]
		-- جهت بروز رسانی مقدار مورد نظر در جدول قیمت روزانه
		-- ما قیمت اونس جهانی نقره رو دریافت می کنیم؛ ولی در دیتابیس قیمت گرم رو داریم و باید تبدیل انجام دهیم
		-- اونس رو به گرم تبدیل می کنیم و در قیمت دلار ضرب می کنیم تا مبلغ یک گرم نقره به دست بیاید
		-- بایستی تنظیمات مربوط به بروز رسانی / عدم بروز رسانی این مقدار نیز بررسی شود
		-- =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
		DECLARE @UpdatePrice_SilverGram [Common].[_INT_]
		SELECT @UpdatePrice_SilverGram = SST_Value FROM Common.SystemSetting WHERE SST_Title = 'UpdatePrice_SilverGram' AND SST_UserID = 0

		IF @UpdatePrice_SilverGram = 1
		BEGIN
			DECLARE @LastPrice_SilverGram [Common].[_MONEY_]
			
			-- شرکت زربها داده گستر قیمت نقره رو داره
			IF @GoldApiProviderCo = 2
			BEGIN
			   SET @LastPrice_SilverGram = CAST(ROUND(ISNULL((SELECT TOP 1 [GOA_Price] 
															    FROM [Common].[GoldApi] 
															   WHERE [GOA_Slug] = 'Noghre990'
															ORDER BY [GOA_ID] DESC), 0), 2, 0) AS MONEY)
			END
			ELSE
			BEGIN
			
				SET @LastPrice_SilverGram = CAST(ROUND((ISNULL((SELECT TOP 1 [GOA_Price] 
																FROM [Common].[GoldApi] 
																WHERE [GOA_Slug] = 'ons_silver'
																ORDER BY [GOA_ID] DESC), 0) / @OunceToGramConversionRatio) * @LastPrice_Dollar, 0, 0) AS MONEY)
		    END
			
			IF @LastPrice_SilverGram > 0
			BEGIN
				-- درج اطلاعات در جدول قیمت های روزانه
				EXEC [Gold].[GPI_Insert] @GPI_ID OUTPUT, -1, @GPI_Fixed_ID_SilverGram, @LastPrice_SilverGram, @InsertDate, @InsertTime, 
					@GPI_Difference, @UserID, 0, 0
				
				-- بروز رسانی تنظیمات مربوطه
				EXEC [Common].[SST_UpdateByTitle] 'SilverPrice', @LastPrice_SilverGram, 0
			END 
		END
		-- =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=		
		
		-- =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
		-- استخراج قیمت اونس جهانی پلاتین [ این قیمت به دلار است ]
		-- جهت بروز رسانی مقدار مورد نظر در جدول قیمت روزانه
		-- ما قیمت اونس جهانی پلاتین رو دریافت می کنیم؛ ولی در دیتابیس قیمت گرم رو داریم و باید تبدیل انجام دهیم
		-- بایستی تنظیمات مربوط به بروز رسانی / عدم بروز رسانی این مقدار نیز بررسی شود
		-- =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
		DECLARE @UpdatePrice_PlatinumGram [Common].[_INT_]
		SELECT @UpdatePrice_PlatinumGram = SST_Value FROM Common.SystemSetting WHERE SST_Title = 'UpdatePrice_PlatinumGram' AND SST_UserID = 0

		IF @UpdatePrice_PlatinumGram = 1
		BEGIN
			DECLARE @LastPrice_PlatinumGram [Common].[_MONEY_]
			SET @LastPrice_PlatinumGram = CAST(ROUND((ISNULL((SELECT TOP 1 [GOA_Price] 
															FROM [Common].[GoldApi] 
															WHERE [GOA_Slug] = 'ons_platinum'
															ORDER BY [GOA_ID] DESC), 0) / @OunceToGramConversionRatio) * @LastPrice_Dollar, 0, 0) AS MONEY)
		
			IF @LastPrice_PlatinumGram > 0
			BEGIN
				-- درج اطلاعات در جدول قیمت های روزانه
				EXEC [Gold].[GPI_Insert] @GPI_ID OUTPUT, -1, @GPI_Fixed_ID_PlatinumGram, @LastPrice_PlatinumGram, @InsertDate, @InsertTime, 
					@GPI_Difference, @UserID, 0, 0
				
				-- بروز رسانی تنظیمات مربوطه
				EXEC [Common].[SST_UpdateByTitle] 'PlatinumPrice', @LastPrice_PlatinumGram, 0
			END 
		END
		-- =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=		
		
		-- =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
		-- استخراج قیمت مثقال طلا
		-- از این قیمت برای محاسبه مظنه استفاده می کنیم
		-- مظنه: قيمت يك مثقال (معادل 4.608 گرم) طلاي 17 عيار (705) است
		-- برای محاسبه مظنه، بایستی قیمت مثقال طلای که براساس عیار 18 (750) است را به عیار 17 (705) تبدیل کنیم
		-- قیمت مظنه در جدول قیمت روزانه اعمال می شود
		-- بایستی تنظیمات مربوط به بروز رسانی / عدم بروز رسانی این مقدار نیز بررسی شود
		-- =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
		DECLARE @UpdatePrice_Quotation [Common].[_INT_]
		SELECT @UpdatePrice_Quotation = SST_Value FROM Common.SystemSetting WHERE SST_Title = 'UpdatePrice_Quotation' AND SST_UserID = 0

		IF @UpdatePrice_Quotation = 1
		BEGIN
			DECLARE @LastPrice_Quotation [Common].[_MONEY_]
			
			-- شرکت زربها داده گستر قیمت مظنه رو داره
			IF @GoldApiProviderCo = 2
			BEGIN
			   SET @LastPrice_Quotation = CAST(ROUND(ISNULL((SELECT TOP 1 [GOA_Price] 
															    FROM [Common].[GoldApi] 
															   WHERE [GOA_Slug] = 'Mazane'
															ORDER BY [GOA_ID] DESC), 0), 2, 0) AS MONEY)
			END
			ELSE
			BEGIN
				SET @LastPrice_Quotation = CAST(ROUND(ISNULL((SELECT TOP 1 [GOA_Price] 
																FROM [Common].[GoldApi] 
																WHERE [GOA_Slug] = 'mesghal_gold'
																ORDER BY [GOA_ID] DESC), 0) * (CAST(705 AS MONEY) / 750), 0, 0) AS MONEY)
            END
             
			IF @LastPrice_Quotation > 0
			BEGIN
				-- درج اطلاعات در جدول قیمت های روزانه
				EXEC [Gold].[GPI_Insert] @GPI_ID OUTPUT, -1, @GPI_Fixed_ID_Quotation, @LastPrice_Quotation, @InsertDate, @InsertTime, 
					@GPI_Difference, @UserID, 0, 0
				
				-- بروز رسانی تنظیمات مربوطه
				EXEC [Common].[SST_UpdateByTitle] 'GoldQuotationPrice', @LastPrice_Quotation, 0
			END 
		END
		-- =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=			
		
		-- =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
		-- استخراج قیمت طلای 18 عیار
		-- جهت بروز رسانی مقدار مورد نظر در جدول قیمت روزانه
		-- قیمت فروش طلا براساس این قیمت بروز رسانی می شود
		-- بایستی تنظیمات مربوط به بروز رسانی / عدم بروز رسانی این مقدار نیز بررسی شود
		-- =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
		DECLARE @UpdatePrice_GoldSale [Common].[_INT_]
		SELECT @UpdatePrice_GoldSale = SST_Value FROM Common.SystemSetting WHERE SST_Title = 'UpdatePrice_GoldSale' AND SST_UserID = 0

		IF @UpdatePrice_GoldSale = 1
		BEGIN
			DECLARE @LastPrice_GoldSale [Common].[_MONEY_]
			SET @LastPrice_GoldSale = CAST(ROUND(ISNULL((SELECT TOP 1 [GOA_Price] 
															FROM [Common].[GoldApi] 
															WHERE [GOA_Slug] = CASE @GoldApiProviderCo 
															                        WHEN 0 THEN 'gold18'
															                        WHEN 1 THEN 'YekGram18'
															                        WHEN 2 THEN 'Geram18'
															                   END
															ORDER BY [GOA_ID] DESC), 0), 0, 0) AS MONEY)
		
			IF @LastPrice_GoldSale > 0
			BEGIN
				-- درج اطلاعات در جدول قیمت های روزانه
				EXEC [Gold].[GPI_Insert] @GPI_ID OUTPUT, -1, @GPI_Fixed_ID_GoldSale, @LastPrice_GoldSale, @InsertDate, @InsertTime, 
					@GPI_Difference, @UserID, 0, 0
				
				-- بروز رسانی تنظیمات مربوطه
				EXEC [Common].[SST_UpdateByTitle] 'GoldSalePrice', @LastPrice_GoldSale, 0
			END 
		END
		-- =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=		
		
		-- =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
		-- محاسبه قیمت طلای آب شده
		-- جهت بروز رسانی مقدار مورد نظر در جدول قیمت روزانه
		-- نحوه محاسبه قیمت طلای آب شده: قیمت مثقال رو به گرم تبدیل می کنیم
		-- بایستی تنظیمات مربوط به بروز رسانی / عدم بروز رسانی این مقدار نیز بررسی شود
		-- =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
		DECLARE @UpdatePrice_GoldMelted [Common].[_INT_]
		SELECT @UpdatePrice_GoldMelted = SST_Value FROM Common.SystemSetting WHERE SST_Title = 'UpdatePrice_GoldMelted' AND SST_UserID = 0

		IF @UpdatePrice_GoldMelted = 1
		BEGIN
		    DECLARE @LastPrice_GoldMelted [Common].[_MONEY_]
		    
		    IF @GoldApiProviderCo = 0 
		    BEGIN
		       SET @LastPrice_GoldMelted = CAST(ROUND(ISNULL((SELECT TOP 1 [GOA_Price] 
															FROM [Common].[GoldApi] 
															WHERE [GOA_Slug] = 'mesghal_gold'
															ORDER BY [GOA_ID] DESC) / 4.608, 0), 0, 0) AS MONEY)
			END 
			ELSE
			IF @GoldApiProviderCo = 2 
		    BEGIN
			SET @LastPrice_GoldMelted = CAST(ROUND(ISNULL((SELECT TOP 1 [GOA_Price] 
															FROM [Common].[GoldApi] 
															WHERE [GOA_Slug] = 'Pure'
															ORDER BY [GOA_ID] DESC) , 0), 0, 0) AS MONEY)
		     END
		     

			IF @LastPrice_GoldMelted > 0
			BEGIN
				-- درج اطلاعات در جدول قیمت های روزانه
				EXEC [Gold].[GPI_Insert] @GPI_ID OUTPUT, -1, @GPI_Fixed_ID_GoldMelted, @LastPrice_GoldMelted, @InsertDate, @InsertTime, 
					@GPI_Difference, @UserID, 0, 0

				-- بروز رسانی تنظیمات مربوطه
				EXEC [Common].[SST_UpdateByTitle] 'GoldMeltedPrice', @LastPrice_GoldMelted, 0
			END 
		END
		-- =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=		
		
		-- =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
		-- محاسبه قیمت خرید طلا
		-- این قیمت در وب سرویس شرکت تابان گوهر نفیس میتواند مستقیم قیمت را دریافت کند و یا بر اساس قیمت فروش محاسبه شود  
		-- قیمت خرید براساس قیمت فروش (تابلو) یا آب شده استخراج می شود
		-- جهت بروز رسانی مقدار مورد نظر در جدول قیمت روزانه
		-- چون این مقدار محاسباتی است، ابتدا بایستی تنظیمات مربوطه به نحوه محاسبه قیمت خرید طلا استخراج شود	
		-- =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=			
		-- متغییری برای نگهداری آخرین مبلغ استخراج شده
		DECLARE @LastPrice_GoldBuy [Common].[_MONEY_]	
		
		DECLARE @UpdatePrice_GoldBuy [Common].[_INT_]
		SELECT @UpdatePrice_GoldBuy = SST_Value FROM Common.SystemSetting WHERE SST_Title = 'UpdatePrice_GoldBuy' AND SST_UserID = 0
		
		-- شرکت تابان گوهر نفیس
		-- شرکت زربها داده گستر
		IF (@GoldApiProviderCo IN ( 1,2 )) AND (@UpdatePrice_GoldBuy = 1)
		BEGIN

			SET @LastPrice_GoldBuy = CAST(ROUND(ISNULL((SELECT TOP 1 [GOA_Price] 
															FROM [Common].[GoldApi] 
															WHERE [GOA_Slug] = CASE @GoldApiProviderCo 
															                        WHEN 1 THEN 'KharidMotefaregheh18'
															                        WHEN 2 THEN 'Kharid'
															                    END    
															ORDER BY [GOA_ID] DESC), 0), 0, 0) AS MONEY)
		
			IF @LastPrice_GoldBuy > 0
			BEGIN					
				-- درج اطلاعات در جدول قیمت های روزانه
				EXEC [Gold].[GPI_Insert] @GPI_ID OUTPUT, -1, @GPI_Fixed_ID_GoldBuy, @LastPrice_GoldBuy, @InsertDate, @InsertTime, 
					@GPI_Difference, @UserID, 0, 0
				
				-- بروز رسانی تنظیمات مربوطه
				EXEC [Common].[SST_UpdateByTitle] 'GoldBuyPrice', @LastPrice_GoldBuy, 0
			END		
		
		END
		ELSE 
		BEGIN
		
			DECLARE @CalcBuyPrice_Gold [Common].[_INT_]
			SELECT @CalcBuyPrice_Gold = SST_Value FROM Common.SystemSetting WHERE SST_Title = 'CalcBuyPrice_Gold' AND SST_UserID = 0
			
			IF @CalcBuyPrice_Gold = 1
			BEGIN
			
			
				-- محاسبه براساس: قیمت فروش (تابلو) / قیمت آب شده
				-- 0 » قیمت فروش (تابلو)
				-- 1 » قیمت آب شده
				DECLARE @CalcBuyPrice_Gold_BasedOn [Common].[_INT_]
				SELECT @CalcBuyPrice_Gold_BasedOn = SST_Value FROM Common.SystemSetting WHERE SST_Title = 'CalcBuyPrice_Gold_BasedOn' AND SST_UserID = 0
				
				-- محاسبه براساس قیمت فروش (تابلو)
				IF @CalcBuyPrice_Gold_BasedOn = 0
				BEGIN
					DECLARE @LastPrice_GoldSale_1 [Common].[_MONEY_]
					SET @LastPrice_GoldSale_1 = CAST(ROUND(ISNULL((SELECT TOP 1 [GOA_Price] 
																	FROM [Common].[GoldApi] 
																	WHERE [GOA_Slug] = 'gold18'
																	ORDER BY [GOA_ID] DESC), 0), 0, 0) AS MONEY)
																
					SET @LastPrice_GoldBuy = @LastPrice_GoldSale_1
				END
				-- محاسبه براساس قیمت آب شده
				ELSE
				BEGIN
					DECLARE @LastPrice_GoldMelted_1 [Common].[_MONEY_]
					SET @LastPrice_GoldMelted_1 = CAST(ROUND(ISNULL((SELECT TOP 1 [GOA_Price] 
																	FROM [Common].[GoldApi] 
																	WHERE [GOA_Slug] = 'mesghal_gold'
																	ORDER BY [GOA_ID] DESC) / 4.608, 0), 0, 0) AS MONEY)

					SET @LastPrice_GoldBuy = @LastPrice_GoldMelted_1
				END

				IF @LastPrice_GoldBuy > 0
				BEGIN
					-- محاسبه به صورت: افزاینده / کاهنده
					-- 0 » افزاینده
					-- 1 » کاهنده
					DECLARE @CalcBuyPrice_Gold_Mode [Common].[_INT_]
					SELECT @CalcBuyPrice_Gold_Mode = SST_Value FROM Common.SystemSetting WHERE SST_Title = 'CalcBuyPrice_Gold_Mode' AND SST_UserID = 0				
				
					-- ضریب محاسبه قیمت
					DECLARE @CalcBuyPrice_Gold_Ratio [Common].[_MONEY_]
					SELECT @CalcBuyPrice_Gold_Ratio = SST_Value FROM Common.SystemSetting WHERE SST_Title = 'CalcBuyPrice_Gold_Ratio' AND SST_UserID = 0			
				
					-- افزاینده
					IF @CalcBuyPrice_Gold_Mode = 0
						SET @LastPrice_GoldBuy = @LastPrice_GoldBuy + (@LastPrice_GoldBuy * @CalcBuyPrice_Gold_Ratio)
					-- کاهنده
					ELSE
						SET @LastPrice_GoldBuy = @LastPrice_GoldBuy * @CalcBuyPrice_Gold_Ratio
					
					IF @LastPrice_GoldBuy < 0
						SET @LastPrice_GoldBuy = 0	
						
					-- کردن مبلغ برای جلوگیری از اعشاری شدن مبلغ محاسبه شده ROUND و CAST
					SET @LastPrice_GoldBuy = CAST(ROUND(@LastPrice_GoldBuy, 0, 0) AS MONEY)	
						
					IF @LastPrice_GoldBuy > 0
					BEGIN					
						-- درج اطلاعات در جدول قیمت های روزانه
						EXEC [Gold].[GPI_Insert] @GPI_ID OUTPUT, -1, @GPI_Fixed_ID_GoldBuy, @LastPrice_GoldBuy, @InsertDate, @InsertTime, 
							@GPI_Difference, @UserID, 0, 0
						
						-- بروز رسانی تنظیمات مربوطه
						EXEC [Common].[SST_UpdateByTitle] 'GoldBuyPrice', @LastPrice_GoldBuy, 0
					END
				END						
			END		
		END
		-- =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
		
		-- =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
		-- محاسبه قیمت تعویض طلا
		-- این قیمت در وب سرویس شرکت تابان گوهر نفیس میتواند مستقیم قیمت را دریافت کند و یا بر اساس قیمت فروش محاسبه شود 
		-- قیمت تعویض براساس قیمت فروش (تابلو) یا آب شده استخراج می شود
		-- جهت بروز رسانی مقدار مورد نظر در جدول قیمت روزانه
		-- چون این مقدار محاسباتی است، ابتدا بایستی تنظیمات مربوطه به نحوه محاسبه قیمت تعویض طلا استخراج شود	
		-- =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=			
		
		-- متغییری برای نگهداری آخرین مبلغ استخراج شده
		DECLARE @LastPrice_GoldReplacement [Common].[_MONEY_]
		
		DECLARE @UpdatePrice_GoldReplacement     [Common].[_INT_]
		SELECT @UpdatePrice_GoldReplacement = SST_Value FROM Common.SystemSetting WHERE SST_Title = 'UpdatePrice_GoldReplacement' AND SST_UserID = 0
		
		-- شرکت تابان گوهر نفیس
		-- شرکت زربها داده گستر 
		IF (@GoldApiProviderCo IN ( 1,2 )) AND (@UpdatePrice_GoldReplacement = 1)
		BEGIN

				SET @LastPrice_GoldReplacement = CAST(ROUND(ISNULL((SELECT TOP 1 [GOA_Price] 
																FROM [Common].[GoldApi] 
																WHERE [GOA_Slug] = CASE @GoldApiProviderCo 
																                   WHEN 1 THEN 'TavizMotefaregheh18'
																                   WHEN 2 THEN 'Taviz'
																                   END
																ORDER BY [GOA_ID] DESC) , 0), 0, 0) AS MONEY)
			
				IF @LastPrice_GoldReplacement > 0
				BEGIN
					-- درج اطلاعات در جدول قیمت های روزانه
					EXEC [Gold].[GPI_Insert] @GPI_ID OUTPUT, -1, @GPI_Fixed_ID_GoldReplacement, @LastPrice_GoldReplacement, @InsertDate, @InsertTime, 
						@GPI_Difference, @UserID, 0, 0
					
					-- بروز رسانی تنظیمات مربوطه
					EXEC [Common].[SST_UpdateByTitle] 'GoldChangedPrice', @LastPrice_GoldReplacement, 0
				END 
		END
		ELSE
		BEGIN
			
			DECLARE @CalcReplacementPrice_Gold [Common].[_INT_]
			SELECT @CalcReplacementPrice_Gold = SST_Value FROM Common.SystemSetting WHERE SST_Title = 'CalcReplacementPrice_Gold' AND SST_UserID = 0
			
			IF @CalcReplacementPrice_Gold = 1
			BEGIN
							
				-- محاسبه براساس: قیمت فروش (تابلو) / قیمت آب شده
				-- 0 » قیمت فروش (تابلو)
				-- 1 » قیمت آب شده
				DECLARE @CalcReplacementPrice_Gold_BasedOn [Common].[_INT_]
				SELECT @CalcReplacementPrice_Gold_BasedOn = SST_Value FROM Common.SystemSetting WHERE SST_Title = 'CalcReplacementPrice_Gold_BasedOn' AND SST_UserID = 0
				
				-- محاسبه براساس قیمت فروش (تابلو)
				IF @CalcReplacementPrice_Gold_BasedOn = 0
				BEGIN
					DECLARE @LastPrice_GoldSale_2 [Common].[_MONEY_]
					SET @LastPrice_GoldSale_2 = CAST(ROUND(ISNULL((SELECT TOP 1 [GOA_Price] 
																	FROM [Common].[GoldApi] 
																	WHERE [GOA_Slug] = 'gold18'
																	ORDER BY [GOA_ID] DESC), 0), 0, 0) AS MONEY)
																
					SET @LastPrice_GoldReplacement = @LastPrice_GoldSale_2
				END
				-- محاسبه براساس قیمت آب شده
				ELSE
				BEGIN
					DECLARE @LastPrice_GoldMelted_2 [Common].[_MONEY_]
					SET @LastPrice_GoldMelted_2 = CAST(ROUND(ISNULL((SELECT TOP 1 [GOA_Price] 
																	FROM [Common].[GoldApi] 
																	WHERE [GOA_Slug] = 'mesghal_gold'
																	ORDER BY [GOA_ID] DESC) / 4.608, 0), 0, 0) AS MONEY)

					SET @LastPrice_GoldReplacement = @LastPrice_GoldMelted_2
				END

				IF @LastPrice_GoldReplacement > 0
				BEGIN
					-- محاسبه به صورت: افزاینده / کاهنده
					-- 0 » افزاینده
					-- 1 » کاهنده
					DECLARE @CalcReplacementPrice_Gold_Mode [Common].[_INT_]
					SELECT @CalcReplacementPrice_Gold_Mode = SST_Value FROM Common.SystemSetting WHERE SST_Title = 'CalcReplacementPrice_Gold_Mode' AND SST_UserID = 0				
				
					-- ضریب محاسبه قیمت
					DECLARE @CalcReplacementPrice_Gold_Ratio [Common].[_MONEY_]
					SELECT @CalcReplacementPrice_Gold_Ratio = SST_Value FROM Common.SystemSetting WHERE SST_Title = 'CalcReplacementPrice_Gold_Ratio' AND SST_UserID = 0			
				
					-- افزاینده
					IF @CalcReplacementPrice_Gold_Mode = 0
						SET @LastPrice_GoldReplacement = @LastPrice_GoldReplacement + (@LastPrice_GoldReplacement * @CalcReplacementPrice_Gold_Ratio)
					-- کاهنده
					ELSE
						SET @LastPrice_GoldReplacement = @LastPrice_GoldReplacement * @CalcReplacementPrice_Gold_Ratio
					
					IF @LastPrice_GoldReplacement < 0
						SET @LastPrice_GoldReplacement = 0	
						
					-- کردن مبلغ برای جلوگیری از اعشاری شدن مبلغ محاسبه شده ROUND و CAST
					SET @LastPrice_GoldReplacement = CAST(ROUND(@LastPrice_GoldReplacement, 0, 0) AS MONEY)						
						
					IF @LastPrice_GoldReplacement > 0
					BEGIN					
						-- درج اطلاعات در جدول قیمت های روزانه
						EXEC [Gold].[GPI_Insert] @GPI_ID OUTPUT, -1, @GPI_Fixed_ID_GoldReplacement, @LastPrice_GoldReplacement, @InsertDate, @InsertTime, 
							@GPI_Difference, @UserID, 0, 0
						
						-- بروز رسانی تنظیمات مربوطه
						EXEC [Common].[SST_UpdateByTitle] 'GoldChangedPrice', @LastPrice_GoldReplacement, 0
					END
				END						
			END		
		END
		-- =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=		
		
		-- =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
		-- استخراج قیمت سکه بهار آزادی [ طرح قدیم ]
		-- جهت بروز رسانی مقدار مورد نظر در جدول قیمت روزانه
		-- قیمت خرید و فروش سکه بهار آزادی [ طرح قدیم ] در اینجا محاسبه می گردد
		-- بایستی تنظیمات مربوط به بروز رسانی / عدم بروز رسانی این مقدار نیز بررسی شود
		-- =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
		DECLARE @UpdatePrice_GoldCoinOld [Common].[_INT_]
		SELECT @UpdatePrice_GoldCoinOld = SST_Value FROM Common.SystemSetting WHERE SST_Title = 'UpdatePrice_GoldCoinOld' AND SST_UserID = 0

		DECLARE @CalcBuyPrice_GoldCoinOld [Common].[_INT_]
		SELECT @CalcBuyPrice_GoldCoinOld = SST_Value FROM Common.SystemSetting WHERE SST_Title = 'CalcBuyPrice_GoldCoinOld' AND SST_UserID = 0

		IF (@UpdatePrice_GoldCoinOld = 1) OR (@CalcBuyPrice_GoldCoinOld = 1)
		BEGIN
			DECLARE @LastPrice_GoldCoinOld [Common].[_MONEY_]
			SET @LastPrice_GoldCoinOld = CAST(ROUND(ISNULL((SELECT TOP 1 [GOA_Price] 
															FROM [Common].[GoldApi] 
															WHERE [GOA_Slug] = CASE @GoldApiProviderCo 
															                        WHEN 0 THEN 'sekebaharazadi'
															                        WHEN 1 THEN 'SekehTamam'
															                        WHEN 2 THEN 'SekeGhadim'
															                   END 
															ORDER BY [GOA_ID] DESC), 0), 0, 0) AS MONEY)
		
			IF @LastPrice_GoldCoinOld > 0
			BEGIN
				-- --------------------------------------------------------------
				-- محاسبه قیمت خرید سکه بهار آزادی [ طرح قدیم ] براساس قیمت فروش
				-- بایستی قیمت خرید نیز در اطلاعات قیمت روزانه درج شود، به همین دلیل محاسبه می شود
				-- ابتدا بایستی تنظیمات مربوطه به نحوه محاسبه قیمت خرید استخراج شود
				-- --------------------------------------------------------------
				DECLARE @BuyPrice_GoldCoinOld [Common].[_MONEY_] = 0
				
				IF @CalcBuyPrice_GoldCoinOld = 1
				BEGIN
					-- محاسبه به صورت: افزاینده / کاهنده
					-- 0 » افزاینده
					-- 1 » کاهنده
					DECLARE @CalcBuyPrice_GoldCoinOld_Mode [Common].[_INT_]
					SELECT @CalcBuyPrice_GoldCoinOld_Mode = SST_Value FROM Common.SystemSetting WHERE SST_Title = 'CalcBuyPrice_GoldCoinOld_Mode' AND SST_UserID = 0				
				
					-- نحوه محاسبه قیمت: با ضریب / با مبلغ 
					-- 0 » با ضریب
					-- 1 » با مبلغ
					DECLARE @CalcBuyPrice_GoldCoinOld_Type [Common].[_INT_]
					SELECT @CalcBuyPrice_GoldCoinOld_Type = SST_Value FROM Common.SystemSetting WHERE SST_Title = 'CalcBuyPrice_GoldCoinOld_Type' AND SST_UserID = 0
	
					-- محاسبه با ضریب
					IF @CalcBuyPrice_GoldCoinOld_Type = 0
					BEGIN
						-- ضریب محاسبه قیمت
						DECLARE @CalcBuyPrice_GoldCoinOld_Ratio [Common].[_MONEY_]
						SELECT @CalcBuyPrice_GoldCoinOld_Ratio = SST_Value FROM Common.SystemSetting WHERE SST_Title = 'CalcBuyPrice_GoldCoinOld_Ratio' AND SST_UserID = 0
						
						-- افزاینده
						IF @CalcBuyPrice_GoldCoinOld_Mode = 0
							SET @BuyPrice_GoldCoinOld = @LastPrice_GoldCoinOld + (@LastPrice_GoldCoinOld * @CalcBuyPrice_GoldCoinOld_Ratio)
						-- کاهنده
						ELSE
							SET @BuyPrice_GoldCoinOld = @LastPrice_GoldCoinOld * @CalcBuyPrice_GoldCoinOld_Ratio
					END
					-- محاسبه با مبلغ
					ELSE
					BEGIN
						-- مبلغ محاسبه قیمت
						DECLARE @CalcBuyPrice_GoldCoinOld_Price [Common].[_MONEY_]
						SELECT @CalcBuyPrice_GoldCoinOld_Price = SST_Value FROM Common.SystemSetting WHERE SST_Title = 'CalcBuyPrice_GoldCoinOld_Price' AND SST_UserID = 0
						
						-- افزاینده
						IF @CalcBuyPrice_GoldCoinOld_Mode = 0
							SET @BuyPrice_GoldCoinOld = @LastPrice_GoldCoinOld + @CalcBuyPrice_GoldCoinOld_Price
						-- کاهنده
						ELSE
							SET @BuyPrice_GoldCoinOld = @LastPrice_GoldCoinOld - @CalcBuyPrice_GoldCoinOld_Price
					END	
					
					IF @BuyPrice_GoldCoinOld < 0
						SET @BuyPrice_GoldCoinOld = 0
						
					-- کردن مبلغ برای جلوگیری از اعشاری شدن مبلغ محاسبه شده ROUND و CAST
					SET @BuyPrice_GoldCoinOld = CAST(ROUND(@BuyPrice_GoldCoinOld, 0, 0) AS MONEY)										
				END
				
				-- --------------------------------------------------------------
			
				-- [Gold].[GoldCommodity] استخراج آیدی مربوط به سکه بهار آزادی [ طرح قدیم ] در جدول 
				-- استخراج شود [Common].[ConstantLookup] این آیدی بایستی از جدول
				SET @GPI_GCM_ID_GoldCoinOld = ISNULL((SELECT TOP 1 [CNL_ReferID]
														FROM [Common].[ConstantLookup]
														WHERE [CNL_TBL_Handled] = @TBL_Handled_GoldCommodity AND
																[CNL_Name] = 'GoldCommodity_Default_OldCoin'), 0)
			
				-- تعیین قیمت فروش براساس تنظیمات مربوط به بروز رسانی یا عدم بروز رسانی این قیمت
				-- چون هم تنظیمات بروز رسانی قیمت فروش و هم قیمت خرید رو داریم
				-- اگر قصد بروز رسانی قیمت خرید رو داشته باشیم و فروش رو نداشته باشیم، در اینجا کنترل می کنیم که مقدار فروش به اشتباه بروز رسانی نشود
				IF @UpdatePrice_GoldCoinOld = 0
					SET @LastPrice_GoldCoinOld = 0
			
				-- درج اطلاعات در جدول قیمت های روزانه
				EXEC [Gold].[GPI_Insert] @GPI_ID OUTPUT, @GPI_GCM_ID_GoldCoinOld, -1, @LastPrice_GoldCoinOld, @InsertDate, @InsertTime, 
					@GPI_Difference_Coins, @UserID, @BuyPrice_GoldCoinOld, 1
			END 
		END
		-- =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=		
		
		-- =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
		-- استخراج قیمت سکه امامی [ طرح جدید ]
		-- جهت بروز رسانی مقدار مورد نظر در جدول قیمت روزانه
		-- قیمت خرید و فروش سکه امامی [ طرح جدید ] در اینجا محاسبه می گردد
		-- بایستی تنظیمات مربوط به بروز رسانی / عدم بروز رسانی این مقدار نیز بررسی شود
		-- =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
		DECLARE @UpdatePrice_GoldCoinNew [Common].[_INT_]
		SELECT @UpdatePrice_GoldCoinNew = SST_Value FROM Common.SystemSetting WHERE SST_Title = 'UpdatePrice_GoldCoinNew' AND SST_UserID = 0

		DECLARE @CalcBuyPrice_GoldCoinNew [Common].[_INT_]
		SELECT @CalcBuyPrice_GoldCoinNew = SST_Value FROM Common.SystemSetting WHERE SST_Title = 'CalcBuyPrice_GoldCoinNew' AND SST_UserID = 0

		IF (@UpdatePrice_GoldCoinNew = 1) OR (@CalcBuyPrice_GoldCoinNew = 1)
		BEGIN
			DECLARE @LastPrice_GoldCoinNew [Common].[_MONEY_]
			SET @LastPrice_GoldCoinNew = CAST(ROUND(ISNULL((SELECT TOP 1 [GOA_Price] 
															FROM [Common].[GoldApi] 
															WHERE [GOA_Slug] = CASE @GoldApiProviderCo 
															                        WHEN 0 THEN 'sekeemami'
															                        WHEN 1 THEN 'SekehEmam'
															                        WHEN 2 THEN 'Tamam'
															                   END 
															ORDER BY [GOA_ID] DESC), 0), 0, 0) AS MONEY)
		
			IF @LastPrice_GoldCoinNew > 0
			BEGIN
				-- --------------------------------------------------------------
				-- محاسبه قیمت خرید سکه امامی [ طرح جدید ] براساس قیمت فروش
				-- بایستی قیمت خرید نیز در اطلاعات قیمت روزانه درج شود، به همین دلیل محاسبه می شود
				-- ابتدا بایستی تنظیمات مربوطه به نحوه محاسبه قیمت خرید استخراج شود
				-- --------------------------------------------------------------
				DECLARE @BuyPrice_GoldCoinNew [Common].[_MONEY_] = 0
				
				IF @CalcBuyPrice_GoldCoinNew = 1
				BEGIN
					-- محاسبه به صورت: افزاینده / کاهنده
					-- 0 » افزاینده
					-- 1 » کاهنده
					DECLARE @CalcBuyPrice_GoldCoinNew_Mode [Common].[_INT_]
					SELECT @CalcBuyPrice_GoldCoinNew_Mode = SST_Value FROM Common.SystemSetting WHERE SST_Title = 'CalcBuyPrice_GoldCoinNew_Mode' AND SST_UserID = 0				
				
					-- نحوه محاسبه قیمت: با ضریب / با مبلغ 
					-- 0 » با ضریب
					-- 1 » با مبلغ
					DECLARE @CalcBuyPrice_GoldCoinNew_Type [Common].[_INT_]
					SELECT @CalcBuyPrice_GoldCoinNew_Type = SST_Value FROM Common.SystemSetting WHERE SST_Title = 'CalcBuyPrice_GoldCoinNew_Type' AND SST_UserID = 0
	
					-- محاسبه با ضریب
					IF @CalcBuyPrice_GoldCoinNew_Type = 0
					BEGIN
						-- ضریب محاسبه قیمت
						DECLARE @CalcBuyPrice_GoldCoinNew_Ratio [Common].[_MONEY_]
						SELECT @CalcBuyPrice_GoldCoinNew_Ratio = SST_Value FROM Common.SystemSetting WHERE SST_Title = 'CalcBuyPrice_GoldCoinNew_Ratio' AND SST_UserID = 0
						
						-- افزاینده
						IF @CalcBuyPrice_GoldCoinNew_Mode = 0
							SET @BuyPrice_GoldCoinNew = @LastPrice_GoldCoinNew + (@LastPrice_GoldCoinNew * @CalcBuyPrice_GoldCoinNew_Ratio)
						-- کاهنده
						ELSE
							SET @BuyPrice_GoldCoinNew = @LastPrice_GoldCoinNew * @CalcBuyPrice_GoldCoinNew_Ratio
					END
					-- محاسبه با مبلغ
					ELSE
					BEGIN
						-- مبلغ محاسبه قیمت
						DECLARE @CalcBuyPrice_GoldCoinNew_Price [Common].[_MONEY_]
						SELECT @CalcBuyPrice_GoldCoinNew_Price = SST_Value FROM Common.SystemSetting WHERE SST_Title = 'CalcBuyPrice_GoldCoinNew_Price' AND SST_UserID = 0
						
						-- افزاینده
						IF @CalcBuyPrice_GoldCoinNew_Mode = 0
							SET @BuyPrice_GoldCoinNew = @LastPrice_GoldCoinNew + @CalcBuyPrice_GoldCoinNew_Price
						-- کاهنده
						ELSE
							SET @BuyPrice_GoldCoinNew = @LastPrice_GoldCoinNew - @CalcBuyPrice_GoldCoinNew_Price
					END	
					
					IF @BuyPrice_GoldCoinNew < 0
						SET @BuyPrice_GoldCoinNew = 0
						
					-- کردن مبلغ برای جلوگیری از اعشاری شدن مبلغ محاسبه شده ROUND و CAST
					SET @BuyPrice_GoldCoinNew = CAST(ROUND(@BuyPrice_GoldCoinNew, 0, 0) AS MONEY)										
				END
				
				-- --------------------------------------------------------------
			
				-- [Gold].[GoldCommodity] استخراج آیدی مربوط به سکه امامی [ طرح جدید ] در جدول 
				-- استخراج شود [Common].[ConstantLookup] این آیدی بایستی از جدول
				SET @GPI_GCM_ID_GoldCoinNew = ISNULL((SELECT TOP 1 [CNL_ReferID]
														FROM [Common].[ConstantLookup]
														WHERE [CNL_TBL_Handled] = @TBL_Handled_GoldCommodity AND
																[CNL_Name] = 'GoldCommodity_Default_NewCoin'), 0)
			
				-- تعیین قیمت فروش براساس تنظیمات مربوط به بروز رسانی یا عدم بروز رسانی این قیمت
				-- چون هم تنظیمات بروز رسانی قیمت فروش و هم قیمت خرید رو داریم
				-- اگر قصد بروز رسانی قیمت خرید رو داشته باشیم و فروش رو نداشته باشیم، در اینجا کنترل می کنیم که مقدار فروش به اشتباه بروز رسانی نشود
				IF @UpdatePrice_GoldCoinNew = 0
					SET @LastPrice_GoldCoinNew = 0			
			
				-- درج اطلاعات در جدول قیمت های روزانه
				EXEC [Gold].[GPI_Insert] @GPI_ID OUTPUT, @GPI_GCM_ID_GoldCoinNew, -1, @LastPrice_GoldCoinNew, @InsertDate, @InsertTime, 
					@GPI_Difference_Coins, @UserID, @BuyPrice_GoldCoinNew, 1
			END 
		END
		-- =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=			
	
		-- =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
		-- استخراج قیمت نیم سکه
		-- جهت بروز رسانی مقدار مورد نظر در جدول قیمت روزانه
		-- قیمت خرید و فروش نیم سکه در اینجا محاسبه می گردد
		-- بایستی تنظیمات مربوط به بروز رسانی / عدم بروز رسانی این مقدار نیز بررسی شود
		-- =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
		DECLARE @UpdatePrice_GoldHalfCoin [Common].[_INT_]
		SELECT @UpdatePrice_GoldHalfCoin = SST_Value FROM Common.SystemSetting WHERE SST_Title = 'UpdatePrice_GoldHalfCoin' AND SST_UserID = 0

		DECLARE @CalcBuyPrice_GoldHalfCoin [Common].[_INT_]
		SELECT @CalcBuyPrice_GoldHalfCoin = SST_Value FROM Common.SystemSetting WHERE SST_Title = 'CalcBuyPrice_GoldHalfCoin' AND SST_UserID = 0

		IF (@UpdatePrice_GoldHalfCoin = 1) OR (@CalcBuyPrice_GoldHalfCoin = 1)
		BEGIN
			DECLARE @LastPrice_GoldHalfCoin [Common].[_MONEY_]
			SET @LastPrice_GoldHalfCoin = CAST(ROUND(ISNULL((SELECT TOP 1 [GOA_Price] 
															   FROM [Common].[GoldApi] 
															  WHERE [GOA_Slug] = CASE @GoldApiProviderCo 
															                            WHEN 0 THEN 'nimseke'
															                            WHEN 1 THEN 'SekehNim'
															                            WHEN 2 THEN 'Nim'
															                        END 
														   ORDER BY [GOA_ID] DESC), 0), 0, 0) AS MONEY)
		
			IF @LastPrice_GoldHalfCoin > 0
			BEGIN
				-- --------------------------------------------------------------
				-- محاسبه قیمت خرید نیم سکه براساس قیمت فروش
				-- بایستی قیمت خرید نیز در اطلاعات قیمت روزانه درج شود، به همین دلیل محاسبه می شود
				-- ابتدا بایستی تنظیمات مربوطه به نحوه محاسبه قیمت خرید استخراج شود
				-- --------------------------------------------------------------
				DECLARE @BuyPrice_GoldHalfCoin [Common].[_MONEY_] = 0
				
				IF @CalcBuyPrice_GoldHalfCoin = 1
				BEGIN
					-- محاسبه به صورت: افزاینده / کاهنده
					-- 0 » افزاینده
					-- 1 » کاهنده
					DECLARE @CalcBuyPrice_GoldHalfCoin_Mode [Common].[_INT_]
					SELECT @CalcBuyPrice_GoldHalfCoin_Mode = SST_Value FROM Common.SystemSetting WHERE SST_Title = 'CalcBuyPrice_GoldHalfCoin_Mode' AND SST_UserID = 0				
				
					-- نحوه محاسبه قیمت: با ضریب / با مبلغ 
					-- 0 » با ضریب
					-- 1 » با مبلغ
					DECLARE @CalcBuyPrice_GoldHalfCoin_Type [Common].[_INT_]
					SELECT @CalcBuyPrice_GoldHalfCoin_Type = SST_Value FROM Common.SystemSetting WHERE SST_Title = 'CalcBuyPrice_GoldHalfCoin_Type' AND SST_UserID = 0
	
					-- محاسبه با ضریب
					IF @CalcBuyPrice_GoldHalfCoin_Type = 0
					BEGIN
						-- ضریب محاسبه قیمت
						DECLARE @CalcBuyPrice_GoldHalfCoin_Ratio [Common].[_MONEY_]
						SELECT @CalcBuyPrice_GoldHalfCoin_Ratio = SST_Value FROM Common.SystemSetting WHERE SST_Title = 'CalcBuyPrice_GoldHalfCoin_Ratio' AND SST_UserID = 0
						
						-- افزاینده
						IF @CalcBuyPrice_GoldHalfCoin_Mode = 0
							SET @BuyPrice_GoldHalfCoin = @LastPrice_GoldHalfCoin + (@LastPrice_GoldHalfCoin * @CalcBuyPrice_GoldHalfCoin_Ratio)
						-- کاهنده
						ELSE
							SET @BuyPrice_GoldHalfCoin = @LastPrice_GoldHalfCoin * @CalcBuyPrice_GoldHalfCoin_Ratio
					END
					-- محاسبه با مبلغ
					ELSE
					BEGIN
						-- مبلغ محاسبه قیمت
						DECLARE @CalcBuyPrice_GoldHalfCoin_Price [Common].[_MONEY_]
						SELECT @CalcBuyPrice_GoldHalfCoin_Price = SST_Value FROM Common.SystemSetting WHERE SST_Title = 'CalcBuyPrice_GoldHalfCoin_Price' AND SST_UserID = 0
						
						-- افزاینده
						IF @CalcBuyPrice_GoldHalfCoin_Mode = 0
							SET @BuyPrice_GoldHalfCoin = @LastPrice_GoldHalfCoin + @CalcBuyPrice_GoldHalfCoin_Price
						-- کاهنده
						ELSE
							SET @BuyPrice_GoldHalfCoin = @LastPrice_GoldHalfCoin - @CalcBuyPrice_GoldHalfCoin_Price
					END	
					
					IF @BuyPrice_GoldHalfCoin < 0
						SET @BuyPrice_GoldHalfCoin = 0	
						
					-- کردن مبلغ برای جلوگیری از اعشاری شدن مبلغ محاسبه شده ROUND و CAST
					SET @BuyPrice_GoldHalfCoin = CAST(ROUND(@BuyPrice_GoldHalfCoin, 0, 0) AS MONEY)								
				END
				
				-- --------------------------------------------------------------
			
				-- [Gold].[GoldCommodity] استخراج آیدی مربوط به نیم سکه در جدول 
				-- استخراج شود [Common].[ConstantLookup] این آیدی بایستی از جدول
				SET @GPI_GCM_ID_GoldHalfCoin = ISNULL((SELECT TOP 1 [CNL_ReferID]
														FROM [Common].[ConstantLookup]
														WHERE [CNL_TBL_Handled] = @TBL_Handled_GoldCommodity AND
																[CNL_Name] = 'GoldCommodity_Default_HalfCoin'), 0)
			
				-- تعیین قیمت فروش براساس تنظیمات مربوط به بروز رسانی یا عدم بروز رسانی این قیمت
				-- چون هم تنظیمات بروز رسانی قیمت فروش و هم قیمت خرید رو داریم
				-- اگر قصد بروز رسانی قیمت خرید رو داشته باشیم و فروش رو نداشته باشیم، در اینجا کنترل می کنیم که مقدار فروش به اشتباه بروز رسانی نشود
				IF @UpdatePrice_GoldHalfCoin = 0
					SET @LastPrice_GoldHalfCoin = 0				
			
				-- درج اطلاعات در جدول قیمت های روزانه
				EXEC [Gold].[GPI_Insert] @GPI_ID OUTPUT, @GPI_GCM_ID_GoldHalfCoin, -1, @LastPrice_GoldHalfCoin, @InsertDate, @InsertTime, 
					@GPI_Difference_Coins, @UserID, @BuyPrice_GoldHalfCoin, 1
			END 
		END
		-- =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
		
		-- =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
		-- استخراج قیمت ربع سکه
		-- جهت بروز رسانی مقدار مورد نظر در جدول قیمت روزانه
		-- قیمت خرید و فروش ربع سکه در اینجا محاسبه می گردد
		-- بایستی تنظیمات مربوط به بروز رسانی / عدم بروز رسانی این مقدار نیز بررسی شود
		-- =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
		DECLARE @UpdatePrice_GoldQuarterCoin [Common].[_INT_]
		SELECT @UpdatePrice_GoldQuarterCoin = SST_Value FROM Common.SystemSetting WHERE SST_Title = 'UpdatePrice_GoldQuarterCoin' AND SST_UserID = 0

		DECLARE @CalcBuyPrice_GoldQuarterCoin [Common].[_INT_]
		SELECT @CalcBuyPrice_GoldQuarterCoin = SST_Value FROM Common.SystemSetting WHERE SST_Title = 'CalcBuyPrice_GoldQuarterCoin' AND SST_UserID = 0

		IF (@UpdatePrice_GoldQuarterCoin = 1) OR (@CalcBuyPrice_GoldQuarterCoin = 1) 
		BEGIN
			DECLARE @LastPrice_GoldQuarterCoin [Common].[_MONEY_]
			SET @LastPrice_GoldQuarterCoin = CAST(ROUND(ISNULL((SELECT TOP 1 [GOA_Price] 
																FROM [Common].[GoldApi] 
																WHERE [GOA_Slug] = CASE @GoldApiProviderCo 
															                            WHEN 0 THEN 'robseke'
															                            WHEN 1 THEN 'SekehRob'
															                            WHEN 2 THEN 'Rob'
															                       END 
																ORDER BY [GOA_ID] DESC), 0), 0, 0) AS MONEY)
		
			IF @LastPrice_GoldQuarterCoin > 0
			BEGIN
				-- --------------------------------------------------------------
				-- محاسبه قیمت خرید ربع سکه براساس قیمت فروش
				-- بایستی قیمت خرید نیز در اطلاعات قیمت روزانه درج شود، به همین دلیل محاسبه می شود
				-- ابتدا بایستی تنظیمات مربوطه به نحوه محاسبه قیمت خرید استخراج شود
				-- --------------------------------------------------------------
				DECLARE @BuyPrice_GoldQuarterCoin [Common].[_MONEY_] = 0
				
				IF @CalcBuyPrice_GoldQuarterCoin = 1
				BEGIN
					-- محاسبه به صورت: افزاینده / کاهنده
					-- 0 » افزاینده
					-- 1 » کاهنده
					DECLARE @CalcBuyPrice_GoldQuarterCoin_Mode [Common].[_INT_]
					SELECT @CalcBuyPrice_GoldQuarterCoin_Mode = SST_Value FROM Common.SystemSetting WHERE SST_Title = 'CalcBuyPrice_GoldQuarterCoin_Mode' AND SST_UserID = 0				
				
					-- نحوه محاسبه قیمت: با ضریب / با مبلغ 
					-- 0 » با ضریب
					-- 1 » با مبلغ
					DECLARE @CalcBuyPrice_GoldQuarterCoin_Type [Common].[_INT_]
					SELECT @CalcBuyPrice_GoldQuarterCoin_Type = SST_Value FROM Common.SystemSetting WHERE SST_Title = 'CalcBuyPrice_GoldQuarterCoin_Type' AND SST_UserID = 0
	
					-- محاسبه با ضریب
					IF @CalcBuyPrice_GoldQuarterCoin_Type = 0
					BEGIN
						-- ضریب محاسبه قیمت
						DECLARE @CalcBuyPrice_GoldQuarterCoin_Ratio [Common].[_MONEY_]
						SELECT @CalcBuyPrice_GoldQuarterCoin_Ratio = SST_Value FROM Common.SystemSetting WHERE SST_Title = 'CalcBuyPrice_GoldQuarterCoin_Ratio' AND SST_UserID = 0
						
						-- افزاینده
						IF @CalcBuyPrice_GoldQuarterCoin_Mode = 0
							SET @BuyPrice_GoldQuarterCoin = @LastPrice_GoldQuarterCoin + (@LastPrice_GoldQuarterCoin * @CalcBuyPrice_GoldQuarterCoin_Ratio)
						-- کاهنده
						ELSE
							SET @BuyPrice_GoldQuarterCoin = @LastPrice_GoldQuarterCoin * @CalcBuyPrice_GoldQuarterCoin_Ratio
					END
					-- محاسبه با مبلغ
					ELSE
					BEGIN
						-- مبلغ محاسبه قیمت
						DECLARE @CalcBuyPrice_GoldQuarterCoin_Price [Common].[_MONEY_]
						SELECT @CalcBuyPrice_GoldQuarterCoin_Price = SST_Value FROM Common.SystemSetting WHERE SST_Title = 'CalcBuyPrice_GoldQuarterCoin_Price' AND SST_UserID = 0
						
						-- افزاینده
						IF @CalcBuyPrice_GoldQuarterCoin_Mode = 0
							SET @BuyPrice_GoldQuarterCoin = @LastPrice_GoldQuarterCoin + @CalcBuyPrice_GoldQuarterCoin_Price
						-- کاهنده
						ELSE
							SET @BuyPrice_GoldQuarterCoin = @LastPrice_GoldQuarterCoin - @CalcBuyPrice_GoldQuarterCoin_Price
					END	
					
					IF @BuyPrice_GoldQuarterCoin < 0
						SET @BuyPrice_GoldQuarterCoin = 0	
						
					-- کردن مبلغ برای جلوگیری از اعشاری شدن مبلغ محاسبه شده ROUND و CAST
					SET @BuyPrice_GoldQuarterCoin = CAST(ROUND(@BuyPrice_GoldQuarterCoin, 0, 0) AS MONEY)									
				END
				
				-- --------------------------------------------------------------
			
				-- [Gold].[GoldCommodity] استخراج آیدی مربوط به ربع سکه در جدول 
				-- استخراج شود [Common].[ConstantLookup] این آیدی بایستی از جدول
				SET @GPI_GCM_ID_GoldQuarterCoin = ISNULL((SELECT TOP 1 [CNL_ReferID]
															FROM [Common].[ConstantLookup]
															WHERE [CNL_TBL_Handled] = @TBL_Handled_GoldCommodity AND
																	[CNL_Name] = 'GoldCommodity_Default_QuartCoin'), 0)
			
				-- تعیین قیمت فروش براساس تنظیمات مربوط به بروز رسانی یا عدم بروز رسانی این قیمت
				-- چون هم تنظیمات بروز رسانی قیمت فروش و هم قیمت خرید رو داریم
				-- اگر قصد بروز رسانی قیمت خرید رو داشته باشیم و فروش رو نداشته باشیم، در اینجا کنترل می کنیم که مقدار فروش به اشتباه بروز رسانی نشود
				IF @UpdatePrice_GoldQuarterCoin = 0
					SET @LastPrice_GoldQuarterCoin = 0				
			
				-- درج اطلاعات در جدول قیمت های روزانه
				EXEC [Gold].[GPI_Insert] @GPI_ID OUTPUT, @GPI_GCM_ID_GoldQuarterCoin, -1, @LastPrice_GoldQuarterCoin, @InsertDate, @InsertTime, 
					@GPI_Difference_Coins, @UserID, @BuyPrice_GoldQuarterCoin, 1
			END 
		END
		-- =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=	
		
		-- =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
		-- استخراج قیمت سکه گرمی
		-- جهت بروز رسانی مقدار مورد نظر در جدول قیمت روزانه
		-- قیمت خرید و فروش سکه گرمی در اینجا محاسبه می گردد
		-- بایستی تنظیمات مربوط به بروز رسانی / عدم بروز رسانی این مقدار نیز بررسی شود
		-- =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
		DECLARE @UpdatePrice_GoldGramCoin [Common].[_INT_]
		SELECT @UpdatePrice_GoldGramCoin = SST_Value FROM Common.SystemSetting WHERE SST_Title = 'UpdatePrice_GoldGramCoin' AND SST_UserID = 0

		DECLARE @CalcBuyPrice_GoldGramCoin [Common].[_INT_]
		SELECT @CalcBuyPrice_GoldGramCoin = SST_Value FROM Common.SystemSetting WHERE SST_Title = 'CalcBuyPrice_GoldGramCoin' AND SST_UserID = 0

		IF (@UpdatePrice_GoldGramCoin = 1) OR (@CalcBuyPrice_GoldGramCoin = 1) 
		BEGIN
			DECLARE @LastPrice_GoldGramCoin [Common].[_MONEY_]
			SET @LastPrice_GoldGramCoin = CAST(ROUND(ISNULL((SELECT TOP 1 [GOA_Price] 
															   FROM [Common].[GoldApi] 
															  WHERE [GOA_Slug] = CASE @GoldApiProviderCo 
															                            WHEN 0 THEN 'geramiseke'
															                            WHEN 1 THEN 'SekehGerami'
															                            WHEN 2 THEN 'YekGerami'
															                        END 
														   ORDER BY [GOA_ID] DESC), 0), 0, 0) AS MONEY)
		
			IF @LastPrice_GoldGramCoin > 0
			BEGIN
				-- --------------------------------------------------------------
				-- محاسبه قیمت خرید سکه گرمی براساس قیمت فروش
				-- بایستی قیمت خرید نیز در اطلاعات قیمت روزانه درج شود، به همین دلیل محاسبه می شود
				-- ابتدا بایستی تنظیمات مربوطه به نحوه محاسبه قیمت خرید استخراج شود
				-- --------------------------------------------------------------
				DECLARE @BuyPrice_GoldGramCoin [Common].[_MONEY_] = 0
				
				IF @CalcBuyPrice_GoldGramCoin = 1
				BEGIN
					-- محاسبه به صورت: افزاینده / کاهنده
					-- 0 » افزاینده
					-- 1 » کاهنده
					DECLARE @CalcBuyPrice_GoldGramCoin_Mode [Common].[_INT_]
					SELECT @CalcBuyPrice_GoldGramCoin_Mode = SST_Value FROM Common.SystemSetting WHERE SST_Title = 'CalcBuyPrice_GoldGramCoin_Mode' AND SST_UserID = 0				
				
					-- نحوه محاسبه قیمت: با ضریب / با مبلغ 
					-- 0 » با ضریب
					-- 1 » با مبلغ
					DECLARE @CalcBuyPrice_GoldGramCoin_Type [Common].[_INT_]
					SELECT @CalcBuyPrice_GoldGramCoin_Type = SST_Value FROM Common.SystemSetting WHERE SST_Title = 'CalcBuyPrice_GoldGramCoin_Type' AND SST_UserID = 0
	
					-- محاسبه با ضریب
					IF @CalcBuyPrice_GoldGramCoin_Type = 0
					BEGIN
						-- ضریب محاسبه قیمت
						DECLARE @CalcBuyPrice_GoldGramCoin_Ratio [Common].[_MONEY_]
						SELECT @CalcBuyPrice_GoldGramCoin_Ratio = SST_Value FROM Common.SystemSetting WHERE SST_Title = 'CalcBuyPrice_GoldGramCoin_Ratio' AND SST_UserID = 0
						
						-- افزاینده
						IF @CalcBuyPrice_GoldGramCoin_Mode = 0
							SET @BuyPrice_GoldGramCoin = @LastPrice_GoldGramCoin + (@LastPrice_GoldGramCoin * @CalcBuyPrice_GoldGramCoin_Ratio)
						-- کاهنده
						ELSE
							SET @BuyPrice_GoldGramCoin = @LastPrice_GoldGramCoin * @CalcBuyPrice_GoldGramCoin_Ratio
					END
					-- محاسبه با مبلغ
					ELSE
					BEGIN
						-- مبلغ محاسبه قیمت
						DECLARE @CalcBuyPrice_GoldGramCoin_Price [Common].[_MONEY_]
						SELECT @CalcBuyPrice_GoldGramCoin_Price = SST_Value FROM Common.SystemSetting WHERE SST_Title = 'CalcBuyPrice_GoldGramCoin_Price' AND SST_UserID = 0
						
						-- افزاینده
						IF @CalcBuyPrice_GoldGramCoin_Mode = 0
							SET @BuyPrice_GoldGramCoin = @LastPrice_GoldGramCoin + @CalcBuyPrice_GoldGramCoin_Price
						-- کاهنده
						ELSE
							SET @BuyPrice_GoldGramCoin = @LastPrice_GoldGramCoin - @CalcBuyPrice_GoldGramCoin_Price
					END	
					
					IF @BuyPrice_GoldGramCoin < 0
						SET @BuyPrice_GoldGramCoin = 0	
						
					-- کردن مبلغ برای جلوگیری از اعشاری شدن مبلغ محاسبه شده ROUND و CAST
					SET @BuyPrice_GoldGramCoin = CAST(ROUND(@BuyPrice_GoldGramCoin, 0, 0) AS MONEY)									
				END
				
				-- --------------------------------------------------------------
			
				-- [Gold].[GoldCommodity] استخراج آیدی مربوط به سکه گرمی در جدول 
				-- استخراج شود [Common].[ConstantLookup] این آیدی بایستی از جدول
				SET @GPI_GCM_ID_GoldGramCoin = ISNULL((SELECT TOP 1 [CNL_ReferID]
															FROM [Common].[ConstantLookup]
															WHERE [CNL_TBL_Handled] = @TBL_Handled_GoldCommodity AND
																	[CNL_Name] = 'GoldCommodity_Default_GramCoin'), 0)
			
				-- تعیین قیمت فروش براساس تنظیمات مربوط به بروز رسانی یا عدم بروز رسانی این قیمت
				-- چون هم تنظیمات بروز رسانی قیمت فروش و هم قیمت خرید رو داریم
				-- اگر قصد بروز رسانی قیمت خرید رو داشته باشیم و فروش رو نداشته باشیم، در اینجا کنترل می کنیم که مقدار فروش به اشتباه بروز رسانی نشود
				IF @UpdatePrice_GoldGramCoin = 0
					SET @LastPrice_GoldGramCoin = 0				
			
				-- درج اطلاعات در جدول قیمت های روزانه
				EXEC [Gold].[GPI_Insert] @GPI_ID OUTPUT, @GPI_GCM_ID_GoldGramCoin, -1, @LastPrice_GoldGramCoin, @InsertDate, @InsertTime, 
					@GPI_Difference_Coins, @UserID, @BuyPrice_GoldGramCoin, 1
			END 
		END
		-- =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=		
				
       ---------------
       SET NOCOUNT OFF;
END
