;(function($){ var softoba_items_metabox = { init: function () { // $( document.body ).on( 'click', 'button.softoba_accept_button', this.do_refund ); $( document.body ).on( 'click', 'button#softoba_reject_request_button', this.reject ); $( document.body ).on( 'click', 'button#softoba_ex_reject_request_button', this.reject_exchange ); $( document.body ).on( 'click', 'button#softoba_ex_approved_request_button', this.approved_exchange ); $( document.body ).on( 'click', 'button#softoba_processing_request_button', this.processing ); $( document.body ).on( 'click', 'button#softoba_ex_processing_request_button', this.processing_exchange ); $( document.body ).on( 'click', 'button#softoba_on_hold_request_button', this.on_hold ); $( document.body ).on( 'click', 'button#softoba_ex_on_hold_request_button', this.on_hold_exchange ); $( document.body ).on( 'click', 'button#softoba_close_request_button', this.close_request ); $( document.body ).on( 'click', 'button#softoba_ex_close_request_button', this.close_exchange_request ); $( document.body ).on( 'click', '.softoba_close_alert', function () { $( this ).closest( 'div.softoba_alert' ).hide(); } ); this.check_disabled_buttons(); this.update_table_refund_total(); // this.update_table_refund_subtotal(); // this.custom_refund(); }, update_table_refund_total: function () { $( document.body ).on( 'update_refund_total', function () { var $refund_total = $( 'td.softoba_refund_total_data' ); var $price_amount_on_buttons = $( 'button span.amount' ); var refund_total = 0; $( 'input.softoba_item_total' ).each( function (i) { refund_total += parseFloat( $( this ).val() ); } ); refund_total = accounting.formatNumber( refund_total, softoba_admin_objects.currency_format_num_decimals, '' ); $( '#softoba_refund_amount' ).val( refund_total ); $( this ).trigger( 'check_disabled_buttons', refund_total ); refund_total = accounting.formatMoney( refund_total, { symbol: softoba_admin_objects.currency_format_symbol, decimal: softoba_admin_objects.currency_format_decimal_sep, thousand: softoba_admin_objects.currency_format_thousand_sep, precision: softoba_admin_objects.currency_format_num_decimals, format: softoba_admin_objects.currency_format } ); $refund_total.text( refund_total ); $price_amount_on_buttons.text( refund_total ); } ); }, check_disabled_buttons: function () { $( document.body ).on( 'check_disabled_buttons', function ( event, refund_total ) { var $action_buttons = $( 'button.softoba_request_action_button' ); var $api_button = $( '#softoba_api_refund_button' ); var $coupon_button = $( '#softoba_offer_coupon_button' ); var $reject_button = $( 'button#softoba_reject_request_button' ); var $processing_button = $( 'button#softoba_processing_request_button' ); var $on_hold_button = $( 'button#softoba_on_hold_request_button' ); var request_is_closed = !! $( 'input#softoba_request_is_closed' ).val(); var request_status = $( '#softoba_request_status' ).val(); var order_total = parseFloat( $( 'input#softoba_order_total' ).val() ); if ( request_is_closed || refund_total <= 0 || refund_total > order_total ) { $action_buttons.prop( 'disabled', true ); } else { $action_buttons.prop( 'disabled', false ); if( $api_button.hasClass( 'disabled' ) ) { $api_button.prop( 'disabled', true ); } } if ( 'softoba-coupon' == request_status ) { $coupon_button.prop( 'disabled', true ); } if ( 'softoba-rejected' == request_status ) { $reject_button.prop( 'disabled', true ); } if ( 'softoba-processing' == request_status ) { $processing_button.prop( 'disabled', true ); } if ( 'softoba-on-hold' == request_status ) { $on_hold_button.prop( 'disabled', true ); } if ( 'softoba-approved' == request_status ) { $on_hold_button.prop( 'disabled', true ); $processing_button.prop( 'disabled', true ); $reject_button.prop( 'disabled', true ); } } ); $( document.body ).trigger( 'check_disabled_buttons' ); }, reject: function ( e ) { e.preventDefault(); softoba_items_metabox.block(); var request_id = $( 'input#softoba_request_id' ).val(); if ( window.confirm( softoba_admin_objects.reject ) ) { var data = { action: 'softoba_change_status', softoba_request_id: request_id, softoba_status: 'softoba-rejected', security: softoba_admin_objects.change_status_nonce }; $.post( softoba_admin_objects.ajax_url, data, function( response ) { if ( true === response.success ) { softoba_items_metabox.unblock(); window.location.reload(); } else { window.alert( 'Error: ' + response.data.error ); softoba_items_metabox.unblock(); } }); } else { softoba_items_metabox.unblock(); } }, processing: function ( e ) { e.preventDefault(); softoba_items_metabox.block(); var request_id = $( 'input#softoba_request_id' ).val(); var data = { action: 'softoba_change_status', softoba_request_id: request_id, softoba_status: 'softoba-processing', security: softoba_admin_objects.change_status_nonce }; $.post( softoba_admin_objects.ajax_url, data, function( response ) { if ( true === response.success ) { softoba_items_metabox.unblock(); window.location.reload(); } else { window.alert( 'Error: ' + response.data.error ); softoba_items_metabox.unblock(); } }); }, on_hold: function ( e ) { e.preventDefault(); softoba_items_metabox.block(); var request_id = $( 'input#softoba_request_id' ).val(); var data = { action: 'softoba_change_status', softoba_request_id: request_id, softoba_status: 'softoba-on-hold', security: softoba_admin_objects.change_status_nonce }; $.post( softoba_admin_objects.ajax_url, data, function( response ) { if ( true === response.success ) { softoba_items_metabox.unblock(); window.location.reload(); } else { window.alert( 'Error: ' + response.data.error ); softoba_items_metabox.unblock(); } }); }, close_request: function ( e ) { e.preventDefault(); softoba_items_metabox.block(); var request_id = $( 'input#softoba_request_id' ).val(); if ( window.confirm( softoba_admin_objects.close_request ) ) { var data = { action: 'softoba_change_status', softoba_request_id: request_id, softoba_status: 'softoba-close-request', security: softoba_admin_objects.change_status_nonce }; $.post( softoba_admin_objects.ajax_url, data, function( response ) { if ( true === response.success ) { softoba_items_metabox.unblock(); window.location.reload(); } else { window.alert( 'Error: ' + response.data.error ); softoba_items_metabox.unblock(); } }); } else { softoba_items_metabox.unblock(); } }, check_exchange_disabled_buttons: function () { $( document.body ).on( 'check_exchange_disabled_buttons', function ( event, refund_total ) { var $action_buttons = $( 'button.softoba_ex_request_action_button' ); var $api_button = $( '#softoba_ex_api_refund_button' ); var $coupon_button = $( '#softoba_ex_offer_coupon_button' ); var $reject_button = $( 'button#softoba_ex_reject_request_button' ); var $processing_button = $( 'button#softoba_ex_processing_request_button' ); var $on_hold_button = $( 'button#softoba_ex_on_hold_request_button' ); var request_is_closed = !! $( 'input#softoba_ex_request_is_closed' ).val(); var request_status = $( '#softoba_ex_request_status' ).val(); var order_total = parseFloat( $( 'input#softoba_ex_order_total' ).val() ); if ( request_is_closed || refund_total <= 0 || refund_total > order_total ) { $action_buttons.prop( 'disabled', true ); } else { $action_buttons.prop( 'disabled', false ); if( $api_button.hasClass( 'disabled' ) ) { $api_button.prop( 'disabled', true ); } } if ( 'softoba-coupon' == request_status ) { $coupon_button.prop( 'disabled', true ); } if ( 'softoba-rejected' == request_status ) { $reject_button.prop( 'disabled', true ); } if ( 'softoba-processing' == request_status ) { $processing_button.prop( 'disabled', true ); } if ( 'softoba-on-hold' == request_status ) { $on_hold_button.prop( 'disabled', true ); } if ( 'softoba-approved' == request_status ) { $on_hold_button.prop( 'disabled', true ); $processing_button.prop( 'disabled', true ); $reject_button.prop( 'disabled', true ); } } ); $( document.body ).trigger( 'check_exchange_disabled_buttons' ); }, reject_exchange: function ( e ) { e.preventDefault(); softoba_items_metabox.block(); var request_id = $( 'input#softoba_ex_request_id' ).val(); if ( window.confirm( softoba_admin_objects.reject ) ) { var data = { action: 'softoba_ex_change_status', softoba_request_id: request_id, softoba_status: 'softoba-rejected', security: softoba_admin_objects.change_status_nonce }; $.post( softoba_admin_objects.ajax_url, data, function( response ) { if ( true === response.success ) { softoba_items_metabox.unblock(); window.location.reload(); } else { window.alert( 'Error: ' + response.data.error ); softoba_items_metabox.unblock(); } }); } else { softoba_items_metabox.unblock(); } }, processing_exchange: function ( e ) { e.preventDefault(); softoba_items_metabox.block(); var request_id = $( 'input#softoba_ex_request_id' ).val(); var data = { action: 'softoba_ex_change_status', softoba_request_id: request_id, softoba_status: 'softoba-processing', security: softoba_admin_objects.change_status_nonce }; $.post( softoba_admin_objects.ajax_url, data, function( response ) { if ( true === response.success ) { softoba_items_metabox.unblock(); window.location.reload(); } else { window.alert( 'Error: ' + response.data.error ); softoba_items_metabox.unblock(); } }); }, on_hold_exchange: function ( e ) { e.preventDefault(); softoba_items_metabox.block(); var request_id = $( 'input#softoba_ex_request_id' ).val(); var data = { action: 'softoba_ex_change_status', softoba_request_id: request_id, softoba_status: 'softoba-on-hold', security: softoba_admin_objects.change_status_nonce }; $.post( softoba_admin_objects.ajax_url, data, function( response ) { if ( true === response.success ) { softoba_items_metabox.unblock(); window.location.reload(); } else { window.alert( 'Error: ' + response.data.error ); softoba_items_metabox.unblock(); } }); }, approved_exchange: function ( e ) { e.preventDefault(); softoba_items_metabox.block(); var request_id = $( 'input#softoba_ex_request_id' ).val(); var data = { action: 'softoba_ex_change_status', softoba_request_id: request_id, softoba_status: 'softoba-approved', security: softoba_admin_objects.change_status_nonce }; $.post( softoba_admin_objects.ajax_url, data, function( response ) { if ( true === response.success ) { softoba_items_metabox.unblock(); window.location.reload(); } else { window.alert( 'Error: ' + response.data.error ); softoba_items_metabox.unblock(); } console.log( response ); }); }, close_exchange_request: function ( e ) { e.preventDefault(); softoba_items_metabox.block(); var request_id = $( 'input#softoba_ex_request_id' ).val(); if ( window.confirm( softoba_admin_objects.close_request ) ) { var data = { action: 'softoba_ex_change_status', softoba_request_id: request_id, softoba_status: 'softoba-close-request', security: softoba_admin_objects.change_status_nonce }; $.post( softoba_admin_objects.ajax_url, data, function( response ) { if ( true === response.success ) { softoba_items_metabox.unblock(); window.location.reload(); } else { window.alert( 'Error: ' + response.data.error ); softoba_items_metabox.unblock(); } }); } else { softoba_items_metabox.unblock(); } }, block: function() { $( '#softoba-items-metabox' ).block({ message: null, overlayCSS: { background: '#fff', opacity: 0.6 } }); }, unblock: function() { $( '#softoba-items-metabox' ).unblock(); }, } softoba_items_metabox.init(); })(jQuery);