Jerzy Biesiadowski 0 Napisano 1 Sierpnia 2019 Udostępnij Napisano 1 Sierpnia 2019 w Zmiany w planie pracy ze Sfery Chciałbym kształtować plan pracy indywidualnie dla każdego pracownika. Obecnie bardzo wygodnie robi się to z GUI Gratyfikanta. Chciałbym jednak poprzez Sferę robić to zbiorczo, tak, jak robię dla Ewidencji Czasu Pracy z rejestratora. Czy istnieje domyślny konstruktor takiego zapisu, podobnie jak dla ZapisWECP? Link to postu
Krzysztof W. 2 Napisano 5 Sierpnia 2019 Udostępnij Napisano 5 Sierpnia 2019 w Zmiany w planie pracy ze Sfery Zakładam że wykorzystuje Pan metodę UstawGodziny() dla ustawienia 'zmian w godzinach przepracowanych' i pyta czy istnieje podobna metoda do ustawienia 'zmiany w planie pracy'. Metody takiej nie ma. Liczbę godzin do przepracowania ustawia się bezpośrednio w obiekcie. Przykład metody dodającej zmianę w planie pracy poniżej: public void DodanieZmianyWPlaniePracy() { using ( var sfera = UruchomSfere() ) { IZapisyWECP zapisyWECP = sfera.PodajObiektTypu<IZapisyWECP>(); IPodmioty podmioty = sfera.PodajObiektTypu<IPodmioty>(); using ( var zapisWECP = zapisyWECP.Utworz() ) { zapisWECP.Dane.Typ = (byte)TypZapisuWECP.Wyjatek; var podmiotPracownika = podmioty.Dane.WszyscyPracownicy().FirstOrDefault(x => x.Osoba.Nazwisko == "Skoliworczyński"); if ( podmiotPracownika != null ) zapisWECP.DlaPracownika = podmiotPracownika.Osoba.Pracownik; var dzien = new DateTime(2016, 9, 29); zapisWECP.DlaOkresu(new OkresWymagany() { DataPoczatkowa = dzien, DataKoncowa = dzien }); zapisWECP.Dane.Wyjatek.DoPrzepracowania.Ticks = TimeSpan.FromHours(10).Ticks; if ( !zapisWECP.Zapisz() ) zapisWECP.WypiszBledy(); } } } Link to postu
Jerzy Biesiadowski 0 Napisano 28 Sierpnia 2019 Autor Udostępnij Napisano 28 Sierpnia 2019 w Zmiany w planie pracy ze Sfery Dziękuję. Tak, zmianę godzin do przepracowania wstawiam z pliku w podany powyżej sposób. Chciałbym jeszcze ustawiać w danym dniu plan pracy od godziny do godziny. ZapisWECP.Dane.Wyjatek nie posiada metody do zapisu w DzienSzczegoly. W GUI widzę, że możliwość zapisu planowanego początku i zakończenia pracy pojawia się dopiero po wpisaniu pracownika (z aktualnym planem/kalendarzem). Po zapisie wyjątku (Zmiany w planie pracy) widzę w Bazie, że pojawił się rekord planu pracy w DniSzczegoly powiązany z DniemKalendarza. Ten z kolei poprzez zapis w Dni_Kalendarza_WyjatekECP powiązany jest z ZapisemWECP od którego wszystko się zaczyna. Niestety nie potrafię wszystkiego razem w Sferze razem powiązać. Proszę o pomoc Link to postu
Krzysztof W. 2 Napisano 28 Sierpnia 2019 Udostępnij Napisano 28 Sierpnia 2019 w Zmiany w planie pracy ze Sfery Faktycznie, ZapisWECP.Dane.Wyjatek nie ma właściwości DzienSzczegoly. Ma jednak Szczegoly => ZapisWECP.Dane.Wyjatek.Szczegoly , która jest kolekcją elementów typu DzienSzczegoly. Szczegóły w zmianie planu pracy można dodać w następujący sposób: //W kodzie z wcześniejszego przykładu: //Zamiast: zapisWECP.Dane.Wyjatek.DoPrzepracowania.Ticks = TimeSpan.FromHours(10).Ticks; //Wpisać var dzienSzczegoly = new DzienSzczegoly(); dzienSzczegoly.Poczatek = TimeSpan.FromHours(16).Ticks; dzienSzczegoly.Koniec = TimeSpan.FromHours(4).Ticks; dzienSzczegoly.TypOkresu = (byte)TypOkresuGodzinSzczegolowych.DwaDni; zapisWECP.Dane.Wyjatek.Szczegoly.Add(dzienSzczegoly); Należy mieć na uwadze, że dodanie każdego dzienSzczegoly do kolekcji Szczegoly przeliczy godziny rozpoczęcia i zakończenia pracy, oraz łączną liczbę godzin do przepracowania. Jeżeli istnieje potrzeba "rozjechania" tych wartości to zapisWECP.Dane.Wyjatek.DoPrzepracowania.Ticks należy ustawić po dodaniu ostatniego dzienSzczegoly Link to postu
Jerzy Biesiadowski 0 Napisano 28 Sierpnia 2019 Autor Udostępnij Napisano 28 Sierpnia 2019 w Zmiany w planie pracy ze Sfery Serdecznie dziękuję za błyskawiczną reakcję. Niestety próba zapisu: using (var zapisWECP = zapisyWECP.Utworz()) { zapisWECP.Dane.Typ = (byte)TypZapisuWECP.Wyjatek; zapisWECP.DlaPracownika = pracownik.Osoba.Pracownik; var dzien = new DateTime(2019, 8, 22); zapisWECP.DlaOkresu(new OkresWymagany() { DataPoczatkowa = dzien, DataKoncowa = dzien }); var dzienSzczegoly = new DzienSzczegoly(); dzienSzczegoly.Poczatek = TimeSpan.FromHours(7).Ticks; dzienSzczegoly.Koniec = TimeSpan.FromHours(15).Ticks; dzienSzczegoly.TypOkresu = (byte)TypOkresuGodzinSzczegolowych.PierwszyDzien; zapisWECP.Dane.Wyjatek.Szczegoly.Add(dzienSzczegoly); if (!zapisWECP.Zapisz()) { Console.WriteLine("Wystapiły błędy"); zapisWECP.WypiszBledy(); } } daje błąd: Link to postu
Jerzy Biesiadowski 0 Napisano 28 Sierpnia 2019 Autor Udostępnij Napisano 28 Sierpnia 2019 w Zmiany w planie pracy ze Sfery Oczywiście próbę robiłem dla miesiąca w którym nie było żadnych zapisów. Link to postu
Krzysztof W. 2 Napisano 28 Sierpnia 2019 Udostępnij Napisano 28 Sierpnia 2019 w Zmiany w planie pracy ze Sfery Ten błąd mówi że wprowadzono już godziny szczegółowe, które pokrywają się z tymi nowymi (mogą częściowo) Pewnie dla pracownika w danym dniu prowadzony jest kalendarz ze szczegółowym planem i po podstawieniu daty domyślnie do wyjątku dodają się te godziny szczegóły z planu pracy. Przed dodaniem pierwszego szczegółu trzeba by usunąć istniejące. Link to postu
Jerzy Biesiadowski 0 Napisano 28 Sierpnia 2019 Autor Udostępnij Napisano 28 Sierpnia 2019 w Zmiany w planie pracy ze Sfery Przeprowadziłem szerokie badania dla wielu kombinacji dni, godzin i pracowników. Wszystkie próby robione były w czasie przyszłym, gdzie nie mogło być żadnych zapisów. Okazało się, że podany powyżej błąd występuje dla pracowników, których plan pracy rozliczany jest szczegółowo. Dla rozliczanych zbiorczo zapis odbywa się bez przeszkód. W celu upewnienia się, zamieniłem w programie kolejność wierszy z : zapisWECP.DlaPracownika = pracownik.Osoba.Pracownik; zapisWECP.Dane.Wyjatek.Szczegoly.Add(dzienSzczegoly); na zapisWECP.Dane.Wyjatek.Szczegoly.Add(dzienSzczegoly); zapisWECP.DlaPracownika = pracownik.Osoba.Pracownik; Zapis zmiany planu pracy pojawił się bez błędu ale godziny planowanego początku i końca pracy nie zostały zmienione, tzn pozostały takie, jak w ramowym planie/kalendarzu. Jak można z tego wybrnąć? Link to postu
Krzysztof W. 2 Napisano 29 Sierpnia 2019 Udostępnij Napisano 29 Sierpnia 2019 w Zmiany w planie pracy ze Sfery Jak pisałem wcześniej:) Cytat Przed dodaniem pierwszego szczegółu trzeba by usunąć istniejące. czyli: zapisWECP.DlaPracownika = pracownik.Osoba.Pracownik; zapisWECP.Dane.Wyjatek.Szczegoly.Clear(); zapisWECP.Dane.Wyjatek.Szczegoly.Add(dzienSzczegoly); Pracownika należy ustawić na początku. Przy jego ustawianiu pobierane są wartości/parametry planu pracy na dany dzień i wpisywane jako domyślne dla zmiany w planie pracy. No i później te dane można edytować. Ustawienie wpierw wartości a później pracownika nic nie da bo ustawienie pracownika przywróci właśnie te wartości domyślne. Link to postu
Jerzy Biesiadowski 0 Napisano 3 Września 2019 Autor Udostępnij Napisano 3 Września 2019 w Zmiany w planie pracy ze Sfery Dziękuję. Przez nieuwagę/brak zrozumienia/brak umiejętności rzeczywiście nie doczytałem " Przed dodaniem pierwszego szczegółu trzeba by usunąć istniejące." Po wstawieniu "Clear" działa jak trzeba. Link to postu
Polecane posty