POVRATAK

Metoda: spremi361Pozicije

Opis funkcionalnosti https://spihr.sharepoint.com/:w:/r/_layouts/15/Doc.aspx?sourcedoc=%7BC60B78E5-FC46-41BF-94AE-F5EB0DBE59FB%7D&file=Metoda%20spremi361Pozicije.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
361 WS361PPozD spremi361Pozicije

2. Opis rada metode

Metoda vrši spremanje podataka o pozicijama dokumenata koji će biti vidljivi na portalu "Otvoreno".

Koraci obrade:

1. Vrši se provjera aktivnosti vanjskog sustava u LCSPI tablici LCZAJ_VanjskiSustavi preko pristiglog VsID.

2. Vrši se provjera postojanja dokumenta ovisno o elementu DokVrsta u LC ARH bazi prema identifikatoru dokumenta GUID (GUID = Rowguid u tablicama).
Za DokVrsta = "BAN192" pretražuje se tablica LC192_OtvoreniGradFinancijeIsplate.
Za DokVrsta = "URA192" pretražuje se tablica LC361_UlazniRacuni.
Za DokVrsta = "NAR127" pretražuje se tablica LC361_Narudzbenice.
Za DokVrsta = "UGO125" pretražuje se tablica LC361_Ugovori.

Ukoliko dokument postoji tada se prelazi na slijedeći korak.
Ukoliko dokument ne postoji tada se za taj slog puni Greska = 2 uz OpisGreske = "Dokument nije pronađen u LC SPI sustavu" i prekida se daljnja obrada tog sloga.

3. Ovisno o elementu DokVrsta pretražuju se tablice pozicija dokumenata u LC ARH bazi prema identifikatoru dokumenta GUID i identifikatoru pozicije GUIDPozicije (GUIDPozicije = Rowguid u tablicama).
Za DokVrsta = "BAN192" pretražuje se tablica LC192_OtvoreniGradFinancijeIsplatePozicije.
Za DokVrsta = "URA192" pretražuje se tablica LC361_UlazniRacuniPozicije.
Za DokVrsta = "NAR127" pretražuje se tablica LC361_NarudzbenicePozicije.
Za DokVrsta = "UGO125" pretražuje se tablica LC361_UgovoriPozicije.

4. Vrši se provjera glavne valute korisnika u zadnjoj poslovnoj godini preko funkcije uf_LCZAJ_VratiGlavnuValutuKorisnika.

Ukoliko je glavna valuta korisnika jednaka poslanom elementu Valuta tada se prelazi na slijedeći korak.
Ukoliko je glavna valuta korisnika različita od poslanog elementa Valuta tada se za taj slog puni Greska = 1 uz OpisGreske = "Neispravna valuta." i prekida se daljnja obrada tog sloga.

5. Vrši se punjenje ili ažuriranje pripadajućih tablica pozicija dokumenata u LC ARH bazi prema elementu DokVrsta.

Ukoliko pozicija postoji tada se vrši ažuriranje iste sa svježe prihvaćenim podacima.
Radi smanjenja količine podataka za sinkroniziranje ažurirati samo ukoliko je slog promijenjen ili stari slog ima Brisano = 1.
Ukoliko pozicija ne postoji tada se vrši spremanje pristiglih podataka u pripadajuće tablice.

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

* Prilikom svakog ažuriranja podataka obavezno ažurirati i kolonu XDatumVrijeme sa trenutnim datumom i vremenom jer utjeće na sinkronizaciju podataka na portal.

* 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 ARH tablica LC192_OtvoreniGradFinancijeIsplatePozicije; LC361_UlazniRacuniPozicije; LC361_NarudzbenicePozicije; LC361_UgovoriPozicije:

Naziv kolone Element Napomena
Rowguid GUIDPozicije
RowguidFinancijeIsplate
UlazniRacuniID
NarudzbeniceID
UgovoriID
Za DokVrsta = "BAN192"
Za DokVrsta = "URA192"
Za DokVrsta = "NAR127"
Za DokVrsta = "UGO125"
puni se tablica LC192_OtvoreniGradFinancijeIsplatePozicije
puni se tablica LC361_UlazniRacuniPozicije
puni se tablica LC361_NarudzbenicePozicije
puni se tablica LC361_UgovoriPozicije
PozicijaSifra PozicijaSifra
PozicijaNaziv PozicijaNaziv
RazdjelSifra RazdjelSifra
RazdjelNaziv RazdjelNaziv
ProgKlasSifra ProgKlasSifra
ProgKlasNaziv ProgKlasNaziv
IzvorFinSifra IzvorFinSifra
IzvorFinNaziv IzvorFinNaziv
KontoSifra KontoSifra
KontoNaziv KontoNaziv
FunkcKlasSifra FunkcKlasSifra
FunkcKlasNaziv FunkcKlasNaziv
Iznos Iznos
Brisano 0
XDatumVrijeme GETDATE()
IzvorLC Obavezno vrijednost kolone puniti sa 0

*

4. Punjenje odgovora metode:

Opis Tip podatka uvjet O
spremi361PozicijeResponse
VsIDVraća se poslani VsID u zahtjevu.string(36)1..1
dokumenti{Or1..1
dokument1..n
DokVrstaVraća se poslana vrsta dokumenta u zahtjevu.string(40)1..1
GUIDVraća se poslani GUID dokumenta u zahtjevu.uniqueidentifier1..1
pozicije1..1
pozicija1..n
GUIDPozicijeVraća se poslani identifikator pozicijeuniqueidentifier1..1
greska1..1
Greska0 – nema greške;
1 – greška (nije spremljeno);
2 – dokument nije pronađen 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)0..1
/greska
/pozicija
/pozicije
/dokument
/dokumenti
greskaOr}1..1
Greska1 – greška - Globalna greškatinyint1..1
OpisGreskeOpis greške prilikom spremanja podatka - Globalna greškastring(300)1..1
/greska
/spremi361PozicijeResponse

*