Fixed: issue

Co-authored-by: Name <sumit201@webkul.in>
This commit is contained in:
varun kewlani
2026-08-07 19:36:11 +05:30
parent 9cfe3d5e3b
commit 8e1236c2c0
3 changed files with 32 additions and 36 deletions

View File

@@ -165,7 +165,7 @@
</a>
</li>
<li>
<a title="{l s='Guest Registration Card'}" href="{$link->getAdminLink('AdminPdf')|escape:'html':'UTF-8'}&amp;submitAction=generateGuestRegistrationFormPDF&amp;id_order={$data['id_order']}&amp;id_hotel_booking_detail={$data['id']}" target="_blank">
<a title="{l s='Guest Registration Card'}" href="{$link->getAdminLink('AdminPdf')|escape:'html':'UTF-8'}&amp;submitAction=generateGuestRegistrationFormPDF&amp;id_hotel_booking_detail={$data['id']}" target="_blank">
<i class="icon-download"></i> {l s='GRC'}
</a>
</li>

View File

@@ -26,19 +26,19 @@ class HTMLTemplateGuestRegistrationFormCore extends HTMLTemplate
{
public $order;
public $available_in_your_account = false;
protected $id_hotel_booking_detail = null;
protected $hotelBookingDetail = null;
/**
* @param Order $objOrder
* @param int $idHotelBookingDetail
* @param $smarty
*/
public function __construct(Order $objOrder, $smarty)
public function __construct($idHotelBookingDetail, $smarty)
{
$this->order = $objOrder;
$this->hotelBookingDetail = new HotelBookingDetail((int)$idHotelBookingDetail);
$this->order = new Order((int)$this->hotelBookingDetail->id_order);
$this->smarty = $smarty;
$this->id_hotel_booking_detail = (int)Tools::getValue('id_hotel_booking_detail');
$this->date = Tools::displayDate($objOrder->date_add);
$this->title = $objOrder->getUniqReference();
$this->date = Tools::displayDate($this->order->date_add);
$this->title = $this->order->getUniqReference();
$this->shop = new Shop((int)$this->order->id_shop);
}
@@ -63,8 +63,8 @@ class HTMLTemplateGuestRegistrationFormCore extends HTMLTemplate
public function getContent()
{
$idLang = (int)$this->order->id_lang;
$hotelBookingDetail = new HotelBookingDetail((int)$this->id_hotel_booking_detail);
$idHotel = Validate::isLoadedObject($hotelBookingDetail) ? (int)$hotelBookingDetail->id_hotel : 0;
$objHotelBookingDetail = $this->hotelBookingDetail;
$idHotel = (int)$objHotelBookingDetail->id_hotel;
$objHotelBranchInformation = null;
$hotelCountry = '';
@@ -87,14 +87,14 @@ class HTMLTemplateGuestRegistrationFormCore extends HTMLTemplate
$arrivalDateTime = '';
$departureDateTime = '';
if (Validate::isLoadedObject($hotelBookingDetail)) {
$nights = (int)HotelHelper::getNumberOfDays($hotelBookingDetail->date_from, $hotelBookingDetail->date_to);
if (Validate::isLoadedObject($objHotelBookingDetail)) {
$nights = (int)HotelHelper::getNumberOfDays($objHotelBookingDetail->date_from, $objHotelBookingDetail->date_to);
if ($nights > 0) {
$currency = new Currency((int)$this->order->id_currency);
$ratePerNight = Tools::displayPrice((float)$hotelBookingDetail->total_price_tax_incl / $nights, $currency, false);
$ratePerNight = Tools::displayPrice((float)$objHotelBookingDetail->total_price_tax_incl / $nights, $currency, false);
}
$arrivalDateTime = $hotelBookingDetail->date_from ? Tools::displayDate($hotelBookingDetail->date_from) : '';
$departureDateTime = $hotelBookingDetail->date_to ? Tools::displayDate($hotelBookingDetail->date_to) : '';
$arrivalDateTime = $objHotelBookingDetail->date_from ? Tools::displayDate($objHotelBookingDetail->date_from) : '';
$departureDateTime = $objHotelBookingDetail->date_to ? Tools::displayDate($objHotelBookingDetail->date_to) : '';
if ($arrivalDateTime && $objHotelBranchInformation && $objHotelBranchInformation->check_in && $objHotelBranchInformation->check_in != '00:00:00') {
$arrivalDateTime .= ' '.date('h:i a', strtotime($objHotelBranchInformation->check_in));
}
@@ -104,8 +104,8 @@ class HTMLTemplateGuestRegistrationFormCore extends HTMLTemplate
}
$additionalGuestsRows = 0;
if (Validate::isLoadedObject($hotelBookingDetail)) {
$totalGuests = (int)$hotelBookingDetail->adults + (int)$hotelBookingDetail->children;
if (Validate::isLoadedObject($objHotelBookingDetail)) {
$totalGuests = (int)$objHotelBookingDetail->adults + (int)$objHotelBookingDetail->children;
$additionalGuestsRows = ($totalGuests > 1) ? ($totalGuests - 1) : 0;
}
@@ -129,7 +129,7 @@ class HTMLTemplateGuestRegistrationFormCore extends HTMLTemplate
// One pass: build false|string label for every field directly.
// false = hidden, non-empty string = visible (used for both visibility check and label text in template).
$grcInfo = $hotelBookingDetail->getRegistrationCardInfo();
$grcInfo = $this->hotelBookingDetail->getRegistrationCardInfo();
$fieldLabels = array();
foreach ($grcInfo as $sectionId => $section) {
$isSectionEnabled = $allVisible || isset($grcFields[$sectionId]);
@@ -235,10 +235,10 @@ class HTMLTemplateGuestRegistrationFormCore extends HTMLTemplate
'booking_reference' => $this->order->getUniqReference(),
'arrival_date_time' => $arrivalDateTime,
'departure_date_time' => $departureDateTime,
'room_type' => Validate::isLoadedObject($hotelBookingDetail) ? $hotelBookingDetail->room_type_name : '',
'room_number' => Validate::isLoadedObject($hotelBookingDetail) ? $hotelBookingDetail->room_num : '',
'adults' => Validate::isLoadedObject($hotelBookingDetail) ? (int)$hotelBookingDetail->adults : 0,
'children' => Validate::isLoadedObject($hotelBookingDetail) ? (int)$hotelBookingDetail->children : 0,
'room_type' => Validate::isLoadedObject($objHotelBookingDetail) ? $objHotelBookingDetail->room_type_name : '',
'room_number' => Validate::isLoadedObject($objHotelBookingDetail) ? $objHotelBookingDetail->room_num : '',
'adults' => Validate::isLoadedObject($objHotelBookingDetail) ? (int)$objHotelBookingDetail->adults : 0,
'children' => Validate::isLoadedObject($objHotelBookingDetail) ? (int)$objHotelBookingDetail->children : 0,
'rate_per_night' => $ratePerNight,
'additional_guests_rows' => $additionalGuestsRows,
@@ -283,8 +283,8 @@ class HTMLTemplateGuestRegistrationFormCore extends HTMLTemplate
public function getFilename()
{
$filename = 'guest-registration-form-'.$this->order->reference;
if ($this->id_hotel_booking_detail) {
$filename .= '-room-'.$this->id_hotel_booking_detail;
if ($this->hotelBookingDetail->id) {
$filename .= '-room-'.$this->hotelBookingDetail->id;
}
return $filename.'.pdf';

View File

@@ -66,10 +66,10 @@ class AdminPdfControllerCore extends AdminController
public function processGenerateGuestRegistrationFormPDF()
{
if (Tools::isSubmit('id_order')) {
$this->generateGuestRegistrationFormPDFByIdOrder(Tools::getValue('id_order'));
if (Tools::isSubmit('id_hotel_booking_detail')) {
$this->generateGuestRegistrationFormPDF((int)Tools::getValue('id_hotel_booking_detail'));
} else {
die(Tools::displayError('The order ID is missing.'));
die(Tools::displayError('The hotel booking detail ID is missing.'));
}
}
@@ -243,18 +243,14 @@ class AdminPdfControllerCore extends AdminController
$this->generatePDF($order_invoice, PDF::TEMPLATE_INVOICE);
}
public function generateGuestRegistrationFormPDFByIdOrder($id_order)
public function generateGuestRegistrationFormPDF($idHotelBookingDetail)
{
$order = new Order((int)$id_order);
if (!Validate::isLoadedObject($order)) {
die(Tools::displayError('The order cannot be found within your database.'));
$idHotelBookingDetail = (int)$idHotelBookingDetail;
if (!$idHotelBookingDetail || !Validate::isLoadedObject(new HotelBookingDetail($idHotelBookingDetail))) {
die(Tools::displayError('The hotel booking cannot be found within your database.'));
}
if (!HotelBookingDetail::getIdHotelByIdOrder($order->id)) {
die(Tools::displayError('The registration form cannot be generated for this order.'));
}
$pdf = new PDF($order, PDF::TEMPLATE_GUEST_REGISTRATION_FORM, Context::getContext()->smarty);
$pdf = new PDF($idHotelBookingDetail, PDF::TEMPLATE_GUEST_REGISTRATION_FORM, Context::getContext()->smarty);
$pdf->render('I');
}