Exemplo n.º 1
0
 /**
  *  اين تابع اطلاعات يک حکم قبل از اين حکم را برميگرداند
  *
  * @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;
 }