-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathpn98.js
71 lines (60 loc) · 2 KB
/
pn98.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
function pn98(amount) {
let samples = sample_calc(amount);
let ep = samples[0];
let mp = samples[1];
let sp = Number(samples[2]);
let lp = (Number(amount) <= 600) ? mp : (10 + sp);
let rp = reduction_samples(amount);
let out = ""
out += `<h3 style="color:black">Erforderliche Probenzahl nach den Vorgaben der LAGA PN98</h3><div style="color:black">Für die abfallrechtliche Deklaration eines Haufwerks mit <b>${amount} m³</b> werden nach den Vorgaben der LAGA PN98<ul>`;
out += `<li><b>${ep} Einzelproben</b></li>`;
out += `<li><b>${mp} Mischproben</b></li>`;
if (sp > 0) {
out += (sp <= 1) ? `<li><b>${sp} Sammelprobe</b></li>` : `<li><b>${sp} Sammelproben</b></li>`}
out += `<li><b>${lp} Laborproben</b></li>`;
out += "</ul>benötigt.";
if (sp > 0) {out += " Die in Klammer stehenden Mischproben werden zu Sammelproben zusammengefasst."};
out += `<p>Bei homogener Schadstoffverteilung kann die Zahl der zu analysierenden Laborproben auf <b>${rp}</b> reduziert werden.</p></div>`;
return out
}
function sample_calc(amount) {
amount = Number(amount);
const sample_dic = {
30 : 8,
60 : 12,
100 : 16,
150 : 20,
200 : 24,
300 : 28,
400 : 32,
500 : 36,
600 : 40
};
if (amount <= 600) {
for (value in sample_dic) {
let ep = sample_dic[value];
// console.log(`${amount} Menge in m³ <= ${value} Grenzwert?`);
// console.log(amount <= value)
if (amount <= value) {
let mp = ep/4;
let sp = 0;
return [ep, mp, sp]}
}
}
else {
let add_ep = (Math.floor((amount - 501) / 100) * 4) ;
ep = add_ep + 40;
let mp = ep/4;
let mp_str = `10 + (${(mp - 10)})`
let sp = (Math.floor((amount - 601) / 300 ) + 1);
return [ep, mp_str, sp]
}
}
function reduction_samples(amount) {
amount = Number(amount);
if (amount <= 500) {
return 2} else {
additional_samples = Math.ceil((amount - 500) / 300);
return (additional_samples + 2)}
}