Пример #1
0
	/**
	 * @param manage_writ $cur_writ
	 */
	function compute_automatic_writ_salary_items($cur_writ,$t="") {
		
		$query = "  select * from HRM_salary_item_types
					WHERE person_type in ( 3 ) AND  				     

						  compute_place = " . SALARY_ITEM_COMPUTE_PLACE_WRIT . " AND 
					      salary_compute_type = " . SALARY_COMPUTE_TYPE_FUNCTION . " AND 
					      user_data_entry = " . AUTOMATIC . " AND
					      validity_start_date <= '" . $cur_writ->execute_date . "' AND 
					     (validity_end_date >= '" . $cur_writ->execute_date . "' OR 
						  validity_end_date IS NULL OR validity_end_date ='0000-00-00' )
					ORDER BY ComputeOrder "; 
	
		$salary_items_DT = parent::runquery_fetchMode($query);	
	  				
		for ($i = 0; $i < $salary_items_DT->rowCount(); $i++) {
		    
			$salary_items_row = $salary_items_DT->fetch();

			$query = "SELECT    w.writ_id,
								w.writ_ver,
								w.execute_date,
								w.staff_id,
								s.personID,
								w.person_type,
								w.cur_group,
								w.education_level,
								w.onduty_year,
								w.onduty_month,
								w.onduty_day,
								w.family_responsible,
								w.included_children_count,
								w.post_id,
								w.emp_mode,
								w.emp_state,
								w.job_id,
								j.job_group,
								w.marital_status,
								p.PersonID,p.sex , p.military_duration_day,
								p.military_duration,
								s.last_retired_pay,
								sit.salary_item_type_id,
								wsi.param1,
								wsi.param2,
								wsi.param3,
								wsi.param4,
								wsi.param5,
								wsi.param6,
								wsi.param7,
								wsi.value,
								wsi.automatic,
								wsi.remember_date,
								wsi.remember_message,
								wsi.remembered,
								sit.salary_compute_type,
								sit.multiplicand,
								sit.function_name,
								sit.user_data_entry,
								sit.editable_value,
								s.work_start_date,
								bf.param1 master_education_level,
								sit.person_type as sp_person_type

                 FROM    HRM_writs as w 
                			inner join HRM_staff as s on(w.staff_id = s.staff_id)
							left join HRM_jobs j on(j.job_id=w.job_id)
                			inner join HRM_persons as p on(s.PersonID = p.PersonID)
							join BaseInfo bf on(bf.TypeID=56 AND bf.InfoID=w.education_level)
							join HRM_salary_item_types sit
				            left join HRM_writ_salary_items  wsi on(sit.salary_item_type_id=wsi.salary_item_type_id  AND
																	wsi.writ_id=w.writ_id AND wsi.writ_ver=w.writ_ver AND
																	wsi.staff_id=w.staff_id)
                        	
                WHERE   w.writ_id= " . $cur_writ->writ_id . " and 
                		w.writ_ver=" . $cur_writ->writ_ver . " and
                		w.staff_id =" . $cur_writ->staff_id . " and 
                		sit.salary_item_type_id = " . $salary_items_row["salary_item_type_id"];

			$dt = parent::runquery_fetchMode($query);		
						
			if ($dt->rowCount() > 0)
				$wsi_record = $dt->fetch();
		
			else
				continue;

			$this->writ_id = $cur_writ->writ_id;
			$this->writ_ver = $cur_writ->writ_ver;
			$this->staff_id = $cur_writ->staff_id;
			$this->salary_item_type_id = $salary_items_row["salary_item_type_id"];
			$this->automatic = 1;


			$this->remember_date = '0000-00-00';
			$this->remember_message = $salary_items_row['remember_message'];

			$function_name = $salary_items_row['function_name'];	
				
	
			$this->value = manage_writ_item::$function_name($wsi_record);
							
			if ($this->value === false){				
				
				return false;
				
				}

			$this->param1 = $wsi_record["param1"];
			$this->param2 = $wsi_record["param2"];
			$this->param3 = $wsi_record["param3"];
			$this->param4 = $wsi_record["param4"];
			$this->param5 = $wsi_record["param5"];
			$this->param6 = $wsi_record["param6"];
			$this->param7 = $wsi_record["param7"];

			if ($this->value > 0) { 
				$this->replaceWritItem();
			}
			else
				manage_writ_item::RemoveWritItem(" writ_id = " . $this->writ_id . " AND 
												   writ_ver = " . $this->writ_ver . " AND 
												   staff_id = " . $this->staff_id . " AND 
												   salary_item_type_id = " . $this->salary_item_type_id);
		}

		return true;
	}
Пример #2
0
function DeleteItem()
{
    $ret = manage_writ_item::RemoveWritItem("writ_id=:wid and writ_ver=:wver and staff_id=:stid and salary_item_type_id=:sid", array(":wid" => $_POST["writ_id"], ":wver" => $_POST["writ_ver"], ":stid" => $_POST["staff_id"], ":sid" => $_POST["salary_item_type_id"]));
    echo $ret ? "true" : "false";
    die;
}