public bool modificarPuesto(string codigo, string nombreDePuesto, string empresa, List<Caracteristica> caract, string descripcion = null) { Puesto nuevoPuesto = new Puesto(codigo, nombreDePuesto, empresa, descripcion); inicializarCaracteristicas(nuevoPuesto, caract); return admBD.modificarPuesto(nuevoPuesto); }
public bool duplicar_Esquema_Para_Evaluacion(Puesto puestoAsociado, List<Candidato> cand_Seleccionados) { AdministradorBD admBD = new AdministradorBD(); bool realizado = admBD.guardar_Evaluacion(puestoAsociado, cand_Seleccionados); if (realizado) return true; else return false; }
public Empleado(int idEmpleado, string dniEmp, string nombreEmp, string apellidoEmp, DateTime fechaNac, string direccionEmp, string telefonoEmp, string emailEmp, Departamento departamentoEmp, Puesto puestoEmp, Ciudad ciudadEmp) { _IdEmpleado = idEmpleado; _DniEmp = dniEmp; _NombreEmp = nombreEmp; _ApellidoEmp = apellidoEmp; _FechaNac = fechaNac; _DireccionEmp = direccionEmp; _TelefonoEmp = telefonoEmp; _EmailEmp = emailEmp; _DepartamentoEmp = departamentoEmp; _PuestoEmp = puestoEmp; _CiudadEmp = ciudadEmp; }
public PuestoAtencion(Puesto puesto) { this.puesto = puesto; }
public bool guardar_Evaluacion(Puesto puestoAsociado, List<Candidato> listaCandidatos_aEvaluar) { MySql.Data.MySqlClient.MySqlTransaction transaccion; bool conexionExitosa; int cantDeFilasAfectadas = 0; conexionExitosa = iniciarConexion(); string consultaSql1 = "INSERT INTO `puesto evaluado`(codigo,nombre,descripcion,empresa) " + "VALUES ('" + puestoAsociado.Codigo + "','" + puestoAsociado.Nombre + "','" + puestoAsociado.Descripcion + "','" + puestoAsociado.Empresa + "');"; MySql.Data.MySqlClient.MySqlCommand comando1 = new MySqlCommand(), comando2 = new MySqlCommand(), comando3 = new MySqlCommand(), comando4 = new MySqlCommand(); MySql.Data.MySqlClient.MySqlCommand comando5 = new MySqlCommand(), comando6 = new MySqlCommand(), comando7 = new MySqlCommand(), comando8 = new MySqlCommand(); comando1.Connection = ObjConexion; comando1.CommandType = CommandType.Text; comando1.CommandTimeout = 0; comando1.CommandText = consultaSql1; comando2.Connection = ObjConexion; comando2.CommandType = CommandType.Text; comando2.CommandTimeout = 0; comando3.Connection = ObjConexion; comando3.CommandType = CommandType.Text; comando3.CommandTimeout = 0; comando4.Connection = ObjConexion; comando4.CommandType = CommandType.Text; comando4.CommandTimeout = 0; comando5.Connection = ObjConexion; comando5.CommandType = CommandType.Text; comando5.CommandTimeout = 0; comando6.Connection = ObjConexion; comando6.CommandType = CommandType.Text; comando6.CommandTimeout = 0; comando7.Connection = ObjConexion; comando7.CommandType = CommandType.Text; comando7.CommandTimeout = 0; comando8.Connection = ObjConexion; comando8.CommandType = CommandType.Text; comando8.CommandTimeout = 0; transaccion = ObjConexion.BeginTransaction(); try { if (!conexionExitosa) return false; comando1.Transaction = transaccion; comando2.Transaction = transaccion; comando3.Transaction = transaccion; comando4.Transaction = transaccion; comando5.Transaction = transaccion; comando6.Transaction = transaccion; comando7.Transaction = transaccion; comando8.Transaction = transaccion; cantDeFilasAfectadas += comando1.ExecuteNonQuery(); for (int i = 0; i < listaCandidatos_aEvaluar.Count; i++) { string fecha_estado_activo = formatear_fecha(DateTime.Now); string consultaSql2 = "INSERT INTO cuestionario(clave,nroAccesos,`Puesto Evaluado_idPuesto Evaluado`,Candidato_idCandidato) " + "VALUES ('" + listaCandidatos_aEvaluar[i].Clave + "',0," + "(SELECT MAX(`idPuesto Evaluado`) FROM `puesto evaluado`)," + "(SELECT DISTINCT idCandidato FROM candidato WHERE `nro documento` = '" + listaCandidatos_aEvaluar[i].NroDoc + "'));"; comando2.CommandText = consultaSql2; cantDeFilasAfectadas += comando2.ExecuteNonQuery(); string consultaSql3 = "INSERT INTO cuestionario_estado(Cuestionario_idCuestionario,Estado_idEstado,fecha) " + "VALUES ((SELECT idCuestionario FROM cuestionario WHERE clave = '" + listaCandidatos_aEvaluar[i].Clave + "'),1,'" + fecha_estado_activo + "');"; comando3.CommandText = consultaSql3; cantDeFilasAfectadas += comando3.ExecuteNonQuery(); } for (int i = 0; i < puestoAsociado.Caracteristicas.Count; i++) { Competencia competencia1 = (Competencia)puestoAsociado.Caracteristicas[i].dato1; if (!existeCompetenciaEv(competencia1.Codigo)) { string consultaSql4 = "INSERT INTO `competencia evaluada`(codigo,nombre,descripcion) " + "VALUES ('" + competencia1.Codigo + "','" + competencia1.Nombre + "','" + competencia1.Descripcion + "');"; comando4.CommandText = consultaSql4; cantDeFilasAfectadas += comando4.ExecuteNonQuery(); for (int j = 0; j < competencia1.ListaFactores.Count; j++) { Factor factor_Asociado = competencia1.ListaFactores[j]; if (!existeFactorEv(factor_Asociado.Codigo)) { string consultaSql5 = "INSERT INTO `factor evaluado`(codigo,nombre,nroOrden,descripcion,`Competencia Evaluada_idCompetencia Evaluada`) " + "VALUES ('" + factor_Asociado.Codigo + "','" + factor_Asociado.Nombre + "','" + factor_Asociado.Nro_orden + "','" + factor_Asociado.Descripcion + "'," + "(SELECT `idCompetencia Evaluada` FROM `competencia evaluada` WHERE codigo = '" + competencia1.Codigo + "'));"; comando5.CommandText = consultaSql5; cantDeFilasAfectadas += comando5.ExecuteNonQuery(); for (int p = 0; p < factor_Asociado.ListaPreguntas.Count; p++) { Pregunta preg_Asociada = factor_Asociado.ListaPreguntas[p]; string consultaSql6 = "INSERT INTO `pregunta evaluada`(codigo,nombre,pregunta,descripcion,`Factor Evaluado_idFactor Evaluado`,`Opcion de Respuesta Evaluada_idOpcion de Respuesta Evaluada`) " + "VALUES ((SELECT p.codigo FROM pregunta AS p " + "JOIN factor AS f ON (f.codigo = '" + factor_Asociado.Codigo + "' AND f.codigo = p.Factor_codigo) " + "WHERE p.nombre = '" + preg_Asociada.Nombre + "')," + "'" + preg_Asociada.Nombre + "','" + preg_Asociada.Preg_aRealizar + "','" + preg_Asociada.Descripcion + "'," + "(SELECT `idFactor Evaluado` FROM `factor evaluado` AS f " + "JOIN `competencia evaluada` AS c ON (c.codigo = '" + competencia1.Codigo + "' AND c.`idCompetencia Evaluada` = f.`Competencia Evaluada_idCompetencia Evaluada`) " + "WHERE f.codigo = '" + factor_Asociado.Codigo + "')," + "(SELECT `idOpcion de Respuesta Evaluada` FROM `opcion de respuesta evaluada` WHERE nombre = '" + preg_Asociada.OpcionRespuesta_Asociada.Nombre + "'));"; comando6.CommandText = consultaSql6; cantDeFilasAfectadas += comando6.ExecuteNonQuery(); for (int op = 0; op < preg_Asociada.OpcionRespuesta_Asociada.ListaOpciones.Count; op++) { Opciones opciones_Asociadas = preg_Asociada.OpcionRespuesta_Asociada.ListaOpciones[op]; string consultaSql7 = "INSERT INTO `pregunta evaluada_opcion evaluada`(`Opcion Evaluada_idOpcion`,`Pregunta Evaluada_idPregunta Evaluada`,ponderacion) " + "VALUES ((SELECT idOpcion FROM `opcion evaluada` WHERE nombre = '" + opciones_Asociadas.Nombre + "')," + "(SELECT `idPregunta Evaluada` FROM `pregunta evaluada` AS p " + "JOIN `factor evaluado` AS f ON (f.codigo = '" + factor_Asociado.Codigo + "' AND f.`idFactor Evaluado` = p.`Factor Evaluado_idFactor Evaluado`) " + "WHERE p.nombre = '" + preg_Asociada.Nombre + "')," + opciones_Asociadas.Valor + ");"; comando7.CommandText = consultaSql7; cantDeFilasAfectadas += comando7.ExecuteNonQuery(); }//FIN : for (int op = 0; op < preg_Asociada.OpcionRespuesta_Asociada.ListaOpciones.Count; op++) }//FIN : for (int p = 0; p < factor_Asociado.ListaPreguntas.Count; p++) }//FIN : if (existeFactorEv(factor_Asociado.Codigo)) }//FIN : for (int j = 0; j < competencia1.ListaFactores.Count; j++) }//FIN : if (!existeCompetenciaEv(competencia1.Codigo)) Ponderacion ponderacion1 = (Ponderacion)puestoAsociado.Caracteristicas[i].dato2; string consultaSql8 = "INSERT INTO `puesto evaluado_competencia evaluada` (`Puesto Evaluado_idPuesto Evaluado`,`Competencia Evaluada_idCompetencia Evaluada`,ponderacion) " + "VALUES ((SELECT MAX(`idPuesto Evaluado`) FROM `puesto evaluado`)," + "(SELECT `idCompetencia Evaluada` FROM `competencia evaluada` WHERE codigo = '" + competencia1.Codigo + "')," + ponderacion1.Valor + ");"; comando8.CommandText = consultaSql8; cantDeFilasAfectadas += comando8.ExecuteNonQuery(); }//FIN : for (int i = 0; i < puestoAsociado.Caracteristicas.Count; i++) transaccion.Commit(); terminarConexion(); } catch (MySqlException) { // si algo fallo deshacemos todo transaccion.Rollback(); // mostramos el mensaje del error MessageBox.Show("MYSQL EXCEPTION - La transaccion no se pudo realizar"); return false; } catch (DataException) { // si algo fallo deshacemos todo transaccion.Rollback(); // mostramos el mensaje del error MessageBox.Show("DATA EXCEPTION - La transaccion no se pudo realizar"); return false; } if (cantDeFilasAfectadas >= 2) { return true; } else { return false; } }
/* * ==================== * METODOS DE RESGUARDO * ==================== * - Tiene la finalidad de guardar los datos de una entidad */ public bool guardarPuesto(Puesto puesto) { //codigo, nombreDePuesto, empresa, descripcion string consultaSql1 = "INSERT INTO puesto (codigo,nombre,empresa,descripcion) " + "VALUES ('" + puesto.Codigo + "','" + puesto.Nombre + "','" + puesto.Empresa + "','" + puesto.Descripcion + "');"; MySql.Data.MySqlClient.MySqlTransaction transaccion; bool conexionExitosa; int cantDeFilasAfectadas = 0; conexionExitosa = iniciarConexion(); MySql.Data.MySqlClient.MySqlCommand comando1 = new MySqlCommand(), comando2 = new MySqlCommand(); comando1.Connection = ObjConexion; comando1.CommandType = CommandType.Text; comando1.CommandTimeout = 0; comando1.CommandText = consultaSql1; comando2.Connection = ObjConexion; comando2.CommandType = CommandType.Text; comando2.CommandTimeout = 0; transaccion = ObjConexion.BeginTransaction(); try { if (!conexionExitosa) return false; comando1.Transaction = transaccion; comando2.Transaction = transaccion; cantDeFilasAfectadas += comando1.ExecuteNonQuery(); for (int i = 0; i < puesto.Caracteristicas.Count; i++) { Competencia competencia1 = (Competencia)puesto.Caracteristicas[i].dato1; Ponderacion ponderacion1 = (Ponderacion)puesto.Caracteristicas[i].dato2; string consultaSql2 = "INSERT INTO puesto_competencia (Puesto_codigo,Competencia_codigo,ponderacion) " + "VALUES ('" + puesto.Codigo + "','" + competencia1.Codigo + "','" + ponderacion1.Valor + "');"; comando2.CommandText = consultaSql2; cantDeFilasAfectadas += comando2.ExecuteNonQuery(); } transaccion.Commit(); terminarConexion(); } catch (MySqlException MysqlEx) { // si algo fallo deshacemos todo transaccion.Rollback(); // mostramos el mensaje del error MessageBox.Show("La transaccion no se pudo realizar: " + MysqlEx.Message); } catch (DataException Ex) { // si algo fallo deshacemos todo transaccion.Rollback(); // mostramos el mensaje del error MessageBox.Show("La transaccion no se pudo realizar: " + Ex.Message); } if (cantDeFilasAfectadas >= 2) { return true; } else { return false; } }
/* * ***************************************************************** * Se reconstruyen o se trae a memoria el arbol de clases asociadas * que corresponden a un puesto puntual ****************************************************************** * - RecuperarCaracteristicasPuesto tiene la misión de recuperar todas las competencias que estan activas (no eliminadas) * y ponederaciones asociades a un puesto puntual de la base de datos */ public List<Caracteristica> reconstruir_CaracteristicasPuesto(Puesto puestoAsociado) { bool conexionExitosa; bool competenciaEsEvaluable; //Lista que se retornara con los datos finales de la busqueda List<Caracteristica> listaCaracteristicas = new List<Caracteristica>(); //Lista de caracteristicas auxiliar para realizar la busqueda (almacena los ID de las competencias y ponderaciones) List<Caracteristica> listaRetornoBD = new List<Caracteristica>(); string errorCompetenciaNoEvaluable = ""; Caracteristica elementoLista = new Caracteristica(); //La consulta selecciona las competencias asociadas al puesto pasado como parametro con su correspondiente ponderacion string consultaSql = "SELECT `Competencia_codigo`, `ponderacion` " + "FROM `puesto_competencia` ponderaciones " + "JOIN `puesto` p on (p.`codigo` = '" + puestoAsociado.Codigo + "') " + "WHERE p.codigo = ponderaciones.`Puesto_codigo`;"; conexionExitosa = iniciarConexion(); if (!conexionExitosa) { elementoLista.dato1 = "No se realizo la conexion con la base de datos";//Se informa el error listaCaracteristicas.Add(elementoLista); terminarConexion(); return listaCaracteristicas; } //Creamos un adaptador llamado "comando" para realizar la consultaSql que definimos mas arriba MySql.Data.MySqlClient.MySqlCommand comando; comando = ObjConexion.CreateCommand(); //En el adaptador comando hacemos un asignacion en su atributo CommandText de la consultaSql comando.CommandText = consultaSql; //Se hace la ejecucion del comando con el metodo ExecuterReader //y se lo asigna a una variable reader que contendra los resultados de la busqueda en la base de datos MySqlDataReader reader = comando.ExecuteReader(); if (!reader.HasRows) { //si el reader esta vacio, es qe no encontro a ese candidato elementoLista.dato1 = "El puesto no posee competencias para ser evaluado"; listaCaracteristicas.Add(elementoLista); terminarConexion(); return listaCaracteristicas; } while (reader.Read()) { //Se recuperan los ID's de las competencias y los números correspondientes a las ponderaciones string idCompetencia = reader["Competencia_codigo"].ToString(); int ponderacion = Int32.Parse(reader["ponderacion"].ToString()); //Los datos obtenidos se almacena en un elemento de la lista elementoLista.dato1 = idCompetencia; elementoLista.dato2 = ponderacion; listaRetornoBD.Add(elementoLista);//Agregamos el elemento a la lista } //Termanamos la conexion con la base de datos para evitar futuros conflictos con otras consultas terminarConexion(); for (int i = 0; i < listaRetornoBD.Count; i++) { competenciaEsEvaluable = false; //Realizamos la busqueda de las competencias evaluadas por su ID (QUE ES UNICO) Competencia competenciaAs = recuperarCompetencias((string)listaRetornoBD[i].dato1); if (competenciaAs != null) { if (competenciaAs.ListaFactores != null) { for (int j = 0; j < competenciaAs.ListaFactores.Count; j++) { if (competenciaAs.ListaFactores[j].Codigo == "INSUFICIENTES PREG") { competenciaAs.ListaFactores.Remove(competenciaAs.ListaFactores[j]); j--; } else competenciaEsEvaluable = true; } if (!competenciaEsEvaluable) errorCompetenciaNoEvaluable += "\n" + competenciaAs.Nombre; else { //Si hubo algun retorno, instanciamos un objeto del tipo ponderacion Ponderacion pondeAs = new Ponderacion((int)listaRetornoBD[i].dato2); //Agregamos la competencia y la poneración a un elemento de la lista elementoLista.dato1 = competenciaAs; elementoLista.dato2 = pondeAs; listaCaracteristicas.Add(elementoLista);//Agregamos el elemento a la lista de caracteristicas del puesto evaluado } } else errorCompetenciaNoEvaluable += "\n" + competenciaAs.Nombre; } } if (!(errorCompetenciaNoEvaluable == "")) { MessageBox.Show("La(s) Competencia(s) " + errorCompetenciaNoEvaluable + "\nno pueden ser evaluada(s)", "INFORMACION", MessageBoxButtons.OK, MessageBoxIcon.Information); return null; } else return listaCaracteristicas; }
private Negocio() { this.clientes = new Queue <Cliente>(); this.caja = Puesto.caja1; }
public PuestoAtencion(Puesto puestos) { this.puesto = puestos; }
/* * - La mision que justifica la existencia de los gestores es hacer de "interfaz" entre las ENTIDADES y el resto del sistema * - Por esto el gestor debe tener la responsabilidad de instanciar la/s que le corresponde gestionar */ public Puesto instanciarPuesto(string codigo, string nombre, string empresa, string descripcion = null) { Puesto nuevoPuesto = new Puesto(codigo, nombre, empresa, descripcion); return nuevoPuesto; }
private void inicializarCaracteristicas(Puesto puesto, List<Caracteristica> listaCaract) { for(int i = 0; i < listaCaract.LongCount(); i++) { Ponderacion pond = new Ponderacion((int)listaCaract[i].dato2); puesto.addListaCaracteristicas((Competencia)listaCaract[i].dato1, pond); } }