Fixed: added all default property and room type selling object values

This commit is contained in:
amit sharma
2026-07-29 11:21:49 +05:30
parent c774275d6e
commit 41f773b86a
6 changed files with 171 additions and 42 deletions

View File

@@ -27,7 +27,7 @@ class RoomTypeSellingObjectCore extends ObjectModel
public $date_add;
public $date_upd;
public $name;
public $name_plural;
public $plural_name;
public static $definition = array(
'table' => 'room_type_selling_object',
@@ -38,7 +38,7 @@ class RoomTypeSellingObjectCore extends ObjectModel
'date_add' => array('type' => self::TYPE_DATE, 'validate' => 'isDate', 'copy_post' => false),
'date_upd' => array('type' => self::TYPE_DATE, 'validate' => 'isDate', 'copy_post' => false),
'name' => array('type' => self::TYPE_STRING, 'lang' => true, 'validate' => 'isGenericName', 'required' => true),
'name_plural' => array('type' => self::TYPE_STRING, 'lang' => true, 'validate' => 'isGenericName', 'required' => true),
'plural_name' => array('type' => self::TYPE_STRING, 'lang' => true, 'validate' => 'isGenericName', 'required' => true),
),
);
@@ -57,7 +57,7 @@ class RoomTypeSellingObjectCore extends ObjectModel
$cache_key = 'RoomTypeSellingObject::getRoomTypeSellingObject'.(int)$idLang.'_'.(int)$active;
if (!Cache::isStored($cache_key)) {
$sql = 'SELECT hrst.`id_room_type_selling_object` AS `id_room_type_selling_object`, hrstl.`name`, hrstl.`name_plural`
$sql = 'SELECT hrst.`id_room_type_selling_object` AS `id_room_type_selling_object`, hrstl.`name`, hrstl.`plural_name`
FROM `'._DB_PREFIX_.'room_type_selling_object` hrst
LEFT JOIN `'._DB_PREFIX_.'room_type_selling_object_lang` hrstl
ON (hrst.`id_room_type_selling_object` = hrstl.`id_room_type_selling_object`

View File

@@ -45,7 +45,7 @@ class AdminRoomTypeSellingObjectsController extends AdminController
'title' => $this->l('Name'),
'align' => 'left',
),
'name_plural' => array(
'plural_name' => array(
'title' => $this->l('Plural Name'),
'align' => 'left',
),
@@ -105,7 +105,7 @@ class AdminRoomTypeSellingObjectsController extends AdminController
array(
'type' => 'text',
'label' => $this->l('Plural Name'),
'name' => 'name_plural',
'name' => 'plural_name',
'lang' => true,
'required' => true,
'hint' => $this->l('Displayed name when more than one is booked.'),
@@ -133,6 +133,15 @@ class AdminRoomTypeSellingObjectsController extends AdminController
'submit' => array(
'title' => $this->l('Save'),
),
'buttons' => array(
'save-and-stay' => array(
'title' => $this->l('Save and stay'),
'name' => 'submitAdd'.$this->table.'AndStay',
'type' => 'submit',
'class' => 'btn btn-default pull-right',
'icon' => 'process-icon-save',
),
),
);
return parent::renderForm();
@@ -140,7 +149,7 @@ class AdminRoomTypeSellingObjectsController extends AdminController
public function postProcess()
{
if (Tools::isSubmit('submitAdd'.$this->table)) {
if (Tools::isSubmit('submitAdd'.$this->table) || Tools::isSubmit('submitAdd'.$this->table.'AndStay')) {
$languages = Language::getLanguages(false);
$defaultLangId = Configuration::get('PS_LANG_DEFAULT');
$objDefaultLanguage = Language::getLanguage((int) $defaultLangId);
@@ -158,24 +167,20 @@ class AdminRoomTypeSellingObjectsController extends AdminController
}
}
if (!trim(Tools::getValue('name_plural_'.$defaultLangId))) {
if (!trim(Tools::getValue('plural_name_'.$defaultLangId))) {
$this->errors[] = $this->l('Plural Name is required at least in ').$objDefaultLanguage['name'];
} else {
foreach ($languages as $lang) {
if (trim(Tools::getValue('name_plural_'.$lang['id_lang']))) {
if (!Validate::isGenericName(Tools::getValue('name_plural_'.$lang['id_lang']))) {
if (trim(Tools::getValue('plural_name_'.$lang['id_lang']))) {
if (!Validate::isGenericName(Tools::getValue('plural_name_'.$lang['id_lang']))) {
$this->errors[] = $this->l('Invalid Plural Name in ').$lang['name'];
}
}
}
}
if ($idSellingObject) {
$this->display = 'edit';
} else {
$this->display = 'add';
}
$this->display = $idSellingObject ? 'edit' : 'add';
if (!$this->errors) {
parent::postProcess();
}

View File

@@ -2792,6 +2792,6 @@ CREATE TABLE IF NOT EXISTS `PREFIX_room_type_selling_object_lang` (
`id_room_type_selling_object` int(10) unsigned NOT NULL,
`id_lang` int(10) unsigned NOT NULL,
`name` varchar(255) NOT NULL,
`name_plural` varchar(255) DEFAULT NULL,
`plural_name` varchar(255) DEFAULT NULL,
PRIMARY KEY (`id_room_type_selling_object`, `id_lang`)
) ENGINE=ENGINE_TYPE DEFAULT CHARSET=utf8;

View File

@@ -1376,13 +1376,17 @@ class HotelHelper
'Resort',
'Hostel',
'Guest House',
'Bed & Breakfast',
'Lodge',
'Apartment',
'Vacation Rental',
'Homestay',
'Co-Living',
'Camping',
'Bed & Breakfast',
'Glamping',
'Farm Stay',
'Houseboat',
'Boat Stay',
);
$languages = Language::getLanguages(true);
@@ -1400,29 +1404,144 @@ class HotelHelper
public function createHotelDefaultRoomSellingTypes()
{
$sellingObjects = array(
'Room',
'Apartment',
'Villa',
'Cottage',
'Bungalow',
'House',
'Chalet',
'Cabin',
'Studio',
'Penthouse',
'Camping Pitch',
'Overwater Bungalow',
'Heritage Room',
'Houseboat',
$roomTypeSellingObjects = array(
array(
'name' => 'Room',
'plural_name' => 'Rooms',
),
array(
'name' => 'Bed',
'plural_name' => 'Beds',
),
array(
'name' => 'Apartment',
'plural_name' => 'Apartments',
),
array(
'name' => 'Villa',
'plural_name' => 'Villas',
),
array(
'name' => 'Cottage',
'plural_name' => 'Cottages',
),
array(
'name' => 'Bungalow',
'plural_name' => 'Bungalows',
),
array(
'name' => 'House',
'plural_name' => 'Houses',
),
array(
'name' => 'Chalet',
'plural_name' => 'Chalets',
),
array(
'name' => 'Cabin',
'plural_name' => 'Cabins',
),
array(
'name' => 'Studio',
'plural_name' => 'Studios',
),
array(
'name' => 'Condo',
'plural_name' => 'Condos',
),
array(
'name' => 'Penthouse',
'plural_name' => 'Penthouses',
),
array(
'name' => 'Tent',
'plural_name' => 'Tents',
),
array(
'name' => 'Camping Pitch',
'plural_name' => 'Camping Pitches',
),
array(
'name' => 'Caravan Site',
'plural_name' => 'Caravan Sites',
),
array(
'name' => 'RV Site',
'plural_name' => 'RV Sites',
),
array(
'name' => 'Pod',
'plural_name' => 'Pods',
),
array(
'name' => 'Capsule',
'plural_name' => 'Capsules',
),
array(
'name' => 'Treehouse',
'plural_name' => 'Treehouses',
),
array(
'name' => 'Hut',
'plural_name' => 'Huts',
),
array(
'name' => 'Yurt',
'plural_name' => 'Yurts',
),
array(
'name' => 'Igloo',
'plural_name' => 'Igloos',
),
array(
'name' => 'Houseboat',
'plural_name' => 'Houseboats',
),
array(
'name' => 'Boat Cabin',
'plural_name' => 'Boat Cabins',
),
array(
'name' => 'Overwater Bungalow',
'plural_name' => 'Overwater Bungalows',
),
array(
'name' => 'Heritage Room',
'plural_name' => 'Heritage Rooms',
),
array(
'name' => 'Holiday Home',
'plural_name' => 'Holiday Homes',
),
array(
'name' => 'Farm Stay Unit',
'plural_name' => 'Farm Stay Units',
),
array(
'name' => 'Cave Room',
'plural_name' => 'Cave Rooms',
),
array(
'name' => 'Container Stay',
'plural_name' => 'Container Stays',
),
array(
'name' => 'Train Cabin',
'plural_name' => 'Train Cabins',
),
array(
'name' => 'Motorhome',
'plural_name' => 'Motorhomes',
),
);
$languages = Language::getLanguages(true);
foreach ($sellingObjects as $typeName) {
foreach ($roomTypeSellingObjects as $typeName) {
$objType = new RoomTypeSellingObject();
$objType->active = 1;
foreach ($languages as $lang) {
$objType->name[$lang['id_lang']] = $typeName;
$objType->name[$lang['id_lang']] = $typeName['name'];
$objType->plural_name[$lang['id_lang']] = $typeName['plural_name'];
}
$objType->save();
}

View File

@@ -237,7 +237,7 @@ class HotelRoomType extends ObjectModel
$sql = 'SELECT hrt.*, hbl.`hotel_name`,
hrtstl.`name` AS `room_type_selling_object`,
hrtstl.`name_plural` AS `multiple_room_type_selling_object`
hrtstl.`plural_name` AS `multiple_room_type_selling_object`
FROM `'._DB_PREFIX_.'htl_room_type` AS hrt
INNER JOIN `'._DB_PREFIX_.'htl_branch_info_lang` AS hbl
ON (hbl.`id` = hrt.`id_hotel`
@@ -318,7 +318,7 @@ class HotelRoomType extends ObjectModel
$idLang = Context::getContext()->language->id;
}
$sql = 'SELECT pl.`name`, COUNT(hri.`id`) AS `numberOfRooms`, hrt.`id_product`, `adults`, `children`, `max_adults`, `max_children`, `max_guests`, hrtstl.`name` AS `room_type_selling_object`, hrtstl.`name_plural` AS `multiple_room_type_selling_object`
$sql = 'SELECT pl.`name`, COUNT(hri.`id`) AS `numberOfRooms`, hrt.`id_product`, `adults`, `children`, `max_adults`, `max_children`, `max_guests`, hrtstl.`name` AS `room_type_selling_object`, hrtstl.`plural_name` AS `multiple_room_type_selling_object`
'.($position ? ', cp.`position`' : '').'
'.($fullDetail ? ', pl.`link_rewrite`, pl.`description_short`' : '').'
FROM `'._DB_PREFIX_.'htl_room_type` AS `hrt`

View File

@@ -121,6 +121,15 @@ class AdminHotelPropertyTypesController extends ModuleAdminController
'submit' => array(
'title' => $this->l('Save'),
),
'buttons' => array(
'save-and-stay' => array(
'title' => $this->l('Save and stay'),
'name' => 'submitAdd'.$this->table.'AndStay',
'type' => 'submit',
'class' => 'btn btn-default pull-right',
'icon' => 'process-icon-save',
),
),
);
return parent::renderForm();
@@ -128,7 +137,7 @@ class AdminHotelPropertyTypesController extends ModuleAdminController
public function postProcess()
{
if (Tools::isSubmit('submitAdd'.$this->table)) {
if (Tools::isSubmit('submitAdd'.$this->table) || Tools::isSubmit('submitAdd'.$this->table.'AndStay')) {
$languages = Language::getLanguages(false);
$defaultLangId = Configuration::get('PS_LANG_DEFAULT');
$objDefaultLanguage = Language::getLanguage((int) $defaultLangId);
@@ -146,11 +155,7 @@ class AdminHotelPropertyTypesController extends ModuleAdminController
}
}
if ($idPropertyType) {
$this->display = 'edit';
} else {
$this->display = 'add';
}
$this->display = $idPropertyType ? 'edit' : 'add';
if (!$this->errors) {
parent::postProcess();