diff --git a/controllers/admin/AdminOrdersController.php b/controllers/admin/AdminOrdersController.php index 8a3722b841..b524893fa3 100644 --- a/controllers/admin/AdminOrdersController.php +++ b/controllers/admin/AdminOrdersController.php @@ -1637,6 +1637,24 @@ public function postProcess() $message->id_employee = (int)$this->context->employee->id; $message->private = 1; $message->save(); + PrestaShopLogger::addLog( + sprintf( + $this->l('[%s] Hotel: %s | Room: %s (check-in: %s, check-out: %s) reallocated to Room: %s (%s)'), + $order->reference, + $objHotelBooking->hotel_name, + $objHotelBooking->room_num, + date('d M Y', strtotime($objHotelBooking->date_from)), + date('d M Y', strtotime($objHotelBooking->date_to)), + $objRoomInfo->room_num, + Product::getProductName($idNewRoomType, null, $this->context->language->id) + ), + 1, + null, + 'Order', + (int)$order->id, + true, + (int)$this->context->employee->id + ); Tools::redirectAdmin(self::$currentIndex.'&id_order='.(int) $idOrder.'&vieworder&conf=52&token='.$this->token); } else { $this->errors[] = $this->l('Some error occured. Please try again.'); @@ -1694,6 +1712,26 @@ public function postProcess() $message->id_employee = (int)$this->context->employee->id; $message->private = 1; $message->save(); + PrestaShopLogger::addLog( + sprintf( + $this->l('[%s] Hotel: %s | Room: %s (check-in: %s, check-out: %s) swapped with Hotel: %s | Room: %s (check-in: %s, check-out: %s)'), + $order->reference, + $objHotelBooking->hotel_name, + $objHotelBooking->room_num, + date('d M Y', strtotime($objHotelBooking->date_from)), + date('d M Y', strtotime($objHotelBooking->date_to)), + $objHotelBookingTo->hotel_name, + $objHotelBookingTo->room_num, + date('d M Y', strtotime($objHotelBookingTo->date_from)), + date('d M Y', strtotime($objHotelBookingTo->date_to)) + ), + 1, + null, + 'Order', + (int)$order->id, + true, + (int)$this->context->employee->id + ); Tools::redirectAdmin(self::$currentIndex.'&id_order='.(int)$idOrder.'&vieworder&conf=53&token='.$this->token); } else { $this->errors[] = $this->l('Some error occured. Please try again.'); @@ -1789,6 +1827,23 @@ public function postProcess() if ($this->tabAccess['edit'] === 1) { $result = $order->changeOrderStatus(); if ($result['status']) { + $newOrderState = new OrderState((int)Tools::getValue('id_order_state')); + $idHotel = HotelBookingDetail::getIdHotelByIdOrder((int)$order->id); + $objHotelBranch = new HotelBranchInformation((int)$idHotel, (int)$this->context->language->id); + PrestaShopLogger::addLog( + sprintf( + $this->l('[%s] Hotel: %s | Order status updated to %s'), + $order->reference, + $objHotelBranch->hotel_name, + Validate::isLoadedObject($newOrderState) ? $newOrderState->name[(int)$order->id_lang] : Tools::getValue('id_order_state') + ), + 1, + null, + 'Order', + (int)$order->id, + true, + (int)$this->context->employee->id + ); Tools::redirectAdmin(self::$currentIndex.'&id_order='.(int)$order->id.'&conf=5&vieworder&token='.$this->token); } else { $this->errors = array_merge($this->errors, $result['errors']); @@ -2035,6 +2090,23 @@ public function postProcess() // Redirect if no errors if (!count($this->errors)) { + $idHotel = HotelBookingDetail::getIdHotelByIdOrder((int)$order->id); + $objHotelBranch = new HotelBranchInformation((int)$idHotel, (int)$this->context->language->id); + PrestaShopLogger::addLog( + sprintf( + $this->l('[%s] Hotel: %s | Refund/cancellation request #%s created (reason: %s)'), + $order->reference, + $objHotelBranch->hotel_name, + $objOrderReturn->id, + $refundReason + ), + 1, + null, + 'Order', + (int)$order->id, + true, + (int)$this->context->employee->id + ); Tools::redirectAdmin(self::$currentIndex.'&id_order='.$order->id.'&vieworder&conf=3&token='.$this->token); } } else { @@ -2101,6 +2173,24 @@ public function postProcess() $this->errors[] = Tools::displayError('An error occurred during payment.'); } } else { + $idHotel = HotelBookingDetail::getIdHotelByIdOrder((int)$order->id); + $objHotelBranch = new HotelBranchInformation((int)$idHotel, (int)$this->context->language->id); + PrestaShopLogger::addLog( + sprintf( + $this->l('[%s] Hotel: %s | Payment of %s %s added via %s'), + $order->reference, + $objHotelBranch->hotel_name, + $amount, + $currency->iso_code, + Tools::getValue('payment_method') + ), + 1, + null, + 'Order', + (int)$order->id, + true, + (int)$this->context->employee->id + ); Tools::redirectAdmin(self::$currentIndex.'&id_order='.$order->id.'&vieworder&conf=4&token='.$this->token); } } @@ -2261,6 +2351,24 @@ public function postProcess() } if ($objPaymentModule->currentOrder) { + $newOrder = new Order((int)$objPaymentModule->currentOrder); + $idHotel = HotelBookingDetail::getIdHotelByIdOrder((int)$newOrder->id); + $objHotelBranch = new HotelBranchInformation((int)$idHotel, (int)$this->context->language->id); + PrestaShopLogger::addLog( + sprintf( + $this->l('[%s] Hotel: %s | Order created by admin (payment: %s, amount paid: %s)'), + $newOrder->reference, + $objHotelBranch->hotel_name, + $objPaymentModule->displayName, + $amountPaid + ), + 1, + null, + 'Order', + (int)$newOrder->id, + true, + (int)$this->context->employee->id + ); Tools::redirectAdmin(self::$currentIndex.'&id_order='.$objPaymentModule->currentOrder.'&vieworder'.'&token='.$this->token.'&conf=3'); } } @@ -2615,6 +2723,23 @@ public function postProcess() _PS_PRICE_COMPUTE_PRECISION_ ); $order->update(); + + $idHotel = HotelBookingDetail::getIdHotelByIdOrder((int)$order->id); + $objHotelBranch = new HotelBranchInformation((int)$idHotel, (int)$this->context->language->id); + PrestaShopLogger::addLog( + sprintf( + $this->l('[%s] Hotel: %s | Voucher %s removed from order'), + $order->reference, + $objHotelBranch->hotel_name, + $order_cart_rule->name + ), + 1, + null, + 'Order', + (int)$order->id, + true, + (int)$this->context->employee->id + ); } Tools::redirectAdmin(self::$currentIndex.'&id_order='.$order->id.'&vieworder&conf=4&token='.$this->token); @@ -2790,6 +2915,22 @@ public function postProcess() } if ($res) { + $idHotel = HotelBookingDetail::getIdHotelByIdOrder((int)$order->id); + $objHotelBranch = new HotelBranchInformation((int)$idHotel, (int)$this->context->language->id); + PrestaShopLogger::addLog( + sprintf( + $this->l('[%s] Hotel: %s | Voucher %s added to order'), + $order->reference, + $objHotelBranch->hotel_name, + Tools::getValue('discount_name') + ), + 1, + null, + 'Order', + (int)$order->id, + true, + (int)$this->context->employee->id + ); Tools::redirectAdmin(self::$currentIndex.'&id_order='.$order->id.'&vieworder&conf=4&token='.$this->token); } else { $this->errors[] = Tools::displayError('An error occurred during the OrderCartRule creation'); @@ -5430,6 +5571,24 @@ public function ajaxProcessAddRoomOnOrder() } if ($objBookingDetail->save()) { + PrestaShopLogger::addLog( + sprintf( + $this->l('[%s] Hotel: %s | Room: %s (%s) added to order (check-in: %s, check-out: %s)'), + $order->reference, + $objBookingDetail->hotel_name, + $objBookingDetail->room_num, + $objBookingDetail->room_type_name, + date('d M Y', strtotime($objBookingDetail->date_from)), + date('d M Y', strtotime($objBookingDetail->date_to)) + ), + 1, + null, + 'Order', + (int)$order->id, + true, + (int)$this->context->employee->id + ); + $objRoomTypeServiceProduct = new RoomTypeServiceProduct(); $objRoomTypeServiceProductPrice = new RoomTypeServiceProductPrice(); $objServiceProductCartDetail = new ServiceProductCartDetail(); @@ -5815,6 +5974,23 @@ public function ajaxProcessAddProductOnOrder() $objServiceProductOrderDetail->save(); } + $idHotel = HotelBookingDetail::getIdHotelByIdOrder((int)$objOrder->id); + $objHotelBranch = new HotelBranchInformation((int)$idHotel, (int)$this->context->language->id); + PrestaShopLogger::addLog( + sprintf( + $this->l('[%s] Hotel: %s | Product %s (qty: %s) added to order'), + $objOrder->reference, + $objHotelBranch->hotel_name, + $objProduct->name, + $productInformations['product_quantity'] + ), + 1, + null, + 'Order', + (int)$objOrder->id, + true, + (int)$this->context->employee->id + ); $response['status'] = true; } else { $response['status'] = false; @@ -6334,6 +6510,25 @@ public function ajaxProcessEditRoomOnOrder() $view = $this->createTemplate('_product_line.tpl')->fetch(); } + PrestaShopLogger::addLog( + sprintf( + $this->l('[%s] Hotel: %s | Room: %s | dates edited: %s - %s to %s - %s'), + $order->reference, + $obj_booking_detail->hotel_name, + $obj_booking_detail->room_num, + date('d M Y', strtotime($old_date_from)), + date('d M Y', strtotime($old_date_to)), + date('d M Y', strtotime($new_date_from)), + date('d M Y', strtotime($new_date_to)) + ), + 1, + null, + 'Order', + (int)$order->id, + true, + (int)$this->context->employee->id + ); + $this->sendChangedNotification($order); die(json_encode(array( 'result' => $res, @@ -6470,6 +6665,24 @@ public function ajaxProcessEditProductOnOrder() $response['error'] = Tools::displayError('Some error has been occurred while updating the product. Please try again.'); } else { $this->sendChangedNotification($objOrder); + $idHotel = HotelBookingDetail::getIdHotelByIdOrder((int)$objOrder->id); + $objHotelBranch = new HotelBranchInformation((int)$idHotel, (int)$this->context->language->id); + PrestaShopLogger::addLog( + sprintf( + $this->l('[%s] Hotel: %s | Product %s updated: qty set to %s, unit price (excl. tax) set to %s'), + $objOrder->reference, + $objHotelBranch->hotel_name, + $objServiceProductOrderDetail->name, + $editProductInfo['product_quantity'], + $editProductInfo['product_price_tax_excl'] + ), + 1, + null, + 'Order', + (int)$objOrder->id, + true, + (int)$this->context->employee->id + ); } } @@ -6820,6 +7033,24 @@ public function ajaxProcessDeleteRoomLine() 'can_edit' => ($this->tabAccess['edit'] === 1), )); + PrestaShopLogger::addLog( + sprintf( + $this->l('[%s] Hotel: %s | Room: %s (%s) removed from order (check-in: %s, check-out: %s)'), + $order->reference, + $objBookingDetail->hotel_name, + $objBookingDetail->room_num, + $order_detail->product_name, + date('d M Y', strtotime($objBookingDetail->date_from)), + date('d M Y', strtotime($objBookingDetail->date_to)) + ), + 1, + null, + 'Order', + (int)$order->id, + true, + (int)$this->context->employee->id + ); + $this->sendChangedNotification($order); die(json_encode(array( 'result' => $res, @@ -6908,6 +7139,22 @@ public function ajaxProcessDeleteProductLine() $response['error'] = Tools::displayError('Some error has been occurred while updating the product. Please try again.'); } else { $this->sendChangedNotification($objOrder); + $idHotel = HotelBookingDetail::getIdHotelByIdOrder((int)$objOrder->id); + $objHotelBranch = new HotelBranchInformation((int)$idHotel, (int)$this->context->language->id); + PrestaShopLogger::addLog( + sprintf( + $this->l('[%s] Hotel: %s | Product %s removed from order'), + $objOrder->reference, + $objHotelBranch->hotel_name, + $objOrderDetail->product_name + ), + 1, + null, + 'Order', + (int)$objOrder->id, + true, + (int)$this->context->employee->id + ); } } @@ -7740,6 +7987,27 @@ public function ajaxProcessUpdateSelectedRoomServices() $objOrder->total_paid_tax_excl = Tools::ps_round($objOrder->getOrderTotal(false), _PS_PRICE_COMPUTE_PRECISION_); $result &= $objOrder->update(); + if ($result) { + PrestaShopLogger::addLog( + sprintf( + $this->l('[%s] Hotel: %s | Room: %s (check-in: %s, check-out: %s) | Service %s updated (qty: %s, unit price: %s)'), + $objOrder->reference, + $objHotelBookingDetail->hotel_name, + $objHotelBookingDetail->room_num, + date('d M Y', strtotime($objHotelBookingDetail->date_from)), + date('d M Y', strtotime($objHotelBookingDetail->date_to)), + $objServiceProductOrderDetail->name, + $objServiceProductOrderDetail->quantity, + $objServiceProductOrderDetail->unit_price_tax_excl + ), + 1, + null, + 'Order', + (int)$objOrder->id, + true, + (int)$this->context->employee->id + ); + } } } @@ -7974,6 +8242,24 @@ public function ajaxProcessAddExistingRoomServices() $objServiceProductOrderDetail->name = $service['name']; $objServiceProductOrderDetail->quantity = $objServiceProductCartDetail->quantity; $objServiceProductOrderDetail->save(); + PrestaShopLogger::addLog( + sprintf( + $this->l('[%s] Hotel: %s | Room: %s (check-in: %s, check-out: %s) | Service %s added'), + $order->reference, + $objHotelBookingDetail->hotel_name, + $objHotelBookingDetail->room_num, + date('d M Y', strtotime($objHotelBookingDetail->date_from)), + date('d M Y', strtotime($objHotelBookingDetail->date_to)), + $service['name'] + ), + 1, + null, + 'Order', + (int)$order->id, + true, + (int)$this->context->employee->id + ); + // update totals amount of order $order->total_products = Tools::ps_round((float)($order->total_products + $totalPriceChangeTaxExcl), _PS_PRICE_COMPUTE_PRECISION_); @@ -8294,6 +8580,23 @@ public function ajaxProcessAddNewRoomServices() $objHotelBookingDetail->id, true ); + PrestaShopLogger::addLog( + sprintf( + $this->l('[%s] Hotel: %s | Room: %s (check-in: %s, check-out: %s) | New custom service %s added'), + $objOrder->reference, + $objHotelBookingDetail->hotel_name, + $objHotelBookingDetail->room_num, + date('d M Y', strtotime($objHotelBookingDetail->date_from)), + date('d M Y', strtotime($objHotelBookingDetail->date_to)), + $name + ), + 1, + null, + 'Order', + (int)$objOrder->id, + true, + (int)$this->context->employee->id + ); } else { $response['hasError'] = true; $response['errors'][] = Tools::displayError('Some error occurred while updating the order'); @@ -8440,6 +8743,23 @@ public function ajaxProcessDeleteRoomAdditionalService() $res &= $order->update(); } if ($res) { + PrestaShopLogger::addLog( + sprintf( + $this->l('[%s] Hotel: %s | Room: %s (check-in: %s, check-out: %s) | Service %s removed'), + $order->reference, + $objHotelBookingDetail->hotel_name, + $objHotelBookingDetail->room_num, + date('d M Y', strtotime($objHotelBookingDetail->date_from)), + date('d M Y', strtotime($objHotelBookingDetail->date_to)), + $objServiceProductOrderDetail->name + ), + 1, + null, + 'Order', + (int)$order->id, + true, + (int)$this->context->employee->id + ); $response['service_panel']= $servicesBlock = $this->processRenderServicesPanel( $objOrderDetail->id_order, $objHotelBookingDetail->id_product, @@ -8895,6 +9215,30 @@ public function changeRoomStatus() ) ); + $statusLabels = array( + HotelBookingDetail::STATUS_ALLOTED => $this->l('Alloted'), + HotelBookingDetail::STATUS_CHECKED_IN => $this->l('Checked In'), + HotelBookingDetail::STATUS_CHECKED_OUT => $this->l('Checked Out'), + ); + $statusLabel = isset($statusLabels[$newStatus]) ? $statusLabels[$newStatus] : $newStatus; + PrestaShopLogger::addLog( + sprintf( + $this->l('[%s] Hotel: %s | Room: %s (check-in: %s, check-out: %s) | Status updated to %s'), + $order->reference, + $objHotelBookingDetail->hotel_name, + $objHotelBookingDetail->room_num, + date('d M Y', strtotime($objHotelBookingDetail->date_from)), + date('d M Y', strtotime($objHotelBookingDetail->date_to)), + $statusLabel + ), + 1, + null, + 'Order', + (int)$order->id, + true, + (int)$this->context->employee->id + ); + Tools::redirectAdmin(self::$currentIndex . '&id_order=' . (int) $objHotelBookingDetail->id_order . '&vieworder&token=' . $this->token . '&conf=4'); } else { $this->errors[] = Tools::displayError('Some error occurred. Please try again.'); diff --git a/modules/hotelreservationsystem/controllers/admin/AdminOrderRefundRequestsController.php b/modules/hotelreservationsystem/controllers/admin/AdminOrderRefundRequestsController.php index 8edfba9192..7397876557 100644 --- a/modules/hotelreservationsystem/controllers/admin/AdminOrderRefundRequestsController.php +++ b/modules/hotelreservationsystem/controllers/admin/AdminOrderRefundRequestsController.php @@ -662,10 +662,30 @@ public function postProcess() $confirmation = 4; if ($objRefundState->denied) { $confirmation = 101; + $refundStatus = $this->l('Rejected'); } elseif ($objRefundState->refunded) { $confirmation = 102; + $refundStatus = $this->l('Approved/Refunded'); } + $idHotel = HotelBookingDetail::getIdHotelByIdOrder((int)$objOrder->id); + $objHotelBranch = new HotelBranchInformation((int)$idHotel, (int)$this->context->language->id); + PrestaShopLogger::addLog( + sprintf( + $this->l('[%s] Hotel: %s | Refund request #%s status updated to %s'), + $objOrder->reference, + $objHotelBranch->hotel_name, + $idOrderReturn, + $refundStatus + ), + 1, + null, + 'Order', + (int)$objOrder->id, + true, + (int)$this->context->employee->id + ); + if (Tools::isSubmit('submitRefundReqBookingsAndStay')) { Tools::redirectAdmin( self::$currentIndex.'&conf='.$confirmation.'&id_order_return='.$idOrderReturn.