cry-klikvet-logic 1.0.257 → 1.0.258

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,504 @@
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
+ }
227
+ if (postavka.pmzKodaZdravila !== pmzKodaZdravilaNova) {
228
+ // console.log(`novo zdravilo`,pmzKodaZdravilaNova, update.pmzZaAuto);
229
+ update.pmzKodaZdravila_izvorna = postavka.pmzKodaZdravila;
230
+ update.pmzKodaZdravila = pmzKodaZdravilaNova;
231
+ }
232
+ let updated = false;
233
+ if (Object.keys(update).length > 0) {
234
+ update.pmz_popravek = new Date();
235
+ updated = true;
236
+ }
237
+ if (updated) {
238
+ for (let key in update)
239
+ postavka[key] = update[key];
240
+ }
241
+ return updated;
242
+ }
243
+ const gmidZapisaCache = {};
244
+ async function gmidZapisa(zapis, mongo) {
245
+ var _a, _b;
246
+ let gmid = zapis.gmid || gmidZapisaCache[zapis._id];
247
+ if (gmid !== undefined)
248
+ return gmid;
249
+ gmid = (zapis.obisk_id && ((_a = (await mongo.findById("obiski", zapis.obisk_id))) === null || _a === void 0 ? void 0 : _a.gmid))
250
+ || ((_b = zapis._gmids) === null || _b === void 0 ? void 0 : _b[0])
251
+ || false;
252
+ gmidZapisaCache[zapis._id] = gmid;
253
+ // if (!gmid) console.log(`ni gmid-a za terapijo`,terapija._id);
254
+ return gmid;
255
+ }
256
+ //#region VRSTE DOKUMENTOV
257
+ export async function pmzUpdateTerapije(mongo, tenant, year, artikli, zivali, znaneVrsteZivali, vrsteZivaliZaZdravilo, errors) {
4
258
  const collection = "terapije";
5
- console.log(`starting PMZ update ${tenant} for ${year} - ${collection}`);
6
- let terapije = 0;
259
+ console.log(`starting PMZ update ${tenant} ${year} - ${collection}`);
260
+ let updates = [];
7
261
  try {
8
- terapije = (_a = (await mongo.find(collection, { _id: 1 }))) === null || _a === void 0 ? void 0 : _a.length;
262
+ const terapije = (await mongo.find(collection, {
263
+ datumTerapije: wholeYearQ(year),
264
+ "postavke.artikel_id": { $in: Object.values(artikli).map(a => a._id) }
265
+ }, { project: { _id: true, postavke: true, stevilkeZivali: true, gmid: true } }));
266
+ for (let terapija of terapije) {
267
+ let updated = false;
268
+ for (let postavka of terapija.postavke || []) {
269
+ const gmid = await gmidZapisa(terapija, mongo);
270
+ updated || (updated = await mogocePopraviPostavko(artikli, postavka, gmid || undefined, terapija.stevilkeZivali, zivali, znaneVrsteZivali, mongo, tenant, year, vrsteZivaliZaZdravilo, errors));
271
+ }
272
+ if (updates) {
273
+ updates.push({
274
+ _id: terapija._id,
275
+ pmzAutoUpdated: new Date(),
276
+ postavke: terapija.postavke.filter(a => !!a)
277
+ });
278
+ }
279
+ }
280
+ console.log(`finished PMZ update ${tenant} ${year} - ${collection}: ${updates.length}/${terapije.length}`);
9
281
  }
10
282
  catch (err) {
11
283
  console.error(`pmzUpdateTerapije ${tenant} ${year}: ${err.message || err}`);
284
+ console.log(`err`, err);
12
285
  }
13
286
  ;
14
- console.log(`finished PMZ update ${tenant} for ${year} - ${collection}: ${terapije}`);
15
- return { terapije, collection };
287
+ return { terapije: updates };
16
288
  }
17
289
  ;
18
- export async function pmzUpdateOsemenitevGoveda(mongo, tenant, year) {
19
- var _a;
290
+ export async function pmzUpdateOsemenitevGoveda(mongo, tenant, year, artikli, zivali, znaneVrsteZivali, vrsteZivaliZaZdravilo, errors) {
20
291
  const collection = "osemenitevGoveda";
21
- console.log(`starting PMZ update ${tenant} for ${year} - ${collection}`);
22
- let osemenitevGoveda = 0;
292
+ console.log(`starting PMZ update ${tenant} ${year} - ${collection}`);
293
+ let updates = [];
23
294
  try {
24
- osemenitevGoveda = (_a = (await mongo.find(collection, { _id: 1 }))) === null || _a === void 0 ? void 0 : _a.length;
295
+ const osemenitve = (await mongo.find(collection, {
296
+ datum: wholeYearQ(year),
297
+ "zdravila.artikel_id": { $in: Object.values(artikli).map(a => a._id) }
298
+ }, { project: { _id: true, postavke: true, stevilkeZivali: true, gmid: true } }));
299
+ for (let osemenitev of osemenitve) {
300
+ let updated = false;
301
+ for (let postavka of osemenitev.zdravila || []) {
302
+ const gmid = await gmidZapisa(osemenitev, mongo);
303
+ updated || (updated = await mogocePopraviPostavko(artikli, postavka, gmid || undefined, [osemenitev.stevilkaZivali], zivali, znaneVrsteZivali, mongo, tenant, year, vrsteZivaliZaZdravilo, errors));
304
+ }
305
+ if (updates) {
306
+ updates.push({
307
+ _id: osemenitev._id,
308
+ pmzAutoUpdated: new Date(),
309
+ zdravila: osemenitev.zdravila.filter(a => !!a)
310
+ });
311
+ }
312
+ }
313
+ console.log(`finished PMZ update ${tenant} ${year} - ${collection}: ${updates.length}/${osemenitve.length}`);
25
314
  }
26
315
  catch (err) {
27
316
  console.error(`pmzUpdateOsemenitevGoveda ${tenant} ${year}: ${err.message || err}`);
317
+ console.log(`err`, err);
28
318
  }
29
319
  ;
30
- console.log(`finished PMZ update ${tenant} for ${year} - ${collection}: ${osemenitevGoveda}`);
31
- return { osemenitevGoveda, collection };
320
+ return { osemenitevGoveda: updates };
32
321
  }
33
322
  ;
34
- export async function pmzUpdateObiski(mongo, tenant, year) {
35
- var _a;
323
+ export async function pmzUpdateObiski(mongo, tenant, year, artikli, zivali, znaneVrsteZivali, vrsteZivaliZaZdravilo, errors) {
36
324
  const collection = "obiski";
37
- console.log(`starting PMZ update ${tenant} for ${year} - ${collection}`);
38
- let obiski = 0;
325
+ console.log(`starting PMZ update ${tenant} ${year} - ${collection}`);
326
+ let updates = [];
39
327
  try {
40
- obiski = (_a = (await mongo.find(collection, { _id: 1 }))) === null || _a === void 0 ? void 0 : _a.length;
328
+ const obiski = (await mongo.find(collection, {
329
+ datum: wholeYearQ(year),
330
+ "zaracunaj.artikel_id": { $in: Object.values(artikli).map(a => a._id) }
331
+ }, { project: { _id: true, postavke: true, stevilkeZivali: true, gmid: true } }));
332
+ for (let obisk of obiski) {
333
+ let updated = false;
334
+ for (let postavka of obisk.zaracunaj || []) {
335
+ const gmid = await gmidZapisa(obisk, mongo);
336
+ updated || (updated = await mogocePopraviPostavko(artikli, postavka, gmid || undefined, [], zivali, znaneVrsteZivali, mongo, tenant, year, vrsteZivaliZaZdravilo, errors));
337
+ }
338
+ if (updates) {
339
+ updates.push({
340
+ _id: obisk._id,
341
+ pmzAutoUpdated: new Date(),
342
+ zaracunaj: (obisk.zaracunaj || []).filter(a => !!a)
343
+ });
344
+ }
345
+ }
346
+ console.log(`finished PMZ update ${tenant} ${year} - ${collection}: ${updates.length}/${obiski.length}`);
41
347
  }
42
348
  catch (err) {
43
349
  console.error(`pmzUpdateObiski ${tenant} ${year}: ${err.message || err}`);
44
350
  }
45
351
  ;
46
- console.log(`finished PMZ update ${tenant} for ${year} - ${collection}: ${obiski}`);
47
- return { obiski, collection };
352
+ return { obiski: updates };
48
353
  }
49
354
  ;
50
- export async function pmzUpdateRacuni(mongo, tenant, year) {
51
- var _a;
355
+ export async function pmzUpdateRacuni(mongo, tenant, year, artikli, zivali, znaneVrsteZivali, vrsteZivaliZaZdravilo, errors) {
52
356
  const collection = "racuni";
53
- console.log(`starting PMZ update ${tenant} for ${year} - ${collection}`);
54
- let racuni = 0;
357
+ console.log(`starting PMZ update ${tenant} ${year} - ${collection}`);
358
+ let updates = [];
55
359
  try {
56
- racuni = (_a = (await mongo.find(collection, { _id: 1 }))) === null || _a === void 0 ? void 0 : _a.length;
360
+ const obiski = (await mongo.find(collection, {
361
+ datum: wholeYearQ(year),
362
+ "postavke.artikel_id": { $in: Object.values(artikli).map(a => a._id) }
363
+ }, { project: { _id: true, postavke: true, stevilkeZivali: true, gmid: true } }));
364
+ for (let obisk of obiski) {
365
+ let updated = false;
366
+ for (let postavka of obisk.postavke || []) {
367
+ const gmid = await gmidZapisa(obisk, mongo);
368
+ updated || (updated = await mogocePopraviPostavko(artikli, postavka, gmid || undefined, [], zivali, znaneVrsteZivali, mongo, tenant, year, vrsteZivaliZaZdravilo, errors));
369
+ }
370
+ if (updates) {
371
+ updates.push({
372
+ _id: obisk._id,
373
+ pmzAutoUpdated: new Date(),
374
+ postavke: obisk.postavke.filter(a => !!a)
375
+ });
376
+ }
377
+ }
378
+ console.log(`finished PMZ update ${tenant} ${year} - ${collection}: ${updates.length}/${obiski.length}`);
57
379
  }
58
380
  catch (err) {
59
381
  console.error(`pmzUpdateRacuni ${tenant} ${year}: ${err.message || err}`);
60
382
  }
61
383
  ;
62
- console.log(`finished PMZ update ${tenant} for ${year} - ${collection}: ${racuni}`);
63
- return { racuni, collection };
384
+ return { racuni: updates };
64
385
  }
65
386
  ;
66
- export async function pmzUpdateDobavnice(mongo, tenant, year) {
67
- var _a;
387
+ export async function pmzUpdateDobavnice(mongo, tenant, year, artikli, zivali, znaneVrsteZivali, vrsteZivaliZaZdravilo, errors) {
68
388
  const collection = "dobavnice";
69
- console.log(`starting PMZ update ${tenant} for ${year} - ${collection}`);
70
- let dobavnice = 0;
389
+ console.log(`starting PMZ update ${tenant} ${year} - ${collection}`);
390
+ let updates = [];
71
391
  try {
72
- dobavnice = (_a = (await mongo.find(collection, { _id: 1 }))) === null || _a === void 0 ? void 0 : _a.length;
392
+ const dobavnice = (await mongo.find(collection, {
393
+ datum: wholeYearQ(year),
394
+ "postavke.artikel_id": { $in: Object.values(artikli).map(a => a._id) }
395
+ }, { project: { _id: true, postavke: true, stevilkeZivali: true, gmid: true } }));
396
+ for (let dobavnica of dobavnice) {
397
+ let updated = false;
398
+ for (let postavka of dobavnica.postavke || []) {
399
+ const gmid = await gmidZapisa(dobavnica, mongo);
400
+ updated || (updated = await mogocePopraviPostavko(artikli, postavka, gmid || undefined, [], zivali, znaneVrsteZivali, mongo, tenant, year, vrsteZivaliZaZdravilo, errors));
401
+ }
402
+ if (updates) {
403
+ updates.push({
404
+ _id: dobavnica._id,
405
+ pmzAutoUpdated: new Date(),
406
+ postavke: dobavnica.postavke.filter(a => !!a)
407
+ });
408
+ }
409
+ }
410
+ console.log(`finished PMZ update ${tenant} ${year} - ${collection}: ${updates.length}/${dobavnice.length}`);
73
411
  }
74
412
  catch (err) {
75
413
  console.error(`pmzUpdateDobavnice ${tenant} ${year}: ${err.message || err}`);
76
414
  }
77
415
  ;
78
- console.log(`finished PMZ update ${tenant} for ${year} - ${collection}: ${dobavnice}`);
79
- return { dobavnice, collection };
416
+ return { dobavnice: updates };
80
417
  }
81
418
  ;
82
- export async function pmzUpdateObravnave(mongo, tenant, year) {
419
+ // TODO - implementiraj za obravnave
420
+ // export async function pmzUpdateObravnave(mongo: Mongo, tenant: string, year: number, artikli: ArtikliPmzMap, zivali: RejnaZival[], znaneVrsteZivali: Record<string,string>, vrsteZivaliZaZdravilo: VrsteZivaliZaZdravilo[], errors: string[])
421
+ // {
422
+ // const collection="obravnave";
423
+ // console.log(`starting PMZ update ${tenant} ${year} - ${collection}`);
424
+ // let updates: Partial<Obravnava>[] = [];
425
+ // try {
426
+ // const obravnave = (await mongo.find<Obravnava>(collection,
427
+ // {
428
+ // datum: wholeYearQ(year),
429
+ // "koraki.postavke.artikel_id": { $in: Object.values(artikli).map(a => a._id) }
430
+ // } as any,
431
+ // { project: { _id: true, postavke: true, stevilkeZivali: true, gmid: true } })
432
+ // );
433
+ // for (let obravnava of obravnave) {
434
+ // let updated = false;
435
+ // for (let korak of obravnava.koraki || []) {
436
+ // for (let postavka of korak.postavke || []) {
437
+ // updated ||= await mogocePopraviPostavkoKoraka(artikli,postavka,mongo,tenant,year,vrsteZivaliZaZdravilo,errors);
438
+ // }
439
+ // korak.postavke = (korak.postavke || []).filter(a => !!a);
440
+ // }
441
+ // if (updates) {
442
+ // updates.push({
443
+ // _id: obravnava._id,
444
+ // pmzAutoUpdated: new Date(),
445
+ // koraki: obravnava.koraki!.filter(a => !!a)
446
+ // })
447
+ // }
448
+ // }
449
+ // console.log(`finished PMZ update ${tenant} ${year} - ${collection}: ${updates.length}/${obravnave.length}`);
450
+ // } catch(err: any) {
451
+ // console.error(`pmzUpdateObravnave ${tenant} ${year}: ${err.message||err}`);
452
+ // };
453
+ // return { obravnave: updates }
454
+ // };
455
+ //#region
456
+ export async function pmzUpdateAllForYear({ mongo, tenant, year, writeToDb }) {
83
457
  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
458
  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,
459
+ let pmzArtikliMap = await pridobiPMZArtikle(mongo);
460
+ let zdraviloZaVrste = await vrsteZivaliZaZdravilo(mongo);
461
+ // console.log(await pmzPogostnostVrstZivali(mongo, tenant, year, pmzArtikliMap));
462
+ // if (1===1) process.exit(0)
463
+ let zivali = await mongo.find("zivali", {});
464
+ let znaneVrsteZivali = await pridobiVrsteZivaliIzTerapij(mongo);
465
+ let errors = [];
466
+ let terapije = await pmzUpdateTerapije(mongo, tenant, year, pmzArtikliMap, zivali, znaneVrsteZivali, zdraviloZaVrste, errors);
467
+ let osemenitevGoveda = await pmzUpdateOsemenitevGoveda(mongo, tenant, year, pmzArtikliMap, zivali, znaneVrsteZivali, zdraviloZaVrste, errors);
468
+ let obiski = await pmzUpdateObiski(mongo, tenant, year, pmzArtikliMap, zivali, znaneVrsteZivali, zdraviloZaVrste, errors);
469
+ let racuni = await pmzUpdateRacuni(mongo, tenant, year, pmzArtikliMap, zivali, znaneVrsteZivali, zdraviloZaVrste, errors);
470
+ let dobavnice = await pmzUpdateDobavnice(mongo, tenant, year, pmzArtikliMap, zivali, znaneVrsteZivali, zdraviloZaVrste, errors);
471
+ // let obravnave = await pmzUpdateObravnave(mongo, tenant, year, pmzArtikliMap, zivali, znaneVrsteZivali, zdraviloZaVrste, errors);
472
+ let updates = {
473
+ ...terapije,
474
+ ...osemenitevGoveda,
475
+ ...obiski,
476
+ ...racuni,
477
+ ...dobavnice,
478
+ // ...obravnave,
113
479
  };
480
+ for (let collection in updates) {
481
+ console.log(collection, (_a = updates[collection]) === null || _a === void 0 ? void 0 : _a.length);
482
+ }
483
+ if (writeToDb) {
484
+ for await (let collection of Object.keys(updates)) {
485
+ let spec = updates[collection];
486
+ let batch = spec.map(s => {
487
+ let query = { _id: s._id };
488
+ let update = { ...s };
489
+ delete update._id;
490
+ return { query, update };
491
+ });
492
+ await mongo.upsertBatch(collection, batch);
493
+ }
494
+ }
495
+ errors = dedup(errors).sort();
496
+ console.log(`pmzUpdateAllForYear ${tenant} ${year} errors`, errors);
497
+ return { updates, errors };
114
498
  }
499
+ // (async function () {
500
+ // await pmzUpdateAllForYear({ tenant: "mozirje", year: 2025, writeToDb: true });
501
+ // // console.dir(res, { depth:4});
502
+ // process.exit(0)
503
+ // })();
115
504
  //# 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":"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"}
@@ -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