# Supply Chain
[![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](https://opensource.org/licenses/MIT)addAuthorizer
(_authorizer,_name,_designation,_authorizerType,_additionalInfo) : new authorizer can be added.viewAuthorizer
(_authorizer) : existing authorizers can be viewed it returns bytes32 name,designation,authorizerType,additionalInfo.
- mapping(groupID=>broadcast) requestedMaterials
- broadcast: requirements{inventorID,units}
-
registerSupplier(_name,_city,_supplier)
: new supplier can be registered returns bool. -
registerRowMaterial(name,_groupID,_supplier,_additionalDiscription,_price)
: new raw materials can be registered. it returns a byte32 ID. -
viewRowMaterialInfoByID(_rowMaterialID)
: status of the products can be checked wheather they are available or not. it returns [_rowMaterialID].name,[_rowMaterialID].groupID,[_rowMaterialID].currentOwner,[_rowMaterialID].supplier, [_rowMaterialID].additionalDiscription -
transferRowMaterialInfoOwnerShip(_newOwner,rowMaterialIDs)
: the product can be transferred on a request. -
viewSupplier(address _supplier)
: it will return the suppliers details from where the product arrived.returns supplier,name,city. -
broadcastRowMaterialRequirement(_inventoryID,_groupID,_units,_pricePerUnit)
: it will broadcast the raw material requirements to all vendors. -
viewGroupIDRequirement<_groupID>
(reuests can be viewed for a particular product id) -
sendSellOrder(_groupID,_inventorID)
: final bill with product will be sent to the inventory.
- recieveRawMatarials(_name,_groupID, _currentOwner,_supplier,_additionalDiscription,_price,_inventorID) : for receiving the rawmaterials
- requestRowMaterials(_inventorID,_groupID,_units) :new requirements for raw materials can be sent.
- registerInventory(_inventoryHead,_inventoryName,_inventoryCity) returns _inventoryID : new inventory can be registered
- setRawMaterialContractAddress(rowMaterialContractAddress) returns bool
- Inventory(authorizerContractAddress)
- SearchProductByGroupID()
- viewInventory()
- viewInventoryProducts()
- event RawMatarialsReceived(_rawMaterialID,_parent,_name,_groupID,_currentOwner,_supplier, _additionalDiscription,_price,_inventorID)
- event RawMaterialAlreadyRequested(_inventorID,_groupID,_units,_pricePerUnit)
- event InventoryRegistered(_inventoryHead, _inventoryName, _inventoryCity)
- transferOwnership(newOwner) : ownership can be transferred to a new owner.
- RegisterManager(address _manager, byte32 name, byte32 city) : new manager can be registered.
- AcceptRequestFromRetailer(address _retailerID,productGroupID,Quantity) : New Request from retailer can be registered. return will be bool(request granted or not)
- SearchInventoryByGroupID(Product Group ID) : Inventory/warehouse can be searched by products unique group ID. return will be bool(available or not)
- ViewInventoryList(Product Group ID) : all the inventory having particular product will be displayed. return will be list of inventory having particular product.
- SendQuotationToRetailer(Product Group ID,Unit,Price,Description) : A quotation can be send to the retailer for requested order.
- AcceptPOFromRetailer(Product Group ID,Unit,Price) : PO can be accepted from retailer.
- AcceptProductFromInventory(Product ID,Unit): products can be accepted from inventory.
- SendProductToRetailer(Product ID,Unit) : product can be send to retailer.