mojaSymfonia FORUM
https://forum.mix-soft.pl/

Formuła KDF - problem
https://forum.mix-soft.pl/viewtopic.php?f=15&t=5161
Strona 1 z 1

Autor:  wojtek [ 2013-09-19, 06:18 ]
Tytuł:  Formuła KDF - problem

Witam,
Mam problem z odniesieniem się do informacji zawartych w elemencie kadrowym zgrupowanym Umowa Zlecenia z poziomu rozliczenia.
Potrzebuję w jednym z atrybutów rozliczenia policzyć wartość diety korzystając z informacji zawartych w umowie zlecenia powiązanej z rozliczeniem.
na razie robie to tak:
Kod:
int attrDietaDzien
int attrKwota
int attrSHot
int attrDiety
int iAktualnyWiersz

HRMgr mgr
HRComponent comp
HRValue hval
string sDataOdUm
string sDataDoUm
float flDietaDzien
float fLDniUm

float fWynik = 0
date datod
date datdo
date dataUmOd
date dataUmDo
date dataBuf
date dataBuf2

GetCalcStatePeriod(datod,datdo)
if datod.Valid() then
   attrDietaDzien = this.GetAttrIndexById(GetParamId(1))


   if attrDietaDzien then
      flDietaDzien = this.GetValueAsFloat(0,attrDietaDzien)
   endif

   if flDietaDzien > 0 then

         
         iAktualnyWiersz = this.getcurrvalueindex()
         this.GetValue(hval,(iAktualnyWiersz-1),14)//this.GetValue(hval,2,14)      //Data Zakończenia dla wiersza z UMOWĄ
         sDataDoUm = hval.strvalue
         this.GetValue(hval,(iAktualnyWiersz-1),13)//this.GetValue(hval,2,13)   
         sDataOdUm = hval.strvalue

            if sDataDoUm == "" then
            MessageBox "Nie wprowadzono daty zakończenia umowy.\nWyliczenia mogą być błędne.\nPrzyjmuję datę końca miesiąca"
            dataBuf.FromStr(sDataOdUm)
            dataBuf.SetLastDayofMonth()
            sDataDoUm = dataBuf.ToStr()
            endif

                  dataUmOd.FromStr(sDataOdUm)
                  dataUmDo.FromStr(sDataDoUm)
      
                  fLDniUm = dataUmOd.DaysUntil(dataUmDo)   //Liczba dni przez które trwała umowa
                  
                  fWynik = fLDniUm*flDietaDzien                  
   endif
endif
   this.SetValueAsFloat(ZaokrPrecyzja(fWynik))


za pomocą
Kod:
iAktualnyWiersz = this.getcurrvalueindex()
pobieram numer wiersza z rozliczeniem i odejmując 1 ląduję w elemencie umowa zlecenia.
Sposób puki co działa bez problemu ale zacznie być zawodny gdy do jednej umowy pojawi się kilka rozliczeń. Potrzebuję wyciągnąć z odpowiedniej umowy zlecenia datę jej rozpoczęcia i zakończenia (w sensie atrybutów) i za pomocą tych informacji policzyć liczbę dni za któe przysługuje w atrybucie rozliczenia.

z góry dziękuję za pomoc

Strona 1 z 1 Strefa czasowa UTC+1godz. [letni]
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/