예제 #1
0
        private void SubmitArticulo(byte m_Estado)
        {
            if (oArticulo == null)
            {
                oArticulo = new eArticulo();
            }
            bool   success       = false;
            string xmlOriginal   = "";
            string xmlModificado = "";

            ParseFormulario(oArticulo);

            oArticulo.IdArticuloPadre = IdArticuloPadre;
            oArticulo.IdEsquema       = IdEsquema;
            oArticulo.IdMenuWeb       = oParamentro.IdMenuWeb;
            oArticulo.IdIdioma        = oParamentro.IdIdioma;
            oArticulo.IdMinisite      = oParamentro.IdMinisite;

            if (oEsquema.Publicacion)
            {
                oArticulo.Activo = true;
                oArticulo.Estado = m_Estado;
                if (oArticulo.IdUsuarioAutor == 0)
                {
                    oArticulo.IdUsuarioAutor = oUsuario.IdUsuario;
                }
                if (oArticulo.Estado == Estado.Publicado)
                {
                    oArticulo.IdUsuarioPublicador = oUsuario.IdUsuario;
                }
                if (IdArticulo > 0 && m_Estado == Estado.Publicado)
                {
                    xmlOriginal = Util.XML.SerializeObject(cCMS.Articulo_item(IdArticulo), new System.Xml.Serialization.XmlSerializer(typeof(eArticulo)));
                }
            }
            else
            {
                oArticulo.Activo              = chkActivo.Checked;
                oArticulo.Estado              = Estado.Publicado;
                oArticulo.IdUsuarioAutor      = oUsuario.IdUsuario;
                oArticulo.IdUsuarioPublicador = oUsuario.IdUsuario;
            }

            oProcesoActual = getService(oParamentro.IdModulo, CMD_Administrar); //Insertar Evento al Log
            int IdArticuloExistente = 0;

            if (IdArticulo > 0)
            {
                oArticulo.IdArticulo = IdArticulo;
                success = cCMS.Articulo_edit(oArticulo);
                RegistrarLog(oParamentro.IdModulo, CMD_Administrar, "Se actualizó el articulo: " + oArticulo.IdArticulo.ToString());

                //validar si es que existe tb_producto_categoria
                eProductoCategoria oProductoCategoria = cCMS.Tipo_producto_item(IdArticulo);
                bool actualizado;
                if (oProductoCategoria != null)
                {
                    RegistrarLog(oProcesoActual.IdProceso, "Se actualizó el tipo de producto " + oProductoCategoria.DescripcionProductoCategoria.ToString());
                    actualizado = cCMS.Tipo_producto_edit(oProductoCategoria.IdProductoCategoria, oArticulo.Titulo);
                }
            }
            else
            {
                eArticulo abc = new eArticulo();
                abc = oArticulo;
                int RegistraTipoProducto;
                //regisrtra un tipo de producto
                if (oArticulo.IdMenuWeb == 2 && oArticulo.IdEsquema == 7)
                {
                    oArticulo.IdArticulo = cCMS.Articulo_add(oArticulo);
                    success = (oArticulo.IdArticulo > 0) ? true : false;
                    //registrar el log
                    //RegistrarLog(oParamentro.IdModulo, CMD_Administrar, "Se agregó un nuevo articulo: " + oArticulo.IdArticulo.ToString());
                    RegistraTipoProducto = cCMS.Tipo_producto_add(oArticulo);
                    RegistrarLog(oParamentro.IdModulo, CMD_Administrar, "Se agregó un nuevo tipo de producto: " + oArticulo.Titulo.ToString());
                    IdArticuloExistente = 1;
                }
                ////registra un producto con su tipo
                //int RegistraProducto;
                //eProducto oProducto = new eProducto();
                //if (oArticulo.IdEsquema == 2 && oArticulo.IdMenuWeb == 2)
                //{
                //    ParseProducto(oProducto);
                //    oProducto.IdProductoCategoria = IdArticuloPadre;
                //    oProducto.ModeloProducto = oArticulo.Titulo.ToString();
                //    RegistraProducto = cCMS.Producto_add(oProducto);
                //    RegistrarLog(oParamentro.IdModulo, CMD_Administrar, "Se agregó un nuevo producto: " + oArticulo.Titulo.ToString());
                //}

                if (IdArticuloExistente == 0)
                {
                    //registra el articulo
                    oArticulo.IdArticulo = cCMS.Articulo_add(oArticulo);
                    success = (oArticulo.IdArticulo > 0) ? true : false;
                    //registrar el log
                    RegistrarLog(oParamentro.IdModulo, CMD_Administrar, "Se agregó un nuevo articulo: " + oArticulo.IdArticulo.ToString());
                }
            }

            if (success)
            {
                if (oEsquema.Publicacion && m_Estado == Estado.Publicado)
                {
                    xmlModificado = Util.XML.SerializeObject(oArticulo, new System.Xml.Serialization.XmlSerializer(typeof(eArticulo)));
                    RegistrarLog(oParamentro.IdModulo, CMD_Publicar, "Se publicó el articulo: " + oArticulo.IdArticulo.ToString(), xmlOriginal, xmlModificado);
                }
                //Redirect to previous list
                Response.Redirect("Index.aspx?IdArticuloPadre=" + IdArticuloPadre.ToString() + "&IdMenuWeb=" + oParamentro.IdMenuWeb.ToString() + "&IdModulo=" + oParamentro.IdModulo.ToString() + "&p=" + PageIndex.ToString());
            }
            else
            {
                lblFormError.Text = cCMS.getErrorMessage();
            }
        }