Public release from ruodoo-project: 19.0 - 2026-11-01 22:52:25 UTC
This commit is contained in:
@@ -0,0 +1,46 @@
|
||||
import { registry } from "@web/core/registry";
|
||||
import { stepUtils } from "@web_tour/tour_utils";
|
||||
|
||||
/**
|
||||
* Этап 3: отменить заказ через интерфейс и убедиться, что отмена
|
||||
* отрабатывает штатно (заказ переходит в состояние «Cancelled»).
|
||||
* Каскадное удаление счетов комиссий проверяется в Python после тура.
|
||||
*
|
||||
* Кнопка «Отмена» в Odoo 19 может находиться в выпадающем меню
|
||||
* действий строки состояния — используем statusbarButtonsSteps.
|
||||
*/
|
||||
registry.category("web_tour.tours").add("ruodoo_commission_cancel_tour", {
|
||||
url: "/odoo",
|
||||
steps: () => [
|
||||
...stepUtils.goToAppSteps("sale.sale_menu_root", "Открыть приложение «Продажи»"),
|
||||
{
|
||||
content: "Открыть заказ Tour Customer из списка",
|
||||
trigger: '.o_list_view td.o_data_cell:contains("Tour Customer")',
|
||||
run: "click",
|
||||
},
|
||||
{
|
||||
content: "Форма заказа открыта",
|
||||
trigger: ".o_form_view .o_statusbar_status",
|
||||
},
|
||||
// Нажать «Отмена» (может быть в дропдауне действий).
|
||||
...stepUtils.statusbarButtonsSteps("Cancel", "Нажать «Отмена»"),
|
||||
// Базовый sale.action_cancel не открывает визард — состояние сразу
|
||||
// меняется. На случай подтверждающего модального окна закроем его.
|
||||
{
|
||||
content: "Подтвердить отмену, если появилось модальное окно",
|
||||
trigger: "body",
|
||||
run: function () {
|
||||
const btn = document.querySelector(
|
||||
".modal-dialog footer button.btn-primary"
|
||||
);
|
||||
if (btn) {
|
||||
btn.click();
|
||||
}
|
||||
},
|
||||
},
|
||||
{
|
||||
content: "Заказ отменён",
|
||||
trigger: ".o_statusbar_status .o_arrow_button_current:contains(Cancelled)",
|
||||
},
|
||||
],
|
||||
});
|
||||
@@ -0,0 +1,98 @@
|
||||
import { registry } from "@web/core/registry";
|
||||
import { stepUtils } from "@web_tour/tour_utils";
|
||||
import saleUtils from "@sale/js/tours/tour_utils";
|
||||
|
||||
/**
|
||||
* Этап 1: создание заказа, выбор клиента, заполнение строки,
|
||||
* выбор двух комиссий в колонке «Комиссии», сохранение, подтверждение,
|
||||
* затем начисление комиссии (кнопка «Начислить комиссию»).
|
||||
*
|
||||
* Данные (клиент «Tour Customer», товар «Tour Product», комиссии
|
||||
* «Tour Commission 10» и «Tour Commission 5») создаёт Python-тест.
|
||||
* Тур ничего не делает через ORM — только UI.
|
||||
*/
|
||||
registry.category("web_tour.tours").add("ruodoo_commission_order_tour", {
|
||||
url: "/odoo",
|
||||
steps: () => [
|
||||
...stepUtils.goToAppSteps("sale.sale_menu_root", "Открыть приложение «Продажи»"),
|
||||
...saleUtils.createNewSalesOrder(),
|
||||
...saleUtils.selectCustomer("Tour Customer"),
|
||||
|
||||
// --- Строка заказа: товар ---
|
||||
...saleUtils.addProduct("Tour Product"),
|
||||
|
||||
// Количество = 10
|
||||
{
|
||||
content: "Указать количество",
|
||||
trigger: ".o_selected_row div[name=product_uom_qty] input",
|
||||
run: "edit 10",
|
||||
},
|
||||
|
||||
// --- Комиссии строки: выбрать две ---
|
||||
{
|
||||
content: "Открыть поле «Комиссии» в строке",
|
||||
trigger: ".o_selected_row .o_field_many2many_tags[name=commission_ids] input",
|
||||
run: "click",
|
||||
},
|
||||
{
|
||||
content: "Ввести первую комиссию",
|
||||
trigger: ".o_selected_row .o_field_many2many_tags[name=commission_ids] input",
|
||||
run: "edit Tour Commission 10",
|
||||
},
|
||||
{
|
||||
content: "Выбрать комиссию 10%",
|
||||
trigger: 'ul.ui-autocomplete a:contains("Tour Commission 10")',
|
||||
run: "click",
|
||||
},
|
||||
{
|
||||
content: "Убедиться, что тег комиссии 10% добавлен",
|
||||
trigger: '.o_selected_row .o_field_many2many_tags[name=commission_ids] .o_tag:contains("Tour Commission 10")',
|
||||
},
|
||||
{
|
||||
content: "Ввести вторую комиссию",
|
||||
trigger: ".o_selected_row .o_field_many2many_tags[name=commission_ids] input",
|
||||
run: "edit Tour Commission 5",
|
||||
},
|
||||
{
|
||||
content: "Выбрать комиссию 5%",
|
||||
trigger: 'ul.ui-autocomplete a:contains("Tour Commission 5")',
|
||||
run: "click",
|
||||
},
|
||||
{
|
||||
content: "Убедиться, что тег комиссии 5% добавлен",
|
||||
trigger: '.o_selected_row .o_field_many2many_tags[name=commission_ids] .o_tag:contains("Tour Commission 5")',
|
||||
},
|
||||
|
||||
// --- Сохранить заказ ---
|
||||
...stepUtils.saveForm(),
|
||||
|
||||
// Проверить, что «ИТОГО КОМИССИЙ» отобразилось (поле видно группе)
|
||||
{
|
||||
content: "Итог комиссий присутствует на форме",
|
||||
trigger: ".o_field_widget[name=amount_commission]",
|
||||
},
|
||||
|
||||
// --- Подтвердить заказ ---
|
||||
{
|
||||
content: "Подтвердить заказ",
|
||||
trigger: "button[name=action_confirm]",
|
||||
run: "click",
|
||||
},
|
||||
{
|
||||
content: "Заказ перешёл в состояние «Заказ продаж»",
|
||||
trigger: ".o_statusbar_status .o_arrow_button_current:contains(Sales Order)",
|
||||
},
|
||||
|
||||
// --- Начислить комиссию ---
|
||||
{
|
||||
content: "Нажать «Начислить комиссию»",
|
||||
trigger: "button[name=action_accrue_commission]",
|
||||
run: "click",
|
||||
},
|
||||
// После начисления открывается список/форма счетов комиссий.
|
||||
{
|
||||
content: "Открылись счета комиссий (вендор-биллы)",
|
||||
trigger: ".o_list_view .o_data_row, .o_form_view .o_breadcrumb",
|
||||
},
|
||||
],
|
||||
});
|
||||
@@ -0,0 +1,43 @@
|
||||
import { registry } from "@web/core/registry";
|
||||
import { stepUtils } from "@web_tour/tour_utils";
|
||||
|
||||
/**
|
||||
* Этап 2: открыть заказ и проверить смарт-кнопку «Комиссии»:
|
||||
* она нажимается и выводит связанные счета поставщика.
|
||||
*
|
||||
* Заказ уже подтверждён и по нему начислены комиссии (этап 1).
|
||||
*/
|
||||
registry.category("web_tour.tours").add("ruodoo_commission_smart_button_tour", {
|
||||
url: "/odoo",
|
||||
steps: () => [
|
||||
...stepUtils.goToAppSteps("sale.sale_menu_root", "Открыть приложение «Продажи»"),
|
||||
{
|
||||
content: "Открыть заказ Tour Customer из списка",
|
||||
trigger: '.o_list_view td.o_data_cell:contains("Tour Customer")',
|
||||
run: "click",
|
||||
},
|
||||
{
|
||||
content: "Форма заказа открыта",
|
||||
trigger: ".o_form_view .o_statusbar_status",
|
||||
},
|
||||
// Смарт-кнопка «Комиссии» видна и содержит счётчик > 0
|
||||
{
|
||||
content: "Смарт-кнопка «Комиссии» присутствует",
|
||||
trigger: "button[name=action_view_commission_bills]",
|
||||
},
|
||||
{
|
||||
content: "Нажать смарт-кнопку «Комиссии»",
|
||||
trigger: "button[name=action_view_commission_bills]",
|
||||
run: "click",
|
||||
},
|
||||
// Открывается список счетов поставщика по этому заказу.
|
||||
{
|
||||
content: "Открылся список счетов комиссий",
|
||||
trigger: ".o_list_view .o_data_row",
|
||||
},
|
||||
{
|
||||
content: "Это счета поставщика (тип «Bill»)",
|
||||
trigger: ".o_breadcrumb",
|
||||
},
|
||||
],
|
||||
});
|
||||
Reference in New Issue
Block a user