Мой план состоит в том, чтобы разработать типовой договор договора между клиентом и поставщиком автомобилей. рабочий процесс, как показано ниже...
после регистрации только зарегистрированный клиент может арендовать автомобиль по договору RentingCar. (не работает как зарегистрированный, так и незарегистрированный клиент арендует автомобиль) на самом деле у меня возникла проблема с развертыванием этого контракта. Я предполагаю, что проблема связана с функцией ниже с функцией функции isActive ()
rentingCarFromCarPool (адрес _customerAddress) {
if(isActive() && NumberOfAvailableCarInPool > 0){
carRentingFromPool[_customerAddress] = CarRentingStatus({
carRentActive: true,
lastUpdate: now,
carModel: "ToyotaCorolla X 2015"
});
NumberOfAvailableCarInPool--;
} else {
throw;
}
}
Активная функция:
function isActive() returns (bool) {
if(rentCar[msg.sender].active == true){
return true;
} else {
return false;
}
}
поставщик автосервиса может установить арендную плату и регистрационный сбор для клиента с контрактом CarRentalServiceProvider.>>>> (работает нормально)
клиент может оплатить счет, используя контракт CarRentalServiceCustomer. Проблема в том, что после оплаты арендной платы и регистрационного сбора оба должны быть равны нулю. Но он не становится 0 после показа успешной оплаты. Но с моего контрактного счета показывалась такая же сумма денег.
вот мой полный код https://ethereum.github.io/browser-solidity/#version=soljson-v0.4.9+commit.364da425.js
Пожалуйста, помогите мне разработать этот проект в соответствии с планом и без ошибок. Заранее большое спасибо.
Примечание: после решения этой проблемы я добавлю некоторые другие функции.
Эти проблемы, вероятно, можно отложить для целей тестирования:
Несколько функций, использующих _providerAddress, кажутся запутанными в отношении того, кто отправляет транзакцию и что она делает. Является ли _providerAddress арендатором? Предназначены ли эти функции для использования офисным персоналом или общественностью? Я отмечаю, что некоторые из них предназначены для оплаты сборов, поэтому, возможно, для общественности, но они не отправляют сборы; поэтому намерение сбивает с толку.
Возможно, это можно организовать и продемонстрировать на примере, но мне трудно понять намерение только из кода, как он есть. Уточните, пожалуйста, как должен действовать контракт: