Exemplo n.º 1
0
        // Temporalmente todos los metodos son publicos. Se analizará opcion de convertir a static.
        // Inicialmente no se implementa ningun cache, todos los resultados son consultados de las tablas
        // cada vez que se requieran.

        //  Sustituir accesos a DAL Data por referencias a Interfase

        #region  Gestion Claves Mes
        /// <summary>
        /// Crea una nueva entidad ClaveMes y su entrada en la tabla AA_ClavesMes.
        /// </summary>
        /// <param name="mes">Mes correspondiente.</param>
        /// <param name="anno">Año correspondiente.</param>
        /// <returns>Entidad creada.</returns>
        ClaveMes CrearNuevaClaveMes(int mes, int anno)
        {
            // Comprobar que no existe
            ClaveMes ent = LeerClaveMes(mes, anno);

            if (ent != null)
            {
                //  Chequeo de opciones, log , notificar
                return(ent);
            }

            ClaveMes newcm = new ClaveMes()
            {
                State = EntityState.Added,
                Mes   = mes,
                Anno  = anno
            };

            //ClaveMesData dh = new ClaveMesData();
            IEntityWrite <ClaveMes> dh = new ClaveMesData();

            if (dh.WriteEntity(newcm))
            {
                return(newcm);
            }
            else
            {
                // log details
                throw new Exception("Error creando nueva entidad ClaveMes.");
            }
        }
Exemplo n.º 2
0
        void CrearClaveFechasRegistro(int mes, int anno, int depart)
        {
            Collection <string>   usersId = RetListaIdUsuariosByDepart(depart);
            Collection <FechaMes> fechas;

            ClaveMes ent = CrearNuevaClaveMes(mes, anno);
            bool     ret = CrearFechasLaborablesMes(ent.Id);

            if (ret)
            {
                // obtener coleccion de fechas
                fechas = ListaFechasLaborablesMes(ent.Id);
                ret    = CrearRegistroAsistenciaMes(usersId, fechas);

                if (!ret)
                {
                    // log, notify
                    throw new Exception("Error CrearRegistroAsistenciaMes");
                }
            }
            else
            {
                // log, notify
                throw new Exception("Error CrearFechasLaborablesMes");
            }
        }
Exemplo n.º 3
0
 // metodos de soporte
 bool CheckClaveMes(int mes, int anno, out ClaveMes key)
 {
     key = LeerClaveMes(mes, anno);
     if (key != null)
     {
         return(true);
     }
     else
     {
         return(false);
     }
 }
Exemplo n.º 4
0
        static void ReadDataSupervisor(IMessageHandling proxy)
        {
            // consultar lista de departamentos
            DepartamentQuery       dptQry    = new DepartamentQuery();
            DepartamentQueryResult dptQryRst = proxy.Handle(dptQry);

            Console.WriteLine("\nLeida lista de departamentos. Cantidad: " + dptQryRst.Coleccion.Count);
            foreach (var depart in dptQryRst.Coleccion)
            {
                Console.WriteLine(string.Format(" Leído Departamento Id: {0}\t Nombre: {1}", depart.Id, depart.Description));
            }

            // consultar claves mes existentes
            ClaveMesQuery       cmQry    = new ClaveMesQuery();
            ClaveMesQueryResult cmQryRst = proxy.Handle(cmQry);

            Console.WriteLine("\nClaves Mes registradas");
            foreach (var item in cmQryRst.Coleccion)
            {
                Console.WriteLine(string.Format(" Clave Mes: {0}", item.Texto));
            }

            // consultar asistencia para un mes y tres departamentos
            ClaveMes         mk      = cmQryRst.Coleccion[1];
            Collection <int> departs = new Collection <int>();

            departs.Add(dptQryRst.Coleccion[1].Id);
            departs.Add(dptQryRst.Coleccion[3].Id);
            departs.Add(dptQryRst.Coleccion[5].Id);

            AsistenciaQuery       asistQry    = new AsistenciaQuery(mk.Id, departs);
            AsistenciaQueryResult asistQryRst = proxy.Handle(asistQry);

            //Console.WriteLine("\nIncidencias en el Mes registradas: " + asistQryRst.Incidencias.Count);
            Console.WriteLine("\nAsistencias en el Mes registradas");
            Console.WriteLine(string.Format("Recibidos {0} empleados.", asistQryRst.Empleados.Count));
            // listando empleados
            foreach (var item in asistQryRst.Empleados)
            {
                Console.WriteLine(string.Format("Nombre: {0}\t Id: {1}\t Codigo: {2} Cant. Asistencias: {3}", item.Nombre, item.Id, item.Code, item.Asistencias.Count));
            }

            foreach (var empleado in asistQryRst.Empleados)
            {
                Console.WriteLine();
                Console.WriteLine(string.Format(" {0}", empleado.Nombre));

                foreach (var asist in empleado.Asistencias)
                {
                    Console.WriteLine(string.Format(" {0}\t{1}\t{2}\t{3}\t{4}\t{5}\t{6}\t{7}", asist.State, asist.Id, asist.Fecha, asist.DiaSemana, asist.ChekinTime, asist.ChekoutTime, asist.IncidenciaCausaId, asist.IncidenciaObservacion));
                }
            }
        }
Exemplo n.º 5
0
        // metodo guia para extraccion de metodos
        Collection <Asistencia> ConsultaRegistroAsistenciaMes(int mes, int anno, int depart)
        {
            Collection <string> usersId = RetListaIdUsuariosByDepart(depart);

            ClaveMes ent = LeerClaveMes(mes, anno);

            bool ret;
            Collection <FechaMes> fechas;

            if (ent == null)
            {
                // no existe, crear clave, fechas y registro
                ent = CrearNuevaClaveMes(mes, anno);

                ret = CrearFechasLaborablesMes(ent.Id);

                if (ret)
                {
                    // obtener coleccion de fechas
                    fechas = ListaFechasLaborablesMes(ent.Id);
                    ret    = CrearRegistroAsistenciaMes(usersId, fechas);

                    if (!ret)
                    {
                        // log, notify
                        throw new Exception("Error CrearRegistroAsistenciaMes");
                    }
                }
                else
                {
                    // log, notify
                    throw new Exception("Error CrearFechasLaborablesMes");
                }
            }

            // existe, leer claveMes, fechas y registro

            ent = LeerClaveMes(mes, anno);

            fechas = ListaFechasLaborablesMes(ent.Id);

            Collection <Asistencia> asist = RetRegistroAsistenciaMes(usersId, fechas);

            if (asist != null)
            {
                return(asist);
            }

            throw new Exception("Error ConsultaRegistroAsistenciaMes");
        }
Exemplo n.º 6
0
        // Crear Fechas laborales
        //TODO  DE forma implicita se ignoran sabados y domingos. Se puede implementar con argumentos.

        /// <summary>
        /// Crea registro de todas las fechas necesarias para un mes y un año particular.
        /// </summary>
        /// <param name="mesId">Número Id de entidad ClaveMes.</param>
        /// <returns></returns>
        bool CrearFechasLaborablesMes(int mesId)
        {
            // obtener Entiad correspondiente a esa Id.
            ClaveMes ent = LeerClaveMes(mesId);

            if (ent == null)
            {
                throw new Exception("Error accediendo a entidad ClaveMes.");
            }

            Collection <FechaMes> newCol = new Collection <FechaMes>();
            DateTime  fecha;
            DayOfWeek dow;
            FechaMes  newFecha;

            // Ciclo para cada dias del mes
            for (int i = 1; i <= DateTime.DaysInMonth(ent.Anno, ent.Mes); i++)
            {
                fecha = new DateTime(ent.Anno, ent.Mes, i);
                dow   = fecha.DayOfWeek;

                if ((dow == DayOfWeek.Saturday) | (dow == DayOfWeek.Sunday))
                {
                    continue;
                }

                newFecha = new FechaMes()
                {
                    State       = EntityState.Added,
                    MesId       = ent.Id, // Foreing Key
                    DiaSemanaId = (int)dow,
                    Fecha       = fecha
                };

                newCol.Add(newFecha);
            }

            //  Pasar coleccion a Writer
            //FechaMesData dh = new FechaMesData();
            ICollectionWrite <FechaMes> dh = new FechaMesData();

            return(dh.WriteCollection(newCol));
        }
Exemplo n.º 7
0
 private static void GuardarFechaConsulta(int mes, int anno)
 {
     _fechaConsulta      = new ClaveMes();
     _fechaConsulta.Mes  = mes;
     _fechaConsulta.Anno = anno;
 }
Exemplo n.º 8
0
        public override ClaveMes ReadEntityBy2Params(int mes, int anno)
        {
            using (IDbConnection connection = GetConnection())
            {
                IDbCommand command = connection.CreateCommand();
                command.Connection  = connection;
                command.CommandText = this.CommandText;
                command.CommandType = this.CommandType;

                foreach (IDataParameter param in this.GetParameters(command))
                {
                    command.Parameters.Add(param);
                }

                // Creando Parametro para filtrar por Mes y Anno
                IDataParameter param1 = command.CreateParameter();
                param1.ParameterName = Constants.FilterOneParam;
                param1.DbType        = DbType.Int32;
                param1.Value         = mes;
                command.Parameters.Add(param1);

                param1 = command.CreateParameter();
                param1.ParameterName = Constants.FilterTwoParam;
                param1.DbType        = DbType.Int32;
                param1.Value         = anno;

                command.Parameters.Add(param1);

                ClaveMes ent = null;

                try
                {
                    connection.Open();

                    using (IDataReader reader = command.ExecuteReader())
                    {
                        try
                        {
                            MapperBase <ClaveMes> mapper = GetMapper();
                            ent = mapper.MapEntity(reader);
                            return(ent);
                        }
                        catch
                        {
                            throw;
                        }
                        finally
                        {
                            reader.Close();
                        }
                    }
                }
                catch
                {
                    throw;
                }
                finally
                {
                    connection.Close();
                }
            }
        }
Exemplo n.º 9
0
        static void ReadDataJefeGrupo(IMessageHandling proxy)
        {
            // consultar dept del usuario
            UserDepartamentQuery       dptQry    = new UserDepartamentQuery(_userID);
            UserDepartamentQueryResult dptQryRst = proxy.Handle(dptQry);

            Console.WriteLine(string.Format(" Leído Departamento Id: {0}\t Nombre: {1}", dptQryRst.Id, dptQryRst.Name));
            // consultar claves mes existentes
            ClaveMesQuery       cmQry    = new ClaveMesQuery();
            ClaveMesQueryResult cmQryRst = proxy.Handle(cmQry);

            Console.WriteLine("\nClaves Mes registradas");
            foreach (var item in cmQryRst.Coleccion)
            {
                Console.WriteLine(string.Format(" Clave Mes: {0}", item.Texto));
            }
            // consultar asistencia para un mes y departamento del usuario
            // aislar datos de mes
            ClaveMes mk = cmQryRst.Coleccion[0];

            AsistenciaQuery       asistQry    = new AsistenciaQuery(mk.Id, dptQryRst.Id);
            AsistenciaQueryResult asistQryRst = proxy.Handle(asistQry);

            // guardando ref a incidencias recibidas
            //Console.WriteLine("\nIncidencias en el Mes registradas: " + asistQryRst.Incidencias.Count);

            _asistencias = new Collection <Asistencia>();

            Console.WriteLine("\nAsistencias en el Mes registradas");
            Console.WriteLine(string.Format("Recibidos {0} empleados.", asistQryRst.Empleados.Count));
            // listando empleados
            foreach (var item in asistQryRst.Empleados)
            {
                Console.WriteLine(string.Format("Nombre: {0}\t Id: {1}\t Codigo: {2} Cant. Asistencias: {3}", item.Nombre, item.Id, item.Code, item.Asistencias.Count));
            }

            Console.WriteLine("\nAsistencias por trabajador");

            foreach (var empleado in asistQryRst.Empleados)
            {
                Console.WriteLine();
                Console.WriteLine(string.Format(" {0}", empleado.Nombre));

                foreach (var asist in empleado.Asistencias)
                {
                    Console.WriteLine(string.Format(" {0}\t{1}\t{2}\t{3}\t{4}\t{5}\t{6}\t{7}", asist.State, asist.Id, asist.Fecha, asist.DiaSemana, asist.ChekinTime, asist.ChekoutTime, asist.IncidenciaCausaId, asist.IncidenciaObservacion));

                    if (asist.Id == 177)
                    {
                        _asist01 = asist;
                    }
                    if (asist.Id == 232)
                    {
                        _asist02 = asist;
                    }
                    if (asist.Id == 342)
                    {
                        _asist03 = asist;
                    }
                    if (asist.Id == 452)
                    {
                        _asist04 = asist;
                    }
                }
            }

            _asistencias.Add(_asist01);
            _asistencias.Add(_asist02);
            _asistencias.Add(_asist03);
            _asistencias.Add(_asist04);
        }