コード例 #1
0
        public TrabajadorCE Login(string usuario, string contra)
        {
            //Crear el comando vinculado a la conexion
            SqlCommand cmd = ConexionCD.CrearCmd(cnx);

            //Agregar la instruccion SQL
            cmd.CommandText = "select * from Trabajador where nomUsuario = @usuario and contrasena = @contra";
            //Asignar el valor al parametro
            cmd.Parameters.AddWithValue("@usuario", usuario);
            cmd.Parameters.AddWithValue("@contra", contra);
            //Ejecutar el comando
            SqlDataReader reader     = cmd.ExecuteReader();
            TrabajadorCE  trabajador = new TrabajadorCE();

            if (reader.Read())
            {
                trabajador.Dni        = reader.GetString(0);
                trabajador.Nombre     = reader.GetString(1);
                trabajador.Cargo      = reader.GetString(2);
                trabajador.NumNivel   = reader.GetInt32(3);
                trabajador.NomUsuario = reader.GetString(4);
                trabajador.Contrasena = reader.GetString(5);
            }
            //Cerrar la conexion
            cnx.Close();
            return(trabajador);
        }
コード例 #2
0
        public int CambiarHorario(string dni, DateTime annoMes, string HoraE, string HoraS)
        {
            HorarioCE horario = BuscarByDniAnnoMes(dni, annoMes);

            if (horario.Codigo != null)
            {
                annoMes = annoMes.AddMonths(1);
                horario = BuscarByDniAnnoMes(dni, annoMes);
                if (horario.Codigo != null)
                {
                    cnx.Close();
                    return(0);
                }
            }
            SqlCommand cmd = ConexionCD.CrearCmd(cnx);

            cmd.CommandText = "EstablecerHorario";
            cmd.CommandType = CommandType.StoredProcedure;
            cmd.Parameters.Add(new SqlParameter("@dni", dni));
            cmd.Parameters.Add(new SqlParameter("@HorE", HoraE));
            cmd.Parameters.Add(new SqlParameter("@HorS", HoraS));
            cmd.Parameters.Add(new SqlParameter("@AnnoMes", annoMes.ToString("yyyy-MM")));
            int FilasAfectadas = cmd.ExecuteNonQuery();

            cnx.Close();
            return(FilasAfectadas);
        }
コード例 #3
0
        public void CambiarSueldo(double sueldo, int nivel)
        {
            SqlCommand cmd = ConexionCD.CrearCmd(cnx);

            cmd.CommandText = "UPDATE Nivel set sueldoBasico=@sueldo WHERE numNivel = @nivel";
            cmd.Parameters.AddWithValue("@sueldo", sueldo);
            cmd.Parameters.AddWithValue("@nivel", nivel);
            cmd.ExecuteNonQuery();
            cnx.Close();
        }
コード例 #4
0
        public int CambiarnivelTrabajador(int nivel, string dni)
        {
            SqlCommand cmd = ConexionCD.CrearCmd(cnx);

            cmd.CommandText = "UPDATE Trabajador set numNivel=@nivel where dni=@dni ";
            cmd.Parameters.AddWithValue("@nivel", nivel);
            cmd.Parameters.AddWithValue("@dni", dni);
            int FilasAfectadas = cmd.ExecuteNonQuery();

            cnx.Close();
            return(FilasAfectadas);
        }
コード例 #5
0
        public DataTable Llenaritems()
        {
            SqlCommand cmd = ConexionCD.CrearCmd(cnx);

            cmd.CommandText = "Select * from Nivel WHERE numNivel > 0";
            SqlDataAdapter drNivel = new SqlDataAdapter(cmd);
            DataTable      dtNivel = new DataTable();

            drNivel.Fill(dtNivel);
            cnx.Close();
            return(dtNivel);
        }
コード例 #6
0
        public DataTable CargarAnno()
        {
            SqlCommand cmd = ConexionCD.CrearCmd(cnx);

            cmd.CommandText = "MostrarAnno";
            cmd.CommandType = CommandType.StoredProcedure;
            SqlDataAdapter drCargarAnno = new SqlDataAdapter(cmd);
            DataTable      dtCargaAnno  = new DataTable();

            drCargarAnno.Fill(dtCargaAnno);
            cnx.Close();
            return(dtCargaAnno);
        }
コード例 #7
0
        public DataTable RegistrosByDia(DateTime fecha)
        {
            SqlCommand cmd = ConexionCD.CrearCmd(cnx);

            cmd.CommandText = "RegistrosByDia";
            cmd.CommandType = CommandType.StoredProcedure;
            cmd.Parameters.Add(new SqlParameter("@fecha", fecha));
            SqlDataAdapter daRegistro = new SqlDataAdapter(cmd);
            DataTable      dtRegistro = new DataTable();

            daRegistro.Fill(dtRegistro);
            cnx.Close();
            return(dtRegistro);
        }
コード例 #8
0
        public DataTable Listado()
        {
            SqlCommand cmd = ConexionCD.CrearCmd(cnx);

            cmd.CommandText = "ListaTrabajador";
            cmd.CommandType = CommandType.StoredProcedure;
            cmd.Parameters.Add(new SqlParameter("@annoMes", DateTime.Now.ToString("yyyy-MM")));
            SqlDataAdapter drTrabajador = new SqlDataAdapter(cmd);
            DataTable      dtTrabajador = new DataTable();

            drTrabajador.Fill(dtTrabajador);
            cnx.Close();
            return(dtTrabajador);
        }
コード例 #9
0
        public DataTable PlanillaAnual(int anno)
        {
            SqlCommand cmd = ConexionCD.CrearCmd(cnx);

            cmd.CommandText = "PlanillaAnual";
            cmd.CommandType = CommandType.StoredProcedure;
            cmd.Parameters.Add(new SqlParameter("@anno", anno));
            SqlDataAdapter drPlanilla = new SqlDataAdapter(cmd);
            DataTable      dtPlanilla = new DataTable();

            drPlanilla.Fill(dtPlanilla);
            cnx.Close();
            return(dtPlanilla);
        }
コード例 #10
0
        public DataTable RangoMeses(string annoMesInicio, string annoMesFin)
        {
            SqlCommand cmd = ConexionCD.CrearCmd(cnx);

            cmd.CommandText = "RangoMeses";
            cmd.CommandType = CommandType.StoredProcedure;
            cmd.Parameters.Add(new SqlParameter("@annoMesInicio", annoMesInicio));
            cmd.Parameters.Add(new SqlParameter("@annoMesFin", annoMesFin));
            SqlDataAdapter drPlanilla = new SqlDataAdapter(cmd);
            DataTable      dtPlanilla = new DataTable();

            drPlanilla.Fill(dtPlanilla);
            cnx.Close();
            return(dtPlanilla);
        }
コード例 #11
0
        public DateTime PrimerRegistro()
        {
            SqlCommand cmd = ConexionCD.CrearCmd(cnx);

            cmd.CommandText = "SELECT MIN(fechaRegistro) FROM Registro";
            SqlDataReader drRegistro = cmd.ExecuteReader();
            DateTime      fecha      = DateTime.MinValue;

            if (drRegistro.Read())
            {
                fecha = drRegistro.GetDateTime(0);
            }
            cnx.Close();
            return(fecha);
        }
コード例 #12
0
        public DataTable RegistroBoleta(string dni, string annoMes)
        {
            SqlCommand cmd = ConexionCD.CrearCmd(cnx);

            cmd.CommandText = "RegistroBoleta";
            cmd.CommandType = CommandType.StoredProcedure;
            cmd.Parameters.Add(new SqlParameter("@dni", dni));
            cmd.Parameters.Add(new SqlParameter("@annoMes", annoMes));
            SqlDataAdapter drPlanilla = new SqlDataAdapter(cmd);
            DataTable      dtPlanilla = new DataTable();

            drPlanilla.Fill(dtPlanilla);
            cnx.Close();
            return(dtPlanilla);
        }
コード例 #13
0
        public DataTable ProcesarPlanilla(string annoMes)
        {
            /*SqlCommand cmd = ConexionCD.CrearCmd(cnx);
             *
             * cmd.CommandText = "Select sueldoBasico from trabajador inner join nivel on Trabajador.numNivel = nivel.numNivel where dni = @dni ";
             * SqlDataReader drProcesar = cmd.ExecuteReader();
             * double sueldo=0;
             * if (drProcesar.Read())
             * {
             *  sueldo = drProcesar.GetDouble(0);
             * }
             * drProcesar.Close();
             * cmd.CommandText = "Select minutosTardanzas, minutosAnticipadas, refrigObtenido from Registro where dniTrabajador=@dni AND MONTH(fechaRegistro)=@mes";
             * cmd.Parameters.AddWithValue("@dni", dni);
             * cmd.Parameters.AddWithValue("@mes", mes);
             * drProcesar = cmd.ExecuteReader();
             * int Tardanzas = 0;
             * int Anticipadas = 0;
             * double Refri= 0;
             * while (drProcesar.Read())
             * {
             *  if(Convert.ToInt32(drProcesar["minutosTardanzas"].ToString()) != 0)
             *  {
             *      Tardanzas++;
             *  }
             *  if (Convert.ToInt32(drProcesar["minutosAnticipadas"].ToString()) != 0)
             *  {
             *      Anticipadas++;
             *  }
             *  if(Convert.ToBoolean(drProcesar["refrigObtenido"].ToString()))
             *  {
             *      Refri += sueldo / 100;
             *  }
             *
             * }*/
            SqlCommand cmd = ConexionCD.CrearCmd(cnx);

            cmd.CommandText = "PlanillaMes";
            cmd.CommandType = CommandType.StoredProcedure;
            cmd.Parameters.Add(new SqlParameter("@annoMes", annoMes));
            SqlDataAdapter drPlanilla = new SqlDataAdapter(cmd);
            DataTable      dtPlanilla = new DataTable();

            drPlanilla.Fill(dtPlanilla);
            cnx.Close();
            return(dtPlanilla);
        }
コード例 #14
0
        public TrabajadorCE BuscarByDni(string dni)
        {
            SqlCommand cmd = ConexionCD.CrearCmd(cnx);

            cmd.CommandText = "SELECT * FROM Trabajador WHERE dni = @dni";
            cmd.Parameters.AddWithValue("@dni", dni);
            SqlDataReader drTrabajador = cmd.ExecuteReader();
            TrabajadorCE  trabajador   = new TrabajadorCE();

            if (drTrabajador.Read())
            {
                trabajador.Dni        = drTrabajador["dni"].ToString();
                trabajador.Nombre     = drTrabajador["nombre"].ToString();
                trabajador.Cargo      = drTrabajador["cargo"].ToString();
                trabajador.NumNivel   = Convert.ToInt32(drTrabajador["numNivel"].ToString());
                trabajador.NomUsuario = drTrabajador["nomUsuario"].ToString();
                trabajador.Contrasena = drTrabajador["contrasena"].ToString();
            }
            cnx.Close();
            return(trabajador);
        }
コード例 #15
0
        public HorarioCE BuscarByDniAnnoMes(string dni, DateTime annoMes)
        {
            string     AnnoMes = annoMes.ToString("yyyy-MM");
            SqlCommand cmd     = ConexionCD.CrearCmd(cnx);

            cmd.CommandText = "HorarioByDniAnnoMes";
            cmd.CommandType = CommandType.StoredProcedure;
            cmd.Parameters.Add(new SqlParameter("@dni", dni));
            cmd.Parameters.Add(new SqlParameter("@AnnoMes", AnnoMes));
            SqlDataReader drHorario = cmd.ExecuteReader();
            HorarioCE     horario   = new HorarioCE();

            if (drHorario.Read())
            {
                horario.Codigo    = drHorario.GetString(0);
                horario.AnnoMes   = drHorario.GetString(1);
                horario.HrEntrada = Convert.ToDateTime(drHorario["hrEntrada"].ToString());
                horario.HrSalida  = Convert.ToDateTime(drHorario["hrSalida"].ToString());
            }
            cnx.Close();
            return(horario);
        }
コード例 #16
0
        public RegistroCE BuscarByCod(string codigo)
        {
            SqlCommand cmd = ConexionCD.CrearCmd(cnx);

            cmd.CommandText = "SELECT * FROM Registro WHERE codigo = @codigo";
            cmd.Parameters.AddWithValue("@codigo", codigo);
            SqlDataReader drRegistro = cmd.ExecuteReader();
            RegistroCE    registro   = new RegistroCE();

            if (drRegistro.Read())
            {
                registro.Codigo             = drRegistro["codigo"].ToString();
                registro.DniTrabajador      = drRegistro["dniTrabajador"].ToString();
                registro.FechaRegistro      = Convert.ToDateTime(drRegistro["fechaRegistro"].ToString());
                registro.HrEntradaReg       = Convert.ToDateTime(drRegistro["hrEntradaReg"].ToString());
                registro.HrSalidaReg        = Convert.ToDateTime(drRegistro["hrSalidaReg"].ToString());
                registro.RefrigObtenido     = Convert.ToBoolean(drRegistro["refrigObtenido"].ToString());
                registro.MinutosTardanzas   = Convert.ToInt32(drRegistro["minutosTardanzas"].ToString());
                registro.MinutosAnticipadas = Convert.ToInt32(drRegistro["minutosAnticipadas"].ToString());
            }
            cnx.Close();
            return(registro);
        }
コード例 #17
0
        public int RegistrosPrueba()
        {
            int       mes          = 4;
            DataTable trabajadores = new TrabajadorCD().Listado();
            DateTime  annoMes;

            while (mes > 0)
            {
                //FECHA DE INICIO - 01 DE CADA MES
                annoMes = DateTime.Today.AddMonths(-mes).AddDays(-DateTime.Today.Day + 1);
                //RECORRER LISTA TRABAJADORES
                for (int i = 0; i < trabajadores.Rows.Count; i++)
                {
                    string dni = trabajadores.Rows[i].ItemArray[0].ToString();
                    //VERIFICAR SI YA EXISTEN HORARIOS EN MES DE INICIO
                    HorarioCE buscar = new HorarioCD().BuscarByDniAnnoMes(dni, annoMes);
                    if (buscar.Codigo != null)
                    {
                        //SI YA SE CREARON TERMINA EL MÉTODO
                        return(0);
                    }
                    //ESTABLECER HORARIO
                    SqlCommand cmd = ConexionCD.CrearCmd(cnx);
                    cmd.CommandText = "EstablecerHorario";
                    cmd.CommandType = CommandType.StoredProcedure;
                    //fechaContador ES LA FECHA QUE RECORRE TODO EL MES
                    DateTime fechaContador = annoMes.Date;
                    TimeSpan hrE, hrS;
                    if (i < 10)
                    {
                        //TURNO MAÑANA
                        hrE = TimeSpan.FromHours(7);
                        hrS = TimeSpan.FromHours(15);
                    }
                    else
                    {
                        //TURNO TARDE
                        hrE = TimeSpan.FromHours(15);
                        hrS = TimeSpan.FromHours(23);
                    }
                    cmd.Parameters.Add(new SqlParameter("@HorE", hrE));
                    cmd.Parameters.Add(new SqlParameter("@HorS", hrS));
                    cmd.Parameters.Add(new SqlParameter("@dni", dni));
                    cmd.Parameters.Add(new SqlParameter("@AnnoMes", annoMes.ToString("yyyy-MM")));
                    cmd.ExecuteNonQuery();
                    cnx.Close();
                    //HORAS REGISTRADAS DE ENTRADA Y SALIDA
                    TimeSpan hrEReg, hrSReg;
                    //WHILE PARA RECORRER TODO LOS DÍAS DEL MES
                    while (fechaContador < annoMes.AddMonths(1))
                    {
                        //PARA CREAR REGISTROS DIFERENTES
                        //HASTA EL TRABAJADOR N°5
                        if (i < 5)
                        {
                            hrEReg = hrE.Add(TimeSpan.FromMinutes(new Random().Next(0, 5)));
                            hrSReg = hrS.Add(TimeSpan.FromMinutes(new Random().Next(0, 10)));
                        }
                        //HASTA EL TRABAJADOR N°10
                        else if (i < 10)
                        {
                            hrEReg = hrE.Add(TimeSpan.FromMinutes(-new Random().Next(0, 10)));
                            hrSReg = hrS.Add(TimeSpan.FromMinutes(-new Random().Next(0, 5)));
                        }
                        //ETC...
                        else if (i < 15)
                        {
                            hrEReg = hrE.Add(TimeSpan.FromMinutes(-new Random().Next(0, 6)));
                            hrSReg = hrS.Add(TimeSpan.FromMinutes(new Random().Next(0, 11)));
                        }
                        //ELSE PARA LOS QUE NO ASISTIERON
                        else
                        {
                            hrEReg = TimeSpan.FromMinutes(0);
                            hrSReg = TimeSpan.FromMinutes(0);
                        }
                        //IF SOLO PARA LOS QUE SÍ ASISTIERON
                        if (hrEReg.TotalMinutes > 0)
                        {
                            DateTime fechaEntrada, fechaSalida;
                            fechaEntrada = fechaContador.Date + hrEReg;
                            fechaSalida  = fechaContador.Date + hrSReg;
                            if (fechaContador.ToString("dddd") != "domingo")
                            {
                                //REGISTRAR ENTRADA FICTICIA
                                Registrar(dni, "Entrada", fechaEntrada);
                                //REGISTRAR SALIDA FICTICIA
                                Registrar(dni, "Salida", fechaSalida);
                            }
                        }
                        //SIGUIENTE DÍA
                        fechaContador = fechaContador.AddDays(1);
                    }
                }
                //SIGUIENTE MES
                mes--;
            }
            return(1);
        }
コード例 #18
0
        public string Registrar(TrabajadorCE trabajador, string tipoControl, DateTime horaRegistro)
        {
            string dni = trabajador.Dni;

            if (dni == null || dni.Length != 8)
            {
                return("DNIincorrecto");
            }
            else
            {
                string     codigo             = string.Concat("RG", dni, "-", horaRegistro.ToString("ddMMyy"));
                HorarioCE  horario            = new HorarioCD().BuscarByDniAnnoMes(dni, horaRegistro);
                DateTime   hrSalida           = Convert.ToDateTime("00:00:00");
                bool       refrigObtenido     = true;
                double     minutosAnticipadas = 0;
                int        filasAfectadas;
                RegistroCE registro = BuscarByCod(codigo);
                SqlCommand cmd      = ConexionCD.CrearCmd(cnx);
                //using (SqlTransaction sqlTrans = cnx.BeginTransaction(IsolationLevel.ReadUncommitted))
                //{
                //try
                //{
                if (registro.Codigo == null)
                {
                    if (tipoControl == "Entrada")
                    {
                        double minutosTardanzas = (horaRegistro - horario.HrEntrada).TotalMinutes;
                        if (minutosTardanzas > 0)
                        {
                            refrigObtenido = false;
                        }
                        else
                        {
                            minutosTardanzas = 0;
                        }
                        cmd.CommandText = "INSERT INTO Registro VALUES (@codigo,@dni,@fecha,@hrEntrada,@hrSalida,@refrig,@minTard,@minAnt)";
                        cmd.Parameters.AddWithValue("@dni", dni);
                        cmd.Parameters.AddWithValue("@fecha", horaRegistro.Date);
                        cmd.Parameters.AddWithValue("@hrEntrada", horaRegistro);
                        cmd.Parameters.AddWithValue("@minTard", minutosTardanzas);
                    }
                    else
                    {
                        return("EntradaNoRegistrada");
                    }
                }
                else
                {
                    if (tipoControl == "Salida")
                    {
                        if (registro.HrSalidaReg == Convert.ToDateTime("00:00:00"))
                        {
                            minutosAnticipadas = (horaRegistro - horario.HrSalida).Negate().TotalMinutes;
                            if (minutosAnticipadas > 0)
                            {
                                refrigObtenido = false;
                            }
                            else
                            {
                                minutosAnticipadas = 0;
                                refrigObtenido    &= registro.RefrigObtenido;
                            }
                            hrSalida        = horaRegistro;
                            cmd.CommandText = "UPDATE Registro SET hrSalidaReg = @hrSalida, minutosAnticipadas = @minAnt, refrigObtenido = @refrig where codigo = @codigo";
                        }
                        else
                        {
                            return("SalidaRegistrada");
                        }
                    }
                    else
                    {
                        return("EntradaRegistrada");
                    }
                }
                cmd.Parameters.AddWithValue("@hrSalida", hrSalida);
                cmd.Parameters.AddWithValue("@refrig", refrigObtenido);
                cmd.Parameters.AddWithValue("@minAnt", minutosAnticipadas);
                cmd.Parameters.AddWithValue("@codigo", codigo);
                //cmd.Transaction = sqlTrans;
                filasAfectadas = cmd.ExecuteNonQuery();
                //sqlTrans.Commit();
                //}
                //catch
                //{
                //sqlTrans.Rollback();
                //return "Problema";
                //}
                //}
                cnx.Close();
                return(filasAfectadas.ToString());
            }
        }