bug fix for atemschutz
This commit is contained in:
@@ -1,9 +1,13 @@
|
|||||||
import { Pool, PoolConfig } from 'pg';
|
import { Pool, PoolConfig, types } from 'pg';
|
||||||
import * as fs from 'fs';
|
import * as fs from 'fs';
|
||||||
import * as path from 'path';
|
import * as path from 'path';
|
||||||
import environment from './environment';
|
import environment from './environment';
|
||||||
import logger from '../utils/logger';
|
import logger from '../utils/logger';
|
||||||
|
|
||||||
|
// Override pg's default DATE parser: return plain 'YYYY-MM-DD' strings
|
||||||
|
// instead of JavaScript Date objects (which introduce timezone shifts).
|
||||||
|
types.setTypeParser(1082, (val: string) => val);
|
||||||
|
|
||||||
const poolConfig: PoolConfig = {
|
const poolConfig: PoolConfig = {
|
||||||
host: environment.database.host,
|
host: environment.database.host,
|
||||||
port: environment.database.port,
|
port: environment.database.port,
|
||||||
|
|||||||
@@ -65,6 +65,15 @@ function formatDate(iso: string | null): string {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/** Extract YYYY-MM-DD from an ISO timestamp or date string for <input type="date"> */
|
||||||
|
function toInputDate(iso: string | null | undefined): string {
|
||||||
|
if (!iso) return '';
|
||||||
|
// Already YYYY-MM-DD
|
||||||
|
if (/^\d{4}-\d{2}-\d{2}$/.test(iso)) return iso;
|
||||||
|
// Full ISO timestamp — take the first 10 chars (YYYY-MM-DD)
|
||||||
|
return iso.substring(0, 10);
|
||||||
|
}
|
||||||
|
|
||||||
function getDisplayName(item: AtemschutzUebersicht): string {
|
function getDisplayName(item: AtemschutzUebersicht): string {
|
||||||
if (item.user_family_name || item.user_given_name) {
|
if (item.user_family_name || item.user_given_name) {
|
||||||
return [item.user_family_name, item.user_given_name].filter(Boolean).join(', ');
|
return [item.user_family_name, item.user_given_name].filter(Boolean).join(', ');
|
||||||
@@ -219,12 +228,12 @@ function Atemschutz() {
|
|||||||
setForm({
|
setForm({
|
||||||
user_id: item.user_id,
|
user_id: item.user_id,
|
||||||
atemschutz_lehrgang: item.atemschutz_lehrgang,
|
atemschutz_lehrgang: item.atemschutz_lehrgang,
|
||||||
lehrgang_datum: item.lehrgang_datum || '',
|
lehrgang_datum: toInputDate(item.lehrgang_datum),
|
||||||
untersuchung_datum: item.untersuchung_datum || '',
|
untersuchung_datum: toInputDate(item.untersuchung_datum),
|
||||||
untersuchung_gueltig_bis: item.untersuchung_gueltig_bis || '',
|
untersuchung_gueltig_bis: toInputDate(item.untersuchung_gueltig_bis),
|
||||||
untersuchung_ergebnis: item.untersuchung_ergebnis || '',
|
untersuchung_ergebnis: item.untersuchung_ergebnis || '',
|
||||||
leistungstest_datum: item.leistungstest_datum || '',
|
leistungstest_datum: toInputDate(item.leistungstest_datum),
|
||||||
leistungstest_gueltig_bis: item.leistungstest_gueltig_bis || '',
|
leistungstest_gueltig_bis: toInputDate(item.leistungstest_gueltig_bis),
|
||||||
leistungstest_bestanden: item.leistungstest_bestanden || false,
|
leistungstest_bestanden: item.leistungstest_bestanden || false,
|
||||||
bemerkung: item.bemerkung || '',
|
bemerkung: item.bemerkung || '',
|
||||||
});
|
});
|
||||||
|
|||||||
Reference in New Issue
Block a user