V1.0.0 Es funktioniert soweit Alles

This commit is contained in:
2026-02-27 16:41:03 +00:00
parent 14bb3fd2cd
commit 5981a7a6db
4 changed files with 48 additions and 20 deletions

View File

@@ -10,13 +10,20 @@ export async function PUT(
try {
const { id } = await context.params;
const body = await request.json();
const { Datum, Wo, Was, Wieviel, Wie, TYP, OK } = body;
const { Datum, Wo, Was, Wieviel, Wie, TYP } = body;
if (!Datum || !Wo || !Was || !Wieviel || !Wie || TYP === undefined) {
return NextResponse.json(
{ success: false, error: 'Missing required fields' },
{ status: 400 }
);
}
const pool = getDbPool();
const query = `
UPDATE Ausgaben
SET Datum = ?, Wo = ?, Was = ?, Wieviel = ?, Wie = ?, TYP = ?, OK = ?
SET Datum = ?, Wo = ?, Was = ?, Wieviel = ?, Wie = ?, TYP = ?
WHERE ID = ?
`;
@@ -27,7 +34,6 @@ export async function PUT(
parseFloat(Wieviel),
Wie,
TYP,
OK || 0,
parseInt(id),
]);

View File

@@ -14,7 +14,8 @@ export async function GET(request: Request) {
const pool = getDbPool();
let query = `SELECT *,
let query = `SELECT
ID, Datum, Wo, Was, Wieviel, Wie, TYP,
CASE DAYOFWEEK(Datum)
WHEN 1 THEN 'Sonntag'
WHEN 2 THEN 'Montag'
@@ -67,7 +68,7 @@ export async function GET(request: Request) {
export async function POST(request: Request) {
try {
const body = await request.json();
const { Datum, Wo, Was, Wieviel, Wie, TYP, OK } = body;
const { Datum, Wo, Was, Wieviel, Wie, TYP } = body;
if (!Datum || !Wo || !Was || !Wieviel || !Wie || TYP === undefined) {
return NextResponse.json(
@@ -79,8 +80,8 @@ export async function POST(request: Request) {
const pool = getDbPool();
const query = `
INSERT INTO Ausgaben (Datum, Wo, Was, Wieviel, Wie, TYP, OK)
VALUES (?, ?, ?, ?, ?, ?, ?)
INSERT INTO Ausgaben (Datum, Wo, Was, Wieviel, Wie, TYP)
VALUES (?, ?, ?, ?, ?, ?)
`;
const [result] = await pool.query<ResultSetHeader>(query, [
@@ -90,7 +91,6 @@ export async function POST(request: Request) {
parseFloat(Wieviel),
Wie,
TYP,
OK || 0,
]);
return NextResponse.json({

View File

@@ -21,7 +21,6 @@ export default function AusgabenForm({ onSuccess, selectedEntry, typ }: Ausgaben
Wieviel: '',
Wie: defaultZahlungsart,
TYP: typ,
OK: 0,
});
const [isSubmitting, setIsSubmitting] = useState(false);
@@ -95,26 +94,41 @@ export default function AusgabenForm({ onSuccess, selectedEntry, typ }: Ausgaben
Wieviel: selectedEntry.Wieviel.toString(),
Wie: selectedEntry.Wie,
TYP: selectedEntry.TYP,
OK: selectedEntry.OK || 0,
});
setEditId(selectedEntry.ID);
// Handle both uppercase and lowercase ID field names
const entryId = (selectedEntry as any).id || selectedEntry.ID;
setEditId(entryId);
} else {
// Initialize with current date for new entry
// Reset form for new entry
const now = new Date();
const dateStr = now.toISOString().split('T')[0];
const weekday = getWeekday(now);
setFormData(prev => ({
...prev,
setFormData({
Datum: dateStr,
WochTag: weekday,
Wo: '',
Was: '',
Wieviel: '',
Wie: defaultZahlungsart,
TYP: typ,
}));
});
setEditId(null);
}
}, [selectedEntry, typ]);
}, [selectedEntry]);
// Update TYP when tab changes
useEffect(() => {
if (!selectedEntry) {
setFormData(prev => ({
...prev,
TYP: typ,
Wie: defaultZahlungsart,
}));
}
}, [typ]);
const getWeekday = (date: Date): string => {
const weekdays = ['Sonntag', 'Montag', 'Dienstag', 'Mittwoch', 'Donnerstag', 'Freitag', 'Samstag'];
@@ -143,12 +157,22 @@ export default function AusgabenForm({ onSuccess, selectedEntry, typ }: Ausgaben
const url = editId ? `/api/ausgaben/${editId}` : '/api/ausgaben';
const method = editId ? 'PUT' : 'POST';
// Send only the fields we need, excluding any extra fields
const dataToSend = {
Datum: formData.Datum,
Wo: formData.Wo,
Was: formData.Was,
Wieviel: formData.Wieviel,
Wie: formData.Wie,
TYP: formData.TYP,
};
const response = await fetch(url, {
method: method,
headers: {
'Content-Type': 'application/json',
},
body: JSON.stringify(formData),
body: JSON.stringify(dataToSend),
});
if (response.ok) {
@@ -180,7 +204,7 @@ export default function AusgabenForm({ onSuccess, selectedEntry, typ }: Ausgaben
Wieviel: '',
Wie: defaultZahlungsart,
TYP: typ,
OK: 0,
});
setEditId(null);

View File

@@ -9,7 +9,6 @@ export interface AusgabenEntry {
Wieviel: number;
Wie: string;
TYP: number;
OK?: number;
}
export interface CreateAusgabenEntry {
@@ -20,7 +19,6 @@ export interface CreateAusgabenEntry {
Wieviel: string | number;
Wie: string;
TYP: number;
OK?: number;
}
export interface MonthlyStats {