Диплом: Автоматизация управления проектами компании ИП "Optimal Decision"

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам
147
.sc_socials.sc_socials_size_tiny .social_icons span{
font-size: 2em;
}
a.phone_html{
display: contents;
}
i.addres_icon, i.phone_icon{
display: block !important;
}
#time_free{
display:none;
}
.top_panel_top_contact_area,
.top_panel_top_user_area,
.top_panel_top_socials,
.top_panel_top_open_hours,
.top_panel_top_user_area .menu_user_nav {
margin:0.5em 0 0 0;
float:none;
text-align:center;
}
.top_panel_top_search {
margin-top:0.5em;
}
.top_panel_top_user_area .menu_user_nav {
display:inline-block;
}
.top_panel_top_user_area .menu_user_nav li {
text-align:left;
}
.top_panel_top_open_hours {
margin-top:0.5em;
margin-bottom:0.5em;
}
.top_panel_style_1 .contact_logo {
width:100%;
}
.top_panel_style_1 .logo {
text-align:center;
}
.top_panel_style_1 .contact_field {
text-align:center;
margin-top:1em;
margin-bottom:2em;
padding-top:0 !important;
width:33.3333% !important;
}
.top_panel_style_1 .contact_field .contact_icon {
148
float: none;
margin-right:auto;
margin-left:auto;
margin-bottom:0.3em;
}
.top_panel_style_2 .contact_logo,
.top_panel_style_2 .contact_field {
width:100% !important;
}
.top_panel_style_2 .contact_logo {
margin:0;
padding:0 !important;
}
.top_panel_style_2 .contact_logo .logo {
margin:0;
}
.top_panel_style_2 .logo {
text-align:center;
}
.top_panel_style_2 .contact_field {
text-align:center;
margin:1.5em 0;
padding:0 !important;
}
.top_panel_style_2 .contact_phone > span+span {
text-align:center;
}
.top_panel_style_2 .contact_field .contact_icon {
float: none;
margin-right:auto;
margin-left:auto;
}
.top_panel_title .page_title,
.top_panel_title .breadcrumbs {
max-width: 100% !important;
float:none;
text-align:center;
}
.top_panel_title.title_present .breadcrumbs {
padding: 0 0 1.5em 0 !important;
}
.admin-bar.top_panel_over .top_panel_wrap { top:46px; }
.admin-bar.top_panel_fixed .top_panel_wrap { top:46px; }
.admin-bar #debug_log { top:46px; }
.menu_user_nav > li {
float: none;
display:inline-block;
}
149
.top_panel_style_3 .top_panel_search,
.top_panel_style_3 .menu_user_nav {
margin-top: 0;
}
.top_panel_style_3 .search_submit,
.top_panel_style_3 .search_field {
padding-top: 0.5em;
padding-bottom: 0.5em; }
.top_panel_style_3 .search_results {
right: auto;
left:0;
top: 3.8em;
.top_panel_style_3 .search_results:after {
right: auto;
left:4em;
/* Registration popup */
.popup_wrap {: 230px; }
.popup_wrap .login_socials_title {font-size:1.25em;}
.popup_wrap input[type="text"], .popup_wrap input[type="email"],
.popup_wrap input[type="password"] {
font-size:1em;}
/* Posts layouts */
.post_featured_left > .post_featured,
.post_featured_right > .post_featured {
float: none;
margin-left: 0;
margin-bottom: 2em;
width: 100%;}
.isotope_wrap .isotope_item { width:100% !important;}
.comments_list_wrap ul ul ul {margin-left:0;}
/* Reviews block */
.reviews_block {width:100%; }
.content .reviews_block {
float:none;
margin-left:0;}
/* Shortcodes */
.sc_accordion.sc_accordion_style_2 .sc_accordion_item .sc_accordion_title
.sc_accordion_icon {border-width: 1px;}
input.sc_button_size_large[type="submit"],
input.sc_button_size_large[type="button"], button.sc_button_size_large,
.sc_button.sc_button_size_large {padding: 1em 1.25em;}
input.sc_button_size_medium[type="submit"],
input.sc_button_size_medium[type="button"], button.sc_button_size_medium,
.sc_button.sc_button_size_medium {padding: 0.8em 1em;}
input[type="submit"]:before, input[type="button"]:before, button:before,
.sc_button:before {margin-right:4px;}
.sc_contact_form.sc_contact_form_standard .sc_contact_form_field {
float: none;
150
width: 100%;
padding-left:0 !important;}
.sc_price_block .sc_price_block_description {height: 5.5em;}
.sc_slider, .sc_slider .swiper_slide {max-height:130px;}
.sc_tabs .sc_tabs_titles li a {padding: 0.5em;}
.sc_tabs.sc_tabs_style_1 .sc_tabs_titles li.ui-state-active a:after {height:2px;}
.sc_video_player.sc_video_bordered .sc_video_frame {max-width:198px;}
/* Scroll to Top */
.scroll_to_top {right: 1em;}
.scroll_to_top.show {bottom: 1em;}
.top_panel_wrap .icon-search-light:before {font-size: 20px;}
.sc_blogger.layout_aurora_3.template_aurora .post_info {margin: 0 0 0.5em 0;}
.prices_area_wrap_inner .column-1_3{padding-bottom: 10px;}
.mejs-offscreen {
top: 0 !important;
left: 0 !important;
width: auto !important;
height: auto !important;}
a[class*="eg-pets-club-element-"] {
font-size: 10px !important;
line-height: 10px !important;
padding: 10px !important;}
a[class*="eg-pets-club-element-"]:hover {
font-size: 10px !important;
line-height: 10px !important;}
div[id*="sc_skills_diagram_"].sc_skills_pie {width:100%;}
.sc_skills_pie.sc_skills_compact_on .sc_skills_item {width:100%;}
.sc_skills_pie.sc_skills_compact_on .sc_skills_legend {width:100%;}
}
@media (max-width: 639px) {
.search_wrap.search_style_regular.search_state_closed.search_ajax.top_panel_icon.ini
ted {
display: inline-block !important;
margin-left: 0;
margin-right: 0;}
.top_panel_icon.search_wrap, .top_panel_inner_style_5
.menu_main_responsive_button, .top_panel_inner_style_6
.menu_main_responsive_button,
.search_wrap.search_style_regular.search_state_closed.search_ajax.top_panel_icon.ini
ted {margin-top: 15px !important; }
.top_panel_style_6 .menu_main_nav_area {
margin-left: 0;
margin-right: 0; } }
/* Special responsive from slider */
@media (max-width: 2800px) and (min-width: 2000px) {
.tp-caption.slider-pet-2 { top: 150px !important; }}
@media (max-width: 1830px) {
.tp-caption.slider-pet-2 { font-size: 11em !important; }}
151
@media (max-width: 1730px) {
.tp-caption.slider-pet-2 { font-size: 10em !important; }
.tp-caption.slider-pet-3 { font-size: 9.333em !important; }}
@media (max-width: 1630px) {
.tp-caption.slider-pet-2 { font-size: 10.5em !important; }}
@media (max-width: 1530px) {
.tp-caption.slider-pet-2 { font-size: 11em !important; }
.tp-caption.slider-pet-3 { font-size: 7.533em !important; }}
@media (max-width: 1430px) {
.tp-caption.slider-pet-2 { font-size: 10em !important; }
.tp-caption.slider-pet-3 { font-size: 7em !important; }}
@media (max-width: 1330px){
.tp-caption.slider-pet-2 { font-size: 7em !important; }
.tp-caption.slider-pet-3 { font-size: 6.5em !important; }}
@media (max-width: 870px) {
.tp-caption.slider-pet-2 { font-size: 6em !important; }
.tp-caption.slider-pet-3 { font-size: 4em !important; }}
@media (max-width: 600px){
.tp-caption.slider-pet-2 { font-size: 3.3em !important; }
.tp-caption.slider-pet-3 { font-size: 2.4em !important; }
.tp-caption.slider-pets { font-size: .81em !important; }
.tp-leftarrow.tparrows.default.round, .tp-rightarrow.tparrows.default.round{
width: 2.2em !important;
height: 2.2em !important;}}
@media (max-width: 479px) {
.tp-caption.slider-pet-2 { font-size: 20px !important; }
.tp-caption.slider-pet-3 { font-size: 18px !important; }
.tp-caption.slider-pets { font-size: 11px !important; }
.rev_slider
a.sc_button.sc_button_square.sc_button_style_filled.sc_button_bg_custom.sc_button_
size_medium.sc_button_iconed.icon-right {
font-size: 3.5em !important;
bottom: -1em !important;
position: absolute }
.tp-leftarrow.tparrows.default.round, .tp-rightarrow.tparrows.default.round {
width: 4em !important;
height: 4em !important; }
.tp-leftarrow.tparrows.default.round, .tp-rightarrow.tparrows.default.round {
-webkit-background-size: 200%;
-moz-background-size: 200%;
-o-background-size: 200%;
background-size: 200%;}
.rev_slider
a.sc_button.sc_button_square.sc_button_style_filled.sc_button_bg_custom.sc_button_
size_medium.sc_button_iconed.icon-right {
padding-right: 1em; }
152
.rev_slider
a.sc_button.sc_button_square.sc_button_style_filled.sc_button_bg_custom.sc_button_
size_medium.sc_button_iconed.icon-right:before {display: none;}}
@media (max-width: 321px){
.tp-caption.slider-pet-2 { font-size: 20px !important; }
.tp-caption.slider-pet-3 { font-size: 18px !important; }
.tp-caption.slider-pets { font-size: 11px !important; }
.tp-leftarrow.tparrows.default.round, .tp-rightarrow.tparrows.default.round{width: 2em
!important; height: 2em !important;}
.rev_slider
a.sc_button.sc_button_square.sc_button_style_filled.sc_button_bg_custom.sc_button_
size_medium.sc_button_iconed.icon-right {
font-size: 3.5em !important;
padding: .7em 1em .7em 1em !important;}
.rev_slider
a.sc_button.sc_button_square.sc_button_style_filled.sc_button_bg_custom.sc_button_
size_medium.sc_button_iconed.icon-right:before { right: 0;}}
@media (max-width: 1136px) {
.mejs-button.mejs-volume-button.mejs-mute,.mejs-button.mejs-volume-button.mejs-
unmute,
.mejs-horizontal-volume-slider.mejs-mute{display: none !important;}}
Report.php
<?php
class Reports
{
public static function init_reports()
{
add_action('admin_enqueue_scripts', array(__CLASS__, 'load_custom_wp_admi
n_scripts'));
add_action('admin_menu', array(__CLASS__, 'reports_add_admin_pages'));
}
public static function reports_add_admin_pages()
{
add_menu_page('Система управлением проектами', 'Система управлением пр
оектами', 'list_users', 'reports', array(__CLASS__, 'reports_options_page'), "dashicons
-admin-page", 6);
}
public static function reports_options_page()
{
self::create_menu_form();
}
public static function load_custom_wp_admin_scripts($hook)
{
if ($hook != 'toplevel_page_reports') {
return;
153
}
wp_enqueue_style('reports_style', 'https://cdn.datatables.net/1.10.19/css/jquery.da
taTables.min.css');
wp_enqueue_style('reports_responsive_style', 'https://cdn.datatables.net/responsiv
e/2.2.3/css/responsive.dataTables.min.css');
wp_enqueue_style('reports_buttons_style', 'https://cdn.datatables.net/buttons/1.5.6
/css/buttons.dataTables.min.css');
wp_enqueue_style('reports_select2_style', 'https://cdnjs.cloudflare.com/ajax/libs/s
elect2/4.0.10/css/select2.min.css');
wp_enqueue_script('jquery_datatables_script', 'https://cdn.datatables.net/1.10.19/j
s/jquery.dataTables.min.js');
wp_enqueue_script('jquery_datatables_responsive_script', 'https://cdn.datatables.
net/responsive/2.2.3/js/dataTables.responsive.min.js');
wp_enqueue_script('jquery_datatables_buttons_script', 'https://cdn.datatables.net/
buttons/1.5.6/js/dataTables.buttons.min.js');
wp_enqueue_script('jquery_datatables_buttons_flash_script', 'https://cdn.datatabl
es.net/buttons/1.5.6/js/buttons.flash.min.js');
wp_enqueue_script('jquery_jszip_script', 'https://cdnjs.cloudflare.com/ajax/libs/js
zip/3.1.3/jszip.min.js');
wp_enqueue_script('jquery_pdfmake_script', 'https://cdnjs.cloudflare.com/ajax/lib
s/pdfmake/0.1.53/pdfmake.min.js');
wp_enqueue_script('jquery_pdfmake_vfs_fonts_script', 'https://cdnjs.cloudflare.c
om/ajax/libs/pdfmake/0.1.53/vfs_fonts.js');
wp_enqueue_script('jquery_html5_buttons_script', 'https://cdn.datatables.net/butt
ons/1.5.6/js/buttons.html5.min.js');
wp_enqueue_script('jquery_html5_buttons_print_script', 'https://cdn.datatables.ne
t/buttons/1.5.6/js/buttons.print.min.js');
wp_enqueue_script('jquery_html5_buttons_colVis_script', 'https://cdn.datatables.
net/buttons/1.5.6/js/buttons.colVis.min.js');
wp_enqueue_script('reports_select2_script', "https://cdnjs.cloudflare.com/ajax/lib
s/select2/4.0.10/js/select2.min.js");
wp_enqueue_script('reports_script', plugin_dir_url(__FILE__) . 'assets/js/reports.j
s', array('jquery'));
}
public static function create_menu_form()
{
$time_now = time() + 4 * 3600;
$date_string = date("Y-m-d", $time_now);
if (isset($_POST['reports_btn'])) {
if (function_exists('current_user_can') && !current_user_can('view_woocomm
erce_reports')) {
die(_e('Hacker?'));
}
if (function_exists('check_admin_referer')) {
check_admin_referer('reports_form');
}
$date = $_POST['datepicker-from'];
$date_string = $date;
154
}
?>
<form name='reports' method='POST' action='<?php $_SERVER['PHP_SELF'] ?
>?page=reports&apm;updated=true'>
<?php if (function_exists('wp_nonce_field')) {wp_nonce_field('reports_form');
}?>
<table class="form-table">
<tbody><tr><th scope="row"><label class="control-label" for="datepicker-
from" data="<?php echo $date_string; ?>">Дата заказов</label> </th>
<td><input type="date" id="datepicker-from" name="datepicker-
from" value="<?php echo $date_string; ?>" class="widefat has-
datepicker hasDatepicker" /> <span class="error_datepicker-from"></span></td></tr>
</tbody></table>
<p class="submit"><button type="submit" class="button button-
primary" name='reports_btn'>Получить отчеты</button> </p></form>
<h1 id="report_head">Система управления проектами</h1>
<table id="example" class="display responsive nowrap" style="width:100%">
<thead><tr><th>ID</th><th>Название задачи</th><th>Длительность</th>
<th>Начало</th><th>Окончание</th><th>Предшественники</th> <th>Затраты</t
h></tr></thead>
<tbody>php echo self::get_report($date_string);?> </tbody>
<tfoot><tr><th></th>th></th><th></th><th></th><th>Итого:</th><th>Затра
ты</th></tr></tfoot>
</table>
<?php
}
private function get_report($date_string){
$orders = self::get_orders($date_string);
$table_body = self::format_table_body($orders);
return $table_body; }
//getting orders by project id and date
private function get_orders($date_string) {
$projects = self::get_projects_ids();
$sql = "SELECT"
. " orders.ID as order_id, order_items.order_item_id as item_id, order_items.previous
as previous"
. " order_item_meta_project.meta_value as 'project_id', order_items.order_item_name
as project_name, project_meta_start.meta_value as 'start', project_meta_end.meta_val
ue as 'end', project_meta_time.meta_value as 'time',"
. " order_item_meta_price.meta_value as price, order_meta_billing_first_name.meta_v
alue as first_name, order_meta_billing_last_name.meta_value as last_name"
. " FROM `posts` orders"
. " LEFT JOIN woocommerce_order_items order_items"
. " ON order_items.order_id = orders.ID"
. " LEFT JOIN postmeta as order_meta_payment
ON order_meta_payment.post_id = orders.ID AND order_meta_payment.meta_key = '
_payment_method_title'"
. " LEFT JOIN postmeta as order_meta_billing_first_name
155
ON order_meta_billing_first_name.post_id = orders.ID AND order_meta_billi
ng_first_name.meta_key = '_billing_first_name'"
. " LEFT JOIN postmeta as order_meta_billing_last_name
ON order_meta_billing_last_name.post_id = orders.ID AND order_meta_billin
g_last_name.meta_key = '_billing_last_name'"
. " LEFT JOIN postmeta as order_meta_customer_user
ON order_meta_customer_user.post_id = orders.ID AND order_meta_custome
r_user.meta_key = '_customer_user'"
." LEFT JOIN woocommerce_order_itemmeta as order_item_meta_price
ON order_item_meta_price.order_item_id = order_items.order_item_id and or
der_item_meta_price.meta_key = '_line_total'"
. " LEFT JOIN users as users
ON users.ID = order_meta_customer_user.meta_value"
. " LEFT JOIN woocommerce_order_itemmeta as order_item_meta_project"
. " ON order_item_meta_project.order_item_id = order_items.order_item_id and orde
r_item_meta_project.meta_key = '_project_id'"
. " LEFT JOIN posts projects"
. " ON projects.ID = order_item_meta_project.meta_value"
. " LEFT JOIN postmeta as project_meta_start"
. " ON project_meta_start.post_id = projects.ID and project_meta_start.meta_key = '_s
tart'"
. " LEFT JOIN postmeta as project_meta_end"
. " ON project_meta_end.post_id = projects.ID and project_meta_end.meta_key = '_en
d'"
. " LEFT JOIN postmeta as project_meta_time"
. " ON project_meta_time.post_id = projects.ID and project_meta_time.meta_key = '_t
ime'"
. " WHERE orders.post_type = 'shop_order'"
. " AND orders.post_date LIKE '$date_string%'";
if (isset($projects) && count($projects) > 0) {$sql = $sql . " AND order_item_meta_p
roject.meta_value IN (" . implode(',', $projects) . ")";}
$sql = $sql . " Order BY orders.ID DESC";
global $wpdb; $orders = $wpdb->get_results($sql);return $orders; }
private function format_table_body($orders){
$table_body ="";
foreach($orders as $order){
$table_body = $table_body."<tr>";
$table_body = $table_body."<td>".$order->order_id."</td>";
$table_body = $table_body."<td>".$order->project_name."</td>";
$table_body = $table_body."<td>".$order->time."</td>";
$table_body = $table_body."<td>".$order->start."</td>";
$table_body = $table_body."<td>".$order->end."</td>";
$table_body = $table_body."<td>".$order->previous."</td>";
$table_body = $table_body."<td>".$order->price."</td>";
$table_body = $table_body."</tr>";}
return $table_body;
}
}

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

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