Skocz do zawartości

[Sfera] WiarygodnoscPlatnicza z poziomu Podmiotu

Polecane posty

Chciałbym Sobie pobrać wiarygodności płatnicze klienta, aby dodatkowo poblokować w systemie towarzyszącym funkcje klientom nie płacącym. Oczywiście mógłbym Sobie to policzyć pewnie z bazy, ale chciałem aby było to zawsze zgodne z tym co waliduje wasz system, podczas wystawiania dokumentów. Znalazłem interfejs IWiarygodnoscPlatniczaKontrahenta. Przejrzałem dokumentację i jedyny dostęp do tego interfejsu, udało mi się uzyskać po sztucznym stworzeniu Sobie ZK na chwilę. Próba na skróty IWiarygodnoscPlatniczaKontrahenta wiarygodnosci = sfera.PodajObiektTypu<IWiarygodnoscPlatniczaKontrahenta>() kończy się błędem, działa tylko to:

 

using (var zk = zamowienia.Utworz(konfiguracja))
{
    // wiarygodność                    
    wiarygodnosc.aktualne_dni = zk.WiarygodnoscPlatnicza.AktualnaLiczbaDniSpoznienia(podmiot);
    wiarygodnosc.dopuszczalne_dni = zk.WiarygodnoscPlatnicza.DopuszczalnaLiczbaDniSpoznienia(podmiot);
    wiarygodnosc.aktualne_dokumenty = zk.WiarygodnoscPlatnicza.AktualnaLiczbaNiesplaconychDokumentow(podmiot);
    wiarygodnosc.dopuszczalne_dokumenty = zk.WiarygodnoscPlatnicza.DopuszczalnaLiczbaNiesplaconychDokumentow(podmiot);
    wiarygodnosc.aktualne_wykorzystanie = zk.WiarygodnoscPlatnicza.AktualnyWykorzystanyLimitKredytowy(podmiot).Wartosc;
    var kredyt = zk.WiarygodnoscPlatnicza.DopuszczalnyMaksymalnyLimitKredytowy(podmiot);
    if (kredyt == null)
    {
        wiarygodnosc.dopuszczalne_wykorzystanie = null;
        wiarygodnosc.waluta = null;
    }
    else
    {
        wiarygodnosc.dopuszczalne_wykorzystanie = kredyt.Wartosc;
        wiarygodnosc.waluta = kredyt.Waluta.Symbol;
    }
}

I teraz pytanie, czy jest lepsza  metoda, aby w Sferze sobie to wyliczyć, no bo to takie troszkę brzydkie jest, a o wydajności nie wspomnę, bo ta wersja miała 13s przetwarzania 160 podmiotów. Aż się prosi o dostęp od strony podmiotu, skoro i tak go przekazujemy. Oczywiście trochę potem to obeszłem, poprzez przetworzenie zapytań dla wielu podmiotów, w jednym otwartym do odczytu ZK i zrobiło się z tego 2s, ale zostawiam tutaj wersję oryginalną dla zachowania jasności co zrobiłem.

 

Dodatkowo, brakuje chyba jednego elementu, z Subiekta, jeśli chodzi o AktualnyWykorzystanyLimitKredytowy, bo to jest pełen wykorzystany, a fajnie by było wiedzie ile jest po terminie, tak jak jest to w Subiekcie. Zakładam też, że te funkcje zawsze odnoszą się do należności.

 

image.png.13eef0401bd44de4758689e50491c926.png

Edytowane przez Radomił Ząbik
Link to postu

Mam jeszcze jedno pytanie. Pobieram Sobie wiarygodność płatniczą, o tak:

wiarygodnosc.aktualne_dni = zk.WiarygodnoscPlatnicza.AktualnaLiczbaDniSpoznienia(podmiot);
wiarygodnosc.dopuszczalne_dni = zk.WiarygodnoscPlatnicza.DopuszczalnaLiczbaDniSpoznienia(podmiot);
wiarygodnosc.aktualne_dokumenty = zk.WiarygodnoscPlatnicza.AktualnaLiczbaNiesplaconychDokumentow(podmiot);

Z czego dostaję dane dla klienta o ID 102017:

[id] => 102017
[wiarygodnosc] => Array
  (
  [aktualne_dni] => 38
  [dopuszczalne_dni] => 1
  [aktualne_dokumenty] => 3
  )

Dla aktualnych dni spóźnienia, dostaję od Sfery 3, ale w samym NEXO, mam zwrotkę, że są 2 i pokrywa się to z faktycznie nie opłaconymi rozrachunkami.

image.png.f47d3a4e1579332bb611dfc647679353.png

Po analizie rozrachunków klienta, namierzyłem takie coś - jeden jest oznaczony jako rozliczony, bez spłaty na rozrachunkach - jeszcze będę dociekał z klientem co się odwaliło. Ale wygląda na to, że metody liczą inaczej:

image.png.58bc9f5cf2f6a3e2676f8237a55be96e.png

Link to postu
6 minut temu, Radomił Ząbik napisał:

czyli tak powinno być

Nie :)  Ten problem nie dotyczy TYLKO sfery gdyż można taki objaw zobaczyć w samym programie. Dane zwracane przez IWiarygodnoscPlatniczaKontrahenta widać w oknie wiarygodności płatniczej dostępne pod "hamburgerem" przy płatności odroczonej i tam też będzie Pan widział 3 dokumenty zamiast 2 wykazywanych przez informację na dole formatki. Problem został namierzony i zapisany do poprawy.

  • Dziękuję 1
Link to postu
×
×
  • Dodaj nową pozycję...