diff --git a/Fuchs/Controllers/IntranetController.Banking.cs b/Fuchs/Controllers/IntranetController.Banking.cs index 5ec3a79..5894d18 100644 --- a/Fuchs/Controllers/IntranetController.Banking.cs +++ b/Fuchs/Controllers/IntranetController.Banking.cs @@ -81,11 +81,13 @@ public partial class IntranetController string mode = Form("mode").ToLower(); if (mode == "s" && Form("tgt").Contains(':')) { + // Search mode: @tgtdate is unused by the proc but required by its signature. var pl = StdParamlist( - SQL_VarChar("@mode", Form("mode")), - SQL_VarChar("@search", Form("tgt"))); + SQL_Date("@tgtdate", DBNull.Value), + SQL_VarChar("@mode", Form("mode").ne("m")), + SQL_VarChar("@search", Form("tgt"))); var dset = await getSQLDataSet_async( - "EXECUTE [dbo].[fds__getBankingtransactions_list2] @mode, @search, @authuser;", + "EXECUTE [dbo].[fds__getBankingtransfers_list2] @tgtdate, @mode, @search, @authuser;", _intranet.Intranet__SQLConnectionString, pl, tablenames: new[] { "admin", "bank" }, Security: DbSec, options: SqlOpt(fn, id, code)); diff --git a/Fuchs/Services/FuchsWidgetService.cs b/Fuchs/Services/FuchsWidgetService.cs index 51283d4..e645b0e 100644 --- a/Fuchs/Services/FuchsWidgetService.cs +++ b/Fuchs/Services/FuchsWidgetService.cs @@ -97,19 +97,15 @@ public class FuchsWidgetService : IWidgetService return await BuildWidgetResponse(userAccountId, dbSec, shortName, wdg); } - // ── Generic widget by id ────────────────────────────────────────────────── - private async Task HandleWidgetGeneric(string widgetId, string userAccountId, + // ── Unknown widget id ────────────────────────────────────────────────────── + // The dashboard only requests "my" and "one"; there is no generic widget + // source in the schema (the legacy code had no such procedure either). + private Task HandleWidgetGeneric(string widgetId, string userAccountId, DatabaseSecurity dbSec) { - var pl = Params(userAccountId, SQL_VarChar("@widget", widgetId, dbNull_IfEmpty: true)); - var dset = await getSQLDataSet_async( - "EXECUTE [dbo].[fds__getWidget] @widget, @authuser;", - Conn, pl, tablenames: new[] { "admin", "data" }, Security: dbSec); - return await JSONAsync(new - { - admin = dset.Table("admin").FirstRow.toObjectDictionary(), - data = dset.Tables("data").toArrayofObjectDictionaries() - }); + _ = dbSec; + _logger.LogWarning("GetWidgetAsync: unknown widget id '{WidgetId}' requested by user={User}", widgetId, userAccountId); + return Task.FromResult(new NotFoundResult()); } // ── Widget renderer dispatcher ────────────────────────────────────────────