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

petshop-15-store-opening.spp

petshop/catalogue/petshop-15-store-opening.spp

Download original file · Petstore source contents

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