Курсовые работы / ПРИС К_1
.pdfРисунок B.2 ‒ Декомпозиция блока диаграммы
Рисунок B.3 ‒ Декомпозиция блока диаграммы
52
Рисунок B.4 ‒ Декомпозиция блока диаграммы
Рисунок B.5 ‒ Декомпозиция блока диаграммы
53
ПРИЛОЖЕНИЕ Г
Листинг программы Листинг Д.1 ‒ Справочники
<%= form_for(@avar) do |f| %> <% if @avar.errors.any? %> <div id="error_explanation">
<h2><%= pluralize(@avar.errors.count, "error") %> prohibited this avar from being saved:</h2>
<ul>
<% @avar.errors.full_messages.each do |message| %>
<li><%= message %></li> <% end %>
</ul>
</div> <% end %>
<div class="field">
<%= f.label :Вид_аварии %><br>
<%= f.collection_select(:vid_id, Vid.all, :id, :vid) %>
</div>
<div class="field">
<%= f.label :Сотрудник %><br>
<%= f.collection_select(:sotr_id, Sotr.all, :id, :fam) %>
</div>
<div class="field">
<%= f.label :Дата_аварии %><br> <%= f.datetime_select :datanah %> </div>
<div class="field">
<%= f.label :Дата_локализации_аварии
%><br>
<%= f.datetime_select :data_k %> </div>
<div class="field">
<%= f.label :Результат_ремонта %><br>
<%= f.collection_select(:result_id, Result.all, :id, :result) %>
</div>
<div class="field">
<%= f.label :Статус %><br> <%= f.check_box :status %>
</div>
<div class="field">
<%= f.label :Удаление %><br> <%= f.check_box :s_delete %> </div>
<div class="actions">
<%= f.submit "Добавить" %> </div>
<% end %>
<div class="mens8"> <div class="men8">
<h1>Редактирование Аварий</h1>
<%= render 'form' %>
<%= link_to 'Показать', @avar %> | <%= link_to 'Назад', avars_path %> </div>
</div>
<p id="notice"><%= notice %></p> <h1>Аварии</h1>
<%= link_to 'Новая авария', new_avar_path %>
<%= link_to 'Главная страница', controller: 'home_page' %>
<table class="table"> <thead>
<tr>
<th class="thdl">Вид аварии</th> <th class="thdl">Сотрудник</th> <th class="thdl">Дата аварии</th>
<th class="thdl">Дата локализации аварии</th>
<th class="thdl">Результат ремонта</th>
<th class="thdl">Статус</th> <th class="thdl">Удаление</th>
<th class="thdl" colspan="3"></th> </tr>
</thead>
<tbody>
<% @avars.each do |avar| %>
54
<% if avar.s_delete == false %> <tr>
<% else %>
<tr bgcolor="Red"> <% end %>
<td class="tddl"><%= avar.vid.vid %></td>
<td class="tddl"><%= avar.sotr.fam %></td>
<td class="tddl"><%= avar.datanah %></td>
<td class="tddl"><%= avar.data_k %></td>
<td class="tddl"><%= avar.result.result %></td>
<td class="tddl"><%= avar.status %></td>
<td class="tddl"><%= avar.s_delete %></td>
<td class="tddl"><%= link_to 'Показать', avar %></td>
<td class="tddl"><%= link_to 'Изменить', edit_avar_path(avar) %></td>
<% if session[:user_id] == 1 %>
<td class="tddl"><%= link_to 'Удалить', avar, method: :delete, data: { confirm: 'Вы уверены?' } %></td>
<% end %> </tr>
<% end %> </tbody> </table>
<div class="mens8"> <div class="men8"> <h1>Новая авария</h1> <%= render 'form' %>
<%= link_to 'Назад', avars_path %> </div>
</div>
<div class="mens9"> <div class="men9">
<p id="notice"><%= notice %></p> <p>
<strong>Вид аварии:</strong> <%= @avar.vid.vid %>
</p>
<p> <strong>Сотрудник:</strong> <%= @avar.sotr.fam %>
</p>
<p>
<strong>Дата аварии:</strong> <%= @avar.datanah %>
</p>
<p>
<strong>Дата локализации аварии:</strong>
<%= @avar.data_k %> </p>
<p>
<strong>Результат ремонта:</strong>
<%= @avar.result.result %> </p>
<p> <strong>Статус:</strong> <%= @avar.status %> </p>
<p> <strong>Удаление:</strong> <%= @avar.s_delete %> </p>
<%= link_to 'Изменить', edit_avar_path(@avar) %> |
<%= link_to 'Назад', avars_path %> </div>
</div>
class AvarsController < ApplicationController before_action :set_avar, only: [:show, :edit, :update, :destroy]
#GET /avars
#GET /avars.json def index
@avars = Avar.all end
#GET /avars/1
#GET /avars/1.json def show
end
#GET /avars/new def new
@avar = Avar.new end
55
#GET /avars/1/edit def edit
end
#POST /avars
#POST /avars.json def create
@avar = Avar.new(avar_params)
respond_to do |format| if @avar.save
format.html { redirect_to @avar, notice: 'Был успешно создан' }
format.json { render :show, status: :created, location: @avar }
else
format.html { render :new } format.json { render json: @avar.errors,
status: :unprocessable_entity } end
end end
#PATCH/PUT /avars/1
#PATCH/PUT /avars/1.json def update
respond_to do |format|
if @avar.update(avar_params)
format.html { redirect_to @avar, notice: 'Успешно обновлен' }
format.json { render :show, status: :ok, location: @avar }
else
format.html { render :edit } format.json { render json: @avar.errors,
status: :unprocessable_entity } end
end end
#DELETE /avars/1
#DELETE /avars/1.json def destroy @avar.destroy respond_to do |format|
format.html { redirect_to avars_url,
notice: 'Avar was successfully destroyed.' } format.json { head :no_content }
end end
private
#Use callbacks to share common setup or constraints between actions.
def set_avar
@avar = Avar.find(params[:id]) end
#Never trust parameters from the scary internet, only allow the white list through.
def avar_params params.require(:avar).permit(:vid_id,
:sotr_id, :datanah, :data_k, :result_id, :status, :s_delete)
end end
.table{
border-spacing: 0 10px; font-family: 'Open Sans', sans-serif; font-weight: bold;
}
.thdl {
padding: 10px 20px; background: rgb(7, 150, 175); color: rgb(250, 250, 250); border-right: 2px solid; font-size: 15px;
}
.thdl:first-child { text-align: left;
}
.thdl:last-child { border-right: none;
}
.tddl {
vertical-align: middle; padding: 10px; font-size: 14px; text-align: center;
border-top: 2px solid rgb(7, 150, 175); border-bottom: 2px solid rgb(7, 150, 175); border-right: 2px solid rgb(7, 150, 175);
}
56
.tddl:first-child {
border-left: 2px solid rgb(7, 150, 175);
}
.tddl:nth-child(2){ text-align: left;
}
.mens8{
background-color: rgb(255, 255, 255); border-radius: 20px;
height: 480px; width:480px; position:absolute; top:43%; left:47%;
margin:-200px 0 0 -200px; background-image: -webkit-linear-
gradient(-200deg,#0874b3,#00d7fc);
}
.men8{ margin-left: 55px;
margin-top: 50px; font-family: Roboto,sans-serif;
}
.mens9{
background-color: rgb(255, 255, 255); border-radius: 20px;
height: 370px; width:480px; position:absolute; top:49%; left:47%;
margin:-200px 0 0 -200px; background-image: -webkit-linear-gradient(-
200deg,#0874b3,#00d7fc);
}
.men9{ margin-left: 55px; margin-top: 50px;
font-family: Roboto,sans-serif;
}
Листинг Г.2 ‒ Отчеты
<h1>Отчет поиск локализованных аварий по дате</h1>
<%= link_to 'Главная страница', controller: 'home_page' %> <br><br>
<%= form_tag("search", method: "get") do %>
<%= label_tag(:start, "Введите начальную дату:") %>
<%= date_select(:start, "written_on") %> <br><br>
<%= label_tag(:finish, "Введите конечную дату:") %> <%= date_select(:finish, "written_on") %>
<br><br>
<%= submit_tag("Искать") %> <% end %>
</div>
<h1>Отчет поиск локализованных аварий по дате</h1>
<%= link_to 'Главная страница', controller: 'home_page' %> | <%= link_to 'Назад', controller: 'search_dateava' %> <br><br>
<table border="1"> <th>Код</th>
<th>Дата аварии</th>
57
<th>Дата аварии</th>
<th>Дата локализации аварии</th> <th>Результат ремонта</th>
<%= Avar.includes(:vid).joins("avars INNER JOIN results ON avars.result_id = results.id")
.where("date_part('year', avars.data_k) >= ? and date_part('month', avars.data_k) >= ? and date_part('day', avars.data_k)
>= ? and date_part('year', avars.data_k) <= ? and date_part('month', avars.data_k) <= ? and date_part('day', avars.data_k)
<= ? and results.result = 'Локализована в срок' ",@year_s, @month_s, @day_s, @year_f, @month_f, @day_f).find_each do |avar|%>
<tr>
<td><%= avar.id %></td> <td><%= avar.vid.vid %></td> <td><%= avar.datanah %></td> <td><%= avar.data_k %></td>
<td><%= avar.result.result %></td> </tr>
<% end %>
<div class="men13">
<h1>Отчет работы сотрудников по дате</h1>
<%= link_to 'Главная страница', controller: 'home_page' %> <br><br>
<%= form_tag("search", method: "get") do %>
<%= label_tag(:start, "Введите начальную дату:") %>
<%= date_select(:start, "written_on") %> <br><br>
<%= label_tag(:finish, "Введите конечную дату:") %> <%= date_select(:finish, "written_on") %>
<br><br>
<%= submit_tag("Искать") %> <% end %>
</div>
<?xml version="1.0" encoding="UTF-8"?>
<Workbook xmlns="urn:schemas-microsoft-com:office:spreadsheet" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:x="urn:schemas-microsoft-com:office:excel" xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet" xmlns:html="http://www.w3.org/TR/REC-html40">
<Worksheet ss:Name="Sheet1"> <Table>
<Row>
<Cell><Data ss:Type="String">Код</Data></Cell> <Cell><Data ss:Type="String">Фамилия</Data></Cell> <Cell><Data ss:Type="String">Имя</Data></Cell> <Cell><Data ss:Type="String">Отчество</Data></Cell> <Cell><Data ss:Type="String">Результат</Data></Cell> </Row>
58
<%= Avar.includes(:vid).joins("avars INNER JOIN results ON avars.result_id = results.id")
.find_each do |avar|%> <Row>
<Cell><Data ss:Type="Number"><%= avar.id %></Data></Cell> <Cell><Data ss:Type="String"><%= avar.sotr.fam %></Data></Cell> <Cell><Data ss:Type="String"><%= avar.sotr.name %></Data></Cell> <Cell><Data ss:Type="String"><%= avar.sotr.otch %></Data></Cell> <Cell><Data ss:Type="String"><%= avar.result.result %></Data></Cell> </Row>
<% end %> </Table> </Worksheet> </Workbook>
<h1>Отчет работы сотрудников по дате</h1>
<%= link_to 'Главная страница', controller: 'home_page' %> | <%= link_to 'Назад', controller: 'search_itgoth' %>
<%=link_to 'Скачать Excel', 'http://localhost:3000/search_itgoth/index.xls', data: { confirm: "Скачать файл?" } %>
<br><br>
<table border="1"> <th>Код</th> <th>Фамилия</th> <th>Имя</th> <th>Отчество</th>
<th>Дата аварии</th> <th>Дата устранения</th>
<th>Результат</th>
<%= Avar.includes(:vid).joins("avars INNER JOIN results ON avars.result_id = results.id")
.where("date_part('year', avars.data_k) >= ? and date_part('month', avars.data_k) >= ? and date_part('day', avars.data_k)
>= ? and date_part('year', avars.data_k) <= ? and date_part('month', avars.data_k) <= ? and date_part('day', avars.data_k)
<= ? ",@year_s, @month_s, @day_s, @year_f, @month_f, @day_f).find_each do |avar|%> <tr>
<td><%= avar.id %></td> <td><%= avar.sotr.fam %></td> <td><%= avar.sotr.name %></td> <td><%= avar.sotr.otch %></td> <td><%= avar.datanah %></td> <td><%= avar.data_k %></td>
<td><%= avar.result.result %></td> </tr>
<% end %>
59