예제 #1
0
        public List <CLayer.Rates> GetCalcDailyRates(long accommodationId)
        {
            List <DataPlug.Parameter> param  = new List <DataPlug.Parameter>();
            List <CLayer.Rates>       result = new List <CLayer.Rates>();

            param.Add(Connection.GetParameter("pAccommodationId", DataPlug.DataType._BigInt, accommodationId));
            DataTable dt = Connection.GetTable("ratesaccomodation_GetCalcDailyRates", param);

            CLayer.Rates rt1;
            foreach (DataRow dr in dt.Rows)
            {
                rt1                 = new CLayer.Rates();
                rt1.RateFor         = Connection.ToInteger(dr["RateFor"]);
                rt1.RateId          = Connection.ToLong(dr["RateId"]);
                rt1.AccommodationId = accommodationId;
                rt1.DailyRate       = Connection.ToDecimal(dr["DailyRate"]);
                rt1.CalcDailyRate   = Connection.ToDecimal(dr["CalcDailyRate"]);
                rt1.GuestRate       = Connection.ToDecimal(dr["GuestRate"]);
                rt1.LongTermRate    = Connection.ToDecimal(dr["LongTermRate"]);
                rt1.MonthlyRate     = Connection.ToDecimal(dr["MonthlyRate"]);
                rt1.WeeklyRate      = Connection.ToDecimal(dr["WeeklyRate"]);
                result.Add(rt1);
            }
            return(result);
        }
예제 #2
0
        //**Added by rahul on 04/03/2020
        //*This is for getting rates for property Accommodation for API
        public List <CLayer.Rates> GetAccommodationRatesForAPI(string AccIds, DateTime checkIn, DateTime checkOut, int noOfDays, CLayer.Role.Roles rateType, CLayer.Role.Roles defaultType)
        {
            List <DataPlug.Parameter> param = new List <DataPlug.Parameter>();

            param.Add(Connection.GetParameter("pAccs", DataPlug.DataType._Varchar, AccIds));
            param.Add(Connection.GetParameter("pCheckIn", DataPlug.DataType._Date, checkIn));
            param.Add(Connection.GetParameter("pCheckOut", DataPlug.DataType._Date, checkOut));
            param.Add(Connection.GetParameter("pRateType", DataPlug.DataType._Int, rateType));
            param.Add(Connection.GetParameter("pDefaultRateType", DataPlug.DataType._Int, (int)defaultType));
            param.Add(Connection.GetParameter("pBookingDayCount", DataPlug.DataType._Int, (int)noOfDays));
            DataTable dt = Connection.GetTable("accommodation_GetAvailabilityAndRateForAPI", param);

            List <CLayer.Rates> result = new List <CLayer.Rates>();

            CLayer.Rates rt;
            foreach (DataRow dr in dt.Rows)
            {
                rt = new CLayer.Rates();
                rt.AccommodationId      = Connection.ToLong(dr["AccommodationId"]);
                rt.Amount               = Connection.ToDecimal(dr["Amount"]);
                rt.GuestRate            = Connection.ToDecimal(dr["GuestRate"]);
                rt.StartDate            = Connection.ToDate(dr["startdate"]);
                rt.EndDate              = Connection.ToDate(dr["enddate"]);
                rt.RateType             = Connection.ToInteger(dr["AType"]);
                rt.NoofAcc              = Connection.ToInteger(dr["noofacc"]);
                rt.PurchaseRateAfterTax = Connection.ToDecimal(dr["DailyRate"]);
                result.Add(rt);
            }
            return(result);
        }
예제 #3
0
        public string DynamicRateSave()
        {
            try
            {
                // update rates for all  property

                List <CLayer.Property> pr = BLayer.Property.GetAllPropertiesForratesave();

                if (pr.Count > 0)
                {
                    foreach (CLayer.Property ProId in pr)
                    {
                        //get all accomodation by propertyid

                        List <CLayer.Accommodation> acc = BLayer.Accommodation.GetAllAccByPropertyid(ProId.PropertyId);
                        if (acc.Count > 0)
                        {
                            foreach (CLayer.Accommodation accid in acc)
                            {
                                //get all rates by accomodation

                                List <CLayer.Rates> allrts = BLayer.Rate.GetAllRatesByAccId(accid.AccommodationId);

                                if (allrts.Count > 0)
                                {
                                    if (allrts != null)
                                    {
                                        foreach (CLayer.Rates ratedt in allrts)
                                        {
                                            CLayer.Rates dt = new CLayer.Rates();
                                            dt.AccommodationId = accid.AccommodationId;
                                            dt.RateId          = ratedt.RateId;
                                            dt.RateFor         = ratedt.RateFor;
                                            dt.DailyRate       = ratedt.DailyRate;
                                            dt.WeeklyRate      = ratedt.WeeklyRate;
                                            dt.MonthlyRate     = ratedt.MonthlyRate;
                                            dt.LongTermRate    = ratedt.LongTermRate;
                                            dt.GuestRate       = ratedt.GuestRate;
                                            dt.StartDate       = ratedt.StartDate;
                                            dt.EndDate         = ratedt.EndDate;
                                            dt.UpdatedBy       = ratedt.UpdatedBy;
                                            BLayer.Rate.DynamicSave(dt);
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
                return("true");
            }
            catch (Exception ex)
            {
                Common.LogHandler.HandleError(ex);
            }
            return("false");
        }
예제 #4
0
 public static long Save(CLayer.Rates data)
 {
     DataLayer.Rate dr = new DataLayer.Rate();
     if (data.WeeklyRate < 1)
     {
         data.WeeklyRate = data.DailyRate;
     }
     if (data.MonthlyRate < 1)
     {
         data.MonthlyRate = data.DailyRate;
     }
     if (data.LongTermRate < 1)
     {
         data.LongTermRate = data.DailyRate;
     }
     return(dr.Save(data));
 }
예제 #5
0
        public List <CLayer.Rates> GetAll(DateTime startDate, DateTime endDate, long accommodationId)
        {
            List <CLayer.Rates> result = new List <CLayer.Rates>();
            StringBuilder       sql    = new StringBuilder();

            sql.Append("Select RateId,RateFor,DailyRate,MonthlyRate,WeeklyRate,LongTermRate,GuestRate,StartDate,EndDate From rates Where StartDate='");
            sql.Append(startDate.Year);
            sql.Append("-");
            sql.Append(startDate.Month);
            sql.Append("-");
            sql.Append(startDate.Day);
            sql.Append("' And EndDate='");
            sql.Append(endDate.Year);
            sql.Append("-");
            sql.Append(endDate.Month);
            sql.Append("-");
            sql.Append(endDate.Day);
            sql.Append("' And AccommodationId=");
            sql.Append(accommodationId);

            DataTable dt = Connection.GetSQLTable(sql.ToString());

            CLayer.Rates rt;
            foreach (DataRow dr in dt.Rows)
            {
                rt                 = new CLayer.Rates();
                rt.RateFor         = Connection.ToInteger(dr["RateFor"]);
                rt.RateId          = Connection.ToLong(dr["RateId"]);
                rt.AccommodationId = accommodationId;
                rt.DailyRate       = Connection.ToDecimal(dr["DailyRate"]);
                rt.MonthlyRate     = Connection.ToDecimal(dr["MonthlyRate"]);
                rt.WeeklyRate      = Connection.ToDecimal(dr["WeeklyRate"]);
                rt.LongTermRate    = Connection.ToDecimal(dr["LongTermRate"]);
                rt.GuestRate       = Connection.ToDecimal(dr["GuestRate"]);
                rt.StartDate       = Connection.ToDate(dr["StartDate"]);
                rt.EndDate         = Connection.ToDate(dr["EndDate"]);
                result.Add(rt);
            }

            return(result);
        }
예제 #6
0
        public List <CLayer.Rates> GetAll(long accommodationId)
        {
            List <DataPlug.Parameter> param = new List <DataPlug.Parameter>();

            param.Add(Connection.GetParameter("pAccommodationId", DataPlug.DataType._BigInt, accommodationId));
            DataTable           dt     = Connection.GetTable("rates_GetAll", param);
            List <CLayer.Rates> result = new List <CLayer.Rates>();

            CLayer.Rates temp;
            foreach (DataRow dr in dt.Rows)
            {
                temp                 = new CLayer.Rates();
                temp.StartDate       = Connection.ToDate(dr["StartDate"]);
                temp.EndDate         = Connection.ToDate(dr["EndDate"]);
                temp.AccommodationId = Connection.ToLong(dr["AccommodationId"]);
                temp.UpdatedByUser   = Connection.ToString(dr["Name"]);
                temp.UpdatedDate     = Connection.ToDate(dr["UpdatedDate"]);
                result.Add(temp);
            }
            return(result);
        }
예제 #7
0
        public long DynamicSave(CLayer.Rates data)
        {
            List <DataPlug.Parameter> param = new List <DataPlug.Parameter>();
            Boolean isB2c = (data.RateFor == (int)CLayer.Role.Roles.Customer);

            param.Add(Connection.GetParameter("pAccommodationId", DataPlug.DataType._BigInt, data.AccommodationId));
            param.Add(Connection.GetParameter("pRateId", DataPlug.DataType._BigInt, data.RateId));
            param.Add(Connection.GetParameter("pRateFor", DataPlug.DataType._Int, data.RateFor));
            param.Add(Connection.GetParameter("pDailyRate", DataPlug.DataType._Decimal, Math.Round(data.DailyRate)));
            param.Add(Connection.GetParameter("pWeeklyRate", DataPlug.DataType._Decimal, Math.Round(data.WeeklyRate)));
            param.Add(Connection.GetParameter("pMonthlyRate", DataPlug.DataType._Decimal, Math.Round(data.MonthlyRate)));
            param.Add(Connection.GetParameter("pLongTermRate", DataPlug.DataType._Decimal, Math.Round(data.LongTermRate)));
            param.Add(Connection.GetParameter("pGuestRate", DataPlug.DataType._Decimal, Math.Round(data.GuestRate)));
            param.Add(Connection.GetParameter("pStartDate", DataPlug.DataType._Date, data.StartDate));
            param.Add(Connection.GetParameter("pEndDate", DataPlug.DataType._Date, data.EndDate));
            param.Add(Connection.GetParameter("IsB2CMarkup", DataPlug.DataType._Bool, isB2c));
            param.Add(Connection.GetParameter("pStatus", DataPlug.DataType._Int, data.Status));
            param.Add(Connection.GetParameter("pUser", DataPlug.DataType._BigInt, data.UpdatedBy));

            object obj = Connection.ExecuteQueryScalar("dynamicrates_Save", param);

            return(Connection.ToLong(obj));
        }
예제 #8
0
        public string  SaveAccRate(Models.RateValueModel data)
        {
            CLayer.Rates rat = new CLayer.Rates();
            rat.RateId          = data.RRateId;
            rat.AccommodationId = data.AccommodationId;
            long uid = 0;

            long.TryParse(User.Identity.GetUserId(), out uid);
            //Get commission
            CLayer.RateCommission rc = BLayer.Property.GetCommission(BLayer.Accommodation.GetPropertyId(data.AccommodationId));
            if (rc == null)
            {
                return("false");
            }
            rat.UpdatedBy = uid;
            //find dates
            int days = DateTime.DaysInMonth(2014, data.StartMonth);

            if (days < data.StartDay)
            {
                data.StartDay = days;
            }
            rat.StartDate = new DateTime(DateTime.Today.Year, data.StartMonth, data.StartDay);
            days          = DateTime.DaysInMonth(2014, data.EndMonth);
            if (days < data.EndDay)
            {
                data.EndDay = days;
            }
            rat.EndDate = new DateTime(DateTime.Today.Year, data.EndMonth, data.EndDay);

            //Save Regular rate
            rat.RateFor      = (int)CLayer.Role.Roles.Customer;
            rat.RateId       = data.RRateId;
            rat.DailyRate    = data.RCDaily;
            rat.WeeklyRate   = data.RCWeekly;
            rat.MonthlyRate  = data.RCMonthly;
            rat.LongTermRate = data.RCLong;
            rat.GuestRate    = data.RCGuest;

            BLayer.Rate.Save(rat);

            // Corporate
            rat.RateFor      = (int)CLayer.Role.Roles.Corporate;
            rat.RateId       = data.CRateId;
            rat.DailyRate    = data.CCDaily;
            rat.WeeklyRate   = data.CCWeekly;
            rat.MonthlyRate  = data.CCMonthly;
            rat.LongTermRate = data.CCLong;
            rat.GuestRate    = data.CCGuest;

            BLayer.Rate.Save(rat);

            ////Supplier
            //rat.RateFor = (int)CLayer.Role.Roles.Supplier;
            //rat.RateId = data.SRateId;
            //rat.DailyRate = data.SCDaily;
            //rat.WeeklyRate = data.SCWeekly;
            //rat.MonthlyRate = data.SCMonthly;
            //rat.GuestRate = data.SCGuest;

            //BLayer.Rate.Save(rat, rc.Supplier);

            ////Travel Agent
            //rat.RateFor = (int)CLayer.Role.Roles.Agent;
            //rat.RateId = data.TRateId;
            //rat.DailyRate = data.TCDaily;
            //rat.WeeklyRate = data.TCWeekly;
            //rat.MonthlyRate = data.TCMonthly;
            //rat.GuestRate = data.TCGuest;

            //BLayer.Rate.Save(rat, rc.TravelA);
            return("true");
        }