public int SetSolicitud(string data) { try { JObject o = JObject.Parse(data); var ctx = new Database.DB_InspeccionesEntities(); string motivo = (string)o["tipoNegocio"]; DateTime fechaCoordinacion = Convert.ToDateTime((string)o["fechaCoordinacion"]); string rutCliente = (string)o["rutCliente"].ToString().Replace(".", "").Replace(".", ""); string nombre = o["nombre"].ToString(); string apellidoPaterno = o["apellidoPaterno"].ToString(); string apellidoMaterno = o["apellidoMaterno"].ToString(); bool esEmpresa = Convert.ToBoolean(o["esEmpresa"]); string direccion = o["direccion"].ToString(); string telefono1 = o["telefono1"].ToString(); string telefono2 = o["telefono2"].ToString(); string email = o["Email"].ToString(); string contacto = o["contacto"].ToString(); int idUsuario = Convert.ToInt32(o["usuario"].ToString()); int comuna = Convert.ToInt32(o["comuna"]); JArray vehiculos = (JArray)o["vehiculos"]; var cliExiste = (from c in ctx.Cliente where c.Rut == rutCliente select c).FirstOrDefault(); Database.Cliente cliente = null; if (cliExiste != null) { //Se actualiza cliente = cliExiste; } else { cliente = new Database.Cliente() { Rut = rutCliente, Nombre = nombre, RazonSocial = nombre, ApellidoPaterno = apellidoPaterno, ApellidoMaterno = apellidoMaterno, Direccion = direccion, Comuna = comuna, Fono1 = telefono1, Fono2 = telefono2, Email = email, NombreContacto = contacto, Estado = 1 }; ctx.Cliente.Add(cliente); ctx.SaveChanges(); } var solicitud = new Database.Solicitud() { Cliente1 = cliente, Contacto = contacto, Corredor = 1, Estado = 1, FechaSolicitud = DateTime.Now, FechaFinalizacion = DateTime.Now, UsuarioSolicitud = idUsuario }; ctx.Solicitud.Add(solicitud); ctx.SaveChanges(); var usuario = (from u in ctx.Usuario where u.Id == idUsuario select u).FirstOrDefault(); foreach (var item in vehiculos) { int idUsuarioACargo = 0; string nombreSucursal = item["Sucursal"].ToString(); var sucursal = (from s in ctx.Sucursal where s.Nombre == nombreSucursal select s).FirstOrDefault(); //Si es inspector if (usuario.UsuarioSucursal.FirstOrDefault().Cargo == 1) { idUsuarioACargo = usuario.Id; } else { var InspSucursal = (from usuSuc in ctx.UsuarioSucursal where usuSuc.Sucursal == sucursal.Id select usuSuc).ToList(); if (InspSucursal.Count == 1) { idUsuarioACargo = InspSucursal[0].Usuario; } else { idUsuarioACargo = (from u in InspSucursal where u.Supervisor == 1 select u).FirstOrDefault().Usuario; } } var inspeccion = new Database.Inspeccion() { Sucursal = sucursal.Id, UsuarioAsociado = idUsuarioACargo, Estado = 1, FechaInspeccion = DateTime.Now, Patente = item["patente"].ToString(), Modelo = Convert.ToInt32(item["idModelo"]), Motivo = Convert.ToInt32(motivo), Solicitud1 = solicitud, TipoVehiculo = item["tipoVehiculo"].ToString(), UsuarioInspector = 1 }; ctx.Inspeccion.Add(inspeccion); ctx.SaveChanges(); } //TODO: Añadir log return solicitud.Id; } catch(Exception ex) { var mensaje = ex.InnerException.ToString(); //TODO: Añadir log. return 0; } }
public int SetInspeccion(string data) { JObject o = JObject.Parse(data); var ctx = new Database.DB_InspeccionesEntities(); int idInspeccion = Convert.ToInt32(o["inspeccion"].ToString()); string observacion = o["lugarInspeccion"].ToString(); // int clienteRecepcion = Convert.ToInt32(o["nombreContactado"].ToString()); //var usuarioAsociado = (from u in ctx.Usuario where u.Id == clienteRecepcion select u).FirstOrDefault(); //int motivoInspeccion = Convert.ToInt32(o["motivoInspeccion"].ToString()); string motivo = o["motivoInspeccion"].ToString(); int motivoInspeccion; if (motivo == "Negocio nuevo") { motivoInspeccion = 1; } else { motivoInspeccion = 2; } //int modelo = Convert.ToInt32(o["marcaVehiculo"].ToString()); //var marcaVehiculo = (from m in ctx.Modelo where m.Id == modelo select m).FirstOrDefault(); string patente = o["patente"].ToString(); string color = o["color"].ToString(); string transmission = o["transmision"].ToString(); int puertas = Convert.ToInt32(o["puertas"].ToString()); string numeroMotor = o["numeroMotor"].ToString(); string numeroChasis = o["numeroChasis"].ToString(); int kilometraje = Convert.ToInt32(o["kilometraje"].ToString()); int cilindrada = Convert.ToInt32(o["cilindrada"].ToString()); string tipoAlarma = o["tipoAlarma"].ToString(); var ruedaRepuesto = Convert.ToBoolean(o["ruedaRepuesto"].ToString()); var antena = Convert.ToBoolean(o["antena"].ToString()); string tipoantena = o["tipoAntena"].ToString(); string estadoNeumatico = o["estadoNeumatico"].ToString(); string estadoPintura = o["estadoPintura"].ToString(); var inspeccion = (from i in ctx.Inspeccion where i.Id == idInspeccion select i).FirstOrDefault(); if (inspeccion == null) { return -1; } else { inspeccion.Observacion = observacion; //inspeccion.UsuarioAsociado = usuarioAsociado.Id; inspeccion.Motivo = motivoInspeccion; //inspeccion.Modelo = marcaVehiculo.Id; inspeccion.Patente = patente; inspeccion.Color = color; inspeccion.Transmision = transmission; inspeccion.Puertas = puertas; inspeccion.NroMotor = numeroMotor; inspeccion.NroChasis = numeroChasis; inspeccion.Kilometraje = kilometraje; inspeccion.Cilindrada = cilindrada; inspeccion.TipoAlarma = tipoAlarma; if (ruedaRepuesto) { inspeccion.RuedaRepuesto = 1; } else { inspeccion.RuedaRepuesto = 0; } if (antena) { inspeccion.Antena = 1; } else { inspeccion.Antena = 0; } inspeccion.TipoAntena = tipoantena; inspeccion.EstadoNeumaticos = estadoNeumatico; inspeccion.EstadoPintura = estadoPintura; inspeccion.Estado = 3; var inspeccionesSolicitud = (from i in ctx.Inspeccion where i.Solicitud == inspeccion.Solicitud select i ).ToList(); var todas = true; foreach (var item in inspeccionesSolicitud) { if (item.Estado != 3) { todas = false; } } if (todas) { var solicitud = (from s in ctx.Solicitud where s.Id == inspeccion.Solicitud select s).FirstOrDefault(); if (solicitud != null) { solicitud.Estado = 3; } } ctx.SaveChanges(); return 0; } }