Files
CMS/src/CMSMicroservice.Infrastructure/Persistence/StoredProcedures/README-DEPLOY.sql
T
masoodafar-web 25476ba120
Build and Deploy to Kubernetes / build-and-deploy (push) Successful in 1m43s
feat: implement commission calculation strategy with ORM and SP options
2025-12-20 03:15:28 +03:30

95 lines
3.1 KiB
Transact-SQL

-- =============================================
-- SP Deployment Script for Commission Calculation
-- Version: 1.0
-- Created: 2025-12-19
-- =============================================
/*
این اسکریپت برای نصب Stored Procedure های محاسبه کمیسیون استفاده میشود.
قبل از اجرا:
1. مطمئن شوید که به دیتابیس CMS متصل هستید
2. کاربر شما دسترسی CREATE PROCEDURE داشته باشد
ترتیب اجرا:
1. sp_CalculateWeeklyBalances.sql
2. sp_CalculateWeeklyCommissionPool.sql
یا این فایل را اجرا کنید که هر دو SP را نصب میکند.
*/
PRINT '========================================='
PRINT 'Commission Calculation SP Deployment'
PRINT '========================================='
PRINT ''
-- =============================================
-- Check Schema
-- =============================================
IF NOT EXISTS (SELECT 1 FROM sys.schemas WHERE name = 'CMS')
BEGIN
PRINT 'ERROR: Schema CMS does not exist!'
RETURN
END
PRINT 'Schema CMS: OK'
PRINT ''
-- =============================================
-- Drop existing procedures if exist
-- =============================================
IF EXISTS (SELECT 1 FROM sys.procedures WHERE name = 'sp_CalculateWeeklyBalances' AND schema_id = SCHEMA_ID('CMS'))
BEGIN
DROP PROCEDURE CMS.sp_CalculateWeeklyBalances;
PRINT 'Dropped existing sp_CalculateWeeklyBalances'
END
IF EXISTS (SELECT 1 FROM sys.procedures WHERE name = 'sp_CalculateWeeklyCommissionPool' AND schema_id = SCHEMA_ID('CMS'))
BEGIN
DROP PROCEDURE CMS.sp_CalculateWeeklyCommissionPool;
PRINT 'Dropped existing sp_CalculateWeeklyCommissionPool'
END
PRINT ''
PRINT 'Creating Stored Procedures...'
PRINT ''
-- =============================================
-- SP 1: sp_CalculateWeeklyBalances
-- =============================================
GO
-- (content of sp_CalculateWeeklyBalances.sql here)
-- Run sp_CalculateWeeklyBalances.sql separately
GO
-- (content of sp_CalculateWeeklyCommissionPool.sql here)
-- Run sp_CalculateWeeklyCommissionPool.sql separately
GO
PRINT ''
PRINT '========================================='
PRINT 'Deployment Complete!'
PRINT '========================================='
PRINT ''
PRINT 'How to use:'
PRINT ''
PRINT '-- 1. Set calculation strategy in SystemConfigurations:'
PRINT 'UPDATE CMS.SystemConfigurations '
PRINT 'SET Value = ''SP'' '
PRINT 'WHERE [Key] = ''Commission.CalculationStrategy'''
PRINT ''
PRINT '-- Or for ORM mode:'
PRINT 'UPDATE CMS.SystemConfigurations '
PRINT 'SET Value = ''ORM'' '
PRINT 'WHERE [Key] = ''Commission.CalculationStrategy'''
PRINT ''
PRINT '-- 2. Manual execution (optional):'
PRINT 'DECLARE @RowCount INT, @PoolId BIGINT'
PRINT 'EXEC CMS.sp_CalculateWeeklyBalances @WeekDefinitionId = 1, @ForceRecalculate = 0, @RowCount = @RowCount OUTPUT'
PRINT 'PRINT ''Rows affected: '' + CAST(@RowCount AS VARCHAR)'
PRINT ''
PRINT 'EXEC CMS.sp_CalculateWeeklyCommissionPool @WeekDefinitionId = 1, @ForceRecalculate = 0, @PoolId = @PoolId OUTPUT'
PRINT 'PRINT ''Pool ID: '' + CAST(@PoolId AS VARCHAR)'
GO