petshop-15-store-opening.spp
petshop/catalogue/petshop-15-store-opening.spp
Download original file · Petstore source contents
1domain petshop;23atomic calculate initializeCatalog(4Goods[],5StockLine[],6StockSupply[],7Merchant,8SettlementAccount,9StoreOpeningAgreement10) {11for (Goods product : Goods[]) {12product.active = true;13switch (product.sku) {14case "CAT-001":15product.price = 1200;16break;17case "FOOD-001":18product.price = 29.90;19break;20case "TOY-001":21product.price = 12.35;22break;23case "DOG-001":24product.price = 1800;25break;26}27}28initializeInventory;29Merchant.tradingName = StoreOpeningAgreement.tradingName;30Merchant.shopName = StoreOpeningAgreement.shopName;31Merchant.cash = 0;32SettlementAccount.accountNumber = "EXTERNAL-SETTLEMENT";33SettlementAccount.balance = 0;34}3536Scenario serial initializeStore(37Goods,38Goods[],39StockLine[],40StockSupply[],41Merchant,42SettlementAccount,43StoreOpeningAgreement44) {45configureStoreOpening;46configureMerchantLookup;47findMerchant;48if (!Merchant) {49findPerson(Merchant);50identify(Merchant);51prepareProductSelection;52importCatalogue;53initializeCatalog;54transaction {55insertGoods(Goods[]);56insertStockLine;57insertStockSupply;58insertMerchant;59insertSettlementAccount;60}61}62}6364atomic calculate configureStoreOpening(StoreOpeningAgreement) {65if (StoreOpeningAgreement.tradingName == null || StoreOpeningAgreement.tradingName == "") {66StoreOpeningAgreement.tradingName = MERCHANT_NAME;67}68if (StoreOpeningAgreement.shopName == null || StoreOpeningAgreement.shopName == "") {69StoreOpeningAgreement.shopName = SHOP_NAME;70}71}7273atomic calculate configureMerchantLookup(Merchant) {74Merchant.customerNumber = "MERCHANT-001";75}