Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Funkcija za racunanje radnog staza

[es] :: MS SQL :: Funkcija za racunanje radnog staza

[ Pregleda: 13383 | Odgovora: 8 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

sparc
Sladjan Parc

Član broj: 65760
Poruke: 134
*.exe-net.net.



Profil

icon Funkcija za racunanje radnog staza30.03.2012. u 07:52 - pre 146 meseci
Dole je funkcija za racunanje radnog staza, ili ti pak starosti, u t-SQL, vraca podatak u formatu yy/mm/dd
Ulazni parametri su pocetni i krajnji datum. Ako nekome treba moze slobodno da je koristi.

CREATE FUNCTION dbo.KalendarskiStaz
(
@DatumOd Date,
@DatumDo Date
)
RETURNS Char(8)
AS
BEGIN
DECLARE @Mes Int,
@Dan Int,
@God Int,
@rDat Date

SET @DatumDo = DATEADD(d,1,@DatumDo)
SET @mes = DATEDIFF(m, @DatumOd, @DatumDo)
IF DATEADD(m, @Mes, @DatumOd) > @DatumDo
BEGIN
SET @Mes = @Mes - 1.
END

SET @Rdat = DATEADD(m, @Mes, @DatumOd)
SET @Dan = DATEDIFF(d,@Rdat,@DatumDo)

SET @God = @Mes / 12
SET @MES = @MES % 12


RETURN RIGHT('00' + CAST(@God AS VARCHAR(2)) ,2 ) + '/' +
RIGHT('00' + CAST(@Mes AS VARCHAR(2)) ,2 ) + '/' +
RIGHT('00' + CAST(@Dan AS VARCHAR(2)) ,2 )
END
 
Odgovor na temu

sule99
student

Član broj: 227708
Poruke: 93
*.adsl.net.t-com.hr.



+1 Profil

icon Re: Funkcija za racunanje radnog staza05.04.2012. u 12:48 - pre 145 meseci
Htio sam samo napomenuti da računanje staža nije tako trivijalan i jednostavan problem kao što izgleda. Želio bih ti predložiti da malo pažljivije pogledaš funkciju i ispraviš nedostatke. Mi također u mojoj firmi radimo često izračune radnog staža pa sam primjetio da nešto ne štima. Naime, kad se računa staž, treba definirati što znači, na primjer, 1 mjesec radnog staža?

Po tvojoj funkciji to ide ovako:

ako je čovjek radio od 1.2. do 28.2. (gledamo da nije prijestupna godina, recimo 2011.) po tvojoj funkciji bi imao 1 mjesec radnog staža.

ako je čovjek radio od 1.1 do 31.1. po tvojoj funkciji opet ima 1 mjesec radnog staža.

Ovo nikako ne može biti točno! Jer za različiti broj odrađenih dana imaju isti radni staž. Kada se računa staž, ne treba gledati kalendarski mjesec, nego treba ga drugačije definirati.

Pozdrav!
 
Odgovor na temu

sparc
Sladjan Parc

Član broj: 65760
Poruke: 134
*.exe-net.net.



Profil

icon Re: Funkcija za racunanje radnog staza06.04.2012. u 08:34 - pre 145 meseci
Kolega,
Jedino sto je fiksno prilikom racunanja staza i starosti to je cinjenica da godina ima 12 meseci, i da je broj dana i u godini i u mesecu razlicit. Sreckovic je onaj koji radi 28 dana u februaru jer ce dobiti radni staz od 1 mesec za razliku od onog koji je morao da radi 31 dan u januaru da bi dobio isti radni staz. Ni ja ni vi nismo odredjivali koji mesec ima koliko dana pa tu cinjenicu moramo da prihvatimo kao aksiom.
Naime: zasto sam ovako uradio funkciju. Postoji mogucnost da u toku jedne kalendarske godine koja traje od 01.01.xx do 31.12.xx radnik promeni raspored. Slazete se sigurno da kada se saberu rasporedi radnik treba da ima 01/00/00 (gg/mm/dd) staz a ne 00/11/30. ovom se funkcijom to omogucuje jer na primer ako je radnik radio od
01.01.xx do 31.05.xx na jednom radnom mestu i od 01.01.xx do 31.12.xx na drugom radnom mestu on treba da ima dva staza, I = 00/05/00 i II = 00/07/00 i ako saberete ova dva staza dobicete 01/00/00. Sve ostalo nije u redu. Verujte mi da je funkcija proverena na vise od 1800 radnika koji svako ima najmanje 5 rasporeda i da je sabiranjem pojedinacnih staz-ova dobijen rezultat koji je 99,99% precizan u dan.
 
Odgovor na temu

mkaras
Marko Karas
Beograd

Član broj: 66087
Poruke: 427



+19 Profil

icon Re: Funkcija za racunanje radnog staza06.04.2012. u 11:09 - pre 145 meseci
Prelistavanjem Zakona o penzijskom i invalidskom osiguranju može se zaključiti da se staž obračunava tako što se u toku jednog perioda rada izračunaju kalendarske godine, kalendarski meseci i kalendarski dani provedeni na tom poslu, pa tek ako se pojave više tih perioda onda se dani svode na mesece po formuli 1 mesec = 30 dana i 1 godina = 12 meseci. Za sve ostalo koristi se običan kalendar.

Primer: za rad u periodu od 01.01.2010.g. do 28.02.2011.g. upisuje se kao staž 1 (jedna) godina, 2(dva) meseca, 0 (nula) dana. dok za rad 0d 01.01.2011.g. do 28.02.2012.g. ( februar ima 29 dana) staž se vodi kao 1 (jedna) godina, 1(jedan) meseca, 28 (dvadesetosam) dana.

Iz ovoga proizilazi da za različiti broj dana provedenih na poslu mogu imati različiti staž.

Funkcija ovde pomenuta ne uzima u obzir preračunavanje dana u mesece ali i sule99 nije u pravu. Ako se bavi tom problematikom trebalo bi kod da uskladi sa svojim zakonodavstvom.
 
Odgovor na temu

mkaras
Marko Karas
Beograd

Član broj: 66087
Poruke: 427



+19 Profil

icon Re: Funkcija za racunanje radnog staza07.04.2012. u 08:01 - pre 145 meseci
Dodao bih još jedan primer obračuna.
Period rada je od 15.06.2009.godine do 03.04.2011.godine.
Obračunava se: od 15.06.2009.godine do 15.06.2010.godine je 1 (jedna) kalendarska godina. od 15.06.2010.godine do 15.03.2011.godine je 9 (devet) kalendarskih meseci i od 15.03.03.04.2011.godine je 16 + 3 = 19 (devetnaest) kalendarskih dana.
Neka je u nekom drugom periodu ostvaren staž od 3 godine 7 meseci i 24 dana. Ukupan staž je onda 4 godine, 16 meseci i 43 dana. To sređivanjem postaje: 4 godine 17 meseci i 13 dana a u sledećem koraku se dobija 5 godina 5 meseci i 13 dana ukupnog staža.
To je način za obračun staža po zakonodavcu.
 
Odgovor na temu

3okc
Χoᴘᴦoѡ

Član broj: 811
Poruke: 1318

Jabber: 3okc@elitesecurity.org


+116 Profil

icon Re: Funkcija za racunanje radnog staza07.04.2012. u 09:25 - pre 145 meseci
Citat:
mkaras: Iz ovoga proizilazi da za različiti broj dana provedenih na poslu mogu imati različiti staž.

Verovatno si hteo da kažeš da različit broj dana na poslu može proizvesti identičan staž, pošto je ovako napisano sasvim zdravorazumski.

Citat:
sule99: Ovo nikako ne može biti točno!

Tvoji primeri pogrešnog obračuna su upravo tačni, valjalo bi obavestiti se pre nego kreneš sa ispravljanjem.

Obračun staža aproksimira godinu kao period od 360 dana i već tu u startu imaš razliku koja se negde mora i iskazati, ako ćemo da gledamo dan-za-dan. Svaki mesec u takvoj godini je normalizovan na 30 dana i ne razlikuju se prestupne od prostih, 360 dana je za svaku.

To znači, 29 dana prestupnog februara jednako je jedan mesec, isto kao i 28 dana prostog. Sledeća posledica je nešto manje prihvatljiva ali je logična: 28 dana prestupnog se računa kao 29 (dan manje od punog meseca) te dakle isto važi i za 27 dana februara u prostoj godini.

Sa februarom su i najveća odstupanja, isto pravilo je i na mesecima koji traju duže: 30 dana decembra računa se kao 29.

Učesnicima predlažem da pročitaju diskusiju na Office forumu [Excel] Računanje radnog staža. Nažalost, veći deo je protraćen na peglanje nedokumentovane (i očigledno bagovite) funkcije da bismo parcijalno i usput dolazili do naznaka o famoznim pravilima... Dobro je došao svako sa iskustvom u obračunu radnog staža čija se pravila iz nekog razloga nigde ne mogu pročitati.
Have you found helpful examples, solutions or ideas-in-work, please consider the
following:
• Citation of *actual page* you are going to using is welcome.
• Have you saw "Value Added" examples you are going to incorporate to your
profitable blog, daily job or any money making venture: How about online donation?
↗Ana & Vlade Divac Foundation
Hvala!
 
Odgovor na temu

mkaras
Marko Karas
Beograd

Član broj: 66087
Poruke: 427



+19 Profil

icon Re: Funkcija za racunanje radnog staza09.04.2012. u 08:51 - pre 145 meseci
Ma, naravno da sam mislio da ražličiti broj dana provedenih na poslu može proizvesti isti staž.
U Zakonu o penzijskom i invalidskom osiguranju član 67 stav 2 piše:Kao jedan mesec, u smislu stava 1. ovog clana racuna se kalendarski mesec, odnosno 30 dana.
Više od toga nigde ništa ne piše pa ni kako se koji mesec u godini obračunava kada je godina prestupna ili ne. Svaki mesec je mesec, pa imao on 30,31, 28 ili 29 dana
 
Odgovor na temu

sule99
student

Član broj: 227708
Poruke: 93
*.adsl.net.t-com.hr.



+1 Profil

icon Re: Funkcija za racunanje radnog staza10.04.2012. u 08:22 - pre 145 meseci
Pozdrav svima! Naravno da je ovo što sam napisao u gornjem postu totalna glupost i sasvim krivi primjer. Htio sam napisati nešto sasvim drugo, ali sam odlutao na krivi put :)

znači, da li ova funkcija dobro računa radni staž nakon što pročitamo ono što je napisao 3okc? Htio sam napisati nešto slično, ali sam se totalno spetljao prvi puta.

Ja osobno kod nas nisam pisao tu funkciju koju koristimo, ali sam primjetio da je puno složenija od ovoga gore napisanoga, a i vraćala je neke druge vrijednsoti. Zato sam se javio da ukažem kolegi da negdje postoji problem. Nisu mi namjere bile zločeste.

Čitajući raspravu o izračunu staža pojavljuje se jedan primjer. radi se o datumima '1997-05-28' i '2002-03-14'. Ova gore funkcija to izračunava kao 04/09/15 staža, a u stvarnosti je priznato 04/09/17. Znači postoji ipak razlika od 2 dana.

[Ovu poruku je menjao sule99 dana 10.04.2012. u 09:36 GMT+1]
 
Odgovor na temu

sparc
Sladjan Parc

Član broj: 65760
Poruke: 134
*.exe-net.net.



Profil

icon Re: Funkcija za racunanje radnog staza10.04.2012. u 08:52 - pre 145 meseci
Postovane kolege hvala vam na diskusiji,
sve vase primedbe funkcija pokriva, ona jednostavno racuna kalendarski razliku izmedju dva datuma, ne bavi se sabiranjem radnih stazova, ali daje precizno izracunatu razliku izmedju dva datuma, i kada je godina prestupna i kada je godina prosta. U funkciji je mesec = mesec bez obzira da li ima 28,29,30 ili 31 dan. Preporucujem da funkciju testirate i na prostu godinu 01.01.2011 do 28.02.2011 dace staz 00/02/00 a 01.01.2012 do 28.02.2012 dace staz 00/01/28. Nema prevodjenja meseca u dane sto u mnogome uproscuje celi posao. Ovako izracunat pojedinacni staz u mnogome doprinosi racunanju zbirnog staza po pravilu iz zakona o penzijama, stim da se ne moze desiti da je zbir staza u jednoj godini 00/11/31 sto bi proizvelo rezultat u 01/00/01 a sto je slozicete se nedozvoljeno.
Funkcija je publikovana za siroko koriscenje, svako ko koristi funkciju koristi je na svoju odgovornost.
 
Odgovor na temu

[es] :: MS SQL :: Funkcija za racunanje radnog staza

[ Pregleda: 13383 | Odgovora: 8 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.