public void UpdateModels(UpdateViewModel model, string userName) { UpdateModels(model, model.CurrentTripId, model.Ship.ShipId, model.LoadGoodsJourney, 0, userName); UpdateModels(model, model.CurrentTripId, model.Ship.ShipId, model.JourneyInProgress, 0, userName); UpdateModels(model, model.CurrentTripId, model.Ship.ShipId, model.UnloadGoodsJourney, 0, userName); UpdateModels(model, model.CurrentTripId, model.Ship.ShipId, model.UnusualJourney, 0, userName); UpdateModels(model, model.CurrentTripId, model.Ship.ShipId, model.JourneyPlan, 1, userName); UpdateModels(model, model.CurrentTripId, model.Ship.ShipId, model.Note, 2, userName); }
//public Single SetRestWeight(int shipId, string tripId, int taskId, int? stateId, Single arrangedWeight) //{ // var jns = db.Journeys.FirstOrDefault(p => p.TripId == tripId && p.ShipId == shipId); // Single result = (jns.Weight - arrangedWeight); // return result; //} private void UpdateModels(UpdateViewModel upv, string tripId, int shipId, dynamic model, int kind, string userName) { model.ShipId = shipId; model.TripId = tripId; switch (kind) { case 0: int taskId = model.TaskId; int? stateId = model.StateId; int? portId = model.PortId; //if ((stateId == ConstId.LoadedStateId || stateId == ConstId.UnloadedStateId || stateId == ConstId.UnloadingStateId || stateId == ConstId.LoadingStateId) && (taskId == ConstId.LoadTaskId || taskId == ConstId.UnloadTaskId)) //{ // model.RestWeight = SetRestWeight(shipId, tripId, taskId, stateId, model.ArrangedWeight); //} //JourneySupervision a = db.JourneySuppervision.Where(p => p.TripId == tripId && p.ShipId == shipId && p.TaskId == taskId && p.PortId == portId && p.StateId == stateId).FirstOrDefault(); //if (a == null) //{ if (model.PortId != null || model.CreatedDate != null || model.Position != null || model.ArrangedWeight != 0) { var js = new JourneySupervision { ShipId = shipId, TripId = tripId, StateId = stateId, PortId = model.PortId, ArrangedWeight = model.ArrangedWeight, CreatedDate = model.CreatedDate, RestWeight = model.RestWeight, Position = model.Position, TaskId = taskId, CategoryName = model.CategoryName, Updator = userName, UpdateTime = DateTime.Now, NationName = model.NationName }; db.JourneySuppervision.Add(js); } //} //else //{ // if (model.StateId == ConstId.LoadingStateId || model.StateId == ConstId.UnloadingStateId) // { // var js = new JourneySupervision // { // ShipId = shipId, // TripId = tripId, // StateId = stateId, // PortId = model.PortId, // ArrangedWeight = model.ArrangedWeight, // CreatedDate = model.CreatedDate, // RestWeight = model.RestWeight, // Position = model.Position, // TaskId = taskId, // CategoryName = model.CategoryName, // Updator = userName, // UpdateTime = DateTime.Now // }; // db.JourneySuppervision.Add(js); // } // else // { // a.ArrangedWeight = model.ArrangedWeight ?? 0; // a.RestWeight = model.RestWeight ?? 0; // a.CreatedDate = model.CreatedDate; // a.Note = model.Note; // a.PortId = model.PortId; // a.Position = model.Position; // a.StateId = stateId; // a.CategoryName = model.CategoryName; // a.UpdateTime = DateTime.Now; // a.Updator = userName; // db.Entry(a).State = EntityState.Modified; // } //} if (model.StateId != null) { var plan = db.Compares.FirstOrDefault(p => p.StateId == stateId); if (plan != null) { string plid = plan.PlanId; var jourpl = db.journeyPlans.FirstOrDefault(p => p.ShipId == shipId && p.TripId == tripId && p.PlanId == plid && p.PortId == portId); if (jourpl != null) { var plTime = jourpl.PlanTime; DateTime? jnTime = model.CreatedDate; if (plTime != null && jnTime != null) { var rs1 = db.Results.Where(p => p.TripId == tripId && p.ShipId == shipId && p.PlanId == plid && p.PortId == portId); if (rs1 != null) { foreach (var item in rs1) { item.StateId = stateId; item.JourneyDate = jnTime; var days = (item.PlanDate.Value - jnTime.Value).Days; if (days > 0) { upv.IsLate = 1; item.Remark = "Sớm hơn " + days + " ngày so với dự kiến"; } if (days < 0) { item.Remark = "Trễ hơn " + -days + " ngày so với dự kiến"; upv.IsLate = 2; } if (days == 0) { upv.IsLate = 0; item.Remark = "Đúng theo dự kiến"; } } upv.rStateId = stateId; upv.rPlanId = plid; upv.rShipId = shipId; } } } } } string ctripId = GenerateTripId(tripId); var jn = db.Journeys.FirstOrDefault(p => p.ShipId == shipId && p.TripId == ctripId); if (model.TaskId == ConstId.UnloadTaskId && model.StateId == ConstId.UnloadedStateId && jn == null) { var now = model.CreatedDate??DateTime.Now; var updateJourney = db.Journeys.FirstOrDefault(p => p.ShipId == shipId && p.TripId == tripId); updateJourney.EndDate = now; // db.Entry(updateJourney).State = System.Data.EntityState.Modified; // db.SaveChanges(); var journey = new Journey { ShipId = model.ShipId, TripId = ctripId, StartPortId = model.PortId, StartDate = now }; db.Journeys.Add(journey); } db.SaveChanges(); break; case 1: string planId = model.PlanId; //var b = db.journeyPlans.FirstOrDefault(p => p.TripId == tripId && p.ShipId == shipId && p.PlanId == planId); //if (b != null) //{ // b.PlanTime = model.PlanTime; // b.PortId = model.PortId; // b.UpdateTime = DateTime.Now; // b.Updator = userName; //} //else //{ if (model.PlanId != null || model.PlanTime != null && model.PortId) { var jp = new JourneyPlan { ShipId = shipId, TripId = tripId, PlanId = planId, PlanTime = model.PlanTime, PortId = model.PortId, Updator = userName, UpdateTime = DateTime.Now }; var rs = new Result { PlanDate = model.PlanTime, PlanId = planId, ShipId = shipId, TripId = tripId, PortId = model.PortId }; db.journeyPlans.Add(jp); db.Results.Add(rs); } //} db.SaveChanges(); break; case 2: bool isnull = string.IsNullOrEmpty(model.NoteContent); if (!isnull) { var note = new Note { CreatedDate = model.CreatedDate, ShipId = shipId, TripId = tripId, NoteContent = model.NoteContent, Updator = userName, UpdateTime = DateTime.Now }; db.Notes.Add(note); db.SaveChanges(); } break; default: break; } }
public void SetUpdateViewModelShip(UpdateViewModel model, int shipId, string tripId) { model.CurrentStartTime = db.Journeys.FirstOrDefault(p => p.ShipId == shipId && p.TripId == tripId).StartDate; model.AvailableTripIds.Add(tripId); model.Ship = db.Ships.Find(shipId); model.CurrentTripId = tripId; model.LoadGoodsJourney = new JourneySupervision() { ShipId = shipId, TripId = tripId, TaskId = 1 }; model.UnloadGoodsJourney = new JourneySupervision() { ShipId = shipId, TripId = tripId, TaskId = 2 }; model.JourneyInProgress = new JourneySupervision() { ShipId = shipId, TripId = tripId, TaskId = 3 }; model.UnusualJourney = new JourneySupervision() { ShipId = shipId, TripId = tripId, TaskId = 4 }; model.Note = new Note() { ShipId = shipId, TripId = tripId }; model.JourneyPlan = new JourneyPlan() { ShipId = shipId, TripId = tripId }; var journey = db.Journeys.FirstOrDefault(p => p.ShipId == shipId && p.TripId == tripId); if (journey.ContractNumber != null) { model.InsertOrUpdate = 2; model.StartNationId = journey.StartNationName != null ? db.Nations.FirstOrDefault(p => p.NationName == journey.StartNationName).NationId : null; model.StopNationId = journey.StopNationName != null ? db.Nations.FirstOrDefault(p => p.NationName == journey.StopNationName).NationId : null; model.ContractNumber = journey.ContractNumber; var shipment = db.Shipments.FirstOrDefault(p => p.ShipId == shipId && p.TripId == tripId && p.ContractNumber == journey.ContractNumber); var log = db.UpdateLogs.Where(p => p.ShipId == shipId && p.TripId == tripId).ToList(); model.Logs = log; } else { model.InsertOrUpdate = 1; } }
public void UpdateGoodsAndJourney(UpdateViewModel model) { if (model.InsertOrUpdate == 1) { Single totalWeight = 0; for (int i = 0; i < model.CategoryIds.Count; i++) { if (model.CategoryIds[i] != null || model.Weights[i] != null || model.StartPortIds[i] != null || model.StopPortIds[i] != null) { var a = new GoodsMakingPlace { ContractNumber = model.ContractNumber, PortId = model.StartPortIds[i] == null ? model.StartPortIds[0] : model.StartPortIds[i], Kind = false, NationId = model.StartNationId }; var b = new GoodsMakingPlace { ContractNumber = model.ContractNumber, PortId = model.StopPortIds[i] == null ? model.StopPortIds[0] : model.StopPortIds[i], Kind = true, NationId = model.StopNationId }; if (model.Weights[i] != null || model.CategoryIds[i] != null) { var shipment = new Shipment { CategoryId = model.CategoryIds[i], ShipId = model.Ship.ShipId, ContractNumber = model.ContractNumber, TripId = model.CurrentTripId, Weight = model.Weights[i] ?? 0 }; db.Shipments.Add(shipment); } totalWeight += model.Weights[i] != null ? model.Weights[i].Value : 0; try { db.GoodMakingPlaces.Add(a); db.GoodMakingPlaces.Add(b); } catch (Exception) { } var log = new UpdateLog { ContractNumber = model.ContractNumber, TripId = model.CurrentTripId, ShipId = model.Ship.ShipId, Category = db.Categories.Find(model.CategoryIds[i]) == null ? "" : db.Categories.Find(model.CategoryIds[i]).CategoryName, StartPort = db.Ports.Find(model.StartPortIds[i]) == null ? "" : db.Ports.Find(model.StartPortIds[i]).PortName, StopPort = db.Ports.Find(model.StopPortIds[i]) == null ? "" : db.Ports.Find(model.StopPortIds[i]).PortName, Weight = model.Weights[i].ToString() }; db.UpdateLogs.Add(log); } } var jouney = db.Journeys.FirstOrDefault(p => p.ShipId == model.Ship.ShipId && p.TripId == model.CurrentTripId); jouney.ContractNumber = model.ContractNumber; jouney.Weight += totalWeight; jouney.StartNationName = model.StartNationId != null ? db.Nations.Find(model.StartNationId).NationName : null; jouney.StopNationName = model.StopNationId == null ? null : db.Nations.Find(model.StopNationId).NationName; db.Entry(jouney).State = System.Data.EntityState.Modified; } //var jouney2 = db.Journeys.FirstOrDefault(p => p.ShipId == model.Ship.ShipId && p.TripId == model.CurrentTripId); //jouney2.StartNationName = db.Nations.Find(model.StartNationId).NationName; //jouney2.StopNationName = db.Nations.Find(model.StopNationId).NationName; //db.Entry(jouney2).State = System.Data.EntityState.Modified; }
public void InitialUpdateViewModel(UpdateViewModel UViewModel) { UViewModel.AvailableCategories = db.Categories.OrderBy(p => p.CategoryName).ToList(); UViewModel.AvailableNations = db.Nations.OrderBy(p => p.NationName).ToList(); UViewModel.AvailablePorts = db.Ports.OrderBy(p => p.PortName).ToList(); UViewModel.AvailableStates = db.States.OrderBy(p => p.StateName).ToList(); UViewModel.AvailablePlans = db.Plans.OrderBy(p => p.PlanName).ToList(); UViewModel.InsertOrUpdate = 1; UViewModel.AvailableTripIds = new List<string>(); }
public ICollection<Result> GetResult(UpdateViewModel model) { var result = db.Results.Where(p => p.ShipId == model.rShipId && p.StateId == model.rStateId && p.TripId == model.CurrentTripId && p.PlanId == model.rPlanId).ToList(); return result; }
public void GetJourney(UpdateViewModel model) { var journey = db.Journeys.FirstOrDefault(p => p.TripId == model.CurrentTripId && p.ShipId == model.Ship.ShipId); }
public ActionResult UpdateReson(UpdateViewModel model) { var result = repository.GetResult(model); ViewBag.availableResons = repository.GetResons(); return View(result); }
public ActionResult Update(UpdateViewModel model) { // model.CurrentStartTime = DateTime.ParseExact(_CurrentStartTime, "dd/MM/yyyy", CultureInfo.CurrentCulture); repository.UpdateGoodsAndJourney(model); repository.UpdateModels(model, User.Identity.Name); if (model.IsLate > 0) { return RedirectToAction("UpdateReson", model); } //repository.SaveChange(); return RedirectToAction("Index", new { shipId = model.Ship.ShipId, tripId = model.CurrentTripId, IsRefresh = "true" }); }