@simpleapps-com/augur-api
Version:
TypeScript client library for Augur microservices API endpoints
158 lines • 9.34 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.createPoHdrResource = createPoHdrResource;
exports.createPoHdrDataResource = createPoHdrDataResource;
const schemas_1 = require("../schemas");
/**
* Creates the poHdr resource methods
* OpenAPI Path: /po-hdr → poHdr.*
* @description Comprehensive purchase order management including creation, tracking, receiving, and document generation
*/
function createPoHdrResource(executeRequest, createListMethod, createGetMethod, createCreateMethod) {
return {
/**
* List purchase orders with filtering and pagination - OpenAPI Path: /po-hdr
* @description Returns paginated purchase orders with comprehensive filtering by status, vendor, date ranges, and completion status. Essential for procurement management and receiving workflows.
*
* @fullPath api.orders.poHdr.list
* @service orders
* @domain procurement-management
* @dataMethod poHdrData.list - returns only the purchase orders array without metadata
* @discoverable true
* @searchTerms ["purchase orders", "PO list", "procurement", "vendor orders", "purchase order management", "receiving"]
* @relatedEndpoints ["api.orders.poHdr.get", "api.orders.poHdr.doc.get", "api.orders.poHdr.scan.create", "api.nexus.receiving.list"]
* @commonPatterns ["List open POs", "Find POs by vendor", "Track receiving status", "Procurement dashboard"]
* @workflow ["procurement-workflow", "purchase-order-lifecycle", "receiving-management"]
* @prerequisites ["Valid authentication", "Purchase order access permissions"]
* @nextSteps ["api.orders.poHdr.get for details", "api.nexus.receiving.create for receiving", "Update PO status"]
* @businessRules ["Filters by completion status", "Supports vendor and date filtering", "Pagination required for large datasets"]
* @functionalArea "procurement-and-purchasing"
* @performance "Use filtering to reduce result sets. Consider pagination for better performance."
*/
list: createListMethod('/po-hdr', schemas_1.PurchaseOrderListParamsSchema, schemas_1.PurchaseOrderListResponseSchema),
/**
* Get detailed purchase order information - OpenAPI Path: /po-hdr/{poNo}
* @description Returns comprehensive purchase order details including header information, vendor details, status, and summary totals. Used for PO management and tracking.
*
* @fullPath api.orders.poHdr.get
* @service orders
* @domain procurement-management
* @dataMethod poHdrData.get - returns only the purchase order detail without metadata
* @discoverable true
* @searchTerms ["purchase order details", "PO details", "purchase order info", "PO header"]
* @relatedEndpoints ["api.orders.poHdr.list", "api.orders.poHdr.doc.get", "api.nexus.receiving.list"]
* @commonPatterns ["Get PO details", "View purchase order", "PO status check", "Vendor order info"]
* @workflow ["purchase-order-review", "receiving-preparation", "vendor-management"]
* @prerequisites ["Valid purchase order number", "PO access permissions"]
* @nextSteps ["api.orders.poHdr.doc.get for full details", "Create receiving record", "Update PO status"]
* @businessRules ["Returns header-level information only", "Access controlled by permissions", "Status reflects current receiving state"]
* @functionalArea "procurement-and-purchasing"
* @performance "Single PO retrieval - efficient for header information"
*/
get: createGetMethod('/po-hdr/{poNo}', schemas_1.PurchaseOrderDetailResponseSchema),
/**
* Purchase order document operations - OpenAPI Path: /po-hdr/{poNo}/doc
*/
doc: {
/**
* Get complete purchase order document with all related information
* @description Returns comprehensive purchase order document including header, line items, vendor information, shipping details, and totals. Complete document for receiving and fulfillment processes.
*
* @fullPath api.orders.poHdr.doc.get
* @service orders
* @domain procurement-management
* @dataMethod poHdrData.doc.get - returns only the purchase order document without metadata
* @discoverable true
* @searchTerms ["purchase order document", "complete PO", "PO with lines", "full purchase order", "PO document"]
* @relatedEndpoints ["api.orders.poHdr.get", "api.orders.poHdr.list", "api.nexus.receiving.create"]
* @commonPatterns ["Complete PO details", "PO for receiving", "Full purchase order", "PO with line items"]
* @workflow ["purchase-order-fulfillment", "receiving-workflow", "vendor-management"]
* @prerequisites ["Valid purchase order number", "Document access permissions"]
* @nextSteps ["Process receiving", "Create receiving records", "Update line item status"]
* @businessRules ["Includes all line items and quantities", "Shows receiving status per line", "Contains vendor and shipping details"]
* @functionalArea "procurement-and-purchasing"
* @performance "Complete document retrieval - includes all related data in single call"
*/
get: async (poNo) => {
return executeRequest({
method: 'GET',
path: `/po-hdr/${poNo}/doc`,
responseSchema: schemas_1.PurchaseOrderDocumentResponseSchema,
}, {});
},
},
/**
* Purchase order scan operations - OpenAPI Path: /po-hdr/scan
*/
scan: {
/**
* Scan for similar purchase orders based on provided criteria
* @description Intelligent purchase order discovery that finds similar POs based on items, vendors, or other criteria. Useful for reordering, vendor analysis, and procurement optimization.
*
* @fullPath api.orders.poHdr.scan.create
* @service orders
* @domain procurement-management
* @dataMethod poHdrData.scan.create - returns only the scan results without metadata
* @discoverable true
* @searchTerms ["PO scan", "similar purchase orders", "find similar POs", "PO search", "procurement patterns"]
* @relatedEndpoints ["api.orders.poHdr.list", "api.orders.poHdr.doc.get", "api.items.products.list"]
* @commonPatterns ["Find similar orders", "Reorder analysis", "Vendor pattern analysis", "Procurement optimization"]
* @workflow ["procurement-optimization", "reorder-analysis", "vendor-comparison"]
* @prerequisites ["Scan criteria parameters", "PO access permissions"]
* @nextSteps ["Analyze results for reordering", "Compare vendor patterns", "Optimize procurement"]
* @businessRules ["Matches based on provided criteria", "Returns similarity scores", "Filters by date ranges and status"]
* @functionalArea "procurement-and-purchasing"
* @performance "Advanced search operation - may take longer for complex criteria"
*/
create: createCreateMethod('/po-hdr/scan', schemas_1.PurchaseOrderScanParamsSchema, schemas_1.PurchaseOrderScanResponseSchema),
},
};
}
/**
* Creates the poHdrData resource methods (data-only versions)
*/
function createPoHdrDataResource(poHdr) {
return {
/**
* Get only purchase orders data without response metadata
* @param params Same parameters as list() method
* @returns Promise<PurchaseOrder[]> Direct array of purchase orders
*/
list: async (params) => {
const response = await poHdr.list(params);
return response.data;
},
/**
* Get only purchase order detail data without response metadata
* @param id Purchase order number to retrieve
* @returns Promise<PurchaseOrderDetail> Direct purchase order detail object
*/
get: async (id) => {
const response = await poHdr.get(id);
return response.data;
},
doc: {
/**
* Get only purchase order document data without response metadata
* @param poNo Purchase order number to retrieve
* @returns Promise<PurchaseOrderDocument> Direct purchase order document object
*/
get: async (poNo) => {
const response = await poHdr.doc.get(poNo);
return response.data;
},
},
scan: {
/**
* Get only purchase order scan results data without response metadata
* @param params Same parameters as create() method
* @returns Promise<PurchaseOrderScanResult[]> Direct array of scan results
*/
create: async (params) => {
const response = await poHdr.scan.create(params || {});
return response.data;
},
},
};
}
//# sourceMappingURL=po-hdr.js.map