feat(pos): migrate CFDI timbrado from Horux to Facturapi
- Add Facturapi REST service (invoices, customers, orgs, cancel, downloads) - Add JSON payload builder for ingreso/egreso/pago/global invoices - Replace XML queue with Facturapi JSON queue (payload_unsigned, external_id) - Update invoicing blueprint with Facturapi config and download endpoints - Update global invoice service to use Facturapi payloads - Add migration v4.3_facturapi.sql and tenant rollout script - Update invoicing UI: payload preview, PDF/XML downloads, PAC status panel - Add FACTURAPI_USER_KEY to .env.example
This commit is contained in:
34
pos/migrations/v4.3_facturapi.sql
Normal file
34
pos/migrations/v4.3_facturapi.sql
Normal file
@@ -0,0 +1,34 @@
|
||||
-- v4.3_facturapi.sql
|
||||
-- Migrate CFDI timbrado from Horux360 XML pipeline to Facturapi JSON API.
|
||||
--
|
||||
-- Changes:
|
||||
-- - Rename cfdi_queue.xml_unsigned -> payload_unsigned (stores Facturapi JSON payload)
|
||||
-- - Keep xml_signed for the signed XML returned by Facturapi
|
||||
-- - Add external_id column to store Facturapi invoice id
|
||||
-- - Add facturapi config keys to tenant_config
|
||||
|
||||
-- ═════════════════════════════════════════════════════════════════════════════
|
||||
-- 1. CFDI_QUEUE: adapt schema for Facturapi payloads
|
||||
-- ═════════════════════════════════════════════════════════════════════════════
|
||||
ALTER TABLE cfdi_queue RENAME COLUMN xml_unsigned TO payload_unsigned;
|
||||
|
||||
COMMENT ON COLUMN cfdi_queue.payload_unsigned IS 'Facturapi JSON payload (previously unsigned XML for Horux)';
|
||||
COMMENT ON COLUMN cfdi_queue.xml_signed IS 'Signed+stamped XML returned by Facturapi';
|
||||
|
||||
ALTER TABLE cfdi_queue ADD COLUMN IF NOT EXISTS external_id VARCHAR(64);
|
||||
COMMENT ON COLUMN cfdi_queue.external_id IS 'Facturapi invoice id';
|
||||
|
||||
CREATE INDEX IF NOT EXISTS idx_cfdi_queue_external_id ON cfdi_queue(external_id);
|
||||
|
||||
-- ═════════════════════════════════════════════════════════════════════════════
|
||||
-- 2. TENANT_CONFIG: Facturapi configuration keys
|
||||
-- ═════════════════════════════════════════════════════════════════════════════
|
||||
INSERT INTO tenant_config (key, value)
|
||||
VALUES
|
||||
('cfdi_facturapi_key', ''),
|
||||
('cfdi_facturapi_org_id', ''),
|
||||
('cfdi_facturapi_customer_sync', 'true')
|
||||
ON CONFLICT (key) DO NOTHING;
|
||||
|
||||
-- Backward-compat: migrate old Horux keys to comments so they are not used anymore
|
||||
COMMENT ON TABLE tenant_config IS 'tenant_config; old keys cfdi_horux_api_url and cfdi_horux_api_key are deprecated';
|
||||
Reference in New Issue
Block a user