if not Exists(SELECT * FROM information_schema.tables where Table_name = 'SalaryCalculationMethod')
begin
	create table SalaryCalculationMethod
	(
		ID	int Primary Key ,
		Code	int not null,
		Title	nvarchar(200) not null,
		Mat_ID	bigint references Matter(ID) not null,
		Pro_ID_Pattern	int references otherProperties(ID) not null, -- نظام
		Dom_ID_Status int references Domain(ID) not null, -- وضعیت
		
		MaxDailyWorking		int not null, -- سقف ساعت کاری روزانه
		
		Taf_ID_SalaryCost bigint references Tafsili(ID) not null, -- هزینه حقوق
		Dom_ID_DailyWageType int references Domain(ID) not null, -- نحوه محاسبه دستمزد روزانه
		DailyWagePrice	decimal(19,4) not null, -- دستمزد روزانه
		DailyWageScript	nvarchar(max) null, --فرمول دستمزد روزانه
		
		Dom_ID_CalcHelpful	int references domain(ID) not null, -- محاسبه مساعده
		Dom_ID_CalcLoan	int references domain(ID) not null, -- وام
		Dom_ID_CalcAdditionDynamic	int references domain(ID) not null, -- اضافات موردی
		Dom_ID_CalcAdditionFix	int references domain(ID) not null, -- اضافات ثابت
		Dom_ID_CalcDeductionDynamic	int references domain(ID) not null, -- کسورات موردی
		Dom_ID_CalcDeductionFix	int references domain(ID) not null, -- کسورات ثابت
		
		Dom_ID_CalcOvertime	int references domain(ID) not null, -- اضافه کاری
		
		Dom_ID_OvertimeType	int references domain(ID) null, -- نوع محاسبه اضافه کاری روزکاری: درصدی | مبلغی
		OvertimeNormal	decimal(19,4) null, -- عادی
		OvertimeHoliday	decimal(19,4) null, -- تعطیلی
		OvertimeNormalScript	nvarchar(max) null, --فرمول اضافه کاری عادی
		OvertimeHolidayScript	nvarchar(max) null, --فرمول اضافه کاری تعطیلی
		
		--Dom_ID_EveningOvertimeType	int references domain(ID) null, -- نوع محاسبه اضافه کاری عصرکاری: درصدی | مبلغی
		--EveningOvertimeNormal	decimal(19,4) null, -- عادی
		--EveningOvertimeHoliday	decimal(19,4) null, -- تعطیلی
		
		--Dom_ID_NightOvertimeType	int references domain(ID) null, -- نوع محاسبه اضافه کاری شب کاری: درصدی | مبلغی
		--NightOvertimeNormal	decimal(19,4) null, -- عادی
		--NightOvertimeHoliday	decimal(19,4) null, -- تعطیلی
		
		Dom_ID_OvertimeIncludedTax	int references domain(ID) null, -- مشمول بیمه
		Dom_ID_OvertimeIncludedInsurance	int references domain(ID) null, -- مشمول مالیات
		
		Dom_ID_CalcMission	int references domain(ID) not null, -- ماموریت
		Dom_ID_MissionType	int references domain(ID) null, -- نوع محاسبه ماموریت: درصدی | مبلغی
		MissionDailyRate	decimal(19,4) null, -- نرخ ماموریت روزانه
		MissionHourlyRate	decimal(19,4) null, -- نرخ ماموریت ساعتی
		MissionDailyScript	nvarchar(max) null, -- فرمول ماموریت روزانه
		MissionHourlyScript	nvarchar(max) null, -- فرمول ماموریت ساعتی
		Dom_ID_MissionIncludedTax	int references domain(ID) null, -- مشمول بیمه
		Dom_ID_MissionIncludedInsurance	int references domain(ID) null, -- مشمول مالیات
		
		
		Dom_ID_CalcDelay	int references domain(ID) not null, -- تاخیر تعجیل غیبت
		Dom_ID_DelayType	int references domain(ID) null, -- درصدی | مبلغی
		DelayRate	decimal(19,4) null, -- 
		DelayArfagh	int null,
		DelayScript	nvarchar(max) null, --فرمول تاخیر
		
		
		Dom_ID_CalcAbsent	int references domain(ID) not null, -- غیبت
		Dom_ID_AbsentType	int references domain(ID) null, -- درصدی | مبلغی
		AbsentRate	decimal(19,4) null, -- 
		AbsentScript	nvarchar(max) null, --فرمول غیبت
		
		Dom_ID_CalcInsurance	int references domain(ID) not null, -- بیمه تامین احتماعی
		Dom_ID_InsuranceType	int references domain(ID) null, -- درصدی | مبلغی
		InsuranceRate	decimal(19,4) null, -- مبلغ|درصد مشمول بیمه هر ماه
		InsuranceWorkerShare	decimal(19,4) null,-- سهم کارگر
		InsuranceEmployerShare	decimal(19,4) null,-- سهم کارفرما
		InsuranceUnEmployment	decimal(19,4) null,-- بیمه بیکاری
		InsuranceHardWork	decimal(19,4) null,-- سختی کار
		
		InsuranceWorkerShareScript	nvarchar(max) null, -- فرمول سهم کارگر
		InsuranceEmployerShareScript	nvarchar(max) null, -- فرمول سهم کارفرما
		InsuranceUnEmploymentScript	nvarchar(max) null, -- فرمول سهم بیکاری
		InsuranceHardWorkScript	nvarchar(max) null, -- فرمول سختی کار
		
		
		Taf_ID_Insurance bigint references Tafsili(ID) null, -- تفصیلی اداره بیمه
		
		Dom_ID_CalcTax	int references domain(ID) not null, -- مالیات
		Taf_ID_Tax bigint references Tafsili(ID) null, -- تفصیلی اداره مالیات
		Pro_ID_TaxTable int references OtherProperties(ID) null, -- جدول مالیاتی
		
	)
end;