function addHotelRoomRatesNew()
{
    try {
        $roomrates = new HotelRoomRates();
        $roomrates->setValues($_REQUEST);
        $exRateRecord = $roomrates->getAllRatesForDates($roomrates->dateIn(), $roomrates->dateOut(), $roomrates->hotelRoomTypeId());
        $exRateRecord1 = "";
        $exRateRecord2 = "";
        $arraySplit = array();
        $room_rate_ids = array();
        $allDatesArray2 = array();
        $i = 1;
        $l = 1;
        foreach ($exRateRecord as $key => $row) {
            $in_date = $row['date_in'];
            $out_date = $row['date_out'];
            $exRoomControlArr[$i] = $row;
            $strstartdate = strtotime($in_date);
            $strenddate = strtotime($out_date);
            $dayDiff = ($strenddate - $strstartdate) / 86400;
            $j = 0;
            while ($j <= $dayDiff) {
                $nextDay = $strstartdate + $j * 86400;
                $allDatesArray2[$l] = $nextDay;
                $j++;
                $l++;
            }
            $room_rate_ids[$i] = $row['room_rate_id'];
            $i++;
        }
        if ($allDatesArray2 != "") {
            $sizeOfADA = sizeof($allDatesArray2);
            $strOfInputStart = strtotime($roomrates->dateIn());
            $strOfRangeStart = $allDatesArray2[1];
            $strOfInputEnd = strtotime($roomrates->dateOut());
            $strOfRangeEnd = $allDatesArray2[$sizeOfADA];
            $m = 1;
            $n = 1;
            $o = 1;
            if ($strOfInputStart < $strOfRangeStart) {
                $differenceOf = ($strOfRangeStart - $strOfInputStart) / 86400;
                $x = 0;
                $start = $strOfInputStart;
                while ($x < $differenceOf) {
                    $nxday = $start + $x * 86400;
                    array_push($allDatesArray2, $nxday);
                    $x++;
                }
                if ($strOfInputEnd > $strOfRangeEnd) {
                    $y = 1;
                    $differenceOfB = ($strOfInputEnd - $strOfRangeEnd) / 86400;
                    while ($y <= $differenceOfB) {
                        $nxday2 = $strOfRangeEnd + $y * 86400;
                        array_push($allDatesArray2, $nxday2);
                        $y++;
                    }
                }
                array_multisort($allDatesArray2);
                $arraySplit = splitArray($allDatesArray2, $m, $n, $o, $strOfInputStart, $strOfInputEnd);
                $roomrates->ratesDeleteByRateId($room_rate_ids);
                if (!addHotelRoomRates($roomrates)) {
                    throw new Exception("Error");
                    new Exception("Error");
                }
                if (array_key_exists(3, $arraySplit)) {
                    $szOfArray = sizeof($arraySplit[3]);
                    $fDate = date("Y-m-d", $arraySplit[3][1]);
                    $tDate = date("Y-m-d", $arraySplit[3][$szOfArray]);
                    $exRateRecord2 = $row;
                    $exRateRecord2['date_in'] = $fDate;
                    $exRateRecord2['date_out'] = $tDate;
                    if (!addHotelRoomRates($exRateRecord2)) {
                        throw new Exception("Error");
                    }
                }
            } else {
                if ($strOfInputEnd > $strOfRangeEnd) {
                    $y = 1;
                    $differenceOfB = ($strOfInputEnd - $strOfRangeEnd) / 86400;
                    while ($y <= $differenceOfB) {
                        $nxday2 = $strOfRangeEnd + $y * 86400;
                        array_push($allDatesArray2, $nxday2);
                        $y++;
                    }
                }
                array_multisort($allDatesArray2);
                $arraySplit = splitArray($allDatesArray2, $m, $n, $o, $strOfInputStart, $strOfInputEnd);
                if (!$roomrates->ratesDeleteByRateId($room_rate_ids)) {
                    throw new Exception("Error");
                }
                if (array_key_exists(1, $arraySplit)) {
                    $szOfArray = sizeof($arraySplit[1]);
                    $fDate = date("Y-m-d", $arraySplit[1][1]);
                    $tDate = date("Y-m-d", $arraySplit[1][$szOfArray]);
                    $exRateRecord1 = $row;
                    $exRateRecord1['date_in'] = $fDate;
                    $exRateRecord1['date_out'] = $tDate;
                    if (!addHotelRoomRates($exRateRecord1)) {
                        throw new Exception("Error");
                    }
                    if (!addHotelRoomRates($roomrates)) {
                        throw new Exception("Error");
                    }
                    if (array_key_exists(3, $arraySplit)) {
                        $szOfArray = sizeof($arraySplit[3]);
                        $fDate = date("Y-m-d", $arraySplit[3][1]);
                        $tDate = date("Y-m-d", $arraySplit[3][$szOfArray]);
                        $exRateRecord2 = $row;
                        $exRateRecord2['date_in'] = $fDate;
                        $exRateRecord2['date_out'] = $tDate;
                        if (!addHotelRoomRates($exRateRecord2)) {
                            throw new Exception("Error");
                        }
                    }
                } else {
                    $arraySplit = splitArray($allDatesArray2, $m, $n, $o, $strOfInputStart, $strOfInputEnd);
                    if (!$roomrates->ratesDeleteByRateId($room_rate_ids)) {
                        throw new Exception("Error");
                    }
                    if (!addHotelRoomRates($roomrates)) {
                        throw new Exception("Error");
                    }
                    if (array_key_exists(3, $arraySplit)) {
                        $szOfArray = sizeof($arraySplit[3]);
                        $fDate = date("Y-m-d", $arraySplit[3][1]);
                        $tDate = date("Y-m-d", $arraySplit[3][$szOfArray]);
                        $exRateRecord2 = $row;
                        $exRateRecord2['date_in'] = $fDate;
                        $exRateRecord2['date_out'] = $tDate;
                        if (!addHotelRoomRates($exRateRecord2)) {
                            throw new Exception("Error");
                        }
                    }
                }
            }
        } else {
            if (!addHotelRoomRates($roomrates)) {
                throw new Exception("Error");
            }
        }
        $complete = new ProfileCompletion();
        $complete->setHotelStepId($_REQUEST['hotel_step_id']);
        $complete->setHotelStep1(1);
        $complete->updateProfileCompletionStep('6');
        Common::jsonSuccess("Room Rates Added Successfully!");
    } catch (Exception $ex) {
        Common::jsonError("Error");
    }
}