/** * @param $params * @param $apartmentId * @return bool */ public function linkRoomRate($params, $apartmentId) { if (is_array($params) && isset($params['product_rates']) && isset($params['product_room'])) { if (isset($params['product_room']['room_id']) && isset($params['product_room']['cubilis_room_id'])) { $productTypeDao = new Room($this->getServiceLocator()); $productTypeDao->updateCubilisLink($params['product_room']['room_id'], $params['product_room']['cubilis_room_id']); } else { return ['status' => 'error', 'msg' => TextConstants::BAD_REQUEST]; } if (count($params['product_rates'])) { /** @var \DDD\Dao\Apartment\Rate $productRateDao */ $productRateDao = $this->getServiceLocator()->get('dao_apartment_rate'); $productRateDao->clearCubilisLinks($params['product_room']['room_id']); foreach ($params['product_rates'] as $room) { if (isset($room['rate_id']) && isset($room['cubilis_rate_id']) && (int) $room['rate_active']) { $productRateDao->updateCubilisLink($room['rate_id'], $room['cubilis_rate_id']); } } } else { return ['status' => 'error', 'msg' => TextConstants::BAD_REQUEST]; } } else { return ['status' => 'error', 'msg' => TextConstants::BAD_REQUEST]; } /** * @var \DDD\Service\Queue\InventorySynchronizationQueue $syncService * @var \DDD\Dao\Apartment\Inventory $inventoryDao */ $inventoryDao = $this->getServiceLocator()->get('dao_apartment_inventory'); $syncService = $this->getServiceLocator()->get('service_queue_inventory_synchronization_queue'); // get min max date from inventory $dates = $inventoryDao->getMinMaxDate(); // sync to queue $syncService->push($apartmentId, $dates['min_date'], $dates['max_date']); return ['status' => 'success', 'msg' => TextConstants::SUCCESS_UPDATE]; }