// *************************************************************************** // * * // * Funkcja oblicza ilo˜† lat sta¾u pracy z kartoteki Przebieg zatrudnienia * // * Okres okre˜lony OD, DO nie jest uwzgl©dniany. * // * * // * Argumenty: od * // * do * // * data_do * // * ilosc_dni * // * dni * // * miesiace * // * lata * // * * // * 09.09.2009 WA-PRO (Dziaˆ Rozwoju Oprogramowania) * // *************************************************************************** local plata=0 pdni=0 pmiesiace=0 pdata_od=0 pdata_do=0 pdata_od1=0 pdata_do1=0 suma_dni=0 data_zatrudnienia=Zatrudniony od (data_do) d_od=0 d_do=0 end if data_zatrudnienia=-1 data_zatrudnienia=data_do+1 end //przebieg pracy zawodowej Clear (Przebieg pracy zawodowej) Set (Przebieg pracy zawodowej) Loop Next (Przebieg pracy zawodowej) // INFO('przebieg'&&data2txt(Przebieg pracy zawodowej (Data od))&&data2txt(data_zatrudnienia)&&data2txt(data_do)) //koniec przegl¥dania gdy koniec kartoteki, zapis pokrywa si© z okresem zatrudnienia lub wychodzi poza okres sprawdzania if eof() or Przebieg pracy zawodowej (Data od)>=data_zatrudnienia or Przebieg pracy zawodowej (Data od)>=data_do break end if not Przebieg pracy zawodowej (Sta¾) cycle end //pierwszy zapis w kartotce if pdata_od=0 and pdata_do=0 d_od=Przebieg pracy zawodowej (Data od) d_do=Przebieg pracy zawodowej (Data do) if d_od=data_zatrudnienia d_do=data_zatrudnienia-1 end if d_do>data_do d_do=data_do end else break end pdata_od=d_od pdata_do=d_do //INFO('d1'&&data2txt(d_od)&&data2txt(d_do)) Odejmij okres od okresu (d_od, d_do, od, do, ilosc_dni, dni, miesiace, lata) else //pomini©cie pokrywajacego si© zapisu if Przebieg pracy zawodowej (Data do)<=pdata_do or (pdata_do1>0 and Przebieg pracy zawodowej (Data do)<=pdata_do1) cycle end //je¾eli kolejny zapis zaczyna si© p¢¾niej ni¾ skoäczyˆ poprzedni if Przebieg pracy zawodowej (Data od) > pdata_do or (pdata_do1>0 and Przebieg pracy zawodowej (Data od)>pdata_do1) d_od=Przebieg pracy zawodowej (Data od) else if pdata_do1>0 d_od=pdata_do1+1 else d_od=pdata_do+1 end end case of Przebieg pracy zawodowej (Data do)>data_zatrudnienia d_do=data_zatrudnienia-1 of Przebieg pracy zawodowej (Data do)>data_do d_do=data_do else d_do=Przebieg pracy zawodowej (Data do) end //INFO('dn'&&data2txt(d_od)&&data2txt(d_do)) Odejmij okres od okresu (d_od, d_do, od, do, ilosc_dni, dni, miesiace, lata) end end