public class OrderAppService {

    public OrderAppService() {
    }

    public void placeOrder(OrderTO orderTO)
    throws AccountException {
        Company company = null;
        Account account = null;

        String companyId = orderTO.companyId;
        String accountId = orderTO.accountId;

        // Wyszukanie firmy
        company = getCompany(companyId);

        // Wyszukanie konta
        account = company.getAccount(accountId);

        // dodanie zamwienia do konta
        Order order = new Order(orderTO);

        // obliczenie nalenoci
        calculateDiscount(company, account, order);

        account.addOrder(order);
        AccountManager accountManager =
            account.getAccountManager();

        // Wysanie listu email do zarzdcy kont z informacj 
        // o nowym koncie
        EmailAppService emailAppService =
            new EmailAppService();
        emailAppService.notifyAccountManager(accountManager,
            order);
    }

    public void calculateDiscount(Company company,
        Account account, Order order) {
    }

}