public ActionResult AgregarValor(string valor, bool aceptar)
 {
     if (aceptar)
     {
         if (valor != null || valor != "")
         {
             var lista = db.TecnicaMarcos.Where(a => a.Descripcion == valor).ToList();
             if (lista.Count == 0)
             {
                 var tecnicaMarco = new TecnicaMarco()
                 {
                     Descripcion = valor,
                     Status = true,
                 };
                 db.TecnicaMarcos.Add(tecnicaMarco);
                 db.SaveChanges();
                 AlertaSuccess(string.Format("Técnica Marco: <b>{0}</b> se agregó con exitó.", tecnicaMarco.Descripcion), true);
                 return Json(new { success = true, valor = tecnicaMarco.TecnicaMarcoID, texto = tecnicaMarco.Descripcion });
             }
             else
             {
                 AlertaSuccess(string.Format("Técnica Marco: <b>{0}</b> se agregó con exitó.", lista.FirstOrDefault().Descripcion), true);
                 return Json(new { success = true, valor = lista.FirstOrDefault().TecnicaMarcoID, texto = lista.FirstOrDefault().Descripcion });
             }
         }
     }
     return Json(new { success = false });
 }
 public ActionResult Crear()
 {
     var tecnicaMarco = new TecnicaMarco();
     //ViewBag.TecnicaMarcoPadreID = new SelectList(db.TecnicaMarcos, "TecnicaMarcoID", "Descripcion");
     return PartialView("_Crear", tecnicaMarco);
 }
        //IMPORTAR TECNICA
        public ActionResult ImportarCat_TecnicaMarco()
        {
            ViewBag.NombreTabla = "CATALOGO DE TECNICA MARCO";
            ViewBag.error = "";
            try
            {
                //abrir conexion
                con1.Open();

                // mandar mensaje de conexcion
                ViewBag.mensaje = "Conexión establecida";

                //revisar el contador de registros
                if (db.TecnicaMarcos.ToList().Count > 0)
                {
                    //si hay por lo menos un registro ya se ocupo la tabla
                    ViewBag.error = "error";
                }
                else
                {
                    //definir el sql
                    string textSql = string.Format("SELECT * FROM [catMatriculaTecnicaMarco]");
                    SqlCommand sql = new SqlCommand(textSql, con1);
                    //ejecutar el sql
                    SqlDataReader leer = sql.ExecuteReader();
                    //realizar el foreach
                    while (leer.Read())
                    {
                        //definir el tipo de tabla
                        TecnicaMarco tecnicaMarco = new TecnicaMarco();

                        //llenar el registro con los valores viejos
                        tecnicaMarco.ClaveSigla = leer["clave"].ToString();
                        tecnicaMarco.ClaveTexto = leer["descripcion_clave"].ToString();

                        tecnicaMarco.TecnicaMarcoPadreID = null;

                        tecnicaMarco.MatriculaSigla = leer["matricula"].ToString();
                        tecnicaMarco.Descripcion = leer["descripcion"].ToString();

                        tecnicaMarco.Status = true;

                        tecnicaMarco.AntID = leer["MTecnicaMarco_Clave"].ToString();
                        tecnicaMarco.AntPadreID = leer["cat_padre"].ToString();

                        db.TecnicaMarcos.Add(tecnicaMarco);
                        db.SaveChanges();
                    }

                    //ASIGNAR LA TECNICA PADRE ID
                    foreach (var item in db.TecnicaMarcos.ToList())
                    {
                        string padre = item.AntPadreID;
                        if (!string.IsNullOrEmpty(padre))
                        {
                            if (!string.IsNullOrWhiteSpace(padre))
                            {
                                if (padre != "0")
                                {
                                    //buscar el ID de la tecnica que es padre
                                    var tecnicaMarco = db.TecnicaMarcos.Where(a => a.AntID == padre);
                                    if (tecnicaMarco.Count() > 0)
                                    {
                                        item.TecnicaMarcoPadreID = tecnicaMarco.FirstOrDefault().TecnicaMarcoID;
                                        db.Entry(item).State = EntityState.Modified;
                                        db.SaveChanges();
                                    }
                                }
                            }
                        }
                    }

                    var lista = db.TecnicaMarcos.ToList();
                    ViewBag.TotalRegistros = lista.Count;

                    return PartialView("_ImportarCat_TecnicaMarcos", lista);
                }
            }
            catch (Exception)
            {
                ViewBag.mensaje = "Conexión fallida";
                ViewBag.error = "error";

            }
            return PartialView("_ImportarCat_TecnicaMarcos");
        }
        public ActionResult Crear([Bind(Include = "PiezaID,TecnicaMarcoID,Status")] TecnicaMarcoPieza tecnicaMarcoPieza)
        {
            tecnicaMarcoPieza.Status = true;

            //verificar que ID no sea NULL o 0
            if (tecnicaMarcoPieza.TecnicaMarcoID == 0)
            {
                //si es NULL ó 0
                //agregar valor de la busqueda a la tabla TECNICAMARCO
                //extraer el ID y asignarlo a TECNICAMARCOPIEZA

                //validar que BuscarDato no sea "" o NULL
                var text_BuscarDato = Request.Form["BuscarDato"].ToString();
                if (!String.IsNullOrEmpty(text_BuscarDato))
                {
                    var tecnicaMarco_existe = db.TecnicaMarcos.Where(a => a.Descripcion == text_BuscarDato).ToList();
                    // si es repetido agregar su ID a TecnicaMarcoPieza
                    if (tecnicaMarco_existe.Count > 0)
                    {
                        //ya existe
                        tecnicaMarcoPieza.TecnicaMarcoID = tecnicaMarco_existe.FirstOrDefault().TecnicaMarcoID;
                        db.Entry(tecnicaMarcoPieza).State = EntityState.Modified;
                    }
                    else
                    {
                        //no existe
                        var tecnicaMarcoNew = new TecnicaMarco()
                        {
                            Descripcion = text_BuscarDato,
                            Status = true
                        };

                        db.TecnicaMarcos.Add(tecnicaMarcoNew);
                        db.SaveChanges();

                        tecnicaMarcoPieza.TecnicaMarcoID = tecnicaMarcoNew.TecnicaMarcoID;
                        db.TecnicaMarcoPiezas.Add(tecnicaMarcoPieza);
                    }
                    db.SaveChanges();
                    //AlertaSuccess(string.Format("Técnica: <b>{0}</b> se agrego con exitó.", tecnica.Descripcion), true);
                    string url = Url.Action("Lista", "TecnicaMarcoPieza", new { id = tecnicaMarcoPieza.PiezaID });
                    return Json(new { success = true, url = url, modelo = "TecnicaMarcoPieza", lista = "lista", idPieza = tecnicaMarcoPieza.PiezaID });
                }
            }
            else
            {

                //no es NULL ó 0
                //verificar que no exista ya el registro para la pieza
                var tecMarcoPieza_existe = db.TecnicaMarcoPiezas.Where(a => a.PiezaID == tecnicaMarcoPieza.PiezaID).ToList();
                // si es repetido agregar su ID a PiezaPieza
                if (tecMarcoPieza_existe.Count <= 0)
                {
                    //crear
                    db.TecnicaMarcoPiezas.Add(tecnicaMarcoPieza);
                    db.SaveChanges();
                }
                else
                {
                    //editar
                }
                //AlertaSuccess(string.Format("Técnica: <b>{0}</b> se agrego con exitó.", tecnica.Descripcion), true);
                string url = Url.Action("Lista", "TecnicaMarcoPieza", new { id = tecnicaMarcoPieza.PiezaID });
                return Json(new { success = true, url = url, modelo = "TecnicaPieza", lista = "lista", idPieza = tecnicaMarcoPieza.PiezaID });

            }

            ViewBag.TecnicaMarcoID = new SelectList(db.TecnicaMarcos.Where(a => a.Status == true).OrderBy(a => a.Descripcion), "TecnicaMarcoID", "Descripcion", tecnicaMarcoPieza.TecnicaMarcoID);
            return PartialView("_Crear", tecnicaMarcoPieza);
        }