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; }
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); }
/// <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); } }
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); } }
/// <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(); } }
public OverridePerformerConfirmMessage(Orders order, OrdersInWork ordersInWork) { Order = order; OrdersInWork = ordersInWork; BackBtn = BuildInlineBtn("Назад", BuildCallData(OrderProccesingBot.CmdBackOverride, OrderProccesingBot.ModuleName, Order.Id)); }
public OrderActionNotifiMessage(Orders order, OrdersInWork ordersInWork) { this.OrdersInWork = ordersInWork; this.Order = order; }