Exemplo n.º 1
0
 /// <summary>
 /// Get charges for a business for the specified charge class
 /// </summary>
 /// <param name="businessId">The of the business to get charges for</param>
 /// <param name="cultureCode">Culture code used for translations</param>
 /// <param name="isActive">If true, indicate active charges are returned otherwise all charges are returned</param>
 /// <param name="chargeClassTypeEnum">ChargeClassTypeEnum</param>
 /// <returns>A list of charges for the business</returns>
 public List<Charge> GetAllChargesByBusiness(long businessId, string cultureCode = "", bool isActive = true, ChargeClassTypeEnum chargeClassTypeEnum = ChargeClassTypeEnum.Unknown)
 {
     return chargeDao.GetAllChargesByBusiness(businessId, cultureCode, isActive,chargeClassTypeEnum);
 }
Exemplo n.º 2
0
        /// <summary>
        /// Get charges for a business for the specified charge class
        /// </summary>
        /// <param name="businessId">The of the business to get charges for</param>
        /// <param name="cultureCode">Culture code used for translations</param>
        /// <param name="isActive">If true, indicate active charges are returned otherwise all charges are returned</param>
        /// <param name="chargeClassTypeEnum">ChargeClassTypeEnum</param>
        /// <returns>A list of charges for the business</returns>
        public List<Charge> GetAllChargesByBusiness(long businessId, string cultureCode = "", bool isActive = true, ChargeClassTypeEnum chargeClassTypeEnum = ChargeClassTypeEnum.Unknown)
        {
            cultureCode = string.IsNullOrEmpty(cultureCode) ? ConfigHelper.DefaultCultureCode : cultureCode;

            string isActiveSql = isActive ? @" AND   C.IsActive = 1" : string.Empty;

            string filterChargeClass = chargeClassTypeEnum == ChargeClassTypeEnum.Unknown ? string.Empty:string.Format("AND ChargeClassTypeCode = '{0}'", chargeClassTypeEnum.GetCode());
            
            string SQL_STATEMENT = string.Format(@"
                 SELECT C.Id,
                        C.ChargeCategoryId,
                        CC.Name AS ChargeCategoryName,
                        C.Name,
                        c.ChargePriceTypeCode,
                        Dictionary.GetItem(@CultureCode, CA.DctName) as ChargePriceTypeName, 
                        c.ChargeRulesTypeCode,
                        Dictionary.GetItem(@CultureCode, CR.DctName) as ChargeRulesTypeName, 
                        C.ChargeTypeCode,
                        Dictionary.GetItem(@CultureCode, CT.DctName) as ChargeTypeName,
                        C.Reference,
                        C.ChargeCostTypeCode,
                        Dictionary.GetItem(@CultureCode, CCT.DctName) as ChargeCostTypeName,
                        C.CurrencyCode,
                        C.Amount,
                        C.ChildAmount,
                        C.TaxRate,
                        C.MaxPerRoom,
                        C.IsActive,
                        C.ChargeClassTypeCode,
                        Dictionary.GetItem(@CultureCode, CCL.DctName) as ChargeClassTypeName, 
                        C.ChargeFrequencyTypeCode,
                        Dictionary.GetItem(@CultureCode, CF.DctName) as ChargeFrequencyTypeName, 
                        C.IsOnlineDisplay,
                        C.OnlineName,
                        C.OnlineDescription,
                        C.ApplicationDays,
                        C.BookLeadTimeDays,
                        C.LogoId,
                        C.LogoDigest,
                        C.LogoExtension,
                        C.UpdatedByUserId,
                        C.UpdatedDatetime
                FROM    Pricing.Charge C
                INNER JOIN Pricing.ChargeCategory CC ON CC.Id = C.ChargeCategoryId 
                INNER JOIN Pricing.ChargeType CT ON CT.Code = C.ChargeTypeCode
                INNER JOIN Pricing.ChargeCostType CCT ON CCT.Code = C.ChargeCostTypeCode
                LEFT JOIN Pricing.ChargePriceType CA ON CA.Code = C.ChargePriceTypeCode
                LEFT JOIN Pricing.ChargeRulesType CR ON CR.Code = C.ChargeRulesTypeCode
                LEFT JOIN Pricing.ChargeFrequencyType CF ON CF.Code = C.ChargeFrequencyTypeCode
                LEFT JOIN Pricing.ChargeClassType CCL ON CCL.Code = C.ChargeClassTypeCode
                WHERE   CC.BusinessId = @BusinessId
                {0} {1}
                ORDER BY C.ChargeCategoryId", isActiveSql, filterChargeClass);

            var parameters = new List<SqlParameter>
                {
                    DbHelper.CreateParameter(ChargeCategoryMapper.Parameters.BusinessId, businessId),
                    DbHelper.CreateParameter(CultureMapper.Parameters.CultureCode, cultureCode)
                };

            if (chargeClassTypeEnum == ChargeClassTypeEnum.Specials)
            {
                return DbHelper.CreateInstanceList(SQL_STATEMENT, ChargeMapper.MapRecordForSpecials, parameters: parameters);
            }

            return DbHelper.CreateInstanceList(SQL_STATEMENT, ChargeMapper.MapRecordForExtras, parameters: parameters);
        }