Разработка автоматизированной системы планирования и учета нарядов в подразделении для военно-учебных заведений
Выбор аппаратной и программной платформы системы планирования и учета нарядов подразделения. Определение архитектуры создаваемой системы, сравнение существующих технологий программирования. Реализация подсистемы идентификации и авторизации на сайте.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | дипломная работа |
Язык | русский |
Дата добавления | 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="#">
в--„
</a>
<a class="blueButton" onclick="getCalendar(<? echo $next; ?>,'<? echo $act; ?>','<? echo $unitId; ?>','<? echo $userId; ?>')" style="padding: 5px 10px 5px 10px;" href="#">
в-є
</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= " ";
}
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
Подобные документы
Основные расчеты электрических сетей. Отличия создаваемой программной системы. Обоснование выбора базовой платформы и языка программирования. Реализация программной системы. Принципы защиты информации. Передача мощных потоков энергии с минимумом потерь.
дипломная работа [882,3 K], добавлен 18.01.2014Проектирование информационнной системы планирования и учета поставок деталей внутри ОАО "АВТОВАЗ" из изготавливающих детали цехов на платформу В0. Формализация существующих бизнес-процессов. Выбор и разработка архитектуры, составление диаграмм.
курсовая работа [8,2 M], добавлен 25.12.2011Исследование существующего документооборота. Методика расчета планирования обновления оборудования. Описание программных средств, выбора интерфейса. Разработка и реализация приложения системы мониторинга, учета и планирования обновления оборудования.
дипломная работа [2,0 M], добавлен 07.03.2015Проектирование, разработка и внедрение информационной системы, предназначенной для автоматизации документооборота и учета по приему аварийных автомобилей и составлению заказ-нарядов. Взаимодействие приложения с источниками данных. Оценка стоимости ПО.
дипломная работа [1,9 M], добавлен 08.02.2015Определение основных функциональных требований к модулям автоматизированной информационной системы. Разработка концептуальной модели данных. Реализация системы учета объектов интеллектуальной собственности и научно-технической продукции университета.
дипломная работа [5,2 M], добавлен 26.05.2012Методы диагностики производительности запросов. Выбор инструментов для front-end разработки. Проектирование архитектур программной системы. Реализация системы регистрации и авторизации пользователей на сайте. Причины неэффективности SQL-запросов в Oracle.
дипломная работа [1,0 M], добавлен 09.11.2016Разработка информационной системы на платформе "1С:Предприятие 8.0" для автоматизации документооборота и учета по приему аварийных автомобилей и составлению заказ-нарядов. Проектирование интерфейса. Построение логической и физической моделей данных.
дипломная работа [640,5 K], добавлен 14.02.2015Анализ существующих разработок и обоснование выбора технологии проектирования. Проектирование подсистемы кадрового учета. Выбор и обоснование методики расчета экономической эффективности автоматизированной системы кадрового учета на предприятии.
дипломная работа [1,9 M], добавлен 09.02.2018Архитектура автоматизированной информационной системы управления складом. Заказ материалов, подсистема учета материалов бытовой техники на цеховом складе. Внемашинное информационное обеспечение. Выбор инструментальной платформы для реализации системы.
курсовая работа [1,6 M], добавлен 04.12.2014Разработка автоматизированной информационной системы для учета и контроля выполнения ремонтных работ, и предоставления услуг по разработке программного обеспечения компании "МегионСофтОйл", разработка алгоритмов приложений программной системы и модулей.
дипломная работа [5,3 M], добавлен 29.06.2012