This commit is contained in:
resicovenba 2018-01-11 16:09:22 +05:30
commit b2680ebf3b
14 changed files with 582 additions and 121 deletions

View File

@ -127,6 +127,7 @@ defined('DEFAULTACTIVITY') OR define('DEFAULTACTIVITY','T_StatusMaster');
defined('CERTIFICATION_MASTER') OR define('CERTIFICATION_MASTER','T_CertificationMaster');
defined('DAYBOOKMASTER') OR define('DAYBOOKMASTER','T_DayBookMaster');
defined('INCOMEOUTCOMEMASTER') OR define('INCOMEOUTCOMEMASTER','T_Income_Outcome_Master');
defined('FEES_INSTALLMENT') OR define('FEES_INSTALLMENT','T_Fees_Installments');

View File

@ -132,7 +132,7 @@ class Fees_Status_Controller extends REST_Controller {
$detailsChild['StudentID'] = $this->post('studID');
$detailsChild['FeesId'] = $this->post('feesID');
$detailsChild['BillNO'] = $this->post('billNO');
$detailsChild['ReceiptNo'] = $this->post('billNO');
$detailsChild['BillDate'] = $this->post('billDate');
$detailsChild['BillAmount'] = $this->post('billAmount');
$detailsChild['ModeOfPayment'] = $this->post('modeOfPayment');
@ -238,7 +238,9 @@ class Fees_Status_Controller extends REST_Controller {
$details['CreatedBy'] = $this->post('createdBy');
$details['CreatedOn'] = $now->format('Y-m-d H:i:s');
$updateDetails = $this->Fees_model->setFees($details);// Check if the users data store contains users (in case the database result returns NULL)
$jsonInstallmenData = $this->post('installmentItems');
$updateDetails = $this->Fees_model->setFees($details,$jsonInstallmenData);// Check if the users data store contains users (in case the database result returns NULL)
if ($updateDetails)
{
$updateDetails['status'] = REST_Controller::HTTP_OK;

View File

@ -266,7 +266,7 @@ class Fees_status_model extends CI_Model
}
// for get paid bill details
$this->db->select('ifnull(SUM((BillAmount)),0) as BillAmount,BillNO,BillDate,ModeOfPayment,BR.BranchName');
$this->db->select('ifnull(SUM((BillAmount)),0) as BillAmount,BillNO,BillDate,ModeOfPayment,ReceiptNo,BR.BranchName');
$this->db->from(STUDENTS_FEES_PAID.' as SFP');
$this->db->join(BRANCH.' as BR','BR.BranchCode = SFP.UpdatedBy','left');
$this->db->where('FeesId',$feeRow->FeesID);
@ -344,7 +344,7 @@ class Fees_status_model extends CI_Model
}
// for get paid bill details
$this->db->select('ifnull(SUM((BillAmount)),0) as BillAmount,BillNO,BillDate,ModeOfPayment,BR.BranchName');
$this->db->select('ifnull(SUM((BillAmount)),0) as BillAmount,BillNO,BillDate,ModeOfPayment,ReceiptNo,BR.BranchName');
$this->db->from(STUDENTS_FEES_PAID.' as SFP');
$this->db->join(BRANCH.' as BR','BR.BranchCode = SFP.UpdatedBy','left');
$this->db->where('FeesId',$feeRow->FeesID);
@ -370,6 +370,33 @@ class Fees_status_model extends CI_Model
public function updateFees($feesPaidDetails=null)
{
if($feesPaidDetails['UpdatedBy']=='All'){
$this->db->select('BranchID');
$this->db->where('FeesID', $feesPaidDetails['FeesId']);
$this->db->from(STUDENTS_FEES_STATUS.' as SFS');
$this->db->join(STUDENTCOURSE.' as SC', 'SC.CourseID = SFS.CourseID');
$getStudentBranch=$this->db->get()->result();
$feesPaidDetails['UpdatedBy'] = $getStudentBranch[0]->BranchID;
}
$this->db->select('BillNO');
$this->db->where('UpdatedBy', $feesPaidDetails['UpdatedBy']);
$getLastBillNo=$this->db->get(STUDENTS_FEES_PAID)->last_row();
if($getLastBillNo){
$strExplode= explode("-", $getLastBillNo->BillNO);
$n=$strExplode[1];
$n2 = str_pad($n + 1, 5, 0, STR_PAD_LEFT);
$splitString = substr($feesPaidDetails['UpdatedBy'], 0, 3);
$feesPaidDetails['BillNO']=$splitString.'-'.$n2;
}
else{
$n='00000';
$n2 = str_pad($n + 1, 5, 0, STR_PAD_LEFT);
$splitString = substr($feesPaidDetails['UpdatedBy'], 0, 3);
$feesPaidDetails['BillNO']=$splitString.'-'.$n2;
}
$this->db->select('BillNO');
$this->db->where('BillNO', $feesPaidDetails['BillNO']);
if($this->db->get(STUDENTS_FEES_PAID)->first_row()){
@ -381,6 +408,11 @@ class Fees_status_model extends CI_Model
$result['paidStatus'] = true;
$result['message'] = "Successfully fees details added";
// $entryOfCallTrack = $this->updateInCallTrack($trackDetails);
// day book entry
if($feesPaidDetails['ModeOfPayment']=='CASH' AND $feesPaidDetails['BillAmount']!='0'){
$dayBookEntry = $this->insertDayBookMaster($feesPaidDetails);
}
}
else{
@ -565,12 +597,13 @@ class Fees_status_model extends CI_Model
public function getFeesStructureAssign($student=null){
$this->db->select('ID,CourseID,ProgramType,FeesAmount,Sem_Year');
$this->db->where('CourseID',$student['CourseID']);
$this->db->order_by('ProgramType');
$feesDetails = $this->db->get(COURSE_FEES);
if($feesDetails->result()){
$result_array['feesStatus']=true;
foreach ($feesDetails->result() as $row){
$this->db->select('CourseFees, STFOrWR,Waiver,Others,SessionName,RollNo');
$this->db->select('FeesID,CourseFees, STFOrWR,Waiver,Others,SessionName,RollNo');
$this->db->where('StudentID',$student['StudentID']);
$this->db->where('CourseID',$student['CourseID']);
$this->db->where('FeesType',$row->ID);
@ -587,6 +620,17 @@ class Fees_status_model extends CI_Model
$fetchData['SessionName']=$existData[0]->SessionName;
$fetchData['RollNo']=$existData[0]->RollNo;
$fetchData['PayableFees']=$existData[0]->CourseFees+$existData[0]->STFOrWR+$existData[0]->Others-$existData[0]->Waiver;
// for installment details
$InstallemtResult = $this->getInstallmentDetails($existData[0]->FeesID);
if($InstallemtResult != false){
$fetchData['InstallmentDetails']=$InstallemtResult;
}
else{
$fetchData['InstallmentDetails']="";
}
$CourseFeesArray[]=$fetchData;
@ -603,6 +647,8 @@ class Fees_status_model extends CI_Model
$fetchData['SessionName']="";
$fetchData['RollNo']="";
$fetchData['PayableFees']=$row->FeesAmount;
// for installment details
$fetchData['InstallmentDetails']="";
$CourseFeesArray[]=$fetchData;
@ -625,9 +671,25 @@ class Fees_status_model extends CI_Model
else{
$result_array['feesStatus']=false;
}
return $result_array;
}
/*
* get installment details
* created by kms
* */
public function getInstallmentDetails($installment=null){
$this->db->select('ID,FeesID,Name,Amount,DueDate');
$this->db->where('FeesID',$installment);
$this->db->order_by('ID','ASC');
$installmentDetails = $this->db->get(FEES_INSTALLMENT);
if($installmentDetails->result()){
return $installmentDetails->result();
}
else{
return false;
}
}
/*
@ -635,85 +697,119 @@ class Fees_status_model extends CI_Model
* created by kms
* */
public function defaultCourseFeesDetails($student=null){
// get default course fees
$this->db->select('CourseID,CourseName,PC,TC,DC,MC,OtherFees');
$this->db->where('CourseID',$student['CourseID']);
$endFeesDetails = $this->db->get(COURSE);
$myArray = array();
if($endFeesDetails->result()){
foreach ($endFeesDetails->result() as $value ){
$pc_array = array('CourseID'=>$value->CourseID,'Sem_Year'=>'PC', 'ActualFees'=>$value->PC);
$tc_array = array('CourseID'=>$value->CourseID,'Sem_Year'=>'TC', 'ActualFees'=>$value->TC);
$dc_array = array('CourseID'=>$value->CourseID,'Sem_Year'=>'DC', 'ActualFees'=>$value->DC);
$mc_array = array('CourseID'=>$value->CourseID,'Sem_Year'=>'MC', 'ActualFees'=>$value->MC);
$other_array = array('CourseID'=>$value->CourseID,'Sem_Year'=>'OTHER', 'ActualFees'=>$value->OtherFees);
array_push($myArray,$pc_array);
array_push($myArray,$tc_array);
array_push($myArray,$dc_array);
array_push($myArray,$mc_array);
array_push($myArray,$other_array);
}
// check student fees paid details for get default course fees
// default course fees details in student status
foreach ($myArray as $row1){
$this->db->select('CourseFees,STFOrWR,Waiver,Others,SessionName,RollNo');
$this->db->where('StudentID',$student['StudentID']);
$this->db->where('CourseID',$student['CourseID']);
$this->db->where('FeesType',$row1['Sem_Year']);
$existFeesDetails = $this->db->get(STUDENTS_FEES_STATUS);
$this->db->select('ifnull(SUM((SFS.CourseFees)),0) as CourseFees');
$this->db->from(STUDENTS_FEES_STATUS.' as SFS');
$this->db->join(COURSE_FEES.' as CF', 'CF.ID = SFS.FeesType');
$this->db->where('SFS.CourseID',$student['CourseID']);
$this->db->where('SFS.StudentID',$student['StudentID']);
$feesAmount = $this->db->get()->result();
if($existData=$existFeesDetails->result()){
$fetchData['ExistValue']=1;
$fetchData['ID']=$row1['Sem_Year'];
$fetchData['CourseID']=$row1['CourseID'];
$fetchData['Sem_Year']=$row1['Sem_Year'];
$fetchData['ActualFees']=$existData[0]->CourseFees;
$fetchData['STFOrWR']=$existData[0]->STFOrWR;
$fetchData['Waiver']=$existData[0]->Waiver;
$fetchData['Others']=$existData[0]->Others;
$fetchData['SessionName']=$existData[0]->SessionName;
$fetchData['RollNo']=$existData[0]->RollNo;
$fetchData['PayableFees']=$existData[0]->CourseFees+$existData[0]->STFOrWR+$existData[0]->Others-$existData[0]->Waiver;
$this->db->select('ifnull(SUM((SFP.BillAmount)),0) as PaidAmount');
$this->db->from(STUDENTS_FEES_PAID.' as SFP');
$this->db->join(STUDENTS_FEES_STATUS.' as SFS', 'SFS.FeesID = SFP.FeesId');
$this->db->where('SFS.CourseID',$student['CourseID']);
$this->db->where('SFS.StudentID',$student['StudentID']);
$paidAmount = $this->db->get()->result();
$CourseFeesArray1[]=$fetchData;
if($feesAmount[0]->CourseFees <= $paidAmount[0]->PaidAmount){
// get default course fees
$this->db->select('CourseID,CourseName,PC,TC,DC,MC,OtherFees');
$this->db->where('CourseID',$student['CourseID']);
$endFeesDetails = $this->db->get(COURSE);
$myArray = array();
if($endFeesDetails->result()){
foreach ($endFeesDetails->result() as $value ){
$pc_array = array('CourseID'=>$value->CourseID,'Sem_Year'=>'PC', 'ActualFees'=>$value->PC);
$tc_array = array('CourseID'=>$value->CourseID,'Sem_Year'=>'TC', 'ActualFees'=>$value->TC);
$dc_array = array('CourseID'=>$value->CourseID,'Sem_Year'=>'DC', 'ActualFees'=>$value->DC);
$mc_array = array('CourseID'=>$value->CourseID,'Sem_Year'=>'MC', 'ActualFees'=>$value->MC);
$other_array = array('CourseID'=>$value->CourseID,'Sem_Year'=>'OTHER', 'ActualFees'=>$value->OtherFees);
array_push($myArray,$pc_array);
array_push($myArray,$tc_array);
array_push($myArray,$dc_array);
array_push($myArray,$mc_array);
array_push($myArray,$other_array);
}
else{
$fetchData['ExistValue']=0;
// default course fees details in student status
foreach ($myArray as $row1){
$this->db->select('FeesID,CourseFees,STFOrWR,Waiver,Others,SessionName,RollNo');
$this->db->where('StudentID',$student['StudentID']);
$this->db->where('CourseID',$student['CourseID']);
$this->db->where('FeesType',$row1['Sem_Year']);
$existFeesDetails = $this->db->get(STUDENTS_FEES_STATUS);
$fetchData['ID']=$row1['Sem_Year'];
if($existData=$existFeesDetails->result()){
$fetchData['ExistValue']=1;
$fetchData['ID']=$row1['Sem_Year'];
$fetchData['CourseID']=$row1['CourseID'];
$fetchData['Sem_Year']=$row1['Sem_Year'];
$fetchData['ActualFees']=$existData[0]->CourseFees;
$fetchData['STFOrWR']=$existData[0]->STFOrWR;
$fetchData['Waiver']=$existData[0]->Waiver;
$fetchData['Others']=$existData[0]->Others;
$fetchData['SessionName']=$existData[0]->SessionName;
$fetchData['RollNo']=$existData[0]->RollNo;
$fetchData['PayableFees']=$existData[0]->CourseFees+$existData[0]->STFOrWR+$existData[0]->Others-$existData[0]->Waiver;
// for installment details
$InstallemtResult = $this->getInstallmentDetails($existData[0]->FeesID);
if($InstallemtResult != false){
$fetchData['InstallmentDetails']=$InstallemtResult;
}
else{
$fetchData['CourseID']=$row1['CourseID'];
$fetchData['Sem_Year']=$row1['Sem_Year'];
$fetchData['ActualFees']=$row1['ActualFees'];
$fetchData['STFOrWR']="";
$fetchData['Waiver']="";
$fetchData['Others']="";
$fetchData['SessionName']="";
$fetchData['RollNo']="";
$fetchData['PayableFees']=$row1['ActualFees'];
$CourseFeesArray1[]=$fetchData;
$fetchData['InstallmentDetails']="";
}
$CourseFeesArray1[]=$fetchData;
}
else{
$fetchData['ExistValue']=0;
$fetchData['ID']=$row1['Sem_Year'];
$fetchData['CourseID']=$row1['CourseID'];
$fetchData['Sem_Year']=$row1['Sem_Year'];
$fetchData['ActualFees']=$row1['ActualFees'];
$fetchData['STFOrWR']="";
$fetchData['Waiver']="";
$fetchData['Others']="";
$fetchData['SessionName']="Nill";
$fetchData['RollNo']="";
$fetchData['PayableFees']=$row1['ActualFees'];
$fetchData['InstallmentDetails']="";
$CourseFeesArray1[]=$fetchData;
}
}
return $CourseFeesArray1;
}
else {
return false;
}
return $CourseFeesArray1;
}
else {
else{
return false;
}
}
/*
* set fees for student
* created by kms
* */
public function setFees($details=null){
public function setFees($details=null,$jsonData=null){
$this->db->select('FeesID');
$this->db->where('CourseID', $details['CourseID']);
$this->db->where('StudentID', $details['StudentID']);
@ -728,6 +824,35 @@ class Fees_status_model extends CI_Model
$updateDetails['Others'] = $details['Others'];
$updateDetails['UpdatedOn'] = $details['CreatedOn'];
$updateDetails['UpdatedBy'] = $details['CreatedBy'];
$installmentFeesID = $feesId[0]->FeesID;
foreach ($jsonData as $jrow){
$insertInstallment['FeesID'] = $installmentFeesID;
$insertInstallment['Name'] = $jrow['Name'];
$insertInstallment['Amount'] = $jrow['Amount'];
$insertInstallment['DueDate'] = $jrow['DueDate'];
$insertInstallment['CreatedBy'] = $details['CreatedBy'];
$insertInstallment['CreatedOn'] = $details['CreatedOn'];
if($jrow['ID'] =='' OR $jrow['ID'] =='undefined'){
$this->db->insert(FEES_INSTALLMENT, $insertInstallment);
}
else{
$updateInstallment['FeesID'] = $installmentFeesID;
$updateInstallment['Name'] = $jrow['Name'];
$updateInstallment['Amount'] = $jrow['Amount'];
$updateInstallment['DueDate'] = $jrow['DueDate'];
$updateInstallment['UpdatedBy'] = $details['CreatedBy'];
$updateInstallment['UpdatedOn'] = $details['CreatedOn'];
$this->db->where('ID',$jrow['ID']);
$this->db->update(FEES_INSTALLMENT, $updateInstallment);
}
}
$this->db->where('FeesID', $feesId[0]->FeesID);
$this->db->update(STUDENTS_FEES_STATUS, $updateDetails);
$result['setStatus'] = true;
@ -736,6 +861,45 @@ class Fees_status_model extends CI_Model
}
else{
$this->db->insert(STUDENTS_FEES_STATUS, $details);
$this->db->select('FeesID');
$this->db->where('CourseID', $details['CourseID']);
$this->db->where('StudentID', $details['StudentID']);
$this->db->where('FeesType', $details['FeesType']);
$existDb=$this->db->get(STUDENTS_FEES_STATUS)->last_row();
if($existDb){
$rowId = $existDb;
$installmentFeesID = $rowId->FeesID;
foreach ($jsonData as $jrow){
$insertInstallment['FeesID'] = $installmentFeesID;
$insertInstallment['Name'] = $jrow['Name'];
$insertInstallment['Amount'] = $jrow['Amount'];
$insertInstallment['DueDate'] = $jrow['DueDate'];
$insertInstallment['CreatedBy'] = $details['CreatedBy'];
$insertInstallment['CreatedOn'] = $details['CreatedOn'];
if($jrow['ID'] =='' OR $jrow['ID'] =='undefined'){
$this->db->insert(FEES_INSTALLMENT, $insertInstallment);
}
else{
$updateInstallment['FeesID'] = $installmentFeesID;
$updateInstallment['Name'] = $jrow['Name'];
$updateInstallment['Amount'] = $jrow['Amount'];
$updateInstallment['DueDate'] = $jrow['DueDate'];
$updateInstallment['UpdatedBy'] = $details['CreatedBy'];
$updateInstallment['UpdatedOn'] = $details['CreatedOn'];
$this->db->where('ID',$jrow['ID']);
$this->db->update(FEES_INSTALLMENT, $updateInstallment);
}
}
}
$result['setStatus'] = true;
$result['message'] = "Successfully fees details is added.";
@ -743,6 +907,36 @@ class Fees_status_model extends CI_Model
return $result;
}
/*
* insert day book master while fees update
* created by kms
* */
public function insertDayBookMaster($data=null){
$insertArray['Date'] = $data['BillDate'];
$insertArray['CreatedBy'] = $data['CreatedBy'];
$insertArray['CreatedOn'] = $data['CreatedOn'];
$insertArray['Description'] = $data['InternalComments'];
$insertArray['Amount'] = $data['BillAmount'];
$insertArray['Status'] = 'Pending';
$insertArray['BranchCode'] = $data['UpdatedBy'];
$this->db->select('ID,TypeID');
$this->db->where('TypeID', 'I002');
$this->db->where('TypeName', 'FEES');
$getIncome=$this->db->get(INCOMEOUTCOMEMASTER)->last_row();
if($getIncome){
$insertArray['Name'] = $getIncome->TypeID;
$insertArray['Type'] = $getIncome->ID;
$this->db->insert(DAYBOOKMASTER, $insertArray);
return true;
}
else{
return true;
}
}
}

View File

@ -67,7 +67,7 @@
"EMPLOYEE": "EMPLOYEE DETAILS",
"ANNOUNCEMENT": "ANNOUNCEMENT DETAILS",
"STATUS": "STATUS DETAILS",
"STUDENTSTATUS": "DEFAULT STUDENT ACTIVITY",
"STUDENTSTATUS": "STUDENT ACTIVITY STATUS",
"CERTIFICATETYPE": "CERTIFICATE TYPE",
"DAYBOOKMASTER":"DAY BOOK DETAILS"
},

View File

@ -34,6 +34,7 @@ app.controller('feesStatusCtrl', ["$scope","$rootScope","toaster", "$filter", "n
$scope.setModel = {
"feesType": "",
};
/*
* get payment options
@ -274,7 +275,9 @@ app.controller('feesStatusCtrl', ["$scope","$rootScope","toaster", "$filter", "n
/*
* set fees for student
* */
$scope.submitFeesForStudent = function (myModel, form,updateModel, loading) {
$scope.submitFeesForStudent = function (myModel, form,updateModel, loading,installment) {
var firstError = null;
if (form.$invalid) {
var field = null, firstError = null;
@ -291,6 +294,32 @@ app.controller('feesStatusCtrl', ["$scope","$rootScope","toaster", "$filter", "n
}
angular.element('.ng-invalid[name=' + firstError + ']').focus();
} else {
if(isNaN(installment.date)){
$scope.pushDueDate1= $rootScope.lastInstallemtDate;
}
else{
$scope.convertGetDate1=new Date(installment.date).toDateString();
$scope.pushDueDate1 = $filter('date')(new Date($scope.convertGetDate1), 'dd-MM-yyyy');
}
if(installment.ID !='' && installment.ID !==null && installment.ID !=undefined){
$rootScope.updateMoreItems.push({
ID: installment.ID,
Name: installment.name,
Amount: installment.amount,
DueDate: $scope.pushDueDate1
});
}
else{
$rootScope.updateMoreItems.push({
ID: "",
Name: installment.name,
Amount: installment.amount,
DueDate: $scope.pushDueDate1
});
}
$scope.ldloading5 = {};
$scope.ldloading5[loading.replace('-', '_')] = true;
@ -312,9 +341,8 @@ app.controller('feesStatusCtrl', ["$scope","$rootScope","toaster", "$filter", "n
other: updateModel.Others,
session: updateModel.SessionName,
rollNo: updateModel.RollNo,
createdBy: JSON.parse(localStorage.getItem('localObj')).localUserID,
installmentItems:$rootScope.updateMoreItems
}
};
@ -327,12 +355,18 @@ app.controller('feesStatusCtrl', ["$scope","$rootScope","toaster", "$filter", "n
/*$scope.setModel = {
"feesType": "",
};*/
$scope.myModelInstallemt.ID="";
$scope.myModelInstallemt.name="";
$scope.myModelInstallemt.amount="";
$scope.myModelInstallemt.date="";
$rootScope.updateMoreItems=[];
form.$setPristine(true);
} else {
$scope.ldloading5[loading.replace('-', '_')] = false;
swal("Failed!", response.data.message, "error");
$scope.getStudentSetFees(myModel.ID,myModel.CourseID,myModel.StudentID);
$rootScope.updateMoreItems.splice($scope.updateMoreItems.length-1);
// $scope.getStudentSetFees(myModel.ID,myModel.CourseID,myModel.StudentID);
}
});
@ -390,6 +424,12 @@ app.controller('feesStatusCtrl', ["$scope","$rootScope","toaster", "$filter", "n
$scope.feesStructureInfo="";
$scope.getStudentSetFees = function (ID,courseID,studeID) {
$scope.feesStructureInfo="";
$scope.myModelInstallemt.ID="";
$scope.myModelInstallemt.name="";
$scope.myModelInstallemt.amount="";
$scope.myModelInstallemt.date="";
$rootScope.lastInstallemtDate="";
$rootScope.updateMoreItems=[];
var setFees = {
method: 'POST',
url: apiPoint.url + 'getStudentFeesAssign/',
@ -409,14 +449,12 @@ app.controller('feesStatusCtrl', ["$scope","$rootScope","toaster", "$filter", "n
$scope.setModel = {
"feesType": "",
};
} else {
$scope.feesStructureInfo="";
$scope.setModel = {
"feesType": "",
};
@ -424,22 +462,114 @@ app.controller('feesStatusCtrl', ["$scope","$rootScope","toaster", "$filter", "n
});
}
/*
* set course fees amount
* */
/* $scope.changeFeesValues = function (model) {
console.log(model);
}*/
$scope.cancel = function () {
$scope.editId=-1;
$scope.studentFeesInfo="";
$scope.existStudentFeesDetails="";
$scope.getFeesUpdateStatus="";
$scope.viewId=-1;
}
/*
* get add more installment array
* created by kms
* */
$scope.myModelInstallemt = {
"ID":"",
"amount":"",
"name":"",
"date":"",
};
$rootScope.updateMoreItems=[];
$rootScope.clickMoreItems = function (model,form,setModel) {
$scope.convertGetDate='';
var firstError = null;
if (form.$invalid) {
var field = null, firstError = null;
for (field in form) {
if (field[0] != '$') {
if (firstError === null && !form[field].$valid) {
firstError = form[field].$stop_name;
}
if (form[field].$pristine) {
form[field].$dirty = true;
}
}
}
angular.element('.ng-invalid[name=' + firstError + ']').focus();
}
else {
if(isNaN(model.date)){
$scope.pushDueDate= $rootScope.lastInstallemtDate;
}
else{
$scope.convertGetDate=new Date(model.date).toDateString();
$scope.pushDueDate = $filter('date')(new Date($scope.convertGetDate), 'dd-MM-yyyy');
}
if(model.ID !='' && model.ID !==null && model.ID !=undefined){
$rootScope.updateMoreItems.push({
ID:model.ID,
Name: model.name,
Amount: model.amount,
DueDate: $scope.pushDueDate
});
}
else{
$rootScope.updateMoreItems.push({
ID:"",
Name: model.name,
Amount: model.amount,
DueDate: $scope.pushDueDate
});
}
$scope.myModelInstallemt.ID="";
$scope.myModelInstallemt.name="";
$scope.myModelInstallemt.amount="";
$scope.myModelInstallemt.date="";
}
}
/*
* change installment values
* */
$scope.changeInstallemt = function (model,form) {
$rootScope.updateMoreItems=[];
if(model.InstallmentDetails != ''){
$scope.myModelInstallemt.ID=model.InstallmentDetails[model.InstallmentDetails.length-1].ID;
$scope.myModelInstallemt.name=model.InstallmentDetails[model.InstallmentDetails.length-1].Name;
$scope.myModelInstallemt.amount=model.InstallmentDetails[model.InstallmentDetails.length-1].Amount;
$scope.myModelInstallemt.date=model.InstallmentDetails[model.InstallmentDetails.length-1].DueDate;
$rootScope.lastInstallemtDate = $scope.myModelInstallemt.date;
for(var i=0; i < model.InstallmentDetails.length-1; i++){
$rootScope.updateMoreItems.push(model.InstallmentDetails[i]);
}
}
else{
$scope.myModelInstallemt.ID="";
$scope.myModelInstallemt.name="";
$scope.myModelInstallemt.amount="";
$scope.myModelInstallemt.date="";
$rootScope.lastInstallemtDate="";
}
form.$setPristine(true);
}
@ -476,6 +606,8 @@ app.controller('ModalDemoCtrl', ["$scope", "$modal", "$log", function ($scope, $
$log.info('Modal dismissed at: ' + new Date());
});
};
}]);
// Please note that $modalInstance represents a modal window (instance) dependency.

View File

@ -32,6 +32,7 @@
<div class="panel-scroll height-180" perfect-scrollbar wheel-propagation="false" suppress-scroll-x="true" ng-if="emptyDataToday==false">
<table class="table table-hover">
<thead>
<tr><td colspan="5" style="background:#1FBBA6;color:#fff !important">Total Entries :{{todayFolloupDetails.length}}</td></tr>
<tr>
<th>Tracking ID</th>
<th>Lead Name</th>
@ -42,7 +43,7 @@
</tr>
</thead>
<tbody ng-repeat="today in todayFolloupDetails">
<tr>
<td>{{today.TrackingID}}</td>
<td>{{today.LeadName}}</td>
@ -76,6 +77,7 @@
<div class="panel-scroll height-180" perfect-scrollbar wheel-propagation="false" suppress-scroll-x="true" ng-if="emptyDataPending==false">
<table class="table table-hover">
<thead>
<tr><td colspan="6" style="background:#C82E29;color:#fff !important">Total Entries :{{pendingFolloupDetails.length}}</td></tr>
<tr>
<th>Tracking ID</th>
<th>Lead Name</th>
@ -121,6 +123,7 @@
<div class="panel-scroll height-180" perfect-scrollbar wheel-propagation="false" suppress-scroll-x="true" ng-if="emptyDataLead==false">
<table class="table table-hover">
<thead>
<tr><td colspan="5" style="background:#DD5A82;color:#fff !important">Total Entries :{{leadDetails.length}}</td></tr>
<tr>
<th>Tracking ID</th>
<th>Lead Name</th>

View File

@ -110,7 +110,7 @@
<th>Voucher Number
<!--<span class="glyphicon sort-icon" ng-show="sortKey=='EmailID'" ng-class="{'glyphicon-chevron-up':reverse,'glyphicon-chevron-down':!reverse}"></span>-->
</th>
<th>Paid To
<th>Paid To / Received From
<!--<span class="glyphicon sort-icon" ng-show="sortKey=='EmailID'" ng-class="{'glyphicon-chevron-up':reverse,'glyphicon-chevron-down':!reverse}"></span>-->
</th>
<th ng-click="sort('TypeName')">Type
@ -300,9 +300,9 @@
<label>
Paid To / Received To
</label>
<input type="text" name="paidTo" tabindex="1" placeholder="Enter Paid To / Received To" class="form-control" ng-model="myModelAdd.paidTo"
<input type="text" name="paidTo" tabindex="1" placeholder="Enter Paid To / Received From" class="form-control" ng-model="myModelAdd.paidTo"
/>
<span class="error text-small block" ng-if="Form.paidTo.$dirty && Form.paidTo.$invalid" ng-hide="Form.paidTo.$error.maxlength || Form.paidTo.$error.minlength || Form.paidTo.$error.pattern">Paid To / Reveived To is required.</span>
<span class="error text-small block" ng-if="Form.paidTo.$dirty && Form.paidTo.$invalid" ng-hide="Form.paidTo.$error.maxlength || Form.paidTo.$error.minlength || Form.paidTo.$error.pattern">Paid To / Reveived From is required.</span>
</div>
<div class="col-md-4">
<label>

View File

@ -154,7 +154,7 @@
<th>Voucher Number
<!--<span class="glyphicon sort-icon" ng-show="sortKey=='EmailID'" ng-class="{'glyphicon-chevron-up':reverse,'glyphicon-chevron-down':!reverse}"></span>-->
</th>
<th ng-click="sort('PaidTo')">Paid To
<th ng-click="sort('PaidTo')">Paid To / Received From
<span class="glyphicon sort-icon" ng-show="sortKey=='PaidTo'" ng-class="{'glyphicon-chevron-up':reverse,'glyphicon-chevron-down':!reverse}"></span>
</th>
<th>Description
@ -252,7 +252,7 @@
<th>Voucher Number
<!--<span class="glyphicon sort-icon" ng-show="sortKey=='EmailID'" ng-class="{'glyphicon-chevron-up':reverse,'glyphicon-chevron-down':!reverse}"></span>-->
</th>
<th ng-click="sort('PaidTo')">Paid To
<th ng-click="sort('PaidTo')">Paid To / Received From
<span class="glyphicon sort-icon" ng-show="sortKey=='PaidTo'" ng-class="{'glyphicon-chevron-up':reverse,'glyphicon-chevron-down':!reverse}"></span>
</th>
<th>Description

View File

@ -161,7 +161,7 @@
<th>Voucher Number
<!--<span class="glyphicon sort-icon" ng-show="sortKey=='EmailID'" ng-class="{'glyphicon-chevron-up':reverse,'glyphicon-chevron-down':!reverse}"></span>-->
</th>
<th ng-click="sort('PaidTo')">Paid To
<th ng-click="sort('PaidTo')">Paid To / Received From
<span class="glyphicon sort-icon" ng-show="sortKey=='PaidTo'" ng-class="{'glyphicon-chevron-up':reverse,'glyphicon-chevron-down':!reverse}"></span>
</th>
<th>Description
@ -257,7 +257,7 @@
<th>Voucher Number
<!--<span class="glyphicon sort-icon" ng-show="sortKey=='EmailID'" ng-class="{'glyphicon-chevron-up':reverse,'glyphicon-chevron-down':!reverse}"></span>-->
</th>
<th ng-click="sort('PaidTo')">Paid To
<th ng-click="sort('PaidTo')">Paid To / Received From
<span class="glyphicon sort-icon" ng-show="sortKey=='PaidTo'" ng-class="{'glyphicon-chevron-up':reverse,'glyphicon-chevron-down':!reverse}"></span>
</th>
<th>Description

View File

@ -15,6 +15,9 @@
}
a {
color: #007AFF;
}
</style>
<!-- start: PAGE TITLE -->
@ -121,7 +124,7 @@
<input type="button" class="btn btn-info btn-xs btn-transparent tooltips" tooltip-placement="bottom" tooltip="Click To Set Fees" id="setRow{{user.ID}}" value="Set Fees" ng-click="setFees(user)">
</td>
<td>
<input type="button" class="btn btn-info btn-xs btn-transparent tooltips" tooltip-placement="bottom" tooltip="Click To Update Fees" id="editRow{{user.ID}}" value="Update Fees" ng-click="updateFees(user)">
<b></b> <input type="button" class="btn btn-info btn-xs btn-transparent tooltips" tooltip-placement="bottom" tooltip="Click To Receive Fees" id="editRow{{user.ID}}" value="Receive Fees" ng-click="updateFees(user)">
</td>

View File

@ -1,3 +1,8 @@
<style>
a {
color: #ffffff;
}
</style>
<form name="Form" id="form" novalidate>
<div class="row">
<div class="col-md-12">
@ -11,12 +16,12 @@
<legend>Set Fees For Student</legend>
<div class="row">
<div class="col-md-4 form-group"
<div class="col-md-3 form-group"
ng-class="{'has-error':Form.setfeesType.$dirty && Form.setfeesType.$invalid, 'has-success':Form.setfeesType.$valid}">
<label>
Fees Type <span class="symbol required"></span>
</label>
<select class="form-control" name="setfeesType" tabindex="7" id="setfeesType"
<select class="form-control" name="setfeesType" tabindex="7" id="setfeesType" ng-change="changeInstallemt(setModel.feesType,Form);"
ng-model="setModel.feesType"
ng-options="fees.Sem_Year for fees in feesStructureInfo"
required>
@ -25,7 +30,7 @@
<span class="error text-small block"
ng-if="Form.setfeesType.$dirty && Form.setfeesType.$invalid">Fees type is required</span>
</div>
<div class="col-md-4 form-group"
<div class="col-md-3 form-group"
ng-class="{'has-error':Form.setsessionname.$dirty && Form.setsessionname.$invalid, 'has-success':Form.setsessionname.$valid}">
<label>
Session Name <span class="symbol required"></span>
@ -41,25 +46,21 @@
<!--<span class="success text-small"-->
<!--ng-if="Form.stopname.$valid">Thank You!</span>-->
</div>
<div class="col-md-4 form-group"
ng-class="{'has-error':Form.setrollNo.$dirty && Form.setrollNo.$invalid, 'has-success':Form.setrollNo.$valid}">
<div class="col-md-3 form-group"
ng-class="{'has-error':Form.setrollNo.$dirty && Form.setrollNo.$invalid}">
<label>
Roll Number <span class="symbol required"></span>
Roll Number
</label>
<input type="text" placeholder="Enter Roll No"
tabindex="9" class="form-control" name="setrollNo"
ng-model="setModel.feesType.RollNo" ng-pattern="/^[a-zA-Z0-9-./\s]*$/" required ng-disabled="setModel.feesType.ExistValue=='1' && userType!='R004'"/>
ng-model="setModel.feesType.RollNo" ng-pattern="/^[a-zA-Z0-9-./\s]*$/" ng-disabled="setModel.feesType.ExistValue=='1' && userType!='R004'"/>
<span class="error text-small block"
ng-if="Form.setrollNo.$dirty && Form.setrollNo.$error.required">Roll no is required</span>
<span class="error text-small block"
ng-if="Form.setrollNo.$dirty && Form.setrollNo.$error.pattern">Invalid roll no </span>
</div>
</div>
<div class="row">
<div class="col-md-4 form-group"
<div class="col-md-3 form-group"
ng-class="{'has-error':Form.feesAmount.$dirty && Form.feesAmount.$invalid,'has-success':Form.feesAmount.$valid}">
<label>
Course Fees <span class="symbol required"></span>
@ -75,7 +76,12 @@
ng-if="Form.feesAmount.$error.maxlength || Form.feesAmount.$error.pattern">Enter a valid amount</span>
</div>
<div class="col-md-4 form-group"
</div>
<div class="row">
<div class="col-md-3 form-group"
ng-class="{'has-error':Form.STF.$dirty && Form.STF.$invalid}">
<label>
STF/WR
@ -91,7 +97,7 @@
ng-if="Form.STF.$error.maxlength || Form.STF.$error.pattern">Enter a valid amount</span>
</div>
<div class="col-md-4 form-group"
<div class="col-md-3 form-group"
ng-class="{'has-error':Form.others.$dirty && Form.others.$invalid}">
<label>
Others</span>
@ -138,9 +144,7 @@
ng-if="Form.paid.$error.maxlength || Form.paid.$error.pattern">Enter a valid amount</span>
</div>-->
</div>
<div class="row">
<div class="col-md-4 form-group"
<div class="col-md-3 form-group"
ng-class="{'has-error':Form.waiver.$dirty && Form.waiver.$invalid}">
<label>
Waiver</span>
@ -157,14 +161,134 @@
</div>
</div>
<div class="row">
<div class="col-md-12">
<div class="panel panel-white" id="panel2">
<div class="panel-heading bg-light-blue">
<h4 class="panel-title text-white">Installment Details</h4>
<ct-paneltool class="panel-tools" tool-collapse="tool-collapse"></ct-paneltool>
</div>
<div collapse="panel2" ng-init="panel2=false" class="panel-wrapper">
<div class="panel-body">
<div class="row">
<div class="col-md-3 form-group"
ng-class="{'has-error':Form.insName.$dirty && Form.insName.$invalid,'has-success':Form.insName.$valid}">
<label>
Installment <span
class="symbol required"></span>
</label>
<input type="text" placeholder="Enter Installment"
tabindex="14" class="form-control" name="insName"
ng-model="myModelInstallemt.name" ng-pattern="/^[a-zA-Z0-9-./\s]*$/" required ng-disabled="setModel.feesType.ExistValue=='1' && userType!='R004'"/>
<span class="error text-small block"
ng-if="Form.insName.$dirty && Form.insName.$error.required">Installment is required</span>
<span class="error text-small block"
ng-if="Form.insName.$dirty && Form.insName.$error.pattern">Enter a valid installment</span>
</div>
<div class="col-md-3 form-group"
ng-class="{'has-error':Form.instfeesAmount.$dirty && Form.instfeesAmount.$invalid, 'has-success':Form.instfeesAmount.$valid}">
<label>
Amount <span
class="symbol required"></span>
</label>
<input type="text" placeholder="Enter Amount"
autofocus tabindex="15" class="form-control" name="instfeesAmount" id="instfeesAmount" ng-maxlength="8"
ng-model="myModelInstallemt.amount" ng-pattern="/^[0-9]*$/" required="" ng-disabled="setModel.feesType.ExistValue=='1' && userType!='R004'"/>
<span class="error text-small block"
ng-if="Form.instfeesAmount.$dirty && Form.instfeesAmount.$invalid"
ng-hide="Form.instfeesAmount.$error.maxlength || Form.instfeesAmount.$error.pattern">Amount is required</span>
<span class="error text-small block"
ng-if="Form.instfeesAmount.$error.maxlength || Form.instfeesAmount.$error.pattern">Enter a valid amount</span>
</div>
<div data-ng-controller="DatepickerDemoCtrl">
<div class="col-md-3 form-group"
ng-class="{'has-error':Form.date.$dirty && Form.date.$invalid, 'has-success':Form.date.$valid}">
<label>
Due Date <span
class="symbol required"></span>
</label>
<input type="text"
class="form-control " tabindex="16"
ng-click="startOpen = !startOpen"
datepicker-popup="dd-MM-yyyy"
ng-model="myModelInstallemt.date"
is-open="startOpen"
ng-init="startOpen = false"
name="date"
datepicker-options="dateOptions"
placeholder="Select Date"
min-date="minDate"
max-date="futureDate"
close-text="Close" required="required" ng-disabled="myModelInstallemt.date !=''"/>
<span class="error text-small block"
ng-if="Form.date.$dirty && Form.date.$error.required">Date is required.</span>
<!--<span class="success text-small block"-->
<!--ng-if="Form.date.$valid ">Thank You</span>-->
</div>
</div>
<div class="col-md-3">
<input type="button" class="btn btn-sm btn-info" title="Click to add one more items" value="Add More" ng-click="clickMoreItems(myModelInstallemt,Form,setModel.feesType);" style="margin-top:16%;" ng-disabled="setModel.feesType.ExistValue=='1' && userType!='R004'"/>
</div>
</div>
<div class="row" ng-repeat="n in updateMoreItems">
<div class="col-md-3 form-group" ng-class="{'has-error':n.Name==undefined, 'has-success':n.Name!=undefined}">
<label>
</label>
<input type="text" placeholder="Enter Installment"
class="form-control" name="instllment{{$index}}"
ng-model="n.Name" ng-pattern="/^[a-zA-Z0-9-./\s]*$/" ng-disabled="setModel.feesType.ExistValue=='1' && userType!='R004'" required/>
<span class="error text-small block" ng-if="n.Name==undefined">Enter a valid installment</span>
</div>
<div class="col-md-3 form-group" ng-class="{'has-error':n.Amount==undefined, 'has-success':n.Amount!=undefined}">
<label>
</label>
<input type="text" placeholder="Enter Fees Amount"
autofocus class="form-control" name="amount{{$index}}" id="amount{{$index}}" ng-maxlength="8"
ng-model="n.Amount" ng-pattern="/^[0-9]*$/" ng-disabled="setModel.feesType.ExistValue=='1' && userType!='R004'" required/>
<span class="error text-small block" ng-if="n.Amount==undefined">Enter a valid amount</span>
</div>
<div class="col-md-3 form-group" ng-class="{'has-error':n.DueDate==undefined, 'has-success':n.DueDate!=undefined}">
<label>
</label>
<input type="text" placeholder="Enter Date"
autofocus class="form-control" name="date{{$index}}" id="date{{$index}}"
ng-model="n.DueDate" required readonly/>
<span class="error text-small block" ng-if="n.DueDate==undefined">Enter a valid date</span>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="row">
<div class="col-md-12">
<div class="pull-right">
<button type="submit" ladda="ldloading5.zoom_in" tabindex="14" class="btn btn-wide btn-success" data-style="zoom-in" ng-click="submitFeesForStudent(user,Form,setModel.feesType,'zoom-in')" ng-disabled="setModel.feesType.ExistValue=='1' && userType!='R004'"> <!--ng-disabled="setModel.feesType.ExistValue=='1'"-->
<button type="submit" ladda="ldloading5.zoom_in" tabindex="17" class="btn btn-wide btn-success" data-style="zoom-in" ng-click="submitFeesForStudent(user,Form,setModel.feesType,'zoom-in',myModelInstallemt)" ng-disabled="setModel.feesType.ExistValue=='1' && userType!='R004'"> <!--ng-disabled="setModel.feesType.ExistValue=='1'"-->
Save
</button>
<input type="button" class="btn btn-warning btn-wide" tabindex="15" value="Cancel"
<input type="button" class="btn btn-warning btn-wide" tabindex="18" value="Cancel"
ng-click="cancel();">
</input>

View File

@ -47,7 +47,7 @@
<div class="col-md-3 form-group"
ng-class="{'has-error':Form.feesType.$dirty && Form.feesType.$invalid, 'has-success':Form.feesType.$valid}">
<label>
Fees Type <span class="symbol required"></span>
Fees Name <span class="symbol required"></span>
</label>
<select class="form-control" name="feesType" tabindex="7" id="feesType"
ng-model="updateModel.feesType"
@ -75,16 +75,16 @@
<!--ng-if="Form.stopname.$valid">Thank You!</span>-->
</div>
<div class="col-md-3 form-group"
ng-class="{'has-error':Form.rollNo.$dirty && Form.rollNo.$invalid, 'has-success':Form.rollNo.$valid}">
ng-class="{'has-error':Form.rollNo.$dirty && Form.rollNo.$invalid}">
<label>
Roll Number <span class="symbol required"></span>
Roll Number
</label>
<input type="text" placeholder="Enter Roll No"
tabindex="8" class="form-control" name="rollNo"
ng-model="updateModel.feesType.RollNo" ng-pattern="/^[a-zA-Z0-9-./\s]*$/" required readonly/>
<span class="error text-small block"
ng-if="Form.rollNo.$dirty && Form.rollNo.$error.required">Roll No is required</span>
ng-model="updateModel.feesType.RollNo" ng-pattern="/^[a-zA-Z0-9-./\s]*$/" readonly/>
<!--<span class="error text-small block"
ng-if="Form.rollNo.$dirty && Form.rollNo.$error.required">Roll No is required</span>-->
<span class="error text-small block"
ng-if="Form.rollNo.$dirty && Form.rollNo.$error.pattern">Invalid roll no </span>
<!--<span class="success text-small"-->
@ -299,18 +299,18 @@
</div>
<div class="col-md-3 form-group"
ng-class="{'has-error':Form.billno.$dirty && Form.billno.$invalid, 'has-success':Form.billno.$valid}">
ng-class="{'has-error':Form.billno.$dirty && Form.billno.$invalid}">
<label>
Bill No <span class="symbol required"></span>
Receipt No
</label>
<input type="text" placeholder="Enter Bill No"
<input type="text" placeholder="Enter Receipt No"
tabindex="15" class="form-control" name="billno"
ng-model="updateModel.billNo" ng-pattern="/^[a-zA-Z0-9-./\s]*$/" required/>
ng-model="updateModel.billNo" ng-pattern="/^[a-zA-Z0-9-./\s]*$/"/>
<!--<span class="error text-small block"
ng-if="Form.billno.$dirty && Form.billno.$error.required">Bill no is required</span>-->
<span class="error text-small block"
ng-if="Form.billno.$dirty && Form.billno.$error.required">Bill no is required</span>
<span class="error text-small block"
ng-if="Form.billno.$dirty && Form.billno.$error.pattern">Invalid bill no </span>
ng-if="Form.billno.$dirty && Form.billno.$error.pattern">Invalid receipt no </span>
</div>
<div class="col-md-3 form-group"
ng-class="{'has-error':Form.billAmount.$dirty && Form.billAmount.$invalid,'has-success':Form.billAmount.$valid}">
@ -447,6 +447,7 @@
<th>Bill NO</th>
<th>Bill Date</th>
<th>Bill Amount</th>
<th>Receipt NO</th>
<th>Print</th>
</tr>
</thead>
@ -455,6 +456,7 @@
<td>{{v.BillNO}}</td>
<td>{{v.BillDate}}</td>
<td>{{v.BillAmount}}</td>
<td>{{v.ReceiptNo}}</td>
<td>
<a tooltip="Click to print" ng-mouseleave="mouseLeave()" pdf-save-button="{{v.BillNO}}" pdf-name="Billno-{{v.BillNO}}.pdf" class="btn"><i class="fa fa-print" ng-click="ShowHide(v)"></i></a>
@ -479,8 +481,8 @@
<td style="width: 136px; height: 36px; text-align: center; color: white; background-color: black; font-size: 15px;" colspan="3">10/1, First Floor, Old Airport Road, Domlur, Bangalore - 560071. karnataka<br> Land Mark - Opp to Domlur Bus Stop Ph:&nbsp;9620214554</td>
</tr>
<tr style="height: 50px;">
<td style="width: 136px; height: 50px; text-align: center; border-bottom-style: hidden;padding-left:25%;" colspan="3">
<span style="border: 2px solid black; padding: 10px; border-radius: 15px; font-size: 14px; color: #fff; background-color: black;">FEES RECEIPT</span>
<td style="width: 150px; height: 50px; text-align: center; border-bottom-style: hidden;padding-left:25%;" colspan="3">
<span style="border: 2px solid black; padding: 10px; border-radius: 15px; font-size: 14px; color: #fff; background-color: black;">FEES ESTIMATE</span>
</td>
<td style="width: 137px; height: 50px; border-left-style: hidden; border-bottom-style: hidden;"><strong>DOM:</strong>&nbsp;{{billNo}}</td>
</tr>

View File

@ -2,7 +2,7 @@
<section id="page-title">
<div class="row">
<div class="col-sm-8">
<h1 class="mainTitle" translate="View/Add Student Details">{{ mainTitle }}</h1>
<h1 class="mainTitle" translate="Student Details">{{ mainTitle }}</h1>
</div>
<div ncy-breadcrumb></div>
</div>

View File

@ -11,7 +11,7 @@
<section id="page-title">
<div class="row">
<div class="col-sm-8">
<h1 class="mainTitle" translate="Default Student Activity Details"></h1>
<h1 class="mainTitle" translate="Student Activity Status"></h1>
<!--
<span class="mainDescription">Over a dozen reusable components built to provide popovers, media objects, navigation, tooltips and much more. </span>
-->