Esempio n. 1
0
        public ActionResult UpdateVehiculo(VehiculoModel coche)
        {
            try
            {
                if (!ModelState.IsValid)
                {
                    return Json(new { success = false, errores = GetElementsFromModelState(), validaciones = "" });
                }
                if (coche.PolObligatoria == "S")
                {
                    ValSeguroObli(coche.nNumVehi, coche.coberRepCiv);
                }
                //Antes de Guardar un Vehículo, hay algunas validaciones adicionales

                var logged = (DataSet)Session["UserObj"];
                var agentID = logged.Tables["catAgentes"].Rows[0]["nAgenteID"].ToString();

                // Recupero el modelo
                GenericoViewModel modelComplete = (GenericoViewModel)Session["ModeloEnUso"];
                modelComplete.conductores.Remove(modelComplete.conductores.FirstOrDefault(x=> x.nombre== "-- Seleccione un conductor asignado --"));
                Dictionary<string, object> results = new Dictionary<string, object>();
                if (modelComplete.ModulodeTrabajo == "Cotizaciones")
                {
                    // Validaciones Nueva Cotización

                    ClsVehiculo vehiculo = CentralAgentesMvc.App_Start.CastObject.Cast<ClsVehiculo>(coche);
                    results = vehiculo.ValidaVehiculoWeb(vehiculo, "C", agentID);
                }
                else
                {
                    ClsVehiculo vehiculo = CentralAgentesMvc.App_Start.CastObject.Cast<ClsVehiculo>(coche);
                    results = vehiculo.ValidaVehiculoWeb(vehiculo, "R", agentID);
                    // Validaciones Renovación
                }

                if (results.First().Value.ToString() != "OK")
                {
                    return Json(new { success = false, errores = "", validaciones = results });
                }

                // Inicializo coleccion si estan null
                if (modelComplete.vehiculos == null) modelComplete.vehiculos = new List<ClsVehiculo>();
                if (modelComplete.prospectos == null) modelComplete.prospectos = new List<ClsProspecto>();
                if (modelComplete.complemento == null) modelComplete.complemento = new ClsComplemento();

                // Elimino el conductor 0
                if (modelComplete.conductores != null)
                {
                    var cndR = modelComplete.conductores.FirstOrDefault(c => c.nNumCond == 0);
                    if (cndR != null)
                        modelComplete.conductores.Remove(cndR);
                }

                // Verifico si es edición
                if (modelComplete.vehiculos.FirstOrDefault(c => c.nNumVehi == coche.nNumVehi) != null)
                {
                    var remove = modelComplete.vehiculos.FirstOrDefault(c => c.nNumVehi == coche.nNumVehi);
                    modelComplete.vehiculos.Remove(remove);
                }

                // Agrego el vehiculo a la colección
                var car = CentralAgentesMvc.App_Start.CastObject.Cast<ClsVehiculo>(coche);
                if (coche.conducAsign != 0)
                {
                    car.NombreConductorA = modelComplete.conductores.First(c => c.nNumCond == coche.conducAsign).nombre.ToUpper();
                }
                modelComplete.vehiculos.Add(car);

                // Valido el TERSSA
                int contTerssa = 0;
                ValidaVehiculos vv = new ValidaVehiculos();
                modelComplete.tersa = vv.ValidaConvierteTerssa(ref contTerssa, modelComplete.tersa, modelComplete.vehiculos, "C");

                // Valido Cobertura 100
                int contCober = 0;
                int contCond = 0;
                modelComplete.cobertura100 = vv.ValidaConvierteCobertura100Siempre(ref contCober
                                                                                 , ref contCond
                                                                                 , modelComplete.cobertura100
                                                                                 , modelComplete.vehiculos
                                                                                 , modelComplete.conductores
                                                                                 , "C");

                // Guardo el modelo
                SetPorcentajeComisionList(ref modelComplete);
                ViewBag.SubTitle = (modelComplete.ModulodeTrabajo == "Cotizaciones" ? "cotización" : "renovación");
                GuardaEnMemoria(modelComplete);
                ClearErrors();

                // Redirecciono
                return PartialView("DetalleGeneral", modelComplete);
            }
            catch (Exception err)
            {
                Response.StatusCode = (int)(System.Net.HttpStatusCode.InternalServerError);
                LogDeErrores.RegistroErrorWeb(err, DatoUsuario.idAgente, DatoUsuario.nomAgente, DatoUsuario.sIp, DatoUsuario.sHostName);
                return Json("ErrInterno");
            }
        }