Mi plan es desarrollar un contrato de acuerdo de muestra entre el cliente y el proveedor de automóviles. el flujo de trabajo es el siguiente...
después del registro, solo el cliente registrado puede alquilar un automóvil utilizando el contrato RentingCar. (el cliente registrado y no registrado no está alquilando un automóvil) en realidad, tengo un problema para implementar este contrato. Supongo que el problema es con la siguiente función con la función isActive()
función rentingCarFromCarPool (dirección _customerAddress){
if(isActive() && NumberOfAvailableCarInPool > 0){
carRentingFromPool[_customerAddress] = CarRentingStatus({
carRentActive: true,
lastUpdate: now,
carModel: "ToyotaCorolla X 2015"
});
NumberOfAvailableCarInPool--;
} else {
throw;
}
}
Es función activa:
function isActive() returns (bool) {
if(rentCar[msg.sender].active == true){
return true;
} else {
return false;
}
}
El proveedor de servicios de automóviles puede establecer el alquiler y la tarifa de registro para el cliente con el contrato CarRentalServiceProvider.>>>> (funciona bien)
el cliente puede pagar la factura mediante el contrato CarRentalServiceCustomer. El problema es que después de pagar el alquiler y la tarifa de registro, ambos deberían ser cero. Pero no se convierte en 0 después de mostrar un pago exitoso. Pero de mi cuenta de contrato que muestra la misma cantidad de dinero.
aquí está mi código completo https://ethereum.github.io/browser-solidity/#version=soljson-v0.4.9+commit.364da425.js
Amablemente ayúdame a desarrollar este proyecto según el plan y libre de errores. Muchas gracias por adelantado.
Nota: después de resolver este problema, agregaré algunas otras funcionalidades.
Estos problemas probablemente se pueden dejar de lado para fines de prueba:
Varias funciones que usan _providerAddress parecen estar confundidas con respecto a quién envía la transacción y qué hace. ¿Es _providerAddress el arrendatario? ¿Estas funciones están destinadas a ser utilizadas por el personal de la oficina o por el público? Observo que algunos de ellos son para pagar tarifas, por lo que posiblemente sea por el público, pero no están enviando tarifas; entonces la intención es confusa.
Podría ser posible organizar esto y demostrarlo con un ejemplo, pero me resulta difícil comprender la intención solo del código tal como es. Por favor, aclare cómo se pretende que funcione el contrato: