/// <summary> /// Guarda una nueva marca en la base de datos /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void Btn_Guardar_Click(object sender, EventArgs e) { //Definicion de las variables del formulario string marca = this.txt_Marca.Text; bool null_marca = string.IsNullOrWhiteSpace(marca); //Funciones de ayuda helperFunctions help = new helperFunctions(); //Revision de valores vacios y mensaje de advertencia para el usuario if (help.mensajeAdvEmpty(null_marca, "la marca.")) { return; } //Revision que el nombre no contenga plecas o contra plecas y mensaje de advertencia para el usuario if (help.mensajeAdvPleca(marca, "marca")) { return; } //Corre el comando SQL. Si la funcion regresa 1 fue exitoso, si regresa 0 es fallido. sqlCommands sql = new sqlCommands(); int result = sql.nuevaMarca(marca); if (result == 1) { MessageBox.Show("Datos guardados exitosamente."); this.limpiarFormulario(); } }
private void FrmPrincipal_Load(object sender, EventArgs e) { sqlCommands sql = new sqlCommands(); sql.llenarListBoxMarcasFamilias(lstFamilias, lstMarcas); this.resizeGridSelec(); }
//Verificar que los 5 directorios de guardado de los paths son validos y se puede escribir en ellos public bool verifyDirectories() { try { sqlCommands sql = new sqlCommands(); List <string> direcciones = sql.buscarDirGuardado(); string dirEnercom = direcciones[0]; string dirCatalogo = direcciones[1]; string dirUL = direcciones[2]; string dirTexto = direcciones[3]; string dirVarias = direcciones[4]; bool okEnercom = IsDirectoryWritable(dirEnercom); bool okCatalogo = IsDirectoryWritable(dirCatalogo); bool okUL = IsDirectoryWritable(dirUL); bool okTexto = IsDirectoryWritable(dirTexto); bool okVarias = IsDirectoryWritable(dirVarias); if (okEnercom && okCatalogo && okUL && okTexto && okVarias) { return(true); } else { return(false); } } catch (Exception ex) { MessageBox.Show("Ocurrio un problema al tratar de escribir en las direcciones de guardado de los archivos." + "Asegurarse que el usuario tiene los permisos requeridos para escribir en las carpetas de guardado. Error:\n" + ex.ToString()); return(false); } }
private void buscar_db() { sqlCommands sql = new sqlCommands(); helperFunctions help = new helperFunctions(); //Orden de las operaciones al momento de buscar la base de datos. El orden es el siguiente: ID, codSap, catalogo, descripcion if (!(string.IsNullOrWhiteSpace(this.txt_ID.Text))) { this.dg_Buscado.DataSource = null; this.dg_Buscado.Rows.Clear(); clsMaterial material = new clsMaterial(); if (!help.mensajeAdvInt(this.txt_ID.Text, "el ID del material. Solo se aceptan numeros enteros.").boolean) { return; } ; long id = Int64.Parse(this.txt_ID.Text); material = sql.buscarID(id); this.dg_Buscado.Rows.Add("1", id, material.catalogo, material.codsap, material.descripcion, material.marca, material.familia); this.resizeGrid(); dg_Buscado.Focus(); } else if (!(string.IsNullOrWhiteSpace(this.txt_SAP.Text))) { this.dg_Buscado.DataSource = null; this.dg_Buscado.Rows.Clear(); clsMaterial material = new clsMaterial(); if (!help.mensajeAdvInt(this.txt_SAP.Text, "el codigo SAP del material. Solo se aceptan numeros enteros.").boolean) { return; } ; long codsap = Int64.Parse(this.txt_SAP.Text); material = sql.buscarPorCodigoSAP(codsap); this.dg_Buscado.Rows.Add("1", material.id, material.catalogo, material.codsap, material.descripcion, material.marca, material.familia); this.resizeGrid(); dg_Buscado.Focus(); } else if (!(string.IsNullOrWhiteSpace(this.txt_Catalogo.Text))) { this.dg_Buscado.DataSource = null; this.dg_Buscado.Rows.Clear(); string catalogo = this.txt_Catalogo.Text; sql.buscarDB(this.txt_Catalogo.Text, this.dg_Buscado); this.resizeGrid(); dg_Buscado.Focus(); } else { List <long> marcas = this.listSelectedMarcas(); List <long> familias = this.listSelectedFamilias(); sql.buscarDBFiltrado(this.txt_Descripcion.Text, familias, marcas, this.dg_Buscado); this.resizeGrid(); dg_Buscado.Focus(); } }
/// <summary> /// Llama a las funciones para cargar los datos al resumen. /// </summary> private void cargarDatos() { if (this.dg_Seleccionado.Rows.Count == 0) { MessageBox.Show("No existen materiales en la lista de seleccionados."); } else { sqlCommands sqlCommands = new sqlCommands(); sqlCommands.buscarMultipleID(dg_Seleccionado, this.dg_Resumen); } }
private void Btn_Descargar_Click(object sender, EventArgs e) { if (this.dg_Selec.Rows.Count == 0) { MessageBox.Show("Necesita seleccionar al menos un material para descargar los archivos asociados."); } else { helperFunctions help = new helperFunctions(); sqlCommands sql = new sqlCommands(); help.descargarArchivos(sql.buscarDirectoriosID(this.dg_Selec)); } }
/// <summary> /// Valida el copiado y lo ejecuta. Si es null no ejecuta nada. Si no es null ejecuta el copiado del path existente al nuevo /// </summary> /// <param name="isNull">Si la textbox esta vacia</param> /// <param name="origen">El origen es el valor del origen de la textbox</param> /// <param name="direccion">El index de la list generada por buscarDirGuardado</param> /// <param name="id">El id del ultimo archivo recien agregado</param> public void validarCopiado(bool isNull, string origen, int direccion, int id) { if (isNull) { return; } else { sqlCommands sql = new sqlCommands(); string direcciones = sql.buscarDirGuardado()[direccion]; string nombreGuardado = Path.Combine(direcciones, id.ToString() + Path.GetExtension(origen)); File.Copy(origen, nombreGuardado); } }
private void FrmVerMaterial_Load(object sender, EventArgs e) { sqlCommands sql = new sqlCommands(); clsMaterial = sql.buscarID(clsMaterial.id); this.txt_Id.Text = clsMaterial.id.ToString(); this.txt_Familia.Text = clsMaterial.familia; this.txt_Marca.Text = clsMaterial.marca; this.txt_Catalogo.Text = clsMaterial.catalogo; this.txt_Comentarios.Text = clsMaterial.comentario; this.txt_Descripcion.Text = clsMaterial.descripcion; this.txt_SAP.Text = clsMaterial.codsap.ToString(); this.txt_specCatalogo.Text = clsMaterial.speccatalogo; this.txt_specEnercom.Text = clsMaterial.specenercom; this.txt_specTexto.Text = clsMaterial.spectexto; this.txt_specUl.Text = clsMaterial.specul; this.txt_specVarias.Text = clsMaterial.specvarias; }
//Regresa la descripcion tipica o un mensaje de advertencia si no se ha seleccionado la familia public string getDescTipica(ComboBox cmb_Familia) { string descTipica = ""; helperFunctions help = new helperFunctions(); //Extrae la informacion del combobox. El value y el text. keyValue dtFamilia = help.validarCombos(cmb_Familia); //Verifica que no sea null o whitespace y tira un mensaje de advertencia. bool null_familia = string.IsNullOrWhiteSpace(dtFamilia.Text); if (help.mensajeAdvEmpty(null_familia, "la familia.")) { return(descTipica); } //Corre el comando SQL que regresa la descripcion tipica de la familia sqlCommands sql = new sqlCommands(); descTipica = sql.buscarDescTipica(dtFamilia.Value); return(descTipica); }
/// <summary> /// Abre los archivos, busca el directorio de guardado en la base de datos. Primero crea una carpeta en los temporary files dependiendo del tipo /// de archivo que es. Despues guarda en la carpeta correspondiente con la opcion deleteonclose. No se pueden abrir dos archivos con el mismo /// nombre al mismo tiempo. /// </summary> /// <param name="tipo">Indica si es specenercom, speccatalo. Integer de 0-4</param> /// <param name="nombreArchivo">Indice el nombre del archivo, si esta vacio no hace nada</param> public void openFiles(int tipo, string nombreArchivo) { if (!string.IsNullOrWhiteSpace(nombreArchivo)) { sqlCommands sql = new sqlCommands(); List <string> listado = sql.buscarDirGuardado(); string dirGuardado = Path.Combine(listado[tipo], nombreArchivo); if (File.Exists(dirGuardado)) { //Crea un nombre de archivo con una terminacion criptografica y a la vez mantiene el ID al principio. string destination = Path.Combine(Path.GetTempPath(), Path.GetFileNameWithoutExtension(nombreArchivo) + " - " + Path.GetFileNameWithoutExtension(Path.GetRandomFileName()) + Path.GetExtension(nombreArchivo)); File.Copy(dirGuardado, destination, true); Process proceso = new Process(); proceso.StartInfo.FileName = destination; proceso.Start(); } else { MessageBox.Show("El archivo que esta tratando de abrir no existe. Edite el material con un archivo asociado nuevo."); } } }
//Funcion para el guardado de materiales private void nuevoMaterial() { //Funciones de ayuda helperFunctions help = new helperFunctions(); //Extrae la informacion del combobox. El value y el text. keyValue dtMarca = help.validarCombos(cmb_Marca); keyValue dtFamilia = help.validarCombos(cmb_Familia); //Definicion de las variables del formulario string catalogo = this.txt_Catalogo.Text; string codigosap = this.txt_SAP.Text; string marca = dtMarca.Text; string familia = dtFamilia.Text; string descripcion = this.txt_Descripcion.Text; string comentarios = this.txt_Comentarios.Text; string specenercom = this.txt_specEnercom.Text; string speccatalogo = this.txt_specCatalogo.Text; string specul = this.txt_specUl.Text; string spectexto = this.txt_specUl.Text; string specvarias = this.txt_specVarias.Text; int idMarca = dtMarca.Value; int idFamilia = dtMarca.Value; //Validacion de variables bool null_catalogo = string.IsNullOrWhiteSpace(catalogo); bool null_codigosap = string.IsNullOrWhiteSpace(codigosap); bool null_marca = string.IsNullOrWhiteSpace(marca); bool null_familia = string.IsNullOrWhiteSpace(familia); bool null_descripcion = string.IsNullOrWhiteSpace(descripcion); bool null_comentarios = string.IsNullOrWhiteSpace(comentarios); bool null_specenercom = string.IsNullOrWhiteSpace(specenercom); bool null_speccatalogo = string.IsNullOrWhiteSpace(speccatalogo); bool null_specul = string.IsNullOrWhiteSpace(specul); bool null_spectexto = string.IsNullOrWhiteSpace(spectexto); bool null_specvarias = string.IsNullOrWhiteSpace(specvarias); //Revision de valores vacios y mensaje de advertencia para el usuario if (help.mensajeAdvEmpty(null_marca, "la marca.")) { return; } if (help.mensajeAdvEmpty(null_familia, "la familia.")) { return; } if (help.mensajeAdvEmpty(null_descripcion, "la descripcion.")) { return; } //Revision de valores que solo pueden ser de tipo int como el codigo SAP keyBoolean resultado = help.mensajeAdvSap(codigosap, "el codigo SAP. Solo se pueden ingresar numeros enteros."); if (!resultado.boolean) { return; } //Guardado de codigo SAP a integer int intCodigosap = resultado.key; //Guardado de los items que son strings en listas para pasarlos al SQL List <string> strCampos = new List <string>() { catalogo, descripcion, comentarios, specenercom, speccatalogo, specul, spectexto, specvarias, familia, marca }; //Guardado de los items que son ints en listas para pasarlos al SQL List <int> intCampos = new List <int>() { idFamilia, idMarca, intCodigosap }; //Guardado de las validaciones de strings en lista para pasarlos al SQL List <bool> null_strCampos = new List <bool>() { null_catalogo, null_descripcion, null_comentarios, null_specenercom, null_speccatalogo, null_specul, null_spectexto, null_specvarias }; //Guardado de las validaciones de strings en lista para pasarlos al SQL List <bool> null_intCampos = new List <bool>() { null_marca, null_familia, null_codigosap }; //Corre el comando SQL. Si la funcion regresa 1 fue exitoso, si regresa 0 es fallido. sqlCommands sql = new sqlCommands(); int result = sql.nuevoMaterial(strCampos, intCampos, null_strCampos, null_intCampos); if (result == 1) { MessageBox.Show("Datos guardados exitosamente."); this.limpiarFormulario(); } }
private void FrmNuevoMat_Load(object sender, EventArgs e) { sqlCommands sql = new sqlCommands(); sql.llenarMarcasFamilias(this.cmb_Familia, this.cmb_Marca); }
/// <summary> /// Descarga los archivos que estan en la listBox de seleccionados /// </summary> public void descargarArchivos(List <List <string> > nombreArchivos) { //Se crean las carpetas donde se va a guardar y se guardan las direcciones en una lista List <string> directoriosDestino = new List <string>(); directoriosDestino = createFolderStructure(); //Contador para mostrar al usuario cuantos archivos se descargaron. int counter = 0; //Si es true muestra los mensajes de advertencias cuando ocurren errores en el copiado. De lo contrario no las muestra bool advertencias = true; //Verifica que el creado de la estructura del folder fue exitosa. El primer elemento de la lista es "1" si la operacion fue //exitosa if (directoriosDestino[0] == "1") { //Fetches las direcciones de guardado de los archivos a copiar sqlCommands sql = new sqlCommands(); List <string> directoriosOrigen = sql.buscarDirGuardado(); for (int j = 0; j <= 4; j++) { //Verifica que no esten vacia la listas de los nombres de los archivos if (nombreArchivos[j].Count != 0) { //Itera por todos los archivos y los copia for (int i = 0; i < nombreArchivos[j].Count; i++) { try { //El directorio del origen del archivo string origen = Path.Combine(directoriosOrigen[j], nombreArchivos[j][i]); string destino = Path.Combine(directoriosDestino[j + 1], nombreArchivos[j][i]); File.Copy(origen, destino, true); FileInfo fileInfo = new FileInfo(destino); fileInfo.IsReadOnly = false; counter = counter + 1; } catch { //Si las advertencias no han sido suprimidas. Se suprimen cuando el usuario presion que si en la MessageBox if (advertencias) { string message = "Ocurrio un error al momento de descargar el archivo: " + nombreArchivos[0][i] + ". Posiblemente causado porque el archivo no existe. ¿Le gustaria suprimir este mensaje en un futuro?"; string title = "Error en la descarga de especificaciones"; MessageBoxButtons buttons = MessageBoxButtons.YesNo; DialogResult result = MessageBox.Show(message, title, buttons); if (result == DialogResult.Yes) { advertencias = false; } } } } } } //Mensaje de finalizacion MessageBox.Show("Proceso finalizado satisfactoriamente. Se han descargado " + counter.ToString() + " archivos."); } }