コード例 #1
0
 private bool setMessageTypeFilter(string msgType)
 {
     (sapLib.findById(SAP_ID.OPEN_EXPORT_CONTEXT_MENU_BTN_ARR[0]) as dynamic).selectColumn("MESTYP"); // Message Type
     (sapLib.findById(SAP_ID.OPEN_EXPORT_CONTEXT_MENU_BTN_ARR[0]) as dynamic).pressToolbarButton("&MB_FILTER");
     sapLib.setText(SAP_ID.TABLE_FILTER_FIRST_VALUE_FLD, msgType);
     sapLib.pressEnter();
     return(true);
 }
コード例 #2
0
        private bool isPLAndCZExpection(int orderNumber, string id, string tableName, string salesOrg)
        {
            if (salesOrg == "PL01" || salesOrg == "CZ01")
            {
                var timeout = DateAndTime.DateAdd(DateInterval.Second, 10, DateAndTime.Now);

                // buggfix - The data necessary to complete this operation is not yet available.
                while (DateTime.Now < timeout)
                {
                    System.Threading.Thread.Sleep(2000);
                    try {
                        if (!sap.idExists(VA02ID.TOTAL_ORDER_CASES_FIELD_ID))
                        {
                            (sap.findById(VA02ID.ADDITIONAL_INFO_B_TAB_ID) as dynamic).Select();
                        }
                        else
                        {
                            break;
                        }
                    } catch (Exception) {
                    }
                }

                string orderQty     = (sap.findById(VA02ID.TOTAL_ORDER_CASES_FIELD_ID) as dynamic).Text();
                string confirmedQty = (sap.findById(VA02ID.TOTAL_CONFIRMED_CASES_FIELD_ID) as dynamic).Text();

                if (orderQty != confirmedQty)
                {
                    log.update(
                        tableName,
                        columnNames: new[] { "endTime", "status", "reason" },
                        values: new[] { Strings.Format(DateTime.Now, "yyyyMMdd HH:mm:ss"), "fail", "Could not change route codes as the CFR becomes lower than 100%" },
                        conditionName: new[] { "orderNumber", "id" },
                        conditionValue: new[] { orderNumber.ToString(), id, });
                    return(true);
                }
                else
                {
                    sap.goBack();
                    return(false);
                }
            }
            else
            {
                return(false);
            }
        }
コード例 #3
0
ファイル: CO09.cs プロジェクト: akagkad/IdaDownload
        public CO09Property getStockDetails(int sku, string salesOrg)
        {
            int plant = new SalesOrgDetails().getPlant(salesOrg);

            sap.enterTCode("CO09");
            bool isOpenTable = isOpenStockAndDates(sku, plant.ToString());

            if (!isOpenTable)
            {
                return(new CO09Property()
                {
                    salesOrg = salesOrg,
                    plant = plant,
                    sku = sku,
                    ATP = 0,
                    recoveryQty = 0,
                    recoveryDate = "SKU does not exists for this plant"
                });
            }

            var    table = sap.getITableObject();
            double atp   = double.Parse(table.getCellValue(0, 4));

            string recDate = "";
            double recQty  = 0;
            int    i       = 0;

            // had to do this due to a table bug

            System.Threading.Thread.Sleep(1000);
            (sap.findById("wnd[0]") as dynamic).resizeWorkingPane(100, 25, 0);
            System.Threading.Thread.Sleep(1000);
            try {
                while (!string.IsNullOrEmpty(table.getCellValue(i, 1)))
                {
                    if (new[] { "POitem", "PurRqs", "ShpgNt" }.Contains(table.getCellValue(i, 1)))
                    {
                        recDate = table.getCellValue(i, 0);
                        recQty  = double.Parse(table.getCellValue(i, 3));
                        break;
                    }

                    i += 1;
                }
            } catch (TableWasNotScrolledException) {
            }

            return(new CO09Property()
            {
                salesOrg = salesOrg,
                plant = plant,
                sku = sku,
                ATP = atp,
                recoveryQty = recQty,
                recoveryDate = string.IsNullOrEmpty(recDate) ? "No Date Available" : recDate
            });
        }
コード例 #4
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();
        }
コード例 #5
0
        public void runFullOrderRejection(int orderNumber, string id, string changeReason, string rejReason, string tableName)
        {
            string csrNote;

            startFullOrderRejectionLog(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;
            }

            string blockID = VA02ID.DEL_BLOCK_ID.Where(x => sap.idExists(x)).First();

            (sap.findById(blockID) as dynamic).Key = " ";

            sap.pressBtn(VA02ID.PRESS_REJECT_ORDER_BTN_ID);
            (sap.findById(VA02ID.REJECT_ORDER_FIELD_ID) as dynamic).Key = rejReason;
            sap.pressBtn(VA02ID.PRESS_CONFIRM_REJECTING_ORDER_BTN_ID);

            csrNote = $"Order has been rejected with {rejReason}, Reason: {changeReason}";

            va02.soarAction(csrNote, "Order Rejection", orderNumber);
            va02.save();
            va02.updateOrderSavedLog(tableName, orderNumber, id);
        }
コード例 #6
0
        public void runDeliveryBlockChange(int orderNumber, string id, string changeReason, string delBlock, string tableName)
        {
            string csrNote;

            startDelBlockLog(orderNumber, id, tableName);

            OrderStatus status = va02.enterOrder(orderNumber);

            if (status != OrderStatus.available)
            {
                va02.updateLog(status, tableName, orderNumber.ToString(), id);
                return;
            }

            va02.bypassInitialPopups();

            string blockID = VA02ID.DEL_BLOCK_ID.Where(x => sap.idExists(x)).First();

            status = va02.isChangeNeeded();

            if (status != OrderStatus.available)
            {
                va02.updateLog(status, tableName, orderNumber.ToString(), id);
                return;
            }

            (sap.findById(blockID) as dynamic).Key = delBlock;

            if (delBlock == " ")
            {
                delBlock = "empty";
            }
            csrNote = $"Delivery block of {orderNumber} has been changed to {delBlock}, Reason: {changeReason}";

            va02.soarAction(csrNote, "Delivery Block", orderNumber);

            va02.save();
            va02.updateOrderSavedLog(tableName, orderNumber, id);
        }
コード例 #7
0
        public OrderStatus runRejections(RejectionsSapOrderProperty rejObj, string id, string tableName)
        {
            string csrNote = "";
            List <ReplacePartialCutProperty> rpcpList = new List <ReplacePartialCutProperty>();

            if (isLog)
            {
                startRejectionsLog(rejObj, id, tableName, isRelease);
            }

            OrderStatus status = va02.enterOrder(rejObj.orderNumber);

            if (status != OrderStatus.available)
            {
                return(status);
            }

            string paymentTermsID = VA02ID.PAYMENT_TERMS_ID.Where(x => sap.idExists(x)).First();

            if ((sap.findById(paymentTermsID) as dynamic).text == "")
            {
                status = OrderStatus.orderMissingPaymentTerms;
                return(status);
            }

            va02.bypassInitialPopups();

            ITable table = va02.getTable();

            va02.moveRejectionCodeColumnToIndexEight(table);

            csrNote = executeLineChanges(rejObj, id, tableName, csrNote, rpcpList, table);

            va02.soarAction(csrNote, "Line Rejections", rejObj.orderNumber);
            va02.save();

            return(va02.getOrderStatusAfterSaving());
        }
コード例 #8
0
        public bool getStockDetails(string sku, string salesOrg)
        {
            int plant = new SalesOrgDetails().getPlant(salesOrg);

            sap.enterTCode("MD04");
            bool isOpenTable = isOpenStockAndDates(sku, plant.ToString());
            //if (!isOpenTable)
            //{
            //    return new MD04Property()
            //    {
            //        salesOrg = salesOrg,
            //        plant = plant,
            //        sku = sku,
            //        ATP = 0,
            //        recoveryQty = 0,
            //        recoveryDate = "SKU does not exists for this plant"
            //    };
            //}

            var    table = sap.getITableObject();
            string qty   = table.getCellValue(0, 8);
            double atp   = 0;

            if (!String.IsNullOrEmpty(qty))
            {
                atp = double.Parse(qty);
            }

            string recDate = "";
            string recQty  = "";
            int    i       = 1;

            // had to do this due to a table bug

            System.Threading.Thread.Sleep(1000);
            (sap.findById("wnd[0]") as dynamic).resizeWorkingPane(100, 25, 0);
            System.Threading.Thread.Sleep(1000);
            try {
                while (!string.IsNullOrEmpty(table.getCellValue(i, 1)) && DateTime.Parse(table.getCellValue(i, 1)) <= DateAndTime.Now)
                {
                    //if (new[] { "Delvry", "CusOrd", "ShpgNt" }.Contains(table.getCellValue(i, 2)))
                    if (new[] { "Delvry" }.Contains(table.getCellValue(i, 2)) && (DateTime.Parse(table.getCellValue(i, 1)) == DateAndTime.Today))
                    {
                        recQty = table.getCellValue(i, 8);
                        recQty = recQty.Replace("-", "");
                        atp    = atp - double.Parse(recQty);
                    }
                    if ((new[] { "CusOrd" }.Contains(table.getCellValue(i, 2))) && (DateTime.Parse(table.getCellValue(i, 1)) <= DateAndTime.Now))
                    {
                        recQty = table.getCellValue(i, 8);
                        recQty = recQty.Replace("-", "");
                        atp    = atp - double.Parse(recQty);
                    }

                    //{
                    //{
                    //    recDate = table.getCellValue(i, 1);
                    //    recQty = double.Parse(table.getCellValue(i, 8));
                    //    return new MD04Property()

                    //}
                    // recQty = table.getCellValue(i, 8);
                    //recQty = recQty.Replace("-", "");
                    //atp = atp - double.Parse(recQty);
                    //}
                    i += 1;
                }

                //if (i > 1) {
                //    recQty = table.getCellValue(i-1, 9);

                //    if (recQty.Contains("-")) {
                //        recQty = recQty.Replace("-", "");
                //        atp = -double.Parse(recQty);
                //    }
                //    else {
                //        atp = double.Parse(table.getCellValue(i-1, 9));
                //    }

                //}
                //else {
                //    atp = double.Parse(table.getCellValue(i, 9));

                //}
                if (atp <= 0)
                {
                    return(false);
                }
                else
                {
                    return(true);
                }
            }
            catch (TableWasNotScrolledException)
            {
            }

            //    return new MD04Property()
            //    {
            //        salesOrg = salesOrg,
            //        plant = plant,
            //        sku = sku,
            //        ATP = atp,
            //        recoveryQty = recQty,
            //        recoveryDate = string.IsNullOrEmpty(recDate) ? "No Date Available" : recDate
            //    };
            return(true);
        }