POVRATAK

Metoda: spremiPrivitke

Opis funkcionalnosti https://spihr.sharepoint.com/:w:/r/_layouts/15/Doc.aspx?sourcedoc=%7B85EB4691-FE6F-4512-B258-0395C06616EA%7D&file=Metoda%20spremiPrivitke.docx&action=default&mobileredirect=true&DefaultItemOpen=1

1. Kontrola prava pristupa

Za kontrolu prava korištenja metode u 098 se provjerava slijedeća operacija:

Aplikacija Broj operacije Kontrolirana metoda
099 WS099PPri spremiPrivitke

2. Opis rada metode

Metoda vrši spremanje privitaka uz pojedini dokument u LC SPI sustavu.

Koraci obrade:

1. Vrši se provjera aktivnosti vanjskog sustava u LC SPI tablici LCZAJ_VanjskiSustavi preko poslanog VsID.

2. Vrši se provjera postojanja dokumenta ovisno o elementu DokVrsta u LC SPI bazi prema GUID identifikatoru dokumenta DokGUID (DokGUID = Rowguid u tablicama).
Za DokVrsta = "UGO125" pretražuje se tablica LC127_Ugovori.
Za DokVrsta = "DOK223" pretražuje se tablica LC222_Dokumenti.
Za DokVrsta = "ERA156" pretražuje se tablica LC156_Eracuni.
Za DokVrsta = "INA192" pretražuje se tablica LC192_InterniNalozi.
Za DokVrsta = "SCD192" pretražuju se tablica LC192_UraPocetno i LC192_KnjizniZapisiPocetno.

Ukoliko dokument postoji tada se dohvaća se njegov ID i prelazi na slijedeći korak.
Ukoliko dokument ne postoji tada se za taj slog u odgovoru metode puni Greska = 1 uz OpisGreske = "Dokument nije pronađen u LC SPI sustavu" u tagu status i prekida se daljnja obrada tog sloga.

3. Vrši se provjera postojanja poslanog privitka u LC SPI veznoj tablici LCZAJ_VerzijeDatoteka preko identifikatora privitka PrivitakGUID (= VerzijeDatotekaGUID).

Ukoliko privitak ne postoji tada se prelazi na korak 6.
Ukoliko privitak postoji tada se prelazi na slijedeći korak.

4. Vrši se provjera veze poslanog privitka i poslanog dokumenta u LC SPI veznoj tablici LCZAJ_VerzijeDatoteka preko dohvaćenog ID dokumenta iz koraka 1.

Ukoliko privitak nije vezan za poslani dokument tada se prelazi na slijedeći korak
Ukoliko je privitak povezan za poslani dokument tada se za taj slog u odgovoru metode (tag "status") puni Greska = 2 uz OpisGreske = "Privitak je već ranije dodan dokumentu u LC SPI sustavu" i prekida se daljnja obrada tog sloga.

5. Vrši se provjera postojanja poslanog privitka u LCS PI tablici LCZAJ_VerzijeDatotekaMapiranje preko identifikatora privitka PrivitakGUID (= DatotekaGUIDOriginalni).

Ukoliko privitak postoji tada se ponavlja korak 4. samo sa mapiranim identifikatorom priloga LCZAJ_VerzijeDatotekaMapiranje.VerzijeDatotekaGUID
Ukoliko privitak ne postoji tada se prelazi na slijedeći korak..

6. Vrši se spremanje poslanog privitka uz poslani dokument u LC SPI veznu tablicu LCZAJ_VerzijeDatoteka i to na slijedeće načine:

Ukoliko privitak ne postoji u tablici LCZAJ_VerzijeDatoteka tada se vrši spremanje pristiglog privitka sa originalnim PrivitakGUID i identifikatorom dokumenta u LC SPI tablicu LCZAJ_VerzijeDatoteka.
Ukoliko privitak postoji u tablici LCZAJ_VerzijeDatoteka tada se isti zapisuje u LC SPI tablicu LCZAJ_VerzijeDatotekaMapiranje pri čemu mu se generira novi mapirani GUID.
Nakon toga se vrši spremanje u LC SPI tablici LCZAJ_VerzijeDatoteka priloga sa mapiranim GUID-om i identifikatorom dokumenta.

7. Vrši se spremanje podataka privitka u LC ARH tablicu LCZaj_Datoteke sa originalnim PrivitakGUID ili mapiranim GUID-om ovisno o načinu spremanja u veznu tablicu u točki 6.

8. Vrši se punjenje odgovora metode prema specifikaciji.

* Ukoliko neki od neobaveznih podataka nije poslan tada se u kolonu puni:
- NULL ako je kolona NULL - abilna
- Defaultna vrijednost ako default constraint za kolonu postoji
- Blank ('') ako default constraint za string kolonu ne postoji a kolona je NOT NULL

3. Punjenje (ažuriranje) tablica u bazi

Punjenje LC SPI tablice LCZAJ_VerzijeDatoteka:

Ovo je tablica veze prema LC ARH tablici LCZaj_Datoteke.

Naziv kolone Element Napomena
VerzijeDatotekaID Generira se u LC SPI sustavu
VerzijeDatotekaGUID PrivitakGUID Upisuje se ukoliko isti ne postoji, a ukoliko već isti postoji tada se vrše dodatne provjere LC SPI tablice LCZAJ_VerzijeDatoteka opisane u koracima obrade.
Služi kao veza prema ARH tablici LCZaj_Datoteke gdje se spremaju datoteke privitaka u određenom formatu.
OperatoriID LCZAJ_VanjskiSustavi.Obrade_OperatoriID
XDatumVrijeme GETDATE()
Verzija 1
LC223_DatotekeDokumentiID Ako je DokVrsta = „DOK223“ tada se puni LC223_DatotekeDokumenti.DatotekeDokumentiID pronađen preko DokGUID
LC156_ERacuniID Ako je DokVrsta = „ERA156“ tada se puni LC156_Eracuni.ERacuniID pronađen preko DokGUID
LC125_DatotekeUgovoriID Ako je DokVrsta = „UGO125“ tada se puni LC125_DatotekeUgovori.DatotekeUgovoriID pronađen preko DokGUID
LC192_DatotekeInterniNaloziID Ako je DokVrsta = „INA192“ tada se puni LC192_DatotekeInterniNalozi.DatotekeInterniNaloziID pronađen preko DokGUID
LC192_UraPocetnoID Ako je DokVrsta = „SCD192“ tada se puni LC192_UraPocetno.UraPocetnoID za URU pronađenu preko DokGUID
LC192_KnjizniZapisiPocetnoID Ako je DokVrsta = „SCD192“ tada se puni LC192_KnjizniZapisiPocetno.KnjizniZapisiPocetnoID za KNZ pronađen preko DokGUID

Punjenje LC SPI tablice VerzijeDatotekaMapiranje:

Ova tablica se puni samo u slučaju kada se isti privitak povezuje za više različitih dokumenata.
Razlog tomu je ranije kreirani jedinstveni ključ na tablici LCZAJ_VerzijeDatoteka koji ne dozvoljava navedeno povezivanje jer je u njemu identifikator privitka UC

Naziv kolone Element Napomena
VerzijeDatotekaMapiranjeID Identifikator sloga. Generira se u LC SPI sustavu
DatotekaGUIDOriginalni PrivitakGUID Originalni GUID datoteke (privitaka) pristigao putem metode spremiPrivitke.
VerzijeDatotekaGUID Novo generirani GUID datoteke spremljen LCSPI tablicu LCZAJ_VerzijeDatoteka koja služi kao veza prema ARH tablici LCZaj_Datoteke gdje se spremaju datoteke privitaka u određenom formatu.
Veza prema LCZAJ_VerzijeDatoteka
OperatoriID Identifikator operatera koji je spremio slog.
Veza prema LCZAJ_Operatori.
XDatumVrijeme GETDATE()

Punjenje LC ARH tablice LCZaj_Datoteke:

Ovo je tablica gdje se spremaju privitci sa njihovim sadržajem.

Naziv kolone Element Napomena
DatotekeID Generira se u LC SPI sustavu
DatotekeGUID PrivitakGUID Upisuje se ukoliko isti ne postoji, a ukoliko već isti postoji tada se vrše dodatne provjere LC SPI tablice LCZAJ_VerzijeDatoteka u nastavku
Tip PrivitakMimeCode
Ime PrivitakNaziv
Datoteka PrivitakSadrzaj
KonacnaVerzija 1

*

4. Punjenje odgovora metode:

Opis Tip podatka Uvjet O
spremiPrivitkeResponse
VsIDVraća se poslani VsID u zahtjevustring(36)1..1
DokVrstaVraća se poslana DokVrstau zahtjevu
Enumeracija:
„UGO125“ – ugovori
„DOK223“ – dokument urudžbenog zapisnika
„ERA156“ – izlazni eRačun
„INA192“ – ulazni eRačun
„SCD192“ – salda konti dokument (ulazni račun ili knjižni zapis)
string(40)1..1
privitci{Or0..1
privitak1..n
DokGUIDVraća se poslani DokGUID u zahtjevustring(36)1..1
PrivitakGUIDVraća se poslani PrivitakGUID u zahtjevustring(36)1..1
PrivitakNazivVraća se poslani PrivitakNaziv u zahtjevustring(30)1..1
status1..1
Greska0 – nema greške;
1 – greška (nije spremljeno);
2 – već postoji u LC SPI sustavu
tinyint1..1
OpisGreskeOpis greške u slučaju da zapis nije uspješno spremljen ili ažuriran u sustavu.
– obavezan za Greska <> 0
string(300)Greska = 00..1
/status
/privitak
/privitci
greskaOr}0..1
Greska1 – greškatinyint1..1
OpisGreskeOpis greške prilikom spremanja podatka – globalna greškastring(300)1..1
/greska
/spremiPrivitkeResponse

*