private function compute_persuasive_annual_inc($writ_rec) { $staff_id = $writ_rec['staff_id']; $cur_group = $writ_rec['cur_group']; $persuasive_group = $this->param1; $execute_date = $writ_rec['execute_date']; $query = " SELECT SUBSTRING(CONCAT(execute_date,' ',cur_group),12) cur_group FROM writs WHERE staff_id =" . $writ_rec['staff_id']; $dt = PdoDataAccess::runquery($query); $input_group = $dt[0]['cur_group']; $query = " SELECT work_start_date FROM staff WHERE staff_id = $staff_id "; $res = PdoDataAccess::runquery($query); $work_start_date = $res[0]['work_start_date']; $work_start_jdate = DateModules::Miladi_to_Shamsi($work_start_date); $start_year = substr($work_start_jdate, 0, 4); if ($start_year < 1371) $start_year = 1371; $execute_jdate = DateModules::Miladi_to_Shamsi($execute_date); $end_year = substr($execute_jdate, 0, 4); // استخراج اطلاعات جانبازي $devotions_info = manage_person_devotion::get_devotions_coefs($staff_id, $start_year, $end_year); // استخراج اطلاعات احكام $writs_info = manage_writ::get_writs_info($staff_id, $start_year - 1, $end_year); // استخراج اطلاعات بسيج $mob_info = manage_person_devotion::get_mobilizations_coefs($staff_id, $start_year, $end_year); $rial_coefs = manage_salary_params::get_rial_coefs($start_year, $end_year, $writ_rec['person_type']); $devotion_inc = 0; $mobilization_inc = 0; $year_coef = array(); for ($year = $start_year; $year <= $end_year; $year++) { // گروه ورودي و عوامل ايثارگري $prev_year_coef = $year_coef; $year_coef = $devotions_info[$year][DEVOTION_TYPE_FIGHTER] + $devotions_info[$year][DEVOTION_TYPE_PRISONER] + $devotions_info[$year][DEVOTION_TYPE_WOUNDED]; if ($devotion_inc == 0) $devotion_inc += $year_coef * ((array_key_exists(($year - 1), $writs_info)) ? $writs_info[$year - 1]['base_salary'] : 0); else if ($year_coef != $prev_year_coef) $devotion_inc += ($year_coef - $prev_year_coef) * ((array_key_exists(($year - 1), $writs_info)) ? $writs_info[$year - 1]['base_salary'] : 0 ); // گروه ورودي و بسيج $x3 = ((array_key_exists(($year - 1), $mob_info)) ? $mob_info[$year - 1] : 0 ) * ((array_key_exists(($year - 1), $writs_info)) ? $writs_info[$year - 1]['base_salary'] : 0); $mobilization_inc += $x3; } // اختلاف حقوق پایه با احتساب و بدون احتساب گروه تشویقی $base_salary = $rial_coefs[$end_year] * manage_writ_item::Get_employee_base_number($cur_group); $base_salary_wp = $rial_coefs[$end_year] * manage_writ_item::Get_employee_base_number($cur_group - $persuasive_group); $base_salary_inc = $base_salary - $base_salary_wp; $job_extra_inc = $writs_info[$end_year]['job_coef'] * $base_salary - $writs_info[$end_year]['job_coef'] * $base_salary_wp; $dominant_job_extra_inc = $writs_info[$end_year]['dominant_job_coef'] * $base_salary - $writs_info[$end_year]['dominant_job_coef'] * $base_salary_wp; // جمع مبالغ مربوط به �?وق العاده ايثارگري تشويقي $add_value = $devotion_inc + $mobilization_inc + $base_salary_inc + $job_extra_inc + $dominant_job_extra_inc; $min_sal_items_sum = manage_writ_item::compute_writ_items_sum($writ_rec['writ_id'], $writ_rec['writ_ver'], $writ_rec['staff_id'], '( ' . SIT_STAFF_BASE_SALARY . ' , ' . SIT_STAFF_ADAPTION_DIFFERENCE . ' , ' . SIT_STAFF_JOB_EXTRA . ' , ' . SIT_STAFF_DOMINANT_JOB_EXTRA . ' , ' . SIT_STAFF_ANNUAL_INC . ')'); $min_sal_param = manage_salary_params::get_salaryParam_value("", $writ_rec['person_type'].",101", SPT_MIN_SALARY, $writ_rec['execute_date']); // ت�?اوت حداقل حقوق در صورتي كه تاثير من�?ي دارد اعمال مي گردد $min_salary_diff = ($min_sal_param - $min_sal_items_sum); if ($min_salary_diff > 0) $min_salary_diff = 0; $value = $min_salary_diff + $add_value; if ($value < 0) return false; $this->param2 = $input_group; $this->param3 = round($devotion_inc); $this->param4 = round($base_salary_inc); $this->param5 = round($mobilization_inc); $this->param6 = round($job_extra_inc); $this->param7 = 'مبلغ فوق العاده شغل برجسته :' . round($dominant_job_extra_inc) . '<br>' . 'جمع همه عوامل :' . round($add_value) . '<br>' . 'پارامتر حداقل حقوق :' . round($min_sal_param) . '<br>' . 'اقلام مشمول حداقل حقوق :' . round($min_sal_items_sum) . '<br>'; return round($value); }