Exemple #1
0
        private int InsertInWork(int?OrderId, int?FollowerId, bool?Take = true)
        {
            if (db == null)
            {
                db = new MarketBotDbContext();
            }

            if (OrderId > 0 && FollowerId > 0 && Take != null)
            {
                OrdersInWork inWork = new OrdersInWork
                {
                    FollowerId = FollowerId,
                    OrderId    = OrderId,
                    InWork     = Take,
                    Timestamp  = DateTime.Now
                };

                db.OrdersInWork.Add(inWork);

                return(db.SaveChanges());
            }

            else
            {
                return(-1);
            }
        }
        //public int getAmountFromWareHouseStockId(int Id)
        //{
        //    foreach (var item in WarehouseStocks)
        //    {
        //        if (item.Id == Id)
        //        {
        //            return item.Amount;
        //        }
        //    }
        //    return 0;
        //}

        private void clearLists()
        {
            WarehouseStocks.Clear();
            FutureInwardStockMovments.Clear();
            WaitingListWorkstations.Clear();
            WaitingListStocks.Clear();
            OrdersInWork.Clear();
            PeriodFromXML = 0;
        }
Exemple #3
0
        public async Task <IActionResult> TakeInWork([FromBody] OrdersInWork inWork)
        {
            if (db == null)
            {
                db = new MarketBotDbContext();
            }

            inWork.FollowerId = db.Follower.Where(f => f.ChatId == db.BotInfo.FirstOrDefault().OwnerChatId).FirstOrDefault().Id;

            string UserName = Bot.GeneralFunction.FollowerFullName(inWork.FollowerId);

            var CurrentInWork = CheckInWork(Convert.ToInt32(inWork.OrderId));

            this.Order = db.Orders.Find(inWork.OrderId);

            //заявка ни кем не обрабатывается или уже  обрабатывается текущим пользовтелем
            if (CurrentInWork == null || CurrentInWork != null && CurrentInWork.FollowerId == inWork.FollowerId)
            {
                if (CurrentInWork == null ||
                    CurrentInWork != null && CurrentInWork.InWork == true && inWork.InWork == false
                    )
                // заявка ни кем не обрабатывается и пользователь берет ее в обработку или
                // пользователь хочет освободить заявку
                {
                    InsertInWork(inWork.OrderId, inWork.FollowerId, inWork.InWork);
                }
                if (inWork.InWork == true)
                {
                    TelegramAdminSendMessage("Пользователь: " + UserName + " | Взял в работу заказ №" + Order.Number.ToString() + " | /order" + Order.Number.ToString());
                    return(Json("В работе"));
                }


                else
                {
                    TelegramAdminSendMessage("Пользователь: " + UserName + " | Освободил заказ №" + Order.Number.ToString() + " | /order" + Order.Number.ToString());
                    return(Json("Свободна"));
                }
            }

            else
            {
                return(Json("Заявка в обработке у " + CurrentInWork.Follower.FirstName + " " + CurrentInWork.Follower.LastName));
            }

            //Order= db.Orders.Where(o => o.Id == OrderId).Include(o => o.OrdersInWork).FirstOrDefault();

            //foreach (OrdersInWork work in Order.OrdersInWork)
            //    work.Follower = db.Follower.Find(work.FollowerId);
        }
Exemple #4
0
        /// <summary>
        /// Выполнить заказ
        /// </summary>
        /// <returns></returns>
        private async Task <IActionResult> OrderDone()
        {
            using (MarketBotDbContext db = new MarketBotDbContext())
            {
                //Проверяем согласован ли заказ и не удален ли он и не был ли выполнен ранее
                if (this.Order != null && this.Order.OrderDeleted.Count == 0 && this.Order.OrderConfirm.Count > 0 && this.Order.OrderDone.Count == 0 &&
                    await Processing.CheckInWork(this.Order) && !await Processing.CheckIsDone(this.Order))
                {
                    OrderDone orderDone = new OrderDone
                    {
                        DateAdd    = DateTime.Now,
                        FollowerId = FollowerId,
                        Done       = true,
                        OrderId    = OrderId
                    };

                    OrdersInWork inWork = new OrdersInWork
                    {
                        FollowerId = FollowerId,
                        Timestamp  = DateTime.Now,
                        InWork     = false,
                        OrderId    = this.Order.Id
                    };


                    db.OrdersInWork.Add(inWork);
                    db.OrderDone.Add(orderDone);
                    db.SaveChanges();
                    StockChangesMsg = new StockChangesMessage(UpdateStock(this.Order));
                }
            }

            if (OrderAdminMsg != null)
            {
                var message = OrderAdminMsg.BuildMessage();
                await EditMessage(message); // Редакатруем текущее сообщение на новое

                string notify = "Заказ №" + this.Order.Number.ToString() + " выполнен. Пользователь " + GeneralFunction.FollowerFullName(base.FollowerId);
                await Processing.NotifyChanges(notify, this.Order.Id);             // уведомляем сотрудников о выполненом заказе
                await SendMessageAllBotEmployeess(StockChangesMsg.BuildMessage()); //уведомляем сотрудников об изменениях остатков

                return(await SendFeedBackOffer());                                 // предлагаем пользователю оставить отзыв
            }
            else
            {
                return(base.NotFoundResult);
            }
        }
Exemple #5
0
        private async Task <IActionResult> TakeOrder()
        {
            try
            {
                using (MarketBotDbContext db = new MarketBotDbContext())
                {
                    OrdersInWork inWork = new OrdersInWork {
                        FollowerId = FollowerId, Timestamp = DateTime.Now, OrderId = Order.Id, InWork = true
                    };
                    db.OrdersInWork.Add(inWork);

                    var InWorkNow = Order.OrdersInWork.OrderByDescending(o => o.Id).FirstOrDefault();

                    //заказ не находится ни у кого в обработке
                    if (Order != null && InWorkNow == null && db.SaveChanges() > 0 ||
                        Order != null && InWorkNow != null &&
                        InWorkNow.InWork == false && db.SaveChanges() > 0)
                    {
                        Order.OrdersInWork.Add(inWork);
                        OrderAdminMsg = new AdminOrderMessage(Order, FollowerId);
                        await EditMessage(OrderAdminMsg.BuildMessage());

                        string notify = "Заказ №" + this.Order.Number.ToString() + " взят в работу. Пользователь " + GeneralFunction.FollowerFullName(base.FollowerId);
                        await Processing.NotifyChanges(notify, this.Order.Id);
                    }

                    //заказ уже кем то обрабатывается
                    if (InWorkNow != null && InWorkNow.FollowerId != FollowerId && InWorkNow.InWork == true)
                    {
                        await SendMessage(new BotMessage { TextMessage = "Заявка в обработке у " + GeneralFunction.FollowerFullName(InWorkNow.FollowerId) });
                    }

                    //заявка уже в обработке у пользователя
                    if (InWorkNow != null && InWorkNow.FollowerId == FollowerId && InWorkNow.InWork == true)
                    {
                        OrderAdminMsg = new AdminOrderMessage(Order, FollowerId);
                        await EditMessage(OrderAdminMsg.BuildMessage());
                    }

                    return(OkResult);
                }
            }

            catch
            {
                return(NotFoundResult);
            }
        }
Exemple #6
0
        /// <summary>
        /// Освободить заказ.
        /// </summary>
        /// <returns></returns>
        private async Task <IActionResult> FreeOrder()
        {
            try
            {
                if (Order != null && await Processing.CheckInWork(Order))
                {
                    using (MarketBotDbContext db = new MarketBotDbContext())
                    {
                        OrdersInWork ordersInWork = new OrdersInWork
                        {
                            Timestamp  = DateTime.Now,
                            InWork     = false,
                            OrderId    = Order.Id,
                            FollowerId = FollowerId
                        };

                        db.OrdersInWork.Add(ordersInWork);

                        if (db.SaveChanges() > 0)
                        {
                            Order.OrdersInWork.Add(ordersInWork);
                            OrderAdminMsg = new AdminOrderMessage(Order, FollowerId);
                            await base.EditMessage(OrderAdminMsg.BuildMessage());

                            await Processing.NotifyChanges("Пользователь " + GeneralFunction.FollowerFullName(FollowerId) + " освободил заказ №" + Order.Number.ToString(), Order.Id);
                        }
                        return(OkResult);
                    }
                }

                else
                {
                    return(OkResult);
                }
            }

            catch
            {
                return(OkResult);
            }
        }
        public static OrdersInWork InsertOrderInWork(int OrderId, int FollowerId, bool InWork = true)
        {
            MarketBotDbContext db = new MarketBotDbContext();

            try
            {
                if (OrderId > 0 && FollowerId > 0)
                {
                    OrdersInWork ordersInWork = new OrdersInWork
                    {
                        FollowerId = FollowerId,
                        InWork     = InWork,
                        OrderId    = OrderId,
                        Timestamp  = DateTime.Now
                    };

                    db.OrdersInWork.Add(ordersInWork);
                    db.SaveChanges();
                    ordersInWork.Follower = db.Follower.Find(FollowerId);
                    return(ordersInWork);
                }

                else
                {
                    return(null);
                }
            }

            catch
            {
                return(null);
            }

            finally
            {
                db.Dispose();
            }
        }
Exemple #8
0
 public OverridePerformerConfirmMessage(Orders order, OrdersInWork ordersInWork)
 {
     Order        = order;
     OrdersInWork = ordersInWork;
     BackBtn      = BuildInlineBtn("Назад", BuildCallData(OrderProccesingBot.CmdBackOverride, OrderProccesingBot.ModuleName, Order.Id));
 }
Exemple #9
0
 public OrderActionNotifiMessage(Orders order, OrdersInWork ordersInWork)
 {
     this.OrdersInWork = ordersInWork;
     this.Order        = order;
 }