Anna Sałacińska 1 Napisano 18 Lutego 2021 Udostępnij Napisano 18 Lutego 2021 w [Sfera]Zmiana kursu walut Witam, w jaki sposób zmienia się kurs walut w dokumencie ? Obecnie mam coś takiego IWalutyDaneDomyslne walutyDef = sfera.PodajObiektTypu<IWaluty>().DaneDomyslne; ILinieKursowWalut linieKursow = sfera.PodajObiektTypu<ILinieKursowWalut>(); .... zk.Dane.Waluta = walutyDef.EUR; var linia = linieKursow.Dane.Wszystkie().Where(l => l.Nazwa == "NBP - kursy średnie").FirstOrDefault(); var kurs = linieKursow.Dane.PobierzKursNaDzien(linia, walutyDef.EUR, walutyDef.PLN, DateTime.Now).KursyWalutyDokumentu.FirstOrDefault(); zk.Dane.KursWalutyDokumentu = kurs; to zwraca błąd Cytat InsERT.Mox.DataAccess.UnsponsoredModificationException: Nie można zapisać zmian w danych, ponieważ wykryto w nich relację (KursWalutyDokumentu, LiniaKursowWalut) nieprzyłączoną do obiektu kontrolującego modyfikację danych. Link to postu
Paweł Kubacki 209 Napisano 18 Lutego 2021 Udostępnij Napisano 18 Lutego 2021 w [Sfera]Zmiana kursu walut KursWalutyDokumentu jest to encja przynależąca do danych dokumentu. Każdy dokument w walucie ma własną instancję tej klasy. Pobierając tą daną przy użyciu metody FirstOrDefault w taki sposób var kurs = linieKursow.Dane.PobierzKursNaDzien(linia, walutyDef.EUR, walutyDef.PLN, DateTime.Now).KursyWalutyDokumentu.FirstOrDefault(); w rzeczywistości pobiera Pani instancję KursWalutyDokumentu przynależącą do jakiegoś innego wcześniej wystawionego dokumentu. Stąd też przy zapisie pojawia się błąd. Aby prawidłowo ustawić kurs na dokumencie walutowym wystarczy wykonać taki kod var kurs = linieKursow.Dane.PobierzKursNaDzien(linia, walutyDef.EUR, walutyDef.PLN, DateTime.Now); ... zk.Dane.Waluta = walutyDef.EUR; zk.Dane.KursWalutyDokumentu.TabelaKursowWalutPozycja = kurs; Przy czym ważne jest, aby najpierw ustawić walutę, a potem dopiero kurs, gdyż po zmianie waluty program sam stworzy instancję klasy KursWalutyDokumentu i wypełni ją według ustawień programu. Zastanawia mnie jednak dlaczego w ogóle chce Pani ręcznie podmieniać domyślnie ustawiony kurs waluty? W programie istnieje dosyć rozbudowana konfiguracja pozwalająca ustalić według jakich kryteriów kurs na dokumencie ma być ustalany. Link to postu
Anna Sałacińska 1 Napisano 18 Lutego 2021 Autor Udostępnij Napisano 18 Lutego 2021 w [Sfera]Zmiana kursu walut Wygląda na to że działa, dziękuję. Chodzi o to że program "sfery" ma pobierać zamówienia z zewnętrznego systemu jako ZK, ale jeśli pobieranie zostanie uruchomione dopiero po kilku dniach to chcę mieć pewność że kurs jest ustawiony zgodnie z dniem złożenia zamówienia, a nie dniem dodania subiekta. Link to postu
Paweł Kubacki 209 Napisano 19 Lutego 2021 Udostępnij Napisano 19 Lutego 2021 w [Sfera]Zmiana kursu walut Kurs będzie ustalany według wyżej widocznych parametrów także dla dokumentów dodawanych przy pomocy sfery. Domyślnie jest to dzień poprzedzający wystawienie dokumentu. Ważna jest więc data wpisana jako data wystawienia dokumentu (DataWprowadzenia) a nie moment, w którym rozwiązanie sferyczne będzie uruchamiane. Link to postu
Polecane posty