/// <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 strcookieEditarConcepto = Cookies.GetCookie("cookieEditarConcepto").Value; Dictionary<string, string> dRegistro = JSON.Deserialize<Dictionary<string, string>>(strRegistro); Concepto oConcepto = new Concepto(); //2. 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) { //3. Datos del concepto case "cmbModulo": oConcepto.Modulo = sd.Value; break; case "nfOrden": oConcepto.Orden = Convert.ToInt16(sd.Value); break; case "txtfDescripcion": oConcepto.Descripcion = sd.Value; break; case "cmbCategoria": oConcepto.CategoriaIdRaw = sd.Value; break; case "cmbSubCategoria": oConcepto.SubCategoriaIdRaw = sd.Value; break; case "cmbEstatus": oConcepto.Estatus = sd.Value; break; } } //4. Validar si es nuevo o es uno existente if (strcookieEditarConcepto.Equals("Nuevo")) { if (ConceptoBusiness.ObtenerConceptoPorOrden(oConcepto.Orden) == null) { //5. Insertar en la base de datos oConcepto.FechaAlta = DateTime.Now; oConcepto.Estatus = "ALTA"; oConcepto.Id = ConceptoBusiness.Insertar(oConcepto); //6. Mandar mensaje con el código del proveedor var success = new JFunction { Fn = "imgbtnGuardar_Click_Success" }; X.Msg.Alert("Registro completo", "<p align='center'>Concepto registrado con ID: <br/>" + oConcepto.Id + ".</p>", success).Show(); } else { //MessageBoxButtonsConfig button = new MessageBoxButtonsConfig(); var sucess = new JFunction { Fn = "imgbtnGuardar_Click_Success_Repetido" }; X.Msg.Show(new MessageBoxConfig { Title = "Error", Message = "El número de orden esta repetido", Buttons = MessageBox.Button.OK, Icon = MessageBox.Icon.WARNING, Handler = "App.nfOrden.focus(true);", HeaderIcon = Icon.Error }); } } else { oConcepto.Id = strcookieEditarConcepto; Concepto pConcepto = ConceptoBusiness.ObtenerConceptoPorID(oConcepto.Id); oConcepto.FechaAlta = pConcepto.FechaAlta; if (oConcepto.Orden == pConcepto.Orden) { //7. Actualizar los datos del proveedor ConceptoBusiness.Actualizar(oConcepto); //8. Mandar mensaje con el código del proveedor var success = new JFunction { Fn = "imgbtnGuardar_Click_Success" }; X.Msg.Alert("Actualización completa", "<p align='center'>Se han actualizado los datos del concepto <br/>" + oConcepto.Id + ".</p>", success).Show(); } else { if (ConceptoBusiness.ObtenerConceptoPorOrden(oConcepto.Orden) == null) { //7. Actualizar los datos del proveedor ConceptoBusiness.Actualizar(oConcepto); //8. Mandar mensaje con el código del proveedor var success = new JFunction { Fn = "imgbtnGuardar_Click_Success" }; X.Msg.Alert("Actualización completa", "<p align='center'>Se han actualizado los datos del concepto <br/>" + oConcepto.Id + ".</p>", success).Show(); } else { //MessageBoxButtonsConfig button = new MessageBoxButtonsConfig(); var sucess = new JFunction { Fn = "imgbtnGuardar_Click_Success_Repetido" }; X.Msg.Show(new MessageBoxConfig { Title = "Error", Message = "El número de orden esta repetido", Buttons = MessageBox.Button.OK, Icon = MessageBox.Icon.WARNING, Handler = "App.nfOrden.focus(true);", HeaderIcon = Icon.Error }); } } } }
/// <summary> /// Método que actualiza un nuevo registro a la tabla de Conceptos /// </summary> /// <param name="uConcepto"></param> public static int Actualizar(Concepto uConcepto) { 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_ActualizarConcepto"; //2. Declarar los parametros SqlParameter sqlpID = new SqlParameter(); sqlpID.ParameterName = "@ID"; sqlpID.SqlDbType = SqlDbType.Char; sqlpID.Size = 7; sqlpID.Value = uConcepto.Id; SqlParameter sqlpModulo = new SqlParameter(); sqlpModulo.ParameterName = "@Modulo"; sqlpModulo.SqlDbType = SqlDbType.VarChar; sqlpModulo.Value = uConcepto.Modulo; SqlParameter sqlpOrden = new SqlParameter(); sqlpOrden.ParameterName = "@Orden"; sqlpOrden.SqlDbType = SqlDbType.SmallInt; sqlpOrden.Value = uConcepto.Orden; SqlParameter sqlpDescripcion = new SqlParameter(); sqlpDescripcion.ParameterName = "@Descripcion"; sqlpDescripcion.SqlDbType = SqlDbType.VarChar; sqlpDescripcion.Value = uConcepto.Descripcion; SqlParameter sqlpCategoria = new SqlParameter(); sqlpCategoria.ParameterName = "@Categoria"; sqlpCategoria.SqlDbType = SqlDbType.Char; sqlpCategoria.Size = 5; if (uConcepto.CategoriaIdRaw == null) sqlpCategoria.Value = DBNull.Value; else sqlpCategoria.Value = uConcepto.CategoriaIdRaw; SqlParameter sqlpSubCategoria = new SqlParameter(); sqlpSubCategoria.ParameterName = "@SubCategoria"; sqlpSubCategoria.SqlDbType = SqlDbType.Char; sqlpSubCategoria.Size = 6; if (uConcepto.SubCategoriaIdRaw == null) sqlpSubCategoria.Value = DBNull.Value; else sqlpSubCategoria.Value = uConcepto.SubCategoriaIdRaw; SqlParameter sqlpFechaAlta = new SqlParameter(); sqlpFechaAlta.ParameterName = "@FechaAlta"; sqlpFechaAlta.SqlDbType = SqlDbType.SmallDateTime; sqlpFechaAlta.Value = uConcepto.FechaAlta; SqlParameter sqlpEstatus = new SqlParameter(); sqlpEstatus.ParameterName = "@Estatus"; sqlpEstatus.SqlDbType = SqlDbType.VarChar; sqlpEstatus.Value = uConcepto.Estatus; //3. Agregar los parametros al comando sqlcComando.Parameters.Add(sqlpID); sqlcComando.Parameters.Add(sqlpModulo); sqlcComando.Parameters.Add(sqlpOrden); sqlcComando.Parameters.Add(sqlpDescripcion); sqlcComando.Parameters.Add(sqlpCategoria); sqlcComando.Parameters.Add(sqlpSubCategoria); sqlcComando.Parameters.Add(sqlpFechaAlta); 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(Concepto " + uConcepto.Id + ")): " + ex.Message); } }
/// <summary> /// Método que inserta un nuevo registro a la tabla de Conceptos /// </summary> /// <param name="iConcepto"></param> public static string Insertar(Concepto iConcepto) { return ConceptoDataAccess.Insertar(iConcepto); }
/// <summary> /// Método que inserta un nuevo registro a la tabla de Conceptos /// </summary> /// <param name="iConcepto"></param> public static string Insertar(Concepto iConcepto) { 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_InsertarConcepto"; //2. Declarar los parametros SqlParameter sqlpID = new SqlParameter(); sqlpID.ParameterName = "@ID"; sqlpID.SqlDbType = SqlDbType.Char; sqlpID.Size = 7; sqlpID.Direction = ParameterDirection.Output; SqlParameter sqlpModulo = new SqlParameter(); sqlpModulo.ParameterName = "@Modulo"; sqlpModulo.SqlDbType = SqlDbType.VarChar; sqlpModulo.Value = iConcepto.Modulo; SqlParameter sqlpOrden = new SqlParameter(); sqlpOrden.ParameterName = "@Orden"; sqlpOrden.SqlDbType = SqlDbType.SmallInt; sqlpOrden.Value = iConcepto.Orden; SqlParameter sqlpDescripcion = new SqlParameter(); sqlpDescripcion.ParameterName = "@Descripcion"; sqlpDescripcion.SqlDbType = SqlDbType.VarChar; sqlpDescripcion.Value = iConcepto.Descripcion; SqlParameter sqlpCategoria = new SqlParameter(); sqlpCategoria.ParameterName = "@Categoria"; sqlpCategoria.SqlDbType = SqlDbType.Char; sqlpCategoria.Size = 5; if (iConcepto.CategoriaIdRaw == null) sqlpCategoria.Value = DBNull.Value; else sqlpCategoria.Value = iConcepto.CategoriaIdRaw; SqlParameter sqlpSubCategoria = new SqlParameter(); sqlpSubCategoria.ParameterName = "@SubCategoria"; sqlpSubCategoria.SqlDbType = SqlDbType.Char; sqlpSubCategoria.Size = 6; if (iConcepto.SubCategoriaIdRaw == null) sqlpSubCategoria.Value = DBNull.Value; else sqlpSubCategoria.Value = iConcepto.SubCategoriaIdRaw; SqlParameter sqlpFechaAlta = new SqlParameter(); sqlpFechaAlta.ParameterName = "@FechaAlta"; sqlpFechaAlta.SqlDbType = SqlDbType.SmallDateTime; sqlpFechaAlta.Value = iConcepto.FechaAlta; SqlParameter sqlpEstatus = new SqlParameter(); sqlpEstatus.ParameterName = "@Estatus"; sqlpEstatus.SqlDbType = SqlDbType.VarChar; sqlpEstatus.Value = iConcepto.Estatus; //3. Agregar los parametros al comando sqlcComando.Parameters.Add(sqlpID); sqlcComando.Parameters.Add(sqlpModulo); sqlcComando.Parameters.Add(sqlpOrden); sqlcComando.Parameters.Add(sqlpDescripcion); sqlcComando.Parameters.Add(sqlpCategoria); sqlcComando.Parameters.Add(sqlpSubCategoria); sqlcComando.Parameters.Add(sqlpFechaAlta); sqlcComando.Parameters.Add(sqlpEstatus); //4. Abrir la conexión sqlcComando.Connection.Open(); //5. Ejecutar la instrucción INSERT que regresa un dato que es el ID int result = Convert.ToInt32(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(Concepto " + iConcepto.Descripcion + ")): " + ex.Message); } }
/// <summary> /// Método que actualiza un nuevo registro a la tabla de Conceptos /// </summary> /// <param name="uConcepto"></param> /// <returns></returns> public static int Actualizar(Concepto uConcepto) { return ConceptoDataAccess.Actualizar(uConcepto); }