js-klikvet-logic-worker 2.3.18 → 2.3.19

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 (2) hide show
  1. package/package.json +3 -3
  2. package/worker.mjs +118 -64
package/package.json CHANGED
@@ -1,13 +1,13 @@
1
1
  {
2
2
  "name": "js-klikvet-logic-worker",
3
- "version": "2.3.18",
3
+ "version": "2.3.19",
4
4
  "description": "",
5
5
  "main": "index.js",
6
6
  "dependencies": {
7
- "cry-db": "^2.2.4",
7
+ "cry-db": "^2.2.5",
8
8
  "cry-ebus2": "^3.1.23",
9
9
  "cry-helpers": "^2.1.103",
10
- "cry-klikvet-logic": "^0.10.306",
10
+ "cry-klikvet-logic": "^0.10.341",
11
11
  "cry-local-query": "^1.0.12",
12
12
  "dotenv": "^16.3.1",
13
13
  "lodash.clonedeep": ">=4.5.0",
package/worker.mjs CHANGED
@@ -15,9 +15,9 @@ import { Mongo } from 'cry-db'
15
15
  import { arrayToObject, dedup, Log, serialize } from 'cry-helpers'
16
16
 
17
17
  let client = null
18
-
19
18
  let log = new Log(['KLIKVET'])
20
19
  let mongo = undefined
20
+ let razknjizujem = false
21
21
 
22
22
  /** @typedef {import('cry-klikvet-logic').Blagovnica} Blagovnica */
23
23
  /** @typedef {import('cry-klikvet-logic').Nastavitve} Nastavitve */
@@ -140,32 +140,51 @@ async function posljiSmsNCepljenjemu(data, n, gsm) {
140
140
 
141
141
  async function razknjiziRacun(data)
142
142
  {
143
- let racun = await dbFindById(data.tenant, "racuni", data._id);
144
- let nastavitve = await dbNastavitve(data.tenant);
145
- mongo.setDb(data.tenant)
146
- mongo.setAudit({ tenant: data.tenat, app: "klikvet/razknjiziRacun" })
147
- await logic.spremeniZalogoNaPodlagiRacuna(racun, nastavitve, mongo)
148
- await pobrisiZalogoNaDan(data.tenant, [racun.datum])
149
- return { ok: true }
143
+ if (razknjizujem) return { ok:false, error: "worker že razknjižuje"};
144
+ razknjizujem = true;
145
+ try {
146
+ let racun = await dbFindById(data.tenant, "racuni", data._id);
147
+ let nastavitve = await dbNastavitve(data.tenant);
148
+ mongo.setDb(data.tenant)
149
+ mongo.setAudit({ tenant: data.tenat, app: "klikvet/razknjiziRacun" })
150
+ await logic.spremeniZalogoNaPodlagiRacuna(racun, nastavitve, mongo)
151
+ await pobrisiZalogoNaDan(data.tenant, [racun.datum])
152
+ razknjizujem = false;
153
+ return { ok: true }
154
+ } catch (err) {
155
+ console.error("razknjiziRacun", data.tenant, err?.message || err)
156
+ razknjizujem = false;
157
+ return { ok: false, error: err?.message||err }
158
+ }
150
159
  }
151
160
 
152
161
  async function razknjiziRacune(data)
153
162
  {
154
- mongo.setDb(data.tenant)
155
- mongo.setAudit({ tenant: data.tenant, app: "klikvet/razknjiziRacune" })
156
-
157
- let dni = 14 * 24 * 60 * 60 * 1000; // 14 dni
158
- let od = new Date(new Date().valueOf() - dni);
159
- let racuni = await mongo.find("racuni", { datum: { $gte: od },razknjizen: false } , {});
160
- let nastavitve = await dbNastavitve(data.tenant);
161
- let datumi = []
162
- for await (let racun of racuni) {
163
- datumi.push(racun.datum)
164
- await logic.spremeniZalogoNaPodlagiRacuna(racun, nastavitve, mongo)
165
- console.log('z zamikom razknjižen račun št. ',racun.stevilka);
163
+ if (razknjizujem) return { ok: false, error: "worker že razknjižuje" };
164
+ razknjizujem = true;
165
+ try {
166
+ mongo.setDb(data.tenant)
167
+ mongo.setAudit({ tenant: data.tenant, app: "klikvet/razknjiziRacune" })
168
+
169
+ let dni = 14 * 24 * 60 * 60 * 1000; // 14 dni
170
+ let od = new Date(new Date().valueOf() - dni);
171
+ let racuni = await mongo.find("racuni", { datum: { $gte: od },razknjizen: false } , {});
172
+ let nastavitve = await dbNastavitve(data.tenant);
173
+ let datumi = []
174
+ for await (let racun of racuni) {
175
+ datumi.push(racun.datum)
176
+ await logic.spremeniZalogoNaPodlagiRacuna(racun, nastavitve, mongo)
177
+ console.log('z zamikom razknjižen račun št. ',racun.stevilka);
178
+ }
179
+ await pobrisiZalogoNaDan( data.tenant, datumi )
180
+ razknjizujem = false;
181
+ return { ok: true, racuni }
182
+
183
+ } catch (err) {
184
+ console.error("razknjiziRacune", data.tenant, err?.message || err)
185
+ razknjizujem = false;
186
+ return { ok: false, error: err?.message||err }
166
187
  }
167
- await pobrisiZalogoNaDan( data.tenant, datumi )
168
- return { ok: true, racuni }
169
188
  }
170
189
 
171
190
  async function pobrisiZalogoNaDan(db, datumi) {
@@ -247,18 +266,21 @@ async function porabeZaDobavnice(data) {
247
266
 
248
267
  async function razknjiziBlagovnice(data)
249
268
  {
269
+ mongo.setDb(data.tenant)
270
+ mongo.setAudit({ tenant: data.tenant, app: "klikvet/razknjiziBlagovnice" })
271
+
250
272
  let od = new Date(new Date().valueOf() - 60 * 24 * 60 * 60 * 1000);
251
-
273
+
252
274
  // poišči tiste, ki bi morale že biti razknjižene, pa niso
253
275
  {
254
276
  let od = new Date(new Date().valueOf() - 3 * 60 * 24 * 60 * 60 * 1000);
255
- let vpisane = await dbFind(data.tenant, "blagovnice", { datum: { $gte: od} }, { project: { _id: 1, status: 1 } });
277
+ let vpisane = await dbFind(data.tenant, "blagovnice", { datum: { $gte: od } }, { project: { _id: 1, status: 1 } });
256
278
  let idjiVpisanih = vpisane.map(b => b._id.toString());
257
-
258
- let zaPovrnit = await dbFind(data.tenant, "odprteBlagovnice", { _deleted: { $ne:"hack"}, status: "zaključena", datum: { $gte: od }, _id: { $nin: idjiVpisanih } }, { project: { status: 1, dokumentDobavitelja: 1, vrsta: 1 }});
259
-
279
+
280
+ let zaPovrnit = await dbFind(data.tenant, "odprteBlagovnice", { _deleted: { $ne: "hack" }, status: "zaključena", datum: { $gte: od }, _id: { $nin: idjiVpisanih } }, { project: { status: 1, dokumentDobavitelja: 1, vrsta: 1 } });
281
+
260
282
  for await (let b of zaPovrnit) {
261
- console.log("vračam blagovnico v razkljižno",data.tenant,b)
283
+ console.log("vračam blagovnico v razkljižno", data.tenant, b)
262
284
  await dbUpsert(data.tenant, "odprteBlagovnice", b._id, { razknjizena: undefined, _deleted: undefined, _vrnjenoVRazknjizbo: new Date() });
263
285
  }
264
286
  }
@@ -282,6 +304,10 @@ async function razknjiziBlagovnice(data)
282
304
  }
283
305
 
284
306
  async function razknjiziDobavnice(data) {
307
+
308
+ mongo.setDb(data.tenant)
309
+ mongo.setAudit({ tenant:data.tenant, app: "klikvet/razknjiziBlagovnico" })
310
+
285
311
  let od = new Date(new Date().valueOf() - 60 * 24 * 60 * 60 * 1000)
286
312
  let nerazknijzene = await dbFind(data.tenant, "dobavnice",
287
313
  { datum: { $gte: od }, status: "izdana", razknjizena: { $exists: false } },
@@ -299,6 +325,7 @@ async function razknjiziDobavnice(data) {
299
325
  }
300
326
  }
301
327
  return { ok: vse === razknjizene, vse, razknjizene, napake }
328
+
302
329
  }
303
330
 
304
331
  // async function razknjiziBlagovnico(_id, tenant)
@@ -321,57 +348,84 @@ async function razknjiziDobavnice(data) {
321
348
  // }
322
349
 
323
350
  async function razknjiziBlagovnico(_id, tenant) {
324
- mongo.setDb(tenant)
325
- mongo.setAudit({ tenant, app: "klikvet/razknjiziBlagovnico" })
326
351
 
327
- let blagovnica = await logic.razknjiziBlagovnico(_id, mongo);
328
- return blagovnica
352
+ if (razknjizujem) return;
353
+ razknjizujem = true;
354
+ try {
355
+ mongo.setDb(tenant)
356
+ mongo.setAudit({ tenant, app: "klikvet/razknjiziBlagovnico" })
357
+
358
+ let blagovnica = await logic.razknjiziBlagovnico(_id, mongo);
359
+ razknjizujem = false;
360
+ return blagovnica
361
+ } catch (err) {
362
+ console.error("razknjiziBlagovnico",tenant)
363
+ }
364
+ razknjizujem = false;
329
365
  }
330
366
 
331
367
  async function razknjiziDobavnico(_id, tenant) {
332
- mongo.setDb(tenant)
333
- mongo.setAudit({ tenant, app: "klikvet/razknjiziDobavnico" })
334
- let dobavnica = await logic.razknjiziDobavnico(_id, mongo);
335
- return dobavnica
368
+ if (razknjizujem) return;
369
+ razknjizujem = true;
370
+ try {
371
+ mongo.setDb(tenant)
372
+ mongo.setAudit({ tenant, app: "klikvet/razknjiziDobavnico" })
373
+ let dobavnica = await logic.razknjiziDobavnico(_id, mongo);
374
+ razknjizujem = false;
375
+ return dobavnica
376
+ } catch (err) {
377
+ console.error("razknjiziDobavnico", tenant, err?.message || err)
378
+ }
379
+ razknjizujem = false;
336
380
  }
337
381
 
338
382
  async function registerAllInvoices(data)
339
383
  {
340
- assert(data.tenant, "must specify tenant")
341
-
342
- let err = null;
343
- let napake = new Set()
384
+ if (razknjizujem) return { nall: 0, nok: 0, napake: ["worker že razknjižuje"] };
385
+ razknjizujem = true;
344
386
  try {
387
+ assert(data.tenant, "must specify tenant")
345
388
 
346
- err = "Podsistem db ni dosegljiv."
389
+ let err = null;
390
+ let napake = new Set()
391
+ try {
347
392
 
348
- mongo.setDb(data.tenant)
349
- mongo.setAudit({ tenant: data.tenant, app: "klikvet/registerAllInvoices" })
393
+ err = "Podsistem db ni dosegljiv."
350
394
 
351
- let myquery = { eor: null, negotovinski: { $ne: true}, leto: { $gte: 2022 } };
352
- let env = data.env || (await mongo.findOne("nastavitve", {})).okolje
395
+ mongo.setDb(data.tenant)
396
+ mongo.setAudit({ tenant: data.tenant, app: "klikvet/registerAllInvoices" })
353
397
 
354
- let all = await mongo.find("racuni", myquery, { project: { _id: 1 }, limit: 1000, })
355
- err = "Napaka pri potrjevanju računov."
398
+ let myquery = { eor: null, negotovinski: { $ne: true }, leto: { $gte: 2022 } };
399
+ let env = data.env || (await mongo.findOne("nastavitve", {})).okolje
356
400
 
357
- let n = 0;
358
- try {
359
- for await (let r of all) {
360
- let res = await registerInvoice({ tenant: data.tenant, env, _id: r._id.toString() }, true);
361
- if (res.eor) n++;
362
- if (res.fursError) napake.add(res.fursError)
401
+ let all = await mongo.find("racuni", myquery, { project: { _id: 1 }, limit: 1000, })
402
+ err = "Napaka pri potrjevanju računov."
403
+
404
+ let n = 0;
405
+ try {
406
+ for await (let r of all) {
407
+ let res = await registerInvoice({ tenant: data.tenant, env, _id: r._id.toString() }, true);
408
+ if (res.eor) n++;
409
+ if (res.fursError) napake.add(res.fursError)
410
+ }
411
+ } catch (e) {
412
+ err = e.message;
413
+ console.log('err', err);
414
+ throw new Error()
363
415
  }
364
- } catch (e) {
365
- err = e.message;
366
- console.log('err',err);
367
- throw new Error()
368
- }
369
416
 
370
- return { nall: all.length, nok: n, napake: [...napake] };
371
-
372
- } catch {
373
- console.error('registerAllInvoices', err);
374
- throw new Error(err);
417
+ razknjizujem = false;
418
+ return { nall: all.length, nok: n, napake: [...napake] };
419
+
420
+ } catch (err) {
421
+ console.error('registerAllInvoices', err);
422
+ razknjizujem = false;
423
+ throw new Error(err);
424
+ }
425
+ } catch (err) {
426
+ console.error("registerAllInvoices", data.tenant, err?.message||err)
427
+ razknjizujem = false;
428
+ return { nall: 0, nok: 0, napake: [ err.message||err] };
375
429
  }
376
430
  }
377
431
 
@@ -1194,7 +1248,7 @@ export class KlikvetLogicWorker extends Worker {
1194
1248
  assert(data.razknjizba, "must specify razknjizba")
1195
1249
  assert(data.skladisce_id, "must specify skladisce_id")
1196
1250
  assert(data.izvedel, "must specify izvedel")
1197
- assert(data.izlociTisteBrezZaloge, "must specify izlociTisteBrezZaloge")
1251
+ assert(data.izlociTisteBrezZaloge!==undefined, "must specify izlociTisteBrezZaloge")
1198
1252
  return await logic.zakljucekPolneInventureSestaviInZapisi(data);
1199
1253
  };
1200
1254