/** 
 | 
 * @file        ADSO-51993 
 | 
 * @description Lock and unlock via supply planning matrix 
 | 
 * @author      Clarence (ccn7@3ds.com) 
 | 
 * @copyright   Dassault Systèmes 
 | 
 */ 
 | 
import { AppMP, Demo, Scenario } from '../../libmp/appmp'; 
 | 
import { StepGanttChart } from '../../libappsop/ganttchartsop'; 
 | 
import { StepMatrix } from '../../libappsop/matrixeditorsop'; 
 | 
import { DataProduct, DataMetalBaseProductName } from '../../libmp/data/data.product'; 
 | 
import { GanttChartCapacityPlanning } from '../../libmp/forms/form.capacityplanning'; 
 | 
import { MatrixEditorProductionPlan } from '../../libmp/forms/form.productionplan'; 
 | 
import { MatrixEditorSupplyPlanning, MatrixSupplyPlanningContextMenuItem } from '../../libmp/forms/form.supplyplanning'; 
 | 
import { CellLocator } from '../../libappbase/matrixeditorbase'; 
 | 
import { StepNavigationPanel } from '../../libmp/forms/navigationpanel'; 
 | 
import { dataMetalsUnits, dataMetalsUnitsProvider } from '../../libmp/data/data.unit'; 
 | 
  
 | 
describe('ADSO-51993 - Lock and unlock via supply planning matrix', () => { 
 | 
  const appMP = AppMP.getInstance(); 
 | 
  const formNavPanel = appMP.formNavigation; 
 | 
  const meProductPlanning = appMP.viewSupplyPlanning.frmProductPlanning.meProductPlanning; 
 | 
  const meSupplyPlanning = appMP.viewSupplyPlanning.formSupplyPlanning.meSupplyPlanning; 
 | 
  const gcCapacityPlanning = appMP.viewSupplyPlanning.frmCapacityPlanning.ganttChartCapacityPlanning; 
 | 
  let originalQiyingCapacity = ''; 
 | 
  const selectCells: CellLocator[] = [{rowName: 'BC CB narrow in Qi-Ying', columnName: '1-Jan-2022', attributeId: 0}]; 
 | 
  const asiaUnit = dataMetalsUnits.AsiaUnit.Name; 
 | 
  
 | 
  beforeAll(async () => { 
 | 
    await appMP.login(); 
 | 
  }); 
 | 
  
 | 
  afterAll(async () => { 
 | 
    await appMP.resetActiveView(appMP.viewSupplyPlanning); 
 | 
    await appMP.cleanupAndLogout(); 
 | 
  }); 
 | 
  
 | 
  afterEach(async () => { 
 | 
    await appMP.checkToastMessage(); 
 | 
  }); 
 | 
  
 | 
  it(`Step 1 - ${AppMP.getDemoDataPath(Demo.Metals, Scenario.Base)}.`, async () => { 
 | 
    await appMP.createDemoDataset(Demo.Metals, Scenario.Base, false); 
 | 
  }); 
 | 
  
 | 
  it(`Step 2 - Open view ${appMP.viewSupplyPlanning.viewPath}.`, async () => { 
 | 
    await appMP.viewSupplyPlanning.switchTo(); 
 | 
  }); 
 | 
  
 | 
  it(`Step 3 - ${StepNavigationPanel.showProductsList()} ${StepNavigationPanel.checkProducts([DataMetalBaseProductName.BCCBNarrow])}`, async () => { 
 | 
    await formNavPanel.openNavigationPanel(); 
 | 
    await formNavPanel.toggleProductList(); 
 | 
  
 | 
    const row = await formNavPanel.listProduct.getRow(DataProduct.BCCBNarrow.Name, DataProduct.BCCBNarrow.Parents); 
 | 
    await formNavPanel.listProduct.toggleRowCheckbox(row, true); 
 | 
  }); 
 | 
  
 | 
  it(`Step 4 - ${StepNavigationPanel.showEntitiesList()} ${StepNavigationPanel.checkUnits([asiaUnit])}`, async () => { 
 | 
    await formNavPanel.toggleEntityList(); 
 | 
  
 | 
    const row = await formNavPanel.listEntity.getRow([dataMetalsUnitsProvider, dataMetalsUnits.AsiaUnit]); 
 | 
    await formNavPanel.listEntity.toggleRowCheckbox(row, true); 
 | 
  }); 
 | 
  
 | 
  it(`Step 5 - ${StepMatrix.selectCells(MatrixEditorProductionPlan.title, selectCells)}`, async () => { 
 | 
    await meProductPlanning.selectCells(selectCells); 
 | 
  }); 
 | 
  
 | 
  it(`Step 6 - ${StepMatrix.verifyRowExists(MatrixEditorSupplyPlanning.title, 'Operation: Slitters (Qi-Ying)')}`, async () => { 
 | 
    await meSupplyPlanning.verifyRowExist('Operation: Slitters (Qi-Ying)'); 
 | 
  }); 
 | 
  
 | 
  it(`Step 7 - ${StepMatrix.rightClickCellSelectContextmenu(MatrixEditorSupplyPlanning.title, 'Operation: Slitters (Qi-Ying)', '1-Jan-2022', MatrixSupplyPlanningContextMenuItem.Lock.Label)}`, async () => { 
 | 
    await meSupplyPlanning.rightClickCellSelectContextmenu(MatrixSupplyPlanningContextMenuItem.Lock.Name, 'Operation: Slitters (Qi-Ying)', '', '1-Jan-2022'); 
 | 
  
 | 
    // Get the capacity before we unlock the cell (to compare the value didn't change thereafter) 
 | 
    originalQiyingCapacity = await gcCapacityPlanning.getGanttChartNodeValue('Qi-Ying', 'Jan 2022', 'Feb 2022'); 
 | 
  }); 
 | 
  
 | 
  it(`Step 8 - ${StepMatrix.rightClickCellSelectContextmenu(MatrixEditorSupplyPlanning.title, 'Operation: Slitters (Qi-Ying)', '1-Jan-2022', MatrixSupplyPlanningContextMenuItem.Unlock.Label)} ${StepGanttChart.verifyNodeValue(GanttChartCapacityPlanning.title, 'Qi-Ying', 'Jan 2022', 'Feb 2022', 'same as before unlock')}`, async () => { 
 | 
    await meSupplyPlanning.rightClickCellSelectContextmenu(MatrixSupplyPlanningContextMenuItem.Unlock.Name, 'Operation: Slitters (Qi-Ying)', '', '1-Jan-2022'); 
 | 
    await gcCapacityPlanning.verifyGanttChartValue('Qi-Ying', 'Jan 2022', 'Feb 2022', originalQiyingCapacity); 
 | 
  }); 
 | 
}); 
 |