@fayz-ai/plugin-fiscal-br 0.7.3 → 0.7.5
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/inbox.d.ts +5 -0
- package/dist/data/inbox.d.ts.map +1 -1
- package/dist/index.js +151 -12
- package/dist/index.js.map +1 -1
- package/dist/migrations/index.d.ts +2 -0
- package/dist/migrations/index.d.ts.map +1 -1
- package/dist/views/InboundNotesView.d.ts.map +1 -1
- package/dist/views/NoteReconcileView.d.ts.map +1 -1
- package/dist/views/PullByKeyDialog.d.ts +3 -1
- package/dist/views/PullByKeyDialog.d.ts.map +1 -1
- package/package.json +4 -4
|
@@ -20,6 +20,8 @@ export declare const MIGRATION_018_A_NOTA_DO_V1_ALCANCA_A_CONTA = "-- A nota que
|
|
|
20
20
|
export declare const MIGRATION_019_A_NOTA_EMITIDA_SE_CANCELA_PELO_V2 = "-- A nota emitida se consulta e se cancela pelo V2.\n--\n-- Quem fala com a PlugNotas \u00E9 a fun\u00E7\u00E3o `fiscalbr-plugnotas` (a chave s\u00F3 existe\n-- no servidor), mas ela roda com o JWT de quem clicou e n\u00E3o grava nada direto:\n-- pergunta aqui se a pessoa pode, e devolve o resultado aqui. Uma porta de\n-- leitura, uma de escrita, a permiss\u00E3o conferida nas duas.\n--\n-- consultar e baixar o PDF \u2192 financial.read na unidade da nota\n-- cancelar \u2192 financial.edit na unidade da nota\n--\n-- A espelho em `documents.status` anda junto: as duas tabelas s\u00E3o a mesma nota\n-- vista de dois lugares (005), e um status divergente entre elas \u00E9 a nota\n-- dizendo duas coisas. Idempotente.\n\nCREATE OR REPLACE FUNCTION public.fiscalbr_note_for_provider(p_document_id uuid, p_action text)\nRETURNS jsonb\nLANGUAGE plpgsql\nSTABLE SECURITY DEFINER\nSET search_path TO ''\nAS $$\nDECLARE\n v public.plg_fiscalbr_documents%ROWTYPE;\nBEGIN\n SELECT * INTO v FROM public.plg_fiscalbr_documents\n WHERE document_id = p_document_id AND tenant_id = app.current_tenant_id();\n IF NOT FOUND THEN\n RAISE EXCEPTION 'fiscal: note not found' USING ERRCODE = 'P0002';\n END IF;\n PERFORM public.plg_financial_require_permission(\n CASE WHEN p_action = 'cancel' THEN 'financial.edit' ELSE 'financial.read' END, v.unit_id);\n RETURN jsonb_build_object(\n 'document_id', v.document_id, 'model', v.model, 'status', v.status,\n 'environment', v.environment, 'provider_document_id', v.provider_document_id,\n 'cancelled_at', v.cancelled_at, 'access_key', v.access_key, 'number', v.number);\nEND $$;\n\nCREATE OR REPLACE FUNCTION public.fiscalbr_note_apply(\n p_document_id uuid,\n p_action text,\n p_patch jsonb,\n p_event jsonb DEFAULT NULL\n)\nRETURNS void\nLANGUAGE plpgsql\nSECURITY DEFINER\nSET search_path TO ''\nAS $$\nDECLARE\n v public.plg_fiscalbr_documents%ROWTYPE;\n v_status text := p_patch ->> 'status';\nBEGIN\n SELECT * INTO v FROM public.plg_fiscalbr_documents\n WHERE document_id = p_document_id AND tenant_id = app.current_tenant_id()\n FOR UPDATE;\n IF NOT FOUND THEN\n RAISE EXCEPTION 'fiscal: note not found' USING ERRCODE = 'P0002';\n END IF;\n PERFORM public.plg_financial_require_permission(\n CASE WHEN p_action = 'cancel' THEN 'financial.edit' ELSE 'financial.read' END, v.unit_id);\n IF v_status IS NOT NULL AND v_status NOT IN ('processing','authorized','rejected','error','cancelled','substituted') THEN\n RAISE EXCEPTION 'fiscal: unknown status %', v_status USING ERRCODE = '22023';\n END IF;\n\n -- Only what the provider answers; identity (model, unit, order) never moves.\n UPDATE public.plg_fiscalbr_documents SET\n status = COALESCE(v_status, status),\n number = COALESCE(p_patch ->> 'number', number),\n series = COALESCE(p_patch ->> 'series', series),\n access_key = COALESCE(p_patch ->> 'access_key', access_key),\n verification_code = COALESCE(p_patch ->> 'verification_code', verification_code),\n status_payload = COALESCE(p_patch -> 'status_payload', status_payload),\n rejection_payload = CASE WHEN p_patch ? 'rejection_payload' THEN p_patch -> 'rejection_payload' ELSE rejection_payload END,\n authorized_at = COALESCE((p_patch ->> 'authorized_at')::timestamptz, authorized_at),\n last_polled_at = CASE WHEN p_action = 'poll' THEN now() ELSE last_polled_at END,\n cancelled_at = CASE WHEN p_patch ? 'cancelled_at' THEN (p_patch ->> 'cancelled_at')::timestamptz ELSE cancelled_at END,\n cancel_reason = CASE WHEN p_patch ? 'cancel_reason' THEN p_patch ->> 'cancel_reason' ELSE cancel_reason END,\n cancelled_by_user_id = CASE WHEN p_action = 'cancel' THEN auth.uid()\n WHEN p_patch ? 'cancelled_at' AND p_patch -> 'cancelled_at' = 'null'::jsonb THEN NULL\n ELSE cancelled_by_user_id END\n WHERE document_id = p_document_id;\n\n IF v_status IS NOT NULL THEN\n UPDATE public.documents SET status = v_status WHERE id = p_document_id AND status IS DISTINCT FROM v_status;\n END IF;\n\n IF p_event IS NOT NULL THEN\n INSERT INTO public.plg_fiscalbr_document_events\n (tenant_id, unit_id, document_id, event_type, status, justification, response_payload, created_by_user_id)\n VALUES (v.tenant_id, v.unit_id, p_document_id, p_event ->> 'event_type', p_event ->> 'status',\n p_event ->> 'justification', p_event -> 'response_payload', auth.uid());\n END IF;\nEND $$;\n\nREVOKE ALL ON FUNCTION public.fiscalbr_note_for_provider(uuid, text) FROM PUBLIC, anon;\nREVOKE ALL ON FUNCTION public.fiscalbr_note_apply(uuid, text, jsonb, jsonb) FROM PUBLIC, anon;\nGRANT EXECUTE ON FUNCTION public.fiscalbr_note_for_provider(uuid, text) TO authenticated;\nGRANT EXECUTE ON FUNCTION public.fiscalbr_note_apply(uuid, text, jsonb, jsonb) TO authenticated;\n";
|
|
21
21
|
export declare const MIGRATION_020_A_NOTA_ACHA_O_FORNECEDOR_PELO_CNPJ = "-- A nota acha o fornecedor pelo CNPJ \u2014 e, se n\u00E3o achar, cadastra.\n--\n-- O est\u00E1gio (009) s\u00F3 casava o CNPJ no momento do import. As notas que vieram\n-- do V1 atravessaram sem o v\u00EDnculo (003 deixou para \"a costura\"), e um\n-- fornecedor cadastrado depois nunca era religado: 1029 notas com o fornecedor\n-- no cadastro e a tela dizendo \"n\u00E3o est\u00E1 no cadastro\", e o t\u00EDtulo aceito no V2\n-- nascendo sem contraparte (o tra\u00E7o em Contas a Pagar).\n--\n-- O V1 nunca pediu cadastro: ao aceitar, `resolveSupplierId` procura o\n-- fornecedor pelo CNPJ e, sem achar, cria com o nome e o CNPJ da nota. Esta\n-- fun\u00E7\u00E3o \u00E9 esse gesto, com duas pontas:\n--\n-- p_create = false s\u00F3 casa (ao abrir a nota)\n-- p_create = true casa ou cria (antes de aceitar)\n--\n-- O t\u00EDtulo da nota, se j\u00E1 existe e est\u00E1 SEM contraparte, recebe a mesma pessoa.\n-- Nunca troca um v\u00EDnculo gravado. Idempotente.\n\nCREATE OR REPLACE FUNCTION public.plg_fiscalbr_supplier_for_cnpj(p_tenant uuid, p_cnpj text)\nRETURNS uuid\nLANGUAGE sql\nSTABLE\nSET search_path TO ''\nAS $$\n SELECT p.id FROM public.people p\n WHERE p.tenant_id = p_tenant\n AND p_cnpj <> ''\n AND public.plg_fiscalbr_digits(p.document_number) = p_cnpj\n ORDER BY (p.kind = 'supplier') DESC, p.created_at\n LIMIT 1\n$$;\n\nCREATE OR REPLACE FUNCTION public.fiscalbr_link_inbox_supplier(p_document_id uuid, p_create boolean DEFAULT false)\nRETURNS jsonb\nLANGUAGE plpgsql\nSECURITY DEFINER\nSET search_path TO ''\nAS $$\nDECLARE\n v_tenant uuid := public.plg_financial_require_tenant();\n v_doc public.plg_fiscalbr_inbox_documents%ROWTYPE;\n v_cnpj text;\n v_party uuid;\n v_created boolean := false;\nBEGIN\n SELECT * INTO v_doc FROM public.plg_fiscalbr_inbox_documents\n WHERE id = p_document_id AND tenant_id = v_tenant;\n IF NOT FOUND THEN\n RAISE EXCEPTION 'fiscal: inbox note not found' USING ERRCODE = 'P0002';\n END IF;\n PERFORM public.plg_financial_require_permission(\n CASE WHEN p_create THEN 'financial.create' ELSE 'financial.read' END, v_doc.unit_id);\n\n v_party := v_doc.supplier_party_id;\n v_cnpj := public.plg_fiscalbr_digits(v_doc.supplier_cnpj);\n\n IF v_party IS NULL THEN\n v_party := public.plg_fiscalbr_supplier_for_cnpj(v_tenant, v_cnpj);\n END IF;\n\n -- Without a CNPJ there is nothing to match on; a name-only person would be a\n -- duplicate waiting to happen, so creation needs the document.\n IF v_party IS NULL AND p_create AND v_cnpj <> '' THEN\n INSERT INTO public.people (tenant_id, kind, name, document_number)\n VALUES (v_tenant, 'supplier', coalesce(nullif(trim(v_doc.supplier_name), ''), 'Fornecedor ' || v_cnpj), v_cnpj)\n RETURNING id INTO v_party;\n v_created := true;\n END IF;\n\n IF v_party IS NOT NULL AND v_doc.supplier_party_id IS NULL THEN\n UPDATE public.plg_fiscalbr_inbox_documents\n SET supplier_party_id = v_party\n WHERE id = v_doc.id AND supplier_party_id IS NULL;\n END IF;\n\n IF v_party IS NOT NULL AND v_doc.invoice_id IS NOT NULL THEN\n UPDATE public.plg_financial_invoices\n SET counterparty_person_id = v_party\n WHERE id = v_doc.invoice_id AND tenant_id = v_tenant AND counterparty_person_id IS NULL;\n END IF;\n\n RETURN jsonb_build_object('supplier_party_id', v_party, 'created', v_created);\nEND;\n$$;\n\nREVOKE ALL ON FUNCTION public.fiscalbr_link_inbox_supplier(uuid, boolean) FROM PUBLIC;\nGRANT EXECUTE ON FUNCTION public.fiscalbr_link_inbox_supplier(uuid, boolean) TO authenticated;\n\n-- Backfill: match only, NULLs only. Nothing is created here \u2014 creating a person\n-- is the operator's gesture (accepting), not a migration's.\nWITH p AS (\n SELECT DISTINCT ON (tenant_id, dg) tenant_id, dg, id\n FROM (SELECT tenant_id, id, kind, created_at, public.plg_fiscalbr_digits(document_number) AS dg\n FROM public.people\n WHERE document_number IS NOT NULL) x\n WHERE length(dg) = 14\n ORDER BY tenant_id, dg, (kind = 'supplier') DESC, created_at\n)\nUPDATE public.plg_fiscalbr_inbox_documents d\n SET supplier_party_id = p.id\n FROM p\n WHERE d.supplier_party_id IS NULL\n AND p.tenant_id = d.tenant_id\n AND p.dg = public.plg_fiscalbr_digits(d.supplier_cnpj);\n\nUPDATE public.plg_financial_invoices i\n SET counterparty_person_id = d.supplier_party_id\n FROM public.plg_fiscalbr_inbox_documents d\n WHERE d.invoice_id = i.id\n AND d.tenant_id = i.tenant_id\n AND d.supplier_party_id IS NOT NULL\n AND i.counterparty_person_id IS NULL;\n";
|
|
22
22
|
export declare const MIGRATION_021_USO_E_CONSUMO_ENTRA_NO_ESTOQUE = "-- \"Materiais de Uso e Consumo\" vira um tipo de registro da nota recebida.\n--\n-- \u00C9 o que a casa gasta sem vender nem transformar \u2014 luva, descart\u00E1vel, material\n-- de limpeza \u2014 e que ainda assim se conta no estoque. Entra no estoque como o\n-- insumo: precisa de produto vinculado e gera movimento ao aceitar.\n--\n-- Aditivo e idempotente. A fun\u00E7\u00E3o de aceite \u00E9 REMENDADA, n\u00E3o reescrita (mesmo\n-- padr\u00E3o da 015): copiar o corpo da 010 apagaria o `reason` que a 015 enxertou.\n\nALTER TABLE public.plg_fiscalbr_inbox_items\n DROP CONSTRAINT IF EXISTS plg_fiscalbr_inbox_items_entry_type_chk;\nALTER TABLE public.plg_fiscalbr_inbox_items\n ADD CONSTRAINT plg_fiscalbr_inbox_items_entry_type_chk\n CHECK (entry_type IS NULL OR entry_type IN ('insumo','revenda','patrimonio','uso_consumo','despesa','servico'));\n\nALTER TABLE public.plg_fiscalbr_supplier_product_map\n DROP CONSTRAINT IF EXISTS plg_fiscalbr_supplier_product_map_entry_type_chk;\nALTER TABLE public.plg_fiscalbr_supplier_product_map\n ADD CONSTRAINT plg_fiscalbr_supplier_product_map_entry_type_chk\n CHECK (entry_type IS NULL OR entry_type IN ('insumo','revenda','patrimonio','uso_consumo','despesa','servico'));\n\nDO $m$\nDECLARE\n v_def text;\n v_antes text := $q$entry_type IN ('insumo','revenda','patrimonio')$q$;\n v_depois text := $q$entry_type IN ('insumo','revenda','patrimonio','uso_consumo')$q$;\nBEGIN\n SELECT pg_get_functiondef(p.oid) INTO v_def\n FROM pg_proc p JOIN pg_namespace n ON n.oid = p.pronamespace\n WHERE n.nspname = 'public' AND p.proname = 'fiscalbr_accept_inbox_document';\n\n IF v_def IS NULL THEN\n RAISE EXCEPTION 'fiscalbr/021: fiscalbr_accept_inbox_document n\u00E3o existe \u2014 aplicar 009/010 antes';\n END IF;\n\n IF position('uso_consumo' in v_def) > 0 THEN RETURN; END IF;\n\n IF position(v_antes in v_def) = 0 THEN\n RAISE EXCEPTION 'fiscalbr/021: o corpo de fiscalbr_accept_inbox_document n\u00E3o \u00E9 o esperado \u2014 confira \u00E0 m\u00E3o em vez de deixar passar calado';\n END IF;\n\n EXECUTE replace(v_def, v_antes, v_depois);\nEND\n$m$;\n";
|
|
23
|
+
export declare const MIGRATION_022_A_NOTA_DO_V1_TRAZ_O_XML = "-- ---------------------------------------------------------------------------\n-- The V1 bridge carries the note's XML.\n-- ---------------------------------------------------------------------------\n-- 003 dropped `xml_content` because, back then, V2 had no column for it (016\n-- added one). Without the file a note copied from the V1 cannot be downloaded,\n-- and a note the V1 never broke into lines arrives with zero items and no way\n-- to rebuild them. Only the mapping changes; rows already copied are not touched.\n-- ---------------------------------------------------------------------------\n\nUPDATE migration.allowlist\n SET columns = columns || jsonb_build_object('xml_content', 'xml_content')\n WHERE source_table = 'dfe_inbox'\n AND columns->>'xml_content' IS DISTINCT FROM 'xml_content';\n";
|
|
24
|
+
export declare const MIGRATION_023_A_NOTA_ACEITA_SEM_LINHAS_RECEBE_AS_LINHAS = "-- ---------------------------------------------------------------------------\n-- An accepted note that has no lines gets its lines, and nothing else.\n-- ---------------------------------------------------------------------------\n-- Notes copied from the V1 can carry a payable (or stock) and zero lines: the\n-- V1 never split their XML. Restaging is refused for them on purpose (it would\n-- rewrite the decision that became stock and payable), so they showed 0/0\n-- forever. This writes ONLY the missing lines, from the stored XML, and only\n-- while the note has none; the document, its payable and its instalments stay.\n-- ---------------------------------------------------------------------------\n\nCREATE OR REPLACE FUNCTION public.fiscalbr_fill_inbox_lines(p_document_id uuid, p_items jsonb)\nRETURNS jsonb LANGUAGE plpgsql SECURITY DEFINER SET search_path TO '' AS $function$\nDECLARE\n v_tenant uuid := public.plg_financial_require_tenant();\n v_doc public.plg_fiscalbr_inbox_documents%ROWTYPE;\n v_cnpj text;\n v_item jsonb;\n v_map public.plg_fiscalbr_supplier_product_map%ROWTYPE;\n v_n integer := 0;\nBEGIN\n SELECT * INTO v_doc FROM public.plg_fiscalbr_inbox_documents\n WHERE tenant_id = v_tenant AND id = p_document_id\n FOR UPDATE; -- two opens of the same note must not both see \"no lines\"\n IF NOT FOUND THEN\n RAISE EXCEPTION 'fiscalbr: nota n\u00E3o encontrada' USING ERRCODE = 'P0002';\n END IF;\n PERFORM public.plg_financial_require_permission('financial.create', v_doc.unit_id);\n\n IF EXISTS (SELECT 1 FROM public.plg_fiscalbr_inbox_items\n WHERE tenant_id = v_tenant AND inbox_document_id = v_doc.id) THEN\n RETURN jsonb_build_object('document_id', v_doc.id, 'items', 0, 'already_had_lines', true);\n END IF;\n\n v_cnpj := public.plg_fiscalbr_digits(v_doc.supplier_cnpj);\n\n FOR v_item IN SELECT * FROM jsonb_array_elements(coalesce(p_items, '[]'::jsonb)) LOOP\n v_n := v_n + 1;\n v_map := NULL;\n SELECT * INTO v_map FROM public.plg_fiscalbr_supplier_product_map\n WHERE tenant_id = v_tenant AND supplier_cnpj = v_cnpj\n AND supplier_product_code = coalesce(v_item->>'supplier_product_code', '');\n\n INSERT INTO public.plg_fiscalbr_inbox_items (\n tenant_id, inbox_document_id, item_number, supplier_product_code, ean_barcode,\n description, ncm, cest, cfop, unit_commercial, quantity_commercial,\n unit_price_commercial, total_price, discount, freight, other_expenses,\n icms_cst, icms_csosn, icms_base, icms_rate, icms_value,\n pis_value, cofins_value, ipi_value, raw_xml_item,\n product_id, entry_type, chart_account_id, stock_unit_id, conversion_factor,\n cost_mode, reconciled)\n VALUES (\n v_tenant, v_doc.id, coalesce((v_item->>'item_number')::int, v_n),\n v_item->>'supplier_product_code', v_item->>'ean_barcode',\n v_item->>'description', v_item->>'ncm', v_item->>'cest', v_item->>'cfop',\n v_item->>'unit', (v_item->>'quantity')::numeric,\n (v_item->>'unit_price')::numeric, (v_item->>'total')::numeric,\n (v_item->>'discount')::numeric, (v_item->>'freight')::numeric,\n (v_item->>'other')::numeric,\n v_item->>'icms_cst', v_item->>'icms_csosn', (v_item->>'icms_base')::numeric,\n (v_item->>'icms_rate')::numeric, (v_item->>'icms_value')::numeric,\n (v_item->>'pis_value')::numeric, (v_item->>'cofins_value')::numeric,\n (v_item->>'ipi_value')::numeric, v_item,\n v_map.product_id, v_map.entry_type, v_map.chart_account_id, v_map.stock_unit_id,\n coalesce(v_map.conversion_factor, 1), coalesce(v_map.cost_mode, 'novo'),\n v_map.product_id IS NOT NULL);\n END LOOP;\n\n RETURN jsonb_build_object('document_id', v_doc.id, 'items', v_n, 'already_had_lines', false);\nEND;\n$function$;\n\nREVOKE ALL ON FUNCTION public.fiscalbr_fill_inbox_lines(uuid, jsonb) FROM PUBLIC;\nGRANT EXECUTE ON FUNCTION public.fiscalbr_fill_inbox_lines(uuid, jsonb) TO authenticated;\n";
|
|
23
25
|
export declare const MIGRATIONS: Array<{
|
|
24
26
|
id: string;
|
|
25
27
|
sql: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/migrations/index.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,sBAAsB,2g0BA2jBlC,CAAA;AAED,eAAO,MAAM,0DAA0D,uzRAmMtE,CAAA;AAED,eAAO,MAAM,+CAA+C,m5oBAyW3D,CAAA;AAED,eAAO,MAAM,0CAA0C,o1XAgPtD,CAAA;AAED,eAAO,MAAM,8CAA8C,6qCAsB1D,CAAA;AAED,eAAO,MAAM,2CAA2C,w8dA6MvD,CAAA;AAED,eAAO,MAAM,yCAAyC,42BAkBrD,CAAA;AAED,eAAO,MAAM,oDAAoD,4oDA+BhE,CAAA;AAED,eAAO,MAAM,yDAAyD,otbA0NrE,CAAA;AAED,eAAO,MAAM,gEAAgE,q1+BAoiB5E,CAAA;AAED,eAAO,MAAM,gEAAgE,mqVAgO5E,CAAA;AAED,eAAO,MAAM,8CAA8C,k/HAiF1D,CAAA;AAED,eAAO,MAAM,oDAAoD,w2OA4JhE,CAAA;AAED,eAAO,MAAM,oDAAoD,gvRAwJhE,CAAA;AAED,eAAO,MAAM,kDAAkD,shPAoK9D,CAAA;AAED,eAAO,MAAM,8CAA8C,8/EA0C1D,CAAA;AAED,eAAO,MAAM,yCAAyC,2mJA2ErD,CAAA;AAED,eAAO,MAAM,4CAA4C,68QA0IxD,CAAA;AAED,eAAO,MAAM,0CAA0C,83CAwBtD,CAAA;AAED,eAAO,MAAM,+CAA+C,81JAiG3D,CAAA;AAED,eAAO,MAAM,gDAAgD,y+IAgH5D,CAAA;AAED,eAAO,MAAM,4CAA4C,ylEA4CxD,CAAA;AAED,eAAO,MAAM,UAAU,EAAE,KAAK,CAAC;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/migrations/index.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,sBAAsB,2g0BA2jBlC,CAAA;AAED,eAAO,MAAM,0DAA0D,uzRAmMtE,CAAA;AAED,eAAO,MAAM,+CAA+C,m5oBAyW3D,CAAA;AAED,eAAO,MAAM,0CAA0C,o1XAgPtD,CAAA;AAED,eAAO,MAAM,8CAA8C,6qCAsB1D,CAAA;AAED,eAAO,MAAM,2CAA2C,w8dA6MvD,CAAA;AAED,eAAO,MAAM,yCAAyC,42BAkBrD,CAAA;AAED,eAAO,MAAM,oDAAoD,4oDA+BhE,CAAA;AAED,eAAO,MAAM,yDAAyD,otbA0NrE,CAAA;AAED,eAAO,MAAM,gEAAgE,q1+BAoiB5E,CAAA;AAED,eAAO,MAAM,gEAAgE,mqVAgO5E,CAAA;AAED,eAAO,MAAM,8CAA8C,k/HAiF1D,CAAA;AAED,eAAO,MAAM,oDAAoD,w2OA4JhE,CAAA;AAED,eAAO,MAAM,oDAAoD,gvRAwJhE,CAAA;AAED,eAAO,MAAM,kDAAkD,shPAoK9D,CAAA;AAED,eAAO,MAAM,8CAA8C,8/EA0C1D,CAAA;AAED,eAAO,MAAM,yCAAyC,2mJA2ErD,CAAA;AAED,eAAO,MAAM,4CAA4C,68QA0IxD,CAAA;AAED,eAAO,MAAM,0CAA0C,83CAwBtD,CAAA;AAED,eAAO,MAAM,+CAA+C,81JAiG3D,CAAA;AAED,eAAO,MAAM,gDAAgD,y+IAgH5D,CAAA;AAED,eAAO,MAAM,4CAA4C,ylEA4CxD,CAAA;AAED,eAAO,MAAM,qCAAqC,kzBAajD,CAAA;AAED,eAAO,MAAM,uDAAuD,u6HAyEnE,CAAA;AAED,eAAO,MAAM,UAAU,EAAE,KAAK,CAAC;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CAyBzD,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"InboundNotesView.d.ts","sourceRoot":"","sources":["../../src/views/InboundNotesView.tsx"],"names":[],"mappings":"AAYA,OAAO,KAA4D,MAAM,OAAO,CAAA;AAkDhF,MAAM,WAAW,qBAAqB;IACpC,iFAAiF;IACjF,UAAU,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAA;IACpC,cAAc,CAAC,EAAE,MAAM,IAAI,CAAA;CAC5B;AAED,wBAAgB,gBAAgB,CAAC,EAAE,UAAU,EAAE,cAAc,EAAE,EAAE,qBAAqB,
|
|
1
|
+
{"version":3,"file":"InboundNotesView.d.ts","sourceRoot":"","sources":["../../src/views/InboundNotesView.tsx"],"names":[],"mappings":"AAYA,OAAO,KAA4D,MAAM,OAAO,CAAA;AAkDhF,MAAM,WAAW,qBAAqB;IACpC,iFAAiF;IACjF,UAAU,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAA;IACpC,cAAc,CAAC,EAAE,MAAM,IAAI,CAAA;CAC5B;AAED,wBAAgB,gBAAgB,CAAC,EAAE,UAAU,EAAE,cAAc,EAAE,EAAE,qBAAqB,qBAicrF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NoteReconcileView.d.ts","sourceRoot":"","sources":["../../src/views/NoteReconcileView.tsx"],"names":[],"mappings":"AAqBA,OAAO,KAAoD,MAAM,OAAO,CAAA;
|
|
1
|
+
{"version":3,"file":"NoteReconcileView.d.ts","sourceRoot":"","sources":["../../src/views/NoteReconcileView.tsx"],"names":[],"mappings":"AAqBA,OAAO,KAAoD,MAAM,OAAO,CAAA;AAgFxE,MAAM,WAAW,sBAAsB;IACrC,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,MAAM,IAAI,CAAA;IAClB,uFAAuF;IACvF,aAAa,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAA;IAC3C;;;;OAIG;IACH,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAA;CAC1B;AAED,wBAAgB,iBAAiB,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,MAAe,EAAE,EAAE,sBAAsB,qBAopC3G"}
|
|
@@ -4,10 +4,12 @@ export interface PullByKeyDialogProps {
|
|
|
4
4
|
open: boolean;
|
|
5
5
|
onOpenChange: (open: boolean) => void;
|
|
6
6
|
unitId?: string | null;
|
|
7
|
+
/** Opens with this key already typed, for a note that is already on screen. */
|
|
8
|
+
initialKey?: string;
|
|
7
9
|
/** Called after a note was staged, with what the parser found. */
|
|
8
10
|
onPulled: (result: Extract<PullByKeyResult, {
|
|
9
11
|
status: 'staged';
|
|
10
12
|
}>) => void;
|
|
11
13
|
}
|
|
12
|
-
export declare function PullByKeyDialog({ open, onOpenChange, unitId, onPulled }: PullByKeyDialogProps): React.JSX.Element;
|
|
14
|
+
export declare function PullByKeyDialog({ open, onOpenChange, unitId, initialKey, onPulled }: PullByKeyDialogProps): React.JSX.Element;
|
|
13
15
|
//# sourceMappingURL=PullByKeyDialog.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PullByKeyDialog.d.ts","sourceRoot":"","sources":["../../src/views/PullByKeyDialog.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA8B,MAAM,OAAO,CAAA;AAMlD,OAAO,EAAsD,KAAK,eAAe,EAAE,MAAM,eAAe,CAAA;AAOxG,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,OAAO,CAAA;IACb,YAAY,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAA;IACrC,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACtB,kEAAkE;IAClE,QAAQ,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC,eAAe,EAAE;QAAE,MAAM,EAAE,QAAQ,CAAA;KAAE,CAAC,KAAK,IAAI,CAAA;CAC3E;AAED,wBAAgB,eAAe,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,oBAAoB,
|
|
1
|
+
{"version":3,"file":"PullByKeyDialog.d.ts","sourceRoot":"","sources":["../../src/views/PullByKeyDialog.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA8B,MAAM,OAAO,CAAA;AAMlD,OAAO,EAAsD,KAAK,eAAe,EAAE,MAAM,eAAe,CAAA;AAOxG,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,OAAO,CAAA;IACb,YAAY,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAA;IACrC,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACtB,+EAA+E;IAC/E,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,kEAAkE;IAClE,QAAQ,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC,eAAe,EAAE;QAAE,MAAM,EAAE,QAAQ,CAAA;KAAE,CAAC,KAAK,IAAI,CAAA;CAC3E;AAED,wBAAgB,eAAe,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,EAAE,oBAAoB,qBAkGzG"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@fayz-ai/plugin-fiscal-br",
|
|
3
|
-
"version": "0.7.
|
|
3
|
+
"version": "0.7.5",
|
|
4
4
|
"description": "[preview] Brazilian fiscal addon for asynchronous NFC-e emission through PlugNotas",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"sideEffects": false,
|
|
@@ -24,10 +24,10 @@
|
|
|
24
24
|
},
|
|
25
25
|
"dependencies": {
|
|
26
26
|
"@tanstack/react-table": "^8.20.0",
|
|
27
|
-
"@fayz-ai/admin": "^0.
|
|
27
|
+
"@fayz-ai/admin": "^0.46.1",
|
|
28
28
|
"@fayz-ai/core": "^0.44.0",
|
|
29
|
-
"@fayz-ai/plugin-financial": "^0.23.
|
|
30
|
-
"@fayz-ai/ui": "^0.
|
|
29
|
+
"@fayz-ai/plugin-financial": "^0.23.3",
|
|
30
|
+
"@fayz-ai/ui": "^0.46.1"
|
|
31
31
|
},
|
|
32
32
|
"devDependencies": {
|
|
33
33
|
"@types/node": "^20.0.0",
|