@fayz-ai/plugin-financial 0.13.1 → 0.14.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/context.d.ts +3 -1
- package/dist/context.d.ts.map +1 -1
- package/dist/data/mock.d.ts.map +1 -1
- package/dist/data/supabase.d.ts.map +1 -1
- package/dist/data/tables.d.ts +2 -0
- package/dist/data/tables.d.ts.map +1 -1
- package/dist/data/types.d.ts +4 -0
- package/dist/data/types.d.ts.map +1 -1
- package/dist/index.d.ts +13 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +155 -25
- package/dist/index.js.map +1 -1
- package/dist/migrations/index.d.ts +1 -0
- package/dist/migrations/index.d.ts.map +1 -1
- package/dist/views/NotasFiscaisView.d.ts.map +1 -1
- package/package.json +1 -1
package/dist/context.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { formatCurrency, type CurrencyConfig, type EntityLookupMap, type EntityLookup } from '@fayz-ai/admin';
|
|
2
|
-
import type { FinancialPluginLabels, ItemTypeOption } from './index';
|
|
2
|
+
import type { FinancialFiscalProviderConfig, FinancialPluginLabels, ItemTypeOption } from './index';
|
|
3
3
|
import type { FinancialDataProvider } from './data/types';
|
|
4
4
|
import type { FinancialUIState } from './store';
|
|
5
5
|
export interface FinancialModules {
|
|
@@ -36,6 +36,8 @@ export interface ResolvedFinancialConfig {
|
|
|
36
36
|
locations: LocationOption[];
|
|
37
37
|
entityLookups: EntityLookupMap;
|
|
38
38
|
contactLookup?: EntityLookup;
|
|
39
|
+
/** Provider capability advertised by an app-installed fiscal addon. */
|
|
40
|
+
fiscalProvider?: FinancialFiscalProviderConfig;
|
|
39
41
|
/** Ver FinancialPluginOptions.moduleNav. */
|
|
40
42
|
moduleNav?: 'rail' | 'tabs' | 'sidebar';
|
|
41
43
|
onBookingClick?: (orderId: string) => void;
|
package/dist/context.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../src/context.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAuB,cAAc,EAAE,KAAK,cAAc,EAAE,KAAK,eAAe,EAAE,KAAK,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAClI,OAAO,KAAK,EAAE,qBAAqB,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;
|
|
1
|
+
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../src/context.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAuB,cAAc,EAAE,KAAK,cAAc,EAAE,KAAK,eAAe,EAAE,KAAK,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAClI,OAAO,KAAK,EAAE,6BAA6B,EAAE,qBAAqB,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AACnG,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAA;AACzD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAA;AAM/C,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,OAAO,CAAA;IACjB,WAAW,EAAE,OAAO,CAAA;IACpB,aAAa,EAAE,OAAO,CAAA;IACtB,UAAU,EAAE,OAAO,CAAA;IACnB,WAAW,EAAE,OAAO,CAAA;IACpB,KAAK,EAAE,OAAO,CAAA;IACd,uEAAuE;IACvE,KAAK,EAAE,OAAO,CAAA;IACd,SAAS,EAAE,OAAO,CAAA;IAClB,mGAAmG;IACnG,cAAc,EAAE,OAAO,CAAA;IACvB,sFAAsF;IACtF,YAAY,EAAE,OAAO,CAAA;CACtB;AAED,MAAM,MAAM,iBAAiB,GAAG,cAAc,CAAA;AAE9C,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,CAAC,EAAE,OAAO,CAAA;CACf;AAED,MAAM,WAAW,uBAAuB;IACtC,OAAO,EAAE,gBAAgB,CAAA;IACzB,MAAM,EAAE,qBAAqB,CAAA;IAC7B,QAAQ,EAAE,iBAAiB,CAAA;IAC3B,SAAS,EAAE,cAAc,EAAE,CAAA;IAC3B,sBAAsB,EAAE,OAAO,CAAA;IAC/B,aAAa,EAAE;QAAE,aAAa,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAA;IACvD,SAAS,EAAE,cAAc,EAAE,CAAA;IAC3B,aAAa,EAAE,eAAe,CAAA;IAC9B,aAAa,CAAC,EAAE,YAAY,CAAA;IAC5B,uEAAuE;IACvE,cAAc,CAAC,EAAE,6BAA6B,CAAA;IAC9C,4CAA4C;IAC5C,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAA;IACvC,cAAc,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAA;IAC1C;;;;2CAIuC;IACvC,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CACtC;AAID,eAAO,MAAM,wBAAwB;;;;;EAAsB,CAAA;AAC3D,eAAO,MAAM,kBAAkB,+BAAgB,CAAA;AAC/C,eAAO,MAAM,oBAAoB,6BAAkB,CAAA;AACnD,eAAO,MAAM,iBAAiB,oDAAe,CAAA;AAE7C,OAAO,EAAE,cAAc,EAAE,CAAA"}
|
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,EAQ3B,MAAM,UAAU,CAAA;
|
|
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,EAQ3B,MAAM,UAAU,CAAA;AAkIjB;;;;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;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,CAssBzG"}
|
|
@@ -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;AAwRpD,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;AAwRpD,wBAAgB,+BAA+B,IAAI,qBAAqB,CAygDvE"}
|
package/dist/data/tables.d.ts
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
export declare const T: {
|
|
2
2
|
readonly movements: "plg_financial_movements";
|
|
3
|
+
readonly cashMovements: "v_financial_cash_movements";
|
|
4
|
+
readonly accountBalances: "v_financial_account_balances";
|
|
3
5
|
readonly chartOfAccounts: "plg_financial_chart_of_accounts";
|
|
4
6
|
readonly bankAccounts: "plg_financial_bank_accounts";
|
|
5
7
|
readonly cardBrands: "plg_financial_card_brands";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tables.d.ts","sourceRoot":"","sources":["../../src/data/tables.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,CAAC
|
|
1
|
+
{"version":3,"file":"tables.d.ts","sourceRoot":"","sources":["../../src/data/tables.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;CAqCJ,CAAA"}
|
package/dist/data/types.d.ts
CHANGED
|
@@ -87,6 +87,10 @@ export interface FinancialDataProvider {
|
|
|
87
87
|
updateNota?(id: string, data: Partial<NotaFiscal>): Promise<NotaFiscal>;
|
|
88
88
|
/** Request authorization. Decoupled from the fiscal gateway — see note above. */
|
|
89
89
|
issueNota?(id: string): Promise<NotaFiscal>;
|
|
90
|
+
/** Reconcile an asynchronous issuer result with the server-committed document. */
|
|
91
|
+
refreshNota?(id: string): Promise<NotaFiscal>;
|
|
92
|
+
/** Resolve a short-lived artifact URL just in time; signed URLs are not ledger fields. */
|
|
93
|
+
getNotaArtifactUrl?(id: string, kind: 'xml' | 'pdf' | 'cancellation_xml'): Promise<string>;
|
|
90
94
|
cancelNota?(id: string, reason?: string): Promise<NotaFiscal>;
|
|
91
95
|
}
|
|
92
96
|
//# sourceMappingURL=types.d.ts.map
|
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.d.ts
CHANGED
|
@@ -35,6 +35,16 @@ export interface ItemTypeOption {
|
|
|
35
35
|
label: string;
|
|
36
36
|
icon?: string;
|
|
37
37
|
}
|
|
38
|
+
/**
|
|
39
|
+
* Provider-neutral fiscal capability. The Financial plugin owns the document;
|
|
40
|
+
* an addon supplies the gateway and tells the host which journey is available.
|
|
41
|
+
*/
|
|
42
|
+
export interface FinancialFiscalProviderConfig {
|
|
43
|
+
label: string;
|
|
44
|
+
models: import('./types').NotaFiscalModel[];
|
|
45
|
+
/** NFC-e providers derive the legal payload from an order, never a typed total. */
|
|
46
|
+
requiresOrder?: boolean;
|
|
47
|
+
}
|
|
38
48
|
export interface FinancialPluginOptions {
|
|
39
49
|
/** Where the module's sub-nav lives. The views already read it; only the
|
|
40
50
|
* option was missing, so an app asking for 'sidebar' failed to compile. */
|
|
@@ -72,6 +82,8 @@ export interface FinancialPluginOptions {
|
|
|
72
82
|
verticalId?: VerticalId;
|
|
73
83
|
/** Data provider. Defaults to mock (in-memory) if not supplied. */
|
|
74
84
|
dataProvider?: FinancialDataProvider;
|
|
85
|
+
/** Installed fiscal addon capability. Omit to keep local/manual tracking. */
|
|
86
|
+
fiscalProvider?: FinancialFiscalProviderConfig;
|
|
75
87
|
/** Available item types for invoice lines. Default: product + service + other */
|
|
76
88
|
itemTypes?: ItemTypeOption[];
|
|
77
89
|
/** Enable service execution tracking on invoice items (default: false) */
|
|
@@ -140,7 +152,7 @@ export declare const FINANCIAL_NAV_FEATURES: {
|
|
|
140
152
|
export declare function createFinancialPlugin(options?: FinancialPluginOptions): PluginManifest;
|
|
141
153
|
export type { FinancialDataProvider } from './data/types';
|
|
142
154
|
export type { ResolvedFinancialConfig } from './context';
|
|
143
|
-
export type { GiftCard, GiftCardState, GiftCardQuery, IssueGiftCardsInput } from './types';
|
|
155
|
+
export type { GiftCard, GiftCardState, GiftCardQuery, IssueGiftCardsInput, NotaFiscal, NotaFiscalModel, NotaFiscalStatus, NotaFiscalQuery, CreateNotaFiscalInput, } from './types';
|
|
144
156
|
export { createMockFinancialProvider } from './data/mock';
|
|
145
157
|
export type { MockFinancialSeed, MockFinancialProviderOptions } from './data/mock';
|
|
146
158
|
export { buildFinancialDomainEvents, buildFinancialMessageDefaults } from './lib/message-events';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -3,7 +3,7 @@ import React14__default, { useState, useEffect, useMemo, useCallback, useRef } f
|
|
|
3
3
|
import { createConnectionStore, connectionSettings, connectionStatus, settingsStatus, connectionRuns, registerTranslations, createSafeDataProvider, registerMessageDefaults, useTranslation, countByTenant, getSupabaseClientOptional, getActiveTenantId, exportCSV } from '@fayz-ai/core';
|
|
4
4
|
import { toast, CurrencyInput, DatePicker, Button, defineKpiWidget, defineChartWidget, defineCustomWidget, defineTableWidget, Modal, ModalContent, ModalHeader, ModalTitle, ModalDescription, ModalBody, DataTable, PageTransition, ModulePage, SubpageHeader, Skeleton, Badge, TooltipProvider, ConfirmDialog, MultiSelect, Tooltip, TooltipTrigger, TooltipContent, Input, Checkbox, ModalFooter, DashboardCanvas, PageHeaderActions, Card, FilterChip, useSaveBar, SearchSelect, ListView, KpiCard, ChartWidget, CardHeader, CardTitle, CardContent, TableWidget, useDashboardNavigate, GoldCard } from '@fayz-ai/ui';
|
|
5
5
|
import { createPluginContext, fayzConnectorOAuth, formatCurrency, RightRailPage, PluginSettingsPanel, dedup, useModuleNavigation, usePermissionOptional, useModuleNavAccess, ModuleActionBar, useTenantPluginSettings, SettingsGroup, ToggleRow, TeachMeLink, parseViewId, EntitlementGate, UpgradePrompt, GetStarted, useAuth, PermissionGate, PersonLink, useLimitGuard, useLookupCreate, OrderFormSkeleton, OrderFormBlock, OrderFormView, OrderFormItemsCard, OrderFormItemRow, OrderFormAddItemStep, OrderDetailSkeleton, PageActions, OrderDetailBlock, OrderDetailView, invalidateLimit, askAI, requestChatUpload, toInlineFile, useChatStore, useAgentSurface, revealPage } from '@fayz-ai/admin';
|
|
6
|
-
import { CircleDollarSign, FileText, X, FileCheck, ArrowRightLeft, CreditCard, QrCode, Banknote, Pencil, Check, Wallet, Plus, AlertTriangle, Filter, TrendingUp, Copy, DollarSign, Trash2, Landmark, ChevronDown, Clock, BookOpen, ChevronRight, Info, Calculator, StickyNote, Play, Square, ChevronUp, ClipboardCheck, FileCheck2, ExternalLink, Send, Ban, CalendarClock, Gift, Loader2, BadgeCheck, Target, Settings, ArrowRight, Receipt, Users,
|
|
6
|
+
import { CircleDollarSign, FileText, X, FileCheck, ArrowRightLeft, CreditCard, QrCode, Banknote, Pencil, Check, Wallet, Plus, AlertTriangle, Filter, TrendingUp, Copy, DollarSign, Trash2, Landmark, ChevronDown, Clock, BookOpen, ChevronRight, Info, Calculator, StickyNote, Play, Square, ChevronUp, ClipboardCheck, FileCheck2, ExternalLink, FileX2, RefreshCw, Send, Ban, CalendarClock, Gift, Loader2, BadgeCheck, Target, Settings, ArrowRight, Receipt, Users, ArrowDownCircle, ArrowUpCircle, Sparkles, Link2, Search, Download, Paperclip, CheckCheck, MoreVertical, CircleCheckBig, CircleDashed, Camera, CircleAlert, CircleEllipsis, CalendarDays, LayoutList, Layers, Undo2, Building2, ShoppingCart, Car, Home, Utensils, Zap, Film, HeartPulse, Dumbbell, Music, ShoppingBag, ArrowUpRight, ArrowDownRight, EyeOff, Eye } from 'lucide-react';
|
|
7
7
|
import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
|
|
8
8
|
import { createPortal } from 'react-dom';
|
|
9
9
|
import { createStore as createStore$1 } from 'zustand/vanilla';
|
|
@@ -5162,12 +5162,14 @@ var STATUS_META = {
|
|
|
5162
5162
|
};
|
|
5163
5163
|
function NotasFiscaisView() {
|
|
5164
5164
|
const provider = useFinancialProvider();
|
|
5165
|
-
const { currency } = useFinancialConfig();
|
|
5165
|
+
const { currency, fiscalProvider } = useFinancialConfig();
|
|
5166
5166
|
const [notas, setNotas] = useState([]);
|
|
5167
5167
|
const [loading, setLoading] = useState(true);
|
|
5168
5168
|
const [creating, setCreating] = useState(false);
|
|
5169
5169
|
const [busy, setBusy] = useState(null);
|
|
5170
5170
|
const supported = typeof provider.getNotas === "function";
|
|
5171
|
+
const requiresOrder = fiscalProvider?.requiresOrder === true;
|
|
5172
|
+
const canCreateManually = typeof provider.createNota === "function" && !requiresOrder;
|
|
5171
5173
|
const reload = useCallback(async () => {
|
|
5172
5174
|
if (!provider.getNotas) {
|
|
5173
5175
|
setLoading(false);
|
|
@@ -5185,7 +5187,7 @@ function NotasFiscaisView() {
|
|
|
5185
5187
|
void reload();
|
|
5186
5188
|
}, [reload]);
|
|
5187
5189
|
const create = async (input) => {
|
|
5188
|
-
if (!provider.createNota) return;
|
|
5190
|
+
if (!provider.createNota || requiresOrder) return;
|
|
5189
5191
|
await provider.createNota(input);
|
|
5190
5192
|
setCreating(false);
|
|
5191
5193
|
await reload();
|
|
@@ -5202,14 +5204,41 @@ function NotasFiscaisView() {
|
|
|
5202
5204
|
};
|
|
5203
5205
|
const cancel = async (id) => {
|
|
5204
5206
|
if (!provider.cancelNota) return;
|
|
5207
|
+
const reason = window.prompt("Informe a justificativa fiscal do cancelamento (15 a 255 caracteres):");
|
|
5208
|
+
if (reason === null) return;
|
|
5209
|
+
const normalized = reason.trim();
|
|
5210
|
+
if (normalized.length < 15 || normalized.length > 255) {
|
|
5211
|
+
window.alert("A justificativa fiscal deve ter entre 15 e 255 caracteres.");
|
|
5212
|
+
return;
|
|
5213
|
+
}
|
|
5214
|
+
setBusy(id);
|
|
5215
|
+
try {
|
|
5216
|
+
await provider.cancelNota(id, normalized);
|
|
5217
|
+
await reload();
|
|
5218
|
+
} finally {
|
|
5219
|
+
setBusy(null);
|
|
5220
|
+
}
|
|
5221
|
+
};
|
|
5222
|
+
const refresh = async (id) => {
|
|
5223
|
+
if (!provider.refreshNota) return;
|
|
5205
5224
|
setBusy(id);
|
|
5206
5225
|
try {
|
|
5207
|
-
await provider.
|
|
5226
|
+
await provider.refreshNota(id);
|
|
5208
5227
|
await reload();
|
|
5209
5228
|
} finally {
|
|
5210
5229
|
setBusy(null);
|
|
5211
5230
|
}
|
|
5212
5231
|
};
|
|
5232
|
+
const openArtifact = async (nota, kind) => {
|
|
5233
|
+
try {
|
|
5234
|
+
const fallback = kind === "xml" ? nota.xmlUrl : kind === "pdf" ? nota.danfeUrl : void 0;
|
|
5235
|
+
const url = provider.getNotaArtifactUrl ? await provider.getNotaArtifactUrl(nota.id, kind) : fallback;
|
|
5236
|
+
if (!url) throw new Error("O arquivo fiscal ainda n\xE3o est\xE1 dispon\xEDvel.");
|
|
5237
|
+
window.open(url, "_blank", "noopener,noreferrer");
|
|
5238
|
+
} catch (error) {
|
|
5239
|
+
window.alert(error instanceof Error ? error.message : "N\xE3o foi poss\xEDvel abrir o arquivo fiscal.");
|
|
5240
|
+
}
|
|
5241
|
+
};
|
|
5213
5242
|
if (!supported) {
|
|
5214
5243
|
return /* @__PURE__ */ jsxs("div", { className: "p-1", children: [
|
|
5215
5244
|
/* @__PURE__ */ jsx(SubpageHeader, { title: "Notas Fiscais", subtitle: "Emiss\xE3o e acompanhamento de NF-e / NFC-e / NFS-e", icon: "FileText" }),
|
|
@@ -5229,18 +5258,23 @@ function NotasFiscaisView() {
|
|
|
5229
5258
|
{
|
|
5230
5259
|
feature: "financial.notas-fiscais",
|
|
5231
5260
|
title: "Notas Fiscais",
|
|
5232
|
-
about:
|
|
5261
|
+
about: fiscalProvider ? `Acompanhamento fiscal integrado com ${fiscalProvider.label}. A situa\xE7\xE3o final e os arquivos s\xE3o confirmados pelo servidor.` : "O acompanhamento das notas da casa. Sem um addon fiscal, 'Emitir' numera localmente para controle interno."
|
|
5233
5262
|
}
|
|
5234
5263
|
),
|
|
5235
|
-
/* @__PURE__ */ jsx(PermissionGate, { feature: "financial", action: "create", children: /* @__PURE__ */ jsxs(Button, { size: "sm", onClick: () => setCreating(true), children: [
|
|
5264
|
+
canCreateManually && /* @__PURE__ */ jsx(PermissionGate, { feature: "financial", action: "create", children: /* @__PURE__ */ jsxs(Button, { size: "sm", onClick: () => setCreating(true), children: [
|
|
5236
5265
|
/* @__PURE__ */ jsx(Plus, { className: "mr-1.5 h-4 w-4" }),
|
|
5237
5266
|
" Nova nota"
|
|
5238
5267
|
] }) })
|
|
5239
5268
|
] })
|
|
5240
5269
|
}
|
|
5241
5270
|
),
|
|
5242
|
-
/* @__PURE__ */
|
|
5243
|
-
|
|
5271
|
+
fiscalProvider ? /* @__PURE__ */ jsxs("div", { className: "mt-3 rounded-md border border-emerald-300/50 bg-emerald-50 px-3 py-2 text-xs text-emerald-800 dark:bg-emerald-950/30 dark:text-emerald-300", children: [
|
|
5272
|
+
"Emiss\xE3o integrada com ",
|
|
5273
|
+
fiscalProvider.label,
|
|
5274
|
+
".",
|
|
5275
|
+
requiresOrder ? " A NFC-e nasce do pedido, que fornece itens, pagamentos e total." : ""
|
|
5276
|
+
] }) : /* @__PURE__ */ jsx("div", { className: "mt-3 rounded-md border border-amber-300/50 bg-amber-50 px-3 py-2 text-xs text-amber-800 dark:bg-amber-950/30 dark:text-amber-300", children: 'Emiss\xE3o fiscal (SEFAZ) ainda n\xE3o integrada \u2014 "Emitir" atribui n\xFAmero/s\xE9rie localmente para acompanhamento.' }),
|
|
5277
|
+
creating && canCreateManually && /* @__PURE__ */ jsx(CreateForm, { onCancel: () => setCreating(false), onCreate: create }),
|
|
5244
5278
|
loading ? /* @__PURE__ */ jsx("div", { className: "mt-4 space-y-2", children: Array.from({ length: 4 }).map((_, i) => /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-3 rounded-card border border-border bg-card p-3", children: [
|
|
5245
5279
|
/* @__PURE__ */ jsx(Skeleton, { className: "h-9 w-9 shrink-0 rounded-full" }),
|
|
5246
5280
|
/* @__PURE__ */ jsxs("div", { className: "min-w-0 flex-1 space-y-2", children: [
|
|
@@ -5251,7 +5285,7 @@ function NotasFiscaisView() {
|
|
|
5251
5285
|
] }, i)) }) : notas.length === 0 ? /* @__PURE__ */ jsxs("div", { className: "mt-4 rounded-card border border-dashed border-border p-8 text-center", children: [
|
|
5252
5286
|
/* @__PURE__ */ jsx(FileText, { className: "mx-auto h-8 w-8 text-muted-foreground" }),
|
|
5253
5287
|
/* @__PURE__ */ jsx("p", { className: "mt-2 text-sm font-medium text-foreground", children: "Nenhuma nota fiscal ainda" }),
|
|
5254
|
-
/* @__PURE__ */ jsx("p", { className: "mt-1 text-xs text-muted-foreground", children: "Crie uma nota a partir de um pedido ou manualmente." })
|
|
5288
|
+
/* @__PURE__ */ jsx("p", { className: "mt-1 text-xs text-muted-foreground", children: requiresOrder ? "Emita a NFC-e a partir de um pedido conclu\xEDdo." : "Crie uma nota a partir de um pedido ou manualmente." })
|
|
5255
5289
|
] }) : /* @__PURE__ */ jsx("div", { className: "mt-4 space-y-2", children: notas.map((n) => {
|
|
5256
5290
|
const meta = STATUS_META[n.status];
|
|
5257
5291
|
return /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-3 rounded-card border border-border bg-card p-3", children: [
|
|
@@ -5273,8 +5307,10 @@ function NotasFiscaisView() {
|
|
|
5273
5307
|
] })
|
|
5274
5308
|
] }),
|
|
5275
5309
|
/* @__PURE__ */ jsxs("div", { className: "flex shrink-0 items-center gap-1", children: [
|
|
5276
|
-
n.danfeUrl && /* @__PURE__ */ jsx(Button, { size: "sm", variant: "ghost", onClick: () =>
|
|
5277
|
-
n.xmlUrl && /* @__PURE__ */ jsx(Button, { size: "sm", variant: "ghost", onClick: () =>
|
|
5310
|
+
(n.danfeUrl || provider.getNotaArtifactUrl && ["issued", "cancelled"].includes(n.status)) && /* @__PURE__ */ jsx(Button, { size: "sm", variant: "ghost", onClick: () => void openArtifact(n, "pdf"), title: "DANFE", children: /* @__PURE__ */ jsx(FileCheck2, { className: "h-4 w-4" }) }),
|
|
5311
|
+
(n.xmlUrl || provider.getNotaArtifactUrl && ["issued", "cancelled"].includes(n.status)) && /* @__PURE__ */ jsx(Button, { size: "sm", variant: "ghost", onClick: () => void openArtifact(n, "xml"), title: "XML", children: /* @__PURE__ */ jsx(ExternalLink, { className: "h-4 w-4" }) }),
|
|
5312
|
+
provider.getNotaArtifactUrl && n.status === "cancelled" && /* @__PURE__ */ jsx(Button, { size: "sm", variant: "ghost", onClick: () => void openArtifact(n, "cancellation_xml"), title: "XML do cancelamento", children: /* @__PURE__ */ jsx(FileX2, { className: "h-4 w-4" }) }),
|
|
5313
|
+
provider.refreshNota && (n.status === "processing" || n.status === "error") && /* @__PURE__ */ jsx(PermissionGate, { feature: "financial", action: "edit", children: /* @__PURE__ */ jsx(Button, { size: "sm", variant: "ghost", disabled: busy === n.id, onClick: () => refresh(n.id), title: "Atualizar situa\xE7\xE3o", children: /* @__PURE__ */ jsx(RefreshCw, { className: `h-4 w-4 ${busy === n.id ? "animate-spin" : ""}` }) }) }),
|
|
5278
5314
|
n.status === "draft" && /* @__PURE__ */ jsx(PermissionGate, { feature: "financial", action: "edit", children: /* @__PURE__ */ jsxs(Button, { size: "sm", disabled: busy === n.id, onClick: () => issue(n.id), children: [
|
|
5279
5315
|
/* @__PURE__ */ jsx(Send, { className: "mr-1.5 h-3.5 w-3.5" }),
|
|
5280
5316
|
" Emitir"
|
|
@@ -5417,7 +5453,7 @@ function buildNav(config, activeView, navigate, t2) {
|
|
|
5417
5453
|
icon: "ArrowUpCircle",
|
|
5418
5454
|
active: activeView.startsWith("payables"),
|
|
5419
5455
|
children: [
|
|
5420
|
-
{ id: "payables-new", label: t2("financial.nav.new"), active: activeView.startsWith("payables-new"), onClick: () => navigate("payables-new") },
|
|
5456
|
+
{ id: "payables-new", kind: "action", label: t2("financial.nav.new"), active: activeView.startsWith("payables-new"), onClick: () => navigate("payables-new") },
|
|
5421
5457
|
{ id: "payables-list", label: t2("financial.nav.list"), active: activeView === "payables-list", onClick: () => navigate("payables-list") },
|
|
5422
5458
|
{ id: "payables-recurring", label: t2("financial.nav.recurringExpenses"), active: activeView === "payables-recurring", onClick: () => navigate("payables-recurring") }
|
|
5423
5459
|
]
|
|
@@ -5430,7 +5466,7 @@ function buildNav(config, activeView, navigate, t2) {
|
|
|
5430
5466
|
icon: "ArrowDownCircle",
|
|
5431
5467
|
active: activeView.startsWith("receivables"),
|
|
5432
5468
|
children: [
|
|
5433
|
-
{ id: "receivables-new", label: t2("financial.nav.new"), active: activeView.startsWith("receivables-new"), onClick: () => navigate("receivables-new") },
|
|
5469
|
+
{ id: "receivables-new", kind: "action", label: t2("financial.nav.new"), active: activeView.startsWith("receivables-new"), onClick: () => navigate("receivables-new") },
|
|
5434
5470
|
{ id: "receivables-list", label: t2("financial.nav.list"), active: activeView === "receivables-list", onClick: () => navigate("receivables-list") }
|
|
5435
5471
|
]
|
|
5436
5472
|
});
|
|
@@ -6053,6 +6089,9 @@ function matchesStatus(status, filter) {
|
|
|
6053
6089
|
if (Array.isArray(filter)) return filter.includes(status);
|
|
6054
6090
|
return status === filter;
|
|
6055
6091
|
}
|
|
6092
|
+
function affectsCash(movement) {
|
|
6093
|
+
return !movement.externalSource || !!movement.reconciledAt && !movement.matchedMovementId;
|
|
6094
|
+
}
|
|
6056
6095
|
function paginate(items, page, pageSize) {
|
|
6057
6096
|
const p = page ?? 1;
|
|
6058
6097
|
const ps = pageSize ?? 50;
|
|
@@ -6497,7 +6536,7 @@ function createMockFinancialProvider(options) {
|
|
|
6497
6536
|
// --- Statements (ERP extract: opening balance + realized cash + per-row net/fee) ---
|
|
6498
6537
|
async getStatement(query) {
|
|
6499
6538
|
const todayStr = today2();
|
|
6500
|
-
const isRealized = (m) => m.status !== "cancelled" && !!m.paymentDate;
|
|
6539
|
+
const isRealized = (m) => m.status !== "cancelled" && !!m.paymentDate && affectsCash(m);
|
|
6501
6540
|
const consolidated = !query.bankAccountId;
|
|
6502
6541
|
const scopeAccounts = consolidated ? store6.bankAccounts.filter((a) => a.isActive) : store6.bankAccounts.filter((a) => a.id === query.bankAccountId);
|
|
6503
6542
|
const accountIds = new Set(scopeAccounts.map((a) => a.id));
|
|
@@ -6580,7 +6619,7 @@ function createMockFinancialProvider(options) {
|
|
|
6580
6619
|
const monthStart = monthAgo.toISOString().slice(0, 10);
|
|
6581
6620
|
const monthEnd = todayStr;
|
|
6582
6621
|
const monthMovements = store6.movements.filter(
|
|
6583
|
-
(m) => m.movementKind === "payment" && matchesDateRange(m.paymentDate, dateRange ?? { from: monthStart, to: monthEnd })
|
|
6622
|
+
(m) => affectsCash(m) && m.movementKind === "payment" && matchesDateRange(m.paymentDate, dateRange ?? { from: monthStart, to: monthEnd })
|
|
6584
6623
|
);
|
|
6585
6624
|
const overdueReceivable = pendingReceivable.filter((m) => m.dueDate < todayStr);
|
|
6586
6625
|
const overduePayable = pendingPayable.filter((m) => m.dueDate < todayStr);
|
|
@@ -6753,6 +6792,8 @@ function createMockFinancialProvider(options) {
|
|
|
6753
6792
|
// src/data/tables.ts
|
|
6754
6793
|
var T = {
|
|
6755
6794
|
movements: "plg_financial_movements",
|
|
6795
|
+
cashMovements: "v_financial_cash_movements",
|
|
6796
|
+
accountBalances: "v_financial_account_balances",
|
|
6756
6797
|
chartOfAccounts: "plg_financial_chart_of_accounts",
|
|
6757
6798
|
bankAccounts: "plg_financial_bank_accounts",
|
|
6758
6799
|
cardBrands: "plg_financial_card_brands",
|
|
@@ -7492,22 +7533,22 @@ function createSupabaseFinancialProvider() {
|
|
|
7492
7533
|
async getStatement(query) {
|
|
7493
7534
|
const { core, pub } = getClients();
|
|
7494
7535
|
const today3 = (/* @__PURE__ */ new Date()).toISOString().slice(0, 10);
|
|
7495
|
-
const { data: acctRows } = await pub.from(
|
|
7536
|
+
const { data: acctRows } = await pub.from("plg_financial_accounts").select("id, name, is_active");
|
|
7496
7537
|
const allAccounts = acctRows ?? [];
|
|
7497
7538
|
const consolidated = !query.bankAccountId;
|
|
7498
7539
|
const scopeAccounts = consolidated ? allAccounts.filter((a) => a.is_active) : allAccounts.filter((a) => a.id === query.bankAccountId);
|
|
7499
7540
|
const accountIds = scopeAccounts.map((a) => a.id);
|
|
7500
7541
|
const accountNameById = new Map(allAccounts.map((a) => [a.id, a.name]));
|
|
7501
|
-
const initialSum =
|
|
7542
|
+
const initialSum = 0;
|
|
7502
7543
|
if (!consolidated && accountIds.length === 0) {
|
|
7503
7544
|
return { entries: [], openingBalance: 0, closingBalance: 0, totalCredits: 0, totalDebits: 0, totalFees: 0, net: 0, accountId: query.bankAccountId };
|
|
7504
7545
|
}
|
|
7505
7546
|
const scopeFilter = (qb) => consolidated ? qb : qb.in("bank_account_id", accountIds);
|
|
7506
7547
|
const netOf = (r) => r.direction === "credit" ? (Number(r.paid_amount) || 0) - (Number(r.fee_amount) || 0) : -(Number(r.paid_amount) || 0);
|
|
7507
|
-
const { data: priorRows } = await scopeFilter(pub.from(T.
|
|
7548
|
+
const { data: priorRows } = await scopeFilter(pub.from(T.cashMovements).select("*").neq("status", "cancelled").lt("payment_date", query.dateRange.from));
|
|
7508
7549
|
const priorNet = (priorRows ?? []).reduce((s, r) => s + netOf(r), 0);
|
|
7509
7550
|
const openingBalance = round22(initialSum + priorNet);
|
|
7510
|
-
const { data: movs } = await scopeFilter(pub.from(T.
|
|
7551
|
+
const { data: movs } = await scopeFilter(pub.from(T.cashMovements).select("*").neq("status", "cancelled").gte("payment_date", query.dateRange.from).lte("payment_date", query.dateRange.to).order("payment_date").order("created_at"));
|
|
7511
7552
|
const invoiceIds = [...new Set((movs ?? []).map((r) => r.invoice_id).filter(Boolean))];
|
|
7512
7553
|
const invoiceById = /* @__PURE__ */ new Map();
|
|
7513
7554
|
if (invoiceIds.length) {
|
|
@@ -7571,7 +7612,7 @@ function createSupabaseFinancialProvider() {
|
|
|
7571
7612
|
};
|
|
7572
7613
|
}
|
|
7573
7614
|
}
|
|
7574
|
-
const { data: todayRows } = await scopeFilter(pub.from(T.
|
|
7615
|
+
const { data: todayRows } = await scopeFilter(pub.from(T.cashMovements).select("*").neq("status", "cancelled").lte("payment_date", today3));
|
|
7575
7616
|
const accountCurrentBalance = round22(initialSum + (todayRows ?? []).reduce((s, r) => s + netOf(r), 0));
|
|
7576
7617
|
return {
|
|
7577
7618
|
entries,
|
|
@@ -8051,9 +8092,15 @@ function createSupabaseFinancialProvider() {
|
|
|
8051
8092
|
async getSummary(dateRange) {
|
|
8052
8093
|
sweepOverdue();
|
|
8053
8094
|
const { pub } = getClients();
|
|
8054
|
-
const { data: accounts } = await
|
|
8055
|
-
|
|
8056
|
-
|
|
8095
|
+
const [{ data: accounts, error: accountsError }, { data: movs, error: movementsError }, { data: cashMovs, error: cashError }] = await Promise.all([
|
|
8096
|
+
pub.from(T.accountBalances).select("balance").eq("is_active", true).in("kind", ["bank", "cash_physical", "cash_session", "card_receivable_credit", "card_receivable_debit"]),
|
|
8097
|
+
pub.from(T.movements).select("direction, movement_kind, amount, paid_amount, status, due_date, payment_date"),
|
|
8098
|
+
pub.from(T.cashMovements).select("direction, movement_kind, paid_amount, payment_date")
|
|
8099
|
+
]);
|
|
8100
|
+
if (accountsError) throw accountsError;
|
|
8101
|
+
if (movementsError) throw movementsError;
|
|
8102
|
+
if (cashError) throw cashError;
|
|
8103
|
+
const totalBalance = (accounts ?? []).reduce((s, a) => s + (Number(a.balance) || 0), 0);
|
|
8057
8104
|
const allMovs = movs ?? [];
|
|
8058
8105
|
const unpaid = allMovs.filter((m) => ["pending", "partial", "overdue"].includes(m.status));
|
|
8059
8106
|
const today3 = (/* @__PURE__ */ new Date()).toISOString().slice(0, 10);
|
|
@@ -8064,7 +8111,8 @@ function createSupabaseFinancialProvider() {
|
|
|
8064
8111
|
const monthAgo = /* @__PURE__ */ new Date();
|
|
8065
8112
|
monthAgo.setDate(monthAgo.getDate() - 30);
|
|
8066
8113
|
const monthStart = monthAgo.toISOString().slice(0, 10);
|
|
8067
|
-
const
|
|
8114
|
+
const period = dateRange ?? { from: monthStart, to: today3 };
|
|
8115
|
+
const monthPaid = (cashMovs ?? []).filter((m) => m.movement_kind === "payment" && m.payment_date >= period.from && m.payment_date <= period.to);
|
|
8068
8116
|
return {
|
|
8069
8117
|
totalBalance,
|
|
8070
8118
|
totalReceivable: unpaidCredit.reduce((s, m) => s + m.amount - m.paid_amount, 0),
|
|
@@ -21271,6 +21319,86 @@ COMMENT ON VIEW public.v_orders_sem_invoice IS
|
|
|
21271
21319
|
|
|
21272
21320
|
GRANT SELECT ON public.v_orders_sem_invoice TO authenticated, service_role;
|
|
21273
21321
|
`;
|
|
21322
|
+
var MIGRATION_031_THE_BANK_LINE_IS_EVIDENCE_NOT_A_SECOND_PAYMENT = `-- A bank statement line is evidence of cash movement until reconciliation.
|
|
21323
|
+
-- If matched, the app-native payment remains the sole economic event. If the
|
|
21324
|
+
-- user accepts the line without a match, that line becomes the economic event.
|
|
21325
|
+
CREATE OR REPLACE VIEW public.v_financial_cash_movements
|
|
21326
|
+
WITH (security_invoker = true) AS
|
|
21327
|
+
SELECT movement.*
|
|
21328
|
+
FROM public.plg_financial_movements movement
|
|
21329
|
+
LEFT JOIN public.plg_financial_movements reversed
|
|
21330
|
+
ON reversed.id = movement.reverses_id
|
|
21331
|
+
WHERE CASE
|
|
21332
|
+
-- A reversal has exactly the economic nature of the row it reverses. This
|
|
21333
|
+
-- keeps provider corrections neutral both for matched evidence and for an
|
|
21334
|
+
-- imported line that had previously been accepted as standalone.
|
|
21335
|
+
WHEN reversed.id IS NOT NULL THEN
|
|
21336
|
+
reversed.external_source IS NULL
|
|
21337
|
+
OR (reversed.reconciled_at IS NOT NULL AND reversed.matched_movement_id IS NULL)
|
|
21338
|
+
ELSE
|
|
21339
|
+
movement.external_source IS NULL
|
|
21340
|
+
OR (movement.reconciled_at IS NOT NULL AND movement.matched_movement_id IS NULL)
|
|
21341
|
+
END;
|
|
21342
|
+
|
|
21343
|
+
COMMENT ON VIEW public.v_financial_cash_movements IS
|
|
21344
|
+
'Economic cash events. Native movements always count; imported statement lines count only after standalone acceptance, never when matched to a native movement. Reversals inherit the economic nature of the row they reverse.';
|
|
21345
|
+
|
|
21346
|
+
GRANT SELECT ON public.v_financial_cash_movements TO authenticated, service_role;
|
|
21347
|
+
|
|
21348
|
+
CREATE OR REPLACE VIEW public.v_financial_account_balances
|
|
21349
|
+
WITH (security_invoker = true) AS
|
|
21350
|
+
WITH debits AS (
|
|
21351
|
+
SELECT movement.debit_account_id AS account_id,
|
|
21352
|
+
sum(movement.amount) AS total,
|
|
21353
|
+
count(*) AS n
|
|
21354
|
+
FROM public.v_financial_cash_movements movement
|
|
21355
|
+
WHERE movement.status <> 'cancelled'
|
|
21356
|
+
AND movement.debit_account_id IS NOT NULL
|
|
21357
|
+
AND movement.movement_kind IN ('payment', 'transfer')
|
|
21358
|
+
GROUP BY movement.debit_account_id
|
|
21359
|
+
), credits AS (
|
|
21360
|
+
SELECT movement.credit_account_id AS account_id,
|
|
21361
|
+
sum(movement.amount) AS total,
|
|
21362
|
+
count(*) AS n
|
|
21363
|
+
FROM public.v_financial_cash_movements movement
|
|
21364
|
+
WHERE movement.status <> 'cancelled'
|
|
21365
|
+
AND movement.credit_account_id IS NOT NULL
|
|
21366
|
+
AND movement.movement_kind IN ('payment', 'transfer')
|
|
21367
|
+
GROUP BY movement.credit_account_id
|
|
21368
|
+
)
|
|
21369
|
+
SELECT account.id AS account_id,
|
|
21370
|
+
account.tenant_id,
|
|
21371
|
+
account.unit_id,
|
|
21372
|
+
account.kind,
|
|
21373
|
+
account.code,
|
|
21374
|
+
account.name,
|
|
21375
|
+
account.person_id,
|
|
21376
|
+
account.is_active,
|
|
21377
|
+
account.account_type,
|
|
21378
|
+
account.bank_name,
|
|
21379
|
+
account.agency_number,
|
|
21380
|
+
account.account_number,
|
|
21381
|
+
account.metadata,
|
|
21382
|
+
coalesce(debits.total, 0)::numeric(14,2) AS debit_total,
|
|
21383
|
+
coalesce(credits.total, 0)::numeric(14,2) AS credit_total,
|
|
21384
|
+
(coalesce(credits.total, 0) - coalesce(debits.total, 0))::numeric(14,2) AS net_credit,
|
|
21385
|
+
CASE
|
|
21386
|
+
WHEN account.kind IN ('bank', 'cash_physical', 'cash_session', 'card_receivable_credit', 'card_receivable_debit')
|
|
21387
|
+
THEN (coalesce(debits.total, 0) - coalesce(credits.total, 0))::numeric(14,2)
|
|
21388
|
+
ELSE (coalesce(credits.total, 0) - coalesce(debits.total, 0))::numeric(14,2)
|
|
21389
|
+
END AS balance,
|
|
21390
|
+
(coalesce(debits.n, 0) + coalesce(credits.n, 0))::integer AS movement_count,
|
|
21391
|
+
account.created_at,
|
|
21392
|
+
account.updated_at
|
|
21393
|
+
FROM public.plg_financial_accounts account
|
|
21394
|
+
LEFT JOIN debits ON debits.account_id = account.id
|
|
21395
|
+
LEFT JOIN credits ON credits.account_id = account.id;
|
|
21396
|
+
|
|
21397
|
+
COMMENT ON VIEW public.v_financial_account_balances IS
|
|
21398
|
+
'Balances from economic cash events; matched bank evidence never duplicates its app-native payment.';
|
|
21399
|
+
|
|
21400
|
+
GRANT SELECT ON public.v_financial_account_balances TO authenticated, service_role;
|
|
21401
|
+
`;
|
|
21274
21402
|
var MIGRATIONS = [
|
|
21275
21403
|
{ id: "000_baseline", sql: MIGRATION_000_BASELINE },
|
|
21276
21404
|
{ id: "001_the_comanda_becomes_a_receivable_when_it_closes", sql: MIGRATION_001_THE_COMANDA_BECOMES_A_RECEIVABLE_WHEN_IT_CLOSES },
|
|
@@ -21302,7 +21430,8 @@ var MIGRATIONS = [
|
|
|
21302
21430
|
{ id: "027_o_vale_presente_nasce_em_lote_e_e_um_passivo", sql: MIGRATION_027_O_VALE_PRESENTE_NASCE_EM_LOTE_E_E_UM_PASSIVO },
|
|
21303
21431
|
{ id: "028_o_cartao_tem_cor", sql: MIGRATION_028_O_CARTAO_TEM_COR },
|
|
21304
21432
|
{ id: "029_the_kiosk_sale_is_a_sale_too", sql: MIGRATION_029_THE_KIOSK_SALE_IS_A_SALE_TOO },
|
|
21305
|
-
{ id: "030_the_census_can_see_the_kiosk", sql: MIGRATION_030_THE_CENSUS_CAN_SEE_THE_KIOSK }
|
|
21433
|
+
{ id: "030_the_census_can_see_the_kiosk", sql: MIGRATION_030_THE_CENSUS_CAN_SEE_THE_KIOSK },
|
|
21434
|
+
{ id: "031_the_bank_line_is_evidence_not_a_second_payment", sql: MIGRATION_031_THE_BANK_LINE_IS_EVIDENCE_NOT_A_SECOND_PAYMENT }
|
|
21306
21435
|
];
|
|
21307
21436
|
var STANDALONE_CONFIG = {
|
|
21308
21437
|
currency: { code: "BRL", locale: "pt-BR", symbol: "R$" }
|
|
@@ -21587,6 +21716,7 @@ function resolveConfig(options) {
|
|
|
21587
21716
|
locations: options?.locations ?? [],
|
|
21588
21717
|
entityLookups: options?.entityLookups ?? {},
|
|
21589
21718
|
contactLookup: options?.contactLookup,
|
|
21719
|
+
fiscalProvider: options?.fiscalProvider,
|
|
21590
21720
|
onBookingClick: options?.onBookingClick,
|
|
21591
21721
|
navFeatureMap: { ...options?.navFeatureMap }
|
|
21592
21722
|
};
|