Esempio n. 1
0
        /// <summary>
        /// Gets the active shipping calculation per store
        /// </summary>
        /// <param name="storeId"></param>
        /// <returns></returns>
        private static ShippingCalculationEnum GetActiveShippingCalculationID(int storeId)
        {
            ShippingCalculationEnum calcId = ShippingCalculationEnum.Unknown;
            string query = "SELECT ShippingCalculationID FROM ShippingCalculationStore WITH (NOLOCK) WHERE StoreId = {0}".FormatWith(storeId);

            using (SqlConnection conn = new SqlConnection(DB.GetDBConn()))
            {
                conn.Open();

                using (IDataReader rs = DB.GetRS(query, conn))
                {
                    if (rs.Read())
                    {
                        calcId = (ShippingCalculationEnum)DB.RSFieldInt(rs, "ShippingCalculationID");
                    }

                    rs.Close();
                    rs.Dispose();
                }

                conn.Close();
                conn.Dispose();
            }

            return(calcId);
        }
Esempio n. 2
0
        /// <summary>
        /// Gets the active shiping calculation, multi-store aware
        /// </summary>
        /// <returns></returns>
        static public Shipping.ShippingCalculationEnum GetActiveShippingCalculationID()
        {
            // default from the appconfig
            ShippingCalculationEnum calcMode = (ShippingCalculationEnum)AppLogic.AppConfigUSInt("DefaultShippingCalculationID");

            // let's try for a store specific shipping calculation
            int storeId = AppLogic.StoreID();
            ShippingCalculationEnum storeCalcMode = GetActiveShippingCalculationID(storeId);

            // unknown means we didn't find any for that store
            if (storeCalcMode == ShippingCalculationEnum.Unknown)
            {
                // let's fallback to the default store
                storeId       = AppLogic.DefaultStoreID();
                storeCalcMode = GetActiveShippingCalculationID(storeId);
            }

            // if we did find a store specific calc mode use that, which will be almost always unless not configured
            if (storeCalcMode != ShippingCalculationEnum.Unknown)
            {
                calcMode = storeCalcMode;
            }

            return(calcMode);
        }