pragma solidity ^0.4.26; contract RiceChain1 { address public owner; // struct Stakeholders{ address farmer;// address of the famer address RGE; address RGP; address RGD; address RGR; address Consumer; address SSC; //address TracingGateway; } mapping (address=> Stakeholders) holders; //mapping (address=> farmProducts[]) products; //struct sscMap{ // address SSC;// address of the SSC // address farmer; //} //mapping (address=> sscMap) SSCMap; //event addedHoldersMapping( address famer, address SSC, address RGE, address RGP, address RGD, address RGR, address Consumer); string SSCStatus; string FarmerStatus; string Contract_Status; string prize; //return FarmerStatus="SupplyRequested"; //return SSCStatus="read"; struct SeedPurchase{ int quantity; // user seed quantity string SType; // seed type string SBrand;//seed brand int SPrize; // seed prize string FarmerStatus; // status of the famer address farmer; address SSC; string SSCStatus; string Contract_Status; } //SeedPurchase [] public seedPurchasing; mapping (address => SeedPurchase) public seedPurchasing; mapping (address => address[]) public FarmProducts; function addFarmerSSCMapping(address SSC, address farmer) public { //only admin can add serviceZone and homes FarmProducts[SSC].push(farmer); emit FarmerSSCMappingAdded(SSC,farmer,msg.sender); } event FarmerSSCMappingAdded(address farmer,address SSC,address Owner); function BuySeedFromSSC(address farmer, address SSC, int SPrize, string memory SBrand, int quantity, string memory SType ) public returns (string memory) { bool farmerExists=false; //FarmerStatus="SupplyRequested"; //SSCStatus="read"; //Contract_Status="Created!"; { for(uint256 i = 0; i farmProducts[]) products; //struct RGEMap{ // address RGE;// address of the RGE // address RGP; //} string RGEStatus; string RGPStatus; string Contract_Status; string prize; struct BuyingGrain{ int Quantity; // user seed Quantity string DatePurchased; // seed type //string SBrand;//seed brand int GPrize; // seed prize string RGPStatus; // status of the famer address RGP; address RGE; string RGEStatus; string Contract_Status; } //SeedPurchase [] public grainBuy; mapping (address => BuyingGrain) public grainBuy; mapping (address => address[]) public GrainProducts; function addRGP_RGEMapping(address RGE, address RGP) public { //only admin can add serviceZone and homes GrainProducts[RGE].push(RGP); emit RGP_RGEMappingAdded(RGP,RGE,msg.sender); } event RGP_RGEMappingAdded(address RGE,address RGP,address Owner); function BuyGrainFromRGP(address RGE, address RGP, int GPrize, string memory DatePurchased, int Quantity) public returns (string memory) { bool RGPExists=false; RGPStatus="SupplyRequested"; RGEStatus="read"; Contract_Status="Created!"; { for(uint256 i = 0; i farmProducts[]) products; //struct RGDMap{ // address RGD;// address of the RGD // address RGR; //} string RGDStatus; string RGRStatus; string Contract_Status; string Product_prize; string Product_Sales; struct SellingToRGR{ int Quantity; // user seed Quantity string DatePurchased; // seed type //string SBrand;//seed brand int ProductPayment; // seed Product_prize string RGRStatus; // status of the famer address RGR; address RGD; string RGDStatus; string Contract_Status; } //SeedPurchase [] public RGRbuy; mapping (address => SellingToRGR) public RGRbuy; mapping (address => address[]) public RiceProducts; function addRGR_RGDMapping(address RGD, address RGR) public { //only admin can add serviceZone and homes RiceProducts[RGD].push(RGR); emit RGR_RGDMappingAdded(RGR,RGD,msg.sender); } event RGR_RGDMappingAdded(address RGD,address RGR,address Owner); function SellGrainToRGR(address RGD, address RGR, int ProductPayment, string memory DatePurchased, int Quantity) public returns (string memory) { bool RGRExists=false; //RGRStatus="Prepared To Buy"; //RGDStatus="RGP Product Received"; //Contract_Status="RGD Sales"; { for(uint256 i = 0; i farmProducts[]) products; //struct RGDMap{ // address RGD;// address of the RGD // address RGR; //} string ConsumerStatus; string RGRStatus; string Contract_Status; string Payment_Status; //string Product_Sales; struct SellingToConsumer{ int Quantity; // user seed Quantity string DatePurchased; // seed type //string SBrand;//seed brand int ProductPayment; // seed Payment_Status string RGRStatus; // status of the famer address RGR; address RGD; address Consumer; string ConsumerStatus; string Contract_Status; bytes32 Product_ID; bytes32 Sell_ID; } //SeedPurchase [] public ConsumerBuy; mapping (address => SellingToConsumer) public ConsumerBuy; mapping (address => address[]) public RiceProducts; function addRGR_RGDMapping(address RGD, address RGR) public { //only admin can add serviceZone and homes RiceProducts[RGD].push(RGR); emit RGR_RGDMappingAdded(RGR,RGD,msg.sender); } event RGR_RGDMappingAdded(address RGD,address RGR,address Owner); function SellRiceToConsumer(address RGD, address RGR, address Consumer, int ProductPayment, string memory DatePurchased, int Quantity) public returns (string memory) { bool RGRExists=false; //RGRStatus="Prepared To Buy"; //ConsumerStatus="RGP Product Received"; //Contract_Status="RGD Sales"; { for(uint256 i = 0; i