On Thu, 8 Nov 2001 20:26:52 +0100, "Peter Kammann" <peter@kammann.dk>
wrote:
>Er der nogen der har en løsning til eller eksempler hvordan man kan løse
>ovenstående problem. Problemet er at vi har en vagtordning som vi gerne vil
>offentliggøre til en begrænset gruppe mennesker der deltager i
>vagtordningen. Disse mennesker skal så have mulighed for at "sælge" sine
>vagter og det skal være muligt dynamisk at indlægge og ændre vagter på
>vagtplanen. Hvordan kan man gøre det? Det ville være smart hvis man havde en
>alm. kalender på siden. Har du et eksempel eller en god idé til hvordan det
>skal gøres så skriv det her.
Hej Peter,
Jeg har lavet en sådan vagtplan til mit arbejde (TeleDK). Den er ikke
sat i drift endnu, men virker OK.
I den løsning jeg har valgt, har jeg 3 tabeller:
1) tblMedarbejdere (nøgle: medarbID)
- indh.: Lønnr, Navn osv.
2) tblTidType (nøgle: tidtypeID)
- indh.: liste over forsk. vagttyper + kursus, afspadsering etc.
3) tblVagtskema (nøgle: intervalID)
(denne tabel er mange-siden af 1-til-mange-relationer til de to andre
tabeller (altså en "samletabel" + et tidsinterval))
- start- + slut-tid, "oprettet_tid", "oprettet_af" osv.
Hvis du kun har én "vagttype", behøver du ikke tabel 2, men dels har
jeg flere vagtområder, dels vil jeg gerne have mulighed for at
registrere fx kurser, frihed, afspadsering etc.
Indlæsning af data:
------------------
Data kan registreres på flere måder:
1) Da vi planlægger vagter for et år ad gangen, kan jeg (som
administrator!) starte med at fylde tblVagtskema med alle vagterne -
altså en sammenkædning mellem Medarbejder, Tidtype og et tidsrum.
Her har jeg dels en funktion, som opretter "standard-vagter" for en
måned ad gangen, dels har jeg et månedsskema, hvor jeg hurtigt kan
lægge navne på disse vagter med select-bokse.
2) Desuden kan alle indlægge fx kurser, afspadsering el. lign.
3) Endelig kan alle bytte eller opdele vagter, når de først er
oprettet af administrator.
I ASP'en er der lavet den begrænsning, at man kun kan vælge halve og
hele timer som start-/slut-tid. Herved slipper jeg for, at folk skal
*skrive* tider, men i stedet skal vælge dem på select-boxe (= mindre
mulighed for fejl).
Sikkerhed:
---------
Der er et login-system, hvor man enten kan have læse-, standard- eller
admin-adgang. Password er beskyttet - jeg har brugt en MD5-funktion.
Når der foretages vagtændringer, registreres samtidig, af hvem og
hvornår ændringen er foretaget.
I basen slettes de oprindelige data ikke, når der foretages ændringer.
Posten bliver blot markeret passiv (ja/nej-felt), og der oprettes en
ny post. Herved kan alt rekonstrueres, hvis nogen får lavet "ged".
Visning af data:
---------------
Jeg viser data på flere måder:
1) Den vigtigste er et ugeskema, som viser alle regisreringer i ugen.
Her får man et hurtigt overblik over, hvem der har vagt, ferie etc.
Det er en tabel med ugedage vandret og medarbejdere lodret. En prik i
skemaet symboliserer en vagt el. lign.
"Prikken" har link til en side, hvor den pågældende vagt kan byttes
eller opdeles.
2) Hver enkelt medarbejder kan få listet sine vagter fra en valgt
måned og frem.
3) Som administrator har jeg desuden mulighed for at få vist "gamle"
data o. lign.
Validering:
----------
Jeg har lavet en valideringsfunktion, som sikrer, at der ikke er
hverken "huller" eller "overlap" i vagterne.
Udmelding:
---------
Når der foretages ændringer (vagtbytte el. lign), sendes en mail til
de medarbejdere, der er berørt, + til arbejdsleder eller dennes
stedfortræder.
Man kan altså ikke 'komme til' at give en kollega sin vagt, uden at
kollegaen får besked.
Tjah, det var vist det meste - håber det kan inspirere lidt.
Jeg synes selv jeg har lært meget af at lave det. Det der gav mig
størst hovedbrud var hvordan jeg skulle holde styr på tiden.
ASP og tidsregistrering er ikke altid det nemmeste.
Jeg landede altså på et system, hvor administrator lægger tider ind,
og de enkelte medarbejdere, så kun kan foretage ændringer på i
forvejen definerede tider.
Men hvis I ikke starter med en forud lagt vagtplan, kan man sagtens
alligevel starte med at "definere" vagterne uden at "sætte navn på".
Good luck,
Jørn
(både postet og mailet!)
--
Jørn Andersen
Brønshøj
|