![]() Server : Apache/2.4.62 (Unix) OpenSSL/1.0.2k-fips System : Linux server1.richineiserver.com 3.10.0-1160.119.1.el7.x86_64 #1 SMP Tue Jun 4 14:43:51 UTC 2024 x86_64 User : fdshops ( 1003) PHP Version : 8.2.21 Disable Function : NONE Directory : /home/fdshops/old.fdshops.com.ng/public/js/ |
$(document).ready(function() { //get suppliers $('#supplier_id').select2({ ajax: { url: '/purchases/get_suppliers', dataType: 'json', delay: 250, data: function(params) { return { q: params.term, // search term page: params.page, }; }, processResults: function(data) { return { results: data, }; }, }, minimumInputLength: 1, escapeMarkup: function(m) { return m; }, templateResult: function(data) { if (!data.id) { return data.text; } var html = data.text + ' - ' + data.business_name + ' (' + data.contact_id + ')'; return html; } }); //Add products if ($('#search_product_for_purchase_return').length > 0) { //Add Product $('#search_product_for_purchase_return') .autocomplete({ source: function(request, response) { $.getJSON( '/products/list', { location_id: $('#location_id').val(), term: request.term }, response ); }, minLength: 2, response: function(event, ui) { if (ui.content.length == 1) { ui.item = ui.content[0]; if (ui.item.qty_available > 0 && ui.item.enable_stock == 1) { $(this) .data('ui-autocomplete') ._trigger('select', 'autocompleteselect', ui); $(this).autocomplete('close'); } } else if (ui.content.length == 0) { swal(LANG.no_products_found); } }, focus: function(event, ui) { if (ui.item.qty_available <= 0) { return false; } }, select: function(event, ui) { if (ui.item.qty_available > 0) { $(this).val(null); purchase_return_product_row(ui.item.variation_id); } else { alert(LANG.out_of_stock); } }, }) .autocomplete('instance')._renderItem = function(ul, item) { if (item.qty_available <= 0) { var string = '<li class="ui-state-disabled">' + item.name; if (item.type == 'variable') { string += '-' + item.variation; } string += ' (' + item.sub_sku + ') (Out of stock) </li>'; return $(string).appendTo(ul); } else if (item.enable_stock != 1) { return ul; } else { var string = '<div>' + item.name; if (item.type == 'variable') { string += '-' + item.variation; } string += ' (' + item.sub_sku + ') </div>'; return $('<li>') .append(string) .appendTo(ul); } }; } $('select#location_id').change(function() { if ($(this).val()) { $('#search_product_for_purchase_return').removeAttr('disabled'); } else { $('#search_product_for_purchase_return').attr('disabled', 'disabled'); } $('table#stock_adjustment_product_table tbody').html(''); $('#product_row_index').val(0); }); $(document).on('change', 'input.product_quantity', function() { update_table_row($(this).closest('tr')); }); $(document).on('change', 'input.product_unit_price', function() { update_table_row($(this).closest('tr')); }); $(document).on('click', '.remove_product_row', function() { swal({ title: LANG.sure, icon: 'warning', buttons: true, dangerMode: true, }).then(willDelete => { if (willDelete) { $(this) .closest('tr') .remove(); update_table_total(); } }); }); //Date picker $('#transaction_date').datetimepicker({ format: moment_date_format + ' ' + moment_time_format, ignoreReadonly: true, }); $('form#purchase_return_form').validate(); $(document).on('click', 'button#submit_purchase_return_form', function(e) { e.preventDefault(); //Check if product is present or not. if ($('table#purchase_return_product_table tbody tr').length <= 0) { toastr.warning(LANG.no_products_added); $('input#search_product_for_purchase_return').select(); return false; } if ($('form#purchase_return_form').valid()) { $('form#purchase_return_form').submit(); } }); $('#tax_id').change(function() { update_table_total(); }); $('#purchase_return_product_table tbody') .find('.expiry_datepicker') .each(function() { $(this).datepicker({ autoclose: true, format: datepicker_date_format, }); }); }); function purchase_return_product_row(variation_id) { var row_index = parseInt($('#product_row_index').val()); var location_id = $('#location_id').val(); $.ajax({ method: 'POST', url: '/purchase-return/get_product_row', data: { row_index: row_index, variation_id: variation_id, location_id: location_id }, dataType: 'html', success: function(result) { $('table#purchase_return_product_table tbody').append(result); $('table#purchase_return_product_table tbody tr:last').find('.expiry_datepicker').datepicker({ autoclose: true, format: datepicker_date_format, }); update_table_total(); $('#product_row_index').val(row_index + 1); }, }); } function update_table_total() { var table_total = 0; $('table#purchase_return_product_table tbody tr').each(function() { var this_total = parseFloat(__read_number($(this).find('input.product_line_total'))); if (this_total) { table_total += this_total; } }); var tax_rate = parseFloat($('option:selected', $('#tax_id')).data('tax_amount')); var tax = __calculate_amount('percentage', tax_rate, table_total); __write_number($('input#tax_amount'), tax); var final_total = table_total + tax; $('input#total_amount').val(final_total); $('span#total_return').text(__number_f(final_total)); } function update_table_row(tr) { var quantity = parseFloat(__read_number(tr.find('input.product_quantity'))); var unit_price = parseFloat(__read_number(tr.find('input.product_unit_price'))); var row_total = 0; if (quantity && unit_price) { row_total = quantity * unit_price; } tr.find('input.product_line_total').val(__number_f(row_total)); update_table_total(); } function get_stock_adjustment_details(rowData) { var div = $('<div/>') .addClass('loading') .text('Loading...'); $.ajax({ url: '/stock-adjustments/' + rowData.DT_RowId, dataType: 'html', success: function(data) { div.html(data).removeClass('loading'); }, }); return div; }