Exemplo n.º 1
0
 protected void BindByDataRow(DataRow dr, Personal_registro_ext o)
 {
     try
     {
         int.TryParse(dr["id"].ToString(), out entero);
         o.Id   = entero;
         entero = 0;
         if (dr["id_personal_registro"] != DBNull.Value)
         {
             int.TryParse(dr["id_personal_registro"].ToString(), out entero);
             o.Id_personal_registro = entero;
             entero = 0;
         }
         o.Motivo = dr["motivo"].ToString();
     }
     catch
     {
         throw;
     }
 }
Exemplo n.º 2
0
 public override void fillLst()
 {
     try
     {
         this.comm = GenericDataAccess.CreateCommandSP("sp_Personal_registro_ext");
         addParameters(0);
         this.dt   = GenericDataAccess.ExecuteSelectCommand(comm);
         this._lst = new List <Personal_registro_ext>();
         foreach (DataRow dr in dt.Rows)
         {
             Personal_registro_ext o = new Personal_registro_ext();
             BindByDataRow(dr, o);
             this._lst.Add(o);
         }
     }
     catch
     {
         throw;
     }
 }
Exemplo n.º 3
0
        public static Personal_qr PersonalRegistro(Personal_qr o)
        {
            bool           cumpleReglas = false;
            IDbTransaction trans        = null;

            try
            {
                Personal_qrMng oPQrMng = new Personal_qrMng()
                {
                    O_Personal_qr = o
                };
                oPQrMng.selByIdf();

                Personal_registro oPreg = new Personal_registro()
                {
                    Id_personal = o.Id_personal, Id_bodega = o.Id_bodega
                };
                Personal_registroMng oMng = new Personal_registroMng()
                {
                    O_Personal_registro = oPreg
                };
                oMng.selByIdPersona();

                Personal oPer = new Personal()
                {
                    Id = o.Id_personal
                };
                PersonalMng oPerMng = new PersonalMng()
                {
                    O_Personal = oPer
                };
                oPerMng.selById();
                o.PPersonal = oPer;

                Personal_regla_rol oPerRegRol = new Personal_regla_rol()
                {
                    Id_personal_rol = oPer.Id_personal_rol
                };
                Personal_regla_rolMng oPerRegRolMng = new Personal_regla_rolMng()
                {
                    O_Personal_regla_rol = oPerRegRol
                };
                oPerRegRolMng.selByIdPersonalRol();

                foreach (Personal_regla_rol itemPRR in oPerRegRolMng.Lst)
                {
                    Personal_regla oPRegla = new Personal_regla()
                    {
                        Id = itemPRR.Id_personal_regla
                    };
                    Personal_reglaMng oPregMng = new Personal_reglaMng()
                    {
                        O_Personal_regla = oPRegla
                    };
                    oPregMng.selById();

                    TimeSpan ts    = DateTime.Now - oPreg.Fecha_hora;
                    int      valor = Convert.ToInt32(oPRegla.Valor);
                    if (ts.TotalMinutes > valor)
                    {
                        cumpleReglas = true;
                    }
                    else
                    {
                        o.Mensaje = oPRegla.Mensaje.Replace("{{valor}}", Math.Round(Math.Abs(ts.TotalMinutes - valor), 0).ToString());
                    }
                }

                if (!oPer.IsActive)
                {
                    o.Mensaje = "El personal está dado de baja y no puede acceder a la sede, favor de verificar con el área de Recursos Humanos";
                }
                else if (oPer.Boletinado)
                {
                    o.Mensaje = "El personal está boletinado y no puede acceder a ninguna sede, favor de verificar con el área de Recursos Humanos";
                }
                else if (cumpleReglas)
                {
                    switch (o.Id_registro_tipo)
                    {
                    case 1:     //Registro de eventos ordinarios
                        oMng.add();
                        o.PPerReg = oPreg;
                        o.Mensaje = "Registro Exitoso";
                        break;

                    case 2:     //Registro Extraordinario con motivo
                        trans = GenericDataAccess.BeginTransaction();
                        oMng.add(trans);
                        Personal_registro_extMng oExtMng = new Personal_registro_extMng();
                        Personal_registro_ext    oExt    = new Personal_registro_ext()
                        {
                            Id_personal_registro = oPreg.Id, Motivo = o.Motivo
                        };
                        oExtMng.O_Personal_registro_ext = oExt;
                        oExtMng.add(trans);
                        GenericDataAccess.CommitTransaction(trans);
                        o.PPerReg = oPreg;
                        o.Mensaje = "Registro Exitoso";
                        break;

                    case 3:     //Registro de horas extras, validar que tenga sus cuatro registros ordinarios previos
                        if (oMng.getRecordsByIdPersona() < 4)
                        {
                            o.Mensaje = "El personal no puede cubrir un horario extra por que no cuenta con sus 4 registros";
                        }
                        else
                        {
                            oMng.add();
                            o.PPerReg = oPreg;
                            o.Mensaje = "Registro Exitoso";
                        }
                        break;

                    default:
                        break;
                    }
                }
            }
            catch
            {
                if (trans != null)
                {
                    GenericDataAccess.RollbackTransaction(trans);
                }
                throw;
            }
            return(o);
        }
Exemplo n.º 4
0
 public Personal_registro_extMng()
 {
     this._oPersonal_registro_ext = new Personal_registro_ext();
     this._lst = new List <Personal_registro_ext>();
 }