private bool isOpenStockAndDates(long sku, string plant) { sap.setText(CO09ID.SKU_INPUT_TEXT_FIELD_ID, sku.ToString()); sap.setText(CO09ID.PLANT_INPUT_TEXT_FIELD_ID, plant); sap.pressEnter(); if (sap.getInfoBarMsg().Contains("Text for MRP")) { sap.pressEnter(); } if (sap.getInfoBarMsg().Contains("not found")) { return(false); } return(true); }
public void runRDDChange(int orderNumber, DateTime oldRdd, DateTime newRdd, string id, string changeReason, string tableName) { string sapNewRdd = $"{newRdd.Day}.{newRdd.Month}.{newRdd.Year}"; string sapOldRdd = $"{oldRdd.Day}.{oldRdd.Month}.{oldRdd.Year}"; string csrNote = ""; startRDDLog(orderNumber, id, tableName); OrderStatus status = va02.enterOrder(orderNumber); if (status != OrderStatus.available) { va02.updateLog(status, tableName, orderNumber.ToString(), id); return; } va02.bypassInitialPopups(); status = va02.isChangeNeeded(); if (status != OrderStatus.available) { va02.updateLog(status, tableName, orderNumber.ToString(), id); return; } va02.tryToSellectAllLines(); sap.select(VA02ID.CHANGE_RDD_BTN_ID); sap.setText(VA02ID.CHANGE_RDD_TEXT_FIELD, sapNewRdd); sap.pressBtn(VA02ID.PRESS_OK_ON_RDD_CHANGE_FIELD_BTN_ID); sap.getRidOfPopUps(); sap.pressEnter(); sap.getRidOfPopUps(); csrNote = $"RDD of {orderNumber} has been changed to {sapNewRdd} from {sapOldRdd}, Reason: {changeReason}"; while (sap.isPopUp() || sap.idExists(VA02ID.SECOND_POPUP_WINDOW_ID)) { sap.pressEnter(); } va02.soarAction(csrNote, "RDD", orderNumber); va02.save(); va02.updateOrderSavedLog(tableName, orderNumber, id); }
public void runRouteCodeChange(int orderNumber, string id, string reason, string routeCode, string tableName, string salesOrg) { string csrNote = ""; startRouteCodeLog(orderNumber, id, tableName); OrderStatus status = va02.enterOrder(orderNumber); if (status != OrderStatus.available) { va02.updateLog(status, tableName, orderNumber.ToString(), id); return; } va02.bypassInitialPopups(); status = va02.isChangeNeeded(); if (status != OrderStatus.available) { va02.updateLog(status, tableName, orderNumber.ToString(), id); return; } csrNote = $"Route Code of {orderNumber} has been changed to {routeCode}, Reason: {reason}"; ITable table = va02.getTable(); va02.moveRouteCodeColumnToIndexEight(table); int i = 0; while (table.getCellValue(i, VA02.routeCodeColumnIndex) != "") { try { table.setCellValue(i, VA02.routeCodeColumnIndex, $"{routeCode}"); // have to use by index because the table retains its indexes by name after reordering but not actual indexes within a table } catch (Exception) { sap.getRidOfPopUps(); try { table.setCellValue(i, VA02.routeCodeColumnIndex, $"{routeCode}"); } catch (NotChangeableCellException) { } } i++; } sap.pressEnter(); sap.getRidOfPopUps(); if (isPLAndCZExpection(orderNumber, id, tableName, salesOrg)) { return; } va02.soarAction(csrNote, "Route Code Changes", orderNumber); va02.save(); va02.updateOrderSavedLog(tableName, orderNumber, id); }
private string executeLineChanges(RejectionsSapOrderProperty rejObj, string id, string tableName, string csrNote, List <ReplacePartialCutProperty> rpcpList, ITable table) { foreach (var rejection in rejObj.lineDetails) { int sapLineNumber = (rejection.lineNumber / 10 - 1); bool shouldChange = isForChange(table, rejection, sapLineNumber); //TODO: Check if order qty can be changed prior to line split if (shouldChange) { if (rejection.isReplacePartialCut) { rpcpList.Add(getRPCProperty(table.getCellValue(sapLineNumber, "Un"), rejection)); rejection.reason = $"Split into rejected {rejection.orderedQty - rejection.confirmedQty} cases " + $"and confirmed {rejection.confirmedQty} cases to be sent for customer."; changeQtyToConfirmedAmount(table, rejection, sapLineNumber); } else { table.setCellValue(sapLineNumber, VA02.rejectionCodeColumnIndex, rejection.rejectionCode); } } sap.pressEnter(); sap.getRidOfPopUps(); csrNote += $"sku {rejection.sku} has{(shouldChange ? " " : " not ")}been rejected with {rejection.rejectionCode}. Reason: {rejection.reason}{Constants.vbCr}"; if (isLog) { endLog(rejObj, id, tableName, rejection, shouldChange, isRelease); } } if (rpcpList.Count > 0) { populateCutSkus(rpcpList, table); } return(csrNote); }
public ResponseWE05 extractReport(string messageVariant, string folderPath) { // 2 - inbound idocs only // 51 - Application not posted (Hardstop workflow) executeWE05(2.ToString(), 51.ToString(), messageVariant); string screenShotPath; string fileName; screenShotPath = folderPath + @"\" + DateAndTime.Now.ToFileNameFormat() + " WE05.jpg"; fileName = DateAndTime.Now.ToFileNameFormat() + " WE05.xlsx"; if (sapLib.isPopUp()) { sapLib.printScreenOfCurrentSession(screenShotPath); sapLib.pressEnter(); return(ResponseWE05.noItems); } if (isTableExists()) { sapLib.openExport(); sapLib.exportExcel(folderPath, fileName); sapLib.printScreenOfCurrentSession(screenShotPath); return(ResponseWE05.successTable); } else { screenShotPath = folderPath + @"\" + DateAndTime.Now.ToFileNameFormat() + " single item only found WE05.jpg"; try { sapLib.printScreenOfCurrentSession(screenShotPath); } catch (Exception) { System.Threading.Thread.Sleep(3000); sapLib.printScreenOfCurrentSession(screenShotPath); } return(ResponseWE05.successSingleValue); } }
public bool runQuantityChange(QtyConversionOrderProperty order) { sap.enterTCode("VA02"); sap.setText(lib.SAP_ALL_ID.VA02.ORDER_FLD, order.orderNumber.ToString()); sap.pressEnter(); va02.checkIfOrderBlocked(order.orderNumber); sap.pressEnter(); sap.getRidOfPopUps(); if (sap.getInfoBarMsg().Contains("exists with same PO")) { sap.pressEnter(); } sap.getRidOfPopUps(); var table = sap.getITableObject(); if (changeQuantityInTable(table, order)) { string csrNote = $"Order number {order.orderNumber} had qty's changed in the following - {va02.getChangedListForCSR(order)}"; va02.soarAction(csrNote, "Quantity Conversion", order.orderNumber); va02.save(); if (sap.getInfoBarMsg().Contains($"{order.orderNumber} has been saved")) { order.isSaved = true; var itemArr = order.documentLineChangeList.Select(x => x.item).ToArray(); log.update("QuantityConversionLog", new[] { "isSaved" }, new[] { "1" }, new[] { "orderNumber" }, new[] { order.orderNumber.ToString() }, $"item IN ({string.Join(",", itemArr)})"); return(true); } } return(false); }
private void uploadNoteToOrder(string note, string taskName) { var name = $"{taskName} at {Strings.Format(DateTime.Now, "HH:mm:ss")}"; string toolBoxButton = @"%GOS_TOOLBOX"; string addAttachmentButton = @"CREATE_ATTA"; string createNoteButton = @"NOTE_CREA"; (sap.findById(VA02ID.ORDER_TOOLBOX_BUTTON_ID) as dynamic).pressButton(toolBoxButton); (sap.findById(VA02ID.ORDER_TOOLBOX_MENU_ID) as dynamic).PressContextButton(addAttachmentButton); //cannot dynamically find when to press button because the menu freezes the button press System.Threading.Thread.Sleep(5000); (sap.findById(VA02ID.ORDER_TOOLBOX_MENU_ID) as dynamic).selectContextMenuItem(createNoteButton); sap.setText(VA02ID.ORDER_NOTE_UPLOAD_DESCRIPTION_TEXTFIELD_ID, name); sap.setText(VA02ID.ORDER_NOTE_UPLOAD_BODY_TEXTFIELD_ID, note); sap.pressEnter(); }
public OrderStatus runSwitches(SwitchesSapOrderProperty switchObj, string id, string tableName) { string csrNote = ""; startSwitchesLog(switchObj, id, tableName); OrderStatus status = va02.enterOrder(switchObj.orderNumber); if (status == OrderStatus.blockedByUser || status == OrderStatus.blockedByBatchJob) { return(status); } va02.bypassInitialPopups(); status = va02.isChangeNeeded(); if (status != OrderStatus.available) { return(status); } ITable table = va02.getTable(); va02.moveRouteCodeColumnToIndexEight(table); foreach (var lineSwitch in switchObj.lineDetails) { int sapLineNumber = (lineSwitch.lineNumber / 10 - 1); bool shouldChange = isForChange(table, lineSwitch, sapLineNumber); bool isChanged = false; if (shouldChange) { string unitOfMeasure = table.getCellValue(sapLineNumber, "Un"); string itemCategory = table.getCellValue(sapLineNumber, "ItCa"); string routeCode = table.getCellValue(sapLineNumber, VA02.routeCodeColumnIndex); // have to use by index because the table retains its indexes by name after reordering but not actual indexes within a table string cmir = table.getCellValue(sapLineNumber, "Customer Material Numb"); table.setCellValue(sapLineNumber, "Material", lineSwitch.newSku); sap.pressEnter(); sap.getRidOfPopUps(); string tempReason = ""; isChanged = va02.isLineChanged(table, lineSwitch, sapLineNumber, ref tempReason); if (tempReason != "") { lineSwitch.reason = tempReason; } if (sap.getInfoBarMsg().Contains("Z4")) { return(OrderStatus.bothSkusAreZ4); } if (sap.getInfoBarMsg().Contains("not approved")) { return(OrderStatus.bothSkusAreNotApproved); } unitsOfMeasureAction(table, sapLineNumber, unitOfMeasure); itemCategoryAction(table, sapLineNumber, itemCategory); routeCodeAction(table, sapLineNumber, routeCode); cmirAction(switchObj, table, lineSwitch, sapLineNumber, cmir); } csrNote += $"sku {lineSwitch.oldSku} has{(isChanged ? " " : " not ")}been switched to {lineSwitch.newSku}. Reason: {lineSwitch.reason}{Constants.vbCr}"; endSwtichesLog(switchObj, id, tableName, lineSwitch, isChanged); } va02.soarAction(csrNote, "Line Switches", switchObj.orderNumber); va02.save(); return(va02.getOrderStatusAfterSaving()); }