cry-klikvet-logic 1.0.708 → 1.0.711

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (73) hide show
  1. package/dist/index-browser.d.mts +18 -0
  2. package/dist/index-browser.d.mts.map +1 -1
  3. package/dist/index-browser.mjs +12 -0
  4. package/dist/index-browser.mjs.map +1 -1
  5. package/dist/index.d.mts +18 -0
  6. package/dist/index.d.mts.map +1 -1
  7. package/dist/index.mjs +12 -0
  8. package/dist/index.mjs.map +1 -1
  9. package/dist/izvozRacunov/db.d.mts +26 -0
  10. package/dist/izvozRacunov/db.d.mts.map +1 -0
  11. package/dist/izvozRacunov/db.mjs +6 -0
  12. package/dist/izvozRacunov/db.mjs.map +1 -0
  13. package/dist/izvozRacunov/generirajIzvoz.d.mts +48 -0
  14. package/dist/izvozRacunov/generirajIzvoz.d.mts.map +1 -0
  15. package/dist/izvozRacunov/generirajIzvoz.mjs +63 -0
  16. package/dist/izvozRacunov/generirajIzvoz.mjs.map +1 -0
  17. package/dist/izvozRacunov/izvoziRacune.d.mts +58 -0
  18. package/dist/izvozRacunov/izvoziRacune.d.mts.map +1 -0
  19. package/dist/izvozRacunov/izvoziRacune.mjs +578 -0
  20. package/dist/izvozRacunov/izvoziRacune.mjs.map +1 -0
  21. package/dist/izvozRacunov/oznake.d.mts +41 -0
  22. package/dist/izvozRacunov/oznake.d.mts.map +1 -0
  23. package/dist/izvozRacunov/oznake.mjs +88 -0
  24. package/dist/izvozRacunov/oznake.mjs.map +1 -0
  25. package/dist/izvozRacunov/schemas/izvozRacunov.schema.json +285 -0
  26. package/dist/izvozRacunov/schemas/izvozRacunov.xsd +400 -0
  27. package/dist/izvozRacunov/serializirajJson.d.mts +16 -0
  28. package/dist/izvozRacunov/serializirajJson.d.mts.map +1 -0
  29. package/dist/izvozRacunov/serializirajJson.mjs +13 -0
  30. package/dist/izvozRacunov/serializirajJson.mjs.map +1 -0
  31. package/dist/izvozRacunov/serializirajXml.d.mts +18 -0
  32. package/dist/izvozRacunov/serializirajXml.d.mts.map +1 -0
  33. package/dist/izvozRacunov/serializirajXml.mjs +309 -0
  34. package/dist/izvozRacunov/serializirajXml.mjs.map +1 -0
  35. package/dist/q-mojPromet.d.mts +1 -1
  36. package/dist/q-promet.d.mts +2 -2
  37. package/dist/q-racunovodji.d.mts +1 -1
  38. package/dist/q-zakljucek-blagajne.d.mts +2 -2
  39. package/dist/racunovodstvo/konti.d.mts +139 -0
  40. package/dist/racunovodstvo/konti.d.mts.map +1 -0
  41. package/dist/racunovodstvo/konti.mjs +135 -0
  42. package/dist/racunovodstvo/konti.mjs.map +1 -0
  43. package/dist/racunovodstvo/kontiUparitev.d.mts +127 -0
  44. package/dist/racunovodstvo/kontiUparitev.d.mts.map +1 -0
  45. package/dist/racunovodstvo/kontiUparitev.mjs +266 -0
  46. package/dist/racunovodstvo/kontiUparitev.mjs.map +1 -0
  47. package/dist/racunovodstvo/stroskovnoMesto.d.mts +56 -0
  48. package/dist/racunovodstvo/stroskovnoMesto.d.mts.map +1 -0
  49. package/dist/racunovodstvo/stroskovnoMesto.mjs +89 -0
  50. package/dist/racunovodstvo/stroskovnoMesto.mjs.map +1 -0
  51. package/dist/test/izvozRacunov.d.mts +2 -0
  52. package/dist/test/izvozRacunov.d.mts.map +1 -0
  53. package/dist/test/izvozRacunov.mjs +258 -0
  54. package/dist/test/izvozRacunov.mjs.map +1 -0
  55. package/dist/test/izvozRacunovShema.d.mts +2 -0
  56. package/dist/test/izvozRacunovShema.d.mts.map +1 -0
  57. package/dist/test/izvozRacunovShema.mjs +267 -0
  58. package/dist/test/izvozRacunovShema.mjs.map +1 -0
  59. package/dist/types/blagajna.d.mts +8 -0
  60. package/dist/types/blagajna.d.mts.map +1 -1
  61. package/dist/types/dnevnikIzvozov.d.mts +1 -0
  62. package/dist/types/dnevnikIzvozov.d.mts.map +1 -1
  63. package/dist/types/izvozRacun.d.mts +481 -0
  64. package/dist/types/izvozRacun.d.mts.map +1 -0
  65. package/dist/types/izvozRacun.mjs +53 -0
  66. package/dist/types/izvozRacun.mjs.map +1 -0
  67. package/dist/types/lokacija.d.mts +10 -0
  68. package/dist/types/lokacija.d.mts.map +1 -1
  69. package/dist/types/nastavitve.d.mts +17 -0
  70. package/dist/types/nastavitve.d.mts.map +1 -1
  71. package/dist/types/racun.d.mts +9 -1
  72. package/dist/types/racun.d.mts.map +1 -1
  73. package/package.json +4 -2
@@ -0,0 +1,41 @@
1
+ /**
2
+ * Oznake izvoza in privzeta toleranca.
3
+ *
4
+ * Izvoz težave le **zabeleži**; ali je oznaka napaka (oddajnik račun zavrne) ali
5
+ * opozorilo (račun gre skozi), določi uporabnik s toleranco v nastavitvah
6
+ * (`nastavitve.izvozRacunovTolerance`). Zato tu ni nobenega `throw` — le
7
+ * `PRIVZETA_TOLERANCA`, ki velja, dokler uporabnik česa ne spremeni.
8
+ */
9
+ import type { Id } from "../types/shared.mjs";
10
+ import type { OpozorilaIzvoza, Opozorilo, StopnjaTolerance, TolerancaIzvoza, VrstaOznake } from "../types/izvozRacun.mjs";
11
+ /**
12
+ * Kaj velja, dokler uporabnik ne nastavi drugače.
13
+ *
14
+ * `napaka` je tam, kjer brez podatka zunanji sistem računa **ne more** knjižiti
15
+ * (konto, stopnja DDV, `erpId`/`erpDavcnaKoda` artikla, stranka pri odloženem
16
+ * plačilu). Zunaj tega je privzetek `opozorilo`, ker izvoz ne sme ustaviti dela
17
+ * zaradi podatka, ki ga zunanji sistem morda niti ne potrebuje.
18
+ */
19
+ export declare const PRIVZETA_TOLERANCA: Record<VrstaOznake, StopnjaTolerance>;
20
+ /** Stopnja posamezne oznake: uporabnikova, sicer privzeta. */
21
+ export declare function stopnjaOznake(vrsta: VrstaOznake, toleranca?: TolerancaIzvoza): StopnjaTolerance;
22
+ /** Ali je račun zaradi te oznake zavrnjen (oddajnik ga ne sme oddati). */
23
+ export declare function jeZavrnjen(vrsta: VrstaOznake, toleranca?: TolerancaIzvoza): boolean;
24
+ /** Ali je kateri od oznak na računu zavrnjen. */
25
+ export declare function racunJeZavrnjen(opozorila: OpozorilaIzvoza | undefined, toleranca?: TolerancaIzvoza): boolean;
26
+ /** Zbirka oznak po računih med izvozom. */
27
+ export interface ZbiralnikOznak {
28
+ /** Doda oznako; ista vrsta na istem računu se ne ponovi, `zapisi` se združijo. */
29
+ dodaj: (racunId: Id, oznaka: Opozorilo) => void;
30
+ /** Zabeleženi statusi; račun brez oznak v mapi ni. */
31
+ statusi: Map<Id, OpozorilaIzvoza>;
32
+ }
33
+ /**
34
+ * Ustvari zbiralnik.
35
+ *
36
+ * Oznake iste vrste na istem računu se združijo v eno (npr. trije artikli brez
37
+ * `erpId` dajo eno oznako s tremi `zapisi`), ker uporabnik popravlja **vzrok**,
38
+ * ne posamezne pojavitve.
39
+ */
40
+ export declare function ustvariZbiralnik(): ZbiralnikOznak;
41
+ //# sourceMappingURL=oznake.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"oznake.d.mts","sourceRoot":"","sources":["../../src/izvozRacunov/oznake.mts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,qBAAqB,CAAC;AAC9C,OAAO,KAAK,EACX,eAAe,EACf,SAAS,EACT,gBAAgB,EAChB,eAAe,EACf,WAAW,EACX,MAAM,yBAAyB,CAAC;AAEjC;;;;;;;GAOG;AACH,eAAO,MAAM,kBAAkB,EAAE,MAAM,CAAC,WAAW,EAAE,gBAAgB,CA0BpE,CAAC;AAEF,8DAA8D;AAC9D,wBAAgB,aAAa,CAAC,KAAK,EAAE,WAAW,EAAE,SAAS,CAAC,EAAE,eAAe,GAAG,gBAAgB,CAE/F;AAED,0EAA0E;AAC1E,wBAAgB,UAAU,CAAC,KAAK,EAAE,WAAW,EAAE,SAAS,CAAC,EAAE,eAAe,GAAG,OAAO,CAEnF;AAED,iDAAiD;AACjD,wBAAgB,eAAe,CAC9B,SAAS,EAAE,eAAe,GAAG,SAAS,EACtC,SAAS,CAAC,EAAE,eAAe,GACzB,OAAO,CAET;AAED,2CAA2C;AAC3C,MAAM,WAAW,cAAc;IAC9B,kFAAkF;IAClF,KAAK,EAAE,CAAC,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,SAAS,KAAK,IAAI,CAAC;IAChD,sDAAsD;IACtD,OAAO,EAAE,GAAG,CAAC,EAAE,EAAE,eAAe,CAAC,CAAC;CAClC;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,IAAI,cAAc,CAuBjD"}
@@ -0,0 +1,88 @@
1
+ /**
2
+ * Oznake izvoza in privzeta toleranca.
3
+ *
4
+ * Izvoz težave le **zabeleži**; ali je oznaka napaka (oddajnik račun zavrne) ali
5
+ * opozorilo (račun gre skozi), določi uporabnik s toleranco v nastavitvah
6
+ * (`nastavitve.izvozRacunovTolerance`). Zato tu ni nobenega `throw` — le
7
+ * `PRIVZETA_TOLERANCA`, ki velja, dokler uporabnik česa ne spremeni.
8
+ */
9
+ /**
10
+ * Kaj velja, dokler uporabnik ne nastavi drugače.
11
+ *
12
+ * `napaka` je tam, kjer brez podatka zunanji sistem računa **ne more** knjižiti
13
+ * (konto, stopnja DDV, `erpId`/`erpDavcnaKoda` artikla, stranka pri odloženem
14
+ * plačilu). Zunaj tega je privzetek `opozorilo`, ker izvoz ne sme ustaviti dela
15
+ * zaradi podatka, ki ga zunanji sistem morda niti ne potrebuje.
16
+ */
17
+ export const PRIVZETA_TOLERANCA = {
18
+ manjkaErpIdStranke: "opozorilo",
19
+ manjkaErpIdArtikla: "napaka",
20
+ manjkaErpIdEnote: "opozorilo",
21
+ manjkaErpIdNacinaPlacila: "opozorilo",
22
+ manjkaErpIdBlagajne: "opozorilo",
23
+ manjkaErpIdZavarovalnice: "opozorilo",
24
+ manjkaVirIdStranke: "opozorilo",
25
+ manjkaErpDavcnaKodaArtikla: "napaka",
26
+ manjkaKontoTerjatve: "napaka",
27
+ manjkaKontoPrihodka: "napaka",
28
+ manjkaKontoPlacila: "napaka",
29
+ manjkaKontoDdv: "napaka",
30
+ manjkaStroskovnoMesto: "opozorilo",
31
+ neznanaStopnjaDdv: "napaka",
32
+ postavkaBrezCene: "opozorilo",
33
+ vsotaPlacilSeNeUjema: "opozorilo",
34
+ nicelnaVsotaRacuna: "opozorilo",
35
+ zaokrozitvenaRazlika: "opozorilo",
36
+ datumIzvenObdobja: "opozorilo",
37
+ racunBrezPostavk: "napaka",
38
+ manjkaStrankaPriOdlozenemPlacilu: "napaka",
39
+ racunZeIzvozen: "opozorilo",
40
+ racunIzbrisan: "napaka",
41
+ manjkajocaReferencaPacienta: "opozorilo",
42
+ manjkajocaReferencaObravnave: "opozorilo",
43
+ };
44
+ /** Stopnja posamezne oznake: uporabnikova, sicer privzeta. */
45
+ export function stopnjaOznake(vrsta, toleranca) {
46
+ var _a;
47
+ return (_a = toleranca === null || toleranca === void 0 ? void 0 : toleranca[vrsta]) !== null && _a !== void 0 ? _a : PRIVZETA_TOLERANCA[vrsta];
48
+ }
49
+ /** Ali je račun zaradi te oznake zavrnjen (oddajnik ga ne sme oddati). */
50
+ export function jeZavrnjen(vrsta, toleranca) {
51
+ return stopnjaOznake(vrsta, toleranca) === "napaka";
52
+ }
53
+ /** Ali je kateri od oznak na računu zavrnjen. */
54
+ export function racunJeZavrnjen(opozorila, toleranca) {
55
+ return !!(opozorila === null || opozorila === void 0 ? void 0 : opozorila.opozorila.some((o) => jeZavrnjen(o.vrsta, toleranca)));
56
+ }
57
+ /**
58
+ * Ustvari zbiralnik.
59
+ *
60
+ * Oznake iste vrste na istem računu se združijo v eno (npr. trije artikli brez
61
+ * `erpId` dajo eno oznako s tremi `zapisi`), ker uporabnik popravlja **vzrok**,
62
+ * ne posamezne pojavitve.
63
+ */
64
+ export function ustvariZbiralnik() {
65
+ const statusi = new Map();
66
+ return {
67
+ statusi,
68
+ dodaj(racunId, oznaka) {
69
+ var _a, _b, _c;
70
+ let status = statusi.get(racunId);
71
+ if (!status) {
72
+ status = { opozorila: [] };
73
+ statusi.set(racunId, status);
74
+ }
75
+ const obstojeca = status.opozorila.find((o) => o.vrsta === oznaka.vrsta);
76
+ if (!obstojeca) {
77
+ status.opozorila.push(oznaka);
78
+ return;
79
+ }
80
+ for (const zapis of (_a = oznaka.zapisi) !== null && _a !== void 0 ? _a : []) {
81
+ const ze = ((_b = obstojeca.zapisi) !== null && _b !== void 0 ? _b : []).some((z) => z.klikvetId !== undefined && z.klikvetId === zapis.klikvetId);
82
+ if (!ze)
83
+ ((_c = obstojeca.zapisi) !== null && _c !== void 0 ? _c : (obstojeca.zapisi = [])).push(zapis);
84
+ }
85
+ },
86
+ };
87
+ }
88
+ //# sourceMappingURL=oznake.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"oznake.mjs","sourceRoot":"","sources":["../../src/izvozRacunov/oznake.mts"],"names":[],"mappings":"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"}
@@ -0,0 +1,285 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://klik.vet/schemas/izvozRacunov-1.0.json",
4
+ "title": "Izvoz izdanih računov (klik.vet)",
5
+ "description": "Kanonični izvoz izdanih računov s postavkami in plačili (cry-klikvet-logic, tip `IzvozRacunov`). Vse kode za knjiženje so že razrešene: `erpId`, `virId`, `erpDavcnaKoda`, `kontoPrihodka`, `kontoDdv`, `kontoPlacila`, `kontoTerjatve`, `stroskovnoMesto`. Izvedenih vrednosti model ne nosi — `tprc`, `tmpc`, `tnbc`, `tdav`, `tpop`, `rvc`, `prb`, seštevki na ravni računa in `davki[]` so izpuščeni; prejemnik jih izračuna sam (tabela formul je v uvodu `src/types/izvozRacun.mts`). Datumi so ISO 8601 (`xs:dateTime`), denar decimalno število v eurih, odstotki v odstotku (22, 9.5, 5, 0), deleži (kritje, soudelezba) med 0 in 1. Vsi elementi so slovenski camelCase in enako imenovani v XML (glej `izvozRacunov.xsd`).",
6
+ "type": "object",
7
+ "additionalProperties": false,
8
+ "required": ["verzija", "izdajatelj", "obdobjeOd", "obdobjeDo", "oznakaValute", "racuni"],
9
+ "properties": {
10
+ "verzija": { "type": "string", "const": "1.0", "description": "Različica izvoznega formata." },
11
+ "izdajatelj": { "$ref": "#/$defs/izdajatelj" },
12
+ "obdobjeOd": { "type": "string", "format": "date-time" },
13
+ "obdobjeDo": { "type": "string", "format": "date-time" },
14
+ "oznakaValute": { "type": "string", "pattern": "^[A-Z]{3}$", "description": "Oznaka valute (ISO 4217), npr. EUR." },
15
+ "racuni": { "type": "array", "items": { "$ref": "#/$defs/racun" } }
16
+ },
17
+ "$defs": {
18
+ "izdajatelj": {
19
+ "type": "object",
20
+ "additionalProperties": false,
21
+ "required": ["naziv", "firma", "naslov", "idDdv", "davcnaStevilka"],
22
+ "properties": {
23
+ "naziv": { "type": "string" },
24
+ "firma": { "type": "string" },
25
+ "naslov": { "type": "string" },
26
+ "idDdv": { "type": "string" },
27
+ "davcnaStevilka": { "type": "string" }
28
+ }
29
+ },
30
+ "referenca": {
31
+ "type": "object",
32
+ "additionalProperties": false,
33
+ "required": ["naziv"],
34
+ "properties": {
35
+ "klikvetId": { "type": "string", "description": "`_id` zapisa v klik.vetu (samo za sledljivost)." },
36
+ "erpId": { "type": "string", "description": "Šifra zapisa v zunanjem sistemu (`_externalId`)." },
37
+ "virId": { "type": "string", "description": "Izvozna šifra klik.veta (`_exportId`)." },
38
+ "naziv": { "type": "string" }
39
+ }
40
+ },
41
+ "naslov": {
42
+ "type": "object",
43
+ "additionalProperties": false,
44
+ "required": ["ulica", "hisnaStevilka", "postnaStevilka", "posta"],
45
+ "properties": {
46
+ "ulica": { "type": "string" },
47
+ "hisnaStevilka": { "type": "string", "description": "Hišna številka z dodatkom (npr. 12a)." },
48
+ "postnaStevilka": { "type": "string" },
49
+ "posta": { "type": "string" },
50
+ "naselje": { "type": "string" },
51
+ "obcina": { "type": "string" },
52
+ "drzava": { "type": "string" }
53
+ }
54
+ },
55
+ "stranka": {
56
+ "type": "object",
57
+ "additionalProperties": false,
58
+ "required": ["klikvetId"],
59
+ "properties": {
60
+ "klikvetId": { "type": "string" },
61
+ "erpId": { "type": "string" },
62
+ "virId": { "type": "string" },
63
+ "firma": { "type": "string" },
64
+ "ime": { "type": "string" },
65
+ "priimek": { "type": "string" },
66
+ "spol": { "enum": ["m", "f"] },
67
+ "naslov": { "$ref": "#/$defs/naslov" },
68
+ "davcniZavezanec": { "type": "boolean" },
69
+ "idDdv": { "type": "string" },
70
+ "maticnaStevilka": { "type": "string" },
71
+ "emso": { "type": "string" },
72
+ "gsm": { "type": "string" },
73
+ "telefon": { "type": "string" },
74
+ "email": { "type": "string" },
75
+ "trr": { "type": "string" },
76
+ "bic": { "type": "string" }
77
+ }
78
+ },
79
+ "zavarovanje": {
80
+ "type": "object",
81
+ "additionalProperties": false,
82
+ "required": ["naziv", "polica", "kritje", "soudelezba"],
83
+ "properties": {
84
+ "naziv": { "type": "string", "description": "Ime zavarovalnice, kot je zapisano na računu." },
85
+ "erpId": { "type": "string" },
86
+ "polica": { "type": "string" },
87
+ "kritje": { "type": "number", "minimum": 0, "maximum": 1 },
88
+ "soudelezba": { "type": "number", "minimum": 0, "maximum": 1 }
89
+ }
90
+ },
91
+ "vezRacuna": {
92
+ "type": "object",
93
+ "additionalProperties": false,
94
+ "required": ["klikvetId", "stevilka", "datum"],
95
+ "properties": {
96
+ "klikvetId": { "type": "string" },
97
+ "stevilka": { "type": "string" },
98
+ "datum": { "type": "string", "format": "date-time" },
99
+ "izdal": { "type": "string" }
100
+ }
101
+ },
102
+ "karence": {
103
+ "type": "object",
104
+ "additionalProperties": false,
105
+ "required": ["vrsta"],
106
+ "properties": {
107
+ "pot": { "enum": ["IV", "IM", "SC", "IMM", "PO", "TP", "IA", "IU", "ED"] },
108
+ "vrsta": { "type": "string" },
109
+ "karence": {
110
+ "type": "object",
111
+ "additionalProperties": false,
112
+ "properties": {
113
+ "meso": { "type": "number" },
114
+ "organi": { "type": "number" },
115
+ "mleko": { "type": "number" },
116
+ "jajca": { "type": "number" },
117
+ "med": { "type": "number" }
118
+ }
119
+ }
120
+ }
121
+ },
122
+ "postavka": {
123
+ "type": "object",
124
+ "additionalProperties": false,
125
+ "required": [
126
+ "opis", "artikel", "kategorija", "kolicina", "enota", "stopnjaDdv", "popustOdstotek",
127
+ "netoProdajnaCena", "brutoProdajnaCenaBrezPopusta", "brutoProdajnaCena",
128
+ "nabavnaCenaBrezDavka", "kontoPrihodka", "kontoDdv", "virPostavke", "dodal", "vneseno"
129
+ ],
130
+ "properties": {
131
+ "postavkaId": { "type": "string" },
132
+ "opis": { "type": "string" },
133
+ "opisDodatni": { "type": "string" },
134
+ "artikel": { "$ref": "#/$defs/referenca" },
135
+ "kategorija": { "enum": ["izdelek", "storitev", "potrošni material", "zdravilo"] },
136
+ "kolicina": { "type": "number" },
137
+ "enota": { "$ref": "#/$defs/referenca", "description": "`naziv` je enota s postavke, `erpId` poslovna koda iste enote v zunanjem sistemu." },
138
+ "stopnjaDdv": { "enum": [0.22, 0.095, 0.05, 0], "description": "Stopnja DDV v odstotku (0.22 = 22 %)." },
139
+ "erpDavcnaKoda": { "type": "string", "description": "Tarifna koda DDV v zunanjem sistemu (`_erpVatCode`)." },
140
+ "popustOdstotek": { "type": "number", "minimum": 0, "maximum": 100 },
141
+ "netoProdajnaCenaBrezPopusta": { "type": "number" },
142
+ "netoProdajnaCena": { "type": "number", "description": "Neto cena na enoto po popustu — z njo se računa osnova." },
143
+ "brutoProdajnaCenaBrezPopusta": { "type": "number" },
144
+ "brutoProdajnaCena": { "type": "number", "description": "Zaračunana bruto cena na enoto — z njo se računa vsota računa." },
145
+ "nabavnaCenaBrezDavka": { "type": "number" },
146
+ "kontoPrihodka": { "type": "string" },
147
+ "kontoDdv": { "type": "string" },
148
+ "kodaPopusta": { "type": "string" },
149
+ "zaStrankoId": { "type": "string" },
150
+ "zaStrankoErpId": { "type": "string" },
151
+ "nazivZaStranko": { "type": "string" },
152
+ "pacientId": { "type": "string" },
153
+ "pacientIme": { "type": "string" },
154
+ "pacientCip": { "type": "string" },
155
+ "lastnikId": { "type": "string" },
156
+ "lastnikErpId": { "type": "string" },
157
+ "obravnavaId": { "type": "string" },
158
+ "obiskId": { "type": "string" },
159
+ "korakObravnaveId": { "type": "string" },
160
+ "namenObravnave": { "type": "string" },
161
+ "diagnoza": { "type": "string" },
162
+ "terenNamen": { "type": "string" },
163
+ "veterinar": { "type": "string" },
164
+ "poljeObravnave": { "type": "string" },
165
+ "virPostavke": { "enum": ["račun", "osemenitev", "terapija", "protokol", "obisk", "obravnava", "predračun", "punkt"] },
166
+ "izPredracunaId": { "type": "string" },
167
+ "izDobavniceId": { "type": "string" },
168
+ "poDokumentu": { "type": "string" },
169
+ "dodal": { "type": "string" },
170
+ "zaracunal": { "type": "string" },
171
+ "vneseno": { "type": "string", "format": "date-time" },
172
+ "zavarovanje": { "$ref": "#/$defs/zavarovanje" },
173
+ "prikrijIme": { "type": "boolean" },
174
+ "recept": { "type": "boolean" },
175
+ "IPV": { "type": "boolean" },
176
+ "stevilkaZdravila": { "type": "string" },
177
+ "vtipkaneStevilkeZdravila": { "type": "string" },
178
+ "pmzKodaZdravila": { "type": "number" },
179
+ "pmzZa": { "type": "string" },
180
+ "karencaOd": { "type": "string", "format": "date-time" },
181
+ "karencaZa": { "type": "string" },
182
+ "karence": { "$ref": "#/$defs/karence" },
183
+ "navodilo": { "type": "string" },
184
+ "stevilkaZivali": { "type": "string" },
185
+ "zaZivali": { "type": "array", "items": { "type": "string" } },
186
+ "rejna": { "type": "boolean" },
187
+ "neRazknjiziObIzdajiRacuna": { "type": "boolean" },
188
+ "razknjiziZalogoId": { "type": "string" },
189
+ "vrstaRazknjizbe": { "enum": ["ob dobavi", "ob prodaji", "ročno"] },
190
+ "faktorRazknjizbe": { "type": "number" },
191
+ "naKg": { "type": "boolean" },
192
+ "pribitekDezurstvaOdstotek": { "type": "number" },
193
+ "gmid": { "type": "string" }
194
+ }
195
+ },
196
+ "placilo": {
197
+ "type": "object",
198
+ "additionalProperties": false,
199
+ "required": ["kategorija", "nacin", "konto", "znesek"],
200
+ "properties": {
201
+ "kategorija": { "enum": ["kartica", "gotovina", "odloženo", "zavarovanje"] },
202
+ "nacin": { "type": "string", "description": "Ime načina plačila; pri kategoriji `zavarovanje` ime zavarovalnice." },
203
+ "klikvetId": { "type": "string" },
204
+ "erpId": { "type": "string" },
205
+ "virId": { "type": "string" },
206
+ "konto": { "type": "string" },
207
+ "znesek": { "type": "number" }
208
+ }
209
+ },
210
+ "racun": {
211
+ "type": "object",
212
+ "additionalProperties": false,
213
+ "required": [
214
+ "racunId", "stevilka", "zaporednaStevilka", "zapSt", "datumIzdaje", "datumStoritve",
215
+ "datumOdprtja", "krajIzdaje", "izdajatelj", "izdal", "odprl", "izdalDelovnoMesto",
216
+ "lokacija", "blagajna", "poslovalnica", "skladisce", "postavke", "placila"
217
+ ],
218
+ "properties": {
219
+ "racunId": { "type": "string" },
220
+ "virId": { "type": "string", "description": "Izvozna šifra klik.veta (`Racun._exportId`), kadar jo račun ima." },
221
+ "stevilka": { "type": "string" },
222
+ "zaporednaStevilka": { "type": "number" },
223
+ "zapSt": { "type": "number" },
224
+ "datumIzdaje": { "type": "string", "format": "date-time" },
225
+ "datumStoritve": { "type": "string", "format": "date-time" },
226
+ "datumZapadlosti": { "type": "string", "format": "date-time" },
227
+ "datumOdprtja": { "type": "string", "format": "date-time" },
228
+ "dodan": { "type": "string", "format": "date-time" },
229
+ "krajIzdaje": { "type": "string" },
230
+ "namenRacuna": { "type": "string" },
231
+ "opomba": { "type": "string" },
232
+ "pripis": { "type": "string" },
233
+ "navodiloStranki": { "type": "string" },
234
+ "sklic": { "type": "string" },
235
+ "pogodba": { "type": "string" },
236
+ "narocilnica": { "type": "string" },
237
+ "zbirnik": { "type": "boolean" },
238
+ "strniZbirnik": { "type": "boolean" },
239
+ "imeZbirnika": { "type": "string" },
240
+ "zdruzenIzOdprtih": { "type": "array", "items": { "type": "string" } },
241
+ "izdajatelj": { "$ref": "#/$defs/izdajatelj" },
242
+ "izdal": { "type": "string" },
243
+ "odprl": { "type": "string" },
244
+ "izdalDelovnoMesto": { "type": "number" },
245
+ "veterinar": { "type": "string" },
246
+ "imeIzdajatelja": { "type": "string" },
247
+ "imeVeterinarja": { "type": "string" },
248
+ "dezurstvo": { "type": "boolean" },
249
+ "stranka": { "$ref": "#/$defs/stranka" },
250
+ "lastnik": { "$ref": "#/$defs/stranka" },
251
+ "zaStranko": { "$ref": "#/$defs/stranka" },
252
+ "kontoTerjatve": { "type": "string" },
253
+ "stroskovnoMesto": { "type": "string" },
254
+ "lokacija": { "$ref": "#/$defs/referenca" },
255
+ "blagajna": { "$ref": "#/$defs/referenca" },
256
+ "poslovalnica": { "$ref": "#/$defs/referenca" },
257
+ "skladisce": { "$ref": "#/$defs/referenca" },
258
+ "obravnavaId": { "type": "string" },
259
+ "obiskId": { "type": "string" },
260
+ "pacientId": { "type": "string" },
261
+ "pacientIme": { "type": "string" },
262
+ "pacientCip": { "type": "string" },
263
+ "namenObravnave": { "type": "string" },
264
+ "diagnoza": { "type": "string" },
265
+ "zival": { "type": "string" },
266
+ "vrstaRejneZivali": { "type": "string" },
267
+ "gmid": { "type": "string" },
268
+ "imaPmzPostavke": { "type": "boolean" },
269
+ "IPV": { "type": "boolean" },
270
+ "negotovinski": { "type": "boolean" },
271
+ "zoi": { "type": "string" },
272
+ "eor": { "type": "string" },
273
+ "davcnoPotrjeno": { "type": "string", "format": "date-time" },
274
+ "neFiskaliziraj": { "enum": ["vsota 0", "preveč napak", "S002"] },
275
+ "predhodniRacun": { "$ref": "#/$defs/vezRacuna" },
276
+ "naslednjiRacun": { "$ref": "#/$defs/vezRacuna" },
277
+ "idIzdanegaRacuna": { "type": "string" },
278
+ "prestevilcen": { "type": "string", "format": "date-time" },
279
+ "staraStevilka": { "type": "string" },
280
+ "postavke": { "type": "array", "items": { "$ref": "#/$defs/postavka" } },
281
+ "placila": { "type": "array", "items": { "$ref": "#/$defs/placilo" } }
282
+ }
283
+ }
284
+ }
285
+ }