Radomił Ząbik 310 Napisano 12 Grudnia 2017 Udostępnij Napisano 12 Grudnia 2017 w [Sfera] pobieranie ostatniej ceny nabycia asortymentu Potrzebuję pobrać ostatnią cenę nabycia asortymentu, więc robię to tak: IAsortymenty asortymenty = sfera.PodajObiektTypu<IAsortymenty>(); int aid; aid = results.good; var asortyment = asortymenty.Dane.Wszystkie().Where(a => a.Id == aid).FirstOrDefault(); if(asortyment == null) {} else { int stock; stock = results.stock; decimal cenaNabycia = 1m; Console.WriteLine(DateTime.Now.ToString("yyyy-MM-dd H:mm:ss")+" - pobieranie ostatniej ceny zakupu: "+asortyment.Nazwa); var partia = asortyment.Przychody.Where(p => p.Magazyn.Id == stock).LastOrDefault().Partia; if(partia == null) Console.WriteLine(DateTime.Now.ToString("yyyy-MM-dd H:mm:ss")+" - brak przychodów dla asorytmenutu."); else cenaNabycia = partia.Przyjecie.OkreslKosztJednostkowy(); response = "{ \"price\":\""+decimal.Round(cenaNabycia,6,MidpointRounding.AwayFromZero)+"\" }"; } I wszystko działa prawidłowo poza jednym problemem - gdy asortyment nie miał zakupu, z linii pobrania partii, wywala błąd braku obiektu - w sumie jest to prawidłowe, ale nie pomaga tutaj uwarunkowanie obiektu na null, jak przy asortymencie. W jaki sposób w takim razie sprawdzić, czy były jakieś partie na asortymencie? asortyment.Przychody/Przyjecia.Count (także jako metoda) zwraca mi 1, więc chyba nie działa, jakbym oczekiwał. Pomocy? Link to postu
Jarek KοIaѕa 2 Napisano 12 Grudnia 2017 Udostępnij Napisano 12 Grudnia 2017 w [Sfera] pobieranie ostatniej ceny nabycia asortymentu Skoro zwraca 1 to jednak był jakiś przychód, ale może na innym magazynie, ale nie na stock. Przy okazji drobna uwaga: Last nie oznacza ostatni w sensie daty wejścia na magazyn czy jakiejkolwiek informacji tylko w sensie kolekcji, a ta jest nieposortowana. Link to postu
Radomił Ząbik 310 Napisano 12 Grudnia 2017 Autor Udostępnij Napisano 12 Grudnia 2017 w [Sfera] pobieranie ostatniej ceny nabycia asortymentu 6 minut temu, Jarek K. napisał: Skoro zwraca 1 to jednak był jakiś przychód, ale może na innym magazynie, ale nie na stock. Racja, nie wpadłem na to, a zmyliła mnie zakładka dostawy, okazało się, że rzeczywiście był zakup na innym magazynie, więc po poprawce jest ok. if(asortyment.Przychody.Where(p => p.Magazyn.Id == stock).Count()>0) { var partia = asortyment.Przychody.Where(p => p.Magazyn.Id == stock).LastOrDefault().Partia; cenaNabycia = partia.Przyjecie.OkreslKosztJednostkowy(); } else Console.WriteLine(DateTime.Now.ToString("yyyy-MM-dd H:mm:ss")+" - brak przychodów dla asorytmenutu."); 10 minut temu, Jarek K. napisał: Przy okazji drobna uwaga: Last nie oznacza ostatni w sensie daty wejścia na magazyn czy jakiejkolwiek informacji tylko w sensie kolekcji, a ta jest nieposortowana. Tutaj założyłem, że będzie to ostatnia partia jaka powstała GUI pobiera cenę ostatniej dostawy, więc pewnie macie na to jakąś fajną metodę? Link to postu
Jarek KοIaѕa 2 Napisano 12 Grudnia 2017 Udostępnij Napisano 12 Grudnia 2017 w [Sfera] pobieranie ostatniej ceny nabycia asortymentu (edytowane) Owszem, posortować malejąco wg daty i wziąć pierwszy. .OrderByDescending(p => p.Data).FirstOrDefault() Ostatnia partia jaka powstała to trzeba by posortować po idzie. Jeszcze przyszło mi do głowy, że skoro to ma być cena nabycia, to powinno się odsiać zwroty, czyli dodać warunek p.PrzychodPierwotny == null Edytowane 12 Grudnia 2017 przez Jarek K. Link to postu
Radomił Ząbik 310 Napisano 12 Grudnia 2017 Autor Udostępnij Napisano 12 Grudnia 2017 w [Sfera] pobieranie ostatniej ceny nabycia asortymentu O super. Działa, bomba. Przychód pierwotny, to rzeczywiście ważny warunek. Wiszę kolejne piwo, już chyba się skrzynka zebrała Link to postu
Jarek KοIaѕa 2 Napisano 12 Grudnia 2017 Udostępnij Napisano 12 Grudnia 2017 w [Sfera] pobieranie ostatniej ceny nabycia asortymentu Wystarczy kupić abonament Link to postu
Radomił Ząbik 310 Napisano 13 Grudnia 2017 Autor Udostępnij Napisano 13 Grudnia 2017 w [Sfera] pobieranie ostatniej ceny nabycia asortymentu 16 godzin temu, Jarek K. napisał: Wystarczy kupić abonament Posiadamy na wszystkie programy w obu spółkach Link to postu
Polecane posty