Skip to content

ERP Płatności - dokumentacja techniczna

1. DB

  • [document].[payment] - rozliczenia płatnosci
  • [document].[payment_list]
  • [erp].[payment_list] -nowe
  • document.payment_processExternalPayments - procedura uruchamiana co interwal czasowy poprzez hangfire.
  • EXEC [document].[payment_status_list] @@username = @username, @@remoteSource = @remoteSource, @@remoteIdentifiers = @remoteIdentifiers platnosci na liscie faktu r w starym systemie

Każdy rekord z faktury musi mieć odzwierciedlenei w płatnościach do tej pory było odfiltrowane faktury profor

2. Process

Proces oznaczania platnosci

1. Płatności z systemu zewnętrznego powinny być wpisywane bezpośrednio do tabeli document.payment. 1. Uzupełniać dane (opis kolumn znajduje się niżej na tej stronie w tabelce), wytłuszczone są niezbędne: 1. paymentSettlementDate 2. remoteFullNR 3. grossValue 4. currency 5. description 6. externalPaymentID

2. Co x czasu konfigurowalnie jest uruchamiana procedura przez hangfire

Text Only
1
  **document.payment_processExternalPayments.**

3. Procedura uzupełnia brakujące powiązania w systemie dla płatności pochodzących z systemu FK

Text Only
1
2
3
4
5
  1. Procedura dla każdego dokumentu nierozliczonego
     1. wiąże fakturę z płatnością poprzez invoiceID z tabeli document.invoice do odpowiednich rekordów document.payment poprzez kolumnę remoteID
     2. przypisuje firmID na podstawie kolumny payerID z tabeli document.invoice
     3. uzupełnia remoteSource wpisując 'invoice'
     4. uzupełnia również paymentDate i sysGrossValue

Proces wypelniania tabeli document.payment, wszelkie interfejsowe rzeczy znajduja sie w bazie crm config

  • dokumentacja do interfejsu dla konkretnego wdrożenia jest po prostu w confluence w sekcji klient

Tabela document.payment

Pole Wartość Opis
paymentID uniqueidentifier NOT NULL NULL Identyfikator płatności w systemie platformacrm
paymentSettlementDate smalldatetime NULL NULL Data dokonania płatności
paymentDate smalldatetime NULL NULL Termin płatności
remoteFullNR nvarchar(256) NOT NULL NULL Numer dokumentu z systemu platformacrm, który jest lub ma zostać powiązany z płatnością.
remoteID uniqueidentifier NULL NULL ID powiązanego dokumentu z systemu platformacrm
remoteSource varchar(50) NULL NULL Typ powiązanego dokumentu: 'invoice'
firmID uniqueidentifier NULL NULL ID powiązanego kontrahenta z systemu platformacrm
grossValue decimal NOT NULL NULL Wartość brutto w walucie faktury to decyduje czy faktura jest rozliczona
currency varchar(3) NOT NULL NULL Waluta wpłaty
sysGrossValue decimal NULL NULL Wartość brutto w PLN
description nvarchar(MAX) NULL NULL Uwagi Tutaj musi byc identyfikator płatności np numer wyciagu bankowego czegos innego to najwazniejsza sprawa
externalPaymentID nvarchar(MAX) NULL Unikalny identyfikator płatności w systemie zewnętrznym. Nie zawsze płatności mają wprowadzone opisy w systemie zewnętrznym, więc synchronizacja z systemami zewnętrznymi jest oparta na tym polu. Jeśli wszystkie płatności mają unikalne opisy to można na nich oprzeć synchronizację.
addDate datetime NOT NULL (getutcdate()) Data dodania rekordu
addUsername varchar(50) NOT NULL ('sys') Użytkownik dodający rekord
modDate datetime NOT NULL (getutcdate()) Data modyfikacji rekordu
modUsername varchar(50) NOT NULL NULL Użytkownik modyfikujący rekord

Scenariusze testowej

  • faktura z korektą wynikiem jest wartość po korekcie
  • faktura bez korekty czyli podstawowy przypadek
  • faktura nie rozliczana np faktura porforma

Status platnosci powinien wyglądać tak

Text Only
1
2
3
4
1.  paymentstatus = -1 nierozliczone
2.  paymentstatus =  0 rozliczone czesciowo
3.  paymentstatus =  1 nie dotyczy
4.  paymentstatus =  2 rozliczone

Do zrobienia

  1. zastapienie i usuniecie calkowicie procedury[document].[payment_status_list]  zamist tego predefiniowane wartosci na tabeli invoice , firm 1. paymentstatus = -1 nierozliczone 2. paymentstatus =  0 rozliczone czesciowo 3. paymentstatus =  1 nie dotyczy 4. paymentstatus =  2 rozliczone