S++Business systems language
DEMO SOURCE · SPP / APP / PHYRead the book

petshop-10-services.spp

petshop/membership/petshop-10-services.spp

Download original file · Petstore source contents

1domain petshop;23atomic check checkCustomerProfile(Buyer) {4    require(Buyer.name != null && Buyer.name != "", "NAME_REQUIRED");5    require(Buyer.email != null && Buyer.email != "", "EMAIL_REQUIRED");6    require(Buyer.address != null && Buyer.address != "", "ADDRESS_REQUIRED");7    require(Buyer.tier == MemberTier.NORMAL || Buyer.tier == MemberTier.VIP, "INVALID_MEMBER_TIER");8}910atomic calculate registerCustomer(Buyer, Cart) {11    Buyer.wallet = 0;12    Cart.buyer = Buyer;13    Cart.lines = new CartLine[] {14    };15}1617atomic calculate updateProfile(ProfileAgreement, Buyer) {18    Buyer.name = ProfileAgreement.newName;19    Buyer.email = ProfileAgreement.newEmail;20    Buyer.address = ProfileAgreement.newAddress;21    Buyer.tier = ProfileAgreement.newTier;22}2324atomic check checkNewCustomer(Buyer) {25    require(!Buyer, "CUSTOMER_EXISTS");26}2728atomic check checkBuyerCredential(Buyer) {29    require(Buyer.membershipNumber != null && Buyer.membershipNumber != "", "MEMBERSHIP_NUMBER_REQUIRED");30}3132atomic calculate locateBuyerCart(Buyer, Cart) {33    Cart.buyer = Buyer;34}