cry-klikvet-logic 1.0.223 → 1.0.224
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/dist/anonimizirajPodatke.mjs +423 -655
- package/dist/anonimizirajPodatke.mjs.map +1 -1
- package/dist/besediloKarence.mjs +13 -16
- package/dist/besediloKarence.mjs.map +1 -1
- package/dist/blagovnicaZaSpremembeZaloge.mjs +61 -64
- package/dist/blagovnicaZaSpremembeZaloge.mjs.map +1 -1
- package/dist/certs.mjs +13 -26
- package/dist/certs.mjs.map +1 -1
- package/dist/dopisiSerijskeNaNapravi.mjs +33 -65
- package/dist/dopisiSerijskeNaNapravi.mjs.map +1 -1
- package/dist/ensureIndexes.mjs +143 -159
- package/dist/ensureIndexes.mjs.map +1 -1
- package/dist/fmtDateRange.mjs +4 -5
- package/dist/fmtDateRange.mjs.map +1 -1
- package/dist/idjiArtiklovKiImajoLahkoZalogo.mjs +12 -23
- package/dist/idjiArtiklovKiImajoLahkoZalogo.mjs.map +1 -1
- package/dist/karticaArtikla.mjs +126 -141
- package/dist/karticaArtikla.mjs.map +1 -1
- package/dist/koledar.mjs +24 -35
- package/dist/koledar.mjs.map +1 -1
- package/dist/maint/nastaviNbcArtiklomIzMpc.mjs +27 -58
- package/dist/maint/nastaviNbcArtiklomIzMpc.mjs.map +1 -1
- package/dist/maint/poisciNapakeVSpremembiZaloge.mjs +49 -60
- package/dist/maint/poisciNapakeVSpremembiZaloge.mjs.map +1 -1
- package/dist/maint/poknjiziVsoZgodovino.mjs +236 -337
- package/dist/maint/poknjiziVsoZgodovino.mjs.map +1 -1
- package/dist/maint/popraviNabaveCeneNaRacunih.mjs +16 -48
- package/dist/maint/popraviNabaveCeneNaRacunih.mjs.map +1 -1
- package/dist/maint/popraviNabavneCeneNaInventurah.mjs +14 -46
- package/dist/maint/popraviNabavneCeneNaInventurah.mjs.map +1 -1
- package/dist/nazivStranke.mjs +1 -2
- package/dist/nazivStranke.mjs.map +1 -1
- package/dist/neuporabljeno.mjs +25 -59
- package/dist/neuporabljeno.mjs.map +1 -1
- package/dist/parseSerijaStr.mjs +12 -9
- package/dist/parseSerijaStr.mjs.map +1 -1
- package/dist/pobrisiZgodovinoNaDan.mjs +17 -28
- package/dist/pobrisiZgodovinoNaDan.mjs.map +1 -1
- package/dist/podatkiRejca.mjs +113 -124
- package/dist/podatkiRejca.mjs.map +1 -1
- package/dist/poisciSerijskeZaNapravo.mjs +19 -51
- package/dist/poisciSerijskeZaNapravo.mjs.map +1 -1
- package/dist/polnaInventura.mjs +110 -131
- package/dist/polnaInventura.mjs.map +1 -1
- package/dist/porabaZaDobavnico.mjs +16 -1
- package/dist/porabaZaDobavnico.mjs.map +1 -1
- package/dist/porabaZaObravnavo.mjs +22 -10
- package/dist/porabaZaObravnavo.mjs.map +1 -1
- package/dist/preveriKnjizenjeZalogeArtikla.mjs +97 -111
- package/dist/preveriKnjizenjeZalogeArtikla.mjs.map +1 -1
- package/dist/q-blagovnice.mjs +12 -24
- package/dist/q-blagovnice.mjs.map +1 -1
- package/dist/q-isciPoObravnavah.mjs +25 -36
- package/dist/q-isciPoObravnavah.mjs.map +1 -1
- package/dist/q-isciPoRacunih.mjs +26 -37
- package/dist/q-isciPoRacunih.mjs.map +1 -1
- package/dist/q-mojPromet.mjs +24 -35
- package/dist/q-mojPromet.mjs.map +1 -1
- package/dist/q-porabaZdravil.mjs +110 -113
- package/dist/q-porabaZdravil.mjs.map +1 -1
- package/dist/q-prodano.mjs +36 -47
- package/dist/q-prodano.mjs.map +1 -1
- package/dist/q-prodanoPorabljeno.mjs +47 -48
- package/dist/q-prodanoPorabljeno.mjs.map +1 -1
- package/dist/q-promet.mjs +24 -35
- package/dist/q-promet.mjs.map +1 -1
- package/dist/q-racunovodji.mjs +229 -239
- package/dist/q-racunovodji.mjs.map +1 -1
- package/dist/q-skupineIzdelkov.mjs +20 -31
- package/dist/q-skupineIzdelkov.mjs.map +1 -1
- package/dist/q-skupineStrank.mjs +20 -31
- package/dist/q-skupineStrank.mjs.map +1 -1
- package/dist/q-strankeKlasificiraj.mjs +58 -69
- package/dist/q-strankeKlasificiraj.mjs.map +1 -1
- package/dist/q-strankeZadnjiObiski.mjs +22 -33
- package/dist/q-strankeZadnjiObiski.mjs.map +1 -1
- package/dist/q-zakljucek-blagajne.mjs +135 -150
- package/dist/q-zakljucek-blagajne.mjs.map +1 -1
- package/dist/razknjiziBlagovnico.mjs +46 -57
- package/dist/razknjiziBlagovnico.mjs.map +1 -1
- package/dist/razknjiziDobavnico.mjs +47 -58
- package/dist/razknjiziDobavnico.mjs.map +1 -1
- package/dist/serije.mjs +76 -97
- package/dist/serije.mjs.map +1 -1
- package/dist/skladisceLokacije.mjs +10 -21
- package/dist/skladisceLokacije.mjs.map +1 -1
- package/dist/smsCepljen.mjs +19 -28
- package/dist/smsCepljen.mjs.map +1 -1
- package/dist/smsCepljenjaNaDan.mjs +60 -67
- package/dist/smsCepljenjaNaDan.mjs.map +1 -1
- package/dist/smsNarocen.mjs +18 -26
- package/dist/smsNarocen.mjs.map +1 -1
- package/dist/smsNaroceniNaDan.mjs +40 -48
- package/dist/smsNaroceniNaDan.mjs.map +1 -1
- package/dist/spremembaZalogeZaObdobje.mjs +78 -91
- package/dist/spremembaZalogeZaObdobje.mjs.map +1 -1
- package/dist/spremeniZalogo.mjs +125 -132
- package/dist/spremeniZalogo.mjs.map +1 -1
- package/dist/spremeniZalogoNaPodlagiRacuna.mjs +122 -140
- package/dist/spremeniZalogoNaPodlagiRacuna.mjs.map +1 -1
- package/dist/spremeniZalogoZaDobavo.mjs +218 -221
- package/dist/spremeniZalogoZaDobavo.mjs.map +1 -1
- package/dist/spremeniZalogoZaInventuro.mjs +131 -136
- package/dist/spremeniZalogoZaInventuro.mjs.map +1 -1
- package/dist/spremeniZalogoZaPrenos.mjs +83 -114
- package/dist/spremeniZalogoZaPrenos.mjs.map +1 -1
- package/dist/spremeniZalogoZaPrevzem.mjs +69 -103
- package/dist/spremeniZalogoZaPrevzem.mjs.map +1 -1
- package/dist/strankaInfo.mjs +11 -22
- package/dist/strankaInfo.mjs.map +1 -1
- package/dist/support/poisciSpremembeMpc.js +26 -32
- package/dist/support/poisciSpremembeMpc.js.map +1 -1
- package/dist/test/dvojne-dobave.mjs +150 -163
- package/dist/test/dvojne-dobave.mjs.map +1 -1
- package/dist/test/memdb.mjs +29 -46
- package/dist/test/memdb.mjs.map +1 -1
- package/dist/test/mesane-enote.mjs +49 -62
- package/dist/test/mesane-enote.mjs.map +1 -1
- package/dist/test/prestavitev.mjs +108 -123
- package/dist/test/prestavitev.mjs.map +1 -1
- package/dist/test/serijske.mjs +303 -328
- package/dist/test/serijske.mjs.map +1 -1
- package/dist/test/sprememba-cene.mjs +213 -234
- package/dist/test/sprememba-cene.mjs.map +1 -1
- package/dist/test/sprememba-cene2.mjs +137 -154
- package/dist/test/sprememba-cene2.mjs.map +1 -1
- package/dist/test/sprememba-cene3.mjs +138 -155
- package/dist/test/sprememba-cene3.mjs.map +1 -1
- package/dist/test/sprememba-cene4.mjs +100 -115
- package/dist/test/sprememba-cene4.mjs.map +1 -1
- package/dist/test/sprememba-cene5.mjs +100 -115
- package/dist/test/sprememba-cene5.mjs.map +1 -1
- package/dist/test/sprememba-cene6.mjs +141 -158
- package/dist/test/sprememba-cene6.mjs.map +1 -1
- package/dist/test/tuja-zaloga.mjs +108 -123
- package/dist/test/tuja-zaloga.mjs.map +1 -1
- package/dist/test/zaloge.mjs +150 -173
- package/dist/test/zaloge.mjs.map +1 -1
- package/dist/test/zaloge2.mjs +160 -177
- package/dist/test/zaloge2.mjs.map +1 -1
- package/dist/updatePotrditevBrejosti.mjs +1 -1
- package/dist/updatePotrditevBrejosti.mjs.map +1 -1
- package/dist/updatePresusitve.mjs +1 -1
- package/dist/updatePresusitve.mjs.map +1 -1
- package/dist/updateStatusOsemenitve.mjs +1 -1
- package/dist/updateStatusOsemenitve.mjs.map +1 -1
- package/dist/vseSkladiscaLokacij.mjs +9 -20
- package/dist/vseSkladiscaLokacij.mjs.map +1 -1
- package/dist/vsotaDobavZaObdobje.mjs +35 -47
- package/dist/vsotaDobavZaObdobje.mjs.map +1 -1
- package/dist/zakljuciBlagovnico.mjs +46 -57
- package/dist/zakljuciBlagovnico.mjs.map +1 -1
- package/dist/zalogaDbAccessorInMem.mjs +58 -86
- package/dist/zalogaDbAccessorInMem.mjs.map +1 -1
- package/dist/zalogaNaDan.mjs +27 -59
- package/dist/zalogaNaDan.mjs.map +1 -1
- package/dist/zalogaNaDanIzracunana.mjs +36 -48
- package/dist/zalogaNaDanIzracunana.mjs.map +1 -1
- package/dist/zalogaPoDnevih.mjs +34 -36
- package/dist/zalogaPoDnevih.mjs.map +1 -1
- package/dist/zapisiPorabeZaDobavnice.mjs +61 -92
- package/dist/zapisiPorabeZaDobavnice.mjs.map +1 -1
- package/dist/zapisiPorabeZaObravnave.mjs +58 -89
- package/dist/zapisiPorabeZaObravnave.mjs.map +1 -1
- package/dist/zapisiPoraboZaObravnavo.mjs +51 -62
- package/dist/zapisiPoraboZaObravnavo.mjs.map +1 -1
- package/dist/zapisiZalogoPoDnevih.mjs +67 -110
- package/dist/zapisiZalogoPoDnevih.mjs.map +1 -1
- package/dist/zapisiZalogoPoDnevih_old.mjs +86 -140
- package/dist/zapisiZalogoPoDnevih_old.mjs.map +1 -1
- package/dist/zaracunajDobavnice.mjs +155 -193
- package/dist/zaracunajDobavnice.mjs.map +1 -1
- package/dist/zavarovanje.mjs +2 -4
- package/dist/zavarovanje.mjs.map +1 -1
- package/dist/zbrisiZalogoArtiklovKiJeNeMorejoImeti.mjs +17 -30
- package/dist/zbrisiZalogoArtiklovKiJeNeMorejoImeti.mjs.map +1 -1
- package/dist/zdruziOdprteRacune.mjs +34 -61
- package/dist/zdruziOdprteRacune.mjs.map +1 -1
- package/dist/zdruziPaciente.mjs +57 -85
- package/dist/zdruziPaciente.mjs.map +1 -1
- package/dist/zdruziStranke.mjs +143 -193
- package/dist/zdruziStranke.mjs.map +1 -1
- package/package.json +1 -1
- package/tsconfig.tsbuildinfo +1 -1
@@ -1,19 +1,3 @@
|
|
1
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
2
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
3
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
4
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
5
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
6
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
7
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
8
|
-
});
|
9
|
-
};
|
10
|
-
var __asyncValues = (this && this.__asyncValues) || function (o) {
|
11
|
-
if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
|
12
|
-
var m = o[Symbol.asyncIterator], i;
|
13
|
-
return m ? m.call(o) : (o = typeof __values === "function" ? __values(o) : o[Symbol.iterator](), i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i);
|
14
|
-
function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }
|
15
|
-
function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }
|
16
|
-
};
|
17
1
|
import { Mongo } from "cry-db";
|
18
2
|
import cloneDeep from "lodash.clonedeep";
|
19
3
|
import { addToArray, arrayToObject, inBatches, js, percentFormat, round2 } from "cry-helpers";
|
@@ -46,348 +30,263 @@ updates.racuni : _id,razknjizen
|
|
46
30
|
updates.racuni example: {"_id":"5fc2e033364409171dd54b3d","razknjizen":"2020-11-29T00:09:30.417Z"}
|
47
31
|
|
48
32
|
*/
|
49
|
-
export function poknjiziVsoZgodovino(db, server, nastavitve, opts = {
|
33
|
+
export async function poknjiziVsoZgodovino(db, server, nastavitve, opts = {
|
50
34
|
neRazknjizujObDobavi: true,
|
51
35
|
neSpreminjajProdajnihCen: true,
|
52
36
|
popraviDatumeBlagovnicaNaDatumeDokumentov: true,
|
53
37
|
samoDokumenti: [],
|
54
38
|
}) {
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
let
|
78
|
-
|
79
|
-
|
80
|
-
for (let p of inv.postavke) {
|
81
|
-
if (p.enotaFaktor !== 1) {
|
82
|
-
console.log('!! enotaFaktor', inv.opis, p.naziv, p.enotaFaktor);
|
83
|
-
}
|
84
|
-
}
|
85
|
-
}
|
86
|
-
if (!!opts.artikel)
|
87
|
-
artikli_ids = [opts.artikel];
|
88
|
-
queryDokumentov["postavke.artikel_id"] = queryArtiklov;
|
89
|
-
queryDokumentov.datum = { $gte: odDatuma };
|
90
|
-
yield mongo.update("artikli", { _id: queryArtiklov }, { $unset: { zadnjaInventura: 1 } });
|
91
|
-
let artikli = arrayToObject(yield mongo.findAll("artikli", { _id: queryArtiklov }), "_id");
|
92
|
-
let queryRacunov = cloneDeep(queryDokumentov);
|
93
|
-
if (opts.stevilkeRacunov)
|
94
|
-
queryRacunov.stevilka = opts.stevilkeRacunov;
|
95
|
-
let racuni = yield mongo.find("racuni", queryRacunov);
|
96
|
-
let blagovnice = yield mongo.find("blagovnice", queryDokumentov);
|
97
|
-
console.log('racuni.length', racuni.length);
|
98
|
-
console.log('blagovnice.length', blagovnice.length);
|
99
|
-
if (opts.popraviDatumeBlagovnicaNaDatumeDokumentov) {
|
100
|
-
try {
|
101
|
-
for (var _s = true, blagovnice_1 = __asyncValues(blagovnice), blagovnice_1_1; blagovnice_1_1 = yield blagovnice_1.next(), _a = blagovnice_1_1.done, !_a; _s = true) {
|
102
|
-
_c = blagovnice_1_1.value;
|
103
|
-
_s = false;
|
104
|
-
let blagovnica = _c;
|
105
|
-
let b = blagovnica;
|
106
|
-
if (!b.datumDokumenta)
|
107
|
-
continue;
|
108
|
-
if (!dayjs(b.datumDokumenta).isSame(b.datum, "day")) {
|
109
|
-
let novi = new Date(dayjs(b.datumDokumenta).format("YYYY-MM-DD HH:mm").replace("00:00", " 21:05"));
|
110
|
-
b.datum = novi;
|
111
|
-
console.log("POPRAVEK DATUMA BLAGOVNICE", b.datum, ">", novi);
|
112
|
-
yield mongo.upsert("blagovnice", { _id: b._id }, {
|
113
|
-
datum: b.datum,
|
114
|
-
_popravekDatuma: new Date()
|
115
|
-
});
|
116
|
-
}
|
117
|
-
}
|
118
|
-
}
|
119
|
-
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
120
|
-
finally {
|
121
|
-
try {
|
122
|
-
if (!_s && !_a && (_b = blagovnice_1.return)) yield _b.call(blagovnice_1);
|
123
|
-
}
|
124
|
-
finally { if (e_1) throw e_1.error; }
|
39
|
+
if (opts.neRazknjizujObDobavi) {
|
40
|
+
nastavitve.neRazknjizujObDobavi = true;
|
41
|
+
}
|
42
|
+
if (opts.neSpreminjajProdajnihCen) {
|
43
|
+
nastavitve.pragZaSprememboCenObPocenitvi = undefined;
|
44
|
+
nastavitve.pragZaSprememboCenObPodrazitvi = undefined;
|
45
|
+
nastavitve.posodobiCeneObDobavi = "ročno";
|
46
|
+
}
|
47
|
+
const mongo = new Mongo(db, server);
|
48
|
+
let queryDokumentov = { _deleted: { $exists: false } };
|
49
|
+
// poišči prve inventure
|
50
|
+
let prveInventure = (await mongo.find("blagovnice", {
|
51
|
+
vrsta: "inventura",
|
52
|
+
datum: {
|
53
|
+
$gte: dayjs(opts.odInventureNaDan).startOf("day").toDate(),
|
54
|
+
$lte: dayjs(opts.odInventureNaDan).endOf("day").toDate(),
|
55
|
+
},
|
56
|
+
}, { project: { vrsta: 1, datum: 1, datumDokumenta: 1, postavke: 1 }, sort: { datum: 1 } }));
|
57
|
+
let artikli_ids = addToArray(...prveInventure.map(i => i.postavke.map(p => p.artikel_id.toString())));
|
58
|
+
let queryArtiklov = { $in: artikli_ids };
|
59
|
+
const odDatuma = (prveInventure[0]).datum;
|
60
|
+
for (let inv of prveInventure) {
|
61
|
+
for (let p of inv.postavke) {
|
62
|
+
if (p.enotaFaktor !== 1) {
|
63
|
+
console.log('!! enotaFaktor', inv.opis, p.naziv, p.enotaFaktor);
|
125
64
|
}
|
126
65
|
}
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
|
137
|
-
|
138
|
-
|
66
|
+
}
|
67
|
+
if (!!opts.artikel)
|
68
|
+
artikli_ids = [opts.artikel];
|
69
|
+
queryDokumentov["postavke.artikel_id"] = queryArtiklov;
|
70
|
+
queryDokumentov.datum = { $gte: odDatuma };
|
71
|
+
await mongo.update("artikli", { _id: queryArtiklov }, { $unset: { zadnjaInventura: 1 } });
|
72
|
+
let artikli = arrayToObject(await mongo.findAll("artikli", { _id: queryArtiklov }), "_id");
|
73
|
+
let queryRacunov = cloneDeep(queryDokumentov);
|
74
|
+
if (opts.stevilkeRacunov)
|
75
|
+
queryRacunov.stevilka = opts.stevilkeRacunov;
|
76
|
+
let racuni = await mongo.find("racuni", queryRacunov);
|
77
|
+
let blagovnice = await mongo.find("blagovnice", queryDokumentov);
|
78
|
+
console.log('racuni.length', racuni.length);
|
79
|
+
console.log('blagovnice.length', blagovnice.length);
|
80
|
+
if (opts.popraviDatumeBlagovnicaNaDatumeDokumentov) {
|
81
|
+
for await (let blagovnica of blagovnice) {
|
82
|
+
let b = blagovnica;
|
83
|
+
if (!b.datumDokumenta)
|
84
|
+
continue;
|
85
|
+
if (!dayjs(b.datumDokumenta).isSame(b.datum, "day")) {
|
86
|
+
let novi = new Date(dayjs(b.datumDokumenta).format("YYYY-MM-DD HH:mm").replace("00:00", " 21:05"));
|
87
|
+
b.datum = novi;
|
88
|
+
console.log("POPRAVEK DATUMA BLAGOVNICE", b.datum, ">", novi);
|
89
|
+
await mongo.upsert("blagovnice", { _id: b._id }, {
|
90
|
+
datum: b.datum,
|
91
|
+
_popravekDatuma: new Date()
|
139
92
|
});
|
140
93
|
}
|
141
|
-
});
|
142
|
-
// omeji na artikle, ki so v prvih inventurah
|
143
|
-
racuni.forEach(r => r.postavke = r.postavke.filter(p => { var _a; return artikli_ids.includes((_a = p.artikel_id) === null || _a === void 0 ? void 0 : _a.toString()); }));
|
144
|
-
blagovnice.forEach(r => r.postavke = (r.postavke.filter(p => { var _a; return artikli_ids.includes((_a = p.artikel_id) === null || _a === void 0 ? void 0 : _a.toString()); })));
|
145
|
-
racuni = racuni.filter(r => r.postavke.length > 0);
|
146
|
-
blagovnice = blagovnice.filter(r => r.postavke.length > 0);
|
147
|
-
console.log("dokumenti brez datuma", zdruzeno.filter(a => !a.datum));
|
148
|
-
zdruzeno.sort((a, b) => a.datum.valueOf() - b.datum.valueOf());
|
149
|
-
for (let a of zdruzeno) {
|
150
|
-
if (a.racun && a.racun.postavke.length === 0)
|
151
|
-
console.log('račun brez postavk', a.racun.datum, a.racun.zapSt);
|
152
|
-
if (a.blagovnica && a.blagovnica.postavke.length === 0)
|
153
|
-
console.log('račun brez postavk', a.blagovnica.datum, a.blagovnica.zapSt);
|
154
94
|
}
|
155
|
-
|
156
|
-
|
157
|
-
|
158
|
-
|
159
|
-
|
160
|
-
|
161
|
-
|
162
|
-
|
163
|
-
|
164
|
-
|
165
|
-
|
166
|
-
|
167
|
-
|
168
|
-
yield inMemDb.insert("lokacije", loc);
|
169
|
-
}
|
95
|
+
}
|
96
|
+
let lokacije = await mongo.find("lokacije", {});
|
97
|
+
await mongo.close();
|
98
|
+
let zdruzeno = [];
|
99
|
+
if (!opts.samoDokumenti?.length || opts.samoDokumenti.includes("račun"))
|
100
|
+
racuni.forEach(racun => zdruzeno.push({ datum: racun.datum, racun }));
|
101
|
+
blagovnice.forEach(blagovnica => {
|
102
|
+
if (!opts.samoDokumenti?.length || opts.samoDokumenti.includes(blagovnica.vrsta)) {
|
103
|
+
zdruzeno.push({
|
104
|
+
datum: blagovnica.datum,
|
105
|
+
blagovnica,
|
106
|
+
datumDokumenta: blagovnica.dokumentDobavitelja || blagovnica.datum
|
107
|
+
});
|
170
108
|
}
|
171
|
-
|
172
|
-
|
173
|
-
|
174
|
-
|
175
|
-
|
176
|
-
|
109
|
+
});
|
110
|
+
// omeji na artikle, ki so v prvih inventurah
|
111
|
+
racuni.forEach(r => r.postavke = r.postavke.filter(p => artikli_ids.includes(p.artikel_id?.toString())));
|
112
|
+
blagovnice.forEach(r => r.postavke = (r.postavke.filter(p => artikli_ids.includes(p.artikel_id?.toString()))));
|
113
|
+
racuni = racuni.filter(r => r.postavke.length > 0);
|
114
|
+
blagovnice = blagovnice.filter(r => r.postavke.length > 0);
|
115
|
+
console.log("dokumenti brez datuma", zdruzeno.filter(a => !a.datum));
|
116
|
+
zdruzeno.sort((a, b) => a.datum.valueOf() - b.datum.valueOf());
|
117
|
+
for (let a of zdruzeno) {
|
118
|
+
if (a.racun && a.racun.postavke.length === 0)
|
119
|
+
console.log('račun brez postavk', a.racun.datum, a.racun.zapSt);
|
120
|
+
if (a.blagovnica && a.blagovnica.postavke.length === 0)
|
121
|
+
console.log('račun brez postavk', a.blagovnica.datum, a.blagovnica.zapSt);
|
122
|
+
}
|
123
|
+
let dbObj = {
|
124
|
+
zaloga: {},
|
125
|
+
artikli: artikli,
|
126
|
+
spremembaZaloge: {},
|
127
|
+
updates: { artikli: {}, blagovnice: {}, racuni: {}, zaloga: {} },
|
128
|
+
inserts: { spremembaZaloge: {} },
|
129
|
+
};
|
130
|
+
let inMemDb = zalogaDbAccessorInMem(dbObj);
|
131
|
+
for await (let loc of lokacije) {
|
132
|
+
await inMemDb.insert("lokacije", loc);
|
133
|
+
}
|
134
|
+
let tekocaZaloga = 0;
|
135
|
+
let obdelano = 0;
|
136
|
+
for await (let dokument of zdruzeno) {
|
137
|
+
if ((obdelano++) % 100 === 0)
|
138
|
+
console.log(`dokument ${obdelano}/zdruzeno.length`);
|
139
|
+
if (dokument.blagovnica) {
|
140
|
+
await spremeniZalogoNaPodlagiBlagovnice(dokument.blagovnica, nastavitve, inMemDb, opts);
|
177
141
|
}
|
178
|
-
|
179
|
-
|
180
|
-
try {
|
181
|
-
for (var _u = true, zdruzeno_1 = __asyncValues(zdruzeno), zdruzeno_1_1; zdruzeno_1_1 = yield zdruzeno_1.next(), _g = zdruzeno_1_1.done, !_g; _u = true) {
|
182
|
-
_j = zdruzeno_1_1.value;
|
183
|
-
_u = false;
|
184
|
-
let dokument = _j;
|
185
|
-
if ((obdelano++) % 100 === 0)
|
186
|
-
console.log(`dokument ${obdelano}/zdruzeno.length`);
|
187
|
-
if (dokument.blagovnica) {
|
188
|
-
yield spremeniZalogoNaPodlagiBlagovnice(dokument.blagovnica, nastavitve, inMemDb, opts);
|
189
|
-
}
|
190
|
-
else if (dokument.racun) {
|
191
|
-
yield spremeniZalogoNaPodlagiRacuna(dokument.racun, nastavitve, inMemDb);
|
192
|
-
}
|
193
|
-
let novaTekocaZaloga = Object.values(dbObj.zaloga).reduce((p, c) => p + (c.vrednost || 0), 0);
|
194
|
-
let spremembaTekoceZaloge = novaTekocaZaloga - tekocaZaloga;
|
195
|
-
tekocaZaloga = novaTekocaZaloga;
|
196
|
-
if (true)
|
197
|
-
console.log(dayjs(dokument.datum).format("DD.MM.YYYY"), js(((_l = dokument.blagovnica) === null || _l === void 0 ? void 0 : _l.opis) || ((_m = dokument.blagovnica) === null || _m === void 0 ? void 0 : _m.vrsta) || ((_o = dokument.racun) === null || _o === void 0 ? void 0 : _o.stevilka), (_p = dokument.blagovnica) === null || _p === void 0 ? void 0 : _p.opomba), round2(spremembaTekoceZaloge), "->", round2(tekocaZaloga));
|
198
|
-
if (Math.abs(spremembaTekoceZaloge / tekocaZaloga) > 0.10) {
|
199
|
-
console.log('sprememba tekoče zaloge za ', percentFormat(spremembaTekoceZaloge / tekocaZaloga), round2(spremembaTekoceZaloge), ' / ', round2(tekocaZaloga), ((_q = dokument.racun) === null || _q === void 0 ? void 0 : _q.stevilka) || ((_r = dokument.blagovnica) === null || _r === void 0 ? void 0 : _r.vrsta), ' na dan ', dayjs(dokument.datum).format("DD.MM.YYYY"));
|
200
|
-
}
|
201
|
-
}
|
142
|
+
else if (dokument.racun) {
|
143
|
+
await spremeniZalogoNaPodlagiRacuna(dokument.racun, nastavitve, inMemDb);
|
202
144
|
}
|
203
|
-
|
204
|
-
|
205
|
-
|
206
|
-
|
207
|
-
|
208
|
-
|
145
|
+
let novaTekocaZaloga = Object.values(dbObj.zaloga).reduce((p, c) => p + (c.vrednost || 0), 0);
|
146
|
+
let spremembaTekoceZaloge = novaTekocaZaloga - tekocaZaloga;
|
147
|
+
tekocaZaloga = novaTekocaZaloga;
|
148
|
+
if (true)
|
149
|
+
console.log(dayjs(dokument.datum).format("DD.MM.YYYY"), js(dokument.blagovnica?.opis || dokument.blagovnica?.vrsta || dokument.racun?.stevilka, dokument.blagovnica?.opomba), round2(spremembaTekoceZaloge), "->", round2(tekocaZaloga));
|
150
|
+
if (Math.abs(spremembaTekoceZaloge / tekocaZaloga) > 0.10) {
|
151
|
+
console.log('sprememba tekoče zaloge za ', percentFormat(spremembaTekoceZaloge / tekocaZaloga), round2(spremembaTekoceZaloge), ' / ', round2(tekocaZaloga), dokument.racun?.stevilka || dokument.blagovnica?.vrsta, ' na dan ', dayjs(dokument.datum).format("DD.MM.YYYY"));
|
209
152
|
}
|
210
|
-
|
211
|
-
|
212
|
-
|
213
|
-
|
214
|
-
|
215
|
-
|
216
|
-
console.log('tekocaZaloga', tekocaZaloga);
|
217
|
-
return { dbObj, artikli_ids, odDatuma };
|
153
|
+
}
|
154
|
+
// prestavi datume spremebe zaloge
|
155
|
+
Object.values(dbObj.spremembaZaloge).forEach(s => {
|
156
|
+
if (s.datumDokumenta)
|
157
|
+
s.datum = s.datumDokumenta;
|
158
|
+
razpisiDatum(s.datum);
|
218
159
|
});
|
160
|
+
console.log('tekocaZaloga', tekocaZaloga);
|
161
|
+
return { dbObj, artikli_ids, odDatuma };
|
219
162
|
}
|
220
|
-
export function shraniZgodovinoVBazo(db, dbObj, server = "", odDatuma, zaArtikle = []) {
|
221
|
-
|
222
|
-
|
223
|
-
|
224
|
-
|
225
|
-
|
226
|
-
|
227
|
-
|
228
|
-
|
229
|
-
|
230
|
-
|
231
|
-
{
|
232
|
-
|
233
|
-
|
234
|
-
yield mongo.insertMany("spremembaZaloge", batch);
|
235
|
-
console.log('spremembaZaloge: zapisano ', sent++, " od ", nbatches);
|
236
|
-
}
|
237
|
-
}
|
238
|
-
{
|
239
|
-
let batch_size = 1000, sent = 0, nbatches = Object.values(dbObj.zaloga).length / batch_size;
|
240
|
-
for (let batch of inBatches(Object.values(dbObj.zaloga), batch_size)) {
|
241
|
-
yield mongo.insertMany("zaloga", batch);
|
242
|
-
console.log('zaloga: zapisano ', sent++, " od ", nbatches);
|
243
|
-
}
|
163
|
+
export async function shraniZgodovinoVBazo(db, dbObj, server = "", odDatuma, zaArtikle = []) {
|
164
|
+
let mongo = new Mongo(db, server);
|
165
|
+
console.time("zapisujem podatke v bazo");
|
166
|
+
const query = odDatuma ? { datum: { $gte: odDatuma } } : {};
|
167
|
+
await mongo.hardDelete("zaloga", { artikel_id: { $in: zaArtikle } });
|
168
|
+
await mongo.hardDelete("zalogaNaDan", query);
|
169
|
+
await mongo.hardDelete("zalogaNaDanKonsignacija", query);
|
170
|
+
await mongo.hardDelete("spremembeCen", { ...query, artikel_id: { $in: zaArtikle } });
|
171
|
+
await mongo.hardDelete("spremembaZaloge", { ...query, artikel_id: { $in: zaArtikle } });
|
172
|
+
{
|
173
|
+
let batch_size = 1000, sent = 0, nbatches = Object.values(dbObj.spremembaZaloge).length / batch_size;
|
174
|
+
for (let batch of inBatches(Object.values(dbObj.spremembaZaloge), batch_size)) {
|
175
|
+
await mongo.insertMany("spremembaZaloge", batch);
|
176
|
+
console.log('spremembaZaloge: zapisano ', sent++, " od ", nbatches);
|
244
177
|
}
|
245
|
-
|
246
|
-
|
247
|
-
|
248
|
-
|
249
|
-
|
250
|
-
|
251
|
-
let d = _c;
|
252
|
-
yield mongo.upsert("artikli", { _id: d._id }, d);
|
253
|
-
if (++i % 100 === 0)
|
254
|
-
console.log(i);
|
255
|
-
}
|
256
|
-
}
|
257
|
-
catch (e_4_1) { e_4 = { error: e_4_1 }; }
|
258
|
-
finally {
|
259
|
-
try {
|
260
|
-
if (!_k && !_a && (_b = _l.return)) yield _b.call(_l);
|
261
|
-
}
|
262
|
-
finally { if (e_4) throw e_4.error; }
|
263
|
-
}
|
264
|
-
console.log('zapisujem blagovnice', Object.values(dbObj.updates.blagovnice || {}).length);
|
265
|
-
i = 0;
|
266
|
-
try {
|
267
|
-
for (var _o = true, _p = __asyncValues(Object.values(dbObj.updates.blagovnice || {})), _q; _q = yield _p.next(), _d = _q.done, !_d; _o = true) {
|
268
|
-
_f = _q.value;
|
269
|
-
_o = false;
|
270
|
-
let d = _f;
|
271
|
-
yield mongo.upsert("blagovnice", { _id: d._id }, d);
|
272
|
-
if (++i % 100 === 0)
|
273
|
-
console.log(i);
|
274
|
-
}
|
178
|
+
}
|
179
|
+
{
|
180
|
+
let batch_size = 1000, sent = 0, nbatches = Object.values(dbObj.zaloga).length / batch_size;
|
181
|
+
for (let batch of inBatches(Object.values(dbObj.zaloga), batch_size)) {
|
182
|
+
await mongo.insertMany("zaloga", batch);
|
183
|
+
console.log('zaloga: zapisano ', sent++, " od ", nbatches);
|
275
184
|
}
|
276
|
-
|
277
|
-
|
278
|
-
|
279
|
-
|
280
|
-
|
281
|
-
|
282
|
-
|
283
|
-
|
284
|
-
|
285
|
-
|
286
|
-
|
287
|
-
|
288
|
-
|
289
|
-
|
290
|
-
|
291
|
-
|
292
|
-
|
293
|
-
|
294
|
-
}
|
295
|
-
|
296
|
-
|
297
|
-
|
298
|
-
|
299
|
-
}
|
300
|
-
finally { if (e_6) throw e_6.error; }
|
301
|
-
}
|
302
|
-
console.timeEnd("zapisujem podatke v bazo");
|
303
|
-
});
|
185
|
+
}
|
186
|
+
let i = 0;
|
187
|
+
console.log('zapisujem artikle', Object.values(dbObj.updates.artikli).length);
|
188
|
+
for await (let d of Object.values(dbObj.updates.artikli)) {
|
189
|
+
await mongo.upsert("artikli", { _id: d._id }, d);
|
190
|
+
if (++i % 100 === 0)
|
191
|
+
console.log(i);
|
192
|
+
}
|
193
|
+
console.log('zapisujem blagovnice', Object.values(dbObj.updates.blagovnice || {}).length);
|
194
|
+
i = 0;
|
195
|
+
for await (let d of Object.values(dbObj.updates.blagovnice || {})) {
|
196
|
+
await mongo.upsert("blagovnice", { _id: d._id }, d);
|
197
|
+
if (++i % 100 === 0)
|
198
|
+
console.log(i);
|
199
|
+
}
|
200
|
+
console.log('zapisujem račune', Object.values(dbObj.updates.racuni || {}).length);
|
201
|
+
i = 0;
|
202
|
+
for await (let d of Object.values(dbObj.updates.racuni || {})) {
|
203
|
+
await mongo.upsert("racuni", { _id: d._id }, d);
|
204
|
+
if (++i % 100 === 0)
|
205
|
+
console.log(i);
|
206
|
+
}
|
207
|
+
console.timeEnd("zapisujem podatke v bazo");
|
304
208
|
}
|
305
209
|
//@ts-ignore
|
306
|
-
function start(tenant, spec, server = "") {
|
307
|
-
|
308
|
-
|
309
|
-
|
310
|
-
|
311
|
-
|
312
|
-
|
313
|
-
|
314
|
-
|
315
|
-
|
316
|
-
|
317
|
-
|
318
|
-
|
319
|
-
|
320
|
-
|
321
|
-
|
322
|
-
|
323
|
-
|
324
|
-
|
325
|
-
|
326
|
-
|
327
|
-
|
328
|
-
|
329
|
-
|
330
|
-
|
331
|
-
|
332
|
-
|
333
|
-
|
334
|
-
|
335
|
-
|
336
|
-
|
337
|
-
|
338
|
-
|
339
|
-
|
340
|
-
|
341
|
-
|
342
|
-
|
343
|
-
|
344
|
-
|
345
|
-
|
346
|
-
|
347
|
-
|
348
|
-
|
349
|
-
|
350
|
-
|
351
|
-
|
352
|
-
|
353
|
-
|
354
|
-
|
355
|
-
|
356
|
-
|
357
|
-
|
358
|
-
|
359
|
-
|
360
|
-
console.log('vsotaSpremembAbs', vsotaSpremembAbs);
|
361
|
-
console.timeEnd("čas");
|
362
|
-
});
|
210
|
+
async function start(tenant, spec, server = "") {
|
211
|
+
const DB = tenant;
|
212
|
+
let mongo = new Mongo(DB, server);
|
213
|
+
let zalogaPoArtiklih = await mongo.find("zaloga", {});
|
214
|
+
let zalogaPoArtiklihObj = arrayToObject(zalogaPoArtiklih, "artikel_id");
|
215
|
+
let zacetnaVrednostZaloge = zalogaPoArtiklih.reduce((p, c) => p + (c.vrednost || 0), 0);
|
216
|
+
console.log('knjižim vso zgodovino za: ', DB, server);
|
217
|
+
console.time("čas");
|
218
|
+
// if (DB==="lax") await laxNastaviZacetneNbc(mongo);
|
219
|
+
let nastavitve = await mongo.findOne("nastavitve", {});
|
220
|
+
await mongo.update("racuni", {}, { $unset: { razknjizen: 1 } });
|
221
|
+
await mongo.update("blagovnice", {}, { $unset: { razknjizena: 1 } });
|
222
|
+
await mongo.update("artikli", {}, { $unset: { zadnjaInventura: 1 } });
|
223
|
+
if (!nastavitve) {
|
224
|
+
console.error("Ne najdem nastavitev");
|
225
|
+
process.exit(1);
|
226
|
+
}
|
227
|
+
let res = await poknjiziVsoZgodovino(DB, server, nastavitve, spec);
|
228
|
+
console.log('res.zaloga.length', Object.values(res.dbObj.zaloga || {}).length);
|
229
|
+
console.log('res.dbObj.artikli.length', Object.values(res.dbObj.artikli || {}).length);
|
230
|
+
console.log('res.dbObj.spremembaZaloge', Object.values(res.dbObj.spremembaZaloge || {}).length);
|
231
|
+
console.log('res.dbObj.updates.artikli.length', Object.values(res.dbObj.updates?.artikli || {}).length);
|
232
|
+
console.log('res.dbObj.updates.blagovnice.length', Object.values(res.dbObj.updates?.blagovnice || {}).length);
|
233
|
+
console.log('res.dbObj.updates.racuni.length', Object.values(res.dbObj.updates?.racuni || {}).length);
|
234
|
+
console.log('res.dbObj.updates.zaloga.length', Object.values(res.dbObj.updates?.zaloga || {}).length);
|
235
|
+
console.log('res.db.obje.inserts.spremembaZaloge.length', res.dbObj.inserts.spremembaZaloge.length);
|
236
|
+
console.timeLog("čas");
|
237
|
+
console.log('pišem v bazo');
|
238
|
+
await shraniZgodovinoVBazo(DB, res.dbObj, server, res.odDatuma, res.artikli_ids);
|
239
|
+
await zapisiZalogoPoDnevih({ tenant: DB, server, dniNazaj: Math.abs(dayjs().diff(res.odDatuma, "day")) + 1 });
|
240
|
+
let zalogaPoArtiklih2 = await mongo.find("zaloga", {});
|
241
|
+
let zalogaPoArtiklihObj2 = arrayToObject(zalogaPoArtiklih2, "artikel_id");
|
242
|
+
let koncnaVrednostZaloge = zalogaPoArtiklih2.reduce((p, c) => p + (c.vrednost || 0), 0);
|
243
|
+
let spremembaPoArtiklih = Object.keys(zalogaPoArtiklihObj).map(a => {
|
244
|
+
return {
|
245
|
+
artikel_id: a,
|
246
|
+
prej: zalogaPoArtiklihObj[a],
|
247
|
+
zdaj: zalogaPoArtiklihObj2[a],
|
248
|
+
dzaloga: round2(zalogaPoArtiklihObj[a].zaloga - zalogaPoArtiklihObj2[a].zaloga),
|
249
|
+
dnbc: round2(zalogaPoArtiklihObj[a].nbc - zalogaPoArtiklihObj2[a].nbc),
|
250
|
+
dvrednost: round2(zalogaPoArtiklihObj[a].vrednost - zalogaPoArtiklihObj2[a].vrednost) || 0,
|
251
|
+
};
|
252
|
+
}).sort((a, b) => Math.abs(a.dvrednost - b.dvrednost));
|
253
|
+
let vsotaSprememb = round2(spremembaPoArtiklih.reduce((p, c) => p + c.dvrednost, 0));
|
254
|
+
let vsotaSpremembAbs = round2(spremembaPoArtiklih.reduce((p, c) => p + Math.abs(c.dvrednost), 0));
|
255
|
+
spremembaPoArtiklih.filter(a => a.dzaloga).forEach(a => console.log(a.artikel_id, "nbc", a.dnbc, "zal", a.dzaloga, "eur", a.dvrednost));
|
256
|
+
console.log('zalogaPoArtiklih.length', zalogaPoArtiklih.length);
|
257
|
+
console.log('zalogaPoArtiklih2.length', zalogaPoArtiklih2.length);
|
258
|
+
console.log('zacetnaVrednostZaloge', round2(zacetnaVrednostZaloge));
|
259
|
+
console.log('koncnaVrednostZaloge', round2(koncnaVrednostZaloge));
|
260
|
+
console.log('razlika', round2(koncnaVrednostZaloge - zacetnaVrednostZaloge));
|
261
|
+
console.log('vsotaSprememb', vsotaSprememb);
|
262
|
+
console.log('vsotaSpremembAbs', vsotaSpremembAbs);
|
263
|
+
console.timeEnd("čas");
|
363
264
|
}
|
364
265
|
;
|
365
|
-
(function () {
|
366
|
-
|
367
|
-
|
368
|
-
|
369
|
-
|
370
|
-
|
371
|
-
|
372
|
-
|
373
|
-
|
374
|
-
|
375
|
-
|
376
|
-
|
377
|
-
|
378
|
-
|
379
|
-
|
380
|
-
|
381
|
-
|
382
|
-
|
383
|
-
|
384
|
-
|
385
|
-
|
386
|
-
|
387
|
-
|
388
|
-
|
389
|
-
|
390
|
-
process.exit(0);
|
391
|
-
});
|
266
|
+
(async function () {
|
267
|
+
// run
|
268
|
+
// db.blagovnice.updateOne({_id: ObjectId("675c8f2c5e0c616586d1f54d")}, { $set: { datum: new Date("2024-12-14T13:17"),datumDokumenta: new Date("2024-12-14T13:17") }})
|
269
|
+
if (false)
|
270
|
+
await start("etv", {
|
271
|
+
artikel: undefined,
|
272
|
+
neRazknjizujObDobavi: true,
|
273
|
+
neSpreminjajProdajnihCen: true,
|
274
|
+
popraviDatumeBlagovnicaNaDatumeDokumentov: true,
|
275
|
+
odInventureNaDan: new Date("2024-12-14T12:00"),
|
276
|
+
ponovnaKnjizbaZgodovineDELNA: true,
|
277
|
+
// samoDokumenti: ["inventura"],
|
278
|
+
}, "mongodb://192.168.88.60:27017,192.168.88.61:27017,192.168.88. 62:27017/?replicaSet=rs0");
|
279
|
+
if (true)
|
280
|
+
await start("svp", {
|
281
|
+
artikel: undefined,
|
282
|
+
neRazknjizujObDobavi: true,
|
283
|
+
neSpreminjajProdajnihCen: true,
|
284
|
+
popraviDatumeBlagovnicaNaDatumeDokumentov: true,
|
285
|
+
odInventureNaDan: new Date("2024-12-14T12:00"),
|
286
|
+
ponovnaKnjizbaZgodovineDELNA: true,
|
287
|
+
// samoDokumenti: ["inventura"],
|
288
|
+
});
|
289
|
+
console.log('koniec');
|
290
|
+
process.exit(0);
|
392
291
|
})();
|
393
292
|
//# sourceMappingURL=poknjiziVsoZgodovino.mjs.map
|