예제 #1
0
        public bool Insertar(ref BE.UI.Asistencia uiAsistencia, int idSession = 0)
        {
            int rowsAffected = 0;

            try
            {
                var beAsistencia = new BE.Asistencia();

                beAsistencia.IdUsuarioCreador = idSession;
                beAsistencia.FechaCreacion    = DateTime.Now;

                beAsistencia.IdAsistencia     = 0;
                beAsistencia.Codigo           = uiAsistencia.EmpleadoCodigo;
                beAsistencia.FechaHoraEntrada = uiAsistencia.FechaHoraEntrada;
                beAsistencia.FechaHoraSalida  = uiAsistencia.FechaHoraSalida;
                beAsistencia.Turno            = uiAsistencia.Turno;
                beAsistencia.Origen           = uiAsistencia.Origen;
                beAsistencia.FechaRegistro    = uiAsistencia.Fecha;

                rowsAffected = new DA.Asistencia().Insertar(ref beAsistencia);

                uiAsistencia.ID = beAsistencia.IdAsistencia;

                return(rowsAffected > 0);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
예제 #2
0
        private void btnAgregar_Click(object sender, EventArgs e)
        {
            try
            {
                if (this.cboEmpleado.SelectedIndex == 0)
                {
                    this.cboEmpleado.Focus();
                    throw new Exception("Seleccione un empleado");
                }

                DateTime ingreso = this.DtpFechaHoraEntrada.Value;
                DateTime salida  = this.DtpFechaHoraSalida.Value;
                if (ingreso > salida)
                {
                    this.DtpFechaHoraEntrada.Focus();
                    throw new Exception("La fecha y hora de ingreso es mayor a la fecha y hora de salida");
                }
                TimeSpan tiempo = salida.Subtract(ingreso);

                string codigoEmpleado = this.cboEmpleado.SelectedValue.ToString();
                string nombreEmpleado = new LN.Empleado().ObtenerNombreCompleto(codigoEmpleado);
                int    turno          = this.cboTurno.SelectedIndex + 1;

                var uiAsistencia = new BE.UI.Asistencia();
                uiAsistencia.ID                     = 0;
                uiAsistencia.EmpleadoCodigo         = codigoEmpleado;
                uiAsistencia.EmpleadoNombreCompleto = nombreEmpleado;
                uiAsistencia.Turno                  = turno;
                uiAsistencia.FechaHoraEntrada       = ingreso;
                uiAsistencia.FechaHoraSalida        = salida;
                uiAsistencia.Tiempo                 = tiempo;
                uiAsistencia.Origen                 = "M";
                uiAsistencia.Fecha                  = this.DtpFechaHoraEntrada.Value;

                this.lstUiAsistencias.Add(uiAsistencia);

                this.CargarListadoAsistencia(this.lstUiAsistencias);
                this.LimpiarRegistroManual();
            }
            catch (Exception ex)
            {
                Util.ErrorMessage(ex.Message);
            }
        }
예제 #3
0
        public List <BE.UI.Asistencia> Listar(DateTime fecha)
        {
            var lstUiAsistencias = new List <BE.UI.Asistencia>();

            try
            {
                var daAsistencia = new DA.Asistencia();

                DataTable dt = daAsistencia.Listar(fecha);

                for (int i = 0; i < dt.Rows.Count; i++)
                {
                    var beAsistencia = new BE.Asistencia();

                    DataRow dr = dt.Rows[i];
                    daAsistencia.Cargar(ref beAsistencia, ref dr);

                    var uiAsistencia = new BE.UI.Asistencia();
                    uiAsistencia.ID                     = beAsistencia.IdAsistencia;
                    uiAsistencia.EmpleadoCodigo         = beAsistencia.Codigo;
                    uiAsistencia.EmpleadoNombreCompleto = new LN.Empleado().ObtenerNombreCompleto(beAsistencia.Codigo);
                    uiAsistencia.FechaHoraEntrada       = beAsistencia.FechaHoraEntrada;
                    uiAsistencia.FechaHoraSalida        = beAsistencia.FechaHoraSalida;
                    uiAsistencia.Tiempo                 = beAsistencia.FechaHoraSalida.Subtract(beAsistencia.FechaHoraEntrada);
                    uiAsistencia.Turno                  = beAsistencia.Turno;
                    uiAsistencia.Origen                 = beAsistencia.Origen;
                    uiAsistencia.Fecha                  = beAsistencia.FechaRegistro;

                    lstUiAsistencias.Add(uiAsistencia);
                }


                return(lstUiAsistencias);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
예제 #4
0
        private List <BE.UI.Asistencia> CargarArchivo(string rutaArchivo)
        {
            var lstUiAsistencias = new List <BE.UI.Asistencia>();

            try
            {
                var lstEmpleados = this.ListadoEmpleados();

                using (var fs = File.OpenRead(rutaArchivo))
                    using (var reader = new StreamReader(fs))
                    {
                        while (!reader.EndOfStream)
                        {
                            var line   = reader.ReadLine();
                            var values = line.Split(',');

                            if (values.Length != 4)
                            {
                                throw new Exception("El registro debe contener Codigo de Empleado, Fecha y Hora Ingreso, Fecha y Hora Salida y Turno");
                            }

                            string codigoEmpleado = values[0].ToString().Trim();
                            string nombreEmpleado = "";

                            var beEmpleado = lstEmpleados.FirstOrDefault(x => x.Codigo.Equals(codigoEmpleado));
                            if (beEmpleado != null)
                            {
                                nombreEmpleado = beEmpleado.Nombre;
                            }
                            beEmpleado = null;

                            string   formatoFecha = "dd/MM/yyyy HH:mm:ss";
                            DateTime ingreso;
                            if (DateTime.TryParseExact(values[1].ToString(), formatoFecha, CultureInfo.InvariantCulture, DateTimeStyles.None, out ingreso) == false)
                            {
                                throw new Exception("La fecha y hora de ingreso del empleado " + codigoEmpleado + " es incorrecta");
                            }

                            DateTime salida;
                            if (DateTime.TryParseExact(values[2], "dd/MM/yyyy HH:mm:ss", CultureInfo.InvariantCulture, DateTimeStyles.None, out salida) == false)
                            {
                                throw new Exception("La fecha y hora de salida del empleado " + codigoEmpleado + " es incorrecta");
                            }

                            TimeSpan tiempo = salida.Subtract(ingreso);
                            if (tiempo.TotalSeconds < 0)
                            {
                                throw new Exception("El tiempo de trabajo del empleado " + codigoEmpleado + " es incorrecto");
                            }

                            int turno = 0;
                            if (int.TryParse(values[3].ToString(), out turno) == false)
                            {
                                throw new Exception("El turno del empleado " + codigoEmpleado + " es incorrecto");
                            }

                            var uiAsistencia = new BE.UI.Asistencia();
                            uiAsistencia.ID                     = 0;
                            uiAsistencia.EmpleadoCodigo         = codigoEmpleado;
                            uiAsistencia.EmpleadoNombreCompleto = nombreEmpleado;
                            uiAsistencia.Turno                  = turno;
                            uiAsistencia.FechaHoraEntrada       = ingreso;
                            uiAsistencia.FechaHoraSalida        = salida;
                            uiAsistencia.Tiempo                 = tiempo;
                            uiAsistencia.Origen                 = "C";

                            lstUiAsistencias.Add(uiAsistencia);
                        }

                        return(lstUiAsistencias);
                    }
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }