You are on page 1of 8

CTO:-

namespace org.kapy.payments

enum OwnerEntity {
o FarmerAgent
o NurseryAdmin
o InspectionOfficer
o TreasuryAdmin
}

participant FarmerAgent identified by FarmerAgentId {

o String FarmerAgentId

--> LandRecord landrecord

}
participant NurseryAdmin identified by nurseryId {

o String nurseryId

--> LandRecord landrecord

participant InspectionOfficer identified by InspectionOfficerId {

o String InspectionOfficerId
--> LandRecord landrecord
}

participant TreasuryAdmin identified by TreasuryId {

o String TreasuryId

--> LandRecord landrecord


}

asset LandRecord identified by eid {

o String eid

o String LnRecId

o Integer NoSeedReq

o DateTime SubmittedDate

o String BankDetails

o Boolean isFarmerRecApproved

o Integer inspectionCompletedForYear

o Integer NoSeedSurvForYear

o Integer AmountProcessed
o Integer SeedlingPrice

o OwnerEntity ownerEntity

asset Nursery identified by nurseryRecordsId {

o String nurseryRecordsId

o String status

--> LandRecord landrecord

o OwnerEntity ownerEntity

asset GoK identified by GoKRecordsId {

o String GoKRecordsId

o Integer inspectionCompletedForYear

o Integer NoSeedSurvForYear

--> LandRecord landrecord

o OwnerEntity ownerEntity
}

asset Treasury identified by TreasuryRecordsId {

o String TreasuryRecordsId

o Integer SeedlingPrice

--> LandRecord landrecord

o OwnerEntity ownerEntity

transaction Verification {

--> LandRecord landrecord

--> Nursery nursery

transaction Monitoring {

--> LandRecord landrecord

--> GoK gok


}

transaction Disbursement {

--> LandRecord landrecord

--> Treasury treasury

---Logic.js:-

/**
*
* @param {org.kapy.payments.Verification} UpdateNurseryRecords
* @transaction
*/

function Verification(UpdateNurseryRecords) {

//udpate the asset after nursery response


if (UpdateNurseryRecords.nursery.status = 'Approved') {
UpdateNurseryRecords.landrecord.isFarmerRecApproved = true
} else {
UpdateNurseryRecords.landrecord.isFarmerRecApproved = false
}
UpdateNurseryRecords.landrecord.ownerEntity =
UpdateNurseryRecords.nursery.ownerEntity;
//get asset registry for land records, and update on the ledger
return getAssetRegistry('org.kapy.payments.LandRecord')
.then(function (assetRegistry) {
return assetRegistry.update(UpdateNurseryRecords.landrecord);
})
}

/**
*
* @param {org.kapy.payments.Monitoring} UpdateGokRecords
* @transaction
*/
function Monitoring(UpdateGokRecords) {

//udpate the asset after nursery response


UpdateGokRecords.landrecord.inspectionCompletedForYear =
UpdateGokRecords.gok.inspectionCompletedForYear;
UpdateGokRecords.landrecord.NoSeedSurvForYear =
UpdateGokRecords.gok.NoSeedSurvForYear;
UpdateGokRecords.landrecord.ownerEntity =
UpdateGokRecords.gok.ownerEntity;

//get asset registry for land records, and update on the ledger
return getAssetRegistry('org.kapy.payments.LandRecord')
.then(function (assetRegistry) {
return assetRegistry.update(UpdateGokRecords.landrecord);
})
}

/**
*
* @param {org.kapy.payments.Disbursement} UpdateTreasuryRecords
* @transaction
*/
function Disbursement(UpdateTreasuryRecords) {

//udpate the asset after nursery response


UpdateTreasuryRecords.landrecord.AmountProcessed =
UpdateTreasuryRecords.treasury.SeedlingPrice *
UpdateTreasuryRecords.landrecord.NoSeedSurvForYear ;
UpdateTreasuryRecords.landrecord.SeedlingPrice =
UpdateTreasuryRecords.treasury.SeedlingPrice;
UpdateTreasuryRecords.landrecord.ownerEntity =
UpdateTreasuryRecords.treasury.ownerEntity;
//get asset registry for land records, and update on the ledger
return getAssetRegistry('org.kapy.payments.LandRecord')
.then(function (assetRegistry) {
return assetRegistry.update(UpdateTreasuryRecords.landrecord);
})
}

Permission.acl:-

/*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/

rule NetworkAdminUser {
description: "Grant business network administrators full access to user resources"
participant: "org.hyperledger.composer.system.NetworkAdmin"
operation: ALL
resource: "**"
action: ALLOW
}

rule NetworkAdminSystem {
description: "Grant business network administrators full access to system resources"
participant: "org.hyperledger.composer.system.NetworkAdmin"
operation: ALL
resource: "org.hyperledger.composer.system.**"
action: ALLOW
}

You might also like