V1.0.0 Es funktioniert soweit Alles
This commit is contained in:
@@ -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),
|
||||
]);
|
||||
|
||||
|
||||
@@ -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({
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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 {
|
||||
|
||||
Reference in New Issue
Block a user