⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 reservationsummary.js

📁 能够实现宾馆管理的基本功能。 例如删除
💻 JS
📖 第 1 页 / 共 3 页
字号:
	 */	arrivalDateOnselect: function(input_calendar_text, cal, date) {			//console.log("arrivalDateOnselect args: ", arguments);	        //computes departure date (date selected + nights number selected)				        if(!this.departure_date) this.departure_date  = new Date();	        this.departure_date.setTime(cal.date.getTime() + (this.nights_select_index+1)*Date.DAY + Date.HOUR);  	// ajout d'une heure pour compenser le cas du passage de l'heure d'été à l'heure d'hiver	        //if departure date out of bounds => do nothing	        if(!this.checkDate(this.departure_date))	        {	          return false;	        }	        	        if(cal.dateClicked)	        {	          this.arrival_date = cal.date;	          this.setDateHiddenFieldsValue(cal.date);			  	          if($(input_calendar_text).previous('span.jour')) $(input_calendar_text).previous('span.jour').innerHTML = Calendar._DN[cal.date.getDay()]; 			  	          this.updateDepartureDate();	          $(input_calendar_text).value = date;	          cal.hide();	        }	        	        return true;	        					},		/**	 * methd used by Calendar to disable dates that are before current day and after current + max reservation period	 * 	 * @see Calendar class documentation	 * 	 * @return Boolean	 * 	 */	disableDates: function(dDate, y, m, d)	      {	       	        var now = new Date();	        	        if(dDate.getTime() < now.getTime()-Date.DAY)	        {	          return true;	        }	        	        var max_period = now.getTime() + 	          (Date.DAY*((bookingEngineViewBean.hotelMaxPeriod)? bookingEngineViewBean.hotelMaxPeriod : 405)) -	          (Date.DAY* (this.nights_select_index+1));	       	        if(dDate.getTime() > max_period)	        {	          return true;	        }	        	        return false;	        	      },		/**	 * 	 * check whether the passed date is within reservation bounds	 * 	 * @return Boolean	 * 	 */	checkDate : function(date)	{		var b = true;		var msg = null;		var now = new Date();				//if date is anterior to current day and date.month is not the current month		//the last check (current month check)is done so that we don't get an alert when switching to current month		//in this case an onSelect event is triggered and the date passed is the month previoulsy selected day		//so this day can be anterior to the current day		//but we still want to be able to select a day in the current month		if(date.getTime() < now.getTime() && date.getMonth() != now.getMonth())		{			b = false;			msg = I18N._('calendar',"outOfMinDate"); 			var min_date = new Date();			min_date.setTime(now.getTime());			window.calendar.setDate(min_date);		}		//compputes max reservation date (in time format)		var max_period = now.getTime() + (Date.DAY*((bookingEngineViewBean.hotelMaxPeriod)? bookingEngineViewBean.hotelMaxPeriod : 405));		//check if date is greater than max reservation date		if(date.getTime() >= max_period)		{				b = false;								var max_period_date = new Date(max_period);												msg = 					I18N._('calendar',"outOfMaxDate") + " " +					((max_period_date.getDate() < 10)? "0" : "") + max_period_date.getDate() + '/' + 					((max_period_date.getMonth() < 9)? "0" : "") + (max_period_date.getMonth()+1) + '/' + 					max_period_date.getFullYear();				var safe_date = new Date();				safe_date.setTime(max_period - ((this.nights_select_index+1)*Date.DAY));				window.calendar.setDate(safe_date);		}		if(!b) alert(msg);		return b;	},		/**	 * 	 * sets the values for hidden dates field	 * 	 * @return void	 * 	 */	setDateHiddenFieldsValue : function(date)		{			 $("jour_arrivee").value = date.getDate();			 $("mois_arrivee").value = date.getMonth()+1; // janvier=0			 $("annee_arrivee").value = date.getFullYear();		},			/**	 * adds the number of options to the nb_nuit select box based on the json var	 * also writes the nb of nights where appropriate	 * 	 * @return void	 * 	 */	setupMaxStayDropDown: function(id_select_input)	{		var select = $(id_select_input);		var maxStay = bookingEngineViewBean.hotelMaxStay;		var options_array = select.descendants();		var count = 0;		//empty select box if not empty		if(options_array.length)		{			options_array.each(				function(option)				{					$(option).remove();				}			)		}		//fill select box with bean maxStay value and set default selected value based on bookingEngineViewBean.nightsNumber		for(var i = 1; i <= maxStay; i++)		{			var selected;			if(bookingEngineViewBean.nightsNumber == i)			{				selected = true;				this.nights_select_index = i-1;			}			else			{				selected = false;				this.nights_select_index = 0;			}			var option = new Option(i,i, selected);			//3rd parameter seems to be ignored by ie			//select.options.add(option);			try			{				select.add(option, null);			}			catch(ex)			{				select.add(option);			}			if(selected) var selected_index = i-1;			//new Insertion.Top(select, '<option value="' + i + '">' + i + '</option>');//does not work in ie		}		//for ie		if(select.options[selected_index]) select.options[selected_index].selected = true;		//listens to events and bind appropriate handler		Event.observe(			select,			"change",			function(e)			{				this.maxStayNightsNbSelectAction(select);				}.bind(this)		);		Event.observe(			select,			"keyup",			function(e)			{				this.maxStayNightsNbSelectAction(select);				}.bind(this)		);	},		/**	 * 	 * max stay select box handler	 * 	 * @return void	 * 	 * 	 */	maxStayNightsNbSelectAction: function(select)	{								var date = new Date();			if(bookingEngineViewBean.freeNight ==  true && select.id == "nb_nuit"){				var day = $('rooms-dates-stay-dates').select('input')[1].value;				var month = $('rooms-dates-stay-dates').select('input')[2].value;				var year = $('rooms-dates-stay-dates').select('input')[3].value;				this.arrival_date = new Date(year, month-1, day);			}			else if (this.arrival_date)			{				date.setTime(this.arrival_date.getTime());			}			else {								alert("Error : No arrival date set");							}			date.setTime(date.getTime() + Date.DAY*select.options[select.selectedIndex].value);			if(!this.checkDate(date))			{				select.selectedIndex = this.nights_select_index;				return false;			}			this.nights_select_index = select.selectedIndex;			this.nights_nb = Number(select.options[select.selectedIndex].value);			this.updateDepartureDate();								},		/**	 * 	 * updates departure date and displays it based on arrival date and number of nights	 * 	 * @return void	 * 	 */	updateDepartureDate: function()	{						if(this.arrival_date == undefined) {			alert("Selectionnez une date d'arrivee");			return false;		}		/*var params2update = ['nb_nuit_display', 'nb_nuit', 'nb_nuit_calendar_side'];		for(var i = params2update.length-1; i >= 0; i--)		{			if($(params2update[i]))			{				var select = $(params2update[i]);				//console.log("param départ", params2update[i].replace("nb_nuit", "depart"));			      var departure_date_display_element = $(params2update[i].replace("nb_nuit", "depart"));				  			      //var week_day = departure_date_display_element.down("span.jour");			      				  var date = departure_date_display_element.down("span.date");				  			      //compute new date			      var nights_stay_in_days = parseInt(this.nights_nb);			      var nights_stay_in_ms = nights_stay_in_days * Date.DAY;			      if(!this.departure_date) this.departure_date  = new Date();			      this.departure_date.setTime(			        this.arrival_date.getTime() + 			        nights_stay_in_ms			      );			      //if(week_day) week_day.innerHTML = Calendar._DN[this.departure_date.getDay()];			      var day_unit_zero = (this.departure_date.getDate() < 10)? "0" : '';			      var month_unit_zero = ((Number(this.departure_date.getMonth())+1) < 10)? "0" : '';			      date.innerHTML = this.departure_date.print(Calendar._TT["DEF_DATE_FORMAT"]);			}		}*/				if($('nb_nuit_display'))		{		      			  var select = $('nb_nuit_display');		      var departure_date_display_element = $("depart_display");		      //var week_day = departure_date_display_element.down("span.jour");		      var date = departure_date_display_element.down("span.date");		      //compute new date		      var nights_stay_in_days = parseInt(this.nights_nb);		      var nights_stay_in_ms = nights_stay_in_days * Date.DAY;		      if(!this.departure_date) this.departure_date  = new Date();		      this.departure_date.setTime(		        this.arrival_date.getTime() + nights_stay_in_ms + Date.HOUR	// ajout d'une heure pour compenser le cas du passage de l'heure d'été à l'heure d'hiver		      );		      //if(week_day) week_day.innerHTML = Calendar._DN[this.departure_date.getDay()];		      var day_unit_zero = (this.departure_date.getDate() < 10)? "0" : '';		      var month_unit_zero = ((Number(this.departure_date.getMonth())+1) < 10)? "0" : '';		      date.innerHTML = this.departure_date.print(Calendar._TT["DEF_DATE_FORMAT"]);		}				if(document.getElementById('arrivee_calendar_side'))		{		      //alert("calendar side");			  var select = $('nb_nuit_calendar_side');		      var departure_date_display_element = $("depart_calendar_side");		      //var week_day = departure_date_display_element.down("span.jour");		      var date = departure_date_display_element.down("span.date");		      //compute new date		      var nights_stay_in_days = parseInt(this.nights_nb);		      var nights_stay_in_ms = nights_stay_in_days * Date.DAY;		      if(!this.departure_date) this.departure_date  = new Date();		      this.departure_date.setTime(		        this.arrival_date.getTime() + nights_stay_in_ms + Date.HOUR	// ajout d'une heure pour compenser le cas du passage de l'heure d'été à l'heure d'hiver		      );		     // if(week_day) week_day.innerHTML = Calendar._DN[this.departure_date.getDay()];		      var day_unit_zero = (this.departure_date.getDate() < 10)? "0" : '';		      var month_unit_zero = ((Number(this.departure_date.getMonth())+1) < 10)? "0" : '';		      date.innerHTML = this.departure_date.print(Calendar._TT["DEF_DATE_FORMAT"]);		}				if(this.getBookingEngineViewBean().displayDate == true && document.body.id == "dates-et-nb-chambres")		{		     			 var select = $('nb_nuit');		      var departure_date_display_element = $("depart");		      var week_day = departure_date_display_element.down("span.jour");		      var date = departure_date_display_element.down("span.date");		      //compute new date		      var nights_stay_in_days = parseInt(this.nights_nb);		      var nights_stay_in_ms = nights_stay_in_days * Date.DAY;		      if(!this.departure_date) this.departure_date  = new Date();		      this.departure_date.setTime(		        this.arrival_date.getTime() + nights_stay_in_ms + Date.HOUR	// ajout d'une heure pour compenser le cas du passage de l'heure d'été à l'heure d'hiver		      );		      if(week_day) week_day.innerHTML = Calendar._DN[this.departure_date.getDay()];		      var day_unit_zero = (this.departure_date.getDate() < 10)? "0" : '';		      var month_unit_zero = ((Number(this.departure_date.getMonth())+1) < 10)? "0" : '';		      date.innerHTML = this.departure_date.print(Calendar._TT["DEF_DATE_FORMAT"]);		}			},		/**	 *  displays a link to open the user basket popup	 * the link is displayed if the basketViewBean.displayBasket ppty is set to true	 * the url of the popup is retrieved from: basketViewBean.basketUrl	 * 	 * @return void	 * 	 */	setupBasketLink: function() {			var basket_link_container = $('basket_link_container');		if(basket_link_container) {						var basket_link_element = basket_link_container.down('a');					}				var basket_bean = this.getBasketViewBean();	            //do not display the link to view the user basket if we are on these two pages        if((document.body.id != 'detail-clients') && (document.body.id != 'confirmation')){                    if((basket_bean && basket_bean.displayBasket) && basket_link_element) {                                                basket_link_container.setStyle({display: 'block'});                                Event.observe(                        basket_link_element,                        'click',                        function(e) {                                                        Event.stop(e);                                                        if(this.basket_popup) {                                this.basket_popup.close();                            }                                                        this.basket_popup = window.open(basket_bean.basketUrl,'basket_popup','width=750,height=300');                                                    }.bind(this)                                                        );                            }            else if(basket_link_container) {                                basket_link_container.hide();                            }        }	},	/* mise à jour du titre de la page */		setTitle: function() {			var url = location.host;			var brand = url.split(".");			brand = brand[1].toLowerCase();			switch(brand) {			case "accorhotels": 		var tit = 'AccorHotels.com'; break;			case "all-seasons-hotels": 		var tit = 'Hôtels all seasons'; break;			case "etaphotel": 			var tit = 'Etap Hotel'; break;			case "hotelformule1": 	var tit = 'Hotel Formule 1'; break;			case "ibishotel": 			var tit = 'Ibis'; break;			case "mercure": 				var tit = 'Mercure'; break;			case "novotel": 				var tit = 'Novotel'; break;			case "sofitel": 				var tit = 'Sofitel Hotels'; break;			case "suitehotel": 		var tit = 'Suite Hotel'; break;			case "accorthalassa": 	var tit = 'Accor Thalassa'; break;			case "pullmanhotels": 	var tit = 'Pullman'; break;			default : 							var tit = 'AccorHotels.com'; break;		}			tit+=": "+I18N._('title-reservation','title'); 			document.title=tit;	}		}core.push(ReservationSummary);

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -