public async Task <IActionResult> Edit(EditTransInfoViewModel model)
        {
            //get data for select elements if error
            model.Drivers  = _userServices.GetAvailableUsers().ToList();
            model.Routes   = RouteServices.GetAllRoutes().ToList();
            model.Vehicles = (await _vehicleServices.GetNotUseVehicles()).ToList();
            string message = String.Empty;

            if (ModelState.IsValid)
            {
                //check cancel option and reason cancel
                if (model.IsCancel && String.IsNullOrEmpty(model.ReasonCancel))
                {
                    message = "Không thể để trống lý do hủy khi chọn hủy";
                    TempData["UserMessage"] = SystemUtilites.SendSystemNotification(NotificationType.Error, message);
                    return(View(model));
                }
                if (!model.IsCancel && !String.IsNullOrEmpty(model.ReasonCancel))
                {
                    message = "Không thể điền lý do hủy nếu chưa chọn hủy";
                    TempData["UserMessage"] = SystemUtilites.SendSystemNotification(NotificationType.Error, message);
                    return(View(model));
                }
                //if cancel and have reason cancel, write date complete transport
                if (model.IsCancel && !String.IsNullOrEmpty(model.ReasonCancel))
                {
                    DateTime localTimeUTC7 = SystemUtilites.ConvertToTimeZone(DateTime.UtcNow, "SE Asia Standard Time");
                    model.DateCompletedLocal = SystemUtilites.ConvertToTimeStamp(localTimeUTC7);
                    model.DateCompletedUTC   = SystemUtilites.ConvertToTimeStamp(DateTime.UtcNow);
                }
                var transInfo = _transInfoServices.GetTransport(model.TransportId);
                if (transInfo != null)
                {
                    var user = await _userManager.GetUserAsync(User);

                    if (user != null)
                    {
                        if (model.CargoTonnage > 0)
                        {
                            var vehicle = await _vehicleServices.GetVehicle(model.VehicleId);

                            var route = _routeServices.GetRoute(model.RouteId);
                            model.ReturnOfAdvances = model.CargoTonnage * vehicle.FuelConsumptionPerTone * vehicle.Fuel.FuelPrice * route.Distance;
                        }
                        if (await _transInfoServices.EditTransInfo(model, user.Id))
                        {
                            message = "Đơn vận chuyển đã được điều chỉnh thông tin";
                            TempData["UserMessage"] = SystemUtilites.SendSystemNotification(NotificationType.Success, message);
                            return(RedirectToAction(actionName: "Index"));
                        }
                    }
                }
            }
            message = "Lỗi không xác định, xin mời thao tác lại";
            TempData["UserMessage"] = SystemUtilites.SendSystemNotification(NotificationType.Error, message);
            return(View(model));
        }
예제 #2
0
        public async Task <IActionResult> Delete(string routeId)
        {
            string message     = String.Empty;
            var    userMessage = new MessageVM();
            var    routeDel    = _routeServices.GetRoute(routeId);

            if (routeDel != null)
            {
                if (await _routeServices.DeleteRoute(routeDel))
                {
                    message = "Tuyến vận chuyển đã được xóa";
                    TempData["UserMessage"] = SystemUtilites.SendSystemNotification(NotificationType.Success, message);
                    return(RedirectToAction(actionName: "Index"));
                }
            }
            message = "Lỗi không xác định, xin mời thao tác lại";
            TempData["UserMessage"] = SystemUtilites.SendSystemNotification(NotificationType.Error, message);
            return(RedirectToAction(actionName: "Index"));
        }