My code is as follows:
/**
* New model file
*/
namespace org.acme.paysystem
enum PaymentStatus{
o PARTIALLY_PAID
o TOTAL_AMOUNT_PAID
o NOT_PAID
}
enum DeliveryStatus{
o DELIVERED
o IN_TRANSIT
}
asset Goods identified by billNo{
o String billNo
o Double billAmount
o DateTime billDate
o DeliveryStatus deliveryStatus
o PaymentStatus paymentStatus default = 'NOT_PAID'
}
concept Address{
o String Country optional
o String City optional
o String Street optional
o String Zip optional
}
abstract participant user identified by email{
o String email
o String fname
o String lname
o Address address
}
participant Retailer extends user {
o String shopNo
o Double amountDue
o Double accountBalance
}
participant Distributor extends user{
o String PAN
o Double bankBalance
}
transaction Payment{
--> Goods goods
--> Retailer retailer
--> Distributor distributor
o PaymentStatus paymentStatus
}
transaction GoodsMovement {
--> Goods goods
o DeliveryStatus deliveryStatus
The script file is as follows:
/**
* @param {org.acme.paysystem.Payment} Payment
* @transaction
*/
function Payment(Payment){
var paymentRecievedFlag = 0;
var amountRecieved = 0;
if(GoodsMovement == 'IN_TRANSIT')
{
console.log("Goods are IN_TRANSIT");
}
else
{
if ((Payment.retailer.accountBalance - Payment.goods.billAmount) > 0 ){
Payment.retailer.accountbalance -= Payment.goods.billAmount;
Payment.distributor.bankBalance += Payment.goods.billAmount;
Payment.paymentStatus = 'TOTAL_AMOUNT_PAID';
//Payment.goods.paymentStatus = 'TOTAL_AMOUNT_PAID';
}
else{
Payment.retailer.amountDue = Payment.goods.billAmount - Payment.retailer.accountBalance;
Payment.distributor.bankBalance += Payment.retailer.accountBalance;
Payment.paymentStatus = PARTIALLY_PAID;
}}
return getParticipantRegistry('org.acme.paysystem.Distributor')
.then(function(distributorRegistry){
return distributorRegistry.update(Payment.distributer);
})
.then(function(){
return getParticipantRegistry('org.acme.paysystem.Retailer');
})
.then(function(retailerRegistry){
return retailerRegistry.update(Payment.retailer);
})
.then(function(){
return getAssetRegistry('org.acme.paysystem.Goods');
})
.then(function(goodsRegistry){
return goodsRegistry.update(Payment.goods);
});
}
How to solve this error?