public static List <AcsSucursal> getAcsSucursalesByIdUser(Int64 pId)
        {
            List <AcsSucursal> lista = new List <AcsSucursal>();

            using (MySqlConnection _con = new Conexion().Conectar())
            {
                try
                {
                    _con.Open();
                    MySqlCommand comando = new MySqlCommand("select * from acssucursal where IdUserEmp=@pId order by Id asc", _con);
                    comando.Parameters.AddWithValue("@pId", pId);

                    MySqlDataReader _reader = comando.ExecuteReader();
                    while (_reader.Read())
                    {
                        AcsSucursal item = new AcsSucursal(
                            _reader.GetInt64(0),
                            _reader.GetString(1),
                            _reader.GetInt32(2),
                            _reader.GetInt32(3),
                            _reader.GetInt64(4),
                            RolDAL.getRolById(_reader.GetInt32(3)),
                            SucursalDAL.getSucursaloById(_reader.GetInt64(4)),
                            LstPermisoDAL.getLstPermisosByIdAcs(_reader.GetInt64(0))
                            );

                        lista.Add(item);
                    }
                    _reader.Close();
                }
                catch (Exception ex)
                {
                    _con.Close();
                    throw ex;
                }
                finally
                {
                    _con.Close();
                }
            }
            return(lista);
        }
        public static AcsSucursal getAcsSucursalById(Int64 pId)
        {
            AcsSucursal item = null;

            using (MySqlConnection _con = new Conexion().Conectar())
            {
                try
                {
                    _con.Open();
                    MySqlCommand cmdGetItemById = new MySqlCommand("select * from acssucursal where Id=@pId", _con);
                    cmdGetItemById.Parameters.AddWithValue("@pId", pId);
                    MySqlDataReader _reader = cmdGetItemById.ExecuteReader();
                    while (_reader.Read())
                    {
                        item = new AcsSucursal(
                            _reader.GetInt64(0),
                            _reader.GetString(1),
                            _reader.GetInt32(2),
                            _reader.GetInt32(3),
                            _reader.GetInt64(4),
                            RolDAL.getRolById(_reader.GetInt32(3)),
                            SucursalDAL.getSucursaloById(_reader.GetInt64(4)),
                            LstPermisoDAL.getLstPermisosByIdAcs(_reader.GetInt64(0))
                            );
                    }
                    _reader.Close();
                }
                catch (Exception ex)
                {
                    _con.Close();
                    throw ex;
                }
                finally
                {
                    _con.Close();
                }
            }
            return(item);
        }
Exemple #3
0
        public static bool UpdateUserEmp(Useremp item, string opc, Useremp pUser)
        {
            bool result = true;

            using (MySqlConnection _con = new Conexion().Conectar())
            {
                _con.Open();
                MySqlTransaction _trans = _con.BeginTransaction();
                try
                {
                    MySqlCommand cmdUpdateUserEmp   = null;
                    MySqlCommand cmdInsertAuditoria = null;
                    switch (opc)
                    {
                    case "pwd":
                        cmdUpdateUserEmp = new MySqlCommand("update useremp set Pass=md5(@Pass) where Id=@Id;", _con, _trans);
                        cmdUpdateUserEmp.Parameters.AddWithValue("@Pass", item.Pass);
                        cmdUpdateUserEmp.Parameters.AddWithValue("@Id", item.Id);
                        if (cmdUpdateUserEmp.ExecuteNonQuery() <= 0)
                        {
                            result = false;
                        }
                        cmdInsertAuditoria = new MySqlCommand("Insert into regemphist (Detalle,Accion,TipoRegistro,IdUserEmp) values (@Detalle,@Accion,@TipoRegistro,@IdUserEmp)", _con, _trans);
                        cmdInsertAuditoria.Parameters.AddWithValue("@Detalle", "Actualizó la contraseña para el usuario con Id \"" + item.Id + "\", Login \"" + item.Login + "\".");
                        cmdInsertAuditoria.Parameters.AddWithValue("@Accion", "Actualización de contraseña");
                        cmdInsertAuditoria.Parameters.AddWithValue("@TipoRegistro", "Usuario");
                        cmdInsertAuditoria.Parameters.AddWithValue("@IdUserEmp", pUser.Id);
                        if (cmdInsertAuditoria.ExecuteNonQuery() <= 0)
                        {
                            result = false;
                        }
                        break;

                    case "all":
                        if (item.Pass == "")
                        {
                            cmdUpdateUserEmp = new MySqlCommand("update useremp set Login=@Login,Estado=@Estado,IdContrato=@IdContrato where Id=@Id;", _con, _trans);
                            cmdUpdateUserEmp.Parameters.AddWithValue("@Login", item.Login);
                            cmdUpdateUserEmp.Parameters.AddWithValue("@IdContrato", item.IdContrato);
                            cmdUpdateUserEmp.Parameters.AddWithValue("@Estado", item.Estado);
                            cmdUpdateUserEmp.Parameters.AddWithValue("@Id", item.Id);
                            if (cmdUpdateUserEmp.ExecuteNonQuery() <= 0)
                            {
                                result = false;
                            }
                            cmdInsertAuditoria = new MySqlCommand("Insert into regemphist (Detalle,Accion,TipoRegistro,IdUserEmp) values (@Detalle,@Accion,@TipoRegistro,@IdUserEmp)", _con, _trans);
                            cmdInsertAuditoria.Parameters.AddWithValue("@Detalle", "Actualizó la información para el usuario con Id \"" + item.Id + "\", Login \"" + item.Login + "\".");
                            cmdInsertAuditoria.Parameters.AddWithValue("@Accion", "Actualización de información");
                            cmdInsertAuditoria.Parameters.AddWithValue("@TipoRegistro", "Usuario");
                            cmdInsertAuditoria.Parameters.AddWithValue("@IdUserEmp", pUser.Id);
                            if (cmdInsertAuditoria.ExecuteNonQuery() <= 0)
                            {
                                result = false;
                            }
                        }
                        else
                        {
                            cmdUpdateUserEmp = new MySqlCommand("update useremp set Login=@Login,Estado=@Estado,IdContrato=@IdContrato,Pass=md5(@Pass) where Id=@Id;", _con, _trans);
                            cmdUpdateUserEmp.Parameters.AddWithValue("@Login", item.Login);
                            cmdUpdateUserEmp.Parameters.AddWithValue("@IdContrato", item.IdContrato);
                            cmdUpdateUserEmp.Parameters.AddWithValue("@Pass", item.Pass);
                            cmdUpdateUserEmp.Parameters.AddWithValue("@Estado", item.Estado);
                            cmdUpdateUserEmp.Parameters.AddWithValue("@Id", item.Id);
                            if (cmdUpdateUserEmp.ExecuteNonQuery() <= 0)
                            {
                                result = false;
                            }
                            cmdInsertAuditoria = new MySqlCommand("Insert into regemphist (Detalle,Accion,TipoRegistro,IdUserEmp) values (@Detalle,@Accion,@TipoRegistro,@IdUserEmp)", _con, _trans);
                            cmdInsertAuditoria.Parameters.AddWithValue("@Detalle", "Actualizó la información para el usuario con Id \"" + item.Id + "\", Login \"" + item.Login + "\".");
                            cmdInsertAuditoria.Parameters.AddWithValue("@Accion", "Actualización de información y contraseña");
                            cmdInsertAuditoria.Parameters.AddWithValue("@TipoRegistro", "Usuario");
                            cmdInsertAuditoria.Parameters.AddWithValue("@IdUserEmp", pUser.Id);
                            if (cmdInsertAuditoria.ExecuteNonQuery() <= 0)
                            {
                                result = false;
                            }
                        }
                        foreach (AcsSucursal suc in item.Sucursales)
                        {
                            foreach (LstPermiso obj in suc.Permisos)
                            {
                                if (obj.Id == 0)
                                {
                                    cmdUpdateUserEmp = new MySqlCommand("insert into lstpermiso(null,null,@Otorgado,@IdPermiso,@IdAcsSucursal);", _con, _trans);
                                    cmdUpdateUserEmp.Parameters.AddWithValue("@Otorgado", obj.Otorgado ? 1 : 0);
                                    cmdUpdateUserEmp.Parameters.AddWithValue("@IdPermiso", obj.IdPermiso);
                                    cmdUpdateUserEmp.Parameters.AddWithValue("@IdAcsSucursal", suc.Id);
                                    if (cmdUpdateUserEmp.ExecuteNonQuery() <= 0)
                                    {
                                        result = false;
                                    }
                                    cmdInsertAuditoria = new MySqlCommand("Insert into regemphist (Detalle,Accion,TipoRegistro,IdUserEmp) values (@Detalle,@Accion,@TipoRegistro,@IdUserEmp)", _con, _trans);
                                    cmdInsertAuditoria.Parameters.AddWithValue("@Detalle", "Se inserto un permiso con Id \"" + obj.Id + "\" descripción \"" + obj.Permiso.Nombre + "\" al Login \"" + item.Login + "\".");
                                    cmdInsertAuditoria.Parameters.AddWithValue("@Accion", "Inserción de Permiso");
                                    cmdInsertAuditoria.Parameters.AddWithValue("@TipoRegistro", "Permiso");
                                    cmdInsertAuditoria.Parameters.AddWithValue("@IdUserEmp", pUser.Id);
                                    if (cmdInsertAuditoria.ExecuteNonQuery() <= 0)
                                    {
                                        result = false;
                                    }
                                }
                                else
                                {
                                    cmdUpdateUserEmp = new MySqlCommand("update lstpermiso set Otorgado=@Otorgado where Id=@Id;", _con, _trans);
                                    cmdUpdateUserEmp.Parameters.AddWithValue("@Otorgado", obj.Otorgado ? 1 : 0);
                                    cmdUpdateUserEmp.Parameters.AddWithValue("@Id", obj.Id);
                                    if (cmdUpdateUserEmp.ExecuteNonQuery() <= 0)
                                    {
                                        result = false;
                                    }
                                    if (LstPermisoDAL.getLstPermisoById(obj.Id).Otorgado != obj.Otorgado)
                                    {
                                        cmdInsertAuditoria = new MySqlCommand("Insert into regemphist (Detalle,Accion,TipoRegistro,IdUserEmp) values (@Detalle,@Accion,@TipoRegistro,@IdUserEmp)", _con, _trans);
                                        cmdInsertAuditoria.Parameters.AddWithValue("@Detalle", "Se actualizó el registro de lstpermiso con Id \"" + obj.Id + "\" del permiso con descripción \"" + obj.Permiso.Nombre + "\" al Login \"" + item.Login + "\" .");
                                        cmdInsertAuditoria.Parameters.AddWithValue("@Accion", "Actualización de Permisos");
                                        cmdInsertAuditoria.Parameters.AddWithValue("@TipoRegistro", "Permiso");
                                        cmdInsertAuditoria.Parameters.AddWithValue("@IdUserEmp", pUser.Id);
                                        if (cmdInsertAuditoria.ExecuteNonQuery() <= 0)
                                        {
                                            result = false;
                                        }
                                    }
                                }
                            }
                        }
                        if (cmdUpdateUserEmp.ExecuteNonQuery() <= 0)
                        {
                            result = false;
                        }
                        break;

                    default:
                        break;
                    }


                    if (result)
                    {
                        _trans.Commit();
                    }
                    else
                    {
                        _trans.Rollback();
                    }
                }
                catch (Exception ex)
                {
                    _con.Close();
                    throw ex;
                }
                finally
                {
                    _con.Close();
                }
            }
            return(result);
        }