Koliko se meni čini, moraće VBA.
Ideja je:
1. Za unete podatke - početak odmora i trajanje radnih dana, proveriti prvo da li neko od drugih zaposlenih istog nivoa koristi odmor. Ako da, kraj rada, ako ne, korak 2
2. U bazu postaviti tabelu sa svim praznicima tj. neradnim danima. Ovo je moja tabela koju koristim:
tblPraznici
PraznikDatum PraznikOpis
2010/01/01 Nova godina
2010/01/02 Nova godina (drugi dan)
2010/01/07 Božić
2010/05/01 Praznik rada
2010/05/02 Praznik rada (drugi dan)
2010/02/15 Dan državnosti
2010/04/02 Veliki petak
2010/04/05 Drugi dan uskrsa
3. U Accessu postoji funkcija Weekday(Datum) koja vraća redni broj dana u nedelji. U Americi, odakle je program, prvi dan u nedelji je nedelja, ne ponedeljak kao kod nas. Npr.
? weekday(#3/july/2010#) vraća 7
to je subota
4. Kad sve ovo znaš, onda je lako. :) Napraviš petlju koju krene od prvog dana i uvećava se za broj dana odmora. Svaki datum proveriš na gornje uslove, da se ne poklapa sa drugim zaposlenim, da nije subota, da nije nedelja, da nije praznik i da nije - ono što je za zaposlenog karakteristično - da li koristi pravoslavni ili katolički verski praznik, odnosno kada mu je "slava", pa ima pravo na taj dan.
Pozdrav,
Branislav