/** * اين تابع اطلاعات يک حکم قبل از اين حکم را برميگرداند * * @return manage_writ Object */ function get_prior_writ($writ_rec = "", $item = "", $date = "") { $wdate = ""; if (!empty($writ_rec)) { if ($writ_rec['person_type'] != 1) { if ($date != "") { $wdate = " AND execute_date < '" . $date . "' "; } } $corrective_writ_id = $writ_rec["corrective_writ_id"]; $corrective_writ_ver = $writ_rec["corrective_writ_ver"]; $writ_id = $writ_rec["writ_id"]; $writ_ver = $writ_rec["writ_ver"]; $staff_id = $writ_rec["staff_id"]; $execute_date = $writ_rec["execute_date"]; } else { if ($this->person_type != 1) { if ($date != "") { $wdate = " AND execute_date < '" . $date . "' "; } } $corrective_writ_id = $this->corrective_writ_id; $corrective_writ_ver = $this->corrective_writ_ver; $writ_id = $this->writ_id; $writ_ver = $this->writ_ver; $staff_id = $this->staff_id; $execute_date = $this->execute_date; } if ($corrective_writ_id && $corrective_writ_ver) { $dec_writ_ver = $writ_ver - 1; //کنترل اينکه حکم با يک نگارش کمتر وجود دارد يا خير؟ $this_writ_rec = manage_writ::get_writ_rec($writ_id, $dec_writ_ver, $staff_id); if ($this_writ_rec) { $prior_writ_ver = $writ_ver - 1; $query = "select *\n\t \t\t from HRM_writs\n\t \t\t where staff_id = " . $staff_id . " AND\n writ_id = " . $writ_id . " AND\n writ_ver = {$prior_writ_ver} AND\n execute_date <= '" . $execute_date . "'\n order by execute_date DESC,writ_id DESC,writ_ver DESC\n limit 0,1 "; } else { $query = " select *\n\t \t from HRM_writs\n\t \t where staff_id = " . $staff_id . " AND\n\t execute_date <= '" . $execute_date . "' AND\n\t\t (writ_id <>" . $writ_id . " OR writ_ver <>" . $writ_ver . ") AND\n\t (writ_id <" . $writ_id . " OR execute_date < '" . $execute_date . "') AND\n\t (history_only <> " . HISTORY_ONLY . " OR history_only IS NULL )\n\t order by execute_date DESC,writ_id DESC,writ_ver DESC\n\t limit 0,1 "; } } else { $query = " select *\n\t\t \t from HRM_writs\n\t\t \t where staff_id = " . $staff_id . " AND\n\t\t execute_date <= '" . $execute_date . "' AND\n\t\t (history_only <> " . HISTORY_ONLY . " OR history_only IS NULL ) AND\n\t\t (writ_id <>" . $writ_id . " OR writ_ver <>" . $writ_ver . ") AND\n\t\t (writ_id <" . $writ_id . " OR execute_date < '" . $execute_date . "') \n\t\t \t order by execute_date DESC,writ_id DESC,writ_ver DESC "; } $obj = new manage_writ(); PdoDataAccess::FillObject($obj, $query); //.........................جهت بررسی اینکه آیا حکم شامل اقلام حقوقی می باشد یا خیر ؟ if ($item == true) { $qry = "select count(*) cnItem \n\t\t\t from HRM_writ_salary_items \n\t\t\t\twhere writ_id = " . $writ_id . " and writ_ver = " . $writ_ver . " and staff_id = " . $staff_id; $resCnt = PdoDataAccess::runquery($qry); if ($resCnt[0]['cnItem'] > 0) { return $resCnt[0]['cnItem']; } else { return 0; } } //....................... return $obj; }