Update money handling in BaseWorker: Changed SQL query to cast money change to numeric type for compatibility with existing database schema. Updated parameter passing to ensure the value is sent as a string, allowing proper casting in the database. Added comments for clarity on the changes made.
This commit is contained in:
@@ -127,10 +127,14 @@ impl BaseWorker {
|
|||||||
// Bei Bedarf kann hier später wieder ein expliziter Statuszugriff ergänzt werden.
|
// Bei Bedarf kann hier später wieder ein expliziter Statuszugriff ergänzt werden.
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Hinweis: In der bestehenden Datenbank ist `falukant_data.update_money` typischerweise
|
||||||
|
// so definiert, dass der Geldbetrag als NUMERIC erwartet wird. Um keine
|
||||||
|
// Signaturkonflikte zu erzeugen, casten wir den zweiten Parameter in SQL nach
|
||||||
|
// `numeric` und übergeben den Wert als Text.
|
||||||
const QUERY_UPDATE_MONEY: &str = r#"
|
const QUERY_UPDATE_MONEY: &str = r#"
|
||||||
SELECT falukant_data.update_money(
|
SELECT falukant_data.update_money(
|
||||||
$1::int4,
|
$1::int4,
|
||||||
$2::float8,
|
$2::numeric,
|
||||||
$3::text
|
$3::text
|
||||||
);
|
);
|
||||||
"#;
|
"#;
|
||||||
@@ -154,7 +158,9 @@ impl BaseWorker {
|
|||||||
conn.prepare("update_money", QUERY_UPDATE_MONEY)?;
|
conn.prepare("update_money", QUERY_UPDATE_MONEY)?;
|
||||||
|
|
||||||
let p1: &(dyn ToSql + Sync) = &falukant_user_id;
|
let p1: &(dyn ToSql + Sync) = &falukant_user_id;
|
||||||
let p2: &(dyn ToSql + Sync) = &money_change;
|
// Als String übergeben, damit die DB ihn nach NUMERIC casten kann.
|
||||||
|
let money_str = money_change.to_string();
|
||||||
|
let p2: &(dyn ToSql + Sync) = &money_str;
|
||||||
let p3: &(dyn ToSql + Sync) = &action;
|
let p3: &(dyn ToSql + Sync) = &action;
|
||||||
|
|
||||||
conn.execute("update_money", &[p1, p2, p3])?;
|
conn.execute("update_money", &[p1, p2, p3])?;
|
||||||
|
|||||||
Reference in New Issue
Block a user