/** * Updates the reservation details stored in DB. * * @access public * @param array $arrData * @return array * @since 1.0.0 */ public static function updateReservationDetail($arrData) { //array to hold response $arrResponse = array(); $date = date_create($arrData['reservationTime']); $arrData['reservationTime'] = date_format($date, "h:i A"); //Read and hold the last reservation details $lastReservationDetail = self::getLastReservationDetail($arrData); $queryResult = Self::where('id', $arrData['reservationID'])->whereIn('reservation_status', array('new', 'edited'))->first(); if ($queryResult) { $reservation = Self::find($arrData['reservationID']); //initializing the data $reservation->reservation_status = 'edited'; $reservation->reservation_date = $arrData['reservationDate']; $reservation->reservation_time = $arrData['reservationTime']; $reservation->no_of_persons = $arrData['partySize']; $reservation->vendor_location_id = $arrData['vendorLocationID']; $reservation->guest_name = $arrData['guestName']; $reservation->guest_email = $arrData['guestEmail']; $reservation->guest_phone = $arrData['phone']; $reservation->reservation_type = $arrData['reservationType']; //setting up the variables that may be present if (isset($arrData['specialRequest'])) { $reservation->special_request = $arrData['specialRequest']; } if (isset($arrData['giftCardID'])) { $reservation->giftcard_id = $arrData['giftCardID']; } if (isset($arrData['addedBy'])) { $reservation->added_by = $arrData['addedBy']; } //setting up the value of the location id as per type if ($arrData['reservationType'] == 'alacarte') { $reservation->vendor_location_id = $arrData['vendorLocationID']; $reservation->product_vendor_location_id = 0; } else { if ($arrData['reservationType'] == 'experience') { $reservation->vendor_location_id = 0; $reservation->product_vendor_location_id = $arrData['vendorLocationID']; //---------------------------------------------------------------------- $arrResult = self::readProductIdAndVendorLocation($arrData['vendorLocationID']); $reservation->vendor_location_id = $arrResult->vendor_location_id; $reservation->product_id = $arrResult->product_id; //----------------------------------------------------------------------- if (array_key_exists('addon', $arrData) && !empty($arrData['addon'])) { //self::updateReservationAddonDetails($arrData['reservationID'],$arrData['addon']); //Reading value for addon $count = $arrData['addon']; if ($count == "") { $arrData['addon'] = array(); } // echo "<pre>"; print_r($dataPost); $addonsText = ''; foreach ($arrData['addon'] as $key => $value) { if ($value['qty'] > 0) { //echo "prod id = ".$prod_id." , qty = ".$qty; $prod_id = $value['prod_id']; $addonsDetails = DB::select("SELECT attribute_value from product_attributes_text where product_id = {$prod_id} and product_attribute_id = 17"); //echo "<pre>"; print_r($addonsDetails); $addonsText .= $addonsDetails[0]->attribute_value . " (" . $value['qty'] . ") , "; } } /* foreach($arrData['addon'] as $prod_id => $qty) { if($qty > 0){ //echo "prod id = ".$prod_id." , qty = ".$qty; $addonsDetails = DB::select("SELECT attribute_value from product_attributes_text where product_id = $prod_id and product_attribute_id = 17"); //echo "<pre>"; print_r($addonsDetails); $addonsText .= $addonsDetails[0]->attribute_value." (".$qty.") , "; } } */ $finalAddontext = isset($addonsText) && $addonsText != "" ? "Addons: " . $addonsText : " "; $special_request = isset($arrData['specialRequest']) && !empty($arrData['specialRequest']) ? "Spl Req: " . $arrData['specialRequest'] : ""; $arrData['addons_special_request'] = $finalAddontext . " " . $special_request; //--------------------------------------------------------------------------- } else { $finalAddontext = " "; $special_request = isset($arrData['specialRequest']) && !empty($arrData['specialRequest']) ? "Spl Req: " . $arrData['specialRequest'] : ""; $arrData['addons_special_request'] = $finalAddontext . " " . $special_request; } } } #saving the information into the DB $savedData = $reservation->save(); //Added on 28.5.15 $resultData = Self::where('id', $arrData['reservationID'])->select('reservation_type', 'product_vendor_location_id', 'vendor_location_id')->first(); //print_r($resultData['product_vendor_location_id']); //print_r($resultData['vendor_location_id']); //die(); $zohoMailStatus = Self::sendZohoMailupdate($arrData, $lastReservationDetail); if ($resultData['reservation_type'] == 'alacarte') { //reading the resturants detail $aLaCarteDetail = self::readVendorDetailByLocationID($arrData['vendorLocationID']); $arrResponse['data']['reservation_id'] = $arrData['reservationID']; $arrResponse['data']['name'] = $aLaCarteDetail['name']; $arrResponse['data']['url'] = URL::to('/') . '/alacarte/' . $aLaCarteDetail['vl_id']; $arrResponse['data']['reservationDate'] = $arrData['reservationDate']; $arrResponse['data']['reservationTime'] = $arrData['reservationTime']; $arrResponse['data']['partySize'] = $arrData['partySize']; $arrResponse['data']['reward_point'] = $aLaCarteDetail['reward_point']; } else { if ($resultData['reservation_type'] == 'experience') { //reading the product detail $productDetail = self::readProductDetailByProductVendorLocationID($arrData['vendorLocationID']); $arrResponse['data']['reservation_id'] = $arrData['reservationID']; $arrResponse['data']['name'] = $productDetail['name']; $arrResponse['data']['url'] = URL::to('/') . '/experience/' . $productDetail['id']; $arrResponse['data']['reservationDate'] = $arrData['reservationDate']; $arrResponse['data']['reservationTime'] = $arrData['reservationTime']; $arrResponse['data']['partySize'] = $arrData['partySize']; $arrResponse['data']['reward_point'] = $productDetail['reward_point']; } } $arrResponse['status'] = $savedData ? Config::get('constants.API_SUCCESS') : Config::get('constants.API_FAILED'); } else { $arrResponse['status'] = Config::get('constants.API_ERROR'); } return $arrResponse; }