Blokada wyboru płatności

Zapytania SQL, widoki, Crystal, definicje filtrów, szybkich raportów, wydruków, API, Hydra, .NET

Moderator: mikey

bastek04
Posty: 1
Rejestracja: 22 lip 2010, 15:40
Rola: Użytkownik CDN XL
Wersja: 9.8

Blokada wyboru płatności

Post autor: bastek04 »

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

Awatar użytkownika
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

Post autor: STAY_PJE »

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

elmiq
Posty: 1025
Rejestracja: 23 sie 2010, 10:04
Rola: Administrator CDN XL
Lokalizacja: Warszawa

Re: Blokada wyboru płatności

Post autor: elmiq »

A na nagłówku dokumentu płatność się zmienia czy zostaje rozbieżna z Traplatem ?
Mateusz Świerkosz

http://elmiq.blogspot.com/

Awatar użytkownika
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

Post autor: STAY_PJE »

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

Post autor: hundzik »

chyba pod warunkiem, ze jest w konfiguracji zaznaczone ze wz generuja platnosci.
bez tego przeciez wz nie robi nic na traplat

Awatar użytkownika
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

Post autor: STAY_PJE »

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.

elmiq
Posty: 1025
Rejestracja: 23 sie 2010, 10:04
Rola: Administrator CDN XL
Lokalizacja: Warszawa

Re: Blokada wyboru płatności

Post autor: elmiq »

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.
Mateusz Świerkosz

http://elmiq.blogspot.com/

tkozakiewicz
Posty: 16
Rejestracja: 18 mar 2010, 17:58
Rola: Konsultant CDN XL

Re: Blokada wyboru płatności

Post autor: tkozakiewicz »

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ł.

Awatar użytkownika
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

Post autor: STAY_PJE »

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.

tkozakiewicz
Posty: 16
Rejestracja: 18 mar 2010, 17:58
Rola: Konsultant CDN XL

Re: Blokada wyboru płatności

Post autor: tkozakiewicz »

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

ODPOWIEDZ