/// <summary> /// Método que inserta un nuevo registro a la tabla de PreciarioSubSubCategorias /// </summary> /// <param name="iPreciarioSubSubCategorias"></param> public static string Insertar(PreciarioSubSubCategoria iPreciarioSubSubCategoria) { 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_InsertarPreciarioSubSubCategoria"; //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 = iPreciarioSubSubCategoria.Clave; SqlParameter sqlpPreciario = new SqlParameter(); sqlpPreciario.ParameterName = "@Preciario"; sqlpPreciario.SqlDbType = SqlDbType.Char; sqlpPreciario.Size = 7; sqlpPreciario.Value = iPreciarioSubSubCategoria.Preciario; SqlParameter sqlpDescripcion = new SqlParameter(); sqlpDescripcion.ParameterName = "@Descripcion"; sqlpDescripcion.SqlDbType = SqlDbType.VarChar; sqlpDescripcion.Value = iPreciarioSubSubCategoria.Descripcion; SqlParameter sqlpCategoria = new SqlParameter(); sqlpCategoria.ParameterName = "@Categoria"; sqlpCategoria.SqlDbType = SqlDbType.Char; sqlpCategoria.Size = 10; sqlpCategoria.Value = iPreciarioSubSubCategoria.Categoria; SqlParameter sqlpSubCategoria = new SqlParameter(); sqlpSubCategoria.ParameterName = "@SubCategoria"; sqlpSubCategoria.SqlDbType = SqlDbType.Char; sqlpSubCategoria.Size = 10; sqlpSubCategoria.Value = iPreciarioSubSubCategoria.SubCategoria; SqlParameter sqlpUsuario = new SqlParameter(); sqlpUsuario.ParameterName = "@Usuario"; sqlpUsuario.SqlDbType = SqlDbType.VarChar; sqlpUsuario.Value = iPreciarioSubSubCategoria.Usuario; SqlParameter sqlpEstatus = new SqlParameter(); sqlpEstatus.ParameterName = "@Estatus"; sqlpEstatus.SqlDbType = SqlDbType.VarChar; sqlpEstatus.Value = iPreciarioSubSubCategoria.Estatus; SqlParameter sqlpFechaAlta = new SqlParameter(); sqlpFechaAlta.ParameterName = "@FechaAlta"; sqlpFechaAlta.SqlDbType = SqlDbType.SmallDateTime; sqlpFechaAlta.Value = iPreciarioSubSubCategoria.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(sqlpCategoria); sqlcComando.Parameters.Add(sqlpSubCategoria); 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 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(PreciarioSubSubCategoria " + iPreciarioSubSubCategoria.Clave + ")): " + ex.Message); } }
/// <summary> /// Método que actualiza un nuevo registro a la tabla de PreciariosSubSubCategorias /// </summary> /// <param name="uPreciarioSubSubCategorias"></param> public static int Actualizar(PreciarioSubSubCategoria uPreciarioSubSubCategoria) { 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_spU_ActualizarPreciarioSubSubCategorias"; //2. Declarar los parametros SqlParameter sqlpID = new SqlParameter(); sqlpID.ParameterName = "@ID"; sqlpID.SqlDbType = SqlDbType.Char; sqlpID.Size = 10; sqlpID.Value = uPreciarioSubSubCategoria.ID; SqlParameter sqlpPreciario = new SqlParameter(); sqlpPreciario.ParameterName = "@Preciario"; sqlpPreciario.SqlDbType = SqlDbType.VarChar; sqlpPreciario.Value = uPreciarioSubSubCategoria.Descripcion; SqlParameter sqlpDescripcion = new SqlParameter(); sqlpDescripcion.ParameterName = "@Descripcion"; sqlpDescripcion.SqlDbType = SqlDbType.VarChar; sqlpDescripcion.Value = uPreciarioSubSubCategoria.Descripcion; SqlParameter sqlpCategoria = new SqlParameter(); sqlpCategoria.ParameterName = "@Categoria"; sqlpCategoria.SqlDbType = SqlDbType.VarChar; sqlpCategoria.Value = uPreciarioSubSubCategoria.Categoria; SqlParameter sqlpSubCategoria = new SqlParameter(); sqlpSubCategoria.ParameterName = "@SubCategoria"; sqlpSubCategoria.SqlDbType = SqlDbType.VarChar; sqlpSubCategoria.Value = uPreciarioSubSubCategoria.SubCategoria; SqlParameter sqlpEstatus = new SqlParameter(); sqlpEstatus.ParameterName = "@Estatus"; sqlpEstatus.SqlDbType = SqlDbType.VarChar; sqlpEstatus.Value = uPreciarioSubSubCategoria.Estatus; //3. Agregar los parametros al comando sqlcComando.Parameters.Add(sqlpID); sqlcComando.Parameters.Add(sqlpPreciario); sqlcComando.Parameters.Add(sqlpDescripcion); sqlcComando.Parameters.Add(sqlpCategoria); sqlcComando.Parameters.Add(sqlpSubCategoria); sqlcComando.Parameters.Add(sqlpEstatus); //4. Abrir la conexión sqlcComando.Connection.Open(); //5. Ejecutar la instrucción UPDATE que no regresa filas int result = sqlcComando.ExecuteNonQuery(); //6. Cerrar la conexión sqlcComando.Connection.Close(); //7. Regresar el resultado return result; } catch (Exception ex) { throw new Exception("Error capa de datos (public static int Actualizar(PreciarioSubSubCategoria " + uPreciarioSubSubCategoria.ID + ")): " + 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 strSucursal = e.ExtraParams["sucursal"]; string strcookieEditarPreciario = Cookies.GetCookie("cookieEditarPreciario").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<PreciarioConcepto> lDetallePreciario = JSON.Deserialize<List<PreciarioConcepto>>(strPreciarioDetalle); Preciario oPreciario = new Preciario(); //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 "txtfID": oPreciario.ID = sd.Value; break; case "txtfDescripcion": oPreciario.Descripcion = sd.Value; break; case "cmbEstatus": oPreciario.Estatus = sd.Value; break; case "IdCliente": oPreciario.Cliente = 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")) { //Checar ticket de autenticación UsuarioBusiness.checkValidSession(this); //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; oPreciario.Sucursal = strSucursal; //8. Insertar en la base de datos oPreciario.ID = PreciarioBusiness.Insertar(oPreciario); string categoria = ""; string subcategoria = ""; string subsubcategoria = ""; foreach (PreciarioConcepto sd in lDetallePreciario) { //9. Insertar Categoria if (sd.Tipo.Equals("1")) { PreciarioCategoria c = new PreciarioCategoria(); c.Clave = sd.Clave; c.Preciario = oPreciario.ID; c.Descripcion = sd.Descripcion; c.Usuario = oUsuario.ID; c.Estatus = sd.Estatus; c.FechaAlta =Convert.ToDateTime(sd.FechaAlta); categoria =PreciarioCategoriaBuisness.Insertar(c); } //10. Insertar SubCategoria if (sd.Tipo.Equals("2")) { PreciarioSubCategoria sc = new PreciarioSubCategoria(); 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 = Convert.ToDateTime(sd.FechaAlta); subcategoria= PreciarioSubCategoriaBusiness.Insertar(sc); } //11. Insertar SubSubCategoria if (sd.Tipo.Equals("3")) { PreciarioSubSubCategoria ssc = new PreciarioSubSubCategoria(); 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 = Convert.ToDateTime(sd.FechaAlta); subsubcategoria= PreciarioSubSubCategoriaBusiness.Insertar(ssc); } //12. Insertar Concepto if (sd.Tipo.Equals("")) { PreciarioConcepto pc = new PreciarioConcepto(); pc.Clave = sd.Clave; pc.Preciario = oPreciario.ID; pc.Descripcion = sd.Descripcion; pc.Unidad = sd.Unidad; pc.Cantidad = sd.Cantidad; pc.Utilizada = 0; pc.Costo = sd.Costo; pc.Importe = sd.Importe; pc.Importefinal = 0; pc.Categoria = categoria; pc.SubCategoria = subcategoria; pc.SubSubCategoria = subsubcategoria; pc.Usuario = oUsuario.ID; pc.Estatus = sd.Estatus; pc.FechaAlta = sd.FechaAlta; PreciarioConceptoBusiness.Insertar(pc); } } //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 registrada con ID: <br/>" + oPreciario.ID + ".</p>", success).Show(); } 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 desabilitada oPreciario.ID = strcookieEditarPreciario; oPreciario.Sucursal = strSucursal; oPreciario.Estatus = strEstatus; //16. Actualizar los datos del Preciario PreciarioBusiness.Actualizar(oPreciario); //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(); } }