Skip to content

Commit

Permalink
Merge pull request #282 from sumitwebkul/gli-565
Browse files Browse the repository at this point in the history
Order refund states 'Refunded' and 'Denied' should not enabled together from render list
  • Loading branch information
rohit053 authored Jan 31, 2022
2 parents 010abdf + 86bf445 commit 2b637c7
Show file tree
Hide file tree
Showing 2 changed files with 51 additions and 16 deletions.
36 changes: 21 additions & 15 deletions controllers/admin/AdminStatusesController.php
Original file line number Diff line number Diff line change
Expand Up @@ -155,7 +155,7 @@ protected function initOrdersReturnsList()
'type' => 'bool',
'ajax' => true,
'orderby' => false,
'class' => 'fixed-width-sm'
'class' => 'fixed-width-sm state-refunded'
),
'denied' => array(
'title' => $this->l('Denied'),
Expand All @@ -164,12 +164,12 @@ protected function initOrdersReturnsList()
'type' => 'bool',
'ajax' => true,
'orderby' => false,
'class' => 'fixed-width-sm'
'class' => 'fixed-width-sm state-denied'
),
'send_email_to_customer' => array(
'title' => $this->l('Send email to customer'),
'align' => 'text-center',
'active' => 'sendEmailToSuperAdmin',
'active' => 'sendEmailToCustomer',
'type' => 'bool',
'ajax' => true,
'orderby' => false,
Expand All @@ -178,7 +178,7 @@ protected function initOrdersReturnsList()
'send_email_to_superadmin' => array(
'title' => $this->l('Send email to super admin'),
'align' => 'text-center',
'active' => 'sendEmailToCustomer',
'active' => 'sendEmailToSuperAdmin',
'type' => 'bool',
'ajax' => true,
'orderby' => false,
Expand All @@ -202,12 +202,6 @@ protected function initOrdersReturnsList()
'orderby' => false,
'class' => 'fixed-width-sm'
),
// 'customer_template' => array(
// 'title' => $this->l('Customer Email template')
// ),
// 'admin_template' => array(
// 'title' => $this->l('Admin Email template')
// ),
);
}

Expand Down Expand Up @@ -990,8 +984,15 @@ public function ajaxProcessSendEmailToHotelierOrderReturnState()
public function ajaxProcessRefundedOrderReturnState()
{
$id_order_return_state = (int)Tools::getValue('id_order_return_state');
$objOrdRtrnState = new OrderReturnState($id_order_return_state);

$sql = 'UPDATE '._DB_PREFIX_.'order_return_state SET `refunded`= NOT `refunded`';
// check condition as booth refunded and denied can not be true together
if (!$objOrdRtrnState->refunded && $objOrdRtrnState->denied) {
$sql .= ', `denied`= NOT `denied`';
}
$sql .= ' WHERE id_order_return_state='.(int)$id_order_return_state;

$sql = 'UPDATE '._DB_PREFIX_.'order_return_state SET `refunded`= NOT `refunded` WHERE id_order_return_state='.(int)$id_order_return_state;
$result = Db::getInstance()->execute($sql);

if ($result) {
Expand All @@ -1004,8 +1005,15 @@ public function ajaxProcessRefundedOrderReturnState()
public function ajaxProcessDeniedOrderReturnState()
{
$id_order_return_state = (int)Tools::getValue('id_order_return_state');
$objOrdRtrnState = new OrderReturnState($id_order_return_state);

$sql = 'UPDATE '._DB_PREFIX_.'order_return_state SET `denied`= NOT `denied`';
// check condition as booth refunded and denied can not be true together
if (!$objOrdRtrnState->denied && $objOrdRtrnState->refunded) {
$sql .= ', `refunded`= NOT `refunded`';
}
$sql .= ' WHERE id_order_return_state='.(int)$id_order_return_state;

$sql = 'UPDATE '._DB_PREFIX_.'order_return_state SET `denied`= NOT `denied` WHERE id_order_return_state='.(int)$id_order_return_state;
$result = Db::getInstance()->execute($sql);

if ($result) {
Expand All @@ -1019,8 +1027,6 @@ public function setMedia()
{
parent::setMedia();

if ($this->tabAccess['edit'] == 1 && $this->display == 'edit') {
$this->addJS(_PS_JS_DIR_.'admin/order_states.js');
}
$this->addJS(_PS_JS_DIR_.'admin/order_states.js');
}
}
31 changes: 30 additions & 1 deletion js/admin/order_states.js
Original file line number Diff line number Diff line change
Expand Up @@ -24,4 +24,33 @@ $(document).ready(function() {
$(this).prop('checked', true);
}
});
});

// for refunded and denied options we have to load page
// Because both options are changing and default js showing only state change in click action
$(".ajax_table_link").click(function () {
var statusLink = $(this);
if (statusLink.closest('td').hasClass('state-refunded') || statusLink.closest('td').hasClass('state-denied')) {
$(document).off().on('ajaxComplete', function( e, xhr, settings ) {
if (typeof xhr.responseJSON.success !== 'undefined' && xhr.responseJSON.success == 1) {
if (statusLink.hasClass('action-enabled')){
if (statusLink.closest('td').hasClass('state-refunded')) {
var toChangeStatus = statusLink.closest('tr').find('.state-denied .ajax_table_link');
} else if (statusLink.closest('td').hasClass('state-denied')) {
var toChangeStatus = statusLink.closest('tr').find('.state-refunded .ajax_table_link');
}
if (toChangeStatus.hasClass('action-enabled')) {
toChangeStatus.removeClass('action-enabled').addClass('action-disabled');
toChangeStatus.children().each(function () {
if ($(this).hasClass('hidden')) {
$(this).removeClass('hidden');
} else {
$(this).addClass('hidden');
}
});
}
}
}
});
}
});
});

0 comments on commit 2b637c7

Please sign in to comment.