James Hetfield 0 Napisano 16 Listopada 2019 Udostępnij Napisano 16 Listopada 2019 w Błąd podczas dodawania pozycji ZK w walucie Witam wszystkich. Stworzyłem aplikację, która za pomocą sfery dodaje do nexo ZK. Tworząc taki dokument zmieniam pole Podmiot a zaraz za nim Waluta. W momencie dodawania pozycji dokumentu sfera sypie następującym błędem: Odwołanie do obiektu nie zostało ustawione na wystąpienie obiektu. - InsERT.Moria.Cenniki - w InsERT.Moria.CennikiICeny.FunkcjaWyboruPozycjiCennika.<>c__DisplayClass15_0.<WybierzNajkorzystniejszaDlaKlienta>b__1(PozycjaCennika pc) w System.Linq.Enumerable.<>c__DisplayClass6_0`1.<CombinePredicates>b__0(TSource x) w System.Linq.Enumerable.WhereListIterator`1.MoveNext() w System.Linq.Enumerable.Any[TSource](IEnumerable`1 source) w InsERT.Moria.CennikiICeny.FunkcjaWyboruPozycjiCennika.WybierzNajkorzystniejszaDlaKlienta(Waluta docelowaWaluta, IEnumerable`1 zgodneZIloscia) w InsERT.Moria.CennikiICeny.FunkcjaWyboruPozycjiCennika.WybierzPozycje(IEnumerable`1 pozycje, Asortyment asortyment, JednostkaMiary jednostka, Decimal ilosc, Waluta docelowaWaluta, Decimal& ostatecznaIlosc) w InsERT.Moria.CennikiICeny.PoziomCenBO.WybierzPozycje(Asortyment asortyment, Decimal ilosc, JednostkaMiary jednostkaMiary, IEnumerable`1 pozycje, Waluta waluta, Decimal& ostatecznaIlosc) w InsERT.Moria.CennikiICeny.PoziomCenBO.PodajCeneBrutto(Asortyment asortyment, DateTime data, Decimal ilosc, JednostkaMiaryAsortymentu jednostkaMiary, Waluta waluta, IKontekstWyliczeniaCeny kontekst) w InsERT.Moria.Dokumenty.Logistyka.DokumentPart.PobierzCeneZPoziomuCen(Dokument dokument, PozycjaDokumentu pozycja, Asortyment asortyment, JednostkaMiaryAsortymentu jednostkaMiary, PoziomCen poziomCen) w InsERT.Moria.Dokumenty.Logistyka.DokumentPart.UstawCeneZPoziomuCen(Dokument dokument, PozycjaDokumentu pozycja) w InsERT.Moria.Dokumenty.Logistyka.DokumentPart.UstawCene(Dokument dokument, PozycjaDokumentu pozycja) w InsERT.Moria.Dokumenty.Logistyka.DokumentPart.UstawCene(IBusinessObject dokumentBO, PozycjaDokumentu pozycja) w InsERT.Moria.Dokumenty.Logistyka.ZamowienieOdKlientaBO.UstawCene(PozycjaDokumentu pozycja) w InsERT.Moria.Dokumenty.Logistyka.DokumentPart.DodajPozycje(Dokument dokument, AsortymentHistoria asortymentHistoria, Decimal ilosc, JednostkaMiaryAsortymentu jednostka, Boolean przeliczCeny, Boolean przeliczRabaty) w InsERT.Moria.Dokumenty.Logistyka.DokumentPart.DodajPozycje(Dokument dokument, AsortymentHistoria asortymentHistoria, Decimal ilosc, JednostkaMiaryAsortymentu jednostka) w InsERT.Moria.Dokumenty.Logistyka.ZamowienieOdKlientaBO.Dodaj(Asortyment asortyment, Decimal ilosc, JednostkaMiaryAsortymentu jednostka) Pozycję dodaję za pomocą: var zamowieniePozycja = zamowienie.Pozycje.Dodaj( asortyment , itemModel.quantity , asortyment.JednostkaSprzedazy ); Waluta ustawiona jest na GBP. Co może być nie tak? Z góry dziękuję za pomoc, Paweł Link to postu
Radomił Ząbik 309 Napisano 17 Listopada 2019 Udostępnij Napisano 17 Listopada 2019 w Błąd podczas dodawania pozycji ZK w walucie Próbował Pan wystawić dokładnie takie samo ZK, z poziomu interfejsu Subiekta NEXO? Błąd wskazuje na jakiś problem z cennikiem, więc zerknąłbym też w cenniki, jak wygląda w nim ten konkretny asortyment. Załączam też Panu mój działający kod, w którym wszystko bez problemu chodzi - oczywiście, jest on bardziej rozbudowany: Console.WriteLine(DateTime.Now.ToString("yyyy-MM-dd H:mm:ss")+" - dodawanie ZK dla dodanych pozycji."); // przygotowanie danych IAsortymenty asortyment = sfera.PodajObiektTypu<IAsortymenty>(); IPodmioty podmioty = sfera.PodajObiektTypu<IPodmioty>(); IUzytkownicy uzytkownicy = sfera.PodajObiektTypu<IUzytkownicy>(); IStatusyDokumentowDaneDomyslne statusyDD = sfera.PodajObiektTypu<IStatusyDokumentow>().DaneDomyslne; Konfiguracja konfZk = sfera.PodajObiektTypu<IKonfiguracje>().DaneDomyslne.ZamowienieOdKlienta; string stock; stock = results.stock; Magazyn mag = sfera.PodajObiektTypu<IMagazyny>().Dane.Wszystkie().Where(m => m.Symbol == stock).FirstOrDefault(); int spot; spot = results.spot; Oddzial odd = sfera.PodajObiektTypu<IOddzialy>().Dane.Wszystkie().Where(o => o.Id == spot).FirstOrDefault(); IZamowieniaOdKlientow dokumentZK = sfera.PodajObiektTypu<IZamowieniaOdKlientow>(); using (IZamowienieOdKlienta zk = dokumentZK.Utworz(konfZk)) { if(spot!=100000) { zk.Dane.MiejsceWprowadzenia = odd; zk.Dane.MiejsceSprzedazy = odd.MiejscaSprzedazy.FirstOrDefault(); zk.Dane.StanowiskoKasowe = odd.StanowiskaKasowe.FirstOrDefault(); } zk.Dane.Magazyn = mag; zk.Dane.Uwagi = results.comment; // termin realizacji if(results.term!=null && results.term!="") { string dateString = results.term+" 07:00:00,000"; DateTime termDate = DateTime.ParseExact(dateString,"yyyy-MM-dd HH:mm:ss,fff",System.Globalization.CultureInfo.InvariantCulture); zk.Dane.TerminRealizacji = termDate; Console.WriteLine("Termin realizacji: " + termDate); } // zamawiający int buyer; buyer = results.buyer; var klient = podmioty.Dane.Wszystkie().Where(p => p.Id == buyer).FirstOrDefault(); zk.Dane.Podmiot = klient; // numer zamówienia klienta if(results.oryginal!=null && results.oryginal!="") zk.Dane.NumerZewnetrzny = results.oryginal; // wypełnienie pozycji foreach(var posadd in results.pos) { int posid; decimal posq; posid = posadd.id; posq = posadd.quantity; Asortyment a = asortyment.Dane.Wszystkie().Where(t => t.Id == posid).First(); var poz = zk.Pozycje.Dodaj(a,posq, a.JednostkaSprzedazy); // jeśli jest opis pozycji if(posadd.desc!=null && posadd.desc!="") { string posd; posd = posadd.desc; poz.Opis = posd; } // jeśli jest cena pozycji if(posadd.price!=null) { decimal posp; posp = posadd.price; poz.Cena.NettoPoRabacie = posp; } Console.WriteLine("Pozycja: "+a.Nazwa+" - "+posq+" ("+poz.Ilosc+")"); // jeśli jest temirn if(results.term!=null && results.term!="") { string dateString = results.term+" 07:00:00,000"; DateTime termDate = DateTime.ParseExact(dateString,"yyyy-MM-dd HH:mm:ss,fff",System.Globalization.CultureInfo.InvariantCulture); poz.Termin = termDate; } zk.Przelicz(); } // uwagi do oferty if(results.setcomments!=null) foreach(var comment in results.setcomments) { Console.WriteLine("Ustawiamy komentarz: "+comment); string setcomment; setcomment = comment; IUwagiDoDokumentu uwagi = sfera.PodajObiektTypu<IUwagiDoDokumentu>(); zk.Dane.Uwagi = zk.Dane.Uwagi+""+uwagi.Dane.Wszystkie().Where(u => u.Nazwa == setcomment).SingleOrDefault().Tresc; } // osoba wystawiająca string sign = results.sign; if(results.oryginal!=null && results.oryginal!="") { zk.Dane.OdebralaOsoba = uzytkownicy.Dane.Wszystkie().Where(p => p.Sygnatura == sign).FirstOrDefault().Osoba; zk.Dane.Wystawil = results.issuedby; } else zk.Dane.WystawilaOsoba = uzytkownicy.Dane.Wszystkie().Where(p => p.Sygnatura == sign).FirstOrDefault().Osoba; // ustawienie daty if(results.date!=null && results.date!="") { string dateString = results.date+" 07:00:00,000"; DateTime zkDate = DateTime.ParseExact(dateString,"yyyy-MM-dd HH:mm:ss,fff",System.Globalization.CultureInfo.InvariantCulture); zk.Dane.DataWydaniaWystawienia = zkDate; zk.Dane.DataWprowadzenia = zkDate; Console.WriteLine("Data wystawienia: " + zkDate); } // zapisywanie if(zk.Zapisz()) { Console.WriteLine(DateTime.Now.ToString("yyyy-MM-dd H:mm:ss")+" - dodano ZK: "+zk.Dane.NumerWewnetrzny.PelnaSygnatura); response = "{ \"number\":\""+zk.Dane.NumerWewnetrzny.PelnaSygnatura+"\", \"id\":\""+zk.Dane.Id+"\" }"; } else { Globals.errors = ""; zk.WypiszBledy(); Console.WriteLine(DateTime.Now.ToString("yyyy-MM-dd H:mm:ss")+" - błąd podczas dodawania ZK: "+Globals.errors); response = "{ \"error\":\""+Globals.errors+"\" }"; } } Link to postu
Mateusz Matuszewski 91 Napisano 18 Listopada 2019 Udostępnij Napisano 18 Listopada 2019 w Błąd podczas dodawania pozycji ZK w walucie Dnia 16.11.2019 o 22:18, James Hetfield napisał: Waluta ustawiona jest na GBP. Co może być nie tak? W jaki sposób ustawia Pan walutę? Proszę sprawdzić, czy przed dodaniem pozycji waluta dokumentu na pewno jest ustawiona. Link to postu
James Hetfield 0 Napisano 18 Listopada 2019 Autor Udostępnij Napisano 18 Listopada 2019 w Błąd podczas dodawania pozycji ZK w walucie Dzień dobry dziękuję bardzo za pomoc. Okazało się, że w błędny sposób wyszukiwałem walutę i wpisywałem waluta null. To generowało dalszy problem z pobraniem ceny. Teraz jest już wszystko ok. Temat do zamknięcia. Pozdrawiam, Paweł Link to postu
Polecane posty