Przypomnienie o płatnościach, windykacja

Problemy i pomysły związane z funkcjonowaniem modułu Księgowość

Moderator: mikey

Tyriado
Posty: 33
Rejestracja: 07 kwie 2023, 09:30
Rola: Użytkownik CDN XL
Wersja: 2023

Re: Przypomnienie o płatnościach, windykacja

Post autor: Tyriado »

Dzięki. To sporo wyjaśnia i w końcu działa jak trzeba, bo

Kod: Zaznacz cały

format(dateadd(d,PRLV_Data,'18001228'), 'dd.MM.yyyy') as DataWystawienia
to dobry sposób przekształcenia dat z SQL do "czytelnej postaci"?

A zdradzisz jak dostajesz się do atrybutu, gdzie przechowujesz adres mailowy - atrybuty mają swoja tabelę, czy się dopisują w KntKarty? Bo jednak to jest lepszy pomysł niż pobieranie z karty kontrahenta - nie zawsze osoba zajmująca się fakturami obsługuje adres z tego pola, a tak dodatkowy atrybut rozwiązałby problem. Bo myślałem nad zrobieniem dodatkowej tabeli z takimi adresami w stylu NIP firmy i adres, ale po co dublować dane, trochę bez sensu.

Awatar użytkownika
praiser
Posty: 720
Rejestracja: 02 lip 2014, 12:22
Rola: Handlowiec CDN XL
Wersja: 2023

Re: Przypomnienie o płatnościach, windykacja

Post autor: praiser »

Można robić join do Knt_Karty
LEFT JOIN CDN.Atrybuty ON (Knt_GIDNumer = Atr_ObiNumer AND Knt_GIDTyp = Atr_ObiTyp AND Atr_AtkId = 104)

ja mam gid i typ w zmiennych zatem wolę maila klienta też do zmiennej:

declare @mail_do_powiadomien varchar(100)
set @mail_do_powiadomien = (select Atr_Wartosc from CDN.Atrybuty where Atr_ObiNumer=@gidklienta and Atr_Obityp=@obitypklienta and Atr_AtkId = 104)

wartość Atr_AtkId to id atrybutu który założysz.
--------------------------------
Pozdrawiam
WW

Lilpri
Posty: 130
Rejestracja: 13 maja 2019, 11:04
Rola: Administrator CDN XL

Re: Przypomnienie o płatnościach, windykacja

Post autor: Lilpri »

Ja mam takie osoby wrzucone na osobach kontraktowych klienta. Chyba jest to jeszcze lepiej ułożone niż atrybuty.
Nie zapominając niektórzy kontrahenci mają więcej niż jednego maila do faktur :)

Tyriado
Posty: 33
Rejestracja: 07 kwie 2023, 09:30
Rola: Użytkownik CDN XL
Wersja: 2023

Re: Przypomnienie o płatnościach, windykacja

Post autor: Tyriado »

Dzięki za pomoc, będę to ogarniał dalej.

Lilpri, ciekawy pomysł, ale to chyba już za dużo rovoty. Chyba, że każda osobę nazwa nie z imienia i nazwiska ale tak samo, powiedzmy "powiadomienie". Niestety, ale o ile sam SQL jakoś tam częściowo rozgryźć, o tyle układu tabel i powiązań nie zna w XLu aż tak dobrze. Chociaż z ciekawości poszukam gdzie to siedzi, podejrzewam, że jest to zupełnie nowa tabela spięta po GID kontrahenta, ale może się mylę.

Bo widziałbym ten spobo tak, że to u każdego kontrahenta jest "osoba" o nazwie np. powiadomienia i tam jest mail do tego powiedzmy systemu, żaby jakoś łatwiej skonstruować zapytania.

Awatar użytkownika
praiser
Posty: 720
Rejestracja: 02 lip 2014, 12:22
Rola: Handlowiec CDN XL
Wersja: 2023

Re: Przypomnienie o płatnościach, windykacja

Post autor: praiser »

Atrybut tekstowy ma chyba limit 255 znaków (mogę się mylić), więc można tam upchać parę maili oddzielając je średnikiem a join do osób to nie taki głupi pomysł

tabela to CDN.KntOsoby

relacja warunkowa do CDN.KntKarty
Knt_GIDNumer=KnS_KntNumer

Warunkowa
KnS_KntTyp=32
--------------------------------
Pozdrawiam
WW

Lilpri
Posty: 130
Rejestracja: 13 maja 2019, 11:04
Rola: Administrator CDN XL

Re: Przypomnienie o płatnościach, windykacja

Post autor: Lilpri »

Tyriado pisze:
05 paź 2023, 16:38
Dzięki za pomoc, będę to ogarniał dalej.

Lilpri, ciekawy pomysł, ale to chyba już za dużo rovoty. Chyba, że każda osobę nazwa nie z imienia i nazwiska ale tak samo, powiedzmy "powiadomienie". Niestety, ale o ile sam SQL jakoś tam częściowo rozgryźć, o tyle układu tabel i powiązań nie zna w XLu aż tak dobrze. Chociaż z ciekawości poszukam gdzie to siedzi, podejrzewam, że jest to zupełnie nowa tabela spięta po GID kontrahenta, ale może się mylę.

Bo widziałbym ten spobo tak, że to u każdego kontrahenta jest "osoba" o nazwie np. powiadomienia i tam jest mail do tego powiedzmy systemu, żaby jakoś łatwiej skonstruować zapytania.
Roboty tyle co nic. W xlu osoba moze mieć flagę oznaczająca że otrzymuje płatności. Nie trzeba się bawić atrybutami.
Ale to już kwestia preferencji, ja wolę brać z osób na kontrahencie, inni robią to samo na atrybutach na kontrahencie lub z pola email na kontrahencie. Kwestia gustu 😉

Tyriado
Posty: 33
Rejestracja: 07 kwie 2023, 09:30
Rola: Użytkownik CDN XL
Wersja: 2023

Re: Przypomnienie o płatnościach, windykacja

Post autor: Tyriado »

@praiser, dzięki za pomoc, bardzo mi pomogłeś z tym. @Lilpri dzięki za pomysł z "osobami".

Sprawdzicie, czy dobrze poskładałem składnie, wydaje mi się, że ok.


select
/* wczesniejsze pola z kartoteki, które działały dobrze*/
,KnS_EMail
FROM CDN.PreliminarzView
JOIN CDN.KntKarty on PRLV_KnpNumer=Knt_GidNumer
JOIN CDN.KntOsoby on Knt_GIDNumer=KnS_KntNumer
where KnS_KntTyp=32 and KnS_Nazwa = 'płatności-powiadomienia' and /*reszta wherów, która działała ok, czyli and prlv_NaleznosciZobowiazania=1 and PRLV_Rozliczony=0, typy, daty itd */

To ma mi pokazać kolumnę KnS_EMail u danego kontrahenta dla osoby o imieniu i nazwisku "płatności-powiadomienia"

Wydaje mi się, że działa ok, co prawda musze to przetestować, czy wyszukuje mi maile poprawnie, ale jakbyście zerknęli fachowym okiem, czy ogólnie zarys jest ok. Co to za typ KnS_KntTyp=32? 32 to?

Awatar użytkownika
praiser
Posty: 720
Rejestracja: 02 lip 2014, 12:22
Rola: Handlowiec CDN XL
Wersja: 2023

Re: Przypomnienie o płatnościach, windykacja

Post autor: praiser »

typ 32 to obiekt kontrahent

Kod: Zaznacz cały

select * from cdn.obiekty
--------------------------------
Pozdrawiam
WW

Lilpri
Posty: 130
Rejestracja: 13 maja 2019, 11:04
Rola: Administrator CDN XL

Re: Przypomnienie o płatnościach, windykacja

Post autor: Lilpri »

Tyriado pisze:
12 paź 2023, 12:23
@praiser, dzięki za pomoc, bardzo mi pomogłeś z tym. @Lilpri dzięki za pomysł z "osobami".

Sprawdzicie, czy dobrze poskładałem składnie, wydaje mi się, że ok.


select
/* wczesniejsze pola z kartoteki, które działały dobrze*/
,KnS_EMail
FROM CDN.PreliminarzView
JOIN CDN.KntKarty on PRLV_KnpNumer=Knt_GidNumer
JOIN CDN.KntOsoby on Knt_GIDNumer=KnS_KntNumer
where KnS_KntTyp=32 and KnS_Nazwa = 'płatności-powiadomienia' and /*reszta wherów, która działała ok, czyli and prlv_NaleznosciZobowiazania=1 and PRLV_Rozliczony=0, typy, daty itd */

To ma mi pokazać kolumnę KnS_EMail u danego kontrahenta dla osoby o imieniu i nazwisku "płatności-powiadomienia"

Wydaje mi się, że działa ok, co prawda musze to przetestować, czy wyszukuje mi maile poprawnie, ale jakbyście zerknęli fachowym okiem, czy ogólnie zarys jest ok. Co to za typ KnS_KntTyp=32? 32 to?
Ogólnie patrząc na zarys jest ok. Sprawdziłem u siebie i coś tam pobiera :)
Wyrzuciłem tylko z warunku "płatności-powiadomienia".
Zostało tylko ogarnąć jak ma wysyłać, czy każda zaległa faktura osobno czy łączy to w jedną kupę i śle paczką.
Kiedyś budowałem takie rozwiązanie, że miałem zapytania:
1) Pobierające GID kontrahenta
2) Pobierające dane kontrahenta
3) Pobierające adres email przeterminowanych płatności
4) Montowane w TSQL ciało maila w HTML, razem z css (email nie odniesie się do zewnętrznego pliku)

4 zapytanie potrzebowałem, aby zautomatyzować tworzoną nazwę maila + body :)
Teraz może bym to inaczej zrobił, ale na tamten moment (z 2 lata temu) wydawało się to najprostsze.

ODPOWIEDZ