/// <summary> /// 创建或更新提资标准 /// </summary> /// <param name="seq">序号</param> /// <param name="rise_rate">增幅</param> /// <param name="year_salary">年薪</param> /// <param name="rise_type">提资方式</param> private void CreateOrUpdatePayStandard(string level, int seq, decimal rise_rate, decimal year_salary, RiseType rise_type) { ManagementTraineePayRiseStandard m = ManagementTraineePayRiseStandard.AddManagementTraineePayRiseStandard(届别, 岗位级别, 类别, level, seq); m.序号 = 序号; m.增幅 = rise_rate; m.年薪 = year_salary; m.提资方式 = (int)rise_type; if (AccessController.CurrentUser != null) { m.创建人 = AccessController.CurrentUser.姓名; } m.Save(); }
private void CreateOrUpdatePayStandard(int seq, decimal rise_rate, decimal year_salary, RiseType rise_type) { CreateOrUpdatePayStandard("A", seq, rise_rate, year_salary, rise_type); CreateOrUpdatePayStandard("B", seq, rise_rate, year_salary, rise_type); CreateOrUpdatePayStandard("C", seq, rise_rate, year_salary, rise_type); }
private void CreateOrUpdatePayStandard() { decimal last_year_salary = 0; decimal year_salary = 0; decimal rise_rate = 0; RiseType rise_type = RiseType.百分比; //提资方式:0:百分比 1:金额 默认是百分比 //创建起薪记录 CreateOrUpdatePayStandard(0, 0, this.一阶起薪, RiseType.金额); //起薪必须是金额 last_year_salary = this.一阶起薪; //创建一阶提资标准记录 for (int i = 1; i <= 12; i++) { //初始化变量 year_salary = 0; rise_rate = 0; rise_type = RiseType.百分比; object val = GetFieldValue("一阶增幅" + i.ToString()); rise_rate = Convert.ToDecimal(val); if (rise_rate == 0) { break; } year_salary = Math.Round(last_year_salary * (100 + rise_rate) * (decimal)0.01, 1); CreateOrUpdatePayStandard(i, rise_rate, year_salary, rise_type); last_year_salary = year_salary; } //创建二阶起薪记录 if (this.二阶起薪 > 0) { if (this.二阶起薪方式 == (int)RiseType.百分比) //如果是百分比 { rise_rate = this.二阶起薪; year_salary = Math.Round(last_year_salary * (100 + rise_rate) * (decimal)0.01, 1); } else { year_salary = this.二阶起薪; rise_rate = 100 * ((decimal)(year_salary - last_year_salary) / (decimal)last_year_salary); rise_rate = Math.Round(rise_rate, 2); } CreateOrUpdatePayStandard(100, rise_rate, year_salary, this.二阶起薪方式 == 0 ? RiseType.百分比 : RiseType.金额); last_year_salary = year_salary; //创建二阶提资标准记录 for (int i = 1; i <= 6; i++) { //初始化变量 year_salary = 0; rise_rate = 0; rise_type = RiseType.百分比; object val = GetFieldValue("二阶增幅" + i.ToString()); rise_rate = Convert.ToDecimal(val); if (rise_rate == 0) { break; } year_salary = Math.Round(last_year_salary * (100 + rise_rate) * (decimal)0.01, 1); //序数的基数是每阶+100,起阶是0, 满阶基数是 10000 CreateOrUpdatePayStandard(i + 100, rise_rate, year_salary, rise_type); last_year_salary = year_salary; } } //创建满阶提资标准记录 if (this.满阶起薪方式 == (int)RiseType.百分比) //如果是百分比 { rise_rate = this.满阶A起薪; CreateOrUpdatePayStandard("A", 10000, this.满阶A起薪, 0, RiseType.百分比); rise_rate = this.满阶B起薪; CreateOrUpdatePayStandard("B", 10000, this.满阶B起薪, 0, RiseType.百分比); rise_rate = this.满阶C起薪; CreateOrUpdatePayStandard("C", 10000, this.满阶C起薪, 0, RiseType.百分比); } else { year_salary = this.满阶A起薪; CreateOrUpdatePayStandard("A", 10000, 0, this.满阶A起薪, RiseType.金额); year_salary = this.满阶B起薪; CreateOrUpdatePayStandard("B", 10000, 0, this.满阶B起薪, RiseType.金额); year_salary = this.满阶C起薪; CreateOrUpdatePayStandard("C", 10000, 0, this.满阶C起薪, RiseType.金额); } }