Nexus Salarii

Spor valoric fix care se acordă la îndeplinirea unei condiții


    Complexitate: Medie.
    Se adresează: Distribuitori și Utilizatori avansați.


    Pentru exemplificare, considerăm că dorim să acordăm un spor în valoare fixă de 200 lei, pentru cazul în care o persoana lucreaza cel puțin 16 ore într-o luna în regim de ore suplimentare lucrate sâmbătă și/sau duminică. În continuare, pentru ușurință, vom denumi sporul: Suplimentare S+D.
    1. Adăugăm Suplimentare S+D în nomenlcatorul de sporuri și stabilim formula de calcul
    2. 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),
      • numărul de ore pentru care se acordă (@ret_ore)
      • procentul care a fost folosit în calcul (@ret_proc).
      Ultimele două coloane (@ret_ore si @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 relevență ș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 zona pentru formula destinata zilelor lucrate și o altă zona pentru formula destinată zilelor de concediu de odihnă. Cele două zone sunt separate în cadrul unei instrucțiuni IF.

      Formula imediat următoare instrucțiunii IF @pt_co = 0 este aferentă zilelor lucrate, iar formula imediat următoare instrucțiunii ELSE este aferentă zilelor de concediu de odihnă.
      În cazul exemplului nostru, Suplimentare S+D nu se aplică pentru perioada de concediu de odihnă și astfel celor trei coloane li se va atribui valoarea zero.

      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 formulă 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 sa 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: CASE WHEN o.ore>=16 THEN s.integral ELSE 0 END

      s.integral - este valoarea integrală a sporului Suplimentare S+D, pe care o vom completa cu 200 lei în deciziile de salarizare ale salariaților care beneficiază de acest spor.
      o.ore - este suma numarului de ore pontate ca lucrate sambata și duminica.

       

      Formula completă este:

      IF @pt_co = 0
         SELECT @ret_val = CASE WHEN o.ore>=16 THEN s.integral ELSE 0 END,
            @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
        INNER JOIN (
             SELECT p.anluna, p.pl_blc, p.id_blc, SUM(p.ore) AS ore
             FROM Sal_Pontaj p
             INNER JOIN Sal_Pontaj_NomOre n ON p.tip = n.id
             WHERE n.camp = 'ore_sd' AND p.anluna=@anluna AND p.pl_blc=@pl_blc AND p.id_blc=@id_blc 
             GROUP BY p.anluna, p.pl_blc, p.id_blc
        ) o ON s.anluna=o.anluna AND s.pl_blc=o.pl_blc AND s.id_blc=o.id_blc
        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

        

    1. Adăugăm Suplimentare S+D în deciziile de salarizare ale salariaților

    2. Valorile câmpurilor din tabelul deciziei de salarizare le regăsim actualizate (după execuția procedurii de Sincronizare) în bonul de lucru - secțiunea sporuri.

      Valoarea sporului poate fi diferită de la salariat la salariat.

    1. Introducem pontajul și rulăm procedura de calcul salarial

    2. Introducem pontajul și bineînteles adăugăm și ore lucrate sâmbata și duminica pentru a putea finaliza tutorialul.

      Rulăm procedura de calcul și verificăm sumele calculate pentru Suplimentare S+D.

    Gata!