/**
|
* @file ADSO-50243
|
* @description Batch edit customer orders
|
* @author Clarence (ccn7@3ds.com)
|
* @copyright Dassault Systèmes
|
*/
|
import { AppMP, StepAppMP } from '../../libmp/appmp';
|
import { DataMetalBaseProductName } from '../../libmp/data/data.product';
|
import { DataMetalBaseSalesSegmentName } from '../../libmp/data/data.salessegment';
|
import { DataMetalStockingPointName } from '../../libmp/data/data.stockingpoint';
|
import { DialogBatchEditActionLink, StepDialog } from '../../libappsop/dialogsop';
|
import { StepList } from '../../libappsop/listsop';
|
import { ListCustomerOrdersColumn, ListCustomerOrdersContextMenuItem } from '../../libmp/forms/form.customerorders';
|
import { DialogCustomerOrder, DialogCustomerOrderFields } from '../../libmp/dialogs/dialog.customerorder';
|
import { StepActionBarPage } from '../../libappsop/actionbarpagesop';
|
import { startOfPlanningYear } from '../../libmp/data/data.period';
|
|
describe('ADSO-50243 - Batch edit customer orders', () => {
|
const appMP = AppMP.getInstance();
|
const scenarioToSelect = 'ADSO-50251';
|
const listCustomerOrders = appMP.viewCustomerOrders.formCustomerOrders.listCustomerOrders;
|
const janSOP = `1-Jan-${startOfPlanningYear}`;
|
const febSOP = `1-Feb-${startOfPlanningYear}`;
|
const janSOPPlus1 = `1-Jan-${startOfPlanningYear + 1}`;
|
let dlgCustomerOrder: DialogCustomerOrder;
|
// Edit the one with quantity 999 as the others are used for other tests
|
const editRows: ListCustomerOrdersColumn[] = [{'Sales segment': DataMetalBaseSalesSegmentName.AudiA8, Product: DataMetalBaseProductName.BCCBWide, 'Stocking point': DataMetalStockingPointName.Europe, 'Order date': janSOP, Quantity: '999'},
|
{'Sales segment': DataMetalBaseSalesSegmentName.AudiA8, Product: DataMetalBaseProductName.BCCBWide, 'Stocking point': DataMetalStockingPointName.Europe, 'Order date': febSOP, Quantity: '999'}];
|
const verifyDlgBatchEditEnabled: DialogCustomerOrderFields = {SalesSegment: 'false', Product: 'false', StockingPoint: 'false', OrderDate: 'false', Price: 'false', Quantity: 'false',
|
CustomerName: 'false', CustomerID: 'false', OrderID: 'false', OrderLineID: 'false'};
|
const updateDlgBatchValues: DialogCustomerOrderFields = {SalesSegment: DataMetalBaseSalesSegmentName.BMWi3, Product: DataMetalBaseProductName.BCCanBody, Quantity: '9999', OrderDate: janSOPPlus1};
|
const updateDlgBatchValuesOrderRelated: DialogCustomerOrderFields = {OrderID: 'A1', OrderLineID: 'A2', CustomerID: 'A3', CustomerName: 'A4'};
|
const verifyRow1: ListCustomerOrdersColumn = {'Sales segment': DataMetalBaseSalesSegmentName.BMWi3, Product: DataMetalBaseProductName.BCCanBody, 'Stocking point': DataMetalStockingPointName.Europe, 'Order date': janSOPPlus1, Quantity: '9,999'};
|
const verifyRow2: ListCustomerOrdersColumn = {'Sales segment': DataMetalBaseSalesSegmentName.BMWi3, Product: DataMetalBaseProductName.BCCanBody, 'Stocking point': DataMetalStockingPointName.Europe, 'Order date': janSOPPlus1, Quantity: '9,999'};
|
const verifyRow1OrderRelated: ListCustomerOrdersColumn = {...verifyRow1, 'Order ID': 'A1', 'Order line ID': 'A2', 'Customer ID': 'A3', 'Customer name': 'A4'};
|
const verifyRow2OrderRelated: ListCustomerOrdersColumn = {...verifyRow2, 'Order ID': 'A1', 'Order line ID': 'A2', 'Customer ID': 'A3', 'Customer name': 'A4'};
|
|
beforeAll(async () => {
|
await appMP.login();
|
});
|
|
afterAll(async () => {
|
await appMP.resetActiveView(appMP.viewCustomerOrders);
|
await appMP.cleanupAndLogout();
|
});
|
|
afterEach(async () => {
|
await appMP.checkToastMessage();
|
});
|
|
it(`Step 1 - ${StepAppMP.selectScenario(scenarioToSelect)}`, async () => {
|
await appMP.selectScenario(scenarioToSelect);
|
});
|
|
it(`Step 2 - Open view ${appMP.viewCustomerOrders.viewPath}.`, async () => {
|
await appMP.viewCustomerOrders.switchTo();
|
});
|
|
it(`Step 3 - ${StepList.selectRowsAndClickMenu(listCustomerOrders.title, editRows, ListCustomerOrdersContextMenuItem.Edit.Label)}`, async () => {
|
const rows = await listCustomerOrders.selectListRows(editRows);
|
|
[dlgCustomerOrder] = await listCustomerOrders.selectContextMenu(ListCustomerOrdersContextMenuItem.Edit, rows);
|
});
|
|
it(`Step 4 - ${StepDialog.verifyBatchEditEnabled(DialogCustomerOrder.title, verifyDlgBatchEditEnabled)}`, async () => {
|
await dlgCustomerOrder.verifyBatchEditEnabled(verifyDlgBatchEditEnabled);
|
});
|
|
it(`Step 5 - ${StepDialog.clickTab('Advanced')} ${StepDialog.verifyBatchEditEnabled(DialogCustomerOrder.title, {ExcludeFromFulfillmentKPI: 'false', IsEligibleNetting: 'false', IsFirmed: 'false'})}`, async () => {
|
await dlgCustomerOrder.pnlAdvanced.clickTab();
|
await dlgCustomerOrder.verifyBatchEditEnabled({ExcludeFromFulfillmentKPI: 'false', IsEligibleNetting: 'false', IsFirmed: 'false'});
|
});
|
|
it(`Step 6 - ${StepDialog.clickTab('General')} ${StepDialog.updateDialogValuesBatchEdit(DialogCustomerOrder.title, DialogBatchEditActionLink.EnableBatchEdit, updateDlgBatchValues)}`, async () => {
|
await dlgCustomerOrder.pnlGeneral.clickTab();
|
await dlgCustomerOrder.updateDialogValuesBatchEdit(DialogBatchEditActionLink.EnableBatchEdit, updateDlgBatchValues);
|
});
|
|
it(`Step 7 - ${StepDialog.clickOK()}`, async () => {
|
await dlgCustomerOrder.clickOK();
|
});
|
|
it(`Step 8 - ${StepList.verifyRowExists(listCustomerOrders.title, verifyRow1)} ${StepList.verifyRowExists(listCustomerOrders.title, verifyRow2)}`, async () => {
|
await listCustomerOrders.verifyRowExists(verifyRow1);
|
await listCustomerOrders.verifyRowExists(verifyRow2);
|
});
|
|
it(`Step 9 - ${StepActionBarPage.clickButton('Edit')}`, async () => {
|
const rows = await listCustomerOrders.getRows([verifyRow1, verifyRow2]);
|
await listCustomerOrders.clickActionButton(appMP.abpSales.btnEdit, undefined, rows);
|
});
|
|
it(`Step 10 - ${StepDialog.updateDialogValuesBatchEdit(DialogCustomerOrder.title, DialogBatchEditActionLink.EnableBatchEdit, updateDlgBatchValuesOrderRelated)} ${StepDialog.clickOK()}`, async () => {
|
await dlgCustomerOrder.updateDialogValuesBatchEdit(DialogBatchEditActionLink.EnableBatchEdit, updateDlgBatchValuesOrderRelated);
|
await dlgCustomerOrder.clickOK();
|
});
|
|
it(`Step 11 - ${StepList.verifyRowExists(listCustomerOrders.title, verifyRow1OrderRelated)} ${StepList.verifyRowExists(listCustomerOrders.title, verifyRow2OrderRelated)}`, async () => {
|
await listCustomerOrders.verifyRowExists(verifyRow1OrderRelated);
|
await listCustomerOrders.verifyRowExists(verifyRow2OrderRelated);
|
});
|
});
|