Диплом: Автоматизация учета работ по ремонту компьютерного оборудования в компании ООО "ЭР-СТАЙЛ СИБИРЬ ИНТЕГРАЦИЯ"

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам
94
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ
1. ГОСТ 2.105 – 95. Общие требования к текстовым документам.
2. ГОСТ 7.32 – 2001. Отчет по научно-исследовательской работе.
Структура и правила оформления.
3. ГОСТ 7.82-2001. Библиографическое описание электронных
ресурсов.
4. ГОСТ 24.702-85 Эффективность автоматизированных систем
управления.
5. ГОСТ Р 7.0.5-2008. Библиографическая запись.
Библиографическое описание.
6. Алистер Коберн, Современные методы описания функциональных
требований к системам, М.: издательство "Лори", 2017. – 288 с
7. Гайфуллин Б.Н., Обухов И.А., Автоматизация систем управления
предприятиями стандарта ERP-MRPII. – М:Интерфейс-пресс, 2010 г. – 114 c.
8. Гончаров А. Самоучитель. HMTL / А. Гончаров. – Спб. : Питер,
2011. – 240 с.
9. Дунаев В. HTML, скрипты и стили / В. Дунаев. – Спб. : БХВ-
Петербург, 2015. – 816 с.
10. Жадеев А. PHP для начинающих / А. Жадеев. – Спб.: «Питер»,
2014. – 592 c.
11. Колисниченко Д. PHP и MySQL. Разработка WEB-приложений /
Д. Колисниченков – Спб: БХВ-Петербург, 2013. – 560 с.
12. Конналли Т. Базы данных. Проектирование, реализация и
сопровождение. Теория и практика / Т. Коналли, К. Бегг. – М.: Издательский
дом «Вильямс», 2013. 1093 c.
13. Лобова Г. Моделирование и анализ бизнес-процессов SADT. – М.:
LAP Lambert Academic Publishing, 2014. – 352 c.
14. Макдональд, М. Созданиец Web-сайта. Недостающее руководство
/ М. Макдональд. – Спб. : БХВ-Петербург, 2013. – 624 с.
95
15. Маклаков С. В. Моделирование бизнес-процессов с AllFusion
Process Modeler (BPwin 4.1) / С.В. Маклаков. – М. : ДИАЛОГ-МИФИ, 2013.
340 c.
16. Маклаков С.В. Создание информационных систем с AllFusion
Modeling Suite / С.В. Маклаков. – М. : ДИАЛОГ-МИФИ, 2013. 512 c.
17. Маклаков С.В. BPwin и Erwin. CASE-средства разработки
информационных систем / С.В. Маклаков. – М. : ДИАЛОГ–МИФИ, 2014.
369 c.
18. Тельнов, Ю.Ф. Информационные системы и технологии.
Information System and Technologies: науч. издание под ред. Тельнова Ю. Ф. –
М: Юнити-Дана,2012 – 303 с.
19. Флэнаган, Д. Javascript. Подробное руководство / Д. Флэнаган : пер
с англ. – М. : Символ-Плюс, 2013. – 1080 с.
20. Сайт компании YuKoSoft http://it-invent.ru/ /
96
ПРИЛОЖЕНИЯ
Приложение 1 Скрипт создания базы данных
CREATE TABLE category
(
id INTEGER NULL,
caption VARCHAR(20) NULL,
comment VARCHAR(20) NULL,
PRIMARY KEY (id)
);
CREATE TABLE defects
(
id INTEGER NULL,
caption VARCHAR(20) NOT NULL,
comment VARCHAR(20) NULL,
PRIMARY KEY (id)
);
CREATE TABLE equipments
(
id INTEGER NULL,
caption VARCHAR(20) NULL,
_serial VARCHAR(20) NULL,
comment VARCHAR(20) NULL,
categoryid INTEGER NULL,
PRIMARY KEY (id)
);
CREATE TABLE repairdefects
(
defectid INTEGER NOT NULL,
repairid INTEGER NOT NULL,
PRIMARY KEY (defectid,repairid)
);
CREATE TABLE repairs
(
id INTEGER NULL,
createdat DATE NULL,
userid INTEGER NULL,
comment VARCHAR(20) NULL,
97
diagnoscomment VARCHAR(20) NULL,
workcomment VARCHAR(20) NULL,
equipmentid INTEGER NULL,
diagnosdate DATE NULL,
repairdate DATE NULL,
PRIMARY KEY (id)
);
CREATE TABLE repairworks
(
workid INTEGER NOT NULL,
repairid INTEGER NOT NULL,
PRIMARY KEY (workid,repairid)
);
CREATE TABLE roles
(
id INTEGER NULL,
caption VARCHAR(20) NOT NULL,
PRIMARY KEY (id)
);
CREATE TABLE Users
(
id INTEGER NULL,
username VARCHAR(20) NULL,
login VARCHAR(20) NULL,
password VARCHAR(20) NULL,
email VARCHAR(20) NULL,
phone VARCHAR(20) NULL,
roleid INTEGER NULL,
PRIMARY KEY (id)
);
CREATE TABLE works
(
id INTEGER NULL,
caption VARCHAR(20) NOT NULL,
comment VARCHAR(20) NULL,
PRIMARY KEY (id)
);
98
Приложение 2 Исходный код программных модулей
<?php
namespace AppBundle\Controller;
use AppBundle\Entity\Comment;
use AppBundle\Entity\ProductCategory;
use AppBundle\Entity\Ticket;
use AppBundle\Entity\TicketStatus;
use AppBundle\Entity\TypeTicket;
use AppBundle\Form\Type\MyTicketFilterFormType;
use AppBundle\Form\Type\ProductCategoryFilterFormType;
use AppBundle\Form\Type\ProductCategoryFormType;
use AppBundle\Form\Type\ProductFormType;
use AppBundle\Entity\Role;
use AppBundle\Entity\Product;
use AppBundle\Form\Type\TicketCommentFormType;
use AppBundle\Form\Type\TicketFilterFormType;
use AppBundle\Form\Type\TicketFormType;
use AppBundle\Form\Type\TypeTicketFilterFormType;
use AppBundle\Form\Type\TypeTicketFormType;
use Sensio\Bundle\FrameworkExtraBundle\Configuration as Config;
use Symfony\Component\Form\FormError;
use Symfony\Component\HttpFoundation\RedirectResponse;
use Symfony\Component\HttpFoundation\Response;
class TicketController extends InitializableController
{
/**
* @return RedirectResponse|Response
* @Config\Route("/tickets", name = "site_tickets_index")
*/
public function indexAction()
{
if (($this->authChecker->isGranted(Role::TEHNIC)) || ($this-
>authChecker->isGranted(Role::PROGER))) {
$form=$this->createForm(new MyTicketFilterFormType());
$id = null;
$status=null;
$my = null;
$form->handleRequest($this->request);
$tickets = $this->getRepository('Ticket')-
>createQueryBuilder('t')
->leftJoin('t.status', 's')
->leftJoin('t.user', 'u')
->where('1=1');
if ($form->isSubmitted() && $form->isValid()) {
$id = $form->get('id')->getData();
$status = $form->get('status')->getData();
$my = $form->get('my')->getData();
}
if (!empty($id)) {
$tickets->andWhere('t.id = :id ')->setParameter('id',
$id);
}
if (!empty($status)) {
99
$tickets->andWhere('s.id = :status ')-
>setParameter('status', $status);
}
if (!empty($my)) {
$tickets->andWhere('u.id = :user ')-
>setParameter('user', $this->user->getId());
}
}
else {
$form=$this->createForm(new TicketFilterFormType());
$id = null;
$status=null;
$form->handleRequest($this->request);
$tickets = $this->getRepository('Ticket')-
>createQueryBuilder('t')
->leftJoin('t.status', 's')
->leftJoin('t.author', 'u')
->where('1=1');
if ($form->isSubmitted() && $form->isValid()) {
$id = $form->get('id')->getData();
$status = $form->get('status')->getData();
}
if (!empty($id)) {
$tickets->andWhere('t.id = :id ')->setParameter('id',
$id);
}
if (!empty($status)) {
$tickets->andWhere('s.id = :status ')-
>setParameter('status', $status);
}
$tickets->andWhere('u.id = :user ')->setParameter('user',
$this->user->getId());
}
$tickets=$tickets->getQuery()->getResult();
$this->view['tickets'] = $tickets;
$this->view['form'] = $form->createView();
$this->navigation = array('active' => 'tickets');
return $this->render('AppBundle:Tickets:index.html.twig');
}
/**
* @return RedirectResponse|Response
* @Config\Route("/tickets/add", name = "site_tickets_add")
*/
public function addAction()
{
$ticket = new Ticket();
$form = $this->createForm(new TicketFormType(), $ticket);
$form->handleRequest($this->request);
if ($form->isSubmitted() && $form->isValid()) {
$ticket->setAuthor($this->user);
/* @var TicketStatus $status*/
$status=$this->getRepository('TicketStatus')-
>findOneBy(array('id'=>1));
$ticket->setStatus($status);
$this->manager->persist($ticket);
$this->manager->flush();
100
$this->addNotice('success',
'tickets.html.twig',
array('notice' => 'added', 'id' => $ticket->getId())
);
return $this->redirectToRoute('site_tickets_index');
}
$this->forms['ticket'] = $form->createView();
$this->navigation = array('active' => 'tickets');
$this->view['ticket']=null;
return $this->render('AppBundle:Tickets:add.html.twig');
}
/**
* @param Ticket $ticket
* @return RedirectResponse|Response
* @Config\Route("/tickets/{ticket}/edit", name =
"site_tickets_edit")
* @Config\ParamConverter("ticket", options = {"mapping": {"ticket":
"id"}})
*/
public function editAction(Ticket $ticket)
{
$comment= new Comment();
$form = $this->createForm(new TicketCommentFormType(),
$comment);
$form->handleRequest($this->request);
if ($form->isSubmitted() && $form->isValid()) {
$comment->setTicket($ticket);
$comment->setAuthor($this->user);
if (is_null($ticket->getUser()) && $this->user != $ticket-
>getAuthor()) {
$ticket->setUser($this->user);
$this->manager->persist($ticket);
}
$comment->upload();
$this->manager->persist($comment);
$this->manager->flush();
return $this->redirectToRoute('site_tickets_edit',
array('ticket'=>$ticket->getId()));
}
$this->forms['comment'] = $form->createView();
$this->view['ticket'] = $ticket;
$this->navigation = array('active' => 'tickets');
return $this->render('AppBundle:Tickets:edit.html.twig');
}
/**
* @param Ticket $ticket
* @param TicketStatus $status
* @return RedirectResponse|Response
* @Config\Route("/tickets/{ticket}/change/{status}", name =
"site_tickets_change")
* @Config\ParamConverter("ticket", options = {"mapping": {"ticket":
"id"}})
* @Config\ParamConverter("status", options = {"mapping": {"srarus":
"id"}})
*/
public function changeAction(Ticket $ticket, TicketStatus $status)
101
{
$ticket->setStatus($status);
if ($status->getId()==4) {
$this->addNotice('success',
'tickets.html.twig',
array('notice' => 'closed', 'id' => $ticket->getId())
);
}
if ($status->getId()==3) {
$this->addNotice('info',
'tickets.html.twig',
array('notice' => 'sendmodified', 'id' => $ticket-
>getId())
);
$ticket->setUser(null);
}
$this->manager->persist($ticket);
$this->manager->flush();
$this->navigation = array('active' => 'tickets');
return $this->render('AppBundle:Tickets:index.html.twig');
}
}
<?php
namespace AppBundle\Controller;
use AppBundle\Form\Type\LoginFormType;
use AppBundle\Form\Type\ProfileFormType;
use AppBundle\Controller\InitializableController;
use AppBundle\Entity\Role;
use AppBundle\Entity\User;
use Sensio\Bundle\FrameworkExtraBundle\Configuration as Config;
use Symfony\Component\Form\FormError;
use Symfony\Component\HttpFoundation\RedirectResponse;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
use Symfony\Component\Security\Core\Encoder\UserPasswordEncoder;
use Symfony\Component\Security\Core\Security;
class SecurityController extends InitializableController
{
/**
* @return RedirectResponse|Response
* @Config\Route("/login", name = "site_security_login")
*/
public function loginAction()
{
if ($this->authChecker->isGranted(Role::USER)) return $this-
>redirectToRoute('homepage');
$error = null;
if ($this->request->attributes-
>has(Security::AUTHENTICATION_ERROR))
$error = $this->request->attributes-
>get(Security::AUTHENTICATION_ERROR);
else {
$error = $this->session-
>get(Security::AUTHENTICATION_ERROR, null);
102
$this->session->remove(Security::AUTHENTICATION_ERROR);
}
if (!is_null($error)) {
$this->addNotice('error', 'security_login.html.twig',
array('notice' => 'auth_error'));
}
$form = $this->createForm(new LoginFormType(), new User());
$this->navigation = array('active' => 'login');
$this->forms = array(
'login' => $form->createView(),
'last_username' => $this->session-
>get(Security::LAST_USERNAME, null)
);
return $this->render('AppBundle:Security:login.html.twig');
}
/**
* @throws NotFoundHttpException
* @Config\Route("/login-check", name =
"site_security_login_check")
*/
public function loginCheckAction()
{
throw $this->createNotFoundException();
}
/**
* @throws NotFoundHttpException
* @Config\Route("/logout", name = "site_security_logout")
*/
public function logoutAction()
{
throw $this->createNotFoundException();
}
/**
* @return RedirectResponse|Response
* @Config\Route("/profile", name = "site_security_profile")
*/
public function profileAction()
{
$form = $this->createForm(new ProfileFormType(), $this->user);
$form->handleRequest($this->request);
if ($form->isSubmitted() && $form->isValid()) {
if (!is_null($form->get('password')->getData())) {
/** @var UserPasswordEncoder $encoder */
$encoder = $this->get('security.password_encoder');
$this->user->setSalt(User::generateSalt())
->setPassword($encoder->encodePassword($this-
>user, $this->user->getPassword()));
$this->manager->persist($this->user);
$this->manager->flush();
}
$this->addNotice('success',
'security_profile.html.twig',
array('notice' => 'user_changed')
);
return $this->redirectToRoute('homepage');
}
103
$this->forms['profile'] = $form->createView();
$this->navigation = array('active' => 'homepage');
return $this->render('AppBundle:Security:profile.html.twig');
}
}
<?php
namespace AppBundle\Controller;
use AppBundle\Entity\CrossOver;
use AppBundle\Form\Type\CrossOverAddFormType;
use AppBundle\Form\Type\CrossOverEditFormType;
use AppBundle\Form\Type\CrossOverFilterFormType;
use AppBundle\Form\Type\CrossOverFormType;
use AppBundle\Entity\Role;
use AppBundle\Form\Type\CrossOverShowFormType;
use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\ORM\Query;
use Sensio\Bundle\FrameworkExtraBundle\Configuration as Config;
use Symfony\Component\HttpFoundation\JsonResponse;
use Symfony\Component\HttpFoundation\RedirectResponse;
use Symfony\Component\HttpFoundation\Response;
class CrossOverController extends InitializableController
{
/**
* @return RedirectResponse|Response
* @Config\Route("/crossovers/index/{pagenum}", name =
"site_crossover_index", defaults={ "pagenum": "1"})
*/
public function indexAction($pagenum=1)
{
$form=$this->createForm(new CrossOverFilterFormType());
$code = null;
$company=null;
$type=null;
$installTicket=null;
$destructTicket=null;
$stoika=null;
$form->handleRequest($this->request);
$crossoverquery = $this->getRepository('CrossOver')-
>createQueryBuilder('co')
->leftJoin('co.unitA','ua')
->leftJoin('ua.equipment', 'ea')
->leftJoin('co.unitB','ub')
->leftJoin('ub.equipment', 'eb')
->orderBy('co.id');
$crossovercountquery = $this->getRepository('CrossOver')-
>createQueryBuilder('co')
->select('COUNT(DISTINCT co.id)')
->leftJoin('co.unitA','ua')
->leftJoin('ua.equipment', 'ea')
->leftJoin('co.unitB','ub')
->leftJoin('ub.equipment', 'eb');

Смотрите также:

"Автоматизация обработки заявок ООО "Проектно-Строительная Компания"
"Автоматизация процесса аттестации персонала для ООО "Нэт Бай Нэт Холдинг"
"Анализ интернет-активности конкурентов ( на примере конкурентов "Газпром нефть")
"Бухгалтерский учёт и аудит расчётов с подотчётними лицами в организации на примере ООО "ЛОЦ 10""
«Психологическое сопровождение персонала в организации на примере ООО «Крокус»
Cовершенствование деловой оценки персонала в организации (на примере ООО "Даймонд кейтеринг развитие")
IPO - инструмент финансирования деятельности организации. На примере ПАО «Нефтяная компания «Лукойл»
PR как средство продвижения организации (на примере ПАО "Тамбовский завод "Комсомолец им. Н.С. Артемова")
PR-коммуникации в сфере общественного питания (на примере кафе-кондитерской «Cream Cheese»)
SMM как средство повышения эффективности работы учреждений социокультурной сферы (на примере Малого театра)