Skip to main content

autoUpdateCIMASupplierDataBySupplierData

Overview

A cron job that processes queued tasks to sync CIMA supplier delivery data into the Order table. It matches CIMA records against order documents and updates order fields with the supplier-provided data.

Function autoUpdateCIMASupplierDataBySupplierData
Task Code Auto Update CIMA Supplier Data By Supplier Data
Schedule Every 10 minutes
Source File src/_cron/cron.service.ts

Changelog

Date Author Description
2026-02-25 sf Fixed transaction scope, added null guards, added plateNo matching, restored schedule to 10 min, removed sendTo override, added deliveryDatetime 1-month filter

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


Current Logic

Schedule

EVERY_10_MINUTES

Processing Flow

  1. Pick oldest Pending task and mark Running
  2. Fetch all CimaDeliveryInfo where status = Pending AND deliveryDatetime >= now - 1 month, ordered by id ASC
  3. For each record — processed in its own individual transaction:
    • Find OrderDocument where referenceKey = DO# AND autoUpdateFor = CIMA AND plateNo = supplierData.plateNo
    • If not found → log warning and skip
    • If found but documentStatus not in allowed list → log debug and skip
    • If order not found by orderId → log warning and skip (Steps 4–6 are not executed)
    • Step 3: Update Order fields (without overriding sendTo)
    • Step 4: Mark CimaDeliveryInfo.statusCompleted
    • Step 5: If documentStatus = Pending Auto Update (CIMA) → update OrderDocument.documentStatusAuto Approved (skipped if already Approved or Auto Approved)
    • Step 6: Insert a record into OrderJobTrackingLog with action CIMA Supplier Data Auto Update by Supplier Data
  4. Finally: update task status → Success or Fail

Allowed documentStatus values

  • Approved
  • Auto Approved
  • Pending Auto Update (CIMA)

Order Fields Updated

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

sendTo is not updated — preserved from original order value.