private function compute_salary_item1_10($writ_rec) { //param1 : پايه ايثارگري //param2 : مرتبه علمي //param3 : ضريب حقوق //اين فوق العاده به مربي و مربي آموزشيار فقط تعلق مي گيرد. if ($writ_rec['science_level'] >= MASTERSTROKE) return 0; $person_devotions = manage_person_devotion::GetAllDevotions(" d.PersonID=" . $writ_rec["PersonID"] . " AND devotion_type in (" . DEVOTION_TYPE_WOUNDED . ")"); if (count($person_devotions) <= 0) return 0; $this->param1 = 0; for ($i = 0; $i < count($person_devotions); $i++) { if ($person_devotions[$i]['devotion_type'] == DEVOTION_TYPE_WOUNDED) { if (10 <= $person_devotions[$i]['amount'] && $person_devotions[$i]['amount'] < 20) { $this->param1 += 1; } else if ($person_devotions[$i]['amount'] < 30) { $this->param1 += 2; } else if ($person_devotions[$i]['amount'] < 40) { $this->param1 += 3; } else if ($person_devotions[$i]['amount'] < 50) { $this->param1 += 5; } else if ($person_devotions[$i]['amount'] < 60) { $this->param1 += 7; } else if ($person_devotions[$i]['amount'] < 70) { $this->param1 += 9; } else { $this->param1 += 11; } } } $param1_base = $this->param1; $this->param2 = $writ_rec['science_level']; switch ($writ_rec['science_level']) { case INSTRUCTOR_EDUCATOR : $param2_science_level = 'مربي آموزشيار'; break; case EDUCATOR : $param2_science_level = 'مربي'; break; case MASTERSTROKE : $param2_science_level = 'استاديار'; break; case LECTURESHIP : $param2_science_level = 'دانشيار'; break; case MASTERSHIP : $param2_science_level = 'استاد'; break; } $writ_rec['science_level']++; $higher_science_level_base_salary = manage_writ_item::compute_salary_item1_01($writ_rec); $higher_science_level_special_extra = $higher_science_level_base_salary * manage_salary_params::get_salaryParam_value("", $writ_rec["person_type"], SPT_SPECIAL_EXTRA_COEF, $writ_rec['execute_date'], $writ_rec['science_level']); $higher_science_level_absorb_extra = $higher_science_level_base_salary * manage_salary_params::get_salaryParam_value("", $writ_rec["person_type"], SPT_PROFESSOR_ABSORB_COEF, $writ_rec['execute_date'], $writ_rec['science_level'], $writ_rec['work_city_id'], $writ_rec['work_state_id']); $higher_science_level_wheather_extra = $higher_science_level_base_salary * manage_salary_params::get_salaryParam_value("", $writ_rec["person_type"], SPT_PROFESSOR_WHEATHER_COEF, $writ_rec['execute_date'], $writ_rec['work_city_id'], $writ_rec['work_state_id']); $higher_science_level_particular_extra = $higher_science_level_base_salary * manage_salary_params::get_salaryParam_value("", $writ_rec["person_type"], SPT_PARTICULAR_EXTRA, $writ_rec['execute_date'], $writ_rec['science_level']); //...................................................................... if ($writ_rec['execute_date'] > '2010-03-20' && $writ_rec['execute_date'] < '2014-03-21') { $new_extra = manage_salary_params::get_salaryParam_value("", $writ_rec["person_type"], SPT_PARTICULAR_EXTRA_NEW, $writ_rec['execute_date'], $writ_rec['science_level']); $new_higher_science_level_particular_extra = $higher_science_level_base_salary * $new_extra; $maxVal = manage_salary_params::get_salaryParam_value("", $writ_rec["person_type"], MAX_SPT_PARTICULAR_EXTRA_NEW, $writ_rec['execute_date'], $writ_rec['science_level']); if (!($new_higher_science_level_particular_extra > 0)) { parent::PushException(PARTICULAR_EXTRA_CALC_ERR); return false; } if ($new_higher_science_level_particular_extra > $maxVal) { $new_higher_science_level_particular_extra = $maxVal; } $higher_science_level_particular_extra += $new_higher_science_level_particular_extra; } $sum_higher_science_level = $higher_science_level_base_salary + $higher_science_level_special_extra + $higher_science_level_absorb_extra + $higher_science_level_wheather_extra + $higher_science_level_particular_extra; $writ_rec['science_level']--; $base_salary = manage_writ_item::get_writSalaryItem_value($writ_rec["writ_id"], $writ_rec["writ_ver"], $writ_rec["staff_id"], SIT_PROFESSOR_BASE_SALARY); $special_extra = manage_writ_item::get_writSalaryItem_value($writ_rec["writ_id"], $writ_rec["writ_ver"], $writ_rec["staff_id"], SIT_PROFESSOR_SPECIAL_EXTRA); $absorb_extra = manage_writ_item::get_writSalaryItem_value($writ_rec["writ_id"], $writ_rec["writ_ver"], $writ_rec["staff_id"], SIT_PROFESSOR_ABSOPPTION_EXTRA); $wheather_extra = manage_writ_item::get_writSalaryItem_value($writ_rec["writ_id"], $writ_rec["writ_ver"], $writ_rec["staff_id"], SIT_PROFESSOR_BAD_WEATHER_EXTRA); $particular_extra = manage_writ_item::get_writSalaryItem_value($writ_rec["writ_id"], $writ_rec["writ_ver"], $writ_rec["staff_id"], SIT_PROFESSOR_PARTICULAR_EXTRA); $sum = $base_salary + $special_extra + $absorb_extra + $wheather_extra + $particular_extra; //...................................................................... $value = $sum_higher_science_level - $sum; $this->param1 = $param1_base; $this->param2 = $param2_science_level; return $value; }