示例#1
0
        public ActionResult DeleteConfirmed(Guid id)
        {
            AutorPieza autorPieza = db.AutorPiezas.Find(id);

            db.AutorPiezas.Remove(autorPieza);
            db.SaveChanges();
            return(RedirectToAction("Index"));
        }
        public ActionResult Editar(AutorPieza autorPieza, Guid AtributoID, Guid LlaveID)
        {
            //validar errores y devolverlos a la vista
            string renderID = "autor_" + autorPieza.PiezaID + "_" + LlaveID;

            string texto   = "";
            bool   guardar = false;


            var autorPiezaAnterior = db.AutorPiezas.Find(autorPieza.PiezaID, LlaveID);

            if (autorPiezaAnterior == null)
            {
                guardar = false;
                //alerta no existe el atributo
            }
            else
            {
                string valor = Request.Form["id_" + AtributoID].ToString();

                autorPieza.AutorID = new Guid(valor);

                guardar = true;

                //no existe el ListaValorID entonces actualizar el AtributoPiezaID con el ListaValorID
                if (db.AutorPiezas.Where(a => a.PiezaID == autorPieza.PiezaID && a.AutorID == autorPieza.AutorID).Count() == 0)
                {
                    var autor = db.Autores.Find(autorPieza.AutorID);

                    var textoNombreAutor = autor.Nombre + " " + autor.Apellido;
                    var textoPrefijo     = autorPieza.Prefijo == "" || autorPieza == null ? "" : autorPieza.Prefijo + ": ";

                    texto = string.Format("<span><b>{0}</b></span>{1}", textoPrefijo, textoNombreAutor);

                    AlertaSuccess(string.Format("Autor: <b>{0}</b> se actualizo a <b>{1}</b>.", autorPiezaAnterior.Autor.Nombre + "" + autorPiezaAnterior.Autor.Apellido, autor.Nombre + " " + autor.Apellido), true);
                    autorPieza.AutorID = autor.AutorID;
                }
                else
                {
                    //alerta ya existe
                    AlertaSuccess(string.Format("Autor: <b>{0}</b> se actualizo.", autorPiezaAnterior.Autor.Nombre + "" + autorPiezaAnterior.Autor.Apellido), true);
                }
            }

            if (guardar)
            {
                db.AutorPiezas.Remove(autorPiezaAnterior);
                db.SaveChanges();
                db.AutorPiezas.Add(autorPieza);
                db.SaveChanges();
            }


            return(Json(new { success = true, renderID = renderID, texto = texto, guardar = guardar, tipo = "Autor" }));
        }
示例#3
0
 public ActionResult Edit([Bind(Include = "PiezaID,AutorID,Status")] AutorPieza autorPieza)
 {
     if (ModelState.IsValid)
     {
         db.Entry(autorPieza).State = EntityState.Modified;
         db.SaveChanges();
         return(RedirectToAction("Index"));
     }
     ViewBag.AutorID = new SelectList(db.Autores, "AutorID", "Nombre", autorPieza.AutorID);
     ViewBag.PiezaID = new SelectList(db.Piezas, "PiezaID", "SubFolio", autorPieza.PiezaID);
     return(View(autorPieza));
 }
示例#4
0
        // GET: AutorPieza/Delete/5
        public ActionResult Delete(Guid?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            AutorPieza autorPieza = db.AutorPiezas.Find(id);

            if (autorPieza == null)
            {
                return(HttpNotFound());
            }
            return(View(autorPieza));
        }
示例#5
0
        public ActionResult Create([Bind(Include = "PiezaID,AutorID,Status")] AutorPieza autorPieza)
        {
            if (ModelState.IsValid)
            {
                autorPieza.PiezaID = Guid.NewGuid();
                db.AutorPiezas.Add(autorPieza);
                db.SaveChanges();
                return(RedirectToAction("Index"));
            }

            ViewBag.AutorID = new SelectList(db.Autores, "AutorID", "Nombre", autorPieza.AutorID);
            ViewBag.PiezaID = new SelectList(db.Piezas, "PiezaID", "SubFolio", autorPieza.PiezaID);
            return(View(autorPieza));
        }
        public ActionResult Eliminar(Guid?id, Guid?AutorID)
        {
            if (id == null && AutorID == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            AutorPieza autorPieza = db.AutorPiezas.Find(id, AutorID);

            if (autorPieza == null)
            {
                return(HttpNotFound());
            }

            return(PartialView("_Eliminar", autorPieza));
        }
示例#7
0
        // GET: AutorPieza/Edit/5
        public ActionResult Edit(Guid?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            AutorPieza autorPieza = db.AutorPiezas.Find(id);

            if (autorPieza == null)
            {
                return(HttpNotFound());
            }
            ViewBag.AutorID = new SelectList(db.Autores, "AutorID", "Nombre", autorPieza.AutorID);
            ViewBag.PiezaID = new SelectList(db.Piezas, "PiezaID", "SubFolio", autorPieza.PiezaID);
            return(View(autorPieza));
        }
        public ActionResult Crear([Bind(Include = "PiezaID,AutorID,Status")] AutorPieza autorPieza, Guid AtributoID)
        {
            string renderID = "autor_" + autorPieza.PiezaID + "_";

            string texto   = "";
            bool   guardar = false;

            string valor = Request.Form["id_" + AtributoID].ToString();

            autorPieza.AutorID = new Guid(valor);

            //no existe el ListaValorID entonces actualizar el AtributoPiezaID con el ListaValorID
            if (db.AutorPiezas.Where(a => a.PiezaID == autorPieza.PiezaID && a.AutorID == autorPieza.AutorID).Count() == 0)
            {
                guardar = true;

                var autor = db.Autores.Find(autorPieza.AutorID);

                texto = autor.Nombre + " " + autor.Apellido;

                AlertaSuccess(string.Format("Autor: <b>{0}</b> se agregó.", autor.Nombre + "" + autor.Apellido), true);
                autorPieza.AutorID = autor.AutorID;
            }
            else
            {
                guardar = false;
                //alerta ya existe
            }


            if (guardar)
            {
                db.AutorPiezas.Add(autorPieza);
                db.SaveChanges();
                renderID += autorPieza.AutorID;
            }


            return(Json(new { success = true, renderID = renderID, texto = texto, guardar = guardar }));
        }
        public ActionResult EliminarConfirmado(Guid id, Guid AutorID)
        {
            string btnValue = Request.Form["accionx"];

            AutorPieza autorPieza = db.AutorPiezas.Find(id, AutorID);

            var NombreTexto = autorPieza.Autor.Nombre + " " + autorPieza.Autor.Apellido;

            switch (btnValue)
            {
            case "eliminar":
                db.AutorPiezas.Remove(autorPieza);
                db.SaveChanges();
                AlertaDanger(string.Format("Se elimino <b>{0}</b>", NombreTexto), true);
                break;

            default:
                AlertaDanger(string.Format("Ocurrio un error."), true);
                break;
            }

            return(Json(new { success = true, guardar = false }));
        }
示例#10
0
        public ActionResult Registrar(Guid?TipoObraID, int?LetraFolioID, Guid?TipoPiezaID)
        {
            var Formulario = Request.Form;

            int InicioFolio = 1;

            if (TipoObraID == null || LetraFolioID == null || TipoPiezaID == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }

            var letra     = db.LetraFolios.Find(LetraFolioID);
            var tipoObra  = db.TipoObras.Find(TipoObraID);
            var tipoPieza = tipoObra.TipoPiezas.FirstOrDefault(a => a.TipoPiezaID == TipoPiezaID);

            if (tipoObra == null || letra == null || tipoPieza == null)
            {
                return(HttpNotFound());
            }


            //buscar el ultimo numero del folio subido


            InicioFolio = db.Obras.Where(a => a.LetraFolioID == letra.LetraFolioID).Select(a => a.NumeroFolio).OrderByDescending(a => a).FirstOrDefault();

            var obra = new Obra()
            {
                FechaRegistro = DateTime.Now,
                TipoObraID    = tipoObra.TipoObraID,
                LetraFolioID  = letra.LetraFolioID,
                Status        = false,
                NumeroFolio   = InicioFolio
            };

            obra.ObraID = Guid.NewGuid();



            //Crear pieza
            Pieza pieza = new Pieza()
            {
                PiezaID       = Guid.NewGuid(),
                FechaRegistro = obra.FechaRegistro,
                ObraID        = obra.ObraID,
                Status        = false,
                PiezaPadreID  = null, // null = Principal o Maestra
                TipoPiezaID   = tipoPieza.TipoPiezaID,
                SubFolio      = tipoPieza.Prefijo
            };

            //lista de atributos de registro
            var listaAttRegistro = tipoPieza.Atributos.Where(a => a.Status && a.MostrarAtributos.Any(b => b.TipoMostrar.Nombre == "Registro" && b.Status) && a.TipoAtributo.Status).OrderBy(a => a.Orden).ToList();


            List <AtributoPieza> listaAdd_AttGen   = new List <AtributoPieza>();
            List <AutorPieza>    listaAdd_AttAutor = new List <AutorPieza>();
            List <ImagenPieza>   listaAdd_AttImg   = new List <ImagenPieza>();
            List <TecnicaPieza>  listaAdd_AttTec   = new List <TecnicaPieza>();
            List <MedidaPieza>   listaAdd_AttMed   = new List <MedidaPieza>();
            Ubicacion            ubicacionAdd      = null;

            List <string> listaKey;

            /*
             * Extraer los registros del formulario dependiendo el tipo de Atributo
             *
             * IMAGEN
             *      SIMPLE
             *          id_####################_File        (File)
             *          id_####################_Titulo      (Input)
             *          id_####################_Descripcion (Input)
             *
             *
             *
             *
             */



            foreach (var att in listaAttRegistro)
            {
                var tipoAtt = att.TipoAtributo;

                if (tipoAtt.EsGenerico)
                {
                    /*
                     * GENERICO
                     *      LISTA
                     *          SIMPLE
                     *              id_#################### (Select)
                     *          MULTI
                     *              id_####################_#################### (Input)
                     */
                    if (tipoAtt.EsLista)
                    {
                        if (tipoAtt.EsMultipleValor)
                        {
                            listaKey = Formulario.AllKeys.Where(k => k.StartsWith("id_" + att.AtributoID + "_")).ToList();
                        }
                        else
                        {
                            listaKey = Formulario.AllKeys.Where(k => k.StartsWith("id_" + att.AtributoID)).ToList();
                        }

                        //buscar en form todas las llaves que correspondan al id_xxxxxxxxxxxxxx_xxxxxxxxxxxxxx
                        foreach (string key in listaKey)
                        {
                            var    addOk = true;
                            string valor = Formulario[key];


                            addOk = String.IsNullOrWhiteSpace(valor) ? false : true;

                            //validar el valorID, buscar el valor
                            Guid valorID = addOk ? new Guid(valor) : new Guid(new Byte[16]);


                            addOk = !addOk ? addOk : listaAdd_AttGen.Where(a => a.AtributoID == att.AtributoID && a.ListaValorID == valorID).FirstOrDefault() == null ? true : false;

                            addOk = !addOk ? addOk : db.ListaValores.Where(a => a.TipoAtributoID == tipoAtt.TipoAtributoID && a.Status && a.ListaValorID == valorID).FirstOrDefault() == null ? false : true;

                            if (addOk)
                            {
                                listaAdd_AttGen.Add(new AtributoPieza()
                                {
                                    AtributoPiezaID = Guid.NewGuid(),
                                    AtributoID      = att.AtributoID,
                                    PiezaID         = pieza.PiezaID,
                                    Status          = true,
                                    ListaValorID    = valorID
                                });
                            }
                        }
                    }
                    else
                    {
                        /*
                         * GENERICO
                         *    CAMPO
                         *        SIMPLE
                         *            id_#################### (Input)
                         *        MULTI
                         *            id_####################_##### (Input)
                         */

                        if (tipoAtt.EsMultipleValor)
                        {
                            listaKey = Formulario.AllKeys.Where(k => k.StartsWith("id_" + att.AtributoID + "_")).ToList();
                        }
                        else
                        {
                            listaKey = Formulario.AllKeys.Where(k => k.StartsWith("id_" + att.AtributoID)).ToList();
                        }


                        //buscar en form todas las llaves que correspondan al id_xxxxxxxxxxxxxx
                        foreach (string key in listaKey)
                        {
                            var    addOk = true;
                            string valor = Formulario[key];

                            //validar el campo, quitar espacios en blanco, bla bla bla
                            valor = valor.Trim();                      // quitar espacios en inicio y fin
                            valor = Regex.Replace(valor, @"\s+", " "); //quitar espacios de sobra

                            addOk = String.IsNullOrWhiteSpace(valor) ? false : true;
                            addOk = !addOk ? addOk : listaAdd_AttGen.Where(a => a.AtributoID == att.AtributoID && a.Valor == valor).FirstOrDefault() == null ? true : false;

                            if (addOk)
                            {
                                listaAdd_AttGen.Add(new AtributoPieza()
                                {
                                    AtributoPiezaID = Guid.NewGuid(),
                                    AtributoID      = att.AtributoID,
                                    PiezaID         = pieza.PiezaID,
                                    Status          = true,
                                    Valor           = valor
                                });
                            }
                        }
                    }
                }
                else
                {
                    switch (tipoAtt.TablaSQL)
                    {
                    case "Autor":
                        /*
                         * AUTOR
                         *      MULTIPLE
                         *          id_####################_####################            (Input)
                         *          id_####################_####################_prefijo    (Input)
                         */
                        //filtrar id_#######
                        listaKey = Formulario.AllKeys.Where(k => k.StartsWith("id_" + att.AtributoID + "_")).ToList();

                        ///filtrar: ignorar los _prefijo
                        listaKey = listaKey.Where(k => !k.EndsWith("_prefijo")).ToList();

                        //buscar en form todas las llaves que correspondan al id_xxxxxxxxxxxxxx_xxxxxxxxxxxxxx
                        foreach (string key in listaKey)
                        {
                            var    addOk        = true;
                            string text_autorID = Formulario[key];
                            string text_prefijo = Formulario[key + "_prefijo"];

                            addOk = String.IsNullOrWhiteSpace(text_autorID) ? false : true;

                            //validar el valorID, buscar el valor
                            Guid autorID = addOk ? new Guid(text_autorID) : new Guid(new Byte[16]);

                            addOk = !addOk ? addOk : listaAdd_AttAutor.Where(a => a.AutorID == autorID).FirstOrDefault() == null ? true : false;

                            addOk = !addOk ? addOk : db.Autores.Where(a => a.Status && a.AutorID == autorID).FirstOrDefault() == null ? false : true;

                            if (addOk)
                            {
                                var autorPieza = new AutorPieza()
                                {
                                    AutorID     = autorID,
                                    PiezaID     = pieza.PiezaID,
                                    esPrincipal = false,
                                    Prefijo     = text_prefijo,
                                    Status      = true
                                };

                                //validar si es principal
                                if (autorPieza.Prefijo.ToLower() == "principal")
                                {
                                    autorPieza.esPrincipal = listaAdd_AttAutor.Where(a => a.esPrincipal).Count() == 0 ? true : false;
                                }

                                listaAdd_AttAutor.Add(autorPieza);
                            }
                        }
                        break;


                    case "Ubicacion":
                        /*
                         * UBICACION
                         *      SIMPLE
                         *          id_####################     (select)
                         */

                        listaKey = Formulario.AllKeys.Where(k => k.StartsWith("id_" + att.AtributoID)).ToList();

                        //buscar en form todas las llaves que correspondan al id_xxxxxxxxxxxxxx_xxxxxxxxxxxxxx
                        foreach (string key in listaKey)
                        {
                            var    addOk             = true;
                            string texto_ubicacionID = Formulario[key];

                            addOk = String.IsNullOrWhiteSpace(texto_ubicacionID) ? false : true;

                            //validar el valorID, buscar el valor
                            Guid ubicacionID = addOk ? new Guid(texto_ubicacionID) : new Guid(new Byte[16]);

                            addOk = !addOk ? addOk : ubicacionAdd == null ? true : false;

                            addOk = !addOk ? addOk : db.Ubicaciones.Where(a => a.Status && a.UbicacionID == ubicacionID).FirstOrDefault() == null ? false : true;

                            if (addOk)
                            {
                                pieza.UbicacionID = ubicacionID;
                            }
                        }
                        break;

                    case "TipoTecnica":
                        /*
                         * TECNICA
                         *      SIMPLE
                         *          id_####################     (Select)
                         */

                        listaKey = Formulario.AllKeys.Where(k => k.StartsWith("id_" + att.AtributoID)).ToList();

                        //buscar en form todas las llaves que correspondan al id_xxxxxxxxxxxxxx_xxxxxxxxxxxxxx
                        foreach (string key in listaKey)
                        {
                            var    addOk           = true;
                            string texto_TecnicaID = Formulario[key];

                            addOk = String.IsNullOrWhiteSpace(texto_TecnicaID) ? false : true;

                            //validar el valorID, buscar el valor
                            Guid tecnicaID = addOk ? new Guid(texto_TecnicaID) : new Guid(new Byte[16]);

                            addOk = !addOk ? addOk : listaAdd_AttTec.Where(a => a.TecnicaID == tecnicaID).FirstOrDefault() == null ? true : false;

                            addOk = !addOk ? addOk : db.Tecnicas.Where(a => a.TecnicaID == tecnicaID && a.Status).FirstOrDefault() == null ? false : true;

                            if (addOk)
                            {
                                var tecnica = db.Tecnicas.Where(a => a.TecnicaID == tecnicaID && a.Status).FirstOrDefault();

                                listaAdd_AttTec.Add(new TecnicaPieza()
                                {
                                    PiezaID       = pieza.PiezaID,
                                    Status        = true,
                                    TecnicaID     = tecnica.TecnicaID,
                                    TipoTecnicaID = tecnica.TipoTecnicaID
                                });
                            }
                        }


                        break;

                    case "TipoMedida":
                        /*
                         * TIPO MEDIDA
                         *      SIMPLE
                         *          id_####################                 (Select)(TipoMedida)
                         *          id_####################_UML             (Select)
                         *          id_####################_Altura          (input)
                         *          id_####################_Anchura         (input)
                         *          id_####################_Profundidad     (input)
                         *          id_####################_Diametro        (input)
                         *          id_####################_Diametro2       (input)
                         */

                        listaKey = Formulario.AllKeys.Where(k => k == "TipoMedidaID").ToList();

                        //buscar en form todas las llaves que correspondan al id_xxxxxxxxxxxxxx_xxxxxxxxxxxxxx
                        foreach (string key in listaKey)
                        {
                            var    addOk = true;
                            string texto_TipoMedidaID = Formulario[key];

                            addOk = String.IsNullOrWhiteSpace(texto_TipoMedidaID) ? false : true;

                            //validar el valorID, buscar el valor
                            Guid tipoMedidaID = addOk ? new Guid(texto_TipoMedidaID) : new Guid(new Byte[16]);

                            addOk = !addOk ? addOk : listaAdd_AttMed.Where(a => a.TipoMedidaID == tipoMedidaID).FirstOrDefault() == null ? true : false;

                            addOk = !addOk ? addOk : db.TipoMedidas.Where(a => a.TipoMedidaID == tipoMedidaID && a.Status).FirstOrDefault() == null ? false : true;

                            if (addOk)
                            {
                                var medidaPieza = new MedidaPieza()
                                {
                                    PiezaID      = pieza.PiezaID,
                                    Status       = true,
                                    TipoMedidaID = tipoMedidaID
                                };

                                string text_UML         = String.IsNullOrWhiteSpace(Formulario["id_" + att.AtributoID + "_UML"]) ? "cm" : Formulario["id_" + att.AtributoID + "_UML"];
                                string text_Altura      = String.IsNullOrWhiteSpace(Formulario["id_" + att.AtributoID + "_Altura"]) ? "0" : Formulario["id_" + att.AtributoID + "_Altura"];
                                string text_Anchura     = String.IsNullOrWhiteSpace(Formulario["id_" + att.AtributoID + "_Anchura"]) ? "0" : Formulario["id_" + att.AtributoID + "_Anchura"];
                                string text_Profundidad = String.IsNullOrWhiteSpace(Formulario["id_" + att.AtributoID + "_Profundidad"]) ? "0" : Formulario["id_" + att.AtributoID + "_Profundidad"];
                                string text_Diametro    = String.IsNullOrWhiteSpace(Formulario["id_" + att.AtributoID + "_Diametro"]) ? "0" : Formulario["id_" + att.AtributoID + "_Diametro"];
                                string text_Diametro2   = String.IsNullOrWhiteSpace(Formulario["id_" + att.AtributoID + "_Diametro2"]) ? "0" : Formulario["id_" + att.AtributoID + "_Diametro2"];

                                if (text_Altura == "0")
                                {
                                    medidaPieza.Altura = Convert.ToDouble("text_Altura");
                                }
                                if (text_Anchura == "0")
                                {
                                    medidaPieza.Anchura = Convert.ToDouble("text_Anchura");
                                }
                                if (text_Altura == "0")
                                {
                                    medidaPieza.Profundidad = Convert.ToDouble("text_Profundidad");
                                }
                                if (text_Altura == "0")
                                {
                                    medidaPieza.Diametro = Convert.ToDouble("text_Diametro");
                                }
                                if (text_Altura == "0")
                                {
                                    medidaPieza.Diametro2 = Convert.ToDouble("text_Diametro2");
                                }

                                switch (text_UML)
                                {
                                case "pulgada": medidaPieza.UMLongitud = UMLongitud.pulgada; break;

                                case "dc": medidaPieza.UMLongitud = UMLongitud.dc; break;

                                case "m": medidaPieza.UMLongitud = UMLongitud.m; break;

                                case "dam": medidaPieza.UMLongitud = UMLongitud.dam; break;

                                case "mm": medidaPieza.UMLongitud = UMLongitud.mm; break;

                                case "hm": medidaPieza.UMLongitud = UMLongitud.hm; break;

                                case "km": medidaPieza.UMLongitud = UMLongitud.km; break;

                                default: medidaPieza.UMLongitud = UMLongitud.cm; break;
                                }

                                listaAdd_AttMed.Add(medidaPieza);
                            }
                        }



                        break;

                    case "ImagenPieza":

                        listaKey = Request.Files.AllKeys.Where(k => k == "id_" + att.AtributoID + "_File").ToList();

                        //buscar en form todas las llaves que correspondan al id_xxxxxxxxxxxxxx_xxxxxxxxxxxxxx
                        foreach (string key in listaKey)
                        {
                            HttpPostedFileBase FileImageForm = Request.Files[key];

                            string texto_Titulo      = Formulario["id_" + att.AtributoID + "_Titulo"];
                            string texto_Descripcion = Formulario["id_" + att.AtributoID + "_Descripcion"];
                            string extension         = Path.GetExtension(FileImageForm.FileName);

                            var imgGuid = Guid.NewGuid();

                            ImagenPieza imagenPieza = new ImagenPieza()
                            {
                                PiezaID       = pieza.PiezaID,
                                ImagenPiezaID = imgGuid,
                                Titulo        = texto_Titulo,
                                Descripcion   = texto_Descripcion,
                                EsPrincipal   = true,
                                Orden         = 1,
                                Status        = true,
                                RutaParcial   = "/Content/img/pieza/",
                                NombreImagen  = imgGuid.ToString() + extension,
                            };

                            var rutaGuardar_Original = Server.MapPath(imagenPieza.Ruta);

                            FileImageForm.SaveAs(rutaGuardar_Original);


                            FileImageForm.InputStream.Dispose();
                            FileImageForm.InputStream.Close();
                            GC.Collect();

                            //Generar la mini
                            Thumbnail mini = new Thumbnail()
                            {
                                OrigenSrc       = rutaGuardar_Original,
                                DestinoSrc      = Server.MapPath(imagenPieza.RutaMini),
                                LimiteAnchoAlto = 250
                            };

                            mini.GuardarThumbnail();

                            //add a la lista de imagenes

                            listaAdd_AttImg.Add(imagenPieza);
                        }

                        break;

                    default:
                        AlertaDanger(String.Format("No se pudo guardar el campo, {0}.", att.NombreAlterno));
                        break;
                    }
                }
            }


            if (ModelState.IsValid)
            {
                //validar el numero de folio
                obra.NumeroFolio = DarFolioValido(obra.LetraFolioID, obra.NumeroFolio);

                //Guardar la obra
                db.Obras.Add(obra);
                db.SaveChanges();

                //Guardar la pieza
                db.Piezas.Add(pieza);
                db.SaveChanges();

                //Guardar sus atributos
                db.AtributoPiezas.AddRange(listaAdd_AttGen);
                db.AutorPiezas.AddRange(listaAdd_AttAutor);
                db.ImagenPiezas.AddRange(listaAdd_AttImg);
                db.TecnicaPiezas.AddRange(listaAdd_AttTec);
                db.MedidaPiezas.AddRange(listaAdd_AttMed);

                db.SaveChanges();

                return(RedirectToAction("Detalles", "Obra", new { id = obra.ObraID }));
            }

            return(Json(new { success = false }));
        }
示例#11
0
        public ActionResult Crear(Guid?id, Guid?AtributoID)
        {
            // AtributoPiezaID = id
            //id PiezaID
            //atributoID
            //AtributoPiezaID || TablaID

            PartialViewResult _vista = null;


            if (id == null || AtributoID == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }

            Atributo att = db.Atributos.Find(AtributoID);

            if (att == null)
            {
                return(HttpNotFound());
            }

            Pieza pieza = db.Piezas.Find(id);

            if (pieza == null)
            {
                return(HttpNotFound());
            }

            if (att.TipoAtributo.EsGenerico)
            {
                AtributoPieza attPieza = new AtributoPieza()
                {
                    AtributoID = att.AtributoID,
                    PiezaID    = pieza.PiezaID,
                    Status     = true
                };

                if (att.TipoAtributo.EsLista)
                {
                    List <ListaValor> lista = new List <ListaValor>();
                    lista.Add(attPieza.ListaValor); //agregar valor por si no viene en los primeros 500
                    lista.AddRange(att.TipoAtributo.ListaValores.Where(a => a.Status && !String.IsNullOrWhiteSpace(a.Valor)).OrderBy(a => a.Valor).Take(100).ToList());

                    ViewBag.ListaValorID = new SelectList(lista, "ListaValorID", "Valor", attPieza.ListaValorID);

                    _vista = PartialView("_CrearGenericoLista", attPieza);
                }
                else
                {
                    _vista = PartialView("_CrearGenericoCampo", attPieza);
                }
            }
            else
            {
                switch (att.TipoAtributo.TablaSQL)
                {
                case "Autor":
                    List <Autor> listaAutores = new List <Autor>();

                    var piezaAutor = new AutorPieza()
                    {
                        Status  = true,
                        PiezaID = pieza.PiezaID
                    };

                    listaAutores.AddRange(db.Autores.Where(a => a.Status).OrderBy(a => a.Nombre).Take(100).ToList());

                    ViewBag.AutorID = new SelectList(listaAutores.Select(a => new { Nombre = a.Nombre + " " + a.Apellido, a.AutorID }), "AutorID", "Nombre");

                    _vista = PartialView("~/Views/AutorPieza/_Crear.cshtml", piezaAutor);

                    break;

                case "Ubicacion":

                    var listaUbicaciones = db.Ubicaciones.Where(a => a.Status).OrderBy(a => a.Nombre).Select(a => new { Nombre = a.Nombre, a.UbicacionID }).Take(100).ToList();
                    ViewBag.UbicacionID = new SelectList(listaUbicaciones, "UbicacionID", "Nombre");

                    _vista = PartialView("~/Views/Pieza/_CrearUbicacion.cshtml", pieza);
                    break;

                case "TipoTecnica":
                    var piezaTecnica = new TecnicaPieza()
                    {
                        Status  = true,
                        PiezaID = pieza.PiezaID
                    };
                    var tipoTecnicasExistentes = pieza.TecnicaPiezas.Select(a => a.TipoTecnicaID);

                    var listaTipoTecnicas = db.TipoTecnicas.Where(a => a.Status && !tipoTecnicasExistentes.Contains(a.TipoTecnicaID)).OrderBy(a => a.Nombre).Select(a => new { Nombre = a.Nombre, a.TipoTecnicaID }).ToList();

                    ViewBag.TipoTecnicaID = new SelectList(listaTipoTecnicas, "TipoTecnicaID", "Nombre");

                    _vista = PartialView("~/Views/TecnicaPieza/_Crear.cshtml", piezaTecnica);
                    break;

                case "TipoMedida":
                    var medidaPieza = new MedidaPieza()
                    {
                        Status  = true,
                        PiezaID = pieza.PiezaID
                    };

                    var tipoMedidasExistentes = pieza.MedidaPiezas.Select(a => a.TipoMedidaID);

                    var listaTipoMedidas = db.TipoMedidas.Where(a => a.Status && !tipoMedidasExistentes.Contains(a.TipoMedidaID)).OrderBy(a => a.Nombre).Select(a => new { a.Nombre, a.TipoMedidaID }).ToList();

                    ViewBag.TipoMedidaID = new SelectList(listaTipoMedidas, "TipoMedidaID", "Nombre");

                    _vista = PartialView("~/Views/MedidaPieza/_Crear.cshtml", medidaPieza);
                    break;

                default:
                    //_vista = PartialView("_ErrorCampo");
                    break;
                }
            }


            ViewBag.EsMultipleValor = att.TipoAtributo.EsMultipleValor;
            ViewBag.ParametrosHTML  = att.TipoAtributo.HTMLParametros;
            ViewBag.TipoAtributoID  = att.TipoAtributo.TipoAtributoID;
            ViewBag.NombreAtt       = att.TipoAtributo.Nombre;
            ViewBag.id         = id;
            ViewBag.AtributoID = AtributoID;

            switch (att.TipoAtributo.DatoCS)
            {
            case "double":
            case "Double":
            case "int":
            case "float":
            case "int32":
            case "int64":
            case "decimal": ViewBag.TipoInput = "number"; break;

            case "date": ViewBag.TipoInput = "date"; break;

            case "time": ViewBag.TipoInput = "time"; break;

            case "datetime": ViewBag.TipoInput = "datetime"; break;

            case "datetime-local": ViewBag.TipoInput = "datetime-local"; break;

            case "month": ViewBag.TipoInput = "month"; break;

            case "week": ViewBag.TipoInput = "week"; break;

            case "color": ViewBag.TipoInput = "color"; break;

            case "email": ViewBag.TipoInput = "email"; break;

            case "url": ViewBag.TipoInput = "url"; break;

            case "tel": ViewBag.TipoInput = "tel"; break;

            case "range": ViewBag.TipoInput = "range"; break;

            default: ViewBag.TipoInput = "text"; break;
            }


            return(_vista);
        }