Artur Admin 2 Napisano 31 Maja 2023 Udostępnij Napisano 31 Maja 2023 w Stan urlopów - skrypt sql (edytowane) mam pytanie czy jest możliwość uzyskania skryptu sql lub innego sposobu na wyciągnięcie z bazy raportu "RP STAN URLOPÓW" ? lub automatyczne wygenerowanie pliku z raportem do określonej ścieżki ? Edytowane 31 Maja 2023 przez Artur Rut Link to postu
Łukasz Gniazdowski 37 Napisano 31 Maja 2023 Udostępnij Napisano 31 Maja 2023 w Stan urlopów - skrypt sql Nie ma możliwości automatycznego generowania raportu do pliku, ale można to zrobić ręcznie poprzez wydruk listy lub eksport do excela. Niestety raport ten jest na tyle skomplikowany, że nie ma też możliwości uzyskania skryptu SQL, który by go generował. Można natomiast napisać aplikację sferyczną, która wyliczy dane widoczne w tym raporcie. W publicznym API mamy dedykowany do tego interfejs IMenadzerWymiaruUrlopuPracownika. Wyliczone dane można zapisać do pliku w określonym przez siebie formacie (np. plik CSV). Link to postu
Artur Admin 2 Napisano 31 Maja 2023 Autor Udostępnij Napisano 31 Maja 2023 w Stan urlopów - skrypt sql ok dziękuje za informację Link to postu
Artur Admin 2 Napisano 31 Lipca 2023 Autor Udostępnij Napisano 31 Lipca 2023 w Stan urlopów - skrypt sql Dzień dobry, Chciałbym ponownie poruszyć temat, który zaczął mój poprzednik Artur. W dokumentacji SDK jest przykład RaportySferyczne.RezerwaUrlopowa.RezerwaUrlopowaRaport . W ramach tego raportu jest użyty interfejs IMenadzerWymiaruUrlopuPracownika lecz sam przykład wymaga konsultacji. Czy mogę prosić o naprowadzenie jak policzyć stan urlopów z poziomu C# na podobieństwo raportu "RP STAN URLOPÓW" ? Link to postu
Łukasz Gniazdowski 37 Napisano 31 Lipca 2023 Udostępnij Napisano 31 Lipca 2023 w Stan urlopów - skrypt sql 2 godziny temu, Jacek Goszczyński napisał: Czy mogę prosić o naprowadzenie jak policzyć stan urlopów z poziomu C# na podobieństwo raportu "RP STAN URLOPÓW" ? Czy ma Pan problem z czymś konkretnym? Chce Pan stworzyć aplikację Sferyczną czy plugin? Jeśli chodzi o samo wyliczenie stanu urlopu, to metoda IMenadzerWymiaruUrlopuPracownika.Pobierz(PracownikGr pracownik, int rok, bool zatrudnienieDodatkowe, RodzajUrlopuWypoczynkowego rodzajUrlopu) zwraca wszystkie potrzebne dane. Link to postu
Artur Admin 2 Napisano 31 Lipca 2023 Autor Udostępnij Napisano 31 Lipca 2023 w Stan urlopów - skrypt sql public RezerwaUrlopowaRaport( IDataSystemowa dataSystemowa, IMenadzerWymiaruUrlopuPracownika menadzerWymiaruUrlopuPracownika, IWyplaty menadzerWyplat, IUmowyPracownicze menadzerUmow, ISumaryczneECP menadzerSumarycznychECP, IParametry menadzerParametrow) { _dataSystemowa = dataSystemowa; _menadzerWymiaruUrlopuPracownika = menadzerWymiaruUrlopuPracownika; _menadzerWyplat = menadzerWyplat; _menadzerUmow = menadzerUmow; _menadzerSumarycznychECP = menadzerSumarycznychECP; _menadzerParametrow = menadzerParametrow; } Chodzi mi o obiekt menadzerWymiaruUrlopuPracownika. W jaki sposób go stworzyć. (Gdzie jest konstruktor?) aby potem przypisać go do Interfejsu IMenadzerWymiaruUrlopuPracownika? Link to postu
Artur Admin 2 Napisano 31 Lipca 2023 Autor Udostępnij Napisano 31 Lipca 2023 w Stan urlopów - skrypt sql korzystam z korzystam z przykładu "PrzykladyKsef" oraz Raporty sferyczne Link to postu
Łukasz Gniazdowski 37 Napisano 31 Lipca 2023 Udostępnij Napisano 31 Lipca 2023 w Stan urlopów - skrypt sql (edytowane) 39 minut temu, Jacek Goszczyński napisał: Chodzi mi o obiekt menadzerWymiaruUrlopuPracownika. W jaki sposób go stworzyć. (Gdzie jest konstruktor?) aby potem przypisać go do Interfejsu IMenadzerWymiaruUrlopuPracownika? "PrzykladyKsef" zawiera przykład aplikacji sferycznej. W aplikacjach tego typu dostęp do wszystkich menadżerów zapewniony jest przez uchwyt sferyczny (typ Uchwyt). Najpierw trzeba stworzyć uchwyt, a następnie można pobrać IMenadzerWymiaruUrlopuPracownika w ten sposób: var menadzerWymiaruUrlopuPracownika = uchwyt.PodajObiektTypu<IMenadzerWymiaruUrlopuPracownika>(); albo jeszcze prościej: var menadzerWymiaruUrlopupracownika = uchwyt.MenadzerWymiaruUrlopuPracownika() Jeśli jeszcze Pan tego nie zrobił, to oprócz analizy przykładów zachęcam do zapoznania się z dokumentacją Sfery (InsERT.nexo.Sfera.chm). Edytowane 31 Lipca 2023 przez Łukasz G. Link to postu
Artur Admin 2 Napisano 2 Sierpnia 2023 Autor Udostępnij Napisano 2 Sierpnia 2023 w Stan urlopów - skrypt sql Bardzo dziękuję za szybką odpowiedz. W miarę postępu pojawiły się nowe pytania Jak mam wygenerować obiekt dla interfejsu IBudowniczyParametrowRaportu ? var fabrykaParametrowRaportu = sfera.?? //PodajObiektTypu<IBudowniczyParametrowRaportu>(); rur.DefiniujParametryRaportu(fabrykaParametrowRaportu); Oraz: interfejsu IParametryDanychRaportu var parametryDanychRaportu = sfera.??; //.PodajObiektTypu<IParametryDanychRaportu>(); var result = rur.PodajDaneRaportu(parametryDanychRaportu); Gdzie rur jest obiektem klasy RezerwaUrlopowaRaport. Pozdrawiam Jacek Link to postu
Łukasz Gniazdowski 37 Napisano 2 Sierpnia 2023 Udostępnij Napisano 2 Sierpnia 2023 w Stan urlopów - skrypt sql Chyba trochę błądzimy we mgle... Interfejsy IBudowniczyParametrowRaportu oraz IParametryDanychRaportu to interfejsy używane podczas tworzenia rozszerzenia do nexo zawierającego raport sferyczny. Więcej na ten temat można przeczytać w dokumentacji SDK (Rozszerzanie -> Punkty rozszerzania -> Dane do raportu sferycznego). Jak to wygląda od strony programu można zobaczyć na dedykowanym filmiku. Z tego co zrozumiałem z poprzednich wiadomości, Pan nie tworzy rozszerzenia do nexo, tylko osobną aplikację, której zadaniem będzie wyciągnięcie z nexo danych urlopowych i wyeksportowanie ich do pliku, czy dobrze rozumiem? W związku z tym te interfejsy nie są Panu do niczego potrzebne. Najprostsza wersja takiego rozwiązania może wyglądać jakoś tak: public void Wykonaj(Uchwyt sfera) { var menadzerWymiaruUrlopu = sfera.MenadzerWymiaruUrlopuPracownika(); var pracownicyGr = sfera.Podmioty().Dane.WszyscyPracownicy().Select(x => x.Osoba.Pracownik.PracownikGr).ToList(); using (var sw = new StreamWriter(@"StanUrlopu.csv")) { sw.WriteLine("Pracownik;Wymiar;Korekta;Zaległy;Razem;Wykorzystany;Pozostało"); foreach (var pracownikGr in pracownicyGr) { var wymiarUrlopu = menadzerWymiaruUrlopu.Pobierz(pracownikGr, 2023); var wiersz = new List<string>(); wiersz.Add(pracownikGr.Pracownik.Osoba.ImieNazwisko()); wiersz.Add(ToDaysString(wymiarUrlopu.Nalezny)); wiersz.Add(ToDaysString(wymiarUrlopu.Korekta)); wiersz.Add(ToDaysString(wymiarUrlopu.Zalegly)); var razem = wymiarUrlopu.Nalezny + wymiarUrlopu.Korekta + wymiarUrlopu.Zalegly; wiersz.Add(ToDaysString(razem)); wiersz.Add(ToDaysString(wymiarUrlopu.WykorzystanyNaDzien)); var pozostalo = razem - wymiarUrlopu.WykorzystanyNaDzien; wiersz.Add(ToDaysString(pozostalo)); sw.WriteLine(String.Join(";", wiersz)); } } } private string ToDaysString(int minutes) { return Math.Round(((decimal)minutes / 480), 2, MidpointRounding.AwayFromZero).ToString("0.##"); } Ta metoda pobiera stan urlopu dla wszystkich pracowników i eksportuje te dane to pliku "StanUrlopu.csv". Link to postu
Artur Admin 2 Napisano 3 Sierpnia 2023 Autor Udostępnij Napisano 3 Sierpnia 2023 w Stan urlopów - skrypt sql Dokładnie tego potrzebowałem. Dziękuję 1 Link to postu
Polecane posty