Struktura danych i przepływ informacji Moduł KSeF 2.0 - serwis

Moderatorzy: jacqueline, plazaweb

Awatar użytkownika
jevkoo
Administrator
Posty: 546
Rejestracja: 17 maja 2009, 19:28
Lokalizacja: Skoczów

Struktura danych i przepływ informacji Moduł KSeF 2.0 - serwis

Post autor: jevkoo »

1. Przepływ informacji

Każda z trzech metod komunikacji odwołuje się zawsze do faktury poprzez pole faktura_id.
Polecenie wysłania do KSEF zawsze generuje wpis tablicy FAKTURA_KSEF a następnie zależnie od wyboru metody wysyłki jest:
1) dla wysyłki online - wysyłany do KSeF i czeka na pobranie UPO
2) dla wysyłki wsadowej - wysyłany do KSeF i UPO zostaje pobrane niezależnie
3) dla serwisu - serwis sprawdza co zdefiniowany interwał czasowy i wysyła do KSE i sprawdza

2. Struktura tabel pomocniczych

faktura KSEF

CREATE TABLE FAKTURA_KSEF (
FAKTURA_KSEF_ID INTEGER NOT NULL,
FAKTURA_ID INTEGER NOT NULL,
FAKTURA_KSEF_STATUS INTEGER,
FAKTURA_KSEF_SESSIONREF VARCHAR(250),
FAKTURA_KSEF_XML BLOB SUB_TYPE TEXT SEGMENT SIZE 80,
FAKTURA_KSEF_UPO_XML BLOB SUB_TYPE TEXT SEGMENT SIZE 80,
FAKTURA_KSEF_QR BLOB SUB_TYPE BINARY SEGMENT SIZE 16384,
(..)
EMPLOYEE_ID INTEGER NOT NULL,
FAKTURA_KSEF_USED INTEGER
);
Uwaga:
Tablica musi istnieć w systemie. Jeśli jej nie ma proszę utworzyć ją ręcznie.




ALTER TABLE FAKTURA_KSEF ADD CONSTRAINT PK_FAKTURA_KSEF PRIMARY KEY (FAKTURA_KSEF_ID);

CREATE INDEX FAKTURA_KSEF_EMPLOYEE_ID ON FAKTURA_KSEF (EMPLOYEE_ID);
CREATE UNIQUE INDEX FAKTURA_KSEF_FAKTURA_ID ON FAKTURA_KSEF (FAKTURA_ID);

CREATE SEQUENCE FAKTURA_KSEF START WITH 0 INCREMENT BY 1;

gdzie
FAKTURA_KSEF_SESSIONREF - numer sesji
FAKTURA_STATUS_KSEF z tabeli faktura jest tożsamy z FAKTURA_KSEF_STATUS

OBIEKT
(..)
OBIEKT_KSEF_TOKEN VARCHAR(250)
OBIEKT_KSEF_CERT_HASLO VARCHAR(250)
OBIEKT_KSEF_CERT BLOB BLOB SUB_TYPE 1 SEGMENT SIZE 16384 CHARACTER SET WIN1250 //->base64
(..)
Faktura

CREATE TABLE FAKTURA (
FAKTURA_ID INTEGER,
(..)
FAKTURA_STATUS_KSEF INTEGER DEFAULT 0 NOT NULL, --> FAKTURA_KSEF_STATUS
FAKTURA_DATA_KSEF_PRZESL DATE,
FAKTURA_NR_KSEF VARCHAR(255),
FAKTURA_DATA_KSEF_PRZYJ DATE,
FAKTURA_NR_KSEF_FAKTURY VARCHAR(255),
FAKTURA_NR_UPO VARCHAR(255),
(..)
);

gdzie:
FAKTURA_DATA_KSEF_PRZESL - data wysyłki do KSeF
FAKTURA_NR_KSEF - numer referencyjny faktury FakturaRef
FAKTURA_DATA_KSEF_PRZYJ - data rejestracji KSeF
FAKTURA_NR_KSEF_FAKTURY - nr faktury KSeF w KSeF

Pracownik

CREATE TABLE EMPLOYEE (
EMPLOYEE_ID INTEGER,
(..)
EMPLOYEE_AUTH_EMAIL VARCHAR(255),
EMPLOYEE_KSEF_CERT VARCHAR(255),
EMPLOYEE_KSEF_KEY VARCHAR(255),
EMPLOYEE_KSEF_PASS VARCHAR(255),
EMPLOYEE_KSEF_TOKEN VARCHAR(255),
EMPLOYEE_R_KSEF INTEGER,
(..)
);


Tablica komunikatów latarni KSeF

CREATE TABLE MESSAGES_KSEF(
MESSAGES_KSEF_ID INTEGER NOT NULL,
MESSAGES_KSEF_NR VARCHAR ( 30 ) NOT NULL,
MESSAGES_KSEF_EVENT_ID INTEGER NOT NULL,
MESSAGES_KSEF_CATEGORY VARCHAR ( 50 ) NOT NULL,
MESSAGES_KSEF_TYPE VARCHAR ( 50 ) NOT NULL,
MESSAGES_KSEF_TITLE VARCHAR(50) NOT NULL,
MESSAGES_KSEF_TEXT BLOB SUB_TYPE TEXT SEGMENT SIZE 80,
MESSAGES_KSEF_START DATE NOT NULL,
MESSAGES_KSEF_END DATE,
MESSAGES_KSEF_VERSION INTEGER NOT NULL,
MESSAGES_KSEF_PUBLISHED DATE NOT NULL
);

ALTER TABLE MESSAGES_KSEF ADD CONSTRAINT PK_MESSAGES_KSEF PRIMARY KEY (MESSAGES_KSEF_ID);
CREATE INDEX MESSAGES_KSEF_PUBLISHED ON MESSAGES_KSEF (MESSAGES_KSEF_PUBLISHED);
CREATE UNIQUE INDEX MESSAGES_KSEF_NR ON MESSAGES_KSEF (MESSAGES_KSEF_NR);
CREATE SEQUENCE SEQ_MESSAGES_KSEF START WITH 0 INCREMENT BY 1;

Tablica odczytów komunikatów przez użytkowników

CREATE TABLE MESSAGES_KSEF_EMP
(
MESSAGES_KSEF_ID INTEGER NOT NULL,
EMPLOYEE_ID INTEGER NOT NULL,
MESSAGES_KSEF_READED DATE NOT NULL
);
ALTER TABLE MESSAGES_KSEF_EMP ADD CONSTRAINT PK_MESSAGES_KSEF_EMP PRIMARY KEY (MESSAGES_KSEF_ID, EMPLOYEE_ID);


Statusy

Obrazek

Dodano status 90 - offline
Nie masz wymaganych uprawnień, aby zobaczyć pliki załączone do tego posta.

Wróć do „Podręcznik serwisanta”