Control Every Truck From Gate Entry to Final Exit.
Connect security checkpoints, weighbridges, vehicle verification, material inspection, and Odoo inventory into one controlled gate workflow — without relying on handwritten weight slips or manual paper gate registers.
Your Factory Gate Is Also an Inventory Control Point
Most industrial plants treat factory security as physical access protection. In reality, the moment a 40-ton vehicle rolls onto the premises, your gate becomes an inventory accounting terminal.
Where Measurement Control Is Lost
-
Handwritten Paper Gate Register: Security writes truck numbers, arrival times, and driver names in a physical binder that no other department can see until the end of the shift.
-
Standalone Weighbridge PC: The weighbridge operator prints a thermal paper slip or enters weights into a localized PC software with zero direct link to open Odoo purchase orders.
-
Manual ERP Re-Entry by Stores: Hours later, stores staff retype numbers from crumpled weighbridge slips into ERP receipts, introducing transcription errors, delayed stock availability, and audit ambiguity.
-
High Risk of Discrepancies: A 250 KG weight variance on high-value steel, chemical solvents, or grain goes unnoticed until month-end inventory reconciliation when physical stock does not match the ledger.
Single Unified Digital Gate Transaction
-
Real-Time PO & Vehicle Validation: Camera ANPR reads the plate upon arrival, instantly querying Odoo for valid purchase orders or sales delivery challans before lifting the barrier.
-
Direct Hardware Weight Acquisition: Weight readings are pulled over RS-232 / IoT edge gateways directly from the indicator. Manual editing is mathematically locked in the database.
-
Instant Odoo Goods Receipt (GRN): When the truck completes its second weighment (tare), net weight is automatically computed and converted into a validated Odoo stock picking.
-
Zero Paper Gate Handoffs: Security, Weighbridge, Quality, Stores, and Accounts share the exact same digital record simultaneously, eliminating finger-pointing and invoice disputes.
Follow One Truck Through the Factory
Every industrial vehicle movement follows a rigorous, tamper-resistant 10-step sequence from highway arrival to final gate clearance.
Vehicle Arrival & Optical Plate Recognition (ANPR)
The truck stops at the entry camera line. The ANPR system captures the license plate (GJ-05-XX-1234) and front vehicle profile with timestamp, initiating a new Digital Gate Pass record in Odoo.
Odoo Purchase Order / Delivery Challan Validation
The system queries Odoo for active POs associated with the vendor and vehicle. Security verifies scheduled shipment lines, vendor delivery challan number, and e-Way bill status on the kiosk tablet.
Driver Identity Verification & Safety Orientation
Driver mobile number is validated with an instant OTP, capturing driver photo and driver’s license number. Security confirms standard plant safety compliance (helmet, safety boots, spark arrestor on exhaust).
First Weighing: Gross Weight Direct Capture
The loaded truck positions onto Weighbridge #01. When the indicator senses zero axle motion and emits a stable signal, the gross weight (e.g. 42,680 KG) is captured directly over serial stream and cryptographically locked.
Entry Boom Barrier Clearance & Yard Dispatch
With gross weight locked and PO confirmed, the IoT edge relay triggers the entry boom barrier. A thermal QR gate token is printed for the driver, and traffic lights switch from red to green.
Yard Unloading & Quality Inspection (QC)
The vehicle arrives at the designated unloading bay (Bay 04). Stores inspectors scan the driver’s QR token, inspect cargo quality, record moisture/deductions if applicable, and authorize physical unloading.
Second Weighing: Tare Weight Direct Capture
The empty truck drives onto the exit weighbridge. The operator scans the gate pass token, and the edge gateway captures the empty tare weight (e.g. 16,240 KG) directly from the indicator.
Net Weight Computation & Automatic Odoo GRN Validation
The system subtracts tare from gross to determine actual delivered net material (26,440 KG). If within vendor PO tolerance, Odoo instantly validates stock picking (WH/IN), booking physical inventory to location.
Final Security Clearance & Digital Stamping
Exit security performs a fast visual inspection to ensure the truck bed is empty, verifies stores clearance on the kiosk, and prints the completed dual-weight Gate Pass slip for the transporter.
Exit Barrier Lift & Timestamped Yard Clearance
The exit barrier raises automatically, rear ANPR records the departure timestamp, and the transaction is permanently sealed in the immutable Odoo audit ledger.
One Vehicle Movement. One Complete Digital Record
Rather than maintaining isolated logs across security notebooks, weighbridge memory cards, and ERP receiving screens, every transaction lives inside a single unified document.
Designed for Industrial Gate Realities
Security guardhouses operate in bright direct sunlight, dusty conditions, and with operators wearing heavy work gloves. The software interface cannot look like a delicate SaaS dashboard.
Industrial Hardware Ergonomics
- Sunlight Readable UI: High contrast dark/light palettes ensure legibility even in open guard cabins without air conditioning or blinds.
- Gloved Hand Hit Targets: Primary operational buttons have minimum 54px touch targets to accommodate operators wearing protective work gloves.
- Zero ERP Jargon: Guards see only “Plate Match”, “Gross Capture”, and “Lift Barrier”. The complex Odoo ledger updates happen transparently behind the scenes.
- Local Thermal Printing: Generates instant ESC/POS rugged slips with QR codes for driver in-plant navigation.
Normal Trucks Move Fast. Exceptions Get Immediate Attention.
High-throughput plants cannot afford to hold up 90% of compliant deliveries because of manual inspection bottlenecks. The system fast-tracks verified trucks and isolates discrepancies.
From Physical Weight Indicator to Odoo
How a physical voltage deflection across six strain-gauge load cells becomes an accounting-grade inventory record in your ERP.
stock.picking & locked security.gate.passCapture Once. Preserve the Reading.
Editable weight fields in ERP systems are an audit disaster waiting to happen. The Arihant AI architecture implements a cryptographic hardware lock.
Direct Hardware Read-Only
The weight fields (gross_weight, tare_weight) are computed exclusively from the IoT edge gateway stream. The user interface does not render editable HTML text inputs for weight figures.
SHA-256 Integrity Hash
Each weight capture generates an SHA-256 hash combining the raw indicator serial string, timestamp, device MAC address, and vehicle plate number, preventing database tampering.
Dual-Authorization Override
If physical equipment maintenance requires a manual weight correction, it cannot be done by the weighbridge operator alone. It requires dual cryptographic sign-off by the Stores Head and Plant Controller.
Every Gate Event Leaves an Audit Trail
Review the exact chronological log generated for a single truck transaction. Every state change records the exact timestamp, physical device ID, operator user, and transaction hash.
| Timestamp | Event Description | Device / Location | User / System ID | Status |
|---|---|---|---|---|
| 10:14:02.148 | ANPR Camera Plate Read (GJ-05-XX-1234) |
Cam 01 (Gate Entry) | ANPR-ENGINE-DAEMON | CONFIRMED |
| 10:15:20.301 | PO Matched (PO-2026-0841 - Tata Steel) |
Security Kiosk 01 | User: guard.singh (ID: 104) | VALIDATED |
| 10:17:45.890 | Gross Weight Locked: 42,680 KG | Scale 01 (RS-232) | IOT-GATEWAY-WB01 | LOCKED [STABLE] |
| 10:18:10.012 | Boom Barrier #1 Raised (Relay Pulse 3s) | Barrier Relay 01 | PLC-RELAY-DAEMON | EXECUTED |
| 10:48:30.410 | Unloading Approved; QC Inspection Passed | Yard Bay 04 | User: stores.sharma (ID: 88) | UNLOADED |
| 10:59:15.654 | Tare Weight Locked: 16,240 KG | Scale 02 (Exit) | IOT-GATEWAY-WB02 | LOCKED [STABLE] |
| 11:00:02.822 | Net 26,440 KG Computed; GRN Auto-Created | Odoo Server Cloud | SYSTEM_ODOO_BOT | GRN VALIDATED |
| 11:02:18.115 | Exit Barrier #2 Raised; Vehicle Cleared Yard | Barrier Relay 02 | User: guard.patel (ID: 102) | GATE PASS CLOSED |
Where the Gate Meets Odoo
An enterprise-grade 5-tier architecture connecting field sensors, edge computing, plant local networks, Odoo ERP, and executive dashboards.
Physical Plant Hardware
- • Analog/Digital Load Cells
- • Weighbridge Weight Indicators
- • High-Speed ANPR IP Cameras
- • Automatic Boom Barriers & Relays
- • Red/Green Traffic Control Lights
Arihant AI IoT Gateway
- • DIN-rail industrial microcomputer
- • Opto-isolated RS-232 / RS-485 ports
- • GPIO Digital Relay trigger channels
- • Scale motion stabilization algorithm
- • Local SQLite offline event cache
Local Gate Daemon
- • Zero-latency local Web kiosk UI
- • Local ANPR OCR inference engine
- • ESC/POS thermal printer spooler
- • Store-and-forward MQTT queue
- • Autonomous local offline mode
Odoo Core & Gate Pass Module
- •
security.gate.passcustom lifecycle model - • Automatic
stock.pickingGRN generation - • Three-way matching (PO vs Gate Weight vs Vendor Invoice)
- • Transporter performance & demurrage ledger
Command Center & Notifications
- • Live plant yard occupancy dashboard
- • Real-time truck dwell time heatmaps
- • Instant WhatsApp / SMS weight variance alerts
- • Automated daily gate & weighbridge audit reports
Raw Material Inward vs. Finished Goods Outward
Industrial facilities handle two distinct operational patterns, each requiring an inverted weighing and document verification sequence.
Protecting Against Short Supply
- Gate Entry: Loaded truck arrives with supplier material.
- First Weighment (Gross): Full truck weighed before entering yard.
- Unloading & Inspection: Material dumped into silo, tank, or warehouse bay.
- Second Weighment (Tare): Empty truck weighed on exit scale.
- Net Received Computation: Gross minus Tare = Net Material Received.
- Odoo Stock Receipt: GRN booked against Purchase Order; debit note triggered if short.
Protecting Against Over-Loading & Pilferage
- Gate Entry: Empty transporter truck arrives to collect finished cargo.
- First Weighment (Tare): Empty truck weighed to establish accurate baseline.
- Warehouse Loading: Factory loading team loads coils, bags, or bulk liquid.
- Second Weighment (Gross): Fully loaded truck weighed on exit scale.
- Net Dispatched Computation: Gross minus Tare = Net Material Dispatched.
- Odoo Delivery Clearance: Stock Delivery Order (
WH/OUT) validated; Tax Invoice issued.
Camera & ANPR as Transaction Evidence
Every physical gate pass record automatically bundles 4 high-resolution photo snapshots as permanent cryptographic proof of vehicle condition and cargo state.
Tailored Interfaces for Every Plant Persona
A security guard, a stores keeper, an accounts auditor, and a plant head have fundamentally different operational priorities.
Tactile Gate Wizard
Sees only license plate recognition, automated PO match indicators, safety compliance checklists, and barrier open buttons. Zero clutter, zero ERP accounting screens.
Material Receiving & QC Console
Sees incoming vehicle queue, assigned unloading bays, moisture and dust deduction calculators, sample QC pass/fail toggles, and one-click Odoo GRN generation.
stock.picking
Commercial Reconciliation
Automatic three-way match between vendor tax invoice, purchase order contracted rate, and digital gate net weight. Automated debit notes for weight shortfalls.
Executive Gate Command Center
Real-time visibility into yard congestion, average turnaround times across shifts, weighbridge utilization rates, and instant mobile alerts on abnormal weight exceptions.
Measured Result: 75 Min to 14 Min Turnaround
Where do 61 minutes of lost plant productivity disappear? A detailed breakdown of manual paperwork latency versus integrated automated execution.
| Gate Activity | Manual Paper Workflow | Arihant AI Integrated System | Time Saved |
|---|---|---|---|
| 1. Security Register Handwriting | 12 Mins (Entering plate, driver, phone, vendor manually) | 45 Secs (ANPR capture & driver OTP) | -11.25 Mins |
| 2. PO Verification | 15 Mins (Calling stores, locating printed paper file) | 30 Secs (Instant Odoo database query) | -14.50 Mins |
| 3. Gross Weighing & Ticket | 10 Mins (Manual PC entry, thermal slip stamping) | 15 Secs (Direct RS-232 serial stream lock) | -9.75 Mins |
| 4. Stores Physical Gate Pass Handoff | 20 Mins (Driver walks paper slip to stores cabin) | 0 Mins (Instant digital ERP notification) | -20.00 Mins |
| 5. Tare Weighing & Math | 10 Mins (Manual slip match, manual net calculation) | 15 Secs (Auto-tare read & system net math) | -9.75 Mins |
| 6. Final Exit Clearance | 8 Mins (Security checks stamps, writes exit book) | 30 Secs (QR scan, barrier auto-open) | -7.50 Mins |
| TOTAL VEHICLE DWELL TIME | 75 Minutes | 14 Minutes | 81% FASTER |
The Six Business Value Pillars
Why leading industrial manufacturing corporations standardize on integrated digital gate and weighbridge automation.
High-Speed Gate Clearance
Eliminates highway truck congestion outside your factory gates and eliminates carrier demurrage penalties by clearing vehicles in under 15 minutes.
Hardware Weight Integrity
Protects plant gross margins by eliminating opportunities for unauthorized manual weight overrides, ensuring raw material payments match actual delivered tonnage.
Zero Paper Handoffs
No lost weigh slips, no coffee-stained physical registers, and no manual transcription delays between physical gate operations and Odoo inventory.
Real-Time Inventory Booking
Odoo stock levels update the instant the empty truck passes the exit scale, making raw materials immediately available for MRP production orders.
Exception-Driven Governance
Managers don’t waste hours reviewing routine truck tickets. The system flags the 5% with weight variances or timing delays, demanding management focus only where needed.
Complete Audit Defensibility
Every kilogram, sensor reading, camera snapshot, and operator action is cryptographically preserved, providing flawless compliance for statutory and financial audits.
Engineered for Demanding Industrial Corridors
Customized gate pass configurations tailored for heavy industrial clusters across Gujarat and Western India.
Steel Mills & Scrap Yards
Handles high-volume scrap weighing, moisture deductions, tare fuel compensation, and integration with scrap grading inspection stations.
Chemical & Petrochem (Dahej/Ankleshwar)
Integrates tanker dip-tape volume checks, hazardous material safety clearance checklists, PESO compliance, and temperature-adjusted density conversion.
Cement & Mineral Processing
Engineered for 200+ trucks/day high-throughput gates. Dust-sealed IP65 kiosks, automated RFID tag readers, and sub-10-second driver turnaround.
Agro & Oilseed Processing
Reconciles bag counts against bulk weighbridge tonnage, moisture meter lab tests, and mandi tax challan compliance.
Port Corridors (Mundra/Hazira)
Supports ISO container number recognition (OCR), container seal integrity checks, Verified Gross Mass (VGM) SOLAS compliance, and port gate pass interchange.
Heavy Fabrication & Engineering
Tracks returnable packaging, multi-axle modular trailers, project dispatch gate passes, and sub-contracting job work inward/outward registers.
Is Your Plant Ready for Gate Automation?
Review the 10 infrastructure prerequisites for rolling out an integrated gate pass and weighbridge system.
Keep Your Existing Hardware. Modernize the Workflow.
You do not need to discard your existing multi-lakh weighbridge platform. Our edge connectors interface with all major industrial indicator manufacturers.
Supported Weighbridge Brands
- • Avery India / Avery Weigh-Tronix (E1105, E1205)
- • Mettler Toledo (IND570, IND780, JagXtreme)
- • Essae Teraoka (DS-215, DS-415, DS-852)
- • Rice Lake Weighing Systems (480, 820i)
- • Sartorius / Minebea Intec Combics
- • Cardinal Scale / Cardinal 200 Series
- • Unbranded Indian Microcontroller Indicators
Supported Interfaces & Protocols
- • RS-232 Serial (Continuous or Polled ASCII)
- • RS-485 Multi-drop 2-wire / 4-wire
- • Modbus RTU & Modbus TCP / IP
- • 4-20mA Analog Current Loop
- • TCP/IP Raw Socket Stream (Ethernet)
- • Opto-isolated GPIO Relay Triggers
Peripherals Supported
- • Hikvision / Dahua / CP Plus ANPR IP Cameras
- • UHF Long-Range RFID Windshield Readers
- • Magnetic Boom Barrier Controllers (FAAC, Somfy, BFT)
- • Red/Green LED Traffic Guidance Signals
- • Rugged 3-inch ESC/POS Thermal Slip Printers
- • Industrial Waterproof IP65 Touchscreens
Engineered for Plant Realities & Edge Failures
Industrial gates cannot halt operations when the internet cable is severed or rain obscures a dirty license plate. Here is how the system maintains continuity.
Plant Internet Connection Severed
The gateway runs a local edge database (SQLite). If the fiber link drops, the gate kiosk continues capturing weighbridge readings, printing slips, and cycling barriers.
License Plate Covered in Mud
When ANPR camera confidence drops below 80% due to dust or damaged plates, the kiosk enables a supervised manual plate entry mode.
Driver Phone Battery Dead (No OTP)
If the driver cannot receive the SMS/WhatsApp entry token due to a dead mobile battery, the guard initiates biometric thumbprint or manual driving license scan.
Weight Discrepancy Above Tolerance
When net delivered weight varies beyond PO contract limits (e.g. -2.4%), the system prohibits automated barrier opening and flags the truck for holding.
Production Odoo 19 Python ORM Blueprint
Review the architectural data model powering the gate pass lifecycle, hardware lock fields, and automated picking linkage.
Click to view or collapse complete Python model code
# -*- coding: utf-8 -*-
# Arihant AI - Industrial Security Gate Pass & Weighbridge Integration for Odoo 19
from odoo import models, fields, api, _
from odoo.exceptions import UserError, ValidationError
import hashlib
import logging
_logger = logging.getLogger(__name__)
class SecurityGatePass(models.Model):
_name = 'security.gate.pass'
_description = 'Security Gate Pass & Weighbridge Transaction'
_inherit = ['mail.thread', 'mail.activity.mixin']
_order = 'create_date desc, id desc'
name = fields.Char(string='Gate Pass #', required=True, copy=False, readonly=True, index=True, default=lambda self: _('New'))
gate_type = fields.Selection([
('inward', 'Inward (Raw Material / Purchase)'),
('outward', 'Outward (Finished Goods / Sale)')
], string='Transaction Type', required=True, default='inward', tracking=True)
state = fields.Selection([
('draft', 'Gate Arrival'),
('inward_weighed', 'Gross Weighed'),
('unloading', 'In Yard / Unloading'),
('outward_weighed', 'Tare Weighed'),
('cleared', 'Cleared & Exited'),
('held', 'Held on Exception'),
('cancelled', 'Cancelled')
], string='Status', default='draft', tracking=True)
# Transport & Driver KYC
vehicle_number = fields.Char(string='Vehicle Plate', required=True, index=True, tracking=True)
driver_name = fields.Char(string='Driver Full Name')
driver_mobile = fields.Char(string='Driver Mobile Phone')
driver_license_no = fields.Char(string='Driving License #')
anpr_confidence = fields.Float(string='ANPR Match %', readonly=True)
# Commercial Links
purchase_order_id = fields.Many2one('purchase.order', string='Purchase Order', tracking=True)
picking_id = fields.Many2one('stock.picking', string='Inventory Transfer (GRN)', readonly=True)
partner_id = fields.Many2one('res.partner', string='Vendor / Customer', required=True)
delivery_challan_no = fields.Char(string='Transporter Challan #')
eway_bill_no = fields.Char(string='e-Way Bill Number')
# Physical Weights (Cryptographically Locked to Hardware Stream)
gross_weight = fields.Float(string='Gross Weight (KG)', digits=(12, 2), readonly=True, tracking=True)
tare_weight = fields.Float(string='Tare Weight (KG)', digits=(12, 2), readonly=True, tracking=True)
net_weight = fields.Float(string='Net Weight (KG)', compute='_compute_net_weight', store=True, digits=(12, 2))
billed_weight = fields.Float(string='Vendor Billed Weight (KG)', digits=(12, 2))
weight_variance = fields.Float(string='Weight Variance (KG)', compute='_compute_weight_variance', store=True)
variance_percentage = fields.Float(string='Variance %', compute='_compute_weight_variance', store=True)
# Hardware & Audit Evidence
indicator_serial = fields.Char(string='Weighbridge Indicator Serial', readonly=True)
scale_raw_stream = fields.Char(string='Raw Indicator Stream', readonly=True)
integrity_hash = fields.Char(string='SHA-256 Security Hash', readonly=True)
image_front_plate = fields.Binary(string='Front ANPR Snapshot', attachment=True)
image_truck_bed = fields.Binary(string='Bed Snapshot', attachment=True)
@api.depends('gross_weight', 'tare_weight', 'gate_type')
def _compute_net_weight(self):
for rec in self:
if rec.gate_type == 'inward':
rec.net_weight = max(0.0, rec.gross_weight - rec.tare_weight)
else:
rec.net_weight = max(0.0, rec.tare_weight - rec.gross_weight)
@api.depends('net_weight', 'billed_weight')
def _compute_weight_variance(self):
for rec in self:
if rec.billed_weight > 0:
rec.weight_variance = rec.net_weight - rec.billed_weight
rec.variance_percentage = (rec.weight_variance / rec.billed_weight) * 100.0
else:
rec.weight_variance = 0.0
rec.variance_percentage = 0.0
def action_lock_weighbridge_gross(self, raw_weight, raw_string, indicator_id):
"""Direct invocation by IoT Gateway edge daemon"""
self.ensure_one()
if self.gross_weight > 0 and not self.env.user.has_group('security_gate.group_gate_supervisor'):
raise UserError(_('Gross weight is already locked. Supervisor token required to override.'))
# Compute tamper-evident hash
hash_payload = f'{self.vehicle_number}:{raw_weight}:{fields.Datetime.now()}:{indicator_id}'
sec_hash = hashlib.sha256(hash_payload.encode('utf-8')).hexdigest()
self.write({
'gross_weight': raw_weight,
'scale_raw_stream': raw_string,
'indicator_serial': indicator_id,
'integrity_hash': sec_hash,
'state': 'inward_weighed'
})
_logger.info('Locked gross weight %s KG for %s', raw_weight, self.vehicle_number)
return True
def action_validate_grn_and_clear(self):
"""Auto-create and validate Odoo stock.picking when tare is locked"""
self.ensure_one()
if self.net_weight <= 0:
raise ValidationError(_('Cannot clear vehicle without valid net weight.'))
# Check tolerance threshold (e.g. 1.0%)
if abs(self.variance_percentage) > 1.0 and self.state != 'held':
self.state = 'held'
return self._notify_variance_exception()
# Create or update stock.picking receipt
picking = self.env['stock.picking'].create({
'picking_type_id': self.env.ref('stock.picking_type_in').id,
'partner_id': self.partner_id.id,
'origin': f'Gate Pass {self.name}',
'move_ids_without_package': [(0, 0, {
'name': f'Raw Material from {self.vehicle_number}',
'product_id': self.purchase_order_id.order_line[0].product_id.id if self.purchase_order_id else self.env.ref('stock.product_product_raw').id,
'product_uom_qty': self.net_weight,
'product_uom': self.env.ref('uom.product_uom_kgm').id,
'location_id': self.env.ref('stock.stock_location_suppliers').id,
'location_dest_id': self.env.ref('stock.stock_location_stock').id,
})]
})
picking.action_confirm()
picking.action_assign()
self.picking_id = picking.id
self.state = 'cleared'
return True
Frequently Asked Industrial Questions
Direct, operational answers addressing retrofitting costs, weighbridge calibration, driver language barriers, and ERP integration.
Map Your Plant Gate & Weighbridge Workflow
Discuss your weighbridge indicator model, camera positioning, boom barrier relay integration, and Odoo inventory setup directly with our Principal Solutions Architect.