/// <summary>
        /// Obtener un registro de PreciarioGeneralCategoria por su ID
        /// </summary>
        /// <param name="strID"></param>
        /// <returns></returns>
        public static PreciarioGeneralCategoria ObtenerPreciarioGeneralCategoriaPorID(string strID)
        {
            try
            {
                //1. Configurar la conexión y el tipo de comando
                SqlConnection sqlcConectar = new SqlConnection(ConfigurationManager.ConnectionStrings["OSEF"].ConnectionString);
                SqlCommand    sqlcComando  = new SqlCommand();
                sqlcComando.Connection  = sqlcConectar;
                sqlcComando.CommandType = CommandType.StoredProcedure;
                sqlcComando.CommandText = "web_spS_ObtenerPreciarioGeneralCategoriaPorID";

                //2. Declarar los parametros
                SqlParameter sqlpID = new SqlParameter();
                sqlpID.ParameterName = "@ID";
                sqlpID.SqlDbType     = SqlDbType.Char;
                sqlpID.Size          = 10;
                sqlpID.Value         = strID;

                //3. Agregar los parametros al comando
                sqlcComando.Parameters.Add(sqlpID);

                //4. Abrir la conexión
                sqlcComando.Connection.Open();

                //5. Ejecutar la instrucción SELECT que regresa filas
                SqlDataReader reader = sqlcComando.ExecuteReader();

                //6. Asignar la lista de Clientes
                PreciarioGeneralCategoria result = LibraryGenerics <PreciarioGeneralCategoria> .ConvertDataSetToList(reader).FirstOrDefault();

                //7. Cerrar la conexión
                sqlcComando.Connection.Close();

                //8. Regresar el resultado
                return(result);
            }
            catch (Exception ex)
            {
                throw new Exception("Error capa de datos (public static PreciarioGeneralCategoria ObtenerPreciarioGeneralCategoriaPorID(string " + strID + ")): " + ex.Message);
            }
        }
        /// <summary>
        /// Evento de clic del botón Guardar
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void imgbtnGuardar_Click(object sender, DirectEventArgs e)
        {
            //1. Obtener datos de la Forma y saber si es edición o nuevo
            string strRegistro = e.ExtraParams["registro"];
            string strEstatus  = e.ExtraParams["estatus"];
            string strArchivo  = e.ExtraParams["archivo"];
            string rTipoObra   = e.ExtraParams["tipoObra"];
            string rTipoMtno   = e.ExtraParams["tipoMnto"];

            string strRegistrosNuevos       = e.ExtraParams["registrosnuevos"];
            string strRegistrosActualizados = e.ExtraParams["registrosactualizados"];
            string strRegistrosEliminados   = e.ExtraParams["registroseliminados"];

            string strcookieEditarPreciario       = Cookies.GetCookie("cookieEditarPreciarioGeneral").Value;
            Dictionary <string, string> dRegistro = JSON.Deserialize <Dictionary <string, string> >(strRegistro);
            string strPreciarioDetalle            = e.ExtraParams["DetallePreciario"];

            //2. Se guarda en una lista el Store que contiene todos los campos para deserealizarlos y usarlos para el insert
            List <PreciarioGeneralConcepto> lDetallePreciario = JSON.Deserialize <List <PreciarioGeneralConcepto> >(strPreciarioDetalle);

            PreciarioGeneral oPreciario = new PreciarioGeneral();

            //3. Por cada elemento del submit de la Forma detectar el campo y asignarlo al objeto correspondiente
            foreach (KeyValuePair <string, string> sd in dRegistro)
            {
                switch (sd.Key)
                {
                //4. Datos del preciario
                case "txtfDescripcion":
                    oPreciario.Descripcion = sd.Value;
                    break;
                }
            }

            //5. Se toma el nombre del archivo de Excel que se está cargando
            oPreciario.Archivo = fufArchivoExcel.FileName;

            //6. Validar si es nuevo o es uno existente
            if (strcookieEditarPreciario.Equals("Nuevo"))
            {
                //7. Traemeos el objeto de sesion para llenr el objeto con los datos de usuario
                oPreciario.FechaAlta = DateTime.Now;


                Usuario oUsuario = (Usuario)Session["Usuario"];
                oPreciario.Usuario = oUsuario.ID;
                oPreciario.Estatus = strEstatus;

                if (rTipoObra.Equals("true"))
                {
                    oPreciario.TipoObra = true;
                }

                if (rTipoMtno.Equals("true"))
                {
                    oPreciario.TipoMantenimiento = true;
                }


                if (PreciarioGeneralBusiness.ObtenerPreciariosGeneralesRepetidos(oPreciario.Descripcion))
                {
                    var success = new JFunction {
                        Fn = "imgbtnGuardar_Click_SuccessRepetido"
                    };
                    X.Msg.Alert("Alerta", "<p align='center'>El preciario ya se encuentra registrado con el nombre: <br/>" + oPreciario.Descripcion + ".</p>", success).Show();
                }
                else
                {
                    //8. Insertar en la base de datos
                    oPreciario.ID = PreciarioGeneralBusiness.Insertar(oPreciario);
                    string categoria       = "";
                    string subcategoria    = "";
                    string subsubcategoria = "";

                    foreach (PreciarioGeneralConcepto sd in lDetallePreciario)
                    {
                        //9. Insertar Categoria
                        if (sd.Tipo.Equals("1"))
                        {
                            PreciarioGeneralCategoria c = new PreciarioGeneralCategoria();
                            c.Clave       = sd.Clave;
                            c.Preciario   = oPreciario.ID;
                            c.Descripcion = sd.Descripcion;
                            c.Usuario     = oUsuario.ID;
                            c.Estatus     = sd.Estatus;
                            c.FechaAlta   = sd.FechaAlta;
                            categoria     = PreciarioGeneralCategoriaBusiness.Insertar(c);
                        }
                        //10. Insertar SubCategoria
                        if (sd.Tipo.Equals("2"))
                        {
                            PreciarioGeneralSubCategoria sc = new PreciarioGeneralSubCategoria();
                            sc.Clave       = sd.Clave;
                            sc.Preciario   = oPreciario.ID;
                            sc.Descripcion = sd.Descripcion;
                            sc.Categoria   = categoria;
                            sc.Usuario     = oUsuario.ID;
                            sc.Estatus     = sd.Estatus;
                            sc.FechaAlta   = sd.FechaAlta;
                            subcategoria   = PreciarioGeneralSubCategoriaBusiness.Insertar(sc);
                        }
                        //11. Insertar SubSubCategoria
                        if (sd.Tipo.Equals("3"))
                        {
                            PreciarioGeneralSubSubCategoria ssc = new PreciarioGeneralSubSubCategoria();
                            ssc.Clave        = sd.Clave;
                            ssc.Preciario    = oPreciario.ID;
                            ssc.Descripcion  = sd.Descripcion;
                            ssc.Categoria    = categoria;
                            ssc.SubCategoria = subcategoria;
                            ssc.Usuario      = oUsuario.ID;
                            ssc.Estatus      = sd.Estatus;
                            ssc.FechaAlta    = sd.FechaAlta;
                            subsubcategoria  = PreciarioGeneralSubSubCategoriaBusiness.Insertar(ssc);
                        }
                        //12. Insertar Concepto
                        if (sd.Tipo.Equals(""))
                        {
                            PreciarioGeneralConcepto pc = new PreciarioGeneralConcepto();
                            pc.Clave           = sd.Clave;
                            pc.Preciario       = oPreciario.ID;
                            pc.Descripcion     = sd.Descripcion;
                            pc.Unidad          = sd.Unidad;
                            pc.Cantidad        = sd.Cantidad;
                            pc.Costo           = sd.Costo;
                            pc.Categoria       = categoria;
                            pc.SubCategoria    = subcategoria;
                            pc.SubSubCategoria = subsubcategoria;
                            pc.Usuario         = oUsuario.ID;
                            pc.Estatus         = sd.Estatus;
                            pc.FechaAlta       = sd.FechaAlta;
                            pc.Moneda          = sd.Moneda;
                            PreciarioGeneralConceptoBusiness.Insertar(pc);
                        }
                    }
                    //Inserta las categorias de otros
                    PreciarioGeneralCategoria catg = new PreciarioGeneralCategoria();
                    catg.Clave       = "OTR-001";
                    catg.Preciario   = oPreciario.ID;
                    catg.Descripcion = "OTROS ADICIONALES";
                    catg.Usuario     = oUsuario.ID;
                    catg.Estatus     = strEstatus;
                    catg.FechaAlta   = DateTime.Now;
                    categoria        = PreciarioGeneralCategoriaBusiness.Insertar(catg);

                    PreciarioGeneralSubCategoria scatg = new PreciarioGeneralSubCategoria();
                    scatg.Clave       = "OTR-001";
                    scatg.Preciario   = oPreciario.ID;
                    scatg.Descripcion = "OTROS ADICIONALES";
                    scatg.Usuario     = oUsuario.ID;
                    scatg.Categoria   = categoria;
                    scatg.Estatus     = strEstatus;
                    scatg.FechaAlta   = DateTime.Now;
                    subcategoria      = PreciarioGeneralSubCategoriaBusiness.Insertar(scatg);

                    PreciarioGeneralSubSubCategoria sscatg = new PreciarioGeneralSubSubCategoria();
                    sscatg.Clave        = "OTR-001";
                    sscatg.Preciario    = oPreciario.ID;
                    sscatg.Descripcion  = "OTROS ADICIONALES";
                    sscatg.Categoria    = categoria;
                    sscatg.SubCategoria = subcategoria;
                    sscatg.Usuario      = oUsuario.ID;
                    sscatg.Estatus      = strEstatus;
                    sscatg.FechaAlta    = DateTime.Now;
                    PreciarioGeneralSubSubCategoriaBusiness.Insertar(sscatg);

                    //13. Mandar mensaje con el código del Preciario
                    var success = new JFunction {
                        Fn = "imgbtnGuardar_Click_Success"
                    };
                    X.Msg.Alert("Registro completo", "<p align='center'>Preciario registrado con ID: <br/>" + oPreciario.ID + ".</p>", success).Show();

                    sCarga.DataSource = PreciarioGeneralConceptoBusiness.ObtenerPreciarioGeneralConceptoPorPreciario(oPreciario.ID);
                    sCarga.DataBind();
                }
            }
            else
            {
                //14. Valida que archivo guardar
                if (fufArchivoExcel.FileName.Equals(""))
                {
                    oPreciario.Archivo = strArchivo;
                }
                else
                {
                    oPreciario.Archivo = fufArchivoExcel.FileName;
                }

                //15. Tomamos la sucursal y estatus como parametro independiente por que ya esta deshabilitada
                oPreciario.ID      = strcookieEditarPreciario;//ID PRE
                oPreciario.Estatus = strEstatus;

                //16. Actualizar los datos del Preciario
                PreciarioGeneralBusiness.Actualizar(oPreciario);

                //16.1 Validamos si tiene nuevos conceptos
                Usuario usr = (Usuario)Session["Usuario"];
                if (!strRegistrosNuevos.Equals("0"))
                {
                    List <PreciarioGeneralConcepto> lDetallePreciarioNuevos = JSON.Deserialize <List <PreciarioGeneralConcepto> >(strRegistrosNuevos);
                    foreach (PreciarioGeneralConcepto sd in lDetallePreciarioNuevos)
                    {
                        PreciarioGeneralConcepto npgc = new PreciarioGeneralConcepto();
                        npgc.Clave           = sd.Clave;
                        npgc.Preciario       = oPreciario.ID;
                        npgc.Descripcion     = sd.Descripcion;
                        npgc.Unidad          = sd.Unidad;
                        npgc.Cantidad        = sd.Cantidad;
                        npgc.Costo           = sd.Costo;
                        npgc.Categoria       = sd.Categoria;
                        npgc.SubCategoria    = sd.SubCategoria;
                        npgc.SubSubCategoria = sd.SubSubCategoria;
                        npgc.Usuario         = usr.ID;
                        npgc.Estatus         = oPreciario.Estatus;
                        npgc.FechaAlta       = DateTime.Now;
                        npgc.Moneda          = sd.Moneda;
                        PreciarioGeneralConceptoBusiness.Insertar(npgc);
                    }
                }
                if (!strRegistrosActualizados.Equals("0"))
                {
                    List <PreciarioGeneralConcepto> lDetallePreciarioActualizados = JSON.Deserialize <List <PreciarioGeneralConcepto> >(strRegistrosActualizados);
                    foreach (PreciarioGeneralConcepto sd in lDetallePreciarioActualizados)
                    {
                        PreciarioGeneralConcepto npgc = new PreciarioGeneralConcepto();
                        npgc.ID              = sd.ID;
                        npgc.Clave           = sd.Clave;
                        npgc.Preciario       = oPreciario.ID;
                        npgc.Descripcion     = sd.Descripcion;
                        npgc.Unidad          = sd.Unidad;
                        npgc.Cantidad        = sd.Cantidad;
                        npgc.Costo           = sd.Costo;
                        npgc.Categoria       = sd.Categoria;
                        npgc.SubCategoria    = sd.SubCategoria;
                        npgc.SubSubCategoria = sd.SubSubCategoria;
                        npgc.Usuario         = usr.ID;
                        npgc.Estatus         = oPreciario.Estatus;
                        npgc.FechaAlta       = DateTime.Now;
                        npgc.Moneda          = sd.Moneda;
                        PreciarioGeneralConceptoBusiness.Actualizar(npgc);
                    }
                }
                if (!strRegistrosEliminados.Equals("0"))
                {
                    List <PreciarioGeneralConcepto> lDetallePreciarioEliminados = JSON.Deserialize <List <PreciarioGeneralConcepto> >(strRegistrosEliminados);
                    foreach (PreciarioGeneralConcepto sd in lDetallePreciarioEliminados)
                    {
                        PreciarioGeneralConceptoBusiness.Borrar(sd.ID, sd.Clave);
                    }
                }


                //17. Mandar mensaje con el código del preciario
                var success = new JFunction {
                    Fn = "imgbtnGuardar_Click_Success"
                };
                X.Msg.Alert("Actualización completa", "<p align='center'>Se han actualizado los datos del preciario <br/>" + oPreciario.ID + ".</p>", success).Show();
            }
        }
Ejemplo n.º 3
0
 /// <summary>
 /// Método que inserta un nuevo registro a la tabla de PreciarioGeneralCategoria
 /// </summary>
 /// <param name="iPreciarioCategoria"></param>
 public static string Insertar(PreciarioGeneralCategoria iPreciarioCategoria)
 {
     return(PreciarioGeneralCategoriaDataAccess.Insertar(iPreciarioCategoria));
 }
        /// <summary>
        /// Método que inserta un nuevo registro a la tabla de PreciarioCategoria
        /// </summary>
        /// <param name="iPreciarioCategorias"></param>
        public static string Insertar(PreciarioGeneralCategoria iPreciarioCategoria)
        {
            try
            {
                //1. Configurar la conexión y el tipo de comando
                SqlConnection sqlcConectar = new SqlConnection(ConfigurationManager.ConnectionStrings["OSEF"].ConnectionString);
                SqlCommand    sqlcComando  = new SqlCommand();
                sqlcComando.Connection  = sqlcConectar;
                sqlcComando.CommandType = CommandType.StoredProcedure;
                sqlcComando.CommandText = "web_spI_InsertarPreciarioGeneralCategorias";

                //2. Declarar los parametros
                SqlParameter sqlpID = new SqlParameter();
                sqlpID.ParameterName = "@ID";
                sqlpID.SqlDbType     = SqlDbType.Char;
                sqlpID.Size          = 10;
                sqlpID.Direction     = ParameterDirection.Output;

                SqlParameter sqlpClave = new SqlParameter();
                sqlpClave.ParameterName = "@Clave";
                sqlpClave.SqlDbType     = SqlDbType.Char;
                sqlpClave.Size          = 7;
                sqlpClave.Value         = iPreciarioCategoria.Clave;

                SqlParameter sqlpPreciario = new SqlParameter();
                sqlpPreciario.ParameterName = "@Preciario";
                sqlpPreciario.SqlDbType     = SqlDbType.Char;
                sqlpPreciario.Size          = 7;
                sqlpPreciario.Value         = iPreciarioCategoria.Preciario;

                SqlParameter sqlpDescripcion = new SqlParameter();
                sqlpDescripcion.ParameterName = "@Descripcion";
                sqlpDescripcion.SqlDbType     = SqlDbType.VarChar;
                sqlpDescripcion.Value         = iPreciarioCategoria.Descripcion;

                SqlParameter sqlpUsuario = new SqlParameter();
                sqlpUsuario.ParameterName = "@Usuario";
                sqlpUsuario.SqlDbType     = SqlDbType.VarChar;
                sqlpUsuario.Value         = iPreciarioCategoria.Usuario;

                SqlParameter sqlpEstatus = new SqlParameter();
                sqlpEstatus.ParameterName = "@Estatus";
                sqlpEstatus.SqlDbType     = SqlDbType.VarChar;
                sqlpEstatus.Value         = iPreciarioCategoria.Estatus;

                SqlParameter sqlpFechaAlta = new SqlParameter();
                sqlpFechaAlta.ParameterName = "@FechaAlta";
                sqlpFechaAlta.SqlDbType     = SqlDbType.SmallDateTime;
                sqlpFechaAlta.Value         = iPreciarioCategoria.FechaAlta;

                //3. Agregar los parametros al comando
                sqlcComando.Parameters.Add(sqlpID);
                sqlcComando.Parameters.Add(sqlpClave);
                sqlcComando.Parameters.Add(sqlpPreciario);
                sqlcComando.Parameters.Add(sqlpDescripcion);
                sqlcComando.Parameters.Add(sqlpUsuario);
                sqlcComando.Parameters.Add(sqlpEstatus);
                sqlcComando.Parameters.Add(sqlpFechaAlta);

                //4. Abrir la conexión
                sqlcComando.Connection.Open();

                //5. Ejecutar la instrucción INSERT que regresa un dato que es el ID
                sqlcComando.ExecuteScalar();

                //6. Cerrar la conexión
                sqlcComando.Connection.Close();

                //7. Regresar el resultado
                return(sqlcComando.Parameters["@ID"].Value.ToString());
            }
            catch (Exception ex)
            {
                throw new Exception("Error capa de datos (public static int Insertar(PreciarioGeneralCategoria " + iPreciarioCategoria.Clave + ")): " + ex.Message);
            }
        }