cry-klikvet-logic 1.0.257 → 1.0.259

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.
@@ -1,115 +1,505 @@
1
1
  import { Mongo } from "cry-db";
2
- export async function pmzUpdateTerapije(mongo, tenant, year) {
2
+ import dayjs from "dayjs";
3
+ import { poisciPmzVrstoZivali } from "cry-pmz";
4
+ import { arrayToObject, dedup, jn, leftOfFirst } from "cry-helpers";
5
+ import { dolociMesnostAliRejnostPasmeGoveda } from "./dolociMesnostAliRejnostPasmeGoveda.mjs";
6
+ // function wholeYear(year: number) {
7
+ // return [
8
+ // dayjs(`${year}-06-06`).startOf("year"),
9
+ // dayjs(`${year}-06-06`).endOf("year"),
10
+ // ];
11
+ // };
12
+ function wholeYearQ(year) {
13
+ return {
14
+ $gt: dayjs(`${year}-06-06`).startOf("year").toDate(),
15
+ $lt: dayjs(`${year}-06-06`).endOf("year").toDate(),
16
+ };
17
+ }
18
+ ;
19
+ ;
20
+ /**
21
+ * Iz vseh obstoječih terapij pridobi PMZ vrste živali za vse živali, kjer je bila vpisana
22
+ * @param mongo
23
+ * @returns
24
+ */
25
+ async function pridobiVrsteZivaliIzTerapij(mongo) {
26
+ var _a, _b, _c;
27
+ try {
28
+ let temp = await mongo.aggregate("terapije", [
29
+ { $match: { "postavke.pmzZa": { $exists: 1 } } },
30
+ { $unwind: "$postavke" },
31
+ { $match: { "postavke.pmzZa": { $exists: true } } },
32
+ { $set: { "postavke.stZivali": { $ifNull: ["$postavke.karencaZa", "$stevilkeZivali"] } } },
33
+ { $group: { _id: "$postavke.stZivali", vrsta: { $addToSet: "$postavke.pmzZa" } } }
34
+ ]);
35
+ let ret = {};
36
+ for (let line of temp) {
37
+ for (let zival of line._id.split(",")) {
38
+ for (let vrsta of line.vrsta) {
39
+ let z = (_c = (_b = (_a = zival === null || zival === void 0 ? void 0 : zival.trim()) === null || _a === void 0 ? void 0 : _a.match(/[a-z]{2,2}\s*\d+/i)) === null || _b === void 0 ? void 0 : _b[0]) === null || _c === void 0 ? void 0 : _c.replace(/\s+/g, "");
40
+ let v = poisciPmzVrstoZivali(vrsta);
41
+ if (z && v)
42
+ ret[z] = v;
43
+ }
44
+ }
45
+ }
46
+ return ret;
47
+ }
48
+ catch (err) {
49
+ console.error(`pridobiVrsteZivaliIzTerapij: ${err.message || err}`);
50
+ console.error(err);
51
+ }
52
+ ;
53
+ return {};
54
+ }
55
+ //
56
+ // Funkcija poišče terapije, ki nimajo gmida, ima ga pa
57
+ //
58
+ // async function pripisManjkajociGmidTerapijam(mongo: Mongo, year: number) {
59
+ // let manjkajoce = await mongo.find<Terapija & { _gmids?: string[] }>("terapije", {
60
+ // datumTerapije: wholeYearQ(year),
61
+ // gmid: { $exists: false }
62
+ // }, { project: { _gmids: true, obisk_id: true } });
63
+ // console.log(`manjkajoce.length`,manjkajoce.length);
64
+ // let obiskiTerapij: Obisk[] = await mongo.find<Obisk>("obiski", {
65
+ // _id: { $in: manjkajoce.map(a => a.obisk_id?.toString()).filter(a => !!a) },
66
+ // gmid: { $exists: true }
67
+ // }, { project: { gmid: 1 } });
68
+ // console.log(`obiskiTerapij`,obiskiTerapij);
69
+ // let obiskiTerapijObj = arrayToObject(obiskiTerapij, "_id");
70
+ // let updates: { _id: string, gmid: string }[] = []
71
+ // for (let terapija of manjkajoce) {
72
+ // let gmid = (terapija.obisk_id && obiskiTerapijObj[terapija.obisk_id]?.gmid) ||
73
+ // (terapija._gmids?.length === 1 && terapija._gmids[0]);
74
+ // if (gmid) updates.push({ _id: terapija._id, gmid });
75
+ // }
76
+ // console.log(`TERAPIUE updates`,updates);
77
+ // }
78
+ async function pridobiPMZArtikle(mongo) {
79
+ let pmzArtikli = (await mongo.find("artikli", { skupine: "PMZ" }, { project: { _id: true, pmzKodaZdravila: true, naziv: true } })).filter(a => a);
80
+ pmzArtikli.forEach(a => a._id = a._id.toString());
81
+ pmzArtikli = pmzArtikli.filter(a => a.pmzKodaZdravila && typeof a.pmzKodaZdravila === "number");
82
+ let pmzArtikliMap = arrayToObject(pmzArtikli, "_id");
83
+ return pmzArtikliMap;
84
+ }
85
+ async function vrsteZivaliZaZdravilo(mongo) {
86
+ return await mongo.aggregate("terapije", [
87
+ { $unwind: "$postavke" },
88
+ { $group: { _id: { artikel_id: "$postavke.artikel_id", pmzZa: "$postavke.pmzZa", vrsta: "$vrsta" }, n: { $sum: 1 } } },
89
+ { $group: { _id: "$_id.artikel_id", za: { $addToSet: { n: "$n", vrsta: { $toLower: "$_id.vrsta" }, pmzZa: "$_id.pmzZa" } } } },
90
+ { $project: { zdravilo_id: "$_id", za: 1, _id: 0 } }
91
+ ]);
92
+ }
93
+ const gmidCache = {};
94
+ export async function pmzPogostnostVrstZivali(mongo, tenant, year, artikli, gmid) {
95
+ if (gmid && gmidCache[gmid])
96
+ return gmidCache[gmid];
97
+ if (tenant && gmidCache[tenant])
98
+ return gmidCache[tenant];
99
+ try {
100
+ let ret = await mongo.aggregate("terapije", [
101
+ {
102
+ $match: {
103
+ datum: wholeYearQ(year),
104
+ "postavke.artikel_id": { $in: Object.values(artikli).map(a => a._id) },
105
+ ...(gmid ? { gmid } : {}),
106
+ }
107
+ },
108
+ { $unwind: "$postavke" },
109
+ { $group: { _id: "$postavke.pmzZa", n: { $sum: 1 } } },
110
+ ]);
111
+ ret.forEach(a => a._id = poisciPmzVrstoZivali(a._id) || "");
112
+ ret.forEach(a => { var _a; return a._id = (_a = leftOfFirst(a._id, "<")) === null || _a === void 0 ? void 0 : _a.trim(); });
113
+ ret = ret.filter(a => { var _a; return ((_a = a._id) === null || _a === void 0 ? void 0 : _a.length) > 3; });
114
+ let all = ret.reduce((p, c) => (p + (c.n || 0)), 0);
115
+ let rezultat = ret.map(a => ({
116
+ vrsta: a._id,
117
+ n: a.n,
118
+ prc: a.n / all
119
+ })).reduce((p, c) => (p[c.vrsta] = c, p), {});
120
+ gmidCache[gmid || tenant] = rezultat;
121
+ // console.log(`POGOSTNOST ZA ${gmid||tenant}`, rezultat);
122
+ return rezultat;
123
+ }
124
+ catch (err) {
125
+ console.error(`pmzPogostnostVrstZivali ${tenant} ${year}: ${err.message || err}`);
126
+ }
127
+ ;
128
+ return {};
129
+ }
130
+ function zdraviluPrimernaVrsta(vrsteZivaliZaZdravilo, zdravilo_id) {
131
+ var _a;
132
+ let moznosti = vrsteZivaliZaZdravilo.find(z => z.zdravilo_id.toString() === zdravilo_id.toString());
133
+ if (!moznosti)
134
+ return;
135
+ let prva = (_a = moznosti.za.sort((a, b) => b.n - a.n)) === null || _a === void 0 ? void 0 : _a[0];
136
+ return (prva === null || prva === void 0 ? void 0 : prva.pmzZa) || prva.vrsta;
137
+ }
138
+ function vrstaUstrezaZdravilu(vrsteZivaliZaZdravilo, vrsta, zdravilo_id) {
139
+ var _a, _b, _c, _d;
140
+ let moznosti = vrsteZivaliZaZdravilo.find(z => z.zdravilo_id.toString() === zdravilo_id.toString());
141
+ if (!moznosti)
142
+ return;
143
+ vrsta = (_c = (_b = (_a = vrsta.split(" ")) === null || _a === void 0 ? void 0 : _a[0]) === null || _b === void 0 ? void 0 : _b.toLowerCase()) === null || _c === void 0 ? void 0 : _c.trim();
144
+ let ustreza = (_d = moznosti.za) === null || _d === void 0 ? void 0 : _d.find(a => { var _a; return ((_a = a.vrsta.split(" ")) === null || _a === void 0 ? void 0 : _a[0].toLowerCase()) === vrsta; });
145
+ return !!ustreza;
146
+ }
147
+ async function poisciNovoVrstoZivali(pmzZa, gmid, stZivali, zivali, znaneVrsteZivali, mongo, tenant, year, artikli, vrsteZivaliZaZdravilo, zdravilo_id, errors) {
148
+ let nova = poisciPmzVrstoZivali(pmzZa || "");
149
+ if (nova)
150
+ return nova;
151
+ // poišči za žival
152
+ if (stZivali === null || stZivali === void 0 ? void 0 : stZivali.length) {
153
+ for (let zival of stZivali || []) {
154
+ // če je vrsta že znana iz terapij, vrni znano vrsto
155
+ let zeZnanaVrsta = znaneVrsteZivali[zival];
156
+ if (zeZnanaVrsta) {
157
+ return poisciPmzVrstoZivali(zeZnanaVrsta);
158
+ }
159
+ // sicer vrni vrsto glede na pasmo
160
+ let animal = zivali === null || zivali === void 0 ? void 0 : zivali.find(z => zival === jn(z.state, z.idAnimal));
161
+ if (animal) {
162
+ let kaksna = dolociMesnostAliRejnostPasmeGoveda(animal.breed);
163
+ if ((kaksna === "molzna"))
164
+ return poisciPmzVrstoZivali("Govedo molznice");
165
+ if ((kaksna === "rejna"))
166
+ return poisciPmzVrstoZivali("Govedo pitovno");
167
+ }
168
+ }
169
+ }
170
+ // sicer vrni najbolj pogosto vrsto za gmid oz. tenant
171
+ let pogostnostZaGmid = await pmzPogostnostVrstZivali(mongo, tenant, year, artikli, gmid);
172
+ if (pogostnostZaGmid) {
173
+ let mozneVrste = Object.values(pogostnostZaGmid).sort((b, a) => b.prc - a.prc);
174
+ for (let moznaVrsta of mozneVrste) {
175
+ if (vrstaUstrezaZdravilu(vrsteZivaliZaZdravilo, moznaVrsta === null || moznaVrsta === void 0 ? void 0 : moznaVrsta.vrsta, zdravilo_id)) {
176
+ return moznaVrsta === null || moznaVrsta === void 0 ? void 0 : moznaVrsta.vrsta;
177
+ }
178
+ }
179
+ }
180
+ // sicer vrni vrsto, primerno za to zdravilo
181
+ let primerna = zdraviluPrimernaVrsta(vrsteZivaliZaZdravilo, zdravilo_id);
182
+ if (primerna)
183
+ return primerna;
184
+ errors.push(`Manjka živalska vrsta za zdravilo ${artikli[zdravilo_id].naziv} (${zdravilo_id}).`);
185
+ return undefined;
186
+ }
187
+ ;
188
+ // TODO: implementiraj za obravnave
189
+ // async function mogocePopraviPostavkoKoraka(artikli: ArtikliPmzMap, postavka: {artikel_id: string, pmzZa?: string, pmzKodaZdravila?: number}, mongo: Mongo, tenant: string, year: number, vrsteZivaliZaZdravilo: VrsteZivaliZaZdravilo[], errors: string[]) {
190
+ // if (!postavka) return true;
191
+ // const pmzKodaZdravilaNova = artikli[postavka.artikel_id]?.pmzKodaZdravila;
192
+ // if (!pmzKodaZdravilaNova) return false;
193
+ // let updated = false;
194
+ // // let update: Partial<PostavkaRacuna> = {};
195
+ // // let novaVrsta = await poisciNovoVrstoZivali(postavka.pmzZa, gmid, stZivali, zivali, znaneVrsteZivali, mongo, tenant, year, artikli, vrsteZivaliZaZdravilo, postavka.artikel_id, errors);
196
+ // // if (postavka.pmzZa !== novaVrsta) {
197
+ // // update.pmzZa_izvorna = postavka.pmzZa;
198
+ // // update.pmzZaAuto = novaVrsta;
199
+ // // }
200
+ // // if (postavka.pmzKodaZdravila !== pmzKodaZdravilaNova) {
201
+ // // // console.log(`novo zdravilo`,pmzKodaZdravilaNova, update.pmzZaAuto);
202
+ // // update.pmzKodaZdravila_izvorna = postavka.pmzKodaZdravila;
203
+ // // update.pmzKodaZdravila = pmzKodaZdravilaNova;
204
+ // // }
205
+ // // if (Object.keys(update).length > 0) {
206
+ // // update.pmz_popravek = new Date();
207
+ // // updated = true;
208
+ // // }
209
+ // // if (updated) {
210
+ // // for (let key in update) (postavka as any)[key] = update[key as keyof PostavkaRacuna]
211
+ // // }
212
+ // return updated;
213
+ // }
214
+ async function mogocePopraviPostavko(artikli, postavka, gmid, stZivali, zivali, znaneVrsteZivali, mongo, tenant, year, vrsteZivaliZaZdravilo, errors) {
3
215
  var _a;
216
+ if (!postavka)
217
+ return true;
218
+ const pmzKodaZdravilaNova = (_a = artikli[postavka.artikel_id]) === null || _a === void 0 ? void 0 : _a.pmzKodaZdravila;
219
+ if (!pmzKodaZdravilaNova)
220
+ return false;
221
+ let update = {};
222
+ let novaVrsta = await poisciNovoVrstoZivali(postavka.pmzZa, gmid, stZivali, zivali, znaneVrsteZivali, mongo, tenant, year, artikli, vrsteZivaliZaZdravilo, postavka.artikel_id, errors);
223
+ if (postavka.pmzZa !== novaVrsta) {
224
+ update.pmzZa_izvorna = postavka.pmzZa;
225
+ update.pmzZaAuto = novaVrsta;
226
+ update.pmzZa = novaVrsta;
227
+ }
228
+ if (postavka.pmzKodaZdravila !== pmzKodaZdravilaNova) {
229
+ // console.log(`novo zdravilo`,pmzKodaZdravilaNova, update.pmzZaAuto);
230
+ update.pmzKodaZdravila_izvorna = postavka.pmzKodaZdravila;
231
+ update.pmzKodaZdravila = pmzKodaZdravilaNova;
232
+ }
233
+ let updated = false;
234
+ if (Object.keys(update).length > 0) {
235
+ update.pmz_popravek = new Date();
236
+ updated = true;
237
+ }
238
+ if (updated) {
239
+ for (let key in update)
240
+ postavka[key] = update[key];
241
+ }
242
+ return updated;
243
+ }
244
+ const gmidZapisaCache = {};
245
+ async function gmidZapisa(zapis, mongo) {
246
+ var _a, _b;
247
+ let gmid = zapis.gmid || gmidZapisaCache[zapis._id];
248
+ if (gmid !== undefined)
249
+ return gmid;
250
+ gmid = (zapis.obisk_id && ((_a = (await mongo.findById("obiski", zapis.obisk_id))) === null || _a === void 0 ? void 0 : _a.gmid))
251
+ || ((_b = zapis._gmids) === null || _b === void 0 ? void 0 : _b[0])
252
+ || false;
253
+ gmidZapisaCache[zapis._id] = gmid;
254
+ // if (!gmid) console.log(`ni gmid-a za terapijo`,terapija._id);
255
+ return gmid;
256
+ }
257
+ //#region VRSTE DOKUMENTOV
258
+ export async function pmzUpdateTerapije(mongo, tenant, year, artikli, zivali, znaneVrsteZivali, vrsteZivaliZaZdravilo, errors) {
4
259
  const collection = "terapije";
5
- console.log(`starting PMZ update ${tenant} for ${year} - ${collection}`);
6
- let terapije = 0;
260
+ console.log(`starting PMZ update ${tenant} ${year} - ${collection}`);
261
+ let updates = [];
7
262
  try {
8
- terapije = (_a = (await mongo.find(collection, { _id: 1 }))) === null || _a === void 0 ? void 0 : _a.length;
263
+ const terapije = (await mongo.find(collection, {
264
+ datumTerapije: wholeYearQ(year),
265
+ "postavke.artikel_id": { $in: Object.values(artikli).map(a => a._id) }
266
+ }, { project: { _id: true, postavke: true, stevilkeZivali: true, gmid: true } }));
267
+ for (let terapija of terapije) {
268
+ let updated = false;
269
+ for (let postavka of terapija.postavke || []) {
270
+ const gmid = await gmidZapisa(terapija, mongo);
271
+ updated || (updated = await mogocePopraviPostavko(artikli, postavka, gmid || undefined, terapija.stevilkeZivali, zivali, znaneVrsteZivali, mongo, tenant, year, vrsteZivaliZaZdravilo, errors));
272
+ }
273
+ if (updates) {
274
+ updates.push({
275
+ _id: terapija._id,
276
+ pmzAutoUpdated: new Date(),
277
+ postavke: terapija.postavke.filter(a => !!a)
278
+ });
279
+ }
280
+ }
281
+ console.log(`finished PMZ update ${tenant} ${year} - ${collection}: ${updates.length}/${terapije.length}`);
9
282
  }
10
283
  catch (err) {
11
284
  console.error(`pmzUpdateTerapije ${tenant} ${year}: ${err.message || err}`);
285
+ console.log(`err`, err);
12
286
  }
13
287
  ;
14
- console.log(`finished PMZ update ${tenant} for ${year} - ${collection}: ${terapije}`);
15
- return { terapije, collection };
288
+ return { terapije: updates };
16
289
  }
17
290
  ;
18
- export async function pmzUpdateOsemenitevGoveda(mongo, tenant, year) {
19
- var _a;
291
+ export async function pmzUpdateOsemenitevGoveda(mongo, tenant, year, artikli, zivali, znaneVrsteZivali, vrsteZivaliZaZdravilo, errors) {
20
292
  const collection = "osemenitevGoveda";
21
- console.log(`starting PMZ update ${tenant} for ${year} - ${collection}`);
22
- let osemenitevGoveda = 0;
293
+ console.log(`starting PMZ update ${tenant} ${year} - ${collection}`);
294
+ let updates = [];
23
295
  try {
24
- osemenitevGoveda = (_a = (await mongo.find(collection, { _id: 1 }))) === null || _a === void 0 ? void 0 : _a.length;
296
+ const osemenitve = (await mongo.find(collection, {
297
+ datum: wholeYearQ(year),
298
+ "zdravila.artikel_id": { $in: Object.values(artikli).map(a => a._id) }
299
+ }, { project: { _id: true, postavke: true, stevilkeZivali: true, gmid: true } }));
300
+ for (let osemenitev of osemenitve) {
301
+ let updated = false;
302
+ for (let postavka of osemenitev.zdravila || []) {
303
+ const gmid = await gmidZapisa(osemenitev, mongo);
304
+ updated || (updated = await mogocePopraviPostavko(artikli, postavka, gmid || undefined, [osemenitev.stevilkaZivali], zivali, znaneVrsteZivali, mongo, tenant, year, vrsteZivaliZaZdravilo, errors));
305
+ }
306
+ if (updates) {
307
+ updates.push({
308
+ _id: osemenitev._id,
309
+ pmzAutoUpdated: new Date(),
310
+ zdravila: osemenitev.zdravila.filter(a => !!a)
311
+ });
312
+ }
313
+ }
314
+ console.log(`finished PMZ update ${tenant} ${year} - ${collection}: ${updates.length}/${osemenitve.length}`);
25
315
  }
26
316
  catch (err) {
27
317
  console.error(`pmzUpdateOsemenitevGoveda ${tenant} ${year}: ${err.message || err}`);
318
+ console.log(`err`, err);
28
319
  }
29
320
  ;
30
- console.log(`finished PMZ update ${tenant} for ${year} - ${collection}: ${osemenitevGoveda}`);
31
- return { osemenitevGoveda, collection };
321
+ return { osemenitevGoveda: updates };
32
322
  }
33
323
  ;
34
- export async function pmzUpdateObiski(mongo, tenant, year) {
35
- var _a;
324
+ export async function pmzUpdateObiski(mongo, tenant, year, artikli, zivali, znaneVrsteZivali, vrsteZivaliZaZdravilo, errors) {
36
325
  const collection = "obiski";
37
- console.log(`starting PMZ update ${tenant} for ${year} - ${collection}`);
38
- let obiski = 0;
326
+ console.log(`starting PMZ update ${tenant} ${year} - ${collection}`);
327
+ let updates = [];
39
328
  try {
40
- obiski = (_a = (await mongo.find(collection, { _id: 1 }))) === null || _a === void 0 ? void 0 : _a.length;
329
+ const obiski = (await mongo.find(collection, {
330
+ datum: wholeYearQ(year),
331
+ "zaracunaj.artikel_id": { $in: Object.values(artikli).map(a => a._id) }
332
+ }, { project: { _id: true, postavke: true, stevilkeZivali: true, gmid: true } }));
333
+ for (let obisk of obiski) {
334
+ let updated = false;
335
+ for (let postavka of obisk.zaracunaj || []) {
336
+ const gmid = await gmidZapisa(obisk, mongo);
337
+ updated || (updated = await mogocePopraviPostavko(artikli, postavka, gmid || undefined, [], zivali, znaneVrsteZivali, mongo, tenant, year, vrsteZivaliZaZdravilo, errors));
338
+ }
339
+ if (updates) {
340
+ updates.push({
341
+ _id: obisk._id,
342
+ pmzAutoUpdated: new Date(),
343
+ zaracunaj: (obisk.zaracunaj || []).filter(a => !!a)
344
+ });
345
+ }
346
+ }
347
+ console.log(`finished PMZ update ${tenant} ${year} - ${collection}: ${updates.length}/${obiski.length}`);
41
348
  }
42
349
  catch (err) {
43
350
  console.error(`pmzUpdateObiski ${tenant} ${year}: ${err.message || err}`);
44
351
  }
45
352
  ;
46
- console.log(`finished PMZ update ${tenant} for ${year} - ${collection}: ${obiski}`);
47
- return { obiski, collection };
353
+ return { obiski: updates };
48
354
  }
49
355
  ;
50
- export async function pmzUpdateRacuni(mongo, tenant, year) {
51
- var _a;
356
+ export async function pmzUpdateRacuni(mongo, tenant, year, artikli, zivali, znaneVrsteZivali, vrsteZivaliZaZdravilo, errors) {
52
357
  const collection = "racuni";
53
- console.log(`starting PMZ update ${tenant} for ${year} - ${collection}`);
54
- let racuni = 0;
358
+ console.log(`starting PMZ update ${tenant} ${year} - ${collection}`);
359
+ let updates = [];
55
360
  try {
56
- racuni = (_a = (await mongo.find(collection, { _id: 1 }))) === null || _a === void 0 ? void 0 : _a.length;
361
+ const obiski = (await mongo.find(collection, {
362
+ datum: wholeYearQ(year),
363
+ "postavke.artikel_id": { $in: Object.values(artikli).map(a => a._id) }
364
+ }, { project: { _id: true, postavke: true, stevilkeZivali: true, gmid: true } }));
365
+ for (let obisk of obiski) {
366
+ let updated = false;
367
+ for (let postavka of obisk.postavke || []) {
368
+ const gmid = await gmidZapisa(obisk, mongo);
369
+ updated || (updated = await mogocePopraviPostavko(artikli, postavka, gmid || undefined, [], zivali, znaneVrsteZivali, mongo, tenant, year, vrsteZivaliZaZdravilo, errors));
370
+ }
371
+ if (updates) {
372
+ updates.push({
373
+ _id: obisk._id,
374
+ pmzAutoUpdated: new Date(),
375
+ postavke: obisk.postavke.filter(a => !!a)
376
+ });
377
+ }
378
+ }
379
+ console.log(`finished PMZ update ${tenant} ${year} - ${collection}: ${updates.length}/${obiski.length}`);
57
380
  }
58
381
  catch (err) {
59
382
  console.error(`pmzUpdateRacuni ${tenant} ${year}: ${err.message || err}`);
60
383
  }
61
384
  ;
62
- console.log(`finished PMZ update ${tenant} for ${year} - ${collection}: ${racuni}`);
63
- return { racuni, collection };
385
+ return { racuni: updates };
64
386
  }
65
387
  ;
66
- export async function pmzUpdateDobavnice(mongo, tenant, year) {
67
- var _a;
388
+ export async function pmzUpdateDobavnice(mongo, tenant, year, artikli, zivali, znaneVrsteZivali, vrsteZivaliZaZdravilo, errors) {
68
389
  const collection = "dobavnice";
69
- console.log(`starting PMZ update ${tenant} for ${year} - ${collection}`);
70
- let dobavnice = 0;
390
+ console.log(`starting PMZ update ${tenant} ${year} - ${collection}`);
391
+ let updates = [];
71
392
  try {
72
- dobavnice = (_a = (await mongo.find(collection, { _id: 1 }))) === null || _a === void 0 ? void 0 : _a.length;
393
+ const dobavnice = (await mongo.find(collection, {
394
+ datum: wholeYearQ(year),
395
+ "postavke.artikel_id": { $in: Object.values(artikli).map(a => a._id) }
396
+ }, { project: { _id: true, postavke: true, stevilkeZivali: true, gmid: true } }));
397
+ for (let dobavnica of dobavnice) {
398
+ let updated = false;
399
+ for (let postavka of dobavnica.postavke || []) {
400
+ const gmid = await gmidZapisa(dobavnica, mongo);
401
+ updated || (updated = await mogocePopraviPostavko(artikli, postavka, gmid || undefined, [], zivali, znaneVrsteZivali, mongo, tenant, year, vrsteZivaliZaZdravilo, errors));
402
+ }
403
+ if (updates) {
404
+ updates.push({
405
+ _id: dobavnica._id,
406
+ pmzAutoUpdated: new Date(),
407
+ postavke: dobavnica.postavke.filter(a => !!a)
408
+ });
409
+ }
410
+ }
411
+ console.log(`finished PMZ update ${tenant} ${year} - ${collection}: ${updates.length}/${dobavnice.length}`);
73
412
  }
74
413
  catch (err) {
75
414
  console.error(`pmzUpdateDobavnice ${tenant} ${year}: ${err.message || err}`);
76
415
  }
77
416
  ;
78
- console.log(`finished PMZ update ${tenant} for ${year} - ${collection}: ${dobavnice}`);
79
- return { dobavnice, collection };
417
+ return { dobavnice: updates };
80
418
  }
81
419
  ;
82
- export async function pmzUpdateObravnave(mongo, tenant, year) {
420
+ // TODO - implementiraj za obravnave
421
+ // export async function pmzUpdateObravnave(mongo: Mongo, tenant: string, year: number, artikli: ArtikliPmzMap, zivali: RejnaZival[], znaneVrsteZivali: Record<string,string>, vrsteZivaliZaZdravilo: VrsteZivaliZaZdravilo[], errors: string[])
422
+ // {
423
+ // const collection="obravnave";
424
+ // console.log(`starting PMZ update ${tenant} ${year} - ${collection}`);
425
+ // let updates: Partial<Obravnava>[] = [];
426
+ // try {
427
+ // const obravnave = (await mongo.find<Obravnava>(collection,
428
+ // {
429
+ // datum: wholeYearQ(year),
430
+ // "koraki.postavke.artikel_id": { $in: Object.values(artikli).map(a => a._id) }
431
+ // } as any,
432
+ // { project: { _id: true, postavke: true, stevilkeZivali: true, gmid: true } })
433
+ // );
434
+ // for (let obravnava of obravnave) {
435
+ // let updated = false;
436
+ // for (let korak of obravnava.koraki || []) {
437
+ // for (let postavka of korak.postavke || []) {
438
+ // updated ||= await mogocePopraviPostavkoKoraka(artikli,postavka,mongo,tenant,year,vrsteZivaliZaZdravilo,errors);
439
+ // }
440
+ // korak.postavke = (korak.postavke || []).filter(a => !!a);
441
+ // }
442
+ // if (updates) {
443
+ // updates.push({
444
+ // _id: obravnava._id,
445
+ // pmzAutoUpdated: new Date(),
446
+ // koraki: obravnava.koraki!.filter(a => !!a)
447
+ // })
448
+ // }
449
+ // }
450
+ // console.log(`finished PMZ update ${tenant} ${year} - ${collection}: ${updates.length}/${obravnave.length}`);
451
+ // } catch(err: any) {
452
+ // console.error(`pmzUpdateObravnave ${tenant} ${year}: ${err.message||err}`);
453
+ // };
454
+ // return { obravnave: updates }
455
+ // };
456
+ //#region
457
+ export async function pmzUpdateAllForYear({ mongo, tenant, year, writeToDb }) {
83
458
  var _a;
84
- const collection = "obravnave";
85
- console.log(`starting PMZ update ${tenant} for ${year} - ${collection}`);
86
- let obravnave = 0;
87
- try {
88
- obravnave = (_a = (await mongo.find(collection, { _id: 1 }))) === null || _a === void 0 ? void 0 : _a.length;
89
- }
90
- catch (err) {
91
- console.error(`pmzUpdateObravnave ${tenant} ${year}: ${err.message || err}`);
92
- }
93
- ;
94
- console.log(`finished PMZ update ${tenant} for ${year} - ${collection}: ${obravnave}`);
95
- return { obravnave, collection };
96
- }
97
- ;
98
- export async function pmzUpdate({ mongo, tenant, year }) {
99
459
  mongo || (mongo = new Mongo(tenant));
100
- let terapije = await pmzUpdateTerapije(mongo, tenant, year);
101
- let osemenitevGoveda = await pmzUpdateOsemenitevGoveda(mongo, tenant, year);
102
- let obiski = await pmzUpdateObiski(mongo, tenant, year);
103
- let racuni = await pmzUpdateRacuni(mongo, tenant, year);
104
- let dobavnice = await pmzUpdateDobavnice(mongo, tenant, year);
105
- let obravnave = await pmzUpdateObravnave(mongo, tenant, year);
106
- return {
107
- terapije: terapije === null || terapije === void 0 ? void 0 : terapije.terapije,
108
- osemenitevGoveda: osemenitevGoveda === null || osemenitevGoveda === void 0 ? void 0 : osemenitevGoveda.osemenitevGoveda,
109
- obiski: obiski === null || obiski === void 0 ? void 0 : obiski.obiski,
110
- racuni: racuni === null || racuni === void 0 ? void 0 : racuni.racuni,
111
- dobavnice: dobavnice === null || dobavnice === void 0 ? void 0 : dobavnice.dobavnice,
112
- obravnave: obravnave === null || obravnave === void 0 ? void 0 : obravnave.obravnave,
460
+ let pmzArtikliMap = await pridobiPMZArtikle(mongo);
461
+ let zdraviloZaVrste = await vrsteZivaliZaZdravilo(mongo);
462
+ // console.log(await pmzPogostnostVrstZivali(mongo, tenant, year, pmzArtikliMap));
463
+ // if (1===1) process.exit(0)
464
+ let zivali = await mongo.find("zivali", {});
465
+ let znaneVrsteZivali = await pridobiVrsteZivaliIzTerapij(mongo);
466
+ let errors = [];
467
+ let terapije = await pmzUpdateTerapije(mongo, tenant, year, pmzArtikliMap, zivali, znaneVrsteZivali, zdraviloZaVrste, errors);
468
+ let osemenitevGoveda = await pmzUpdateOsemenitevGoveda(mongo, tenant, year, pmzArtikliMap, zivali, znaneVrsteZivali, zdraviloZaVrste, errors);
469
+ let obiski = await pmzUpdateObiski(mongo, tenant, year, pmzArtikliMap, zivali, znaneVrsteZivali, zdraviloZaVrste, errors);
470
+ let racuni = await pmzUpdateRacuni(mongo, tenant, year, pmzArtikliMap, zivali, znaneVrsteZivali, zdraviloZaVrste, errors);
471
+ let dobavnice = await pmzUpdateDobavnice(mongo, tenant, year, pmzArtikliMap, zivali, znaneVrsteZivali, zdraviloZaVrste, errors);
472
+ // let obravnave = await pmzUpdateObravnave(mongo, tenant, year, pmzArtikliMap, zivali, znaneVrsteZivali, zdraviloZaVrste, errors);
473
+ let updates = {
474
+ ...terapije,
475
+ ...osemenitevGoveda,
476
+ ...obiski,
477
+ ...racuni,
478
+ ...dobavnice,
479
+ // ...obravnave,
113
480
  };
481
+ for (let collection in updates) {
482
+ console.log(collection, (_a = updates[collection]) === null || _a === void 0 ? void 0 : _a.length);
483
+ }
484
+ if (writeToDb) {
485
+ for await (let collection of Object.keys(updates)) {
486
+ let spec = updates[collection];
487
+ let batch = spec.map(s => {
488
+ let query = { _id: s._id };
489
+ let update = { ...s };
490
+ delete update._id;
491
+ return { query, update };
492
+ });
493
+ await mongo.upsertBatch(collection, batch);
494
+ }
495
+ }
496
+ errors = dedup(errors).sort();
497
+ console.log(`pmzUpdateAllForYear ${tenant} ${year} errors`, errors);
498
+ return { updates, errors };
114
499
  }
500
+ // (async function () {
501
+ // await pmzUpdateAllForYear({ tenant: "mozirje", year: 2025, writeToDb: true });
502
+ // // console.dir(res, { depth:4});
503
+ // process.exit(0)
504
+ // })();
115
505
  //# sourceMappingURL=pmzUpdate.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"pmzUpdate.mjs","sourceRoot":"","sources":["../src/pmzUpdate.mts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pmzUpdate.mjs","sourceRoot":"","sources":["../src/pmzUpdate.mts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAC;AAC/B,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAC;AAE/C,OAAO,EAAE,aAAa,EAAE,KAAK,EAAE,EAAE,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAEpE,OAAO,EAAE,kCAAkC,EAAE,MAAM,0CAA0C,CAAC;AAE9F,qCAAqC;AACrC,YAAY;AACZ,4CAA4C;AAC5C,0CAA0C;AAC1C,MAAM;AACN,KAAK;AAEL,SAAS,UAAU,CAAC,IAAY;IAC/B,OAAO;QACN,GAAG,EAAE,KAAK,CAAC,GAAG,IAAI,QAAQ,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE;QACpD,GAAG,EAAE,KAAK,CAAC,GAAG,IAAI,QAAQ,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE;KAClD,CAAA;AACF,CAAC;AAAA,CAAC;AAID,CAAC;AAWF;;;;GAIG;AACH,KAAK,UAAU,2BAA2B,CAAC,KAAY;;IACtD,IAAI;QACH,IAAI,IAAI,GAAG,MAAM,KAAK,CAAC,SAAS,CAAgC,UAAU,EAAE;YAC3E,EAAE,MAAM,EAAE,EAAE,gBAAgB,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,EAAE,EAAE;YAChD,EAAE,OAAO,EAAE,WAAW,EAAE;YACxB,EAAE,MAAM,EAAE,EAAE,gBAAgB,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE;YACnD,EAAE,IAAI,EAAE,EAAE,mBAAmB,EAAE,EAAE,OAAO,EAAE,CAAC,qBAAqB,EAAE,iBAAiB,CAAC,EAAE,EAAE,EAAE;YAC1F,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,oBAAoB,EAAE,KAAK,EAAE,EAAE,SAAS,EAAE,iBAAiB,EAAE,EAAE,EAAE;SAClF,CAAC,CAAC;QAEH,IAAI,GAAG,GAA2B,EAAE,CAAC;QACrC,KAAK,IAAI,IAAI,IAAI,IAAI,EAAE;YACtB,KAAK,IAAI,KAAK,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE;gBACtC,KAAK,IAAI,KAAK,IAAI,IAAI,CAAC,KAAK,EAAE;oBAC7B,IAAI,CAAC,GAAG,MAAA,MAAA,MAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,IAAI,EAAE,0CAAE,KAAK,CAAC,mBAAmB,CAAC,0CAAG,CAAC,CAAC,0CAAE,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;oBAC5E,IAAI,CAAC,GAAG,oBAAoB,CAAC,KAAK,CAAC,CAAA;oBACnC,IAAI,CAAC,IAAI,CAAC;wBAAE,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;iBACvB;aACD;SACD;QACD,OAAO,GAAG,CAAA;KAEV;IAAC,OAAM,GAAQ,EAAE;QACjB,OAAO,CAAC,KAAK,CAAC,gCAAgC,GAAG,CAAC,OAAO,IAAI,GAAG,EAAE,CAAC,CAAC;QACpE,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;KAClB;IAAA,CAAC;IACF,OAAO,EAAE,CAAA;AACV,CAAC;AAGD,EAAE;AACF,wDAAwD;AACxD,EAAE;AACF,6EAA6E;AAE7E,qFAAqF;AACrF,qCAAqC;AACrC,6BAA6B;AAC7B,sDAAsD;AACtD,uDAAuD;AAEvD,oEAAoE;AACpE,gFAAgF;AAChF,4BAA4B;AAC5B,iCAAiC;AACjC,+CAA+C;AAE/C,+DAA+D;AAC/D,qDAAqD;AACrD,sCAAsC;AACtC,mFAAmF;AACnF,4DAA4D;AAC5D,yDAAyD;AACzD,KAAK;AACL,4CAA4C;AAE5C,IAAI;AAEJ,KAAK,UAAU,iBAAiB,CAAC,KAAY;IAC5C,IAAI,UAAU,GAAG,CAAC,MAAM,KAAK,CAAC,IAAI,CAAW,SAAS,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAC5J,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC;IAClD,UAAU,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,eAAe,IAAI,OAAO,CAAC,CAAC,eAAe,KAAK,QAAQ,CAAC,CAAA;IAC/F,IAAI,aAAa,GAAG,aAAa,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;IACrD,OAAO,aAAa,CAAC;AACtB,CAAC;AAED,KAAK,UAAU,qBAAqB,CAAC,KAAY;IAChD,OAAO,MAAM,KAAK,CAAC,SAAS,CAAwB,UAAU,EAAC;QAC9D,EAAE,OAAO,EAAE,WAAW,EAAE;QACxB,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,EAAE,UAAU,EAAE,sBAAsB,EAAE,KAAK,EAAE,iBAAiB,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE;QACtH,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,iBAAiB,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,QAAQ,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,YAAY,EAAE,EAAE,EAAE,EAAE;QAC9H,EAAE,QAAQ,EAAE,EAAE,WAAW,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,EAAC;KACnD,CAAC,CAAA;AAEH,CAAC;AAED,MAAM,SAAS,GAAgD,EAAE,CAAC;AAClE,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAAC,KAAY,EAAE,MAAc,EAAE,IAAY,EAAE,OAAsB,EAAE,IAAa;IAC9H,IAAI,IAAI,IAAI,SAAS,CAAC,IAAI,CAAC;QAAE,OAAO,SAAS,CAAC,IAAI,CAAC,CAAC;IACpD,IAAI,MAAM,IAAI,SAAS,CAAC,MAAM,CAAC;QAAE,OAAO,SAAS,CAAC,MAAM,CAAC,CAAC;IAC1D,IAAI;QACH,IAAI,GAAG,GAAG,MAAM,KAAK,CAAC,SAAS,CAA6B,UAAU,EAAE;YACvE;gBACC,MAAM,EAAE;oBACP,KAAK,EAAE,UAAU,CAAC,IAAI,CAAC;oBACvB,qBAAqB,EAAE,EAAE,GAAG,EAAE,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE;oBACtE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;iBACzB;aACD;YACD,EAAE,OAAO,EAAE,WAAW,EAAE;YACxB,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,iBAAiB,EAAE,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE;SACtD,CAAC,CAAC;QACH,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,oBAAoB,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;QAC5D,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,WAAC,OAAA,CAAC,CAAC,GAAG,GAAG,MAAA,WAAW,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,0CAAE,IAAI,EAAE,CAAA,EAAA,CAAC,CAAC;QAC1D,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,WAAC,OAAA,CAAA,MAAA,CAAC,CAAC,GAAG,0CAAE,MAAM,IAAG,CAAC,CAAA,EAAA,CAAC,CAAC;QACzC,IAAI,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACpD,IAAI,QAAQ,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YAC5B,KAAK,EAAE,CAAC,CAAC,GAAG;YACZ,CAAC,EAAE,CAAC,CAAC,CAAC;YACN,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG;SACC,CAAA,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,EAAgC,CAAC,CAAC;QAE1F,SAAS,CAAC,IAAI,IAAE,MAAM,CAAC,GAAG,QAAQ,CAAC;QACnC,0DAA0D;QAE1D,OAAO,QAAQ,CAAA;KACf;IAAC,OAAO,GAAQ,EAAE;QAClB,OAAO,CAAC,KAAK,CAAC,2BAA2B,MAAM,IAAI,IAAI,KAAK,GAAG,CAAC,OAAO,IAAI,GAAG,EAAE,CAAC,CAAC;KAClF;IAAA,CAAC;IACF,OAAO,EAAE,CAAA;AACV,CAAC;AAED,SAAS,qBAAqB,CAAC,qBAA8C,EAAE,WAAmB;;IACjG,IAAI,QAAQ,GAAG,qBAAqB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,QAAQ,EAAE,KAAK,WAAW,CAAC,QAAQ,EAAE,CAAC,CAAC;IACpG,IAAI,CAAC,QAAQ;QAAE,OAAM;IACrB,IAAI,IAAI,GAAI,MAAA,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,0CAAG,CAAC,CAAC,CAAC;IACvD,OAAO,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,KAAK,KAAI,IAAI,CAAC,KAAK,CAAA;AACjC,CAAC;AAED,SAAS,oBAAoB,CAAC,qBAA8C,EAAE,KAAa,EAAE,WAAmB;;IAC/G,IAAI,QAAQ,GAAG,qBAAqB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,QAAQ,EAAE,KAAK,WAAW,CAAC,QAAQ,EAAE,CAAC,CAAC;IACpG,IAAI,CAAC,QAAQ;QAAE,OAAM;IACrB,KAAK,GAAG,MAAA,MAAA,MAAA,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,0CAAG,CAAC,CAAC,0CAAE,WAAW,EAAE,0CAAE,IAAI,EAAE,CAAC;IACrD,IAAI,OAAO,GAAG,MAAA,QAAQ,CAAC,EAAE,0CAAE,IAAI,CAAC,CAAC,CAAC,EAAE,WAAC,OAAA,CAAA,MAAA,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,0CAAG,CAAC,EAAE,WAAW,EAAE,MAAK,KAAK,CAAA,EAAA,CAAC,CAAA;IACrF,OAAO,CAAC,CAAC,OAAO,CAAA;AACjB,CAAC;AAGD,KAAK,UAAU,qBAAqB,CAAC,KAAyB,EAAE,IAAwB,EAAE,QAA8B,EAAE,MAAgC,EAAE,gBAAwC,EAAE,KAAY,EAAE,MAAc,EAAE,IAAY,EAAE,OAAsB,EAAE,qBAA8C,EAAE,WAAmB,EAAE,MAAgB;IAG9V,IAAI,IAAI,GAAG,oBAAoB,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;IAC7C,IAAI,IAAI;QAAE,OAAO,IAAI,CAAC;IAEtB,kBAAkB;IAClB,IAAI,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,MAAM,EAAE;QACrB,KAAK,IAAI,KAAK,IAAI,QAAQ,IAAI,EAAE,EAAE;YACjC,oDAAoD;YACpD,IAAI,YAAY,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC;YAC3C,IAAI,YAAY,EAAE;gBACjB,OAAO,oBAAoB,CAAC,YAAY,CAAC,CAAA;aACzC;YACD,kCAAkC;YAClC,IAAI,MAAM,GAAG,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,KAAK,EAAE,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;YAClE,IAAI,MAAM,EAAE;gBACX,IAAI,MAAM,GAAG,kCAAkC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBAC9D,IAAI,CAAC,MAAM,KAAK,QAAQ,CAAC;oBAAE,OAAO,oBAAoB,CAAC,iBAAiB,CAAC,CAAC;gBAC1E,IAAI,CAAC,MAAM,KAAK,OAAO,CAAC;oBAAE,OAAO,oBAAoB,CAAC,gBAAgB,CAAC,CAAC;aACxE;SACD;KACD;IAED,sDAAsD;IACtD,IAAI,gBAAgB,GAAG,MAAM,uBAAuB,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;IACzF,IAAI,gBAAgB,EAAE;QACrB,IAAI,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;QAC/E,KAAK,IAAI,UAAU,IAAI,UAAU,EAAE;YAClC,IAAI,oBAAoB,CAAC,qBAAqB,EAAE,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,KAAK,EAAE,WAAW,CAAC,EAAE;gBAChF,OAAO,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,KAAK,CAAC;aACzB;SACD;KACD;IAED,4CAA4C;IAC5C,IAAI,QAAQ,GAAG,qBAAqB,CAAC,qBAAqB,EAAE,WAAW,CAAC,CAAA;IACxE,IAAI,QAAQ;QAAE,OAAO,QAAQ,CAAA;IAE7B,MAAM,CAAC,IAAI,CAAC,qCAAqC,OAAO,CAAC,WAAW,CAAC,CAAC,KAAK,KAAK,WAAW,IAAI,CAAC,CAAC;IACjG,OAAO,SAAS,CAAA;AACjB,CAAC;AAAA,CAAC;AAEF,mCAAmC;AACnC,+PAA+P;AAC/P,+BAA+B;AAC/B,8EAA8E;AAC9E,2CAA2C;AAC3C,wBAAwB;AAExB,gDAAgD;AAEhD,+LAA+L;AAC/L,0CAA0C;AAC1C,8CAA8C;AAC9C,qCAAqC;AACrC,QAAQ;AAER,8DAA8D;AAC9D,8EAA8E;AAC9E,kEAAkE;AAClE,qDAAqD;AACrD,QAAQ;AAER,4CAA4C;AAC5C,yCAAyC;AACzC,uBAAuB;AACvB,QAAQ;AACR,qBAAqB;AACrB,4FAA4F;AAC5F,QAAQ;AAER,mBAAmB;AACnB,IAAI;AACJ,KAAK,UAAU,qBAAqB,CAAC,OAAsB,EAAE,QAAwE,EAAE,IAAwB,EAAE,QAA8B,EAAE,MAAgC,EAAE,gBAAwC,EAAE,KAAY,EAAE,MAAc,EAAE,IAAY,EAAE,qBAA8C,EAAE,MAAgB;;IACxX,IAAI,CAAC,QAAQ;QAAE,OAAO,IAAI,CAAC;IAC3B,MAAM,mBAAmB,GAAG,MAAA,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,0CAAE,eAAe,CAAC;IAC1E,IAAI,CAAC,mBAAmB;QAAE,OAAO,KAAK,CAAC;IACvC,IAAI,MAAM,GAA4B,EAAE,CAAC;IAEzC,IAAI,SAAS,GAAG,MAAM,qBAAqB,CAAC,QAAQ,CAAC,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,gBAAgB,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,qBAAqB,EAAE,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;IACxL,IAAI,QAAQ,CAAC,KAAK,KAAK,SAAS,EAAE;QACjC,MAAM,CAAC,aAAa,GAAG,QAAQ,CAAC,KAAK,CAAC;QACtC,MAAM,CAAC,SAAS,GAAG,SAAS,CAAC;QAC7B,MAAM,CAAC,KAAK,GAAG,SAAS,CAAC;KACzB;IAED,IAAI,QAAQ,CAAC,eAAe,KAAK,mBAAmB,EAAE;QACrD,sEAAsE;QACtE,MAAM,CAAC,uBAAuB,GAAG,QAAQ,CAAC,eAAe,CAAC;QAC1D,MAAM,CAAC,eAAe,GAAG,mBAAmB,CAAC;KAC7C;IAED,IAAI,OAAO,GAAG,KAAK,CAAC;IACpB,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE;QACnC,MAAM,CAAC,YAAY,GAAG,IAAI,IAAI,EAAE,CAAC;QACjC,OAAO,GAAG,IAAI,CAAC;KACf;IACD,IAAI,OAAO,EAAE;QACZ,KAAK,IAAI,GAAG,IAAI,MAAM;YAAG,QAAgB,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,GAA2B,CAAC,CAAA;KACpF;IACD,OAAO,OAAO,CAAC;AAChB,CAAC;AAED,MAAM,eAAe,GAA2B,EAAE,CAAC;AACnD,KAAK,UAAU,UAAU,CAAC,KAAwD,EAAE,KAAY;;IAC/F,IAAI,IAAI,GAAG,KAAK,CAAC,IAAI,IAAI,eAAe,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACpD,IAAI,IAAI,KAAK,SAAS;QAAE,OAAO,IAAI,CAAC;IACpC,IAAI,GAAG,CAAC,KAAK,CAAC,QAAQ,KAAI,MAAA,CAAC,MAAM,KAAK,CAAC,QAAQ,CAAQ,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC,0CAAE,IAAI,CAAA,CAAC;YACpF,MAAC,KAAa,CAAC,MAAM,0CAAG,CAAC,CAAC,CAAA;WAC1B,KAAK,CAAC;IACV,eAAe,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;IAClC,gEAAgE;IAEhE,OAAO,IAAI,CAAC;AACb,CAAC;AAED,0BAA0B;AAE1B,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,KAAY,EAAE,MAAc,EAAE,IAAY,EAAE,OAAsB,EAAE,MAAoB,EAAE,gBAAuC,EAAE,qBAA8C,EAAE,MAAgB;IAC1O,MAAM,UAAU,GAAG,UAAU,CAAC;IAC9B,OAAO,CAAC,GAAG,CAAC,uBAAuB,MAAM,IAAI,IAAI,MAAM,UAAU,EAAE,CAAC,CAAC;IAErE,IAAI,OAAO,GAAwB,EAAE,CAAC;IACtC,IAAI;QACH,MAAM,QAAQ,GAAG,CAAC,MAAM,KAAK,CAAC,IAAI,CAAW,UAAU,EACtD;YACC,aAAa,EAAE,UAAU,CAAC,IAAI,CAAC;YAC/B,qBAAqB,EAAE,EAAE,GAAG,EAAE,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE;SAC/D,EACR,EAAE,OAAO,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC,CAC7E,CAAC;QAEF,KAAK,IAAI,QAAQ,IAAI,QAAQ,EAAE;YAC9B,IAAI,OAAO,GAAG,KAAK,CAAC;YACpB,KAAK,IAAI,QAAQ,IAAI,QAAQ,CAAC,QAAQ,IAAE,EAAE,EAAE;gBAC3C,MAAM,IAAI,GAAG,MAAM,UAAU,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;gBAC/C,OAAO,KAAP,OAAO,GAAK,MAAM,qBAAqB,CAAC,OAAO,EAAE,QAAQ,EAAE,IAAI,IAAI,SAAS,EAAE,QAAQ,CAAC,cAAc,EAAE,MAAM,EAAE,gBAAgB,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,qBAAqB,EAAE,MAAM,CAAC,EAAC;aACrL;YACD,IAAI,OAAO,EAAE;gBACZ,OAAO,CAAC,IAAI,CAAC;oBACZ,GAAG,EAAE,QAAQ,CAAC,GAAG;oBACjB,cAAc,EAAE,IAAI,IAAI,EAAE;oBAC1B,QAAQ,EAAE,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;iBAC5C,CAAC,CAAA;aACF;SACD;QACD,OAAO,CAAC,GAAG,CAAC,uBAAuB,MAAM,IAAI,IAAI,MAAM,UAAU,KAAK,OAAO,CAAC,MAAM,IAAI,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;KAE3G;IAAC,OAAO,GAAQ,EAAE;QAClB,OAAO,CAAC,KAAK,CAAC,qBAAqB,MAAM,IAAI,IAAI,KAAK,GAAG,CAAC,OAAO,IAAI,GAAG,EAAE,CAAC,CAAC;QAC5E,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;KAExB;IAAA,CAAC;IAEF,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAA;AAC7B,CAAC;AAAA,CAAC;AAKF,MAAM,CAAC,KAAK,UAAU,yBAAyB,CAAC,KAAY,EAAE,MAAc,EAAE,IAAY,EAAE,OAAsB,EAAE,MAAoB,EAAE,gBAAuC,EAAE,qBAA8C,EAAE,MAAgB;IAElP,MAAM,UAAU,GAAC,kBAAkB,CAAC;IACpC,OAAO,CAAC,GAAG,CAAC,uBAAuB,MAAM,IAAI,IAAI,MAAM,UAAU,EAAE,CAAC,CAAC;IAErE,IAAI,OAAO,GAAgC,EAAE,CAAC;IAC9C,IAAI;QACH,MAAM,UAAU,GAAG,CAAC,MAAM,KAAK,CAAC,IAAI,CAAmB,UAAU,EAChE;YACC,KAAK,EAAE,UAAU,CAAC,IAAI,CAAC;YACvB,qBAAqB,EAAE,EAAE,GAAG,EAAE,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE;SAC/D,EACR,EAAE,OAAO,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC,CAC7E,CAAC;QAEF,KAAK,IAAI,UAAU,IAAI,UAAU,EAAE;YAClC,IAAI,OAAO,GAAG,KAAK,CAAC;YACpB,KAAK,IAAI,QAAQ,IAAI,UAAU,CAAC,QAAQ,IAAE,EAAE,EAAE;gBAC7C,MAAM,IAAI,GAAG,MAAM,UAAU,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;gBACjD,OAAO,KAAP,OAAO,GAAK,MAAM,qBAAqB,CAAC,OAAO,EAAE,QAAQ,EAAE,IAAI,IAAI,SAAS,EAAE,CAAC,UAAU,CAAC,cAAc,CAAC,EAAE,MAAM,EAAE,gBAAgB,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,qBAAqB,EAAE,MAAM,CAAC,EAAC;aACzL;YACD,IAAI,OAAO,EAAE;gBACZ,OAAO,CAAC,IAAI,CAAC;oBACZ,GAAG,EAAE,UAAU,CAAC,GAAG;oBACnB,cAAc,EAAE,IAAI,IAAI,EAAE;oBAC1B,QAAQ,EAAE,UAAU,CAAC,QAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;iBAC/C,CAAC,CAAA;aACF;SACD;QACD,OAAO,CAAC,GAAG,CAAC,uBAAuB,MAAM,IAAI,IAAI,MAAM,UAAU,KAAK,OAAO,CAAC,MAAM,IAAI,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC;KAE7G;IAAC,OAAO,GAAQ,EAAE;QAClB,OAAO,CAAC,KAAK,CAAC,6BAA6B,MAAM,IAAI,IAAI,KAAK,GAAG,CAAC,OAAO,IAAI,GAAG,EAAE,CAAC,CAAC;QACpF,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;KAExB;IAAA,CAAC;IAEF,OAAO,EAAE,gBAAgB,EAAE,OAAO,EAAE,CAAA;AACrC,CAAC;AAAA,CAAC;AAEF,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,KAAY,EAAE,MAAc,EAAE,IAAY,EAAE,OAAsB,EAAE,MAAoB,EAAE,gBAAuC,EAAE,qBAA8C,EAAE,MAAgB;IAExO,MAAM,UAAU,GAAC,QAAQ,CAAC;IAC1B,OAAO,CAAC,GAAG,CAAC,uBAAuB,MAAM,IAAI,IAAI,MAAM,UAAU,EAAE,CAAC,CAAC;IAErE,IAAI,OAAO,GAAqB,EAAE,CAAC;IACnC,IAAI;QACH,MAAM,MAAM,GAAG,CAAC,MAAM,KAAK,CAAC,IAAI,CAAQ,UAAU,EACjD;YACC,KAAK,EAAE,UAAU,CAAC,IAAI,CAAC;YACvB,sBAAsB,EAAE,EAAE,GAAG,EAAE,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE;SAChE,EACR,EAAE,OAAO,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC,CAC7E,CAAC;QAEF,KAAK,IAAI,KAAK,IAAI,MAAM,EAAE;YACzB,IAAI,OAAO,GAAG,KAAK,CAAC;YACpB,KAAK,IAAI,QAAQ,IAAI,KAAK,CAAC,SAAS,IAAI,EAAE,EAAE;gBAC3C,MAAM,IAAI,GAAG,MAAM,UAAU,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;gBAC5C,OAAO,KAAP,OAAO,GAAK,MAAM,qBAAqB,CAAC,OAAO,EAAE,QAAQ,EAAE,IAAI,IAAI,SAAS,EAAE,EAAE,EAAE,MAAM,EAAE,gBAAgB,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,qBAAqB,EAAC,MAAM,CAAC,EAAC;aAC/J;YACD,IAAI,OAAO,EAAE;gBACZ,OAAO,CAAC,IAAI,CAAC;oBACZ,GAAG,EAAE,KAAK,CAAC,GAAG;oBACd,cAAc,EAAE,IAAI,IAAI,EAAE;oBAC1B,SAAS,EAAE,CAAC,KAAK,CAAC,SAAS,IAAE,EAAE,CAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;iBAClD,CAAC,CAAA;aACF;SACD;QACD,OAAO,CAAC,GAAG,CAAC,uBAAuB,MAAM,IAAI,IAAI,MAAM,UAAU,KAAK,OAAO,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;KAEzG;IAAC,OAAM,GAAQ,EAAE;QACjB,OAAO,CAAC,KAAK,CAAC,mBAAmB,MAAM,IAAI,IAAI,KAAK,GAAG,CAAC,OAAO,IAAE,GAAG,EAAE,CAAC,CAAC;KACxE;IAAA,CAAC;IAGF,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,CAAA;AAC3B,CAAC;AAAA,CAAC;AAEF,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,KAAY,EAAE,MAAc,EAAE,IAAY,EAAE,OAAsB,EAAE,MAAoB,EAAE,gBAAuC,EAAE,qBAA8C,EAAE,MAAgB;IAExO,MAAM,UAAU,GAAC,QAAQ,CAAC;IAC1B,OAAO,CAAC,GAAG,CAAC,uBAAuB,MAAM,IAAI,IAAI,MAAM,UAAU,EAAE,CAAC,CAAC;IAErE,IAAI,OAAO,GAAqB,EAAE,CAAC;IAEnC,IAAI;QACH,MAAM,MAAM,GAAG,CAAC,MAAM,KAAK,CAAC,IAAI,CAAQ,UAAU,EACjD;YACC,KAAK,EAAE,UAAU,CAAC,IAAI,CAAC;YACvB,qBAAqB,EAAE,EAAE,GAAG,EAAE,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE;SAC/D,EACR,EAAE,OAAO,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC,CAC7E,CAAC;QAEF,KAAK,IAAI,KAAK,IAAI,MAAM,EAAE;YACzB,IAAI,OAAO,GAAG,KAAK,CAAC;YACpB,KAAK,IAAI,QAAQ,IAAI,KAAK,CAAC,QAAQ,IAAI,EAAE,EAAE;gBAC1C,MAAM,IAAI,GAAG,MAAM,UAAU,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;gBAC5C,OAAO,KAAP,OAAO,GAAK,MAAM,qBAAqB,CAAC,OAAO,EAAE,QAAQ,EAAE,IAAI,IAAI,SAAS,EAAE,EAAE,EAAE,MAAM,EAAE,gBAAgB,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,qBAAqB,EAAC,MAAM,CAAC,EAAC;aAC/J;YACD,IAAI,OAAO,EAAE;gBACZ,OAAO,CAAC,IAAI,CAAC;oBACZ,GAAG,EAAE,KAAK,CAAC,GAAG;oBACd,cAAc,EAAE,IAAI,IAAI,EAAE;oBAC1B,QAAQ,EAAE,KAAK,CAAC,QAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;iBAC1C,CAAC,CAAA;aACF;SACD;QACD,OAAO,CAAC,GAAG,CAAC,uBAAuB,MAAM,IAAI,IAAI,MAAM,UAAU,KAAK,OAAO,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;KAEzG;IAAC,OAAM,GAAQ,EAAE;QACjB,OAAO,CAAC,KAAK,CAAC,mBAAmB,MAAM,IAAI,IAAI,KAAK,GAAG,CAAC,OAAO,IAAE,GAAG,EAAE,CAAC,CAAC;KACxE;IAAA,CAAC;IAEF,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,CAAA;AAC3B,CAAC;AAAA,CAAC;AAEF,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,KAAY,EAAE,MAAc,EAAE,IAAY,EAAE,OAAsB,EAAE,MAAoB,EAAE,gBAAuC,EAAE,qBAA8C,EAAE,MAAgB;IAE3O,MAAM,UAAU,GAAC,WAAW,CAAC;IAC7B,OAAO,CAAC,GAAG,CAAC,uBAAuB,MAAM,IAAI,IAAI,MAAM,UAAU,EAAE,CAAC,CAAC;IAErE,IAAI,OAAO,GAAyB,EAAE,CAAC;IAEvC,IAAI;QACH,MAAM,SAAS,GAAG,CAAC,MAAM,KAAK,CAAC,IAAI,CAAY,UAAU,EACxD;YACC,KAAK,EAAE,UAAU,CAAC,IAAI,CAAC;YACvB,qBAAqB,EAAE,EAAE,GAAG,EAAE,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE;SAC/D,EACR,EAAE,OAAO,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC,CAC7E,CAAC;QAEF,KAAK,IAAI,SAAS,IAAI,SAAS,EAAE;YAChC,IAAI,OAAO,GAAG,KAAK,CAAC;YACpB,KAAK,IAAI,QAAQ,IAAI,SAAS,CAAC,QAAQ,IAAI,EAAE,EAAE;gBAC9C,MAAM,IAAI,GAAG,MAAM,UAAU,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;gBAChD,OAAO,KAAP,OAAO,GAAK,MAAM,qBAAqB,CAAC,OAAO,EAAE,QAAQ,EAAE,IAAI,IAAI,SAAS,EAAE,EAAE,EAAE,MAAM,EAAE,gBAAgB,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,qBAAqB,EAAE,MAAM,CAAC,EAAC;aAChK;YACD,IAAI,OAAO,EAAE;gBACZ,OAAO,CAAC,IAAI,CAAC;oBACZ,GAAG,EAAE,SAAS,CAAC,GAAG;oBAClB,cAAc,EAAE,IAAI,IAAI,EAAE;oBAC1B,QAAQ,EAAE,SAAS,CAAC,QAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;iBAC9C,CAAC,CAAA;aACF;SACD;QACD,OAAO,CAAC,GAAG,CAAC,uBAAuB,MAAM,IAAI,IAAI,MAAM,UAAU,KAAK,OAAO,CAAC,MAAM,IAAI,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC;KAC5G;IAAC,OAAM,GAAQ,EAAE;QACjB,OAAO,CAAC,KAAK,CAAC,sBAAsB,MAAM,IAAI,IAAI,KAAK,GAAG,CAAC,OAAO,IAAE,GAAG,EAAE,CAAC,CAAC;KAC3E;IAAA,CAAC;IAEF,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,CAAA;AAC9B,CAAC;AAAA,CAAC;AAEF,oCAAoC;AACpC,gPAAgP;AAChP,IAAI;AACJ,iCAAiC;AACjC,yEAAyE;AAEzE,2CAA2C;AAE3C,SAAS;AACT,+DAA+D;AAC/D,OAAO;AACP,+BAA+B;AAC/B,oFAAoF;AACpF,eAAe;AACf,mFAAmF;AACnF,OAAO;AAEP,uCAAuC;AACvC,0BAA0B;AAC1B,iDAAiD;AACjD,mDAAmD;AACnD,uHAAuH;AACvH,QAAQ;AACR,gEAAgE;AAChE,OAAO;AACP,oBAAoB;AACpB,qBAAqB;AACrB,2BAA2B;AAC3B,mCAAmC;AACnC,kDAAkD;AAClD,SAAS;AACT,OAAO;AACP,MAAM;AACN,iHAAiH;AACjH,uBAAuB;AACvB,gFAAgF;AAChF,MAAM;AAEN,iCAAiC;AACjC,KAAK;AAEL,UAAU;AAGV,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAuE;;IAEhJ,KAAK,KAAL,KAAK,GAAK,IAAI,KAAK,CAAC,MAAM,CAAC,EAAC;IAE5B,IAAI,aAAa,GAAG,MAAM,iBAAiB,CAAC,KAAK,CAAC,CAAC;IACnD,IAAI,eAAe,GAAG,MAAM,qBAAqB,CAAC,KAAK,CAAC,CAAC;IACzD,kFAAkF;IAElF,6BAA6B;IAE7B,IAAI,MAAM,GAAG,MAAM,KAAK,CAAC,IAAI,CAAa,QAAQ,EAAE,EAAE,CAAC,CAAC;IACxD,IAAI,gBAAgB,GAAG,MAAM,2BAA2B,CAAC,KAAK,CAAC,CAAC;IAEhE,IAAI,MAAM,GAAa,EAAE,CAAC;IAC1B,IAAI,QAAQ,GAAG,MAAM,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,CAAC,CAAC;IAC9H,IAAI,gBAAgB,GAAG,MAAM,yBAAyB,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,CAAC,CAAC;IAC9I,IAAI,MAAM,GAAG,MAAM,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,CAAC,CAAC;IAC1H,IAAI,MAAM,GAAG,MAAM,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,CAAC,CAAC;IAC1H,IAAI,SAAS,GAAG,MAAM,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,CAAC,CAAC;IAChI,mIAAmI;IAEnI,IAAI,OAAO,GAAG;QACb,GAAG,QAAQ;QACX,GAAG,gBAAgB;QACnB,GAAG,MAAM;QACT,GAAG,MAAM;QACT,GAAG,SAAS;QACZ,gBAAgB;KAChB,CAAA;IAED,KAAK,IAAI,UAAU,IAAI,OAAO,EAAE;QAC/B,OAAO,CAAC,GAAG,CAAC,UAAU,EAAC,MAAC,OAAe,CAAC,UAAU,CAAC,0CAAE,MAAM,CAAC,CAAC;KAC7D;IAED,IAAI,SAAS,EAAE;QACd,IAAI,KAAK,EAAE,IAAI,UAAU,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE;YAClD,IAAI,IAAI,GAAG,OAAO,CAAC,UAAkC,CAAC,CAAC;YACvD,IAAI,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;gBACxB,IAAI,KAAK,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC;gBAC3B,IAAI,MAAM,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC;gBACtB,OAAO,MAAM,CAAC,GAAG,CAAA;gBACjB,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,CAAA;YACzB,CAAC,CAAC,CAAC;YACH,MAAM,KAAK,CAAC,WAAW,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;SAC3C;KACD;IAED,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC;IAC9B,OAAO,CAAC,GAAG,CAAC,uBAAuB,MAAM,IAAI,IAAI,SAAS,EAAC,MAAM,CAAC,CAAC;IAEnE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,CAAA;AAE3B,CAAC;AAGD,uBAAuB;AACvB,kFAAkF;AAClF,oCAAoC;AACpC,mBAAmB;AACnB,QAAQ"}
@@ -1,3 +1,3 @@
1
1
  import { ZalogaDbAccessor } from "./types/ZalogaDbAccessor.mjs";
2
- export declare function razknjiziBlagovnico(_id: string, mongo: ZalogaDbAccessor): Promise<import("./index.mjs").Dobava | import("./index.mjs").Prenos | import("./index.mjs").Poraba | import("./index.mjs").Inventura | import("./index.mjs").Narocilo | undefined>;
2
+ export declare function razknjiziBlagovnico(_id: string, mongo: ZalogaDbAccessor): Promise<import("./index.mjs").Prenos | import("./index.mjs").Poraba | import("./index.mjs").Inventura | import("./index.mjs").Dobava | import("./index.mjs").Narocilo | undefined>;
3
3
  //# sourceMappingURL=razknjiziBlagovnico.d.mts.map
@@ -100,7 +100,11 @@ export interface PostavkaRacuna {
100
100
  razknjizenoNaObravnavi?: Date;
101
101
  IPV?: boolean;
102
102
  pmzKodaZdravila?: number;
103
+ pmzZaAuto?: string;
103
104
  pmzZa?: string;
105
+ pmzKodaZdravila_izvorna?: number;
106
+ pmzZa_izvorna?: string;
107
+ pmz_popravek?: Date;
104
108
  recept?: boolean;
105
109
  zaracunal?: Username;
106
110
  kodaPopusta?: string;
@@ -256,5 +260,6 @@ export interface Racun {
256
260
  zdruzenVOdprtega: string;
257
261
  zdruzenIzOdprtih?: string[];
258
262
  oddajaGotovineId?: string;
263
+ pmzAutoUpdated?: Date;
259
264
  }
260
265
  //# sourceMappingURL=racun.d.mts.map