API to submit Finish Good Movement Voucher. Supported methods are GET, PUT, POST, DELETE.
url: ~/finish_good_move_note
Finish Good Movement Voucher is use to create Finish Good Transaction which in turn to update Finish Good Inventory. iGarment use Lot Based Inventory to keep track of inventory balanace. A lot refer to one item (or product) with assortment disregard where the location of the item, including possible stored in mutliple location.
The item in that lot can be stored in the form of a single item or within a box. Therefore, each inventory lot will have quantity balance, how many are in boxes, number of boxes, etc. Please refer to the database schema for further explaination. Note that there will not be DOCUMENT APT for those data as they are READO ONLY. One is expect to use API to exemplt READ ONLY information.
Note that to pack and upack a box, although did not change the lot iventory quantity balance, but it changes the lot's CARTON balance, thus is considered as a movement transaction.
Document Header
List or cartons, one object per carton
List of items, one object per item which include item's assortments.
Other reference json schema:
object_document, object_style
{
"$id": "https://www.igarment.net/schema/json/v1-0/finish_good_move_note.json",
"title": "Finish Good Movement Voucher",
"type": "object",
"properties": {
"reference": { "$ref": "object-document.json#/$defs/reference" },
"trx_type": { "type": "string" }, // notes
"prod_location_code": { "type": "string" },
"warehouse_code": { "type": "string" },
"remark": { "type": "string" },
"system": { "$ref": "object-document.json#/$defs/system" },
// A list of items which is in this voucher.
"products": {
"type": "array",
"items": {
"$ref": "#/defs/product"
},
},
},
"required": [ "reference", "items" ],
"$defs": {
// This specified a movement product. Product may or may not include
// details cartons information.
"product": {
"type": "object",
"properties": {
"product_code": { "type": "string" },
"style": { "$ref": "object-style.json#/$defs/style" },
"qty_unit": { "type": "string" },
"qty": { "type": "integer" },
"assortment": { "$ref": "object-style.json#/$defs/assortment" },
"cartons": {
"type": "array",
"items": { "$ref": "#/defs/carton" },
},
},
},
// This specified a carton.
"type": "object",
"properties": {
"ucc_prefix": { "type": "string" }, // notes
"carton_number": { "type": "integer" },
"pre_pack": { "type": "string" },
"number_of_pack":{ "type": "integer" },
"weight": { "type": "number" },
"weight_unit": { "type": "string" }, // weight unit, default to KG
"measurement": {
"type": "object",
"properties": {
"length_unit": { "type": "string" }, // unit of measure, default to cm
"length": { "type": "number" },
"width": { "type": "number" },
"height": { "type": "number" },
},
},
"carton_mark": { "type": "string" },
"assortment": { "$ref": "object-style.json#/$defs/assortment" },
},
},
}
Notes
Tranaction type (trx_type) refer to the reason of this movement. Accepting codes are
-- PRD+, PRD-, production in/out
-- ADJ+, ADJ-, adjustment
-- SHP-, SHP+, ship in/out
-- TRF-, TRF+, transfer
-- PAK+, PAK-, pack and unpack
Carton UCC must be uniqued per product. However, carton UCC can be duplicated among products. In this case, it means that the carton is containing more than one product.
If Universal Carton Code (UCC) is used, the actual UCC will be the ucc_prefix concatinated with the carton_numaber. Concatination of the carton number will not padded with leading zero. Example ucc_prefix is A78FD, and carton number is 11, the the UCC will be A78FD11. One can use '#' at end of the ucc_prefix as place holder of the carton number. In the above example, if ucc_prefix is A78D####, then the UCC will be A78D0011.
document attributes: doc_ref_no, trx_date, trx_type, wh_code, prod_loc, status
system attributes: sys_owner, sys_create_date, sys_lm_user, sys_lm_date