Tomasz Lapke 1 Napisano 7 Marca 2021 Udostępnij Napisano 7 Marca 2021 w Sfera - Subiekt Nexo - różnice w wyliczanych wartość pozycji między klientem a sferą Witam, Mam rozwiązanie które ściąga zamówienia z zewnętrznego systemu, a następnie wrzuca je do subiekta. Raz na jakiś czas zdarzają się błędy gdzie wyliczane podsumowanie z poziomu subiekta różni się od wyliczeń, z zewnętrznego rozwiązania. Wziąłem jeden z takich przypadków do analizy i wyszła dziwna rzecz. Po wprowadzeniu danych ręcznie do subiekta wychodzą takie same wartości jak z zewnętrznego systemu. Natomiast po wprowadzeniu tych samych danych przez sferę wychodzą różnice, prawdopodobnie w zaokrągleniach. Klient subiekta "pod spodem" używa tych samych rozwiązań sferycznych. Dlaczego w takim razie klient liczy inaczej niż sfera? W każdej pozycji został użyty rodzaj rabatu procent od wartości (20%). Dokument jest liczony od brutto. Link to postu
Przemysław Werner 395 Napisano 8 Marca 2021 Udostępnij Napisano 8 Marca 2021 w Sfera - Subiekt Nexo - różnice w wyliczanych wartość pozycji między klientem a sferą Różnica wynika prawdopodobnie ze sposobu wyliczania dokumentu. Wprowadzone wartości w Subiekcie są liczone od brutto, a wskazane do porównania od netto. 20 godzin temu, Tomasz Lapke napisał: Link to postu
Tomasz Lapke 1 Napisano 8 Marca 2021 Autor Udostępnij Napisano 8 Marca 2021 w Sfera - Subiekt Nexo - różnice w wyliczanych wartość pozycji między klientem a sferą Dokumentu sferycznie jest również liczony od brutto: destination.OperacjePrzeliczaniaPozycji = OperacjePrzeliczaniaPozycji.Brutto_ID; Poniżej sposób uzupełnienia pozycji: public void Convert(ItemDto sourceMember, PozycjaDokumentu destination) { //logger.Debug("Convert: " + sourceMember + ", destination: " + destination); if (sourceMember == null) { throw new ArgumentNullException(nameof(sourceMember)); } if (destination == null) { throw new ArgumentNullException(nameof(destination)); } var uchwyt = launcher.Connect(); destination.Ilosc = sourceMember.Quantity; destination.StawkaVat = uchwyt.Dane<StawkaVat>().SingleOrDefault(x => x.Stawka == sourceMember.TaxRate); destination.Cena.RodzajRabatu = (int)InsERT.Moria.Dokumenty.Logistyka.RodzajRabatu.ProcentowyOdWartosci; destination.Cena.BruttoPrzedRabatem = sourceMember.GrossPrice; destination.Cena.RabatProcent = sourceMember.DiscountPercent; logger.Debug($"NettoPrzedRabatem: {destination.Cena.NettoPrzedRabatem}, BruttoPrzedRabatem: { destination.Cena.BruttoPrzedRabatem}, RabatProcent: {destination.Cena.RabatProcent}, NettoPoRabacie: { destination.Cena.NettoPoRabacie}, BruttoPoRabacie: { destination.Cena.BruttoPoRabacie}, WartośćBruttoPoRabacie: {destination.Wartosc.BruttoPoRabacie}"); } Link to postu
Przemysław Werner 395 Napisano 8 Marca 2021 Udostępnij Napisano 8 Marca 2021 w Sfera - Subiekt Nexo - różnice w wyliczanych wartość pozycji między klientem a sferą (edytowane) Pytanie, czy później jeszcze Pan nie zmienia w kodzie klienta, bo zmiana klienta będzie powodować zmianę sposobu wyliczania (jeśli w kartotece klienta przypisane jest "od netto", to dokument zmieni się na liczony "od netto"). Proszę sprawdzić w interfejsie, jaki sposób wyliczania ma ten dokument wystawiony przez sferę. Edytowane 8 Marca 2021 przez Przemysław Werner Link to postu
Tomasz Lapke 1 Napisano 8 Marca 2021 Autor Udostępnij Napisano 8 Marca 2021 w Sfera - Subiekt Nexo - różnice w wyliczanych wartość pozycji między klientem a sferą Zgadza się. Podmiot był definiowany po wymuszeniu liczenia po brutto... Dokładnie tak sam problem był z ustawieniem pola "Realizuj jako". if (sourceMember.IsInvoice > 0) { destination.KonfiguracjaRealizujacego = uchwyt.PodajObiektTypu<IKonfiguracje>().DaneDomyslne.FakturaVAT; } else { destination.KonfiguracjaRealizujacego = uchwyt.PodajObiektTypu<IKonfiguracje>().DaneDomyslne.ParagonImienny; } Po przeniesieniu tej sekcji po zdefiniowaniu kontrahenta problem ustąpił. Dziękuję za pomoc. Czy jest gdzieś w API opisane, jaka powinna być sekwencja ustalania wartości dla pól w dokumencie, aby mieć pewność, że API pod spodem samo sobie tego nie pozmienia? Albo chociaż relacje, jakie pola mają wpływ na jakie właściwości dokumentu? Link to postu
Andrzej Kubik 1 098 Napisano 8 Marca 2021 Udostępnij Napisano 8 Marca 2021 w Sfera - Subiekt Nexo - różnice w wyliczanych wartość pozycji między klientem a sferą Godzinę temu, Tomasz Lapke napisał: Czy jest gdzieś w API opisane, jaka powinna być sekwencja ustalania wartości dla pól w dokumencie O ile wiem nie, ale sugeruję robić to w takiej kolejności jak wypełnianie dokumentu z poziomu interfejsu. Tam przecież też może się Pan spodziewać zmian po zmianie klienta, prawda? Link to postu
Tomasz Lapke 1 Napisano 8 Marca 2021 Autor Udostępnij Napisano 8 Marca 2021 w Sfera - Subiekt Nexo - różnice w wyliczanych wartość pozycji między klientem a sferą (edytowane) Rozumiem, postaram się właśnie w taki sposób to ustalać. Mam pytanie pomocnicze jeszcze. Czy istnieje możliwość sprawdzenia który kod sferyczny jest wywoływany przez GUI subiekta? Czy mają Państwo może kiedyś w planach nagrywanie makr? Czy na chwilę obecną zostaje reverse engineering i używanie narzędzi typu ILSpy? Edytowane 8 Marca 2021 przez Tomasz Lapke Link to postu
Polecane posty