Blokada wyboru płatności
Moderator: mikey
Blokada wyboru płatności
Witam,
Potrzebuje wpisać na sztywno "kredyt-7dni" na dokumentach WZ, tak żeby żaden sprzedawca nie mógł tego zmienić, i żeby nie wskakiwały z automatu płatności danego klienta. Wszyscy maja mieć "kredyt-7dni" ale tylko na WZ
Z góry dzięki za pomoc
Potrzebuje wpisać na sztywno "kredyt-7dni" na dokumentach WZ, tak żeby żaden sprzedawca nie mógł tego zmienić, i żeby nie wskakiwały z automatu płatności danego klienta. Wszyscy maja mieć "kredyt-7dni" ale tylko na WZ
Z góry dzięki za pomoc
- STAY_PJE
- Posty: 651
- Rejestracja: 24 wrz 2009, 12:08
- Rola: Konsultant CDN XL
- Lokalizacja: Warszawa i od Helu do Wawelu
- Kontakt:
Re: Blokada wyboru płatności
Jedyna możliwość jaką widzę to dodanie triggera na bazie danych. Trigger spowoduje, że każda płatność na dokumencie WZ będzie ustawiana na formę <kredyt-7dni>.
Załączam poniżej treść triggera, który trzeba uruchomić w środowisku Microsoft SQL Managment Studio.
create trigger cdn.ai_trpUstawWZ on cdn.traplat
for insert, update
AS
BEGIN
/* ten wyzwalacz spowoduje zmianę formy płatności na <kredyt-7dni> na dokumencie WZ */
/* STAY wdrożenia i serwis oprogramowania CDN XL www.stay.pl */
if UPDATE(trp_formaNazwa )
BEGIN
declare @trpFormaNr int, @GIDTyp smallint, @GIDNumer int, @GIDLp int
select top 1 @GIDTyp=trp_gidtyp, @GIDNumer=trp_gidnumer, @GIDLp=trp_gidlp from inserted where trp_gidtyp=2001 /*WZ*/
select top 1 @trpFormaNr=trp_formaNr from CDN.TraPlat where TrP_FormaNazwa='kredyt-7dni'
if @GIDTyp is not null and @trpFormaNr is not null
update CDN.TraPlat set trp_formaNazwa='kredyt-7dni', TrP_FormaNr=@trpFormaNr where TrP_GIDTyp=@GIDTyp and TrP_GIDNumer=@GIDNumer and TrP_GIDLp=@GIDLp
END
/* uruchom polecenie ay usunąć wyzwalacz:
drop trigger cdn.ai_trpUstawWZ
*/
END
Załączam poniżej treść triggera, który trzeba uruchomić w środowisku Microsoft SQL Managment Studio.
create trigger cdn.ai_trpUstawWZ on cdn.traplat
for insert, update
AS
BEGIN
/* ten wyzwalacz spowoduje zmianę formy płatności na <kredyt-7dni> na dokumencie WZ */
/* STAY wdrożenia i serwis oprogramowania CDN XL www.stay.pl */
if UPDATE(trp_formaNazwa )
BEGIN
declare @trpFormaNr int, @GIDTyp smallint, @GIDNumer int, @GIDLp int
select top 1 @GIDTyp=trp_gidtyp, @GIDNumer=trp_gidnumer, @GIDLp=trp_gidlp from inserted where trp_gidtyp=2001 /*WZ*/
select top 1 @trpFormaNr=trp_formaNr from CDN.TraPlat where TrP_FormaNazwa='kredyt-7dni'
if @GIDTyp is not null and @trpFormaNr is not null
update CDN.TraPlat set trp_formaNazwa='kredyt-7dni', TrP_FormaNr=@trpFormaNr where TrP_GIDTyp=@GIDTyp and TrP_GIDNumer=@GIDNumer and TrP_GIDLp=@GIDLp
END
/* uruchom polecenie ay usunąć wyzwalacz:
drop trigger cdn.ai_trpUstawWZ
*/
END
Re: Blokada wyboru płatności
A na nagłówku dokumentu płatność się zmienia czy zostaje rozbieżna z Traplatem ?
- STAY_PJE
- Posty: 651
- Rejestracja: 24 wrz 2009, 12:08
- Rola: Konsultant CDN XL
- Lokalizacja: Warszawa i od Helu do Wawelu
- Kontakt:
Re: Blokada wyboru płatności
na nagłówku dokumentu płatność się nie zmienia (jest rozbieżna w stosunku do traplat). Płatność z nagłówka nie ma znaczenia dla działania programu, co najwyżej dla jakichś autorskich zestawień analitycznych.
-
hundzik
- Posty: 301
- Rejestracja: 11 mar 2008, 19:08
- Rola: Administrator CDN XL
- Wersja: 9.6.1
- Lokalizacja: lubelszczyzna.
Re: Blokada wyboru płatności
chyba pod warunkiem, ze jest w konfiguracji zaznaczone ze wz generuja platnosci.
bez tego przeciez wz nie robi nic na traplat
bez tego przeciez wz nie robi nic na traplat
- STAY_PJE
- Posty: 651
- Rejestracja: 24 wrz 2009, 12:08
- Rola: Konsultant CDN XL
- Lokalizacja: Warszawa i od Helu do Wawelu
- Kontakt:
Re: Blokada wyboru płatności
bezwarunkowo IMHO. W konfiguracji należy zaznaczyć że WZ mają generować płatności co spowoduje że do WZ będą generowane rekordy w tabeli TraPlat. Forma płatności w tabeli TraNag nie ma żadnego znaczenia dla działania programu.
Re: Blokada wyboru płatności
Nie korzysta i owszem - ale czy rozsądnym pomysłem jest jego ignorowanie ? Daje Pan gwarancję, że w kolejnych wersjach Comarch nie będzie w żaden sposób z tego pola korzystać i nie będzie trzeba pisać update ? Takie rzeczy to strzał we własną nogę przy migracjach, bo zawsze się o czymś zapomni. Poza tym dla nowo powstałych baz trigger nie działa, jako, że pobiera Gid formy płatności "kredyt-7dni" z Traplata gdzie takiego wpisu może nie być. A jak jeszcze Comarch olśni że minimalnie szybciej szybciej będzie aktualizować Traplat jednym update w momencie naciśnięcia >> na dokumencie, to już całkiem się namiesza ze względu na top 1 + Lp 
EDIT: Swoją drogą to warto pomyśleć jeszcze o aktualizacji terminu płatności skoro jest to kredyt-7 dni.
EDIT: Swoją drogą to warto pomyśleć jeszcze o aktualizacji terminu płatności skoro jest to kredyt-7 dni.
-
tkozakiewicz
- Posty: 16
- Rejestracja: 18 mar 2010, 17:58
- Rola: Konsultant CDN XL
Re: Blokada wyboru płatności
Radzę pobierać formy płatności z tabeli CDN.Konfig a nie szukać w traplat po nieindeksowanym polu. I oczywiście aktualizacje terminu płatności to co kolega wyżej napisał.
- STAY_PJE
- Posty: 651
- Rejestracja: 24 wrz 2009, 12:08
- Rola: Konsultant CDN XL
- Lokalizacja: Warszawa i od Helu do Wawelu
- Kontakt:
Re: Blokada wyboru płatności
trudno jest przewidzieć co comarch wymyśli w następnej wersji programu. Można tylko wybrać pomiędzy nie robieniem niczego, a robieniem tego co w danej chwili jest potrzebne. Po to prowadzi się dokumentację wdrożeniową, aby przed podniesieniem wersji programu weryfikować poprawność działania wszystkich niestandardowych funkcjonalności. Ja tak właśnie postępuję.
Obsłużenie pola w tranag nie nastęcza żadnych trundości - to jedna dodatkowa linijka kodu. Dla uproszczenia pominąłem ten fragment uznając że w danym momencie nie jest on do niczego potrzebny.
Mechanizm z założenia jest prosty i nie zakłada przypadków typu "co jeśli założę nową bazę" lub "co jeśli wybuchnie wulkan". Jeśli w nowej bazie nie znajdzie się wpis 'kredyt-7dni' to trigger po prostu nie zadziała (ale nic nie popsuje).
Mechanizm również dałoby napisać się wydajniej - mój kod należy traktować jedynie jako formę poglądową. Gdybym tworzył go dla konkretnego klienta to ustawiłbym na sztywno w kodzie odwołanie do pola trp_formaNr bez każdorazowego przeszukiwania tabeli TraPlat.
Obsłużenie pola w tranag nie nastęcza żadnych trundości - to jedna dodatkowa linijka kodu. Dla uproszczenia pominąłem ten fragment uznając że w danym momencie nie jest on do niczego potrzebny.
Mechanizm z założenia jest prosty i nie zakłada przypadków typu "co jeśli założę nową bazę" lub "co jeśli wybuchnie wulkan". Jeśli w nowej bazie nie znajdzie się wpis 'kredyt-7dni' to trigger po prostu nie zadziała (ale nic nie popsuje).
Mechanizm również dałoby napisać się wydajniej - mój kod należy traktować jedynie jako formę poglądową. Gdybym tworzył go dla konkretnego klienta to ustawiłbym na sztywno w kodzie odwołanie do pola trp_formaNr bez każdorazowego przeszukiwania tabeli TraPlat.
-
tkozakiewicz
- Posty: 16
- Rejestracja: 18 mar 2010, 17:58
- Rola: Konsultant CDN XL
Re: Blokada wyboru płatności
No właśnie jeśli mechanizm nie zadziała to znaczy że nie jest funkcjonalny, a autor pytania chce na sztywno blokować formy płatności. Sądzę, że jeśli to ma być sztywna blokada dla handlowca to lepiej cofnąć transakcję niż dać mu wpisać cokolwiek. Poza tym dokumentacja swoją drogą, a pisanie mechanizmów uniwersalnych przynajmniej w danym momencie jest o wiele lepsze. Ja bym to zrobił tak, że na atrybucie handlowca (albo w grupie, jeśli wszyscy mają mieć tak samo) umieścił formę płat. jaką może zastosować i dopiero użył tego w triggerze.
Pozdrawiam
Pozdrawiam