コード例 #1
0
ファイル: CO09.cs プロジェクト: akagkad/IdaDownload
        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);
        }
コード例 #2
0
ファイル: RDDVA02Runner.cs プロジェクト: akagkad/IdaDownload
        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);
        }
コード例 #3
0
        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);
        }
コード例 #4
0
        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);
        }
コード例 #5
0
        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);
            }
        }
コード例 #6
0
        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);
        }
コード例 #7
0
        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();
        }
コード例 #8
0
        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());
        }