$(document).on("click", ".save_quote , .save_pdf , .save_excel, .save_attch", function (e) {
var type = $(this).attr('data-value');
e.preventDefault();
var flag = '0';
$('#new_quote_form *').filter( '.quote_title,.customers,.expiration_date,.linked_with,.prepared_for').each(function () {
if ($(this).hasClass('validate')) {
if ($(this).val() == '' || $(this).val() == null) {
$(this).addClass('error_custom');
$(this).parent().find('.select2-container .select2-selection').addClass('error_custom');
flag = '1';
msg = "There are errors on the page"
} else {
$(this).removeClass('error_custom');
$(this).parent().find('.select2-container .select2-selection').removeClass('error_custom');
}
} else {
$(this).removeClass('error_custom');
$(this).parent().find('.select2-container .select2-selection').removeClass('error_custom');
}
});
// $('#busyloading, .overlay').show();
var formData = new FormData(document.getElementById("new_quote_form"));
formData.append('click',type);
formData.append('status','completed');
var url = "{{ route('admin.quotes.store') }}"
// $.ajaxSetup({headers: {'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')}});
if (flag == '1') {
alertbox('danger','There are errors on page');
return false;
} else {
$.ajax({
url: url,
type: 'POST',
data: formData,
processData: false,
contentType: false,
success: function (res) {
if (res.status == 1000) {
if(type == 'pdf'){
if(res.data){
window.location.href = "{{ url('download-pdf/')}}/?id="+res.data;
// var url = "{{ url('admin/quotes/')}}/"+ value;
}
}
if(type == 'excel'){
if(res.data){
window.location.href = "{{ url('download-pdf/')}}/?id="+res.data;
// var url = "{{ url('admin/quotes/')}}/"+ value;
}
}
if(type == 'save_attch'){
$("#new_quote").modal("hide");
$('#new_email .modal-content').html(res.data);
$('.quote_email').trigger('click');
$('#new_email').modal('show');
}
alertbox('success', res.message);
$("#new_quote").modal("hide");
$('#busyloading, .overlay').fadeOut();
}
if(res.status == 2000) {
$.each(res.errors,function(key,index){
alertbox('danger',index);
});
$('#busyloading, .overlay').fadeOut();
}
if(res.status == 3000) {
$('#busyloading, .overlay').fadeOut();
alertbox('danger',res.errors);
}
},
error: function (res) {
$('#busyloading, .overlay').fadeOut(200);
alertbox('danger',message );
}
});
}
});
$(document).on("click", ".save_draft", function (e) {
e.preventDefault();
// $('#busyloading, .overlay').show();
var value = $(this).val();
var formData = new FormData(document.getElementById("new_quote_form"));
{{-- formData.append('click',type); --}}
formData.append('status','draft');
var url = "{{ route('admin.quotes.store') }}"
// $.ajaxSetup({headers: {'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')}});
$.ajax({
url: url,
type: 'POST',
data: formData,
processData: false,
contentType: false,
success: function (res) {
if (res.status == 1000) {
alertbox('success', res.message);
$("#new_quote").modal("hide");
$('#busyloading, .overlay').fadeOut();
}
if(res.status == 2000) {
$.each(res.errors,function(key,index){
alertbox('danger',index);
});
$('#busyloading, .overlay').fadeOut();
}
if(res.status == 3000) {
$('#busyloading, .overlay').fadeOut();
alertbox('danger',res.errors);
}
},
error: function (res) {
$('#busyloading, .overlay').fadeOut(200);
alertbox('danger',message );
}
});
});
$(document).on("click", ".update_quote, .update_pdf , .update_excel ,.update_attch", function (e) {
e.preventDefault();
var flag = '0';
$('#new_quote_form *').filter( '.quote_title,.customers,.expiration_date,.linked_with,.prepared_for').each(function () {
if ($(this).hasClass('validate')) {
if ($(this).val() == '' || $(this).val() == null) {
$(this).addClass('error_custom');
$(this).parent().find('.select2-container .select2-selection').addClass('error_custom');
flag = '1';
msg = "There are errors on the page"
} else {
$(this).removeClass('error_custom');
$(this).parent().find('.select2-container .select2-selection').removeClass('error_custom');
}
} else {
$(this).removeClass('error_custom');
$(this).parent().find('.select2-container .select2-selection').removeClass('error_custom');
}
});
$('#busyloading, .overlay').show();
var type = $(this).data('val');
var value = $(this).attr('data-id');
var formData = new FormData(document.getElementById("new_quote_form"));
formData.append('_method','PUT');
formData.append('click',type);
formData.append('status','completed');
var url = "{{ url('admin/quotes/')}}/"+ value;
// $.ajaxSetup({headers: {'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')}});
if (flag == '1') {
alertbox('danger','There are errors on page');
return false;
} else {
$.ajax({
url: url,
type: 'POST',
data: formData,
processData: false,
contentType: false,
success: function (res) {
if (res.status == 1000) {
if(type == 'pdf'){
if(res.data){
window.location.href = "{{ url('download-pdf/')}}/?id="+res.data;
// var url = "{{ url('admin/quotes/')}}/"+ value;
}
}
if(type == 'excel'){
if(res.data){
window.location.href = "{{ url('download-pdf/')}}/?id="+res.data;
// var url = "{{ url('admin/quotes/')}}/"+ value;
}
}
if(type == 'save_attch'){
$("#new_quote").modal("hide");
$('#new_email .modal-content').html(res.data);
$('.quote_email').trigger('click');
$('#new_email').modal('show');
}
alertbox('success', res.message);
$("#new_quote").modal("hide");
$('#busyloading, .overlay').fadeOut();
}
if(res.status == 2000) {
$.each(res.errors,function(key,index){
alertbox('danger',index);
});
$('#busyloading, .overlay').fadeOut();
}
if(res.status == 3000) {
$('#busyloading, .overlay').fadeOut();
alertbox('danger',res.errors);
}
},
error: function (res) {
$('#busyloading, .overlay').fadeOut(200);
alertbox('danger','{{ trans("js-messages.DCM103") }}' );
}
});
}
});
$(document).on("click", ".update_draft", function (e) {
e.preventDefault();
$('#busyloading, .overlay').show();
var type = $(this).data('val');
var value = $(this).attr('data-id');
var formData = new FormData(document.getElementById("new_quote_form"));
formData.append('_method','PUT');
formData.append('status','draft');
var url = "{{ url('admin/quotes/')}}/"+ value;
// $.ajaxSetup({headers: {'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')}});
$.ajax({
url: url,
type: 'POST',
data: formData,
processData: false,
contentType: false,
success: function (res) {
if (res.status == 1000) {
if(type == 'pdf'){
if(res.data){
window.location.href = "{{ url('download-pdf/')}}/?id="+res.data;
// var url = "{{ url('admin/quotes/')}}/"+ value;
}
}
if(type == 'excel'){
if(res.data){
window.location.href = "{{ url('download-pdf/')}}/?id="+res.data;
// var url = "{{ url('admin/quotes/')}}/"+ value;
}
}
if(type == 'save_attch'){
$("#new_quote").modal("hide");
$('#new_email .modal-content').html(res.data);
$('.quote_email').trigger('click');
$('#new_email').modal('show');
}
alertbox('success', res.message);
$("#new_quote").modal("hide");
$('#busyloading, .overlay').fadeOut();
}
if(res.status == 2000) {
$.each(res.errors,function(key,index){
alertbox('danger',index);
});
$('#busyloading, .overlay').fadeOut();
}
if(res.status == 3000) {
$('#busyloading, .overlay').fadeOut();
alertbox('danger',res.errors);
}
},
error: function (res) {
$('#busyloading, .overlay').fadeOut(200);
alertbox('danger','{{ trans("js-messages.DCM103") }}' );
}
});
});
$('body').on('input', '.group_value, .quote_discount, .quote_vat', function () {
final_total();
});
function final_total() {
var discount = $('.quote_discount').val();
var vat = $('.quote_vat').val();
if (discount == '') {
discount = 0;
}
if (vat == '') {
vat = 0;
}
// var component_total_amount = 0;
// $('.group_value').each(function (i, v) {
// var group_val = $(this).val();
// var group_name = $(this).parent().parent().find('.select_group').val();
// if (group_val != '' && group_name != '' && group_name != null && typeof group_name != 'undefined') {
// component_total_amount += parseFloat(group_val);
// }
// });
var final_total = parseFloat(parseFloat(vat) - parseFloat(discount))
.toFixed();
$('.total_amount').val(final_total);
}
$('body').on('click', '.discount', function () {
$('.discount_popup').css('display', 'none');
var product = $(this).parent().parent().find('.ledger_account').val();
if (product != '' && product != null) {
$(this).parent().find('.discount_popup').css('display', 'block').find('.flat').focus();
} else {
return false;
}
});
$('body').on('click', '.total_discount', function () {
$('.overall_discount_popup').css('display', 'none');
var subtotal = $('.subtotal').val();
if (subtotal != '' && subtotal != '0') {
$('.overall_discount_popup').css('display', 'block').find('.overall_flat').focus();
} else {
return false;
}
});
$(window).click(function () {
$('.discount_popup').css('display', 'none');
$('.overall_discount_popup').css('display', 'none');
$('.popup_select').slideUp();
// $(".save_invoice").removeClass("disabled");
});
$('body').on('click', '.discount, .total_discount', function (event) {
event.stopPropagation();
});
$('body').on('click', '.discount_popup, .overall_discount_popup', function (event) {
event.stopPropagation();
});
$('body').on('click', '.drop', function (event) {
event.stopPropagation();
});
function calculatePercentage(price, value) {
var perc = "";
if (isNaN(price) || isNaN(value)) {
perc = " ";
} else {
// perc = ((value/price) * 100).toFixed(3);
perc = (value * 100) / price;
//
}
return perc;
}
// price calculation from percentage
function calculatePercentagePrice(price, percentage) {
var rate = "";
if (isNaN(percentage) || isNaN(price)) {
rate = " ";
} else {
rate = (price * percentage) / 100;
}
return rate;
}
var product_id = [];
$(document).on("change", "select[name='ledger_account[]']", function () {
$this = $(this);
var id = $(this).val();
// var name = $( ".ledger_account option:selected" ).text();
var row_id = $(this).parent().parent().parent().parent().data("row-id");
var r_id = $(this).parent().parent().parent().parent().attr("data-new-row");
if (id != '') {
// alert(row_id);
product_id.push(id);
// $("select[name='item']").val('').trigger("change");
// $("input[name='rate']").val('').trigger("change");
// total_amt = (((parseFloat(qty)*parseFloat(rate))-parseFloat(discount_value))) + parseFloat(vat_amt);
$.ajaxSetup({
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
}
});
$.ajax({
type: "post",
url: "{{ route('admin.quotes.get-prod')}}",
data: {id: id ,row_id: row_id, product_id: product_id},
success: function (response) {
if (response.status == 1000) {
$this.parent().parent().parent().find(".selectitem").val(response.data.product_code);
$this.parent().parent().parent().find(".quantity").removeAttr("readonly");
$this.parent().parent().parent().find(".rate").removeAttr("readonly");
// $('.selectitem').select2('data', { id: response.data.product_code, text: response.data.product_code});
$this.parent().parent().parent().find(".rate").val(response.data.purchase_price);
$this.parent().parent().parent().find(".discount").val("0",{{ number_format(0,0) }});
$this.parent().parent().parent().find(".itemamount").val(response.data.purchase_price);
$this.parent().parent().parent().find(".discount").attr("placeholder",{{ number_format(0,0) }});
$this.parent().parent().parent().find(".discount_popup").attr("rate",parseFloat(response.data.purchase_price));
// $this.parent().parent().parent().find(".productname").val(name);
$this.parent().parent().parent().find("select[name='tax[]']").html(response.option);
$this.parent().parent().parent().find("select[name='tax[]']").attr("disabled", false);
$this.parent().parent().parent().parent().attr("data-new-row","1");
$('.enter_discount').trigger('input').val('0');
if(r_id == 0) {
$('.products_wrap').append(response.html);
}
if (response.status == 3000) {
alertbox('danger', response.message);
}
}
},
error: function (result) {
$('.alert_box').fadeIn().delay(2000).fadeOut(200).html('Server not found');
// $(".save_customer").removeClass("disabled");
}
});
}
})
// Discount price enter
$(document).on('input', '.enter_discount', function () {
// $(".save_invoice").addClass("disabled");
@php ($number_format = $decimal_point)
var discount_value = $(this).val();
var rate = $(this).parent().parent().parent().parent().find('input.rate').val();
if(rate == ""){
rate = 0;
}
var qty = $(this).parent().parent().parent().parent().find('input.quantity').val();
if(qty == ""){
qty = 0;
}
var total_rate = parseFloat(rate) * parseFloat(qty);
// if(discount_value >= total_rate){
// alertbox('danger', 'Discount cannot exceed the product price');
// return false;
// }
var percentage = calculatePercentage(total_rate, discount_value);
$(this).parent().parent().find(".enter_percentage").val(percentage);
$(this).parent().parent().parent().find('input[name="discount[]"]').val(discount_value);
var rate = $(this).parent().parent().parent().parent().find('input.rate').val();
var tax = $(this).parent().parent().parent().parent().find('select.tax').val();
var vat_amt = 0;
var total_amt = 0;
if(discount_value == ''){
discount_value = 0;
}
if(tax != 0){
vat_amt = (tax/100) * ((parseFloat(qty)*parseFloat(rate))-parseFloat(discount_value));
vat_amt = parseFloat(vat_amt).toFixed({{ $number_format }});
}
total_amt = (((parseFloat(qty)*parseFloat(rate))-parseFloat(discount_value))) + parseFloat(vat_amt);
$(this).parent().parent().parent().parent().find('input.tax_amount').val(vat_amt);
// $(this).parent().parent().parent().parent().find('div.tax_amount_show').text(vat_amt);
$(this).parent().parent().parent().parent().find('input.itemamount').val(total_amt);
// $(this).parent().parent().parent().parent().find('div.itemamount_show').text(parseFloat(total_amt).toFixed({{ $number_format }}));
//Get total discount
var total_discount = 0;
$("input[name='discount[]']").map(function(){
var discount_amount = $(this).val();
discount_amount = discount_amount.split(',').join('');
if(discount_amount != ''){
total_discount= parseFloat(total_discount) + parseFloat(discount_amount);
}
});
$(".total_discount").val(parseFloat(total_discount).toFixed({{ $number_format }}));
$(".total_discount_show").text(parseFloat(total_discount).toFixed({{ $number_format }}));
//Get total amount
var total_amount = 0;
$("input[name='amount[]']").map(function(){
var total = $(this).val();
total = total.split(',').join('');
if(total != ''){
total_amount= parseFloat(total_amount) + parseFloat(total);
}
});
$(".real_amount").val(parseFloat(total_amount).toFixed({{ $number_format }}));
$(".net_total_show").text(parseFloat(total_amount).toFixed({{ $number_format }}));
total_amount =decimalRounding(total_amount);
$(".net_total").val(parseFloat(total_amount).toFixed({{ $number_format }}));
$(".net_total_show").text(parseFloat(total_amount).toFixed({{ $number_format}}));
//Tax amount
var total_tax = 0;
$("input[name='tax_amount[]']").map(function(){
var tax_amount = $(this).val();
tax_amount = tax_amount.split(',').join('');
if(tax_amount != ''){
total_tax= parseFloat(total_tax) + parseFloat(tax_amount);
}
});
$(".total_tax_amount").val(parseFloat(total_tax).toFixed({{ $number_format }}));
$(".total_tax_amount_show").text(parseFloat(total_tax).toFixed({{ $number_format }}));
var sub_total = (parseFloat($(".real_amount").val()) - parseFloat($(".total_tax_amount").val())) + parseFloat($(".total_discount").val());
$(".subtotal").val(parseFloat(sub_total).toFixed({{ $number_format }}));
$(".subtotal_show").text(parseFloat(sub_total).toFixed({{ $number_format }}));
});
//Discount percentage enter
$(document).on('input', '.enter_percentage', function () {
@php ($number_format = $decimal_point)
var discount_percentage = $(this).val();
if(discount_percentage == "" || discount_percentage == 0){
discount_percentage = 0;
}
var rate = $(this).parent().parent().parent().parent().find('input.rate').val();
if(rate == ""){
rate = 0;
}
var qty = $(this).parent().parent().parent().parent().find('input.quantity').val();
if(qty == ""){
qty = 0;
}
var total_rate = parseFloat(rate) * parseFloat(qty);
if(discount_percentage == 0){
var price = 0;
} else{
var price = calculatePercentagePrice(total_rate, discount_percentage);
}
if(price >= total_rate){
alertbox('danger','Discount cannot exceed product price' );
return false;
}
$(this).parent().parent().find(".enter_discount").val(parseFloat(price).toFixed({{ $number_format }}));
$(this).parent().parent().parent().find('input[name="discount[]"]').val(parseFloat(price).toFixed({{ $number_format }}));
discount_value = parseFloat(price).toFixed({{ $number_format }});
// var rate = $(this).parent().parent().parent().parent().find('input.rate').val();
var tax = $(this).parent().parent().parent().parent().find('select.tax').val();
var vat_amt = 0;
var total_amt = 0;
if(discount_value == ''){
discount_value = 0;
}
if(tax != 0){
vat_amt = (tax/100) * ((parseFloat(qty)*parseFloat(rate))-parseFloat(discount_value));
vat_amt = parseFloat(vat_amt).toFixed({{ $number_format }});
}
total_amt = (((parseFloat(qty)*parseFloat(rate))-parseFloat(discount_value))) + vat_amt;
$(this).parent().parent().parent().parent().find('input.tax_amount').val(vat_amt);
// $(this).parent().parent().parent().parent().find('div.tax_amount_show').text(vat_amt);
$(this).parent().parent().parent().parent().find('input.itemamount').val(total_amt);
// $(this).parent().parent().parent().parent().find('div.itemamount_show').text(parseFloat(total_amt).toFixed({{ $number_format }}));
//Get total discount
var total_discount = 0;
$("input[name='discount[]']").map(function(){
var discount_amount = $(this).val();
discount_amount = discount_amount.split(',').join('');
if(discount_amount != ''){
total_discount= parseFloat(total_discount) + parseFloat(discount_amount);
}
});
$(".total_discount").val(parseFloat(total_discount).toFixed({{ $number_format }}));
$(".total_discount_show").text(parseFloat(total_discount).toFixed({{ $number_format }}));
//Get total amount
var total_amount = 0;
$("input[name='amount[]']").map(function(){
var total = $(this).val();
total = total.split(',').join('');
if(total != ''){
total_amount= parseFloat(total_amount) + parseFloat(total);
}
});
$(".real_amount").val(parseFloat(total_amount).toFixed({{ $number_format }}));
total_amount =decimalRounding(total_amount);
$(".net_total").val(parseFloat(total_amount).toFixed({{ $number_format }}));
$(".net_total_show").text(parseFloat(total_amount).toFixed({{ $number_format }}));
//Tax amount
var total_tax = 0;
$("input[name='tax_amount[]']").map(function(){
var tax_amount = $(this).val();
tax_amount = tax_amount.split(',').join('');
if(tax_amount != ''){
total_tax= parseFloat(total_tax) + parseFloat(tax_amount);
}
});
$(".total_tax_amount").val(parseFloat(total_tax).toFixed({{ $number_format }}));
$(".total_tax_amount_show").text(parseFloat(total_tax).toFixed({{ $number_format }}));
var sub_total = (parseFloat($(".real_amount").val()) - parseFloat($(".total_tax_amount").val())) + parseFloat($(".total_discount").val());
$(".subtotal").val(parseFloat(sub_total).toFixed({{ $number_format }}));
$(".subtotal_show").text(parseFloat(sub_total).toFixed({{ $number_format }}));
var value = parseFloat(price).toFixed({{ $number_format }});
var row_id = $(this).attr("id");
});
$(document).on('input', 'input[name="quantity[]"]', function () {
$(".save_invoice").addClass("disabled");
@php ($number_format = $decimal_point)
var value = $(this).val();
var row_id = $(this).attr("id");
var rate = $(this).parent().parent().find('input.rate').val();
if(rate == ""){
rate = 0;
}
var discount = $(this).parent().parent().find('input.discount').val();
discount = 0;
$(this).parent().parent().find('input.discount').val(discount);
$(this).parent().parent().find('input.enter_discount').val(discount);
$(this).parent().parent().find('input.enter_percentage').val(discount);
var tax = $(this).parent().parent().find('select.tax').val();
if(value == ""){
value ="0";
}
if(value.length <=3){
var vat_amt = 0;
var total_amt = 0;
if(discount == ''){
discount = 0;
}
if(tax != 0){
vat_amt = (tax/100) * ((parseFloat(value)*parseFloat(rate))-parseFloat(discount));
vat_amt = parseFloat(vat_amt).toFixed({{ $number_format }});
}
total_amt = (((parseFloat(value)*parseFloat(rate))-parseFloat(discount))) + parseFloat(vat_amt);
total_amt = parseFloat(total_amt).toFixed({{ $number_format }});
$(this).parent().parent().find('input.tax_amount').val(vat_amt);
// $(this).parent().parent().find('div.tax_amount_show').text(vat_amt);
$(this).parent().parent().find('input.itemamount').val(total_amt);
// $(this).parent().parent().find('div.itemamount_show').text(total_amt);
//Get total discount
var total_discount = 0;
$("input[name='discount[]']").map(function(){
var discount_amount = $(this).val();
discount_amount = discount_amount.split(',').join('');
if(discount_amount != ''){
$(".total_discount_show").text(parseFloat(total_discount).toFixed({{ $number_format }}));
total_discount= parseFloat(total_discount) + parseFloat(discount_amount);
}
});
$(".total_discount").val(parseFloat(total_discount).toFixed({{ $number_format }}));
$(".total_discount_show").text(parseFloat(total_discount).toFixed({{ $number_format }}));
//Get total amount
var total_amount = 0;
$("input[name='amount[]']").map(function(){
var total = $(this).val();
total = total.split(',').join('');
if(total != ''){
total_amount= parseFloat(total_amount) + parseFloat(total);
}
});
$(".real_amount").val(parseFloat(total_amount).toFixed({{ $number_format }}));
// (".net_total").val(parseFloat(total_amount).toFixed({{ $number_format }}));
total_amount =decimalRounding(total_amount);
$(".net_total").val(parseFloat(total_amount).toFixed({{ $number_format }}));
$(".net_total_show").text(parseFloat(total_amount).toFixed({{ $number_format}}));
//Tax amount
var total_tax = 0;
$("input[name='tax_amount[]']").map(function(){
var tax_amount = $(this).val();
tax_amount = tax_amount.split(',').join('');
if(tax_amount != ''){
total_tax= parseFloat(total_tax) + parseFloat(tax_amount);
}
});
$(".total_tax_amount").val(parseFloat(total_tax).toFixed({{ $number_format }}));
$(".total_tax_amount_show").text(parseFloat(total_tax).toFixed({{ $number_format }}));
var sub_total = (parseFloat($(".real_amount").val()) - parseFloat($(".total_tax_amount").val())) + parseFloat($(".total_discount").val());
$(".subtotal").val(parseFloat(sub_total).toFixed({{ $number_format }}));
$(".subtotal_show").text(parseFloat(sub_total).toFixed({{ $number_format }}));
}
});
$(document).on('change', '#new_quote_form.linked_with', function () {
var related_to = $(this).val();
if (related_to == 'General') {
$('.prepared_for').removeClass('validate');
$('.prepared_for').removeClass('error_custom');
$('.prepared_for').parent().parent().parent().hide();
return false;
} else {
$('.prepared_for').parent().parent().parent().show();
var formData = new FormData();
formData.append('related_to', related_to);
$.ajax({
type: 'POST',
url: "{{route('admin.quotes.linkedvalue')}}",
data: formData,
contentType: false,
processData: false,
success: function (response) {
var result = response;
if (result.status == 1000) {
var linked_with = '';
if (result.data.length > 0) {
$.each(result.data, function (i, v) {
var linked_unique = (v.linked_unique !== null) ? v
.linked_unique : '';
var name = (v.linked_name !== null) ? v.linked_name : '';
if (name != '' && linked_unique != '') {
name = name + ' (' + linked_unique + ')';
} else if (name == '' && linked_unique != '') {
name = linked_unique;
} else {
name = name;
}
linked_with += '';
});
}
$('.prepared_for').html(linked_with);
$('.linked_flag').val(1);
$('.linked_with').parent().find('.spin_icon').hide();
} else {
alertbox('danger', '{{ trans("js-messages.DCM108") }}');
}
$('#busyloading').hide();
return false;
}
});
}
});
//Change tax
$(document).on('change','select[name="tax[]"]',function() {
$(".save_invoice").addClass("disabled");
@php ($number_format = $decimal_point)
var value = $(this).val(); //Vat rate
var row_id = $(this).attr("id");
var qty = $(this).parent().parent().find('input.quantity').val();
var discount = $(this).parent().parent().find('input.discount').val();
var rate = $(this).parent().parent().find('input.rate').val();
if(rate == ""){
rate = 0;
}
if(qty == ""){
qty = 0;
}
if(discount == ''){
discount = 0;
}
var vat_amt = 0;
var total_amt = 0;
if(value != 0){
vat_amt = (value/100) * ((parseFloat(qty)*parseFloat(rate))-parseFloat(discount));
vat_amt = parseFloat(vat_amt).toFixed({{ $number_format }});
}
total_amt = (((parseFloat(qty)*parseFloat(rate))-parseFloat(discount))) + parseFloat(vat_amt);
total_amt = parseFloat(total_amt).toFixed({{ $number_format }});
$(this).parent().parent().find('input.tax_amount').val(vat_amt);
// $(this).parent().parent().find('div.tax_amount_show').text(vat_amt);
$(this).parent().parent().find('input.itemamount').val(total_amt);
// $(this).parent().parent().find('div.itemamount_show').text(total_amt);
//Get total discount
var total_discount = 0;
$("input[name='discount[]']").map(function(){
var discount_amount = $(this).val();
discount_amount = discount_amount.split(',').join('');
if(discount_amount != ''){
total_discount= parseFloat(total_discount) + parseFloat(discount_amount);
}
});
$(".total_discount").val(parseFloat(total_discount).toFixed({{ $number_format }}));
$(".total_discount_show").text(parseFloat(total_discount).toFixed({{ $number_format }}));
//Get total amount
var total_amount = 0;
$("input[name='amount[]']").map(function(){
var total = $(this).val();
total = total.split(',').join('');
if(total != ''){
total_amount= parseFloat(total_amount) + parseFloat(total);
}
});
$(".real_amount").val(parseFloat(total_amount).toFixed({{ $number_format }}));
total_amount =decimalRounding(total_amount);
$(".net_total").val(parseFloat(total_amount).toFixed({{ $number_format }}));
$(".net_total_show").text(parseFloat(total_amount).toFixed({{ $number_format }}));
//Tax amount
var total_tax = 0;
$("input[name='tax_amount[]']").map(function(){
var tax_amount = $(this).val();
tax_amount = tax_amount.split(',').join('');
if(tax_amount != ''){
total_tax= parseFloat(total_tax) + parseFloat(tax_amount);
}
});
$(".total_tax_amount").val(parseFloat(total_tax).toFixed({{ $number_format }}));
$(".total_tax_amount_show").text(parseFloat(total_tax).toFixed({{ $number_format }}));
var sub_total = (parseFloat($(".real_amount").val()) - parseFloat($(".total_tax_amount").val())) + parseFloat($(".total_discount").val());
$(".subtotal").val(parseFloat(sub_total).toFixed({{ $number_format }}));
$(".subtotal_show").text(parseFloat(sub_total).toFixed({{ $number_format }}));
});
//Change price/rate
$(document).on('input', 'input[name="rate[]"]', function () {
var price = $(this).val();
$(this).parent().parent().parent().find(".discount_popup").attr("rate", price);
});
function checkLengthQty(t) {
var fieldLength = t.value.length;
//want 3 number of character
if (fieldLength <= 3) {
return true;
} else {
var str = t.value;
str = str.substring(0, str.length - 1);
t.value = str;
}
}
$(document).on('input', 'input[name="rate[]"]', function () {
// $(".save_invoice").addClass("disabled");
var value = $(this).val(); //Price
@php ($number_format = $decimal_point)
if(value == ""){
value = 0;
} else{
var flag = validateRetailprice(value);
if(flag == 1){
$(this).val(value.slice(0,-1));
alertbox('danger', '{{ trans("js-messages.DCM108") }}');
return false;
}
}
var row_id = $(this).attr("id");
var qty = $(this).parent().parent().find('input.quantity').val();
if(qty == ""){
qty = 0;
}
var discount = $(this).parent().parent().find('input.discount').val();
discount = 0;
$(this).parent().parent().find('input.discount').val(parseFloat(discount).toFixed({{ $number_format }}));
$(this).parent().parent().find('input.enter_discount').val(parseFloat(discount).toFixed({{ $number_format }}));
$(this).parent().parent().find('input.enter_percentage').val(parseFloat(discount).toFixed({{ $number_format }}));
var tax = $(this).parent().parent().find('select.tax').val();
var vat_amt = 0;
var total_amt = 0;
if(tax != 0){
vat_amt = (tax/100) * ((parseFloat(qty)*parseFloat(value))-parseFloat(discount));
vat_amt = parseFloat(vat_amt).toFixed({{ $number_format }});
}
total_amt = (((parseFloat(qty)*parseFloat(value))-parseFloat(discount))) + parseFloat(vat_amt);
total_amt = total_amt.toFixed(2);
$(this).parent().parent().find('input.tax_amount').val(parseFloat(vat_amt).toFixed({{ $number_format }}));
// $(this).parent().parent().find('div.tax_amount_show').text(parseFloat(vat_amt).toFixed({{ $number_format }}));
$(this).parent().parent().find('input.itemamount').val(parseFloat(total_amt).toFixed({{ $number_format }}));
// $(this).parent().parent().find('div.itemamount_show').text(parseFloat(total_amt).toFixed({{ $number_format }}));
//Get total discount
var total_discount = 0;
$("input[name='discount[]']").map(function(){
var discount_amount = $(this).val();
discount_amount = discount_amount.split(',').join('');
if(discount_amount != ''){
total_discount= parseFloat(total_discount) + parseFloat(discount_amount);
}
});
$(".total_discount").val(parseFloat(total_discount).toFixed({{ $number_format }}));
$(".total_discount_show").text(parseFloat(total_discount).toFixed({{ $number_format }}));
//Get total amount
var total_amount = 0;
$("input[name='amount[]']").map(function(){
var total = $(this).val();
total = total.split(',').join('');
if(total != ''){
total_amount= parseFloat(total_amount) + parseFloat(total);
}
});
$(".real_amount").val(parseFloat(total_amount).toFixed({{ $number_format }}));
total_amount =decimalRounding(total_amount);
$(".net_total").val(parseFloat(total_amount).toFixed({{ $number_format }}));
$(".net_total_show").text(parseFloat(total_amount).toFixed({{ $number_format }}));
//Tax amount
var total_tax = 0;
$("input[name='tax_amount[]']").map(function(){
var tax_amount = $(this).val();
tax_amount = tax_amount.split(',').join('');
if(tax_amount != ''){
total_tax= parseFloat(total_tax) + parseFloat(tax_amount);
}
});
$(".total_tax_amount").val(parseFloat(total_tax).toFixed({{ $number_format }}));
$(".total_tax_amount_show").text(parseFloat(total_tax).toFixed({{ $number_format }}));
var sub_total = (parseFloat($(".real_amount").val()) - parseFloat($(".total_tax_amount").val())) + parseFloat($(".total_discount").val());
$(".subtotal").val(parseFloat(sub_total).toFixed({{ $number_format }}));
$(".subtotal_show").text(parseFloat(sub_total).toFixed({{ $number_format }}));
});
// Sweet Alert
$(document).ready(function () {
$(document).on('click', '.sweet-overlay', function () {
$('#sweetalert_wrap').show();
});
$(document).on('click', '.cancel', function () {
$('#sweetalert_wrap').hide();
});
$(document).on('click', '.confirm', function () {
$("#new_quote").modal("hide");
$('#sweetalert_wrap').hide();
});
});
function decimalRounding(number){
var roundtype="{{ roundingType() }}"
var nearest="{{ roundingNearest() }}"
if(roundtype != '' && nearest != ''){
if((number % nearest) !== 0.00){
if(roundtype =="round_down"){
var numberr= number -(number % nearest);
return numberr;
}
if(roundtype =="round_up"){
return number + (nearest - (number % nearest));
}
if(roundtype =="nearest")
{
var tes= (number % nearest);
if(tes > (nearest /2)){
return number + (nearest - (number % nearest));
}else{
return number -(number % nearest);
}
}
}else{
return number
}
}else{
return number
}
}
//retail price validation
function validateRetailprice(price) {
$("#product_retail_price").removeClass('error_custom');
flag = 0;
if (price == '' || price == 0 || price < 0) {
flag = 1;
$("#product_retail_price").addClass('error_custom');
}
if (price % 1 === 0) { //IS Int
var val = Math.floor(price);
if (val.toString().length > 4) {
flag = 1;
$("#product_retail_price").addClass('error_custom');
}
} else { //Is Float
if (price.length > 9) {
flag = 1;
$("#product_retail_price").addClass('error_custom');
}
}
return flag;
}
// Populate opportunity based on customer
$(document).on('change', '.related_Opportunity', function () {
var value = $(this).val();
var formData = new FormData();
formData.append('related_to', value);
$.ajax({
type: 'POST',
url: "{{route('admin.quotes.relatedOpportunity')}}",
data: formData,
contentType: false,
processData: false,
success: function (response) {
var result = response;
if (result.status == 1000) {
var linked_with = '';
if (result.data.length > 0) {
$.each(result.data, function (i, v) {
var linked_unique = (v.linked_unique !== null) ? v
.linked_unique : '';
var name = (v.linked_name !== null) ? v.linked_name : '';
if (name != '' && linked_unique != '') {
name = name + ' (' + linked_unique + ')';
} else if (name == '' && linked_unique != '') {
name = linked_unique;
} else {
name = name;
}
linked_with += '';
});
}
$('.linked_with').parent().removeAttr("style");
$(".linked_with").select2("val",'');
$('.linked_with').html(linked_with);
$('.related_Opportunity').parent().find('.spin_icon').hide();
} else {
alertbox('danger', '{{ trans("js-messages.DCM108") }}');
}
$('#busyloading').hide();
return false;
}
});
});
// CHANGE BUTTON
$('body').on('click', '.drop', function () {
// $('.popup_select_quote').slideToggle();
$('.popup_select_bottom').slideToggle();
});
// $(window).click(function () {
// $('.popup_select_quote').slideUp();
// $('.popup_select_bottom').slideUp();
// });
$('body').on('click', '.drop', function (event) {
event.stopPropagation();
});
$('body').on('click','.popup_select_quote li', function (e) {
e.preventDefault();
$('.actions_multi_options ').hide();
$('.actions_multi_options').attr('id', '');
if($(this).hasClass('save_as_pdf_button')) {
$('.pdf_button_show').attr('id', 'active_option').show().removeClass('hide');
}
else if($(this).hasClass('save_as_draft_button')) {
$('.draft_button_show').attr('id', 'active_option').show().removeClass('hide');
} else if($(this).hasClass('save_as_new_button')) {
$('.save_new').attr('id', 'active_option').show().removeClass('hide');
}
else if($(this).hasClass('save_as_excel_button')) {
$('.excel_button_show').attr('id', 'active_option').show().removeClass('hide');
} else if($(this).hasClass('save_as_attch_button')){
$('.attch_button_show').attr('id', 'active_option').show().removeClass('hide');
}
else {
$('.quote_button_show').attr('id', 'active_option').show().removeClass('hide');
}
// var btn_select = $('#bot li').attr('value');
// var btn_select = $(this).val('value');
// var btn_select = $(this).attr('data-value'); // = 9
// console.log(btn_select);
// $('.actions_multi_options ').hide();
// $('.actions_multi_options').attr('id', '');
$('.popup_select_quote, .popup_select_bottom ').slideUp();
// Task reasons box open // for normal drop down it will b in condition
});
function downloadFile(response) {
var blob = new Blob([response], {type: 'application/pdf'})
var url = URL.createObjectURL(blob);
location.assign(url);
}
$('body').on('click', '.quote_email', function (e) {
// $(function (e) {
e.preventDefault();
var quick_text = $(this).text();
var object_name = $('.middle_overview .object_name:first').text();
$('#new_mail .pop_heading').html('New Email');
$('.note-editable').empty();
var type = $(this).attr('type');
var message = $(this).attr('message');
var title = $(this).attr('title');
var uuid = $('.uuid').val();
// console.log(uuid);
if (typeof type != 'undefined') {
// For pipeline
if (typeof uuid == 'undefined') {
uuid = $(this).attr('uuid');
}
$('#newMail').find('.view_type').remove();
$('#newMail').append('');
}
var content_height = $('#new_mail').height();
var summer_note_height = content_height - 500;
// console.log(summer_note_height);
$('.email_content').height(summer_note_height);
$('.new_attachments').css('min-height', 20);
$('.new_attachments').css('max-height', 230);
$('#busyloading').show();
$('.emails_to').val('');
$('.cc_input').val('');
$('.bcc_input').val('');
$('.subject').val('');
$('.email_body').text('').val('');
$('.summernote').summernote({'height': summer_note_height});
$('#busyloading').hide();
$('.max-size').remove();
});
$('body').on('click', '.send_quote_email', function (e) {
e.preventDefault();
var flag = '0';
var msg = '';
var testEmail = /^[A-Z0-9._%+-]+@([A-Z0-9-]+\.)+[A-Z]{2,4}$/i;
$('#new_quote_email #new_mail *').filter(':input').each(function () {
if ($(this).hasClass('validate')) {
if ($(this).val() == '') {
$(this).parent().parent().parent().addClass('error_custom_compose');
flag = '1';
msg = 'There are errors on page';
} else {
$(this).parent().parent().parent().removeClass('error_custom_compose');
/*FOR EMAIL VALIDATION*/
if (($(this).is('.email'))) {
if (testEmail.test($(this).val())) {
$(this).removeClass('error_custom_compose');
} else {
$(this).addClass('error_custom_compose');
flag = '1';
msg = 'Invalid email address';
}
}
/*FOR EMAIL VALIDATION*/
}
}
if ($('.note-editable').html() == '') {
$('.modal-body').addClass('error_custom_compose');
flag = '1';
msg = 'email body required';
} else {
$('.modal-body').removeClass('error_custom_compose');
}
});
var emails_cc = $('.emails_cc').val();
var emails_bcc = $('.emails_bcc').val();
var emails_to = $('.emails_to').val();
//To emails validation
if (emails_to != '') {
var array_to = emails_to.split(',');
if (array_to.length > 1) {
$.each(array_to, function (i, email) {
email = $.trim(email);
if (testEmail.test(email)) {
//$('.emails_to').removeClass('error_custom');
} else {
$('.emails_to').addClass('error_custom_compose');
flag = '1';
msg = 'Invalid email address';
}
});
} else {
emails_to = $.trim(emails_to);
if (testEmail.test(emails_to)) {
$('.emails_to').removeClass('error_custom_compose');
} else {
$('.emails_to').addClass('error_custom_compose');
alert(1);
flag = '1';
msg = 'Invalid email address';
}
}
}
//CC emails validation if entered
if (emails_cc != '') {
var array_cc = emails_cc.split(',');
if (array_cc.length > 1) {
$.each(array_cc, function (i, email) {
email = $.trim(email);
if (testEmail.test(email)) {
//$('.emails_cc').removeClass('error_custom');
} else {
$('.emails_cc').addClass('error_custom_compose');
flag = '1';
msg = 'Invalid email address';
}
});
} else {
emails_cc = $.trim(emails_cc);
if (testEmail.test(emails_cc)) {
$('.emails_cc').removeClass('error_custom_compose');
} else {
$('.emails_cc').addClass('error_custom_compose');
flag = '1';
msg = 'Invalid email address';
}
}
}
//BCC emails validation if entered
if (emails_bcc != '') {
var array_bcc = emails_bcc.split(',');
if (array_bcc.length > 1) {
$.each(array_bcc, function (i, email) {
email = $.trim(email);
if (testEmail.test(email)) {
//$('.emails_bcc').removeClass('error_custom');
} else {
$('.emails_bcc').addClass('error_custom_compose');
flag = '1';
msg = 'Invalid email address';
}
});
} else {
emails_bcc = $.trim(emails_bcc);
if (testEmail.test(emails_bcc)) {
$('.emails_bcc').removeClass('error_custom_compose');
} else {
$('.emails_bcc').addClass('error_custom_compose');
flag = '1';
msg = 'Invalid email address';
}
}
}
if (flag == '1') {
alertbox('danger', msg);
return false;
} else {
$('#busyloading').show();
var formData = new FormData(document.getElementById("new_mail"));
var url = "{{ route('admin.quotes.email') }}";
$.ajax({
url: url,
type: 'POST',
data: formData,
processData: false, // tell jQuery not to process the data
contentType: false, // tell jQuery not to set contentType
success: function (res) {
if (res.status == 1000) {
alertbox('success', res.message);
$('#new_email').modal("hide");
$("#new_quote").modal("hide");
$('#busyloading, .overlay').fadeOut();
}
if(res.status == 2000) {
$.each(res.errors,function(key,index){
alertbox('danger',index);
});
$('#busyloading, .overlay').fadeOut();
}
if(res.status == 3000) {
$('#busyloading, .overlay').fadeOut();
alertbox('danger',res.errors);
}
},
error: function (res) {
$('#busyloading, .overlay').fadeOut(200);
alertbox('danger','{{ trans("js-messages.DCM103") }}' );
}
});
}
});
$(document).ready(function(){
$('.close, .dismiss').click(function () {
$('#sweetalert_wrap').show();
$('.confirm').addClass('hide_modal');
});
});
$(document).on("click", ".previewIcon", function (e) {
e.preventDefault();
var flag = '0';
$('#new_quote_form *').filter( '.quote_title,.customers,.expiration_date,.linked_with,.prepared_for').each(function () {
if ($(this).hasClass('validate')) {
if ($(this).val() == '' || $(this).val() == null) {
$(this).addClass('error_custom');
$(this).parent().find('.select2-container .select2-selection').addClass('error_custom');
flag = '1';
} else {
$(this).removeClass('error_custom');
$(this).parent().find('.select2-container .select2-selection').removeClass('error_custom');
}
} else {
$(this).removeClass('error_custom');
$(this).parent().find('.select2-container .select2-selection').removeClass('error_custom');
}
});
if (flag == '1') {
alertbox('danger','There are errors on page');
return false;
}
var formData = new FormData(document.getElementById("new_quote_form"));
var url = "{{ route('admin.quotes.preview') }}"
// $.ajaxSetup({headers: {'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')}});
$.ajax({
url: url,
type: 'POST',
data: formData,
processData: false,
contentType: false,
success: function (res) {
if (res.status == 1000) {
$('#preview_quote .modal-content').html(res.data);
$('#preview_quote').modal("show");
$('#busyloading, .overlay').fadeOut();
}
if(res.status == 2000) {
$.each(res.errors,function(key,index){
alertbox('danger',index);
});
$('#busyloading, .overlay').fadeOut();
}
if(res.status == 3000) {
$('#busyloading, .overlay').fadeOut();
alertbox('warning',res.errors);
}
},
error: function (res) {
$('#busyloading, .overlay').fadeOut(200);
alertbox('danger',message );
}
});
});
$(document).ready(function() {
$(window).keydown(function(event){
if(event.keyCode == 13) {
event.preventDefault();
return false;
}
});
});