Example #1
0
 function release_post()
 {
     $temp = parent::runquery("SELECT s.staff_id, s.post_id\r\n    \t\tFROM position p INNER JOIN staff s ON(s.staff_id = p.staff_id)\r\n    \t\tWHERE p.post_id = ? AND s.staff_id=?", array($this->post_id, $this->staff_id));
     if (count($temp) == 0) {
         return true;
     }
     if ($temp[0]["post_id"] == $this->post_id) {
         ExceptionHandler::PushException(CANNT_RELEASE_WRIT_POST);
         return false;
     }
     parent::runquery("update position set staff_id=null where post_id=" . $this->post_id);
     $daObj = new DataAudit();
     $daObj->ActionType = DataAudit::Action_update;
     $daObj->RelatedPersonType = DataAudit::PersonType_staff;
     $daObj->RelatedPersonID = $this->staff_id;
     $daObj->MainObjectID = $this->post_id;
     $daObj->TableName = "position";
     $daObj->description = "آزاد کردن پست اجرایی هیئت علمی";
     $daObj->execute();
     //------------------ baseinfo update ---------------------------
     $staffObj = new manage_staff("", "", $this->staff_id);
     require_once inc_manage_post;
     manage_posts::baseinfoRelease($staffObj->PersonID, $this->post_id, "آزاد کردن پست اجرایی هیئت علمی");
     //--------------------------------------------------------------
     return true;
 }
Example #2
0
	/** حق شاغل	 */
	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;
	}
Example #3
0
<?php

//---------------------------
// programmer:	Jafarkhani
// create Date:	89.03
//---------------------------
require_once "../../header.inc.php";
require_once inc_dataGrid;
require_once inc_manage_post;
$unitsArr = manage_domains::DRP_Units("search", "ouid", "", "همه واحدها", "210", "(parent_ouid='' or parent_ouid is null)");
$drp_post_type = manage_posts::dropdown_post_type("post_type", "", "همه");
?>
<html>
	<meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
	<link rel="stylesheet" type="text/css" href="/generalUI/ext4/resources/css/ext-all.css" />
	<link rel="stylesheet" type="text/css" href="/generalUI/ext4/resources/css/ext-rtl.css" />
	<link rel="stylesheet" type="text/css" href="/generalUI/ext4/resources/css/icons.css" />
<body dir="rtl" onLoad="document.getElementById('post_no').focus();">
	<script type="text/javascript" src="/generalUI/ext4/resources/ext-all.js"></script>
	<script type="text/javascript" src="/generalUI/ext4/resources/ext-extend.js"></script>
	<script type="text/javascript" src="/generalUI/ext4/ux/component.js"></script>
	<script type="text/javascript" src="/generalUI/ext4/ux/message.js"></script>
	<script type="text/javascript">
	Ext.onReady(function(){
		new Ext.Button({renderTo : "btn_search", text: "جستجو", iconCls: 'search', handler: searching});
		
		new Ext.panel.Panel({
			id : "searchPost",
			renderTo: "searchPostDIV",
			contentEl : "searchPostPNL",
			title: "جستجوی شخص",
Example #4
0
 public static function RemoveWrit($writ_id, $writ_ver, $staff_id)
 {
     $obj = new manage_writ($writ_id, $writ_ver, $staff_id);
     if (!$obj->onBeforeDelete()) {
         return false;
     }
     $DB = PdoDataAccess::getPdoObject();
     /*@var $DB PDO*/
     $DB->beginTransaction();
     $return = PdoDataAccess::delete("writ_salary_items", "writ_id=:wid AND writ_ver=:wver AND staff_id=:stid", array(":wid" => $obj->writ_id, ":wver" => $obj->writ_ver, ":stid" => $obj->staff_id));
     if ($return === false) {
         $DB->rollBack();
         return false;
     }
     $return = PdoDataAccess::delete("writs", "writ_id=:wid AND writ_ver=:wver AND staff_id=:stid", array(":wid" => $obj->writ_id, ":wver" => $obj->writ_ver, ":stid" => $obj->staff_id));
     if ($return === false) {
         $DB->rollBack();
         return false;
     }
     $daObj = new DataAudit();
     $daObj->ActionType = DataAudit::Action_delete;
     $daObj->MainObjectID = $obj->staff_id;
     $daObj->TableName = "writs";
     $daObj->execute();
     $last_writ_obj = manage_staff::GetLastWrit($obj->staff_id);
     if ($last_writ_obj) {
         //__________________________________________________
         // دادن پست حكم قبلي به فرد در صورت خالي بودن اين پست
         if ($obj->is_last($obj->staff_id, $obj->execute_date) && $last_writ_obj->post_id != $obj->post_id) {
             if (!manage_posts::change_user_post($obj->staff_id, $obj->post_id, $last_writ_obj->post_id, $obj->execute_date)) {
                 $DB->rollBack();
                 return false;
             }
         }
     }
     if ($obj->history_only != HISTORY_ONLY) {
         if (!manage_writ::change_writ_state(WRIT_PERSONAL, WRIT_PERSONAL, $obj->writ_id, $obj->writ_ver, $obj->staff_id, $obj->execute_date, $DB)) {
             $DB->rollBack();
             return false;
         }
     }
     //__________________________________________________
     //در صورت حذف يک حکم نسخه قبلي آن را در صورتي که به حقوق منتقل نشده است فعال مي کند
     if (!manage_staff::SetStaffLastWrit($obj->staff_id)) {
         $DB->rollBack();
         return false;
     }
     $DB->commit();
     return true;
 }
Example #5
0
function selectAllPosts()
{
    require_once inc_manage_post;
    $where = "1=1";
    $whereParam = array();
    //-----------------------
    if (!empty($_POST["post_no"])) {
        $where .= " AND p.post_no=:pno";
        $whereParam[":pno"] = $_POST["post_no"];
    }
    if (!empty($_POST["post_type"]) && $_POST["post_type"] != -1) {
        $where .= " AND p.post_type=:ptype";
        $whereParam[":ptype"] = $_POST["post_type"];
    }
    if (!empty($_POST["title"])) {
        $where .= " AND p.title like :title";
        $whereParam[":title"] = "%" . $_POST["title"] . "%";
    }
    if (!empty($_POST["ouid"]) && $_POST["ouid"] != -1) {
        $result = QueryHelper::MK_org_units($_POST["ouid"], isset($_POST["sub_units"]) ? true : false);
        $where .= " AND " . $result["where"];
        $whereParam = array_merge($whereParam, $result["param"]);
    }
    $where .= dataReader::makeOrder();
    $temp = manage_posts::GetAllPosts($where, $whereParam);
    $no = count($temp);
    $temp = array_slice($temp, $_GET["start"], $_GET["limit"]);
    for ($i = 0; $i < count($temp); $i++) {
        if ($temp[$i]["ouid"] != "") {
            $temp[$i]["full_unit_title"] = manage_units::get_full_title($temp[$i]["ouid"]);
        } else {
            $temp[$i]["full_unit_title"] = "";
        }
    }
    echo dataReader::getJsonData($temp, $no, $_GET["callback"]);
    die;
}
Example #6
0
function MovePost()
{
    $obj = new manage_posts();
    $obj->parent_post_id = $_POST["desc_post_id"];
    $obj->parent_path = $_POST["parent_path"] == "" ? $obj->parent_ouid : $_POST["parent_path"] . "," . $obj->parent_ouid;
    $obj->post_id = $_POST["source_post_id"];
    $obj->EditPost();
    echo "true";
    die;
}
Example #7
0
//---------------------------
// programmer:	Jafarkhani
// create Date:	88.12
//---------------------------
require_once '../header.inc.php';
require_once 'post.data.php';
require_once '../org_units/unit.class.php';
require_once inc_dataReader;
$post_id = !empty($_GET["post_id"]) ? $_GET["post_id"] : "";
$obj = new manage_posts($post_id);
$drp_job_field = manage_domains::DRP_JobFields("jfid", $obj->jfid, "---", "428");
//$drp_units = manage_units::DRP_Units("ouid", $obj->ouid, "---", "428");
$drp_person_type = manage_domains::DRP_PersonType("person_type", $obj->person_type, "", " ");
$event = "onchange='postChange();'";
$drp_post_type = manage_posts::dropdown_post_type("post_type", $obj->post_type, "", "", $event);
$drp_kind_super = manage_posts::dropdown_sup_type("SupervisionKind", $obj->SupervisionKind, "-");
$DRP_jcid_jfid = manage_domains::DRP_jcid_jfid("newPostForm", $jcid, $jfid, "jcid", "jfid", $obj->_jcid, $obj->jfid);
?>
<script type="text/javascript" src="/HumanResources/global/LOV/LOV.js"></script>
<script>
new Ext.form.SHDateField({id: 'validity_start',applyTo: 'validity_start',format: 'Y/m/d'});
new Ext.form.SHDateField({id: 'validity_end',applyTo: 'validity_end',format: 'Y/m/d'});
if(document.getElementById('post_type').value == 5)
   document.getElementById("kind_super").style.display="";
else 
   document.getElementById("kind_super").style.display="none";
 

var personStore = <?php 
echo dataReader::MakeStoreObject($js_prefix_address . "personal/persons/data/person.data.php?task=searchPerson&newPersons=true", "'PersonID','pfname','plname','unit_name','person_type','staff_id','personTypeName'");
?>