Реализованный пример

Порой пользователю на сайте необходимо рассчитать стоимость какой-либо услуги. На помощь разработчику сайта, для того, чтобы удовлетворить желание посетителя приходит JavaScript.
Здесь разберем момент расчета стоимости услуги на примере кружка робототехники.



<form role="form" action='' method='POST' >


<div>Направление</div>

   
   <select onchange = "sayMya();" name="direction" class="nameOrg" data-tilda-req="1" style="color:#000000; border:3px solid #59c0df; border-radius: 20px; -moz-border-radius: 20px; -webkit-border-radius: 20px;"> 
<option value="Робототехника" selected="selected">Робототехника</option>
<option value="Шахматы8" >Шахматы 8 занятий</option>
<option value="Шахматы4" >Шахматы 4 занятия</option>
   </select>  

<div> Площадка</div>

 
  <select name="place" onchange = "sayMya();" class="Place" data-tilda-req="1" style="color:#000000; border:3px solid #59c0df; border-radius: 20px; -moz-border-radius: 20px; -webkit-border-radius: 20px;"> 
<option value="Беловежская" selected="selected">Беловежская</option>
<option value="Строгино" >Строгино</option>
<option value="Жулебино" >Жулебино</option>
<option value="Свиблово" >Свиблово</option>
<option value="Звенигород" >Звенигород</option>
<option value="Можайск" >Можайск</option>
  </select> 

<div>Количество оплачиваемых месяцев (скидки при оплате нескольких месяцев сразу)</div>

 <select onchange = "sayMya();" name="nummonth" class="Price" data-tilda-req="1" style="color:#000000; border:3px solid #59c0df; border-radius: 20px; -moz-border-radius: 20px; -webkit-border-radius: 20px;"> 
<option value="Одно занятие" >Одно занятие</option>
<option value="1" >1 месяц</option>
<option value="2" >2 месяца</option>
<option value="3 - 10% скидка" selected="selected">3 месяца - 10% скидка</option>
<option value="4 - 10% скидка" >4 месяца - 10% скидка</option>
<option value="5 - 10% скидка" >5 месяцев - 10% скидка</option>
 </select>

<div> Сумма оплаты</div>

  <input onchange="changeSum();" type="text" name="amountpay" class="t-input js-tilda-rule newSum" value="" placeholder="3000" data-tilda-req="1" style="color:#000000; border:3px solid #59c0df; border-radius: 20px; -moz-border-radius: 20px; -webkit-border-radius: 20px;"> 
</form>

// При загрузке страницы инициализируем окно суммы
	window.onload = function(){
		var newSum = undefined;
		sayMya(newSum);
	}
	// Главная функция ("СкажиМяу")
	function sayMya(newSum)
	{		
		cursorPrice = $('.Price :selected').val();	// Получает значение из селектора с классом Price
		cursorOrg 	= $('.nameOrg :selected').val();// Получает значение из селектора с классом nameOrg
		cursorPlace = $('.Place :selected').val();	// Получает значение из селектора с классом Place
		
		var isMonth = false;						// булева переменная, определяет выбрал пользователь оплату по месяцам или по дням
		var discount = 1;							// Расчет скидки (0..1)
		var months = 1;								// Кол-во оплаченных месяцев
		var price = 1000;							// Цена за курс
		
		
		// Смотрим данные селектора с классом Price и определяем скидку и параметр isMonth
		switch(cursorPrice)
		{
			case ('Одно занятие')	:
				isMonth = false;
				discount = 1;
			break;
			
			case ('1'):
			case ('2'):
				isMonth = true;
				discount = 1;
			break;
			
			case ('3 - 10% скидка') :
			case ('4 - 10% скидка') :
			case ('5 - 10% скидка') :
				isMonth = true;
				discount = 0.9;
			break;
			
			default : 
				break;
		}
		
		// Смотрим данные селектора с классом Price и кол-во месяцев (только месяцев!!!)
		switch(cursorPrice)
		{
			case ('1') : months = 1; break; 
			case ('2') : months = 2; break; 
			case ('3 - 10% скидка') : months = 3; break; 
			case ('4 - 10% скидка') : months = 4; break; 
			case ('5 - 10% скидка') : months = 5; break; 
		}
		// Смотрим данные селектора с классом Place и определяем цену за месяц/день
		// в зависимости от локации индивида
		switch(cursorPlace)
		{
			case ('Беловежская') : 
				switch(cursorOrg) 
				{
					case ('Робототехника') 	: price = isMonth ? 3000 : 1000; 	break;
					case ('Шахматы8') 		: price = isMonth ? 3200 : 700;    	break;
					case ('Шахматы4') 		: price = isMonth ? 2000 : 700;    	break;
					default : 													break;
				}
				break;
			case ('Строгино') : 
				switch(cursorOrg) 
				{
					case ('Робототехника') 	: price = isMonth ? 3000 : 1000; 	break;
					case ('Шахматы8') 		: price = 0;    					break;
					case ('Шахматы4') 		: price = 0;				    	break;
					default : 													break;
				}
				break;
			case ('Свиблово') :
				switch(cursorOrg) 
				{
					case ('Робототехника') 	: price = isMonth ? 3000 : 1000; 	break;
					case ('Шахматы8') 		: price = 0;    					break;
					case ('Шахматы4') 		: price = 0;				    	break;
					default : 													break;
				}
				break;
			case ('Жулебино') : 
				switch(cursorOrg) 
				{
					case ('Робототехника') 	: price = isMonth ? 3000 : 1000; 	break;
					case ('Шахматы8') 		: price = 0;    					break;
					case ('Шахматы4') 		: price = 0;				    	break;
					default : 													break;
				}
				break;
			 
			case ('Звенигород') : 
				switch(cursorOrg) 
				{
					case ('Робототехника') 	: price = isMonth ? 3000 : 1000; 	break;
					case ('Шахматы8') 		: price = isMonth ? 3200 : 700; 	break;
					case ('Шахматы4') 		: price = isMonth ? 2000 : 700;    	break;
					default : 													break;
				}
				break;
			case ('Можайск') : 
				switch(cursorOrg) 
				{
					case ('Робототехника') 	: price = isMonth ? 2500 : 850; 	break;
					case ('Шахматы8') 		: price = 0;			 			break;
					case ('Шахматы4') 		: price = 0;			    		break;
					default : 													break;
				}
				break;
			default : break;
		}
		// Расчитываем сумму (если параметром newSum не передается значение), если передается - count = newSum
		var count = newSum === undefined ? price * months * discount : newSum;
		
		// Создаем переменную согласно требований Тильды
		var value = '#order:' + cursorOrg + ',' + cursorPlace + ',' + cursorPrice + '=' + count;
		
		// Полученное значение вставляем в качестве ссылки
		//document.getElementById('abc').href = value;
		
		// Сумму исходя из бизнес-логики вставляем в поле "Сумма к оплате"
		document.getElementsByName('amountpay')[0].value = count;
	}
	
	// Функция, выполняющаяся при изменении значения в поле "Сумма к оплате"
	function changeSum(){
		var url = document.getElementById('abc').href;
		var newSum = document.getElementsByName('amountpay')[0].value;
		sayMya(newSum);
		//	alert(newSum);
	}

Осторожно, трафик — ну очень много фотографий.
Расскажу о своей первой поездке в Сибирь, которая продлилась 6 дней, она приходилась на октябрь месяц. И, ввиду того, что я не могу по определенным причинам выезжать из России и стран Таможенного (или Евразийского, я хрен знает что сейчас) Союза — поехал смотреть Сибирь.

Выбор города не очевиден, да… почему, например, сразу не Владивосток или Хабаровск, а Новосиб? Все просто — меня там ждали, а во-вторых, мои представления о Сибири были пространными — казалось что за Уралом все города примерное одинаковые. После некоторого гугления в интернете, понял, что Новосиб — «город без лица», как называет его Варламов (свое мнение по этому поводу я выскажу ниже). Забегая вперед, скажу, что уже после моей поездки бывалые коллеги рассказывали, что в советские годы Новосиб произвел на них удручающее впечатление, так как были они зимой. Я же был в конце сентября-начале октябре уже в Современной России. И так, общий экскурс провел, теперь погнали…

Перелет

Добраться до Новосибирска на самолете, мне кажется, не составляет больших проблем. Огромный выбор рейсов абсолютно разных в ценовой категории авиакомпаний в разное время. Полет без пересадок составил 4 часа, особенно если лететь ночным рейсом абсолютно незамечаешь перелета, если спать) Я почему-то после рабочего дня не мог заснуть. Прилетая в Новосиб попадаешь в другую часовую зону с разницей +4 часа. Немного сбивает с толку, но из-за того, что я не спал я и так был в некоторой прострации…

Из аэропорта Толмачево в Новосибирк ходят рейсовые автобусы, доехать до ближайшего метро на левом берегу Оби — 33 рубля. У меня была небольшой чемодан, который я взял в ручную кладь, поэтому ехать в рейсовом ПАЗике было вполне удобно и дешево. Такси до центра города будет стоить от 400 рублей, если воспользоваться Убером. Местные бомбилы хотели втолкнуть мне поездку еще с двумя пассажирами, делая крюк, а потом заезжая по моему адресу за 500 рублей. Я знал про автобус, и чисто ради интереса при них начал открывать Убер, чтобы сравнить цены. Увидев, что я делаю мужики начали оживленно мне объяснять, что цена примерно одна и та же, а аргумент что на 100 рублей дороже и меня повезут не прямиком по адресу апеллировали методом «да, бля, парень, какая разница?». Тут подъехал автобус и я помахал ручкой порядком заебавшим меня бизнесменам коих во всех аэропортах Раисси мильон. Левый берег Оби для жителей правого берега — гетто. Левый берег — промышленный, правый берег — культурный, на правом берегу — центр Новосиба. Центром города является Театр Оперы и Балета, рядом с ним я и жил.

Первые впечатления

Холодно. Прилетев и спустившись по трапу, несмотря на то, что я был тепло одет ощутил пронизывающую прохладу. Разница в температуре между Москвой и Новосибирском на тот момент была около 5 градусов в пользу белокаменной. 12 градусов против 7.

Пыльно. Это я понял, когда ехал в автобусе до «Площади Маркса» (конечная станция красной ветки метро). Чувствуется, что пыли очень много и первое время даже немного першит в горле и перехватывает дыхание. Об этом, кстати, писал Варломов в статье указанной выше.

Совсем московское метро. Метро абсолютно московское. Я не знаю как называется этот гранитный советский стиль московского (и не только) метро — но новосибирское метро в таком же стиле. За тем исключением, что там: продаются жетоны, метро неглубокое, немного народу даже в часы пик (все сидячие места заняты, люди стоят, но не друг у друга на головах). На входе стоят металлодетекторы и габаритные сумки просвечивают в специальных устройствах.

IMG_6724

Культура. Люди спокойные, раскрепощенные и вежливые. За всю поездку мне ни разу не нахамили. Мне вообще, слава Богу, мало хамят где-либо, но в Новосибе все какие-то открытые и участливые.

Архитектура и достопримечательности. Тут с этим слабо. Город молодой — ему всего 120 лет и основной вклад в город внес совок, так что ничего особенного тут нет. Главной достопримечательностью считается Театр Оперы и Балеты и набережная с видом на мосты между левым и правым берегом.

IMG_6578 IMG_6589
IMG_6595
IMG_6622

Хорошие дороги. То, что на дорогах мало «колдаебин» я заметил не сразу… сначала был уставшим, а затем как-то не до этого было. Но понял, что сколько бы я ни ездил по городу, а ездил я не мало — особо выбоен и ям на дороге не замечал.

Чем заняться

Скажу сразу, что время в Новосибе я провел хорошо. Конечно, благодаря компании и тому что тут можно:

Бухать. Ну, это разумеется. Я люблю пиво, но в магазинах не нашел какого-нибудь сибирского пива, которого нет у нас. Возможно плохо искать.

Сходить в театр. Мне очень понравилось отношение сибиряков к театру. Несмотря на то, что билеты я взял на довольно сомнительный по качеству, как мне казалось, спектакль — с гастролями приезжал театр из Алматы — все люди пришли красиво одеты. Женщины — строго в вечерних платьях, мужчины в большинстве своем в костюмах. Я много хожу в театры в Москве — сам, как и многие тут, ложу на то, что нужно подобающе одеваться в театр. В Новосибе же совсем другое дело. Спектакль «Андалузское проклятие» театра им. Лермонтова (г. Алматы) был неплох.

Ходить по ресторациям. Из тех, что я был и запомнилось : «Амбар» и «Чучвара» в Новосибе и «Гуси» в Академгородке.

В Чучваре мне прям понравилось. Я гастрономически был удовлетворен и даже, нарушая свои правила, пошел дважды в одно и то же заведение. Хорошая атмосфера, открытая кухня — можно из зала смотреть на процесс приготовление, но самое главное — быстрая подача и офигительные блюда. Прям очень зашло. Ставлю редко оценки на foursquare — но тут исключение, готов хвалить заведение даже тут. Рекомендую. Цены средние московские.

Амбар — абсолютно обычный бар-кафе. Тихий, спокойный, с хорошим обслуживанием. Ничего примечательного, за исключением того, что я тут выиграл пивную кружку Spaten, чему рад — давно хотел свою кружку.

Гуси — ресторан-пивоварня. Хорошая атмосфера, средние цены, средние по размерам блюда. За стеклом, отдельно от ресторана можно наблюдать пивные бочки. Ресторан производит свое пиво, здесь же его разливают и его можно даже купить и забрать с собой. Пиво хорошее, но дико, зараза, пьянещее… Меня вынесла одна кружка портера.

Пойти на скаладром.  Это для тех, кто никогда там не был. Я вот никогда не был, сходил, попробовал — довольно прикольная штука. За 10 минут объясняют как страховаться и страховать другого человека с которым ты в связке, а затем уже непосредственно занимаешься скалалазаньем. Есть стенки с разным уровнем сложности — от элементарной до довольно не простой. Все они проходимы для молодых парней, девушкам будет по-сложнее… но все не так просто для самых сильных и ловких. Трассу можно как-то пройти, но ее можно усложнять до бесконечности. На стенке висят выступы разных цветов, если у Вас получилось пройти трассу и стало скучно — попробуйте пройти ее пользуясь выступами только одного цвета. Классно еще и то, что ты с человеком находишься в одной связке — происходит тесная коммуникация. Цена вопроса-600 рублей день безлимитного посещения с человека.

Съездить в Академгородок

Доехать сюда из Новосиба не составляет проблем — со станции «Речной вокзал» ходят электрички и автобусы. По самому наукограду регулярно ходит рейсовый транспорт, так что добраться из одного уголка в другой просто.

То, как внешне выглядит Академгородок — так должен выглядеть каждый город  в России… Ухоженные фасады домов, чистые улицы, хорошие дороги и много зелени.

Каждая остановка здесь — раздел учебника по физике: «Гидродинамическая», «Ядерной физики»…

Здесь складывается впечатление, что правительству не пофиг на образование — построены новые здание для НГУ, современное жилье и стадионы для студентов. Территория общежитий оборудована велопарковками, которые битком набиты велосипедами. Те, кому не хватило места на велопарковке — пристегивают «коня» к ближайшему свободному выступу.

Академгородок рекомендуется посмотреть тем, кто тут никогда не был и кому интересно. Тут также стоит Академпарк — технопарк высокотехнологичных отраслей экономики. На территории технопарка располагается ресторан-пивоварня «Гуси» о котором я писал выше.

IMG_6657
IMG_6690
IMG_6638
IMG_6632
IMG_6659
IMG_6655
IMG_6663
IMG_6665

Цены

Цены средние по России и ничем не отличаются от московских. Например:

IMG_6606

Но на чем тут можно выиграть по цене и что обязательно нужно привезти — кедровые орешки. Здесь они стоят 250 рублей за литровую банку. Мне повезло — каждое ядрышко было с орехом))


Новосибирск — несуетливый город, с сервисом, культурой, но действительно без лица. У него пока нет красивых запоминающихся достопримечательностей, но у города есть замечательные открытые люди.

Я никогда не был в Сибири и первое знакомство с ней оказалось хорошим. К посещению рекомендую, но если вы хотите чего-то эдакого, присмотритесь к Хабаровску.

Делитесь записью, пишите комментарии 🙂 .