Корзина
@@ -211,7 +214,8 @@ use DateTime;
}
?>
-
+
+
+
+
+
+
+
+
+
+
+ 'form_profile_settings',
+ 'action' => false,
+ 'fieldConfig' => [
+ 'template' => '{label}{input}',
+ ],
+ 'options' => [
+ 'onsubmit' => 'return false;',
+ 'class' => 'ml-auto px-0 col'
+ ]
+ ]);
+
+ // Инициализация
+ $model_delivery ?? $model_delivery = yii::$app->user->identity;
+ $delivery_to_terminal_list ?? $delivery_to_terminal_list = ['Нет данных'];
+ ?>
+
+ = $form->field($model_delivery, 'opts[delivery_to_terminal]', ['options' => ['class' => "mb-0"]])
+ ->dropDownList($delivery_to_terminal_list, [
+ 'onChange' => 'page_profile_settings(this.parentElement.parentElement, undefined, \'\'); cart_cost_calculate();',
+ 'disabled' => count($delivery_to_terminal_list) <= 1
+ ])->label(false); ?>
+
+
+
+
+
+
+
+
+
diff --git a/mirzaev/skillparts/system/views/mails/supplier.php b/mirzaev/skillparts/system/views/mails/supplier.php
index 11d4ae0..7fb7777 100644
--- a/mirzaev/skillparts/system/views/mails/supplier.php
+++ b/mirzaev/skillparts/system/views/mails/supplier.php
@@ -2,7 +2,7 @@
ФИО: = $name ?>
-
Номер: = $phon ?>
+
Телефон: = $phon ?>
Почта: = $mail ?>
diff --git a/mirzaev/skillparts/system/views/profile/index.php b/mirzaev/skillparts/system/views/profile/index.php
index 76628b9..1a2e118 100644
--- a/mirzaev/skillparts/system/views/profile/index.php
+++ b/mirzaev/skillparts/system/views/profile/index.php
@@ -62,7 +62,7 @@ if (
'disabled' => count($delivery_to_terminal_list) <= 1
])->label('Терминал'); ?>
-
Выберите терминал получателя для рассчёта доставки
+
Выберите терминал получателя для расчёта доставки
diff --git a/mirzaev/skillparts/system/views/profile/panel.php b/mirzaev/skillparts/system/views/profile/panel.php
index 6e83b7d..b7e90da 100644
--- a/mirzaev/skillparts/system/views/profile/panel.php
+++ b/mirzaev/skillparts/system/views/profile/panel.php
@@ -215,32 +215,35 @@ $timezone = $timezone[1][0];
?>
readId())['_key'];
+ try {
+ // Поиск аккаунта владельца
+ $account = '/account/' . Account::searchBySupplyId($supply->readId())['_key'];
- // Деинициализация товара
- unset($product);
+ // Деинициализация товара
+ unset($product);
- if ($connect = $supply->searchConnectWithProduct()) {
- // Найдена привязка поставки к аккаунту
+ if ($connect = $supply->searchConnectWithProduct()) {
+ // Найдена привязка поставки к аккаунту
- $product = Product::searchById($connect->_to);
- }
-
- foreach ($supply->jrnl ?? [] as $jrnl) {
- // Перебор записей в журнале
-
- if ($jrnl['action'] === 'create') {
- // Найдена дата создания
-
- // Инициализация даты
- $create = (new DateTime())->setTimestamp($jrnl['date'])->setTimezone(new DateTimeZone($timezone))->format('H:i d.m.Y') ?? 'Неизвестно';
-
- // Выход из цикла
- break;
+ $product = Product::searchById($connect->_to);
}
- }
+ foreach ($supply->jrnl ?? [] as $jrnl) {
+ // Перебор записей в журнале
+
+ if ($jrnl['action'] === 'create') {
+ // Найдена дата создания
+
+ // Инициализация даты
+ $create = (new DateTime())->setTimestamp($jrnl['date'])->setTimezone(new DateTimeZone($timezone))->format('H:i d.m.Y') ?? 'Неизвестно';
+
+ // Выход из цикла
+ break;
+ }
+ }
+ } catch (Throwable $t) {
+ continue;
+ }
?>
diff --git a/mirzaev/skillparts/system/web/css/pages/cart.css b/mirzaev/skillparts/system/web/css/pages/cart.css
index 97d1394..caa6253 100644
--- a/mirzaev/skillparts/system/web/css/pages/cart.css
+++ b/mirzaev/skillparts/system/web/css/pages/cart.css
@@ -2,11 +2,11 @@
background-color: #fff;
}
-#page_cart article .list > .row:nth-child(2n+1) {
+#page_cart article .list>.row:nth-child(2n+1) {
background-color: #f7f6f9;
}
-#page_cart article .list > .row:first-child {
+#page_cart article .list>.row:first-child {
/* border-bottom: 2px solid #bcc2d5; */
background-color: #dbdde3;
}
@@ -15,3 +15,31 @@
font-weight: bold;
font-size: larger;
}
+
+#page_cart #cart_registration_menu>.cart_registration_content {
+ flex-grow: 1;
+ border-radius: 0 3px 3px 3px;
+}
+
+#page_cart #cart_registration_menu>.cart_registration_content>div,
+#page_cart #cart_registration_menu>.cart_registration_content>input {
+ display: none;
+}
+
+#page_cart #cart_registration_menu>.cart_registration_content>input:checked+div {
+ display: block;
+}
+
+#page_cart #cart_registration_menu>.cart_registration_content>div>.header_blue {
+ background-color: #dbdde3;
+}
+
+#page_cart #cart_registration_menu>.cart_registration_content>div>.header_blue~.row:nth-child(2n) {
+ background-color: #f7f6f9;
+}
+
+#page_cart #cart_registration_menu>.cart_registration_content #cart_registration_input_suppliers_requests .panel_supplier_request .cart_registration_input_suppliers_requests_block_textarea {
+ min-height: 100px;
+ display: inline-block;
+ height: 100%;
+}
diff --git a/mirzaev/skillparts/system/web/css/pages/profile.css b/mirzaev/skillparts/system/web/css/pages/profile.css
index 46550a5..1a8da27 100644
--- a/mirzaev/skillparts/system/web/css/pages/profile.css
+++ b/mirzaev/skillparts/system/web/css/pages/profile.css
@@ -4,7 +4,7 @@
}
#page_profile [id^=profile_panel_]>.profile_panel_content {
- flex-grow : 1;
+ flex-grow: 1;
border-radius: 0 3px 3px 3px;
}
@@ -30,7 +30,6 @@
display: inline-block;
height: 100%;
}
-}
/* #page_profile [id^=profile_panel_]>.profile_panel_content>div>.header_blue~.row:nth-child(2n + 1) {
background-color: #dbdde3;
diff --git a/mirzaev/skillparts/system/web/js/cart.js b/mirzaev/skillparts/system/web/js/cart.js
index 7ca8c9a..9f54461 100644
--- a/mirzaev/skillparts/system/web/js/cart.js
+++ b/mirzaev/skillparts/system/web/js/cart.js
@@ -315,6 +315,326 @@ function cart_list_comment_save(catn, type, element) {
return true;
};
+/**
+ * Редактирование параметра
+ *
+ * @param {*} _key
+ * @param {*} target
+ * @param {*} value
+ *
+ * @returns
+ */
+function cart_registration_block_edit(_key, target, value) {
+ $.ajax({
+ url: `/${_key}/${target}/edit`,
+ type: 'post',
+ dataType: 'json',
+ data: {
+ '_csrf': yii.getCsrfToken(),
+ 'value': value
+ },
+ success: page_profile_response_success,
+ error: page_profile_response_error
+ });
+
+ return false;
+}
+
+
+function cart_registration_entity_init(_key, wrap = 'cart_registration_entity_body') {
+ // Инициализация содержимого блока "Заявки на регистрацию поставщиков"
+
+ // Инициализация оболочки
+ wrap = document.getElementById(wrap);
+
+ $.ajax({
+ url: '/profile/panel/suppliers/requests/search',
+ type: 'post',
+ dataType: 'json',
+ data: {
+ '_csrf': yii.getCsrfToken(),
+ _key
+ },
+ success: (data, status, xhr) => {
+ // Обработка ответа
+
+ if (data !== undefined) {
+ // Получены данные с сервера
+
+ if (data.suppliers !== undefined && data.suppliers !== null) {
+ // Найдены данные поставщиков
+
+ // Удаление данных в оболочке
+ wrap.innerHTML = null;
+
+ for (let html of cart_registration_entity_generate(data.suppliers[0])) {
+ // Перебор сгенерированных HTML-элементов
+
+ // Запись в документ
+ wrap.appendChild(html);
+ }
+ }
+ }
+
+ // Переход к остальным обработчикам
+ cart_response_success(data, status, xhr);
+ },
+ error: cart_response_error
+ });
+}
+
+function cart_registration_entity_generate(account) {
+ // Инициализация буфера вывода
+ let html = new Set;
+
+ if (account !== undefined) {
+ // Инициализация контейнера
+ let container = document.createElement('div');
+ container.setAttribute('class', 'row');
+
+ // Инициализация первой строки
+ let row_1 = document.createElement('div');
+ row_1.setAttribute('class', 'row px-0');
+
+ // Инициализация оболочки идентификатора аккаунта
+ let wrap_id = document.createElement('p');
+ wrap_id.setAttribute('class', 'mt-0 mb-2 px-3 row');
+
+ // Инициализация ярлыка идентификатора аккаунта
+ let label_id = document.createElement('b');
+ label_id.setAttribute('class', '');
+ label_id.innerText = 'Договор:';
+
+ // Инициализация значения идентификатора аккаунта
+ let value_id = document.createElement('span');
+ value_id.setAttribute('class', 'ml-auto');
+
+ // Инициализация колонки с основными данными аккаунта
+ let block_info = document.createElement('div');
+ block_info.setAttribute('class', 'col-6 pl-0 d-flex flex-column');
+
+ // Инициализация ярлыка "NAME"
+ let label_name = document.createElement('label');
+ label_name.setAttribute('class', 'control-label');
+ label_name.innerText = 'Контактное лицо';
+
+ // Инициализация поля "NAME"
+ let input_name = document.createElement('input');
+ input_name.setAttribute('class', 'form-control button_clean mb-3');
+ input_name.setAttribute('type', 'text');
+ input_name.setAttribute('placeholder', 'Иванов Иван Иванович');
+ input_name.setAttribute('onchange', 'return cart_registration_block_edit(' + account._key + ', "name", this.value);');
+ input_name.value = account.name ?? '';
+
+ // Инициализация ярлыка "BOSS"
+ let label_boss = document.createElement('label');
+ label_boss.setAttribute('class', 'control-label');
+ label_boss.innerText = 'Директор';
+
+ // Инициализация поля "BOSS"
+ let input_boss = document.createElement('input');
+ input_boss.setAttribute('id', 'boss');
+ input_boss.setAttribute('class', 'form-control button_clean mb-3');
+ input_boss.setAttribute('type', 'text');
+ input_boss.setAttribute('placeholder', 'Иванов Иван Иванович');
+ input_boss.setAttribute('onchange', 'return cart_registration_block_edit(' + account._key + ', "boss", this.value);');
+ input_boss.value = account.boss ?? '';;
+
+ // Инициализация ярлыка "SIMC" (телефон)
+ let label_simc = document.createElement('label');
+ label_simc.setAttribute('class', 'control-label');
+ label_simc.innerText = 'Телефон';
+
+ // Инициализация поля "SIMC" (телефон)
+ let input_simc = document.createElement('input');
+ input_simc.setAttribute('id', 'simc');
+ input_simc.setAttribute('class', 'form-control button_clean mb-3');
+ input_simc.setAttribute('type', 'number');
+ input_simc.setAttribute('onchange', 'return cart_registration_block_edit(' + account._key + ', "simc", this.value);');
+ input_simc.value = '';
+
+ // Инициализация ярлыка "MAIL"
+ let label_mail = document.createElement('label');
+ label_mail.setAttribute('class', 'control-label');
+ label_mail.innerText = 'Почта';
+
+ // Инициализация поля "MAIL"
+ let input_mail = document.createElement('input');
+ input_mail.setAttribute('id', 'mail');
+ input_mail.setAttribute('class', 'form-control button_clean mb-3');
+ input_mail.setAttribute('type', 'mail');
+ input_mail.setAttribute('onchange', 'return cart_registration_block_edit(' + account._key + ', "mail", this.value);');
+ input_mail.value = account.mail ?? '';
+
+ // Инициализация колонки с вторичными данными аккаунта
+ let block_details = document.createElement('div');
+ block_details.setAttribute('id', 'details');
+ block_details.setAttribute('class', 'pr-0 col-6 d-flex flex-column');
+
+ // Инициализация ярлыка "INDX"
+ let label_indx = document.createElement('label');
+ label_indx.setAttribute('class', 'control-label');
+ label_indx.innerText = 'Индекс';
+
+ // Инициализация оболочки "INDX"
+ let wrap_indx = document.createElement('div');
+ wrap_indx.setAttribute('class', 'row mx-0 mb-3');
+
+ // Инициализация поля "INDX"
+ let input_indx = document.createElement('input');
+ input_indx.setAttribute('id', 'indx');
+ input_indx.setAttribute('class', 'col form-control button_clean');
+ input_indx.setAttribute('type', 'text');
+ input_indx.setAttribute('onchange', 'return cart_registration_block_edit(' + account._key + ', "indx", this.value);');
+ input_indx.value = account.indx ?? '';
+
+ // Инициализация кнопки "INDX"
+ let button_indx = document.createElement('a');
+ button_indx.setAttribute('class', 'ml-2 my-auto text-dark');
+ button_indx.setAttribute('type', 'button');
+ button_indx.setAttribute('role', 'button');
+ button_indx.innerHTML = '';
+
+ // Инициализация ярлыка "TAXN"
+ let label_taxn = document.createElement('label');
+ label_taxn.setAttribute('class', 'control-label');
+ label_taxn.innerText = 'ИНН';
+
+ // Инициализация поля "TAXN"
+ let input_taxn = document.createElement('input');
+ input_taxn.setAttribute('id', 'taxn');
+ input_taxn.setAttribute('class', 'form-control button_clean mb-3');
+ input_taxn.setAttribute('type', 'text');
+ input_taxn.setAttribute('onchange', 'return cart_registration_block_edit(' + account._key + ', "taxn", this.value);');
+ input_taxn.value = account.taxn ?? '';
+
+ // Инициализация ярлыка "CNTG"
+ let label_cntg = document.createElement('label');
+ label_cntg.setAttribute('class', 'control-label');
+ label_cntg.innerText = 'КПП';
+
+ // Инициализация поля "CNTG"
+ let input_cntg = document.createElement('input');
+ input_cntg.setAttribute('id', 'cntg');
+ input_cntg.setAttribute('class', 'form-control button_clean mb-3');
+ input_cntg.setAttribute('type', 'text');
+ input_cntg.setAttribute('onchange', 'return cart_registration_block_edit(' + account._key + ', "cntg", this.value);');
+ input_cntg.value = account.cntg ?? '';
+
+ // Инициализация ярлыка "FADD"
+ let label_fadd = document.createElement('label');
+ label_fadd.setAttribute('class', 'control-label');
+ label_fadd.innerText = 'Фактический адрес';
+
+ // Инициализация поля "FADD"
+ let input_fadd = document.createElement('input');
+ input_fadd.setAttribute('id', 'fadd');
+ input_fadd.setAttribute('class', 'form-control button_clean mb-3');
+ input_fadd.setAttribute('type', 'text');
+ input_fadd.setAttribute('onchange', 'return cart_registration_block_edit(' + account._key + ', "fadd", this.value);');
+ input_fadd.value = account.fadd ?? '';
+
+ // Инициализация ярлыка "LADD"
+ let label_ladd = document.createElement('label');
+ label_ladd.setAttribute('class', 'control-label');
+ label_ladd.innerText = 'Юридический адрес';
+
+ // Инициализация поля "LADD"
+ let input_ladd = document.createElement('input');
+ input_ladd.setAttribute('id', 'ladd');
+ input_ladd.setAttribute('class', 'form-control button_clean');
+ input_ladd.setAttribute('type', 'text');
+ input_ladd.setAttribute('onchange', 'return cart_registration_block_edit(' + account._key + ', "ladd", this.value);');
+ input_ladd.value = account.ladd ?? '';
+
+ // Инициализация ярлыка "COMP"
+ let label_comp = document.createElement('label');
+ label_comp.setAttribute('class', 'control-label');
+ label_comp.innerText = 'Организация';
+
+ // Инициализация поля "COMP"
+ let input_comp = document.createElement('input');
+ input_comp.setAttribute('id', 'comp');
+ input_comp.setAttribute('class', 'form-control button_clean mb-3');
+ input_comp.setAttribute('type', 'text');
+ input_comp.setAttribute('onchange', 'return cart_registration_block_edit(' + account._key + ', "comp", this.value);');
+ input_comp.value = account.comp ?? '';
+
+ // Инициализация ярлыка "CNTC"
+ let label_cntc = document.createElement('label');
+ label_cntc.setAttribute('class', 'control-label');
+ label_cntc.innerText = 'Контакты';
+
+ // Инициализация поля "CNTC"
+ let input_cntc = document.createElement('textarea');
+ input_cntc.setAttribute('id', 'cntc');
+ input_cntc.setAttribute('class', 'form-control button_clean h-100');
+ input_cntc.setAttribute('style', 'resize: none;');
+ input_cntc.setAttribute('type', 'text');
+ input_cntc.setAttribute('onchange', 'return cart_registration_block_edit(' + account._key + ', "cntc", this.value);');
+ input_cntc.value = account.cntc ?? '';
+
+ // Инициализация оболочки найденного по геолокации города
+ let wrap_city = document.createElement('p');
+ wrap_city.setAttribute('class', 'mt-1 mb-2 px-3 row');
+
+ // Инициализация ярлыка найденного по геолокации города
+ let label_city = document.createElement('b');
+ label_city.setAttribute('class', '');
+ label_city.innerText = 'Город:';
+
+ // Инициализация значения найденного по геолокации города
+ let value_city = document.createElement('span');
+ value_city.setAttribute('class', 'ml-auto');
+ value_city.innerText = account.city ?? 'Неизвестно';
+
+ // Компоновка элементов блока с основной информацией
+ block_info.appendChild(label_name);
+ block_info.appendChild(input_name);
+
+ block_info.appendChild(label_simc);
+ block_info.appendChild(input_simc);
+
+ block_info.appendChild(label_mail);
+ block_info.appendChild(input_mail);
+
+ block_info.appendChild(label_indx);
+ wrap_indx.appendChild(input_indx);
+ wrap_indx.appendChild(button_indx);
+ block_info.appendChild(wrap_indx);
+
+ block_info.appendChild(label_cntc);
+ block_info.appendChild(input_cntc);
+
+ // Компоновка элементов блока с вторичными данными
+ block_details.appendChild(label_boss);
+ block_details.appendChild(input_boss);
+
+ block_details.appendChild(label_comp);
+ block_details.appendChild(input_comp);
+
+ block_details.appendChild(label_taxn);
+ block_details.appendChild(input_taxn);
+
+ block_details.appendChild(label_cntg);
+ block_details.appendChild(input_cntg);
+
+ block_details.appendChild(label_fadd);
+ block_details.appendChild(input_fadd);
+
+ block_details.appendChild(label_ladd);
+ block_details.appendChild(input_ladd);
+
+ // Компоновка всех колонок
+ container.appendChild(block_info);
+ container.appendChild(block_details);
+
+ html.add(container);
+ }
+
+ return html;
+};
+
function cart_response(data, status, xhr) {
// Обработка ответов
diff --git a/mirzaev/skillparts/system/web/js/menu.js b/mirzaev/skillparts/system/web/js/menu.js
index 0a38d05..82e5e9a 100644
--- a/mirzaev/skillparts/system/web/js/menu.js
+++ b/mirzaev/skillparts/system/web/js/menu.js
@@ -1,12 +1,13 @@
-function page_main() {
+function page_main(redirect = '/') {
if (document.getElementById('page_index') === null) {
- url = '/';
-
$.ajax({
- url: url,
+ url: '/',
type: 'post',
dataType: 'json',
- data: { '_csrf': yii.getCsrfToken() },
+ data: {
+ '_csrf': yii.getCsrfToken(),
+ redirect
+ },
success: menu_success,
error: menu_error
});
@@ -15,15 +16,16 @@ function page_main() {
return false;
};
-function page_profile() {
+function page_profile(redirect = '/profile') {
if (document.getElementById('page_profile') === null) {
- url = '/profile'
-
$.ajax({
- url: url,
+ url: '/profile',
type: 'post',
dataType: 'json',
- data: { '_csrf': yii.getCsrfToken() },
+ data: {
+ '_csrf': yii.getCsrfToken(),
+ redirect
+ },
success: menu_success,
error: menu_error
});
@@ -32,15 +34,16 @@ function page_profile() {
return false;
};
-function page_cart() {
+function page_cart(redirect = '/cart') {
if (document.getElementById('page_cart') === null) {
- url = '/cart'
-
$.ajax({
- url: url,
+ url: '/cart',
type: 'post',
dataType: 'json',
- data: { '_csrf': yii.getCsrfToken() },
+ data: {
+ '_csrf': yii.getCsrfToken(),
+ redirect
+ },
success: menu_success,
error: menu_error
});
@@ -49,15 +52,16 @@ function page_cart() {
return false;
};
-function page_orders() {
+function page_orders(redirect = '/orders') {
if (document.getElementById('page_orders') === null) {
- url = '/orders'
-
$.ajax({
- url: url,
+ url: '/orders',
type: 'post',
dataType: 'json',
- data: { '_csrf': yii.getCsrfToken() },
+ data: {
+ '_csrf': yii.getCsrfToken(),
+ redirect
+ },
success: menu_success,
error: menu_error
});
diff --git a/mirzaev/skillparts/system/web/js/profile.js b/mirzaev/skillparts/system/web/js/profile.js
index 7a9dda5..ce1e01a 100644
--- a/mirzaev/skillparts/system/web/js/profile.js
+++ b/mirzaev/skillparts/system/web/js/profile.js
@@ -125,7 +125,7 @@ function page_supplies_settings(form, warehouse, panel) {
return false;
};
-function page_profile_settings(form, panel) {
+function page_profile_settings(form, panel, redirect = '/profile') {
if (form == undefined) {
form = {
'_csrf': yii.getCsrfToken()
@@ -134,12 +134,21 @@ function page_profile_settings(form, panel) {
if (panel !== undefined) {
form.panel = panel;
};
+
+ form.redirect = redirect;
} else {
form = $(form).serializeArray();
+ if (panel !== undefined) {
+ form.push({
+ name: "panel",
+ value: panel
+ });
+ };
+
form.push({
- name: "panel",
- value: panel
+ name: "redirect",
+ value: redirect
});
};
diff --git a/mirzaev/skillparts/system/web/js/profile_panel.js b/mirzaev/skillparts/system/web/js/profile_panel.js
index 351c7b5..311fd10 100644
--- a/mirzaev/skillparts/system/web/js/profile_panel.js
+++ b/mirzaev/skillparts/system/web/js/profile_panel.js
@@ -290,7 +290,7 @@ function page_profile_panel_input_suppliers_requests_generate(suppliers) {
// Инициализация ярлыка "SIMC" (телефон)
let label_simc = document.createElement('label');
label_simc.setAttribute('class', 'control-label');
- label_simc.innerText = 'Номер';
+ label_simc.innerText = 'Телефон';
// Инициализация поля "SIMC" (телефон)
let input_simc = document.createElement('input');