Create purchase order (PO) in NexERP database
Creates a purchase order (PO) record in the NexERP system. A purchase order represents goods/services to be ordered from a supplier.
python main.py \
--supplier-name "ACTION BOLT" \
--order-date "2025-10-26" \
--items '[{"product_name": "WIRE D1.2", "quantity": 100, "unit_price": 10.50}]' \
--json
--supplier-name: Supplier name (fuzzy match supported)--order-date: Order date (YYYY-MM-DD format)--items: JSON array of line itemsEach item must have:
product_name: Product name or SKU (fuzzy match supported)quantity: Quantity to order (positive number)unit_price: Price per unitOptional item fields:
discount: Line discount percentage (0-100)remark: Line item remark/notes--supplier-ref: Supplier's reference number--expiry-date: PO expiry date (YYYY-MM-DD)--tax-rate: Tax rate as decimal (default: 0.06 for 6% tax)--remark: PO remark/notesReturns JSON with PO details:
{
"success": true,
"po_number": "PO25100036",
"txn_id": 2126,
"supplier": "ACTION BOLT & NUTS SDN BHD",
"order_date": "2025-10-26",
"items_count": 1,
"subtotal": 1050.00,
"tax": 63.00,
"grand_total": 1113.00,
"status": "Pending"
}
Returns error JSON if:
Writes to 3 tables:
tbl_porder_txn - PO headertbl_porder_item - Line itemstbl_porder_movement - Stock movement trackingPO numbers follow pattern: PO{YY}{MM}{NNNN}
PO25100036 = October 2025, PO #36P: Pending (default)A: ApprovedC: ConfirmedR: ReceivedX: CancelledThis skill is called by the Database Agent when processing purchase order documents.
python main.py \
--supplier-name "ACTION" \
--order-date "2025-10-26" \
--items '[{"product_name": "WIRE D1.2-L105.8", "quantity": 100, "unit_price": 10.50}]' \
--json
python main.py \
--supplier-name "NINGBO" \
--order-date "2025-10-26" \
--expiry-date "2025-11-26" \
--supplier-ref "REF-2025-ABC" \
--items '[
{"product_name": "WIRE D1.2", "quantity": 200, "unit_price": 5.00},
{"product_name": "BOLT M10", "quantity": 1000, "unit_price": 0.50, "discount": 15}
]' \
--remark "Urgent order - deliver by Nov 15" \
--json
python main.py \
--supplier-name "Dell" \
--order-date "2025-10-26" \
--items '[{"product_name": "Laptop", "quantity": 5, "unit_price": 3500.00}]' \
--tax-rate 0.08 \
--json
# Test with verbose output
python main.py --supplier-name "ACTION" --order-date "2025-10-26" \
--items '[{"product_name": "WIRE", "quantity": 50, "unit_price": 10.00}]' \
--verbose --json
# Test error handling (invalid supplier)
python main.py --supplier-name "XYZ_NONEXISTENT" --order-date "2025-10-26" \
--items '[{"product_name": "WIRE", "quantity": 50, "unit_price": 10.00}]' \
--json
0: Success1: Error (invalid input, database error)2: Not found (supplier/product not found)