Two user reports (Anders, 2026-08-25 + 2026-08-29): 1. The seeded standardmallar "Inkop EU-varor/-tjanster, omvand moms 25%" booked the cost on 4010/6540, which no momsdeklaration ruta reads, so the fiktiv moms filled ruta 30/48 while ruta 20/21 (inkopsvarde) stayed 0; Skatteverket rejects that (FK004, ML 13 kap). The packs now book directly on the basis accounts 4515/4535 (ACCOUNT_RUTA -> ruta 20/21); the transaction-picker path already skips its own basis emission for basis debit accounts, so no double counting. Regression test pins every reverse-charge pack to a 44xx/45xx business debit. Prod rows update via the existing pack sync cron (upsert on pack_slug). 2. A kontantmetod payment verifikat stayed "Underlag saknas" although the invoice PDF was attached and eligible on every static condition: the inline anchorSupplierInvoiceDocument silently did nothing (prod case 2026-08-28, verified in audit_log: no document_attachments update between the payment booking and the user's manual re-upload). The helper now verifies the guarded update actually matched a row instead of claiming success on zero rows, logs its silent bail branches, and a new daily cron (/api/documents/reanchor/cron) re-runs the anchor for any floating retained document with a posted verifikat, replacing the pattern of one-off repair migrations (20260727180000, 20260824150000). The sweep names the FK in its embed and is idempotent; locked/closed periods are skipped as before. Claude-Session: https://claude.ai/code/session_01Jj6Rg1ViyFRej55gbxLVgj Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
119 lines
2.8 KiB
JSON
119 lines
2.8 KiB
JSON
{
|
|
"buildCommand": "NODE_OPTIONS=--max-old-space-size=6144 npm run build",
|
|
"regions": ["arn1"],
|
|
"crons": [
|
|
{
|
|
"path": "/api/deadlines/status/cron",
|
|
"schedule": "0 6 * * *"
|
|
},
|
|
{
|
|
"path": "/api/invoices/recurring/cron",
|
|
"schedule": "0 * * * *"
|
|
},
|
|
{
|
|
"path": "/api/settings/booking-templates/sync/cron",
|
|
"schedule": "30 4 * * *"
|
|
},
|
|
{
|
|
"path": "/api/tax-deadlines/cron",
|
|
"schedule": "0 0 * * *"
|
|
},
|
|
{
|
|
"path": "/api/extensions/enable-banking/sync/cron",
|
|
"schedule": "0 5 * * *"
|
|
},
|
|
{
|
|
"path": "/api/extensions/stripe/transactions/cron",
|
|
"schedule": "30 3 * * *"
|
|
},
|
|
{
|
|
"path": "/api/extensions/woocommerce/orders/cron",
|
|
"schedule": "45 3 * * *"
|
|
},
|
|
{
|
|
"path": "/api/extensions/shopify/orders/cron",
|
|
"schedule": "15 3 * * *"
|
|
},
|
|
{
|
|
"path": "/api/documents/verify/cron",
|
|
"schedule": "0 3 * * *"
|
|
},
|
|
{
|
|
"path": "/api/documents/reanchor/cron",
|
|
"schedule": "30 3 * * *"
|
|
},
|
|
{
|
|
"path": "/api/sandbox/cleanup/cron",
|
|
"schedule": "0 4 * * *"
|
|
},
|
|
{
|
|
"path": "/api/events/cleanup/cron",
|
|
"schedule": "0 2 * * *"
|
|
},
|
|
{
|
|
"path": "/api/extensions/cloud-backup/auto-sync/cron",
|
|
"schedule": "0 * * * *"
|
|
},
|
|
{
|
|
"path": "/api/idempotency/cleanup/cron",
|
|
"schedule": "30 * * * *"
|
|
},
|
|
{
|
|
"path": "/api/pending-operations/expire/cron",
|
|
"schedule": "30 2 * * *"
|
|
},
|
|
{
|
|
"path": "/api/extensions/skatteverket/skattekonto/sync/cron",
|
|
"schedule": "0 4 * * *"
|
|
},
|
|
{
|
|
"path": "/api/extensions/skatteverket/agi/kvittenser/cron",
|
|
"schedule": "*/15 * * * *"
|
|
},
|
|
{
|
|
"path": "/api/extensions/skatteverket/vat/kvittenser/cron",
|
|
"schedule": "30 */2 * * *"
|
|
},
|
|
{
|
|
"path": "/api/webhooks/dispatch/cron",
|
|
"schedule": "* * * * *"
|
|
},
|
|
{
|
|
"path": "/api/extensions/whatsapp-inbox/sweep/cron",
|
|
"schedule": "* * * * *"
|
|
},
|
|
{
|
|
"path": "/api/extensions/whatsapp-inbox/retention/cron",
|
|
"schedule": "15 4 * * *"
|
|
},
|
|
{
|
|
"path": "/api/extensions/invoice-inbox/sweep/cron",
|
|
"schedule": "*/2 * * * *"
|
|
},
|
|
{
|
|
"path": "/api/extensions/invoice-inbox/underlag-reconcile/cron",
|
|
"schedule": "45 5 * * *"
|
|
},
|
|
{
|
|
"path": "/api/bookkeeping/accruals/post-due/cron",
|
|
"schedule": "15 5 * * *"
|
|
},
|
|
{
|
|
"path": "/api/receipt-hunt/cron",
|
|
"schedule": "30 5 * * *"
|
|
},
|
|
{
|
|
"path": "/api/notifications/bookkeeping-digest/cron",
|
|
"schedule": "45 5 * * *"
|
|
},
|
|
{
|
|
"path": "/api/peppol/inbound/cron",
|
|
"schedule": "*/10 * * * *"
|
|
},
|
|
{
|
|
"path": "/api/peppol/outbound/status/cron",
|
|
"schedule": "5,20,35,50 * * * *"
|
|
}
|
|
]
|
|
}
|