Rest API
WAMS
Purchase Order
การส่งข้อมูลสร้าง WAMS Template
TODO
การรับข้อมูล WAMS หลังสร้าง Template การอนุมัติเสร็จสิ้น
- Hostname: https://odoo.absoluteassembly.co.th
- HTTP Route: /api/create_update_data
-
Header:
{ "Content-Type": "application/json", "db": "<database name>", "login": "<login>", "password": "<password>", }
-
Body:
{ "params": { "model": <model>, "vals": { "payload": { "name": "<number PR>", "company_id": "<company name>", "wams_number": "<number WAMS>", "attachment_ids": [ { "name": <name file>, "datas": "<base64>", "api_done": 1 } ] } } } }
ตารางข้อมูล
Field | Type | Mandatory | Comment |
---|---|---|---|
model | String | Y | กำหนด "purchase.request" |
name | String | Y | หมายเลขเอกสาร Purchase Request ของระบบ Odoo |
company_id | String | Y | ชื่อบริษัท |
wams_number | String | Y | หมายเลขเอกสาร WAMS |
attachment_ids | List | N | ข้อมูลใน List จะประกอบไปด้วย |
Y = จำเป็นต้องส่ง, N = ไม่จำเป็นต้องส่ง, C = จำเป็นตามเงื่อนไข
ตัวอย่าง
body = {
"params": {
"model": "purchase.request",
"vals": {
"payload": {
"name": "PR00015",
"company_id": "Absolute Assembly Co., Ltd.",
"wams_number": "WAMS0001",
"attachment_ids": [
{
"name": "Attachment 2",
"datas": "iVBORw0KGgoAAAANSUhEUgAABKsAAAHYCAIAAAANkvwXAAAAA3NCSVQICAjb4U/gAAAAEHRFWHRTb2Z0d2FyZQBTaHV0dGVyY4LQCQAAIABJREFUeNrs3X9wFHd+J/yPbexp+6xxm2XiBo/XE/Rk...",
"api_done": 1
}
]
}
}
}
}
Output
{
"jsonrpc": "2.0",
"id": null,
"result": {
"is_success": true,
"result": {
"id": 16,
"name": "PR00001"
},
"messages": "Record updated successfully"
}
}
การรับข้อมูล WAMS เมื่อการอนุมัติเสร็จสิ้น (Approve / Reject)
- Hostname: https://odoo.absoluteassembly.co.th
- HTTP Route: /api/create_update_data
-
Header:
{ "Content-Type": "application/json", "db": "<database name>", "login": "<login>", "password": "<password>", }
-
Body:
{ "params": { "model": <model>, "vals": { "payload": { "name": "<number PR>", "company_id": "<company name>", "wams_number": "<number WAMS>", "wams_comment": "<comment of WAMS>", "attachment_ids": [ { "name": <name file>, "datas": "<base64>", "api_done": 1 } ] }, "method": "<method name>", "state": "<state>", "reason": "<comment>", } } }
ตารางข้อมูล
Field | Type | Mandatory | Comment |
---|---|---|---|
model | String | Y | กำหนด "purchase.request" |
name | String | Y | หมายเลขเอกสาร Purchase Request ของระบบ Odoo |
company_id | String | Y | ชื่อบริษัท |
wams_number | String | Y | หมายเลขเอกสาร WAMS |
wams_comment | String | Y | เหตุผลการอนุมัติ ของทุกคน |
attachment_ids | List | N | ข้อมูลใน List จะประกอบไปด้วย |
method | String | Y | กำหนด "update_validation" หมายถึง ชื่อ Function ในการเรียก |
state | String | Y | สถานะการอนุมัติ (approve / reject) |
reason | String | Y | เหตุผลการอนุมัติ ของทุกคน |
Y = จำเป็นต้องส่ง, N = ไม่จำเป็นต้องส่ง, C = จำเป็นตามเงื่อนไข
ตัวอย่าง (Approve)
body = {
"params": {
"model": "purchase.request",
"vals": {
"payload": {
"name": "PR00094",
"company_id": "Absolute Assembly Co., Ltd.",
"wams_number": "WAMS0002",
"wams_comment": "comment OK",
"attachment_ids": []
},
"method": "update_validation",
"state": "approve",
"reason": "comment OK"
}
}
}
Output (Approve)
{
"jsonrpc": "2.0",
"id": null,
"result": {
"is_success": true,
"result": [
{
"rfq_number": "RFQ023",
"po_number": "P00022"
}
],
"messages": "Record updated (Approve) successfully"
}
}
ตัวอย่าง (Reject)
body = {
"params": {
"model": "purchase.request",
"vals": {
"payload": {
"name": "PR00094",
"company_id": "Absolute Assembly Co., Ltd.",
"wams_number": "WAMS0002",
"wams_comment": "Not ok",
"attachment_ids": []
},
"method": "update_validation",
"state": "reject",
"reason": "Not ok"
}
}
}
Output (Reject)
{
"jsonrpc": "2.0",
"id": null,
"result": {
"is_success": true,
"result": [
{
"rfq_number": "RFQ024"
}
],
"messages": "Record updated (Reject) successfully"
}
}
การส่งข้อมูลยกเลิกการส่งเข้า WAMS
TODO
Expense / Advance
การส่งข้อมูลสร้าง WAMS Template
TODO
การรับข้อมูล WAMS เมื่อการอนุมัติเสร็จสิ้น (Approve / Reject)
- Hostname: https://odoo.absoluteassembly.co.th
- HTTP Route: /api/create_update_data
-
Header:
{ "Content-Type": "application/json", "db": "<database name>", "login": "<login>", "password": "<password>", }
-
Body:
{ "params": { "model": <model>, "vals": { "payload": { "number": "<number EX/AV/CAV>", "company_id": "<company name>", "wams_number": "<number WAMS>", "attachment_ids": [ { "name": <name file>, "datas": "<base64>", "api_done": 1 } ] }, "method": "<function name>", "state": "<status>", "reason": "<all comment>" } } }
ตารางข้อมูล
Field | Type | Mandatory | Comment |
---|---|---|---|
model | String | Y | กำหนด "hr.expense.sheet" |
number | String | Y | หมายเลขเอกสาร Expense / Advance / Clearing ของระบบ Odoo |
company_id | String | Y | ชื่อบริษัท |
wams_number | String | Y | หมายเลขเอกสาร WAMS |
attachment_ids | List | N | ข้อมูลใน List จะประกอบไปด้วย |
method | String | Y | กำหนด "update_validation" หมายถึง ชื่อ Function ในการเรียก |
state | String | Y | สถานะการอนุมัติ (approve / reject) |
reason | String | Y | เหตุผลการอนุมัติ ของทุกคน |
Y = จำเป็นต้องส่ง, N = ไม่จำเป็นต้องส่ง, C = จำเป็นตามเงื่อนไข
ตัวอย่าง (Approve)
body = {
"params": {
"model": "hr.expense.sheet",
"vals": {
"payload": {
"number": "EX0011",
"company_id": "Absolute Assembly Co., Ltd.",
"wams_number": "WAMS0001",
"attachment_ids": [
{
"name": "Attachment 1",
"datas": "iVBORw0KGgoAAAANSUhEUgAABKsAAAHYCAIAAAANkvwXAAAAA3NCSVQICAjb4U/gAAAAEHRFWHRTb2Z0d2FyZQBTaHV0dGVyY4LQCQAAIABJREFUeNrs3X9wFHd+J/yPbexp+6xxm2XiBo/XE/Rk...",
"api_done": 1
}
]
},
"method": "update_validation",
"state": "approve",
"reason": "comment ok"
}
}
}
Output (Approve)
{
"jsonrpc": "2.0",
"id": null,
"result": {
"is_success": true,
"result": [
{
"sheet_number": "EX0011"
}
],
"messages": "Record updated (Approve) successfully"
}
}
ตัวอย่าง (Reject)
body = {
"params": {
"model": "hr.expense.sheet",
"vals": {
"payload": {
"number": "EX0011",
"company_id": "Absolute Assembly Co., Ltd.",
"wams_number": "WAMS0001",
"attachment_ids": [
{
"name": "Attachment 1",
"datas": "iVBORw0KGgoAAAANSUhEUgAABKsAAAHYCAIAAAANkvwXAAAAA3NCSVQICAjb4U/gAAAAEHRFWHRTb2Z0d2FyZQBTaHV0dGVyY4LQCQAAIABJREFUeNrs3X9wFHd+J/yPbexp+6xxm2XiBo/XE/Rk...",
"api_done": 1
}
]
},
"method": "update_validation",
"state": "reject",
"reason": "comment not ok"
}
}
}
Output (Reject)
{
"jsonrpc": "2.0",
"id": null,
"result": {
"is_success": true,
"result": [
{
"sheet_number": "EX0011"
}
],
"messages": "Record updated (Reject) successfully"
}
}
การ Update Status WAMS หลังอนุมัติเสร็จสิ้น
TODO
Vendor Bills
การรับข้อมูลเพื่อสร้างเอกสาร Vendor Bills
- Hostname: https://odoo.absoluteassembly.co.th
- HTTP Route: /api/create_data
-
Header:
{ "Content-Type": "application/json", "db": "<database name>", "login": "<login>", "password": "<password>", }
-
Body:
{ "params": { "model": "<model>", "vals": { "payload": { "move_type": "<type document>", "company_id": "<company name>", "attachment_ids": [ { "name": <name file>, "datas": "<base64>", "api_done": 1 } ], "wams_number": "<number WAMS>" }, "po_number": "<number PO>", "external_ref": "<number vendor reference>", "amount_untaxed": <total amount untaxed>, "tax_invoice_number": <tax invoice number>, "tax_invoice_date": <tax invoice date> } } }
ตารางข้อมูล
Field | Type | Mandatory | Comment |
---|---|---|---|
model | String | Y | กำหนด "account.move" |
move_type | String | Y | กำหนด "in_invoice" |
company_id | String | Y | ชื่อบริษัท |
attachment_ids | List | N | ข้อมูลใน List จะประกอบไปด้วย |
wams_number | String | Y | หมายเลขเอกสาร WAMS |
po_number | String | Y | หมายเลขเอกสาร Purchase Order |
external_ref | String | Y | หมายเลขเอกสารอ้างอิงผู้ค้า |
amount_untaxed | Float | Y | จำนวนเงินก่อน Vat |
tax_invoice_number | String | N | หมายเลขใบกำกับภาษี |
tax_invoice_date | String | N | วันที่ใบกำกับภาษี |
Y = จำเป็นต้องส่ง, N = ไม่จำเป็นต้องส่ง, C = จำเป็นตามเงื่อนไข
ตัวอย่าง
body = {
"params": {
"model": "account.move",
"vals": {
"payload": {
"move_type": "in_invoice",
"company_id": "Absolute Assembly Co., Ltd.",
"attachment_ids": [],
"wams_number": "WAMS00001"
},
"po_number": "P00026",
"external_ref": "INV00107",
"amount_untaxed": 27000.0,
"tax_invoice_number": "INV/1222/1111",
"tax_invoice_date": "2023-05-15"
}
}
}
Output
{
"jsonrpc": "2.0",
"id": null,
"result": {
"is_success": true,
"result": {
"id": 133,
"name": "/"
},
"messages": "Record created successfully"
}
}
การ Update Status WAMS หลังอนุมัติเสร็จสิ้น
TODO
WMS
การค้นหาข้อมูลสินค้ารอรับ
- Hostname: https://odoo.absoluteassembly.co.th
- HTTP Route: /api/search_data
-
Header:
- Body:{ "Content-Type": "application/json", "db": "<database name>", "login": "<login>", "password": "<password>", }
{ "params": { "model": "<model>", "vals": { "payload": { "name": "<purchase number>", "company_id": "<company name>" } } } }
ตารางข้อมูล
Field | Type | Mandatory | Comment |
---|---|---|---|
model | String | Y | กำหนด "purchase.order" |
name | String | Y | หมายเลขเอกสารใบสั่งซื้อ (Purchase Order) |
company_id | String | Y | ชื่อบริษัท |
Y = จำเป็นต้องส่ง, N = ไม่จำเป็นต้องส่ง, C = จำเป็นตามเงื่อนไข
ตัวอย่าง
body = {
"params": {
"model": "purchase.order",
"vals": {
"payload": {
"name": "PO2300010",
"company_id": "Absolute Assembly Co., Ltd."
}
}
}
}
Output
{
"jsonrpc": "2.0",
"id": null,
"result": {
"is_success": true,
"result": [
{
"purchase_number": "PO2300010",
"purchase_data": "2023-07-22 07:46:29",
"vendor": "บริษัท ทดสอบ จำกัด",
"location": "Stock",
"purchase_state": "done",
"purchase_line": [
{
"id": 48,
"product_code": "a1",
"product_name": "Product A",
"description": "[a1] Product A",
"qty": 10.0,
"qty_received": 6.0,
"qty_outstanding": 4.0,
"uom": "Pcs"
},
{
"id": 49,
"product_code": "a2",
"product_name": "Product B",
"description": "[a2] Product B",
"qty": 5.0,
"qty_received": 4.0,
"qty_outstanding": 1.0,
"uom": "Units"
},
{
"id": 50,
"product_code": "a3",
"product_name": "Product C",
"description": "[a3] Product C",
"qty": 3.0,
"qty_received": 2.0,
"qty_outstanding": 1.0,
"uom": "Truck"
}
],
"picking": [
{
"picking_number": "WH/IN/00023",
"picking_state": "assigned",
"picking_line": [
{
"purchase_line_id": 48,
"product_code": "a1",
"description": "[a1] Product A",
"qty": 4.0,
"uom": "Pcs"
},
{
"purchase_line_id": 49,
"product_code": "a2",
"description": "[a2] Product B",
"qty": 1.0,
"uom": "Units"
},
{
"purchase_line_id": 50,
"product_code": "a3",
"description": "[a3] Product C",
"qty": 1.0,
"uom": "Truck"
}
]
},
{
"picking_number": "WH/IN/00022",
"picking_state": "done",
"picking_line": [
{
"purchase_line_id": 48,
"product_code": "a1",
"description": "[a1] Product A",
"qty": 3.0,
"uom": "Pcs"
},
{
"purchase_line_id": 49,
"product_code": "a2",
"description": "[a2] Product B",
"qty": 2.0,
"uom": "Units"
},
{
"purchase_line_id": 50,
"product_code": "a3",
"description": "[a3] Product C",
"qty": 1.0,
"uom": "Truck"
}
]
},
{
"picking_number": "WH/IN/00021",
"picking_state": "done",
"picking_line": [
{
"purchase_line_id": 48,
"product_code": "a1",
"description": "[a1] Product A",
"qty": 3.0,
"uom": "Pcs"
},
{
"purchase_line_id": 49,
"product_code": "a2",
"description": "[a2] Product B",
"qty": 2.0,
"uom": "Units"
},
{
"purchase_line_id": 50,
"product_code": "a3",
"description": "[a3] Product C",
"qty": 1.0,
"uom": "Truck"
}
]
}
]
}
],
"messages": "Record search successfully"
}
}
การรับข้อมูลการรับสินค้า (Receipt)
- Hostname: https://odoo.absoluteassembly.co.th
- HTTP Route: /api/create_update_data
-
Header:
{ "Content-Type": "application/json", "db": "<database name>", "login": "<login>", "password": "<password>", }
-
Body:
{ "params": { "model": "<model>", "vals": { "payload": { "name": "<number IN>" "company_id": "<company name>", "external_ref": "<number vendor reference>", "external_date": "<date vendor reference>", "attachment_ids": [ { "name": <name file>, "datas": "<base64>", "api_done": 1 } ] }, "method": "<function name>", "data": [ { "product_code": "<product code>", "purchase_line_id": <PO Line Reference>, "info_lot": [ { "serial_number": "<VIN Number>", "expiration_date": "<exp date>", "quantity": <qty>, "uom": "<Unit of Measure>" }, { "serial_number": "<VIN Number>", "expiration_date": "<exp date>", "quantity": <qty>, "uom": "<Unit of Measure>" } ] }, { "product_code": "<product code>", "purchase_line_id": <PO Line Reference>, "quantity": <qty>, "uom": "<Unit of Measure>" } ] } } }
ตารางข้อมูล
Field | Type | Mandatory | Comment |
---|---|---|---|
model | String | Y | กำหนด "stock.picking" |
name | String | Y | หมายเลขเอกสาร IN (ได้รับตอนระบบ Odoo ส่งเข้า WMS) |
company_id | String | Y | ชื่อบริษัท |
external_ref | String | Y | เอกสารอ้างอิงของทาง Vendor |
external_date | Date | N | Format "YYYY-MM-DD" |
attachment_ids | List | N | ข้อมูลใน List จะประกอบไปด้วย |
method | String | Y | กำหนด "api_function_update" หมายถึง ชื่อ Function ในการเรียก |
data | List | Y | ข้อมูลบรรทัดการรับของ |
data/product_code | String | Y | รหัสสินค้า |
data/purchase_line_id | Integer | Y | ID อ้างอิงบรรทัด (ได้รับตอนระบบ Odoo ส่งเข้า WMS) |
data/quantity | Float | C | จำนวนที่รับ *จำเป็นต้องส่ง เมื่อ Product ไม่ได้ตั้งค่า Serial Number (VIN) |
data/uom | String | C | หน่วยนับ *จำเป็นต้องส่ง เมื่อ Product ไม่ได้ตั้งค่า Serial Number (VIN) |
data/info_lot | List | C | ข้อมูล Serial Number (VIN) กรณีที่ Product มี Serial Number |
data/info_lot/serial_number | String | C | Serial Number / VIN Number *จำเป็นต้องส่ง เมื่อ Product ตั้งค่า Serial Number (VIN) |
data/info_lot/expiration_date | Date | C | วันหมดอายุ Format "YYYY-MM-DD HH:MM:SS" (เวลาจะต้องเป็น UTC เท่านั้น) *จำเป็นต้องส่ง เมื่อ Product ตั้งค่า Serial Number (VIN) |
data/info_lot/quantity | Float | C | จำนวนที่รับ *จำเป็นต้องส่ง เมื่อ Product ตั้งค่า Serial Number (VIN) |
data/info_lot/uom | String | C | หน่วยนับ *จำเป็นต้องส่ง เมื่อ Product ตั้งค่า Serial Number (VIN) |
Y = จำเป็นต้องส่ง, N = ไม่จำเป็นต้องส่ง, C = จำเป็นตามเงื่อนไข
ตัวอย่าง
body = {
"params": {
"model": "stock.picking",
"vals": {
"payload": {
"name": "WH/IN/00022",
"company_id": "Absolute Assembly Co., Ltd.",
"external_ref": "PO2300009",
"external_date": "2023-10-30"
},
"method": "api_function_update",
"data": [
{
"product_code": "a1",
"purchase_line_id": 48,
"info_lot": [
{
"serial_number": "000000216",
"expiration_date": "2023-10-10 13:00:00",
"quantity": 1,
"uom": "Pcs"
},
{
"serial_number": "000000217",
"expiration_date": "2023-10-10 00:00:00",
"quantity": 1,
"uom": "Pcs"
},
{
"serial_number": "000000218",
"expiration_date": "2023-10-10 00:00:00",
"quantity": 1,
"uom": "Pcs"
}
]
},
{
"product_code": "a2",
"purchase_line_id": 49,
"quantity": 2,
"uom": "Units"
},
{
"product_code": "a3",
"purchase_line_id": 50,
"quantity": 1,
"uom": "Truck"
}
]
}
}
}
Output
{
"jsonrpc": "2.0",
"id": null,
"result": {
"is_success": true,
"result": {
"picking_id": 126,
"picking_number": "WH/IN/00022",
"next_picking_id": 127,
"next_picking_number": "WH/IN/00023",
"next_picking_line": [
{
"purchase_line_id": 48,
"product_code": "a1",
"description": "[a1] Product A",
"qty": 4.0,
"uom": "Pcs"
},
{
"purchase_line_id": 49,
"product_code": "a2",
"description": "[a2] Product B",
"qty": 1.0,
"uom": "Units"
},
{
"purchase_line_id": 50,
"product_code": "a3",
"description": "[a3] Product C",
"qty": 1.0,
"uom": "Truck"
}
]
},
"messages": "Record updated (Picking) successfully"
}
}
Note
ในกรณีที่สินค้านั้นยังรับไม่หมด ระบบจะแสดงหมายเลขเอกสารการรับสินค้าในครั้งถัดไป (next_picking_number) เพื่อให้ระบบ WMS สามารถส่งข้อมูลกลับมาที่ระบบ Odoo สำหรับเอกสารการรับสินค้าครั้งถัดไปได้ถูกต้อง
การค้นหาข้อมูลสินค้าคงเหลือ (Product on hand)
- Hostname: https://odoo.absoluteassembly.co.th
- HTTP Route: /api/search_data
-
Header:
{ "Content-Type": "application/json", "db": "<database name>", "login": "<login>", "password": "<password>", }
-
Body:
{ "params": { "model": "<model>", "vals": { "payload": { "code": ["<product code>"], "company_id": "<company name>" } } } }
ตารางข้อมูล
Field | Type | Mandatory | Comment |
---|---|---|---|
model | String | Y | กำหนด "product.template" |
code | List | Y | รหัสสินค้า |
company_id | String | Y | ชื่อบริษัท |
Y = จำเป็นต้องส่ง, N = ไม่จำเป็นต้องส่ง, C = จำเป็นตามเงื่อนไข
ตัวอย่าง
body = {
"params": {
"model": "product.template",
"vals": {
"payload": {
"code": ["04-44501J00018", "03-DYX3250BEV"],
"company_id": "Absolute Assembly Co.,Ltd."
}
}
}
}
Output
{
"jsonrpc": "2.0",
"id": null,
"result": {
"is_success": true,
"result": [
{
"code": "04-44501J00018",
"location": "Plant01/RM Center WH-BUS/AA0-006-4",
"qty_available": 20.0
},
{
"code": "04-44501J00018",
"location": "Office/Center WH/O1-CW-SHZZ",
"qty_available": 2.0
},
{
"code": "03-DYX3250BEV",
"location": "Office/Center WH/O1-CW-SHZZ",
"qty_available": 2.0
}
],
"messages": "Record search successfully"
}
}
การย้ายสินค้าภายใน (Internal Transfer)
- Hostname: https://odoo.absoluteassembly.co.th
- HTTP Route: /api/create_data
-
Header:
{ "Content-Type": "application/json", "db": "<database name>", "login": "<login>", "password": "<password>", }
-
Body:
{ "params": { "model": "<model>", "vals": { "payload": { "picking_type_code": "<code picking type>", "analytic_account_code": "<code analytic>", "company_id": "<company name>", "partner_id": "<partner name>", "operating_unit_code": "<cost center>", "source_location": "<from location>", "dest_location": "<to location>" }, "data": [ { "product_code": "<product code>", "product_line": "<product line>", "boi": "<boi>", "quantity": <qty>, "uom": "<Unit of Measure>" }, { "product_code": "<product code>", "product_line": "<product line>", "boi": "<boi>", "quantity": <qty>, "uom": "<Unit of Measure>" "info_lot": [ { "serial_number": "<serial number>" }, { "serial_number": "<serial number>" } ] } ] } } }
ตารางข้อมูล
Field | Type | Mandatory | Comment |
---|---|---|---|
model | String | Y | กำหนด "stock.picking" |
picking_type_code | String | Y | กำหนด "INT" |
analytic_account_code | String | Y | รหัส Project |
company_id | String | Y | ชื่อบริษัท |
partner_id | String | N | ชื่อผู้ติดต่อ |
operating_unit_code | String | Y | Cost Center |
source_location | String | Y | ชื่อ Location ต้นทาง |
dest_location | String | Y | ชื่อ Location ปลายทาง |
data | List | Y | ข้อมูลบรรทัดการย้ายของ |
data/product_code | String | Y | รหัสสินค้า |
data/product_line | String | Y | Product Line |
data/boi | String | Y | BOI |
data/quantity | Float | Y | จำนวนที่ต้องการย้ายของ |
data/uom | String | Y | หน่วยนับ |
data/info_lot | List | C | ข้อมูล Serial Number / Vin Number |
data/info_lot/serial_number | String | C | รหัส Serial Number ที่ต้องการย้าย |
Y = จำเป็นต้องส่ง, N = ไม่จำเป็นต้องส่ง, C = จำเป็นตามเงื่อนไข
ตัวอย่าง
body = {
"params": {
"model": "stock.picking",
"vals": {
"payload": {
"picking_type_code": "INT",
"analytic_account_code": "P20013",
"company_id": "Absolute Assembly Co.,Ltd.",
"partner_id": "Absolute Assembly Co.,Ltd. (00001)",
"operating_unit_code": "D9_AF00",
"source_location": "Shelf: O1-CW",
"dest_location": "FG: Center WH"
},
"data": [
{
"product_code": "03-DYX3311BEV",
"product_line": "[5BOT] EV Boat Project",
"boi": "[BON] BOI บัตร N - WIND PND",
"quantity": 2,
"uom": "pc"
},
{
"product_code": "03-DYX5150BEV",
"product_line": "[5BOT] EV Boat Project",
"boi": "[BOE] BOI บัตร E - Solar ESLO",
"quantity": 2,
"uom": "pc",
"info_lot": [
{
"serial_number": "000100003"
},
{
"serial_number": "000100004"
}
]
}
]
}
}
}
Output
{
"jsonrpc": "2.0",
"id": null,
"result": {
"is_success": true,
"result": {
"picking_id": 89,
"picking_number": "WH/INT/00037",
"next_picking_id": false,
"next_picking_number": false
},
"messages": "Record updated (Picking) successfully"
}
}
การเบิกสินค้าไปใช้ (Inventory Request)
- Hostname: https://odoo.absoluteassembly.co.th
- HTTP Route: /api/create_data
-
Header:
{ "Content-Type": "application/json", "db": "<database name>", "login": "<login>", "password": "<password>", }
-
Body:
{ "params": { "model": "<model>", "vals": { "payload": { "picking_type_code": "<code picking type>", "analytic_account_code": "<code analytic>", "company_id": "<company name>", "partner_id": "<partner name>", "operating_unit_code": "<cost center>", "fiscal_position_id": "<fiscal position>" }, "data": [ { "product_code": "<product code>", "product_line": "<product line>", "boi": "<boi>", "quantity": <qty>, "uom": "<Unit of Measure>" }, { "product_code": "<product code>", "product_line": "<product line>", "boi": "<boi>", "quantity": <qty>, "uom": "<Unit of Measure>" "info_lot": [ { "serial_number": "<serial number>" }, { "serial_number": "<serial number>" } ] } ] } } }
ตารางข้อมูล
Field | Type | Mandatory | Comment |
---|---|---|---|
model | String | Y | กำหนด "stock.picking" |
picking_type_code | String | Y | กำหนด "RQ" |
analytic_account_code | String | Y | รหัส Project |
company_id | String | Y | ชื่อบริษัท |
partner_id | String | N | ชื่อผู้ติดต่อ |
operating_unit_code | String | Y | Cost Center |
fiscal_position_id | String | Y | Account Mapping |
data | List | Y | ข้อมูลบรรทัดการย้ายของ |
data/product_code | String | Y | รหัสสินค้า |
data/product_line | String | Y | Product Line |
data/boi | String | Y | BOI |
data/quantity | Float | Y | จำนวนที่ต้องการย้ายของ |
data/uom | String | Y | หน่วยนับ |
data/info_lot | List | C | ข้อมูล Serial Number / Vin Number |
data/info_lot/serial_number | String | C | รหัส Serial Number ที่ต้องการเบิก |
Y = จำเป็นต้องส่ง, N = ไม่จำเป็นต้องส่ง, C = จำเป็นตามเงื่อนไข
ตัวอย่าง
body = {
"params": {
"model": "stock.picking",
"vals": {
"payload": {
"picking_type_code": "RQ",
"analytic_account_code": "P20013",
"company_id": "Absolute Assembly Co.,Ltd.",
"partner_id": "Absolute Assembly Co.,Ltd. (00001)",
"operating_unit_code": "D9_AF00",
"fiscal_position_id": "สร้างสินทรัพย์ Office Equipment"
},
"data": [
{
"product_code": "03-DYX3311BEV",
"product_line": "[5BOT] EV Boat Project",
"boi": "[BON] BOI บัตร N - WIND PND",
"quantity": 2,
"uom": "pc"
},
{
"product_code": "03-DYX5150BEV",
"product_line": "[5BOT] EV Boat Project",
"boi": "[BOE] BOI บัตร E - Solar ESLO",
"quantity": 2,
"uom": "pc",
"info_lot": [
{
"serial_number": "000100003"
},
{
"serial_number": "000100004"
}
]
}
]
}
}
}
Output
{
"jsonrpc": "2.0",
"id": null,
"result": {
"is_success": true,
"result": {
"picking_id": 204,
"picking_number": "WH/RQ/00021",
"next_picking_id": false,
"next_picking_number": false
},
"messages": "Record updated (Picking) successfully"
}
}
WEB
การรับข้อมูลในการสร้างคู่ค้า (Partner)
- Hostname: https://odoo.absoluteassembly.co.th
- HTTP Route: /api/create_data
-
Header:
{ "Content-Type": "application/json", "db": "<database name>", "login": "<login>", "password": "<password>", }
-
Body:
{ "params": { "model": "<model>", "vals": { "payload": { "company_type": "<type partner>", // Company Only "name_company": "<name company>", "name": "<name company>", // Individual Only "firstname": "<firstname>", "lastname": "<lastname>", "parent_id": "<company name>", // Common "street": "<street>", "street2": "<street2>", "city": "<city>", "state_id": "<state>", "zip": "<zip>", "vat": "<tax id>", "branch": "<branch>", "phone": "<phone>", "mobile": "<mobile>", "email": "<email>" } } } }
ตารางข้อมูล
Field | Type | Mandatory | Comment |
---|---|---|---|
model | String | Y | กำหนด "res.partner" |
company_type | String | Y | กำหนด "company" สำหรับบริษัท กำหนด "person" สำหรับบุคคล |
name_company | String | N* | ชื่อบริษัท *จำเป็นต้องส่ง เมื่อ company_type เป็น company |
name | String | N* | ชื่อบริษัท *จำเป็นต้องส่ง เมื่อ company_type เป็น company |
firstname | String | N* | ชื่อ *จำเป็นต้องส่ง เมื่อ company_type เป็น person |
lastname | String | N* | นามสกุล *จำเป็นต้องส่ง เมื่อ company_type เป็น person |
parent_id | String | N | ชื่อบริษัทในระบบ (บริษัทแม่) |
street | String | Y | ที่อยู่ |
street2 | String | N | ที่อยู่2 |
city | String | N | เขต |
state_id | String | N | จังหวัด |
zip | String | N | รหัสไปรษณีย์ |
vat | String | Y | เลขผู้เสียภาษี |
branch | String | N | รหัสสาขา |
phone | String | N | หมายเลขโทรศัพท์ |
mobile | String | N | หมายเลขโทรศัพท์ |
String | N |
Y = จำเป็นต้องส่ง, N = ไม่จำเป็นต้องส่ง, C = จำเป็นตามเงื่อนไข
ตัวอย่าง (บริษัท)
body = {
"params": {
"model": "res.partner",
"vals": {
"payload": {
"company_type": "company",
"name_company": "บริษัท ทดสอบ จำกัด",
"name": "บริษัท ทดสอบ จำกัด",
"street": "111/11 ถ.อออดดดก",
"zip": "00101",
"vat": "1100111001113",
"branch": "00000",
"phone": "0888888888",
"mobile": "0888888888",
"email": "email@email.email"
}
}
}
}
ตัวอย่าง (บุคคล)
body = {
"params": {
"model": "res.partner",
"vals": {
"payload": {
"company_type": "person",
"firstname": "นายทดสอบ",
"lastname": "นามสกุล",
"street": "111/11 ถ.อออดดดก",
"zip": "00101",
"vat": "1100111001112",
"branch": "00000",
"phone": "0888888888",
"mobile": "0888888888",
"email": "email@email.email"
}
}
}
}
Output
{
"jsonrpc": "2.0",
"id": null,
"result": {
"is_success": true,
"result": {
"id": 2907,
"ref": false
},
"messages": "Record created successfully"
}
}
การรับข้อมูลในการสร้างสินค้า (Product)
- HTTP Route: /api/create_data
-
Header:
{ "Content-Type": "application/json", "db": "<database name>", "login": "<login>", "password": "<password>", }
-
Body:
{ "params": { "model": "product.template", "vals": { "payload": { "name": "<product name>", "default_code": "<product code>", "sale_ok": <type sale>, "purchase_ok": <type purchase>, "detailed_type": "<type product>", "list_price": <sale price>, "standard_price": <cost> } } } }
ตารางข้อมูล
Field | Type | Comment |
---|---|---|
model | String | กำหนด "product.template" |
name | String | ชื่อสินค้า |
default_code | String | รหัสสินค้า |
sale_ok | Integer | กำหนด 1 สำหรับสินค้าขาย กำหนด 0 สำหรับสินค้าที่ไม่ขาย |
purchase_ok | Integer | กำหนด 1 สำหรับสินค้าซื้อ กำหนด 0 สำหรับสินค้าที่ไม่ซื้อ |
detailed_type | String | กำหนด "consu" สำหรับสินค้าที่ไม่นับ Stock กำหนด "product" สำหรับสินค้าที่นับ Stock |
list_price | Float | ราคาขาย (ถ้ามี) |
standard_price | Float | ราคาต้นทุน (ถ้ามี) |
Y = จำเป็นต้องส่ง, N = ไม่จำเป็นต้องส่ง, C = จำเป็นตามเงื่อนไข
ตัวอย่าง
body = {
"params": {
"model": "product.template",
"vals": {
"payload": {
"name": "Cheese Burger",
"default_code": "CODE0001",
"sale_ok": 1,
"purchase_ok": 1,
"detailed_type": "product",
"list_price": 105,
"standard_price": 100
}
}
}
}
Output
{
"jsonrpc": "2.0",
"id": null,
"result": {
"is_success": true,
"result": {
"id": 65812,
"name": "Cheese Burger"
},
"messages": "Record created successfully"
}
}
MRP Online
การรับข้อมูลสร้างการผลิต (Create MO)
- Hostname: https://odoo.absoluteassembly.co.th
- HTTP Route: /api/create_data
-
Header:
{ "Content-Type": "application/json", "db": "<database name>", "login": "<login>", "password": "<password>", }
-
Body:
{ "params": { "model": "<model>", "vals": { "payload": { "bom_reference": "<reference bom>", "product_code": "<product code>", "analytic_account_code": "<code analytic>", "operating_unit_code": "<costcenter>", "product_line": "<product line>", "boi": "<boi>", "company_id": "<company name>", "info_lot": [ { "serial_number": "<VIN number>", "job_number": "<job number>", "motor_number": "<motor number>", } ] } } } }
ตารางข้อมูล
Field | Type | Mandatory | Comment |
---|---|---|---|
model | String | Y | กำหนด "mrp.production" |
bom_reference | String | Y | สูตรการผลิต |
product_code | String | Y | รหัสสินค้า |
analytic_account_code | String | Y | รหัส Project |
operating_unit_code | String | Y | Cost Center |
product_line | String | Y | Product Line |
boi | String | Y | BOI |
company_id | String | Y | ชื่อบริษัท |
info_lot | List | Y | ข้อมูล Serial Number / Vin Number ของ Finish Goods |
info_lot/serial_number | String | Y | รหัส VIN Number |
info_lot/job_number | String | Y | รหัส Job Number |
info_lot/motor_number | String | Y | รหัส Motor Number |
Y = จำเป็นต้องส่ง, N = ไม่จำเป็นต้องส่ง, C = จำเป็นตามเงื่อนไข
ตัวอย่าง
body = {
"params": {
"model": "mrp.production",
"vals": {
"payload": {
"bom_reference": "mrp",
"product_code": "03-XML6720JEV",
"analytic_account_code": "P20013",
"operating_unit_code": "OU01",
"product_line": "[5BOT] EV Boat Project",
"boi": "[BOF] BOI บัตร F - Solar ESN",
"company_id": "Absolute Assembly Co., Ltd.",
"info_lot": [
{
"serial_number": "vin00001131",
"job_number": "job001",
"motor_number": "motor001",
}
]
}
}
}
}
Output
{
"jsonrpc": "2.0",
"id": null,
"result": {
"is_success": true,
"result": [
{
"mo_number": "WH/MO/00054",
"info_rm": [
{
"product_code": "codeA",
"serial_number": "0000010"
},
{
"product_code": "codeA",
"serial_number": "0000011"
}
],
"duplicate_vin_number": "vin00001131" # จะเห็นเมื่อ vin number ซ้ำ
}
],
"messages": "Record updated (MO) successfully"
}
}
การรับข้อมูลหลังผลิตเสร็จสิ้น (Update MO)
- Hostname: https://odoo.absoluteassembly.co.th
- HTTP Route: /api/create_update_data
-
Header:
{ "Content-Type": "application/json", "db": "<database name>", "login": "<login>", "password": "<password>", }
-
Body:
{ "params": { "model": "<model>", "vals": { "payload": { "name": "<MO number>", "company_id": "<company name>", }, "method": "<method>", "sale_lot_number": "<sale lot>", "data": [ { "product_code": "<product code>", "quantity": <qty>, "uom": "<Unit of Measure>" }, { "product_code": "<product code>", "quantity": <quantity>, "uom": "<Unit of Measure>" "info_lot": [ { "serial_number": "<VIN number>", }, { "serial_number": "<VIN number>", } ] } ] } } }
ตารางข้อมูล
Field | Type | Mandatory | Comment |
---|---|---|---|
model | String | Y | กำหนด "mrp.production" |
name | String | Y | รหัสเอกสาร MO |
company_id | String | Y | ชื่อบริษัท |
method | String | Y | กำหนด "api_function_update" หมายถึง ชื่อ Function ในการเรียก |
sale_lot_number | String | Y | Lot ในการขาย |
data | List | Y | ข้อมูลบรรทัดการผลิต |
data/product_code | String | Y | รหัสสินค้าที่ใช้ในการผลิต |
data/quantity | Float | Y | จำนวนที่ใช้ในการผลิต |
data/uom | String | Y | หน่วยนับ |
data/info_lot | List | C | ข้อมูล Serial Number / Vin Number |
data/info_lot/serial_number | String | C | รหัส Serial Number ที่ใช้ในการผลิต |
Y = จำเป็นต้องส่ง, N = ไม่จำเป็นต้องส่ง, C = จำเป็นตามเงื่อนไข
ตัวอย่าง
body = {
"params": {
"model": "mrp.production",
"vals": {
"payload": {
"name": "WH/MO/00117",
"company_id": "Absolute Assembly Co.,Ltd."
},
"method": "api_function_update",
"data": [
{
"product_code": "codeA",
"quantity": 1,
"uom": "Pcs"
},
{
"product_code": "codeB",
"quantity": 5,
"uom": "m"
},
{
"product_code": "codeC_Serial",
"quantity": 3,
"uom": "Packs",
"info_lot": [
{
"serial_number": "00000x1"
},
{
"serial_number": "00000x2"
},
{
"serial_number": "00000x3"
}
]
}
]
}
}
}
Output
{
"jsonrpc": "2.0",
"id": null,
"result": {
"is_success": true,
"result": [
{
"mo_number": "WH/MO/00117"
}
],
"messages": "Record updated (MO) successfully"
}
}