Dokumentation

Gennemse artiklerne nedenfor for at lære mere om, hvordan du bruger systemet.

General


Forum Dokumentation

Dokumentation: Forummet

Dette dokument forklarer funktionerne og funktionaliteten i det klubspecifikke Forum.

1. Oversigt

Forummet er et fællesskabsdiskussionsområde, hvor medlemmer kan stille spørgsmål, dele information og deltage i samtaler om forskellige emner. Hver klub har sit eget private forum, der kun er tilgængeligt for dens godkendte medlemmer.

2. Navigation i Forummet

Hovedforumsiden viser en liste over alle spørgsmål. Du kan bruge filtreringsværktøjerne til at finde specifikke diskussioner efter tekst, emne, forfatter eller dato.

3. At Stille et Spørgsmål

Ethvert godkendt medlem kan starte en ny diskussionstråd ved at klikke på ""Opret Nyt Spørgsmål"", angive en titel, indhold og vælge et emne.

4. At Svare og Besvare

Du kan svare direkte på hovedspørgsmålet eller på andre medlemmers svar for at skabe trådede samtaler. Du kan redigere eller slette dine egne indlæg.

Velkommen til Klubbens Hjemmeside

Klub & Medlemskabssystem

Dette dokument forklarer hele livscyklussen for klubber, fra oprettelse og administration til brugerens medlemskabsoplevelse.

1. Klubkonceptet

Applikationen er bygget op omkring en multiklub-arkitektur. Hver ""Klub"" er et selvstændigt miljø med egne medlemmer, turneringer, forum og meddelelser. En brugers syn på applikationen er næsten altid filtreret efter den klub, de aktuelt har valgt i hovednavigationsheaderen.

2. For Systemadministratorer: Administration af Alle Klubber

Bemærk: Dette afsnit gælder kun for brugere med systemdækkende ""Admin""-rettigheder.

Systemadministratorer har det højeste niveau af kontrol og kan administrere alle klubber fra ""Klubadministration""-området.

  • Opret Klub: Administratorer kan oprette en ny klub ved at angive et navn, en beskrivelse og et valgfrit logo.
  • Rediger Klub: Administratorer kan til enhver tid ændre detaljerne for en eksisterende klub.
  • Administrer Turneringers Synlighed: For hver klub kan en administrator definere, hvilke ""nationale"" turneringsserier (som Sommerpirat, POT), der er synlige og aktive for den specifikke klub.
  • Slet Klub: Administratorer kan slette en klub. Dette er en destruktiv handling, der fjerner klubben og alle dens tilknyttede data, herunder medlemskaber, forumindlæg og turneringshistorik.

3. For Alle Brugere: Gennemse og Tilmelde sig Klubber

Enhver registreret bruger kan gennemse og interagere med listen over tilgængelige klubber fra ""Klubber""-siden.

3.1. Valg af en Klub

Ved at klikke på knappen ""Vælg Klub"" for en klub, du er godkendt medlem af, bliver den din aktive klub. Hele applikationsinterfacet (leaderboards, kalender osv.) vil derefter opdatere for at vise data, der er relevante for den pågældende klub.

3.2. Medlemskabsproces

Siden viser din nuværende medlemskabsstatus for hver klub:

  • Ikke medlem: Du vil se en ""Anmod om medlemskab""-knap. At klikke på denne sender en ansøgning til klubbens administratorer.
  • Afventer godkendelse: Hvis du har anmodet om medlemskab, vil knappen være deaktiveret og vise en ""Afventer""-status.
  • Godkendt medlem: Du vil se en ""Forlad Klub""-knap, og klubben vil være tilgængelig for valg.
  • Afvist: Hvis din anmodning blev afvist, kan du ansøge igen ved at klikke på ""Anmod om medlemskab""-knappen igen.

4. For Klubadministratorer: Administration af Din Klub

Bemærk: Dette afsnit gælder for brugere, der er udpeget som ""KlubAdmin"" for en specifik klub, samt for systemadministratorer.

Klubadministratorer kan administrere deres klubs medlemmer fra ""Klubadministration""-området.

  • Administrer Medlemskabsanmodninger: I dette afsnit kan du se en liste over alle afventende medlemskabsanmodninger. Du har to muligheder for hver anmodning:
    • Godkend: Giver brugeren fuld medlemsadgang til klubben.
    • Afvis: Afviser brugerens ansøgning.
  • Administrer Medlemmer: Dette giver en liste over alle nuværende medlemmer af din klub. Herfra kan du ændre et medlems status (f.eks. suspendere eller tilbagekalde deres medlemskab) eller ændre deres rolle i klubben (f.eks. forfremme et medlem til ""KlubAdmin"").
  • Tilføj Medlemmer: Klubadministratorer kan direkte tilføje eksisterende brugere af applikationen til deres klub uden at kræve, at brugeren sender en anmodning.

5. For Godkendte Medlemmer: ""Min Klub"" og Personlige Sider

Når du er et godkendt medlem af en klub og har valgt den, kan du få adgang til dine personlige sider via ""Min Klub""-navigationslinket.

  • Mine Scorer: En detaljeret log over alle dine personlige scorer fra hver turnering, du har spillet, organiseret efter år og måned. Den viser din bruttoscore, nettoscore og Stableford-point for hver runde.
  • Mit Feed: Et personligt aktivitetsfeed, der ligner det på din offentlige spillerprofil, som viser dine seneste turneringsresultater, forumindlæg og andre handlinger. Du kan også oprette et ""Selfie-indlæg"" fra denne side for at dele et billede og en besked på dit feed.

Om Præsidentens Hjørne

Dokumentation: Præsidentens Hjørne

Dette dokument forklarer funktionerne og funktionaliteten på siden Præsidentens Hjørne.

1. Oversigt

Præsidentens Hjørne fungerer som en officiel opslagstavle eller blog for en specifik klub. Det er et rum, hvor klubadministratorer eller ""præsidenter"" kan dele nyheder, opdateringer og anden vigtig information med deres medlemmer.

Vigtigt: Præsidentens Hjørne er helt klubspecifikt. Du skal vælge en klub fra hovednavigationen for at se dens indhold, og du skal være et godkendt medlem af den pågældende klub for at få adgang til det.

2. Visning af Indlæg og Kommentarer

Som et godkendt klubmedlem kan du se alle indlæg, der er lavet i din valgte klubs Præsidentens Hjørne.

  • Hovedsiden viser en liste over alle indlæg, med de seneste øverst.
  • Ved at klikke på et indlægs titel eller et ""Detaljer""-link kommer du til den fulde indlægsside.
  • På siden med indlægsdetaljer kan du læse det fulde indhold og se alle kommentarer fra andre medlemmer, vist kronologisk.

3. Tilføjelse af Kommentarer

Alle godkendte medlemmer af en klub kan deltage i diskussioner ved at tilføje kommentarer til indlæg.

  • På siden med indlægsdetaljer finder du et tekstfelt til at skrive din kommentar.
  • Skriv blot din besked og klik på knappen ""Tilføj kommentar"" for at sende den.
  • Din kommentar vil blive vist nederst i kommentartråden sammen med dit navn og datoen, den blev sendt.

4. Admin-funktioner: Administration af Indlæg

Bemærk: Følgende handlinger er begrænset til brugere med rollen ""Admin"".

Administratorer har fuld kontrol over indholdet i deres valgte klubs Præsidentens Hjørne.

  • Opret et Indlæg: Administratorer kan oprette nye indlæg ved at angive en titel og indhold. Indlægget vil automatisk blive tilknyttet den aktuelt valgte klub.
  • Rediger et Indlæg: Administratorer kan ændre titlen eller indholdet af ethvert eksisterende indlæg i deres klub.
  • Slet et Indlæg: Administratorer kan permanent fjerne et indlæg og alle dets tilknyttede kommentarer. Denne handling kan ikke fortrydes.

MyClub


Min Klub

Min Klub

Dette dokument forklarer hovedlandingssiden for sektionen ""Min Klub"" i applikationen.

1. Oversigt

Siden ""Min Klub"" er det centrale omdrejningspunkt for din personlige interaktion med applikationen. Den fungerer som indgangsporten til dine private sider.

Adgang: Navigationslinket ""Min Klub"" er kun aktivt, når du har valgt en klub, hvor du er et godkendt medlem.

2. Undersider

Herfra kan du få adgang til Mine Scorer og Mit Feed, som er dedikeret til dine egne data.

Mit Feed

Mit Feed

Dette dokument forklarer funktionerne på siden ""Mit Feed"", din personlige tidslinje over aktivitet på tværs af applikationen.

1. Oversigt

Siden ""Mit Feed"" giver en privat, omvendt kronologisk visning af alle dine betydningsfulde handlinger og præstationer.

2. Typer af Feed-elementer

Dit feed opdateres automatisk med handlinger som turneringsresultater, forumaktivitet og nye klubmedlemskaber.

3. Oprettelse af et Selfie-indlæg

En unik funktion på ""Mit Feed""-siden er muligheden for at oprette et ""Selfie-indlæg"". Dette giver dig mulighed for at dele et billede og en kort besked på dit personlige feed.

Min Klub - Mine Scorer

Mine Scorer

Dette dokument forklarer funktionerne på siden ""Mine Scorer"", som er dit personlige arkiv over alle turneringsresultater.

1. Oversigt

Siden ""Mine Scorer"" giver en detaljeret og organiseret visning af hver godkendt turneringsrunde, du har spillet.

2. Score-organisering

Dine scorer organiseres automatisk efter år og måned i et harmonika-layout for nem browsing.

3. Score-detaljer

Hver enkelt score-post giver en omfattende oversigt over din præstation, herunder klub, bane, turneringsnavn og dine brutto-, netto- og Stableford-scorer.

Players


Understanding the Player Info Page

Player Details

This page contains detailed information about a single player, including their stats, career history, and recent wins. Use the tabs to navigate between different sections.

Spillerinfo

Spillerinfo

Oversigt & Aktivitetsfeed

Fanen Oversigt er standardvisningen, når du navigerer til en spillers profil. Den giver et hurtigt resumé af spillerens identitet og en kronologisk log over deres seneste aktivitet i applikationen.


Spillerfeedet

Hovedfunktionen i fanen Oversigt er Spillerfeedet. Denne sektion viser en omvendt kronologisk liste over spillerens seneste handlinger og præstationer.

Typer af Feed-elementer:
  • Turneringsresultat: Vises, når en spiller gennemfører en turneringsrunde. Du kan klikke på elementet for at navigere direkte til den pågældende turnerings resultatside.

    Eksempel: "John Doe spillede i Sommerpirat 2023 - Runde 5 og scorede 78."

  • Tilmeldt klub: En notifikation vises, når spillerens medlemskab i en ny klub er godkendt.

    Eksempel: "John Doe meldte sig ind i The Royal Golf Club."

  • Forumaktivitet: Viser, når en spiller stiller et nyt spørgsmål eller besvarer et i foraene.
  • Profilopdateringer: Handlinger som at uploade et nyt profilbillede vil også blive vist.

Forståelse af Spillerstatistikker

Fanen Statistik giver et dybdegående indblik i en spillers præstationsmålinger, beregnet ud fra godkendte turneringsrunder.


Filtrering efter Klub

Brug rullemenuen til at filtrere alle statistikker efter Alle Klubber eller en Specifik Klub for at sammenligne hjemme- vs. udebanepræstationer.

Præstationsgennemsnit

Denne sektion viser overordnede gennemsnit baseret på klubfilteret: Slaggennemsnit (for den valgte klub vs. andre), Forni/Bagni Gennemsnit og Gennemsnitlige Birdies/Straffe pr. runde.

Årlig Statistikfordeling

Denne tabel giver en detaljeret sammenligning af spillerens statistikker med gennemsnittet af alle spillere i den valgte klub for indeværende år. Kolonnerne ""Klubgennemsnit"" og ""Spillerrang"" vises kun, når du filtrerer efter en specifik klub.

Eksempel: Sådan tolkes fordelingen

Du filtrerer efter ""The Royal Golf Club"". Tabellen viser ""Gns. Slag"" som: Spillerværdi: 78.5, Klubgennemsnit: 82.1, Spillerrang: D3 af 45.
Dette betyder, at spillerens gennemsnitlige score er 78.5, hvilket er bedre end klubgennemsnittet på 82.1, og rangerer dem som delt 3. bedste ud af 45 spillere i den klub i år.

Karrierehistorik & Præstation

Fanen Karriere giver en historisk oversigt over en spillers præstationer gennem årene. Den kan filtreres efter klub.


Karriereoversigt efter Sæson

Denne tabel giver en årlig opsummering af præstationer, herunder samlede sejre, 2./3. pladser, Top 10-placeringer, gennemsnitlig slutplacering og slaggennemsnit for sæsonen.

Karrieresammendrag

Denne sektion viser karrieretotaler for Turneringssejre, Top 5-placeringer og Top 10-placeringer baseret på klubfilteret.

Årlige Swing-positioner

Denne sektion viser spillerens endelige placering i de store årlige turneringsserier (som Sommerpirat, Vinterpirat og POT) for hvert år, de deltog.

Spillerinfo: Detaljer om Sejre & Resultater

Fanen Sejre/Resultater giver en dedikeret og detaljeret log over hver turnering, en spiller har vundet, og fungerer som deres officielle sejrsrekord.


Sejrstabel

Hovedfunktionen er en tabel, der viser hver førsteplads, inklusive dato, turneringsnavn, klub og spillerens score. Scoren vises som point (f.eks. ""40p"") for Stableford-formater eller en bruttoscore (f.eks. ""75"") for slagspilsformater.

Eksempel:

En spiller har to sejre på listen:

  • En Vinterpirat-sejr (Stableford):
    Dato: 15. feb. 2023, Turnering: Vinterpirat, Klub: The Royal Golf Club, R1: 38p, Til Par: N/A
  • En Sommerpirat-sejr (Slagspil):
    Dato: 10. jul. 2023, Turnering: Sommerpirat, Klub: The Grand Golf Club, R1: 71, Til Par: -1

Spiller-hub: Oversigt & Leaderboards

Dokumentation af Spiller & Spillerinfo

Denne fil indeholder det komplette HTML-indhold til de fem dokumentationsartikler relateret til spillerafsnittene. Hver artikel er adskilt i sin egen container nedenfor. Du kan kopiere HTML-koden fra hver ""Artikelindhold"" sektion for at udfylde Content-feltet i din database.

Spiller-hub: Oversigt & Leaderboards

Spiller-hubben er det centrale dashboard til visning af spillerstatistikker, ranglister og leaderboards for den aktuelt valgte klub. Det giver en omfattende oversigt over spillerpræstationer i forskellige sammenhænge.

Bemærk: Alle statistikker og leaderboards på denne side er filtreret efter den klub, du har valgt i hovednavigationen.


Alle Spillere

Dette er den primære liste over alle aktive og godkendte medlemmer af klubben. Som standard er spillerne rangeret efter deres officielle handicap (lavest til højest). Spillerkortene viser vigtige oplysninger med et hurtigt overblik:

  • Foto, Navn og Nationalitet
  • Officielt Handicap
  • Samlede Karriere-sejre i den valgte klub.
  • Spillede Runder i indeværende år.

Favoritspillere

Denne sektion giver en personlig visning af de spillere, du har markeret som favoritter, hvilket giver hurtig adgang til deres profiler og statistikker uden at skulle søge i hovedlisten.

Top 10 Leaderboards

Dette område viser de aktuelle Top 10-placeringer for alle aktive turneringsserier i klubben for indeværende år. Her kan du se, hvem der fører i:

  • Sommerpirat: Rangeret efter den laveste samlede sum af de bedste 10 scores.
  • Vinterpirat: Rangeret efter det højeste samlede antal point.
  • POT (Pirates on Tour): Rangeret efter den laveste samlede sum af den bedste procentdel af scores.

Top 10 Officiel Rangliste

Dette leaderboard viser de 10 bedste spillere baseret på klubbens officielle rangeringssystem. Det viser:

  • Nuværende Rang
  • Gennemsnitlige Point
  • Spillede Events der tæller med i ranglisten.

Nylige Vindere

Denne sektion fremhæver de spillere, der har vundet de seneste turneringer, og giver et hurtigt overblik over, hvem der er i god form.

Major-vindere

Denne sektion viser en liste over alle spillere, der har vundet en turnering betegnet som en ""Major"" inden for de sidste to år.

Ranking


Sådan Fungerer Den Officielle Golf-Ranking

Golf-rangeringssystem: Teknisk & Funktionel Oversigt

Dette dokument giver en detaljeret forklaring af golf-rangeringssystemet. Det dækker den funktionelle logik bag rangeringerne, den tekniske implementering i databasen og eksempler til at illustrere nøglekoncepter.

1. Funktionel Oversigt

Rangeringssystemet er en dynamisk, pointbaseret metode til evaluering af spillerpræstationer. En spillers rang bestemmes af deres Gennemsnitspoint, som beregnes ud fra deres præstationer i turneringer over en rullende toårig periode. For at sikre, at nylige præstationer har større indflydelse, er point optjent fra ældre turneringer underlagt en forfaldsmekanisme. Systemet er designet til at være retfærdigt for alle spillere, uanset om de spiller hyppigt eller ej, ved brug af en minimumsdivisor.

2. Kerneberegningskoncepter Forklaret

2.1. Det Rullende 104-Ugers Vindue

Rangeringssystemet fungerer ikke på en fast sæson; i stedet bruger det et 104-ugers (2-årigt) rullende vindue. Det betyder, at på et givet tidspunkt er de eneste turneringer, der bidrager til en spillers rangering, dem, der blev spillet i de umiddelbart foregående 104 uger. Hver uge, når en ny uge begynder, droppes den ældste uge i vinduet. Dette sikrer, at rangeringen altid er en afspejling af en spillers aktuelle form over de sidste to år.

2.2. Pointforfald: Belønning af Nylig Form

Pointforfald er en kritisk funktion, der giver mere vægt til nylige resultater. Sådan fungerer det:

  • Fuld Værdi Periode (13 Uger): I de første 13 uger efter en turnering er spillet, bevarer de point, en spiller optjener, deres fulde, 100% værdi.
  • Lineær Forfaldsperiode (Uge 14-104): Efter den 13-ugers henstandsperiode begynder pointene at miste værdi i en lige linje (lineært). Forfaldet sker over de resterende 91 uger af rangeringsvinduet. Hver uge mister pointene cirka 1,099% af deres oprindelige værdi (1/91-del).
  • Slutningen af Vinduet: Når en turnering er 104 uger gammel, bliver dens pointværdi nul, og den bidrager ikke længere til en spillers rangering.

Eksempel på Forfald:

Forestil dig, at en spiller optjener 50 point i en turnering. Rangeringen beregnes for 31. dec. 2023.

  • Turnering A (1. dec. 2023): 4 uger gammel. Den er i fuld-værdi perioden. Bidrag: 50 point (100% værdi).
  • Turnering B (4. juni 2023): 30 uger gammel. Den er i forfaldsperioden.
    • Uger inde i forfald: 30 - 13 = 17 uger.
    • Forfaldsformel: 1 - ((UgerGamle - FuldUger) / (VindueUger - FuldUger))
    • Vægt: 1 - ((30 - 13) / (104 - 13)) = 1 - (17 / 91) ≈ 0.813
    • Effektive Point: 50 * 0.813 = 40.65 point.

2.3. Den Årlige "Ultimo" (Årsafslutningssnapshot)

Mens den primære rangering er "live" og rullende, er TakeYearEndSnapshot-proceduren designet til at fange en definitiv rangering ved udgangen af hvert kalenderår (31. december). Dette tjener flere formål:

  • Historisk Arkiv: Det skaber en permanent optegnelse over spillerrangeringer, hvilket er afgørende for historisk analyse, årsafslutningspriser og sporing af spillerudvikling over årene.
  • Kvalifikationskriterier: Disse årsafslutningsrangeringer kan bruges som en officiel målestok for sæsonafsluttende kvalifikationer eller hædersbevisninger.
  • Dataintegritet: Det giver et stabilt, ikke-rullende referencepunkt for dataanalyse og rapportering.

Denne proces udføres én gang for et givet år og gemmer resultaterne i dbo.RankingSnapshots-tabellen, hvilket sikrer, at historiske data aldrig går tabt, når det rullende vindue bevæger sig fremad.

3. Turneringspoint & Styrke af Feltet (SOF)

Antallet af point, en spiller optjener fra en enkelt turnering, er ikke fast. Det afhænger af turneringens prestige og, vigtigst af alt, kvaliteten af de spillere, der konkurrerer i den. Bemærk: Logikken for SOF og turneringsbasepoint bestemmes, før dataene indgår i rangeringssystemet; SQL-funktionerne, der vises senere, opererer på de resulterende point.

3.1. Styrke af Feltet (SOF)

Styrken af Feltet (SOF) er en numerisk værdi, der repræsenterer kvaliteten af feltet i en turnering. En højere SOF betyder, at der er flere rangeringspoint at vinde. Selvom den nøjagtige formel kan variere, beregnes den typisk ud fra de præ-turneringsrangeringer af de spillere, der konkurrerer. For eksempel kan en turnerings SOF være afledt af:

  • Antallet af top-10 rangerede spillere i feltet.
  • Antallet af top-50 rangerede spillere i feltet.
  • De kumulative rangeringspoint for alle spillere i feltet.

En høj SOF sikrer, at det at vinde en turnering mod verdens bedste spillere belønnes kraftigere end at vinde mod et svagere felt.

3.2. Turneringsniveauer og Basepoint

Turneringer er ofte kategoriseret i niveauer, hvilket bestemmer et minimums- eller baseantal point, der er tilgængelige, uanset SOF. Denne struktur garanterer, at prestigefyldte begivenheder altid har betydelig vægt.

  • Majors: Disse er de mest prestigefyldte begivenheder og er garanteret de højeste pointtotaler (f.eks. 100 point til vinderen), ofte uanset SOF.
  • Mesterskaber/Invitationsbegivenheder: Disse begivenheder udgør det næste niveau og har en høj basepoint-værdi.
  • Regulære Tour-begivenheder: Disse udgør størstedelen af programmet. Deres samlede pointpulje er stærkt afhængig af SOF.

De endelige point, der tildeles ved en begivenhed, er en kombination af dens niveaus basisværdi og dens beregnede SOF. Disse point fordeles derefter til spillerne baseret på deres slutposition, hvor vinderen modtager den største andel.

4. Tekniske Detaljer

Rangeringssystemet er implementeret gennem et sæt SQL-databaseobjekter, herunder funktioner, en tabel til at gemme historiske snapshots og en lagret procedure til at udføre rangeringsberegningerne.

4.1. Databasefunktioner

dbo.GetRankingParams()

Denne funktion centraliserer de vigtigste parametre i rangeringssystemet, hvilket gør dem nemme at justere.

CREATE OR ALTER FUNCTION dbo.GetRankingParams()
RETURNS TABLE
AS RETURN
SELECT
    CAST(104 AS int) AS WindowWeeks,
    CAST(13  AS int) AS FullWeeks,
    CAST(6   AS int) AS MinDivisor;

dbo.DecayWeight(@EventDate, @AsOfDate)

Beregner forfaldsvægten (fra 0,0 til 1,0) af point fra en turnering baseret på dens dato i forhold til rangeringsberegningsdatoen (@AsOfDate).

CREATE OR ALTER FUNCTION dbo.DecayWeight(@EventDate date, @AsOfDate date)
RETURNS decimal(9,6)
AS
BEGIN
    DECLARE @w int = (SELECT WindowWeeks FROM dbo.GetRankingParams());
    DECLARE @f int = (SELECT FullWeeks   FROM dbo.GetRankingParams());
    DECLARE @weeks int = DATEDIFF(WEEK, @EventDate, @AsOfDate);

    IF @weeks < 0           RETURN 0.0;
    IF @weeks >= @w         RETURN 0.0;
    IF @weeks <= @f         RETURN 1.0;

    RETURN CAST(1.0 - ((@weeks - @f) * 1.0) / (@w - @f) AS decimal(9,6));
END;

dbo.EffectiveContribution(...)

Beregner den faktiske pointværdi, der er bidraget med af et enkelt turneringsresultat efter anvendelse af forfald.

CREATE OR ALTER FUNCTION dbo.EffectiveContribution
(
  @TournamentDateId int,
  @ApplicationUserId nvarchar(450),
  @AsOfDate     date
)
RETURNS decimal(12,6)
AS
BEGIN
    -- ... (Fuld funktionslogik) ...
END;

4.2. Rangeringssnapshot-tabel

dbo.RankingSnapshots

Denne tabel gemmer de historiske rangeringsdata, der genereres af årsafslutningsproceduren.

Kolonnenavn Datatype Beskrivelse
SnapshotDate date Datoen for hvilken rangeringen blev beregnet. En del af primærnøglen.
ApplicationUserId nvarchar(450) Den unikke identifikator for spilleren. En del af primærnøglen.
TotalPoints decimal(12,6) Summen af alle effektive (forfaldne) point for spilleren.
EventsActual int Det faktiske antal begivenheder, spilleren deltog i under rangeringsvinduet.
EventsDivisor int Divisoren, der bruges til at beregne gennemsnitspoint (enten EventsActual eller MinDivisor).
AveragePoints decimal(12,6) De endelige gennemsnitspoint (TotalPoints / EventsDivisor), der bruges til rangering.
RankDense int Spillerens endelige rang for snapshot-datoen, beregnet med DENSE_RANK.

4.3. Lagret Procedure

dbo.TakeYearEndSnapshot(@Year)

Denne procedure orkestrerer hele rangeringsberegningen for et givet år og gemmer resultaterne i dbo.RankingSnapshots-tabellen.

CREATE OR ALTER PROCEDURE dbo.TakeYearEndSnapshot
  @Year int
AS
BEGIN
  -- ... (Fuld procedurelogik som angivet) ...
END;

Tournaments


Brug af Turneringskalenderen

Dokumentation: Turneringskalender

Dette dokument forklarer funktionerne og funktionaliteten på siden Turneringskalender.

1. Oversigt

Turneringskalenderen giver en omfattende tidsplan over alle kommende og tidligere turneringsrunder. Den er designet til at give spillere et klart overblik over begivenheder, der er relevante for dem, med visninger for både den aktuelle måned og hele året.

Vigtigt: Kalenderen er kontekstafhængig. Den filtrerer automatisk begivenheder baseret på den klub, du har valgt i hovednavigationen. Den vil vise alle turneringer for din valgte klub plus eventuelle ""nationale"" turneringer, der ikke er knyttet til en specifik klub.

2. Nøglefunktioner

2.1. Nuværende Måneds Turneringer

Øverst på siden viser en særlig sektion altid de turneringer, der er planlagt for den aktuelle, virkelige måned. Dette giver en hurtig og nem måde at se, hvad der sker lige nu, uden at skulle navigere gennem den årlige kalender.

2.2. Årlig Kalendervisning

Hoveddelen af siden er den årlige kalender. Den viser alle turneringsrunder for et valgt år, organiseret efter måned i et harmonika-layout. Du kan klikke på en hvilken som helst måned for at udvide den og se de planlagte begivenheder.

Valg af År

Du kan nemt skifte mellem år ved hjælp af rullemenuen øverst på siden. Dette giver dig mulighed for at gennemgå tidligere turneringsplaner eller se frem til fremtidige.

Begivenhedsdetaljer

Hver begivenhed, der er angivet i kalenderen, viser følgende oplysninger:

  • Dato og Ugedag
  • Turneringens Navn: Navnet på turneringsserien (f.eks. ""Sommerpirat"", ""POT"").
  • Klubnavn: Navnet på den klub, der er vært for begivenheden. For nationale begivenheder, der ikke er knyttet til en specifik klub, vil dette blive angivet som ""Landsdækkende"".

3. Eksempel på Brug

En spiller fra ""The Royal Golf Club"" ønsker at se alle sin klubs begivenheder for året.

  1. De sikrer sig, at ""The Royal Golf Club"" er valgt som deres aktive klub i sidens hovedheader.
  2. De navigerer til siden ""Turneringskalender"".
  3. Siden viser dem automatisk en liste over alle turneringer for den aktuelle måned, der afholdes af ""The Royal Golf Club"" samt eventuelle ""Landsdækkende"" begivenheder.
  4. De bruger rullemenuen for år til at vælge ""2023"" og kan derefter udvide hver måned for at se hver ""Sommerpirat"", ""Vinterpirat"" og klubmesterskabsrunde, der er planlagt i deres klub for det pågældende år.

Turneringstilstand

Turneringstilstand: Funktionel & Teknisk Guide

Dette dokument giver en omfattende oversigt over ""Turneringstilstand""-funktionaliteten, der dækker alt fra de vigtigste leaderboards til det realtids score-indtastningssystem.

1. Turneringshierarkiet: Fra Serie til Enkelt Runde

Systemet organiserer turneringer i et klart to-niveau hierarki. Denne struktur adskiller den overordnede sæsonlange konkurrence fra administrationen af en enkelt dags spil.

1.1. Turneringsserie (Siden ""TournamentMain"")

Hovedturneringsvisningen, der er tilgængelig fra den primære navigation (f.eks. ""SOMMERPIRAT"", ""VINTERPIRAT""), er det centrale knudepunkt for en Turneringsserie. Denne side fungerer som et overordnet leaderboard, der samler resultater fra alle de individuelle runder, der udgør den pågældende serie for et valgt år.

  • Funktion: Viser de kumulative stillinger for alle spillere over en hel sæson eller serie.
  • Eksempler: ""Sommerpirat 2023"", ""Vinterpirat 2024"", ""Pirates on Tour 2023"".
  • Nøglefunktion: Denne side er, hvor den specifikke scorelogik for serien (f.eks. bedste 10 scores for Sommerpirat, samlede point for Vinterpirat) anvendes til at beregne de endelige rangeringer.

1.2. Turneringsdatoer (Siden ""Indtast Resultater"")

Hver turneringsserie består af flere Turneringsdatoer, som repræsenterer en enkelt golfrunde på en bestemt dag. At klikke på en rundes badge fra siden ""TournamentMain"" fører dig til siden ""Indtast Resultater"".

  • Funktion: Dette er det operationelle knudepunkt for at administrere alt relateret til en enkelt runde.
  • Omfang: Alle handlinger på denne side—oprettelse af hold, indtastning af scores, tildeling af roller—gælder *kun* for den specifikke `TournamentDate`.
  • Eksempel: I ""Sommerpirat 2023""-serien er ""Runde 1 - 5. maj"" en `TournamentDate`. Siden ""Indtast Resultater"" for denne dato er, hvor du ville administrere holdene og scorerne for begivenheden den 5. maj.

Vigtigste pointe: Siden `TournamentMain` er til visning af overordnede resultater. Siden `Indtast Resultater` er til aktiv administration af en enkelt runde.

2. Scoreringslogik for Turneringsserier

Siden `TournamentMain` beregner de samlede stillinger baseret på et specifikt sæt regler, der er unikke for hvert turneringsformat. Nedenfor er forklaringerne for hver type.

2.1. Sommerpirat (Slagspil)

Sommerpirat er en sæsonlang konkurrence baseret på en spillers bedste slagspilscorer.

  • Beregningsmetode: Systemet tager en spillers 10 bedste scorer fra alle de runder, de har spillet i serien.
  • Score-begrænsning: For at forhindre, at en enkelt dårlig runde er for straffende, tæller enhver individuel score højere end 85 automatisk som 85 i leaderboard-beregningen.
  • Manglende Scorer: Hvis en spiller har spillet færre end 10 runder, udfylder systemet de manglende scorer med en standardværdi på 85 for hver manglende runde.
  • Endelig Rangering: De 10 scorer (faktiske eller udfyldte) summeres. Spilleren med den laveste samlede sum rangeres højest.

2.2. Vinterpirat & Stableford (Pointbaseret)

Disse formater rangerer spillere baseret på point tildelt for deres slutposition i hver runde, ikke deres direkte scorer.

  • Beregningsmetode: Efter en runde er afsluttet, rangeres spillerne baseret på deres score (Nettoscore for Vinterpirat, Stableford Point for en Stableford-turnering).
  • Pointfordeling: Point tildeles derefter baseret på en foruddefineret `Vinterpiratpoints`-tabel i databasen. Denne tabel definerer, hvor mange point vinderen får, hvor mange 2. pladsen får, og så videre, afhængigt af antallet af spillere i den pågældende runde.
  • Endelig Rangering: En spillers samlede point fra alle runder i serien summeres. Spilleren med det højeste samlede antal point rangeres højest.

2.3. POT (Pirates on Tour)

POT bruger et unikt system, der konverterer Stableford-point til en slagspil-ækvivalent og kun tæller en vis procentdel af en spillers bedste runder.

  • Score-konvertering: En spillers score for en runde beregnes ud fra deres Stableford-point ved hjælp af formlen: Score = Banens Par + (36 - Stableford Point).
  • Score-begrænsning: Ligesom Sommerpirat begrænses enhver beregnet score højere end 85 til 85.
  • Procentdel af Runder: Systemet inkluderer kun en specifik procentdel af en spillers bedste runder til den endelige beregning (f.eks. 75% af spillede runder).
  • Endelig Rangering: Spillerens bedste scorer (for det beregnede antal runder) summeres. Spilleren med den laveste samlede sum vinder.

3. Siden ""Indtast Resultater"": Opsætning & Administration

Siden ""Indtast Resultater"" er kontrolcenteret for en enkelt turneringsrunde. Her kan du administrere hold, spillere og selve banen, før scoreindtastningen begynder.

3.1. Holdadministration

  • Tilføj et Hold: Klik på knappen ""Tilføj Hold"" for at oprette et nyt, tomt hold. Brugeren, der opretter holdet, tildeles automatisk som den indledende Markør.
  • Tilføj en Spiller til et Hold: Inden for et holdkort skal du vælge en spiller fra rullelisten og klikke på knappen ""Tilføj Spiller"".
  • Regel: En spiller kan kun være på ét hold pr. turneringsdato.
  • Fjern en Spiller fra et Hold: Klik på det røde ""X"" ved siden af en spillers navn for at fjerne dem fra holdet.
  • Fjern et Hold: Et hold kan slettes med sin egen fjern-knap, men kun hvis det ikke har nogen spillere.

3.2. Banefleksibilitet: Ændring af Banen

  • Sådan fungerer det: Hvis betingelserne er opfyldt, vises en rullemenu øverst på siden ""Indtast Resultater"", der viser alle tilgængelige baner. Vælg en ny bane fra listen og klik på ""Opdater Bane"".
  • Den Kritiske Regel: Du kan kun ændre banen, hvis nul scorer er blevet indtastet.

4. Kerneroller & Scoreindtastning

Systemet er designet til live scoreindtastning direkte fra banen.

4.1. Markør- & Kontrollørrollerne

  • Markøren: Den primære scorefører. En spiller bliver Markør ved at klikke på knappen ""Lås Hold"" i mobilvisningen.
  • Kontrolløren: Verifikatoren. En anden spiller på holdet kan sætte sig selv som Kontrollør for at indtaste et parallelt scorekort.
  • Overdrag: Hvis en Markør ikke kan fortsætte, kan et andet holdmedlem klikke på ""Overdrag"".

4.2. Mobil Scoreindtastning

  • Numpad-indtastning: At trykke på et scoreindtastningsfelt åbner et dedikeret numpad.
  • Automatisk Birdie-beregning: Systemet beregner og sporer automatisk birdies.
  • Manuel strafmarkering: I modsætning til birdies markeres straffe manuelt.

5. Automatiske Holdresultatberegninger

For visse holdsammensætninger beregner systemet automatisk et live matchspilresultat.

5.1. To-spiller Hold (Head-to-Head Matchspil)

  • Handicapudligning: Spilleren med det højere handicap modtager slag svarende til den fulde forskel.
  • Beregning: For hvert hul sammenligner systemet spillernes nettoscorer. Spilleren med den lavere nettoscore vinder hullet.

5.2. Tre-spiller Hold (""6 Points KBH"")

  • Handicapudligning: Handicaps udlignes mod den laveste handicpspiller i gruppen.
  • Pointfordeling (6 point pr. hul): Afhænger af placeringer på hullet (4-2-0, 3-3-0, 2-2-2 osv.).

5.3. Fire-spiller Hold (High-Low Matchspil)

  • Valg af Underhold: Brugeren skal manuelt definere de to-spiller underhold.
  • Beregning (2 point pr. hul): 1 point for bedste nettoscore (""Low Ball""), 1 point for næstbedste nettoscore (""High Ball"").

6. Verifikation og Finalisering

6.1. Tjek Scorer: Markør vs. Kontrollør

Denne funktion er designet til at fange og løse uoverensstemmelser mellem Markørens og Kontrollørens scorekort.

  • Fremhævning af Uoverensstemmelser: Ethvert hul, hvor Markørens score afviger fra Kontrollørens score, fremhæves automatisk.
  • Løsning: Markøren og Kontrolløren skal mundtligt blive enige om den korrekte score, og Markøren foretager rettelsen.

6.2. Gem og Send til Godkendelse

  • Send til Godkendelse: Låser hele turneringsdatoen for yderligere redigeringer.

Admin-beføjelser: En administrator kan låse en turneringsdato op for at rette fejl.

7. Realtidsudsendelse & UI-indikatorer

Systemet bruger SignalR til at skubbe opdateringer til alle brugere øjeblikkeligt.

  • Når en score indtastes, ser alle den med det samme.
  • Når et hold låses, opdateres dets kort for alle.
  • Den Grønne Linje: For at hjælpe med at spore aktivitet, fremhæver systemet det sidst ændrede hold.