Skip to main content

autoUpdateCIMASupplierData

Overview

A cron job that processes a queued task to sync CIMA supplier delivery data into a specific order document and its associated order. Unlike the autoUpdateCIMASupplierDataBySupplierData sibling, this function is triggered per order document (one task = one document).

Function autoUpdateCIMASupplierData
Task Code Auto Update CIMA Supplier Data
Schedule Every 103 secondsminutes
Source File src/_cron/cron.service.ts

Changelog

Date Author Description
2026-02-25 sf Removed order.sendTo = order.clientNamesendTo must not be overridden in any scenario
2026-02-25sfChanged schedule from EVERY_10_SECONDS to every 3 minutes (*/3 * * * *)

Previous versions are preserved in Page Revisions (top-right menu → Revisions).


Current Logic

Schedule

EVERY_10_SECONDS*/3 * * * * (every 3 minutes)

Task Input

The task value field (JSON):

{
  "orderDocumentId": 123
}

Processing Flow

    Every 
  1. Pick3 oldestminutes Pending│ └─ getTaskToProcess('Auto Update CIMA Supplier Data') └─ If no task and markreturn Running
  2. early
  3. │ └─ Parse orderDocumentId from task payload └─ ifIf missing or 0,0 → log warning and return
  4. Within a└─ executeInRunner (single transactiontransaction):
    • ├─ Step 1: Find OrderDocument by orderDocumentId if└─ If not found,found → log warning and return
    • │ ├─ Step 2: Find CimaDeliveryInfo bywhere deliveryOrderNumber = document.referenceKey AND plateNo = document.plateNo if└─ If not found,found → log error and return
    • │ ├─ Update OrderDocument.documentStatus'Auto Approved
    • Approved'
    • │ ├─ Find Order by document.orderId │ └─ If orderfound found: update Order fields (sendTo is notNOT touched)
    • │ ├─ Step 3: Update CimaDeliveryInfo.CimaDeliveryInfo: │ statusCompleted;'Completed' if cimaInfo.saleOrderNo is null, also set saleOrderNo = order.saleOrderNo
    • (only if cimaInfo.saleOrderNo is null) │ └─ Step 4: Insert record into OrderJobTrackingLog withaction: action 'CIMA Supplier Data Auto Update
    • Update'
  5. └─
  6. Finally:finally: update task status → Success'Success' or Fail'Fail'

Order Fields Updated

Field Source
actualLoadedQuantity cimaInfo.netWeight
grossWeight cimaInfo.grossWeight
netWeight cimaInfo.netWeight
tareWeight cimaInfo.tareWeight
sealNumber cimaInfo.sealNo
supplierDoDatetime cimaInfo.deliveryDatetime
supplierDoPlateNo cimaInfo.plateNo
deliveryOrderNumber cimaInfo.deliveryOrderNumber
updatedBy System

sendTo is not updated — preserved from original order value.

CimaDeliveryInfo Fields Updated

Field Condition Value
status always Completed
saleOrderNo only if cimaInfo.saleOrderNo is null order.saleOrderNo

Key Differences vs Sibling Function

autoUpdateCIMASupplierData autoUpdateCIMASupplierDataBySupplierData
Trigger Per orderDocumentId (one task = one doc) Batch — all Pending CimaDeliveryInfo
OrderDocument lookup By id (direct) By referenceKey + plateNo + autoUpdateFor
OrderDocument status Always set to Auto Approved Only set if Pending Auto Update (CIMA)
saleOrderNo backfill Yes — if cimaInfo.saleOrderNo is null No