BBnepal-Accounts/library/application/views/lms-admin/add-edit-issue-book.php
Sampanna Rimal 9cd05ef3cb commitall
2024-07-10 18:28:19 +05:45

457 lines
27 KiB
PHP

<main class="common_margin" id="main">
<div class="main-wrap">
<div class="dashboard-cover">
<div class="subsec_sec">
<div class="subject_l_new">
<div class="subject_lsec">
<a href="javascript:history.back()"><button class="btn btn-dark btn-sm">Back</button></a>
<div class="common-heading">
<h2>Issue Book</h2>
</div>
<?php if ($this->session->flashdata('success')) : ?>
<div class="alert alert-success"><strong>Success!</strong><?= $this->session->flashdata('success'); ?></div>
<?php endif; ?>
<?php if ($this->session->flashdata('failure')) : ?>
<div class="alert alert-danger"><strong>Failure!</strong><?= $this->session->flashdata('failure'); ?></div>
<?php endif; ?>
<form id="issuedBookForm">
<input type="hidden" id="divCount" value="1">
<input type="hidden" id="no_of_book_per_user" value="<?= $gSData['no_of_book_per_user']; ?>">
<div class="common-sub-heading">Student Details</div>
<div class="subject_lformarea book-form-area">
<div class="form-group">
<input type="text" class="form-control txtData" name="eu_id" id="eu_id" placeholder="Student ID" onkeyup="getEndUserData(this.value)" autocomplete="off">
<p class="form_err" id="error-eu_unique_id"></p>
</div>
<div class="form-group">
<input type="text" class="form-control txtData" name="student_class" id="student_class" placeholder="Class" readonly>
<p class="form_err" id="error-student_class"></p>
</div>
<div class="form-group">
<input type="text" class="form-control txtData" name="fname" id="fname" placeholder="First Name" readonly>
<p class="form_err" id="error-fname"></p>
</div>
<div class="form-group">
<input type="text" class="form-control txtData" name="lname" id="lname" placeholder="Last Name" readonly>
<p class="form_err" class="error-lname"></p>
</div>
</div>
<div style="color:red;font-size: small;" id="alertMsg"></div>
<input type="hidden" id="rem_issued_book_cnt" value="" />
<input type="hidden" id="ttl_issue_book_cnt" value="" />
<div class="common-sub-heading" id="bookDetailDiv">Book Details</div>
<div class="subject_lformarea book-form-area" id="hidebookDiv1">
<div class="form-group">
<input type="text" class="form-control txtData" name="book_id" id="book_id1" placeholder="ISBN" onkeyup="getBookData(this.value, 1)">
<p class="form_err" id="error-book_id"></p>
<i class="fas fa-barcode"></i>
</div>
<div class="form-group">
<input type="text" class="form-control txtData" name="title" id="title1" placeholder="Book Title" readonly>
<p class="form_err"></p>
</div>
<div class="form-group">
<input type="text" class="form-control txtData" name="category" id="category1" placeholder="Category" readonly>
<p class="form_err"></p>
</div>
<div class="form-group">
<input type="text" class="form-control txtData" name="author" id="author1" placeholder="Author" readonly>
<p class="form_err"></p>
</div>
<div class="form-group">
<input type="text" class="form-control txtData" name="publisher" id="publisher1" placeholder="Publisher" readonly>
<p class="form_err"></p>
</div>
<div class="form-group">
<input type="number" class="form-control txtData" name="year" id="year1" placeholder="Year" readonly>
<p class="form_err"></p>
</div>
<div class="form-group">
<input type="text" class="form-control txtData" name="ttl_pages" id="ttl_pages1" placeholder="Total Pages" readonly>
<p class="form_err"></p>
</div>
<div class="form-group">
<input type="text" class="form-control txtData" name="description" id="description1" placeholder="Description" readonly>
<p class="form_err"></p>
</div>
<div class="form-group assign_subject">
<select class="form-control txtData" name="book_health[]" id="book_health1">
<option value="">Select Book Health</option>
<option value="good">Good</option>
<option value="average">Average</option>
<option value="damaged">Damaged</option>
</select>
<p class="form_err" id="error-book_health"></p>
</div>
<div class="form-group">
<input type="date" class="form-control txtData" name="issued_date[]" id="issued_date1" placeholder="Date of Issue" readonly>
<p class="form_err" id="error-issued_date"></p>
</div>
<div class="form-group">
<input type="date" class="form-control txtData" name="return_date[]" id="return_date1" placeholder="Date of Return" readonly>
<p class="form_err" id="error-return_date"></p>
</div>
</div>
<p class="form_err" id="error-existingBook1"></p>
<div class="addBookWrap">
<button type="submit" id="button1" class="subject_addbtn add-btn-border" onclick="addMoreBook()">Add another book</button>
</div>
<div class="subject_lformarea book-form-area" id="moreBookDetailDiv"></div>
</form>
</div>
</div>
<div class="sibject_r_new">
<div class="dashboard-cover-wrap">
<form id="iBForm" method="POST">
<input type="hidden" name="name" value="1">
<input type="hidden" name="id" id="id" value="<?= $idVal; ?>">
<input type="hidden" name="eu_unique_id" id="eu_unique_id" value="">
<input type="hidden" name="issueddate" id="issueddate" value="">
<input type="hidden" name="returndate" id="returndate" value="">
<input type="hidden" name="bookhealth" id="bookhealth" value="">
<input type="hidden" name="ttlrows" id="ttlrows" value="">
<table id="tbl" class="display dataTable table-responsive">
<thead>
<tr>
<th>Sl No.</th>
<th>ISBN</th>
<th>Title</th>
<th>Action</th>
</tr>
</thead>
<tbody id="contentBody"></tbody>
</table>
<div class="issue_book_btn">
<button type="submit" class="subject_addbtn" onclick="saveData()">Issue Book</button>
</div>
<p style="color:red;" id="error-msg"></p>
</form>
</div>
</div>
</div>
</div>
</div>
</main>
<!--End right-top side-->
</div>
<script defer src="<?= base_url(); ?>assets-lms/js/bootstrap-select.min.js"></script>
<script src="<?= base_url(); ?>assets-lms/js/jquery-3.4.1.min.js"></script>
<script src="<?= base_url(); ?>assets-lms/js/jquery.validate.js"></script>
<script src="<?= base_url(); ?>assets-lms/js/additional-methods.js"></script>
<script src="<?= base_url(); ?>assets-lms/js/bootstrap.min.js"></script>
<script src="<?= base_url(); ?>assets-lms/js/popper.min.js"></script>
<script defer src="<?= base_url(); ?>assets-lms/js/all.js"></script>
<script defer src="<?= base_url(); ?>assets-lms/js/main.js"></script>
<script src="<?= base_url(); ?>assets-lms/owl-carousel/js/owl.carousel.min.js"></script>
<script>
$(document).ready(function() {
$('.user-drpdown').click(function() {
$('.drpdown-items').toggle();
});
});
//table js
$('#tbl').DataTable({
"lengthMenu": [
[5, 10, 25, 50, -1],
[5, 10, 25, 50, "All"]
]
});
//table js end
//multiple select js start
$('select').selectpicker();
//multiple select js end
</script>
<script>
function getEndUserData(eu_id) {
$.ajax({
type: 'post',
url: '<?= base_url(); ?>LmsAdmin/getStudentDataById',
data: {
'id': eu_id
},
success: function(result) {
var obj = JSON.parse(result);
var stdname = obj.name.split(" ");
var rembook = (obj.ttl_issued_book_cnt) - (obj.eu_issued_book_cnt);
var html = "You have already issued " + obj.eu_issued_book_cnt + " book out of " + obj.ttl_issued_book_cnt + " books, remaining you can issue " + rembook + " book to this user.";
$('#student_class').val(obj.class_name);
$('#fname').val(stdname[0]);
$('#lname').val(stdname[1]);
$('#rem_issued_book_cnt').val(rembook);
$('#ttl_issue_book_cnt').val(obj.ttl_issued_book_cnt);
$('#alertMsg').text(html);
}
});
}
function getBookData(isbn, ref) {
var tableName = 'lms_books';
$.ajax({
type: 'post',
url: '<?= base_url(); ?>LmsAdmin/getDataById',
data: {
'id': isbn,
'tableName': tableName
},
success: function(result) {
var obj = JSON.parse(result);
//issed_for = obj.lending_days;
//issed_date = getTodayDate();
//return_date = getreturndate(issed_for);
var crrDateObj = NepaliFunctions.GetCurrentBsDate();
issed_date = crrDateObj.year + '-' + NepaliFunctions.Get2DigitNo(crrDateObj.month) + '-' + NepaliFunctions.Get2DigitNo(crrDateObj.day);
retDateObj = NepaliFunctions.BsAddDays(crrDateObj, Number(obj.lending_days));
return_date = retDateObj.year + '-' + NepaliFunctions.Get2DigitNo(retDateObj.month) + '-' + NepaliFunctions.Get2DigitNo(retDateObj.day);
$('#title' + ref).val(obj.title);
$('#category' + ref).val(obj.category_name);
$('#author' + ref).val(obj.author);
$('#publisher' + ref).val(obj.publisher);
$('#year' + ref).val(obj.published_year);
$('#ttl_pages' + ref).val(obj.total_no_of_pages);
$('#description' + ref).val(obj.description);
$('#issued_date' + ref).val(issed_date);
$('#return_date' + ref).val(return_date);
}
});
}
function getTodayDate() {
var today = new Date();
var dd = String(today.getDate()).padStart(2, '0');
var mm = String(today.getMonth() + 1).padStart(2, '0');
var yyyy = today.getFullYear();
today = yyyy + '-' + mm + '-' + dd;
return today;
}
function getreturndate(issed_for) {
var today = new Date();
var newDate = addDays(today, issed_for);
if (issed_for == 0) {
var dd = String(today.getDate()).padStart(2, '0');
var mm = String(today.getMonth() + 1).padStart(2, '0');
var yyyy = today.getFullYear();
} else if (issed_for > 0) {
var dd = String(newDate.getDate()).padStart(2, '0');
var mm = String(newDate.getMonth() + 1).padStart(2, '0');
var yyyy = newDate.getFullYear();
}
today = yyyy + '-' + mm + '-' + dd;
return today;
}
function addDays(theDate, days) {
return new Date(theDate.getTime() + days * 24 * 60 * 60 * 1000);
}
</script>
<script>
function addMoreBook() {
$("#issuedBookForm").validate({
errorClass: 'error',
rules: {
eu_id: {
required: true
},
book_id: {
required: true
},
book_health: {
required: {
depends: function(element) {
return $("#book_health").val() == '';
}
}
}
},
messages: {
eu_id: {
required: "Student Id is required"
},
book_id: {
required: "ISBN is required"
},
book_health: {
required: "Book Health is required"
}
},
errorPlacement: function(error, element) {
if (element.attr("name") == "eu_id") {
error.appendTo($("#error-eu_unique_id"));
} else if (element.attr("name") == "book_id") {
error.appendTo($("#error-book_id"));
} else if (element.attr("name") == "book_health") {
error.appendTo($("#error-book_health"));
} else {
error.appendTo(element);
}
},
submitHandler: function(form) {
var dcnts = $('#divCount').val();
var bookIsbn = $('#book_id' + dcnts).val();
$.ajax({
type: 'post',
url: '<?= base_url(); ?>LmsAdmin/checkExistingBook',
data: {
'isbn': bookIsbn
},
success: function(result) {
if (result == 0) {
$('#error-existingBook' + dcnts).text('The book is out of stock');
}
if (result == 1) {
$('#error-existingBook' + dcnts).html('');
var rem_issue_book = $('#rem_issued_book_cnt').val();
var ttl_issue_book = $('#ttl_issue_book_cnt').val();
var ttlrows = $('#contentBody tr').length;
$('#ttlrows').val(ttlrows);
var rowCount = $('#tbl tr').length;
if (rowCount <= ttl_issue_book) {
var eu_id = $('#eu_id').val();
var iDate = $("input[name='issued_date[]']").map(function() {
return $(this).val();
}).get();
var rDate = $("input[name='return_date[]']").map(function() {
return $(this).val();
}).get();
var bhealth = [];
$('select[name="book_health[]"] option:selected').each(function() {
bhealth.push($(this).val());
});
$('#eu_unique_id').val(eu_id);
$('#issueddate').val(iDate);
$('#returndate').val(rDate);
$('#bookhealth').val(bhealth);
var dcnt = $('#divCount').val();
var incval = Number(dcnt) + 1;
$('#divCount').val(incval);
var nobpu = Number($('#no_of_book_per_user').val());
if (dcnt == 1) {
var extval = dcnt;
} else {
var extvals = $('#divCount').val();
extval = extvals - 1;
}
var isbn = $('#book_id' + extval).val();
var title = $('#title' + extval).val();
htmll = '<tr id="rowcnt' + extval + '"><td><span class="text-center">' + extval + '</span></td><td>' + isbn + '</td><input type="hidden" name="isbn[]" id="isbn" value="' + isbn + '"><td>' + title + '</td><input type="hidden" name="title[]" id="title" value="' + title + '"><td><div class="sub_tabbtnsec"><div class="sub_delbtn"><i class="fa fa-trash" aria-hidden="true"></i></div></div></td></tr>';
$('#contentBody').append(htmll);
$('#button' + extval).hide();
var thestring = '#hidebookDiv' + incval;
var thenum = thestring.replace(/^\D+/g, '');
if (thenum >= dcnt) {
$('#hidebookDiv' + dcnt).hide();
}
if (extval <= nobpu) {
var html = '<div class="subject_lformarea book-form-area morediv" id="hidebookDiv' + incval + '"><div class="form-group">';
html += '<input type="text" class="form-control txtData" name="book_id" id="book_id' + incval + '" placeholder="ISBN" onkeyup="getBookData(this.value, ' + incval + ')" autocomplete="off">';
html += '<p class="form_err" id="error-book_id"></p>';
html += '<i class="fas fa-barcode"></i>';
html += '</div>';
html += '<div class="form-group">';
html += '<input type="text" class="form-control txtData" name="title" id="title' + incval + '" placeholder="Book Title" readonly>';
html += '<p class="form_err"></p>';
html += '</div>';
html += '<div class="form-group">';
html += '<input type="text" class="form-control txtData" name="category" id="category' + incval + '" placeholder="Category" readonly>';
html += '<p class="form_err"></p>';
html += '</div>';
html += '<div class="form-group">';
html += '<input type="text" class="form-control txtData" name="author" id="author' + incval + '" placeholder="Author" readonly>';
html += '<p class="form_err"></p>';
html += '</div>';
html += '<div class="form-group">';
html += '<input type="text" class="form-control txtData" name="publisher" id="publisher' + incval + '" placeholder="Publisher" readonly>';
html += '<p class="form_err"></p>';
html += '</div>';
html += '<div class="form-group">';
html += '<input type="number" class="form-control txtData" name="year" id="year' + incval + '" placeholder="Year" readonly>';
html += '<p class="form_err"></p>';
html += '</div>';
html += '<div class="form-group">';
html += '<input type="text" class="form-control txtData" name="ttl_pages" id="ttl_pages' + incval + '" placeholder="Total Pages" readonly>';
html += '<p class="form_err"></p>';
html += '</div>';
html += '<div class="form-group">';
html += '<input type="text" class="form-control txtData" name="description" id="description' + incval + '" placeholder="Description" readonly>';
html += '<p class="form_err"></p>';
html += '</div>';
html += '<div class="form-group assign_subject">';
html += '<select class="form-control txtData" name="book_health[]" id="book_health' + incval + '">';
html += '<option value="">Select Book Health</option>';
html += '<option value="good">Good</option>';
html += '<option value="average">Average</option>';
html += '<option value="damaged">Damaged</option>';
html += '</select><p class="form_err" id="error-book_health"></p>';
html += '</div>';
html += '<div class="form-group">';
html += '<input type="date" class="form-control txtData" name="issued_date[]" id="issued_date' + incval + '" placeholder="Date of Issue" readonly>';
html += '<p class="form_err" id="error-issued_date"></p>';
html += '</div>';
html += '<div class="form-group">';
html += '<input type="date" class="form-control txtData" name="return_date[]" id="return_date' + incval + '" placeholder="Date of Return" readonly>';
html += '<p class="form_err" id="error-return_date"></p>';
html += '</div></div><p class="form_err" id="error-existingBook' + incval + '" ></p>';
html += '<div class="addBookWrap">';
html += '<button type="submit" id="button' + incval + '" class="subject_addbtn add-btn-border" onclick="addMoreBook()">Add another book</button>';
html += '</div>';
$('#moreBookDetailDiv').append(html);
}
} else {
if (rem_issue_book == 0) {
$('#error-existingBook' + dcnts).text('You can not issue book for this user.');
} else {
$('#error-existingBook' + dcnts).text('You can issue only ' + rem_issue_book + ' book for this user.');
}
}
}
}
});
}
});
}
</script>
<script>
$("#tbl").on('click', '.sub_delbtn', function() {
$(this).closest('tr').remove();
});
function saveData() {
var formdata = new FormData(form);
var eu_id = $()
var id = $('#id').val();
$.ajax({
type: 'post',
url: '<?= base_url(); ?>LmsAdmin/add_edit_issue_book/' + id,
data: formdata,
cache: false,
contentType: false,
processData: false,
success: function(result) {
alert(result);
}
});
}
</script>
</body>
</html>