Skip to main content

Automated Cron Jobs

Two cron jobs automate the CVGo workflow.

Cron JobIntervalAction
CVGo ValidateEvery 1 minuteFinds the oldest Draft record and validates it
CVGo PostEvery 1 minuteFinds the oldest Validated record and posts it (skips records with unconfigured MOPs)

Flow

Upload ZIP → [Draft] → (Validate cron) → [Validated] → (Post cron) → [Posted]

:::note One record at a time Cron jobs process one record per run. If you upload 10 files, they will be validated and posted sequentially (oldest first). :::

Disabling cron jobs

If you prefer fully manual processing:

  1. Go to Settings > Technical > Automation > Scheduled Actions
  2. Find "CVGo POS Data Validate Cron" and/or "CVGo POS Data Posting Cron"
  3. Set to inactive

Posting cron behavior with unconfigured MOPs

The posting cron filters out any Validated record that has at least one MOP marked Configured = False. The record stays in the queue but won't be processed until you review and Mark Configured the new MOP — see MOP Accounts.

This is a safety guard: a freshly auto-created MOP defaults to wrong journals (the user's active branch journals at create time), so posting before configuration would land journal entries in the wrong branch.

Multi-branch interaction

The crons run as the cron user's company context. Since record rules filter by company_id IN company_ids, the cron user needs company_ids covering all six branches to process records uploaded to any branch. By default the admin user has this — verify with:

SELECT u.login, ARRAY_AGG(c.name ORDER BY c.name) AS allowed_companies
FROM res_users u
JOIN res_company_users_rel r ON r.user_id = u.id
JOIN res_company c ON r.cid = c.id
WHERE u.login IN ('__system__', 'admin')
GROUP BY u.login;