POVRATAK
Metoda: spremi361Pozicije
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 |
VsID | Vraća se poslani VsID u zahtjevu. | string(36) | | 1..1 |
dokumenti | {Or | 1..1 |
dokument | 1..n |
DokVrsta | Vraća se poslana vrsta dokumenta u zahtjevu. | string(40) | | 1..1 |
GUID | Vraća se poslani GUID dokumenta u zahtjevu. | uniqueidentifier | | 1..1 |
pozicije | 1..1 |
pozicija | 1..n |
GUIDPozicije | Vraća se poslani identifikator pozicije | uniqueidentifier | | 1..1 |
greska | 1..1 |
Greska | 0 – nema greške; 1 – greška (nije spremljeno); 2 – dokument nije pronađen u LC SPI sustavu | tinyint | | 1..1 |
OpisGreske | Opis 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 |
greska | Or} | 1..1 |
Greska | 1 – greška - Globalna greška | tinyint | | 1..1 |
OpisGreske | Opis greške prilikom spremanja podatka - Globalna greška | string(300) | | 1..1 |
/greska |
/spremi361PozicijeResponse |
*