|
Server : Apache/2.4.41 (Ubuntu) System : Linux vmi1525618.contaboserver.net 5.4.0-105-generic #119-Ubuntu SMP Mon Mar 7 18:49:24 UTC 2022 x86_64 User : www-data ( 33) PHP Version : 8.2.12 Disable Function : NONE Directory : /var/www/erp.theinteractive.co.in/resources/views/purchase/ |
Upload File : |
@extends('layouts.admin')
@section('page-title')
{{__('Purchase Edit')}}
@endsection
@section('breadcrumb')
<li class="breadcrumb-item"><a href="{{route('dashboard')}}">{{__('Dashboard')}}</a></li>
<li class="breadcrumb-item"><a href="{{route('purchase.index')}}">{{__('Purchase')}}</a></li>
<li class="breadcrumb-item">{{__('Purchase Edit')}}</li>
@endsection
@push('script-page')
<script src="{{asset('js/jquery-ui.min.js')}}"></script>
<script src="{{asset('js/jquery.repeater.min.js')}}"></script>
<script>
var selector = "body";
if ($(selector + " .repeater").length) {
var $dragAndDrop = $("body .repeater tbody").sortable({
handle: '.sort-handler'
});
var $repeater = $(selector + ' .repeater').repeater({
initEmpty: true,
defaultValues: {
'status': 1
},
show: function () {
$(this).slideDown();
var file_uploads = $(this).find('input.multi');
if (file_uploads.length) {
$(this).find('input.multi').MultiFile({
max: 3,
accept: 'png|jpg|jpeg',
max_size: 2048
});
}
if($('.select2').length) {
$('.select2').select2();
}
},
hide: function (deleteElement) {
$(this).slideUp(deleteElement);
$(this).remove();
var inputs = $(".amount");
var subTotal = 0;
for (var i = 0; i < inputs.length; i++) {
subTotal = parseFloat(subTotal) + parseFloat($(inputs[i]).html());
}
$('.subTotal').html(subTotal.toFixed(2));
$('.totalAmount').html(subTotal.toFixed(2));
},
ready: function (setIndexes) {
$dragAndDrop.on('drop', setIndexes);
},
isFirstItemUndeletable: true
});
var value = $(selector + " .repeater").attr('data-value');
console.log(value);
if (typeof value != 'undefined' && value.length != 0) {
value = JSON.parse(value);
$repeater.setList(value);
for (var i = 0; i < value.length; i++) {
var tr = $('#sortable-table .id[value="' + value[i].id + '"]').parent();
tr.find('.item').val(value[i].product_id);
changeItem(tr.find('.item'));
}
}
}
$(document).on('change', '#vender', function () {
$('#vender_detail').removeClass('d-none');
$('#vender_detail').addClass('d-block');
$('#vender-box').removeClass('d-block');
$('#vender-box').addClass('d-none');
var id = $(this).val();
var url = $(this).data('url');
$.ajax({
url: url,
type: 'POST',
headers: {
'X-CSRF-TOKEN': jQuery('#token').val()
},
data: {
'id': id
},
cache: false,
success: function (data) {
if (data != '') {
$('#vender_detail').html(data);
} else {
$('#vender-box').removeClass('d-none');
$('#vender-box').addClass('d-block');
$('#vender_detail').removeClass('d-block');
$('#vender_detail').addClass('d-none');
}
},
});
});
$(document).on('click', '#remove', function () {
$('#vender-box').removeClass('d-none');
$('#vender-box').addClass('d-block');
$('#vender_detail').removeClass('d-block');
$('#vender_detail').addClass('d-none');
});
var purchase_id = '{{$purchase->id}}';
function changeItem(element) {
var iteams_id = element.val();
var url = element.data('url');
var el = element;
$.ajax({
url: url,
type: 'POST',
headers: {
'X-CSRF-TOKEN': jQuery('#token').val()
},
data: {
'product_id': iteams_id
},
cache: false,
success: function (data) {
var item = JSON.parse(data);
$.ajax({
url: '{{route('purchase.items')}}',
type: 'GET',
headers: {
'X-CSRF-TOKEN': jQuery('#token').val()
},
data: {
'purchase_id': purchase_id,
'product_id': iteams_id,
},
cache: false,
success: function (data) {
var purchaseItems = JSON.parse(data);
if (purchaseItems != null) {
var amount = (purchaseItems.price * purchaseItems.quantity);
$(el.parent().parent().parent().find('.quantity')).val(purchaseItems.quantity);
$(el.parent().parent().parent().find('.price')).val(purchaseItems.price);
$(el.parent().parent().parent().find('.discount')).val(purchaseItems.discount);
$(el.parent().parent().parent().parent().find('.pro_description')).val(purchaseItems.description);
// $('.pro_description').text(purchaseItems.description);
} else {
$(el.parent().parent().parent().find('.quantity')).val(1);
$(el.parent().parent().parent().find('.price')).val(item.product.purchase_price);
$(el.parent().parent().parent().find('.discount')).val(0);
$(el.parent().parent().parent().find('.pro_description')).val(item.product.purchase_price);
// $('.pro_description').text(item.product.purchase_price);
$(el.parent().parent().parent().parent().find('.pro_description')).val(item.product.description);
}
var taxes = '';
var tax = [];
var totalItemTaxRate = 0;
for (var i = 0; i < item.taxes.length; i++) {
taxes += '<span class="badge bg-primary p-2 px-3 rounded mt-1 mr-1">' + item.taxes[i].name + ' ' + '(' + item.taxes[i].rate + '%)' + '</span>';
tax.push(item.taxes[i].id);
totalItemTaxRate += parseFloat(item.taxes[i].rate);
}
var discount=$(el.parent().parent().parent().find('.discount')).val();
if (purchaseItems != null) {
var itemTaxPrice = parseFloat((totalItemTaxRate / 100)) * parseFloat((purchaseItems.price * purchaseItems.quantity)- discount);
} else {
var itemTaxPrice = parseFloat((totalItemTaxRate / 100)) * parseFloat((item.product.purchase_price * 1)- discount);
}
$(el.parent().parent().parent().find('.itemTaxPrice')).val(itemTaxPrice.toFixed(2));
$(el.parent().parent().parent().find('.itemTaxRate')).val(totalItemTaxRate.toFixed(2));
$(el.parent().parent().parent().find('.taxes')).html(taxes);
$(el.parent().parent().parent().find('.tax')).val(tax);
$(el.parent().parent().parent().find('.unit')).html(item.unit);
var inputs = $(".amount");
var subTotal = 0;
for (var i = 0; i < inputs.length; i++) {
subTotal = parseFloat(subTotal) + parseFloat($(inputs[i]).html());
}
var totalItemPrice = 0;
var inputs_quantity = $(".quantity");
var priceInput = $('.price');
for (var j = 0; j < priceInput.length; j++) {
totalItemPrice += (parseFloat(priceInput[j].value) * parseFloat(inputs_quantity[j].value));
}
var totalItemTaxPrice = 0;
var itemTaxPriceInput = $('.itemTaxPrice');
for (var j = 0; j < itemTaxPriceInput.length; j++) {
totalItemTaxPrice += parseFloat(itemTaxPriceInput[j].value);
if (purchaseItems != null) {
$(el.parent().parent().parent().find('.amount')).html(parseFloat(amount)+parseFloat(itemTaxPrice)-parseFloat(discount));
} else {
$(el.parent().parent().parent().find('.amount')).html(parseFloat(item.totalAmount)+parseFloat(itemTaxPrice));
}
}
var totalItemDiscountPrice = 0;
var itemDiscountPriceInput = $('.discount');
for (var k = 0; k < itemDiscountPriceInput.length; k++) {
totalItemDiscountPrice += parseFloat(itemDiscountPriceInput[k].value);
}
$('.subTotal').html(totalItemPrice.toFixed(2));
$('.totalTax').html(totalItemTaxPrice.toFixed(2));
$('.totalAmount').html((parseFloat(totalItemPrice) - parseFloat(totalItemDiscountPrice) + parseFloat(totalItemTaxPrice)).toFixed(2));
$('.totalDiscount').html(totalItemDiscountPrice.toFixed(2));
}
});
},
});
}
$(document).on('change', '.item', function () {
changeItem($(this));
});
$(document).on('keyup', '.quantity', function () {
var quntityTotalTaxPrice = 0;
var el = $(this).parent().parent().parent().parent();
var quantity = $(this).val();
var price = $(el.find('.price')).val();
var discount = $(el.find('.discount')).val();
if(discount.length <= 0)
{
discount = 0 ;
}
var totalItemPrice = (quantity * price) - discount;
var amount = (totalItemPrice);
var totalItemTaxRate = $(el.find('.itemTaxRate')).val();
var itemTaxPrice = parseFloat((totalItemTaxRate / 100) * (totalItemPrice));
$(el.find('.itemTaxPrice')).val(itemTaxPrice.toFixed(2));
$(el.find('.amount')).html(parseFloat(itemTaxPrice)+parseFloat(amount));
var totalItemTaxPrice = 0;
var itemTaxPriceInput = $('.itemTaxPrice');
for (var j = 0; j < itemTaxPriceInput.length; j++) {
totalItemTaxPrice += parseFloat(itemTaxPriceInput[j].value);
}
var totalItemPrice = 0;
var inputs_quantity = $(".quantity");
var priceInput = $('.price');
for (var j = 0; j < priceInput.length; j++) {
totalItemPrice += (parseFloat(priceInput[j].value) * parseFloat(inputs_quantity[j].value));
}
var inputs = $(".amount");
var subTotal = 0;
for (var i = 0; i < inputs.length; i++) {
subTotal = parseFloat(subTotal) + parseFloat($(inputs[i]).html());
}
$('.subTotal').html(totalItemPrice.toFixed(2));
$('.totalTax').html(totalItemTaxPrice.toFixed(2));
$('.totalAmount').html((parseFloat(subTotal)).toFixed(2));
})
$(document).on('keyup change', '.price', function () {
var el = $(this).parent().parent().parent().parent();
var price = $(this).val();
var quantity = $(el.find('.quantity')).val();
var discount = $(el.find('.discount')).val();
if(discount.length <= 0)
{
discount = 0 ;
}
var totalItemPrice = (quantity * price)-discount;
var amount = (totalItemPrice);
var totalItemTaxRate = $(el.find('.itemTaxRate')).val();
var itemTaxPrice = parseFloat((totalItemTaxRate / 100) * (totalItemPrice));
$(el.find('.itemTaxPrice')).val(itemTaxPrice.toFixed(2));
$(el.find('.amount')).html(parseFloat(itemTaxPrice)+parseFloat(amount));
var totalItemTaxPrice = 0;
var itemTaxPriceInput = $('.itemTaxPrice');
for (var j = 0; j < itemTaxPriceInput.length; j++) {
totalItemTaxPrice += parseFloat(itemTaxPriceInput[j].value);
}
var totalItemPrice = 0;
var inputs_quantity = $(".quantity");
var priceInput = $('.price');
for (var j = 0; j < priceInput.length; j++) {
totalItemPrice += (parseFloat(priceInput[j].value) * parseFloat(inputs_quantity[j].value));
}
var inputs = $(".amount");
var subTotal = 0;
for (var i = 0; i < inputs.length; i++) {
subTotal = parseFloat(subTotal) + parseFloat($(inputs[i]).html());
}
$('.subTotal').html(totalItemPrice.toFixed(2));
$('.totalTax').html(totalItemTaxPrice.toFixed(2));
$('.totalAmount').html((parseFloat(subTotal)).toFixed(2));
})
$(document).on('keyup change', '.discount', function () {
var el = $(this).parent().parent().parent();
var discount = $(this).val();
if(discount.length <= 0)
{
discount = 0 ;
}
var price = $(el.find('.price')).val();
var quantity = $(el.find('.quantity')).val();
var totalItemPrice = (quantity * price) - discount;
var amount = (totalItemPrice);
var totalItemTaxRate = $(el.find('.itemTaxRate')).val();
var itemTaxPrice = parseFloat((totalItemTaxRate / 100) * (totalItemPrice));
$(el.find('.itemTaxPrice')).val(itemTaxPrice.toFixed(2));
$(el.find('.amount')).html(parseFloat(itemTaxPrice)+parseFloat(amount));
var totalItemTaxPrice = 0;
var itemTaxPriceInput = $('.itemTaxPrice');
for (var j = 0; j < itemTaxPriceInput.length; j++) {
totalItemTaxPrice += parseFloat(itemTaxPriceInput[j].value);
}
var totalItemPrice = 0;
var inputs_quantity = $(".quantity");
var priceInput = $('.price');
for (var j = 0; j < priceInput.length; j++) {
totalItemPrice += (parseFloat(priceInput[j].value) * parseFloat(inputs_quantity[j].value));
}
var inputs = $(".amount");
var subTotal = 0;
for (var i = 0; i < inputs.length; i++) {
subTotal = parseFloat(subTotal) + parseFloat($(inputs[i]).html());
}
var totalItemDiscountPrice = 0;
var itemDiscountPriceInput = $('.discount');
for (var k = 0; k < itemDiscountPriceInput.length; k++) {
totalItemDiscountPrice += parseFloat(itemDiscountPriceInput[k].value);
}
$('.subTotal').html(totalItemPrice.toFixed(2));
$('.totalTax').html(totalItemTaxPrice.toFixed(2));
$('.totalAmount').html((parseFloat(subTotal)).toFixed(2));
$('.totalDiscount').html(totalItemDiscountPrice.toFixed(2));
})
$(document).on('click', '[data-repeater-create]', function () {
$('.item :selected').each(function () {
var id = $(this).val();
$(".item option[value=" + id + "]").prop("disabled", true);
});
})
$(document).on('click', '[data-repeater-delete]', function () {
// $('.delete_item').click(function () {
if (confirm('Are you sure you want to delete this element?')) {
var el = $(this).parent().parent();
var id = $(el.find('.id')).val();
$.ajax({
url: '{{route('purchase.product.destroy')}}',
type: 'POST',
headers: {
'X-CSRF-TOKEN': jQuery('#token').val()
},
data: {
'id': id
},
cache: false,
success: function (data) {
},
});
}
});
</script>
<script>
$(document).on('click', '[data-repeater-delete]', function () {
$(".price").change();
$(".discount").change();
});
</script>
@endpush
@section('content')
<div class="row">
{{ Form::model($purchase, array('route' => array('purchase.update', $purchase->id), 'method' => 'PUT','class'=>'w-100')) }}
<div class="col-12">
<input type="hidden" name="_token" id="token" value="{{ csrf_token() }}">
<div class="card">
<div class="card-body">
<div class="row">
<div class="col-md-6">
<div class="form-group" id="vender-box">
{{ Form::label('vender_id', __('Vendor'),['class'=>'form-label']) }}
{{ Form::select('vender_id', $venders,null, array('class' => 'form-control select','id'=>'vender','data-url'=>route('purchase.vender'),'required'=>'required')) }}
</div>
<div id="vender_detail" class="d-none">
</div>
</div>
<div class="col-md-6">
<div class="row">
<div class="col-md-6">
<div class="form-group">
{{ Form::label('warehouse_id', __('Warehouse'),['class'=>'form-label']) }}
{{ Form::select('warehouse_id', $warehouse,null, array('class' => 'form-control select','required'=>'required')) }}
</div>
</div>
<div class="col-md-6">
<div class="form-group">
{{ Form::label('category_id', __('Category'),['class'=>'form-label']) }}
{{ Form::select('category_id', $category,null, array('class' => 'form-control select','required'=>'required')) }}
</div>
</div>
</div>
<div class="row">
<div class="col-md-6">
<div class="form-group">
{{ Form::label('purchase_date', __('Purchase Date'),['class'=>'form-label']) }}
{{Form::date('purchase_date',null,array('class'=>'form-control','required'=>'required'))}}
</div>
</div>
<div class="col-md-6">
<div class="form-group">
{{ Form::label('purchase_number', __('Purchase Number'),['class'=>'form-label']) }}
<input type="text" class="form-control" value="{{$purchase_number}}" readonly>
</div>
</div>
</div>
{{-- <div class="form-check custom-checkbox mt-4">--}}
{{-- <input class="form-check-input" type="checkbox" name="discount_apply" id="discount_apply" {{$purchase->discount_apply==1?'checked':''}}>--}}
{{-- <label class="form-check-label" for="discount_apply">{{__('Discount Apply')}}</label>--}}
{{-- </div>--}}
</div>
</div>
</div>
</div>
</div>
<div class="col-12">
<h5 class="d-inline-block mb-4">{{__('Product & Services')}}</h5>
<div class="card repeater" data-value='{!! json_encode($purchase->items) !!}'>
<div class="item-section py-2">
<div class="row justify-content-between align-items-center">
<div class="col-md-12 d-flex align-items-center justify-content-between justify-content-md-end">
<div class="all-button-box me-2">
<a href="#" data-repeater-create="" class="btn btn-primary" data-bs-toggle="modal" data-target="#add-bank">
<i class="ti ti-plus"></i> {{__('Add item')}}
</a>
</div>
</div>
</div>
</div>
<div class="card-body table-border-style ">
<div class="table-responsive">
<table class="table mb-0" data-repeater-list="items" id="sortable-table">
<thead>
<tr>
<th>{{__('Items')}}</th>
<th>{{__('Quantity')}}</th>
<th>{{__('Price')}} </th>
<th>{{__('Discount')}}</th>
<th>{{__('Tax')}} (%)</th>
<th class="text-end">{{__('Amount')}} <br><small class="text-danger font-weight-bold">{{__('after tax & discount')}}</small></th>
<th></th>
</tr>
</thead>
<tbody class="ui-sortable" data-repeater-item>
<tr>
{{ Form::hidden('id',null, array('class' => 'form-control id')) }}
<td width="25%">
<div class="form-group">
{{ Form::select('item', $product_services,null, array('class' => 'form-control select item','data-url'=>route('purchase.product'))) }}
</div>
</td>
<td>
<div class="form-group price-input input-group search-form">
{{ Form::text('quantity',null, array('class' => 'form-control quantity','required'=>'required','placeholder'=>__('Qty'),'required'=>'required')) }}
<span class="unit input-group-text bg-transparent"></span>
</div>
</td>
<td>
<div class="form-group price-input input-group search-form">
{{ Form::text('price',null, array('class' => 'form-control price','required'=>'required','placeholder'=>__('Price'),'required'=>'required')) }}
<span class="input-group-text bg-transparent">{{\Auth::user()->currencySymbol()}}</span>
</div>
</td>
<td>
<div class="form-group price-input input-group search-form">
{{ Form::text('discount',null, array('class' => 'form-control discount','required'=>'required','placeholder'=>__('Discount'))) }}
<span class="input-group-text bg-transparent">{{\Auth::user()->currencySymbol()}}</span>
</div>
</td>
<td>
<div class="form-group">
<div class="input-group">
<div class="taxes"></div>
{{ Form::hidden('tax','', array('class' => 'form-control tax')) }}
{{ Form::hidden('itemTaxPrice','', array('class' => 'form-control itemTaxPrice')) }}
{{ Form::hidden('itemTaxRate','', array('class' => 'form-control itemTaxRate')) }}
</div>
</div>
</td>
<td class="text-end amount">
0.00
</td>
<td>
@can('delete proposal product')
<a href="#" class="ti ti-trash text-white repeater-action-btn bg-danger ms-2 bs-pass-para" data-repeater-delete></a>
@endcan
</td>
</tr>
<tr>
<td colspan="2">
<div class="form-group">
{{ Form::textarea('description', null, ['class'=>'form-control pro_description','rows'=>'2','placeholder'=>__('Description')]) }}
</div>
</td>
<td colspan="5"></td>
</tr>
</tbody>
<tfoot>
<tr>
<td> </td>
<td> </td>
<td> </td>
<td></td>
<td><strong>{{__('Sub Total')}} ({{\Auth::user()->currencySymbol()}})</strong></td>
<td class="text-end subTotal">0.00</td>
<td></td>
</tr>
<tr>
<td> </td>
<td> </td>
<td> </td>
<td></td>
<td><strong>{{__('Discount')}} ({{\Auth::user()->currencySymbol()}})</strong></td>
<td class="text-end totalDiscount">0.00</td>
<td></td>
</tr>
<tr>
<td> </td>
<td> </td>
<td> </td>
<td></td>
<td><strong>{{__('Tax')}} ({{\Auth::user()->currencySymbol()}})</strong></td>
<td class="text-end totalTax">0.00</td>
<td></td>
</tr>
<tr>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td class="blue-text"><strong>{{__('Total Amount')}} ({{\Auth::user()->currencySymbol()}})</strong></td>
<td class="blue-text text-end totalAmount">0.00</td>
<td></td>
</tr>
</tfoot>
</table>
</div>
</div>
</div>
</div>
<div class="modal-footer">
<input type="button" value="{{__('Cancel')}}" onclick="location.href = '{{route("purchase.index")}}';" class="btn btn-light">
<input type="submit" value="{{__('Update')}}" class="btn btn-primary">
</div>
{{ Form::close() }}
</div>
@endsection