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.
- package/package.json +3 -3
- 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.
|
|
3
|
+
"version": "2.3.19",
|
|
4
4
|
"description": "",
|
|
5
5
|
"main": "index.js",
|
|
6
6
|
"dependencies": {
|
|
7
|
-
"cry-db": "^2.2.
|
|
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.
|
|
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
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
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
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
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",
|
|
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
|
-
|
|
328
|
-
|
|
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
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
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
|
-
|
|
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 =
|
|
389
|
+
let err = null;
|
|
390
|
+
let napake = new Set()
|
|
391
|
+
try {
|
|
347
392
|
|
|
348
|
-
|
|
349
|
-
mongo.setAudit({ tenant: data.tenant, app: "klikvet/registerAllInvoices" })
|
|
393
|
+
err = "Podsistem db ni dosegljiv."
|
|
350
394
|
|
|
351
|
-
|
|
352
|
-
|
|
395
|
+
mongo.setDb(data.tenant)
|
|
396
|
+
mongo.setAudit({ tenant: data.tenant, app: "klikvet/registerAllInvoices" })
|
|
353
397
|
|
|
354
|
-
|
|
355
|
-
|
|
398
|
+
let myquery = { eor: null, negotovinski: { $ne: true }, leto: { $gte: 2022 } };
|
|
399
|
+
let env = data.env || (await mongo.findOne("nastavitve", {})).okolje
|
|
356
400
|
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
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
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
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
|
|