Example #1
0
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;
}
Example #2
0
                        $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++) {