function GroupIssueWrit() { 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 :ouid2 OR o.parent_path LIKE :ouid3 OR o.parent_path LIKE :ouid4 ) "; $whereParams[":ouid"] = $_REQUEST["ouid"]; $whereParams[":ouid2"] = "%," . $_REQUEST["ouid"] . ",%"; $whereParams[":ouid3"] = "%" . $_REQUEST["ouid"] . ",%"; $whereParams[":ouid4"] = "%," . $_REQUEST["ouid"] . "%"; } if (!empty($_POST["from_PersonID"])) { $where .= " AND s.staff_id >= :f_personid"; $whereParams[":f_personid"] = $_POST["from_PersonID"]; } if (!empty($_POST["to_PersonID"])) { $where .= " AND s.staff_id <= :t_personid"; $whereParams[":t_personid"] = $_POST["to_PersonID"]; } $where .= " AND " . QueryHelper::makeWhereOfCheckboxList("emp_state", "emp_state"); //----------------------------------------------------------------- //$execute_date = DateModules::Shamsi_to_Miladi($_POST["execute_date"]); //----------------------------------------------------------------- /*$sql = 'SELECT s.staff_id, s.last_writ_id, s.last_writ_ver, p.pfname , p.plname FROM staff s JOIN writs w ON (s.staff_id=w.staff_id AND s.last_writ_id = w.writ_id AND s.last_writ_ver = w.writ_ver) JOIN persons p ON(s.PersonID = p.PersonID and s.person_type=p.person_type)'; $sql .= (!empty($_REQUEST["ouid"])) ? "LEFT OUTER JOIN org_new_units o ON (s.ouid=o.ouid)" : ""; //JOIN Basic_Info bi ON bi.typeid = 6 and w.education_level = bi.InfoID and bi.MasterID = 1 $sql .= ' WHERE s.last_writ_id > 0 AND s.last_writ_ver > 0 AND w.cost_center_id != 46 AND w.emp_mode in('.EMP_MODE_PRACTITIONER.', '.EMP_MODE_EDUCATIONAL_MISSION.', '.EMP_MODE_INTERNAL_STUDY_OPPORTUNITY.', '.EMP_MODE_RUSTICATION_EXTERNAL_STUDY_OPPORTUNITY.', '.EMP_MODE_INTERNAL_STUDY_MISSION.', '.EMP_MODE_EXTERNAL_STUDY_MISSION.', '.EMP_MODE_ENGAGEMENT.') AND ' . $where; */ $whereParams = array(); $sql = " select s.staff_id,\n s.last_writ_id,\n s.last_writ_ver,\n p.pfname ,\n p.plname , writ_type_id, writ_subtype_id ,\n g2j(wr.execute_date) execute_date \n\n from writs w inner join staff s\n on s.staff_id=w.staff_id AND s.last_writ_id = w.writ_id AND\n s.last_writ_ver = w.writ_ver\n inner join writs wr on s.staff_id = wr.staff_id\ninner join persons p on s.personid = p.personid\n\n where w.emp_state =4 and\n wr.writ_type_id = 5 and\n wr.writ_subtype_id = 145 and\n wr.execute_date > '2014-08-22' and\n wr.execute_date < '2014-11-22' and\n wr.history_only = 0 "; $staff_dt = PdoDataAccess::runquery_fetchMode($sql, $whereParams); unset($sql); unset($where); unset($whereParams); if ($staff_dt->rowCount() == 0) { echo "موارد انتخابی شما هیج فردی را برای صدور حکم شامل نمی شود."; die; } $log_obj = new manage_writ_group_issue_log(); $send_letter_no = $_POST["send_letter_no"]; $unsuccess_count = 0; if (empty($_POST["step"])) { $_POST["step"] = 1; } $staff_count = $staff_dt->rowCount(); $writ_obj = ""; for ($index = 0; $index < $staff_count; $index++) { $staff_row = $staff_dt->fetch(); /*if(isset($_POST["prevent_two_writ_at_one_day"])) { if(count(PdoDataAccess::runquery(" select * from writs where staff_id=" . $staff_dt[$index]["staff_id"] . " and execute_date = '" . $execute_date . "'")) != 0) continue; }*/ //............................. if (!empty($_POST["to_send_letter_no"])) { if ($send_letter_no > $_POST["to_send_letter_no"]) { ExceptionHandler::PushException(EXCEED_OF_END_SEND_LETTER_NO_ERR); break; } } //............................. /*$writ_obj = manage_writ::IssueWrit($staff_row["staff_id"], $_POST["writ_type_id"], $_POST["writ_subtype_id"], $_POST["execute_date"], $_POST["person_type"], DateModules::Shamsi_to_Miladi($_POST["issue_date"]), false, false, $send_letter_no); */ $_POST["issue_date"] = DateModules::shNow(); $execute_date = $staff_row["execute_date"]; $arr = preg_split('/\\//', $execute_date); $execute_date = '1394/' . $arr[1] . "/" . $arr[2]; $writ_obj = manage_writ::IssueWrit($staff_row["staff_id"], $staff_row["writ_type_id"], $staff_row["writ_subtype_id"], $execute_date, $_POST["person_type"], DateModules::Shamsi_to_Miladi($_POST["issue_date"]), false, false, $send_letter_no); if (!$writ_obj) { $log_obj->make_unsuccess_rows($staff_row); continue; } manage_writ_item::compute_writ_items($writ_obj->writ_id, $writ_obj->writ_ver, $writ_obj->staff_id); /*@var $writ_obj manage_writ*/ if ($writ_obj !== false && $writ_obj->writ_id > 0) { $staff_row['writ_id'] = $writ_obj->writ_id; $log_obj->make_success_row($staff_row); $send_letter_no = !empty($_POST["step"]) && !empty($_POST["send_letter_no"]) ? $send_letter_no + $_POST["step"] : ""; } else { $log_obj->make_unsuccess_rows($staff_row); if (!empty($_POST["stop_error_count"]) && $unsuccess_count >= $_POST["stop_error_count"]) { ExceptionHandler::PushException(TOO_MANY_ERR); break; } } unset($writ_obj); } $log_obj->finalize(); $log_obj->make_result(); die; }
$whereParam = array_merge($whereParam, $org["param"]); } } else { $QUERY_WHERE .= " AND " . $base_field . " = :f" . $i; $whereParam[":f" . $i] = $_POST["SELECT:" . $column_id]; } } break; case "CHECK": if ($_POST["CHECK:" . $column_id] != "-1") { $QUERY_WHERE .= " AND " . $field_name . " = :t" . $column_id; $whereParam[":t" . $column_id] = $_POST["CHECK:" . $column_id]; } break; case "CHECKLIST": $st = QueryHelper::makeWhereOfCheckboxList($base_field, "CHECKLIST:" . $columns[$i]["field_name"] . ":"); $QUERY_WHERE .= $st != "" ? " AND " . $st : ""; break; } } for ($i = 0; $i < count($formula_columns); $i++) { $QUERY_SELECT = str_replace("[0:" . $formula_columns[$i][0] . "]", $formula_columns[$i][1], $QUERY_SELECT); $QUERY_SELECT = str_replace("[1:" . $formula_columns[$i][0] . "]", $formula_columns[$i][2], $QUERY_SELECT); } $QUERY_SELECT = substr($QUERY_SELECT, 0, strlen($QUERY_SELECT) - 1); $QUERY_GROUP = $QUERY_GROUP != "" ? substr($QUERY_GROUP, 0, strlen($QUERY_GROUP) - 1) : ""; $QUERY_ORDER = $seprationOrder . $QUERY_ORDER; $QUERY_ORDER = $QUERY_ORDER != "" ? substr($QUERY_ORDER, 0, strlen($QUERY_ORDER) - 1) : ""; //------------------------------------------------------------------------------ preg_match_all('|#([^#].*)#|U', $QUERY_WHERE, $requestParams); for ($i = 0; $i < count($requestParams[0]); $i++) {