Диплом: Автоматизация приема и обработки заявок на оказание услуг в ООО "Энергия"

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам
96
<input type="text" name="last_name" id="order_last_name" required>
</div>
<div class="form__group">
<label for="order_city">Город</label>
<input type="text" name="city" id="order_city" required>
</div>
<div class="form__group">
<label for="order_address">Адрес</label>
<input type="text" name="address" id="order_address" required>
</div>
<div class="form__group">
<label for="order_phone">Телефон</label>
<input type="tel" name="phone" id="order_phone" required>
</div>
<div class="form__group">
<label for="order_period">Когда можно позвонить</label>
<div class="row">
<span>С</span>
<input type="time" name="period" id="order_period_from" step="60"
value="09:00" required>
<span>До</span>
<input type="time" name="period" id="order_period_to" step="60"
value="18:00" required>
</div>
</div>
<div class="form__group">
<label for="order_email">E-mail</label>
<input type="email" name="email" id="order_email" required>
</div>
<div class="form__group">
97
<label for="order_service">Услуга</label>
<select name="service" id="order_service">
<option value="test">Выберите услугу</option>
</select>
</div>
<div class="form__group">
<button type="submit" class="button button-primary">Отправить
заказ</button>
</div>
</form>
HTML;
}
public function register_block()
{
add_shortcode('order-form', ['OrderForm', 'render_form']);
$assets = include(plugin_dir_path(__FILE__) . 'build/order-
form.asset.php');
$assets['dependencies'][] = 'wp-editor';
wp_register_script(
'order-form',
plugins_url( 'build/order-form.js', __FILE__ ),
$assets['dependencies'],
$assets['version']
);
wp_register_style(
'order-form',
plugins_url('style/style.css', __FILE__),
['wp-edit-blocks'],
filemtime(plugin_dir_path(__FILE__) . 'style/style.css')
98
);
wp_localize_script('order-form', 'formOptions', ['API_URL' =>
'http://energo/api']);
register_block_type( 'energo/order-form', [
'editor_script' => 'order-form',
'editor_style' => 'order-form',
'render_callback' => ['OrderForm', 'render_form']
]);
}
public function enqueue_script()
{
if (has_block('energo/order-form') || is_home()) {
wp_enqueue_script(
'order-form-frontend',
plugins_url('order-form-frontend.js', __FILE__),
['jquery'],
filemtime(plugin_dir_path(__FILE__) . 'order-form-frontend.js')
);
wp_enqueue_style('order-form');
}
}
}
99
Приложение 2. Программный код модуля «Управление нарядами»
<?php
add_action('add_meta_boxes', 'order_form_add_meta_boxes');
add_action('admin_enqueue_scripts', 'energo_set_order_team_scripts');
function order_form_add_meta_boxes() {
add_meta_box('order-note-users', 'Назначенные рабочие',
'add_order_users', ['shop_order']);
}
function add_order_users($order, $meta) {
global $wpdb;
wp_nonce_field(plugin_basename(__FILE__), 'order-form-noncename');
$sql = <<<SQL
select
brigades.description,
um.meta_value as fio,
ot.id as team_id
from brigades
left join order_teams ot on brigades.id = ot.brigade_id
left join wp_usermeta um on um.user_id = brigades.manager_id
where ot.order_id = {$order->ID}
and um.meta_key = 'nickname'
SQL;
$brigade = $wpdb->get_results($sql);
if (count($brigade)) {
$brigade = $brigade[0];
$sql = <<<SQL
select
um.meta_value as fio
100
from jobs_workers jw
left join jobs j on jw.job_id = j.id
left join wp_usermeta um on um.user_id = jw.worker_id
where j.team_id = {$brigade->team_id}
and um.meta_key = 'nickname'
SQL;
$workers = $wpdb->get_results($sql);
$workers_list = '';
if (count($workers)) {
foreach ($workers as $worker) {
$workers_list .= <<<HTML
<li>{$worker->fio}</li>
HTML;
}
} else {
$workers_list = 'Рабочих нет';
}
echo <<<HTML
<div class="col">
Бригада: {$brigade->description}, <br>Бригадир: {$brigade->fio}
</div>
<div class="col">
<div>Список занятых рабочих</div>
<ul>
$workers_list
</ul>
</div>
<a href="/wp-admin/admin.php?page=edit_job&order_id={$order-
>ID}">Изменить наряд</a>
101
HTML;
} else {
echo <<<HTML
Наряда на выполнение заявки нет <br>
<a href="/wp-admin/admin.php?page=edit_job&order_id={$order-
>ID}">Создать наряд</a>
HTML;
}
}
function energo_set_order_team_scripts()
{
// get current admin screen, or null
$screen = get_current_screen();
// verify admin screen object
if (is_object($screen)) {
// enqueue only for specific post types
if (in_array($screen->post_type, ['post', 'shop_order'])) {
// enqueue script
wp_enqueue_script(
'energo_set_order_team',
plugins_url('order-set-team.js', __FILE__),
['jquery'],
filemtime(plugin_dir_path(__FILE__) . 'order-set-team.js')
);
wp_enqueue_style(
'energo_set_order_team_style',
plugins_url('style/set-order-team.css', __FILE__),
102
[],
filemtime(plugin_dir_path(__FILE__) . 'style/set-order-team.css')
);
}
}
}

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

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