예제 #1
0
        List <Trabajadores> ImportarDatos(string nombrearchivo)
        {
            List <Trabajadores> lista = new List <Trabajadores>();

            try
            {
                SLDocument sl = new SLDocument(nombrearchivo);

                int iRow = 2;
                while (!string.IsNullOrEmpty(sl.GetCellValueAsString(iRow, 1)))
                {
                    Trabajadores trabajador = new Trabajadores();
                    trabajador.Nombre    = sl.GetCellValueAsString(iRow, 1);
                    trabajador.Dui       = sl.GetCellValueAsString(iRow, 2);
                    trabajador.Nit       = sl.GetCellValueAsString(iRow, 3);
                    trabajador.Afp       = sl.GetCellValueAsString(iRow, 4);
                    trabajador.Seguro    = sl.GetCellValueAsString(iRow, 5);
                    trabajador.Direccion = sl.GetCellValueAsString(iRow, 6);
                    trabajador.Telefono  = sl.GetCellValueAsString(iRow, 7);
                    trabajador.Tipo      = sl.GetCellValueAsString(iRow, 8);
                    trabajador.Pago      = sl.GetCellValueAsDouble(iRow, 9);
                    trabajador.Fecha     = sl.GetCellValueAsString(iRow, 10);
                    lista.Add(trabajador);
                    iRow++;
                }
            }
            catch (Exception e)
            {
                MessageBox.Show("Error al importar " + e.Message, "ERROR", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
            return(lista);
        }
        private void btnImportar_Click(object sender, EventArgs e)
        {
            OpenFileDialog openFileDialog = new OpenFileDialog
            {
                Filter = "Excel | *.xls;*.xlsx;",

                Title = "Seleccionar Archivo"
            };

            if (openFileDialog.ShowDialog() == DialogResult.OK)
            {
                dgvmostrar.DataSource = ImportarDatos(openFileDialog.FileName);
                Trabajadores trabajador = new Trabajadores();
                //Lleno la lista con todos los datos que se agregaron del archivo
                for (int i = 0; i < dgvmostrar.Rows.Count - 1; i++)
                {
                    trabajador.Dui       = dgvmostrar.Rows[i].Cells[1].Value.ToString();
                    trabajador.Nombre    = dgvmostrar.Rows[i].Cells[0].Value.ToString();
                    trabajador.Nit       = dgvmostrar.Rows[i].Cells[2].Value.ToString();
                    trabajador.Afp       = dgvmostrar.Rows[i].Cells[3].Value.ToString();
                    trabajador.Seguro    = dgvmostrar.Rows[i].Cells[4].Value.ToString();
                    trabajador.Direccion = dgvmostrar.Rows[i].Cells[5].Value.ToString();
                    trabajador.Telefono  = dgvmostrar.Rows[i].Cells[6].Value.ToString();
                    trabajador.Tipo      = dgvmostrar.Rows[i].Cells[7].Value.ToString();
                    trabajador.Pago      = float.Parse(dgvmostrar.Rows[i].Cells[8].Value.ToString());
                    trabajador.Fecha     = Convert.ToDateTime(dgvmostrar.Rows[i].Cells[9].Value.ToString());
                    lista.InsertarF(trabajador);
                }
                ActualizarDataGrid(lista);
            }
        }
        private void btnagregar_Click(object sender, EventArgs e)
        {
            try
            {
                //Faltan validaciones
                //Ahorita no las he activado porque sino hay que ingresar toooodos estos datos y es tedioso para hacer pruebas

                //Creo un objeto del tipo trabajador y lleno los datos de este
                Trabajadores trabajador = new Trabajadores();
                trabajador.Nombre    = txtnombre.Text;
                trabajador.Dui       = txtdui.Text;
                trabajador.Nit       = txtnit.Text;
                trabajador.Afp       = txtafp.Text;
                trabajador.Seguro    = txtseguro.Text;
                trabajador.Direccion = txtdireccion.Text;
                trabajador.Telefono  = txttelefono.Text;
                trabajador.Tipo      = cbtipo.SelectedItem.ToString();
                trabajador.Pago      = float.Parse(txtpago.Text);
                trabajador.Fecha     = fechanacimiento.SelectionStart;

                //Si el validador == -1 significa que un dato será INGRESADO
                if (validador == -1)
                {
                    //De ser así, ocupo el método InsertarF y le mando el objeto de tipo trabajador
                    lista.InsertarF(trabajador);
                    //Actualizo el datagrid mandandole la lista con el nuevo dato ingresado
                    ActualizarDataGrid(lista);
                    //Limpio pantalla
                    reseteo();
                }
                else
                {
                    //Caso contrario, significa que el usuario está modificando un trabajador existente
                    //Hago que estos campos ahora sean modificables para cuando quiere ingresar un nuevo dato
                    txtdui.ReadOnly    = false;
                    txtafp.ReadOnly    = false;
                    txtnit.ReadOnly    = false;
                    txtseguro.ReadOnly = false;
                    //Ocupo el método editar y le mando como parametro el DUI del trabajador a modificar y el objeto de tipo trabajador
                    lista.Editar(dui, trabajador);
                    //Actualizo el datagrid
                    ActualizarDataGrid(lista);
                    reseteo();
                    //Hago que el validador sea nuevamente -1 y el dui le doy un valor nulo
                    validador = -1;
                    dui       = "";
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }
        //Hago un recorrido y si encuentra que el DUI es el igual al que mandamos, edita la info del trabajador
        public void Editar(string dui, Trabajadores trabajador)
        {
            NodoTrabajador aux = inicio;

            while (aux != null)
            {
                if (aux.info_traba.Dui == dui)
                {
                    aux.info_traba = trabajador;
                }
                aux = aux.sgt;
            }
        }
        //Es el mismo método InsertarF que la Ing nos enseñó
        public void InsertarF(Trabajadores item)
        {
            NodoTrabajador aux = new NodoTrabajador();

            aux.info_traba = item;
            aux.sgt        = null;

            if (inicio == null)
            {
                inicio = aux;
            }
            else
            {
                NodoTrabajador puntero = inicio;
                while (puntero.sgt != null)
                {
                    puntero = puntero.sgt;
                }
                puntero.sgt = aux;
            }
        }
예제 #6
0
        private void btnagregar_Click(object sender, EventArgs e)
        {
            BorrarMensaje();
            try
            {
                if (validaciones())
                {
                    Trabajadores trabajador = new Trabajadores();
                    trabajador.Nombre    = txtnombre.Text;
                    trabajador.Dui       = txtdui.Text;
                    trabajador.Nit       = txtni.Text;
                    trabajador.Afp       = txtafp.Text;
                    trabajador.Seguro    = txtseguro.Text;
                    trabajador.Direccion = txtdireccion.Text;
                    trabajador.Telefono  = txttelefono.Text;
                    trabajador.Tipo      = cbtipo.SelectedItem.ToString();
                    trabajador.Pago      = double.Parse(txtpago.Text);
                    trabajador.Fecha     = Convert.ToString(fechanacimiento.Value.ToString("yyyy-MM-dd"));
                    //Si el validador == -1 significa que un dato será INGRESADO
                    if (validador == -1)
                    {
                        //De ser así, ocupo el método InsertarF y le mando el objeto de tipo trabajador
                        lista.InsertarF(trabajador);
                        //Actualizo el datagrid mandandole la lista con el nuevo dato ingresado
                        ActualizarDataGrid(lista);
                        //Limpio pantalla
                        reseteo();
                    }
                    else
                    {
                        //Caso contrario, significa que el usuario está modificando un trabajador existente
                        //Hago que estos campos ahora sean modificables para cuando quiere ingresar un nuevo dato
                        txtdui.ReadOnly    = false;
                        txtafp.ReadOnly    = false;
                        txtni.ReadOnly     = false;
                        txtseguro.ReadOnly = false;
                        //Ocupo el método editar y le mando como parametro el DUI del trabajador a modificar y el objeto de tipo trabajador
                        lista.Editar(dui, trabajador);
                        //Actualizo el datagrid
                        ActualizarDataGrid(lista);
                        reseteo();
                        //Hago que el validador sea nuevamente -1 y el dui le doy un valor nulo
                        validador = -1;
                        dui       = "";
                        reseteo();
                    }

                    //Actualizamos el archivo
                    //actualizamos el archivo de inventario
                    string nombrearchivo = "..\\..\\Datos\\trabajadores.xlsx";
                    try
                    {
                        if (File.Exists(nombrearchivo))
                        {
                            File.Delete(nombrearchivo);
                            Exportar(dgvmostrar, nombrearchivo);
                        }
                    }
                    catch (Exception ex)
                    {
                        MessageBox.Show("Error " + ex.Message);
                    }
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show("Error: " + ex.Message, "¡Error!", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }
예제 #7
0
        public void insertarImportacion(string ruta)
        {
            try
            {
                List <Trabajadores> lst = new List <Trabajadores>();
                lst = ImportarDatos(ruta);
                bool excelVacio = false;
                bool idCodigo   = false;
                foreach (var item in lst)
                {
                    excelVacio = true;
                    Trabajadores trabajador = new Trabajadores();
                    trabajador.Nombre    = item.Nombre;
                    trabajador.Dui       = item.Dui;
                    trabajador.Nit       = item.Nit;
                    trabajador.Afp       = item.Afp;
                    trabajador.Seguro    = item.Seguro;
                    trabajador.Direccion = item.Direccion;
                    trabajador.Telefono  = item.Telefono;
                    trabajador.Tipo      = item.Tipo;
                    trabajador.Pago      = item.Pago;
                    trabajador.Fecha     = item.Fecha;

                    //Esto es para validar que no se ingrese un registro con codigo ya existente en la lista
                    Queue <Trabajadores> cola = new Queue <Trabajadores>();
                    cola = lista.Mostrar();

                    if (cola.Count == 0)
                    {
                        lista.InsertarF(trabajador);
                    }
                    else
                    {
                        if (cola.Contains(item))
                        {
                        }
                        foreach (var item2 in cola)
                        {
                            if (item2.Dui == trabajador.Dui)
                            {
                                idCodigo = true;
                                break;
                            }
                        }
                        if (idCodigo == false)
                        {
                            lista.InsertarF(trabajador);
                        }
                    }
                    //***********************************************************
                }

                if (ruta != "..\\..\\Datos\\trabajadores.xlsx")
                {
                    if (excelVacio == true && idCodigo == false)
                    {
                        ActualizarDataGrid(lista);
                        MessageBox.Show("Archivo importado correctamente", "¡Enhorabuena!", MessageBoxButtons.OK, MessageBoxIcon.Information);
                        //Actualizamos el archivo
                        //actualizamos el archivo de inventario
                        string nombrearchivo = "..\\..\\Datos\\trabajadores.xlsx";
                        try
                        {
                            if (File.Exists(nombrearchivo))
                            {
                                File.Delete(nombrearchivo);
                                Exportar(dgvmostrar, nombrearchivo);
                            }
                        }
                        catch (Exception ex)
                        {
                            MessageBox.Show("Error " + ex.Message);
                        }
                    }
                    else if (excelVacio == true && idCodigo == true)
                    {
                        ActualizarDataGrid(lista);
                        MessageBox.Show("Archivo importado correctamente, pero algunos registros se omitieron porque el codigo ya existe", "¡Enhorabuena!", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    }
                    else
                    {
                        MessageBox.Show("El archivo agregado no contiene datos", "¡Cuidado!", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    }
                }
                else
                {
                    ActualizarDataGrid(lista);
                }
            }
            catch (Exception Ex)
            {
                MessageBox.Show("Error al importar  " + Ex.Message, "¡Error!", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }