Untitled

 avatar
unknown
php
9 months ago
3.2 kB
17
Indexable
function generatePins($day_id, $holiday = 0)
	{
		$pow = $day_id-1;
		$day_bit = pow(2, $pow);
		
		if ($holiday == 1)
			$day_id = 100;
		
		$random_pins = array();
		for ($i=0; $i<100; $i++)
			array_push($random_pins, mt_rand(10000000, 99999999));
			
		$random_pins_unique = array_unique($random_pins);
		
		$ret_array = array();
	
		$longer_period 	= 30; //co ile minut generować nowy szyft dla terminów mniej obleganych
		$shorter_period = 30; //co ile minut generować nowy szyft dla terminów bardziej obleganych
	
		switch ($day_id) 
		{
			case 1:
			case 2:
			case 3:
			case 4:
			case 5: //poniedziałek-piątek
			
				echo "pon-pt<br>";
				$i = 0;
				
				//terminy mniej oblegane - jeden szyfr na $longer_period minut
				$range = range(strtotime("03:00"), strtotime("07:00"), $longer_period*60); 
				
				foreach($range as $time)
				{
					if ($time === end($range)) //omijamy ostatnią iterację foreach
						break;
				
					$startTime 	= date("H:i", $time);
					$endTime 	= date("H:i", strtotime('+' . ($longer_period-1) . ' minutes', $time));
					// echo $startTime . " - " . $endTime . "<br>";
					
					array_push($ret_array, array 
						(
							"type" => 3, 
							"security" => 1, 
							"pin" => "$random_pins_unique[$i]", 
							"eventNum" =>  22, 
							"schedule" => 
								array
								(
									"dayMask" => $day_bit, 
									"s" => "$startTime", 
									"e" => "$endTime"
								)
						));
					
					$i++;
				}
				
				//terminy bardziej oblegane - jeden szyfr na $shorter_period minut
				$range = range(strtotime("07:00"), strtotime("09:00"), $shorter_period*60); 
				
				foreach($range as $time)
				{
					if ($time === end($range)) //omijamy ostatnią iterację foreach
						break;
				
					$startTime 	= date("H:i", $time);
					$endTime 	= date("H:i", strtotime('+' . ($shorter_period-1) . ' minutes', $time));
					// echo $startTime . " - " . $endTime . "<br>";
					
					array_push($ret_array, array 
						(
							"type" => 3, 
							"security" => 1, 
							"pin" => "$random_pins_unique[$i]",
							"eventNum" =>  22, 
							"schedule" => 
								array
								(
									"dayMask" => $day_bit, 
									"s" => "$startTime", 
									"e" => "$endTime"
								)
						));
					
					$i++;
				}
				
				$range = range(strtotime("21:00"), strtotime("24:00"), $shorter_period*60); 
				
				foreach($range as $time)
				{
					if ($time === end($range)) //omijamy ostatnią iterację foreach
						break;
				
					$startTime 	= date("H:i", $time);
					$endTime 	= date("H:i", strtotime('+' . ($shorter_period-1) . ' minutes', $time));
					// echo $startTime . " - " . $endTime . "<br>";
					
					array_push($ret_array, array 
						(
							"type" => 3, 
							"security" => 1, 
							"pin" => "$random_pins_unique[$i]",
							"eventNum" =>  22, 
							"schedule" => 
								array
								(
									"dayMask" => $day_bit, 
									"s" => "$startTime", 
									"e" => "$endTime"
								)
						));
					
					$i++;
				}
					
				break;
		}
		
		return $ret_array;
	}
Editor is loading...
Leave a Comment