BBnepal-Accounts/application/views/admin/addnewstudent.php
Sampanna Rimal 9cd05ef3cb commitall
2024-07-10 18:28:19 +05:45

823 lines
42 KiB
PHP

<style>
.register-row {
position: relative;
display: flex;
justify-content: space-between;
}
.passwrd-icon1 {
position: absolute;
top: 5px !important;
right: 8px;
cursor: pointer;
}
.upload-doc-btn-wrap {
position: relative;
}
.error {
color: red;
padding-top: 5px;
font-size: 12px;
}
.col-md-6.col-height {
height: 50px !important;
}
select.form-control:not([size]):not([multiple]) {
height: 33.1px;
}
</style>
<div class="wraper responsive-width">
<main class="container px-0" id="main">
<!----admin template section---->
<div class="admin_tempblock">
<div class="admin_tempsec">
<div class="admin_sec">
<?php
if (!empty($this->session->flashdata('success'))) { ?>
<div class="alert alert-success">
<a href="#" class="close" data-dismiss="alert">&times;</a>
<strong>Success!</strong> <?php echo $this->session->flashdata('success'); ?>
</div>
<?php
}
if (!empty($this->session->flashdata('error'))) {
?>
<div class="alert alert-danger">
<a href="#" class="close" data-dismiss="alert">&times;</a>
<strong>Failed!</strong> <?php echo $this->session->flashdata('error'); ?>
</div>
<?php } ?>
<form id="addEditBatchForm" method="post" action="<?php echo base_url(); ?>admin/add-new-student" enctype="multipart/form-data">
<div class="col-md-12 px-0">
<div class="register-form">
<div class="row">
<div class="col-md-12">
<div class="h4"><?php echo $title; ?></div>
</div>
</div>
<br>
<div class="card">
<div class="card-body">
<h5 class="card-title h6">Student Details</h5>
<div class="row">
<div class="col-md-12">
<div class="row">
<div class="col">
<label class="has-float-label mb-0">
<input type="text" name="sname" class="sname form-control" id="sname" placeholder="Student Full name" />
<span> Full Name <b class="text-danger">*</b> </span>
</label>
<label id="sname-error" class="error my-0 px-1 py-0" style="display:none;" for="sname"></label>
</div>
<div class="col">
<label class="has-float-label mb-0">
<input type="text" name="sdob" id='sdob' class="nepal-date sdob form-control" placeholder=" DOB (YYYY-mm-dd)" width="100%">
<span> Date Of Birth (B.S.) <b class="text-danger">*</b> </span>
</label>
<label id="sdob-error" class="error my-0 px-1 py-0" style="display:none;" for="sdob"></label>
</div>
<div class="col">
<label class="has-float-label mb-0">
<input type="text" name="siemis" class="siemis form-control" id="siemis" placeholder="Student IEMIS Number" />
<span> IEMIS </span>
</label>
</div>
<div class="w-100 mt-3"></div>
<div class="col">
<label class="has-float-label mb-0">
<input type="text" name="smobile" class="smobile form-control" id="smobile" placeholder="Contact Number" />
<span> Contact Number </span>
</label>
<label id="smobile-error" class="error my-0 px-1 py-0" style="display:none;" for="smobile"></label>
</div>
<div class="col">
<div class="d-flex align-items-center pt-1">
<label for="Male" class="mb-0 pr-2"> Gender:</label>
<div class="register-radio">
<label for="Male" class="mb-0 px-1"><input type="radio" id="Male" name="sgender" value="Male" style="height: 12px; width: 15px;"> Male </label>
</div>
<div class="register-radio">
<label for="Female" class="mb-0 px-1"><input type="radio" id="Female" name="sgender" value="Female" style="height: 12px; width: 15px;"> Female</label>
</div>
<div class="register-radio">
<label for="Other" class="mb-0 px-1"><input type="radio" id="Other" name="sgender" value="Other" style="height: 12px; width: 15px;"> Other</label>
</div>
</div>
<label id="sgender-error" class="error" style="display:none;" for="sgender"></label>
</div>
<div class="col">
</div>
</div>
</div>
</div>
</div>
</div>
<div class="card mt-3">
<div class="card-body">
<h5 class="card-title h6">Course Details</h5>
<div class="row">
<div class="col-md-12">
<div class="row">
<div class="col">
<label class="has-float-label mb-0">
<select name="sbatch" class="sbatch form-control custom-select" id="sbatch">
<option value="">Select Batch</option>
<?php foreach ($batch as $c) { ?>
<option value="<?= $c['id'] ?>"><?= $c['b_name'] ?></option>
<?php } ?>
</select>
<span> Batch <b class="text-danger">*</b> </span>
</label>
<label id="sbatch-error" class="error my-0 px-1 py-0" style="display:none;" for="sbatch"></label>
</div>
<div class="col">
<label class="has-float-label mb-0">
<select name="scourse" class="scourse form-control custom-select" id="scourse">
<option value="">Select Course</option>
<?php foreach ($courses as $c) { ?>
<option value="<?php echo $c['id'] ?>"><?php echo $c['course_name'] ?></option>
<?php } ?>
</select>
<span> Course <b class="text-danger">*</b> </span>
</label>
<label id="scourse-error" class="error my-0 px-1 py-0" style="display:none;" for="scourse"></label>
</div>
<div class="col">
<label class="has-float-label mb-0">
<select name="s_section" class="s_section form-control custom-select" id="s_section">
<option value=''> Select Section </option>
</select>
<span> Section <b class="text-danger">*</b> </span>
</label>
<label id="s_section-error" class="error my-0 px-1 py-0" style="display:none;" for="s_section"></label>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="card mt-3">
<div class="card-body">
<h5 class="card-title h6">Guardian Details</h5>
<div class="row">
<div class="col-md-12">
<div class="row">
<div class="col">
<label class="has-float-label mb-0">
<input type="text" name="sfathername" class="sfathername form-control" id="sfathername" placeholder="Student Father name" />
<span> Father Name </span>
</label>
<label id="sfathername-error" class="error my-0 px-1 py-0" style="display:none;" for="sfathername"></label>
</div>
<div class="col">
<label class="has-float-label mb-0">
<input type="text" name="sfcontact" class="sfcontact form-control" id="sfcontact" placeholder="Father Contact Number" />
<span> Contact Number </span>
</label>
<label id="sfcontact-error" class="error my-0 px-1 py-0" style="display:none;" for="sfcontact"></label>
</div>
<div class="w-100 mt-3"></div>
<div class="col">
<label class="has-float-label mb-0">
<input type="text" name="smothername" class="smothername form-control" id="smothername" placeholder="Student Mother name" />
<span> Mother Name </span>
</label>
<label id="smothername-error" class="error my-0 px-1 py-0" style="display:none;" for="smothername"></label>
</div>
<div class="col">
<label class="has-float-label mb-0">
<input type="text" name="smcontact" class="smcontact form-control" id="smcontact" placeholder="Mother Contact Number" />
<span> Contact Number </span>
</label>
<label id="smcontact-error" class="error my-0 px-1 py-0" style="display:none;" for="smcontact"></label>
</div>
<div class="w-100 mt-4"></div>
<h5 class="card-title h6 w-100 px-3">Local Guardian (If any)</h5>
<div class="col">
<label class="has-float-label mb-0">
<input type="text" name="slgname" class="slgname form-control" id="slgname" placeholder="Full Name" />
<span> Full Name </span>
</label>
</div>
<div class="col">
<label class="has-float-label mb-0">
<input type="text" name="slgaddress" class="slgaddress form-control" id="slgaddress" placeholder="Address" />
<span> Address </span>
</label>
</div>
<div class="col">
<label class="has-float-label mb-0">
<input type="text" name="slgcontact" class="slgcontact form-control" id="slgcontact" placeholder="Contact Number" />
<span> Contact Number </span>
</label>
<label id="smcontact-error" class="error my-0 px-1 py-0" style="display:none;" for="smcontact"></label>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="card mt-3">
<div class="card-body">
<h5 class="card-title h6">Permanent Address</h5>
<div class="row">
<div class="col-md-12">
<div class="row">
<div class="col">
<label class="has-float-label mb-0">
<input type="text" name="p_ward_no" class="p_ward_no form-control" id="p_ward_no" placeholder="Ward No." />
<span> Ward No. </span>
</label>
</div>
<div class="col">
<label class="has-float-label mb-0">
<input type="text" name="p_saddress1" class="p_saddress1 form-control" id="p_saddress1" placeholder="Ward No." />
<span> Address </span>
</label>
</div>
<div class="col">
<label class="has-float-label mb-0">
<input type="text" name="p_district" class="p_district form-control" id="p_district" placeholder="District" />
<span> District </span>
</label>
</div>
<div class="col">
<label class="has-float-label mb-0">
<select name="p_province" class="p_province form-control custom-select" id="p_province">
<option value="">Select Province</option>
<?php foreach ($provinces as $province) { ?>
<option value="<?= $province['name'] ?>" <?= $province['id'] == 7 ? 'selected' : '' ?>><?= $province['name'] ?></option>
<?php } ?>
</select>
<span> Province </span>
</label>
</div>
<div class="w-100 mt-3"></div>
<h5 class="card-title h6 w-100 px-3 mt-3">Local Address</h5>
<div class="col">
<input type="checkbox" name="same_as_per_add" id="sameAsPermanentAddress" checked /> Same as Permanent Address
</div>
<div class="w-100 mt-3" id="localAddress">
<div class="row px-3">
<div class="col">
<label class="has-float-label mb-0">
<input type="text" name="t_ward_no" class="p_ward_no form-control" id="t_ward_no" placeholder="Ward No." />
<span> Ward No. </span>
</label>
</div>
<div class="col">
<label class="has-float-label mb-0">
<input type="text" name="t_saddress" class="t_saddress form-control" id="t_saddress" placeholder="Ward No." />
<span> Address </span>
</label>
</div>
<div class="col">
<label class="has-float-label mb-0">
<input type="text" name="t_district" class="t_district form-control" id="t_district" placeholder="District" />
<span> District </span>
</label>
</div>
<div class="col">
<label class="has-float-label mb-0">
<select name="t_province" class="t_province form-control custom-select" id="t_province">
<option value="">Select Province</option>
<?php foreach ($provinces as $province) { ?>
<option value="<?= $province['name'] ?>" <?= $province['id'] == 7 ? 'selected' : '' ?>><?= $province['name'] ?></option>
<?php } ?>
</select>
<span> Province </span>
</label>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="card my-3">
<div class="card-body">
<h5 class="card-title">Documents</h5>
<label class="text-danger "> ** Accepted Only JPG and PNG</label>
<div class="row">
<div class="col-md-12">
<div class="row">
<div class="col-md-6">
<div class="upload-doc">
<label>Passport size photo</label>
<!-- <span id="uploaded-file">&nbsp</span> -->
<div class="upload-doc-btn-wrap">
<input type="file" name="photo" id="photo" name="No file uploaded" />
<label for="photo" class="upload-btn" id="uploadBtn1">Upload</label>
<label for="photo" class="upload-btn re-upload-btn" id="uploadBtn2">Upload</label>
</div>
</div>
</div>
<div class="col-md-6">
<div class="upload-doc">
<label>School certificate</label>
<!-- <span id="uploaded-file">&nbsp</span> -->
<div class="upload-doc-btn-wrap">
<input type="file" name="school" id="school" name="No file uploaded" accept=".png,.jpg*" />
<label for="school" class="upload-btn" id="uploadBtn3">Upload</label>
<label for="school" class="upload-btn re-upload-btn" id="uploadBtn4">Upload</label>
</div>
</div>
</div>
<div class="col-md-6">
<div class="upload-doc">
<label>Exam Results</label>
<!-- <span id="uploaded-file">&nbsp</span> -->
<div class="upload-doc-btn-wrap">
<input type="file" name="exam" id="exam" name="No file uploaded" accept=".png,.jpg*" />
<label for="exam" class="upload-btn" id="uploadBtn5">Upload</label>
<label for="exam" class="upload-btn re-upload-btn" id="uploadBtn6">Upload</label>
</div>
</div>
</div>
<div class="col-md-6">
<div class="upload-doc">
<label>Medical Certificate</label>
<!-- <span id="uploaded-file">&nbsp</span> -->
<div class="upload-doc-btn-wrap">
<input type="file" name="medical" id="medical" name="No file uploaded" accept=".png,.jpg*" />
<label for="medical" class="upload-btn" id="uploadBtn7">Upload</label>
<label for="medical" class="upload-btn re-upload-btn" id="uploadBtn8">Upload</label>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class=" my-2">
<div class="card-body">
<div class="row text-center justify-content-center">
<div class="col-md-8 align-self-center ">
<div class="register-btn">
<button class="btn btn-success btn-sm pr-5 pl-5" type="submit" id="">Add</button>
<a href="<?= base_url(); ?>admin/student" class="btn btn-sm pr-5 pl-5" style="background-color:#032da1;color:white;">Back</a>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</form>
</div>
</div>
</div>
<!----admin template section end---->
</main>
<!--End right-top side-->
</div>
<script>
// if ($("#sameAsPermanentAddress").is(':checked'))
// $("#localAddress").show(); // checked
// else
$("#localAddress").hide(); // unchecked
$('#sameAsPermanentAddress').change(function() {
if ($(this).is(":checked")) {
// it is checked
$("#localAddress").hide();
} else {
$("#localAddress").show();
}
});
$("#p_icon3").click(function() {
$(this).toggleClass("icon-y");
var input = $("#password3");
if (input.attr("type") == "password") {
input.attr("type", "text");
} else {
input.attr("type", "password");
}
});
$("#p_icon4").click(function() {
$(this).toggleClass("icon-y");
var input = $("#password4");
if (input.attr("type") == "password") {
input.attr("type", "text");
} else {
input.attr("type", "password");
}
});
// $('#sbatch').change(function() {
// var sbatch = $(this).val();
// $('#totalfee').val('');
// var divData='';
// if (sbatch != '' && sbatch != 0) {
// $('#batch_error').addClass("d-none");
// $.ajax({
// url: "<?php //echo base_url();
?>Admin/get_batch_course",
// method: "post",
// data: {
// batch_id: sbatch,
// },
// dataType: "json",
// success: function(response) {
// divData += "<option value=''> Select Course </option>";
// if(response != ''){
// $.each(response, function(i, coursedata) {
// divData += "<option value='"+coursedata.id+"'>"+coursedata.course_name+"</option>";
// });
// }
// else {
// divData += "<option value=''> -- No course's Found --</option>";
// // $('#course_error_msg').text("Please create application fee for particular course");
// }
// $('#scourse').empty().append(divData);
// }
// });
// } else {
// $('#batch_error').removeClass("d-none");
// }
// });
$('#scourse').change(function() {
var course = $('#scourse option:selected').val();
var batch = $('#sbatch option:selected').val();
var divData = '';
var div_data = '';
var total_fee = '';
$('#fee-section').html("");
$('#total-fee').text();
if (course != '' && course != 0) {
$('#course_error').addClass("d-none");
$.ajax({
url: "<?php echo base_url(); ?>Admin/get_section_by_course",
method: "post",
data: {
course_id: course,
batch_id: batch
},
dataType: "json",
success: function(response) {
// section options code and start from here
divData += "<option value=''> Select Section </option>";
if (response.sections != '') {
$.each(response.sections, function(i, sectiondata) {
divData += "<option value='" + sectiondata.section_id + "'>" + sectiondata.section_name + "</option>";
});
}
// $('#course_error_msg').text();
else {
divData += "<option value=''> -- No Section's Found --</option>";
}
$('#s_section').empty().append(divData);
// section options code here End from here
}
});
} else {
$('#course_error').removeClass("d-none");
}
});
</script>
<script>
jQuery.validator.addMethod("fullnameregex", function(value, element) {
return this.optional(element) || /^[a-zA-Z]{3,30}$/.test(value);
}, 'Please enter alpha characters only ');
jQuery.validator.addMethod("passwordregex", function(value, element) {
return this.optional(element) || /^(?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[@$#!%*?&])[A-Za-z\d@$!%*#?&]{6,16}$/.test(value);
}, 'Your password must be atleast 6 characters long, which inculdes one upper case, one numerical value and one special character.');
jQuery.validator.addMethod("emailregex", function(value, element) {
return this.optional(element) || /^[a-zA-Z0-9._-]+@[a-zA-Z0-9-]+\.[a-zA-Z.]{2,8}$/.test(value);
}, 'Email Address is invalid: Please enter a valid email address.');
jQuery.validator.addMethod("phonenumberregex", function(value, element) {
return this.optional(element) || /^[0-9]{8,14}$/.test(value);
}, 'Please enter a 8-14 digits vaild phone number.');
jQuery.validator.addMethod("zipregex", function(value, element) {
return this.optional(element) || /^[0-9]{3,8}$/.test(value);
}, 'Please enter 3 - 8 digits number: digits only allowed');
jQuery.validator.addMethod("genral_regex", function(value, element) {
return this.optional(element) || /^[a-zA-Z -#]{1,50}$/.test(value);
}, 'Please enter alpha characters only');
jQuery.validator.addMethod("alphanumeric_regex", function(value, element) {
return this.optional(element) || /^[a-zA-Z0-9 -#]{1,50}$/.test(value);
}, 'Please enter alpha characters only');
var v = $("#addEditBatchForm").validate({
ignore: ':hidden',
rules: {
sname: {
required: true,
minlength: 3,
maxlength: 30,
},
ssname: {
required: true,
minlength: 1,
genral_regex: true
},
semail: {
required: true,
email: true,
emailregex: true
},
semailre: {
required: true,
equalTo: '[name="semail"]'
},
spaswd: {
required: true,
minlength: 6,
maxlength: 12,
passwordregex: true
},
spaswdre: {
required: true,
equalTo: '[name="spaswd"]'
},
scontact: {
required: true,
minlength: 8,
maxlength: 14,
phonenumberregex: true
},
sdob: "required",
sgender: {
required: true
},
scourse: {
required: true
},
sbatch: {
required: true
},
s_section: {
required: true
},
semfname: {
required: true,
genral_regex: true
},
semlname: {
required: true,
minlength: 1,
genral_regex: true
},
semphone: {
required: true,
minlength: 8,
maxlength: 14,
phonenumberregex: true
},
scountry: {
required: true,
genral_regex: true
},
sstate: {
required: true,
genral_regex: true
},
saddress1: {
required: true
},
szipcode: {
required: true,
zipregex: true
},
sibling_id: {
required: true,
alphanumeric_regex: true
},
// school: {
// required: true,
// },
// photo: {
// required: true,
// },
// exam: {
// required: true,
// },
// medical: {
// required: true,
// },
amount: {
required: true
},
totalfee: 'required',
payment_method: 'required'
},
messages: {
semailre: {
required: "Enter your Email",
equalTo: "Please enter the same email address again.",
},
spaswdre: {
equalTo: "Please enter the same password again.",
},
semphone: {
minlength: "Please Enter a 8 digits valid phone Number",
maxlength: "Please Enter a 14 digits valid phone Number",
},
scontact: {
minlength: "Please Enter a 8 digits valid phone Number",
maxlength: "Please Enter a 14 digits valid phone Number",
},
payment_method: {
required: "Please Select Payment Method",
},
totalfee: {
required: "Fees required",
}
},
submitHandler: function(form, e) {
e.preventDefault();
var appFee = $('#totalfee').val();
var cash = $("#payment_method option:selected").val();
var dic = $("#dicount_scholar option:selected").val();
if (cash === 'cash' && (dic === 'discount' || dic === 'scholarship')) {
if (!$('.dynamic_discount').val()) {
$('.item_err').empty();
$('.dynamic_discount').after(
'<span class="item_err" style="color:red">Please enter amount </span>');
} else if (parseInt($('.dynamic_discount').val()) > parseInt(appFee)) {
$('.item_err').empty();
$('.dynamic_discount').after(
'<span class="item_err" style="color:red">Please enter amount which is less than the current fee (' +
appFee + ')</span>');
} else {
$('.item_err').empty();
form.submit();
}
} else {
$('.item_err').empty();
form.submit();
}
}
});
function add_dicount_scholar(ele) {
$('#discount_scholarship_div').empty();
if (ele.value == 'discount' || ele.value == 'scholarship') {
$('#discount_scholarship_div').append(
'<input type="text" onkeypress="return numbersOnlyValidation(event)" min="0" onkeyup="deductAmountFromTotalFee(this)" name="scOrDesc" class="dynamic_discount form-control" placeholder="Enter the amount" class="form-control" />'
);
}
}
const deductAmountFromTotalFee = (input_item) => {
let deductAmt = (input_item.value) ? input_item.value : 0
let totalfee = $('#totalfee').val();
let TotalpayableAmt = (totalfee) ? totalfee : 0;
if (parseInt(deductAmt) > parseInt(TotalpayableAmt)) {
$('.item_err').empty();
$(input_item).after(
'<span class="item_err" style="color:red">Please enter amount which is less than the current fee (' +
TotalpayableAmt + ')</span>');
} else {
$('.item_err').empty();
}
}
function numbersOnlyValidation(e) {
var keyCode = e.keyCode || e.which;
//Regex for Valid Characters i.e. Alphabets and Numbers.
var regex = /^[0-9]+$/;
//Validate TextBox value against the Regex.
var isValid = regex.test(String.fromCharCode(keyCode));
return isValid;
}
</script>
<script type="text/javascript">
$(function() {
$("#sibling").change(function() {
if (this.checked) {
$('#sibling_outer_div').show();
} else {
$('#sibling_outer_div').hide();
}
});
$('#sibling_id').change(function() {
let val = $(this).val();
if (val.length > 0) {
$.ajax({
url: '<?php echo base_url() ?>' + 'admin/ajax_check_if_exists',
data: {
value: val,
column: 'studentId',
table: 'students',
required: 'parent_username'
},
type: 'POST',
async: false,
success: function(data) {
console.log(data);
$('#sibling_id_err').empty();
if (data == 'failed') {
console.log('failed');
$('#sibling_id_err').text('There is no student with provided Id : ' + val);
$('#sibling_id').val('');
} else {
console.log(data);
$('#sibling_parent').val(data);
}
}
});
}
})
})
</script>