/** حق شاغل */ private function compute_salary_item2_36($writ_rec) { //param1 : امتیاز //param2 : سنوات خدمت مربوط و مشابه //param3 : دوره های آموزشی //param4 : ضريب امتياز سرپرستي و مديريت //param5 : امتياز کامل //param6 : سنوات خدمت //param7 : تفاوت مبلغ $educQry = " select education_level , doc_date from person_educations where personid =" . $writ_rec['PersonID'] . " and doc_date <= '" . $writ_rec['execute_date'] . "' "; $resEduc = parent::runquery($educQry); $score = 0; $prev_onduty_year = 0; $prev_onduty_month = 0; $prev_onduty_day = 0; $prev_related_onduty_year = 0; $prev_related_onduty_month = 0; $prev_related_onduty_day = 0; $Sum_duty_year = 0; $Sum_related_duty_year = 0; $qry = " SELECT param1 FROM Basic_Info where typeid = 6 and InfoID = " . $writ_rec['education_level']; $res = parent::runquery($qry); $education_level['max_education_level'] = $res[0]['param1']; $person_devotions = manage_person_devotion::get_person_devotions($writ_rec['PersonID'], '(' . DEVOTION_TYPE_WOUNDED . ')'); $devFlag = 0; if ($writ_rec['execute_date'] >= '2010-03-21') { $person_family_shohada = manage_person_devotion::get_person_devotions($writ_rec['PersonID'], '(' . BEHOLDER_FAMILY_DEVOTION . ')', BOY . ',' . DAUGHTER); if (count($person_family_shohada) > 0) { if ($person_family_shohada[0]['devotion_type'] > 0) $devFlag = 1; } } if (count($person_devotions) > 0) { if ($person_devotions[0]['amount'] > 0) $devFlag = 1; } if ($devFlag == 1) { if ($education_level['max_education_level'] < 122) $education_level['max_education_level'] = 122; else if ($education_level['max_education_level'] < 200) $education_level['max_education_level'] = 200; else if ($education_level['max_education_level'] < 300) $education_level['max_education_level'] = 300; else $education_level['max_education_level'] += 100; } //کسانی که دارای مدرک تحصیلی زیر دیپلم هستند. if ($education_level['max_education_level'] < 200) { $score = 1100; //امتیاز مهارت وتوانایی $score += 200; } //کسانی که دارای مدرک تحصیلی دیپلم هستند else if ($education_level['max_education_level'] < 300) { $score = 1200; //امتیاز مهارت وتوانایی $score += 250; } //کسانی که دارای مدرک تحصیلی کاردانی هستند. else if ($education_level['max_education_level'] == 300 || $education_level['max_education_level'] == 301) { $score = 1400; //امتیاز مهارت وتوانایی $score += 300; } //کسانی که دارای مدرک تحصیلی کارشناسی هستند. else if ($education_level['max_education_level'] == 400 || $education_level['max_education_level'] == 401) { $score = 1700; //امتیاز مهارت وتوانایی $score += 400; } //کسانی که دارای مدرک تحصیلی کارشناسی ارشد می باشند. else if ($education_level['max_education_level'] == 500 || $education_level['max_education_level'] == 501) { $score = 2000; //امتیاز مهارت وتوانایی $score += 600; } //کسانی که دارای مدرک تحصیلی دکتری می باشند. else if ($education_level['max_education_level'] > 501) { $score = 2300; //امتیاز مهارت وتوانایی $score += 800; } for ($i = 0; $i < count($resEduc); $i++) { if (isset($resEduc[$i + 1])) { $date = $resEduc[$i + 1]['doc_date']; } else $date = $writ_rec['execute_date']; $last_writ_rec = manage_writ::get_last_writ_by_date($writ_rec['staff_id'], $date); $education_level['max_education_level'] = $resEduc[$i]['education_level']; $myqry = " SELECT param1 FROM Basic_Info where typeid = 6 and InfoID = " . $resEduc[$i]['education_level']; $myres = parent::runquery($myqry); $education_level['max_education_level'] = $myres[0]['param1']; $person_devotions = manage_person_devotion::get_person_devotions($writ_rec['PersonID'], '(' . DEVOTION_TYPE_WOUNDED . ')'); $devFlag = 0; if ($writ_rec['execute_date'] >= '2010-03-21') { $person_family_shohada = manage_person_devotion::get_person_devotions($writ_rec['PersonID'], '(' . BEHOLDER_FAMILY_DEVOTION . ')', BOY . ',' . DAUGHTER); if (count($person_family_shohada) > 0) { if ($person_family_shohada[0]['devotion_type'] > 0) $devFlag = 1; } } /* if($person_devotions[0]['amount']>0 || $person_family_shohada ){ if($education_level['max_education_level']< 122) $education_level['max_education_level'] = 122 ; else if($education_level['max_education_level']< 200) $education_level['max_education_level'] = 200 ; else if($education_level['max_education_level']< 300) $education_level['max_education_level'] = 300 ; else $education_level['max_education_level'] += 100 ; } */ if (count($person_devotions) > 0) { if ($person_devotions[0]['amount'] > 0) $devFlag = 1; } if ($devFlag == 1) { if ($education_level['max_education_level'] < 122) $education_level['max_education_level'] = 122; else if ($education_level['max_education_level'] < 200) $education_level['max_education_level'] = 200; else if ($education_level['max_education_level'] < 300) $education_level['max_education_level'] = 300; else $education_level['max_education_level'] += 100; } $first_duty_day = $prev_onduty_year * 365.25 + $prev_onduty_month * 30.4375 + $prev_onduty_day; $last_duty_day = $last_writ_rec->onduty_year * 365.25 + $last_writ_rec->onduty_month * 30.4375 + $last_writ_rec->onduty_day; $onduty_year = ($last_duty_day - $first_duty_day ) / 365.25; if ($onduty_year >= 30) { $onduty_year = 30; } if (($Sum_duty_year + $onduty_year ) >= 30) { $onduty_year = 30 - $Sum_duty_year; } $Sum_duty_year += $onduty_year; $first_related_duty_day = $prev_related_onduty_year * 365.25 + $prev_related_onduty_month * 30.4375 + $prev_related_onduty_day; $last_related_duty_day = $last_writ_rec->related_onduty_year * 365.25 + $last_writ_rec->related_onduty_month * 30.4375 + $last_writ_rec->related_onduty_day; $related_onduty_year = ($last_related_duty_day - $first_related_duty_day ) / 365.25; if ($related_onduty_year >= 30) { $related_onduty_year = 30; } if (($Sum_related_duty_year + $related_onduty_year ) >= 30) { $related_onduty_year = 30 - $Sum_related_duty_year; } $Sum_related_duty_year += $related_onduty_year; $dev_coef = 1; $related_onduty_year *= $dev_coef; $onduty_year *= $dev_coef; $prev_onduty_year = $last_writ_rec->onduty_year; $prev_onduty_month = $last_writ_rec->onduty_month; $prev_onduty_day = $last_writ_rec->onduty_day; $prev_related_onduty_year = $last_writ_rec->related_onduty_year; $prev_related_onduty_month = $last_writ_rec->related_onduty_month; $prev_related_onduty_day = $last_writ_rec->related_onduty_day; //کسانی که دارای مدرک تحصیلی زیر دیپلم هستند. if ($education_level['max_education_level'] < 200) { //امتیاز سنوات خدمت در هر سال $score += $onduty_year * 10; //امتیاز تجربه مربوط و مشابه در هر سال $score += $related_onduty_year * 8; } //کسانی که دارای مدرک تحصیلی دیپلم هستند else if ($education_level['max_education_level'] < 300) { //امتیاز سنوات خدمت در هر سال $score += $onduty_year * 15; //امتیاز تجربه مربوط و مشابه در هر سال $score += $related_onduty_year * 10; } //کسانی که دارای مدرک تحصیلی کاردانی هستند. else if ($education_level['max_education_level'] == 300 || $education_level['max_education_level'] == 301) { //امتیاز سنوات خدمت در هر سال $score += $onduty_year * 20; //امتیاز تجربه مربوط و مشابه در هر سال $score += $related_onduty_year * 12; } //کسانی که دارای مدرک تحصیلی کارشناسی هستند. else if ($education_level['max_education_level'] == 400 || $education_level['max_education_level'] == 401) { //امتیاز سنوات خدمت در هر سال $score += $onduty_year * 25; //امتیاز تجربه مربوط و مشابه در هر سال $score += $related_onduty_year * 14; } //کسانی که دارای مدرک تحصیلی کارشناسی ارشد می باشند. else if ($education_level['max_education_level'] == 500 || $education_level['max_education_level'] == 501) { //امتیاز سنوات خدمت در هر سال $score += $onduty_year * 30; //امتیاز تجربه مربوط و مشابه در هر سال $score += $related_onduty_year * 16; } //کسانی که دارای مدرک تحصیلی دکتری می باشند. else if ($education_level['max_education_level'] > 501) { //امتیاز سنوات خدمت در هر سال $score += $onduty_year * 35; //امتیاز تجربه مربوط و مشابه در هر سال $score += $related_onduty_year * 18; } } if ($writ_rec['onduty_year'] >= 30) { $writ_rec['onduty_year'] = 30; $writ_rec['onduty_month'] = 0; $writ_rec['onduty_day'] = 0; } $onduty_year = ($writ_rec['onduty_year'] + ($writ_rec['onduty_month'] / 12) + ($writ_rec['onduty_day'] / 365.25)); if ($writ_rec['related_onduty_year'] >= 30) { $writ_rec['related_onduty_year'] = 30; $writ_rec['related_onduty_month'] = 0; $writ_rec['related_onduty_day'] = 0; } $related_onduty_year = ($writ_rec['related_onduty_year'] + ($writ_rec['related_onduty_month'] / 12) + ($writ_rec['related_onduty_day'] / 365.25)); $this->param2 = round($related_onduty_year, 2); $this->param6 = round($onduty_year, 2); $cqry = " SELECT SUM(total_hours) c_hours FROM staff s INNER JOIN person_courses pc ON (s.PersonID = pc.PersonID) WHERE s.staff_id = " . $writ_rec['staff_id'] . " AND pc.to_date<= '" . $writ_rec['execute_date'] . "'"; $cres = parent::runquery($cqry); $hours = $cres[0]['c_hours']; if ($hours > 1000) { $hours = 1000; } $this->param3 = $hours; $score += ($this->param3 * 0.5); $mng_coef = manage_posts::compute_manager_score_percent($writ_rec["staff_id"],$writ_rec["execute_date"]) / 100; $score = $score + $score * $mng_coef; $this->param4 = $mng_coef; $this->param5 = $score; $rial_coef = manage_salary_params::get_salaryParam_value("", $writ_rec["person_type"].",101", SPT_RIAL_COEF, $writ_rec['execute_date']); if (!$rial_coef) { parent::PushException(RIAL_COEF_NOT_FOUND); return false; } $value = $score * $rial_coef; if (!($value > 0)) { return false; } $this->param1 = round($score, 2); //حق شاغل باید حداکثر 75 درصد حق شغل باشد. $hagh_shoghl_value = manage_writ_item::get_writSalaryItem_value($writ_rec['writ_id'], $writ_rec['writ_ver'], $writ_rec["staff_id"], 34); if (($hagh_shoghl_value * 0.75) < $value) { $this->param7 = $value - $hagh_shoghl_value; $value = $hagh_shoghl_value * 0.75; } return $value; }