function saveStaffData() { $obj = new manage_staff(); PdoDataAccess::FillObjectByArray($obj, $_POST); if (isset($_POST["work_start_date"])) { $obj->work_start_date = DateModules::Shamsi_to_Miladi($_POST["work_start_date"]); } if (isset($_POST["ProfWorkStart"])) { $obj->ProfWorkStart = DateModules::Shamsi_to_Miladi($_POST["ProfWorkStart"]); } if (isset($_POST["retired_date"])) { $obj->retired_date = DateModules::Shamsi_to_Miladi($_POST["retired_date"]); } if (isset($_POST["last_retired_pay"])) { $obj->last_retired_pay = DateModules::Shamsi_to_Miladi($_POST["last_retired_pay"]); } if (!isset($_POST['Over25'])) { $obj->Over25 = 0; } $obj->sum_paied_pension = $obj->sum_paied_pension > 0 ? $obj->sum_paied_pension : "0"; $return = $obj->EditStaff(); $key = $obj->staff_id . "," . $obj->PersonID . "," . $obj->person_type; echo $return ? Response::createObjectiveResponse("true", $key) : Response::createObjectiveResponse(false, ExceptionHandler::GetExceptionsToString("\n")); die; }
function saveEducData() { //........ Fill object .............. $obj = new manage_person_education(); PdoDataAccess::FillObjectByArray($obj, $_POST); $obj->PersonID = $_POST['PersonID']; $obj->doc_date = DateModules::Shamsi_to_Miladi($obj->doc_date); $obj->certificated = empty($obj->certificated) ? "0" : $obj->certificated; //.................................... if ($_POST['sfid'] == "-1") { $obj->sfid = PDONULL; } if (!isset($_POST['sbid'])) { $obj->sbid = PDONULL; } if ($_POST['university_id'] == "-1") { $obj->university_id = PDONULL; } if ($_POST['country_id'] == "-1") { $obj->country_id = PDONULL; } if (empty($_POST["row_no"])) { $return = $obj->AddEducation(); } else { $return = $obj->EditEducation(); } echo $return ? Response::createObjectiveResponse(true, $obj->row_no) : Response::createObjectiveResponse(false, ExceptionHandler::GetExceptionsToString("\n")); die; }
function saveTaxHis() { $obj = new manage_staff_tax(); PdoDataAccess::FillObjectByArray($obj, $_POST); $obj->start_date = DateModules::Shamsi_to_Miladi($_POST['start_date']); $obj->end_date = DateModules::Shamsi_to_Miladi($_POST['end_date']); if (!empty($_POST['tax_history_id'])) { $return = $obj->EditStaffTaxHistory($_POST['PersonID']); } else { $return = $obj->SaveStaffTaxHistory($_POST['PersonID']); } echo $return ? Response::createObjectiveResponse(true, $_POST['PersonID']) : Response::createObjectiveResponse(false, ExceptionHandler::GetExceptionsToString("\n")); die; }
function SaveJob() { $obj = new manage_person_job(); PdoDataAccess::FillObjectByJsonData($obj, $_POST["record"]); $obj->FromDate = DateModules::Shamsi_to_Miladi($obj->FromDate); $obj->ToDate = DateModules::Shamsi_to_Miladi($obj->ToDate); if (empty($obj->RowNO)) { $return = $obj->AddJobHistory(); } else { $return = $obj->EditJobHistory(); } echo $return ? Response::createObjectiveResponse(true, $obj->RowNO) : Response::createObjectiveResponse(false, ExceptionHandler::GetExceptionsToString("\n")); die; }
static function get_rial_coefs($from_j_year, $to_j_year, $person_type) { $query = " SELECT *\r\n FROM salary_params\r\n\t\t\t\t\t\t\t WHERE param_type='" . SPT_RIAL_COEF . "' AND person_type = " . $person_type . "\r\n\t\t\t\t\t\t\t\tORDER BY from_date "; $res = parent::runquery($query); $rial_coefs = array(); for ($i = 0; $i < count($res); $i++) { $cur_j_date = '01/01/' . $from_j_year; $cur_g_date = DateModules::Shamsi_to_Miladi($cur_j_date); while ($res[$i]['from_date'] <= $cur_g_date && $res[$i]['to_date'] >= $cur_g_date && $from_j_year <= $to_j_year) { $rial_coefs[$from_j_year] = $res[$i]['value']; $from_j_year++; $cur_j_date = '01/01/' . $from_j_year; $cur_g_date = DateModules::Shamsi_to_Miladi($cur_j_date); } } return $rial_coefs; }
function saveDevData() { $obj = new manage_person_devotion(); PdoDataAccess::FillObjectByArray($obj, $_POST); $obj->PersonID = $_POST['PersonID']; $obj->from_date = DateModules::Shamsi_to_Miladi($_POST["from_date"]); $obj->to_date = DateModules::Shamsi_to_Miladi($_POST["to_date"]); $obj->letter_date = DateModules::Shamsi_to_Miladi($_POST["letter_date"]); $obj->amount = empty($obj->amount) ? "0" : $obj->amount; $obj->continous = !empty($obj->continous) ? $obj->continous : 0; $obj->enlisted = !empty($obj->enlisted) ? $obj->enlisted : 0; if (empty($_POST["devotion_row"])) { $return = $obj->AddDevotion(); } else { $return = $obj->EditDevotion(); } echo $return ? Response::createObjectiveResponse(true, $obj->devotion_row) : Response::createObjectiveResponse(false, ExceptionHandler::GetExceptionsToString("\n")); die; }
function saveMiscDoc() { //........ Fill object .............. $obj = new manage_person_misc_doc(); $arr = get_object_vars($obj); $KeyArr = array_keys($arr); for ($i = 0; $i < count($arr); $i++) { eval("\$obj->" . $KeyArr[$i] . " = (isset(\$_POST) && isset(\$_POST['" . $KeyArr[$i] . "'])) \r\n\t\t\t? \$_POST['" . $KeyArr[$i] . "'] : '';"); } $obj->PersonID = $_POST['PersonID']; $obj->doc_date = DateModules::Shamsi_to_Miladi($obj->doc_date); //.................................... if (empty($_POST["row_no"])) { $return = $obj->AddMiscDoc(); } else { $return = $obj->EditMiscDoc(); } echo $return ? Response::createObjectiveResponse(true, $obj->row_no) : Response::createObjectiveResponse(false, ExceptionHandler::GetExceptionsToString("\n")); die; }
function GroupCancelWrit() { ini_set('max_execution_time', 1000); //300 seconds = 5 minutes ini_set("memory_limit", '500M'); $where = "s.person_type=" . $_POST["person_type"]; $whereParams = array(); //------------------------ Make Where Clause ---------------------- if (!empty($_REQUEST["ouid"])) { $where .= " AND ( o.ouid = :ouid OR o.parent_path LIKE '%,:ouid,%' OR o.parent_path LIKE '%:ouid,%' OR o.parent_path LIKE '%,:ouid%' ) "; $whereParams[":ouid"] = $_REQUEST["ouid"]; } if (!empty($_POST["from_PersonID"])) { $where .= " AND p.PersonID >= :f_personid"; $whereParams[":f_personid"] = $_POST["from_PersonID"]; } if (!empty($_POST["to_PersonID"])) { $where .= " AND p.PersonID <= :t_personid"; $whereParams[":t_personid"] = $_POST["to_PersonID"]; } if (!empty($_POST["from_issue_date"])) { $where .= " AND issue_date <= :f_issue_date"; $whereParams[":f_issue_date"] = $_POST["from_issue_date"]; } if (!empty($_POST["to_issue_date"])) { $where .= " AND issue_date >= :t_issue_date"; $whereParams[":t_issue_date"] = $_POST["to_issue_date"]; } if (!empty($_POST["execute_date"])) { $execute_date = DateModules::Shamsi_to_Miladi($_POST["execute_date"]); $where .= " AND execute_date = :exe_date"; $whereParams[":exe_date"] = $execute_date; } if (!empty($_POST["writ_type_id"])) { $where .= " AND w.writ_type_id = :writ_type_id"; $whereParams[":writ_type_id"] = $_POST["writ_type_id"]; } if (!empty($_POST["writ_subtype_id"])) { $where .= " AND w.writ_subtype_id = :writ_subtype_id"; $whereParams[":writ_subtype_id"] = $_POST["writ_subtype_id"]; } //----------------------------------------------------------------- /*$where .= " AND bf.MasterID in (1,2) AND if( tbl1.personid is not null , bf.MasterID in (1) , ( bf.MasterID in (1,2) and tbl1.personid is null ) )" ; */ $query = "SELECT s.staff_id,\n\t\t \t w.writ_id,\n\t\t w.writ_ver,\n\t\t w.writ_type_id,\n\t\t w.writ_subtype_id,\n\t\t w.issue_date,\n\t\t w.execute_date,\n\t\t p.pfname,\n\t\t\t p.plname\n\t\t\t \n\t\n\t\t FROM writs w\n\t\t \tJOIN org_new_units o ON(w.ouid=o.ouid)\n\t\t\t\tJOIN staff s ON (s.staff_id=w.staff_id)\n\t\t\t\t\n JOIN persons p ON(s.PersonID = p.PersonID and s.person_type=p.person_type)\t\t\t\t\n \n\t\t WHERE " . $where; /*inner join Basic_Info bf on(bf.TypeID=6 AND bf.InfoID=w.education_level) left join (select personid from bases where BaseType in(4) AND BaseStatus = 'NORMAL') tbl1 on tbl1.personid = s.personid*/ $staff_dt = PdoDataAccess::runquery($query, $whereParams); //echo PdoDataAccess::GetLatestQueryString() ; die() ; if (count($staff_dt) == 0) { echo "موارد انتخابی شما هیچ حکمی را برای ابطال شامل نمی شود."; die; } $log_obj = new manage_writ_group_cancel_log(); $success_count = 0; $unsuccess_count = 0; for ($index = 0; $index < count($staff_dt); $index++) { /*if(manage_writ::IsUsed($staff_dt[$index]["writ_id"], $staff_dt[$index]["writ_ver"], $staff_dt[$index]["staff_id"])) { ExceptionHandler::PushException("از حکم در جای دیگری استفاده شده است."); $log_obj->make_unsuccess_rows($staff_dt[$index], ExceptionHandler::GetExceptionsToString("<br>")); $unsuccess_count++; }*/ if (manage_writ::get_writ_state($staff_dt[$index]["writ_id"], $staff_dt[$index]["writ_ver"], $staff_dt[$index]["staff_id"]) != WRIT_PERSONAL) { ExceptionHandler::PushException("این حکم منتقل شده است."); $log_obj->make_unsuccess_rows($staff_dt[$index]); $unsuccess_count++; } else { if (!manage_writ::RemoveWrit($staff_dt[$index]["writ_id"], $staff_dt[$index]["writ_ver"], $staff_dt[$index]["staff_id"])) { $log_obj->make_unsuccess_rows($staff_dt[$index]); $unsuccess_count++; } else { $log_obj->make_success_row($staff_dt[$index]); $success_count++; } } /*if($index == 0) { $log_obj->finalize(); echo $log_obj->make_result(); die(); }*/ } $log_obj->finalize(); echo $log_obj->make_result(); die; }
private function compute_salary_other_premium($writ_rec) { //$param1 گروه معادل استخدام كشوري افراد //$param2 افزايش سنواتي سال جاري //$param3 افزايش سنواتي سال قبل //$param4 ضريب فوق العاده شغل . //$param5 ضريب فوق العاده جذب $worker_salary = $this->compute_writ_items_sum($writ_rec["writ_id"], $writ_rec["writ_ver"], $writ_rec["staff_id"] , '( ' . SIT_WORKER_BASE_SALARY . ' , ' . SIT_WORKER_ANNUAL_INC . ')'); // ________________________________________ //compute_other_premium_base_salary $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; } $worker_emp_base_salary = $rial_coef * manage_writ_item::Get_employee_base_number($this->param1); //_________________________________________ $worker_emp_annual_inc = $this->param2; $worker_emp_job_extra = $this->param4 * $worker_emp_base_salary; //_________________________________________ //compute_other_premium_min_salary $min_sal_value = manage_salary_params::get_salaryParam_value("", $writ_rec["person_type"].",101", SPT_MIN_SALARY, $writ_rec['execute_date']); $worker_emp_min_salary = max($min_sal_value - ($worker_emp_base_salary + $worker_emp_annual_inc + $worker_emp_job_extra), 0); //_________________________________________ //compute_other_premium_absorb_extra $worker_emp_absorb_extra = $this->param5 * ($worker_emp_base_salary + $worker_emp_annual_inc + $worker_emp_job_extra + $worker_emp_min_salary); //_________________________________________ //compute_other_premium_bad_weather_extra $worker_emp_bad_wheader = 0; if ($writ_rec['emp_mode'] == EMP_MODE_ENGAGEMENT || $writ_rec['emp_mode'] == EMP_MODE_EDUCATIONAL_MISSION) $worker_emp_bad_wheader = 0; $this->param1 = manage_salary_params::get_salaryParam_value("", $writ_rec["person_type"].",101", SPT_WHEATHER_COEF, $writ_rec['execute_date']); if (!$this->param1) { parent::PushException('WHEATHER_COEF_NOT_FOUND'); $worker_emp_bad_wheader = 0; } $value = $this->param1 * $worker_emp_base_salary; if (!($value > 0)) { parent::PushException('WHEATHER_ITEM_CALC_ERR'); $worker_emp_bad_wheader = 0; } //_________________________________________ //compute_other_premium_8_9_absorb //// محاسبه فوق العاده جذب بندهاي 8 و 9 // به دست آوردن اولين روز سال قبل $this_writ_year = substr(DateModules::Miladi_to_Shamsi($writ_rec['execute_date']), 0, 4); $one_year_ago = $this_writ_year - 1; $one_year_ago_first_day = $one_year_ago . "/01/01"; $Gone_year_ago_first_day = DateModules::Shamsi_to_Miladi($one_year_ago_first_day); // ضريب ريالي سال قبل $rial_coef = manage_salary_params::get_salaryParam_value("", $writ_rec["person_type"].",101", SPT_RIAL_COEF, $Gone_year_ago_first_day); if (!$rial_coef) { parent::PushException('RIAL_COEF_NOT_FOUND'); return false; } // حقوق پايه سال قبل $prior_base_salary = $rial_coef * manage_writ_item::Get_employee_base_number($this->param1); // افزايش سنواتي سال قبل $prior_annual_inc = $this->param3; //فوق العاده شغل سال قبل $prior_job_extra = $prior_base_salary * $this->param4; // حداقل دريافتي سال قبل $min_sal_value = manage_salary_params::get_salaryParam_value("", $writ_rec["person_type"].",101", SPT_MIN_SALARY, $Gone_year_ago_first_day); $prior_min_salary = max($min_sal_value - ($prior_base_salary + $prior_annual_inc + $prior_job_extra), 0); // جمع اقلام مرتبط با فوق العاده تعديل $adjust_sal_items_sum = $prior_base_salary + $prior_annual_inc + $prior_job_extra + $prior_min_salary; // محاسبه فوق العاده تعديل سال قبل $max_value = manage_writ_item::Get_employee_base_number(1) * $rial_coef * 1.5; if ($adjust_sal_items_sum <= 3000000) $value = $max_value; elseif ($adjust_sal_items_sum >= 5700000) $value = 0; else $value = (1 - (intval(($adjust_sal_items_sum - 3000000) / 300000) + 1) * 0.1) * $max_value; $worker_emp_8_9_absorb = $value * 1.5; //_________________________________________ $worker_emp_salary = $worker_emp_base_salary + $worker_emp_annual_inc + $worker_emp_job_extra + $worker_emp_min_salary + $worker_emp_absorb_extra + $worker_emp_bad_wheader + $worker_emp_8_9_absorb; $this->param6 = $worker_salary; $this->param7 = 'حقوق پايه:' . intval($worker_emp_base_salary) . '<br>' . 'سنوات:' . intval($worker_emp_annual_inc) . '<br>' . 'ف شغل:' . intval($worker_emp_job_extra) . '<br>' . 'حداقل:' . intval($worker_emp_min_salary) . '<br>' . 'ف جذب:' . intval($worker_emp_absorb_extra) . '<br>' . 'ف بدي آب و هوا:' . intval($worker_emp_bad_wheader) . '<br>' . 'جذب 8 و 9 ر:' . intval($worker_emp_8_9_absorb) . '<br>' . 'جمع:' . intval($worker_emp_salary); $this->param2 = CurrencyModulesclass::toCurrency($this->param2); $value = max((11 / 12) * $worker_emp_salary - $worker_salary, 0); if (!($value > 0)) return false; return $value; }
} break; case "TEXT": if (!empty($_POST["TEXT:" . $column_id])) { $QUERY_WHERE .= " AND " . $field_name . " LIKE :t" . $column_id; $whereParam[":t" . $column_id] = $_POST["TEXT:" . $column_id]; } break; case "DATE": if (!empty($_POST["FDATE:" . $column_id])) { $QUERY_WHERE .= " AND " . $field_name . ">= :f" . $column_id; $whereParam[":f" . $column_id] = DateModules::Shamsi_to_Miladi($_POST["FDATE:" . $column_id]); } if (!empty($_POST["TDATE:" . $column_id])) { $QUERY_WHERE .= " AND " . $field_name . "<= :t" . $column_id; $whereParam[":t" . $column_id] = DateModules::Shamsi_to_Miladi($_POST["TDATE:" . $column_id]); } break; case "SELECT": if (isset($_POST["SELECT:" . $column_id]) && $_POST["SELECT:" . $column_id] != -1) { if (strpos($base_field, "ouid") !== false) { preg_match_all('/tbl[0-9]*/', $columns[$i]["field"], $prefix); $prefix = $prefix[0][count($prefix[0]) - 1]; $org = QueryHelper::MK_org_units($_POST["SELECT:" . $columns[$i]["column_id"]], true, $prefix); if ($org["where"] != "") { $QUERY_WHERE .= " AND " . $org["where"]; $whereParam = array_merge($whereParam, $org["param"]); } } else { $QUERY_WHERE .= " AND " . $base_field . " = :f" . $i; $whereParam[":f" . $i] = $_POST["SELECT:" . $column_id];
function FillPersonItems($src) { $obj = new manage_person(); $obj->birth_date = DateModules::Shamsi_to_Miladi($src["birth_date"]); $obj->issue_date = DateModules::Shamsi_to_Miladi($src["issue_date"]); $obj->military_from_date = DateModules::Shamsi_to_Miladi($src["military_from_date"]); $obj->military_to_date = DateModules::Shamsi_to_Miladi($src["military_to_date"]); $arr = get_object_vars($obj); $KeyArr = array_keys($arr); for ($i = 0; $i < count($arr); $i++) { eval("\$obj->" . $KeyArr[$i] . " = (isset(\$src) && isset(\$src['" . $KeyArr[$i] . "'])) \n\t\t\t? \$src ['" . $KeyArr[$i] . "'] : '';"); } return $obj; }
/** * آخرين حکم سال قبل فرد را نسبت به تاريخ فرستاده شده برمي گرداند * * @return manage_writ object */ static function get_last_writ_of_prior_year($staff_id, $current_execute_date) { $this_writ_year = substr(DateModules::Miladi_to_Shamsi($current_execute_date), 0, 4); $one_year_ago = $this_writ_year - 1; $prior_writ = manage_writ::get_last_writ_by_date($staff_id, DateModules::Shamsi_to_Miladi($one_year_ago . "-12-30")); return $prior_writ; }
static function get_devotions_coefs($staff_id, $from_j_year, $to_j_year) { $query = "SELECT pd.*\n FROM staff s\n INNER JOIN persons p\n ON p.personID = s.personID\n INNER JOIN person_devotions pd\n ON pd.personID = p.personID\n WHERE s.staff_id = {$staff_id}\n ORDER BY letter_date "; $res = parent::runquery($query); $dv_types = array(DEVOTION_TYPE_FIGHTER, DEVOTION_TYPE_PRISONER, DEVOTION_TYPE_WOUNDED); $devotions = array(); for ($j = $from_j_year; $j <= $to_j_year; $j++) { $devotions[$j][DEVOTION_TYPE_FIGHTER] = 0; $devotions[$j][DEVOTION_TYPE_PRISONER] = 0; $devotions[$j][DEVOTION_TYPE_WOUNDED] = 0; } foreach ($dv_types as $dv_type) { $is_first = true; for ($i = 0; $i < count($res); $i++) { if ($res[$i]['devotion_type'] == $dv_type) { $cur_j_date = '01/01/' . $from_j_year; $cur_g_date = DateModules::Shamsi_to_Miladi($cur_j_date); //اولين سابقه از پارامتر ورودي تاريخ شروع محاسبه مي شود نه از تاريخ نامه if ($is_first || $dv_type != DEVOTION_TYPE_WOUNDED) { $res[$i]['letter_date'] = $cur_g_date; $is_first = false; } $tmp_from_j_year = $from_j_year; while (str_replace("-", "/", $res[$i]['letter_date']) > $cur_g_date && $from_j_year <= $to_j_year) { $from_j_year++; $cur_j_date = '01/01/' . $from_j_year; $cur_g_date = DateModules::Shamsi_to_Miladi($cur_j_date); } while ($from_j_year <= $to_j_year) { // محاسبه ضرايب ايثارگري if ($dv_type == DEVOTION_TYPE_FIGHTER) { if ($res[$i]['enlisted']) { $coef = 0.06 / 356; } else { $coef = 0.03 / 365; } $devotions[$from_j_year][$dv_type] += $coef * $res[$i]['amount']; } else { if ($dv_type == DEVOTION_TYPE_PRISONER) { $devotions[$from_j_year][$dv_type] = $res[$i]['amount'] * 0.06 / 365; } else { if ($dv_type == DEVOTION_TYPE_WOUNDED) { $devotions[$from_j_year][$dv_type] = $res[$i]['amount'] * 0.1 * 0.06; } } } $from_j_year++; $cur_j_date = '01/01/' . $from_j_year; $cur_g_date = DateModules::Shamsi_to_Miladi($cur_j_date); } $from_j_year = $tmp_from_j_year; } } } return $devotions; }
if (!empty($_POST['TINT:78']) && $_POST['TINT:78'] > 0 && $_POST['TINT:78'] < 41) { $to_base = $_POST['TINT:78']; } else { $to_base = 40; } if (empty($_POST['SELECT:77']) || $_POST['SELECT:77'] == -1) { $from_science_level = 1; $to_science_level = 5; } else { $from_science_level = $_POST['SELECT:77']; $to_science_level = $_POST['SELECT:77']; } $work_state_id = !empty($_POST['SELECT:93']) && $_POST['SELECT:93'] != '-1' ? $_POST['SELECT:93'] : '19'; $work_city_id = !empty($_POST['SELECT:94']) && $_POST['SELECT:94'] != '-1' ? $_POST['SELECT:94'] : '11'; $emp_state = 4; $execute_date = !empty($_POST['FDATE:72']) ? DateModules::Shamsi_to_Miladi($_POST['FDATE:72']) : DateModules::Now(); $recordSet = compute_professors_salary_params($from_base, $to_base, $from_science_level, $to_science_level, $work_state_id, $work_city_id, $execute_date, $emp_state); $content = ""; for ($i = 0; $i < count($recordSet); $i++) { $content .= "<tr><td>" . ($i + 1) . "</td>" . "<td>" . number_format(round($recordSet[$i]['total_sum'])) . "</td>" . "<td>" . number_format(round($recordSet[$i]['vijeh_extra'])) . "</td>" . "<td>" . number_format(round($recordSet[$i]['special_extra'])) . "</td>" . "<td>" . number_format(round($recordSet[$i]['absorb_extra'])) . "</td>" . "<td>" . number_format(round($recordSet[$i]['weather_bad_extra'])) . "</td>" . "<td>" . number_format(round($recordSet[$i]['base_salary'])) . "</td>" . "<td>" . $recordSet[$i]['base'] . "</td>" . "<td>" . $recordSet[$i]['science_level'] . "</td></tr>"; } $tags = array('<!--data-->' => $content, '<!--now-->' => DateModules::shNow()); $content = file_get_contents("../../reports/proffesor_salary_param.html"); $content = str_replace(array_keys($tags), array_values($tags), $content); echo $content; die; function compute_professors_salary_params($from_base, $to_base, $from_science_level, $to_science_level, $work_state_id, $work_city_id, $execute_date, $emp_state = EMP_STATE_APPROVED_CEREMONIOUS, $compute_heiat_omana_absorb_extra = true) { $query = 'SELECT validity_start_date, validity_end_date, salary_item_type_id