Skip to content

Instantly share code, notes, and snippets.

@ayinot
Created June 3, 2019 09:48
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save ayinot/292ca841b0ee8041b554408363899c98 to your computer and use it in GitHub Desktop.
Save ayinot/292ca841b0ee8041b554408363899c98 to your computer and use it in GitHub Desktop.
pragma solidity ^0.5.1;
contract Commodity {
struct Product {
string productName;
uint256 productPrice;
uint256 insuranceCode;
uint256 costPrice;
uint256 sellingPrice;
uint256 shippingTime;
}
mapping (uint256 => Product) internal eProduct;
uint256 id;
function registerProduct(string memory _productName, uint256 _productPrice, uint256 _shippingTime) public returns(bool){
id++;
eProduct[id].productName = _productName;
eProduct[id].productPrice = _productPrice;
eProduct[id].shippingTime = _shippingTime;
}
function coverInsurance(uint256 _productId, uint256 _insuranceCode) public {
require(eProduct[_productId].costPrice !=0, "Product price must be set before covering Insurance");
require(eProduct[_productId].costPrice >= 500000000 , "Product price should be > 500000000 for insurance cover");
eProduct[_productId].insuranceCode = _insuranceCode;
}
function buyCommodity(uint256 _productId, uint256 _costPrice) public {
eProduct[_productId].costPrice = _costPrice;
}
function sellCommodity(uint256 _productId, uint256 _sellingPrice) public {
eProduct[_productId].sellingPrice = _sellingPrice;
}
function getDetails(uint256 _productId) public view returns(string memory, uint256, uint256, uint256, uint256, uint256) {
return(eProduct[_productId].productName,eProduct[_productId].productPrice,eProduct[_productId].shippingTime,eProduct[_productId].insuranceCode,eProduct[_productId].costPrice,eProduct[_productId].sellingPrice);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment