cry-klikvet-logic 1.0.421 → 1.0.423

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 (107) hide show
  1. package/.claude/settings.local.json +5 -1
  2. package/.history/README_20251220101349.md +0 -0
  3. package/.history/README_20251220101350.md +30 -0
  4. package/.history/README_20251221062736.md +31 -0
  5. package/.history/dist/test/inventura_20251221111149.mjs +148 -0
  6. package/.history/dist/test/inventura_20251221111255.mjs +148 -0
  7. package/.history/dist/test/inventura_20251221111401.mjs +150 -0
  8. package/.history/dist/test/inventura_20251221111856.mjs +158 -0
  9. package/.history/dist/test/inventura_20251221111920.mjs +158 -0
  10. package/.history/dist/test/inventura_20251221111950.mjs +158 -0
  11. package/.history/dist/test/inventura_20251221113242.mjs +166 -0
  12. package/.history/dist/test/inventura_20251221113307.mjs +165 -0
  13. package/.history/dist/test/inventura_20251221113335.mjs +169 -0
  14. package/.history/dist/test/inventura_20251221113425.mjs +172 -0
  15. package/.history/dist/test/inventura_20251221113452.mjs +172 -0
  16. package/.history/dist/test/inventura_20251221113514.mjs +172 -0
  17. package/.history/dist/test/inventura_20251221113533.mjs +173 -0
  18. package/.history/dist/test/inventura_20251221113602.mjs +173 -0
  19. package/.history/dist/test/inventura_20251221113642.mjs +174 -0
  20. package/.history/dist/test/inventura_20251221113654.mjs +174 -0
  21. package/.history/dist/test/inventura_20251221113814.mjs +178 -0
  22. package/.history/dist/test/inventura_20251221113947.mjs +189 -0
  23. package/.history/dist/test/inventura_20251221114003.mjs +189 -0
  24. package/.history/dist/test/inventura_20251221114242.mjs +185 -0
  25. package/.history/dist/test/inventura_20251221114251.mjs +185 -0
  26. package/.history/dist/test/inventura_20251221114326.mjs +186 -0
  27. package/.history/dist/test/inventura_20251221114338.mjs +186 -0
  28. package/.history/dist/test/inventura_20251221114551.mjs +186 -0
  29. package/.history/dist/test/inventura_20251221114609.mjs +186 -0
  30. package/.vscode/launch.json +8 -8
  31. package/README.md +31 -0
  32. package/dist/maint/poknjiziVsoZgodovino.d.mts +1 -0
  33. package/dist/maint/poknjiziVsoZgodovino.d.mts.map +1 -1
  34. package/dist/maint/poknjiziVsoZgodovino.mjs +62 -50
  35. package/dist/maint/poknjiziVsoZgodovino.mjs.map +1 -1
  36. package/dist/maint/popraviVezaveSamodejnihPorab.d.mts +2 -0
  37. package/dist/maint/popraviVezaveSamodejnihPorab.d.mts.map +1 -0
  38. package/dist/maint/popraviVezaveSamodejnihPorab.mjs +150 -0
  39. package/dist/maint/popraviVezaveSamodejnihPorab.mjs.map +1 -0
  40. package/dist/preracunajZalogo.d.mts +4 -0
  41. package/dist/preracunajZalogo.d.mts.map +1 -1
  42. package/dist/preracunajZalogo.mjs +12 -6
  43. package/dist/preracunajZalogo.mjs.map +1 -1
  44. package/dist/razknjiziBlagovnico.d.mts +1 -1
  45. package/dist/spremembaZalogeZaObdobje.mjs +7 -7
  46. package/dist/spremembaZalogeZaObdobje.mjs.map +1 -1
  47. package/dist/spremeniZalogoZaDobavo.d.mts.map +1 -1
  48. package/dist/spremeniZalogoZaDobavo.mjs +13 -3
  49. package/dist/spremeniZalogoZaDobavo.mjs.map +1 -1
  50. package/dist/spremeniZalogoZaInventuro.d.mts.map +1 -1
  51. package/dist/spremeniZalogoZaInventuro.mjs +46 -5
  52. package/dist/spremeniZalogoZaInventuro.mjs.map +1 -1
  53. package/dist/test/dvojne-dobave.mjs +9 -8
  54. package/dist/test/dvojne-dobave.mjs.map +1 -1
  55. package/dist/test/inventura.d.mts +2 -0
  56. package/dist/test/inventura.d.mts.map +1 -0
  57. package/dist/test/inventura.mjs +187 -0
  58. package/dist/test/inventura.mjs.map +1 -0
  59. package/dist/test/memdb.mjs +4 -2
  60. package/dist/test/memdb.mjs.map +1 -1
  61. package/dist/test/mesane-enote.mjs +12 -10
  62. package/dist/test/mesane-enote.mjs.map +1 -1
  63. package/dist/test/prestavitev.mjs +25 -23
  64. package/dist/test/prestavitev.mjs.map +1 -1
  65. package/dist/test/prevzem-serijske.mjs +1 -31
  66. package/dist/test/prevzem-serijske.mjs.map +1 -1
  67. package/dist/test/prevzem.d.mts +2 -0
  68. package/dist/test/prevzem.d.mts.map +1 -0
  69. package/dist/test/prevzem.mjs +180 -0
  70. package/dist/test/prevzem.mjs.map +1 -0
  71. package/dist/test/serijske.mjs +24 -23
  72. package/dist/test/serijske.mjs.map +1 -1
  73. package/dist/test/sprememba-cene.mjs +14 -12
  74. package/dist/test/sprememba-cene.mjs.map +1 -1
  75. package/dist/test/sprememba-cene2.mjs +14 -12
  76. package/dist/test/sprememba-cene2.mjs.map +1 -1
  77. package/dist/test/sprememba-cene3.mjs +15 -13
  78. package/dist/test/sprememba-cene3.mjs.map +1 -1
  79. package/dist/test/sprememba-cene4.mjs +15 -13
  80. package/dist/test/sprememba-cene4.mjs.map +1 -1
  81. package/dist/test/sprememba-cene5.mjs +20 -25
  82. package/dist/test/sprememba-cene5.mjs.map +1 -1
  83. package/dist/test/sprememba-cene6.mjs +13 -11
  84. package/dist/test/sprememba-cene6.mjs.map +1 -1
  85. package/dist/test/sprememba-cene7.d.mts +2 -0
  86. package/dist/test/sprememba-cene7.d.mts.map +1 -0
  87. package/dist/test/sprememba-cene7.mjs +113 -0
  88. package/dist/test/sprememba-cene7.mjs.map +1 -0
  89. package/dist/test/tuja-zaloga.mjs +32 -31
  90. package/dist/test/tuja-zaloga.mjs.map +1 -1
  91. package/dist/test/ustvari-inventure-za-spremembo-faktorja.d.mts +2 -0
  92. package/dist/test/ustvari-inventure-za-spremembo-faktorja.d.mts.map +1 -0
  93. package/dist/test/ustvari-inventure-za-spremembo-faktorja.mjs +273 -0
  94. package/dist/test/ustvari-inventure-za-spremembo-faktorja.mjs.map +1 -0
  95. package/dist/test/zaloge.mjs +7 -1
  96. package/dist/test/zaloge.mjs.map +1 -1
  97. package/dist/test/zaloge2.mjs +21 -19
  98. package/dist/test/zaloge2.mjs.map +1 -1
  99. package/dist/types/blagovnica.d.mts +2 -0
  100. package/dist/types/blagovnica.d.mts.map +1 -1
  101. package/dist/types/zaloga.d.mts +2 -0
  102. package/dist/types/zaloga.d.mts.map +1 -1
  103. package/dist/ustvariInventureZaSprememboFaktorjaArtikla.d.mts.map +1 -1
  104. package/dist/ustvariInventureZaSprememboFaktorjaArtikla.mjs +7 -6
  105. package/dist/ustvariInventureZaSprememboFaktorjaArtikla.mjs.map +1 -1
  106. package/package.json +1 -1
  107. package/tsconfig.tsbuildinfo +1 -1
@@ -12,7 +12,11 @@
12
12
  "Bash(npm pack:*)",
13
13
  "Bash(npm view:*)",
14
14
  "Bash(npm config:*)",
15
- "Bash(git log:*)"
15
+ "Bash(git log:*)",
16
+ "Bash(git stash:*)",
17
+ "Bash(npx mocha dist/test/zaloge1.mjs)",
18
+ "Bash(npx mocha:*)",
19
+ "Bash(npx tsc:*)"
16
20
  ],
17
21
  "deny": [],
18
22
  "ask": []
File without changes
@@ -0,0 +1,30 @@
1
+ # Napake v programu
2
+
3
+ ## Ob dobavi
4
+
5
+ ### Podarjeni artikli
6
+ Ko dobavimo brezplačen artikel, program zniža povprečno nabavno ceno, ker izračuna povprečno nabavno ceno tako, da deli s številom vseh artiklov. To je narobe.
7
+
8
+ ### Čuden nbc, različen od nbc0
9
+
10
+ artikel_id: ObjectId('66b5f0846e295c4841d5b6ec'),
11
+ naziv: 'Trovet Plus Ad. Dog Hypoallergenic Salmon 3kg',
12
+ kategorija: 'izdelek',
13
+ kolicina: -1,
14
+ enotaFaktor: 1,
15
+ enotaZaloge: 'kos',
16
+ enota: 'kos',
17
+ nbc: 7.725961,
18
+ nbc0: 7.726,
19
+ nbcN: 7.726,
20
+ dst: 0.095,
21
+ tnbc: -7.725961,
22
+ tdav: -0.733966295,
23
+ n: 0,
24
+ rbt: 0,
25
+ mpc: 26.5,
26
+ _entered: ISODate('2025-12-04T12:35:29.877Z'),
27
+ kolicinaPrej: 1,
28
+ popisanaKolicina: 0,
29
+ nepreverjeno: false
30
+
@@ -0,0 +1,31 @@
1
+ # Napake v programu
2
+
3
+ ## Ob dobavi
4
+
5
+ ### Podarjeni artikli
6
+ Ko dobavimo brezplačen artikel, program zniža povprečno nabavno ceno, ker izračuna povprečno nabavno ceno tako, da deli s številom vseh artiklov.
7
+ To naredi na podlagi zaloge enega skladišča in ne zaloge vseh skladišč, torej utežena nabavna cena na artiklu ni pravilna.
8
+
9
+ ### Čuden nbc, različen od nbc0
10
+
11
+ artikel_id: ObjectId('66b5f0846e295c4841d5b6ec'),
12
+ naziv: 'Trovet Plus Ad. Dog Hypoallergenic Salmon 3kg',
13
+ kategorija: 'izdelek',
14
+ kolicina: -1,
15
+ enotaFaktor: 1,
16
+ enotaZaloge: 'kos',
17
+ enota: 'kos',
18
+ nbc: 7.725961,
19
+ nbc0: 7.726,
20
+ nbcN: 7.726,
21
+ dst: 0.095,
22
+ tnbc: -7.725961,
23
+ tdav: -0.733966295,
24
+ n: 0,
25
+ rbt: 0,
26
+ mpc: 26.5,
27
+ _entered: ISODate('2025-12-04T12:35:29.877Z'),
28
+ kolicinaPrej: 1,
29
+ popisanaKolicina: 0,
30
+ nepreverjeno: false
31
+
@@ -0,0 +1,148 @@
1
+ import { expect } from "chai";
2
+ import { zalogaDbAccessorInMem } from "../zalogaDbAccessorInMem.mjs";
3
+ import { spremeniZalogoNaPodlagiBlagovnice } from "../spremeniZalogo.mjs";
4
+ describe('dvojne dobave', async function () {
5
+ let fakedb = zalogaDbAccessorInMem();
6
+ fakedb.clearDb();
7
+ // function round2(n: number = 0) { return Number(n.toFixed(2)) }
8
+ let artikel_id1 = "az1";
9
+ let skladisce_id = "s1";
10
+ let nastavitve = {
11
+ zaokrozitevCen: 1,
12
+ pribitekCeneNaIzdelke: 11,
13
+ pribitekCeneNaZdravila: 13,
14
+ pragZaSprememboCenObPocenitvi: 5,
15
+ pragZaSprememboCenObPodrazitvi: 5,
16
+ posodobiCeneObDobavi: "dobava",
17
+ razknjizbaZdravil: "ob dobavi"
18
+ };
19
+ const a1 = {
20
+ _id: artikel_id1,
21
+ naziv: "a1",
22
+ kategorija: "zdravilo",
23
+ zalogoRazknjizi: "ob prodaji",
24
+ nbc: undefined,
25
+ enotaFaktor: 10,
26
+ enotaNabave: "škl",
27
+ enotaZaloge: "amp",
28
+ dst: .095,
29
+ };
30
+ let nbc_1 = 2;
31
+ await fakedb.upsert("artikli", { _id: artikel_id1 }, a1);
32
+ it("pravilno doda en izdelek", async function () {
33
+ let r = {
34
+ _id: "dob-1",
35
+ skladisce_id,
36
+ datum: new Date(),
37
+ vrsta: 'dobava',
38
+ lokacija_id: "lok1",
39
+ zapSt: 1,
40
+ dav: 0,
41
+ davki: [],
42
+ nbc: 0,
43
+ izvedel: "rok",
44
+ dobavitelj_id: "dob-1",
45
+ status: "izdana",
46
+ postavke: [
47
+ {
48
+ artikel_id: artikel_id1,
49
+ naziv: a1.naziv,
50
+ kategorija: a1.kategorija,
51
+ kolicina: 15,
52
+ enotaFaktor: a1.enotaFaktor,
53
+ enota: a1.enotaNabave,
54
+ nbc0: nbc_1 * a1.enotaFaktor,
55
+ nbcN: nbc_1 * a1.enotaFaktor * .9,
56
+ tnbc: nbc_1 * a1.enotaFaktor,
57
+ rbt: .1,
58
+ dst: 0.095,
59
+ tdav: 0,
60
+ },
61
+ ]
62
+ };
63
+ await spremeniZalogoNaPodlagiBlagovnice(r, nastavitve, fakedb);
64
+ let z1 = await fakedb.findOne("zaloga", { skladisce_id, artikel_id: artikel_id1 });
65
+ expect(z1 === null || z1 === void 0 ? void 0 : z1.zaloga).to.eq(15 * a1.enotaFaktor);
66
+ expect(z1 === null || z1 === void 0 ? void 0 : z1.vrednost).to.eq(nbc_1 * 15 * a1.enotaFaktor * .9);
67
+ let spremembe = await fakedb.find("spremembaZaloge", {});
68
+ console.log(`spremembe`, JSON.stringify(spremembe, null, 4));
69
+ expect(spremembe.length).to.eq(1);
70
+ expect(spremembe[0].zaloga.stara).to.eq(0);
71
+ expect(spremembe[0].zaloga.nova).to.eq(150);
72
+ expect(spremembe[0].zaloga.sprememba).to.eq(150);
73
+ expect(spremembe[0].vrednostZaloge.stara).to.eq(0);
74
+ expect(spremembe[0].vrednostZaloge.nova).to.eq(15 * a1.enotaFaktor * nbc_1 * .9);
75
+ expect(spremembe[0].vrednostZaloge.sprememba).to.eq(15 * a1.enotaFaktor * nbc_1 * .9);
76
+ });
77
+ it("inventura po enoti zaloge", async function () {
78
+ let r = {
79
+ _id: "inv-1",
80
+ skladisce_id,
81
+ datum: new Date(),
82
+ vrsta: 'inventura',
83
+ lokacija_id: "lok1",
84
+ zapSt: 1,
85
+ dav: 0,
86
+ davki: [],
87
+ nbc: 0,
88
+ izvedel: "rok",
89
+ status: "izdana",
90
+ postavke: [
91
+ {
92
+ artikel_id: artikel_id1,
93
+ naziv: a1.naziv,
94
+ kategorija: a1.kategorija,
95
+ kolicina: 140,
96
+ popisanaKolicina: 140,
97
+ enotaFaktor: 1,
98
+ enota: a1.enotaZaloge,
99
+ kolicinaPrej: 150,
100
+ nbc: nbc_1,
101
+ tnbc: nbc_1,
102
+ dst: 0.095,
103
+ tdav: 0,
104
+ },
105
+ ]
106
+ };
107
+ await spremeniZalogoNaPodlagiBlagovnice(r, nastavitve, fakedb);
108
+ let z1 = await fakedb.findOne("zaloga", { skladisce_id, artikel_id: artikel_id1 });
109
+ expect(z1 === null || z1 === void 0 ? void 0 : z1.zaloga).to.eq(140);
110
+ expect(z1 === null || z1 === void 0 ? void 0 : z1.vrednost).to.eq(140 * nbc_1);
111
+ });
112
+ it("inventura po enoti nabave", async function () {
113
+ let r = {
114
+ _id: "inv-2",
115
+ skladisce_id,
116
+ datum: new Date(),
117
+ vrsta: 'inventura',
118
+ lokacija_id: "lok1",
119
+ zapSt: 1,
120
+ dav: 0,
121
+ davki: [],
122
+ nbc: 0,
123
+ izvedel: "rok",
124
+ status: "izdana",
125
+ postavke: [
126
+ {
127
+ artikel_id: artikel_id1,
128
+ naziv: a1.naziv,
129
+ kategorija: a1.kategorija,
130
+ kolicina: 12,
131
+ popisanaKolicina: 12,
132
+ enotaFaktor: a1.enotaFaktor,
133
+ enota: a1.enotaNabave,
134
+ nbc: nbc_1,
135
+ tnbc: nbc_1,
136
+ dst: 0.095,
137
+ tdav: 0,
138
+ kolicinaPrej: 140,
139
+ },
140
+ ]
141
+ };
142
+ await spremeniZalogoNaPodlagiBlagovnice(r, nastavitve, fakedb);
143
+ let z1 = await fakedb.findOne("zaloga", { skladisce_id, artikel_id: artikel_id1 });
144
+ expect(z1 === null || z1 === void 0 ? void 0 : z1.zaloga).to.eq(120);
145
+ expect(z1 === null || z1 === void 0 ? void 0 : z1.vrednost).to.eq(nbc_1 * 120);
146
+ });
147
+ });
148
+ //# sourceMappingURL=inventura.mjs.map
@@ -0,0 +1,148 @@
1
+ import { expect } from "chai";
2
+ import { zalogaDbAccessorInMem } from "../zalogaDbAccessorInMem.mjs";
3
+ import { spremeniZalogoNaPodlagiBlagovnice } from "../spremeniZalogo.mjs";
4
+ describe('dvojne dobave', async function () {
5
+ let fakedb = zalogaDbAccessorInMem();
6
+ fakedb.clearDb();
7
+ // function round2(n: number = 0) { return Number(n.toFixed(2)) }
8
+ let artikel_id1 = "az1";
9
+ let skladisce_id = "s1";
10
+ let nastavitve = {
11
+ zaokrozitevCen: 1,
12
+ pribitekCeneNaIzdelke: 11,
13
+ pribitekCeneNaZdravila: 13,
14
+ pragZaSprememboCenObPocenitvi: 5,
15
+ pragZaSprememboCenObPodrazitvi: 5,
16
+ posodobiCeneObDobavi: "dobava",
17
+ razknjizbaZdravil: "ob dobavi"
18
+ };
19
+ const a1 = {
20
+ _id: artikel_id1,
21
+ naziv: "a1",
22
+ kategorija: "zdravilo",
23
+ zalogoRazknjizi: "ob prodaji",
24
+ nbc: undefined,
25
+ enotaFaktor: 10,
26
+ enotaNabave: "škl",
27
+ enotaZaloge: "amp",
28
+ dst: .095,
29
+ };
30
+ let nbc_1 = 2;
31
+ await fakedb.upsert("artikli", { _id: artikel_id1 }, a1);
32
+ it("pravilno doda en izdelek", async function () {
33
+ let r = {
34
+ _id: "dob-1",
35
+ skladisce_id,
36
+ datum: new Date(),
37
+ vrsta: 'dobava',
38
+ lokacija_id: "lok1",
39
+ zapSt: 1,
40
+ dav: 0,
41
+ davki: [],
42
+ nbc: 0,
43
+ izvedel: "rok",
44
+ dobavitelj_id: "dob-1",
45
+ status: "izdana",
46
+ postavke: [
47
+ {
48
+ artikel_id: artikel_id1,
49
+ naziv: a1.naziv,
50
+ kategorija: a1.kategorija,
51
+ kolicina: 15,
52
+ enotaFaktor: a1.enotaFaktor,
53
+ enota: a1.enotaNabave,
54
+ nbc0: nbc_1 * a1.enotaFaktor,
55
+ nbcN: nbc_1 * a1.enotaFaktor * .9,
56
+ tnbc: nbc_1 * a1.enotaFaktor,
57
+ rbt: .1,
58
+ dst: 0.095,
59
+ tdav: 0,
60
+ },
61
+ ]
62
+ };
63
+ await spremeniZalogoNaPodlagiBlagovnice(r, nastavitve, fakedb);
64
+ let z1 = await fakedb.findOne("zaloga", { skladisce_id, artikel_id: artikel_id1 });
65
+ expect(z1 === null || z1 === void 0 ? void 0 : z1.zaloga).to.eq(15 * a1.enotaFaktor);
66
+ expect(z1 === null || z1 === void 0 ? void 0 : z1.vrednost).to.eq(nbc_1 * 15 * a1.enotaFaktor * .9);
67
+ let spremembe = await fakedb.find("spremembaZaloge", {});
68
+ console.log(`spremembe`, JSON.stringify(spremembe, null, 4));
69
+ expect(spremembe.length).to.eq(1);
70
+ expect(spremembe[0].zaloga.stara).to.eq(0);
71
+ expect(spremembe[0].zaloga.nova).to.eq(150);
72
+ expect(spremembe[0].zaloga.sprememba).to.eq(150);
73
+ expect(spremembe[0].vrednostZaloge.stara).to.eq(0);
74
+ expect(spremembe[0].vrednostZaloge.nova).to.eq(15 * a1.enotaFaktor * nbc_1 * .9);
75
+ expect(spremembe[0].vrednostZaloge.sprememba).to.eq(15 * a1.enotaFaktor * nbc_1 * .9);
76
+ });
77
+ it("inventura po enoti zaloge", async function () {
78
+ let r = {
79
+ _id: "inv-1",
80
+ skladisce_id,
81
+ datum: new Date(),
82
+ vrsta: 'inventura',
83
+ lokacija_id: "lok1",
84
+ zapSt: 1,
85
+ dav: 0,
86
+ davki: [],
87
+ nbc: 0,
88
+ izvedel: "rok",
89
+ status: "izdana",
90
+ postavke: [
91
+ {
92
+ artikel_id: artikel_id1,
93
+ naziv: a1.naziv,
94
+ kategorija: a1.kategorija,
95
+ kolicina: 140,
96
+ popisanaKolicina: 140,
97
+ enotaFaktor: 1,
98
+ enota: a1.enotaZaloge,
99
+ kolicinaPrej: 150,
100
+ nbc: nbc_1,
101
+ tnbc: nbc_1,
102
+ dst: 0.095,
103
+ tdav: 0,
104
+ },
105
+ ]
106
+ };
107
+ await spremeniZalogoNaPodlagiBlagovnice(r, nastavitve, fakedb);
108
+ let z1 = await fakedb.findOne("zaloga", { skladisce_id, artikel_id: artikel_id1 });
109
+ expect(z1 === null || z1 === void 0 ? void 0 : z1.zaloga).to.eq(140);
110
+ expect(z1 === null || z1 === void 0 ? void 0 : z1.vrednost).to.eq(140 * nbc_1);
111
+ });
112
+ it("inventura po enoti nabave", async function () {
113
+ let r = {
114
+ _id: "inv-2",
115
+ skladisce_id,
116
+ datum: new Date(),
117
+ vrsta: 'inventura',
118
+ lokacija_id: "lok1",
119
+ zapSt: 1,
120
+ dav: 0,
121
+ davki: [],
122
+ nbc: 0,
123
+ izvedel: "rok",
124
+ status: "izdana",
125
+ postavke: [
126
+ {
127
+ artikel_id: artikel_id1,
128
+ naziv: a1.naziv,
129
+ kategorija: a1.kategorija,
130
+ kolicina: 12,
131
+ popisanaKolicina: 12,
132
+ enotaFaktor: a1.enotaFaktor,
133
+ enota: a1.enotaNabave,
134
+ nbc: nbc_1,
135
+ tnbc: nbc_1,
136
+ dst: 0.095,
137
+ tdav: 0,
138
+ kolicinaPrej: 140,
139
+ },
140
+ ]
141
+ };
142
+ await spremeniZalogoNaPodlagiBlagovnice(r, nastavitve, fakedb);
143
+ let z1 = await fakedb.findOne("zaloga", { skladisce_id, artikel_id: artikel_id1 });
144
+ expect(z1 === null || z1 === void 0 ? void 0 : z1.zaloga).to.eq(120);
145
+ expect(z1 === null || z1 === void 0 ? void 0 : z1.vrednost).to.eq(nbc_1 * 120 * .9);
146
+ });
147
+ });
148
+ //# sourceMappingURL=inventura.mjs.map
@@ -0,0 +1,150 @@
1
+ import { expect } from "chai";
2
+ import { zalogaDbAccessorInMem } from "../zalogaDbAccessorInMem.mjs";
3
+ import { spremeniZalogoNaPodlagiBlagovnice } from "../spremeniZalogo.mjs";
4
+ describe('dvojne dobave', async function () {
5
+ let fakedb = zalogaDbAccessorInMem();
6
+ fakedb.clearDb();
7
+ // function round2(n: number = 0) { return Number(n.toFixed(2)) }
8
+ let artikel_id1 = "az1";
9
+ let skladisce_id = "s1";
10
+ let nastavitve = {
11
+ zaokrozitevCen: 1,
12
+ pribitekCeneNaIzdelke: 11,
13
+ pribitekCeneNaZdravila: 13,
14
+ pragZaSprememboCenObPocenitvi: 5,
15
+ pragZaSprememboCenObPodrazitvi: 5,
16
+ posodobiCeneObDobavi: "dobava",
17
+ razknjizbaZdravil: "ob dobavi"
18
+ };
19
+ const a1 = {
20
+ _id: artikel_id1,
21
+ naziv: "a1",
22
+ kategorija: "zdravilo",
23
+ zalogoRazknjizi: "ob prodaji",
24
+ nbc: undefined,
25
+ enotaFaktor: 10,
26
+ enotaNabave: "škl",
27
+ enotaZaloge: "amp",
28
+ dst: .095,
29
+ };
30
+ let nbc_1 = 2;
31
+ await fakedb.upsert("artikli", { _id: artikel_id1 }, a1);
32
+ it("pravilno doda en izdelek", async function () {
33
+ let r = {
34
+ _id: "dob-1",
35
+ skladisce_id,
36
+ datum: new Date(),
37
+ vrsta: 'dobava',
38
+ lokacija_id: "lok1",
39
+ zapSt: 1,
40
+ dav: 0,
41
+ davki: [],
42
+ nbc: 0,
43
+ izvedel: "rok",
44
+ dobavitelj_id: "dob-1",
45
+ status: "izdana",
46
+ postavke: [
47
+ {
48
+ artikel_id: artikel_id1,
49
+ naziv: a1.naziv,
50
+ kategorija: a1.kategorija,
51
+ kolicina: 15,
52
+ enotaFaktor: a1.enotaFaktor,
53
+ enota: a1.enotaNabave,
54
+ nbc0: nbc_1 * a1.enotaFaktor,
55
+ nbcN: nbc_1 * a1.enotaFaktor * .9,
56
+ tnbc: nbc_1 * a1.enotaFaktor,
57
+ rbt: .1,
58
+ dst: 0.095,
59
+ tdav: 0,
60
+ },
61
+ ]
62
+ };
63
+ await spremeniZalogoNaPodlagiBlagovnice(r, nastavitve, fakedb);
64
+ let a1 = await fakedb.findOne("artikli", { _id: a1._id });
65
+ expect(a1?.nbc).to.eq(2 * .9);
66
+ let z1 = await fakedb.findOne("zaloga", { skladisce_id, artikel_id: artikel_id1 });
67
+ expect(z1 === null || z1 === void 0 ? void 0 : z1.zaloga).to.eq(15 * a1.enotaFaktor);
68
+ expect(z1 === null || z1 === void 0 ? void 0 : z1.vrednost).to.eq(nbc_1 * 15 * a1.enotaFaktor * .9);
69
+ let spremembe = await fakedb.find("spremembaZaloge", {});
70
+ console.log(`spremembe`, JSON.stringify(spremembe, null, 4));
71
+ expect(spremembe.length).to.eq(1);
72
+ expect(spremembe[0].zaloga.stara).to.eq(0);
73
+ expect(spremembe[0].zaloga.nova).to.eq(150);
74
+ expect(spremembe[0].zaloga.sprememba).to.eq(150);
75
+ expect(spremembe[0].vrednostZaloge.stara).to.eq(0);
76
+ expect(spremembe[0].vrednostZaloge.nova).to.eq(15 * a1.enotaFaktor * nbc_1 * .9);
77
+ expect(spremembe[0].vrednostZaloge.sprememba).to.eq(15 * a1.enotaFaktor * nbc_1 * .9);
78
+ });
79
+ it("inventura po enoti zaloge", async function () {
80
+ let r = {
81
+ _id: "inv-1",
82
+ skladisce_id,
83
+ datum: new Date(),
84
+ vrsta: 'inventura',
85
+ lokacija_id: "lok1",
86
+ zapSt: 1,
87
+ dav: 0,
88
+ davki: [],
89
+ nbc: 0,
90
+ izvedel: "rok",
91
+ status: "izdana",
92
+ postavke: [
93
+ {
94
+ artikel_id: artikel_id1,
95
+ naziv: a1.naziv,
96
+ kategorija: a1.kategorija,
97
+ kolicina: 140,
98
+ popisanaKolicina: 140,
99
+ enotaFaktor: 1,
100
+ enota: a1.enotaZaloge,
101
+ kolicinaPrej: 150,
102
+ nbc: nbc_1,
103
+ tnbc: nbc_1,
104
+ dst: 0.095,
105
+ tdav: 0,
106
+ },
107
+ ]
108
+ };
109
+ await spremeniZalogoNaPodlagiBlagovnice(r, nastavitve, fakedb);
110
+ let z1 = await fakedb.findOne("zaloga", { skladisce_id, artikel_id: artikel_id1 });
111
+ expect(z1 === null || z1 === void 0 ? void 0 : z1.zaloga).to.eq(140);
112
+ expect(z1 === null || z1 === void 0 ? void 0 : z1.vrednost).to.eq(140 * nbc_1);
113
+ });
114
+ it("inventura po enoti nabave", async function () {
115
+ let r = {
116
+ _id: "inv-2",
117
+ skladisce_id,
118
+ datum: new Date(),
119
+ vrsta: 'inventura',
120
+ lokacija_id: "lok1",
121
+ zapSt: 1,
122
+ dav: 0,
123
+ davki: [],
124
+ nbc: 0,
125
+ izvedel: "rok",
126
+ status: "izdana",
127
+ postavke: [
128
+ {
129
+ artikel_id: artikel_id1,
130
+ naziv: a1.naziv,
131
+ kategorija: a1.kategorija,
132
+ kolicina: 12,
133
+ popisanaKolicina: 12,
134
+ enotaFaktor: a1.enotaFaktor,
135
+ enota: a1.enotaNabave,
136
+ nbc: nbc_1,
137
+ tnbc: nbc_1,
138
+ dst: 0.095,
139
+ tdav: 0,
140
+ kolicinaPrej: 140,
141
+ },
142
+ ]
143
+ };
144
+ await spremeniZalogoNaPodlagiBlagovnice(r, nastavitve, fakedb);
145
+ let z1 = await fakedb.findOne("zaloga", { skladisce_id, artikel_id: artikel_id1 });
146
+ expect(z1 === null || z1 === void 0 ? void 0 : z1.zaloga).to.eq(120);
147
+ expect(z1 === null || z1 === void 0 ? void 0 : z1.vrednost).to.eq(nbc_1 * 120 * .9);
148
+ });
149
+ });
150
+ //# sourceMappingURL=inventura.mjs.map
@@ -0,0 +1,158 @@
1
+ import { expect } from "chai";
2
+ import { zalogaDbAccessorInMem } from "../zalogaDbAccessorInMem.mjs";
3
+ import { spremeniZalogoNaPodlagiBlagovnice } from "../spremeniZalogo.mjs";
4
+ describe('dvojne dobave', async function () {
5
+ let fakedb = zalogaDbAccessorInMem();
6
+ fakedb.clearDb();
7
+ // function round2(n: number = 0) { return Number(n.toFixed(2)) }
8
+ let artikel_id1 = "az1";
9
+ let skladisce_id = "s1";
10
+ let nastavitve = {
11
+ zaokrozitevCen: 1,
12
+ pribitekCeneNaIzdelke: 11,
13
+ pribitekCeneNaZdravila: 13,
14
+ pragZaSprememboCenObPocenitvi: 5,
15
+ pragZaSprememboCenObPodrazitvi: 5,
16
+ posodobiCeneObDobavi: "dobava",
17
+ razknjizbaZdravil: "ob dobavi"
18
+ };
19
+ const a1 = {
20
+ _id: artikel_id1,
21
+ naziv: "a1",
22
+ kategorija: "zdravilo",
23
+ zalogoRazknjizi: "ob prodaji",
24
+ nbc: undefined,
25
+ enotaFaktor: 10,
26
+ enotaNabave: "škl",
27
+ enotaZaloge: "amp",
28
+ dst: .095,
29
+ };
30
+ let nbc_1 = 2;
31
+ await fakedb.upsert("artikli", { _id: artikel_id1 }, a1);
32
+ it("pravilno doda en izdelek", async function () {
33
+ let r = {
34
+ _id: "dob-1",
35
+ skladisce_id,
36
+ datum: new Date(),
37
+ vrsta: 'dobava',
38
+ lokacija_id: "lok1",
39
+ zapSt: 1,
40
+ dav: 0,
41
+ davki: [],
42
+ nbc: 0,
43
+ izvedel: "rok",
44
+ dobavitelj_id: "dob-1",
45
+ status: "izdana",
46
+ postavke: [
47
+ {
48
+ artikel_id: artikel_id1,
49
+ naziv: a1.naziv,
50
+ kategorija: a1.kategorija,
51
+ kolicina: 15,
52
+ enotaFaktor: a1.enotaFaktor,
53
+ enota: a1.enotaNabave,
54
+ nbc0: nbc_1 * a1.enotaFaktor,
55
+ nbcN: nbc_1 * a1.enotaFaktor * .9,
56
+ tnbc: nbc_1 * a1.enotaFaktor,
57
+ rbt: .1,
58
+ dst: 0.095,
59
+ tdav: 0,
60
+ },
61
+ ]
62
+ };
63
+ await spremeniZalogoNaPodlagiBlagovnice(r, nastavitve, fakedb);
64
+ let a = await fakedb.findOne("artikli", { _id: a1._id });
65
+ expect(a === null || a === void 0 ? void 0 : a.nbc).to.eq(2 * .9);
66
+ let z1 = await fakedb.findOne("zaloga", { skladisce_id, artikel_id: artikel_id1 });
67
+ expect(z1 === null || z1 === void 0 ? void 0 : z1.zaloga).to.eq(15 * a1.enotaFaktor);
68
+ expect(z1 === null || z1 === void 0 ? void 0 : z1.vrednost).to.eq(nbc_1 * 15 * a1.enotaFaktor * .9);
69
+ let spremembe = await fakedb.find("spremembaZaloge", {});
70
+ expect(spremembe.length).to.eq(1);
71
+ expect(spremembe[0].zaloga.stara).to.eq(0);
72
+ expect(spremembe[0].zaloga.nova).to.eq(150);
73
+ expect(spremembe[0].zaloga.sprememba).to.eq(150);
74
+ expect(spremembe[0].vrednostZaloge.stara).to.eq(0);
75
+ expect(spremembe[0].vrednostZaloge.nova).to.eq(15 * a1.enotaFaktor * nbc_1 * .9);
76
+ expect(spremembe[0].vrednostZaloge.sprememba).to.eq(15 * a1.enotaFaktor * nbc_1 * .9);
77
+ });
78
+ it("inventura po enoti zaloge", async function () {
79
+ let r = {
80
+ _id: "inv-1",
81
+ skladisce_id,
82
+ datum: new Date(),
83
+ vrsta: 'inventura',
84
+ lokacija_id: "lok1",
85
+ zapSt: 1,
86
+ dav: 0,
87
+ davki: [],
88
+ nbc: 0,
89
+ izvedel: "rok",
90
+ status: "izdana",
91
+ postavke: [
92
+ {
93
+ artikel_id: artikel_id1,
94
+ naziv: a1.naziv,
95
+ kategorija: a1.kategorija,
96
+ kolicina: 140,
97
+ popisanaKolicina: 140,
98
+ enotaFaktor: 1,
99
+ enota: a1.enotaZaloge,
100
+ kolicinaPrej: 150,
101
+ nbc: nbc_1,
102
+ tnbc: nbc_1,
103
+ dst: 0.095,
104
+ tdav: 0,
105
+ },
106
+ ]
107
+ };
108
+ await spremeniZalogoNaPodlagiBlagovnice(r, nastavitve, fakedb);
109
+ let z1 = await fakedb.findOne("zaloga", { skladisce_id, artikel_id: artikel_id1 });
110
+ expect(z1 === null || z1 === void 0 ? void 0 : z1.zaloga).to.eq(140);
111
+ expect(z1 === null || z1 === void 0 ? void 0 : z1.vrednost).to.eq(140 * nbc_1 * .9);
112
+ let spremembe = await fakedb.find("spremembaZaloge", {});
113
+ console.log(`spremembe`, JSON.stringify(spremembe, null, 4));
114
+ expect(spremembe.length).to.eq(2);
115
+ expect(spremembe[1].zaloga.stara).to.eq(150);
116
+ expect(spremembe[1].zaloga.nova).to.eq(140);
117
+ expect(spremembe[1].zaloga.sprememba).to.eq(-10);
118
+ expect(spremembe[1].vrednostZaloge.stara).to.eq(270);
119
+ expect(spremembe[1].vrednostZaloge.nova).to.eq(14 * a1.enotaFaktor * nbc_1 * .9);
120
+ expect(spremembe[1].vrednostZaloge.sprememba).to.eq(10 * a1.enotaFaktor * nbc_1 * .9);
121
+ });
122
+ it("inventura po enoti nabave", async function () {
123
+ let r = {
124
+ _id: "inv-2",
125
+ skladisce_id,
126
+ datum: new Date(),
127
+ vrsta: 'inventura',
128
+ lokacija_id: "lok1",
129
+ zapSt: 1,
130
+ dav: 0,
131
+ davki: [],
132
+ nbc: 0,
133
+ izvedel: "rok",
134
+ status: "izdana",
135
+ postavke: [
136
+ {
137
+ artikel_id: artikel_id1,
138
+ naziv: a1.naziv,
139
+ kategorija: a1.kategorija,
140
+ kolicina: 12,
141
+ popisanaKolicina: 12,
142
+ enotaFaktor: a1.enotaFaktor,
143
+ enota: a1.enotaNabave,
144
+ nbc: nbc_1,
145
+ tnbc: nbc_1,
146
+ dst: 0.095,
147
+ tdav: 0,
148
+ kolicinaPrej: 140,
149
+ },
150
+ ]
151
+ };
152
+ await spremeniZalogoNaPodlagiBlagovnice(r, nastavitve, fakedb);
153
+ let z1 = await fakedb.findOne("zaloga", { skladisce_id, artikel_id: artikel_id1 });
154
+ expect(z1 === null || z1 === void 0 ? void 0 : z1.zaloga).to.eq(120);
155
+ expect(z1 === null || z1 === void 0 ? void 0 : z1.vrednost).to.eq(nbc_1 * 120);
156
+ });
157
+ });
158
+ //# sourceMappingURL=inventura.mjs.map