Skip to main content

CVGo POS Data Posting

Manual Posting

Navigation: Shell18 > CVGo > XML Day Data > select a record in Validated status

  1. Open a CVGo POS Data record with status Validated
  2. Ensure all MOP accounts are properly configured — see MOP Accounts
  3. Click the Post button in the header
  4. The system creates Sales Orders based on each MOP's posting mode

:::warning Configuration gate If any MOP account on this record is Configured = False, posting fails with an error listing the unconfigured MOPs. Open each one, review settings, then click Mark Configured before re-posting. :::

Detailed Mode (1 SO per transaction)

StepDescription
1. Find partnerLooks up the partner matching the transaction's MOP name
2. Build order linesCreates SO lines for PRODUCT and POST PAY DELIVERY items
3. Handle discountsCreates negative SO lines for DISCOUNT items
4. Apply taxMatches CVGo tax codes to Odoo taxes (prefers VAT-inclusive 12% tax)
5. Create SOCreates sale.order with all lines on the data's branch (company_id)
6. Auto-confirmIf enabled: confirms SO, validates delivery, posts invoice, registers payment
7. Mark postedLinks SO to transaction and marks it as posted

Summarized Mode (1 SO per shift + MOP)

StepDescription
1. Group transactionsGroups all unposted transactions by shift period + MOP name + branch
2. Aggregate itemsCombines quantities and amounts for identical products
3. Create SOCreates one SO per group with aggregated lines
4. Set referenceSO reference shows receipt range (e.g. OR001 ~ OR200 (200 transactions))
5. Auto-confirmSame as detailed mode
6. Mark postedLinks all transactions in group to the same SO

:::note Batch processing In Detailed mode, transactions are processed in batches of 50 to avoid timeouts. :::

Tax Handling

  • CVGo prices are VAT-inclusive (12% VAT is already included in the sale price)
  • The system uses the special "12% CVGo (Incl.)" tax which extracts VAT from the inclusive price
  • Each branch has its own copy of this tax (created by the post-install hook). The posting code looks up taxes scoped to the data's branch — see Taxes.

Tax matching logic:

  1. For VAT tax code: searches for a 12% VAT-inclusive tax on the branch
  2. For NVAT tax code: searches for a 0% non-VAT tax on the branch
  3. If no matching tax found, the line is created without tax

Automatic Posting (Cron)

A cron job runs every minute and automatically posts the oldest Validated record (skipping any with unconfigured MOPs). See Cron Jobs.

Next step

Once posted, the record moves to Posted status. Review the Reconciliation tab to verify totals balance, and use Payment Registration for any unpaid charge invoices.