Tomcio Paluch 0 Napisano 24 Października 2016 Udostępnij Napisano 24 Października 2016 w SFERA - Funkcja zwracajaca pole "cena z ostatniej dostawy" Witam, Szukalem w manualu i na forum, ale musze sie zwrocic do Was z tym tematem, bo nie umiem sobie poradzic ;/ Jak w Sferze (Subiekt Nexo Pro) wyciagnac z asortymentu "Cene z ostatniej dostawy" ? Link to postu
Jarek KοIaѕa 2 Napisano 25 Października 2016 Udostępnij Napisano 25 Października 2016 w SFERA - Funkcja zwracajaca pole "cena z ostatniej dostawy" Nie ma takiego pola z wyliczoną wartością. Trzeba ją sobie wyliczyć. Np. tak: IAsortymenty asoMgr = sfera.PodajObiektTypu<IAsortymenty>(); Asortyment aso = asoMgr.Dane.WyszukajPoSymbolu("TOWAR1"); var przyjecie = aso.Przyjecia .SelectMany(p => p.Partie) .SelectMany(pr => pr.Przychody .OrderByDescending(p => p.PrzychodPierwotny == null ? p.Data : p.PrzychodPierwotny.Data) .ThenByDescending(p => p.Id)) .Select(p => p.Partia.Przyjecie).FirstOrDefault(); var kosztPrzyjecia = przyjecie.KorektyKosztow.Concat(new[] { przyjecie.KosztPierwotny }) .OrderByDescending(kosztPrzyj => kosztPrzyj.Lp).FirstOrDefault(); var kosztDodatkowy = (przyjecie.KosztyDodatkowe.Sum(kosztDod => (decimal?)kosztDod.Kurs * kosztDod.Wartosc) ?? 0m) / przyjecie.Ilosc; var cenaZOstatniejDostawy = (kosztPrzyjecia.Wartosc * kosztPrzyjecia.Kurs) / kosztPrzyjecia.Ilosc + kosztDodatkowy; Link to postu
Tomcio Paluch 0 Napisano 25 Października 2016 Autor Udostępnij Napisano 25 Października 2016 w SFERA - Funkcja zwracajaca pole "cena z ostatniej dostawy" Dziekuje za gotowca! nie wiedzialem ze to az tak "zakopane" skoro w asortymencie informacje o roznych cenach (srednia, najnizsza, ostatnia dostawa, srednia wazona, itp) sa zwracane dosc szybko. Wazne ze dziala. Tylko jedna zmiana: .Select(p => p.Partia.Przyjecie).FirstOrDefault(); na .Select(p => p.Partia.Przyjecie).LastOrDefault(); przypadek 1. to cena z najstarszej dostawy przypadek 2. to cena z ostatniej dostawy Raz jeszcze dziekuje za szybka i sprawna pomoc ! Link to postu
Jarek KοIaѕa 2 Napisano 26 Października 2016 Udostępnij Napisano 26 Października 2016 w SFERA - Funkcja zwracajaca pole "cena z ostatniej dostawy" (edytowane) 12 godzin temu, Tomcio Paluch napisał: Dziekuje za gotowca! nie wiedzialem ze to az tak "zakopane" skoro w asortymencie informacje o roznych cenach (srednia, najnizsza, ostatnia dostawa, srednia wazona, itp) sa zwracane dosc szybko. Są to wartości dynamiczne. Gdyby były gdzieś przechowywane to trzeba by było stale je aktualizować. Cytat Wazne ze dziala. Tylko jedna zmiana: .Select(p => p.Partia.Przyjecie).FirstOrDefault(); na .Select(p => p.Partia.Przyjecie).LastOrDefault(); przypadek 1. to cena z najstarszej dostawy przypadek 2. to cena z ostatniej dostawy Na pewno FirstOrDefault(). Bład jest tylko w sortowaniu - pomyłka przy przepisywaniu :/. Nie są sortowane wszystkie przychody, tylko z danej partii, a reszta leci jak baza danych zwróci (dlatego udało się z LastOrDefault(), ale to nie zawsze dobrze zadziała). Powinno być więc: var przyjecie = aso.Przyjecia .SelectMany(p => p.Partie) .SelectMany(pr => pr.Przychody) //<- dodany nawias - wszystkie przychody zebrane do posortowania .OrderByDescending(p => p.PrzychodPierwotny == null ? p.Data : p.PrzychodPierwotny.Data) .ThenByDescending(p => p.Partia.Przyjecie.Id) // <- usunięty nawias .Select(p => p.Partia.Przyjecie).FirstOrDefault(); var kosztPrzyjecia = przyjecie.KorektyKosztow.Concat(new[] { przyjecie.KosztPierwotny }) .OrderByDescending(kosztPrzyj => kosztPrzyj.Lp).FirstOrDefault(); var kosztDodatkowy = (przyjecie.KosztyDodatkowe.Sum(kosztDod => (decimal?)kosztDod.Kurs * kosztDod.Wartosc) ?? 0m) / przyjecie.Ilosc; var cenaZOstatniejDostawy = (kosztPrzyjecia.Wartosc * kosztPrzyjecia.Kurs) / kosztPrzyjecia.Ilosc + kosztDodatkowy; Edytowane 26 Października 2016 przez Jarek K. Link to postu
Grzegorz Święch 2 Napisano 17 Kwietnia Udostępnij Napisano 17 Kwietnia w SFERA - Funkcja zwracajaca pole "cena z ostatniej dostawy" Czy byłoby dużą zmianą gdybym chciał uzyskać cenę z ostatniej dostawy istniejących dostaw? Link to postu
Radomił Ząbik 310 Napisano 18 Kwietnia Udostępnij Napisano 18 Kwietnia w SFERA - Funkcja zwracajaca pole "cena z ostatniej dostawy" 10 godzin temu, Grzegorz Święch napisał: Czy byłoby dużą zmianą gdybym chciał uzyskać cenę z ostatniej dostawy istniejących dostaw? Wystarczy rozbudować warunek o ilość partii większą od zera, albo bezpośrednio wskazać partie i skorzystać z tego wątku: Link to postu
Kacper Panek 147 Napisano 18 Kwietnia Udostępnij Napisano 18 Kwietnia w SFERA - Funkcja zwracajaca pole "cena z ostatniej dostawy" Dzień dobry, 10 godzin temu, Grzegorz Święch napisał: cenę z ostatniej dostawy istniejących dostaw czy wbudowany plugin "Cena z najmłodszej istniejącej dostawy" nie jest w tym przypadku odpowiedni? Link to postu
Polecane posty