Skocz do zawartości

[Sfera zdarzeniowa] Wykrycie dodania nowej płatności

Polecane posty

Chciałbym podczas dodawania dokumentu, wykonać jego analizę w momencie dodania płatności i ustawić jego płatności na nowo. W tym celu przygotowałem wstępnie kod dla obiektu Dokument, ale mam problem z wykryciem tego ostatecznego momentu w dodawaniu płatności - Procent wydawał się ok, ale jak wykonam wtedy czyszczenie płatności, to się oczywiście usuną, ale Subiekt prawdopodobnie jeszcze coś zmienia i daje komunikat od odwołaniu do obiektu nieistniejącego. Kwota płatności, także ślepy zaułek, bo jest ustawiania przed procentem. A może kierunek jest absolutnie zły?

 

public override void PoZmianieWlasciwosciObiektu(IKontekstZdarzeniaPoZmianieWlasciwosciObiektu<IDokument> kontekst)
{
Dokument dokument = kontekst.ObiektBiznesowy.Dokument;
string[] symboleDokumentow = {"ZK"};
if (kontekst.NazwaWlasciwosci == nameof(PlatnoscDokumentu.Procent) && Array.Exists(symboleDokumentow, e => e == dokument.Symbol) && trwaAnaliza==false)
{
}
}

 

Link to postu
21 godzin temu, Radomił Ząbik napisał:

Chciałbym podczas dodawania dokumentu, wykonać jego analizę w momencie dodania płatności i ustawić jego płatności na nowo

Proszę trochę bardziej rozjaśnić sens takiej operacji. Chodzi o to, żeby użytkownik nie mógł ustawiać płatności po swojemu tylko żeby płatności zawsze były ustawione wg płatności domyślnych kontrahenta? Może zamiast nadpisywać te płatności wystarczy zablokować zapis dokumentu z płatnościami innymi niż domyślne.

 

21 godzin temu, Radomił Ząbik napisał:

Kwota płatności, także ślepy zaułek, bo jest ustawiania przed procentem.

Wydaje mi się, że to jest najlepszy moment na wykrycie dodania nowej płatności chociaż oczywiście tutaj będziemy również reagować na ręczną zmianę kwoty (czy to bezpośrednio czy poprzez procent) na już istniejącej płatności.

Wydaje mi się, że bez poznania szerszego kontekstu nie będę w stanie pomóc.

Link to postu
Teraz, Wojciech Szopiński napisał:

Proszę trochę bardziej rozjaśnić sens takiej operacji. Chodzi o to, żeby użytkownik nie mógł ustawiać płatności po swojemu tylko żeby płatności zawsze były ustawione wg płatności domyślnych kontrahenta? Może zamiast nadpisywać te płatności wystarczy zablokować zapis dokumentu z płatnościami innymi niż domyślne.

Nie, tutaj sprawa jest bardziej skomplikowana biznesowo. Dal niektórych produktów, ma się odpowiednio rozbić płatność z jednej określonej, na kilka zależnych od użytych produktów. Dlatego chciałem zareagować na moment zmodyfikowania płatności, czy to przez użytkownika, czy to przez wczytanie z podmiotu i dokonać analizy, czy płatność na podstawie produktów zamówienia, wymaga modyfikacji. Analogicznie, po zmianie produktu, także musiałbym to przeanalizować.

1 minutę temu, Wojciech Szopiński napisał:

Wydaje mi się, że to jest najlepszy moment na wykrycie dodania nowej płatności chociaż oczywiście tutaj będziemy również reagować na ręczną zmianę kwoty (czy to bezpośrednio czy poprzez procent) na już istniejącej płatności.

Wydaje mi się, że bez poznania szerszego kontekstu nie będę w stanie pomóc.

No właśnie jak sprawdzałem, to przy wybraniu płatności, wykryło mi moment, ale wskazało 0% dla płatności, co było dziwne.

 

Chyba wątek będzie do zamknięcia, no chyba, że wiedza na przyszłość. Zaczynam kierować się w kierunku wykonania tej całej analizy już po zapisie dokumentu, oczywiście z zabezpieczeniem przed ewentualnym zapętleniem. Wstępne założenie zakładało dynamiczną zmianę po stronie użytkownika, ale dochodzą jeszcze kwestie użycia zewnętrznych nieznanych mi rozwiązań, i jeśli tam ktoś robi w dziwnej kolejności dokumenty, to mogę mieć problem z wykrywaniem tego.

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

Nie, tutaj sprawa jest bardziej skomplikowana biznesowo. Dal niektórych produktów, ma się odpowiednio rozbić płatność z jednej określonej, na kilka zależnych od użytych produktów. Dlatego chciałem zareagować na moment zmodyfikowania płatności, czy to przez użytkownika, czy to przez wczytanie z podmiotu i dokonać analizy, czy płatność na podstawie produktów zamówienia, wymaga modyfikacji. Analogicznie, po zmianie produktu, także musiałbym to przeanalizować.

Faktycznie bardzo skomplikowany problem... Ale jeśli się uprzeć i faktycznie wcisnąć to gdzieś w edycję dokumentu to chyba bardziej bym szedł w stronę reagowania na dodawanie pozycji niż płatności bo to płatności mają wynikać ze specyfikacji asortymentowej, a nie odwrotnie. Aczkolwiek chyba faktycznie najlepszym sposobem byłoby tak jak Pan napisał:

Godzinę temu, Radomił Ząbik napisał:

Zaczynam kierować się w kierunku wykonania tej całej analizy już po zapisie dokumentu

Z adnotacją, że analizę należałoby wykonać "przed" zapisem (nie "po" gdzie już niewiele możemy zdziałać) i na podstawie analizy specyfikacji asortymentowej płatności będą odpowiednio ustawiane.

 

Godzinę temu, Radomił Ząbik napisał:

No właśnie jak sprawdzałem, to przy wybraniu płatności, wykryło mi moment, ale wskazało 0% dla płatności, co było dziwne.

No tak procent wylicza się faktycznie później na podstawie kwoty do zapłaty dokumentu i kwoty ustawionej na płatności, pytanie czy ten procent akurat w tym momencie był potrzebny?

Link to postu
17 minut temu, Wojciech Szopiński napisał:

Z adnotacją, że analizę należałoby wykonać "przed" zapisem (nie "po" gdzie już niewiele możemy zdziałać) i na podstawie analizy specyfikacji asortymentowej płatności będą odpowiednio ustawiane.

No tak, słuszna uwaga, całkiem zapomniałem, że macie taki trigger. Jest to zdecydowanie lepsze miejsce, i nie będę musiał kombinować z zapętleniem się przy zapisywaniu. Widzę, że nawet konteksty zostają bez zmian, więc konwersja będzie dużo łatwiejsza.

17 minut temu, Wojciech Szopiński napisał:

No tak procent wylicza się faktycznie później na podstawie kwoty do zapłaty dokumentu i kwoty ustawionej na płatności, pytanie czy ten procent akurat w tym momencie był potrzebny?

Chodzi o manipulacje - sama funkcja miała zmieniać procentowo rozkład, i być aktywowana, jeśli wystąpi pewna płatność na całą wartość dokumentu - tutaj rzeczywiście mogę iść od kwoty, i to by zadziałało przy starym scenariuszu. Efektem działania, będzie rozbicie płatności, gdzie także wystąpi płatność triggerująca całą sprawę, stąd dla wygody chciałem się oprzeć o procent, bo 100 Sobie łatwo wskazać.

Link to postu
×
×
  • Dodaj nową pozycję...