Разработка автоматизированной системы планирования и учета нарядов в подразделении для военно-учебных заведений

Выбор аппаратной и программной платформы системы планирования и учета нарядов подразделения. Определение архитектуры создаваемой системы, сравнение существующих технологий программирования. Реализация подсистемы идентификации и авторизации на сайте.

Рубрика Программирование, компьютеры и кибернетика
Вид дипломная работа
Язык русский
Дата добавления 19.01.2017
Размер файла 3,1 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

for($day=1;$day<=$day_count;$day++){

$flag=false;

for($x=0;$x<count($dutyTypes);$x++){

for($r=0;$r<count($events[$day]);$r++){

if($user->unit['id']==$events[$day][$r]['unitId'] && $dutyTypes[$x]['id']==$events[$day][$r]['dutyTypeId']){

$warning='';

if(!empty($events[$day][$r]['comment'])) {

$warning = '<img src="'.$tpl->url.'img/mail/warning1.gif" title="'.$events[$day][$r]['comment'].'">';

}

$color = ($events[$day][$r]['userId']) ? 'blue' : 'red';

$showDuties[$day].='

<div style="clear:right">

<div style="float:left;color:'.$color.'" title="'.$dutyTypes[$x]['fullTitle'].'">'.$dutyTypes[$x]['title'].'</div>

<div style="float:right;">

'.$warning.'

<select style="width:90px;" name="select['.$day.'][]" id="select"['.$day.'][]"><option value=""> </option>';

$j=0;

while($users[$j]['id']!=''){

if($users[$j]['id']==$events[$day][$r]['userId']){

$selected = "selected='selected'";

}

else {

$selected = "";

}

$showDuties[$day].='<option '.$selected.' value="'.$users[$j]['id'].'">'.$users[$j]['login'].'</option>';

$j++;

}

$showDuties[$day].='

</select>

<input type="hidden" name="dutyTypeId['.$day.'][]" id="dutyTypeId['.$day.'][]" value="'.$dutyTypes[$x]['id'].'">

</div>

</div>';

$flag=true;

}

else{

}

}

if(!$flag){

$showDuties[$day].='

<div style="clear:right">

<div style="clear:left;color:#ccc" title="'.$dutyTypes[$x]['fullTitle'].'">'.$dutyTypes[$x]['title'].'</div>

</div>

';

}

$flag=false;

}

}

}

else {

echo "Укажите номер кафедры или факультета.";

}

}

else{

echo "Отказанно в доступе!";

}

}

// - VIEW

elseif($act=="view"){ //VIEW

// - VIEW USER

if(isset($userId)){

$uId=$userId;

$unitIdSQL = (!empty($unitId)) ? ' AND unitId='.abs(intval($unitId)) : '';

$arrayOfDutyUser=$db->select($db->prefix.'duty',"date BETWEEN ".strtotime("1-$m-$y")." and ".strtotime("$day_count-$m-$y").$unitIdSQL." AND userId=".$uId);

$dutyUser = $func->toArray($arrayOfDutyUser); // наряды на пользователя

for($day=1;$day<=$day_count;$day++){

for($j=0;$j<count($dutyUser);$j++){

if(strtotime("$day.$m.$y")==$dutyUser[$j]['date']){

$showDuties[$day]="

<div style='font-size: larger; color: #FF0000;font-weight: bold; width:100%;text-align: center; height: 100%; vertical-align: middle; padding-top:30px; '>

".$dutyTypes[$dutyUser[$j]['dutyTypeId']-1]['fullTitle'];

if($user->id==$uId && $dutyUser[$j]['notification']==0){

$showDuties[$day].="

</div><br/><br/>

<div id='agreeDiv".$dutyUser[$j]['id']."'>

<table width='100%'>

<tr>

<td>

<div id='agreeBtn".$dutyUser[$j]['id']."' style='float:left;padding-left:5px;'>

<input type='hidden' id='date".$dutyUser[$j]['id']."' value='".$dutyUser[$j]['date']."'>

<a href='#'><img onclick='agreeBtnClick( ".$dutyUser[$j]['id'].",1,".$uId."); return false;' src=\"".$tpl->url."/img/up.png\"></a>

</div>

</td>

<td>

<div style='float:right;padding-right:5px;'>

<a href='#'><img onclick='agreeBtnClick( ".$dutyUser[$j]['id'].",0,".$uId."); return false;' src=\"".$tpl->url."/img/down.png\"></a>

</div>

</td>

</tr>

</table>

</div>

";

}

break;

}

else{

$showDuties[$day]=NULL;

}

}

}

}

// - VIEW ALL

else{

for($day=1;$day<=$day_count;$day++){

$x=0;

while($dutyTypes[$x]['id']!=''){

$showDuties[$day].='

<div style=" clear:left">

<div width="1%" style="float:left" title="'.$dutyTypes[$x]['fullTitle'].'">'.$dutyTypes[$x]['title'].'</div>

';

for($r=0;$r<count($events[$day]);$r++){

if($dutyTypes[$x]['id']==$events[$day][$r]['dutyTypeId']){

$number = $units[$events[$day][$r]['unitId']]['number'];

$title=abs(intval($number)).' '.$units[$events[$day][$r]['unitId']]['title'];

$showDuties[$day].='<div style="float:right;padding-left:3px;"><font width="20px" title="'.$title.'">'.$number.'</font></div> ';

for($i=0;$i<count($allusers);$i++){

if($allusers[$i]['id']==$events[$day][$r]['userId'])$showDuties[$day].='

<div style="float:right;" width="90%">

<a href="'.$site->url.$page->dosie.'?id='.$events[$day][$r]['userId'].'">

<font title="'.$allusers[$i]['login'].'">

'.( mb_strlen($allusers[$i]['login'])>6 ? mb_substr($allusers[$i]['login'],0,6).'.' : $allusers[$i]['login']).'

</font>

</a>

</div>

';

}

break;

}

else{

}

}

$showDuties[$day].='

</div>';

$x++;

}

}

}

}

}

?>

<form id="mainForm" name="mainForm" action="/engine/includes/handler/index.php" method="post" enctype="utf-8" >

<input type="hidden" name="uid" value="<? echo $user->id; ?>">

<input type="hidden" name="unitId" value="<? echo $user->unit['id']; ?>">

<input type="hidden" name="post" id="post" value="<? echo $_SESSION["post"]; ?>">

<input type="hidden" name="act" id="act" value="edit<? echo $user->role['id']; ?>">

<input type="hidden" name="dateThis" id="dateThis" value="<? echo strtotime('1.'.$m.'.'.$y); ?>">

<div id="calendar" class="fc">

<table class="fc-header" style="width:100%">

<tbody>

<tr>

<td class="fc-header-left" >

<a class="blueButton" onclick="getCalendar(<? echo time();?>,'<? echo $act; ?>','<? echo $unitId; ?>','<? echo $userId; ?>')" style="padding: 5px 10px 5px 10px;" href="#">

Сегодня

</a>

<a class="blueButton" onclick="getCalendar(<? echo $prev; ?>,'<? echo $act; ?>','<? echo $unitId; ?>','<? echo $userId; ?>')" style="padding: 5px 10px 5px 10px;" href="#">

&nbsp;в--„&nbsp;

</a>

<a class="blueButton" onclick="getCalendar(<? echo $next; ?>,'<? echo $act; ?>','<? echo $unitId; ?>','<? echo $userId; ?>')" style="padding: 5px 10px 5px 10px;" href="#">

&nbsp;&nbsp;в-є&nbsp;

</a>

</td>

<td class="fc-header-center">

<span class="fc-header-title"><h2><? echo $month_names[$m-1]," ",$y ?></h2></span>

<font id="dutyLoading"></font>

</td>

<td class="fc-header-right">

<div id="output" name="output" style="float:left; display:block"></div>

<? if($user->rools[0] || $user->rools[1]) {

if($act!="edit"){

?>

<a id="automaticSetDuty" onclick="automaticSetDuty('<? echo $user->role['id'];?>','<? echo strtotime('1.'.$m.'.'.$y);?>','<? echo $act; ?>')" class="blueButton" style="padding: 5px 10px 5px 10px;" href="#">

Распределить автоматически

</a>

<a class="blueButton" onclick="getCalendar(<? echo $today; ?>,'<? echo 'edit'; ?>','')" style="padding: 5px 10px 5px 10px;" href="#">

Редактировать

</a>

<?

}

else{

?>

<a id="automaticSetDuty" onclick="automaticSetDuty('<? echo $user->role['id'];?>','<? echo strtotime('1.'.$m.'.'.$y);?>','<? echo $act; ?>')" class="blueButton" style="padding: 5px 10px 5px 10px;" href="#">

Распределить автоматически

</a>

<a onclick="getCalendar(<? echo strtotime('1.'.$m.'.'.$y); ?>,'<? echo 'view'; ?>')" class="blueButton" style="padding: 5px 10px 5px 10px;" href="#">

Р--акончить редактирование

</a>

<a id="buttonSave" onclick="saveEdited(<? echo strtotime('1.'.$m.'.'.$y); ?>, 'edit')" class="blueButton" style="padding: 5px 10px 5px 10px;" href="#">

Сохранить

</a>

<?

}

}

?>

<!--<span class="fc-button fc-button-agendaWeek fc-state-default">

<span class="fc-button-inner">

<span class="fc-button-content">Неделя</span>

<span class="fc-button-effect">

<span></span>

</span>

</span>

</span>

<span class="fc-button fc-button-agendaDay fc-state-default fc-corner-right">

<span class="fc-button-inner">

<span class="fc-button-content">День</span>

<span class="fc-button-effect">

<span></span>

</span>

</span>

</span>-->

</td>

</tr>

</tbody>

</table>

<table class="fc-header" style="width:100%" cellspacing="0">

<tbody>

<tr >

<td >

<div style="position:relative">

<div class="fc-view fc-view-month fc-grid" style="position: relative; " unselectable="on">

<table style="width:100%" cellspacing="0">

<thead>

<tr class="fc-first fc-last" height="20px">

<th class="fc-mon fc-widget-header fc-first" style="width: 14% ">РџРќ</th>

<th class="fc-tue fc-widget-header" style="width: 14% ">Р'Рў</th>

<th class="fc-wed fc-widget-header" style="width: 14% ">РЎР </th>

<th class="fc-thu fc-widget-header" style="width: 14% ">ЧТ</th>

<th class="fc-fri fc-widget-header" style="width: 14% ">РџРў</th>

<th class="fc-sat fc-widget-header" style="width: 14% ;background-color:#FFE8E8;">РЎР`</th>

<th class="fc-sun fc-widget-header" style="width: 14%;background-color:#FFE8E8;">Р'РЎ</th>

</tr>

</thead>

<tbody>

<?

$i=0;

for($d=$start;$d<=$end;$d++) {

if (!($i++ % 7)) echo ' <tr class="fc-week'.$i.'">';

$day="";

$todaySelect="";

if ($d < 1 OR $d > $day_count) {

$day= "&nbsp";

}

else {

$now="$y-$m-".sprintf("%02d",$d);

if (is_array($fill) AND in_array($now,$fill)) {

$day= '<b>'.$d.'</b><input type="hidden" name="date[]" id="date[]" value="'.strtotime("$d-$m-$y").'">';

$todaySelect="fc-state-highlight fc-today";

}

else {

$day = $d.'<input type="hidden" name="date[]" id="date[]" value="'.strtotime("$d-$m-$y").'">';

}

}

$style = ($func->isHoliday(strtotime($d.'.'.$m.'.'.$y)) && $d<=$day_count) ? 'holidayTd' : '';

echo ' <td class="fc-mon fc-widget-content fc-day0 fc-first '.$style.' '.$todaySelect.' " >

<div style="min-height: 150px;">

<div class="fc-day-number">

'.$day.'

</div>

<div class="fc-day-content">

'.$showDuties[$d].'

</div>

</td>';

if (!($i % 7)) echo " </tr>";

}

?>

</tbody>

</table>

</div>

</div>

</td>

</tr>

</tbody>

</table>

</div>

</form>

<?

}

public function arrayDel(&$array, $value){

foreach($array as $key => $val){

if(is_array($val)){

$this->arrayDel($array[$key],$value);

} elseif($val === $value){

unset($array[$key]);

}

}

}

public function getHolidays ($id=0){

global $db,$func;

$holidays = $db->select($db->prefix.'holidays','unitId='.$id);

$holidays = $func->toArray($holidays);

return $holidays;

}

public function showLeaves($unitId=null, $leaves=0, $dateFrom=0,$dateTo=0, $checkAll=false){

global $site,$page,$db,$func;

$out='';

if($unitId!=null){

$leaves=array();

$result = $db->select($db->prefix.'users','unitId='.$unitId);

$users = $func->toArray($result);

$colors = array(); // цвета пользователей

foreach ($users AS $i => $us){

while($leaves[$us['id']]['color'] == null){

$rgb = array(rand(0,255),rand(0,255),rand(0,255));

$color = $this->rgbToHex($rgb);

$leaves[$us['id']]['color'] = (!in_array($color,$colors)) ? $color : null;

}

$leaves[$us['id']]['login']=$us['login'];

$leaves[$us['id']]['checked']=false;

$colors[] = $leaves[$us['id']]['color'];

}

}

unset($colors);

$out .= '

<div id="leavesUsers" style="width:10%;float:left">

<input type="hidden" name="post" id="post" value="'.$_SESSION["post"].'">

';

if(is_array($leaves)){

foreach($leaves as $userId => $value){

if(!empty($userId)){

$colors[$userId] = $color = $value['color'];

$usersToSql[]=$userId;

}

}

$usersToSql = (is_array($usersToSql)) ? implode(',',$usersToSql) : 0;

} else {

$usersToSql=0;

}

$date = time();

$dateNow = explode('.',date('d.m.Y',$date));

$dateFrom = strtotime('1.'.$dateNow[1].'.'.$dateNow[2]);

$leavesToCalendar = array();

if(empty($dateFrom)){

$dateTo = $dateFrom+(366*86400);

}

$year = $dateNow[2].','.($dateNow[2]+1);

$leavesFromDb = $db->select($db->prefix.'leaves AS L RIGHT JOIN '.$db->prefix.'users AS U ON U.id=L.userId', 'U.id IN ('.$usersToSql.')', 'L.*,U.id AS userId,U.login');

$leavesFromDb = $this->toArray($leavesFromDb);

//var_export($leavesFromDb);

$days = array();

if(is_array($leavesFromDb)){

foreach($leavesFromDb as $key => $value){

$bufDays = explode(',',$value['days']);

$leaves[$value['userId']]['login']=$value['login'];

$leaves[$value['userId']]['days']=$bufDays[0]!='' ? count($bufDays) : 0;

if($leaves[$value['userId']]['checked']==true || $checkAll){

foreach($bufDays AS $keyBufDay=>$bufDay){

$days[$bufDay]['usersId'][]=$value['userId'];

$days[$bufDay]['logins'][]=$value['login'];

$days[$bufDay]['colors'][]=$colors[$value['userId']];

}

}

}

}

//var_export($leaves);

foreach($leaves as $userId => $value){

$color = $value['color'];

if($value['checked']==true ){

$checked = "checked='true'";

$count = $value['days'];

} else {

$checked = "";

}

$count = $value['days'];

$out .="

<div id='user".$userId."' style='float:left; min-width:170px;padding-right:10px;'>

<div id='userColor".$userId."' style='margin-top:5px;float:right;width:10%;min-height:15px; background-color:$color'></div>

<div style='float:left'>

<input $checked id='".$userId."' type='checkbox' onclick=\"checkboxClick('".$userId."','".$color."')\">

<input id='colorOfUser".$userId."' type='hidden' value='$color'>

<a href='".$site->url.$page->dosie."?id=".$userId."' style='text-decoration:none;'>

".$value['login']."

</a>

</div>

<div id='leavesCount' style='float:right;padding-right:5px;'>$count</div>

</div>

";

}

$out .= '</div>' ;

//return var_export($days);

$out .= '

<div id="leavesCalendar" style="width:80%;float:right;">

<script type="text/javascript" src="'.$site->url.'engine/includes/js/leaves.js"></script>

'; // весь месяц

for($month=1;$month<=12;$month++){

$dateNow = explode('.',date('d.m.Y',$date));

$count = $this->countOfDays($date);

$countDays[$month] = $count['now'];

$out .= '

<div title="'.$dateNow[2].'" style="width:9%;float:left;border-style: solid; border-width: 1px; text-align:center;margin:1px;">

'.$this->russianDate($date,'month').'

</div>

'; // месяц на русском языке

$out .= '<div id="leavesDays" style="width:90%;float:left;cursor : crosshair">'; // дни меняца

$colWidth = 70/30;

for($day=1;$day<=$countDays[$month];$day++){

$dayId = strtotime($day.'.'.$dateNow[1].'.'.$dateNow[2]);

$bgColor = !empty($days[$dayId]['colors'][0]) ? 'background:'.$days[$dayId]['colors'][0].';' : '';

$title = (!empty($days[$dayId]['logins'][0]))? implode(', ',$days[$dayId]['logins']) : '';

$out .= '

<div title="'.$title.'" id="'.$dayId.'" style="'.$bgColor.'width:'.$colWidth.'%;float:left;border-style: solid; border-width: 1px; margin:1px;text-align:center;font-size: 8px;font-weight: bold;">

'.date('j',$dayId).'

</div>

';

}

$out .= '</div>' ;

$date = $date+($countDays[$month]*86400);

}

$out .= '</div>' ;

return $out;

}

}

?>

Размещено на Allbest.ru


Подобные документы

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.