@fayz-ai/plugin-financial 0.16.1 → 0.17.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/data/mock.d.ts.map +1 -1
- package/dist/data/supabase.d.ts.map +1 -1
- package/dist/data/types.d.ts +3 -0
- package/dist/data/types.d.ts.map +1 -1
- package/dist/index.js +130 -61
- package/dist/index.js.map +1 -1
- package/dist/lib/payment-how.d.ts +21 -0
- package/dist/lib/payment-how.d.ts.map +1 -0
- package/dist/types.d.ts +3 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/views/FinancialPage.d.ts.map +1 -1
- package/dist/views/InvoiceDetailView.d.ts.map +1 -1
- package/dist/views/InvoiceFormView.d.ts.map +1 -1
- package/dist/views/InvoiceListView.d.ts.map +1 -1
- package/package.json +4 -4
package/dist/data/mock.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mock.d.ts","sourceRoot":"","sources":["../../src/data/mock.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAA;AACpD,OAAO,KAAK,EACV,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,WAAW,EACvC,aAAa,EAQ1B,aAAa,EACd,MAAM,UAAU,CAAA;AAoIjB;;;;GAIG;AACH,MAAM,WAAW,iBAAiB;IAChC,YAAY,CAAC,EAAE,WAAW,EAAE,CAAA;IAC5B,QAAQ,CAAC,EAAE,OAAO,EAAE,CAAA;IACpB,YAAY,CAAC,EAAE,WAAW,EAAE,CAAA;IAC5B,SAAS,CAAC,EAAE,iBAAiB,EAAE,CAAA;IAC/B,cAAc,CAAC,EAAE,aAAa,EAAE,CAAA;IAChC,cAAc,CAAC,EAAE,aAAa,EAAE,CAAA;CACjC;AAED,MAAM,WAAW,4BAA4B;IAC3C,kBAAkB,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,eAAe,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;IACtE,0FAA0F;IAC1F,IAAI,CAAC,EAAE,iBAAiB,CAAA;CACzB;AAED,wBAAgB,2BAA2B,CAAC,OAAO,CAAC,EAAE,4BAA4B,GAAG,qBAAqB,
|
|
1
|
+
{"version":3,"file":"mock.d.ts","sourceRoot":"","sources":["../../src/data/mock.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAA;AACpD,OAAO,KAAK,EACV,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,WAAW,EACvC,aAAa,EAQ1B,aAAa,EACd,MAAM,UAAU,CAAA;AAoIjB;;;;GAIG;AACH,MAAM,WAAW,iBAAiB;IAChC,YAAY,CAAC,EAAE,WAAW,EAAE,CAAA;IAC5B,QAAQ,CAAC,EAAE,OAAO,EAAE,CAAA;IACpB,YAAY,CAAC,EAAE,WAAW,EAAE,CAAA;IAC5B,SAAS,CAAC,EAAE,iBAAiB,EAAE,CAAA;IAC/B,cAAc,CAAC,EAAE,aAAa,EAAE,CAAA;IAChC,cAAc,CAAC,EAAE,aAAa,EAAE,CAAA;CACjC;AAED,MAAM,WAAW,4BAA4B;IAC3C,kBAAkB,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,eAAe,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;IACtE,0FAA0F;IAC1F,IAAI,CAAC,EAAE,iBAAiB,CAAA;CACzB;AAED,wBAAgB,2BAA2B,CAAC,OAAO,CAAC,EAAE,4BAA4B,GAAG,qBAAqB,CA0zBzG"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"supabase.d.ts","sourceRoot":"","sources":["../../src/data/supabase.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAA;AA0VpD,wBAAgB,+BAA+B,IAAI,qBAAqB,
|
|
1
|
+
{"version":3,"file":"supabase.d.ts","sourceRoot":"","sources":["../../src/data/supabase.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAA;AA0VpD,wBAAgB,+BAA+B,IAAI,qBAAqB,CA46DvE"}
|
package/dist/data/types.d.ts
CHANGED
|
@@ -64,6 +64,9 @@ export interface FinancialDataProvider {
|
|
|
64
64
|
getBankAccounts(): Promise<BankAccount[]>;
|
|
65
65
|
/** Server-side lookup across ledger accounts, including people and units. */
|
|
66
66
|
searchFinancialAccounts?(query: string, limit?: number): Promise<BankAccount[]>;
|
|
67
|
+
/** Names ledger accounts by id, inactive ones included — a payment keeps
|
|
68
|
+
* pointing at the account it left even after that account is closed. */
|
|
69
|
+
getAccountsByIds?(ids: string[]): Promise<BankAccount[]>;
|
|
67
70
|
createBankAccount(data: CreateBankAccountInput): Promise<BankAccount>;
|
|
68
71
|
updateBankAccount(id: string, data: Partial<BankAccount>): Promise<BankAccount>;
|
|
69
72
|
getCashSessions(bankAccountId?: string): Promise<CashSession[]>;
|
package/dist/data/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/data/types.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/data/types.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import * as React20 from 'react';
|
|
2
2
|
import React20__default, { useState, useEffect, useMemo, useRef, useCallback } from 'react';
|
|
3
|
-
import { createConnectionStore, connectionSettings, connectionStatus, settingsStatus, connectionRuns, registerTranslations, createSafeDataProvider, registerMessageDefaults, reportDataError, useTranslation, createPendingCommand, useDataChanged, countByTenant, tl, resolveDataProvider, getSupabaseClientOptional, getActiveTenantId, emitDataChanged, exportCSV } from '@fayz-ai/core';
|
|
3
|
+
import { createConnectionStore, connectionSettings, connectionStatus, settingsStatus, connectionRuns, registerTranslations, createSafeDataProvider, registerMessageDefaults, reportDataError, useTranslation, createPendingCommand, useUnitMode, useDataChanged, countByTenant, tl, resolveDataProvider, getSupabaseClientOptional, getActiveTenantId, emitDataChanged, exportCSV, useActiveUnitId } from '@fayz-ai/core';
|
|
4
4
|
import { ModalTask, toast, useInModalTaskHost, CurrencyInput, DatePicker, Button, SubpageHeader, defineKpiWidget, defineChartWidget, defineCustomWidget, defineTableWidget, Modal, ModalContent, ModalHeader, ModalTitle, ModalDescription, ModalBody, DataTable, Card, CardContent, Skeleton, Select, SelectTrigger, SelectValue, SelectContent, SelectItem, MultiSelect, PageTransition, ModulePage, Badge, TooltipProvider, ConfirmDialog, Input, Tooltip, TooltipTrigger, TooltipContent, Checkbox, ModalFooter, SearchSelect, DashboardCanvas, ListView, DateRangeControl, PageHeaderActions, RequiredFilter, Hint, useSaveBar, tourAnchor, FilterMenu, FilterMenuRow, WizardSteps, KpiCard, ChartWidget, CardHeader, CardTitle, TableWidget, useDashboardNavigate, GoldCard } from '@fayz-ai/ui';
|
|
5
|
-
import { createPluginContext, fayzConnectorOAuth, formatCurrency, RightRailPage, PluginSettingsPanel, dedup, useUnitStore, OrderDetailSkeleton, PageActions, OrderDetailBlock, OrderDetailView, PersonLink, useTenantPluginSettings, useModuleNavigation, usePluginOnboardingGate, usePermissionOptional, useModuleNavAccess, PluginOnboardingGateSkeleton, ModuleActionBar, SettingsGroup, ToggleRow, useAgentSurface, parseViewId, EntitlementGate, UpgradePrompt, createArchetypeLookup, useChatStore, adminNavigateTo, revealPage, GetStarted, useAuth, resolveEntityRoute, PermissionGate, useLookupCreate, OrderFormSkeleton, OrderFormView, OrderFormBlock, OrderFormItemsCard, OrderFormItemRow, OrderFormAddItemStep, useLimitGuard, invalidateLimit, askAI, requestChatUpload, toInlineFile } from '@fayz-ai/admin';
|
|
5
|
+
import { createPluginContext, fayzConnectorOAuth, formatCurrency, RightRailPage, PluginSettingsPanel, dedup, useUnitStore, OrderDetailSkeleton, PageActions, OrderDetailBlock, OrderDetailView, PersonLink, useTenantPluginSettings, useModuleNavigation, usePluginOnboardingGate, usePermissionOptional, useModuleNavAccess, PluginOnboardingGateSkeleton, ModuleActionBar, SettingsGroup, ToggleRow, useAgentSurface, parseViewId, EntitlementGate, UpgradePrompt, createArchetypeLookup, useChatStore, adminNavigateTo, revealPage, GetStarted, useAuth, resolveEntityRoute, PermissionGate, useLookupCreate, OrderFormSkeleton, OrderFormView, OrderFormBlock, OrderFormItemsCard, OrderFormItemRow, OrderFormAddItemStep, useUnitFilter, useLimitGuard, invalidateLimit, askAI, requestChatUpload, toInlineFile } from '@fayz-ai/admin';
|
|
6
6
|
import { CircleDollarSign, FileText, FileCheck, ArrowRightLeft, CreditCard, QrCode, Banknote, Pencil, Check, X, Ban, CircleDashed, CircleAlert, CircleCheckBig, CircleEllipsis, CalendarDays, ExternalLink, DollarSign, LayoutList, Layers, Paperclip, Camera, Undo2, ChevronDown, Building2, Wallet, Plus, AlertTriangle, Filter, TrendingUp, Copy, Trash2, Search, ChevronsUpDown, ChevronsDownUp, Landmark, Clock, BookOpen, ChevronRight, Info, FolderOpen, Folder, RotateCcw, Calculator, StickyNote, Play, Square, ChevronUp, ClipboardCheck, FileCheck2, FileX2, RefreshCw, Send, CalendarClock, Loader2, BadgeCheck, Gift, Target, Settings, ArrowRight, Receipt, Users, ArrowDownCircle, ArrowUpCircle, Sparkles, Link2, Download, CheckCheck, Pause, MoreVertical, Printer, ShoppingCart, Car, Home, Utensils, Zap, Film, HeartPulse, Dumbbell, Music, ShoppingBag, ArrowLeft, ArrowUpRight, ArrowDownRight, EyeOff, Eye } from 'lucide-react';
|
|
7
7
|
import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
|
|
8
8
|
import { createPortal } from 'react-dom';
|
|
@@ -1049,6 +1049,9 @@ function InvoiceListView({ direction, onNew, onNewReceipt, onEdit }) {
|
|
|
1049
1049
|
const [accountId, setAccountId] = useState("");
|
|
1050
1050
|
const [costCenterId, setCostCenterId] = useState("");
|
|
1051
1051
|
const [unitId, setUnitId] = useState("");
|
|
1052
|
+
const unitMode = useUnitMode();
|
|
1053
|
+
const unitFilter = useUnitFilter();
|
|
1054
|
+
const effectiveUnitId = unitMode ? unitFilter.value : unitId || void 0;
|
|
1052
1055
|
const [accounts, setAccounts] = useState([]);
|
|
1053
1056
|
const postable = useMemo(() => postableAccounts(accounts), [accounts]);
|
|
1054
1057
|
const [costCenters, setCostCenters] = useState([]);
|
|
@@ -1112,9 +1115,9 @@ function InvoiceListView({ direction, onNew, onNewReceipt, onEdit }) {
|
|
|
1112
1115
|
search: search || void 0,
|
|
1113
1116
|
accountId: accountId || void 0,
|
|
1114
1117
|
costCenterId: costCenterId || void 0,
|
|
1115
|
-
unitId:
|
|
1118
|
+
unitId: effectiveUnitId,
|
|
1116
1119
|
dateRange
|
|
1117
|
-
}), [direction, statusFilter, search, accountId, costCenterId,
|
|
1120
|
+
}), [direction, statusFilter, search, accountId, costCenterId, effectiveUnitId, dateRange]);
|
|
1118
1121
|
useEffect(() => {
|
|
1119
1122
|
fetchInvoices(query);
|
|
1120
1123
|
}, [query]);
|
|
@@ -1260,7 +1263,7 @@ function InvoiceListView({ direction, onNew, onNewReceipt, onEdit }) {
|
|
|
1260
1263
|
fields: [
|
|
1261
1264
|
{
|
|
1262
1265
|
id: "status",
|
|
1263
|
-
label: t2("financial.invoice.
|
|
1266
|
+
label: t2("financial.invoice.columnStatus"),
|
|
1264
1267
|
icon: CircleDashed,
|
|
1265
1268
|
activeCount: statusFilter.length,
|
|
1266
1269
|
render: (_close, q) => /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
@@ -1317,7 +1320,7 @@ function InvoiceListView({ direction, onNew, onNewReceipt, onEdit }) {
|
|
|
1317
1320
|
] }) }, c.id))
|
|
1318
1321
|
] })
|
|
1319
1322
|
}] : [],
|
|
1320
|
-
|
|
1323
|
+
...!unitMode && locations.length > 1 ? [{
|
|
1321
1324
|
id: "unit",
|
|
1322
1325
|
label: t2("financial.invoice.filterUnit"),
|
|
1323
1326
|
icon: Building2,
|
|
@@ -1344,6 +1347,25 @@ function InvoiceListView({ direction, onNew, onNewReceipt, onEdit }) {
|
|
|
1344
1347
|
setUnitId("");
|
|
1345
1348
|
setStatusFilter([]);
|
|
1346
1349
|
};
|
|
1350
|
+
const unitPill = unitFilter.visible ? /* @__PURE__ */ jsx(
|
|
1351
|
+
RequiredFilter,
|
|
1352
|
+
{
|
|
1353
|
+
label: unitFilter.label,
|
|
1354
|
+
value: unitFilter.options.find((u) => u.id === unitFilter.value)?.name ?? unitFilter.allLabel,
|
|
1355
|
+
icon: Building2,
|
|
1356
|
+
align: "end",
|
|
1357
|
+
children: (close) => /* @__PURE__ */ jsxs("div", { className: "max-h-72 space-y-0.5 overflow-y-auto", children: [
|
|
1358
|
+
/* @__PURE__ */ jsx(FilterMenuRow, { active: !unitFilter.value, onClick: () => {
|
|
1359
|
+
unitFilter.setValue(void 0);
|
|
1360
|
+
close();
|
|
1361
|
+
}, children: /* @__PURE__ */ jsx("span", { className: "truncate", children: unitFilter.allLabel }) }),
|
|
1362
|
+
unitFilter.options.map((u) => /* @__PURE__ */ jsx(FilterMenuRow, { active: unitFilter.value === u.id, onClick: () => {
|
|
1363
|
+
unitFilter.setValue(u.id);
|
|
1364
|
+
close();
|
|
1365
|
+
}, children: /* @__PURE__ */ jsx("span", { className: "truncate", children: u.name }) }, u.id))
|
|
1366
|
+
] })
|
|
1367
|
+
}
|
|
1368
|
+
) : null;
|
|
1347
1369
|
const periodFilter = /* @__PURE__ */ jsx(
|
|
1348
1370
|
RequiredFilter,
|
|
1349
1371
|
{
|
|
@@ -1406,6 +1428,7 @@ function InvoiceListView({ direction, onNew, onNewReceipt, onEdit }) {
|
|
|
1406
1428
|
onSearchChange: setSearch,
|
|
1407
1429
|
searchDebounce: 0,
|
|
1408
1430
|
filtersTrigger: /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2", children: [
|
|
1431
|
+
unitPill,
|
|
1409
1432
|
periodFilter,
|
|
1410
1433
|
filtersMenu
|
|
1411
1434
|
] }),
|
|
@@ -3269,22 +3292,11 @@ function InvoiceFormView({ direction, editId, onSaved, focusReceipt = false, fro
|
|
|
3269
3292
|
const config = useFinancialConfig();
|
|
3270
3293
|
const provider = useFinancialProvider();
|
|
3271
3294
|
const { currency, itemTypes: itemTypesRaw, locations } = config;
|
|
3272
|
-
const
|
|
3273
|
-
|
|
3274
|
-
|
|
3275
|
-
|
|
3276
|
-
|
|
3277
|
-
}
|
|
3278
|
-
let cancelled = false;
|
|
3279
|
-
const lookup = createArchetypeLookup({ archetype: "location", entityDef: null });
|
|
3280
|
-
void lookup.list?.().then((rows) => {
|
|
3281
|
-
if (!cancelled) setAvailableLocations(rows.map((row) => ({ id: row.id, name: row.label })));
|
|
3282
|
-
}).catch(() => {
|
|
3283
|
-
});
|
|
3284
|
-
return () => {
|
|
3285
|
-
cancelled = true;
|
|
3286
|
-
};
|
|
3287
|
-
}, [locations]);
|
|
3295
|
+
const unitMode = useUnitMode();
|
|
3296
|
+
const activeUnitId = useActiveUnitId();
|
|
3297
|
+
const reachableUnits = useUnitFilter().options;
|
|
3298
|
+
const unitChoices = unitMode ? reachableUnits : locations;
|
|
3299
|
+
const showUnitField = unitChoices.length > 1;
|
|
3288
3300
|
const [giftCardsEnabled, setGiftCardsEnabled] = useState(false);
|
|
3289
3301
|
useEffect(() => {
|
|
3290
3302
|
let cancelled = false;
|
|
@@ -3384,7 +3396,17 @@ function InvoiceFormView({ direction, editId, onSaved, focusReceipt = false, fro
|
|
|
3384
3396
|
addItemsAutomatically: false
|
|
3385
3397
|
});
|
|
3386
3398
|
const accountingPolicyRequest = useRef(0);
|
|
3387
|
-
const
|
|
3399
|
+
const defaultUnitId = () => {
|
|
3400
|
+
if (!unitMode) return void 0;
|
|
3401
|
+
if (activeUnitId && reachableUnits.some((u) => u.id === activeUnitId)) return activeUnitId;
|
|
3402
|
+
return reachableUnits.length === 1 ? reachableUnits[0].id : void 0;
|
|
3403
|
+
};
|
|
3404
|
+
const [unitId, setUnitId] = useState(() => (isEdit ? void 0 : defaultUnitId()) ?? locations[0]?.id ?? "");
|
|
3405
|
+
useEffect(() => {
|
|
3406
|
+
if (isEdit || unitId) return;
|
|
3407
|
+
const next = defaultUnitId();
|
|
3408
|
+
if (next) setUnitId(next);
|
|
3409
|
+
}, [isEdit, unitMode, unitId, activeUnitId, reachableUnits]);
|
|
3388
3410
|
const [invoiceDate, setInvoiceDate] = useState((/* @__PURE__ */ new Date()).toISOString().slice(0, 10));
|
|
3389
3411
|
const [fiscalNumber, setFiscalNumber] = useState("");
|
|
3390
3412
|
const [observations, setObservations] = useState("");
|
|
@@ -3982,7 +4004,7 @@ function InvoiceFormView({ direction, editId, onSaved, focusReceipt = false, fro
|
|
|
3982
4004
|
] }) });
|
|
3983
4005
|
const sideSections = /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
3984
4006
|
/* @__PURE__ */ jsx(OrderFormBlock, { title: t2("financial.invoice.details"), children: /* @__PURE__ */ jsxs("div", { className: "space-y-3", children: [
|
|
3985
|
-
/* @__PURE__ */ jsx(LocationSelector, { locations:
|
|
4007
|
+
showUnitField && /* @__PURE__ */ jsx(LocationSelector, { locations: unitChoices, value: unitId, onChange: setUnitId }),
|
|
3986
4008
|
/* @__PURE__ */ jsxs("div", { children: [
|
|
3987
4009
|
/* @__PURE__ */ jsx("label", { className: "text-xs font-medium text-muted-foreground", children: t2("financial.invoiceForm.date") }),
|
|
3988
4010
|
isEdit ? /* @__PURE__ */ jsx("p", { className: "mt-1 px-1 py-2 text-sm", children: (/* @__PURE__ */ new Date(`${invoiceDate}T00:00:00`)).toLocaleDateString() }) : /* @__PURE__ */ jsx(DatePicker, { value: invoiceDate, onChange: setInvoiceDate, className: "mt-1" })
|
|
@@ -4277,6 +4299,27 @@ function groupPaymentsByBill(bills, payments) {
|
|
|
4277
4299
|
}
|
|
4278
4300
|
return { byBillId, unattributed };
|
|
4279
4301
|
}
|
|
4302
|
+
|
|
4303
|
+
// src/lib/payment-how.ts
|
|
4304
|
+
var NOT_A_HOLDER = /* @__PURE__ */ new Set(["person", "system"]);
|
|
4305
|
+
function paymentHolderId(p) {
|
|
4306
|
+
if (p.bankAccountId) return p.bankAccountId;
|
|
4307
|
+
return p.direction === "debit" ? p.creditAccountId : p.debitAccountId;
|
|
4308
|
+
}
|
|
4309
|
+
function describePayment(p, ctx2) {
|
|
4310
|
+
const registry = ctx2.paymentMethods.find((m) => m.id === p.paymentMethodId);
|
|
4311
|
+
const type = ctx2.paymentMethodTypes.find((tp) => tp.id === (registry?.paymentMethodTypeId ?? p.paymentMethodTypeId));
|
|
4312
|
+
let method = [type?.name, registry?.name].filter(Boolean).join(" \xB7 ") || void 0;
|
|
4313
|
+
if (!method && p.method) {
|
|
4314
|
+
const key = `financial.method.${p.method}`;
|
|
4315
|
+
const label = ctx2.t(key);
|
|
4316
|
+
method = label && label !== key ? label : p.method;
|
|
4317
|
+
}
|
|
4318
|
+
const holderId = paymentHolderId(p);
|
|
4319
|
+
const holder = holderId ? ctx2.accountsById.get(holderId) : void 0;
|
|
4320
|
+
const account = holder && !NOT_A_HOLDER.has(holder.accountType) ? holder : void 0;
|
|
4321
|
+
return { method, account };
|
|
4322
|
+
}
|
|
4280
4323
|
var STATUS_COLORS = {
|
|
4281
4324
|
open: { bg: "bg-info-soft text-info-soft-foreground", icon: CircleDashed, labelKey: "financial.invoice.statusOpen", tone: "info" },
|
|
4282
4325
|
pending: { bg: "bg-warning-soft text-warning-soft-foreground", icon: CircleDashed, labelKey: "financial.invoice.statusPending", tone: "warning" },
|
|
@@ -4306,12 +4349,14 @@ function InvoiceDetailView({ invoiceId, direction, onBack, onEdit, backLabel, em
|
|
|
4306
4349
|
const [detailsLoaded, setDetailsLoaded] = useState(false);
|
|
4307
4350
|
const [detailsLoading, setDetailsLoading] = useState(false);
|
|
4308
4351
|
const [invoice, setInvoice] = useState(null);
|
|
4309
|
-
const
|
|
4352
|
+
const unitMode = useUnitMode();
|
|
4353
|
+
const unitName = useUnitStore((st) => unitMode && invoice?.unitId ? st.byId[invoice.unitId]?.name : void 0);
|
|
4310
4354
|
const [items, setItems] = useState([]);
|
|
4311
4355
|
const [attachments, setAttachments] = useState([]);
|
|
4312
4356
|
const [viewing, setViewing] = useState(null);
|
|
4313
4357
|
const [movements, setMovements] = useState([]);
|
|
4314
4358
|
const [payments, setPayments] = useState([]);
|
|
4359
|
+
const [holders, setHolders] = useState(/* @__PURE__ */ new Map());
|
|
4315
4360
|
const [loading, setLoading] = useState(true);
|
|
4316
4361
|
const [error, setError] = useState(null);
|
|
4317
4362
|
const [reversing, setReversing] = useState(null);
|
|
@@ -4360,9 +4405,9 @@ function InvoiceDetailView({ invoiceId, direction, onBack, onEdit, backLabel, em
|
|
|
4360
4405
|
setMovements(
|
|
4361
4406
|
movResult.data.filter((m) => m.invoiceId === invoiceId && m.movementKind === "bill").sort((a, b) => (a.installmentNumber ?? 0) - (b.installmentNumber ?? 0))
|
|
4362
4407
|
);
|
|
4363
|
-
|
|
4364
|
-
|
|
4365
|
-
);
|
|
4408
|
+
const pays = movResult.data.filter((m) => m.invoiceId === invoiceId && m.movementKind === "payment").sort((a, b) => (a.paymentDate ?? "").localeCompare(b.paymentDate ?? ""));
|
|
4409
|
+
setPayments(pays);
|
|
4410
|
+
if (pays.length > 0) void loadPaymentLabels(pays, req);
|
|
4366
4411
|
} catch (e) {
|
|
4367
4412
|
if (req !== reqRef.current) return;
|
|
4368
4413
|
setError(e?.message ?? String(e));
|
|
@@ -4384,6 +4429,19 @@ function InvoiceDetailView({ invoiceId, direction, onBack, onEdit, backLabel, em
|
|
|
4384
4429
|
document.addEventListener("mousedown", handleClick);
|
|
4385
4430
|
return () => document.removeEventListener("mousedown", handleClick);
|
|
4386
4431
|
}, [menuOpen]);
|
|
4432
|
+
async function loadPaymentLabels(pays, req) {
|
|
4433
|
+
const ids = [...new Set(pays.map(paymentHolderId).filter((id) => Boolean(id)))];
|
|
4434
|
+
try {
|
|
4435
|
+
const [accounts] = await Promise.all([
|
|
4436
|
+
ids.length > 0 && provider.getAccountsByIds ? provider.getAccountsByIds(ids) : Promise.resolve([]),
|
|
4437
|
+
fetchPaymentMethods(),
|
|
4438
|
+
fetchBankAccounts()
|
|
4439
|
+
]);
|
|
4440
|
+
if (req !== reqRef.current) return;
|
|
4441
|
+
setHolders(new Map(accounts.map((a) => [a.id, a])));
|
|
4442
|
+
} catch {
|
|
4443
|
+
}
|
|
4444
|
+
}
|
|
4387
4445
|
async function loadPaymentDetails() {
|
|
4388
4446
|
if (detailsLoaded || detailsLoading) return;
|
|
4389
4447
|
setDetailsLoading(true);
|
|
@@ -4439,6 +4497,9 @@ function InvoiceDetailView({ invoiceId, direction, onBack, onEdit, backLabel, em
|
|
|
4439
4497
|
] });
|
|
4440
4498
|
}
|
|
4441
4499
|
const settlements = groupPaymentsByBill(movements, payments);
|
|
4500
|
+
const accountsById = new Map(bankAccounts.map((a) => [a.id, a]));
|
|
4501
|
+
for (const [id, a] of holders) accountsById.set(id, a);
|
|
4502
|
+
const howCtx = { paymentMethods: paymentMethods2, paymentMethodTypes, accountsById, t: t2 };
|
|
4442
4503
|
const statusConfig = STATUS_COLORS[invoice.status] ?? STATUS_COLORS.pending;
|
|
4443
4504
|
statusConfig.icon;
|
|
4444
4505
|
const totalPaid = movements.reduce((sum, m) => sum + m.paidAmount, 0);
|
|
@@ -4540,12 +4601,10 @@ function InvoiceDetailView({ invoiceId, direction, onBack, onEdit, backLabel, em
|
|
|
4540
4601
|
const movStatus = STATUS_COLORS[mov.status] ?? STATUS_COLORS.pending;
|
|
4541
4602
|
const MovIcon = movStatus.icon;
|
|
4542
4603
|
const instPayments = settlements.byBillId.get(mov.id) ?? [];
|
|
4543
|
-
const paymentSummary = instPayments.map((payment) => {
|
|
4544
|
-
const
|
|
4545
|
-
|
|
4546
|
-
|
|
4547
|
-
return [type?.name, method?.name, account?.name].filter(Boolean).join(" \xB7 ");
|
|
4548
|
-
}).filter(Boolean).join(" / ");
|
|
4604
|
+
const paymentSummary = [...new Set(instPayments.map((payment) => {
|
|
4605
|
+
const how = describePayment(payment, howCtx);
|
|
4606
|
+
return [how.method, how.account?.name].filter(Boolean).join(" \xB7 ");
|
|
4607
|
+
}).filter(Boolean))].join(" / ");
|
|
4549
4608
|
return /* @__PURE__ */ jsxs("div", { children: [
|
|
4550
4609
|
/* @__PURE__ */ jsxs(
|
|
4551
4610
|
"div",
|
|
@@ -4669,19 +4728,12 @@ function InvoiceDetailView({ invoiceId, direction, onBack, onEdit, backLabel, em
|
|
|
4669
4728
|
/* @__PURE__ */ jsx("div", { className: "h-3 w-16 rounded bg-muted/30 animate-pulse" }),
|
|
4670
4729
|
/* @__PURE__ */ jsx("div", { className: "h-3 w-24 rounded bg-muted/40 animate-pulse" })
|
|
4671
4730
|
] }) : instPayments.length === 0 ? /* @__PURE__ */ jsx("div", { className: "text-[11px] text-muted-foreground", children: t2("financial.invoice.noDetails") }) : /* @__PURE__ */ jsx("div", { className: "space-y-1", children: instPayments.map((p) => {
|
|
4672
|
-
const
|
|
4673
|
-
const pType = paymentMethodTypes.find((tp) => tp.id === (pMethod?.paymentMethodTypeId ?? p.paymentMethodTypeId));
|
|
4674
|
-
const pAccount = bankAccounts.find((a) => a.id === p.bankAccountId);
|
|
4731
|
+
const how = describePayment(p, howCtx);
|
|
4675
4732
|
return /* @__PURE__ */ jsxs("div", { className: "flex flex-wrap items-center gap-x-1 gap-y-0.5 text-[11px] text-muted-foreground", children: [
|
|
4676
4733
|
/* @__PURE__ */ jsx("span", { className: "font-medium text-success", children: formatCurrency(p.paidAmount, currency) }),
|
|
4677
|
-
|
|
4734
|
+
how.method && /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
4678
4735
|
/* @__PURE__ */ jsx("span", { children: "\xB7" }),
|
|
4679
|
-
/* @__PURE__ */ jsx("span", { className: "font-medium text-foreground", children:
|
|
4680
|
-
pMethod && /* @__PURE__ */ jsxs("span", { children: [
|
|
4681
|
-
"(",
|
|
4682
|
-
pMethod.name,
|
|
4683
|
-
")"
|
|
4684
|
-
] })
|
|
4736
|
+
/* @__PURE__ */ jsx("span", { className: "font-medium text-foreground", children: how.method })
|
|
4685
4737
|
] }),
|
|
4686
4738
|
p.cardBrand && /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
4687
4739
|
/* @__PURE__ */ jsx("span", { children: "\xB7" }),
|
|
@@ -4692,10 +4744,10 @@ function InvoiceDetailView({ invoiceId, direction, onBack, onEdit, backLabel, em
|
|
|
4692
4744
|
"x"
|
|
4693
4745
|
] })
|
|
4694
4746
|
] }),
|
|
4695
|
-
|
|
4747
|
+
how.account && /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
4696
4748
|
/* @__PURE__ */ jsx("span", { children: "\xB7" }),
|
|
4697
4749
|
/* @__PURE__ */ jsx(Building2, { className: "h-3 w-3 shrink-0" }),
|
|
4698
|
-
/* @__PURE__ */ jsx("span", { children:
|
|
4750
|
+
/* @__PURE__ */ jsx("span", { children: how.account.name })
|
|
4699
4751
|
] }),
|
|
4700
4752
|
(p.feeAmount ?? 0) > 0 && /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
4701
4753
|
/* @__PURE__ */ jsx("span", { children: "\xB7" }),
|
|
@@ -4711,7 +4763,7 @@ function InvoiceDetailView({ invoiceId, direction, onBack, onEdit, backLabel, em
|
|
|
4711
4763
|
] }),
|
|
4712
4764
|
p.notes && /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
4713
4765
|
/* @__PURE__ */ jsx("span", { children: "\xB7" }),
|
|
4714
|
-
/* @__PURE__ */ jsx("span", { className: "italic truncate max-w-[200px]", children: p.notes })
|
|
4766
|
+
/* @__PURE__ */ jsx("span", { className: "italic truncate max-w-[200px]", title: p.notes, children: p.notes })
|
|
4715
4767
|
] })
|
|
4716
4768
|
] }, p.id);
|
|
4717
4769
|
}) }) }) })
|
|
@@ -8294,22 +8346,22 @@ function buildNav(config, activeView, navigate, t2) {
|
|
|
8294
8346
|
onClick: () => navigate("cash-registers")
|
|
8295
8347
|
});
|
|
8296
8348
|
}
|
|
8297
|
-
items.push({
|
|
8349
|
+
items.push(config.modules.reconciliation ? {
|
|
8350
|
+
id: "statements",
|
|
8351
|
+
label: t2("financial.nav.statements"),
|
|
8352
|
+
icon: "Receipt",
|
|
8353
|
+
active: activeView === "statements" || activeView === "reconciliation",
|
|
8354
|
+
children: [
|
|
8355
|
+
{ id: "statements-list", label: t2("financial.nav.list"), active: activeView === "statements", onClick: () => navigate("statements") },
|
|
8356
|
+
{ id: "reconciliation", label: t2("financial.nav.reconciliation"), active: activeView === "reconciliation", onClick: () => navigate("reconciliation") }
|
|
8357
|
+
]
|
|
8358
|
+
} : {
|
|
8298
8359
|
id: "statements",
|
|
8299
8360
|
label: t2("financial.nav.statements"),
|
|
8300
8361
|
icon: "Receipt",
|
|
8301
8362
|
active: activeView === "statements",
|
|
8302
8363
|
onClick: () => navigate("statements")
|
|
8303
8364
|
});
|
|
8304
|
-
if (config.modules.reconciliation) {
|
|
8305
|
-
items.push({
|
|
8306
|
-
id: "reconciliation",
|
|
8307
|
-
label: t2("financial.nav.reconciliation"),
|
|
8308
|
-
icon: "ArrowLeftRight",
|
|
8309
|
-
active: activeView === "reconciliation",
|
|
8310
|
-
onClick: () => navigate("reconciliation")
|
|
8311
|
-
});
|
|
8312
|
-
}
|
|
8313
8365
|
if (config.modules.notasFiscais) {
|
|
8314
8366
|
items.push({
|
|
8315
8367
|
id: "notas-fiscais",
|
|
@@ -8355,10 +8407,14 @@ function buildNav(config, activeView, navigate, t2) {
|
|
|
8355
8407
|
onClick: () => navigate("cards")
|
|
8356
8408
|
});
|
|
8357
8409
|
}
|
|
8358
|
-
|
|
8359
|
-
const
|
|
8360
|
-
|
|
8361
|
-
|
|
8410
|
+
const tag = (list) => {
|
|
8411
|
+
for (const item of list) {
|
|
8412
|
+
const feature = config.navFeatureMap[item.id];
|
|
8413
|
+
if (feature) item.feature = feature;
|
|
8414
|
+
if (item.children) tag(item.children);
|
|
8415
|
+
}
|
|
8416
|
+
};
|
|
8417
|
+
tag(items);
|
|
8362
8418
|
return items;
|
|
8363
8419
|
}
|
|
8364
8420
|
function FinancialPage({ config: appConfig, provider, store: store6, registries }) {
|
|
@@ -9253,6 +9309,9 @@ function createMockFinancialProvider(options) {
|
|
|
9253
9309
|
async getBankAccounts() {
|
|
9254
9310
|
return store6.bankAccounts.filter((a) => a.isActive);
|
|
9255
9311
|
},
|
|
9312
|
+
async getAccountsByIds(ids) {
|
|
9313
|
+
return store6.bankAccounts.filter((a) => ids.includes(a.id));
|
|
9314
|
+
},
|
|
9256
9315
|
async searchFinancialAccounts(query, limit = 20) {
|
|
9257
9316
|
const term = query.trim().toLocaleLowerCase("pt-BR");
|
|
9258
9317
|
if (term.length < 2) return [];
|
|
@@ -10447,6 +10506,16 @@ function createSupabaseFinancialProvider() {
|
|
|
10447
10506
|
accountType: r.kind
|
|
10448
10507
|
}));
|
|
10449
10508
|
},
|
|
10509
|
+
async getAccountsByIds(ids) {
|
|
10510
|
+
if (ids.length === 0) return [];
|
|
10511
|
+
const { pub } = getClients();
|
|
10512
|
+
const { data, error } = await pub.from("plg_financial_accounts").select("*").in("id", ids);
|
|
10513
|
+
if (error) throw error;
|
|
10514
|
+
return (data ?? []).map((r) => ({
|
|
10515
|
+
...snakeToCamel(r),
|
|
10516
|
+
accountType: r.kind
|
|
10517
|
+
}));
|
|
10518
|
+
},
|
|
10450
10519
|
async searchFinancialAccounts(query, limit = 20) {
|
|
10451
10520
|
const term = query.trim();
|
|
10452
10521
|
if (term.length < 2) return [];
|