3036 lines
101 KiB
JavaScript
Vendored
3036 lines
101 KiB
JavaScript
Vendored
$(document).ready(function() {
|
|
getTotalUnreadNotifications();
|
|
$('body').on('click', 'label', function(e) {
|
|
var field_id = $(this).attr('for');
|
|
if (field_id) {
|
|
if ($('#' + field_id).hasClass('select2')) {
|
|
$('#' + field_id).select2('open');
|
|
return false;
|
|
}
|
|
}
|
|
});
|
|
fileinput_setting = {
|
|
showUpload: false,
|
|
showPreview: false,
|
|
browseLabel: LANG.file_browse_label,
|
|
removeLabel: LANG.remove,
|
|
};
|
|
$(document).ajaxStart(function() {
|
|
Pace.restart();
|
|
});
|
|
|
|
__select2($('.select2'));
|
|
|
|
// Help popovers (hover-q): manual init only — avoid global popover() + use bottom placement in RTL.
|
|
function __initHelpPopover($el) {
|
|
if ($el.data('bs.popover')) {
|
|
$el.popover('destroy');
|
|
}
|
|
|
|
var isRtl = $('html').attr('dir') === 'rtl';
|
|
|
|
$el.popover({
|
|
container: 'body',
|
|
placement: isRtl ? 'bottom' : 'right',
|
|
html: true,
|
|
trigger: 'manual',
|
|
viewport: {
|
|
selector: 'body',
|
|
padding: 12,
|
|
},
|
|
});
|
|
}
|
|
|
|
function __fixHelpPopoverPosition($el) {
|
|
var popover = $el.data('bs.popover');
|
|
if (!popover || !popover.$tip) {
|
|
return;
|
|
}
|
|
|
|
// Undo bootstrap.rtl.css "right: 0" so JS top/left coordinates apply.
|
|
popover.$tip.css({ right: 'auto', left: popover.$tip.css('left') });
|
|
}
|
|
|
|
$('body').on('mouseenter', '[data-toggle="popover"].hover-q', function() {
|
|
var $el = $(this);
|
|
|
|
if ($el.hasClass('popover-default')) {
|
|
return false;
|
|
}
|
|
|
|
__initHelpPopover($el);
|
|
$el.popover('show');
|
|
__fixHelpPopoverPosition($el);
|
|
});
|
|
|
|
$('body').on('shown.bs.popover', '[data-toggle="popover"]', function() {
|
|
__fixHelpPopoverPosition($(this));
|
|
});
|
|
|
|
$('body').on('mouseleave', '[data-toggle="popover"].hover-q', function() {
|
|
$(this).popover('hide');
|
|
});
|
|
|
|
$('body').on('mouseenter', '[data-toggle="popover"]:not(.hover-q)', function() {
|
|
if ($(this).hasClass('popover-default')) {
|
|
return false;
|
|
}
|
|
|
|
$(this).popover('show');
|
|
});
|
|
|
|
//Date picker
|
|
if (typeof is_persian_lang !== 'undefined' && is_persian_lang && typeof $.fn.persianDatepicker !== 'undefined') {
|
|
$('.start-date-picker').persianDatepicker({
|
|
calendarType: 'persian',
|
|
format: typeof datepicker_date_format !== 'undefined' ? datepicker_date_format : 'YYYY/MM/DD',
|
|
autoClose: true,
|
|
maxDate: 'today',
|
|
observer: true,
|
|
timePicker: {
|
|
enabled: false
|
|
}
|
|
});
|
|
} else {
|
|
$('.start-date-picker').datepicker({
|
|
autoclose: true,
|
|
endDate: 'today',
|
|
});
|
|
}
|
|
$(document).on('click', '.btn-modal', function(e) {
|
|
e.preventDefault();
|
|
var container = $(this).data('container');
|
|
|
|
$.ajax({
|
|
url: $(this).data('href'),
|
|
dataType: 'html',
|
|
success: function(result) {
|
|
$(container)
|
|
.html(result)
|
|
.modal('show');
|
|
},
|
|
});
|
|
});
|
|
|
|
$(document).on('submit', 'form#brand_add_form', function(e) {
|
|
e.preventDefault();
|
|
var form = $(this);
|
|
var data = form.serialize();
|
|
|
|
$.ajax({
|
|
method: 'POST',
|
|
url: $(this).attr('action'),
|
|
dataType: 'json',
|
|
data: data,
|
|
beforeSend: function(xhr) {
|
|
__disable_submit_button(form.find('button[type="submit"]'));
|
|
},
|
|
success: function(result) {
|
|
if (result.success == true) {
|
|
$('div.brands_modal').modal('hide');
|
|
toastr.success(result.msg);
|
|
if(typeof brands_table !== 'undefined') {
|
|
brands_table.ajax.reload();
|
|
}
|
|
var evt = new CustomEvent("brandAdded", {detail: result.data});
|
|
window.dispatchEvent(evt);
|
|
//event can be listened as
|
|
//window.addEventListener("brandAdded", function(evt) {}
|
|
|
|
} else {
|
|
toastr.error(result.msg);
|
|
}
|
|
},
|
|
});
|
|
});
|
|
|
|
//Brands table
|
|
var brands_table = $('#brands_table').DataTable({
|
|
processing: true,
|
|
serverSide: true,
|
|
fixedHeader:false,
|
|
ajax: '/brands',
|
|
columnDefs: [
|
|
{
|
|
targets: 2,
|
|
orderable: false,
|
|
searchable: false,
|
|
},
|
|
],
|
|
});
|
|
|
|
$(document).on('click', 'button.edit_brand_button', function() {
|
|
$('div.brands_modal').load($(this).data('href'), function() {
|
|
$(this).modal('show');
|
|
|
|
$('form#brand_edit_form').submit(function(e) {
|
|
e.preventDefault();
|
|
var form = $(this);
|
|
var data = form.serialize();
|
|
|
|
$.ajax({
|
|
method: 'POST',
|
|
url: $(this).attr('action'),
|
|
dataType: 'json',
|
|
data: data,
|
|
beforeSend: function(xhr) {
|
|
__disable_submit_button(form.find('button[type="submit"]'));
|
|
},
|
|
success: function(result) {
|
|
if (result.success == true) {
|
|
$('div.brands_modal').modal('hide');
|
|
toastr.success(result.msg);
|
|
brands_table.ajax.reload();
|
|
} else {
|
|
toastr.error(result.msg);
|
|
}
|
|
},
|
|
});
|
|
});
|
|
});
|
|
});
|
|
|
|
$(document).on('click', 'button.delete_brand_button', function() {
|
|
swal({
|
|
title: LANG.sure,
|
|
text: LANG.confirm_delete_brand,
|
|
icon: 'warning',
|
|
buttons: true,
|
|
dangerMode: true,
|
|
}).then(willDelete => {
|
|
if (willDelete) {
|
|
var href = $(this).data('href');
|
|
var data = $(this).serialize();
|
|
|
|
$.ajax({
|
|
method: 'DELETE',
|
|
url: href,
|
|
dataType: 'json',
|
|
data: data,
|
|
success: function(result) {
|
|
if (result.success == true) {
|
|
toastr.success(result.msg);
|
|
brands_table.ajax.reload();
|
|
} else {
|
|
toastr.error(result.msg);
|
|
}
|
|
},
|
|
});
|
|
}
|
|
});
|
|
});
|
|
|
|
//Start: CRUD for tax Rate
|
|
|
|
//Tax Rates table
|
|
var tax_rates_table = $('#tax_rates_table').DataTable({
|
|
processing: true,
|
|
serverSide: true,
|
|
fixedHeader:false,
|
|
ajax: '/tax-rates',
|
|
columnDefs: [
|
|
{
|
|
targets: 2,
|
|
orderable: false,
|
|
searchable: false,
|
|
},
|
|
],
|
|
});
|
|
|
|
$(document).on('submit', 'form#tax_rate_add_form', function(e) {
|
|
e.preventDefault();
|
|
var form = $(this);
|
|
var data = form.serialize();
|
|
|
|
$.ajax({
|
|
method: 'POST',
|
|
url: $(this).attr('action'),
|
|
dataType: 'json',
|
|
data: data,
|
|
beforeSend: function(xhr) {
|
|
__disable_submit_button(form.find('button[type="submit"]'));
|
|
},
|
|
success: function(result) {
|
|
if (result.success == true) {
|
|
$('div.tax_rate_modal').modal('hide');
|
|
toastr.success(result.msg);
|
|
tax_rates_table.ajax.reload();
|
|
} else {
|
|
toastr.error(result.msg);
|
|
}
|
|
},
|
|
});
|
|
});
|
|
|
|
$(document).on('click', 'button.edit_tax_rate_button', function() {
|
|
$('div.tax_rate_modal').load($(this).data('href'), function() {
|
|
$(this).modal('show');
|
|
|
|
$('form#tax_rate_edit_form').submit(function(e) {
|
|
e.preventDefault();
|
|
var form = $(this);
|
|
var data = form.serialize();
|
|
|
|
$.ajax({
|
|
method: 'POST',
|
|
url: $(this).attr('action'),
|
|
dataType: 'json',
|
|
data: data,
|
|
beforeSend: function(xhr) {
|
|
__disable_submit_button(form.find('button[type="submit"]'));
|
|
},
|
|
success: function(result) {
|
|
if (result.success == true) {
|
|
$('div.tax_rate_modal').modal('hide');
|
|
toastr.success(result.msg);
|
|
tax_rates_table.ajax.reload();
|
|
tax_groups_table.ajax.reload();
|
|
} else {
|
|
toastr.error(result.msg);
|
|
}
|
|
},
|
|
});
|
|
});
|
|
});
|
|
});
|
|
|
|
$(document).on('click', 'button.delete_tax_rate_button', function() {
|
|
swal({
|
|
title: LANG.sure,
|
|
text: LANG.confirm_delete_tax_rate,
|
|
icon: 'warning',
|
|
buttons: true,
|
|
dangerMode: true,
|
|
}).then(willDelete => {
|
|
if (willDelete) {
|
|
var href = $(this).data('href');
|
|
var data = $(this).serialize();
|
|
|
|
$.ajax({
|
|
method: 'DELETE',
|
|
url: href,
|
|
dataType: 'json',
|
|
data: data,
|
|
success: function(result) {
|
|
if (result.success == true) {
|
|
toastr.success(result.msg);
|
|
tax_rates_table.ajax.reload();
|
|
tax_groups_table.ajax.reload();
|
|
} else {
|
|
toastr.error(result.msg);
|
|
}
|
|
},
|
|
});
|
|
}
|
|
});
|
|
});
|
|
|
|
//End: CRUD for tax Rate
|
|
|
|
//Start: CRUD for unit
|
|
//Unit table
|
|
var units_table = $('#unit_table').DataTable({
|
|
processing: true,
|
|
serverSide: true,
|
|
fixedHeader:false,
|
|
ajax: '/units',
|
|
columnDefs: [
|
|
{
|
|
targets: 3,
|
|
orderable: false,
|
|
searchable: false,
|
|
},
|
|
],
|
|
columns: [
|
|
{ data: 'actual_name', name: 'actual_name' },
|
|
{ data: 'short_name', name: 'short_name' },
|
|
{ data: 'allow_decimal', name: 'allow_decimal' },
|
|
{ data: 'action', name: 'action' },
|
|
],
|
|
});
|
|
|
|
$(document).on('submit', 'form#unit_add_form', function(e) {
|
|
e.preventDefault();
|
|
var form = $(this);
|
|
var data = form.serialize();
|
|
|
|
$.ajax({
|
|
method: 'POST',
|
|
url: $(this).attr('action'),
|
|
dataType: 'json',
|
|
data: data,
|
|
beforeSend: function(xhr) {
|
|
__disable_submit_button(form.find('button[type="submit"]'));
|
|
},
|
|
success: function(result) {
|
|
if (result.success == true) {
|
|
$('div.unit_modal').modal('hide');
|
|
toastr.success(result.msg);
|
|
units_table.ajax.reload();
|
|
} else {
|
|
toastr.error(result.msg);
|
|
}
|
|
},
|
|
});
|
|
});
|
|
|
|
$(document).on('click', 'button.edit_unit_button', function() {
|
|
$('div.unit_modal').load($(this).data('href'), function() {
|
|
$(this).modal('show');
|
|
|
|
$('form#unit_edit_form').submit(function(e) {
|
|
e.preventDefault();
|
|
var form = $(this);
|
|
var data = form.serialize();
|
|
|
|
$.ajax({
|
|
method: 'POST',
|
|
url: $(this).attr('action'),
|
|
dataType: 'json',
|
|
data: data,
|
|
beforeSend: function(xhr) {
|
|
__disable_submit_button(form.find('button[type="submit"]'));
|
|
},
|
|
success: function(result) {
|
|
if (result.success == true) {
|
|
$('div.unit_modal').modal('hide');
|
|
toastr.success(result.msg);
|
|
units_table.ajax.reload();
|
|
} else {
|
|
toastr.error(result.msg);
|
|
}
|
|
},
|
|
});
|
|
});
|
|
});
|
|
});
|
|
|
|
$(document).on('click', 'button.delete_unit_button', function() {
|
|
swal({
|
|
title: LANG.sure,
|
|
text: LANG.confirm_delete_unit,
|
|
icon: 'warning',
|
|
buttons: true,
|
|
dangerMode: true,
|
|
}).then(willDelete => {
|
|
if (willDelete) {
|
|
var href = $(this).data('href');
|
|
var data = $(this).serialize();
|
|
|
|
$.ajax({
|
|
method: 'DELETE',
|
|
url: href,
|
|
dataType: 'json',
|
|
data: data,
|
|
success: function(result) {
|
|
if (result.success == true) {
|
|
toastr.success(result.msg);
|
|
units_table.ajax.reload();
|
|
} else {
|
|
toastr.error(result.msg);
|
|
}
|
|
},
|
|
});
|
|
}
|
|
});
|
|
});
|
|
|
|
//Start: CRUD for Contacts
|
|
//contacts table
|
|
var contact_table_type = $('#contact_type').val();
|
|
if (contact_table_type == 'supplier') {
|
|
var columns = [
|
|
{ data: 'action', searchable: false, orderable: false },
|
|
{ data: 'contact_id', name: 'contact_id' },
|
|
{ data: 'supplier_business_name', name: 'supplier_business_name' },
|
|
{ data: 'name', name: 'name' },
|
|
{ data: 'email', name: 'email' },
|
|
{ data: 'tax_number', name: 'tax_number' },
|
|
{ data: 'pay_term', name: 'pay_term', searchable: false, orderable: false },
|
|
{ data: 'opening_balance', name: 'opening_balance', searchable: false },
|
|
{ data: 'balance', name: 'balance', searchable: false },
|
|
{ data: 'created_at', name: 'contacts.created_at' },
|
|
{ data: 'address', name: 'address', orderable: false },
|
|
{ data: 'mobile', name: 'mobile' },
|
|
{ data: 'due', searchable: false, orderable: false },
|
|
{ data: 'return_due', searchable: false, orderable: false },
|
|
{ data: 'custom_field1', name: 'custom_field1'},
|
|
{ data: 'custom_field2', name: 'custom_field2'},
|
|
{ data: 'custom_field3', name: 'custom_field3'},
|
|
{ data: 'custom_field4', name: 'custom_field4'},
|
|
{ data: 'custom_field5', name: 'custom_field5'},
|
|
{ data: 'custom_field6', name: 'custom_field6'},
|
|
{ data: 'custom_field7', name: 'custom_field7'},
|
|
{ data: 'custom_field8', name: 'custom_field8'},
|
|
{ data: 'custom_field9', name: 'custom_field9'},
|
|
{ data: 'custom_field10', name: 'custom_field10'},
|
|
];
|
|
} else if (contact_table_type == 'customer') {
|
|
var columns = [
|
|
{ data: 'action', searchable: false, orderable: false },
|
|
{ data: 'contact_id', name: 'contact_id' },
|
|
{ data: 'supplier_business_name', name: 'supplier_business_name' },
|
|
{ data: 'name', name: 'name' },
|
|
{ data: 'email', name: 'email' },
|
|
{ data: 'tax_number', name: 'tax_number' },
|
|
{ data: 'credit_limit', name: 'credit_limit' },
|
|
{ data: 'pay_term', name: 'pay_term', searchable: false, orderable: false },
|
|
{ data: 'opening_balance', name: 'opening_balance', searchable: false },
|
|
{ data: 'balance', name: 'balance', searchable: false },
|
|
{ data: 'created_at', name: 'contacts.created_at' }
|
|
];
|
|
|
|
if ($('#rp_col').length) {
|
|
columns.push({ data: 'total_rp', name: 'total_rp' });
|
|
}
|
|
Array.prototype.push.apply(columns, [{ data: 'customer_group', name: 'cg.name' },
|
|
{ data: 'address', name: 'address', orderable: false },
|
|
{ data: 'mobile', name: 'mobile' },
|
|
{ data: 'due', searchable: false, orderable: false },
|
|
{ data: 'return_due', searchable: false, orderable: false },
|
|
{ data: 'custom_field1', name: 'custom_field1'},
|
|
{ data: 'custom_field2', name: 'custom_field2'},
|
|
{ data: 'custom_field3', name: 'custom_field3'},
|
|
{ data: 'custom_field4', name: 'custom_field4'},
|
|
{ data: 'custom_field5', name: 'custom_field5'},
|
|
{ data: 'custom_field6', name: 'custom_field6'},
|
|
{ data: 'custom_field7', name: 'custom_field7'},
|
|
{ data: 'custom_field8', name: 'custom_field8'},
|
|
{ data: 'custom_field9', name: 'custom_field9'},
|
|
{ data: 'custom_field10', name: 'custom_field10'},
|
|
]);
|
|
}
|
|
|
|
contact_table = $('#contact_table').DataTable({
|
|
processing: true,
|
|
serverSide: true,
|
|
fixedHeader:false,
|
|
scrollY: "75vh",
|
|
scrollX: true,
|
|
scrollCollapse: true,
|
|
"ajax": {
|
|
"url": "/contacts",
|
|
"data": function ( d ) {
|
|
d.type = $('#contact_type').val();
|
|
d = __datatable_ajax_callback(d);
|
|
|
|
if ($('#has_sell_due').length > 0 && $('#has_sell_due').is(':checked')) {
|
|
d.has_sell_due = true;
|
|
}
|
|
|
|
if ($('#has_sell_return').length > 0 && $('#has_sell_return').is(':checked')) {
|
|
d.has_sell_return = true;
|
|
}
|
|
|
|
if ($('#has_purchase_due').length > 0 && $('#has_purchase_due').is(':checked')) {
|
|
d.has_purchase_due = true;
|
|
}
|
|
|
|
if ($('#has_purchase_return').length > 0 && $('#has_purchase_return').is(':checked')) {
|
|
d.has_purchase_return = true;
|
|
}
|
|
|
|
if ($('#has_advance_balance').length > 0 && $('#has_advance_balance').is(':checked')) {
|
|
d.has_advance_balance = true;
|
|
}
|
|
|
|
if ($('#has_opening_balance').length > 0 && $('#has_opening_balance').is(':checked')) {
|
|
d.has_opening_balance = true;
|
|
}
|
|
|
|
if ($('#has_no_sell_from').length > 0) {
|
|
d.has_no_sell_from = $('#has_no_sell_from').val();
|
|
}
|
|
|
|
if ($('#assigned_to').length > 0) {
|
|
d.assigned_to = $('#assigned_to').val();
|
|
}
|
|
|
|
if ($('#cg_filter').length > 0) {
|
|
d.customer_group_id = $('#cg_filter').val();
|
|
}
|
|
|
|
if ($('#status_filter').length > 0) {
|
|
d.contact_status = $('#status_filter').val();
|
|
}
|
|
}
|
|
},
|
|
aaSorting: [[1, 'desc']],
|
|
columns: columns,
|
|
fnDrawCallback: function(oSettings) {
|
|
__currency_convert_recursively($('#contact_table'));
|
|
},
|
|
"footerCallback": function ( row, data, start, end, display ) {
|
|
var total_due = 0;
|
|
var total_return_due = 0;
|
|
for (var r in data){
|
|
total_due += $(data[r].due).data('orig-value') ?
|
|
parseFloat($(data[r].due).data('orig-value')) : 0;
|
|
|
|
total_return_due += $(data[r].return_due).data('orig-value') ?
|
|
parseFloat($(data[r].return_due).data('orig-value')) : 0;
|
|
}
|
|
$('.footer_contact_due').html(__currency_trans_from_en(total_due));
|
|
$('.footer_contact_return_due').html(__currency_trans_from_en(total_return_due));
|
|
}
|
|
});
|
|
|
|
$(document).on('ifChanged', '#has_sell_due, #has_sell_return, \
|
|
#has_purchase_due, #has_purchase_return, #has_advance_balance, #has_opening_balance', function(){
|
|
contact_table.ajax.reload();
|
|
});
|
|
|
|
$(document).on('change', '#has_no_sell_from, #cg_filter, #status_filter, #assigned_to', function(){
|
|
contact_table.ajax.reload();
|
|
});
|
|
|
|
//On display of add contact modal
|
|
$('.contact_modal').on('shown.bs.modal', function(e) {
|
|
$('input[type=radio][name="contact_type_radio"]').on('change', function() {
|
|
if (this.value == 'individual') {
|
|
$('div.individual').show();
|
|
$('div.business').hide();
|
|
} else if (this.value == 'business') {
|
|
$('div.individual').hide();
|
|
$('div.business').show();
|
|
}
|
|
});
|
|
if ($('#is_customer_export').is(':checked')) {
|
|
$('div.export_div').show();
|
|
}
|
|
$('#is_customer_export').on('change', function () {
|
|
if ($(this).is(':checked')) {
|
|
$('div.export_div').show();
|
|
} else {
|
|
$('div.export_div').hide();
|
|
}
|
|
});
|
|
|
|
$('.more_btn').click(function(){
|
|
$($(this).data('target')).toggleClass('hide');
|
|
});
|
|
$('div.lead_additional_div').hide();
|
|
|
|
if ($('select#contact_type').val() == 'customer') {
|
|
$('div.supplier_fields').hide();
|
|
$('div.customer_fields').show();
|
|
} else if ($('select#contact_type').val() == 'supplier') {
|
|
$('div.supplier_fields').show();
|
|
$('div.customer_fields').hide();
|
|
} else if ($('select#contact_type').val() == 'lead') {
|
|
$('div.supplier_fields').hide();
|
|
$('div.customer_fields').hide();
|
|
$('div.opening_balance').hide();
|
|
$('div.pay_term').hide();
|
|
$('div.lead_additional_div').show();
|
|
$('div.shipping_addr_div').hide();
|
|
}
|
|
|
|
$('select#contact_type').change(function() {
|
|
var t = $(this).val();
|
|
|
|
if (t == 'supplier') {
|
|
$('div.supplier_fields').fadeIn();
|
|
$('div.customer_fields').fadeOut();
|
|
} else if (t == 'both') {
|
|
$('div.supplier_fields').fadeIn();
|
|
$('div.customer_fields').fadeIn();
|
|
} else if (t == 'customer') {
|
|
$('div.customer_fields').fadeIn();
|
|
$('div.supplier_fields').fadeOut();
|
|
} else if (t == 'lead') {
|
|
$('div.customer_fields').fadeOut();
|
|
$('div.supplier_fields').fadeOut();
|
|
$('div.opening_balance').fadeOut();
|
|
$('div.pay_term').fadeOut();
|
|
$('div.lead_additional_div').fadeIn();
|
|
$('div.shipping_addr_div').hide();
|
|
}
|
|
});
|
|
|
|
$(".contact_modal").find('.select2').each( function(){
|
|
$(this).select2();
|
|
});
|
|
|
|
$('form#contact_add_form, form#contact_edit_form')
|
|
.submit(function(e) {
|
|
e.preventDefault();
|
|
})
|
|
.validate({
|
|
rules: {
|
|
contact_id: {
|
|
remote: {
|
|
url: '/contacts/check-contacts-id',
|
|
type: 'post',
|
|
data: {
|
|
contact_id: function() {
|
|
return $('#contact_id').val();
|
|
},
|
|
hidden_id: function() {
|
|
if ($('#hidden_id').length) {
|
|
return $('#hidden_id').val();
|
|
} else {
|
|
return '';
|
|
}
|
|
},
|
|
},
|
|
},
|
|
},
|
|
// tax_number remote validation removed - now handled with sweet alert
|
|
},
|
|
messages: {
|
|
contact_id: {
|
|
remote: LANG.contact_id_already_exists,
|
|
},
|
|
tax_number: {
|
|
remote: LANG.tax_number_already_exists,
|
|
}
|
|
},
|
|
submitHandler: function(form) {
|
|
e.preventDefault();
|
|
__disable_submit_button($(form).find('button[type="submit"]'));
|
|
// Start with tax number validation, then proceed to mobile check
|
|
checkTaxNumberAndSubmit(form);
|
|
},
|
|
});
|
|
|
|
$('#contact_add_form').trigger('contactFormvalidationAdded');
|
|
});
|
|
|
|
function checkTaxNumberAndSubmit(form) {
|
|
// Check if tax_number field exists and has a value
|
|
if ($('#tax_number').length && $('#tax_number').val().trim() !== '') {
|
|
$.ajax({
|
|
method: 'POST',
|
|
url: base_path + '/contacts/check-tax-number',
|
|
dataType: 'json',
|
|
data: {
|
|
contact_id: $('#hidden_id').val(),
|
|
tax_number: $('#tax_number').val(),
|
|
},
|
|
success: function(result) {
|
|
if (result.is_tax_number_exists == true) {
|
|
swal({
|
|
title: LANG.sure,
|
|
text: result.msg,
|
|
icon: 'warning',
|
|
buttons: true,
|
|
dangerMode: true
|
|
}).then(willContinue => {
|
|
if (willContinue) {
|
|
checkMobileAndSubmit(form);
|
|
} else {
|
|
$('#tax_number').select();
|
|
}
|
|
});
|
|
} else {
|
|
checkMobileAndSubmit(form);
|
|
}
|
|
},
|
|
});
|
|
} else {
|
|
// If no tax number, proceed to mobile check
|
|
checkMobileAndSubmit(form);
|
|
}
|
|
}
|
|
|
|
function checkMobileAndSubmit(form) {
|
|
$.ajax({
|
|
method: 'POST',
|
|
url: base_path + '/check-mobile',
|
|
dataType: 'json',
|
|
data: {
|
|
contact_id: function() {
|
|
return $('#hidden_id').val();
|
|
},
|
|
mobile_number: function() {
|
|
return $('#mobile').val();
|
|
},
|
|
},
|
|
success: function(result) {
|
|
if (result.is_mobile_exists == true) {
|
|
swal({
|
|
title: LANG.sure,
|
|
text: result.msg,
|
|
icon: 'warning',
|
|
buttons: true,
|
|
dangerMode: true
|
|
}).then(willContinue => {
|
|
if (willContinue) {
|
|
submitContactForm(form);
|
|
} else {
|
|
$('#mobile').select();
|
|
}
|
|
});
|
|
|
|
} else {
|
|
submitContactForm(form);
|
|
}
|
|
},
|
|
});
|
|
}
|
|
|
|
$(document).on('click', '.edit_contact_button', function(e) {
|
|
e.preventDefault();
|
|
$('div.contact_modal').load($(this).attr('href'), function() {
|
|
$(this).modal('show');
|
|
});
|
|
});
|
|
|
|
$(document).on('click', '.delete_contact_button', function(e) {
|
|
e.preventDefault();
|
|
swal({
|
|
title: LANG.sure,
|
|
text: LANG.confirm_delete_contact,
|
|
icon: 'warning',
|
|
buttons: true,
|
|
dangerMode: true,
|
|
}).then(willDelete => {
|
|
if (willDelete) {
|
|
var href = $(this).attr('href');
|
|
var data = $(this).serialize();
|
|
|
|
$.ajax({
|
|
method: 'DELETE',
|
|
url: href,
|
|
dataType: 'json',
|
|
data: data,
|
|
success: function(result) {
|
|
if (result.success == true) {
|
|
toastr.success(result.msg);
|
|
contact_table.ajax.reload();
|
|
} else {
|
|
toastr.error(result.msg);
|
|
}
|
|
},
|
|
});
|
|
}
|
|
});
|
|
});
|
|
|
|
//Start: CRUD for product variations
|
|
//Variations table
|
|
var variation_table = $('#variation_table').DataTable({
|
|
processing: true,
|
|
serverSide: true,
|
|
fixedHeader:false,
|
|
ajax: '/variation-templates',
|
|
columnDefs: [
|
|
{
|
|
targets: 2,
|
|
orderable: false,
|
|
searchable: false,
|
|
},
|
|
],
|
|
});
|
|
$(document).on('click', '#add_variation_values', function() {
|
|
var html =
|
|
'<div class="form-group"><div class="col-sm-7 col-sm-offset-3"><input type="text" name="variation_values[]" class="form-control" required></div><div class="col-sm-2"><button type="button" class="tw-dw-btn tw-dw-btn-error tw-text-white tw-dw-btn-sm delete_variation_value">-</button></div></div>';
|
|
$('#variation_values').append(html);
|
|
});
|
|
$(document).on('click', '.delete_variation_value', function() {
|
|
$(this)
|
|
.closest('.form-group')
|
|
.remove();
|
|
});
|
|
$(document).on('submit', 'form#variation_add_form', function(e) {
|
|
e.preventDefault();
|
|
var form = $(this);
|
|
var data = form.serialize();
|
|
|
|
$.ajax({
|
|
method: 'POST',
|
|
url: $(this).attr('action'),
|
|
dataType: 'json',
|
|
data: data,
|
|
beforeSend: function(xhr) {
|
|
__disable_submit_button(form.find('button[type="submit"]'));
|
|
},
|
|
success: function(result) {
|
|
if (result.success === true) {
|
|
$('div.variation_modal').modal('hide');
|
|
toastr.success(result.msg);
|
|
variation_table.ajax.reload();
|
|
} else {
|
|
toastr.error(result.msg);
|
|
}
|
|
},
|
|
});
|
|
});
|
|
|
|
$(document).on('click', 'button.edit_variation_button', function() {
|
|
$('div.variation_modal').load($(this).data('href'), function() {
|
|
$(this).modal('show');
|
|
|
|
$('form#variation_edit_form').submit(function(e) {
|
|
var form = $(this);
|
|
e.preventDefault();
|
|
var data = form.serialize();
|
|
|
|
$.ajax({
|
|
method: 'POST',
|
|
url: $(this).attr('action'),
|
|
dataType: 'json',
|
|
data: data,
|
|
beforeSend: function(xhr) {
|
|
__disable_submit_button(form.find('button[type="submit"]'));
|
|
},
|
|
success: function(result) {
|
|
if (result.success === true) {
|
|
$('div.variation_modal').modal('hide');
|
|
toastr.success(result.msg);
|
|
variation_table.ajax.reload();
|
|
} else {
|
|
toastr.error(result.msg);
|
|
}
|
|
},
|
|
});
|
|
});
|
|
});
|
|
});
|
|
|
|
$(document).on('click', 'button.delete_variation_button', function() {
|
|
swal({
|
|
title: LANG.sure,
|
|
text: LANG.confirm_delete_variation,
|
|
icon: 'warning',
|
|
buttons: true,
|
|
dangerMode: true,
|
|
}).then(willDelete => {
|
|
if (willDelete) {
|
|
var href = $(this).data('href');
|
|
var data = $(this).serialize();
|
|
|
|
$.ajax({
|
|
method: 'DELETE',
|
|
url: href,
|
|
dataType: 'json',
|
|
data: data,
|
|
success: function(result) {
|
|
if (result.success === true) {
|
|
toastr.success(result.msg);
|
|
variation_table.ajax.reload();
|
|
} else {
|
|
toastr.error(result.msg);
|
|
}
|
|
},
|
|
});
|
|
}
|
|
});
|
|
});
|
|
|
|
var active = false;
|
|
$(document).on('mousedown', '.drag-select', function(ev) {
|
|
active = true;
|
|
$('.active-cell').removeClass('active-cell'); // clear previous selection
|
|
|
|
$(this).addClass('active-cell');
|
|
cell_value = $(this)
|
|
.find('input')
|
|
.val();
|
|
});
|
|
$(document).on('mousemove', '.drag-select', function(ev) {
|
|
if (active) {
|
|
$(this).addClass('active-cell');
|
|
$(this)
|
|
.find('input')
|
|
.val(cell_value);
|
|
}
|
|
});
|
|
|
|
$(document).mouseup(function(ev) {
|
|
active = false;
|
|
if (
|
|
!$(ev.target).hasClass('drag-select') &&
|
|
!$(ev.target).hasClass('dpp') &&
|
|
!$(ev.target).hasClass('dsp')
|
|
) {
|
|
$('.active-cell').each(function() {
|
|
$(this).removeClass('active-cell');
|
|
});
|
|
}
|
|
});
|
|
|
|
//End: CRUD for product variations
|
|
$(document).on('change', '.toggler', function() {
|
|
var parent_id = $(this).attr('data-toggle_id');
|
|
if ($(this).is(':checked')) {
|
|
$('#' + parent_id).removeClass('hide');
|
|
} else {
|
|
$('#' + parent_id).addClass('hide');
|
|
}
|
|
});
|
|
//Start: CRUD for products
|
|
$(document).on('change', '#category_id', function() {
|
|
get_sub_categories();
|
|
});
|
|
$(document).on('change', '#unit_id', function() {
|
|
get_sub_units();
|
|
});
|
|
if ($('.product_form').length && !$('.product_form').hasClass('create')) {
|
|
show_product_type_form();
|
|
}
|
|
$('#type').change(function() {
|
|
show_product_type_form();
|
|
});
|
|
|
|
$(document).on('click', '#add_variation', function() {
|
|
var row_index = $('#variation_counter').val();
|
|
var action = $(this).attr('data-action');
|
|
$.ajax({
|
|
method: 'POST',
|
|
url: '/products/get_product_variation_row',
|
|
data: { row_index: row_index, action: action },
|
|
dataType: 'html',
|
|
success: function(result) {
|
|
if (result) {
|
|
$('#product_variation_form_part > tbody').append(result);
|
|
$('#variation_counter').val(parseInt(row_index) + 1);
|
|
toggle_dsp_input();
|
|
}
|
|
},
|
|
});
|
|
});
|
|
//End: CRUD for products
|
|
|
|
//bussiness settings start
|
|
|
|
if ($('form#bussiness_edit_form').length > 0) {
|
|
$('form#bussiness_edit_form').validate({
|
|
ignore: [],
|
|
});
|
|
|
|
// logo upload
|
|
$('#business_logo').fileinput(fileinput_setting);
|
|
|
|
//Purchase currency
|
|
$('input#purchase_in_diff_currency').on('ifChecked', function(event) {
|
|
$('div#settings_purchase_currency_div, div#settings_currency_exchange_div').removeClass(
|
|
'hide'
|
|
);
|
|
});
|
|
$('input#purchase_in_diff_currency').on('ifUnchecked', function(event) {
|
|
$('div#settings_purchase_currency_div, div#settings_currency_exchange_div').addClass(
|
|
'hide'
|
|
);
|
|
});
|
|
|
|
//Product expiry
|
|
$('input#enable_product_expiry').change(function() {
|
|
if ($(this).is(':checked')) {
|
|
$('select#expiry_type').attr('disabled', false);
|
|
$('div#on_expiry_div').removeClass('hide');
|
|
} else {
|
|
$('select#expiry_type').attr('disabled', true);
|
|
$('div#on_expiry_div').addClass('hide');
|
|
}
|
|
});
|
|
|
|
$('select#on_product_expiry').change(function() {
|
|
if ($(this).val() == 'stop_selling') {
|
|
$('input#stop_selling_before').attr('disabled', false);
|
|
$('input#stop_selling_before')
|
|
.focus()
|
|
.select();
|
|
} else {
|
|
$('input#stop_selling_before').attr('disabled', true);
|
|
}
|
|
});
|
|
|
|
//enable_category
|
|
$('input#enable_category').on('ifChecked', function(event) {
|
|
$('div.enable_sub_category').removeClass('hide');
|
|
});
|
|
$('input#enable_category').on('ifUnchecked', function(event) {
|
|
$('div.enable_sub_category').addClass('hide');
|
|
});
|
|
}
|
|
//bussiness settings end
|
|
|
|
$('#upload_document').fileinput(fileinput_setting);
|
|
|
|
//user profile
|
|
$('form#edit_user_profile_form').validate();
|
|
$('form#edit_password_form').validate({
|
|
rules: {
|
|
current_password: {
|
|
required: true,
|
|
minlength: 5,
|
|
},
|
|
new_password: {
|
|
required: true,
|
|
minlength: 5,
|
|
},
|
|
confirm_password: {
|
|
equalTo: '#new_password',
|
|
},
|
|
},
|
|
});
|
|
|
|
//Tax Rates table
|
|
var tax_groups_table = $('#tax_groups_table').DataTable({
|
|
processing: true,
|
|
serverSide: true,
|
|
fixedHeader:false,
|
|
ajax: '/group-taxes',
|
|
columnDefs: [
|
|
{
|
|
targets: [2, 3],
|
|
orderable: false,
|
|
searchable: false,
|
|
},
|
|
],
|
|
columns: [
|
|
{ data: 'name', name: 'name' },
|
|
{ data: 'amount', name: 'amount' },
|
|
{ data: 'sub_taxes', name: 'sub_taxes' },
|
|
{ data: 'action', name: 'action' },
|
|
],
|
|
});
|
|
$('.tax_group_modal').on('shown.bs.modal', function() {
|
|
$('.tax_group_modal')
|
|
.find('.select2')
|
|
.each(function() {
|
|
__select2($(this));
|
|
});
|
|
});
|
|
|
|
$(document).on('submit', 'form#tax_group_add_form', function(e) {
|
|
e.preventDefault();
|
|
var form = $(this);
|
|
var data = form.serialize();
|
|
|
|
$.ajax({
|
|
method: 'POST',
|
|
url: $(this).attr('action'),
|
|
dataType: 'json',
|
|
data: data,
|
|
beforeSend: function(xhr) {
|
|
__disable_submit_button(form.find('button[type="submit"]'));
|
|
},
|
|
success: function(result) {
|
|
if (result.success == true) {
|
|
$('div.tax_group_modal').modal('hide');
|
|
toastr.success(result.msg);
|
|
tax_groups_table.ajax.reload();
|
|
} else {
|
|
toastr.error(result.msg);
|
|
}
|
|
},
|
|
});
|
|
});
|
|
|
|
$(document).on('submit', 'form#tax_group_edit_form', function(e) {
|
|
e.preventDefault();
|
|
var form = $(this);
|
|
var data = form.serialize();
|
|
|
|
$.ajax({
|
|
method: 'POST',
|
|
url: $(this).attr('action'),
|
|
dataType: 'json',
|
|
beforeSend: function(xhr) {
|
|
__disable_submit_button(form.find('button[type="submit"]'));
|
|
},
|
|
data: data,
|
|
success: function(result) {
|
|
if (result.success == true) {
|
|
$('div.tax_group_modal').modal('hide');
|
|
toastr.success(result.msg);
|
|
tax_groups_table.ajax.reload();
|
|
} else {
|
|
toastr.error(result.msg);
|
|
}
|
|
},
|
|
});
|
|
});
|
|
|
|
$(document).on('click', 'button.delete_tax_group_button', function() {
|
|
swal({
|
|
title: LANG.sure,
|
|
text: LANG.confirm_tax_group,
|
|
icon: 'warning',
|
|
buttons: true,
|
|
dangerMode: true,
|
|
}).then(willDelete => {
|
|
if (willDelete) {
|
|
var href = $(this).data('href');
|
|
var data = $(this).serialize();
|
|
|
|
$.ajax({
|
|
method: 'DELETE',
|
|
url: href,
|
|
dataType: 'json',
|
|
data: data,
|
|
success: function(result) {
|
|
if (result.success == true) {
|
|
toastr.success(result.msg);
|
|
tax_groups_table.ajax.reload();
|
|
} else {
|
|
toastr.error(result.msg);
|
|
}
|
|
},
|
|
});
|
|
}
|
|
});
|
|
});
|
|
|
|
//option-div
|
|
$(document).on('click', '.option-div-group .option-div', function() {
|
|
$(this)
|
|
.closest('.option-div-group')
|
|
.find('.option-div')
|
|
.each(function() {
|
|
$(this).removeClass('active');
|
|
});
|
|
$(this).addClass('active');
|
|
$(this)
|
|
.find('input:radio')
|
|
.prop('checked', true)
|
|
.change();
|
|
});
|
|
|
|
$(document).on('change', 'input[type=radio][name=scheme_type], select#invoice_number_type', function() {
|
|
$('#invoice_format_settings').removeClass('hide');
|
|
|
|
if($('select#invoice_number_type').val() == 'sequential'){
|
|
$('.sequential_field').removeClass('hide');
|
|
} else{
|
|
$('.sequential_field').addClass('hide');
|
|
}
|
|
|
|
show_invoice_preview();
|
|
});
|
|
$(document).on('change keyup', '.invoice_modal #prefix, .invoice_edit_modal #prefix', function() {
|
|
show_invoice_preview();
|
|
});
|
|
$(document).on('keyup change', '.invoice_modal #start_number, .invoice_edit_modal #start_number', function() {
|
|
show_invoice_preview();
|
|
});
|
|
$(document).on('change', '.invoice_modal #total_digits, .invoice_edit_modal #total_digits', function() {
|
|
show_invoice_preview();
|
|
});
|
|
var invoice_table = $('#invoice_table').DataTable({
|
|
processing: true,
|
|
serverSide: true,
|
|
bPaginate: false,
|
|
fixedHeader:false,
|
|
buttons: [],
|
|
ajax: '/invoice-schemes',
|
|
columnDefs: [
|
|
{
|
|
targets: 4,
|
|
orderable: false,
|
|
searchable: false,
|
|
},
|
|
],
|
|
});
|
|
$(document).on('submit', 'form#invoice_scheme_add_form', function(e) {
|
|
e.preventDefault();
|
|
var form = $(this);
|
|
var data = form.serialize();
|
|
|
|
$.ajax({
|
|
method: 'POST',
|
|
url: $(this).attr('action'),
|
|
dataType: 'json',
|
|
data: data,
|
|
beforeSend: function(xhr) {
|
|
__disable_submit_button(form.find('button[type="submit"]'));
|
|
},
|
|
success: function(result) {
|
|
if (result.success == true) {
|
|
$('div.invoice_modal').modal('hide');
|
|
$('div.invoice_edit_modal').modal('hide');
|
|
toastr.success(result.msg);
|
|
invoice_table.ajax.reload();
|
|
} else {
|
|
toastr.error(result.msg);
|
|
}
|
|
},
|
|
});
|
|
});
|
|
$(document).on('click', 'button.set_default_invoice', function() {
|
|
var href = $(this).data('href');
|
|
var data = $(this).serialize();
|
|
|
|
$.ajax({
|
|
method: 'get',
|
|
url: href,
|
|
dataType: 'json',
|
|
data: data,
|
|
success: function(result) {
|
|
if (result.success === true) {
|
|
toastr.success(result.msg);
|
|
invoice_table.ajax.reload();
|
|
} else {
|
|
toastr.error(result.msg);
|
|
}
|
|
},
|
|
});
|
|
});
|
|
$('.invoice_edit_modal').on('shown.bs.modal', function() {
|
|
show_invoice_preview();
|
|
});
|
|
$(document).on('click', 'button.delete_invoice_button', function() {
|
|
swal({
|
|
title: LANG.sure,
|
|
text: LANG.delete_invoice_confirm,
|
|
icon: 'warning',
|
|
buttons: true,
|
|
dangerMode: true,
|
|
}).then(willDelete => {
|
|
if (willDelete) {
|
|
var href = $(this).data('href');
|
|
var data = $(this).serialize();
|
|
|
|
$.ajax({
|
|
method: 'DELETE',
|
|
url: href,
|
|
dataType: 'json',
|
|
data: data,
|
|
success: function(result) {
|
|
if (result.success === true) {
|
|
toastr.success(result.msg);
|
|
invoice_table.ajax.reload();
|
|
} else {
|
|
toastr.error(result.msg);
|
|
}
|
|
},
|
|
});
|
|
}
|
|
});
|
|
});
|
|
|
|
$('#add_barcode_settings_form').validate();
|
|
$(document).on('change', '#is_continuous', function() {
|
|
if ($(this).is(':checked')) {
|
|
$('.stickers_per_sheet_div').addClass('hide');
|
|
$('.paper_height_div').addClass('hide');
|
|
} else {
|
|
$('.stickers_per_sheet_div').removeClass('hide');
|
|
$('.paper_height_div').removeClass('hide');
|
|
}
|
|
});
|
|
|
|
$(document).on('change', '#expense_category_id', function() {
|
|
get_expense_sub_categories();
|
|
});
|
|
|
|
//initialize iCheck
|
|
$('input[type="checkbox"].input-icheck, input[type="radio"].input-icheck').iCheck({
|
|
checkboxClass: 'icheckbox_square-blue',
|
|
radioClass: 'iradio_square-blue',
|
|
});
|
|
$(document).on('ifChecked', '.check_all', function() {
|
|
$(this)
|
|
.closest('.check_group')
|
|
.find('.input-icheck')
|
|
.each(function() {
|
|
$(this).iCheck('check');
|
|
});
|
|
});
|
|
$(document).on('ifUnchecked', '.check_all', function() {
|
|
$(this)
|
|
.closest('.check_group')
|
|
.find('.input-icheck')
|
|
.each(function() {
|
|
$(this).iCheck('uncheck');
|
|
});
|
|
});
|
|
$('.check_all').each(function() {
|
|
var length = 0;
|
|
var checked_length = 0;
|
|
$(this)
|
|
.closest('.check_group')
|
|
.find('.input-icheck')
|
|
.each(function() {
|
|
length += 1;
|
|
if ($(this).iCheck('update')[0].checked) {
|
|
checked_length += 1;
|
|
}
|
|
});
|
|
length = length - 1;
|
|
if (checked_length != 0 && length == checked_length) {
|
|
$(this).iCheck('check');
|
|
}
|
|
});
|
|
|
|
//Business locations CRUD
|
|
business_locations = $('#business_location_table').DataTable({
|
|
processing: true,
|
|
serverSide: true,
|
|
bPaginate: false,
|
|
fixedHeader:false,
|
|
buttons: [],
|
|
ajax: '/business-location',
|
|
columnDefs: [
|
|
{
|
|
targets: 11,
|
|
orderable: false,
|
|
searchable: false,
|
|
},
|
|
],
|
|
});
|
|
$('.location_add_modal, .location_edit_modal').on('shown.bs.modal', function(e) {
|
|
$('form#business_location_add_form')
|
|
.submit(function(e) {
|
|
e.preventDefault();
|
|
})
|
|
.validate({
|
|
rules: {
|
|
location_id: {
|
|
remote: {
|
|
url: '/business-location/check-location-id',
|
|
type: 'post',
|
|
data: {
|
|
location_id: function() {
|
|
return $('#location_id').val();
|
|
},
|
|
hidden_id: function() {
|
|
if ($('#hidden_id').length) {
|
|
return $('#hidden_id').val();
|
|
} else {
|
|
return '';
|
|
}
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
messages: {
|
|
location_id: {
|
|
remote: LANG.location_id_already_exists,
|
|
},
|
|
},
|
|
submitHandler: function(form) {
|
|
e.preventDefault();
|
|
var data = $(form).serialize();
|
|
|
|
$.ajax({
|
|
method: 'POST',
|
|
url: $(form).attr('action'),
|
|
dataType: 'json',
|
|
data: data,
|
|
beforeSend: function(xhr) {
|
|
__disable_submit_button($(form).find('button[type="submit"]'));
|
|
},
|
|
success: function(result) {
|
|
if (result.success == true) {
|
|
$('div.location_add_modal').modal('hide');
|
|
$('div.location_edit_modal').modal('hide');
|
|
toastr.success(result.msg);
|
|
business_locations.ajax.reload();
|
|
} else {
|
|
toastr.error(result.msg);
|
|
}
|
|
},
|
|
});
|
|
},
|
|
});
|
|
|
|
$('form#business_location_add_form').find('#featured_products').select2({
|
|
minimumInputLength: 2,
|
|
allowClear: true,
|
|
placeholder: '',
|
|
ajax: {
|
|
url: '/products/list?not_for_selling=true',
|
|
dataType: 'json',
|
|
delay: 250,
|
|
data: function(params) {
|
|
return {
|
|
term: params.term, // search term
|
|
page: params.page,
|
|
};
|
|
},
|
|
processResults: function(data) {
|
|
return {
|
|
results: $.map(data, function(obj) {
|
|
var string = obj.name;
|
|
if (obj.type == 'variable') {
|
|
string += '-' + obj.variation;
|
|
}
|
|
|
|
string += ' (' + obj.sub_sku + ')';
|
|
return { id: obj.variation_id, text: string };
|
|
})
|
|
};
|
|
},
|
|
},
|
|
})
|
|
});
|
|
|
|
if ($('#header_text').length) {
|
|
init_tinymce('header_text');
|
|
}
|
|
|
|
if ($('#footer_text').length) {
|
|
init_tinymce('footer_text');
|
|
}
|
|
|
|
//Start: CRUD for expense category
|
|
//Expense category table
|
|
var expense_cat_table = $('#expense_category_table').DataTable({
|
|
processing: true,
|
|
serverSide: true,
|
|
ajax: '/expense-categories',
|
|
columnDefs: [
|
|
{
|
|
targets: 2,
|
|
orderable: false,
|
|
searchable: false,
|
|
},
|
|
],
|
|
});
|
|
$(document).on('submit', 'form#expense_category_add_form', function(e) {
|
|
e.preventDefault();
|
|
var data = $(this).serialize();
|
|
|
|
$.ajax({
|
|
method: 'POST',
|
|
url: $(this).attr('action'),
|
|
dataType: 'json',
|
|
data: data,
|
|
success: function(result) {
|
|
if (result.success === true) {
|
|
$('div.expense_category_modal').modal('hide');
|
|
toastr.success(result.msg);
|
|
expense_cat_table.ajax.reload();
|
|
} else {
|
|
toastr.error(result.msg);
|
|
}
|
|
},
|
|
});
|
|
});
|
|
$(document).on('click', 'button.delete_expense_category', function() {
|
|
swal({
|
|
title: LANG.sure,
|
|
text: LANG.confirm_delete_expense_category,
|
|
icon: 'warning',
|
|
buttons: true,
|
|
dangerMode: true,
|
|
}).then(willDelete => {
|
|
if (willDelete) {
|
|
var href = $(this).data('href');
|
|
var data = $(this).serialize();
|
|
|
|
$.ajax({
|
|
method: 'DELETE',
|
|
url: href,
|
|
dataType: 'json',
|
|
data: data,
|
|
success: function(result) {
|
|
if (result.success === true) {
|
|
toastr.success(result.msg);
|
|
expense_cat_table.ajax.reload();
|
|
} else {
|
|
toastr.error(result.msg);
|
|
}
|
|
},
|
|
});
|
|
}
|
|
});
|
|
});
|
|
|
|
//date filter for expense table
|
|
if ($('#expense_date_range').length == 1) {
|
|
$('#expense_date_range').daterangepicker(
|
|
dateRangeSettings,
|
|
function(start, end) {
|
|
$('#expense_date_range').val(
|
|
__format_date_range(start, end)
|
|
);
|
|
expense_table.ajax.reload();
|
|
}
|
|
);
|
|
|
|
$('#expense_date_range').on('cancel.daterangepicker', function(ev, picker) {
|
|
$('#product_sr_date_filter').val('');
|
|
expense_table.ajax.reload();
|
|
});
|
|
}
|
|
|
|
//Expense table
|
|
expense_table = $('#expense_table').DataTable({
|
|
processing: true,
|
|
serverSide: true,
|
|
fixedHeader:false,
|
|
aaSorting: [[1, 'desc']],
|
|
ajax: {
|
|
url: '/expenses',
|
|
data: function(d) {
|
|
d.expense_for = $('select#expense_for').val();
|
|
d.created_by = $('select#created_by').val();
|
|
d.contact_id = $('select#expense_contact_filter').val();
|
|
d.location_id = $('select#location_id').val();
|
|
d.expense_category_id = $('select#expense_category_id').val();
|
|
d.expense_sub_category_id = $('select#expense_sub_category_id_filter').val();
|
|
d.payment_status = $('select#expense_payment_status').val();
|
|
d.start_date = __daterangepicker_start_date('input#expense_date_range');
|
|
d.end_date = __daterangepicker_end_date('input#expense_date_range');
|
|
},
|
|
},
|
|
columns: [
|
|
{ data: 'action', name: 'action', orderable: false, searchable: false },
|
|
{ data: 'transaction_date', name: 'transaction_date' },
|
|
{ data: 'ref_no', name: 'ref_no' },
|
|
{ data: 'recur_details', name: 'recur_details', orderable: false, searchable: false },
|
|
{ data: 'category', name: 'ec.name' },
|
|
{ data: 'sub_category', name: 'esc.name' },
|
|
{ data: 'location_name', name: 'bl.name' },
|
|
{ data: 'payment_status', name: 'payment_status', orderable: false },
|
|
{ data: 'tax', name: 'tr.name' },
|
|
{ data: 'final_total', name: 'final_total' },
|
|
{ data: 'payment_due', name: 'payment_due' },
|
|
{ data: 'expense_for', name: 'expense_for' },
|
|
{ data: 'contact_name', name: 'c.name' },
|
|
{ data: 'additional_notes', name: 'additional_notes' },
|
|
{ data: 'added_by', name: 'usr.first_name'}
|
|
],
|
|
fnDrawCallback: function(row, data, start, end, display) {
|
|
var expense_total = sum_table_col($('#expense_table'), 'final-total');
|
|
var total_due = sum_table_col($('#expense_table'), 'payment_due');
|
|
|
|
$('.footer_expense_total').html(__currency_trans_from_en(expense_total));
|
|
$('.footer_total_due').html(__currency_trans_from_en(total_due));
|
|
|
|
$('.footer_payment_status_count').html(
|
|
__sum_status_html($('#expense_table'), 'payment-status')
|
|
);
|
|
},
|
|
createdRow: function(row, data, dataIndex) {
|
|
$(row)
|
|
.find('td:eq(4)')
|
|
.attr('class', 'clickable_td');
|
|
},
|
|
});
|
|
|
|
$('select#location_id, select#expense_for, select#created_by, select#select#expense_contact_filter, \
|
|
select#expense_category_id, select#expense_payment_status, \
|
|
select#expense_sub_category_id_filter').on(
|
|
'change',
|
|
function() {
|
|
expense_table.ajax.reload();
|
|
}
|
|
);
|
|
|
|
//Date picker
|
|
__init_datetime_field('#expense_transaction_date');
|
|
|
|
$(document).on('click', 'a.delete_expense', function(e) {
|
|
e.preventDefault();
|
|
swal({
|
|
title: LANG.sure,
|
|
text: LANG.confirm_delete_expense,
|
|
icon: 'warning',
|
|
buttons: true,
|
|
dangerMode: true,
|
|
}).then(willDelete => {
|
|
if (willDelete) {
|
|
var href = $(this).data('href');
|
|
var data = $(this).serialize();
|
|
|
|
$.ajax({
|
|
method: 'DELETE',
|
|
url: href,
|
|
dataType: 'json',
|
|
data: data,
|
|
success: function(result) {
|
|
if (result.success === true) {
|
|
toastr.success(result.msg);
|
|
expense_table.ajax.reload();
|
|
} else {
|
|
toastr.error(result.msg);
|
|
}
|
|
},
|
|
});
|
|
}
|
|
});
|
|
});
|
|
|
|
$(document).on('change', '.payment_types_dropdown', function() {
|
|
var payment_type = $(this).val();
|
|
var to_show = null;
|
|
$(this)
|
|
.closest('.payment_row')
|
|
.find('.payment_details_div')
|
|
.each(function() {
|
|
if ($(this).attr('data-type') == payment_type) {
|
|
to_show = $(this);
|
|
} else {
|
|
if (!$(this).hasClass('hide')) {
|
|
$(this).addClass('hide');
|
|
}
|
|
}
|
|
});
|
|
|
|
if (to_show && to_show.hasClass('hide')) {
|
|
to_show.removeClass('hide');
|
|
to_show
|
|
.find('input')
|
|
.filter(':visible:first')
|
|
.focus();
|
|
}
|
|
|
|
if ($(this).closest('.payment_row').find('.enable_cash_denomination_for_payment_methods').length) {
|
|
var payment_methods = JSON.parse($(this).closest('.payment_row').find('.enable_cash_denomination_for_payment_methods').val());
|
|
if (payment_methods.indexOf(payment_type) >= 0) {
|
|
$(this).closest('.payment_row').find('.cash_denomination_div').removeClass('hide');
|
|
} else {
|
|
$(this).closest('.payment_row').find('.cash_denomination_div').addClass('hide');
|
|
}
|
|
}
|
|
});
|
|
|
|
//Start: CRUD operation for printers
|
|
|
|
//Add Printer
|
|
if ($('form#add_printer_form').length == 1) {
|
|
printer_connection_type_field($('select#connection_type').val());
|
|
$('select#connection_type').change(function() {
|
|
var ctype = $(this).val();
|
|
printer_connection_type_field(ctype);
|
|
});
|
|
|
|
$('form#add_printer_form').validate();
|
|
}
|
|
|
|
//Business Location Receipt setting
|
|
if ($('form#bl_receipt_setting_form').length == 1) {
|
|
if ($('select#receipt_printer_type').val() == 'printer') {
|
|
$('div#location_printer_div').removeClass('hide');
|
|
} else {
|
|
$('div#location_printer_div').addClass('hide');
|
|
}
|
|
|
|
$('select#receipt_printer_type').change(function() {
|
|
var printer_type = $(this).val();
|
|
if (printer_type == 'printer') {
|
|
$('div#location_printer_div').removeClass('hide');
|
|
} else {
|
|
$('div#location_printer_div').addClass('hide');
|
|
}
|
|
});
|
|
|
|
$('form#bl_receipt_setting_form').validate();
|
|
}
|
|
|
|
$(document).on('click', 'a.pay_purchase_due, a.pay_sale_due', function(e) {
|
|
e.preventDefault();
|
|
$.ajax({
|
|
url: $(this).attr('href'),
|
|
dataType: 'html',
|
|
success: function(result) {
|
|
$('.pay_contact_due_modal')
|
|
.html(result)
|
|
.modal('show');
|
|
__currency_convert_recursively($('.pay_contact_due_modal'));
|
|
__init_datetime_field('#paid_on');
|
|
$('.pay_contact_due_modal')
|
|
.find('form#pay_contact_due_form')
|
|
.validate();
|
|
},
|
|
});
|
|
});
|
|
|
|
//Todays profit modal
|
|
$('#view_todays_profit').click(function() {
|
|
var loader = '<div class="text-center">' + __fa_awesome() + '</div>';
|
|
$('#todays_profit').html(loader);
|
|
$('#todays_profit_modal').modal('show');
|
|
});
|
|
$('#todays_profit_modal').on('shown.bs.modal', function() {
|
|
var start = $('#modal_today').val();
|
|
var end = start;
|
|
var location_id = '';
|
|
|
|
updateProfitLoss(start, end, location_id, $('#todays_profit'));
|
|
});
|
|
|
|
//Used for Purchase & Sell invoice.
|
|
$(document).on('click', 'a.print-invoice', function(e) {
|
|
e.preventDefault();
|
|
var href = $(this).data('href');
|
|
|
|
$.ajax({
|
|
method: 'GET',
|
|
url: href,
|
|
dataType: 'json',
|
|
success: function(result) {
|
|
if (result.success == 1 && result.receipt.html_content != '') {
|
|
$('#receipt_section').html(result.receipt.html_content);
|
|
__currency_convert_recursively($('#receipt_section'));
|
|
|
|
var title = document.title;
|
|
if (typeof result.receipt.print_title != 'undefined') {
|
|
document.title = result.receipt.print_title;
|
|
}
|
|
if (typeof result.print_title != 'undefined') {
|
|
document.title = result.print_title;
|
|
}
|
|
|
|
__print_receipt('receipt_section');
|
|
|
|
setTimeout(function() {
|
|
document.title = title;
|
|
}, 1200);
|
|
} else {
|
|
toastr.error(result.msg);
|
|
}
|
|
},
|
|
});
|
|
});
|
|
|
|
//Sales commission agent
|
|
var sales_commission_agent_table = $('#sales_commission_agent_table').DataTable({
|
|
processing: true,
|
|
serverSide: true,
|
|
fixedHeader:false,
|
|
ajax: '/sales-commission-agents',
|
|
columnDefs: [
|
|
{
|
|
targets: 2,
|
|
orderable: false,
|
|
searchable: false,
|
|
},
|
|
],
|
|
columns: [
|
|
{ data: 'full_name' },
|
|
{ data: 'email' },
|
|
{ data: 'contact_no' },
|
|
{ data: 'address' },
|
|
{ data: 'cmmsn_percent' },
|
|
{ data: 'action' },
|
|
],
|
|
});
|
|
$('div.commission_agent_modal').on('shown.bs.modal', function(e) {
|
|
$('form#sale_commission_agent_form')
|
|
.submit(function(e) {
|
|
e.preventDefault();
|
|
})
|
|
.validate({
|
|
submitHandler: function(form) {
|
|
e.preventDefault();
|
|
var data = $(form).serialize();
|
|
|
|
$.ajax({
|
|
method: $(form).attr('method'),
|
|
url: $(form).attr('action'),
|
|
dataType: 'json',
|
|
data: data,
|
|
success: function(result) {
|
|
if (result.success == true) {
|
|
$('div.commission_agent_modal').modal('hide');
|
|
toastr.success(result.msg);
|
|
sales_commission_agent_table.ajax.reload();
|
|
} else {
|
|
toastr.error(result.msg);
|
|
}
|
|
},
|
|
});
|
|
},
|
|
});
|
|
});
|
|
$(document).on('click', 'button.delete_commsn_agnt_button', function() {
|
|
swal({
|
|
title: LANG.sure,
|
|
icon: 'warning',
|
|
buttons: true,
|
|
dangerMode: true,
|
|
}).then(willDelete => {
|
|
if (willDelete) {
|
|
var href = $(this).data('href');
|
|
var data = $(this).serialize();
|
|
$.ajax({
|
|
method: 'DELETE',
|
|
url: href,
|
|
dataType: 'json',
|
|
data: data,
|
|
success: function(result) {
|
|
if (result.success == true) {
|
|
toastr.success(result.msg);
|
|
sales_commission_agent_table.ajax.reload();
|
|
} else {
|
|
toastr.error(result.msg);
|
|
}
|
|
},
|
|
});
|
|
}
|
|
});
|
|
});
|
|
|
|
$('button#full_screen').click(function(e) {
|
|
element = document.documentElement;
|
|
if (screenfull.isEnabled) {
|
|
screenfull.toggle(element);
|
|
}
|
|
});
|
|
|
|
$(document).on('change', '#price_calculation_type', function() {
|
|
var price_calculation_type = $(this).val();
|
|
|
|
if (price_calculation_type == 'percentage') {
|
|
$('.percentage-field').removeClass('hide');
|
|
$('.selling_price_group-field').addClass('hide');
|
|
} else {
|
|
$('.percentage-field').addClass('hide');
|
|
$('.selling_price_group-field').removeClass('hide');
|
|
}
|
|
});
|
|
|
|
$(document).on('submit', 'form#customer_group_add_form', function(e) {
|
|
e.preventDefault();
|
|
var data = $(this).serialize();
|
|
|
|
$.ajax({
|
|
method: 'POST',
|
|
url: $(this).attr('action'),
|
|
dataType: 'json',
|
|
data: data,
|
|
success: function(result) {
|
|
if (result.success == true) {
|
|
$('div.customer_groups_modal').modal('hide');
|
|
toastr.success(result.msg);
|
|
customer_groups_table.ajax.reload();
|
|
} else {
|
|
toastr.error(result.msg);
|
|
}
|
|
},
|
|
});
|
|
});
|
|
|
|
$(document).on('submit', 'form#quick_add_customer_group_form', function(e) {
|
|
e.preventDefault();
|
|
var form = $(this);
|
|
var data = form.serialize();
|
|
|
|
$.ajax({
|
|
method: 'POST',
|
|
url: $(this).attr('action'),
|
|
dataType: 'json',
|
|
data: data,
|
|
beforeSend: function(xhr) {
|
|
__disable_submit_button(form.find('button[type="submit"]'));
|
|
},
|
|
success: function(result) {
|
|
if (result.success == true) {
|
|
var newOption = new Option(result.data.name, result.data.id, true, true);
|
|
$('#customer_group_id')
|
|
.append(newOption)
|
|
.trigger('change');
|
|
$('div.view_modal').modal('hide');
|
|
toastr.success(result.msg);
|
|
} else {
|
|
toastr.error(result.msg);
|
|
}
|
|
},
|
|
});
|
|
});
|
|
|
|
//Customer Group table
|
|
var customer_groups_table = $('#customer_groups_table').DataTable({
|
|
processing: true,
|
|
serverSide: true,
|
|
fixedHeader:false,
|
|
ajax: '/customer-group',
|
|
columnDefs: [
|
|
{
|
|
targets: 2,
|
|
orderable: false,
|
|
searchable: false,
|
|
},
|
|
],
|
|
});
|
|
|
|
$(document).on('click', 'button.edit_customer_group_button', function() {
|
|
$('div.customer_groups_modal').load($(this).data('href'), function() {
|
|
$(this).modal('show');
|
|
|
|
$('form#customer_group_edit_form').submit(function(e) {
|
|
e.preventDefault();
|
|
var data = $(this).serialize();
|
|
|
|
$.ajax({
|
|
method: 'POST',
|
|
url: $(this).attr('action'),
|
|
dataType: 'json',
|
|
data: data,
|
|
success: function(result) {
|
|
if (result.success == true) {
|
|
$('div.customer_groups_modal').modal('hide');
|
|
toastr.success(result.msg);
|
|
customer_groups_table.ajax.reload();
|
|
} else {
|
|
toastr.error(result.msg);
|
|
}
|
|
},
|
|
});
|
|
});
|
|
});
|
|
});
|
|
|
|
$(document).on('click', 'button.delete_customer_group_button', function() {
|
|
swal({
|
|
title: LANG.sure,
|
|
text: LANG.confirm_delete_customer_group,
|
|
icon: 'warning',
|
|
buttons: true,
|
|
dangerMode: true,
|
|
}).then(willDelete => {
|
|
if (willDelete) {
|
|
var href = $(this).data('href');
|
|
var data = $(this).serialize();
|
|
|
|
$.ajax({
|
|
method: 'DELETE',
|
|
url: href,
|
|
dataType: 'json',
|
|
data: data,
|
|
success: function(result) {
|
|
if (result.success == true) {
|
|
toastr.success(result.msg);
|
|
customer_groups_table.ajax.reload();
|
|
} else {
|
|
toastr.error(result.msg);
|
|
}
|
|
},
|
|
});
|
|
}
|
|
});
|
|
});
|
|
|
|
//Delete Sale
|
|
$(document).on('click', '.delete-sale', function(e) {
|
|
e.preventDefault();
|
|
swal({
|
|
title: LANG.sure,
|
|
icon: 'warning',
|
|
buttons: true,
|
|
dangerMode: true,
|
|
}).then(willDelete => {
|
|
if (willDelete) {
|
|
var href = $(this).attr('href');
|
|
var is_suspended = $(this).hasClass('is_suspended');
|
|
$.ajax({
|
|
method: 'DELETE',
|
|
url: href,
|
|
dataType: 'json',
|
|
success: function(result) {
|
|
if (result.success == true) {
|
|
toastr.success(result.msg);
|
|
if (typeof sell_table !== 'undefined') {
|
|
sell_table.ajax.reload();
|
|
}
|
|
if (typeof pending_repair_table !== 'undefined') {
|
|
pending_repair_table.ajax.reload();
|
|
}
|
|
//Displays list of recent transactions
|
|
if (typeof get_recent_transactions !== 'undefined') {
|
|
get_recent_transactions('final', $('div#tab_final'));
|
|
get_recent_transactions('draft', $('div#tab_draft'));
|
|
}
|
|
if (is_suspended) {
|
|
$('.view_modal').modal('hide');
|
|
}
|
|
} else {
|
|
toastr.error(result.msg);
|
|
}
|
|
},
|
|
});
|
|
}
|
|
});
|
|
});
|
|
|
|
if ($('form#add_invoice_layout_form').length > 0) {
|
|
$('select#design').change(function() {
|
|
if ($(this).val() == 'columnize-taxes') {
|
|
$('div#columnize-taxes').removeClass('hide');
|
|
$('div#columnize-taxes')
|
|
.find('input')
|
|
.removeAttr('disabled', 'false');
|
|
} else {
|
|
$('div#columnize-taxes').addClass('hide');
|
|
$('div#columnize-taxes')
|
|
.find('input')
|
|
.attr('disabled', 'true');
|
|
}
|
|
});
|
|
}
|
|
|
|
$(document).on('keyup', 'form#unit_add_form input#actual_name', function() {
|
|
$('form#unit_add_form span#unit_name').text($(this).val());
|
|
});
|
|
$(document).on('keyup', 'form#unit_edit_form input#actual_name', function() {
|
|
$('form#unit_edit_form span#unit_name').text($(this).val());
|
|
});
|
|
|
|
// Date of birth datepicker
|
|
if (typeof is_persian_lang !== 'undefined' && is_persian_lang && typeof $.fn.persianDatepicker !== 'undefined') {
|
|
$('#user_dob').persianDatepicker({
|
|
calendarType: 'persian',
|
|
format: typeof datepicker_date_format !== 'undefined' ? datepicker_date_format : 'YYYY/MM/DD',
|
|
autoClose: true,
|
|
maxDate: 'today',
|
|
observer: true,
|
|
initialValue: false,
|
|
timePicker: {
|
|
enabled: false
|
|
}
|
|
});
|
|
} else {
|
|
$('#user_dob').datepicker({
|
|
autoclose: true
|
|
});
|
|
}
|
|
|
|
setInterval(function(){ getTotalUnreadNotifications() }, __new_notification_count_interval);
|
|
|
|
discounts_table = $('#discounts_table').DataTable({
|
|
processing: true,
|
|
serverSide: true,
|
|
fixedHeader:false,
|
|
ajax: base_path + '/discount',
|
|
columnDefs: [
|
|
{
|
|
targets: [0, 8, 10],
|
|
orderable: false,
|
|
searchable: false,
|
|
},
|
|
],
|
|
aaSorting: [1, 'asc'],
|
|
columns: [
|
|
{ data: 'row_select'},
|
|
{ data: 'name', name: 'discounts.name' },
|
|
{ data: 'starts_at', name: 'starts_at' },
|
|
{ data: 'ends_at', name: 'ends_at' },
|
|
{ data: 'discount_amount', name: 'discount_amount'},
|
|
{ data: 'priority', name: 'priority' },
|
|
{ data: 'brand', name: 'b.name' },
|
|
{ data: 'category', name: 'c.name' },
|
|
{ data: 'products' },
|
|
{ data: 'location', name: 'l.name' },
|
|
{ data: 'action', name: 'action' },
|
|
],
|
|
});
|
|
|
|
|
|
types_of_service_table = $('#types_of_service_table').DataTable({
|
|
processing: true,
|
|
serverSide: true,
|
|
fixedHeader:false,
|
|
ajax: base_path + '/types-of-service',
|
|
columnDefs: [
|
|
{
|
|
targets: [3],
|
|
orderable: false,
|
|
searchable: false,
|
|
},
|
|
],
|
|
aaSorting: [1, 'asc'],
|
|
columns: [
|
|
{ data: 'name', name: 'name' },
|
|
{ data: 'description', name: 'description' },
|
|
{ data: 'packing_charge', name: 'packing_charge' },
|
|
{ data: 'action', name: 'action' },
|
|
],
|
|
fnDrawCallback: function(oSettings) {
|
|
__currency_convert_recursively($('#types_of_service_table'));
|
|
},
|
|
});
|
|
|
|
//Search Settings
|
|
//Set all labels as select2 options
|
|
label_objects = [];
|
|
search_options = [{
|
|
id: '',
|
|
text: ''
|
|
}];
|
|
var i = 0;
|
|
$('.pos-tab-container label').each( function(){
|
|
label_objects.push($(this));
|
|
var label_text = $(this).text().trim().replace(":", "").replace("*", "");
|
|
search_options.push(
|
|
{
|
|
id: i,
|
|
text: label_text
|
|
}
|
|
);
|
|
i++;
|
|
});
|
|
|
|
$('.pos-tab-container h4').each( function(){
|
|
label_objects.push($(this));
|
|
var label_text = $(this).text().trim().replace(":", "").replace("*", "");
|
|
search_options.push(
|
|
{
|
|
id: i,
|
|
text: label_text
|
|
}
|
|
);
|
|
i++;
|
|
});
|
|
|
|
$('#search_settings').select2({
|
|
data: search_options,
|
|
placeholder: LANG.search,
|
|
});
|
|
|
|
$('#search_settings').change( function(){
|
|
//Get label position and add active class to the tab
|
|
var label_index = $(this).val();
|
|
var label = label_objects[label_index];
|
|
$('.pos-tab-content.active').removeClass('active');
|
|
var tab_content = label.closest('.pos-tab-content');
|
|
tab_content.addClass('active');
|
|
tab_index = $('.pos-tab-content').index(tab_content);
|
|
$('.list-group-item.active').removeClass('active');
|
|
$('.list-group-item').eq(tab_index).addClass('active');
|
|
//Highlight the label for three seconds
|
|
$([document.documentElement, document.body]).animate({
|
|
scrollTop: label.offset().top - 100
|
|
}, 500);
|
|
label.css('background-color', 'yellow');
|
|
setTimeout(function(){
|
|
label.css('background-color', '');
|
|
}, 3000);
|
|
});
|
|
|
|
$('#add_invoice_layout_form #design').change( function(){
|
|
if ($(this).val() == 'slim') {
|
|
$('#hide_price_div').removeClass('hide');
|
|
} else {
|
|
$('#hide_price_div').addClass('hide');
|
|
}
|
|
});
|
|
|
|
$('#toggle_additional_expense').click( function() {
|
|
$('#additional_expenses_div').toggle();
|
|
});
|
|
});
|
|
|
|
$('.quick_add_product_modal').on('shown.bs.modal', function() {
|
|
$('.quick_add_product_modal')
|
|
.find('.select2')
|
|
.each(function() {
|
|
var $p = $(this).parent();
|
|
$(this).select2({ dropdownParent: $p });
|
|
});
|
|
$('.quick_add_product_modal')
|
|
.find('input[type="checkbox"].input-icheck')
|
|
.each(function() {
|
|
$(this).iCheck({
|
|
checkboxClass: 'icheckbox_square-blue',
|
|
radioClass: 'iradio_square-blue',
|
|
});
|
|
});
|
|
});
|
|
|
|
|
|
$('.discount_modal').on('shown.bs.modal', function() {
|
|
$('.discount_modal')
|
|
.find('.select2')
|
|
.each(function() {
|
|
var $p = $(this).parent();
|
|
$(this).select2({ dropdownParent: $p });
|
|
});
|
|
$('.discount_modal')
|
|
.find('input[type="checkbox"].input-icheck')
|
|
.each(function() {
|
|
$(this).iCheck({
|
|
checkboxClass: 'icheckbox_square-blue',
|
|
radioClass: 'iradio_square-blue',
|
|
});
|
|
});
|
|
//Datetime picker
|
|
__init_datetime_field('.discount_modal .discount_date');
|
|
$('form#discount_form').validate();
|
|
});
|
|
|
|
$(document).on('submit', 'form#discount_form', function(e) {
|
|
e.preventDefault();
|
|
var data = $(this).serialize();
|
|
|
|
$.ajax({
|
|
method: $(this).attr('method'),
|
|
url: $(this).attr('action'),
|
|
dataType: 'json',
|
|
data: data,
|
|
success: function(result) {
|
|
if (result.success == true) {
|
|
$('div.discount_modal').modal('hide');
|
|
toastr.success(result.msg);
|
|
discounts_table.ajax.reload();
|
|
} else {
|
|
toastr.error(result.msg);
|
|
}
|
|
},
|
|
});
|
|
});
|
|
|
|
$(document).on('click', 'button.delete_discount_button', function() {
|
|
swal({
|
|
title: LANG.sure,
|
|
icon: 'warning',
|
|
buttons: true,
|
|
dangerMode: true,
|
|
}).then(willDelete => {
|
|
if (willDelete) {
|
|
var href = $(this).data('href');
|
|
var data = $(this).serialize();
|
|
|
|
$.ajax({
|
|
method: 'DELETE',
|
|
url: href,
|
|
dataType: 'json',
|
|
data: data,
|
|
success: function(result) {
|
|
if (result.success == true) {
|
|
toastr.success(result.msg);
|
|
discounts_table.ajax.reload();
|
|
} else {
|
|
toastr.error(result.msg);
|
|
}
|
|
},
|
|
});
|
|
}
|
|
});
|
|
});
|
|
|
|
function printer_connection_type_field(ctype) {
|
|
if (ctype == 'network') {
|
|
$('div#path_div').addClass('hide');
|
|
$('div#ip_address_div, div#port_div').removeClass('hide');
|
|
} else if (ctype == 'windows' || ctype == 'linux') {
|
|
$('div#path_div').removeClass('hide');
|
|
$('div#ip_address_div, div#port_div').addClass('hide');
|
|
}
|
|
}
|
|
|
|
function show_invoice_preview() {
|
|
if (!$('#preview_format').length) {
|
|
return;
|
|
}
|
|
|
|
var scheme_type = '';
|
|
var checked_scheme = $('input[type=radio][name=scheme_type]:checked').val();
|
|
if (checked_scheme == 'year') {
|
|
var d = new Date();
|
|
scheme_type = d.getFullYear() + APP.INVOICE_SCHEME_SEPARATOR;
|
|
}
|
|
|
|
var prefix = ($('#prefix').val() || '') + scheme_type;
|
|
var start_number = $('#start_number').val();
|
|
var total_digits = $('#total_digits').val();
|
|
|
|
if (start_number === undefined || start_number === null || start_number === '' || !total_digits) {
|
|
return;
|
|
}
|
|
|
|
var preview = prefix + pad_zero(start_number, total_digits);
|
|
$('#preview_format').text('#' + preview);
|
|
}
|
|
function pad_zero(str, max) {
|
|
if (str === undefined || str === null) {
|
|
return '';
|
|
}
|
|
str = str.toString();
|
|
max = parseInt(max, 10) || 0;
|
|
return str.length < max ? pad_zero('0' + str, max) : str;
|
|
}
|
|
function get_sub_categories() {
|
|
var cat = $('#category_id').val();
|
|
$.ajax({
|
|
method: 'POST',
|
|
url: '/products/get_sub_categories',
|
|
dataType: 'html',
|
|
data: { cat_id: cat },
|
|
success: function(result) {
|
|
if (result) {
|
|
$('#sub_category_id').html(result);
|
|
}
|
|
},
|
|
});
|
|
}
|
|
function get_sub_units() {
|
|
//Add dropdown for sub units if sub unit field is visible
|
|
if($('#sub_unit_ids').is(':visible')){
|
|
var unit_id = $('#unit_id').val();
|
|
$.ajax({
|
|
method: 'GET',
|
|
url: '/products/get_sub_units',
|
|
dataType: 'html',
|
|
data: { unit_id: unit_id },
|
|
success: function(result) {
|
|
if (result) {
|
|
$('#sub_unit_ids').html(result);
|
|
}
|
|
},
|
|
});
|
|
}
|
|
}
|
|
function show_product_type_form() {
|
|
|
|
//Disable Stock management & Woocommmerce sync if type combo
|
|
if($('#type').val() == 'combo'){
|
|
$('#enable_stock').iCheck('uncheck');
|
|
$('input[name="woocommerce_disable_sync"]').iCheck('check');
|
|
}
|
|
|
|
var action = $('#type').attr('data-action');
|
|
var product_id = $('#type').attr('data-product_id');
|
|
$.ajax({
|
|
method: 'POST',
|
|
url: '/products/product_form_part',
|
|
dataType: 'html',
|
|
data: { type: $('#type').val(), product_id: product_id, action: action },
|
|
success: function(result) {
|
|
if (result) {
|
|
$('#product_form_part').html(result);
|
|
toggle_dsp_input();
|
|
}
|
|
},
|
|
});
|
|
}
|
|
|
|
$(document).on('click', 'table.ajax_view tbody tr', function(e) {
|
|
if (
|
|
!$(e.target).is('td.selectable_td input[type=checkbox]') &&
|
|
!$(e.target).is('td.selectable_td') &&
|
|
!$(e.target).is('td.clickable_td') &&
|
|
!$(e.target).is('a') &&
|
|
!$(e.target).is('button') &&
|
|
!$(e.target).hasClass('label') &&
|
|
!$(e.target).is('li') &&
|
|
$(this).data('href') &&
|
|
!$(e.target).is('i')
|
|
) {
|
|
$.ajax({
|
|
url: $(this).data('href'),
|
|
dataType: 'html',
|
|
success: function(result) {
|
|
$('.view_modal')
|
|
.html(result)
|
|
.modal('show');
|
|
},
|
|
});
|
|
}
|
|
});
|
|
$(document).on('click', 'td.clickable_td', function(e) {
|
|
e.preventDefault();
|
|
e.stopPropagation();
|
|
if (e.target.tagName == 'SPAN' || e.target.tagName == 'TD' || e.target.tagName == 'I') {
|
|
return false;
|
|
}
|
|
var link = $(this).find('a');
|
|
if (link.length) {
|
|
if (!link.hasClass('no-ajax')) {
|
|
var href = link.attr('href');
|
|
var container = $('.payment_modal');
|
|
|
|
$.ajax({
|
|
url: href,
|
|
dataType: 'html',
|
|
success: function(result) {
|
|
$(container)
|
|
.html(result)
|
|
.modal('show');
|
|
__currency_convert_recursively(container);
|
|
},
|
|
});
|
|
}
|
|
}
|
|
});
|
|
|
|
$(document).on('click', 'button.select-all', function() {
|
|
var this_select = $(this)
|
|
.closest('.form-group')
|
|
.find('select');
|
|
this_select.find('option').each(function() {
|
|
$(this).prop('selected', 'selected');
|
|
});
|
|
this_select.trigger('change');
|
|
});
|
|
$(document).on('click', 'button.deselect-all', function() {
|
|
var this_select = $(this)
|
|
.closest('.form-group')
|
|
.find('select');
|
|
this_select.find('option').each(function() {
|
|
$(this).prop('selected', '');
|
|
});
|
|
this_select.trigger('change');
|
|
});
|
|
|
|
$(document).on('change', 'input.row-select', function() {
|
|
if (this.checked) {
|
|
$(this)
|
|
.closest('tr')
|
|
.addClass('selected');
|
|
} else {
|
|
$(this)
|
|
.closest('tr')
|
|
.removeClass('selected');
|
|
}
|
|
});
|
|
|
|
$(document).on('click', '#select-all-row', function(e) {
|
|
var table_id = $(this).data('table-id');
|
|
if (this.checked) {
|
|
$('#' + table_id)
|
|
.find('tbody')
|
|
.find('input.row-select')
|
|
.each(function() {
|
|
if (!this.checked) {
|
|
$(this)
|
|
.prop('checked', true)
|
|
.change();
|
|
}
|
|
});
|
|
} else {
|
|
$('#' + table_id)
|
|
.find('tbody')
|
|
.find('input.row-select')
|
|
.each(function() {
|
|
if (this.checked) {
|
|
$(this)
|
|
.prop('checked', false)
|
|
.change();
|
|
}
|
|
});
|
|
}
|
|
});
|
|
|
|
$(document).on('click', 'a.view_purchase_return_payment_modal', function(e) {
|
|
e.preventDefault();
|
|
e.stopPropagation();
|
|
var href = $(this).attr('href');
|
|
var container = $('.payment_modal');
|
|
|
|
$.ajax({
|
|
url: href,
|
|
dataType: 'html',
|
|
success: function(result) {
|
|
$(container)
|
|
.html(result)
|
|
.modal('show');
|
|
__currency_convert_recursively(container);
|
|
},
|
|
});
|
|
});
|
|
|
|
$(document).on('click', 'a.view_invoice_url', function(e) {
|
|
e.preventDefault();
|
|
$('div.view_modal').load($(this).attr('href'), function() {
|
|
$(this).modal('show');
|
|
});
|
|
return false;
|
|
});
|
|
$(document).on('click', '.load_more_notifications', function(e) {
|
|
e.preventDefault();
|
|
var this_link = $(this);
|
|
this_link.text(LANG.loading + '...');
|
|
this_link.attr('disabled', true);
|
|
var page = parseInt($('input#notification_page').val()) + 1;
|
|
var href = '/load-more-notifications?page=' + page;
|
|
$.ajax({
|
|
url: href,
|
|
dataType: 'html',
|
|
success: function(result) {
|
|
if ($('li.no-notification').length == 0) {
|
|
$('ul#notifications_list').append(result);
|
|
// $(result).append(this_link.closest('li'));
|
|
}
|
|
|
|
this_link.text(LANG.load_more);
|
|
this_link.removeAttr('disabled');
|
|
$('input#notification_page').val(page);
|
|
},
|
|
});
|
|
return false;
|
|
});
|
|
|
|
$(document).on('click', 'a.load_notifications', function(e) {
|
|
e.preventDefault();
|
|
$('li.load_more_li').addClass('hide');
|
|
var this_link = $(this);
|
|
var href = '/load-more-notifications?page=1';
|
|
$('span.notifications_count').html(__fa_awesome());
|
|
$.ajax({
|
|
url: href,
|
|
dataType: 'html',
|
|
success: function(result) {
|
|
$('li.notification-li').remove();
|
|
$('ul#notifications_list').prepend(result);
|
|
$('span.notifications_count').text('');
|
|
$('li.load_more_li').removeClass('hide');
|
|
},
|
|
});
|
|
});
|
|
|
|
$(document).on('click', 'a.delete_purchase_return', function(e) {
|
|
e.preventDefault();
|
|
swal({
|
|
title: LANG.sure,
|
|
icon: 'warning',
|
|
buttons: true,
|
|
dangerMode: true,
|
|
}).then(willDelete => {
|
|
if (willDelete) {
|
|
var href = $(this).attr('href');
|
|
var data = $(this).serialize();
|
|
|
|
$.ajax({
|
|
method: 'DELETE',
|
|
url: href,
|
|
dataType: 'json',
|
|
data: data,
|
|
success: function(result) {
|
|
if (result.success == true) {
|
|
toastr.success(result.msg);
|
|
purchase_return_table.ajax.reload();
|
|
} else {
|
|
toastr.error(result.msg);
|
|
}
|
|
},
|
|
});
|
|
}
|
|
});
|
|
});
|
|
|
|
$(document).on('submit', 'form#types_of_service_form', function(e) {
|
|
e.preventDefault();
|
|
var form = $(this);
|
|
var data = form.serialize();
|
|
$.ajax({
|
|
method: $(this).attr('method'),
|
|
url: $(this).attr('action'),
|
|
dataType: 'json',
|
|
data: data,
|
|
beforeSend: function(xhr) {
|
|
__disable_submit_button(form.find('button[type="submit"]'));
|
|
},
|
|
success: function(result) {
|
|
if (result.success == true) {
|
|
$('div.type_of_service_modal').modal('hide');
|
|
toastr.success(result.msg);
|
|
types_of_service_table.ajax.reload();
|
|
} else {
|
|
toastr.error(result.msg);
|
|
}
|
|
},
|
|
});
|
|
});
|
|
|
|
$(document).on('click', 'button.delete_type_of_service', function(e) {
|
|
e.preventDefault();
|
|
swal({
|
|
title: LANG.sure,
|
|
icon: 'warning',
|
|
buttons: true,
|
|
dangerMode: true,
|
|
}).then(willDelete => {
|
|
if (willDelete) {
|
|
var href = $(this).data('href');
|
|
var data = $(this).serialize();
|
|
|
|
$.ajax({
|
|
method: 'DELETE',
|
|
url: href,
|
|
dataType: 'json',
|
|
data: data,
|
|
success: function(result) {
|
|
if (result.success == true) {
|
|
toastr.success(result.msg);
|
|
types_of_service_table.ajax.reload();
|
|
} else {
|
|
toastr.error(result.msg);
|
|
}
|
|
},
|
|
});
|
|
}
|
|
});
|
|
});
|
|
|
|
$(document).on('shown.bs.modal', '.view_modal', function(e){
|
|
if ($('#shipping_documents_dropzone').length) {
|
|
$(this).find("div#shipping_documents_dropzone").dropzone({
|
|
url: $('#media_upload_url').val(),
|
|
paramName: 'file',
|
|
uploadMultiple: true,
|
|
autoProcessQueue: false,
|
|
addRemoveLinks: true,
|
|
params: {
|
|
'model_id': $('#model_id').val(),
|
|
'model_type': $('#model_type').val(),
|
|
'model_media_type': $('#model_media_type').val()
|
|
},
|
|
headers: {
|
|
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
|
|
},
|
|
success: function(file, response) {
|
|
if (response.success) {
|
|
toastr.success(response.msg);
|
|
$('div.view_modal').modal('hide');
|
|
} else {
|
|
toastr.error(response.msg);
|
|
}
|
|
},
|
|
});
|
|
}
|
|
});
|
|
|
|
$(document).on('submit', 'form#edit_shipping_form', function(e){
|
|
e.preventDefault();
|
|
var form = $(this);
|
|
var data = form.serialize();
|
|
$.ajax({
|
|
method: $(this).attr('method'),
|
|
url: $(this).attr('action'),
|
|
dataType: 'json',
|
|
data: data,
|
|
beforeSend: function(xhr) {
|
|
__disable_submit_button(form.find('button[type="submit"]'));
|
|
},
|
|
success: function(result) {
|
|
if (result.success == true) {
|
|
var myDropzone = Dropzone.forElement("#shipping_documents_dropzone");
|
|
myDropzone.processQueue();
|
|
if (typeof(sell_table) != 'undefined') {
|
|
sell_table.ajax.reload();
|
|
}
|
|
|
|
if (typeof(purchase_order_table) != 'undefined') {
|
|
purchase_order_table.ajax.reload();
|
|
}
|
|
} else {
|
|
toastr.error(result.msg);
|
|
}
|
|
|
|
$('.view_modal').modal('hide');
|
|
},
|
|
});
|
|
});
|
|
|
|
$(document).on('show.bs.modal', '.register_details_modal, .close_register_modal', function () {
|
|
__currency_convert_recursively($(this));
|
|
});
|
|
|
|
function updateProfitLoss(start = null, end = null, location_id = null, selector = null) {
|
|
if(start == null){
|
|
var start = __daterangepicker_start_date('#profit_loss_date_filter');
|
|
}
|
|
if(end == null){
|
|
var end = __daterangepicker_end_date('#profit_loss_date_filter');
|
|
}
|
|
if(location_id == null){
|
|
var location_id = $('#profit_loss_location_filter').val();
|
|
}
|
|
var data = { start_date: start, end_date: end, location_id: location_id };
|
|
selector = selector == null ? $('#pl_data_div') : selector;
|
|
var loader = '<div class="text-center">' + __fa_awesome() + '</div>';
|
|
selector.html(loader);
|
|
$.ajax({
|
|
method: 'GET',
|
|
url: '/reports/profit-loss',
|
|
dataType: 'html',
|
|
data: data,
|
|
success: function(html) {
|
|
selector.html(html);
|
|
__currency_convert_recursively(selector);
|
|
updateStockBySellingPrice(data);
|
|
},
|
|
});
|
|
|
|
$('.nav-tabs li.active').find('a[data-toggle="tab"]').trigger('shown.bs.tab');
|
|
}
|
|
|
|
function updateStockBySellingPrice (data) {
|
|
if ($('#closing_stock_by_sp').length > 0) {
|
|
$.ajax({
|
|
method: 'GET',
|
|
url: '/reports/get-stock-by-sell-price',
|
|
dataType: 'json',
|
|
data: data,
|
|
success: function(result) {
|
|
$('#closing_stock_by_sp').html(__currency_trans_from_en(result.closing_stock_by_sp), true);
|
|
$('#opening_stock_by_sp').html(__currency_trans_from_en(result.opening_stock_by_sp), true);
|
|
},
|
|
});
|
|
}
|
|
}
|
|
|
|
$(document).on('click', 'button.activate-deactivate-location', function(){
|
|
swal({
|
|
title: LANG.sure,
|
|
icon: 'warning',
|
|
buttons: true,
|
|
dangerMode: true,
|
|
}).then(willDelete => {
|
|
if (willDelete) {
|
|
$.ajax({
|
|
url: $(this).data('href'),
|
|
dataType: 'json',
|
|
success: function(result) {
|
|
if (result.success == true) {
|
|
toastr.success(result.msg);
|
|
business_locations.ajax.reload();
|
|
} else {
|
|
toastr.error(result.msg);
|
|
}
|
|
},
|
|
});
|
|
}
|
|
});
|
|
});
|
|
|
|
function getTotalUnreadNotifications(){
|
|
if ($('span.notifications_count').length) {
|
|
var href = '/get-total-unread';
|
|
$.ajax({
|
|
url: href,
|
|
dataType: 'json',
|
|
global: false,
|
|
success: function(data) {
|
|
if (data.total_unread != 0 ) {
|
|
$('span.notifications_count').text(data.total_unread);
|
|
}
|
|
if (data.notification_html) {
|
|
$('.view_modal').html(data.notification_html);
|
|
$('.view_modal').modal('show');
|
|
}
|
|
},
|
|
});
|
|
}
|
|
}
|
|
|
|
$(document).on('shown.bs.modal', '.view_modal', function (e) {
|
|
if ($(this).find('#email_body').length) {
|
|
tinymce.init({
|
|
selector: 'textarea#email_body',
|
|
});
|
|
}
|
|
});
|
|
$(document).on('hidden.bs.modal', '.view_modal', function (e) {
|
|
if ($(this).find('#email_body').length) {
|
|
tinymce.remove("textarea#email_body");
|
|
}
|
|
|
|
//check if modal opened then make it scrollable
|
|
if($('.modal.in').length > 0)
|
|
{
|
|
$('body').addClass('modal-open');
|
|
}
|
|
});
|
|
$(document).on('shown.bs.modal', '.quick_add_product_modal', function (e) {
|
|
tinymce.init({
|
|
selector: 'textarea#product_description',
|
|
});
|
|
});
|
|
$(document).on('hidden.bs.modal', '.quick_add_product_modal', function (e) {
|
|
tinymce.remove("textarea#product_description");
|
|
});
|
|
|
|
$(window).scroll(function() {
|
|
if ($(this).scrollTop() > 100 ) {
|
|
$('.scrolltop:hidden').stop(true, true).fadeIn();
|
|
} else {
|
|
$('.scrolltop').stop(true, true).fadeOut();
|
|
}
|
|
});
|
|
$(function(){$(".scroll").click(function(){$("html,body").animate({scrollTop:$(".thetop").offset().top},"1000");return false})})
|
|
|
|
$(document).on('click', 'a.update_contact_status', function(e){
|
|
e.preventDefault();
|
|
var href = $(this).attr('href');
|
|
$.ajax({
|
|
url: href,
|
|
dataType: 'json',
|
|
success: function(data) {
|
|
if (data.success == true) {
|
|
toastr.success(data.msg);
|
|
contact_table.ajax.reload();
|
|
} else {
|
|
toastr.error(data.msg);
|
|
}
|
|
},
|
|
});
|
|
});
|
|
|
|
$(document).on('shown.bs.modal', '.contact_modal', function(e) {
|
|
if (typeof is_persian_lang !== 'undefined' && is_persian_lang && typeof $.fn.persianDatepicker !== 'undefined') {
|
|
$('.dob-date-picker').persianDatepicker({
|
|
calendarType: 'persian',
|
|
format: typeof datepicker_date_format !== 'undefined' ? datepicker_date_format : 'YYYY/MM/DD',
|
|
autoClose: true,
|
|
maxDate: 'today',
|
|
observer: true,
|
|
timePicker: {
|
|
enabled: false
|
|
}
|
|
});
|
|
} else {
|
|
$('.dob-date-picker').datepicker({
|
|
autoclose: true,
|
|
endDate: 'today',
|
|
});
|
|
}
|
|
});
|
|
|
|
$(document).on('change', '#sms_service', function(e) {
|
|
var sms_service = $(this).val();
|
|
$('div.sms_service_settings').each( function(){
|
|
if (sms_service == $(this).data('service')) {
|
|
$(this).removeClass('hide');
|
|
} else {
|
|
$(this).addClass('hide');
|
|
}
|
|
});
|
|
});
|
|
|
|
$(document).on('click', 'a.show-notification-in-popup', function(e){
|
|
e.preventDefault();
|
|
var url = $(this).attr('href');
|
|
$.ajax({
|
|
method: 'GET',
|
|
url: url,
|
|
dataType: 'html',
|
|
success: function(result) {
|
|
$('.view_modal').html(result);
|
|
$('.view_modal').modal('show');
|
|
},
|
|
});
|
|
})
|
|
|
|
$(document).on('click', 'a.convert-draft', function(e){
|
|
e.preventDefault();
|
|
swal({
|
|
title: LANG.sure,
|
|
icon: 'warning',
|
|
buttons: true,
|
|
dangerMode: true,
|
|
}).then(willDelete => {
|
|
if (willDelete) {
|
|
window.location = $(this).attr('href');
|
|
}
|
|
});
|
|
});
|
|
|
|
$(document).on('click', '.delete-media', function () {
|
|
swal({
|
|
title: LANG.sure,
|
|
icon: 'warning',
|
|
buttons: true,
|
|
dangerMode: true,
|
|
}).then(willDelete => {
|
|
if (willDelete) {
|
|
var url = $(this).data('href');
|
|
var thumbnail = $(this).closest('.img-thumbnail');
|
|
var tr = $(this).closest('tr');
|
|
$.ajax({
|
|
url: url,
|
|
dataType: 'json',
|
|
success: function(result) {
|
|
if (result.success == true) {
|
|
if (thumbnail) {
|
|
thumbnail.remove();
|
|
} else if (tr) {
|
|
tr.remove();
|
|
}
|
|
toastr.success(result.msg);
|
|
} else {
|
|
toastr.error(result.msg);
|
|
}
|
|
},
|
|
});
|
|
}
|
|
});
|
|
});
|
|
|
|
$(document).on('change', 'input#expense_final_total, #add_expense_modal_form .payment-amount', function() {
|
|
calculateExpensePaymentDue();
|
|
});
|
|
|
|
function calculateExpensePaymentDue() {
|
|
var final_total = __read_number($('input#expense_final_total'));
|
|
var payment_amount = __read_number($('#add_expense_modal_form input.payment-amount'));
|
|
var payment_due = final_total - payment_amount;
|
|
$('#expense_payment_due').text(__currency_trans_from_en(payment_due, true, false));
|
|
}
|
|
|
|
$(document).on('shown.bs.dropdown', '.btn-group', function(){
|
|
if ($(this).closest('tbody').find('tr').length < 4) {
|
|
$('.dataTables_scrollBody').addClass('of-visible');
|
|
}
|
|
});
|
|
$(document).on('hidden.bs.dropdown', '.btn-group', function(){
|
|
$('.dataTables_scrollBody').removeClass('of-visible');
|
|
})
|
|
|
|
function get_expense_sub_categories() {
|
|
var cat = $('#expense_category_id').val();
|
|
$.ajax({
|
|
method: 'POST',
|
|
url: '/get-expense-sub-categories',
|
|
dataType: 'html',
|
|
data: { cat_id: cat },
|
|
success: function(result) {
|
|
if (result) {
|
|
$('#expense_sub_category_id').html(result);
|
|
}
|
|
},
|
|
});
|
|
}
|
|
|
|
function submitContactForm(form) {
|
|
var data = $(form).serialize();
|
|
$.ajax({
|
|
method: 'POST',
|
|
url: $(form).attr('action'),
|
|
dataType: 'json',
|
|
data: data,
|
|
success: function(result) {
|
|
if (result.success == true) {
|
|
$('div.contact_modal').modal('hide');
|
|
toastr.success(result.msg);
|
|
|
|
if (typeof(contact_table) != 'undefined') {
|
|
contact_table.ajax.reload();
|
|
}
|
|
|
|
var lead_view = urlSearchParam('lead_view');
|
|
if (lead_view == 'kanban') {
|
|
initializeLeadKanbanBoard();
|
|
} else if(lead_view == 'list_view' && typeof(leads_datatable) != 'undefined') {
|
|
leads_datatable.ajax.reload();
|
|
}
|
|
|
|
} else {
|
|
toastr.error(result.msg);
|
|
}
|
|
},
|
|
});
|
|
}
|
|
|
|
$(document).on('submit', 'form#pay_contact_due_form', function(e){
|
|
var is_valid = true;
|
|
var payment_type = $('#pay_contact_due_form .payment_types_dropdown').val();
|
|
var denomination_for_payment_types = JSON.parse($('#pay_contact_due_form .enable_cash_denomination_for_payment_methods').val());
|
|
if (denomination_for_payment_types.includes(payment_type) && $('#pay_contact_due_form .is_strict').length && $('#pay_contact_due_form .is_strict').val() === '1' ) {
|
|
var payment_amount = __read_number($('#pay_contact_due_form .payment_amount'));
|
|
var total_denomination = $('#pay_contact_due_form').find('input.denomination_total_amount').val();
|
|
if (payment_amount != total_denomination ) {
|
|
is_valid = false;
|
|
}
|
|
}
|
|
|
|
$('#pay_contact_due_form').find('button[type="submit"]')
|
|
.attr('disabled', false);
|
|
|
|
if (!is_valid) {
|
|
$('#pay_contact_due_form').find('.cash_denomination_error').removeClass('hide');
|
|
e.preventDefault();
|
|
return false;
|
|
} else {
|
|
$('#pay_contact_due_form').find('.cash_denomination_error').addClass('hide');
|
|
}
|
|
|
|
}) |