| Server IP : 14.225.204.176 / Your IP : 216.73.216.252 Web Server : nginx/1.24.0 System : Linux nodejs-ybgk 6.8.0-40-generic #40-Ubuntu SMP PREEMPT_DYNAMIC Fri Jul 5 10:34:03 UTC 2024 x86_64 User : root ( 0) PHP Version : 8.1.34 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : OFF Directory : /var/www/html/php/thanhphuong/resources/views/quotation/ |
Upload File : |
@extends('layout.main') @section('content')
@if(session()->has('not_permitted'))
<div class="alert alert-danger alert-dismissible text-center"><button type="button" class="close" data-dismiss="alert" aria-label="Close"><span aria-hidden="true">×</span></button>{{ session()->get('not_permitted') }}</div>
@endif
<section class="forms">
<div class="container-fluid">
<div class="row">
<div class="col-md-12">
<div class="card">
<div class="card-header d-flex align-items-center">
<h4>{{trans('file.Add Quotation')}}</h4>
</div>
<div class="card-body">
<p class="italic"><small>{{trans('file.The field labels marked with * are required input fields')}}.</small></p>
{!! Form::open(['route' => 'quotations.store', 'method' => 'post', 'files' => true, 'id' => 'quotation-form']) !!}
<div class="row">
<div class="col-md-12">
<div class="row">
<div class="col-md-6">
<div class="form-group">
<label>{{trans('file.Biller')}} *</label>
<select required name="biller_id" class="selectpicker form-control" data-live-search="true" id="biller-id" data-live-search-style="begins" title="Select Biller...">
@foreach($lims_biller_list as $biller)
<option value="{{$biller->id}}">{{$biller->name . ' (' . $biller->company_name . ')'}}</option>
@endforeach
</select>
</div>
</div>
<div class="col-md-6">
<div class="form-group">
<label>{{trans('file.Supplier')}}</label>
<select name="supplier_id" class="selectpicker form-control" data-live-search="true" id="supplier-id" data-live-search-style="begins" title="Select Supplier...">
@foreach($lims_supplier_list as $supplier)
<option value="{{$supplier->id}}">{{$supplier->name . ' (' . $supplier->company_name . ')'}}</option>
@endforeach
</select>
</div>
</div>
</div>
<div class="row">
<div class="col-md-6">
<div class="form-group">
<label>{{trans('file.customer')}} *</label>
<select id="customer_id" name="customer_id" required class="selectpicker form-control" data-live-search="true" id="customer-id" data-live-search-style="begins" title="Select customer...">
@foreach($lims_customer_list as $customer)
<option value="{{$customer->id}}">{{$customer->name . ' (' . $customer->phone_number . ')'}}</option>
@endforeach
</select>
</div>
</div>
<div class="col-md-6">
<div class="form-group">
<label>{{trans('file.Warehouse')}} *</label>
<select id="warehouse_id" name="warehouse_id" required class="selectpicker form-control" data-live-search="true" data-live-search-style="begins" title="Select warehouse...">
@foreach($lims_warehouse_list as $warehouse)
<option value="{{$warehouse->id}}">{{$warehouse->name}}</option>
@endforeach
</select>
</div>
</div>
<div class="col-md-12 mt-2">
<label>{{trans('file.Select Product')}}</label>
<div class="search-box input-group">
<button class="btn btn-secondary"><i class="fa fa-barcode"></i></button>
<input type="text" name="product_code_name" id="lims_productcodeSearch" placeholder="Please type product code and select..." class="form-control" />
</div>
</div>
</div>
<div class="row mt-5">
<div class="col-md-12">
<h5>{{trans('file.Order Table')}} *</h5>
<div class="table-responsive mt-3">
<table id="myTable" class="table table-hover order-list">
<thead>
<tr>
<th>{{trans('file.name')}}</th>
<th>{{trans('file.Code')}}</th>
<th>{{trans('file.Quantity')}}</th>
<th>{{trans('file.Net Unit Price')}}</th>
<th>{{trans('file.Discount')}}</th>
<th>{{trans('file.Tax')}}</th>
<th>{{trans('file.Subtotal')}}</th>
<th><i class="dripicons-trash"></i></th>
</tr>
</thead>
<tbody>
</tbody>
<tfoot class="tfoot active">
<th colspan="2">{{trans('file.Total')}}</th>
<th id="total-qty">0</th>
<th></th>
<th id="total-discount">0</th>
<th id="total-tax">0</th>
<th id="total">0</th>
<th><i class="dripicons-trash"></i></th>
</tfoot>
</table>
</div>
</div>
</div>
<div class="row">
<div class="col-md-2">
<div class="form-group">
<input type="hidden" name="total_qty" />
</div>
</div>
<div class="col-md-2">
<div class="form-group">
<input type="hidden" name="total_discount" />
</div>
</div>
<div class="col-md-2">
<div class="form-group">
<input type="hidden" name="total_tax" />
</div>
</div>
<div class="col-md-2">
<div class="form-group">
<input type="hidden" name="total_price" />
</div>
</div>
<div class="col-md-2">
<div class="form-group">
<input type="hidden" name="item" />
<input type="hidden" name="order_tax" />
</div>
</div>
<div class="col-md-2">
<div class="form-group">
<input type="hidden" name="grand_total" />
</div>
</div>
</div>
<div class="row">
<div class="col-md-4">
<div class="form-group">
<label>{{trans('file.Order Tax')}}</label>
<select class="form-control" name="order_tax_rate">
<option value="0">{{trans('file.No Tax')}}</option>
@foreach($lims_tax_list as $tax)
<option value="{{$tax->rate}}">{{$tax->name}}</option>
@endforeach
</select>
</div>
</div>
<div class="col-md-4">
<div class="form-group">
<label>{{trans('file.Order Discount')}}</label>
<input type="number" name="order_discount" class="form-control" step="any">
</div>
</div>
<div class="col-md-4">
<div class="form-group">
<label>{{trans('file.Shipping Cost')}}</label>
<input type="number" name="shipping_cost" class="form-control" step="any">
</div>
</div>
</div>
<div class="row">
<div class="col-md-4">
<div class="form-group">
<label>{{trans('file.Status')}}</label>
<select class="form-control" name="quotation_status">
<option value="1">{{trans('file.Pending')}}</option>
<option value="2">{{trans('file.Sent')}}</option>
</select>
</div>
</div>
<div class="col-md-4">
<div class="form-group">
<label>{{trans('file.Attach Document')}}</label>
<i class="dripicons-question" data-toggle="tooltip" title="Only jpg, jpeg, png, gif, pdf, csv, docx, xlsx and txt file is supported"></i>
<input type="file" name="document" class="form-control" />
@if($errors->has('extension'))
<span>
<strong>{{ $errors->first('extension') }}</strong>
</span>
@endif
</div>
</div>
</div>
<div class="row">
<div class="col-md-12">
<div class="form-group">
<label>{{trans('file.Note')}}</label>
<textarea rows="5" name="note" class="form-control"></textarea>
</div>
</div>
</div>
<div class="form-group">
<input type="submit" value="{{trans('file.submit')}}" class="btn btn-primary" id="submit-button">
</div>
</div>
</div>
{!! Form::close() !!}
</div>
</div>
</div>
</div>
</div>
<div class="container-fluid">
<table class="table table-bordered table-condensed totals">
<td><strong>{{trans('file.Items')}}</strong>
<span class="pull-right" id="item">0</span>
</td>
<td><strong>{{trans('file.Total')}}</strong>
<span class="pull-right" id="subtotal">0</span>
</td>
<td><strong>{{trans('file.Order Tax')}}</strong>
<span class="pull-right" id="order_tax">0</span>
</td>
<td><strong>{{trans('file.Order Discount')}}</strong>
<span class="pull-right" id="order_discount">0</span>
</td>
<td><strong>{{trans('file.Shipping Cost')}}</strong>
<span class="pull-right" id="shipping_cost">0</span>
</td>
<td><strong>{{trans('file.grand total')}}</strong>
<span class="pull-right" id="grand_total">0</span>
</td>
</table>
</div>
<div id="editModal" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel" aria-hidden="true" class="modal fade text-left">
<div role="document" class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<h5 id="modal_header" class="modal-title"></h5>
<button type="button" data-dismiss="modal" aria-label="Close" class="close"><span aria-hidden="true"><i class="dripicons-cross"></i></span></button>
</div>
<div class="modal-body">
<form>
<div class="form-group">
<label>{{trans('file.Quantity')}}</label>
<input type="number" name="edit_qty" class="form-control" step="any">
</div>
<div class="form-group">
<label>{{trans('file.Unit Discount')}}</label>
<input type="number" name="edit_discount" class="form-control" step="any">
</div>
<div class="form-group">
<label>{{trans('file.Unit Price')}}</label>
<input type="number" name="edit_unit_price" class="form-control" step="any">
</div>
<?php
$tax_name_all[] = 'No Tax';
$tax_rate_all[] = 0;
foreach($lims_tax_list as $tax) {
$tax_name_all[] = $tax->name;
$tax_rate_all[] = $tax->rate;
}
?>
<div class="form-group">
<label>{{trans('file.Tax Rate')}}</label>
<select name="edit_tax_rate" class="form-control selectpicker">
@foreach($tax_name_all as $key => $name)
<option value="{{$key}}">{{$name}}</option>
@endforeach
</select>
</div>
<div id="edit_unit" class="form-group">
<label>{{trans('file.Product Unit')}}</label>
<select name="edit_unit" class="form-control selectpicker">
</select>
</div>
<button type="button" name="update_btn" class="btn btn-primary">{{trans('file.update')}}</button>
</form>
</div>
</div>
</div>
</div>
</section>
<script type="text/javascript">
$("ul#quotation").siblings('a').attr('aria-expanded','true');
$("ul#quotation").addClass("show");
$("ul#quotation #quotation-create-menu").addClass("active");
var lims_product_array = [];
var product_code = [];
var product_name = [];
var product_qty = [];
var product_type = [];
var product_id = [];
var product_list = [];
var qty_list = [];
// array data with selection
var product_price = [];
var product_discount = [];
var tax_rate = [];
var tax_name = [];
var tax_method = [];
var unit_name = [];
var unit_operator = [];
var unit_operation_value = [];
// temporary array
var temp_unit_name = [];
var temp_unit_operator = [];
var temp_unit_operation_value = [];
var rowindex;
var customer_group_rate;
var row_product_price;
var pos;
var currency = <?php echo json_encode($currency) ?>;
$('.selectpicker').selectpicker({
style: 'btn-link',
});
$('[data-toggle="tooltip"]').tooltip();
$('select[name="customer_id"]').on('change', function() {
var id = $(this).val();
$.get('getcustomergroup/' + id, function(data) {
customer_group_rate = (data / 100);
});
});
$('select[name="warehouse_id"]').on('change', function() {
var id = $(this).val();
$.get('getproduct/' + id, function(data) {
lims_product_array = [];
product_code = data[0];
product_name = data[1];
product_qty = data[2];
product_type = data[3];
product_id = data[4];
product_list = data[5];
qty_list = data[6];
product_warehouse_price = data[7];
$.each(product_code, function(index) {
lims_product_array.push(product_code[index] + ' (' + product_name[index] + ')');
});
});
});
$('#lims_productcodeSearch').on('input', function(){
var customer_id = $('#customer_id').val();
var warehouse_id = $('#warehouse_id').val();
temp_data = $('#lims_productcodeSearch').val();
if(!customer_id){
$('#lims_productcodeSearch').val(temp_data.substring(0, temp_data.length - 1));
alert('Please select Customer!');
}
else if(!warehouse_id){
$('#lims_productcodeSearch').val(temp_data.substring(0, temp_data.length - 1));
alert('Please select Warehouse!');
}
});
var lims_productcodeSearch = $('#lims_productcodeSearch');
lims_productcodeSearch.autocomplete({
source: function(request, response) {
var matcher = new RegExp(".?" + $.ui.autocomplete.escapeRegex(request.term), "i");
response($.grep(lims_product_array, function(item) {
return matcher.test(item);
}));
},
response: function(event, ui) {
if (ui.content.length == 1) {
var data = ui.content[0].value;
$(this).autocomplete( "close" );
productSearch(data);
};
},
select: function(event, ui) {
var data = ui.item.value;
productSearch(data);
}
});
//Change quantity
$("#myTable").on('input', '.qty', function() {
rowindex = $(this).closest('tr').index();
if($(this).val() < 1 && $(this).val() != '') {
$('table.order-list tbody tr:nth-child(' + (rowindex + 1) + ') .qty').val(1);
alert("Quantity can't be less than 1");
}
checkQuantity($(this).val(), true);
});
$("table.order-list tbody").on("click", ".ibtnDel", function(event) {
rowindex = $(this).closest('tr').index();
product_price.splice(rowindex, 1);
product_discount.splice(rowindex, 1);
tax_rate.splice(rowindex, 1);
tax_name.splice(rowindex, 1);
tax_method.splice(rowindex, 1);
unit_name.splice(rowindex, 1);
unit_operator.splice(rowindex, 1);
unit_operation_value.splice(rowindex, 1);
$(this).closest("tr").remove();
calculateTotal();
});
$('input[name="order_discount"]').on("input", function() {
calculateGrandTotal();
});
$('input[name="shipping_cost"]').on("input", function() {
calculateGrandTotal();
});
$('select[name="order_tax_rate"]').on("change", function() {
calculateGrandTotal();
});
//Edit product
$("table.order-list").on("click", ".edit-product", function() {
rowindex = $(this).closest('tr').index();
edit();
});
//update product
$('button[name="update_btn"]').on("click", function() {
var edit_discount = $('input[name="edit_discount"]').val();
var edit_qty = $('input[name="edit_qty"]').val();
var edit_unit_price = $('input[name="edit_unit_price"]').val();
if (parseFloat(edit_discount) > parseFloat(edit_unit_price)) {
alert('Invalid Discount Input!');
return;
}
if(edit_qty < 1) {
$('input[name="edit_qty"]').val(1);
edit_qty = 1;
alert("Quantity can't be less than 1");
}
var tax_rate_all = <?php echo json_encode($tax_rate_all) ?>;
tax_rate[rowindex] = parseFloat(tax_rate_all[$('select[name="edit_tax_rate"]').val()]);
tax_name[rowindex] = $('select[name="edit_tax_rate"] option:selected').text();
if(product_type[pos] == 'standard'){
var row_unit_operator = unit_operator[rowindex].slice(0, unit_operator[rowindex].indexOf(","));
var row_unit_operation_value = unit_operation_value[rowindex].slice(0, unit_operation_value[rowindex].indexOf(","));
if (row_unit_operator == '*') {
product_price[rowindex] = $('input[name="edit_unit_price"]').val() / row_unit_operation_value;
} else {
product_price[rowindex] = $('input[name="edit_unit_price"]').val() * row_unit_operation_value;
}
var position = $('select[name="edit_unit"]').val();
var temp_operator = temp_unit_operator[position];
var temp_operation_value = temp_unit_operation_value[position];
$('table.order-list tbody tr:nth-child(' + (rowindex + 1) + ')').find('.sale-unit').val(temp_unit_name[position]);
temp_unit_name.splice(position, 1);
temp_unit_operator.splice(position, 1);
temp_unit_operation_value.splice(position, 1);
temp_unit_name.unshift($('select[name="edit_unit"] option:selected').text());
temp_unit_operator.unshift(temp_operator);
temp_unit_operation_value.unshift(temp_operation_value);
unit_name[rowindex] = temp_unit_name.toString() + ',';
unit_operator[rowindex] = temp_unit_operator.toString() + ',';
unit_operation_value[rowindex] = temp_unit_operation_value.toString() + ',';
}
product_discount[rowindex] = $('input[name="edit_discount"]').val();
checkQuantity(edit_qty, false);
});
$(window).keydown(function(e){
if (e.which == 13) {
var $targ = $(e.target);
if (!$targ.is("textarea") && !$targ.is(":button,:submit")) {
var focusNext = false;
$(this).find(":input:visible:not([disabled],[readonly]), a").each(function(){
if (this === e.target) {
focusNext = true;
}
else if (focusNext){
$(this).focus();
return false;
}
});
return false;
}
}
});
$('#quotation-form').on('submit',function(e){
var rownumber = $('table.order-list tbody tr:last').index();
if (rownumber < 0) {
alert("Please insert product to order table!")
e.preventDefault();
}
});
function productSearch(data){
$.ajax({
type: 'GET',
url: 'lims_product_search',
data: {
data: data
},
success: function(data) {
var flag = 1;
$(".product-code").each(function(i) {
if ($(this).val() == data[1]) {
rowindex = i;
var qty = parseFloat($('table.order-list tbody tr:nth-child(' + (rowindex + 1) + ') .qty').val()) + 1;
$('table.order-list tbody tr:nth-child(' + (rowindex + 1) + ') .qty').val(qty);
checkQuantity(String(qty), true);
flag = 0;
}
});
$("input[name='product_code_name']").val('');
if(flag){
var newRow = $("<tr>");
var cols = '';
temp_unit_name = (data[6]).split(',');
cols += '<td>' + data[0] + '<button type="button" class="edit-product btn btn-link" data-toggle="modal" data-target="#editModal"> <i class="dripicons-document-edit"></i></button></td>';
cols += '<td>' + data[1] + '</td>';
cols += '<td><input type="number" class="form-control qty" name="qty[]" value="1" step="any" required/></td>';
cols += '<td class="net_unit_price"></td>';
cols += '<td class="discount">0</td>';
cols += '<td class="tax"></td>';
cols += '<td class="sub-total"></td>';
cols += '<td><button type="button" class="ibtnDel btn btn-md btn-danger">{{trans("file.delete")}}</button></td>';
cols += '<input type="hidden" class="product-code" name="product_code[]" value="' + data[1] + '"/>';
cols += '<input type="hidden" name="product_id[]" value="' + data[9] + '"/>';
cols += '<input type="hidden" class="sale-unit" name="sale_unit[]" value="' + temp_unit_name[0] + '"/>';
cols += '<input type="hidden" class="net_unit_price" name="net_unit_price[]" />';
cols += '<input type="hidden" class="discount-value" name="discount[]" />';
cols += '<input type="hidden" class="tax-rate" name="tax_rate[]" value="' + data[3] + '"/>';
cols += '<input type="hidden" class="tax-value" name="tax[]" />';
cols += '<input type="hidden" class="subtotal-value" name="subtotal[]" />';
newRow.append(cols);
$("table.order-list tbody").append(newRow);
pos = product_code.indexOf(data[1]);
if(!data[11] && product_warehouse_price[pos]) {
product_price.push(parseFloat(product_warehouse_price[pos] * currency['exchange_rate']) + parseFloat(product_warehouse_price[pos] * currency['exchange_rate'] * customer_group_rate));
}
else {
product_price.push(parseFloat(data[2] * currency['exchange_rate']) + parseFloat(data[2] * currency['exchange_rate'] * customer_group_rate));
}
product_discount.push('0');
tax_rate.push(parseFloat(data[3]));
tax_name.push(data[4]);
tax_method.push(data[5]);
unit_name.push(data[6]);
unit_operator.push(data[7]);
unit_operation_value.push(data[8]);
rowindex = newRow.index();
checkQuantity(1, true);
}
}
});
}
function edit(){
var row_product_name = $('table.order-list tbody tr:nth-child(' + (rowindex + 1) + ')').find('td:nth-child(1)').text();
var row_product_code = $('table.order-list tbody tr:nth-child(' + (rowindex + 1) + ')').find('td:nth-child(2)').text();
$('#modal_header').text(row_product_name + '(' + row_product_code + ')');
var qty = $('table.order-list tbody tr:nth-child(' + (rowindex + 1) + ')').find('.qty').val();
$('input[name="edit_qty"]').val(qty);
$('input[name="edit_discount"]').val(parseFloat(product_discount[rowindex]).toFixed(0));
var tax_name_all = <?php echo json_encode($tax_name_all) ?>;
pos = tax_name_all.indexOf(tax_name[rowindex]);
$('select[name="edit_tax_rate"]').val(pos);
pos = product_code.indexOf(row_product_code);
if(product_type[pos] == 'standard'){
unitConversion();
temp_unit_name = (unit_name[rowindex]).split(',');
temp_unit_name.pop();
temp_unit_operator = (unit_operator[rowindex]).split(',');
temp_unit_operator.pop();
temp_unit_operation_value = (unit_operation_value[rowindex]).split(',');
temp_unit_operation_value.pop();
$('select[name="edit_unit"]').empty();
$.each(temp_unit_name, function(key, value) {
$('select[name="edit_unit"]').append('<option value="' + key + '">' + value + '</option>');
});
$("#edit_unit").show();
}
else{
row_product_price = product_price[rowindex];
$("#edit_unit").hide();
}
$('input[name="edit_unit_price"]').val(row_product_price.toFixed(0));
$('.selectpicker').selectpicker('refresh');
}
function checkQuantity(sale_qty, flag) {
var row_product_code = $('table.order-list tbody tr:nth-child(' + (rowindex + 1) + ')').find('td:nth-child(2)').text();
pos = product_code.indexOf(row_product_code);
if(product_type[pos] == 'standard'){
var operator = unit_operator[rowindex].split(',');
var operation_value = unit_operation_value[rowindex].split(',');
if(operator[0] == '*')
total_qty = sale_qty * operation_value[0];
else if(operator[0] == '/')
total_qty = sale_qty / operation_value[0];
if (total_qty > parseFloat(product_qty[pos])) {
alert('Quantity exceeds stock quantity!');
if (flag) {
sale_qty = sale_qty.toString().substring(0, sale_qty.toString().length - 1);
$('table.order-list tbody tr:nth-child(' + (rowindex + 1) + ')').find('.qty').val(sale_qty);
}
else {
edit();
return;
}
}
}
else if(product_type[pos] == 'combo'){
child_id = product_list[pos].split(',');
child_qty = qty_list[pos].split(',');
$(child_id).each(function(index) {
var position = product_id.indexOf(parseInt(child_id[index]));
if( parseFloat(sale_qty * child_qty[index]) > product_qty[position] ) {
alert('Quantity exceeds stock quantity!');
if (flag) {
sale_qty = sale_qty.substring(0, sale_qty.length - 1);
$('table.order-list tbody tr:nth-child(' + (rowindex + 1) + ')').find('.qty').val(sale_qty);
}
else {
edit();
flag = true;
return false;
}
}
});
}
if(!flag){
$('#editModal').modal('hide');
$('table.order-list tbody tr:nth-child(' + (rowindex + 1) + ')').find('.qty').val(sale_qty);
}
calculateRowProductData(sale_qty);
}
function calculateRowProductData(quantity) {
if(product_type[pos] == 'standard')
unitConversion();
else
row_product_price = product_price[rowindex];
$('table.order-list tbody tr:nth-child(' + (rowindex + 1) + ')').find('td:nth-child(5)').text((product_discount[rowindex] * quantity).toFixed(0));
$('table.order-list tbody tr:nth-child(' + (rowindex + 1) + ')').find('.discount-value').val((product_discount[rowindex] * quantity).toFixed(0));
$('table.order-list tbody tr:nth-child(' + (rowindex + 1) + ')').find('.tax-rate').val(tax_rate[rowindex].toFixed(0));
if (tax_method[rowindex] == 1) {
var net_unit_price = row_product_price - product_discount[rowindex];
var tax = net_unit_price * quantity * (tax_rate[rowindex] / 100);
var sub_total = (net_unit_price * quantity) + tax;
$('table.order-list tbody tr:nth-child(' + (rowindex + 1) + ')').find('td:nth-child(4)').text(net_unit_price.toFixed(0));
$('table.order-list tbody tr:nth-child(' + (rowindex + 1) + ')').find('.net_unit_price').val(net_unit_price.toFixed(0));
$('table.order-list tbody tr:nth-child(' + (rowindex + 1) + ')').find('td:nth-child(6)').text(tax.toFixed(0));
$('table.order-list tbody tr:nth-child(' + (rowindex + 1) + ')').find('.tax-value').val(tax.toFixed(0));
$('table.order-list tbody tr:nth-child(' + (rowindex + 1) + ')').find('td:nth-child(7)').text(sub_total.toFixed(0));
$('table.order-list tbody tr:nth-child(' + (rowindex + 1) + ')').find('.subtotal-value').val(sub_total.toFixed(0));
} else {
var sub_total_unit = row_product_price - product_discount[rowindex];
var net_unit_price = (100 / (100 + tax_rate[rowindex])) * sub_total_unit;
var tax = (sub_total_unit - net_unit_price) * quantity;
var sub_total = sub_total_unit * quantity;
$('table.order-list tbody tr:nth-child(' + (rowindex + 1) + ')').find('td:nth-child(4)').text(net_unit_price.toFixed(0));
$('table.order-list tbody tr:nth-child(' + (rowindex + 1) + ')').find('.net_unit_price').val(net_unit_price.toFixed(0));
$('table.order-list tbody tr:nth-child(' + (rowindex + 1) + ')').find('td:nth-child(6)').text(tax.toFixed(0));
$('table.order-list tbody tr:nth-child(' + (rowindex + 1) + ')').find('.tax-value').val(tax.toFixed(0));
$('table.order-list tbody tr:nth-child(' + (rowindex + 1) + ')').find('td:nth-child(7)').text(sub_total.toFixed(0));
$('table.order-list tbody tr:nth-child(' + (rowindex + 1) + ')').find('.subtotal-value').val(sub_total.toFixed(0));
}
calculateTotal();
}
function unitConversion() {
var row_unit_operator = unit_operator[rowindex].slice(0, unit_operator[rowindex].indexOf(","));
var row_unit_operation_value = unit_operation_value[rowindex].slice(0, unit_operation_value[rowindex].indexOf(","));
if (row_unit_operator == '*') {
row_product_price = product_price[rowindex] * row_unit_operation_value;
} else {
row_product_price = product_price[rowindex] / row_unit_operation_value;
}
}
function calculateTotal() {
//Sum of quantity
var total_qty = 0;
$(".qty").each(function() {
if ($(this).val() == '') {
total_qty += 0;
} else {
total_qty += parseFloat($(this).val());
}
});
$("#total-qty").text(total_qty);
$('input[name="total_qty"]').val(total_qty);
//Sum of discount
var total_discount = 0;
$(".discount").each(function() {
total_discount += parseFloat($(this).text());
});
$("#total-discount").text(total_discount.toFixed(0));
$('input[name="total_discount"]').val(total_discount.toFixed(0));
//Sum of tax
var total_tax = 0;
$(".tax").each(function() {
total_tax += parseFloat($(this).text());
});
$("#total-tax").text(total_tax.toFixed(0));
$('input[name="total_tax"]').val(total_tax.toFixed(0));
//Sum of subtotal
var total = 0;
$(".sub-total").each(function() {
total += parseFloat($(this).text());
});
$("#total").text(total.toFixed(0));
$('input[name="total_price"]').val(total.toFixed(0));
calculateGrandTotal();
}
function calculateGrandTotal() {
var item = $('table.order-list tbody tr:last').index();
var total_qty = parseFloat($('#total-qty').text());
var subtotal = parseFloat($('#total').text());
var order_tax = parseFloat($('select[name="order_tax_rate"]').val());
var order_discount = parseFloat($('input[name="order_discount"]').val());
var shipping_cost = parseFloat($('input[name="shipping_cost"]').val());
if (!order_discount)
order_discount = 0;
if (!shipping_cost)
shipping_cost = 0;
item = ++item + '(' + total_qty + ')';
order_tax = (subtotal - order_discount) * (order_tax / 100);
var grand_total = (subtotal + order_tax + shipping_cost) - order_discount;
$('#item').text(item);
$('input[name="item"]').val($('table.order-list tbody tr:last').index() + 1);
$('#subtotal').text(subtotal.toFixed(0));
$('#order_tax').text(order_tax.toFixed(0));
$('input[name="order_tax"]').val(order_tax.toFixed(0));
$('#order_discount').text(order_discount.toFixed(0));
$('#shipping_cost').text(shipping_cost.toFixed(0));
$('#grand_total').text(grand_total.toFixed(0));
$('input[name="grand_total"]').val(grand_total.toFixed(0));
}
</script>
@endsection