public admin_shop get_shop(string sShopId)
    {
        StringBuilder sb = new StringBuilder();

        admin_shop shop = new admin_shop();

        string sSql =
            "select s.id, s.parent_name, s.name, s.shop_external_id, c.value_1 percent, accept_terminal_enrollment, enrollment_sms_text " +
            "from shop s, shop_coupon sc, coupon c, coupon_type ct  " +
            "where  " +
            "s.id = " + sShopId + " and  " +
            "sc.shop_id = s.id and  " +
            "c.id = sc.coupon_id and  " +
            "c.coupon_type_id=ct.id and  " +
            "ct.name='enrollment_loyalty_discount'";

        GLOBAL_SQL_CONN conn = new GLOBAL_SQL_CONN(this);

        try
        {
            GLOBAL_SQL_COMMAND command = new GLOBAL_SQL_COMMAND(sSql, conn);


            GLOBAL_SQL_READER reader = new GLOBAL_SQL_READER(command);

            if (reader.Read())
            {
                shop.iId = (int)reader.c("id");
                shop.sParentName = (string)reader.c("parent_name");
                shop.sName = (string)reader.c("name");
                shop.sMerchantId = (string)reader.c("shop_external_id");
                shop.sSmsText = (string)reader.c("enrollment_sms_text");
                shop.iLoyaltyPercent = (int)reader.c("percent");
                shop.bAcceptTerminalEnrollment = (bool)reader.c("accept_terminal_enrollment");
            } else
                shop = null;
        } catch (Exception e)
        {
            shop = null;
        } finally
        {
            conn.Close();
        }

        if (shop == null)
            return get_shop_heading_only(sShopId);

        return shop;
    }
    private admin_shop get_shop_heading_only(string sShopId)
    {
        StringBuilder sb = new StringBuilder();

        admin_shop shop = new admin_shop();

        string sSql =
            "select s.id, s.parent_name,s.shop_external_id, s.name, accept_terminal_enrollment, enrollment_sms_text " +
            "from shop s, shop_coupon sc, coupon c, coupon_type ct  " +
            "where  " +
            "s.id = " + sShopId;

        GLOBAL_SQL_CONN conn = new GLOBAL_SQL_CONN(this);

        try
        {
            GLOBAL_SQL_COMMAND command = new GLOBAL_SQL_COMMAND(sSql, conn);


            GLOBAL_SQL_READER reader = new GLOBAL_SQL_READER(command);

            if (reader.Read())
            {
                shop.iId = (int)reader.c("id");
                shop.sParentName = (string)reader.c("parent_name");
                shop.sMerchantId = (string)reader.c("shop_external_id");
                shop.sSmsText = (string)reader.c("enrollment_sms_text");
                shop.bAcceptTerminalEnrollment = (bool)reader.c("accept_terminal_enrollment");
                shop.sName = (string)reader.c("name");
            }
        } catch (Exception e)
        {
            shop = null;
        } finally
        {
            conn.Close();
        }
        return shop;
    }
    public List<admin_shop> get_all_shops(string sChainId, bool bEnrollmentAcceptedInTerminal)
    {
        StringBuilder sb = new StringBuilder();

        List<admin_shop> shopList = new List<admin_shop>();

        string sSql =
            "select id, name,shop_external_id,  accept_terminal_enrollment from shop " +
            "where parent_shop='" + sChainId + "' and accept_terminal_enrollment=" + bEnrollmentAcceptedInTerminal.ToString() + " order by name";

        GLOBAL_SQL_CONN conn = new GLOBAL_SQL_CONN(this);

        try
        {
            GLOBAL_SQL_COMMAND command = new GLOBAL_SQL_COMMAND(sSql, conn);
            GLOBAL_SQL_READER reader = new GLOBAL_SQL_READER(command);

            while (reader.Read())
            {
                admin_shop shop = new admin_shop();

                shop.iId = (int)reader.c("id");
                shop.sName = (string)reader.c("name");
                shop.sMerchantId = (string)reader.c("shop_external_id");
                shop.bAcceptTerminalEnrollment = (bool)reader.c("accept_terminal_enrollment");
                shopList.Add(shop);
            }
        } catch (Exception e)
        {
            shopList = null;
        } finally
        {
            conn.Close();
        }
        return shopList;
    }