private void Procesar() { if (Verificacion() && VerificacionTxbDui() && VerificacionTxbNit()) { CLS.Empleados oEmpleado = new CLS.Empleados(); CLS.Contactos oContacto = new CLS.Contactos(); CLS.ContactosEmpleados oContactoEmpleado = new CLS.ContactosEmpleados(); oEmpleado.Nombres = txbNombres.Text; oEmpleado.Apellidos = txbApellidos.Text; oEmpleado.Genero = cmbGenero.SelectedValue.ToString(); oEmpleado.FechaNacimiento = Convert.ToDateTime(dtpFechaNacimiento.Text); oEmpleado.Dui = txbDui.Text; oEmpleado.Nit = txbNit.Text; oEmpleado.Municipio = txbMunicipio.Text; oEmpleado.Direccion = txbDireccion.Text; oEmpleado.Idcargo = Convert.ToInt32(cmbCargos.SelectedValue.ToString()); if (dtpContratacion.Checked) { oEmpleado.FechaContratacion = Convert.ToDateTime(dtpContratacion.Text); } else { oEmpleado.FContratacionNula = "null"; } if (dtpSalida.Checked) { oEmpleado.FechaSalida = Convert.ToDateTime(dtpSalida.Text); } else { oEmpleado.FSalidaNula = "null"; } oEmpleado.Estado = cmbEstado.SelectedValue.ToString(); oEmpleado.Iddepartamento = Convert.ToInt32(cmbDepartamento.SelectedValue.ToString()); if (txbIDEmpleado.Text.Length == 0) { int cont = 0; //INSERTANDO if (oEmpleado.Guardar()) { //Verificando si hay contactos agregados if (int.Parse(dtgvDatosContactos.Rows.Count.ToString()) > 0) { //*********************************************** CONTACTOS *************************************** //Si hay, los insertamos for (int f = 0; f < int.Parse(dtgvDatosContactos.Rows.Count.ToString()); f++) { oContacto.Tipo = dtgvDatosContactos.Rows[f].Cells[1].Value.ToString(); oContacto.Contacto = dtgvDatosContactos.Rows[f].Cells[2].Value.ToString(); oContacto.Guardar(); cont++; } int contContactosAsig = 0; //Asignamos los contactos creados al empleado q acabamos de agregar for (int g = 0; g < cont; g++) { oContactoEmpleado.Idcontacto = (Convert.ToInt32(lblContac.Text)) + contContactosAsig; oContactoEmpleado.Idempleado = Convert.ToInt32(lblIDpropietario.Text); oContactoEmpleado.Guardar(); contContactosAsig++; } } //******************************************************************************************************** MessageBox.Show("Guardado correctamente", "Confirmación", MessageBoxButtons.OK, MessageBoxIcon.Information); Close(); } else { MessageBox.Show("Registro no guardado", "Advertencia", MessageBoxButtons.OK, MessageBoxIcon.Warning); } } else { int cont = 0; oEmpleado.Idempleado = Convert.ToInt32(txbIDEmpleado.Text); //ACTUALIZANDO if (oEmpleado.Actualizar()) { //************************************************* CONTACTOS ************************************************ //Recorremos todos los registros for (int x = 0; x < int.Parse(dtgvDatosContactos.Rows.Count.ToString()); x++) { //Validamos si contiene algo la celda if (dtgvDatosContactos.Rows[x].Cells[0].Value.ToString() == "") { //En este caso no contiene nada por lo que es un contacto nuevo y debemos insertarlo oContacto.Tipo = dtgvDatosContactos.Rows[x].Cells[1].Value.ToString(); oContacto.Contacto = dtgvDatosContactos.Rows[x].Cells[2].Value.ToString(); oContacto.Guardar(); cont++; } } //Recorremos la lista para eliminar los contactos desechados for (int y = 0; y < _idContactos.Count; y++) { int can2 = 0; //Recorremos los contactos que quedaron en el dtgv for (int h = 0; h < int.Parse(dtgvDatosContactos.Rows.Count.ToString()); h++) { if (dtgvDatosContactos.Rows[h].Cells[0].Value.ToString() == "") { } else { //Si lo q hay en la lista y lo q hay en el dtgv son iguales if (_idContactos[y] == Convert.ToInt32(dtgvDatosContactos.Rows[h].Cells[0].Value.ToString())) { can2++; } } } //Si esto es igual a 0 quiere decir q no se escontro en el dtgv //Por lo tanto tenemos q eliminarlo if (can2 == 0) { //Eliminanos la asociacion oContactoEmpleado.Idcontacto = _idContactos[y]; oContactoEmpleado.Idempleado = Convert.ToInt32(txbIDEmpleado.Text); oContactoEmpleado.EliminarPorContacto(); //Eliminanos el contacto oContacto.Idcontacto = _idContactos[y]; oContacto.Eliminar(); } } int contContactosAsig = 0; //Asignamos los contactos creados al empleado q acabamos de agregar for (int g = 0; g < cont; g++) { oContactoEmpleado.Idcontacto = (Convert.ToInt32(lblContac.Text)) + contContactosAsig; oContactoEmpleado.Idempleado = Convert.ToInt32(txbIDEmpleado.Text); oContactoEmpleado.Guardar(); contContactosAsig++; } //********************************************************************************************************* MessageBox.Show("Editado correctamente", "Confirmación", MessageBoxButtons.OK, MessageBoxIcon.Information); Close(); } else { MessageBox.Show("Registro no editado", "Advertencia", MessageBoxButtons.OK, MessageBoxIcon.Warning); } } } }
private void btnEliminar_Click(object sender, EventArgs e) { if (Convert.ToInt32(dtgvDatos.Rows.Count.ToString()) <= 0) { MessageBox.Show("Actualmente no existe ningún registro", "Advertencia", MessageBoxButtons.OK, MessageBoxIcon.Warning); } else { if (MessageBox.Show("Desea eliminar el registro seleccionado?", "Pregunta", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes) { int idempleado = Convert.ToInt32(dtgvDatos.CurrentRow.Cells["idempleado"].Value.ToString()); CLS.Empleados oEmpleado = new CLS.Empleados(); oEmpleado.Idempleado = idempleado; if (oEmpleado.Eliminar()) { //Si no tiene referencias de contactos se elimina directamente el registro MessageBox.Show("Registro eliminado exitosamente", "Confirmacion", MessageBoxButtons.OK, MessageBoxIcon.Information); CargarDatos(); } else { //En caso que si los tenga, preguntamos si desea continuar if (MessageBox.Show("Si continua, se eliminaran los contactos asociados al registro", "Pregunta", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes) { CLS.Contactos oContacto = new CLS.Contactos(); CLS.ContactosEmpleados oContacEmpleado = new CLS.ContactosEmpleados(); DataTable idContactosAEliminar = new DataTable(); idContactosAEliminar = CacheManager.SystemCache.IDContactosABorrarOModificarEmpleados(idempleado); //Eliminamos las referencias de contactos oContacEmpleado.Idempleado = idempleado; oContacEmpleado.Eliminar(); //Eliminamos los contactos for (int i = 0; i < int.Parse(idContactosAEliminar.Rows.Count.ToString()); i++) { oContacto.Idcontacto = Convert.ToInt32(idContactosAEliminar.Rows[i]["idcontacto"].ToString()); oContacto.Eliminar(); } //Eliminamos el registro if (oEmpleado.Eliminar()) { //Si se elimino correctamente notificamos q se realizo bien MessageBox.Show("Registro eliminado exitosamente", "Confirmacion", MessageBoxButtons.OK, MessageBoxIcon.Information); CargarDatos(); } else { MessageBox.Show("El registro no pudo ser eliminado correctamente", "Advertencia", MessageBoxButtons.OK, MessageBoxIcon.Warning); } } else { MessageBox.Show("El registro no pudo ser eliminado correctamente", "Advertencia", MessageBoxButtons.OK, MessageBoxIcon.Warning); } } } } }