// // GET: /Order/Details/5 public ActionResult Detail(int id, enumErrorCode error = enumErrorCode.NONE) { Orders order = null; using (var t = new TransactionScope(TransactionScopeOption.Required, new TransactionOptions { IsolationLevel = System.Transactions.IsolationLevel.ReadUncommitted })) { order = db.Orders.Find(id); if (order == null) { return(HttpNotFound()); } int userId = Convert.ToInt32(Session["UserID"]); if (!roomControl.CheckUserInRoom(userId, order.RoomId)) { return(RedirectToAction("Login", "Account")); } } ScheduleOrder tempSchedule = new ScheduleOrder(); tempSchedule.GetOrderMaterial(order.MaterialInfo); string[] materialArray = tempSchedule.MaterialList.Values.ToArray(); ViewData["materials"] = materialArray; ViewData["error"] = Constants.GetErrorString(error); return(View(order)); }
// // GET: /Order/Edit/5 public ActionResult Edit(int id) { using (var t = new TransactionScope(TransactionScopeOption.Required, new TransactionOptions { IsolationLevel = System.Transactions.IsolationLevel.ReadUncommitted })) { Orders order = db.Orders.Find(id); ScheduleOrder tempSchedule = new ScheduleOrder(); tempSchedule.GetOrderMaterial(order.MaterialInfo); string[] materialArray = tempSchedule.MaterialList.Values.ToArray(); ViewData["materials"] = materialArray; List <SelectListItem> materialInfos = new List <SelectListItem>(); materialInfos.Add(new SelectListItem { Text = "不新增物料", Value = "0" }); foreach (Materials item in db.Materials) { materialInfos.Add(new SelectListItem { Text = string.Format(App_Start.Constants.MACHINE_MATERIAL_STRUCTURE, item.Code, item.Unit, item.DetailInfo), Value = item.ID.ToString() }); } ViewData["materialInfos"] = materialInfos; return(View(order)); } }
private void SeedScheduleOrder(WarehouseSystemDbContext context) { if (context.Organizations.Any()) { return; } var suppliers = context.Organizations.Where(x => x.IsSupplier == true).ToList(); var customers = context.Organizations.Where(x => x.IsSupplier == false).ToList(); for (int i = 0; i < suppliers.Count; i++) { for (int j = 0; j < this.random.RandomNumber(0, customers.Count - 1); j++) { var newScheduleOrder = new ScheduleOrder() { OrderDay = (DayOfWeek)this.random.RandomNumber(0, 6), DelivaryDay = (DayOfWeek)this.random.RandomNumber(0, 6), Supplier = suppliers[this.random.RandomNumber(0, suppliers.Count - 1)], Client = customers[(i + j) % customers.Count], }; context.ScheduleOrders.Add(newScheduleOrder); } } context.SaveChanges(); }
public async Task ShouldReturnScheduleInputOrderObjectWhenScheduleTypeIsDay() { _mockDayComparable.Setup(x => x.Compare(It.IsAny <DayOfWeek>())).Returns(true); var scheduleOrder = new ScheduleOrder( _mockGasStationScheduleRepo.Object , _mockGasStationScheduleByDayRepo.Object , _mockGasStationTanksScheduleRepo.Object , _mockGasStationScheduleByTimeRepo.Object , _mockDayComparable.Object , _mockTimeIntervalComparable.Object , _mockOrderRepository.Object ); var gasStation = _orderData.GasStations.First(); var result = await scheduleOrder.CreateAsync((gasStation, _orderData.OrderStrategies.First().OrderType)); Assert.True(result.IsSuccess); var lineItemsTankIds = result.Entity !.OrderProducts.Select(x => x.TankId).ToList(); var gasStationScheduleTanks = _orderData.GasStationTankSchedules.Where(x => x.TankId == 1 || x.TankId == 2).ToList(); _mockDayComparable.Verify(x => x.Compare(It.IsAny <DayOfWeek>()), Times.Once); Assert.Equal(OrderType.Schedule, result.Entity !.OrderType); Assert.Equal(2, result.Entity !.OrderProducts.Count()); Assert.True(lineItemsTankIds.Exists(x => x == gasStationScheduleTanks .FirstOrDefault().TankId)); Assert.True(lineItemsTankIds.Exists(x => x == gasStationScheduleTanks .LastOrDefault().TankId)); Assert.Equal(result.Entity !.OrderProducts.FirstOrDefault( x => x.TankId == gasStationScheduleTanks.FirstOrDefault().TankId) .Quantity, gasStationScheduleTanks.FirstOrDefault().Quantity); Assert.Equal(result.Entity !.OrderProducts.FirstOrDefault( x => x.TankId == gasStationScheduleTanks.LastOrDefault().TankId) .Quantity, gasStationScheduleTanks.LastOrDefault().Quantity); }
public AutoOrderGenerator(IGasStationRepository gasStationRepository , ScheduleOrder scheduleOrder , EstimateOrder estimateOrder , IManageOrderRepository manageOrderRepository) { _gasStationRepository = gasStationRepository; _scheduleOrder = scheduleOrder; _estimateOrder = estimateOrder; _manageOrderRepository = manageOrderRepository; }
public static void SendNoticeBySchedule(ScheduleOrder schedule, ContextString dbContext) { string remarks = schedule.Status == 2 ? "您的排期已申请通过,快去添加节目吧!" : "您的排期未能通过申请,请查看拒绝理由。"; var account = dbContext.ShopAccount.Where(i => i.ShopCode == schedule.ShopCode).FirstOrDefault(); if (account == null) { return; } var openID = account.UnionID; var data = "{\"keyword1\": {\"value\": \"" + schedule.PlacingNum + "\"},\"keyword2\": {\"value\": \"" + schedule.AddTime.ToString("yyyy年MM月dd日 HH:mm") + "\"},\"keyword3\": {\"value\": \"" + (schedule.Status == 2 ? "已通过" : "已拒绝") + "\"" + (schedule.Status == 2 ? "" : ",\"color\": \"#f00\"") + "} ,\"keyword4\": {\"value\": \"" + remarks + "\"}}"; SendWeChatNotice(openID, schedule.FormID, data); }
private ScheduleOrder ResolveOrder(ScheduleOrder order, ScheduleOrder antiorder, out bool conflict) { // A:RunBefore A:AnyOrderConcurrent A:AnyOrderNotConcurrent A:RunAfter // // B:RunBefore CONFLICT RunAfter RunAfter RunAfter // B:AnyOrderConcurrent RunBefore AnyOrderConcurrent AnyOrderNotConcurrent RunAfter // B:AnyOrderNotConcurrent RunBefore AnyOrderNotConcurrent AnyOrderNotConcurrent RunAfter // B:RunAfter RunBefore RunBefore RunBefore CONFLICT // conflict = false; switch (order) { case ScheduleOrder.AnyOrderConcurrent: if (antiorder == ScheduleOrder.RunAfter) { return(ScheduleOrder.RunBefore); } if (antiorder == ScheduleOrder.RunBefore) { return(ScheduleOrder.RunAfter); } return(antiorder); case ScheduleOrder.AnyOrderNotConcurrent: if (antiorder == ScheduleOrder.RunAfter) { return(ScheduleOrder.RunBefore); } if (antiorder == ScheduleOrder.RunBefore) { return(ScheduleOrder.RunAfter); } return(ScheduleOrder.AnyOrderNotConcurrent); case ScheduleOrder.RunBefore: case ScheduleOrder.RunAfter: default: if (antiorder == order) { conflict = true; } return(order); } }
public void ShouldThrowErrorWhenPassingInvalidGasStation() { var scheduleOrder = new ScheduleOrder( _mockGasStationScheduleRepo.Object , _mockGasStationScheduleByDayRepo.Object , _mockGasStationTanksScheduleRepo.Object , _mockGasStationScheduleByTimeRepo.Object , _mockDayComparable.Object , _mockTimeIntervalComparable.Object , _mockOrderRepository.Object ); Assert.ThrowsAsync <ArgumentException>( async() => { await scheduleOrder.CreateAsync( (_orderData.GasStations.First(), _orderData.OrderStrategies.First().OrderType)); } ); }
public ActionResult ScheduleOrders_Create([DataSourceRequest] DataSourceRequest request, ScheduleOrder scheduleOrder) { if (this.ModelState.IsValid) { var entity = new ScheduleOrder { OrderDay = scheduleOrder.OrderDay, DelivaryDay = scheduleOrder.DelivaryDay, CreatedOn = scheduleOrder.CreatedOn, ModifiedOn = scheduleOrder.ModifiedOn, IsDeleted = scheduleOrder.IsDeleted, DeletedOn = scheduleOrder.DeletedOn }; this.db.ScheduleOrders.Add(entity); this.db.SaveChanges(); scheduleOrder.Id = entity.Id; } return(this.Json(new[] { scheduleOrder }.ToDataSourceResult(request, this.ModelState))); }
public ActionResult ScheduleOrders_Create([DataSourceRequest]DataSourceRequest request, ScheduleOrder scheduleOrder) { if (this.ModelState.IsValid) { var entity = new ScheduleOrder { OrderDay = scheduleOrder.OrderDay, DelivaryDay = scheduleOrder.DelivaryDay, CreatedOn = scheduleOrder.CreatedOn, ModifiedOn = scheduleOrder.ModifiedOn, IsDeleted = scheduleOrder.IsDeleted, DeletedOn = scheduleOrder.DeletedOn }; this.db.ScheduleOrders.Add(entity); this.db.SaveChanges(); scheduleOrder.Id = entity.Id; } return this.Json(new[] { scheduleOrder }.ToDataSourceResult(request, this.ModelState)); }
public async Task ShouldGenerateExceptionWhenTimeIntervalConfigurationNotExist() { _mockTimeIntervalComparable.Setup(x => x.Compare(It.IsAny <TimeSpan>(), It.IsAny <DateTime>(), It.IsAny <DateTime>())).Returns(true); _mockGasStationScheduleByTimeRepo.Setup(x => x.FindByAsync(It.IsAny <Expression <Func <GasStationScheduleByTime, bool> > >())).ReturnsAsync( Enumerable.Empty <GasStationScheduleByTime>() ); var scheduleOrder = new ScheduleOrder( _mockGasStationScheduleRepo.Object , _mockGasStationScheduleByDayRepo.Object , _mockGasStationTanksScheduleRepo.Object , _mockGasStationScheduleByTimeRepo.Object , _mockDayComparable.Object , _mockTimeIntervalComparable.Object , _mockOrderRepository.Object ); await Assert.ThrowsAsync <ScheduleOrder.TimIntervalConfigurationException>(async() => { await scheduleOrder.CreateAsync((_orderData.GasStations.Last(), _orderData.OrderStrategies.Last().OrderType)); }); }