Commit 0f29acbb by sistem26user

registro de libres en HCD completo y add y edit de aulas a un 90 %

parent e81b8464
......@@ -93,7 +93,7 @@ public interface AulaDAO {
public ArrayList<Aula> listarAula(String aulas, String periodo) throws Exception;
public ArrayList<Aula> listarAulaPorSede(int codSede) throws Exception;
public ArrayList<Aula> listarAulaPorSede(int codSede,int periodo) throws Exception;
public ArrayList<Aula> listarDatosHorairo(String codSede, String periodo) throws Exception;
......
......@@ -162,6 +162,7 @@ public interface HorarioDAO {
public JSONObject registrarConformidad(JSONObject object,String codDocente,String codPeriodo)throws Exception;
public JSONObject mostrarNuevaHoras(JSONObject object)throws Exception;
public JSONObject deshabilitarHorario(JSONObject object)throws Exception;
public int updateGrupoAula(String codAulas,String cantidad,String periodo,String codAulasAntiguo)throws Exception;
}
......@@ -2430,7 +2430,7 @@ public class MySqlAulaDAO implements AulaDAO {
}
@Override
public ArrayList<Aula> listarAulaPorSede(int codSede) throws Exception {
public ArrayList<Aula> listarAulaPorSede(int codSede,int periodo) throws Exception {
ArrayList<Aula> lista = new ArrayList<Aula>();
String base = "horario";
Connection cnx = null;
......@@ -2438,21 +2438,49 @@ public class MySqlAulaDAO implements AulaDAO {
cnx = MySqlDAOFactory.obtenerConexion(base);
Statement st = cnx.createStatement();
String query = "SELECT IFNULL(periodo_academico.nom_per,'SIN NOMBRE') nom_per,aula.codaula,aula.codlocal,aula.codtipocentro,aula.cocentro,aula.codnivel,aula.codtipogrado, \n" +
" aula.codgrado,aula.codseccion,aula.codturno,sede.des_loc,tipo_centro.destipocentro,centro.descentro, \n" +
" nivel.desnivel,tipo_grado.destipogrado,grado.desgrado,seccion.desseccion,turno.desturno,aula.estado,aula.nombre FROM aula \n" +
" INNER JOIN sede on sede.cod_loc=aula.codlocal \n" +
" INNER JOIN tipo_centro on tipo_centro.codtipocentro=aula.codtipocentro \n" +
" INNER JOIN centro on centro.codcentro=aula.cocentro \n" +
" INNER JOIN nivel on nivel.codnivel=aula.codnivel \n" +
" INNER JOIN tipo_grado on tipo_grado.codtipogrado=aula.codtipogrado \n" +
" INNER JOIN grado on grado.codgrado=aula.codgrado \n" +
" INNER JOIN seccion on seccion.codseccion=aula.codseccion \n" +
" INNER JOIN turno on turno.codturno=aula.codturno \n" +
" left JOIN periodo_academico on aula.periodo=periodo_academico.cod_per\n" +
" WHERE aula.codlocal="+codSede+" and aula.estado='1' and aula.anno and nivel.codnivel not in (1,2) \n" +
" ORDER BY -periodo_academico.nom_per DESC ,sede.des_loc,tipo_centro.destipocentro,centro.descentro, \n" +
" nivel.desnivel,tipo_grado.destipogrado,grado.desgrado,turno.desturno,seccion.desseccion ";
String query = "SELECT t.desnivel,t.codaula,t.nombre,t.destipogrado,t.desgrado,t.desseccion,t.desturno,t.des_loc\n" +
"FROM (\n" +
"\n" +
"SELECT aula.codaula, \n" +
" sede.des_loc, \n" +
" nivel.desnivel,tipo_grado.destipogrado,grado.desgrado,seccion.desseccion,turno.desturno,aula.nombre \n" +
" ,(SELECT count(*) as cant FROM horario_curso_docente WHERE codaula=aula.codaula and cod_per="+periodo+") as horarios\n" +
"FROM aula \n" +
" INNER JOIN sede on sede.cod_loc=aula.codlocal \n" +
" INNER JOIN tipo_centro on tipo_centro.codtipocentro=aula.codtipocentro \n" +
" INNER JOIN centro on centro.codcentro=aula.cocentro \n" +
" INNER JOIN nivel on nivel.codnivel=aula.codnivel \n" +
" INNER JOIN tipo_grado on tipo_grado.codtipogrado=aula.codtipogrado \n" +
" INNER JOIN grado on grado.codgrado=aula.codgrado \n" +
" INNER JOIN seccion on seccion.codseccion=aula.codseccion \n" +
" INNER JOIN turno on turno.codturno=aula.codturno\n" +
" \n" +
"WHERE \n" +
" aula.codlocal = "+codSede+" and \n" +
"aula.estado='1' and \n" +
"aula.anno and nivel.codnivel not in (1,2) \n" +
"ORDER BY sede.des_loc,tipo_centro.destipocentro,centro.descentro, \n" +
" nivel.desnivel,tipo_grado.destipogrado,grado.desgrado,turno.desturno,seccion.desseccion\n" +
"\n" +
") AS t\n" +
"where t.horarios = 0";
// query sin el filtro de aulas sin horario
// String query = "SELECT IFNULL(periodo_academico.nom_per,'SIN NOMBRE') nom_per,aula.codaula,aula.codlocal,aula.codtipocentro,aula.cocentro,aula.codnivel,aula.codtipogrado, \n" +
//" aula.codgrado,aula.codseccion,aula.codturno,sede.des_loc,tipo_centro.destipocentro,centro.descentro, \n" +
//" nivel.desnivel,tipo_grado.destipogrado,grado.desgrado,seccion.desseccion,turno.desturno,aula.estado,aula.nombre FROM aula \n" +
//" INNER JOIN sede on sede.cod_loc=aula.codlocal \n" +
//" INNER JOIN tipo_centro on tipo_centro.codtipocentro=aula.codtipocentro \n" +
//" INNER JOIN centro on centro.codcentro=aula.cocentro \n" +
//" INNER JOIN nivel on nivel.codnivel=aula.codnivel \n" +
//" INNER JOIN tipo_grado on tipo_grado.codtipogrado=aula.codtipogrado \n" +
//" INNER JOIN grado on grado.codgrado=aula.codgrado \n" +
//" INNER JOIN seccion on seccion.codseccion=aula.codseccion \n" +
//" INNER JOIN turno on turno.codturno=aula.codturno \n" +
//" left JOIN periodo_academico on aula.periodo=periodo_academico.cod_per\n" +
//" WHERE aula.codlocal="+codSede+" and aula.estado='1' and aula.anno and nivel.codnivel not in (1,2) \n" +
//" ORDER BY -periodo_academico.nom_per DESC ,sede.des_loc,tipo_centro.destipocentro,centro.descentro, \n" +
//" nivel.desnivel,tipo_grado.destipogrado,grado.desgrado,turno.desturno,seccion.desseccion ";
System.out.println(query);
......@@ -2461,25 +2489,25 @@ public class MySqlAulaDAO implements AulaDAO {
while (rs.next()) {
Aula aula = new Aula();
aula.setCodigoAula(rs.getInt("codaula"));
aula.setCodigoLocal(rs.getString("codlocal"));
aula.setNombreLocal(rs.getString("des_loc"));
aula.setCodigoTipoCentro(rs.getString("codtipocentro"));
aula.setNombreTipoCentro(rs.getString("destipocentro"));
aula.setCodigoCentro(rs.getString("cocentro"));
aula.setNombreCentro(rs.getString("descentro"));
aula.setCodigoNivel(rs.getString("codnivel"));
aula.setNombreNivel(rs.getString("desnivel"));
aula.setCodigoTipoGrado(rs.getString("codtipogrado"));
aula.setNombreTipoGrado(rs.getString("destipogrado"));
aula.setCodigoGrado(rs.getString("codgrado"));
aula.setNombreGrado(rs.getString("desgrado"));
aula.setCodigoSeccion(rs.getString("codseccion"));
aula.setNombreSeccion(rs.getString("desseccion"));
aula.setCodigoTurno(rs.getString("codturno"));
aula.setNombreTurno(rs.getString("desturno"));
aula.setNombre(rs.getString("nombre"));
aula.setEstadoAula(rs.getInt("estado"));
aula.setNombrePeriodo(rs.getString("nom_per"));
lista.add(aula);
}
} catch (Exception e) {
......
......@@ -822,7 +822,7 @@ public class MySqlHorarioDAO implements HorarioDAO {
if (codHcd != "") {
//update
String estadoHcd = codigoCurso == "61" ? "4" : "1";
String estadoHcd = codigoCurso.equals("61") || codigoCurso.equals("62") ? "4" : "1";
queryInsertUpdate = " UPDATE horario_curso_docente SET est_hcd='" + estadoHcd + "' where cod_hcd = " + codHcd + "";
......@@ -831,7 +831,7 @@ public class MySqlHorarioDAO implements HorarioDAO {
} else {
String estadoHcd = codigoCurso.equals("61") ? "4" : "1";
String estadoHcd = codigoCurso.equals("61") || codigoCurso.equals("62") ? "4" : "1";
queryInsertUpdate = " INSERT INTO horario_curso_docente (codAula,dia,pos_blo,hor_ini,hor_fin,cod_tur,cod_cur,cod_doc,est_hcd,cod_per,codGru,codSec,cod_gru_aul) "
+ " VALUES ('" + codigoAula + "','" + dia + "','" + Posicionbloque + "','" + Hini + "','" + Hfin + "','" + codigoTurno + "','" + codigoCurso + "','" + codigoDocente + "','" + estadoHcd + "','" + periodo + "','" + codigoGrupo + "','" + clase + "','" + grupoAulas + "')";
......@@ -2243,7 +2243,7 @@ public class MySqlHorarioDAO implements HorarioDAO {
// sino cruce =0
String query = "";
if (codigoCurso.equals("61")) {
if (codigoCurso.equals("61") || codigoCurso.equals("62")) {
query = "INSERT INTO horario_curso_docente (codAula,dia,pos_blo,hor_ini,hor_fin,cod_tur,cod_cur,cod_doc,est_hcd,cod_per,codGru,codSec,cod_gru_aul) "
+ "VALUES ('" + codigoAula + "','" + dia + "','" + Posicionbloque + "','" + Hini + "','" + Hfin + "','" + codigoTurno + "','" + codigoCurso + "','" + codigoDocente + "','4','" + periodo + "','" + codigoGrupo + "','" + clase + "','" + grupoAulas + "')";
......@@ -4088,6 +4088,43 @@ public class MySqlHorarioDAO implements HorarioDAO {
}
}
@Override
public int updateGrupoAula(String codAulas, String cantidad, String periodo,String codAulasAntiguo) throws Exception {
int dato = 0;
Connection cnx = null;
String base = "horario";
PreparedStatement pst = null;
ResultSet rs = null;
int codGrupoAulas = 0;
try {
cnx = MySqlDAOFactory.obtenerConexion(base);
Statement st = cnx.createStatement();
String replaceCodigo =codAulasAntiguo.replace("#",",");
String query = "SELECT cod_gru_aul FROM grupo_aulas WHERE cod_per='"+periodo+"' and cad_aul LIKE '%"+replaceCodigo+"%' and est_gru_aul=1";
pst = cnx.prepareStatement(query);
System.out.println("obtenerGrupoAula" + query);
rs = pst.executeQuery();
while(rs.next()){
codGrupoAulas = rs.getInt("cod_gru_aul");
}
if(codGrupoAulas > 0){
String replaceCodAulas =codAulas.replace("#",",");
String update = "UPDATE grupo_aulas SET cad_aul='"+replaceCodAulas+"',cantidad="+cantidad+" where cod_gru_aul='"+codGrupoAulas+"' and cod_per='"+periodo+"'";
dato = pst.executeUpdate(update);
}
} catch (Exception e) {
e.printStackTrace();
} finally {
if (cnx != null) {
cnx.close();
}
}
return dato;
}
}
......@@ -451,10 +451,10 @@ public class AulaServices {
}
return lista;
}
public ArrayList<Aula> listarAulaPorSede(int codSede){
public ArrayList<Aula> listarAulaPorSede(int codSede,int periodo){
ArrayList<Aula> lista=null;
try {
lista=objAulaDAO.listarAulaPorSede(codSede);
lista=objAulaDAO.listarAulaPorSede(codSede,periodo);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
......
......@@ -303,10 +303,10 @@ public class HorarioServices {
return dato;
}
public int registrarAsigCurDoceHorarioPersonalizado(String codigoAula, String dia, String Posicionbloque, String Hini, String Hfin, String codigoTurno, String codigoCurso, String codigoDocente, String periodo, String codigoGrupo, int codUsuario, int clase, String grupoAulas, String historial, String motivoCambio, String observacion, String condicionTrabajador, String horaAviso, String recuperacion,String fechafin,String fechainicio,String cadenaTotal,String avance,String fecha_recuperacion,String curso_recuperacion,String aula_recuperacion,String docente_recuperacion,String fecha_aviso,String horaInicioRecuperacion,String horaFinRecuperacion) {
public int registrarAsigCurDoceHorarioPersonalizado(String codigoAula, String dia, String Posicionbloque, String Hini, String Hfin, String codigoTurno, String codigoCurso, String codigoDocente, String periodo, String codigoGrupo, int codUsuario, int clase, String grupoAulas, String historial, String motivoCambio, String observacion, String condicionTrabajador, String horaAviso, String recuperacion, String fechafin, String fechainicio, String cadenaTotal, String avance, String fecha_recuperacion, String curso_recuperacion, String aula_recuperacion, String docente_recuperacion, String fecha_aviso, String horaInicioRecuperacion, String horaFinRecuperacion) {
int dato = 0;
try {
dato = objHorarioDAO.registrarAsigCurDoceHorarioPersonalizado(codigoAula, dia, Posicionbloque, Hini, Hfin, codigoTurno, codigoCurso, codigoDocente, periodo, codigoGrupo, codUsuario, clase, grupoAulas, historial, motivoCambio, observacion, condicionTrabajador, horaAviso, recuperacion,fechafin,fechainicio,cadenaTotal,avance,fecha_recuperacion,curso_recuperacion,aula_recuperacion,docente_recuperacion,fecha_aviso,horaInicioRecuperacion,horaFinRecuperacion);
dato = objHorarioDAO.registrarAsigCurDoceHorarioPersonalizado(codigoAula, dia, Posicionbloque, Hini, Hfin, codigoTurno, codigoCurso, codigoDocente, periodo, codigoGrupo, codUsuario, clase, grupoAulas, historial, motivoCambio, observacion, condicionTrabajador, horaAviso, recuperacion, fechafin, fechainicio, cadenaTotal, avance, fecha_recuperacion, curso_recuperacion, aula_recuperacion, docente_recuperacion, fecha_aviso, horaInicioRecuperacion, horaFinRecuperacion);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
......@@ -324,10 +324,11 @@ public class HorarioServices {
}
return lista;
}
public JSONObject consultarHorarioByAula(String dia, String codAula, String periodo, String posicionbloque) {
JSONObject lista = null;
try {
lista = objHorarioDAO.consultarHorarioByAula(dia,codAula,periodo,posicionbloque);
lista = objHorarioDAO.consultarHorarioByAula(dia, codAula, periodo, posicionbloque);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
......@@ -679,6 +680,7 @@ public class HorarioServices {
}
return jReturn;
}
public JSONObject listarVistaDobleDisponibilidad2(JSONObject json) {
JSONObject jReturn = null;
try {
......@@ -688,6 +690,7 @@ public class HorarioServices {
}
return jReturn;
}
public JSONObject listarVistaDobleDisponibilidadSinZona(JSONObject json) {
JSONObject jReturn = null;
try {
......@@ -698,7 +701,7 @@ public class HorarioServices {
return jReturn;
}
public JSONObject listarVistaHorarioDisponibilidad(JSONObject json){
public JSONObject listarVistaHorarioDisponibilidad(JSONObject json) {
JSONObject jReturn = null;
try {
jReturn = objHorarioDAO.listarVistaHorarioDisponibilidad(json);
......@@ -707,7 +710,8 @@ public class HorarioServices {
}
return jReturn;
}
public JSONObject listarVistaHorarioConformidad(JSONObject json){
public JSONObject listarVistaHorarioConformidad(JSONObject json) {
JSONObject jReturn = null;
try {
jReturn = objHorarioDAO.listarVistaHorarioConformidad(json);
......@@ -717,7 +721,7 @@ public class HorarioServices {
return jReturn;
}
public JSONObject listarVistaHorarioDocenteDni(JSONObject json){
public JSONObject listarVistaHorarioDocenteDni(JSONObject json) {
JSONObject jReturn = null;
try {
jReturn = objHorarioDAO.listarVistaHorarioDocenteDni(json);
......@@ -727,7 +731,8 @@ public class HorarioServices {
return jReturn;
}
public JSONObject listarVistaHorarioDocenteDni2(JSONObject json){
public JSONObject listarVistaHorarioDocenteDni2(JSONObject json) {
JSONObject jReturn = null;
try {
jReturn = objHorarioDAO.listarVistaHorarioDocenteDni2(json);
......@@ -737,7 +742,8 @@ public class HorarioServices {
return jReturn;
}
public JSONObject mostrarNuevaHoras(JSONObject json){
public JSONObject mostrarNuevaHoras(JSONObject json) {
JSONObject jReturn = null;
try {
jReturn = objHorarioDAO.mostrarNuevaHoras(json);
......@@ -747,7 +753,8 @@ public class HorarioServices {
return jReturn;
}
public JSONObject deshabilitarHorario(JSONObject json){
public JSONObject deshabilitarHorario(JSONObject json) {
JSONObject jReturn = null;
try {
jReturn = objHorarioDAO.deshabilitarHorario(json);
......@@ -758,22 +765,21 @@ public class HorarioServices {
return jReturn;
}
public Horario verDocenteExamenEncuesta(String codigoDocente, String codigoPlana ){
public Horario verDocenteExamenEncuesta(String codigoDocente, String codigoPlana) {
Horario horario = new Horario();
try {
horario=objHorarioDAO.verDocenteExamenEncuesta(codigoDocente, codigoPlana);
horario = objHorarioDAO.verDocenteExamenEncuesta(codigoDocente, codigoPlana);
} catch (Exception e) {
e.printStackTrace();
}
return horario;
}
public Horario verDocenteCelular(String codigoDocente ){
public Horario verDocenteCelular(String codigoDocente) {
Horario horario = new Horario();
try {
horario=objHorarioDAO.verDocenteCelular(codigoDocente);
horario = objHorarioDAO.verDocenteCelular(codigoDocente);
} catch (Exception e) {
e.printStackTrace();
......@@ -781,8 +787,8 @@ public class HorarioServices {
return horario;
}
public int updateCambioCurso(String codigoAula,String periodo,String dia,String posBloque,String nombreCursoNuevo){
int retorno=0;
public int updateCambioCurso(String codigoAula, String periodo, String dia, String posBloque, String nombreCursoNuevo) {
int retorno = 0;
try {
retorno = objHorarioDAO.updateCambioCurso(codigoAula, periodo, dia, posBloque, nombreCursoNuevo);
......@@ -791,8 +797,8 @@ public class HorarioServices {
return retorno;
}
public int updateDisponibilidad(String codDocente,String periodo,String turno,String dia){
int retorno=0;
public int updateDisponibilidad(String codDocente, String periodo, String turno, String dia) {
int retorno = 0;
try {
retorno = objHorarioDAO.updateDisponibilidad(codDocente, periodo, turno, dia);
......@@ -801,8 +807,8 @@ public class HorarioServices {
return retorno;
}
public int rollbackDisponibilidad(String codDocente,String periodo,String turno,String dia){
int retorno=0;
public int rollbackDisponibilidad(String codDocente, String periodo, String turno, String dia) {
int retorno = 0;
try {
retorno = objHorarioDAO.rollbackDisponibilidad(codDocente, periodo, turno, dia);
......@@ -811,11 +817,10 @@ public class HorarioServices {
return retorno;
}
public int registroInforme(String argumento, String motivo, String codigoDocente, String nombreDocente, String nombreSede, String codigoSede){
int retorno=0;
public int registroInforme(String argumento, String motivo, String codigoDocente, String nombreDocente, String nombreSede, String codigoSede) {
int retorno = 0;
try {
retorno=objHorarioDAO.registroInforme(argumento, motivo, codigoDocente, nombreDocente, nombreSede, codigoSede);
retorno = objHorarioDAO.registroInforme(argumento, motivo, codigoDocente, nombreDocente, nombreSede, codigoSede);
} catch (Exception e) {
}
......@@ -823,11 +828,11 @@ public class HorarioServices {
return retorno;
}
public int insertarNuevaHoras(JSONObject json){
int retorno=0;
try {
retorno=objHorarioDAO.insertarNuevaHoras(json);
public int insertarNuevaHoras(JSONObject json) {
int retorno = 0;
try {
retorno = objHorarioDAO.insertarNuevaHoras(json);
} catch (Exception e) {
}
......@@ -836,5 +841,15 @@ public class HorarioServices {
}
public int updateGrupoAula(String codAulas,String cantidad,String periodo,String codAulasAntiguo){
int retorno = 0;
try {
retorno = objHorarioDAO.updateGrupoAula(codAulas,cantidad,periodo,codAulasAntiguo);
} catch (Exception e) {
}
return retorno;
}
}
......@@ -2698,8 +2698,9 @@ public class ServletAula extends HttpServlet {
String nombre = request.getParameter("nombre");
int codSede = Integer.parseInt(request.getParameter("codSede"));
int periodo = Integer.parseInt(request.getParameter("codperiodo"));
lista = servicios.listarAulaPorSede(codSede);
lista = servicios.listarAulaPorSede(codSede,periodo);
response.setContentType("text/html");
PrintWriter pw = response.getWriter();
......
......@@ -182,6 +182,8 @@ public class ServletHorario extends HttpServlet {
mostrarNuevaHoras(request,response);
}else if("deshabilitarHorario".equals(param)){
deshabilitarHorario(request,response);
}else if("updateGrupoAula".equals(param)){
updateGrupoAula(request,response);
}
}
......@@ -2788,6 +2790,7 @@ public class ServletHorario extends HttpServlet {
int codigoSede = sedeServices.obtenerCodigoSede(cadenaAulas);
int codigoGrupoAulas = serviciosHor.registrarGrupoAula(codPeriodo, cadenaAulas, aulas.length, codigo);
System.out.println("codigoGrupoAulas>>>>>> " + codigoGrupoAulas);
//REGISTRAR GRUPO AULAS
// GUARDAR MAXIMOS Y MINIMOS HORARIOS POR DIA
......@@ -3224,7 +3227,7 @@ public class ServletHorario extends HttpServlet {
+ " </a>\n"
+ " </td>"
+ " <td align='right' valign='middle' height='40' style=\"width:134px\">"
+ " <a id=\"tachoEliminar\" title=\"Eliminar bloque\" style=\"text-decoration:none\" href=\"javascript:EliminarElBloque('" + aulas[i] + "','" + codPeriodo + "');\" >\n"
+ " <a id=\"tachoEliminar\" title=\"Eliminar bloque\" style=\"text-decoration:none\" href=\"javascript:EliminarTodoElAula('" + aulas[i] + "','" + codPeriodo + "');\" >\n"
+ " <span class=\"blue\">\n"
+ " <i class=\"ace-icon fa fa-trash bigger-130\"></i>\n"
+ " Eliminar todo el aula"
......@@ -3243,7 +3246,7 @@ public class ServletHorario extends HttpServlet {
" Agregar Aula\n" +
" </button></td></center>");
pw.println(" <input type='hidden' id='hora_inicio_1' value='" + min_ini_1 + "'>"
pw.println("<input type='hidden' id='hora_inicio_1' value='" + min_ini_1 + "'>"
+ "<input type='hidden' id='hora_termino_1' value='" + max_fin_1 + "'>"
+ "<input type='hidden' id='cadenaHorasIni_1' value='" + horas_ini_1 + "'>"
+ "<input type='hidden' id='cadenaHorasFin_1' value='" + horas_fin_1 + "'>");
......@@ -5472,6 +5475,19 @@ public class ServletHorario extends HttpServlet {
}
private void updateGrupoAula(HttpServletRequest request, HttpServletResponse response) {
HorarioServices servicios = new HorarioServices();
String codAulas = request.getParameter("codAulas");
String periodo = request.getParameter("periodo");
String cantidad = request.getParameter("cantidad");
String codAulasAntiguo = request.getParameter("codAulasAntiguo");
servicios.updateGrupoAula(codAulas,cantidad,periodo,codAulasAntiguo);
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment