@fayz-ai/plugin-financial 0.26.3 → 0.27.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/{FinancialPage-7SQNQEY2.js → FinancialPage-HIVSEGJE.js} +214 -149
- package/dist/FinancialPage-HIVSEGJE.js.map +1 -0
- package/dist/{chunk-K37Q7SKX.js → chunk-IQHWMVUM.js} +112 -13
- package/dist/chunk-IQHWMVUM.js.map +1 -0
- package/dist/components/StatementSyncControl.d.ts +21 -0
- package/dist/components/StatementSyncControl.d.ts.map +1 -0
- package/dist/data/registries.d.ts.map +1 -1
- package/dist/index.js +146 -15
- package/dist/index.js.map +1 -1
- package/dist/locales/en.d.ts.map +1 -1
- package/dist/locales/pt-BR.d.ts.map +1 -1
- package/dist/migrations/index.d.ts +1 -0
- package/dist/migrations/index.d.ts.map +1 -1
- package/dist/migrations/main.browser.js +2 -1
- package/dist/migrations/main.browser.js.map +1 -1
- package/dist/migrations/main.js +286 -2
- package/dist/migrations/main.js.map +1 -1
- package/dist/views/InvoiceDetailView.d.ts.map +1 -1
- package/dist/views/InvoiceFormView.d.ts.map +1 -1
- package/dist/views/ReconciliationView.d.ts.map +1 -1
- package/package.json +5 -5
- package/dist/FinancialPage-7SQNQEY2.js.map +0 -1
- package/dist/chunk-K37Q7SKX.js.map +0 -1
package/dist/locales/en.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"en.d.ts","sourceRoot":"","sources":["../../src/locales/en.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,EAAE,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"en.d.ts","sourceRoot":"","sources":["../../src/locales/en.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,EAAE,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAw/BrC,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pt-BR.d.ts","sourceRoot":"","sources":["../../src/locales/pt-BR.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"pt-BR.d.ts","sourceRoot":"","sources":["../../src/locales/pt-BR.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CA2/BvC,CAAA"}
|
|
@@ -135,6 +135,7 @@ export declare const MIGRATION_133_REVERSING_A_PAYMENT_RELEASES_ITS_BANK_LINE =
|
|
|
135
135
|
export declare const MIGRATION_134_A_BILL_KNOWS_WHO_FILED_IT = "-- 134: a bill knows who filed it. `plg_financial_invoices.created_by` has been\n-- in the table since the baseline and the screens read it for the record\n-- footer (\"Criado em \u2026 por \u2026\"), but nothing ever wrote it: movements and\n-- allocations stamp their author in a trigger, invoices never got one. Every\n-- bill came out authorless. From now on the signed-in person who inserts the\n-- row is its author; an explicit value (an import, an RPC that knows better)\n-- still wins. Nothing is backfilled \u2014 who filed an old bill is not knowable.\n-- Additive and idempotent.\n\nCREATE OR REPLACE FUNCTION public.trg_plg_financial_invoices_created_by()\nRETURNS trigger\nLANGUAGE plpgsql\nSET search_path TO ''\nAS $$\nBEGIN\n NEW.created_by := coalesce(NEW.created_by, auth.uid());\n RETURN NEW;\nEND $$;\n\nDROP TRIGGER IF EXISTS plg_financial_invoices_created_by ON public.plg_financial_invoices;\nCREATE TRIGGER plg_financial_invoices_created_by\n BEFORE INSERT ON public.plg_financial_invoices\n FOR EACH ROW EXECUTE FUNCTION public.trg_plg_financial_invoices_created_by();\n";
|
|
136
136
|
export declare const MIGRATION_135_A_BILL_AND_ITS_LINES_ARE_WRITTEN_TOGETHER = "-- 135: a bill's lines are written by the server, with the bill's own tenant and\n-- unit, in one statement. The client used to insert them into public.items\n-- itself, stamped with ITS idea of the active tenant; when that lagged behind\n-- the session (a workspace switch), RLS refused the lines, the error was\n-- ignored, and the bill kept its total with no lines. Replacing lines deleted\n-- the old ones first, so a refused insert lost them too. Here the delete and the\n-- insert are one transaction, under the same permission the bill itself needs.\n-- Additive and idempotent.\n\nCREATE OR REPLACE FUNCTION public.financial_set_invoice_lines(p_invoice_id uuid, p_lines jsonb, p_replace boolean DEFAULT false)\nRETURNS jsonb\nLANGUAGE plpgsql SECURITY DEFINER\nSET search_path TO ''\nAS $$\nDECLARE\n v_tenant uuid := public.plg_financial_require_tenant();\n v_invoice public.plg_financial_invoices%ROWTYPE;\n v_out jsonb;\nBEGIN\n SELECT * INTO v_invoice FROM public.plg_financial_invoices WHERE id = p_invoice_id AND tenant_id = v_tenant;\n IF NOT FOUND THEN\n RAISE EXCEPTION 'financial_set_invoice_lines: invoice % not found in this tenant', p_invoice_id USING ERRCODE = 'P0002';\n END IF;\n PERFORM public.plg_financial_require_permission(CASE WHEN p_replace THEN 'financial.edit' ELSE 'financial.create' END, v_invoice.unit_id);\n IF jsonb_typeof(coalesce(p_lines, '[]'::jsonb)) <> 'array' THEN\n RAISE EXCEPTION 'financial_set_invoice_lines: lines must be an array' USING ERRCODE = '22023';\n END IF;\n\n -- Cancelled lines are history: they are never replaced.\n IF p_replace THEN\n DELETE FROM public.items WHERE invoice_id = p_invoice_id AND tenant_id = v_tenant AND cancelled_at IS NULL;\n END IF;\n\n WITH ins AS (\n INSERT INTO public.items (tenant_id, unit_id, invoice_id, name, quantity, unit_price, discount, total, sort_order, metadata)\n SELECT v_tenant, v_invoice.unit_id, p_invoice_id,\n nullif(l ->> 'name', ''),\n coalesce((l ->> 'quantity')::numeric, 1),\n coalesce((l ->> 'unit_price')::numeric, 0),\n coalesce((l ->> 'discount')::numeric, 0),\n coalesce((l ->> 'total')::numeric, 0),\n coalesce((l ->> 'sort_order')::int, (o - 1)::int),\n coalesce(l -> 'metadata', '{}'::jsonb)\n FROM jsonb_array_elements(coalesce(p_lines, '[]'::jsonb)) WITH ORDINALITY AS t(l, o)\n RETURNING id, sort_order\n )\n SELECT coalesce(jsonb_agg(jsonb_build_object('id', id, 'sort_order', sort_order) ORDER BY sort_order), '[]'::jsonb) INTO v_out FROM ins;\n RETURN v_out;\nEND $$;\nREVOKE ALL ON FUNCTION public.financial_set_invoice_lines(uuid, jsonb, boolean) FROM PUBLIC, anon;\nGRANT EXECUTE ON FUNCTION public.financial_set_invoice_lines(uuid, jsonb, boolean) TO authenticated, service_role;\n";
|
|
137
137
|
export declare const MIGRATION_136_A_BANK_STATEMENT_ARRIVES_FROM_THE_SERVICE = "-- ============================================================================\n-- 136 \u2014 a bank statement arrives from the integration service\n--\n-- The V2 sink of the banking module (ADR 0003): the doors through which the\n-- integration service hands this product the lines of a store's bank or\n-- credit-card statement, withdraws the ones the bank took back, reports the\n-- connection's state, and reads which lines are already here. The provider\n-- calls, the schedule and the waiting are the service's; what a line IS here\n-- is decided here.\n--\n-- A line is keyed as before: (tenant, external_source, external_id), where\n-- external_source is the statement source's provider ('openbanking:pagbank')\n-- and external_id the provider's transaction id. Lines already brought in by\n-- the V1 migration match the ones the service brings, so nothing doubles.\n--\n-- Providers revise statements for days: an Open Finance bank can drop a\n-- transaction and bring it back under a new id. A withdrawn line is marked\n-- (provider_deleted), never deleted, and comes back if the provider brings\n-- the same id again. A line already reconciled keeps its money and its date:\n-- a revision of either is recorded beside it, for a person to look at.\n--\n-- No person is behind these calls; the actor is the service, acting for the\n-- tenant it names. The functions are closed to every signed-in user and\n-- opened only to the service's role, `fayz_integration`, when it exists.\n-- ============================================================================\n\nCREATE OR REPLACE FUNCTION public.financial_statement_source_get(p_tenant uuid, p_source uuid)\nRETURNS jsonb\nLANGUAGE sql STABLE SECURITY DEFINER\nSET search_path TO ''\nAS $$\n SELECT jsonb_build_object(\n 'id', s.id, 'tenantId', s.tenant_id, 'unitId', s.unit_id, 'accountId', s.account_id,\n 'provider', s.provider, 'kind', s.statement_kind, 'cardLast4', s.card_last4,\n 'accountRef', s.provider_account_hash, 'active', s.is_active,\n 'lastSyncedAt', s.last_synced_at, 'lastSyncStatus', s.last_sync_status\n )\n FROM public.plg_financial_account_statement_sources s\n WHERE s.id = p_source AND s.tenant_id = p_tenant\n$$;\n\n-- Every source tied to a provider account, across tenants: how the service\n-- finds the connections the V1 migration left, to adopt them.\nCREATE OR REPLACE FUNCTION public.financial_statement_sources_linked(p_provider_prefix text)\nRETURNS SETOF jsonb\nLANGUAGE sql STABLE SECURITY DEFINER\nSET search_path TO ''\nAS $$\n SELECT jsonb_build_object(\n 'id', s.id, 'tenantId', s.tenant_id, 'unitId', s.unit_id, 'accountId', s.account_id,\n 'provider', s.provider, 'kind', s.statement_kind, 'cardLast4', s.card_last4,\n 'accountRef', s.provider_account_hash, 'active', s.is_active\n )\n FROM public.plg_financial_account_statement_sources s\n WHERE s.provider LIKE p_provider_prefix || '%' AND s.provider_account_hash IS NOT NULL\n ORDER BY s.tenant_id, s.created_at\n$$;\n\n-- Ties a source to the provider's account, once the store has authorized it.\nCREATE OR REPLACE FUNCTION public.financial_statement_source_link(p_tenant uuid, p_source uuid, p_account_ref text)\nRETURNS void\nLANGUAGE plpgsql SECURITY DEFINER\nSET search_path TO ''\nAS $$\nBEGIN\n IF p_account_ref IS NULL OR btrim(p_account_ref) = '' THEN\n RAISE EXCEPTION 'financial_statement_source_link: account ref is required' USING ERRCODE = '22023';\n END IF;\n UPDATE public.plg_financial_account_statement_sources\n SET provider_account_hash = btrim(p_account_ref), updated_at = now()\n WHERE id = p_source AND tenant_id = p_tenant;\n IF NOT FOUND THEN\n RAISE EXCEPTION 'financial_statement_source_link: source % is not of tenant %', p_source, p_tenant USING ERRCODE = 'P0002';\n END IF;\nEND\n$$;\n\nCREATE OR REPLACE FUNCTION public.financial_statement_lines_ingest(p_tenant uuid, p_source uuid, p_lines jsonb)\nRETURNS jsonb\nLANGUAGE plpgsql SECURITY DEFINER\nSET search_path TO ''\nAS $$\nDECLARE\n v_source public.plg_financial_account_statement_sources%ROWTYPE;\n v_line jsonb;\n v_amount numeric;\n v_day date;\n v_method text;\n v_meta jsonb;\n v_existing public.plg_financial_bank_statement_lines%ROWTYPE;\n v_inserted integer := 0;\n v_updated integer := 0;\nBEGIN\n SELECT * INTO v_source FROM public.plg_financial_account_statement_sources\n WHERE id = p_source AND tenant_id = p_tenant;\n IF NOT FOUND THEN\n RAISE EXCEPTION 'financial_statement_lines_ingest: source % is not of tenant %', p_source, p_tenant USING ERRCODE = 'P0002';\n END IF;\n IF jsonb_typeof(p_lines) <> 'array' THEN\n RAISE EXCEPTION 'financial_statement_lines_ingest: lines must be an array' USING ERRCODE = '22023';\n END IF;\n\n FOR v_line IN SELECT value FROM jsonb_array_elements(p_lines) LOOP\n IF coalesce(v_line ->> 'externalId', '') = '' OR (v_line ->> 'direction') NOT IN ('credit', 'debit') THEN\n RAISE EXCEPTION 'financial_statement_lines_ingest: a line needs externalId and direction' USING ERRCODE = '22023';\n END IF;\n v_amount := round((v_line ->> 'amountCents')::numeric / 100, 2);\n v_day := (v_line ->> 'postedOn')::date;\n IF v_amount IS NULL OR v_amount < 0 OR v_day IS NULL THEN\n RAISE EXCEPTION 'financial_statement_lines_ingest: line % needs a positive amount and a day', v_line ->> 'externalId' USING ERRCODE = '22023';\n END IF;\n v_method := nullif(v_line ->> 'paymentMethod', '');\n v_meta := jsonb_strip_nulls(jsonb_build_object(\n 'statement', jsonb_build_object('ref', v_line ->> 'statementRef', 'via', 'integration-service'),\n 'paymentMethod', v_method,\n 'currency', coalesce(v_line ->> 'currency', 'BRL'),\n 'boleto', v_line -> 'boleto',\n 'card', v_line -> 'card'\n ));\n\n SELECT * INTO v_existing FROM public.plg_financial_bank_statement_lines\n WHERE tenant_id = p_tenant AND external_source = v_source.provider AND external_id = v_line ->> 'externalId';\n\n IF NOT FOUND THEN\n INSERT INTO public.plg_financial_bank_statement_lines (\n tenant_id, unit_id, bank_account_id, external_source, external_id, posted_on, direction, amount,\n description, counterparty_name, counterparty_document, document, code, category, transaction_type,\n provider_deleted, raw_payload, metadata\n ) VALUES (\n p_tenant, v_source.unit_id, v_source.account_id, v_source.provider, v_line ->> 'externalId', v_day,\n v_line ->> 'direction', v_amount,\n nullif(v_line ->> 'description', ''), nullif(v_line #>> '{counterparty,name}', ''),\n nullif(v_line #>> '{counterparty,document}', ''), nullif(v_line ->> 'reference', ''),\n nullif(v_line ->> 'code', ''), nullif(v_line ->> 'category', ''),\n coalesce(v_method, upper(v_line ->> 'direction')),\n false, coalesce(v_line -> 'raw', '{}'::jsonb), v_meta\n );\n v_inserted := v_inserted + 1;\n ELSE\n UPDATE public.plg_financial_bank_statement_lines l SET\n -- Money, day and direction move only while nobody has reconciled the line.\n posted_on = CASE WHEN l.reconciled_at IS NULL THEN v_day ELSE l.posted_on END,\n amount = CASE WHEN l.reconciled_at IS NULL THEN v_amount ELSE l.amount END,\n direction = CASE WHEN l.reconciled_at IS NULL THEN v_line ->> 'direction' ELSE l.direction END,\n description = coalesce(nullif(v_line ->> 'description', ''), l.description),\n counterparty_name = coalesce(nullif(v_line #>> '{counterparty,name}', ''), l.counterparty_name),\n counterparty_document = coalesce(nullif(v_line #>> '{counterparty,document}', ''), l.counterparty_document),\n document = coalesce(nullif(v_line ->> 'reference', ''), l.document),\n code = coalesce(nullif(v_line ->> 'code', ''), l.code),\n category = coalesce(nullif(v_line ->> 'category', ''), l.category),\n transaction_type = coalesce(v_method, l.transaction_type),\n provider_deleted = false,\n raw_payload = coalesce(v_line -> 'raw', l.raw_payload),\n metadata = (l.metadata - 'withdrawn') || v_meta\n || CASE WHEN l.reconciled_at IS NOT NULL AND (l.amount <> v_amount OR l.posted_on <> v_day OR l.direction <> v_line ->> 'direction')\n THEN jsonb_build_object('revisedAfterReconciliation', jsonb_build_object(\n 'amount', v_amount, 'postedOn', v_day, 'direction', v_line ->> 'direction', 'at', now()))\n ELSE '{}'::jsonb END,\n updated_at = now()\n WHERE l.id = v_existing.id;\n v_updated := v_updated + 1;\n END IF;\n END LOOP;\n\n RETURN jsonb_build_object('inserted', v_inserted, 'updated', v_updated);\nEND\n$$;\n\nCREATE OR REPLACE FUNCTION public.financial_statement_lines_withdraw(p_tenant uuid, p_source uuid, p_external_ids text[], p_reason text)\nRETURNS integer\nLANGUAGE plpgsql SECURITY DEFINER\nSET search_path TO ''\nAS $$\nDECLARE\n v_source public.plg_financial_account_statement_sources%ROWTYPE;\n v_count integer;\nBEGIN\n SELECT * INTO v_source FROM public.plg_financial_account_statement_sources\n WHERE id = p_source AND tenant_id = p_tenant;\n IF NOT FOUND THEN\n RAISE EXCEPTION 'financial_statement_lines_withdraw: source % is not of tenant %', p_source, p_tenant USING ERRCODE = 'P0002';\n END IF;\n UPDATE public.plg_financial_bank_statement_lines l\n SET provider_deleted = true,\n metadata = l.metadata || jsonb_build_object('withdrawn', jsonb_build_object('reason', p_reason, 'at', now())),\n updated_at = now()\n WHERE l.tenant_id = p_tenant AND l.external_source = v_source.provider\n AND l.bank_account_id = v_source.account_id\n AND l.external_id = ANY (p_external_ids) AND NOT l.provider_deleted;\n GET DIAGNOSTICS v_count = ROW_COUNT;\n RETURN v_count;\nEND\n$$;\n\n-- The lines here for a source in a window, withdrawn ones left out: what the\n-- service compares with the provider to find the ones the bank took back.\nCREATE OR REPLACE FUNCTION public.financial_statement_lines_known(p_tenant uuid, p_source uuid, p_from date, p_to date)\nRETURNS SETOF text\nLANGUAGE sql STABLE SECURITY DEFINER\nSET search_path TO ''\nAS $$\n SELECT l.external_id\n FROM public.plg_financial_bank_statement_lines l\n JOIN public.plg_financial_account_statement_sources s\n ON s.id = p_source AND s.tenant_id = p_tenant\n WHERE l.tenant_id = p_tenant AND l.external_source = s.provider AND l.bank_account_id = s.account_id\n AND l.posted_on BETWEEN p_from AND p_to AND NOT l.provider_deleted\n$$;\n\nCREATE OR REPLACE FUNCTION public.financial_statement_source_report(\n p_tenant uuid, p_source uuid, p_status text, p_error text, p_details jsonb\n) RETURNS void\nLANGUAGE plpgsql SECURITY DEFINER\nSET search_path TO ''\nAS $$\nBEGIN\n IF p_status NOT IN ('ok', 'error', 'pending', 'revoked') THEN\n RAISE EXCEPTION 'financial_statement_source_report: unknown status %', p_status USING ERRCODE = '22023';\n END IF;\n UPDATE public.plg_financial_account_statement_sources s\n SET last_sync_status = p_status,\n last_sync_error = CASE WHEN p_status = 'error' THEN left(p_error, 500) ELSE NULL END,\n last_synced_at = CASE WHEN p_status = 'ok' THEN now() ELSE s.last_synced_at END,\n metadata = s.metadata || jsonb_build_object('connection', coalesce(p_details, '{}'::jsonb)),\n updated_at = now()\n WHERE s.id = p_source AND s.tenant_id = p_tenant;\n IF NOT FOUND THEN\n RAISE EXCEPTION 'financial_statement_source_report: source % is not of tenant %', p_source, p_tenant USING ERRCODE = 'P0002';\n END IF;\nEND\n$$;\n\nREVOKE ALL ON FUNCTION public.financial_statement_source_get(uuid, uuid) FROM PUBLIC, anon, authenticated;\nREVOKE ALL ON FUNCTION public.financial_statement_sources_linked(text) FROM PUBLIC, anon, authenticated;\nREVOKE ALL ON FUNCTION public.financial_statement_source_link(uuid, uuid, text) FROM PUBLIC, anon, authenticated;\nREVOKE ALL ON FUNCTION public.financial_statement_lines_ingest(uuid, uuid, jsonb) FROM PUBLIC, anon, authenticated;\nREVOKE ALL ON FUNCTION public.financial_statement_lines_withdraw(uuid, uuid, text[], text) FROM PUBLIC, anon, authenticated;\nREVOKE ALL ON FUNCTION public.financial_statement_lines_known(uuid, uuid, date, date) FROM PUBLIC, anon, authenticated;\nREVOKE ALL ON FUNCTION public.financial_statement_source_report(uuid, uuid, text, text, jsonb) FROM PUBLIC, anon, authenticated;\n\nDO $$\nBEGIN\n IF EXISTS (SELECT 1 FROM pg_roles WHERE rolname = 'fayz_integration') THEN\n GRANT USAGE ON SCHEMA public TO fayz_integration;\n GRANT EXECUTE ON FUNCTION public.financial_statement_source_get(uuid, uuid) TO fayz_integration;\n GRANT EXECUTE ON FUNCTION public.financial_statement_sources_linked(text) TO fayz_integration;\n GRANT EXECUTE ON FUNCTION public.financial_statement_source_link(uuid, uuid, text) TO fayz_integration;\n GRANT EXECUTE ON FUNCTION public.financial_statement_lines_ingest(uuid, uuid, jsonb) TO fayz_integration;\n GRANT EXECUTE ON FUNCTION public.financial_statement_lines_withdraw(uuid, uuid, text[], text) TO fayz_integration;\n GRANT EXECUTE ON FUNCTION public.financial_statement_lines_known(uuid, uuid, date, date) TO fayz_integration;\n GRANT EXECUTE ON FUNCTION public.financial_statement_source_report(uuid, uuid, text, text, jsonb) TO fayz_integration;\n END IF;\nEND\n$$;\n";
|
|
138
|
+
export declare const MIGRATION_137_A_BILL_LINE_IS_ABATED_FOR_WHAT_NEVER_ARRIVED = "-- ============================================================================\n-- 137 \u2014 a bill line is abated for what never arrived\n--\n-- V1 contract: beautyplace #1031 (\"Nota de compra, fase 3\"), migration\n-- 20261020160000 `abate_purchase_item`. Whoever receives the goods records,\n-- per line of the supplier's note, what did NOT arrive; stock takes only what\n-- did. The payable is still born at the note's full value \u2014 the supplier\n-- billed it, and the finance person decides how the difference comes off and\n-- across which instalments (V1 decision, 28/09/2026).\n--\n-- V2 could only cancel a WHOLE line (`financial_cancel_invoice_items`), always\n-- cutting from the last instalment back. This is the partial gesture:\n--\n-- * the line is reduced by the amount (its quantity follows the unit price),\n-- or cancelled when the amount is the whole line;\n-- * the invoice total drops by the same amount;\n-- * the amount comes off the OPEN part of the instalments, in the order the\n-- person chose \u2014 'next' (earliest due first), 'last' (last instalment\n-- back) or 'proportional' (by each instalment's open balance, the last one\n-- with a balance taking the rounding);\n-- * what is already paid is never touched: when the open balance does not\n-- cover the amount the call is refused (HINT ABATE_EXCEEDS_OPEN) and the\n-- person uses \"Cancel line\", where the paid part becomes supplier credit.\n--\n-- How much is still to abate is DERIVED by the caller (line total \u2212 value\n-- received), so there is no second state that can drift from the bill. Each\n-- abatement is recorded in plg_financial_abatements, which also makes a\n-- repeated call with the same idempotency key a replay instead of a second cut.\n--\n-- Idempotent.\n-- ============================================================================\n\nCREATE TABLE IF NOT EXISTS public.plg_financial_abatements (\n id uuid PRIMARY KEY DEFAULT gen_random_uuid(),\n tenant_id uuid NOT NULL REFERENCES public.tenants(id) ON DELETE CASCADE,\n unit_id uuid,\n invoice_id uuid NOT NULL REFERENCES public.plg_financial_invoices(id) ON DELETE CASCADE,\n item_id uuid NOT NULL,\n amount numeric(14,2) NOT NULL CHECK (amount > 0),\n distribution text NOT NULL CHECK (distribution IN ('next', 'last', 'proportional')),\n item_cancelled boolean NOT NULL DEFAULT false,\n note text,\n -- [{installment_id, number, before, abated}]\n installments jsonb NOT NULL DEFAULT '[]'::jsonb,\n idempotency_key text,\n created_by uuid,\n created_at timestamptz NOT NULL DEFAULT now(),\n updated_at timestamptz NOT NULL DEFAULT now()\n);\nCREATE INDEX IF NOT EXISTS plg_financial_abatements_invoice_idx\n ON public.plg_financial_abatements (invoice_id);\nCREATE INDEX IF NOT EXISTS plg_financial_abatements_item_idx\n ON public.plg_financial_abatements (item_id);\nCREATE UNIQUE INDEX IF NOT EXISTS plg_financial_abatements_key_uq\n ON public.plg_financial_abatements (tenant_id, idempotency_key) WHERE idempotency_key IS NOT NULL;\n\nDO $$\nBEGIN\n ALTER TABLE public.plg_financial_abatements\n ADD CONSTRAINT plg_financial_abatements_unit_fkey\n FOREIGN KEY (tenant_id, unit_id) REFERENCES app.units(tenant_id, id) ON DELETE SET NULL;\nEXCEPTION WHEN duplicate_object THEN NULL;\nEND $$;\n\nDO $$\nBEGIN\n CREATE TRIGGER plg_financial_abatements_updated_at\n BEFORE UPDATE ON public.plg_financial_abatements\n FOR EACH ROW EXECUTE FUNCTION public.handle_updated_at();\nEXCEPTION WHEN duplicate_object THEN NULL;\nEND $$;\n\nSELECT app.scaffold_table('public.plg_financial_abatements'::regclass,\n 'financial.invoice', 'financial', false, 'enforce');\nSELECT app.scaffold_scope('public.plg_financial_abatements'::regclass, 'unit_optional', true);\n\nCREATE OR REPLACE FUNCTION public.financial_abate_invoice_item(\n p_item_id uuid,\n p_amount numeric,\n p_distribution text,\n p_note text DEFAULT NULL,\n p_idempotency_key text DEFAULT NULL\n) RETURNS jsonb\nLANGUAGE plpgsql SECURITY DEFINER SET search_path TO '' AS $$\nDECLARE\n v_tenant uuid := public.plg_financial_require_tenant();\n v_key text := nullif(btrim(coalesce(p_idempotency_key, '')), '');\n v_note text := nullif(btrim(coalesce(p_note, '')), '');\n v_amount numeric := round(coalesce(p_amount, 0), 2);\n v_item public.items%ROWTYPE;\n v_inv public.plg_financial_invoices%ROWTYPE;\n v_log uuid;\n v_full boolean;\n v_new_total numeric;\n v_new_qty numeric;\n v_free numeric := 0;\n v_left numeric;\n v_open_n integer := 0;\n v_i integer := 0;\n v_cut numeric;\n v_inst record;\n v_insts jsonb := '[]'::jsonb;\nBEGIN\n PERFORM public.plg_financial_claim_idempotency(v_tenant, v_key);\n IF v_key IS NOT NULL THEN\n SELECT a.id INTO v_log FROM public.plg_financial_abatements a\n WHERE a.tenant_id = v_tenant AND a.idempotency_key = v_key;\n IF v_log IS NOT NULL THEN\n RETURN (SELECT jsonb_build_object('abatement_id', a.id, 'item_id', a.item_id, 'invoice_id', a.invoice_id,\n 'amount', a.amount, 'item_cancelled', a.item_cancelled,\n 'distribution', a.distribution, 'installments', a.installments,\n 'replayed', true)\n FROM public.plg_financial_abatements a WHERE a.id = v_log);\n END IF;\n END IF;\n\n IF p_distribution IS NULL OR p_distribution NOT IN ('next', 'last', 'proportional') THEN\n RAISE EXCEPTION 'financial_abate_invoice_item: distribution must be next, last or proportional'\n USING ERRCODE = '22023', HINT = 'ABATE_BAD_DISTRIBUTION';\n END IF;\n IF v_amount <= 0 THEN\n RAISE EXCEPTION 'financial_abate_invoice_item: the amount must be greater than zero'\n USING ERRCODE = '22023', HINT = 'ABATE_NO_AMOUNT';\n END IF;\n\n SELECT * INTO v_item FROM public.items WHERE id = p_item_id AND tenant_id = v_tenant FOR UPDATE;\n IF NOT FOUND OR v_item.invoice_id IS NULL THEN\n RAISE EXCEPTION 'financial_abate_invoice_item: line % not found', p_item_id USING ERRCODE = 'P0002';\n END IF;\n SELECT * INTO v_inv FROM public.plg_financial_invoices\n WHERE id = v_item.invoice_id AND tenant_id = v_tenant FOR UPDATE;\n IF NOT FOUND THEN\n RAISE EXCEPTION 'financial_abate_invoice_item: invoice of line % not found', p_item_id USING ERRCODE = 'P0002';\n END IF;\n PERFORM public.plg_financial_require_permission('financial.edit', v_inv.unit_id);\n IF v_inv.direction <> 'payable' THEN\n RAISE EXCEPTION 'financial_abate_invoice_item: only a payable line is abated'\n USING ERRCODE = '55000', HINT = 'ABATE_NOT_PAYABLE';\n END IF;\n IF v_inv.cancelled_at IS NOT NULL THEN\n RAISE EXCEPTION 'financial_abate_invoice_item: invoice % is cancelled', v_inv.number\n USING ERRCODE = '55000', HINT = 'ABATE_INVOICE_CANCELLED';\n END IF;\n IF v_item.cancelled_at IS NOT NULL THEN\n RAISE EXCEPTION 'financial_abate_invoice_item: line % is cancelled', p_item_id\n USING ERRCODE = '55000', HINT = 'ABATE_LINE_CANCELLED';\n END IF;\n IF v_amount > round(coalesce(v_item.total, 0), 2) + 0.004 THEN\n RAISE EXCEPTION 'financial_abate_invoice_item: % is more than the line (%)', v_amount, v_item.total\n USING ERRCODE = '22023', HINT = 'ABATE_EXCEEDS_LINE';\n END IF;\n\n -- Only the open part (amount \u2212 paid) of the live instalments can be abated.\n SELECT coalesce(sum(greatest(round(i.amount - public.plg_financial_installment_paid(i.id), 2), 0)), 0),\n count(*) FILTER (WHERE i.amount - public.plg_financial_installment_paid(i.id) > 0.004)\n INTO v_free, v_open_n\n FROM public.plg_financial_invoice_installments i\n WHERE i.invoice_id = v_inv.id AND i.cancelled_at IS NULL;\n IF v_amount > v_free + 0.004 THEN\n RAISE EXCEPTION 'financial_abate_invoice_item: % is more than the open balance of the instalments (%)', v_amount, v_free\n USING ERRCODE = '55000', HINT = 'ABATE_EXCEEDS_OPEN',\n DETAIL = 'What was already paid is not abated: cancel the line instead, and the paid part becomes credit.';\n END IF;\n\n PERFORM set_config('financial.amend', 'on', true);\n\n -- 1) the line: reduced (the quantity follows the unit price) or cancelled.\n v_full := v_amount >= round(coalesce(v_item.total, 0), 2) - 0.004;\n IF v_full THEN\n UPDATE public.items\n SET cancelled_at = now(),\n cancel_reason = 'Abatimento: mercadoria n\u00E3o recebida' || coalesce(' \u2014 ' || v_note, ''),\n updated_at = now()\n WHERE id = v_item.id;\n ELSE\n v_new_total := round(v_item.total - v_amount, 2);\n v_new_qty := CASE\n WHEN coalesce(v_item.unit_price, 0) > 0 AND coalesce(v_item.discount, 0) = 0\n THEN round(v_new_total / v_item.unit_price, 4)\n WHEN coalesce(v_item.total, 0) > 0\n THEN round(v_item.quantity * v_new_total / v_item.total, 4)\n ELSE v_item.quantity\n END;\n UPDATE public.items SET total = v_new_total, quantity = v_new_qty, updated_at = now() WHERE id = v_item.id;\n END IF;\n\n -- 2) the invoice total.\n UPDATE public.plg_financial_invoices\n SET total = greatest(round(total - v_amount, 2), 0),\n metadata = metadata || jsonb_build_object('v2_decision', jsonb_build_object('amended', true, 'at', now()))\n WHERE id = v_inv.id;\n\n -- 3) the open part of the instalments, in the chosen order.\n v_left := v_amount;\n FOR v_inst IN\n SELECT i.id, i.number, i.amount, i.due_date,\n greatest(round(i.amount - public.plg_financial_installment_paid(i.id), 2), 0) AS free,\n public.plg_financial_installment_paid(i.id) AS paid\n FROM public.plg_financial_invoice_installments i\n WHERE i.invoice_id = v_inv.id AND i.cancelled_at IS NULL\n ORDER BY\n CASE WHEN p_distribution = 'last' THEN i.number END DESC NULLS LAST,\n CASE WHEN p_distribution = 'last' THEN i.due_date END DESC NULLS LAST,\n CASE WHEN p_distribution <> 'last' THEN i.due_date END ASC NULLS LAST,\n CASE WHEN p_distribution <> 'last' THEN i.number END ASC NULLS LAST,\n i.id\n LOOP\n EXIT WHEN v_left <= 0.004;\n CONTINUE WHEN v_inst.free <= 0.004;\n v_i := v_i + 1;\n IF p_distribution = 'proportional' AND v_i < v_open_n THEN\n v_cut := least(v_inst.free, v_left, round(v_amount * v_inst.free / v_free, 2));\n ELSE\n v_cut := least(v_inst.free, v_left);\n END IF;\n v_cut := round(v_cut, 2);\n CONTINUE WHEN v_cut <= 0.004;\n UPDATE public.plg_financial_invoice_installments\n SET amount = round(amount - v_cut, 2),\n cancelled_at = CASE WHEN round(amount - v_cut, 2) <= 0 AND v_inst.paid = 0 THEN now() END,\n metadata = metadata || jsonb_build_object('v2_decision', jsonb_build_object('amended', true))\n WHERE id = v_inst.id;\n v_insts := v_insts || jsonb_build_object('installment_id', v_inst.id, 'number', v_inst.number,\n 'before', v_inst.amount, 'abated', v_cut);\n v_left := round(v_left - v_cut, 2);\n END LOOP;\n\n -- 'proportional' can leave cents when an instalment hits its open ceiling:\n -- they go to the instalments that still have a balance, earliest first.\n IF v_left > 0.004 THEN\n FOR v_inst IN\n SELECT i.id, i.number, i.amount,\n greatest(round(i.amount - public.plg_financial_installment_paid(i.id), 2), 0) AS free,\n public.plg_financial_installment_paid(i.id) AS paid\n FROM public.plg_financial_invoice_installments i\n WHERE i.invoice_id = v_inv.id AND i.cancelled_at IS NULL\n ORDER BY i.due_date NULLS LAST, i.number, i.id\n LOOP\n EXIT WHEN v_left <= 0.004;\n CONTINUE WHEN v_inst.free <= 0.004;\n v_cut := round(least(v_inst.free, v_left), 2);\n UPDATE public.plg_financial_invoice_installments\n SET amount = round(amount - v_cut, 2),\n cancelled_at = CASE WHEN round(amount - v_cut, 2) <= 0 AND v_inst.paid = 0 THEN now() END,\n metadata = metadata || jsonb_build_object('v2_decision', jsonb_build_object('amended', true))\n WHERE id = v_inst.id;\n v_insts := v_insts || jsonb_build_object('installment_id', v_inst.id, 'number', v_inst.number,\n 'before', v_inst.amount, 'abated', v_cut);\n v_left := round(v_left - v_cut, 2);\n END LOOP;\n END IF;\n\n IF v_left > 0.004 THEN\n -- Cannot happen (checked above); abort rather than leave bill and instalments apart.\n RAISE EXCEPTION 'financial_abate_invoice_item: % could not be placed on the open instalments', v_left\n USING ERRCODE = 'P0001';\n END IF;\n\n PERFORM public.plg_financial_sync_mirror(i.id)\n FROM public.plg_financial_invoice_installments i WHERE i.invoice_id = v_inv.id;\n\n INSERT INTO public.plg_financial_abatements\n (tenant_id, unit_id, invoice_id, item_id, amount, distribution, item_cancelled, note, installments,\n idempotency_key, created_by)\n VALUES (v_tenant, v_inv.unit_id, v_inv.id, v_item.id, v_amount, p_distribution, v_full, v_note, v_insts,\n v_key, auth.uid())\n RETURNING id INTO v_log;\n\n PERFORM public.plg_financial_audit(v_tenant, 'financial.invoice.item.abate', 'items', v_item.id::text,\n jsonb_build_object('invoice_id', v_inv.id, 'invoice_number', v_inv.number, 'amount', v_amount,\n 'distribution', p_distribution, 'item_cancelled', v_full, 'note', v_note,\n 'installments', v_insts, 'abatement_id', v_log));\n\n RETURN jsonb_build_object('abatement_id', v_log, 'item_id', v_item.id, 'invoice_id', v_inv.id,\n 'amount', v_amount, 'item_cancelled', v_full, 'distribution', p_distribution,\n 'installments', v_insts, 'replayed', false);\nEND $$;\nREVOKE ALL ON FUNCTION public.financial_abate_invoice_item(uuid, numeric, text, text, text) FROM PUBLIC, anon;\nGRANT EXECUTE ON FUNCTION public.financial_abate_invoice_item(uuid, numeric, text, text, text) TO authenticated, service_role;\n\nCOMMENT ON FUNCTION public.financial_abate_invoice_item(uuid, numeric, text, text, text) IS\n 'Abates part of a payable line (goods that never arrived): reduces the line, or cancels it when the amount is the whole line, and takes the amount off the open instalments in the chosen order (next | last | proportional). Never touches what is paid.';\n";
|
|
138
139
|
export declare const MIGRATIONS: Array<{
|
|
139
140
|
id: string;
|
|
140
141
|
sql: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/migrations/index.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/migrations/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -136,8 +136,9 @@ var MIGRATION_133_REVERSING_A_PAYMENT_RELEASES_ITS_BANK_LINE = "";
|
|
|
136
136
|
var MIGRATION_134_A_BILL_KNOWS_WHO_FILED_IT = "";
|
|
137
137
|
var MIGRATION_135_A_BILL_AND_ITS_LINES_ARE_WRITTEN_TOGETHER = "";
|
|
138
138
|
var MIGRATION_136_A_BANK_STATEMENT_ARRIVES_FROM_THE_SERVICE = "";
|
|
139
|
+
var MIGRATION_137_A_BILL_LINE_IS_ABATED_FOR_WHAT_NEVER_ARRIVED = "";
|
|
139
140
|
var MIGRATIONS = [];
|
|
140
141
|
|
|
141
|
-
export { MIGRATIONS, MIGRATION_000_BASELINE, MIGRATION_001_THE_COMANDA_BECOMES_A_RECEIVABLE_WHEN_IT_CLOSES, MIGRATION_002_PAYMENT_TYPES_ARE_THE_COUNTRY_NOT_THE_TENANT, MIGRATION_003_THE_COMMISSION_RULE_GETS_A_TABLE, MIGRATION_004_ONE_BRIDGE_FOR_THREE_DOORS, MIGRATION_005_THE_APPOINTMENT_CLOSES_LIKE_THE_COMANDA, MIGRATION_006_THE_MONTH_CAN_BE_CLOSED_AND_THE_BOOK_CAN_BE_PROVEN, MIGRATION_007_THE_INVOICE_KNOWS_WHO_ISSUED_IT_AND_WHAT_IT_OWES, MIGRATION_008_THE_COMMISSION_RULE_LEARNS_TO_CHOOSE_AND_TO_SPLIT, MIGRATION_009_THE_COMMISSION_IS_CALCULATED_LINE_BY_LINE, MIGRATION_010_THE_INVOICE_RAISED_FROM_A_SALE_GETS_ITS_OWN_LINES, MIGRATION_011_A_NEW_TENANT_CAN_TAKE_MONEY_ON_THE_FIRST_DAY, MIGRATION_012_THE_COMMISSIONS_BECOME_ONE_BILL_PER_PERSON, MIGRATION_013_A_DISCOUNT_HAS_A_REASON_AND_SOMEONE_WHO_ALLOWED_IT, MIGRATION_014_THE_BILL_THAT_COMES_BACK_EVERY_MONTH, MIGRATION_015_THE_SALE_KNOWS_WHAT_IT_COST, MIGRATION_016_THE_OVERDUE_BILL_GETS_A_LETTER, MIGRATION_017_THE_RECEIPT_IS_A_QUERY_NOT_A_LAYOUT, MIGRATION_018_THE_CAIXA_SHOWS_WHAT_IT_SHOULD_HAVE, MIGRATION_019_WHO_DID_IT_IS_ALREADY_KNOWN, MIGRATION_020_A_RULE_WITH_NOBODY_TO_PAY_PAYS_THE_EXECUTOR, MIGRATION_021_THE_MOST_SPECIFIC_RULE_WINS, MIGRATION_022_AN_UNKNOWN_ATTRIBUTE_DOES_NOT_MATCH, MIGRATION_023_REAPURAR_NAO_CRIA_UM_LOTE_ORFAO, MIGRATION_024_O_BORDERO_PAGA_O_QUE_ELE_SOMA, MIGRATION_025_A_META_DO_MES_TEM_TRES_DEGRAUS, MIGRATION_026_QUEM_FECHA_O_CAIXA_NAO_E_QUEM_CONFERE, MIGRATION_027_O_VALE_PRESENTE_NASCE_EM_LOTE_E_E_UM_PASSIVO, MIGRATION_028_O_CARTAO_TEM_COR, MIGRATION_029_THE_KIOSK_SALE_IS_A_SALE_TOO, MIGRATION_030_THE_CENSUS_CAN_SEE_THE_KIOSK, MIGRATION_031_THE_BANK_LINE_IS_EVIDENCE_NOT_A_SECOND_PAYMENT, MIGRATION_032_CONTAS_A_PAGAR_GANHAM_ONDE_MORAR, MIGRATION_033_O_VENCIMENTO_APONTA_PARA_O_TITULO, MIGRATION_034_A_UNIDADE_TEM_CONTA_E_A_PESSOA_TEM_UMA_SO, MIGRATION_035_A_CLASSIFICACAO_CONTABIL_CHEGA_INTEIRA, MIGRATION_036_A_FUSAO_PARA_DE_DOBRAR_A_PROPRIA_MEMORIA, MIGRATION_037_A_VENDA_DE_BALCAO_TEM_CONTA, MIGRATION_038_A_LINHA_DA_FATURA_ALCANCA_QUEM_VEIO_PELO_PEDIDO, MIGRATION_039_O_TITULO_DE_UMA_VENDA_CANCELADA_NASCE_CANCELADO, MIGRATION_040_A_DRE_LE_A_LINHA_DA_VENDA, MIGRATION_041_O_CAIXA_DO_V1_NAO_SEGURA_O_MOVIMENTO, MIGRATION_042_O_CANCELADO_DO_V1_E_O_CANCELLED_DO_V2, MIGRATION_043_O_MOVIMENTO_SABE_DE_QUE_UNIDADE_ELE_E, MIGRATION_044_A_DRE_NAO_PAGA_PEDAGIO_POR_ITEM, MIGRATION_045_A_CONTA_SO_CLASSIFICA_SE_A_NATUREZA_CASA, MIGRATION_046_O_DEMONSTRATIVO_MOSTRA_O_PLANO_INTEIRO, MIGRATION_047_A_CONTA_RECONHECE_A_CONTRAPARTE_NA_SEGUNDA_OFERTA, MIGRATION_048_A_PARCELA_E_A_CONTA_DO_V1_E_A_BAIXA_E_A_ALOCACAO, MIGRATION_049_A_PARCELA_CARREGA_O_CANCELAMENTO, MIGRATION_050_O_SALDO_DO_TITULO_SE_CALCULA_UMA_VEZ, MIGRATION_051_O_SALDO_SE_CALCULA_SO_NA_LINHA_QUE_A_TELA_MOSTRA, MIGRATION_052_A_LISTA_DE_CONTAS_FALA_VENCIMENTO, MIGRATION_053_UM_TITULO_PARCELADO_VENCE_VARIAS_VEZES, MIGRATION_054_AS_DATAS_EM_QUE_O_TITULO_VENCE, MIGRATION_055_A_LISTA_DE_CONTAS_LISTA_PARCELAS, MIGRATION_056_WHAT_THE_PORT_LEFT_OPEN, MIGRATION_057_A_LINHA_DIZ_QUE_TEM_RECIBO, MIGRATION_058_O_CLIPE_USA_O_INDICE, MIGRATION_059_O_CLIPE_SAI_DA_VIEW, MIGRATION_060_O_RECEBIVEL_VOLTA_DA_ARVORE_DERRUBADA, MIGRATION_061_CONTAS_A_PAGAR_GANHAM_ONDE_MORAR, MIGRATION_062_O_VENCIMENTO_APONTA_PARA_O_TITULO, MIGRATION_063_A_UNIDADE_TEM_CONTA_E_A_PESSOA_TEM_UMA_SO, MIGRATION_064_A_CLASSIFICACAO_CONTABIL_CHEGA_INTEIRA, MIGRATION_065_A_FUSAO_PARA_DE_DOBRAR_A_PROPRIA_MEMORIA, MIGRATION_066_A_VENDA_DE_BALCAO_TEM_CONTA, MIGRATION_067_O_RECIBO_DA_CONTA_ATRAVESSA, MIGRATION_068_A_UNIDADE_ENTRA_COM_A_LINHA_NAO_DEPOIS_DELA, MIGRATION_069_O_TITULO_QUE_JA_EXISTE_ESTA_MIGRADO, MIGRATION_070_A_PARCELA_NASCE_ANTES_DO_MOVIMENTO, MIGRATION_071_A_PARCELA_TEM_UMA_ASSINATURA_SO, MIGRATION_072_O_CAIXA_DO_V1_GUARDA_QUEM_O_ABRIU, MIGRATION_073_O_CAIXA_PERTENCE_A_CONTA_QUE_O_V1_LHE_DEU, MIGRATION_074_O_MOVIMENTO_VOLTA_A_APONTAR_PARA_O_CAIXA, MIGRATION_075_A_VENDA_CANCELADA_CANCELA_O_TITULO_DELA, MIGRATION_076_O_PLANO_DE_CONTAS_DO_CLIENTE_VENCE_O_DO_MODELO, MIGRATION_077_O_RESUMO_FINANCEIRO_SE_SOMA_NO_BANCO, MIGRATION_078_O_SALDO_DA_CONTA_SE_CALCULA_SO_NA_CONTA_PEDIDA, MIGRATION_079_AS_PORTAS_DE_PORTE_NOVAS_NAO_NASCEM_ABERTAS, MIGRATION_080_A_REMESSA_E_A_COMISSAO_A_PAGAR_TEM_ONDE_MORAR, MIGRATION_081_A_REMESSA_E_A_COMISSAO_ATRAVESSAM, MIGRATION_082_O_BENEFICIARIO_DA_COMISSAO_E_UMA_CONTA, MIGRATION_083_A_CONTA_DO_BANCO_E_UMA_CONTA_E_A_FATURA_TEM_DOIS_DESTINOS, MIGRATION_084_A_NOTA_DE_ENTRADA_TEM_UM_TITULO_A_PAGAR, MIGRATION_085_O_RESUMO_LE_CINCO_MIL_LINHAS_E_NAO_DUZENTAS_E_OITENTA_MIL, MIGRATION_086_A_CERCA_SE_PERGUNTA_UMA_VEZ_E_NAO_UMA_VEZ_POR_LINHA, MIGRATION_087_O_SALDO_DE_UMA_FATURA_NAO_SOMA_O_RAZAO_INTEIRO, MIGRATION_088_A_CONTA_SEM_PESSOA_E_DO_SISTEMA_NAO_DE_NINGUEM, MIGRATION_089_O_FORNECEDOR_APONTA_PARA_O_PLANO_MIGRADO, MIGRATION_090_O_DRE_RECORTA_ANTES_DE_SOMAR, MIGRATION_091_A_RECORRENCIA_REPETE_OS_ITENS, MIGRATION_092_A_CONTA_PAGA_NO_CARTAO_SAI_DO_CARTAO, MIGRATION_093_O_PAGAMENTO_DIZ_QUAL_CONTA_ELE_QUITOU, MIGRATION_094_O_TITULO_DA_NOTA_DE_ENTRADA_SABE_DE_QUEM_ELE_E, MIGRATION_095_O_CAIXA_DO_V1_E_REGISTRO_NAO_REFERENCIA, MIGRATION_096_O_CAIXA_DO_V1_JA_TEM_DONO_E_PODE_ENTRAR, MIGRATION_097_O_CAIXA_CONTA_LINHA_POR_LINHA, MIGRATION_098_A_CONTA_QUE_NINGUEM_PAGOU_AINDA_MUDA_DE_DATA_E_DE_PARCELAS, MIGRATION_099_OS_ITENS_DE_UMA_CONTA_SEM_RECEBIMENTO_AINDA_SE_CORRIGEM, MIGRATION_100_A_CONTA_BANCARIA_DIZ_DE_QUEM_ELA_E, MIGRATION_101_O_CARTAO_SE_RECONHECE_PELOS_QUATRO_ULTIMOS, MIGRATION_102_A_BANDEIRA_DO_CARTAO_E_DO_PAIS_NAO_DO_LOJISTA, MIGRATION_103_O_RAIL_DA_FICHA_E_IGUAL_EM_TODO_CADASTRO, MIGRATION_104_SERVICO_E_O_QUE_A_CASA_VENDE, MIGRATION_105_A_OCORRENCIA_PROVISIONADA_VIRA_CONTA_QUANDO_ALGUEM_MANDA, MIGRATION_106_A_RECORRENCIA_NOVA_TAMBEM_PROVISIONA, MIGRATION_107_A_PREVISAO_COMECA_ONDE_A_REGUA_COMECA, MIGRATION_108_MUDOU_A_REGUA_MUDA_A_PREVISAO, MIGRATION_109_A_REGUA_GRAVA_CAMELCASE_E_O_SQL_LIA_SNAKE, MIGRATION_110_TROCAR_DE_FORNECEDOR_ENQUANTO_NINGUEM_PAGOU, MIGRATION_111_REPARCELAR_SEM_APAGAR_A_PARCELA, MIGRATION_112_A_LINHA_DO_EXTRATO_NAO_E_UM_LANCAMENTO_AINDA, MIGRATION_113_SO_A_CONTA_INTEGRADA_APARECE_NA_CONCILIACAO, MIGRATION_114_A_PARCELA_DIZ_POR_QUAL_CONTA_ELA_FOI_PAGA, MIGRATION_115_A_REMESSA_APONTA_PARA_A_CONTA_QUE_EXISTE, MIGRATION_116_UM_ESTORNO_NAO_SE_ESTORNA, MIGRATION_117_COPYING_LINES_IS_AN_INTERNAL_STEP, MIGRATION_118_GIFT_CARD_FOUND_BY_EXACT_CODE, MIGRATION_119_AN_UNPAID_LEGACY_BILL_CAN_BE_RESCHEDULED, MIGRATION_120_CANCELAR_E_POR_ITEM_COM_MOTIVO_E_DESTINO, MIGRATION_121_O_MOTIVO_E_DO_ESTABELECIMENTO, MIGRATION_122_O_CANCELAMENTO_FECHA_AS_PORTAS_QUE_ABRIU, MIGRATION_123_THE_MIRROR_DOES_NOT_BILL_A_RECURRENCE_TWICE, MIGRATION_124_MONEY_KNOWS_ITS_CURRENCY, MIGRATION_125_THE_SUMMARY_ADDS_ONE_CURRENCY_AT_A_TIME, MIGRATION_126_A_BILL_LINE_CAN_ENTER_STOCK, MIGRATION_127_A_BILL_LINE_ENTERS_STOCK_AS_IT_REALLY_ARRIVED, MIGRATION_128_A_STOCK_RECEIPT_SHOWS_WHAT_WAS_PAID, MIGRATION_129_A_BILL_CAN_BE_WRITTEN_IN_ANOTHER_CURRENCY, MIGRATION_130_A_BILL_CAN_BE_TAGGED, MIGRATION_131_THE_BILL_FOLLOWS_THE_PRICE_OF_THE_SALE, MIGRATION_132_THE_STATEMENT_SOURCE_KNOWS_ITS_PROVIDER_ACCOUNT, MIGRATION_133_REVERSING_A_PAYMENT_RELEASES_ITS_BANK_LINE, MIGRATION_134_A_BILL_KNOWS_WHO_FILED_IT, MIGRATION_135_A_BILL_AND_ITS_LINES_ARE_WRITTEN_TOGETHER, MIGRATION_136_A_BANK_STATEMENT_ARRIVES_FROM_THE_SERVICE };
|
|
142
|
+
export { MIGRATIONS, MIGRATION_000_BASELINE, MIGRATION_001_THE_COMANDA_BECOMES_A_RECEIVABLE_WHEN_IT_CLOSES, MIGRATION_002_PAYMENT_TYPES_ARE_THE_COUNTRY_NOT_THE_TENANT, MIGRATION_003_THE_COMMISSION_RULE_GETS_A_TABLE, MIGRATION_004_ONE_BRIDGE_FOR_THREE_DOORS, MIGRATION_005_THE_APPOINTMENT_CLOSES_LIKE_THE_COMANDA, MIGRATION_006_THE_MONTH_CAN_BE_CLOSED_AND_THE_BOOK_CAN_BE_PROVEN, MIGRATION_007_THE_INVOICE_KNOWS_WHO_ISSUED_IT_AND_WHAT_IT_OWES, MIGRATION_008_THE_COMMISSION_RULE_LEARNS_TO_CHOOSE_AND_TO_SPLIT, MIGRATION_009_THE_COMMISSION_IS_CALCULATED_LINE_BY_LINE, MIGRATION_010_THE_INVOICE_RAISED_FROM_A_SALE_GETS_ITS_OWN_LINES, MIGRATION_011_A_NEW_TENANT_CAN_TAKE_MONEY_ON_THE_FIRST_DAY, MIGRATION_012_THE_COMMISSIONS_BECOME_ONE_BILL_PER_PERSON, MIGRATION_013_A_DISCOUNT_HAS_A_REASON_AND_SOMEONE_WHO_ALLOWED_IT, MIGRATION_014_THE_BILL_THAT_COMES_BACK_EVERY_MONTH, MIGRATION_015_THE_SALE_KNOWS_WHAT_IT_COST, MIGRATION_016_THE_OVERDUE_BILL_GETS_A_LETTER, MIGRATION_017_THE_RECEIPT_IS_A_QUERY_NOT_A_LAYOUT, MIGRATION_018_THE_CAIXA_SHOWS_WHAT_IT_SHOULD_HAVE, MIGRATION_019_WHO_DID_IT_IS_ALREADY_KNOWN, MIGRATION_020_A_RULE_WITH_NOBODY_TO_PAY_PAYS_THE_EXECUTOR, MIGRATION_021_THE_MOST_SPECIFIC_RULE_WINS, MIGRATION_022_AN_UNKNOWN_ATTRIBUTE_DOES_NOT_MATCH, MIGRATION_023_REAPURAR_NAO_CRIA_UM_LOTE_ORFAO, MIGRATION_024_O_BORDERO_PAGA_O_QUE_ELE_SOMA, MIGRATION_025_A_META_DO_MES_TEM_TRES_DEGRAUS, MIGRATION_026_QUEM_FECHA_O_CAIXA_NAO_E_QUEM_CONFERE, MIGRATION_027_O_VALE_PRESENTE_NASCE_EM_LOTE_E_E_UM_PASSIVO, MIGRATION_028_O_CARTAO_TEM_COR, MIGRATION_029_THE_KIOSK_SALE_IS_A_SALE_TOO, MIGRATION_030_THE_CENSUS_CAN_SEE_THE_KIOSK, MIGRATION_031_THE_BANK_LINE_IS_EVIDENCE_NOT_A_SECOND_PAYMENT, MIGRATION_032_CONTAS_A_PAGAR_GANHAM_ONDE_MORAR, MIGRATION_033_O_VENCIMENTO_APONTA_PARA_O_TITULO, MIGRATION_034_A_UNIDADE_TEM_CONTA_E_A_PESSOA_TEM_UMA_SO, MIGRATION_035_A_CLASSIFICACAO_CONTABIL_CHEGA_INTEIRA, MIGRATION_036_A_FUSAO_PARA_DE_DOBRAR_A_PROPRIA_MEMORIA, MIGRATION_037_A_VENDA_DE_BALCAO_TEM_CONTA, MIGRATION_038_A_LINHA_DA_FATURA_ALCANCA_QUEM_VEIO_PELO_PEDIDO, MIGRATION_039_O_TITULO_DE_UMA_VENDA_CANCELADA_NASCE_CANCELADO, MIGRATION_040_A_DRE_LE_A_LINHA_DA_VENDA, MIGRATION_041_O_CAIXA_DO_V1_NAO_SEGURA_O_MOVIMENTO, MIGRATION_042_O_CANCELADO_DO_V1_E_O_CANCELLED_DO_V2, MIGRATION_043_O_MOVIMENTO_SABE_DE_QUE_UNIDADE_ELE_E, MIGRATION_044_A_DRE_NAO_PAGA_PEDAGIO_POR_ITEM, MIGRATION_045_A_CONTA_SO_CLASSIFICA_SE_A_NATUREZA_CASA, MIGRATION_046_O_DEMONSTRATIVO_MOSTRA_O_PLANO_INTEIRO, MIGRATION_047_A_CONTA_RECONHECE_A_CONTRAPARTE_NA_SEGUNDA_OFERTA, MIGRATION_048_A_PARCELA_E_A_CONTA_DO_V1_E_A_BAIXA_E_A_ALOCACAO, MIGRATION_049_A_PARCELA_CARREGA_O_CANCELAMENTO, MIGRATION_050_O_SALDO_DO_TITULO_SE_CALCULA_UMA_VEZ, MIGRATION_051_O_SALDO_SE_CALCULA_SO_NA_LINHA_QUE_A_TELA_MOSTRA, MIGRATION_052_A_LISTA_DE_CONTAS_FALA_VENCIMENTO, MIGRATION_053_UM_TITULO_PARCELADO_VENCE_VARIAS_VEZES, MIGRATION_054_AS_DATAS_EM_QUE_O_TITULO_VENCE, MIGRATION_055_A_LISTA_DE_CONTAS_LISTA_PARCELAS, MIGRATION_056_WHAT_THE_PORT_LEFT_OPEN, MIGRATION_057_A_LINHA_DIZ_QUE_TEM_RECIBO, MIGRATION_058_O_CLIPE_USA_O_INDICE, MIGRATION_059_O_CLIPE_SAI_DA_VIEW, MIGRATION_060_O_RECEBIVEL_VOLTA_DA_ARVORE_DERRUBADA, MIGRATION_061_CONTAS_A_PAGAR_GANHAM_ONDE_MORAR, MIGRATION_062_O_VENCIMENTO_APONTA_PARA_O_TITULO, MIGRATION_063_A_UNIDADE_TEM_CONTA_E_A_PESSOA_TEM_UMA_SO, MIGRATION_064_A_CLASSIFICACAO_CONTABIL_CHEGA_INTEIRA, MIGRATION_065_A_FUSAO_PARA_DE_DOBRAR_A_PROPRIA_MEMORIA, MIGRATION_066_A_VENDA_DE_BALCAO_TEM_CONTA, MIGRATION_067_O_RECIBO_DA_CONTA_ATRAVESSA, MIGRATION_068_A_UNIDADE_ENTRA_COM_A_LINHA_NAO_DEPOIS_DELA, MIGRATION_069_O_TITULO_QUE_JA_EXISTE_ESTA_MIGRADO, MIGRATION_070_A_PARCELA_NASCE_ANTES_DO_MOVIMENTO, MIGRATION_071_A_PARCELA_TEM_UMA_ASSINATURA_SO, MIGRATION_072_O_CAIXA_DO_V1_GUARDA_QUEM_O_ABRIU, MIGRATION_073_O_CAIXA_PERTENCE_A_CONTA_QUE_O_V1_LHE_DEU, MIGRATION_074_O_MOVIMENTO_VOLTA_A_APONTAR_PARA_O_CAIXA, MIGRATION_075_A_VENDA_CANCELADA_CANCELA_O_TITULO_DELA, MIGRATION_076_O_PLANO_DE_CONTAS_DO_CLIENTE_VENCE_O_DO_MODELO, MIGRATION_077_O_RESUMO_FINANCEIRO_SE_SOMA_NO_BANCO, MIGRATION_078_O_SALDO_DA_CONTA_SE_CALCULA_SO_NA_CONTA_PEDIDA, MIGRATION_079_AS_PORTAS_DE_PORTE_NOVAS_NAO_NASCEM_ABERTAS, MIGRATION_080_A_REMESSA_E_A_COMISSAO_A_PAGAR_TEM_ONDE_MORAR, MIGRATION_081_A_REMESSA_E_A_COMISSAO_ATRAVESSAM, MIGRATION_082_O_BENEFICIARIO_DA_COMISSAO_E_UMA_CONTA, MIGRATION_083_A_CONTA_DO_BANCO_E_UMA_CONTA_E_A_FATURA_TEM_DOIS_DESTINOS, MIGRATION_084_A_NOTA_DE_ENTRADA_TEM_UM_TITULO_A_PAGAR, MIGRATION_085_O_RESUMO_LE_CINCO_MIL_LINHAS_E_NAO_DUZENTAS_E_OITENTA_MIL, MIGRATION_086_A_CERCA_SE_PERGUNTA_UMA_VEZ_E_NAO_UMA_VEZ_POR_LINHA, MIGRATION_087_O_SALDO_DE_UMA_FATURA_NAO_SOMA_O_RAZAO_INTEIRO, MIGRATION_088_A_CONTA_SEM_PESSOA_E_DO_SISTEMA_NAO_DE_NINGUEM, MIGRATION_089_O_FORNECEDOR_APONTA_PARA_O_PLANO_MIGRADO, MIGRATION_090_O_DRE_RECORTA_ANTES_DE_SOMAR, MIGRATION_091_A_RECORRENCIA_REPETE_OS_ITENS, MIGRATION_092_A_CONTA_PAGA_NO_CARTAO_SAI_DO_CARTAO, MIGRATION_093_O_PAGAMENTO_DIZ_QUAL_CONTA_ELE_QUITOU, MIGRATION_094_O_TITULO_DA_NOTA_DE_ENTRADA_SABE_DE_QUEM_ELE_E, MIGRATION_095_O_CAIXA_DO_V1_E_REGISTRO_NAO_REFERENCIA, MIGRATION_096_O_CAIXA_DO_V1_JA_TEM_DONO_E_PODE_ENTRAR, MIGRATION_097_O_CAIXA_CONTA_LINHA_POR_LINHA, MIGRATION_098_A_CONTA_QUE_NINGUEM_PAGOU_AINDA_MUDA_DE_DATA_E_DE_PARCELAS, MIGRATION_099_OS_ITENS_DE_UMA_CONTA_SEM_RECEBIMENTO_AINDA_SE_CORRIGEM, MIGRATION_100_A_CONTA_BANCARIA_DIZ_DE_QUEM_ELA_E, MIGRATION_101_O_CARTAO_SE_RECONHECE_PELOS_QUATRO_ULTIMOS, MIGRATION_102_A_BANDEIRA_DO_CARTAO_E_DO_PAIS_NAO_DO_LOJISTA, MIGRATION_103_O_RAIL_DA_FICHA_E_IGUAL_EM_TODO_CADASTRO, MIGRATION_104_SERVICO_E_O_QUE_A_CASA_VENDE, MIGRATION_105_A_OCORRENCIA_PROVISIONADA_VIRA_CONTA_QUANDO_ALGUEM_MANDA, MIGRATION_106_A_RECORRENCIA_NOVA_TAMBEM_PROVISIONA, MIGRATION_107_A_PREVISAO_COMECA_ONDE_A_REGUA_COMECA, MIGRATION_108_MUDOU_A_REGUA_MUDA_A_PREVISAO, MIGRATION_109_A_REGUA_GRAVA_CAMELCASE_E_O_SQL_LIA_SNAKE, MIGRATION_110_TROCAR_DE_FORNECEDOR_ENQUANTO_NINGUEM_PAGOU, MIGRATION_111_REPARCELAR_SEM_APAGAR_A_PARCELA, MIGRATION_112_A_LINHA_DO_EXTRATO_NAO_E_UM_LANCAMENTO_AINDA, MIGRATION_113_SO_A_CONTA_INTEGRADA_APARECE_NA_CONCILIACAO, MIGRATION_114_A_PARCELA_DIZ_POR_QUAL_CONTA_ELA_FOI_PAGA, MIGRATION_115_A_REMESSA_APONTA_PARA_A_CONTA_QUE_EXISTE, MIGRATION_116_UM_ESTORNO_NAO_SE_ESTORNA, MIGRATION_117_COPYING_LINES_IS_AN_INTERNAL_STEP, MIGRATION_118_GIFT_CARD_FOUND_BY_EXACT_CODE, MIGRATION_119_AN_UNPAID_LEGACY_BILL_CAN_BE_RESCHEDULED, MIGRATION_120_CANCELAR_E_POR_ITEM_COM_MOTIVO_E_DESTINO, MIGRATION_121_O_MOTIVO_E_DO_ESTABELECIMENTO, MIGRATION_122_O_CANCELAMENTO_FECHA_AS_PORTAS_QUE_ABRIU, MIGRATION_123_THE_MIRROR_DOES_NOT_BILL_A_RECURRENCE_TWICE, MIGRATION_124_MONEY_KNOWS_ITS_CURRENCY, MIGRATION_125_THE_SUMMARY_ADDS_ONE_CURRENCY_AT_A_TIME, MIGRATION_126_A_BILL_LINE_CAN_ENTER_STOCK, MIGRATION_127_A_BILL_LINE_ENTERS_STOCK_AS_IT_REALLY_ARRIVED, MIGRATION_128_A_STOCK_RECEIPT_SHOWS_WHAT_WAS_PAID, MIGRATION_129_A_BILL_CAN_BE_WRITTEN_IN_ANOTHER_CURRENCY, MIGRATION_130_A_BILL_CAN_BE_TAGGED, MIGRATION_131_THE_BILL_FOLLOWS_THE_PRICE_OF_THE_SALE, MIGRATION_132_THE_STATEMENT_SOURCE_KNOWS_ITS_PROVIDER_ACCOUNT, MIGRATION_133_REVERSING_A_PAYMENT_RELEASES_ITS_BANK_LINE, MIGRATION_134_A_BILL_KNOWS_WHO_FILED_IT, MIGRATION_135_A_BILL_AND_ITS_LINES_ARE_WRITTEN_TOGETHER, MIGRATION_136_A_BANK_STATEMENT_ARRIVES_FROM_THE_SERVICE, MIGRATION_137_A_BILL_LINE_IS_ABATED_FOR_WHAT_NEVER_ARRIVED };
|
|
142
143
|
//# sourceMappingURL=main.browser.js.map
|
|
143
144
|
//# sourceMappingURL=main.browser.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../node_modules/.cache/fayz-migration-stubs/main.ts"],"names":[],"mappings":"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","file":"main.browser.js","sourcesContent":["// GENERATED by scripts/tsup-migrations.mjs — the browser build of a\n// migrations barrel: the same names, no SQL. See that script for why.\nexport const MIGRATION_000_BASELINE = ''\nexport const MIGRATION_001_THE_COMANDA_BECOMES_A_RECEIVABLE_WHEN_IT_CLOSES = ''\nexport const MIGRATION_002_PAYMENT_TYPES_ARE_THE_COUNTRY_NOT_THE_TENANT = ''\nexport const MIGRATION_003_THE_COMMISSION_RULE_GETS_A_TABLE = ''\nexport const MIGRATION_004_ONE_BRIDGE_FOR_THREE_DOORS = ''\nexport const MIGRATION_005_THE_APPOINTMENT_CLOSES_LIKE_THE_COMANDA = ''\nexport const MIGRATION_006_THE_MONTH_CAN_BE_CLOSED_AND_THE_BOOK_CAN_BE_PROVEN = ''\nexport const MIGRATION_007_THE_INVOICE_KNOWS_WHO_ISSUED_IT_AND_WHAT_IT_OWES = ''\nexport const MIGRATION_008_THE_COMMISSION_RULE_LEARNS_TO_CHOOSE_AND_TO_SPLIT = ''\nexport const MIGRATION_009_THE_COMMISSION_IS_CALCULATED_LINE_BY_LINE = ''\nexport const MIGRATION_010_THE_INVOICE_RAISED_FROM_A_SALE_GETS_ITS_OWN_LINES = ''\nexport const MIGRATION_011_A_NEW_TENANT_CAN_TAKE_MONEY_ON_THE_FIRST_DAY = ''\nexport const MIGRATION_012_THE_COMMISSIONS_BECOME_ONE_BILL_PER_PERSON = ''\nexport const MIGRATION_013_A_DISCOUNT_HAS_A_REASON_AND_SOMEONE_WHO_ALLOWED_IT = ''\nexport const MIGRATION_014_THE_BILL_THAT_COMES_BACK_EVERY_MONTH = ''\nexport const MIGRATION_015_THE_SALE_KNOWS_WHAT_IT_COST = ''\nexport const MIGRATION_016_THE_OVERDUE_BILL_GETS_A_LETTER = ''\nexport const MIGRATION_017_THE_RECEIPT_IS_A_QUERY_NOT_A_LAYOUT = ''\nexport const MIGRATION_018_THE_CAIXA_SHOWS_WHAT_IT_SHOULD_HAVE = ''\nexport const MIGRATION_019_WHO_DID_IT_IS_ALREADY_KNOWN = ''\nexport const MIGRATION_020_A_RULE_WITH_NOBODY_TO_PAY_PAYS_THE_EXECUTOR = ''\nexport const MIGRATION_021_THE_MOST_SPECIFIC_RULE_WINS = ''\nexport const MIGRATION_022_AN_UNKNOWN_ATTRIBUTE_DOES_NOT_MATCH = ''\nexport const MIGRATION_023_REAPURAR_NAO_CRIA_UM_LOTE_ORFAO = ''\nexport const MIGRATION_024_O_BORDERO_PAGA_O_QUE_ELE_SOMA = ''\nexport const MIGRATION_025_A_META_DO_MES_TEM_TRES_DEGRAUS = ''\nexport const MIGRATION_026_QUEM_FECHA_O_CAIXA_NAO_E_QUEM_CONFERE = ''\nexport const MIGRATION_027_O_VALE_PRESENTE_NASCE_EM_LOTE_E_E_UM_PASSIVO = ''\nexport const MIGRATION_028_O_CARTAO_TEM_COR = ''\nexport const MIGRATION_029_THE_KIOSK_SALE_IS_A_SALE_TOO = ''\nexport const MIGRATION_030_THE_CENSUS_CAN_SEE_THE_KIOSK = ''\nexport const MIGRATION_031_THE_BANK_LINE_IS_EVIDENCE_NOT_A_SECOND_PAYMENT = ''\nexport const MIGRATION_032_CONTAS_A_PAGAR_GANHAM_ONDE_MORAR = ''\nexport const MIGRATION_033_O_VENCIMENTO_APONTA_PARA_O_TITULO = ''\nexport const MIGRATION_034_A_UNIDADE_TEM_CONTA_E_A_PESSOA_TEM_UMA_SO = ''\nexport const MIGRATION_035_A_CLASSIFICACAO_CONTABIL_CHEGA_INTEIRA = ''\nexport const MIGRATION_036_A_FUSAO_PARA_DE_DOBRAR_A_PROPRIA_MEMORIA = ''\nexport const MIGRATION_037_A_VENDA_DE_BALCAO_TEM_CONTA = ''\nexport const MIGRATION_038_A_LINHA_DA_FATURA_ALCANCA_QUEM_VEIO_PELO_PEDIDO = ''\nexport const MIGRATION_039_O_TITULO_DE_UMA_VENDA_CANCELADA_NASCE_CANCELADO = ''\nexport const MIGRATION_040_A_DRE_LE_A_LINHA_DA_VENDA = ''\nexport const MIGRATION_041_O_CAIXA_DO_V1_NAO_SEGURA_O_MOVIMENTO = ''\nexport const MIGRATION_042_O_CANCELADO_DO_V1_E_O_CANCELLED_DO_V2 = ''\nexport const MIGRATION_043_O_MOVIMENTO_SABE_DE_QUE_UNIDADE_ELE_E = ''\nexport const MIGRATION_044_A_DRE_NAO_PAGA_PEDAGIO_POR_ITEM = ''\nexport const MIGRATION_045_A_CONTA_SO_CLASSIFICA_SE_A_NATUREZA_CASA = ''\nexport const MIGRATION_046_O_DEMONSTRATIVO_MOSTRA_O_PLANO_INTEIRO = ''\nexport const MIGRATION_047_A_CONTA_RECONHECE_A_CONTRAPARTE_NA_SEGUNDA_OFERTA = ''\nexport const MIGRATION_048_A_PARCELA_E_A_CONTA_DO_V1_E_A_BAIXA_E_A_ALOCACAO = ''\nexport const MIGRATION_049_A_PARCELA_CARREGA_O_CANCELAMENTO = ''\nexport const MIGRATION_050_O_SALDO_DO_TITULO_SE_CALCULA_UMA_VEZ = ''\nexport const MIGRATION_051_O_SALDO_SE_CALCULA_SO_NA_LINHA_QUE_A_TELA_MOSTRA = ''\nexport const MIGRATION_052_A_LISTA_DE_CONTAS_FALA_VENCIMENTO = ''\nexport const MIGRATION_053_UM_TITULO_PARCELADO_VENCE_VARIAS_VEZES = ''\nexport const MIGRATION_054_AS_DATAS_EM_QUE_O_TITULO_VENCE = ''\nexport const MIGRATION_055_A_LISTA_DE_CONTAS_LISTA_PARCELAS = ''\nexport const MIGRATION_056_WHAT_THE_PORT_LEFT_OPEN = ''\nexport const MIGRATION_057_A_LINHA_DIZ_QUE_TEM_RECIBO = ''\nexport const MIGRATION_058_O_CLIPE_USA_O_INDICE = ''\nexport const MIGRATION_059_O_CLIPE_SAI_DA_VIEW = ''\nexport const MIGRATION_060_O_RECEBIVEL_VOLTA_DA_ARVORE_DERRUBADA = ''\nexport const MIGRATION_061_CONTAS_A_PAGAR_GANHAM_ONDE_MORAR = ''\nexport const MIGRATION_062_O_VENCIMENTO_APONTA_PARA_O_TITULO = ''\nexport const MIGRATION_063_A_UNIDADE_TEM_CONTA_E_A_PESSOA_TEM_UMA_SO = ''\nexport const MIGRATION_064_A_CLASSIFICACAO_CONTABIL_CHEGA_INTEIRA = ''\nexport const MIGRATION_065_A_FUSAO_PARA_DE_DOBRAR_A_PROPRIA_MEMORIA = ''\nexport const MIGRATION_066_A_VENDA_DE_BALCAO_TEM_CONTA = ''\nexport const MIGRATION_067_O_RECIBO_DA_CONTA_ATRAVESSA = ''\nexport const MIGRATION_068_A_UNIDADE_ENTRA_COM_A_LINHA_NAO_DEPOIS_DELA = ''\nexport const MIGRATION_069_O_TITULO_QUE_JA_EXISTE_ESTA_MIGRADO = ''\nexport const MIGRATION_070_A_PARCELA_NASCE_ANTES_DO_MOVIMENTO = ''\nexport const MIGRATION_071_A_PARCELA_TEM_UMA_ASSINATURA_SO = ''\nexport const MIGRATION_072_O_CAIXA_DO_V1_GUARDA_QUEM_O_ABRIU = ''\nexport const MIGRATION_073_O_CAIXA_PERTENCE_A_CONTA_QUE_O_V1_LHE_DEU = ''\nexport const MIGRATION_074_O_MOVIMENTO_VOLTA_A_APONTAR_PARA_O_CAIXA = ''\nexport const MIGRATION_075_A_VENDA_CANCELADA_CANCELA_O_TITULO_DELA = ''\nexport const MIGRATION_076_O_PLANO_DE_CONTAS_DO_CLIENTE_VENCE_O_DO_MODELO = ''\nexport const MIGRATION_077_O_RESUMO_FINANCEIRO_SE_SOMA_NO_BANCO = ''\nexport const MIGRATION_078_O_SALDO_DA_CONTA_SE_CALCULA_SO_NA_CONTA_PEDIDA = ''\nexport const MIGRATION_079_AS_PORTAS_DE_PORTE_NOVAS_NAO_NASCEM_ABERTAS = ''\nexport const MIGRATION_080_A_REMESSA_E_A_COMISSAO_A_PAGAR_TEM_ONDE_MORAR = ''\nexport const MIGRATION_081_A_REMESSA_E_A_COMISSAO_ATRAVESSAM = ''\nexport const MIGRATION_082_O_BENEFICIARIO_DA_COMISSAO_E_UMA_CONTA = ''\nexport const MIGRATION_083_A_CONTA_DO_BANCO_E_UMA_CONTA_E_A_FATURA_TEM_DOIS_DESTINOS = ''\nexport const MIGRATION_084_A_NOTA_DE_ENTRADA_TEM_UM_TITULO_A_PAGAR = ''\nexport const MIGRATION_085_O_RESUMO_LE_CINCO_MIL_LINHAS_E_NAO_DUZENTAS_E_OITENTA_MIL = ''\nexport const MIGRATION_086_A_CERCA_SE_PERGUNTA_UMA_VEZ_E_NAO_UMA_VEZ_POR_LINHA = ''\nexport const MIGRATION_087_O_SALDO_DE_UMA_FATURA_NAO_SOMA_O_RAZAO_INTEIRO = ''\nexport const MIGRATION_088_A_CONTA_SEM_PESSOA_E_DO_SISTEMA_NAO_DE_NINGUEM = ''\nexport const MIGRATION_089_O_FORNECEDOR_APONTA_PARA_O_PLANO_MIGRADO = ''\nexport const MIGRATION_090_O_DRE_RECORTA_ANTES_DE_SOMAR = ''\nexport const MIGRATION_091_A_RECORRENCIA_REPETE_OS_ITENS = ''\nexport const MIGRATION_092_A_CONTA_PAGA_NO_CARTAO_SAI_DO_CARTAO = ''\nexport const MIGRATION_093_O_PAGAMENTO_DIZ_QUAL_CONTA_ELE_QUITOU = ''\nexport const MIGRATION_094_O_TITULO_DA_NOTA_DE_ENTRADA_SABE_DE_QUEM_ELE_E = ''\nexport const MIGRATION_095_O_CAIXA_DO_V1_E_REGISTRO_NAO_REFERENCIA = ''\nexport const MIGRATION_096_O_CAIXA_DO_V1_JA_TEM_DONO_E_PODE_ENTRAR = ''\nexport const MIGRATION_097_O_CAIXA_CONTA_LINHA_POR_LINHA = ''\nexport const MIGRATION_098_A_CONTA_QUE_NINGUEM_PAGOU_AINDA_MUDA_DE_DATA_E_DE_PARCELAS = ''\nexport const MIGRATION_099_OS_ITENS_DE_UMA_CONTA_SEM_RECEBIMENTO_AINDA_SE_CORRIGEM = ''\nexport const MIGRATION_100_A_CONTA_BANCARIA_DIZ_DE_QUEM_ELA_E = ''\nexport const MIGRATION_101_O_CARTAO_SE_RECONHECE_PELOS_QUATRO_ULTIMOS = ''\nexport const MIGRATION_102_A_BANDEIRA_DO_CARTAO_E_DO_PAIS_NAO_DO_LOJISTA = ''\nexport const MIGRATION_103_O_RAIL_DA_FICHA_E_IGUAL_EM_TODO_CADASTRO = ''\nexport const MIGRATION_104_SERVICO_E_O_QUE_A_CASA_VENDE = ''\nexport const MIGRATION_105_A_OCORRENCIA_PROVISIONADA_VIRA_CONTA_QUANDO_ALGUEM_MANDA = ''\nexport const MIGRATION_106_A_RECORRENCIA_NOVA_TAMBEM_PROVISIONA = ''\nexport const MIGRATION_107_A_PREVISAO_COMECA_ONDE_A_REGUA_COMECA = ''\nexport const MIGRATION_108_MUDOU_A_REGUA_MUDA_A_PREVISAO = ''\nexport const MIGRATION_109_A_REGUA_GRAVA_CAMELCASE_E_O_SQL_LIA_SNAKE = ''\nexport const MIGRATION_110_TROCAR_DE_FORNECEDOR_ENQUANTO_NINGUEM_PAGOU = ''\nexport const MIGRATION_111_REPARCELAR_SEM_APAGAR_A_PARCELA = ''\nexport const MIGRATION_112_A_LINHA_DO_EXTRATO_NAO_E_UM_LANCAMENTO_AINDA = ''\nexport const MIGRATION_113_SO_A_CONTA_INTEGRADA_APARECE_NA_CONCILIACAO = ''\nexport const MIGRATION_114_A_PARCELA_DIZ_POR_QUAL_CONTA_ELA_FOI_PAGA = ''\nexport const MIGRATION_115_A_REMESSA_APONTA_PARA_A_CONTA_QUE_EXISTE = ''\nexport const MIGRATION_116_UM_ESTORNO_NAO_SE_ESTORNA = ''\nexport const MIGRATION_117_COPYING_LINES_IS_AN_INTERNAL_STEP = ''\nexport const MIGRATION_118_GIFT_CARD_FOUND_BY_EXACT_CODE = ''\nexport const MIGRATION_119_AN_UNPAID_LEGACY_BILL_CAN_BE_RESCHEDULED = ''\nexport const MIGRATION_120_CANCELAR_E_POR_ITEM_COM_MOTIVO_E_DESTINO = ''\nexport const MIGRATION_121_O_MOTIVO_E_DO_ESTABELECIMENTO = ''\nexport const MIGRATION_122_O_CANCELAMENTO_FECHA_AS_PORTAS_QUE_ABRIU = ''\nexport const MIGRATION_123_THE_MIRROR_DOES_NOT_BILL_A_RECURRENCE_TWICE = ''\nexport const MIGRATION_124_MONEY_KNOWS_ITS_CURRENCY = ''\nexport const MIGRATION_125_THE_SUMMARY_ADDS_ONE_CURRENCY_AT_A_TIME = ''\nexport const MIGRATION_126_A_BILL_LINE_CAN_ENTER_STOCK = ''\nexport const MIGRATION_127_A_BILL_LINE_ENTERS_STOCK_AS_IT_REALLY_ARRIVED = ''\nexport const MIGRATION_128_A_STOCK_RECEIPT_SHOWS_WHAT_WAS_PAID = ''\nexport const MIGRATION_129_A_BILL_CAN_BE_WRITTEN_IN_ANOTHER_CURRENCY = ''\nexport const MIGRATION_130_A_BILL_CAN_BE_TAGGED = ''\nexport const MIGRATION_131_THE_BILL_FOLLOWS_THE_PRICE_OF_THE_SALE = ''\nexport const MIGRATION_132_THE_STATEMENT_SOURCE_KNOWS_ITS_PROVIDER_ACCOUNT = ''\nexport const MIGRATION_133_REVERSING_A_PAYMENT_RELEASES_ITS_BANK_LINE = ''\nexport const MIGRATION_134_A_BILL_KNOWS_WHO_FILED_IT = ''\nexport const MIGRATION_135_A_BILL_AND_ITS_LINES_ARE_WRITTEN_TOGETHER = ''\nexport const MIGRATION_136_A_BANK_STATEMENT_ARRIVES_FROM_THE_SERVICE = ''\nexport const MIGRATIONS: Array<{ id: string; sql: string }> = []\n"]}
|
|
1
|
+
{"version":3,"sources":["../../node_modules/.cache/fayz-migration-stubs/main.ts"],"names":[],"mappings":"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","file":"main.browser.js","sourcesContent":["// GENERATED by scripts/tsup-migrations.mjs — the browser build of a\n// migrations barrel: the same names, no SQL. See that script for why.\nexport const MIGRATION_000_BASELINE = ''\nexport const MIGRATION_001_THE_COMANDA_BECOMES_A_RECEIVABLE_WHEN_IT_CLOSES = ''\nexport const MIGRATION_002_PAYMENT_TYPES_ARE_THE_COUNTRY_NOT_THE_TENANT = ''\nexport const MIGRATION_003_THE_COMMISSION_RULE_GETS_A_TABLE = ''\nexport const MIGRATION_004_ONE_BRIDGE_FOR_THREE_DOORS = ''\nexport const MIGRATION_005_THE_APPOINTMENT_CLOSES_LIKE_THE_COMANDA = ''\nexport const MIGRATION_006_THE_MONTH_CAN_BE_CLOSED_AND_THE_BOOK_CAN_BE_PROVEN = ''\nexport const MIGRATION_007_THE_INVOICE_KNOWS_WHO_ISSUED_IT_AND_WHAT_IT_OWES = ''\nexport const MIGRATION_008_THE_COMMISSION_RULE_LEARNS_TO_CHOOSE_AND_TO_SPLIT = ''\nexport const MIGRATION_009_THE_COMMISSION_IS_CALCULATED_LINE_BY_LINE = ''\nexport const MIGRATION_010_THE_INVOICE_RAISED_FROM_A_SALE_GETS_ITS_OWN_LINES = ''\nexport const MIGRATION_011_A_NEW_TENANT_CAN_TAKE_MONEY_ON_THE_FIRST_DAY = ''\nexport const MIGRATION_012_THE_COMMISSIONS_BECOME_ONE_BILL_PER_PERSON = ''\nexport const MIGRATION_013_A_DISCOUNT_HAS_A_REASON_AND_SOMEONE_WHO_ALLOWED_IT = ''\nexport const MIGRATION_014_THE_BILL_THAT_COMES_BACK_EVERY_MONTH = ''\nexport const MIGRATION_015_THE_SALE_KNOWS_WHAT_IT_COST = ''\nexport const MIGRATION_016_THE_OVERDUE_BILL_GETS_A_LETTER = ''\nexport const MIGRATION_017_THE_RECEIPT_IS_A_QUERY_NOT_A_LAYOUT = ''\nexport const MIGRATION_018_THE_CAIXA_SHOWS_WHAT_IT_SHOULD_HAVE = ''\nexport const MIGRATION_019_WHO_DID_IT_IS_ALREADY_KNOWN = ''\nexport const MIGRATION_020_A_RULE_WITH_NOBODY_TO_PAY_PAYS_THE_EXECUTOR = ''\nexport const MIGRATION_021_THE_MOST_SPECIFIC_RULE_WINS = ''\nexport const MIGRATION_022_AN_UNKNOWN_ATTRIBUTE_DOES_NOT_MATCH = ''\nexport const MIGRATION_023_REAPURAR_NAO_CRIA_UM_LOTE_ORFAO = ''\nexport const MIGRATION_024_O_BORDERO_PAGA_O_QUE_ELE_SOMA = ''\nexport const MIGRATION_025_A_META_DO_MES_TEM_TRES_DEGRAUS = ''\nexport const MIGRATION_026_QUEM_FECHA_O_CAIXA_NAO_E_QUEM_CONFERE = ''\nexport const MIGRATION_027_O_VALE_PRESENTE_NASCE_EM_LOTE_E_E_UM_PASSIVO = ''\nexport const MIGRATION_028_O_CARTAO_TEM_COR = ''\nexport const MIGRATION_029_THE_KIOSK_SALE_IS_A_SALE_TOO = ''\nexport const MIGRATION_030_THE_CENSUS_CAN_SEE_THE_KIOSK = ''\nexport const MIGRATION_031_THE_BANK_LINE_IS_EVIDENCE_NOT_A_SECOND_PAYMENT = ''\nexport const MIGRATION_032_CONTAS_A_PAGAR_GANHAM_ONDE_MORAR = ''\nexport const MIGRATION_033_O_VENCIMENTO_APONTA_PARA_O_TITULO = ''\nexport const MIGRATION_034_A_UNIDADE_TEM_CONTA_E_A_PESSOA_TEM_UMA_SO = ''\nexport const MIGRATION_035_A_CLASSIFICACAO_CONTABIL_CHEGA_INTEIRA = ''\nexport const MIGRATION_036_A_FUSAO_PARA_DE_DOBRAR_A_PROPRIA_MEMORIA = ''\nexport const MIGRATION_037_A_VENDA_DE_BALCAO_TEM_CONTA = ''\nexport const MIGRATION_038_A_LINHA_DA_FATURA_ALCANCA_QUEM_VEIO_PELO_PEDIDO = ''\nexport const MIGRATION_039_O_TITULO_DE_UMA_VENDA_CANCELADA_NASCE_CANCELADO = ''\nexport const MIGRATION_040_A_DRE_LE_A_LINHA_DA_VENDA = ''\nexport const MIGRATION_041_O_CAIXA_DO_V1_NAO_SEGURA_O_MOVIMENTO = ''\nexport const MIGRATION_042_O_CANCELADO_DO_V1_E_O_CANCELLED_DO_V2 = ''\nexport const MIGRATION_043_O_MOVIMENTO_SABE_DE_QUE_UNIDADE_ELE_E = ''\nexport const MIGRATION_044_A_DRE_NAO_PAGA_PEDAGIO_POR_ITEM = ''\nexport const MIGRATION_045_A_CONTA_SO_CLASSIFICA_SE_A_NATUREZA_CASA = ''\nexport const MIGRATION_046_O_DEMONSTRATIVO_MOSTRA_O_PLANO_INTEIRO = ''\nexport const MIGRATION_047_A_CONTA_RECONHECE_A_CONTRAPARTE_NA_SEGUNDA_OFERTA = ''\nexport const MIGRATION_048_A_PARCELA_E_A_CONTA_DO_V1_E_A_BAIXA_E_A_ALOCACAO = ''\nexport const MIGRATION_049_A_PARCELA_CARREGA_O_CANCELAMENTO = ''\nexport const MIGRATION_050_O_SALDO_DO_TITULO_SE_CALCULA_UMA_VEZ = ''\nexport const MIGRATION_051_O_SALDO_SE_CALCULA_SO_NA_LINHA_QUE_A_TELA_MOSTRA = ''\nexport const MIGRATION_052_A_LISTA_DE_CONTAS_FALA_VENCIMENTO = ''\nexport const MIGRATION_053_UM_TITULO_PARCELADO_VENCE_VARIAS_VEZES = ''\nexport const MIGRATION_054_AS_DATAS_EM_QUE_O_TITULO_VENCE = ''\nexport const MIGRATION_055_A_LISTA_DE_CONTAS_LISTA_PARCELAS = ''\nexport const MIGRATION_056_WHAT_THE_PORT_LEFT_OPEN = ''\nexport const MIGRATION_057_A_LINHA_DIZ_QUE_TEM_RECIBO = ''\nexport const MIGRATION_058_O_CLIPE_USA_O_INDICE = ''\nexport const MIGRATION_059_O_CLIPE_SAI_DA_VIEW = ''\nexport const MIGRATION_060_O_RECEBIVEL_VOLTA_DA_ARVORE_DERRUBADA = ''\nexport const MIGRATION_061_CONTAS_A_PAGAR_GANHAM_ONDE_MORAR = ''\nexport const MIGRATION_062_O_VENCIMENTO_APONTA_PARA_O_TITULO = ''\nexport const MIGRATION_063_A_UNIDADE_TEM_CONTA_E_A_PESSOA_TEM_UMA_SO = ''\nexport const MIGRATION_064_A_CLASSIFICACAO_CONTABIL_CHEGA_INTEIRA = ''\nexport const MIGRATION_065_A_FUSAO_PARA_DE_DOBRAR_A_PROPRIA_MEMORIA = ''\nexport const MIGRATION_066_A_VENDA_DE_BALCAO_TEM_CONTA = ''\nexport const MIGRATION_067_O_RECIBO_DA_CONTA_ATRAVESSA = ''\nexport const MIGRATION_068_A_UNIDADE_ENTRA_COM_A_LINHA_NAO_DEPOIS_DELA = ''\nexport const MIGRATION_069_O_TITULO_QUE_JA_EXISTE_ESTA_MIGRADO = ''\nexport const MIGRATION_070_A_PARCELA_NASCE_ANTES_DO_MOVIMENTO = ''\nexport const MIGRATION_071_A_PARCELA_TEM_UMA_ASSINATURA_SO = ''\nexport const MIGRATION_072_O_CAIXA_DO_V1_GUARDA_QUEM_O_ABRIU = ''\nexport const MIGRATION_073_O_CAIXA_PERTENCE_A_CONTA_QUE_O_V1_LHE_DEU = ''\nexport const MIGRATION_074_O_MOVIMENTO_VOLTA_A_APONTAR_PARA_O_CAIXA = ''\nexport const MIGRATION_075_A_VENDA_CANCELADA_CANCELA_O_TITULO_DELA = ''\nexport const MIGRATION_076_O_PLANO_DE_CONTAS_DO_CLIENTE_VENCE_O_DO_MODELO = ''\nexport const MIGRATION_077_O_RESUMO_FINANCEIRO_SE_SOMA_NO_BANCO = ''\nexport const MIGRATION_078_O_SALDO_DA_CONTA_SE_CALCULA_SO_NA_CONTA_PEDIDA = ''\nexport const MIGRATION_079_AS_PORTAS_DE_PORTE_NOVAS_NAO_NASCEM_ABERTAS = ''\nexport const MIGRATION_080_A_REMESSA_E_A_COMISSAO_A_PAGAR_TEM_ONDE_MORAR = ''\nexport const MIGRATION_081_A_REMESSA_E_A_COMISSAO_ATRAVESSAM = ''\nexport const MIGRATION_082_O_BENEFICIARIO_DA_COMISSAO_E_UMA_CONTA = ''\nexport const MIGRATION_083_A_CONTA_DO_BANCO_E_UMA_CONTA_E_A_FATURA_TEM_DOIS_DESTINOS = ''\nexport const MIGRATION_084_A_NOTA_DE_ENTRADA_TEM_UM_TITULO_A_PAGAR = ''\nexport const MIGRATION_085_O_RESUMO_LE_CINCO_MIL_LINHAS_E_NAO_DUZENTAS_E_OITENTA_MIL = ''\nexport const MIGRATION_086_A_CERCA_SE_PERGUNTA_UMA_VEZ_E_NAO_UMA_VEZ_POR_LINHA = ''\nexport const MIGRATION_087_O_SALDO_DE_UMA_FATURA_NAO_SOMA_O_RAZAO_INTEIRO = ''\nexport const MIGRATION_088_A_CONTA_SEM_PESSOA_E_DO_SISTEMA_NAO_DE_NINGUEM = ''\nexport const MIGRATION_089_O_FORNECEDOR_APONTA_PARA_O_PLANO_MIGRADO = ''\nexport const MIGRATION_090_O_DRE_RECORTA_ANTES_DE_SOMAR = ''\nexport const MIGRATION_091_A_RECORRENCIA_REPETE_OS_ITENS = ''\nexport const MIGRATION_092_A_CONTA_PAGA_NO_CARTAO_SAI_DO_CARTAO = ''\nexport const MIGRATION_093_O_PAGAMENTO_DIZ_QUAL_CONTA_ELE_QUITOU = ''\nexport const MIGRATION_094_O_TITULO_DA_NOTA_DE_ENTRADA_SABE_DE_QUEM_ELE_E = ''\nexport const MIGRATION_095_O_CAIXA_DO_V1_E_REGISTRO_NAO_REFERENCIA = ''\nexport const MIGRATION_096_O_CAIXA_DO_V1_JA_TEM_DONO_E_PODE_ENTRAR = ''\nexport const MIGRATION_097_O_CAIXA_CONTA_LINHA_POR_LINHA = ''\nexport const MIGRATION_098_A_CONTA_QUE_NINGUEM_PAGOU_AINDA_MUDA_DE_DATA_E_DE_PARCELAS = ''\nexport const MIGRATION_099_OS_ITENS_DE_UMA_CONTA_SEM_RECEBIMENTO_AINDA_SE_CORRIGEM = ''\nexport const MIGRATION_100_A_CONTA_BANCARIA_DIZ_DE_QUEM_ELA_E = ''\nexport const MIGRATION_101_O_CARTAO_SE_RECONHECE_PELOS_QUATRO_ULTIMOS = ''\nexport const MIGRATION_102_A_BANDEIRA_DO_CARTAO_E_DO_PAIS_NAO_DO_LOJISTA = ''\nexport const MIGRATION_103_O_RAIL_DA_FICHA_E_IGUAL_EM_TODO_CADASTRO = ''\nexport const MIGRATION_104_SERVICO_E_O_QUE_A_CASA_VENDE = ''\nexport const MIGRATION_105_A_OCORRENCIA_PROVISIONADA_VIRA_CONTA_QUANDO_ALGUEM_MANDA = ''\nexport const MIGRATION_106_A_RECORRENCIA_NOVA_TAMBEM_PROVISIONA = ''\nexport const MIGRATION_107_A_PREVISAO_COMECA_ONDE_A_REGUA_COMECA = ''\nexport const MIGRATION_108_MUDOU_A_REGUA_MUDA_A_PREVISAO = ''\nexport const MIGRATION_109_A_REGUA_GRAVA_CAMELCASE_E_O_SQL_LIA_SNAKE = ''\nexport const MIGRATION_110_TROCAR_DE_FORNECEDOR_ENQUANTO_NINGUEM_PAGOU = ''\nexport const MIGRATION_111_REPARCELAR_SEM_APAGAR_A_PARCELA = ''\nexport const MIGRATION_112_A_LINHA_DO_EXTRATO_NAO_E_UM_LANCAMENTO_AINDA = ''\nexport const MIGRATION_113_SO_A_CONTA_INTEGRADA_APARECE_NA_CONCILIACAO = ''\nexport const MIGRATION_114_A_PARCELA_DIZ_POR_QUAL_CONTA_ELA_FOI_PAGA = ''\nexport const MIGRATION_115_A_REMESSA_APONTA_PARA_A_CONTA_QUE_EXISTE = ''\nexport const MIGRATION_116_UM_ESTORNO_NAO_SE_ESTORNA = ''\nexport const MIGRATION_117_COPYING_LINES_IS_AN_INTERNAL_STEP = ''\nexport const MIGRATION_118_GIFT_CARD_FOUND_BY_EXACT_CODE = ''\nexport const MIGRATION_119_AN_UNPAID_LEGACY_BILL_CAN_BE_RESCHEDULED = ''\nexport const MIGRATION_120_CANCELAR_E_POR_ITEM_COM_MOTIVO_E_DESTINO = ''\nexport const MIGRATION_121_O_MOTIVO_E_DO_ESTABELECIMENTO = ''\nexport const MIGRATION_122_O_CANCELAMENTO_FECHA_AS_PORTAS_QUE_ABRIU = ''\nexport const MIGRATION_123_THE_MIRROR_DOES_NOT_BILL_A_RECURRENCE_TWICE = ''\nexport const MIGRATION_124_MONEY_KNOWS_ITS_CURRENCY = ''\nexport const MIGRATION_125_THE_SUMMARY_ADDS_ONE_CURRENCY_AT_A_TIME = ''\nexport const MIGRATION_126_A_BILL_LINE_CAN_ENTER_STOCK = ''\nexport const MIGRATION_127_A_BILL_LINE_ENTERS_STOCK_AS_IT_REALLY_ARRIVED = ''\nexport const MIGRATION_128_A_STOCK_RECEIPT_SHOWS_WHAT_WAS_PAID = ''\nexport const MIGRATION_129_A_BILL_CAN_BE_WRITTEN_IN_ANOTHER_CURRENCY = ''\nexport const MIGRATION_130_A_BILL_CAN_BE_TAGGED = ''\nexport const MIGRATION_131_THE_BILL_FOLLOWS_THE_PRICE_OF_THE_SALE = ''\nexport const MIGRATION_132_THE_STATEMENT_SOURCE_KNOWS_ITS_PROVIDER_ACCOUNT = ''\nexport const MIGRATION_133_REVERSING_A_PAYMENT_RELEASES_ITS_BANK_LINE = ''\nexport const MIGRATION_134_A_BILL_KNOWS_WHO_FILED_IT = ''\nexport const MIGRATION_135_A_BILL_AND_ITS_LINES_ARE_WRITTEN_TOGETHER = ''\nexport const MIGRATION_136_A_BANK_STATEMENT_ARRIVES_FROM_THE_SERVICE = ''\nexport const MIGRATION_137_A_BILL_LINE_IS_ABATED_FOR_WHAT_NEVER_ARRIVED = ''\nexport const MIGRATIONS: Array<{ id: string; sql: string }> = []\n"]}
|
package/dist/migrations/main.js
CHANGED
|
@@ -26085,6 +26085,289 @@ BEGIN
|
|
|
26085
26085
|
END
|
|
26086
26086
|
$$;
|
|
26087
26087
|
`;
|
|
26088
|
+
var MIGRATION_137_A_BILL_LINE_IS_ABATED_FOR_WHAT_NEVER_ARRIVED = `-- ============================================================================
|
|
26089
|
+
-- 137 \u2014 a bill line is abated for what never arrived
|
|
26090
|
+
--
|
|
26091
|
+
-- V1 contract: beautyplace #1031 ("Nota de compra, fase 3"), migration
|
|
26092
|
+
-- 20261020160000 \`abate_purchase_item\`. Whoever receives the goods records,
|
|
26093
|
+
-- per line of the supplier's note, what did NOT arrive; stock takes only what
|
|
26094
|
+
-- did. The payable is still born at the note's full value \u2014 the supplier
|
|
26095
|
+
-- billed it, and the finance person decides how the difference comes off and
|
|
26096
|
+
-- across which instalments (V1 decision, 28/09/2026).
|
|
26097
|
+
--
|
|
26098
|
+
-- V2 could only cancel a WHOLE line (\`financial_cancel_invoice_items\`), always
|
|
26099
|
+
-- cutting from the last instalment back. This is the partial gesture:
|
|
26100
|
+
--
|
|
26101
|
+
-- * the line is reduced by the amount (its quantity follows the unit price),
|
|
26102
|
+
-- or cancelled when the amount is the whole line;
|
|
26103
|
+
-- * the invoice total drops by the same amount;
|
|
26104
|
+
-- * the amount comes off the OPEN part of the instalments, in the order the
|
|
26105
|
+
-- person chose \u2014 'next' (earliest due first), 'last' (last instalment
|
|
26106
|
+
-- back) or 'proportional' (by each instalment's open balance, the last one
|
|
26107
|
+
-- with a balance taking the rounding);
|
|
26108
|
+
-- * what is already paid is never touched: when the open balance does not
|
|
26109
|
+
-- cover the amount the call is refused (HINT ABATE_EXCEEDS_OPEN) and the
|
|
26110
|
+
-- person uses "Cancel line", where the paid part becomes supplier credit.
|
|
26111
|
+
--
|
|
26112
|
+
-- How much is still to abate is DERIVED by the caller (line total \u2212 value
|
|
26113
|
+
-- received), so there is no second state that can drift from the bill. Each
|
|
26114
|
+
-- abatement is recorded in plg_financial_abatements, which also makes a
|
|
26115
|
+
-- repeated call with the same idempotency key a replay instead of a second cut.
|
|
26116
|
+
--
|
|
26117
|
+
-- Idempotent.
|
|
26118
|
+
-- ============================================================================
|
|
26119
|
+
|
|
26120
|
+
CREATE TABLE IF NOT EXISTS public.plg_financial_abatements (
|
|
26121
|
+
id uuid PRIMARY KEY DEFAULT gen_random_uuid(),
|
|
26122
|
+
tenant_id uuid NOT NULL REFERENCES public.tenants(id) ON DELETE CASCADE,
|
|
26123
|
+
unit_id uuid,
|
|
26124
|
+
invoice_id uuid NOT NULL REFERENCES public.plg_financial_invoices(id) ON DELETE CASCADE,
|
|
26125
|
+
item_id uuid NOT NULL,
|
|
26126
|
+
amount numeric(14,2) NOT NULL CHECK (amount > 0),
|
|
26127
|
+
distribution text NOT NULL CHECK (distribution IN ('next', 'last', 'proportional')),
|
|
26128
|
+
item_cancelled boolean NOT NULL DEFAULT false,
|
|
26129
|
+
note text,
|
|
26130
|
+
-- [{installment_id, number, before, abated}]
|
|
26131
|
+
installments jsonb NOT NULL DEFAULT '[]'::jsonb,
|
|
26132
|
+
idempotency_key text,
|
|
26133
|
+
created_by uuid,
|
|
26134
|
+
created_at timestamptz NOT NULL DEFAULT now(),
|
|
26135
|
+
updated_at timestamptz NOT NULL DEFAULT now()
|
|
26136
|
+
);
|
|
26137
|
+
CREATE INDEX IF NOT EXISTS plg_financial_abatements_invoice_idx
|
|
26138
|
+
ON public.plg_financial_abatements (invoice_id);
|
|
26139
|
+
CREATE INDEX IF NOT EXISTS plg_financial_abatements_item_idx
|
|
26140
|
+
ON public.plg_financial_abatements (item_id);
|
|
26141
|
+
CREATE UNIQUE INDEX IF NOT EXISTS plg_financial_abatements_key_uq
|
|
26142
|
+
ON public.plg_financial_abatements (tenant_id, idempotency_key) WHERE idempotency_key IS NOT NULL;
|
|
26143
|
+
|
|
26144
|
+
DO $$
|
|
26145
|
+
BEGIN
|
|
26146
|
+
ALTER TABLE public.plg_financial_abatements
|
|
26147
|
+
ADD CONSTRAINT plg_financial_abatements_unit_fkey
|
|
26148
|
+
FOREIGN KEY (tenant_id, unit_id) REFERENCES app.units(tenant_id, id) ON DELETE SET NULL;
|
|
26149
|
+
EXCEPTION WHEN duplicate_object THEN NULL;
|
|
26150
|
+
END $$;
|
|
26151
|
+
|
|
26152
|
+
DO $$
|
|
26153
|
+
BEGIN
|
|
26154
|
+
CREATE TRIGGER plg_financial_abatements_updated_at
|
|
26155
|
+
BEFORE UPDATE ON public.plg_financial_abatements
|
|
26156
|
+
FOR EACH ROW EXECUTE FUNCTION public.handle_updated_at();
|
|
26157
|
+
EXCEPTION WHEN duplicate_object THEN NULL;
|
|
26158
|
+
END $$;
|
|
26159
|
+
|
|
26160
|
+
SELECT app.scaffold_table('public.plg_financial_abatements'::regclass,
|
|
26161
|
+
'financial.invoice', 'financial', false, 'enforce');
|
|
26162
|
+
SELECT app.scaffold_scope('public.plg_financial_abatements'::regclass, 'unit_optional', true);
|
|
26163
|
+
|
|
26164
|
+
CREATE OR REPLACE FUNCTION public.financial_abate_invoice_item(
|
|
26165
|
+
p_item_id uuid,
|
|
26166
|
+
p_amount numeric,
|
|
26167
|
+
p_distribution text,
|
|
26168
|
+
p_note text DEFAULT NULL,
|
|
26169
|
+
p_idempotency_key text DEFAULT NULL
|
|
26170
|
+
) RETURNS jsonb
|
|
26171
|
+
LANGUAGE plpgsql SECURITY DEFINER SET search_path TO '' AS $$
|
|
26172
|
+
DECLARE
|
|
26173
|
+
v_tenant uuid := public.plg_financial_require_tenant();
|
|
26174
|
+
v_key text := nullif(btrim(coalesce(p_idempotency_key, '')), '');
|
|
26175
|
+
v_note text := nullif(btrim(coalesce(p_note, '')), '');
|
|
26176
|
+
v_amount numeric := round(coalesce(p_amount, 0), 2);
|
|
26177
|
+
v_item public.items%ROWTYPE;
|
|
26178
|
+
v_inv public.plg_financial_invoices%ROWTYPE;
|
|
26179
|
+
v_log uuid;
|
|
26180
|
+
v_full boolean;
|
|
26181
|
+
v_new_total numeric;
|
|
26182
|
+
v_new_qty numeric;
|
|
26183
|
+
v_free numeric := 0;
|
|
26184
|
+
v_left numeric;
|
|
26185
|
+
v_open_n integer := 0;
|
|
26186
|
+
v_i integer := 0;
|
|
26187
|
+
v_cut numeric;
|
|
26188
|
+
v_inst record;
|
|
26189
|
+
v_insts jsonb := '[]'::jsonb;
|
|
26190
|
+
BEGIN
|
|
26191
|
+
PERFORM public.plg_financial_claim_idempotency(v_tenant, v_key);
|
|
26192
|
+
IF v_key IS NOT NULL THEN
|
|
26193
|
+
SELECT a.id INTO v_log FROM public.plg_financial_abatements a
|
|
26194
|
+
WHERE a.tenant_id = v_tenant AND a.idempotency_key = v_key;
|
|
26195
|
+
IF v_log IS NOT NULL THEN
|
|
26196
|
+
RETURN (SELECT jsonb_build_object('abatement_id', a.id, 'item_id', a.item_id, 'invoice_id', a.invoice_id,
|
|
26197
|
+
'amount', a.amount, 'item_cancelled', a.item_cancelled,
|
|
26198
|
+
'distribution', a.distribution, 'installments', a.installments,
|
|
26199
|
+
'replayed', true)
|
|
26200
|
+
FROM public.plg_financial_abatements a WHERE a.id = v_log);
|
|
26201
|
+
END IF;
|
|
26202
|
+
END IF;
|
|
26203
|
+
|
|
26204
|
+
IF p_distribution IS NULL OR p_distribution NOT IN ('next', 'last', 'proportional') THEN
|
|
26205
|
+
RAISE EXCEPTION 'financial_abate_invoice_item: distribution must be next, last or proportional'
|
|
26206
|
+
USING ERRCODE = '22023', HINT = 'ABATE_BAD_DISTRIBUTION';
|
|
26207
|
+
END IF;
|
|
26208
|
+
IF v_amount <= 0 THEN
|
|
26209
|
+
RAISE EXCEPTION 'financial_abate_invoice_item: the amount must be greater than zero'
|
|
26210
|
+
USING ERRCODE = '22023', HINT = 'ABATE_NO_AMOUNT';
|
|
26211
|
+
END IF;
|
|
26212
|
+
|
|
26213
|
+
SELECT * INTO v_item FROM public.items WHERE id = p_item_id AND tenant_id = v_tenant FOR UPDATE;
|
|
26214
|
+
IF NOT FOUND OR v_item.invoice_id IS NULL THEN
|
|
26215
|
+
RAISE EXCEPTION 'financial_abate_invoice_item: line % not found', p_item_id USING ERRCODE = 'P0002';
|
|
26216
|
+
END IF;
|
|
26217
|
+
SELECT * INTO v_inv FROM public.plg_financial_invoices
|
|
26218
|
+
WHERE id = v_item.invoice_id AND tenant_id = v_tenant FOR UPDATE;
|
|
26219
|
+
IF NOT FOUND THEN
|
|
26220
|
+
RAISE EXCEPTION 'financial_abate_invoice_item: invoice of line % not found', p_item_id USING ERRCODE = 'P0002';
|
|
26221
|
+
END IF;
|
|
26222
|
+
PERFORM public.plg_financial_require_permission('financial.edit', v_inv.unit_id);
|
|
26223
|
+
IF v_inv.direction <> 'payable' THEN
|
|
26224
|
+
RAISE EXCEPTION 'financial_abate_invoice_item: only a payable line is abated'
|
|
26225
|
+
USING ERRCODE = '55000', HINT = 'ABATE_NOT_PAYABLE';
|
|
26226
|
+
END IF;
|
|
26227
|
+
IF v_inv.cancelled_at IS NOT NULL THEN
|
|
26228
|
+
RAISE EXCEPTION 'financial_abate_invoice_item: invoice % is cancelled', v_inv.number
|
|
26229
|
+
USING ERRCODE = '55000', HINT = 'ABATE_INVOICE_CANCELLED';
|
|
26230
|
+
END IF;
|
|
26231
|
+
IF v_item.cancelled_at IS NOT NULL THEN
|
|
26232
|
+
RAISE EXCEPTION 'financial_abate_invoice_item: line % is cancelled', p_item_id
|
|
26233
|
+
USING ERRCODE = '55000', HINT = 'ABATE_LINE_CANCELLED';
|
|
26234
|
+
END IF;
|
|
26235
|
+
IF v_amount > round(coalesce(v_item.total, 0), 2) + 0.004 THEN
|
|
26236
|
+
RAISE EXCEPTION 'financial_abate_invoice_item: % is more than the line (%)', v_amount, v_item.total
|
|
26237
|
+
USING ERRCODE = '22023', HINT = 'ABATE_EXCEEDS_LINE';
|
|
26238
|
+
END IF;
|
|
26239
|
+
|
|
26240
|
+
-- Only the open part (amount \u2212 paid) of the live instalments can be abated.
|
|
26241
|
+
SELECT coalesce(sum(greatest(round(i.amount - public.plg_financial_installment_paid(i.id), 2), 0)), 0),
|
|
26242
|
+
count(*) FILTER (WHERE i.amount - public.plg_financial_installment_paid(i.id) > 0.004)
|
|
26243
|
+
INTO v_free, v_open_n
|
|
26244
|
+
FROM public.plg_financial_invoice_installments i
|
|
26245
|
+
WHERE i.invoice_id = v_inv.id AND i.cancelled_at IS NULL;
|
|
26246
|
+
IF v_amount > v_free + 0.004 THEN
|
|
26247
|
+
RAISE EXCEPTION 'financial_abate_invoice_item: % is more than the open balance of the instalments (%)', v_amount, v_free
|
|
26248
|
+
USING ERRCODE = '55000', HINT = 'ABATE_EXCEEDS_OPEN',
|
|
26249
|
+
DETAIL = 'What was already paid is not abated: cancel the line instead, and the paid part becomes credit.';
|
|
26250
|
+
END IF;
|
|
26251
|
+
|
|
26252
|
+
PERFORM set_config('financial.amend', 'on', true);
|
|
26253
|
+
|
|
26254
|
+
-- 1) the line: reduced (the quantity follows the unit price) or cancelled.
|
|
26255
|
+
v_full := v_amount >= round(coalesce(v_item.total, 0), 2) - 0.004;
|
|
26256
|
+
IF v_full THEN
|
|
26257
|
+
UPDATE public.items
|
|
26258
|
+
SET cancelled_at = now(),
|
|
26259
|
+
cancel_reason = 'Abatimento: mercadoria n\xE3o recebida' || coalesce(' \u2014 ' || v_note, ''),
|
|
26260
|
+
updated_at = now()
|
|
26261
|
+
WHERE id = v_item.id;
|
|
26262
|
+
ELSE
|
|
26263
|
+
v_new_total := round(v_item.total - v_amount, 2);
|
|
26264
|
+
v_new_qty := CASE
|
|
26265
|
+
WHEN coalesce(v_item.unit_price, 0) > 0 AND coalesce(v_item.discount, 0) = 0
|
|
26266
|
+
THEN round(v_new_total / v_item.unit_price, 4)
|
|
26267
|
+
WHEN coalesce(v_item.total, 0) > 0
|
|
26268
|
+
THEN round(v_item.quantity * v_new_total / v_item.total, 4)
|
|
26269
|
+
ELSE v_item.quantity
|
|
26270
|
+
END;
|
|
26271
|
+
UPDATE public.items SET total = v_new_total, quantity = v_new_qty, updated_at = now() WHERE id = v_item.id;
|
|
26272
|
+
END IF;
|
|
26273
|
+
|
|
26274
|
+
-- 2) the invoice total.
|
|
26275
|
+
UPDATE public.plg_financial_invoices
|
|
26276
|
+
SET total = greatest(round(total - v_amount, 2), 0),
|
|
26277
|
+
metadata = metadata || jsonb_build_object('v2_decision', jsonb_build_object('amended', true, 'at', now()))
|
|
26278
|
+
WHERE id = v_inv.id;
|
|
26279
|
+
|
|
26280
|
+
-- 3) the open part of the instalments, in the chosen order.
|
|
26281
|
+
v_left := v_amount;
|
|
26282
|
+
FOR v_inst IN
|
|
26283
|
+
SELECT i.id, i.number, i.amount, i.due_date,
|
|
26284
|
+
greatest(round(i.amount - public.plg_financial_installment_paid(i.id), 2), 0) AS free,
|
|
26285
|
+
public.plg_financial_installment_paid(i.id) AS paid
|
|
26286
|
+
FROM public.plg_financial_invoice_installments i
|
|
26287
|
+
WHERE i.invoice_id = v_inv.id AND i.cancelled_at IS NULL
|
|
26288
|
+
ORDER BY
|
|
26289
|
+
CASE WHEN p_distribution = 'last' THEN i.number END DESC NULLS LAST,
|
|
26290
|
+
CASE WHEN p_distribution = 'last' THEN i.due_date END DESC NULLS LAST,
|
|
26291
|
+
CASE WHEN p_distribution <> 'last' THEN i.due_date END ASC NULLS LAST,
|
|
26292
|
+
CASE WHEN p_distribution <> 'last' THEN i.number END ASC NULLS LAST,
|
|
26293
|
+
i.id
|
|
26294
|
+
LOOP
|
|
26295
|
+
EXIT WHEN v_left <= 0.004;
|
|
26296
|
+
CONTINUE WHEN v_inst.free <= 0.004;
|
|
26297
|
+
v_i := v_i + 1;
|
|
26298
|
+
IF p_distribution = 'proportional' AND v_i < v_open_n THEN
|
|
26299
|
+
v_cut := least(v_inst.free, v_left, round(v_amount * v_inst.free / v_free, 2));
|
|
26300
|
+
ELSE
|
|
26301
|
+
v_cut := least(v_inst.free, v_left);
|
|
26302
|
+
END IF;
|
|
26303
|
+
v_cut := round(v_cut, 2);
|
|
26304
|
+
CONTINUE WHEN v_cut <= 0.004;
|
|
26305
|
+
UPDATE public.plg_financial_invoice_installments
|
|
26306
|
+
SET amount = round(amount - v_cut, 2),
|
|
26307
|
+
cancelled_at = CASE WHEN round(amount - v_cut, 2) <= 0 AND v_inst.paid = 0 THEN now() END,
|
|
26308
|
+
metadata = metadata || jsonb_build_object('v2_decision', jsonb_build_object('amended', true))
|
|
26309
|
+
WHERE id = v_inst.id;
|
|
26310
|
+
v_insts := v_insts || jsonb_build_object('installment_id', v_inst.id, 'number', v_inst.number,
|
|
26311
|
+
'before', v_inst.amount, 'abated', v_cut);
|
|
26312
|
+
v_left := round(v_left - v_cut, 2);
|
|
26313
|
+
END LOOP;
|
|
26314
|
+
|
|
26315
|
+
-- 'proportional' can leave cents when an instalment hits its open ceiling:
|
|
26316
|
+
-- they go to the instalments that still have a balance, earliest first.
|
|
26317
|
+
IF v_left > 0.004 THEN
|
|
26318
|
+
FOR v_inst IN
|
|
26319
|
+
SELECT i.id, i.number, i.amount,
|
|
26320
|
+
greatest(round(i.amount - public.plg_financial_installment_paid(i.id), 2), 0) AS free,
|
|
26321
|
+
public.plg_financial_installment_paid(i.id) AS paid
|
|
26322
|
+
FROM public.plg_financial_invoice_installments i
|
|
26323
|
+
WHERE i.invoice_id = v_inv.id AND i.cancelled_at IS NULL
|
|
26324
|
+
ORDER BY i.due_date NULLS LAST, i.number, i.id
|
|
26325
|
+
LOOP
|
|
26326
|
+
EXIT WHEN v_left <= 0.004;
|
|
26327
|
+
CONTINUE WHEN v_inst.free <= 0.004;
|
|
26328
|
+
v_cut := round(least(v_inst.free, v_left), 2);
|
|
26329
|
+
UPDATE public.plg_financial_invoice_installments
|
|
26330
|
+
SET amount = round(amount - v_cut, 2),
|
|
26331
|
+
cancelled_at = CASE WHEN round(amount - v_cut, 2) <= 0 AND v_inst.paid = 0 THEN now() END,
|
|
26332
|
+
metadata = metadata || jsonb_build_object('v2_decision', jsonb_build_object('amended', true))
|
|
26333
|
+
WHERE id = v_inst.id;
|
|
26334
|
+
v_insts := v_insts || jsonb_build_object('installment_id', v_inst.id, 'number', v_inst.number,
|
|
26335
|
+
'before', v_inst.amount, 'abated', v_cut);
|
|
26336
|
+
v_left := round(v_left - v_cut, 2);
|
|
26337
|
+
END LOOP;
|
|
26338
|
+
END IF;
|
|
26339
|
+
|
|
26340
|
+
IF v_left > 0.004 THEN
|
|
26341
|
+
-- Cannot happen (checked above); abort rather than leave bill and instalments apart.
|
|
26342
|
+
RAISE EXCEPTION 'financial_abate_invoice_item: % could not be placed on the open instalments', v_left
|
|
26343
|
+
USING ERRCODE = 'P0001';
|
|
26344
|
+
END IF;
|
|
26345
|
+
|
|
26346
|
+
PERFORM public.plg_financial_sync_mirror(i.id)
|
|
26347
|
+
FROM public.plg_financial_invoice_installments i WHERE i.invoice_id = v_inv.id;
|
|
26348
|
+
|
|
26349
|
+
INSERT INTO public.plg_financial_abatements
|
|
26350
|
+
(tenant_id, unit_id, invoice_id, item_id, amount, distribution, item_cancelled, note, installments,
|
|
26351
|
+
idempotency_key, created_by)
|
|
26352
|
+
VALUES (v_tenant, v_inv.unit_id, v_inv.id, v_item.id, v_amount, p_distribution, v_full, v_note, v_insts,
|
|
26353
|
+
v_key, auth.uid())
|
|
26354
|
+
RETURNING id INTO v_log;
|
|
26355
|
+
|
|
26356
|
+
PERFORM public.plg_financial_audit(v_tenant, 'financial.invoice.item.abate', 'items', v_item.id::text,
|
|
26357
|
+
jsonb_build_object('invoice_id', v_inv.id, 'invoice_number', v_inv.number, 'amount', v_amount,
|
|
26358
|
+
'distribution', p_distribution, 'item_cancelled', v_full, 'note', v_note,
|
|
26359
|
+
'installments', v_insts, 'abatement_id', v_log));
|
|
26360
|
+
|
|
26361
|
+
RETURN jsonb_build_object('abatement_id', v_log, 'item_id', v_item.id, 'invoice_id', v_inv.id,
|
|
26362
|
+
'amount', v_amount, 'item_cancelled', v_full, 'distribution', p_distribution,
|
|
26363
|
+
'installments', v_insts, 'replayed', false);
|
|
26364
|
+
END $$;
|
|
26365
|
+
REVOKE ALL ON FUNCTION public.financial_abate_invoice_item(uuid, numeric, text, text, text) FROM PUBLIC, anon;
|
|
26366
|
+
GRANT EXECUTE ON FUNCTION public.financial_abate_invoice_item(uuid, numeric, text, text, text) TO authenticated, service_role;
|
|
26367
|
+
|
|
26368
|
+
COMMENT ON FUNCTION public.financial_abate_invoice_item(uuid, numeric, text, text, text) IS
|
|
26369
|
+
'Abates part of a payable line (goods that never arrived): reduces the line, or cancels it when the amount is the whole line, and takes the amount off the open instalments in the chosen order (next | last | proportional). Never touches what is paid.';
|
|
26370
|
+
`;
|
|
26088
26371
|
var MIGRATIONS = [
|
|
26089
26372
|
{ id: "000_baseline", sql: MIGRATION_000_BASELINE },
|
|
26090
26373
|
{ id: "001_the_comanda_becomes_a_receivable_when_it_closes", sql: MIGRATION_001_THE_COMANDA_BECOMES_A_RECEIVABLE_WHEN_IT_CLOSES },
|
|
@@ -26222,9 +26505,10 @@ var MIGRATIONS = [
|
|
|
26222
26505
|
{ id: "133_reversing_a_payment_releases_its_bank_line", sql: MIGRATION_133_REVERSING_A_PAYMENT_RELEASES_ITS_BANK_LINE },
|
|
26223
26506
|
{ id: "134_a_bill_knows_who_filed_it", sql: MIGRATION_134_A_BILL_KNOWS_WHO_FILED_IT },
|
|
26224
26507
|
{ id: "135_a_bill_and_its_lines_are_written_together", sql: MIGRATION_135_A_BILL_AND_ITS_LINES_ARE_WRITTEN_TOGETHER },
|
|
26225
|
-
{ id: "136_a_bank_statement_arrives_from_the_service", sql: MIGRATION_136_A_BANK_STATEMENT_ARRIVES_FROM_THE_SERVICE }
|
|
26508
|
+
{ id: "136_a_bank_statement_arrives_from_the_service", sql: MIGRATION_136_A_BANK_STATEMENT_ARRIVES_FROM_THE_SERVICE },
|
|
26509
|
+
{ id: "137_a_bill_line_is_abated_for_what_never_arrived", sql: MIGRATION_137_A_BILL_LINE_IS_ABATED_FOR_WHAT_NEVER_ARRIVED }
|
|
26226
26510
|
];
|
|
26227
26511
|
|
|
26228
|
-
export { MIGRATIONS, MIGRATION_000_BASELINE, MIGRATION_001_THE_COMANDA_BECOMES_A_RECEIVABLE_WHEN_IT_CLOSES, MIGRATION_002_PAYMENT_TYPES_ARE_THE_COUNTRY_NOT_THE_TENANT, MIGRATION_003_THE_COMMISSION_RULE_GETS_A_TABLE, MIGRATION_004_ONE_BRIDGE_FOR_THREE_DOORS, MIGRATION_005_THE_APPOINTMENT_CLOSES_LIKE_THE_COMANDA, MIGRATION_006_THE_MONTH_CAN_BE_CLOSED_AND_THE_BOOK_CAN_BE_PROVEN, MIGRATION_007_THE_INVOICE_KNOWS_WHO_ISSUED_IT_AND_WHAT_IT_OWES, MIGRATION_008_THE_COMMISSION_RULE_LEARNS_TO_CHOOSE_AND_TO_SPLIT, MIGRATION_009_THE_COMMISSION_IS_CALCULATED_LINE_BY_LINE, MIGRATION_010_THE_INVOICE_RAISED_FROM_A_SALE_GETS_ITS_OWN_LINES, MIGRATION_011_A_NEW_TENANT_CAN_TAKE_MONEY_ON_THE_FIRST_DAY, MIGRATION_012_THE_COMMISSIONS_BECOME_ONE_BILL_PER_PERSON, MIGRATION_013_A_DISCOUNT_HAS_A_REASON_AND_SOMEONE_WHO_ALLOWED_IT, MIGRATION_014_THE_BILL_THAT_COMES_BACK_EVERY_MONTH, MIGRATION_015_THE_SALE_KNOWS_WHAT_IT_COST, MIGRATION_016_THE_OVERDUE_BILL_GETS_A_LETTER, MIGRATION_017_THE_RECEIPT_IS_A_QUERY_NOT_A_LAYOUT, MIGRATION_018_THE_CAIXA_SHOWS_WHAT_IT_SHOULD_HAVE, MIGRATION_019_WHO_DID_IT_IS_ALREADY_KNOWN, MIGRATION_020_A_RULE_WITH_NOBODY_TO_PAY_PAYS_THE_EXECUTOR, MIGRATION_021_THE_MOST_SPECIFIC_RULE_WINS, MIGRATION_022_AN_UNKNOWN_ATTRIBUTE_DOES_NOT_MATCH, MIGRATION_023_REAPURAR_NAO_CRIA_UM_LOTE_ORFAO, MIGRATION_024_O_BORDERO_PAGA_O_QUE_ELE_SOMA, MIGRATION_025_A_META_DO_MES_TEM_TRES_DEGRAUS, MIGRATION_026_QUEM_FECHA_O_CAIXA_NAO_E_QUEM_CONFERE, MIGRATION_027_O_VALE_PRESENTE_NASCE_EM_LOTE_E_E_UM_PASSIVO, MIGRATION_028_O_CARTAO_TEM_COR, MIGRATION_029_THE_KIOSK_SALE_IS_A_SALE_TOO, MIGRATION_030_THE_CENSUS_CAN_SEE_THE_KIOSK, MIGRATION_031_THE_BANK_LINE_IS_EVIDENCE_NOT_A_SECOND_PAYMENT, MIGRATION_032_CONTAS_A_PAGAR_GANHAM_ONDE_MORAR, MIGRATION_033_O_VENCIMENTO_APONTA_PARA_O_TITULO, MIGRATION_034_A_UNIDADE_TEM_CONTA_E_A_PESSOA_TEM_UMA_SO, MIGRATION_035_A_CLASSIFICACAO_CONTABIL_CHEGA_INTEIRA, MIGRATION_036_A_FUSAO_PARA_DE_DOBRAR_A_PROPRIA_MEMORIA, MIGRATION_037_A_VENDA_DE_BALCAO_TEM_CONTA, MIGRATION_038_A_LINHA_DA_FATURA_ALCANCA_QUEM_VEIO_PELO_PEDIDO, MIGRATION_039_O_TITULO_DE_UMA_VENDA_CANCELADA_NASCE_CANCELADO, MIGRATION_040_A_DRE_LE_A_LINHA_DA_VENDA, MIGRATION_041_O_CAIXA_DO_V1_NAO_SEGURA_O_MOVIMENTO, MIGRATION_042_O_CANCELADO_DO_V1_E_O_CANCELLED_DO_V2, MIGRATION_043_O_MOVIMENTO_SABE_DE_QUE_UNIDADE_ELE_E, MIGRATION_044_A_DRE_NAO_PAGA_PEDAGIO_POR_ITEM, MIGRATION_045_A_CONTA_SO_CLASSIFICA_SE_A_NATUREZA_CASA, MIGRATION_046_O_DEMONSTRATIVO_MOSTRA_O_PLANO_INTEIRO, MIGRATION_047_A_CONTA_RECONHECE_A_CONTRAPARTE_NA_SEGUNDA_OFERTA, MIGRATION_048_A_PARCELA_E_A_CONTA_DO_V1_E_A_BAIXA_E_A_ALOCACAO, MIGRATION_049_A_PARCELA_CARREGA_O_CANCELAMENTO, MIGRATION_050_O_SALDO_DO_TITULO_SE_CALCULA_UMA_VEZ, MIGRATION_051_O_SALDO_SE_CALCULA_SO_NA_LINHA_QUE_A_TELA_MOSTRA, MIGRATION_052_A_LISTA_DE_CONTAS_FALA_VENCIMENTO, MIGRATION_053_UM_TITULO_PARCELADO_VENCE_VARIAS_VEZES, MIGRATION_054_AS_DATAS_EM_QUE_O_TITULO_VENCE, MIGRATION_055_A_LISTA_DE_CONTAS_LISTA_PARCELAS, MIGRATION_056_WHAT_THE_PORT_LEFT_OPEN, MIGRATION_057_A_LINHA_DIZ_QUE_TEM_RECIBO, MIGRATION_058_O_CLIPE_USA_O_INDICE, MIGRATION_059_O_CLIPE_SAI_DA_VIEW, MIGRATION_060_O_RECEBIVEL_VOLTA_DA_ARVORE_DERRUBADA, MIGRATION_061_CONTAS_A_PAGAR_GANHAM_ONDE_MORAR, MIGRATION_062_O_VENCIMENTO_APONTA_PARA_O_TITULO, MIGRATION_063_A_UNIDADE_TEM_CONTA_E_A_PESSOA_TEM_UMA_SO, MIGRATION_064_A_CLASSIFICACAO_CONTABIL_CHEGA_INTEIRA, MIGRATION_065_A_FUSAO_PARA_DE_DOBRAR_A_PROPRIA_MEMORIA, MIGRATION_066_A_VENDA_DE_BALCAO_TEM_CONTA, MIGRATION_067_O_RECIBO_DA_CONTA_ATRAVESSA, MIGRATION_068_A_UNIDADE_ENTRA_COM_A_LINHA_NAO_DEPOIS_DELA, MIGRATION_069_O_TITULO_QUE_JA_EXISTE_ESTA_MIGRADO, MIGRATION_070_A_PARCELA_NASCE_ANTES_DO_MOVIMENTO, MIGRATION_071_A_PARCELA_TEM_UMA_ASSINATURA_SO, MIGRATION_072_O_CAIXA_DO_V1_GUARDA_QUEM_O_ABRIU, MIGRATION_073_O_CAIXA_PERTENCE_A_CONTA_QUE_O_V1_LHE_DEU, MIGRATION_074_O_MOVIMENTO_VOLTA_A_APONTAR_PARA_O_CAIXA, MIGRATION_075_A_VENDA_CANCELADA_CANCELA_O_TITULO_DELA, MIGRATION_076_O_PLANO_DE_CONTAS_DO_CLIENTE_VENCE_O_DO_MODELO, MIGRATION_077_O_RESUMO_FINANCEIRO_SE_SOMA_NO_BANCO, MIGRATION_078_O_SALDO_DA_CONTA_SE_CALCULA_SO_NA_CONTA_PEDIDA, MIGRATION_079_AS_PORTAS_DE_PORTE_NOVAS_NAO_NASCEM_ABERTAS, MIGRATION_080_A_REMESSA_E_A_COMISSAO_A_PAGAR_TEM_ONDE_MORAR, MIGRATION_081_A_REMESSA_E_A_COMISSAO_ATRAVESSAM, MIGRATION_082_O_BENEFICIARIO_DA_COMISSAO_E_UMA_CONTA, MIGRATION_083_A_CONTA_DO_BANCO_E_UMA_CONTA_E_A_FATURA_TEM_DOIS_DESTINOS, MIGRATION_084_A_NOTA_DE_ENTRADA_TEM_UM_TITULO_A_PAGAR, MIGRATION_085_O_RESUMO_LE_CINCO_MIL_LINHAS_E_NAO_DUZENTAS_E_OITENTA_MIL, MIGRATION_086_A_CERCA_SE_PERGUNTA_UMA_VEZ_E_NAO_UMA_VEZ_POR_LINHA, MIGRATION_087_O_SALDO_DE_UMA_FATURA_NAO_SOMA_O_RAZAO_INTEIRO, MIGRATION_088_A_CONTA_SEM_PESSOA_E_DO_SISTEMA_NAO_DE_NINGUEM, MIGRATION_089_O_FORNECEDOR_APONTA_PARA_O_PLANO_MIGRADO, MIGRATION_090_O_DRE_RECORTA_ANTES_DE_SOMAR, MIGRATION_091_A_RECORRENCIA_REPETE_OS_ITENS, MIGRATION_092_A_CONTA_PAGA_NO_CARTAO_SAI_DO_CARTAO, MIGRATION_093_O_PAGAMENTO_DIZ_QUAL_CONTA_ELE_QUITOU, MIGRATION_094_O_TITULO_DA_NOTA_DE_ENTRADA_SABE_DE_QUEM_ELE_E, MIGRATION_095_O_CAIXA_DO_V1_E_REGISTRO_NAO_REFERENCIA, MIGRATION_096_O_CAIXA_DO_V1_JA_TEM_DONO_E_PODE_ENTRAR, MIGRATION_097_O_CAIXA_CONTA_LINHA_POR_LINHA, MIGRATION_098_A_CONTA_QUE_NINGUEM_PAGOU_AINDA_MUDA_DE_DATA_E_DE_PARCELAS, MIGRATION_099_OS_ITENS_DE_UMA_CONTA_SEM_RECEBIMENTO_AINDA_SE_CORRIGEM, MIGRATION_100_A_CONTA_BANCARIA_DIZ_DE_QUEM_ELA_E, MIGRATION_101_O_CARTAO_SE_RECONHECE_PELOS_QUATRO_ULTIMOS, MIGRATION_102_A_BANDEIRA_DO_CARTAO_E_DO_PAIS_NAO_DO_LOJISTA, MIGRATION_103_O_RAIL_DA_FICHA_E_IGUAL_EM_TODO_CADASTRO, MIGRATION_104_SERVICO_E_O_QUE_A_CASA_VENDE, MIGRATION_105_A_OCORRENCIA_PROVISIONADA_VIRA_CONTA_QUANDO_ALGUEM_MANDA, MIGRATION_106_A_RECORRENCIA_NOVA_TAMBEM_PROVISIONA, MIGRATION_107_A_PREVISAO_COMECA_ONDE_A_REGUA_COMECA, MIGRATION_108_MUDOU_A_REGUA_MUDA_A_PREVISAO, MIGRATION_109_A_REGUA_GRAVA_CAMELCASE_E_O_SQL_LIA_SNAKE, MIGRATION_110_TROCAR_DE_FORNECEDOR_ENQUANTO_NINGUEM_PAGOU, MIGRATION_111_REPARCELAR_SEM_APAGAR_A_PARCELA, MIGRATION_112_A_LINHA_DO_EXTRATO_NAO_E_UM_LANCAMENTO_AINDA, MIGRATION_113_SO_A_CONTA_INTEGRADA_APARECE_NA_CONCILIACAO, MIGRATION_114_A_PARCELA_DIZ_POR_QUAL_CONTA_ELA_FOI_PAGA, MIGRATION_115_A_REMESSA_APONTA_PARA_A_CONTA_QUE_EXISTE, MIGRATION_116_UM_ESTORNO_NAO_SE_ESTORNA, MIGRATION_117_COPYING_LINES_IS_AN_INTERNAL_STEP, MIGRATION_118_GIFT_CARD_FOUND_BY_EXACT_CODE, MIGRATION_119_AN_UNPAID_LEGACY_BILL_CAN_BE_RESCHEDULED, MIGRATION_120_CANCELAR_E_POR_ITEM_COM_MOTIVO_E_DESTINO, MIGRATION_121_O_MOTIVO_E_DO_ESTABELECIMENTO, MIGRATION_122_O_CANCELAMENTO_FECHA_AS_PORTAS_QUE_ABRIU, MIGRATION_123_THE_MIRROR_DOES_NOT_BILL_A_RECURRENCE_TWICE, MIGRATION_124_MONEY_KNOWS_ITS_CURRENCY, MIGRATION_125_THE_SUMMARY_ADDS_ONE_CURRENCY_AT_A_TIME, MIGRATION_126_A_BILL_LINE_CAN_ENTER_STOCK, MIGRATION_127_A_BILL_LINE_ENTERS_STOCK_AS_IT_REALLY_ARRIVED, MIGRATION_128_A_STOCK_RECEIPT_SHOWS_WHAT_WAS_PAID, MIGRATION_129_A_BILL_CAN_BE_WRITTEN_IN_ANOTHER_CURRENCY, MIGRATION_130_A_BILL_CAN_BE_TAGGED, MIGRATION_131_THE_BILL_FOLLOWS_THE_PRICE_OF_THE_SALE, MIGRATION_132_THE_STATEMENT_SOURCE_KNOWS_ITS_PROVIDER_ACCOUNT, MIGRATION_133_REVERSING_A_PAYMENT_RELEASES_ITS_BANK_LINE, MIGRATION_134_A_BILL_KNOWS_WHO_FILED_IT, MIGRATION_135_A_BILL_AND_ITS_LINES_ARE_WRITTEN_TOGETHER, MIGRATION_136_A_BANK_STATEMENT_ARRIVES_FROM_THE_SERVICE };
|
|
26512
|
+
export { MIGRATIONS, MIGRATION_000_BASELINE, MIGRATION_001_THE_COMANDA_BECOMES_A_RECEIVABLE_WHEN_IT_CLOSES, MIGRATION_002_PAYMENT_TYPES_ARE_THE_COUNTRY_NOT_THE_TENANT, MIGRATION_003_THE_COMMISSION_RULE_GETS_A_TABLE, MIGRATION_004_ONE_BRIDGE_FOR_THREE_DOORS, MIGRATION_005_THE_APPOINTMENT_CLOSES_LIKE_THE_COMANDA, MIGRATION_006_THE_MONTH_CAN_BE_CLOSED_AND_THE_BOOK_CAN_BE_PROVEN, MIGRATION_007_THE_INVOICE_KNOWS_WHO_ISSUED_IT_AND_WHAT_IT_OWES, MIGRATION_008_THE_COMMISSION_RULE_LEARNS_TO_CHOOSE_AND_TO_SPLIT, MIGRATION_009_THE_COMMISSION_IS_CALCULATED_LINE_BY_LINE, MIGRATION_010_THE_INVOICE_RAISED_FROM_A_SALE_GETS_ITS_OWN_LINES, MIGRATION_011_A_NEW_TENANT_CAN_TAKE_MONEY_ON_THE_FIRST_DAY, MIGRATION_012_THE_COMMISSIONS_BECOME_ONE_BILL_PER_PERSON, MIGRATION_013_A_DISCOUNT_HAS_A_REASON_AND_SOMEONE_WHO_ALLOWED_IT, MIGRATION_014_THE_BILL_THAT_COMES_BACK_EVERY_MONTH, MIGRATION_015_THE_SALE_KNOWS_WHAT_IT_COST, MIGRATION_016_THE_OVERDUE_BILL_GETS_A_LETTER, MIGRATION_017_THE_RECEIPT_IS_A_QUERY_NOT_A_LAYOUT, MIGRATION_018_THE_CAIXA_SHOWS_WHAT_IT_SHOULD_HAVE, MIGRATION_019_WHO_DID_IT_IS_ALREADY_KNOWN, MIGRATION_020_A_RULE_WITH_NOBODY_TO_PAY_PAYS_THE_EXECUTOR, MIGRATION_021_THE_MOST_SPECIFIC_RULE_WINS, MIGRATION_022_AN_UNKNOWN_ATTRIBUTE_DOES_NOT_MATCH, MIGRATION_023_REAPURAR_NAO_CRIA_UM_LOTE_ORFAO, MIGRATION_024_O_BORDERO_PAGA_O_QUE_ELE_SOMA, MIGRATION_025_A_META_DO_MES_TEM_TRES_DEGRAUS, MIGRATION_026_QUEM_FECHA_O_CAIXA_NAO_E_QUEM_CONFERE, MIGRATION_027_O_VALE_PRESENTE_NASCE_EM_LOTE_E_E_UM_PASSIVO, MIGRATION_028_O_CARTAO_TEM_COR, MIGRATION_029_THE_KIOSK_SALE_IS_A_SALE_TOO, MIGRATION_030_THE_CENSUS_CAN_SEE_THE_KIOSK, MIGRATION_031_THE_BANK_LINE_IS_EVIDENCE_NOT_A_SECOND_PAYMENT, MIGRATION_032_CONTAS_A_PAGAR_GANHAM_ONDE_MORAR, MIGRATION_033_O_VENCIMENTO_APONTA_PARA_O_TITULO, MIGRATION_034_A_UNIDADE_TEM_CONTA_E_A_PESSOA_TEM_UMA_SO, MIGRATION_035_A_CLASSIFICACAO_CONTABIL_CHEGA_INTEIRA, MIGRATION_036_A_FUSAO_PARA_DE_DOBRAR_A_PROPRIA_MEMORIA, MIGRATION_037_A_VENDA_DE_BALCAO_TEM_CONTA, MIGRATION_038_A_LINHA_DA_FATURA_ALCANCA_QUEM_VEIO_PELO_PEDIDO, MIGRATION_039_O_TITULO_DE_UMA_VENDA_CANCELADA_NASCE_CANCELADO, MIGRATION_040_A_DRE_LE_A_LINHA_DA_VENDA, MIGRATION_041_O_CAIXA_DO_V1_NAO_SEGURA_O_MOVIMENTO, MIGRATION_042_O_CANCELADO_DO_V1_E_O_CANCELLED_DO_V2, MIGRATION_043_O_MOVIMENTO_SABE_DE_QUE_UNIDADE_ELE_E, MIGRATION_044_A_DRE_NAO_PAGA_PEDAGIO_POR_ITEM, MIGRATION_045_A_CONTA_SO_CLASSIFICA_SE_A_NATUREZA_CASA, MIGRATION_046_O_DEMONSTRATIVO_MOSTRA_O_PLANO_INTEIRO, MIGRATION_047_A_CONTA_RECONHECE_A_CONTRAPARTE_NA_SEGUNDA_OFERTA, MIGRATION_048_A_PARCELA_E_A_CONTA_DO_V1_E_A_BAIXA_E_A_ALOCACAO, MIGRATION_049_A_PARCELA_CARREGA_O_CANCELAMENTO, MIGRATION_050_O_SALDO_DO_TITULO_SE_CALCULA_UMA_VEZ, MIGRATION_051_O_SALDO_SE_CALCULA_SO_NA_LINHA_QUE_A_TELA_MOSTRA, MIGRATION_052_A_LISTA_DE_CONTAS_FALA_VENCIMENTO, MIGRATION_053_UM_TITULO_PARCELADO_VENCE_VARIAS_VEZES, MIGRATION_054_AS_DATAS_EM_QUE_O_TITULO_VENCE, MIGRATION_055_A_LISTA_DE_CONTAS_LISTA_PARCELAS, MIGRATION_056_WHAT_THE_PORT_LEFT_OPEN, MIGRATION_057_A_LINHA_DIZ_QUE_TEM_RECIBO, MIGRATION_058_O_CLIPE_USA_O_INDICE, MIGRATION_059_O_CLIPE_SAI_DA_VIEW, MIGRATION_060_O_RECEBIVEL_VOLTA_DA_ARVORE_DERRUBADA, MIGRATION_061_CONTAS_A_PAGAR_GANHAM_ONDE_MORAR, MIGRATION_062_O_VENCIMENTO_APONTA_PARA_O_TITULO, MIGRATION_063_A_UNIDADE_TEM_CONTA_E_A_PESSOA_TEM_UMA_SO, MIGRATION_064_A_CLASSIFICACAO_CONTABIL_CHEGA_INTEIRA, MIGRATION_065_A_FUSAO_PARA_DE_DOBRAR_A_PROPRIA_MEMORIA, MIGRATION_066_A_VENDA_DE_BALCAO_TEM_CONTA, MIGRATION_067_O_RECIBO_DA_CONTA_ATRAVESSA, MIGRATION_068_A_UNIDADE_ENTRA_COM_A_LINHA_NAO_DEPOIS_DELA, MIGRATION_069_O_TITULO_QUE_JA_EXISTE_ESTA_MIGRADO, MIGRATION_070_A_PARCELA_NASCE_ANTES_DO_MOVIMENTO, MIGRATION_071_A_PARCELA_TEM_UMA_ASSINATURA_SO, MIGRATION_072_O_CAIXA_DO_V1_GUARDA_QUEM_O_ABRIU, MIGRATION_073_O_CAIXA_PERTENCE_A_CONTA_QUE_O_V1_LHE_DEU, MIGRATION_074_O_MOVIMENTO_VOLTA_A_APONTAR_PARA_O_CAIXA, MIGRATION_075_A_VENDA_CANCELADA_CANCELA_O_TITULO_DELA, MIGRATION_076_O_PLANO_DE_CONTAS_DO_CLIENTE_VENCE_O_DO_MODELO, MIGRATION_077_O_RESUMO_FINANCEIRO_SE_SOMA_NO_BANCO, MIGRATION_078_O_SALDO_DA_CONTA_SE_CALCULA_SO_NA_CONTA_PEDIDA, MIGRATION_079_AS_PORTAS_DE_PORTE_NOVAS_NAO_NASCEM_ABERTAS, MIGRATION_080_A_REMESSA_E_A_COMISSAO_A_PAGAR_TEM_ONDE_MORAR, MIGRATION_081_A_REMESSA_E_A_COMISSAO_ATRAVESSAM, MIGRATION_082_O_BENEFICIARIO_DA_COMISSAO_E_UMA_CONTA, MIGRATION_083_A_CONTA_DO_BANCO_E_UMA_CONTA_E_A_FATURA_TEM_DOIS_DESTINOS, MIGRATION_084_A_NOTA_DE_ENTRADA_TEM_UM_TITULO_A_PAGAR, MIGRATION_085_O_RESUMO_LE_CINCO_MIL_LINHAS_E_NAO_DUZENTAS_E_OITENTA_MIL, MIGRATION_086_A_CERCA_SE_PERGUNTA_UMA_VEZ_E_NAO_UMA_VEZ_POR_LINHA, MIGRATION_087_O_SALDO_DE_UMA_FATURA_NAO_SOMA_O_RAZAO_INTEIRO, MIGRATION_088_A_CONTA_SEM_PESSOA_E_DO_SISTEMA_NAO_DE_NINGUEM, MIGRATION_089_O_FORNECEDOR_APONTA_PARA_O_PLANO_MIGRADO, MIGRATION_090_O_DRE_RECORTA_ANTES_DE_SOMAR, MIGRATION_091_A_RECORRENCIA_REPETE_OS_ITENS, MIGRATION_092_A_CONTA_PAGA_NO_CARTAO_SAI_DO_CARTAO, MIGRATION_093_O_PAGAMENTO_DIZ_QUAL_CONTA_ELE_QUITOU, MIGRATION_094_O_TITULO_DA_NOTA_DE_ENTRADA_SABE_DE_QUEM_ELE_E, MIGRATION_095_O_CAIXA_DO_V1_E_REGISTRO_NAO_REFERENCIA, MIGRATION_096_O_CAIXA_DO_V1_JA_TEM_DONO_E_PODE_ENTRAR, MIGRATION_097_O_CAIXA_CONTA_LINHA_POR_LINHA, MIGRATION_098_A_CONTA_QUE_NINGUEM_PAGOU_AINDA_MUDA_DE_DATA_E_DE_PARCELAS, MIGRATION_099_OS_ITENS_DE_UMA_CONTA_SEM_RECEBIMENTO_AINDA_SE_CORRIGEM, MIGRATION_100_A_CONTA_BANCARIA_DIZ_DE_QUEM_ELA_E, MIGRATION_101_O_CARTAO_SE_RECONHECE_PELOS_QUATRO_ULTIMOS, MIGRATION_102_A_BANDEIRA_DO_CARTAO_E_DO_PAIS_NAO_DO_LOJISTA, MIGRATION_103_O_RAIL_DA_FICHA_E_IGUAL_EM_TODO_CADASTRO, MIGRATION_104_SERVICO_E_O_QUE_A_CASA_VENDE, MIGRATION_105_A_OCORRENCIA_PROVISIONADA_VIRA_CONTA_QUANDO_ALGUEM_MANDA, MIGRATION_106_A_RECORRENCIA_NOVA_TAMBEM_PROVISIONA, MIGRATION_107_A_PREVISAO_COMECA_ONDE_A_REGUA_COMECA, MIGRATION_108_MUDOU_A_REGUA_MUDA_A_PREVISAO, MIGRATION_109_A_REGUA_GRAVA_CAMELCASE_E_O_SQL_LIA_SNAKE, MIGRATION_110_TROCAR_DE_FORNECEDOR_ENQUANTO_NINGUEM_PAGOU, MIGRATION_111_REPARCELAR_SEM_APAGAR_A_PARCELA, MIGRATION_112_A_LINHA_DO_EXTRATO_NAO_E_UM_LANCAMENTO_AINDA, MIGRATION_113_SO_A_CONTA_INTEGRADA_APARECE_NA_CONCILIACAO, MIGRATION_114_A_PARCELA_DIZ_POR_QUAL_CONTA_ELA_FOI_PAGA, MIGRATION_115_A_REMESSA_APONTA_PARA_A_CONTA_QUE_EXISTE, MIGRATION_116_UM_ESTORNO_NAO_SE_ESTORNA, MIGRATION_117_COPYING_LINES_IS_AN_INTERNAL_STEP, MIGRATION_118_GIFT_CARD_FOUND_BY_EXACT_CODE, MIGRATION_119_AN_UNPAID_LEGACY_BILL_CAN_BE_RESCHEDULED, MIGRATION_120_CANCELAR_E_POR_ITEM_COM_MOTIVO_E_DESTINO, MIGRATION_121_O_MOTIVO_E_DO_ESTABELECIMENTO, MIGRATION_122_O_CANCELAMENTO_FECHA_AS_PORTAS_QUE_ABRIU, MIGRATION_123_THE_MIRROR_DOES_NOT_BILL_A_RECURRENCE_TWICE, MIGRATION_124_MONEY_KNOWS_ITS_CURRENCY, MIGRATION_125_THE_SUMMARY_ADDS_ONE_CURRENCY_AT_A_TIME, MIGRATION_126_A_BILL_LINE_CAN_ENTER_STOCK, MIGRATION_127_A_BILL_LINE_ENTERS_STOCK_AS_IT_REALLY_ARRIVED, MIGRATION_128_A_STOCK_RECEIPT_SHOWS_WHAT_WAS_PAID, MIGRATION_129_A_BILL_CAN_BE_WRITTEN_IN_ANOTHER_CURRENCY, MIGRATION_130_A_BILL_CAN_BE_TAGGED, MIGRATION_131_THE_BILL_FOLLOWS_THE_PRICE_OF_THE_SALE, MIGRATION_132_THE_STATEMENT_SOURCE_KNOWS_ITS_PROVIDER_ACCOUNT, MIGRATION_133_REVERSING_A_PAYMENT_RELEASES_ITS_BANK_LINE, MIGRATION_134_A_BILL_KNOWS_WHO_FILED_IT, MIGRATION_135_A_BILL_AND_ITS_LINES_ARE_WRITTEN_TOGETHER, MIGRATION_136_A_BANK_STATEMENT_ARRIVES_FROM_THE_SERVICE, MIGRATION_137_A_BILL_LINE_IS_ABATED_FOR_WHAT_NEVER_ARRIVED };
|
|
26229
26513
|
//# sourceMappingURL=main.js.map
|
|
26230
26514
|
//# sourceMappingURL=main.js.map
|