// GET: Tecnica/Crear
        public ActionResult Crear(Guid? id, bool EsRegistroObra = false)
        {
            if (id == null)
                return new HttpStatusCodeResult(HttpStatusCode.BadRequest);

            TipoTecnica ttecnica = db.TipoTecnicas.Find(id);

            if (ttecnica == null)
                return HttpNotFound();

            Tecnica tecnica = new Tecnica()
            {
                TipoTecnicaID = ttecnica.TipoTecnicaID,
                Status = true
            };

            var lista = ttecnica.Tecnicas.Where(a => a.Status && !String.IsNullOrWhiteSpace(a.ClaveSigla) && !String.IsNullOrWhiteSpace(a.ClaveTexto) && !String.IsNullOrWhiteSpace(a.MatriculaSigla)).Select(a => new { a.TecnicaID, Nombre = a.ClaveTexto + " " + a.Descripcion });

            ViewBag.total = lista.Count();

            ViewBag.TecnicaPadreID = new SelectList(lista, "TecnicaID", "Nombre");

            ViewBag.EsRegistroObra = EsRegistroObra;

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

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

                //revisar el contador de registros
                if (db.Tecnicas.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 [catMatriculaTecnica]");
                    SqlCommand sql = new SqlCommand(textSql, con1);
                    //ejecutar el sql
                    SqlDataReader leer = sql.ExecuteReader();
                    //realizar el foreach
                    while (leer.Read())
                    {
                        //definir el tipo de tabla
                        Tecnica tecnica = new Tecnica();

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

                        tecnica.TecnicaPadreID = null;

                        tecnica.MatriculaSiglas = leer["matricula"].ToString();
                        tecnica.MatriculaTexto = leer["descripcion"].ToString();
                        tecnica.Descripcion = leer["cDescripcion"].ToString();

                        if (leer["estatus"].ToString() == "0")
                        {
                            tecnica.Status = false;
                        }
                        else
                        {
                            tecnica.Status = true;
                        }

                        tecnica.AntID = leer["MatriculaTecnica_Clave"].ToString();
                        tecnica.AntPadreID = leer["cat_padre"].ToString();

                        db.Tecnicas.Add(tecnica);
                        db.SaveChanges();
                    }

                    //ASIGNAR LA TECNICA PADRE ID
                    foreach (var item in db.Tecnicas.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 tecnica = db.Tecnicas.Where(a => a.AntID == padre);
                                    if (tecnica.Count() > 0)
                                    {
                                        item.TecnicaPadreID = tecnica.FirstOrDefault().TecnicaID;
                                        db.Entry(item).State = EntityState.Modified;
                                        db.SaveChanges();
                                    }
                                }
                            }
                        }
                    }

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

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

            }
            return PartialView("_ImportarCat_Tecnica");
        }
        public ActionResult Crear([Bind(Include = "PiezaID,TecnicaID")] TecnicaPieza tecnicaPieza)
        {
            tecnicaPieza.Status = true;
            //veridicar que CatalogoID NULL ó 0
            if (tecnicaPieza.TecnicaID == 0)
            {
                //si es NULL ó 0
                //agregar valor de la busqueda a la tabla TECNICA
                //extraer el ID y asignarlo a TECNICAPIEZA

                //validar que BuscarDato no sea "" o NULL
                var text_BuscarDato = Request.Form["BuscarDato"].ToString();
                if (!String.IsNullOrEmpty(text_BuscarDato))
                {
                    var tecnica_existe = db.Tecnicas.Where(a => a.Descripcion == text_BuscarDato).ToList();
                    // si es repetido agregar su ID a TecnicaPieza
                    if (tecnica_existe.Count > 0)
                    {
                        //ya existe
                        tecnicaPieza.TecnicaID = tecnica_existe.FirstOrDefault().TecnicaID;
                        db.Entry(tecnicaPieza).State = EntityState.Modified;
                    }
                    else
                    {
                        //no existe
                        var tecnicaNew = new Tecnica()
                        {
                            Descripcion = text_BuscarDato,
                            Status = true
                        };

                        db.Tecnicas.Add(tecnicaNew);
                        db.SaveChanges();

                        tecnicaPieza.TecnicaID = tecnicaNew.TecnicaID;
                        db.TecnicaPiezas.Add(tecnicaPieza);
                    }

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

            ViewBag.TecnicaID = new SelectList(db.Tecnicas.Where(a => a.Status == true).OrderBy(a => a.Descripcion), "TecnicaID", "Descripcion", tecnicaPieza.TecnicaID);
            return PartialView("_Crear", tecnicaPieza);
        }
        public ActionResult Crear()
        {
            var tecnica = new Tecnica();

            //ViewBag.TecnicaPadreID = new SelectList(db.Tecnicas, "TecnicaID", "ClaveSiglas", tecnica.TecnicaPadreID);

            return PartialView("_Crear", tecnica);
        }