IMMREX7
@extends('schools.school_layout')
@section('content')
<div class="row clearfix">
<div class="col-sm-12">
<div class="card">
<div class="header">
<h2><strong>@if(isset($po))Edit @else Add @endif Purchase Order</strong></h2>
</div>
<div class="body">
@if(isset($po))
{!! Form::model($po,['method' => 'PATCH', 'action' => ['School\Stock\PurchaseOrderController@update', $po->idPurchaseOrder], 'class' => 'form-horizontal','files'=>true]) !!}
@else
{!! Form::open(['url' => 'school/purchaseorder', 'class' => 'form-horizontal','id'=>'form','files'=>true]) !!}
@endif
<div class="row clearfix">
<div class="col-sm-3 form-control-label required">
<label for="classname">Vendor/Supplier</label>
</div>
<div class="col-sm-6">
<div class="form-group">
{!! Form::select('idSupplier',$suppliers,null,['class' => 'form-control select2 show-tick ms']) !!}
@if ($errors->has('idSupplier'))
<label id="minmaxlength-error" class="error" for="minmaxlength">
<strong>{{ $errors->first('idSupplier') }}</strong>
</label>
@endif
<p>Not in List? <a href="{{url('/school/suppliers')}}" target="_blank">Add New</a></p>
<span id='vendor_error'></span>
</div>
</div>
</div>
<div class="row clearfix">
<div class="col-sm-3 form-control-label required">
<label for="classname">Deliver To</label>
</div>
<div class="col-sm-6">
<div class="form-group">
<p class="form-control-static"> <input type="radio" name= "deliveryAddress" value="{{$school->schoolName}} , {{$school->city}},{{$school->state->stateName}} {{$school->pincode}}" checked="checked" readonly="readonly"> {{$school->schoolName}} , {{$school->city}},{{$school->state->stateName}} {{$school->pincode}}</p>
</div>
</div>
</div>
<div class="row clearfix">
<div class="col-sm-3 form-control-label required">
<label for="classname">Purchase Order </label>
</div>
<div class="col-sm-3">
<div class="form-group">
{!! Form::text('poNo',$po_no,['class' => 'form-control','readonly'=>'readonly']) !!}
@if ($errors->has('poNo'))
<label id="minmaxlength-error" class="error" for="minmaxlength">
<strong>{{ $errors->first('poNo') }}</strong>
</label>
@endif
</div>
</div>
</div>
<div class="row clearfix">
<div class="col-sm-3 form-control-label required">
<label for="classname">Date</label>
</div>
<div class="col-sm-3">
<div class="form-group">
{!! Form::text('purchaseDate',null,['class' => 'form-control datepicker','required'=>'required']) !!}
@if ($errors->has('purchaseDate'))
<label id="minmaxlength-error" class="error" for="minmaxlength">
<strong>{{ $errors->first('purchaseDate') }}</strong>
</label>
@endif
</div>
</div>
</div>
<div class="row clearfix">
<div class="col-sm-3 form-control-label">
<label for="classname">Reference</label>
</div>
<div class="col-sm-3">
<div class="form-group">
{!! Form::text('reference',null,['class' => 'form-control']) !!}
@if ($errors->has('reference'))
<label id="minmaxlength-error" class="error" for="minmaxlength">
<strong>{{ $errors->first('reference') }}</strong>
</label>
@endif
</div>
</div>
</div>
<div class="row clearfix">
<div class="col-sm-3 form-control-label">
<label for="classname">Shipment Preference</label>
</div>
<div class="col-sm-3">
<div class="form-group">
{!! Form::text('purchasePreference',null,['class' => 'form-control']) !!}
@if ($errors->has('purchasePreference'))
<label id="minmaxlength-error" class="error" for="minmaxlength">
<strong>{{ $errors->first('purchasePreference') }}</strong>
</label>
@endif
</div>
</div>
</div>
<hr>
<div class="row">
<div class="col-sm-12">
<table class="table table-bordered">
<thead>
<tr>
<th></th>
<th>Item</th>
<th>Quantity</th>
<th>Rate</th>
<th>Tax</th>
<th>Amount</th>
<th></th>
</tr>
</thead>
<tbody id="optional_list">
<?php $i =1;?>
<tr>
<td class="sno">{{$i}}</td>
<td>
{!! Form::select('products[1][idProduct]',$products,null,['class' => 'form-control select2 show-tick ms','onchange'=>'getProductRate(this,1)']) !!}
<p>Not in List? <a href="{{url('/school/products')}}" target="_blank">Add New</a></p>
<span id="producterror1" class="help-block"></span>
</td>
<td>
{!! Form::text('products[1][quantity]',null,['class' => 'form-control','required'=>'required','id'=>'qty1','onkeyup'=>'CalculateRate(1)']) !!}
<span id="qtyerror1" class="help-block"></span>
</td>
<td>
{!! Form::text('products[1][rate]',null,['class' => 'form-control','required'=>'required','id'=>'price1','onkeyup'=>'CalculateRate(1)' ]) !!}
</td>
<td>
{!! Form::select('products[1][tax]',getProductTaxes(),null,['class' => 'form-control show-tick ms','onchange'=>'getTaxedAmount(this,1)','required'=>'required']) !!}
</td>
<td>
{!! Form::text('products[1][productTotal]',null,['class' => 'form-control amount','required'=>'required','id'=>'productamount1']) !!}
</td>
<td></td>
</tr>
<?php $i++ ; ?>
</tbody>
<tr>
<td colspan="7" style="text-align: right"><input type="button" class="add-row btn btn-sm btn-success" value="Add Row"></td>
</tr>
</table>
</div>
</div>
<hr>
<div class="row">
<div class="col-md-6">
<div class="row clearfix">
<div class="col-sm-4 form-control-label">
<label for="classname">Terms and Conditions</label>
</div>
<div class="col-sm-8">
<div class="form-group">
{!! Form::textarea('termConditions',null,['class' => 'form-control','size'=>'30x2']) !!}
@if ($errors->has('termConditions'))
<label id="minmaxlength-error" class="error" for="minmaxlength">
<strong>{{ $errors->first('termConditions') }}</strong>
</label>
@endif
</div>
</div>
</div>
<div class="row clearfix">
<div class="col-sm-4 form-control-label">
<label for="classname">Notes</label>
</div>
<div class="col-sm-8">
<div class="form-group">
{!! Form::textarea('notes',null,['class' => 'form-control','size'=>'30x2']) !!}
@if ($errors->has('notes'))
<label id="minmaxlength-error" class="error" for="minmaxlength">
<strong>{{ $errors->first('notes') }}</strong>
</label>
@endif
</div>
</div>
</div>
</div>
<div class="col-md-6 text-right">
<div class="row clearfix">
<div class="col-sm-6 form-control-label">
<label for="classname"><strong>Sub Total</strong></label>
</div>
<div class="col-sm-6">
<div class="form-group">
{!! Form::text('subTotal',null,['class' => 'form-control','id'=>'subtotal','readonly'=>'readonly']) !!}
</div>
</div>
</div>
<div class="row clearfix">
<div class="col-sm-6 form-control-label">
<label for="classname">Discount</label>
</div>
<div class="col-sm-6">
<div class="form-group">
{!! Form::text('discountTotal',null,['class' => 'form-control','id'=>'discount','onblur'=>'calculateDiscount()']) !!}
</div>
</div>
</div>
<div class="row clearfix">
<div class="col-sm-6 form-control-label">
<label for="classname">Adjustment</label>
</div>
<div class="col-sm-6">
<div class="form-group">
{!! Form::text('adjustment',null,['class' => 'form-control','id'=>'adjustment','onblur'=>'calculateAdjustment()']) !!}
</div>
</div>
</div>
<div class="row clearfix">
<div class="col-sm-6 form-control-label">
<label for="classname"><strong>Total Amount</strong></label>
</div>
<div class="col-sm-6">
<div class="form-group">
{!! Form::text('totalAmount',null,['class' => 'form-control','id'=>'netamt','readonly'=>'readonly']) !!}
</div>
</div>
</div>
</div>
</div>
<div class="row clearfix">
<div class="col-sm-8 offset-sm-2">
@if(isset($po))
{!! Form::submit('UPDATE',['class' => 'btn btn-raised btn-primary btn-round waves-effect']) !!}
@else
{!! Form::submit('SAVE AND EMAIL',['class' => 'btn btn-raised btn-primary btn-round waves-effect','id'=>'submit-btn']) !!}
@endif
{!! Form::close() !!}
<a href="{{url('/school/purchaseorder/create')}}" class="btn btn-raised btn-danger btn-round waves-effect">CANCEL</a>
</div>
</div>
</div>
</div>
</div>
</div>
@stop
@section('script')
<script>
$(document).ready(function() {
var i = $('.sno:last').text();
$(".add-row").click(function(){
i++;
var markup = '<tr><td class="sno">'+i+'</td>\
<td><select name="products['+i+'][idProduct]" class = "form-control select2 show-tick ms" onchange = "getProductRate(this,'+i+')">@foreach($products as $key=>$value)<option value="{{$key}}">{{$value}}</option>@endforeach</select><p>Not in List? <a href="{{url('/school/products')}}" target="_blank">Add New</a></p><span id="producterror'+i+'" class="help-block"></span></td>\n\
\n\ <td><input class="form-control" type="text" name="products['+i+'][quantity]" id="qty'+i+'" onkeyup = "CalculateRate('+i+')" required ="required"></td>\n\
\n\ <td><input class="form-control" type="text" name="products['+i+'][rate]" id="price'+i+'" onkeyup = "CalculateRate('+i+')" required ="required"></td>\n\
\n\ <td><select name="products['+i+'][tax]" class = "form-control show-tick ms" required="required" onchange ="getTaxedAmount(this,'+i+')">@foreach(getProductTaxes() as $key=>$value)<option value="{{$key}}">{{$value}}</option>@endforeach</select></td>\n\
\n\ <td><input class="form-control amount" type="text" name="products['+i+'][productTotal]" id="productamount'+i+'" required ="required"></td>\n\
<td style="text-align:right;vertical-align: middle;"><input type="button" class="btn btn-sm btn-danger" value="Delete" id="remove_row"></td></tr>';
$("#optional_list").append(markup);
});
$('#optional_list').on('click', 'input[type="button"]', function () {
$(this).closest('tr').remove();
i = $('.sno:last').text();
for (let t = 1; t <= i; t++) {
CalculateRate(t)
}
});
//Add Input field if others is selecyted
});
function getProductRate(selected,keyid){
var val = selected.value;
if(val) {
$.ajax({
url: "{{url('/school/products') }}"+'/' +val,
type: "GET",
dataType: "json",
success:function(data) {
// $('#price'+keyid).empty();
$('#price'+keyid).val(data['salePrice']);
}
});
}
}
function CalculateRate($key){
var rate = '#price' + $key;
var rt = $(rate).val();
var qty = '#qty' + $key;
var qt = $(qty).val();
var amt = rt * qt;
var amount = '#productamount' + $key;
$(amount).val(amt.toFixed(2));
var grandTotal = 0;
$(".amount").each(function (){
var stval = parseFloat($(this).val());
grandTotal += isNaN(stval) ? 0 : stval;
});
$('#subtotal').val(grandTotal.toFixed(2));
// $('#compamount').val(grandTotal.toFixed(2));
var subtotal = $('#subtotal').val(grandTotal.toFixed(2));
$('#netamt').val(grandTotal.toFixed(2));
}
function getTaxedAmount(selected,keyid){
var val = selected.value;
if(val) {
var rate = '#price' + keyid;
var rt = $(rate).val();
var qty = '#qty' + keyid;
var qt = $(qty).val();
var amt = rt * qt;
var tax = amt*val/100;
var taxedamt = amt + tax;
var amount = '#productamount' + keyid;
$(amount).val(taxedamt.toFixed(2));
var grandTotal = 0;
$(".amount").each(function (){
var stval = parseFloat($(this).val());
grandTotal += isNaN(stval) ? 0 : stval;
});
$('#subtotal').val(grandTotal.toFixed(2));
// $('#compamount').val(grandTotal.toFixed(2));
var subtotal = $('#subtotal').val(grandTotal.toFixed(2));
$('#netamt').val(grandTotal.toFixed(2));
}
}
function calculateDiscount(){
var discount = $('#discount').val();
var adjustment = $('#adjustment').val();
var netamt = $('#subtotal').val();
var total = netamt - discount - adjustment;
$('#netamt').val(total.toFixed(2));
}
function calculateAdjustment (){
var discount = $('#discount').val();
var adjustment = $('#adjustment').val();
var netamt = $('#subtotal').val();
var total = netamt - discount - adjustment;
$('#netamt').val(total.toFixed(2));
}
$(document).on('click', '.js-sweetalert', function (e) {
$.ajaxSetup({
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
}
});
e.preventDefault();
var id = $(this).data('id');
swal({
title: "Are you sure?",
text: "Are You sure you want to delete this Purchase Order!",
type: "warning",
showCancelButton: true,
confirmButtonColor: "#DD6B55",
confirmButtonText: "Yes, delete it!",
closeOnConfirm: true
},
function() {
// console.log('here');
$.ajax({
type: "DELETE",
url: "{{url('/school/purchaseorder/')}}" +"/"+id,
data: {id:id}
})
.done(function(data) {
swal({
title: "Deleted",
text: "Quotation has been successfully deleted",
type: "success"
},function() {
location.reload();
});
})
.error(function(data) {
swal("Oops", "We couldn't connect to the server!", "error");
});
return false;
});
});
// Saving form data
$('#form').on('submit',function(e){
$.ajaxSetup({
header:$('meta[name="_token"]').attr('content')
});
var formData = new FormData($('#form')[0]);
$("#submit-btn").prop('disabled', true);
$.ajax({
type:"POST",
url: "{{url('school/purchaseorder') }}",
processData: false,
contentType: false,
data:formData,
dataType: 'json',
success:function(data){
if( data[Object.keys(data)[0]] === 'SUCCESS' ){
$("#submit-btn").prop('disabled', true);
window.location = "{{url('school/purchaseorder')}}";
}
else { //False Case: With error msg
$("#msg").html(data); //$msg is the id of empty msg
}
},
error: function(data){
if( data.status === 422 ) {
$("#submit-btn").prop('disabled', false);
var errors = data.responseJSON.errors;
var errorHtml = '<div class="alert alert-danger"><ul>';
$.each( errors, function( key, value ) {
if (key.split(".")[1] + '.idProduct' === key.split(".")[1] + '.' +key.split(".")[2])
{
errorrate = '<p class="help-block">' + value + '</p>';
$( '#producterror'+key.split(".")[1] ).html( errorrate );
}else{
errorHtml += '<li>' + value + '</li>';
}
});
if(errors['idSupplier']=== undefined){
$( '#vendor_error' ).empty();
}else{
errorname = '<span class="help-block"><strong>'+errors['idSupplier']+'</strong></span>';
$( '#vendor_error' ).html( errorname );
}
}
}
});
return false;
});
</script>
@stop
Copyright © 2021 -