
Spor valoric fix acordat indiferent de numarul de ore pontate
Complexitate: Medie.
Se adresează: Distribuitori și Utilizatori avansați.
Pentru exemplificare, considerăm că dorim să acordăm un spor în valoare fixă de 300 lei, indiferent de numarul de ore pontate.
În continuare, pentru ușurință, vom denumi sporul: SporFix.
Adăugăm SporFix în nomenlcatorul de sporuri și stabilim formula de calcul:
- Pentru câmpul Valori: procent și suma fixă selectăm din meniul combo opțiunea: Se preiau valorile din decizia de salarizare.
- Formula de calcul (funcție SQL) trebuie să întoarcă trei coloane/câmpuri:
- valoarea calculată a sporului ( @ret_val)
- numarul de ore pentru care se acordă ( @ret_ore)
- procentul care a fost folosit în calcul ( @ret_proc)
Ultimele două coloane (@ret_ore și @ret_proc) sunt opționale și nu sunt relevante decât pentru anumite sporuri. Astfel, pentru sporul pe care dorim noi să-l construim în acest exemplu aceste două coloane nu au releventă și le vom atribui valoarea zero.
Anumite sporuri se acordă chiar dacă salariatul se află în concediu de odihnă, însă formula de calcul poate diferi față de cea pentru zilele lucrate. Astfel, toate funcțiile de calcul pentru sporuri vor avea o zonă pentru formula destinată zilelor lucrate și o altă zonă pentru formula destinata zilelor de concediu de odihnă. Cele două zone sunt separate în cadrul unei instrucțiuni IF.
Formula imediat următoare instructiunii:
- IF @pt_co = 0 este aferentă zilelor lucrate, iar formula imediat următoare instrucțiunii
- ELSE este aferenta zilelor de concediu de odihnă.
În cazul exemplului nostru, SporFix nu se aplică pentru perioada de concediu de odihnă și astfel celor trei coloane li se va atribui valoarea zero.
Tabele utilizate in cadrul formulei
- BLC_LINII este tabelul care stochează informațiile despre sporurile din bonul de lucru. Acestui tabel îi asociem aliasul "s", adică adunci când dorim să utilizăm în formula un câmp din BLC_LINII vom scrie: s.procent, s.valoare sau s.integral.
- BLC este tabelul care stochează informațiile despre bonul de lucru. Acestui tabel îi asociem aliasul "b", adică adunci când dorim să utilizăm în formula un câmp din BLC vom scrie: b.sal_neg, b.ore_norm sau b.anluna.
- SAL_PONTAJ este tabelul care stochează informațiile despre pontaj. Acestui tabel îi asociem aliasul "p", adică adunci când dorim să utilizăm în formula un cămp din SAL_PONTAJ vom scrie: p.ore sau p.anluna.
- SAL_PONTAJ_NomOre este tabelul care stochează informațiile despre nomenlcatorul de tipuri de ore utilizate pentru pontaj.
Concret, formula de calcul va fi (în cazul în care valoarea sporului este luata din decizia de salarizare):
@ret_val = s.integral
unde s.integral - este valoarea integrală a sporului SporFix, pe care o vom completa cu 300 lei în deciziile de salarizare ale salariaților care beneficiază de acest spor.
Nu există o formulă de calcul condiționată, deoarece nu avem impusă nici o condiție legată de orele existente în pontaj sau de un anumit procent.
Formula completă va fi:
IF @pt_co = 0
SELECT @ret_val = s.integral ,
@ret_ore = 0,
@ret_proc = 0
FROM blc_linii s
INNER JOIN blc b ON s.anluna=b.anluna AND s.pl_blc=b.pct_lcr AND s.id_blc=b.id
WHERE s.anluna=@anluna AND s.pct_lcr=@pl_sp AND s.id=@id_sp
ELSE
SELECT @ret_val = 0,
@ret_ore = 0,
@ret_proc = 0