feat: edit mode + steal price entry
This commit is contained in:
1
.gitignore
vendored
Normal file
1
.gitignore
vendored
Normal file
@@ -0,0 +1 @@
|
|||||||
|
.pi*
|
||||||
531
backups/data-2026-05-20T07-25-15-007Z.json
Normal file
531
backups/data-2026-05-20T07-25-15-007Z.json
Normal file
@@ -0,0 +1,531 @@
|
|||||||
|
{
|
||||||
|
"surcharges": {
|
||||||
|
"304": {
|
||||||
|
"month": "Apr. 2026",
|
||||||
|
"value": 2663
|
||||||
|
},
|
||||||
|
"316": {
|
||||||
|
"month": "Apr. 2026",
|
||||||
|
"value": 4591
|
||||||
|
},
|
||||||
|
"444": {
|
||||||
|
"month": "Apr. 2026",
|
||||||
|
"value": 2817
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"history": [
|
||||||
|
{
|
||||||
|
"m": "Jan 2021",
|
||||||
|
"y": 2021,
|
||||||
|
"ss": 620,
|
||||||
|
"lz304": 1910,
|
||||||
|
"lz316": 2722,
|
||||||
|
"lz444": 1253
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"m": "Feb 2021",
|
||||||
|
"y": 2021,
|
||||||
|
"ss": 817,
|
||||||
|
"lz304": 2064,
|
||||||
|
"lz316": 2905,
|
||||||
|
"lz444": 1366
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"m": "Mrz 2021",
|
||||||
|
"y": 2021,
|
||||||
|
"ss": 848,
|
||||||
|
"lz304": 2222,
|
||||||
|
"lz316": 3146,
|
||||||
|
"lz444": 1480
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"m": "Apr 2021",
|
||||||
|
"y": 2021,
|
||||||
|
"ss": 998,
|
||||||
|
"lz304": 2224,
|
||||||
|
"lz316": 3181,
|
||||||
|
"lz444": 1609
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"m": "Mai 2021",
|
||||||
|
"y": 2021,
|
||||||
|
"ss": 1164,
|
||||||
|
"lz304": 2146,
|
||||||
|
"lz316": 3054,
|
||||||
|
"lz444": 1589
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"m": "Jun 2021",
|
||||||
|
"y": 2021,
|
||||||
|
"ss": 1274,
|
||||||
|
"lz304": 2226,
|
||||||
|
"lz316": 3193,
|
||||||
|
"lz444": 1636
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"m": "Jul 2021",
|
||||||
|
"y": 2021,
|
||||||
|
"ss": 1282,
|
||||||
|
"lz304": 2281,
|
||||||
|
"lz316": 3482,
|
||||||
|
"lz444": 1868
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"m": "Aug 2021",
|
||||||
|
"y": 2021,
|
||||||
|
"ss": 1286,
|
||||||
|
"lz304": 2429,
|
||||||
|
"lz316": 3829,
|
||||||
|
"lz444": 2078
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"m": "Sep 2021",
|
||||||
|
"y": 2021,
|
||||||
|
"ss": 1278,
|
||||||
|
"lz304": 2599,
|
||||||
|
"lz316": 4020,
|
||||||
|
"lz444": 2153
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"m": "Okt 2021",
|
||||||
|
"y": 2021,
|
||||||
|
"ss": 1218,
|
||||||
|
"lz304": 2628,
|
||||||
|
"lz316": 4109,
|
||||||
|
"lz444": 2212
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"m": "Nov 2021",
|
||||||
|
"y": 2021,
|
||||||
|
"ss": 1133,
|
||||||
|
"lz304": 2624,
|
||||||
|
"lz316": 4060,
|
||||||
|
"lz444": 2195
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"m": "Dez 2021",
|
||||||
|
"y": 2021,
|
||||||
|
"ss": 1083,
|
||||||
|
"lz304": 2770,
|
||||||
|
"lz316": 4256,
|
||||||
|
"lz444": 2279
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"m": "Jan 2022",
|
||||||
|
"y": 2022,
|
||||||
|
"ss": 1054,
|
||||||
|
"lz304": 2905,
|
||||||
|
"lz316": 4403,
|
||||||
|
"lz444": 2347
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"m": "Feb 2022",
|
||||||
|
"y": 2022,
|
||||||
|
"ss": 1057,
|
||||||
|
"lz304": 2971,
|
||||||
|
"lz316": 4510,
|
||||||
|
"lz444": 2335
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"m": "Mrz 2022",
|
||||||
|
"y": 2022,
|
||||||
|
"ss": 1266,
|
||||||
|
"lz304": 3192,
|
||||||
|
"lz316": 4794,
|
||||||
|
"lz444": 2347
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"m": "Apr 2022",
|
||||||
|
"y": 2022,
|
||||||
|
"ss": 1446,
|
||||||
|
"lz304": 3899,
|
||||||
|
"lz316": 5734,
|
||||||
|
"lz444": 2516
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"m": "Mai 2022",
|
||||||
|
"y": 2022,
|
||||||
|
"ss": 1247,
|
||||||
|
"lz304": 4614,
|
||||||
|
"lz316": 6671,
|
||||||
|
"lz444": 2761
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"m": "Jun 2022",
|
||||||
|
"y": 2022,
|
||||||
|
"ss": 1022,
|
||||||
|
"lz304": 3852,
|
||||||
|
"lz316": 5674,
|
||||||
|
"lz444": 2810
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"m": "Jul 2022",
|
||||||
|
"y": 2022,
|
||||||
|
"ss": 933,
|
||||||
|
"lz304": 3770,
|
||||||
|
"lz316": 5534,
|
||||||
|
"lz444": 2618
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"m": "Aug 2022",
|
||||||
|
"y": 2022,
|
||||||
|
"ss": 895,
|
||||||
|
"lz304": 3277,
|
||||||
|
"lz316": 4916,
|
||||||
|
"lz444": 2495
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"m": "Sep 2022",
|
||||||
|
"y": 2022,
|
||||||
|
"ss": 866,
|
||||||
|
"lz304": 3101,
|
||||||
|
"lz316": 4612,
|
||||||
|
"lz444": 2333
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"m": "Okt 2022",
|
||||||
|
"y": 2022,
|
||||||
|
"ss": 843,
|
||||||
|
"lz304": 3174,
|
||||||
|
"lz316": 4801,
|
||||||
|
"lz444": 2465
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"m": "Nov 2022",
|
||||||
|
"y": 2022,
|
||||||
|
"ss": 766,
|
||||||
|
"lz304": 3211,
|
||||||
|
"lz316": 5020,
|
||||||
|
"lz444": 2570
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"m": "Dez 2022",
|
||||||
|
"y": 2022,
|
||||||
|
"ss": 731,
|
||||||
|
"lz304": 3224,
|
||||||
|
"lz316": 5076,
|
||||||
|
"lz444": 2478
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"m": "Jan 2023",
|
||||||
|
"y": 2023,
|
||||||
|
"ss": 799,
|
||||||
|
"lz304": 3502,
|
||||||
|
"lz316": 5608,
|
||||||
|
"lz444": 2580
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"m": "Feb 2023",
|
||||||
|
"y": 2023,
|
||||||
|
"ss": 861,
|
||||||
|
"lz304": 3587,
|
||||||
|
"lz316": 6100,
|
||||||
|
"lz444": 2939
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"m": "Mrz 2023",
|
||||||
|
"y": 2023,
|
||||||
|
"ss": 916,
|
||||||
|
"lz304": 3484,
|
||||||
|
"lz316": 6566,
|
||||||
|
"lz444": 3499
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"m": "Apr 2023",
|
||||||
|
"y": 2023,
|
||||||
|
"ss": 953,
|
||||||
|
"lz304": 3174,
|
||||||
|
"lz316": 6048,
|
||||||
|
"lz444": 3485
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"m": "Mai 2023",
|
||||||
|
"y": 2023,
|
||||||
|
"ss": 902,
|
||||||
|
"lz304": 3031,
|
||||||
|
"lz316": 5048,
|
||||||
|
"lz444": 2778
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"m": "Jun 2023",
|
||||||
|
"y": 2023,
|
||||||
|
"ss": 800,
|
||||||
|
"lz304": 3007,
|
||||||
|
"lz316": 4862,
|
||||||
|
"lz444": 2628
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"m": "Jul 2023",
|
||||||
|
"y": 2023,
|
||||||
|
"ss": 772,
|
||||||
|
"lz304": 2858,
|
||||||
|
"lz316": 4657,
|
||||||
|
"lz444": 2640
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"m": "Aug 2023",
|
||||||
|
"y": 2023,
|
||||||
|
"ss": 756,
|
||||||
|
"lz304": 2651,
|
||||||
|
"lz316": 4392,
|
||||||
|
"lz444": 2519
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"m": "Sep 2023",
|
||||||
|
"y": 2023,
|
||||||
|
"ss": 747,
|
||||||
|
"lz304": 2629,
|
||||||
|
"lz316": 4465,
|
||||||
|
"lz444": 2543
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"m": "Okt 2023",
|
||||||
|
"y": 2023,
|
||||||
|
"ss": 720,
|
||||||
|
"lz304": 2640,
|
||||||
|
"lz316": 4507,
|
||||||
|
"lz444": 2629
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"m": "Nov 2023",
|
||||||
|
"y": 2023,
|
||||||
|
"ss": 729,
|
||||||
|
"lz304": 2573,
|
||||||
|
"lz316": 4334,
|
||||||
|
"lz444": 2599
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"m": "Dez 2023",
|
||||||
|
"y": 2023,
|
||||||
|
"ss": 769,
|
||||||
|
"lz304": 2466,
|
||||||
|
"lz316": 4048,
|
||||||
|
"lz444": 2452
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"m": "Jan 2024",
|
||||||
|
"y": 2024,
|
||||||
|
"ss": 803,
|
||||||
|
"lz304": 2384,
|
||||||
|
"lz316": 3793,
|
||||||
|
"lz444": 2339
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"m": "Feb 2024",
|
||||||
|
"y": 2024,
|
||||||
|
"ss": 834,
|
||||||
|
"lz304": 2341,
|
||||||
|
"lz316": 3890,
|
||||||
|
"lz444": 2459
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"m": "Mrz 2024",
|
||||||
|
"y": 2024,
|
||||||
|
"ss": 801,
|
||||||
|
"lz304": 2424,
|
||||||
|
"lz316": 3962,
|
||||||
|
"lz444": 2458
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"m": "Apr 2024",
|
||||||
|
"y": 2024,
|
||||||
|
"ss": 747,
|
||||||
|
"lz304": 2543,
|
||||||
|
"lz316": 4159,
|
||||||
|
"lz444": 2461
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"m": "Mai 2024",
|
||||||
|
"y": 2024,
|
||||||
|
"ss": 739,
|
||||||
|
"lz304": 2594,
|
||||||
|
"lz316": 4200,
|
||||||
|
"lz444": 2495
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"m": "Jun 2024",
|
||||||
|
"y": 2024,
|
||||||
|
"ss": 738,
|
||||||
|
"lz304": 2776,
|
||||||
|
"lz316": 4505,
|
||||||
|
"lz444": 2574
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"m": "Jul 2024",
|
||||||
|
"y": 2024,
|
||||||
|
"ss": 736,
|
||||||
|
"lz304": 2752,
|
||||||
|
"lz316": 4578,
|
||||||
|
"lz444": 2654
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"m": "Aug 2024",
|
||||||
|
"y": 2024,
|
||||||
|
"ss": 724,
|
||||||
|
"lz304": 2547,
|
||||||
|
"lz316": 4297,
|
||||||
|
"lz444": 2651
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"m": "Sep 2024",
|
||||||
|
"y": 2024,
|
||||||
|
"ss": 695,
|
||||||
|
"lz304": 2418,
|
||||||
|
"lz316": 4044,
|
||||||
|
"lz444": 2555
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"m": "Okt 2024",
|
||||||
|
"y": 2024,
|
||||||
|
"ss": 647,
|
||||||
|
"lz304": 2385,
|
||||||
|
"lz316": 3989,
|
||||||
|
"lz444": 2506
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"m": "Nov 2024",
|
||||||
|
"y": 2024,
|
||||||
|
"ss": 662,
|
||||||
|
"lz304": 2514,
|
||||||
|
"lz316": 4156,
|
||||||
|
"lz444": 2534
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"m": "Dez 2024",
|
||||||
|
"y": 2024,
|
||||||
|
"ss": 666,
|
||||||
|
"lz304": 2477,
|
||||||
|
"lz316": 4135,
|
||||||
|
"lz444": 2623
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"m": "Jan 2025",
|
||||||
|
"y": 2025,
|
||||||
|
"ss": 668,
|
||||||
|
"lz304": 2538,
|
||||||
|
"lz316": 4205,
|
||||||
|
"lz444": 2659
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"m": "Feb 2025",
|
||||||
|
"y": 2025,
|
||||||
|
"ss": 690,
|
||||||
|
"lz304": 2542,
|
||||||
|
"lz316": 4226,
|
||||||
|
"lz444": 2686
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"m": "Mrz 2025",
|
||||||
|
"y": 2025,
|
||||||
|
"ss": 720,
|
||||||
|
"lz304": 2522,
|
||||||
|
"lz316": 4181,
|
||||||
|
"lz444": 2652
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"m": "Apr 2025",
|
||||||
|
"y": 2025,
|
||||||
|
"ss": 734,
|
||||||
|
"lz304": 2510,
|
||||||
|
"lz316": 4144,
|
||||||
|
"lz444": 2602
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"m": "Mai 2025",
|
||||||
|
"y": 2025,
|
||||||
|
"ss": 730,
|
||||||
|
"lz304": 2382,
|
||||||
|
"lz316": 3916,
|
||||||
|
"lz444": 2502
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"m": "Jun 2025",
|
||||||
|
"y": 2025,
|
||||||
|
"ss": 705,
|
||||||
|
"lz304": 2280,
|
||||||
|
"lz316": 3748,
|
||||||
|
"lz444": 2386
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"m": "Jul 2025",
|
||||||
|
"y": 2025,
|
||||||
|
"ss": 657,
|
||||||
|
"lz304": 2243,
|
||||||
|
"lz316": 3751,
|
||||||
|
"lz444": 2437
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"m": "Aug 2025",
|
||||||
|
"y": 2025,
|
||||||
|
"ss": 660,
|
||||||
|
"lz304": 2201,
|
||||||
|
"lz316": 3708,
|
||||||
|
"lz444": 2433
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"m": "Sep 2025",
|
||||||
|
"y": 2025,
|
||||||
|
"ss": 668,
|
||||||
|
"lz304": 2260,
|
||||||
|
"lz316": 3841,
|
||||||
|
"lz444": 2510
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"m": "Okt 2025",
|
||||||
|
"y": 2025,
|
||||||
|
"ss": 670,
|
||||||
|
"lz304": 2261,
|
||||||
|
"lz316": 3927,
|
||||||
|
"lz444": 2572
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"m": "Nov 2025",
|
||||||
|
"y": 2025,
|
||||||
|
"ss": 703,
|
||||||
|
"lz304": 2297,
|
||||||
|
"lz316": 3936,
|
||||||
|
"lz444": 2550
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"m": "Dez 2025",
|
||||||
|
"y": 2025,
|
||||||
|
"ss": 715,
|
||||||
|
"lz304": 2322,
|
||||||
|
"lz316": 3943,
|
||||||
|
"lz444": 2552
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"m": "Jan 2026",
|
||||||
|
"y": 2026,
|
||||||
|
"ss": 727,
|
||||||
|
"lz304": 2303,
|
||||||
|
"lz316": 3815,
|
||||||
|
"lz444": 2478
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"m": "Feb 2026",
|
||||||
|
"y": 2026,
|
||||||
|
"ss": 755,
|
||||||
|
"lz304": 2541,
|
||||||
|
"lz316": 4179,
|
||||||
|
"lz444": 2522
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"m": "Mrz 2026",
|
||||||
|
"y": 2026,
|
||||||
|
"ss": 792,
|
||||||
|
"lz304": 2571,
|
||||||
|
"lz316": 4367,
|
||||||
|
"lz444": 2637
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"m": "Apr 2026",
|
||||||
|
"y": 2026,
|
||||||
|
"ss": 813,
|
||||||
|
"lz304": 2663,
|
||||||
|
"lz316": 4591,
|
||||||
|
"lz444": 2817
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"baseSS": 727
|
||||||
|
}
|
||||||
531
backups/data-2026-05-20T07-26-08-735Z.json
Normal file
531
backups/data-2026-05-20T07-26-08-735Z.json
Normal file
@@ -0,0 +1,531 @@
|
|||||||
|
{
|
||||||
|
"surcharges": {
|
||||||
|
"304": {
|
||||||
|
"month": "Apr. 2026",
|
||||||
|
"value": 2663
|
||||||
|
},
|
||||||
|
"316": {
|
||||||
|
"month": "Apr. 2026",
|
||||||
|
"value": 4591
|
||||||
|
},
|
||||||
|
"444": {
|
||||||
|
"month": "Apr. 2026",
|
||||||
|
"value": 2817
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"history": [
|
||||||
|
{
|
||||||
|
"m": "Jan 2021",
|
||||||
|
"y": 2021,
|
||||||
|
"ss": 620,
|
||||||
|
"lz304": 1910,
|
||||||
|
"lz316": 2722,
|
||||||
|
"lz444": 1253
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"m": "Feb 2021",
|
||||||
|
"y": 2021,
|
||||||
|
"ss": 817,
|
||||||
|
"lz304": 2064,
|
||||||
|
"lz316": 2905,
|
||||||
|
"lz444": 1366
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"m": "Mrz 2021",
|
||||||
|
"y": 2021,
|
||||||
|
"ss": 848,
|
||||||
|
"lz304": 2222,
|
||||||
|
"lz316": 3146,
|
||||||
|
"lz444": 1480
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"m": "Apr 2021",
|
||||||
|
"y": 2021,
|
||||||
|
"ss": 998,
|
||||||
|
"lz304": 2224,
|
||||||
|
"lz316": 3181,
|
||||||
|
"lz444": 1609
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"m": "Mai 2021",
|
||||||
|
"y": 2021,
|
||||||
|
"ss": 1164,
|
||||||
|
"lz304": 2146,
|
||||||
|
"lz316": 3054,
|
||||||
|
"lz444": 1589
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"m": "Jun 2021",
|
||||||
|
"y": 2021,
|
||||||
|
"ss": 1274,
|
||||||
|
"lz304": 2226,
|
||||||
|
"lz316": 3193,
|
||||||
|
"lz444": 1636
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"m": "Jul 2021",
|
||||||
|
"y": 2021,
|
||||||
|
"ss": 1282,
|
||||||
|
"lz304": 2281,
|
||||||
|
"lz316": 3482,
|
||||||
|
"lz444": 1868
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"m": "Aug 2021",
|
||||||
|
"y": 2021,
|
||||||
|
"ss": 1286,
|
||||||
|
"lz304": 2429,
|
||||||
|
"lz316": 3829,
|
||||||
|
"lz444": 2078
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"m": "Sep 2021",
|
||||||
|
"y": 2021,
|
||||||
|
"ss": 1278,
|
||||||
|
"lz304": 2599,
|
||||||
|
"lz316": 4020,
|
||||||
|
"lz444": 2153
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"m": "Okt 2021",
|
||||||
|
"y": 2021,
|
||||||
|
"ss": 1218,
|
||||||
|
"lz304": 2628,
|
||||||
|
"lz316": 4109,
|
||||||
|
"lz444": 2212
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"m": "Nov 2021",
|
||||||
|
"y": 2021,
|
||||||
|
"ss": 1133,
|
||||||
|
"lz304": 2624,
|
||||||
|
"lz316": 4060,
|
||||||
|
"lz444": 2195
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"m": "Dez 2021",
|
||||||
|
"y": 2021,
|
||||||
|
"ss": 1083,
|
||||||
|
"lz304": 2770,
|
||||||
|
"lz316": 4256,
|
||||||
|
"lz444": 2279
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"m": "Jan 2022",
|
||||||
|
"y": 2022,
|
||||||
|
"ss": 1054,
|
||||||
|
"lz304": 2905,
|
||||||
|
"lz316": 4403,
|
||||||
|
"lz444": 2347
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"m": "Feb 2022",
|
||||||
|
"y": 2022,
|
||||||
|
"ss": 1057,
|
||||||
|
"lz304": 2971,
|
||||||
|
"lz316": 4510,
|
||||||
|
"lz444": 2335
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"m": "Mrz 2022",
|
||||||
|
"y": 2022,
|
||||||
|
"ss": 1266,
|
||||||
|
"lz304": 3192,
|
||||||
|
"lz316": 4794,
|
||||||
|
"lz444": 2347
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"m": "Apr 2022",
|
||||||
|
"y": 2022,
|
||||||
|
"ss": 1446,
|
||||||
|
"lz304": 3899,
|
||||||
|
"lz316": 5734,
|
||||||
|
"lz444": 2516
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"m": "Mai 2022",
|
||||||
|
"y": 2022,
|
||||||
|
"ss": 1247,
|
||||||
|
"lz304": 4614,
|
||||||
|
"lz316": 6671,
|
||||||
|
"lz444": 2761
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"m": "Jun 2022",
|
||||||
|
"y": 2022,
|
||||||
|
"ss": 1022,
|
||||||
|
"lz304": 3852,
|
||||||
|
"lz316": 5674,
|
||||||
|
"lz444": 2810
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"m": "Jul 2022",
|
||||||
|
"y": 2022,
|
||||||
|
"ss": 933,
|
||||||
|
"lz304": 3770,
|
||||||
|
"lz316": 5534,
|
||||||
|
"lz444": 2618
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"m": "Aug 2022",
|
||||||
|
"y": 2022,
|
||||||
|
"ss": 895,
|
||||||
|
"lz304": 3277,
|
||||||
|
"lz316": 4916,
|
||||||
|
"lz444": 2495
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"m": "Sep 2022",
|
||||||
|
"y": 2022,
|
||||||
|
"ss": 866,
|
||||||
|
"lz304": 3101,
|
||||||
|
"lz316": 4612,
|
||||||
|
"lz444": 2333
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"m": "Okt 2022",
|
||||||
|
"y": 2022,
|
||||||
|
"ss": 843,
|
||||||
|
"lz304": 3174,
|
||||||
|
"lz316": 4801,
|
||||||
|
"lz444": 2465
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"m": "Nov 2022",
|
||||||
|
"y": 2022,
|
||||||
|
"ss": 766,
|
||||||
|
"lz304": 3211,
|
||||||
|
"lz316": 5020,
|
||||||
|
"lz444": 2570
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"m": "Dez 2022",
|
||||||
|
"y": 2022,
|
||||||
|
"ss": 731,
|
||||||
|
"lz304": 3224,
|
||||||
|
"lz316": 5076,
|
||||||
|
"lz444": 2478
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"m": "Jan 2023",
|
||||||
|
"y": 2023,
|
||||||
|
"ss": 799,
|
||||||
|
"lz304": 3502,
|
||||||
|
"lz316": 5608,
|
||||||
|
"lz444": 2580
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"m": "Feb 2023",
|
||||||
|
"y": 2023,
|
||||||
|
"ss": 861,
|
||||||
|
"lz304": 3587,
|
||||||
|
"lz316": 6100,
|
||||||
|
"lz444": 2939
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"m": "Mrz 2023",
|
||||||
|
"y": 2023,
|
||||||
|
"ss": 916,
|
||||||
|
"lz304": 3484,
|
||||||
|
"lz316": 6566,
|
||||||
|
"lz444": 3499
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"m": "Apr 2023",
|
||||||
|
"y": 2023,
|
||||||
|
"ss": 953,
|
||||||
|
"lz304": 3174,
|
||||||
|
"lz316": 6048,
|
||||||
|
"lz444": 3485
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"m": "Mai 2023",
|
||||||
|
"y": 2023,
|
||||||
|
"ss": 902,
|
||||||
|
"lz304": 3031,
|
||||||
|
"lz316": 5048,
|
||||||
|
"lz444": 2778
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"m": "Jun 2023",
|
||||||
|
"y": 2023,
|
||||||
|
"ss": 800,
|
||||||
|
"lz304": 3007,
|
||||||
|
"lz316": 4862,
|
||||||
|
"lz444": 2628
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"m": "Jul 2023",
|
||||||
|
"y": 2023,
|
||||||
|
"ss": 772,
|
||||||
|
"lz304": 2858,
|
||||||
|
"lz316": 4657,
|
||||||
|
"lz444": 2640
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"m": "Aug 2023",
|
||||||
|
"y": 2023,
|
||||||
|
"ss": 756,
|
||||||
|
"lz304": 2651,
|
||||||
|
"lz316": 4392,
|
||||||
|
"lz444": 2519
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"m": "Sep 2023",
|
||||||
|
"y": 2023,
|
||||||
|
"ss": 747,
|
||||||
|
"lz304": 2629,
|
||||||
|
"lz316": 4465,
|
||||||
|
"lz444": 2543
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"m": "Okt 2023",
|
||||||
|
"y": 2023,
|
||||||
|
"ss": 720,
|
||||||
|
"lz304": 2640,
|
||||||
|
"lz316": 4507,
|
||||||
|
"lz444": 2629
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"m": "Nov 2023",
|
||||||
|
"y": 2023,
|
||||||
|
"ss": 729,
|
||||||
|
"lz304": 2573,
|
||||||
|
"lz316": 4334,
|
||||||
|
"lz444": 2599
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"m": "Dez 2023",
|
||||||
|
"y": 2023,
|
||||||
|
"ss": 769,
|
||||||
|
"lz304": 2466,
|
||||||
|
"lz316": 4048,
|
||||||
|
"lz444": 2452
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"m": "Jan 2024",
|
||||||
|
"y": 2024,
|
||||||
|
"ss": 803,
|
||||||
|
"lz304": 2384,
|
||||||
|
"lz316": 3793,
|
||||||
|
"lz444": 2339
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"m": "Feb 2024",
|
||||||
|
"y": 2024,
|
||||||
|
"ss": 834,
|
||||||
|
"lz304": 2341,
|
||||||
|
"lz316": 3890,
|
||||||
|
"lz444": 2459
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"m": "Mrz 2024",
|
||||||
|
"y": 2024,
|
||||||
|
"ss": 801,
|
||||||
|
"lz304": 2424,
|
||||||
|
"lz316": 3962,
|
||||||
|
"lz444": 2458
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"m": "Apr 2024",
|
||||||
|
"y": 2024,
|
||||||
|
"ss": 747,
|
||||||
|
"lz304": 2543,
|
||||||
|
"lz316": 4159,
|
||||||
|
"lz444": 2461
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"m": "Mai 2024",
|
||||||
|
"y": 2024,
|
||||||
|
"ss": 739,
|
||||||
|
"lz304": 2594,
|
||||||
|
"lz316": 4200,
|
||||||
|
"lz444": 2495
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"m": "Jun 2024",
|
||||||
|
"y": 2024,
|
||||||
|
"ss": 738,
|
||||||
|
"lz304": 2776,
|
||||||
|
"lz316": 4505,
|
||||||
|
"lz444": 2574
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"m": "Jul 2024",
|
||||||
|
"y": 2024,
|
||||||
|
"ss": 736,
|
||||||
|
"lz304": 2752,
|
||||||
|
"lz316": 4578,
|
||||||
|
"lz444": 2654
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"m": "Aug 2024",
|
||||||
|
"y": 2024,
|
||||||
|
"ss": 724,
|
||||||
|
"lz304": 2547,
|
||||||
|
"lz316": 4297,
|
||||||
|
"lz444": 2651
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"m": "Sep 2024",
|
||||||
|
"y": 2024,
|
||||||
|
"ss": 695,
|
||||||
|
"lz304": 2418,
|
||||||
|
"lz316": 4044,
|
||||||
|
"lz444": 2555
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"m": "Okt 2024",
|
||||||
|
"y": 2024,
|
||||||
|
"ss": 647,
|
||||||
|
"lz304": 2385,
|
||||||
|
"lz316": 3989,
|
||||||
|
"lz444": 2506
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"m": "Nov 2024",
|
||||||
|
"y": 2024,
|
||||||
|
"ss": 662,
|
||||||
|
"lz304": 2514,
|
||||||
|
"lz316": 4156,
|
||||||
|
"lz444": 2534
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"m": "Dez 2024",
|
||||||
|
"y": 2024,
|
||||||
|
"ss": 666,
|
||||||
|
"lz304": 2477,
|
||||||
|
"lz316": 4135,
|
||||||
|
"lz444": 2623
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"m": "Jan 2025",
|
||||||
|
"y": 2025,
|
||||||
|
"ss": 668,
|
||||||
|
"lz304": 2538,
|
||||||
|
"lz316": 4205,
|
||||||
|
"lz444": 2659
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"m": "Feb 2025",
|
||||||
|
"y": 2025,
|
||||||
|
"ss": 690,
|
||||||
|
"lz304": 2542,
|
||||||
|
"lz316": 4226,
|
||||||
|
"lz444": 2686
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"m": "Mrz 2025",
|
||||||
|
"y": 2025,
|
||||||
|
"ss": 720,
|
||||||
|
"lz304": 2522,
|
||||||
|
"lz316": 4181,
|
||||||
|
"lz444": 2652
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"m": "Apr 2025",
|
||||||
|
"y": 2025,
|
||||||
|
"ss": 734,
|
||||||
|
"lz304": 2510,
|
||||||
|
"lz316": 4144,
|
||||||
|
"lz444": 2602
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"m": "Mai 2025",
|
||||||
|
"y": 2025,
|
||||||
|
"ss": 730,
|
||||||
|
"lz304": 2382,
|
||||||
|
"lz316": 3916,
|
||||||
|
"lz444": 2502
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"m": "Jun 2025",
|
||||||
|
"y": 2025,
|
||||||
|
"ss": 705,
|
||||||
|
"lz304": 2280,
|
||||||
|
"lz316": 3748,
|
||||||
|
"lz444": 2386
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"m": "Jul 2025",
|
||||||
|
"y": 2025,
|
||||||
|
"ss": 657,
|
||||||
|
"lz304": 2243,
|
||||||
|
"lz316": 3751,
|
||||||
|
"lz444": 2437
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"m": "Aug 2025",
|
||||||
|
"y": 2025,
|
||||||
|
"ss": 660,
|
||||||
|
"lz304": 2201,
|
||||||
|
"lz316": 3708,
|
||||||
|
"lz444": 2433
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"m": "Sep 2025",
|
||||||
|
"y": 2025,
|
||||||
|
"ss": 668,
|
||||||
|
"lz304": 2260,
|
||||||
|
"lz316": 3841,
|
||||||
|
"lz444": 2510
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"m": "Okt 2025",
|
||||||
|
"y": 2025,
|
||||||
|
"ss": 670,
|
||||||
|
"lz304": 2261,
|
||||||
|
"lz316": 3927,
|
||||||
|
"lz444": 2572
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"m": "Nov 2025",
|
||||||
|
"y": 2025,
|
||||||
|
"ss": 703,
|
||||||
|
"lz304": 2297,
|
||||||
|
"lz316": 3936,
|
||||||
|
"lz444": 2550
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"m": "Dez 2025",
|
||||||
|
"y": 2025,
|
||||||
|
"ss": 715,
|
||||||
|
"lz304": 2322,
|
||||||
|
"lz316": 3943,
|
||||||
|
"lz444": 2552
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"m": "Jan 2026",
|
||||||
|
"y": 2026,
|
||||||
|
"ss": 350,
|
||||||
|
"lz304": 1000,
|
||||||
|
"lz316": 1500,
|
||||||
|
"lz444": 2478
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"m": "Feb 2026",
|
||||||
|
"y": 2026,
|
||||||
|
"ss": 755,
|
||||||
|
"lz304": 2541,
|
||||||
|
"lz316": 4179,
|
||||||
|
"lz444": 2522
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"m": "Mrz 2026",
|
||||||
|
"y": 2026,
|
||||||
|
"ss": 792,
|
||||||
|
"lz304": 2571,
|
||||||
|
"lz316": 4367,
|
||||||
|
"lz444": 2637
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"m": "Apr 2026",
|
||||||
|
"y": 2026,
|
||||||
|
"ss": 813,
|
||||||
|
"lz304": 2663,
|
||||||
|
"lz316": 4591,
|
||||||
|
"lz444": 2817
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"baseSS": 727
|
||||||
|
}
|
||||||
531
backups/data-2026-05-20T07-26-21-683Z.json
Normal file
531
backups/data-2026-05-20T07-26-21-683Z.json
Normal file
@@ -0,0 +1,531 @@
|
|||||||
|
{
|
||||||
|
"surcharges": {
|
||||||
|
"304": {
|
||||||
|
"month": "Apr. 2026",
|
||||||
|
"value": 2663
|
||||||
|
},
|
||||||
|
"316": {
|
||||||
|
"month": "Apr. 2026",
|
||||||
|
"value": 4591
|
||||||
|
},
|
||||||
|
"444": {
|
||||||
|
"month": "Apr. 2026",
|
||||||
|
"value": 2817
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"history": [
|
||||||
|
{
|
||||||
|
"m": "Jan 2021",
|
||||||
|
"y": 2021,
|
||||||
|
"ss": 620,
|
||||||
|
"lz304": 1910,
|
||||||
|
"lz316": 2722,
|
||||||
|
"lz444": 1253
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"m": "Feb 2021",
|
||||||
|
"y": 2021,
|
||||||
|
"ss": 817,
|
||||||
|
"lz304": 2064,
|
||||||
|
"lz316": 2905,
|
||||||
|
"lz444": 1366
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"m": "Mrz 2021",
|
||||||
|
"y": 2021,
|
||||||
|
"ss": 848,
|
||||||
|
"lz304": 2222,
|
||||||
|
"lz316": 3146,
|
||||||
|
"lz444": 1480
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"m": "Apr 2021",
|
||||||
|
"y": 2021,
|
||||||
|
"ss": 998,
|
||||||
|
"lz304": 2224,
|
||||||
|
"lz316": 3181,
|
||||||
|
"lz444": 1609
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"m": "Mai 2021",
|
||||||
|
"y": 2021,
|
||||||
|
"ss": 1164,
|
||||||
|
"lz304": 2146,
|
||||||
|
"lz316": 3054,
|
||||||
|
"lz444": 1589
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"m": "Jun 2021",
|
||||||
|
"y": 2021,
|
||||||
|
"ss": 1274,
|
||||||
|
"lz304": 2226,
|
||||||
|
"lz316": 3193,
|
||||||
|
"lz444": 1636
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"m": "Jul 2021",
|
||||||
|
"y": 2021,
|
||||||
|
"ss": 1282,
|
||||||
|
"lz304": 2281,
|
||||||
|
"lz316": 3482,
|
||||||
|
"lz444": 1868
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"m": "Aug 2021",
|
||||||
|
"y": 2021,
|
||||||
|
"ss": 1286,
|
||||||
|
"lz304": 2429,
|
||||||
|
"lz316": 3829,
|
||||||
|
"lz444": 2078
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"m": "Sep 2021",
|
||||||
|
"y": 2021,
|
||||||
|
"ss": 1278,
|
||||||
|
"lz304": 2599,
|
||||||
|
"lz316": 4020,
|
||||||
|
"lz444": 2153
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"m": "Okt 2021",
|
||||||
|
"y": 2021,
|
||||||
|
"ss": 1218,
|
||||||
|
"lz304": 2628,
|
||||||
|
"lz316": 4109,
|
||||||
|
"lz444": 2212
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"m": "Nov 2021",
|
||||||
|
"y": 2021,
|
||||||
|
"ss": 1133,
|
||||||
|
"lz304": 2624,
|
||||||
|
"lz316": 4060,
|
||||||
|
"lz444": 2195
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"m": "Dez 2021",
|
||||||
|
"y": 2021,
|
||||||
|
"ss": 1083,
|
||||||
|
"lz304": 2770,
|
||||||
|
"lz316": 4256,
|
||||||
|
"lz444": 2279
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"m": "Jan 2022",
|
||||||
|
"y": 2022,
|
||||||
|
"ss": 1054,
|
||||||
|
"lz304": 2905,
|
||||||
|
"lz316": 4403,
|
||||||
|
"lz444": 2347
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"m": "Feb 2022",
|
||||||
|
"y": 2022,
|
||||||
|
"ss": 1057,
|
||||||
|
"lz304": 2971,
|
||||||
|
"lz316": 4510,
|
||||||
|
"lz444": 2335
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"m": "Mrz 2022",
|
||||||
|
"y": 2022,
|
||||||
|
"ss": 1266,
|
||||||
|
"lz304": 3192,
|
||||||
|
"lz316": 4794,
|
||||||
|
"lz444": 2347
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"m": "Apr 2022",
|
||||||
|
"y": 2022,
|
||||||
|
"ss": 1446,
|
||||||
|
"lz304": 3899,
|
||||||
|
"lz316": 5734,
|
||||||
|
"lz444": 2516
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"m": "Mai 2022",
|
||||||
|
"y": 2022,
|
||||||
|
"ss": 1247,
|
||||||
|
"lz304": 4614,
|
||||||
|
"lz316": 6671,
|
||||||
|
"lz444": 2761
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"m": "Jun 2022",
|
||||||
|
"y": 2022,
|
||||||
|
"ss": 1022,
|
||||||
|
"lz304": 3852,
|
||||||
|
"lz316": 5674,
|
||||||
|
"lz444": 2810
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"m": "Jul 2022",
|
||||||
|
"y": 2022,
|
||||||
|
"ss": 933,
|
||||||
|
"lz304": 3770,
|
||||||
|
"lz316": 5534,
|
||||||
|
"lz444": 2618
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"m": "Aug 2022",
|
||||||
|
"y": 2022,
|
||||||
|
"ss": 895,
|
||||||
|
"lz304": 3277,
|
||||||
|
"lz316": 4916,
|
||||||
|
"lz444": 2495
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"m": "Sep 2022",
|
||||||
|
"y": 2022,
|
||||||
|
"ss": 866,
|
||||||
|
"lz304": 3101,
|
||||||
|
"lz316": 4612,
|
||||||
|
"lz444": 2333
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"m": "Okt 2022",
|
||||||
|
"y": 2022,
|
||||||
|
"ss": 843,
|
||||||
|
"lz304": 3174,
|
||||||
|
"lz316": 4801,
|
||||||
|
"lz444": 2465
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"m": "Nov 2022",
|
||||||
|
"y": 2022,
|
||||||
|
"ss": 766,
|
||||||
|
"lz304": 3211,
|
||||||
|
"lz316": 5020,
|
||||||
|
"lz444": 2570
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"m": "Dez 2022",
|
||||||
|
"y": 2022,
|
||||||
|
"ss": 731,
|
||||||
|
"lz304": 3224,
|
||||||
|
"lz316": 5076,
|
||||||
|
"lz444": 2478
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"m": "Jan 2023",
|
||||||
|
"y": 2023,
|
||||||
|
"ss": 799,
|
||||||
|
"lz304": 3502,
|
||||||
|
"lz316": 5608,
|
||||||
|
"lz444": 2580
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"m": "Feb 2023",
|
||||||
|
"y": 2023,
|
||||||
|
"ss": 861,
|
||||||
|
"lz304": 3587,
|
||||||
|
"lz316": 6100,
|
||||||
|
"lz444": 2939
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"m": "Mrz 2023",
|
||||||
|
"y": 2023,
|
||||||
|
"ss": 916,
|
||||||
|
"lz304": 3484,
|
||||||
|
"lz316": 6566,
|
||||||
|
"lz444": 3499
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"m": "Apr 2023",
|
||||||
|
"y": 2023,
|
||||||
|
"ss": 953,
|
||||||
|
"lz304": 3174,
|
||||||
|
"lz316": 6048,
|
||||||
|
"lz444": 3485
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"m": "Mai 2023",
|
||||||
|
"y": 2023,
|
||||||
|
"ss": 902,
|
||||||
|
"lz304": 3031,
|
||||||
|
"lz316": 5048,
|
||||||
|
"lz444": 2778
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"m": "Jun 2023",
|
||||||
|
"y": 2023,
|
||||||
|
"ss": 800,
|
||||||
|
"lz304": 3007,
|
||||||
|
"lz316": 4862,
|
||||||
|
"lz444": 2628
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"m": "Jul 2023",
|
||||||
|
"y": 2023,
|
||||||
|
"ss": 772,
|
||||||
|
"lz304": 2858,
|
||||||
|
"lz316": 4657,
|
||||||
|
"lz444": 2640
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"m": "Aug 2023",
|
||||||
|
"y": 2023,
|
||||||
|
"ss": 756,
|
||||||
|
"lz304": 2651,
|
||||||
|
"lz316": 4392,
|
||||||
|
"lz444": 2519
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"m": "Sep 2023",
|
||||||
|
"y": 2023,
|
||||||
|
"ss": 747,
|
||||||
|
"lz304": 2629,
|
||||||
|
"lz316": 4465,
|
||||||
|
"lz444": 2543
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"m": "Okt 2023",
|
||||||
|
"y": 2023,
|
||||||
|
"ss": 720,
|
||||||
|
"lz304": 2640,
|
||||||
|
"lz316": 4507,
|
||||||
|
"lz444": 2629
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"m": "Nov 2023",
|
||||||
|
"y": 2023,
|
||||||
|
"ss": 729,
|
||||||
|
"lz304": 2573,
|
||||||
|
"lz316": 4334,
|
||||||
|
"lz444": 2599
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"m": "Dez 2023",
|
||||||
|
"y": 2023,
|
||||||
|
"ss": 769,
|
||||||
|
"lz304": 2466,
|
||||||
|
"lz316": 4048,
|
||||||
|
"lz444": 2452
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"m": "Jan 2024",
|
||||||
|
"y": 2024,
|
||||||
|
"ss": 803,
|
||||||
|
"lz304": 2384,
|
||||||
|
"lz316": 3793,
|
||||||
|
"lz444": 2339
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"m": "Feb 2024",
|
||||||
|
"y": 2024,
|
||||||
|
"ss": 834,
|
||||||
|
"lz304": 2341,
|
||||||
|
"lz316": 3890,
|
||||||
|
"lz444": 2459
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"m": "Mrz 2024",
|
||||||
|
"y": 2024,
|
||||||
|
"ss": 801,
|
||||||
|
"lz304": 2424,
|
||||||
|
"lz316": 3962,
|
||||||
|
"lz444": 2458
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"m": "Apr 2024",
|
||||||
|
"y": 2024,
|
||||||
|
"ss": 747,
|
||||||
|
"lz304": 2543,
|
||||||
|
"lz316": 4159,
|
||||||
|
"lz444": 2461
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"m": "Mai 2024",
|
||||||
|
"y": 2024,
|
||||||
|
"ss": 739,
|
||||||
|
"lz304": 2594,
|
||||||
|
"lz316": 4200,
|
||||||
|
"lz444": 2495
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"m": "Jun 2024",
|
||||||
|
"y": 2024,
|
||||||
|
"ss": 738,
|
||||||
|
"lz304": 2776,
|
||||||
|
"lz316": 4505,
|
||||||
|
"lz444": 2574
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"m": "Jul 2024",
|
||||||
|
"y": 2024,
|
||||||
|
"ss": 736,
|
||||||
|
"lz304": 2752,
|
||||||
|
"lz316": 4578,
|
||||||
|
"lz444": 2654
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"m": "Aug 2024",
|
||||||
|
"y": 2024,
|
||||||
|
"ss": 724,
|
||||||
|
"lz304": 2547,
|
||||||
|
"lz316": 4297,
|
||||||
|
"lz444": 2651
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"m": "Sep 2024",
|
||||||
|
"y": 2024,
|
||||||
|
"ss": 695,
|
||||||
|
"lz304": 2418,
|
||||||
|
"lz316": 4044,
|
||||||
|
"lz444": 2555
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"m": "Okt 2024",
|
||||||
|
"y": 2024,
|
||||||
|
"ss": 647,
|
||||||
|
"lz304": 2385,
|
||||||
|
"lz316": 3989,
|
||||||
|
"lz444": 2506
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"m": "Nov 2024",
|
||||||
|
"y": 2024,
|
||||||
|
"ss": 662,
|
||||||
|
"lz304": 2514,
|
||||||
|
"lz316": 4156,
|
||||||
|
"lz444": 2534
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"m": "Dez 2024",
|
||||||
|
"y": 2024,
|
||||||
|
"ss": 666,
|
||||||
|
"lz304": 2477,
|
||||||
|
"lz316": 4135,
|
||||||
|
"lz444": 2623
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"m": "Jan 2025",
|
||||||
|
"y": 2025,
|
||||||
|
"ss": 668,
|
||||||
|
"lz304": 2538,
|
||||||
|
"lz316": 4205,
|
||||||
|
"lz444": 2659
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"m": "Feb 2025",
|
||||||
|
"y": 2025,
|
||||||
|
"ss": 690,
|
||||||
|
"lz304": 2542,
|
||||||
|
"lz316": 4226,
|
||||||
|
"lz444": 2686
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"m": "Mrz 2025",
|
||||||
|
"y": 2025,
|
||||||
|
"ss": 720,
|
||||||
|
"lz304": 2522,
|
||||||
|
"lz316": 4181,
|
||||||
|
"lz444": 2652
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"m": "Apr 2025",
|
||||||
|
"y": 2025,
|
||||||
|
"ss": 734,
|
||||||
|
"lz304": 2510,
|
||||||
|
"lz316": 4144,
|
||||||
|
"lz444": 2602
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"m": "Mai 2025",
|
||||||
|
"y": 2025,
|
||||||
|
"ss": 730,
|
||||||
|
"lz304": 2382,
|
||||||
|
"lz316": 3916,
|
||||||
|
"lz444": 2502
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"m": "Jun 2025",
|
||||||
|
"y": 2025,
|
||||||
|
"ss": 705,
|
||||||
|
"lz304": 2280,
|
||||||
|
"lz316": 3748,
|
||||||
|
"lz444": 2386
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"m": "Jul 2025",
|
||||||
|
"y": 2025,
|
||||||
|
"ss": 657,
|
||||||
|
"lz304": 2243,
|
||||||
|
"lz316": 3751,
|
||||||
|
"lz444": 2437
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"m": "Aug 2025",
|
||||||
|
"y": 2025,
|
||||||
|
"ss": 660,
|
||||||
|
"lz304": 2201,
|
||||||
|
"lz316": 3708,
|
||||||
|
"lz444": 2433
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"m": "Sep 2025",
|
||||||
|
"y": 2025,
|
||||||
|
"ss": 668,
|
||||||
|
"lz304": 2260,
|
||||||
|
"lz316": 3841,
|
||||||
|
"lz444": 2510
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"m": "Okt 2025",
|
||||||
|
"y": 2025,
|
||||||
|
"ss": 670,
|
||||||
|
"lz304": 2261,
|
||||||
|
"lz316": 3927,
|
||||||
|
"lz444": 2572
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"m": "Nov 2025",
|
||||||
|
"y": 2025,
|
||||||
|
"ss": 703,
|
||||||
|
"lz304": 2297,
|
||||||
|
"lz316": 3936,
|
||||||
|
"lz444": 2550
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"m": "Dez 2025",
|
||||||
|
"y": 2025,
|
||||||
|
"ss": 715,
|
||||||
|
"lz304": 2322,
|
||||||
|
"lz316": 3943,
|
||||||
|
"lz444": 2552
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"m": "Jan 2026",
|
||||||
|
"y": 2026,
|
||||||
|
"ss": 727,
|
||||||
|
"lz304": 2303,
|
||||||
|
"lz316": 3815,
|
||||||
|
"lz444": 200
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"m": "Feb 2026",
|
||||||
|
"y": 2026,
|
||||||
|
"ss": 755,
|
||||||
|
"lz304": 2541,
|
||||||
|
"lz316": 4179,
|
||||||
|
"lz444": 2522
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"m": "Mrz 2026",
|
||||||
|
"y": 2026,
|
||||||
|
"ss": 792,
|
||||||
|
"lz304": 2571,
|
||||||
|
"lz316": 4367,
|
||||||
|
"lz444": 2637
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"m": "Apr 2026",
|
||||||
|
"y": 2026,
|
||||||
|
"ss": 813,
|
||||||
|
"lz304": 2663,
|
||||||
|
"lz316": 4591,
|
||||||
|
"lz444": 2817
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"baseSS": 727
|
||||||
|
}
|
||||||
126
data.json
126
data.json
@@ -25,7 +25,7 @@
|
|||||||
{
|
{
|
||||||
"m": "Feb 2021",
|
"m": "Feb 2021",
|
||||||
"y": 2021,
|
"y": 2021,
|
||||||
"ss": 650,
|
"ss": 817,
|
||||||
"lz304": 2064,
|
"lz304": 2064,
|
||||||
"lz316": 2905,
|
"lz316": 2905,
|
||||||
"lz444": 1366
|
"lz444": 1366
|
||||||
@@ -33,7 +33,7 @@
|
|||||||
{
|
{
|
||||||
"m": "Mrz 2021",
|
"m": "Mrz 2021",
|
||||||
"y": 2021,
|
"y": 2021,
|
||||||
"ss": 700,
|
"ss": 848,
|
||||||
"lz304": 2222,
|
"lz304": 2222,
|
||||||
"lz316": 3146,
|
"lz316": 3146,
|
||||||
"lz444": 1480
|
"lz444": 1480
|
||||||
@@ -41,7 +41,7 @@
|
|||||||
{
|
{
|
||||||
"m": "Apr 2021",
|
"m": "Apr 2021",
|
||||||
"y": 2021,
|
"y": 2021,
|
||||||
"ss": 760,
|
"ss": 998,
|
||||||
"lz304": 2224,
|
"lz304": 2224,
|
||||||
"lz316": 3181,
|
"lz316": 3181,
|
||||||
"lz444": 1609
|
"lz444": 1609
|
||||||
@@ -49,7 +49,7 @@
|
|||||||
{
|
{
|
||||||
"m": "Mai 2021",
|
"m": "Mai 2021",
|
||||||
"y": 2021,
|
"y": 2021,
|
||||||
"ss": 810,
|
"ss": 1164,
|
||||||
"lz304": 2146,
|
"lz304": 2146,
|
||||||
"lz316": 3054,
|
"lz316": 3054,
|
||||||
"lz444": 1589
|
"lz444": 1589
|
||||||
@@ -57,7 +57,7 @@
|
|||||||
{
|
{
|
||||||
"m": "Jun 2021",
|
"m": "Jun 2021",
|
||||||
"y": 2021,
|
"y": 2021,
|
||||||
"ss": 870,
|
"ss": 1274,
|
||||||
"lz304": 2226,
|
"lz304": 2226,
|
||||||
"lz316": 3193,
|
"lz316": 3193,
|
||||||
"lz444": 1636
|
"lz444": 1636
|
||||||
@@ -65,7 +65,7 @@
|
|||||||
{
|
{
|
||||||
"m": "Jul 2021",
|
"m": "Jul 2021",
|
||||||
"y": 2021,
|
"y": 2021,
|
||||||
"ss": 920,
|
"ss": 1282,
|
||||||
"lz304": 2281,
|
"lz304": 2281,
|
||||||
"lz316": 3482,
|
"lz316": 3482,
|
||||||
"lz444": 1868
|
"lz444": 1868
|
||||||
@@ -73,7 +73,7 @@
|
|||||||
{
|
{
|
||||||
"m": "Aug 2021",
|
"m": "Aug 2021",
|
||||||
"y": 2021,
|
"y": 2021,
|
||||||
"ss": 960,
|
"ss": 1286,
|
||||||
"lz304": 2429,
|
"lz304": 2429,
|
||||||
"lz316": 3829,
|
"lz316": 3829,
|
||||||
"lz444": 2078
|
"lz444": 2078
|
||||||
@@ -81,7 +81,7 @@
|
|||||||
{
|
{
|
||||||
"m": "Sep 2021",
|
"m": "Sep 2021",
|
||||||
"y": 2021,
|
"y": 2021,
|
||||||
"ss": 1000,
|
"ss": 1278,
|
||||||
"lz304": 2599,
|
"lz304": 2599,
|
||||||
"lz316": 4020,
|
"lz316": 4020,
|
||||||
"lz444": 2153
|
"lz444": 2153
|
||||||
@@ -89,7 +89,7 @@
|
|||||||
{
|
{
|
||||||
"m": "Okt 2021",
|
"m": "Okt 2021",
|
||||||
"y": 2021,
|
"y": 2021,
|
||||||
"ss": 1050,
|
"ss": 1218,
|
||||||
"lz304": 2628,
|
"lz304": 2628,
|
||||||
"lz316": 4109,
|
"lz316": 4109,
|
||||||
"lz444": 2212
|
"lz444": 2212
|
||||||
@@ -97,7 +97,7 @@
|
|||||||
{
|
{
|
||||||
"m": "Nov 2021",
|
"m": "Nov 2021",
|
||||||
"y": 2021,
|
"y": 2021,
|
||||||
"ss": 1080,
|
"ss": 1133,
|
||||||
"lz304": 2624,
|
"lz304": 2624,
|
||||||
"lz316": 4060,
|
"lz316": 4060,
|
||||||
"lz444": 2195
|
"lz444": 2195
|
||||||
@@ -105,7 +105,7 @@
|
|||||||
{
|
{
|
||||||
"m": "Dez 2021",
|
"m": "Dez 2021",
|
||||||
"y": 2021,
|
"y": 2021,
|
||||||
"ss": 1100,
|
"ss": 1083,
|
||||||
"lz304": 2770,
|
"lz304": 2770,
|
||||||
"lz316": 4256,
|
"lz316": 4256,
|
||||||
"lz444": 2279
|
"lz444": 2279
|
||||||
@@ -113,7 +113,7 @@
|
|||||||
{
|
{
|
||||||
"m": "Jan 2022",
|
"m": "Jan 2022",
|
||||||
"y": 2022,
|
"y": 2022,
|
||||||
"ss": 1150,
|
"ss": 1054,
|
||||||
"lz304": 2905,
|
"lz304": 2905,
|
||||||
"lz316": 4403,
|
"lz316": 4403,
|
||||||
"lz444": 2347
|
"lz444": 2347
|
||||||
@@ -121,7 +121,7 @@
|
|||||||
{
|
{
|
||||||
"m": "Feb 2022",
|
"m": "Feb 2022",
|
||||||
"y": 2022,
|
"y": 2022,
|
||||||
"ss": 1280,
|
"ss": 1057,
|
||||||
"lz304": 2971,
|
"lz304": 2971,
|
||||||
"lz316": 4510,
|
"lz316": 4510,
|
||||||
"lz444": 2335
|
"lz444": 2335
|
||||||
@@ -129,7 +129,7 @@
|
|||||||
{
|
{
|
||||||
"m": "Mrz 2022",
|
"m": "Mrz 2022",
|
||||||
"y": 2022,
|
"y": 2022,
|
||||||
"ss": 1380,
|
"ss": 1266,
|
||||||
"lz304": 3192,
|
"lz304": 3192,
|
||||||
"lz316": 4794,
|
"lz316": 4794,
|
||||||
"lz444": 2347
|
"lz444": 2347
|
||||||
@@ -137,7 +137,7 @@
|
|||||||
{
|
{
|
||||||
"m": "Apr 2022",
|
"m": "Apr 2022",
|
||||||
"y": 2022,
|
"y": 2022,
|
||||||
"ss": 1300,
|
"ss": 1446,
|
||||||
"lz304": 3899,
|
"lz304": 3899,
|
||||||
"lz316": 5734,
|
"lz316": 5734,
|
||||||
"lz444": 2516
|
"lz444": 2516
|
||||||
@@ -145,7 +145,7 @@
|
|||||||
{
|
{
|
||||||
"m": "Mai 2022",
|
"m": "Mai 2022",
|
||||||
"y": 2022,
|
"y": 2022,
|
||||||
"ss": 1150,
|
"ss": 1247,
|
||||||
"lz304": 4614,
|
"lz304": 4614,
|
||||||
"lz316": 6671,
|
"lz316": 6671,
|
||||||
"lz444": 2761
|
"lz444": 2761
|
||||||
@@ -153,7 +153,7 @@
|
|||||||
{
|
{
|
||||||
"m": "Jun 2022",
|
"m": "Jun 2022",
|
||||||
"y": 2022,
|
"y": 2022,
|
||||||
"ss": 1000,
|
"ss": 1022,
|
||||||
"lz304": 3852,
|
"lz304": 3852,
|
||||||
"lz316": 5674,
|
"lz316": 5674,
|
||||||
"lz444": 2810
|
"lz444": 2810
|
||||||
@@ -161,7 +161,7 @@
|
|||||||
{
|
{
|
||||||
"m": "Jul 2022",
|
"m": "Jul 2022",
|
||||||
"y": 2022,
|
"y": 2022,
|
||||||
"ss": 880,
|
"ss": 933,
|
||||||
"lz304": 3770,
|
"lz304": 3770,
|
||||||
"lz316": 5534,
|
"lz316": 5534,
|
||||||
"lz444": 2618
|
"lz444": 2618
|
||||||
@@ -169,7 +169,7 @@
|
|||||||
{
|
{
|
||||||
"m": "Aug 2022",
|
"m": "Aug 2022",
|
||||||
"y": 2022,
|
"y": 2022,
|
||||||
"ss": 820,
|
"ss": 895,
|
||||||
"lz304": 3277,
|
"lz304": 3277,
|
||||||
"lz316": 4916,
|
"lz316": 4916,
|
||||||
"lz444": 2495
|
"lz444": 2495
|
||||||
@@ -177,7 +177,7 @@
|
|||||||
{
|
{
|
||||||
"m": "Sep 2022",
|
"m": "Sep 2022",
|
||||||
"y": 2022,
|
"y": 2022,
|
||||||
"ss": 790,
|
"ss": 866,
|
||||||
"lz304": 3101,
|
"lz304": 3101,
|
||||||
"lz316": 4612,
|
"lz316": 4612,
|
||||||
"lz444": 2333
|
"lz444": 2333
|
||||||
@@ -185,7 +185,7 @@
|
|||||||
{
|
{
|
||||||
"m": "Okt 2022",
|
"m": "Okt 2022",
|
||||||
"y": 2022,
|
"y": 2022,
|
||||||
"ss": 760,
|
"ss": 843,
|
||||||
"lz304": 3174,
|
"lz304": 3174,
|
||||||
"lz316": 4801,
|
"lz316": 4801,
|
||||||
"lz444": 2465
|
"lz444": 2465
|
||||||
@@ -193,7 +193,7 @@
|
|||||||
{
|
{
|
||||||
"m": "Nov 2022",
|
"m": "Nov 2022",
|
||||||
"y": 2022,
|
"y": 2022,
|
||||||
"ss": 740,
|
"ss": 766,
|
||||||
"lz304": 3211,
|
"lz304": 3211,
|
||||||
"lz316": 5020,
|
"lz316": 5020,
|
||||||
"lz444": 2570
|
"lz444": 2570
|
||||||
@@ -201,7 +201,7 @@
|
|||||||
{
|
{
|
||||||
"m": "Dez 2022",
|
"m": "Dez 2022",
|
||||||
"y": 2022,
|
"y": 2022,
|
||||||
"ss": 715,
|
"ss": 731,
|
||||||
"lz304": 3224,
|
"lz304": 3224,
|
||||||
"lz316": 5076,
|
"lz316": 5076,
|
||||||
"lz444": 2478
|
"lz444": 2478
|
||||||
@@ -209,7 +209,7 @@
|
|||||||
{
|
{
|
||||||
"m": "Jan 2023",
|
"m": "Jan 2023",
|
||||||
"y": 2023,
|
"y": 2023,
|
||||||
"ss": 700,
|
"ss": 799,
|
||||||
"lz304": 3502,
|
"lz304": 3502,
|
||||||
"lz316": 5608,
|
"lz316": 5608,
|
||||||
"lz444": 2580
|
"lz444": 2580
|
||||||
@@ -217,7 +217,7 @@
|
|||||||
{
|
{
|
||||||
"m": "Feb 2023",
|
"m": "Feb 2023",
|
||||||
"y": 2023,
|
"y": 2023,
|
||||||
"ss": 730,
|
"ss": 861,
|
||||||
"lz304": 3587,
|
"lz304": 3587,
|
||||||
"lz316": 6100,
|
"lz316": 6100,
|
||||||
"lz444": 2939
|
"lz444": 2939
|
||||||
@@ -225,7 +225,7 @@
|
|||||||
{
|
{
|
||||||
"m": "Mrz 2023",
|
"m": "Mrz 2023",
|
||||||
"y": 2023,
|
"y": 2023,
|
||||||
"ss": 770,
|
"ss": 916,
|
||||||
"lz304": 3484,
|
"lz304": 3484,
|
||||||
"lz316": 6566,
|
"lz316": 6566,
|
||||||
"lz444": 3499
|
"lz444": 3499
|
||||||
@@ -233,7 +233,7 @@
|
|||||||
{
|
{
|
||||||
"m": "Apr 2023",
|
"m": "Apr 2023",
|
||||||
"y": 2023,
|
"y": 2023,
|
||||||
"ss": 810,
|
"ss": 953,
|
||||||
"lz304": 3174,
|
"lz304": 3174,
|
||||||
"lz316": 6048,
|
"lz316": 6048,
|
||||||
"lz444": 3485
|
"lz444": 3485
|
||||||
@@ -241,7 +241,7 @@
|
|||||||
{
|
{
|
||||||
"m": "Mai 2023",
|
"m": "Mai 2023",
|
||||||
"y": 2023,
|
"y": 2023,
|
||||||
"ss": 855,
|
"ss": 902,
|
||||||
"lz304": 3031,
|
"lz304": 3031,
|
||||||
"lz316": 5048,
|
"lz316": 5048,
|
||||||
"lz444": 2778
|
"lz444": 2778
|
||||||
@@ -249,7 +249,7 @@
|
|||||||
{
|
{
|
||||||
"m": "Jun 2023",
|
"m": "Jun 2023",
|
||||||
"y": 2023,
|
"y": 2023,
|
||||||
"ss": 845,
|
"ss": 800,
|
||||||
"lz304": 3007,
|
"lz304": 3007,
|
||||||
"lz316": 4862,
|
"lz316": 4862,
|
||||||
"lz444": 2628
|
"lz444": 2628
|
||||||
@@ -257,7 +257,7 @@
|
|||||||
{
|
{
|
||||||
"m": "Jul 2023",
|
"m": "Jul 2023",
|
||||||
"y": 2023,
|
"y": 2023,
|
||||||
"ss": 810,
|
"ss": 772,
|
||||||
"lz304": 2858,
|
"lz304": 2858,
|
||||||
"lz316": 4657,
|
"lz316": 4657,
|
||||||
"lz444": 2640
|
"lz444": 2640
|
||||||
@@ -265,7 +265,7 @@
|
|||||||
{
|
{
|
||||||
"m": "Aug 2023",
|
"m": "Aug 2023",
|
||||||
"y": 2023,
|
"y": 2023,
|
||||||
"ss": 785,
|
"ss": 756,
|
||||||
"lz304": 2651,
|
"lz304": 2651,
|
||||||
"lz316": 4392,
|
"lz316": 4392,
|
||||||
"lz444": 2519
|
"lz444": 2519
|
||||||
@@ -273,7 +273,7 @@
|
|||||||
{
|
{
|
||||||
"m": "Sep 2023",
|
"m": "Sep 2023",
|
||||||
"y": 2023,
|
"y": 2023,
|
||||||
"ss": 755,
|
"ss": 747,
|
||||||
"lz304": 2629,
|
"lz304": 2629,
|
||||||
"lz316": 4465,
|
"lz316": 4465,
|
||||||
"lz444": 2543
|
"lz444": 2543
|
||||||
@@ -281,7 +281,7 @@
|
|||||||
{
|
{
|
||||||
"m": "Okt 2023",
|
"m": "Okt 2023",
|
||||||
"y": 2023,
|
"y": 2023,
|
||||||
"ss": 730,
|
"ss": 720,
|
||||||
"lz304": 2640,
|
"lz304": 2640,
|
||||||
"lz316": 4507,
|
"lz316": 4507,
|
||||||
"lz444": 2629
|
"lz444": 2629
|
||||||
@@ -289,7 +289,7 @@
|
|||||||
{
|
{
|
||||||
"m": "Nov 2023",
|
"m": "Nov 2023",
|
||||||
"y": 2023,
|
"y": 2023,
|
||||||
"ss": 710,
|
"ss": 729,
|
||||||
"lz304": 2573,
|
"lz304": 2573,
|
||||||
"lz316": 4334,
|
"lz316": 4334,
|
||||||
"lz444": 2599
|
"lz444": 2599
|
||||||
@@ -297,7 +297,7 @@
|
|||||||
{
|
{
|
||||||
"m": "Dez 2023",
|
"m": "Dez 2023",
|
||||||
"y": 2023,
|
"y": 2023,
|
||||||
"ss": 700,
|
"ss": 769,
|
||||||
"lz304": 2466,
|
"lz304": 2466,
|
||||||
"lz316": 4048,
|
"lz316": 4048,
|
||||||
"lz444": 2452
|
"lz444": 2452
|
||||||
@@ -305,7 +305,7 @@
|
|||||||
{
|
{
|
||||||
"m": "Jan 2024",
|
"m": "Jan 2024",
|
||||||
"y": 2024,
|
"y": 2024,
|
||||||
"ss": 730,
|
"ss": 803,
|
||||||
"lz304": 2384,
|
"lz304": 2384,
|
||||||
"lz316": 3793,
|
"lz316": 3793,
|
||||||
"lz444": 2339
|
"lz444": 2339
|
||||||
@@ -313,7 +313,7 @@
|
|||||||
{
|
{
|
||||||
"m": "Feb 2024",
|
"m": "Feb 2024",
|
||||||
"y": 2024,
|
"y": 2024,
|
||||||
"ss": 755,
|
"ss": 834,
|
||||||
"lz304": 2341,
|
"lz304": 2341,
|
||||||
"lz316": 3890,
|
"lz316": 3890,
|
||||||
"lz444": 2459
|
"lz444": 2459
|
||||||
@@ -321,7 +321,7 @@
|
|||||||
{
|
{
|
||||||
"m": "Mrz 2024",
|
"m": "Mrz 2024",
|
||||||
"y": 2024,
|
"y": 2024,
|
||||||
"ss": 770,
|
"ss": 801,
|
||||||
"lz304": 2424,
|
"lz304": 2424,
|
||||||
"lz316": 3962,
|
"lz316": 3962,
|
||||||
"lz444": 2458
|
"lz444": 2458
|
||||||
@@ -329,7 +329,7 @@
|
|||||||
{
|
{
|
||||||
"m": "Apr 2024",
|
"m": "Apr 2024",
|
||||||
"y": 2024,
|
"y": 2024,
|
||||||
"ss": 750,
|
"ss": 747,
|
||||||
"lz304": 2543,
|
"lz304": 2543,
|
||||||
"lz316": 4159,
|
"lz316": 4159,
|
||||||
"lz444": 2461
|
"lz444": 2461
|
||||||
@@ -337,7 +337,7 @@
|
|||||||
{
|
{
|
||||||
"m": "Mai 2024",
|
"m": "Mai 2024",
|
||||||
"y": 2024,
|
"y": 2024,
|
||||||
"ss": 735,
|
"ss": 739,
|
||||||
"lz304": 2594,
|
"lz304": 2594,
|
||||||
"lz316": 4200,
|
"lz316": 4200,
|
||||||
"lz444": 2495
|
"lz444": 2495
|
||||||
@@ -345,7 +345,7 @@
|
|||||||
{
|
{
|
||||||
"m": "Jun 2024",
|
"m": "Jun 2024",
|
||||||
"y": 2024,
|
"y": 2024,
|
||||||
"ss": 715,
|
"ss": 738,
|
||||||
"lz304": 2776,
|
"lz304": 2776,
|
||||||
"lz316": 4505,
|
"lz316": 4505,
|
||||||
"lz444": 2574
|
"lz444": 2574
|
||||||
@@ -353,7 +353,7 @@
|
|||||||
{
|
{
|
||||||
"m": "Jul 2024",
|
"m": "Jul 2024",
|
||||||
"y": 2024,
|
"y": 2024,
|
||||||
"ss": 705,
|
"ss": 736,
|
||||||
"lz304": 2752,
|
"lz304": 2752,
|
||||||
"lz316": 4578,
|
"lz316": 4578,
|
||||||
"lz444": 2654
|
"lz444": 2654
|
||||||
@@ -361,7 +361,7 @@
|
|||||||
{
|
{
|
||||||
"m": "Aug 2024",
|
"m": "Aug 2024",
|
||||||
"y": 2024,
|
"y": 2024,
|
||||||
"ss": 695,
|
"ss": 724,
|
||||||
"lz304": 2547,
|
"lz304": 2547,
|
||||||
"lz316": 4297,
|
"lz316": 4297,
|
||||||
"lz444": 2651
|
"lz444": 2651
|
||||||
@@ -369,7 +369,7 @@
|
|||||||
{
|
{
|
||||||
"m": "Sep 2024",
|
"m": "Sep 2024",
|
||||||
"y": 2024,
|
"y": 2024,
|
||||||
"ss": 680,
|
"ss": 695,
|
||||||
"lz304": 2418,
|
"lz304": 2418,
|
||||||
"lz316": 4044,
|
"lz316": 4044,
|
||||||
"lz444": 2555
|
"lz444": 2555
|
||||||
@@ -377,7 +377,7 @@
|
|||||||
{
|
{
|
||||||
"m": "Okt 2024",
|
"m": "Okt 2024",
|
||||||
"y": 2024,
|
"y": 2024,
|
||||||
"ss": 670,
|
"ss": 647,
|
||||||
"lz304": 2385,
|
"lz304": 2385,
|
||||||
"lz316": 3989,
|
"lz316": 3989,
|
||||||
"lz444": 2506
|
"lz444": 2506
|
||||||
@@ -385,7 +385,7 @@
|
|||||||
{
|
{
|
||||||
"m": "Nov 2024",
|
"m": "Nov 2024",
|
||||||
"y": 2024,
|
"y": 2024,
|
||||||
"ss": 675,
|
"ss": 662,
|
||||||
"lz304": 2514,
|
"lz304": 2514,
|
||||||
"lz316": 4156,
|
"lz316": 4156,
|
||||||
"lz444": 2534
|
"lz444": 2534
|
||||||
@@ -393,7 +393,7 @@
|
|||||||
{
|
{
|
||||||
"m": "Dez 2024",
|
"m": "Dez 2024",
|
||||||
"y": 2024,
|
"y": 2024,
|
||||||
"ss": 720,
|
"ss": 666,
|
||||||
"lz304": 2477,
|
"lz304": 2477,
|
||||||
"lz316": 4135,
|
"lz316": 4135,
|
||||||
"lz444": 2623
|
"lz444": 2623
|
||||||
@@ -401,7 +401,7 @@
|
|||||||
{
|
{
|
||||||
"m": "Jan 2025",
|
"m": "Jan 2025",
|
||||||
"y": 2025,
|
"y": 2025,
|
||||||
"ss": 730,
|
"ss": 668,
|
||||||
"lz304": 2538,
|
"lz304": 2538,
|
||||||
"lz316": 4205,
|
"lz316": 4205,
|
||||||
"lz444": 2659
|
"lz444": 2659
|
||||||
@@ -409,7 +409,7 @@
|
|||||||
{
|
{
|
||||||
"m": "Feb 2025",
|
"m": "Feb 2025",
|
||||||
"y": 2025,
|
"y": 2025,
|
||||||
"ss": 730,
|
"ss": 690,
|
||||||
"lz304": 2542,
|
"lz304": 2542,
|
||||||
"lz316": 4226,
|
"lz316": 4226,
|
||||||
"lz444": 2686
|
"lz444": 2686
|
||||||
@@ -425,7 +425,7 @@
|
|||||||
{
|
{
|
||||||
"m": "Apr 2025",
|
"m": "Apr 2025",
|
||||||
"y": 2025,
|
"y": 2025,
|
||||||
"ss": 715,
|
"ss": 734,
|
||||||
"lz304": 2510,
|
"lz304": 2510,
|
||||||
"lz316": 4144,
|
"lz316": 4144,
|
||||||
"lz444": 2602
|
"lz444": 2602
|
||||||
@@ -433,7 +433,7 @@
|
|||||||
{
|
{
|
||||||
"m": "Mai 2025",
|
"m": "Mai 2025",
|
||||||
"y": 2025,
|
"y": 2025,
|
||||||
"ss": 705,
|
"ss": 730,
|
||||||
"lz304": 2382,
|
"lz304": 2382,
|
||||||
"lz316": 3916,
|
"lz316": 3916,
|
||||||
"lz444": 2502
|
"lz444": 2502
|
||||||
@@ -441,7 +441,7 @@
|
|||||||
{
|
{
|
||||||
"m": "Jun 2025",
|
"m": "Jun 2025",
|
||||||
"y": 2025,
|
"y": 2025,
|
||||||
"ss": 700,
|
"ss": 705,
|
||||||
"lz304": 2280,
|
"lz304": 2280,
|
||||||
"lz316": 3748,
|
"lz316": 3748,
|
||||||
"lz444": 2386
|
"lz444": 2386
|
||||||
@@ -449,7 +449,7 @@
|
|||||||
{
|
{
|
||||||
"m": "Jul 2025",
|
"m": "Jul 2025",
|
||||||
"y": 2025,
|
"y": 2025,
|
||||||
"ss": 695,
|
"ss": 657,
|
||||||
"lz304": 2243,
|
"lz304": 2243,
|
||||||
"lz316": 3751,
|
"lz316": 3751,
|
||||||
"lz444": 2437
|
"lz444": 2437
|
||||||
@@ -457,7 +457,7 @@
|
|||||||
{
|
{
|
||||||
"m": "Aug 2025",
|
"m": "Aug 2025",
|
||||||
"y": 2025,
|
"y": 2025,
|
||||||
"ss": 690,
|
"ss": 660,
|
||||||
"lz304": 2201,
|
"lz304": 2201,
|
||||||
"lz316": 3708,
|
"lz316": 3708,
|
||||||
"lz444": 2433
|
"lz444": 2433
|
||||||
@@ -465,7 +465,7 @@
|
|||||||
{
|
{
|
||||||
"m": "Sep 2025",
|
"m": "Sep 2025",
|
||||||
"y": 2025,
|
"y": 2025,
|
||||||
"ss": 685,
|
"ss": 668,
|
||||||
"lz304": 2260,
|
"lz304": 2260,
|
||||||
"lz316": 3841,
|
"lz316": 3841,
|
||||||
"lz444": 2510
|
"lz444": 2510
|
||||||
@@ -473,7 +473,7 @@
|
|||||||
{
|
{
|
||||||
"m": "Okt 2025",
|
"m": "Okt 2025",
|
||||||
"y": 2025,
|
"y": 2025,
|
||||||
"ss": 685,
|
"ss": 670,
|
||||||
"lz304": 2261,
|
"lz304": 2261,
|
||||||
"lz316": 3927,
|
"lz316": 3927,
|
||||||
"lz444": 2572
|
"lz444": 2572
|
||||||
@@ -481,7 +481,7 @@
|
|||||||
{
|
{
|
||||||
"m": "Nov 2025",
|
"m": "Nov 2025",
|
||||||
"y": 2025,
|
"y": 2025,
|
||||||
"ss": 692,
|
"ss": 703,
|
||||||
"lz304": 2297,
|
"lz304": 2297,
|
||||||
"lz316": 3936,
|
"lz316": 3936,
|
||||||
"lz444": 2550
|
"lz444": 2550
|
||||||
@@ -489,7 +489,7 @@
|
|||||||
{
|
{
|
||||||
"m": "Dez 2025",
|
"m": "Dez 2025",
|
||||||
"y": 2025,
|
"y": 2025,
|
||||||
"ss": 720,
|
"ss": 715,
|
||||||
"lz304": 2322,
|
"lz304": 2322,
|
||||||
"lz316": 3943,
|
"lz316": 3943,
|
||||||
"lz444": 2552
|
"lz444": 2552
|
||||||
@@ -497,7 +497,7 @@
|
|||||||
{
|
{
|
||||||
"m": "Jan 2026",
|
"m": "Jan 2026",
|
||||||
"y": 2026,
|
"y": 2026,
|
||||||
"ss": 780,
|
"ss": 727,
|
||||||
"lz304": 2303,
|
"lz304": 2303,
|
||||||
"lz316": 3815,
|
"lz316": 3815,
|
||||||
"lz444": 2478
|
"lz444": 2478
|
||||||
@@ -505,7 +505,7 @@
|
|||||||
{
|
{
|
||||||
"m": "Feb 2026",
|
"m": "Feb 2026",
|
||||||
"y": 2026,
|
"y": 2026,
|
||||||
"ss": null,
|
"ss": 755,
|
||||||
"lz304": 2541,
|
"lz304": 2541,
|
||||||
"lz316": 4179,
|
"lz316": 4179,
|
||||||
"lz444": 2522
|
"lz444": 2522
|
||||||
@@ -513,7 +513,7 @@
|
|||||||
{
|
{
|
||||||
"m": "Mrz 2026",
|
"m": "Mrz 2026",
|
||||||
"y": 2026,
|
"y": 2026,
|
||||||
"ss": null,
|
"ss": 792,
|
||||||
"lz304": 2571,
|
"lz304": 2571,
|
||||||
"lz316": 4367,
|
"lz316": 4367,
|
||||||
"lz444": 2637
|
"lz444": 2637
|
||||||
@@ -521,11 +521,11 @@
|
|||||||
{
|
{
|
||||||
"m": "Apr 2026",
|
"m": "Apr 2026",
|
||||||
"y": 2026,
|
"y": 2026,
|
||||||
"ss": null,
|
"ss": 813,
|
||||||
"lz304": 2663,
|
"lz304": 2663,
|
||||||
"lz316": 4591,
|
"lz316": 4591,
|
||||||
"lz444": 2817
|
"lz444": 2817
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"baseSS": 780
|
"baseSS": 727
|
||||||
}
|
}
|
||||||
|
|||||||
327
index.html
327
index.html
@@ -122,6 +122,51 @@
|
|||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function getSaveMonth(surcharges, editMode, editMonth) {
|
||||||
|
if (editMode) return editMonth;
|
||||||
|
return (
|
||||||
|
surcharges["316"]?.month ||
|
||||||
|
surcharges["304"]?.month ||
|
||||||
|
surcharges["444"]?.month ||
|
||||||
|
""
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
function cloneSurcharges(surcharges) {
|
||||||
|
return {
|
||||||
|
"304": {
|
||||||
|
...(surcharges["304"] || EMPTY_SURCHARGES["304"]),
|
||||||
|
},
|
||||||
|
"316": {
|
||||||
|
...(surcharges["316"] || EMPTY_SURCHARGES["316"]),
|
||||||
|
},
|
||||||
|
"444": {
|
||||||
|
...(surcharges["444"] || EMPTY_SURCHARGES["444"]),
|
||||||
|
},
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
function shouldUseEditedCurrentValues(
|
||||||
|
editMode,
|
||||||
|
editMonth,
|
||||||
|
editSnapshot,
|
||||||
|
) {
|
||||||
|
if (!editMode || !editSnapshot) return true;
|
||||||
|
return (
|
||||||
|
getSaveMonth(editSnapshot.surcharges, false, "") ===
|
||||||
|
editMonth
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
function buildSaveEntry(surcharges, baseSS, saveMonth) {
|
||||||
|
const entry = buildHistoryEntry(surcharges, baseSS);
|
||||||
|
return {
|
||||||
|
...entry,
|
||||||
|
m: saveMonth,
|
||||||
|
y: monthToYear(saveMonth),
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
function upsertHistory(history, entry) {
|
function upsertHistory(history, entry) {
|
||||||
if (!entry.m) return history;
|
if (!entry.m) return history;
|
||||||
const idx = history.findIndex((d) => d.m === entry.m);
|
const idx = history.findIndex((d) => d.m === entry.m);
|
||||||
@@ -877,6 +922,10 @@
|
|||||||
finalIdx: true,
|
finalIdx: true,
|
||||||
});
|
});
|
||||||
|
|
||||||
|
const [editMode, setEditMode] = useState(false);
|
||||||
|
const [editMonth, setEditMonth] = useState("");
|
||||||
|
const [editSnapshot, setEditSnapshot] = useState(null);
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
fetch(DATA_URL, { cache: "no-store" })
|
fetch(DATA_URL, { cache: "no-store" })
|
||||||
.then((res) => {
|
.then((res) => {
|
||||||
@@ -910,11 +959,16 @@
|
|||||||
const updSC = (id, field, val) =>
|
const updSC = (id, field, val) =>
|
||||||
setSurcharges((prev) => ({
|
setSurcharges((prev) => ({
|
||||||
...prev,
|
...prev,
|
||||||
[id]: { ...(prev[id] || EMPTY_SURCHARGES[id]), [field]: val },
|
[id]: {
|
||||||
|
...(prev[id] || EMPTY_SURCHARGES[id]),
|
||||||
|
[field]: val,
|
||||||
|
},
|
||||||
}));
|
}));
|
||||||
|
|
||||||
const downloadData = (data) => {
|
const downloadData = (data) => {
|
||||||
const blob = new Blob([JSON.stringify(data, null, 2)], { type: "application/json" });
|
const blob = new Blob([JSON.stringify(data, null, 2)], {
|
||||||
|
type: "application/json",
|
||||||
|
});
|
||||||
const url = URL.createObjectURL(blob);
|
const url = URL.createObjectURL(blob);
|
||||||
const a = document.createElement("a");
|
const a = document.createElement("a");
|
||||||
a.href = url;
|
a.href = url;
|
||||||
@@ -923,12 +977,73 @@
|
|||||||
URL.revokeObjectURL(url);
|
URL.revokeObjectURL(url);
|
||||||
};
|
};
|
||||||
|
|
||||||
const saveData = async () => {
|
const openEditMode = (month) => {
|
||||||
const entry = buildHistoryEntry(surcharges, baseSS);
|
const entry = history.find((d) => d.m === month);
|
||||||
|
if (!entry) return;
|
||||||
|
if (!editSnapshot) {
|
||||||
|
setEditSnapshot({
|
||||||
|
baseSS: Number.isFinite(Number(baseSS))
|
||||||
|
? Number(baseSS)
|
||||||
|
: 0,
|
||||||
|
surcharges: cloneSurcharges(surcharges),
|
||||||
|
});
|
||||||
|
}
|
||||||
|
setEditMode(true);
|
||||||
|
setEditMonth(month);
|
||||||
|
setBaseSS(entry.ss != null ? entry.ss : 0);
|
||||||
|
setSurcharges({
|
||||||
|
"304": { month, value: entry.lz304 || 0 },
|
||||||
|
"316": { month, value: entry.lz316 || 0 },
|
||||||
|
"444": { month, value: entry.lz444 || 0 },
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
const finishEditMode = () => {
|
||||||
|
setEditMode(false);
|
||||||
|
setEditMonth("");
|
||||||
|
setEditSnapshot(null);
|
||||||
|
};
|
||||||
|
|
||||||
|
const startNewEntryMode = () => {
|
||||||
|
if (editSnapshot) {
|
||||||
|
setBaseSS(editSnapshot.baseSS);
|
||||||
|
setSurcharges(editSnapshot.surcharges);
|
||||||
|
}
|
||||||
|
finishEditMode();
|
||||||
|
};
|
||||||
|
|
||||||
|
const handleSaveData = async () => {
|
||||||
|
const saveMonth = getSaveMonth(
|
||||||
|
surcharges,
|
||||||
|
editMode,
|
||||||
|
editMonth,
|
||||||
|
);
|
||||||
|
const entry = buildSaveEntry(surcharges, baseSS, saveMonth);
|
||||||
const nextHistory = upsertHistory(history, entry);
|
const nextHistory = upsertHistory(history, entry);
|
||||||
const nextData = { surcharges, history: nextHistory, baseSS: Number(baseSS) || 0 };
|
const normalizedBaseSS = Number.isFinite(Number(baseSS))
|
||||||
|
? Number(baseSS)
|
||||||
|
: 0;
|
||||||
|
const useEditedCurrentValues = shouldUseEditedCurrentValues(
|
||||||
|
editMode,
|
||||||
|
editMonth,
|
||||||
|
editSnapshot,
|
||||||
|
);
|
||||||
|
const currentBaseSS = useEditedCurrentValues
|
||||||
|
? normalizedBaseSS
|
||||||
|
: editSnapshot.baseSS;
|
||||||
|
const currentSurcharges = useEditedCurrentValues
|
||||||
|
? surcharges
|
||||||
|
: editSnapshot.surcharges;
|
||||||
|
const nextData = {
|
||||||
|
surcharges: currentSurcharges,
|
||||||
|
history: nextHistory,
|
||||||
|
baseSS: currentBaseSS,
|
||||||
|
};
|
||||||
|
setBaseSS(currentBaseSS);
|
||||||
|
setSurcharges(currentSurcharges);
|
||||||
setHistory(nextHistory);
|
setHistory(nextHistory);
|
||||||
setSaveStatus("Speichere …");
|
setSaveStatus("Speichere …");
|
||||||
|
|
||||||
try {
|
try {
|
||||||
const res = await fetch("/api/data", {
|
const res = await fetch("/api/data", {
|
||||||
method: "POST",
|
method: "POST",
|
||||||
@@ -938,10 +1053,17 @@
|
|||||||
if (!res.ok) throw new Error(`HTTP ${res.status}`);
|
if (!res.ok) throw new Error(`HTTP ${res.status}`);
|
||||||
setSaveStatus("Gespeichert in data.json.");
|
setSaveStatus("Gespeichert in data.json.");
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
console.warn("Direktes Speichern nicht möglich, JSON wird heruntergeladen", err);
|
console.warn(
|
||||||
|
"Direktes Speichern nicht möglich, JSON wird heruntergeladen",
|
||||||
|
err,
|
||||||
|
);
|
||||||
downloadData(nextData);
|
downloadData(nextData);
|
||||||
setSaveStatus("Kein Schreibzugriff im statischen Browser-Modus. data.json wurde heruntergeladen; bitte Datei im Projekt ersetzen.");
|
setSaveStatus(
|
||||||
|
"Kein Schreibzugriff im statischen Browser-Modus. data.json wurde heruntergeladen; bitte Datei im Projekt ersetzen.",
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
finishEditMode();
|
||||||
};
|
};
|
||||||
|
|
||||||
const chartData = THICKNESSES.map((t) => ({
|
const chartData = THICKNESSES.map((t) => ({
|
||||||
@@ -1066,6 +1188,7 @@
|
|||||||
["methodology", "∑ Methodik"],
|
["methodology", "∑ Methodik"],
|
||||||
["surcharge", "◈ Legierungszuschlag"],
|
["surcharge", "◈ Legierungszuschlag"],
|
||||||
];
|
];
|
||||||
|
const historyMonthOptions = [...history].reverse();
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div
|
<div
|
||||||
@@ -2326,6 +2449,156 @@
|
|||||||
paddingTop: 16,
|
paddingTop: 16,
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
|
<div
|
||||||
|
style={{
|
||||||
|
display: "grid",
|
||||||
|
gridTemplateColumns:
|
||||||
|
"1.2fr 1fr",
|
||||||
|
gap: 12,
|
||||||
|
marginBottom: 12,
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
<div
|
||||||
|
style={{
|
||||||
|
background: S2,
|
||||||
|
border: `1px solid ${BD}`,
|
||||||
|
padding: "10px 12px",
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
<label style={lbl}>
|
||||||
|
Bestehenden Eintrag bearbeiten
|
||||||
|
</label>
|
||||||
|
<select
|
||||||
|
value={
|
||||||
|
editMode
|
||||||
|
? editMonth
|
||||||
|
: ""
|
||||||
|
}
|
||||||
|
onChange={(e) => {
|
||||||
|
const month =
|
||||||
|
e.target
|
||||||
|
.value;
|
||||||
|
if (!month) {
|
||||||
|
startNewEntryMode();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
openEditMode(
|
||||||
|
month,
|
||||||
|
);
|
||||||
|
}}
|
||||||
|
style={field}
|
||||||
|
>
|
||||||
|
<option value="">
|
||||||
|
Neuer Eintrag
|
||||||
|
</option>
|
||||||
|
{historyMonthOptions.map(
|
||||||
|
(entry) => (
|
||||||
|
<option
|
||||||
|
key={
|
||||||
|
entry.m
|
||||||
|
}
|
||||||
|
value={
|
||||||
|
entry.m
|
||||||
|
}
|
||||||
|
>
|
||||||
|
{
|
||||||
|
entry.m
|
||||||
|
}
|
||||||
|
</option>
|
||||||
|
),
|
||||||
|
)}
|
||||||
|
</select>
|
||||||
|
<div style={hint}>
|
||||||
|
Bestehende Monate
|
||||||
|
korrigieren oder neue
|
||||||
|
Werte erfassen
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div
|
||||||
|
style={{
|
||||||
|
background: S2,
|
||||||
|
border: `1px solid ${BD}`,
|
||||||
|
padding: "10px 12px",
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
<label style={lbl}>
|
||||||
|
Basis Edelstahlpreis
|
||||||
|
(€/t)
|
||||||
|
</label>
|
||||||
|
<input
|
||||||
|
type="number"
|
||||||
|
step="10"
|
||||||
|
value={baseSS}
|
||||||
|
onChange={(e) =>
|
||||||
|
setBaseSS(
|
||||||
|
parseFloat(
|
||||||
|
e
|
||||||
|
.target
|
||||||
|
.value,
|
||||||
|
) || 0,
|
||||||
|
)
|
||||||
|
}
|
||||||
|
style={field}
|
||||||
|
/>
|
||||||
|
<div style={hint}>
|
||||||
|
Wird in Verlauf als
|
||||||
|
Basispreis (ss)
|
||||||
|
gespeichert
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
{editMode && (
|
||||||
|
<div
|
||||||
|
style={{
|
||||||
|
display: "flex",
|
||||||
|
justifyContent:
|
||||||
|
"space-between",
|
||||||
|
alignItems:
|
||||||
|
"center",
|
||||||
|
gap: 12,
|
||||||
|
flexWrap: "wrap",
|
||||||
|
marginBottom: 12,
|
||||||
|
background: `${R}10`,
|
||||||
|
borderLeft: `3px solid ${R}`,
|
||||||
|
padding: "10px 12px",
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
<div
|
||||||
|
style={{
|
||||||
|
color: TF,
|
||||||
|
fontSize:
|
||||||
|
"0.72rem",
|
||||||
|
fontWeight: 700,
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
Bearbeitung: {editMonth}
|
||||||
|
</div>
|
||||||
|
<button
|
||||||
|
type="button"
|
||||||
|
onClick={
|
||||||
|
startNewEntryMode
|
||||||
|
}
|
||||||
|
style={{
|
||||||
|
background: "transparent",
|
||||||
|
border: `1px solid ${BD}`,
|
||||||
|
color: TH,
|
||||||
|
padding:
|
||||||
|
"6px 10px",
|
||||||
|
cursor: "pointer",
|
||||||
|
fontSize:
|
||||||
|
"0.64rem",
|
||||||
|
letterSpacing:
|
||||||
|
"0.08em",
|
||||||
|
textTransform:
|
||||||
|
"uppercase",
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
Neuen Eintrag erfassen
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
)}
|
||||||
|
|
||||||
<div
|
<div
|
||||||
style={{
|
style={{
|
||||||
fontSize: "0.58rem",
|
fontSize: "0.58rem",
|
||||||
@@ -2336,9 +2609,9 @@
|
|||||||
marginBottom: 12,
|
marginBottom: 12,
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
Aktuellen Monat eintragen →
|
{editMode
|
||||||
wird sofort im Rechner
|
? "Korrigierte Monatswerte speichern"
|
||||||
übernommen
|
: "Aktuellen Monat eintragen → wird sofort im Rechner übernommen"}
|
||||||
</div>
|
</div>
|
||||||
<div
|
<div
|
||||||
style={{
|
style={{
|
||||||
@@ -2404,7 +2677,12 @@
|
|||||||
value={
|
value={
|
||||||
(surcharges[
|
(surcharges[
|
||||||
g.id
|
g.id
|
||||||
] || EMPTY_SURCHARGES[g.id]).month
|
] ||
|
||||||
|
EMPTY_SURCHARGES[
|
||||||
|
g
|
||||||
|
.id
|
||||||
|
])
|
||||||
|
.month
|
||||||
}
|
}
|
||||||
onChange={(
|
onChange={(
|
||||||
e,
|
e,
|
||||||
@@ -2441,7 +2719,12 @@
|
|||||||
value={
|
value={
|
||||||
(surcharges[
|
(surcharges[
|
||||||
g.id
|
g.id
|
||||||
] || EMPTY_SURCHARGES[g.id]).value
|
] ||
|
||||||
|
EMPTY_SURCHARGES[
|
||||||
|
g
|
||||||
|
.id
|
||||||
|
])
|
||||||
|
.value
|
||||||
}
|
}
|
||||||
onChange={(
|
onChange={(
|
||||||
e,
|
e,
|
||||||
@@ -2478,7 +2761,7 @@
|
|||||||
>
|
>
|
||||||
<button
|
<button
|
||||||
type="button"
|
type="button"
|
||||||
onClick={saveData}
|
onClick={handleSaveData}
|
||||||
style={{
|
style={{
|
||||||
background: R,
|
background: R,
|
||||||
color: "#fff",
|
color: "#fff",
|
||||||
@@ -2495,12 +2778,18 @@
|
|||||||
</button>
|
</button>
|
||||||
<span
|
<span
|
||||||
style={{
|
style={{
|
||||||
color: saveStatus.startsWith("Gespeichert") ? "#059669" : TH,
|
color: saveStatus.startsWith(
|
||||||
fontSize: "0.66rem",
|
"Gespeichert",
|
||||||
|
)
|
||||||
|
? "#059669"
|
||||||
|
: TH,
|
||||||
|
fontSize:
|
||||||
|
"0.66rem",
|
||||||
lineHeight: 1.6,
|
lineHeight: 1.6,
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
{saveStatus || "Speichert den aktuellen Monat auch im Verlauf."}
|
{saveStatus ||
|
||||||
|
"Speichert den aktuellen Monat auch im Verlauf."}
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -2550,9 +2839,9 @@
|
|||||||
ablesen (€/t)
|
ablesen (€/t)
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
Im Tab oben Monat + Zuschlag
|
Im Tab oben Basispreis,
|
||||||
für alle drei Güten
|
Monat + Zuschlag für alle
|
||||||
eintragen
|
drei Güten eintragen
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
Button
|
Button
|
||||||
|
|||||||
217
tests/helpers.test.js
Normal file
217
tests/helpers.test.js
Normal file
@@ -0,0 +1,217 @@
|
|||||||
|
const test = require("node:test");
|
||||||
|
const assert = require("node:assert/strict");
|
||||||
|
|
||||||
|
function monthToYear(month) {
|
||||||
|
const match = String(month || "").match(/(20\d{2})/);
|
||||||
|
return match ? Number(match[1]) : new Date().getFullYear();
|
||||||
|
}
|
||||||
|
|
||||||
|
function buildHistoryEntry(surcharges, baseSS) {
|
||||||
|
const month =
|
||||||
|
surcharges["316"]?.month ||
|
||||||
|
surcharges["304"]?.month ||
|
||||||
|
surcharges["444"]?.month ||
|
||||||
|
"";
|
||||||
|
|
||||||
|
return {
|
||||||
|
m: month,
|
||||||
|
y: monthToYear(month),
|
||||||
|
ss: Number.isFinite(Number(baseSS)) ? Number(baseSS) : null,
|
||||||
|
lz304: Number(surcharges["304"]?.value) || 0,
|
||||||
|
lz316: Number(surcharges["316"]?.value) || 0,
|
||||||
|
lz444: Number(surcharges["444"]?.value) || 0,
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
function getSaveMonth(surcharges, editMode, editMonth) {
|
||||||
|
if (editMode) return editMonth;
|
||||||
|
|
||||||
|
return (
|
||||||
|
surcharges["316"]?.month ||
|
||||||
|
surcharges["304"]?.month ||
|
||||||
|
surcharges["444"]?.month ||
|
||||||
|
""
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
function cloneSurcharges(surcharges) {
|
||||||
|
return {
|
||||||
|
304: {
|
||||||
|
...(surcharges["304"] || { month: "", value: 0 }),
|
||||||
|
},
|
||||||
|
316: {
|
||||||
|
...(surcharges["316"] || { month: "", value: 0 }),
|
||||||
|
},
|
||||||
|
444: {
|
||||||
|
...(surcharges["444"] || { month: "", value: 0 }),
|
||||||
|
},
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
function shouldUseEditedCurrentValues(editMode, editMonth, editSnapshot) {
|
||||||
|
if (!editMode || !editSnapshot) return true;
|
||||||
|
|
||||||
|
return getSaveMonth(editSnapshot.surcharges, false, "") === editMonth;
|
||||||
|
}
|
||||||
|
|
||||||
|
function buildSaveEntry(surcharges, baseSS, saveMonth) {
|
||||||
|
const entry = buildHistoryEntry(surcharges, baseSS);
|
||||||
|
|
||||||
|
return {
|
||||||
|
...entry,
|
||||||
|
m: saveMonth,
|
||||||
|
y: monthToYear(saveMonth),
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
function upsertHistory(history, entry) {
|
||||||
|
if (!entry.m) return history;
|
||||||
|
|
||||||
|
const existingIndex = history.findIndex(
|
||||||
|
(historyEntry) => historyEntry.m === entry.m,
|
||||||
|
);
|
||||||
|
if (existingIndex >= 0) {
|
||||||
|
const nextHistory = [...history];
|
||||||
|
nextHistory[existingIndex] = { ...nextHistory[existingIndex], ...entry };
|
||||||
|
return nextHistory;
|
||||||
|
}
|
||||||
|
|
||||||
|
return [...history, entry];
|
||||||
|
}
|
||||||
|
|
||||||
|
test("monthToYear extracts year", () => {
|
||||||
|
assert.equal(monthToYear("Apr. 2026"), 2026);
|
||||||
|
assert.equal(monthToYear("Jan 2025"), 2025);
|
||||||
|
});
|
||||||
|
|
||||||
|
test("buildSaveEntry persists base price and surcharge values", () => {
|
||||||
|
const surcharges = {
|
||||||
|
304: { month: "Apr. 2026", value: 2663 },
|
||||||
|
316: { month: "Apr. 2026", value: 4591 },
|
||||||
|
444: { month: "Apr. 2026", value: 2817 },
|
||||||
|
};
|
||||||
|
|
||||||
|
const entry = buildSaveEntry(surcharges, 813, "Apr. 2026");
|
||||||
|
|
||||||
|
assert.equal(entry.m, "Apr. 2026");
|
||||||
|
assert.equal(entry.y, 2026);
|
||||||
|
assert.equal(entry.ss, 813);
|
||||||
|
assert.equal(entry.lz304, 2663);
|
||||||
|
assert.equal(entry.lz316, 4591);
|
||||||
|
assert.equal(entry.lz444, 2817);
|
||||||
|
});
|
||||||
|
|
||||||
|
test("buildSaveEntry uses explicit save month", () => {
|
||||||
|
const surcharges = {
|
||||||
|
304: { month: "Apr. 2026", value: 2663 },
|
||||||
|
316: { month: "Apr. 2026", value: 4591 },
|
||||||
|
444: { month: "Apr. 2026", value: 2817 },
|
||||||
|
};
|
||||||
|
|
||||||
|
const entry = buildSaveEntry(surcharges, 755, "Feb 2026");
|
||||||
|
|
||||||
|
assert.equal(entry.m, "Feb 2026");
|
||||||
|
assert.equal(entry.y, 2026);
|
||||||
|
assert.equal(entry.ss, 755);
|
||||||
|
assert.equal(entry.lz316, 4591);
|
||||||
|
});
|
||||||
|
|
||||||
|
test("shouldUseEditedCurrentValues returns false for older month edit", () => {
|
||||||
|
const editSnapshot = {
|
||||||
|
baseSS: 813,
|
||||||
|
surcharges: cloneSurcharges({
|
||||||
|
304: { month: "Apr. 2026", value: 2663 },
|
||||||
|
316: { month: "Apr. 2026", value: 4591 },
|
||||||
|
444: { month: "Apr. 2026", value: 2817 },
|
||||||
|
}),
|
||||||
|
};
|
||||||
|
|
||||||
|
assert.equal(
|
||||||
|
shouldUseEditedCurrentValues(true, "Feb 2026", editSnapshot),
|
||||||
|
false,
|
||||||
|
);
|
||||||
|
});
|
||||||
|
|
||||||
|
test("shouldUseEditedCurrentValues returns true for current month edit", () => {
|
||||||
|
const editSnapshot = {
|
||||||
|
baseSS: 813,
|
||||||
|
surcharges: cloneSurcharges({
|
||||||
|
304: { month: "Apr. 2026", value: 2663 },
|
||||||
|
316: { month: "Apr. 2026", value: 4591 },
|
||||||
|
444: { month: "Apr. 2026", value: 2817 },
|
||||||
|
}),
|
||||||
|
};
|
||||||
|
|
||||||
|
assert.equal(
|
||||||
|
shouldUseEditedCurrentValues(true, "Apr. 2026", editSnapshot),
|
||||||
|
true,
|
||||||
|
);
|
||||||
|
});
|
||||||
|
|
||||||
|
test("shouldUseEditedCurrentValues returns true outside edit mode", () => {
|
||||||
|
const editSnapshot = {
|
||||||
|
baseSS: 813,
|
||||||
|
surcharges: cloneSurcharges({
|
||||||
|
304: { month: "Apr. 2026", value: 2663 },
|
||||||
|
316: { month: "Apr. 2026", value: 4591 },
|
||||||
|
444: { month: "Apr. 2026", value: 2817 },
|
||||||
|
}),
|
||||||
|
};
|
||||||
|
|
||||||
|
assert.equal(
|
||||||
|
shouldUseEditedCurrentValues(false, "Feb 2026", editSnapshot),
|
||||||
|
true,
|
||||||
|
);
|
||||||
|
});
|
||||||
|
|
||||||
|
test("upsertHistory appends entry for new month", () => {
|
||||||
|
const history = [
|
||||||
|
{ m: "Feb 2026", y: 2026, ss: 755, lz304: 2541, lz316: 4179, lz444: 2522 },
|
||||||
|
{ m: "Mrz 2026", y: 2026, ss: 792, lz304: 2571, lz316: 4367, lz444: 2637 },
|
||||||
|
];
|
||||||
|
const entry = {
|
||||||
|
m: "Apr 2026",
|
||||||
|
y: 2026,
|
||||||
|
ss: 813,
|
||||||
|
lz304: 2663,
|
||||||
|
lz316: 4591,
|
||||||
|
lz444: 2817,
|
||||||
|
};
|
||||||
|
|
||||||
|
const result = upsertHistory(history, entry);
|
||||||
|
|
||||||
|
assert.equal(result.length, 3);
|
||||||
|
assert.equal(result[2].m, "Apr 2026");
|
||||||
|
});
|
||||||
|
|
||||||
|
test("upsertHistory updates existing month without duplicate", () => {
|
||||||
|
const history = [
|
||||||
|
{ m: "Feb 2026", y: 2026, ss: 755, lz304: 2541, lz316: 4179, lz444: 2522 },
|
||||||
|
{ m: "Mrz 2026", y: 2026, ss: 792, lz304: 2571, lz316: 4367, lz444: 2637 },
|
||||||
|
];
|
||||||
|
const entry = {
|
||||||
|
m: "Mrz 2026",
|
||||||
|
ss: 800,
|
||||||
|
lz304: 2600,
|
||||||
|
lz316: 4400,
|
||||||
|
lz444: 2650,
|
||||||
|
};
|
||||||
|
|
||||||
|
const result = upsertHistory(history, entry);
|
||||||
|
|
||||||
|
assert.equal(result.length, 2);
|
||||||
|
assert.equal(result[1].m, "Mrz 2026");
|
||||||
|
assert.equal(result[1].y, 2026);
|
||||||
|
assert.equal(result[1].ss, 800);
|
||||||
|
assert.equal(result[1].lz444, 2650);
|
||||||
|
});
|
||||||
|
|
||||||
|
test("upsertHistory keeps history unchanged for missing month", () => {
|
||||||
|
const history = [
|
||||||
|
{ m: "Feb 2026", y: 2026, ss: 755, lz304: 2541, lz316: 4179, lz444: 2522 },
|
||||||
|
];
|
||||||
|
|
||||||
|
const result = upsertHistory(history, { m: "", ss: 700 });
|
||||||
|
|
||||||
|
assert.deepEqual(result, history);
|
||||||
|
});
|
||||||
Reference in New Issue
Block a user