/// <summary> /// Método que actualiza un nuevo registro a la tabla de Proveedores /// </summary> /// <param name="iProveedor"></param> public static int Actualizar(Proveedor uProveedor) { 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_ActualizarProveedor"; //2. Declarar los parametros SqlParameter sqlpID = new SqlParameter(); sqlpID.ParameterName = "@ID"; sqlpID.SqlDbType = SqlDbType.Char; sqlpID.Size = 7; sqlpID.Value = uProveedor.ID; SqlParameter sqlpNombre = new SqlParameter(); sqlpNombre.ParameterName = "@Nombre"; sqlpNombre.SqlDbType = SqlDbType.VarChar; sqlpNombre.Value = uProveedor.Nombre; SqlParameter sqlpRFC = new SqlParameter(); sqlpRFC.ParameterName = "@RFC"; sqlpRFC.SqlDbType = SqlDbType.VarChar; sqlpRFC.Value = uProveedor.RFC; SqlParameter sqlpContactoNombre = new SqlParameter(); sqlpContactoNombre.ParameterName = "@ContactoNombre"; sqlpContactoNombre.SqlDbType = SqlDbType.VarChar; sqlpContactoNombre.Value = uProveedor.ContactoNombre; SqlParameter sqlpContactoAPaterno = new SqlParameter(); sqlpContactoAPaterno.ParameterName = "@ContactoAPaterno"; sqlpContactoAPaterno.SqlDbType = SqlDbType.VarChar; sqlpContactoAPaterno.Value = uProveedor.ContactoAPaterno; SqlParameter sqlpContactoAMaterno = new SqlParameter(); sqlpContactoAMaterno.ParameterName = "@ContactoAMaterno"; sqlpContactoAMaterno.SqlDbType = SqlDbType.VarChar; sqlpContactoAMaterno.Value = uProveedor.ContactoAMaterno; SqlParameter sqlpCorreo = new SqlParameter(); sqlpCorreo.ParameterName = "@Correo"; sqlpCorreo.SqlDbType = SqlDbType.VarChar; sqlpCorreo.Value = uProveedor.Correo; SqlParameter sqlpCalle = new SqlParameter(); sqlpCalle.ParameterName = "@Calle"; sqlpCalle.SqlDbType = SqlDbType.VarChar; sqlpCalle.Value = uProveedor.Calle; SqlParameter sqlpEntreCalles = new SqlParameter(); sqlpEntreCalles.ParameterName = "@EntreCalles"; sqlpEntreCalles.SqlDbType = SqlDbType.VarChar; sqlpEntreCalles.Value = uProveedor.EntreCalles; SqlParameter sqlpNoExterior = new SqlParameter(); sqlpNoExterior.ParameterName = "@NoExterior"; sqlpNoExterior.SqlDbType = SqlDbType.VarChar; sqlpNoExterior.Value = uProveedor.NoExterior; SqlParameter sqlpNoInterior = new SqlParameter(); sqlpNoInterior.ParameterName = "@NoInterior"; sqlpNoInterior.SqlDbType = SqlDbType.VarChar; sqlpNoInterior.Value = uProveedor.NoInterior; SqlParameter sqlpCodigoPostal = new SqlParameter(); sqlpCodigoPostal.ParameterName = "@CodigoPostal"; sqlpCodigoPostal.SqlDbType = SqlDbType.Int; sqlpCodigoPostal.Value = uProveedor.CodigoPostal; SqlParameter sqlpColonia = new SqlParameter(); sqlpColonia.ParameterName = "@Colonia"; sqlpColonia.SqlDbType = SqlDbType.VarChar; if (uProveedor.Colonia == null) sqlpColonia.Value = DBNull.Value; else sqlpColonia.Value = uProveedor.Colonia; SqlParameter sqlpEstado = new SqlParameter(); sqlpEstado.ParameterName = "@Estado"; sqlpEstado.SqlDbType = SqlDbType.Char; sqlpEstado.Size = 2; sqlpEstado.Value = uProveedor.Estado; SqlParameter sqlpMunicipio = new SqlParameter(); sqlpMunicipio.ParameterName = "@Municipio"; sqlpMunicipio.SqlDbType = SqlDbType.Char; sqlpMunicipio.Size = 4; sqlpMunicipio.Value = uProveedor.Municipio; SqlParameter sqlpRutaLogo = new SqlParameter(); sqlpRutaLogo.ParameterName = "@RutaLogo"; sqlpRutaLogo.SqlDbType = SqlDbType.VarChar; if (uProveedor.Rutalogo != null || uProveedor.Rutalogo.Trim().Length > 0) { sqlpRutaLogo.Value = uProveedor.Rutalogo; } else { sqlpRutaLogo.Value = ""; } //3. Agregar los parametros al comando sqlcComando.Parameters.Add(sqlpID); sqlcComando.Parameters.Add(sqlpNombre); sqlcComando.Parameters.Add(sqlpRFC); sqlcComando.Parameters.Add(sqlpContactoNombre); sqlcComando.Parameters.Add(sqlpContactoAPaterno); sqlcComando.Parameters.Add(sqlpContactoAMaterno); sqlcComando.Parameters.Add(sqlpCorreo); sqlcComando.Parameters.Add(sqlpCalle); sqlcComando.Parameters.Add(sqlpEntreCalles); sqlcComando.Parameters.Add(sqlpNoExterior); sqlcComando.Parameters.Add(sqlpNoInterior); sqlcComando.Parameters.Add(sqlpCodigoPostal); sqlcComando.Parameters.Add(sqlpColonia); sqlcComando.Parameters.Add(sqlpEstado); sqlcComando.Parameters.Add(sqlpMunicipio); sqlcComando.Parameters.Add(sqlpRutaLogo); //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(Proveedor " + uProveedor.ID + ")): " + ex.Message); } }
/// <summary> /// Método que inserta un nuevo registro a la tabla de Proveedores /// </summary> /// <param name="iProveedor"></param> public static string Insertar(Proveedor iProveedor) { return ProveedorDataAccess.Insertar(iProveedor); }
/// <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 strcookieEditarProveedor = Cookies.GetCookie("cookieEditarProveedor").Value; Dictionary<string, string> dRegistro = JSON.Deserialize<Dictionary<string, string>>(strRegistro); Proveedor oProveedor = new Proveedor(); //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 proveedor case "txtfNombre": oProveedor.Nombre = sd.Value; break; case "txtfRFC": oProveedor.RFC = sd.Value; break; case "txtfContactoNombre": oProveedor.ContactoNombre = sd.Value; break; case "txtfContactoAPaterno": oProveedor.ContactoAPaterno = sd.Value; break; case "txtfContactoAMaterno": oProveedor.ContactoAMaterno = sd.Value; break; case "txtfCorreo": oProveedor.Correo = sd.Value; break; case "txtfCalle": oProveedor.Calle = sd.Value; break; case "txtfEntreCalles": oProveedor.EntreCalles = sd.Value; break; case "txtfNoExterior": oProveedor.NoExterior = sd.Value; break; case "txtfNoInterior": oProveedor.NoInterior = sd.Value; break; case "txtfCodigoPostal": oProveedor.CodigoPostal = Convert.ToInt32(sd.Value); break; case "cmbColonia": oProveedor.Colonia = sd.Value; break; case "cmbEstado": oProveedor.Estado = sd.Value; break; case "cmbMunicipio": oProveedor.Municipio = sd.Value; break; } } string logo = e.ExtraParams["logo"]; string strImagen = fuImagenProveedor.FileName; string strDireccionDisplay; //4. Validar si es nuevo o es uno existente if (strcookieEditarProveedor.Equals("Nuevo")) { oProveedor.Rutalogo = logo != null || !logo.Equals("") ? logo : ""; //5. Insertar en la base de datos oProveedor.ID = ProveedorBusiness.Insertar(oProveedor); if (logo != null && !logo.Trim().Equals("")) { string strDireccion = Server.MapPath(" ") + "\\images\\proveedores\\" + oProveedor.ID + "\\"; if (Directory.Exists(strDireccion)) { fuImagenProveedor.PostedFile.SaveAs(strDireccion + logo); } else { Directory.CreateDirectory(strDireccion); fuImagenProveedor.PostedFile.SaveAs(strDireccion + logo); } } //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'>Proveedor registrado con ID: <br/>" + oProveedor.ID + ".</p>", success).Show(); } else { oProveedor.ID = strcookieEditarProveedor; string strDireccion = Server.MapPath(" ") + "\\images\\proveedores\\" + oProveedor.ID + "\\"; if (oProveedor.ID != null) { Proveedor oProveedorRef = ProveedorBusiness.ObtenerProveedorPorID(oProveedor.ID); //Si el upload file esta lleno cuando se actualiza se guarda la imagen en el directorio if (!strImagen.Equals("")) { if (Directory.Exists(strDireccion)) { fuImagenProveedor.PostedFile.SaveAs(strDireccion + logo); } else { Directory.CreateDirectory(strDireccion); fuImagenProveedor.PostedFile.SaveAs(strDireccion + logo); } if (oProveedorRef.Rutalogo != null) { File.Delete(strDireccion + oProveedorRef.Rutalogo); }//llenamos el objeto con la ruta oProveedor.Rutalogo = logo; //Mostramos la imagen strDireccionDisplay = "images\\proveedores\\" + oProveedor.ID + "\\"; imgLogo.ImageUrl = strDireccionDisplay + oProveedor.Rutalogo; } //Si no se escoge otra imagen se deja la que ya estaba else { oProveedor.Rutalogo = oProveedorRef.Rutalogo; strDireccionDisplay = "images\\proveedores\\" + oProveedor.ID + "\\"; imgLogo.ImageUrl = strDireccionDisplay + oProveedorRef.Rutalogo; } } //7. Actualizar los datos del proveedor ProveedorBusiness.Actualizar(oProveedor); //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 proveedor <br/>" + oProveedor.ID + ".</p>", success).Show(); } }
/// <summary> /// Método que actualiza un nuevo registro a la tabla de Proveedores /// </summary> /// <param name="uProveedor"></param> /// <returns></returns> public static int Actualizar(Proveedor uProveedor) { return ProveedorDataAccess.Actualizar(uProveedor); }