db->select('ST.StudentID,ST.MobileNumber,ST.Firstname,ST.Fathername,ST.EmailID,STC.ID,US.UniversityID,US.UniversityName,CU.CourseID,CU.CourseName'); $this->db->from(STUDENTS.' as ST'); $this->db->join(STUDENTCOURSE.' as STC', 'STC.StudentID = ST.StudentID'); $this->db->join(COURSE.' as CU', 'CU.CourseID = STC.CourseID'); // $this->db->join(SESSIONMASTER.' as SM', 'SM.SessionID = STC.SessionID'); $this->db->join(UNIVERSITY.' as US', 'US.UniversityID = CU.UniversityID'); $this->db->where('ST.IsActive','1'); $this->db->where('STC.IsActive','1'); if($search['requestedBranch']!='All'){ $this->db->where('STC.BranchID',$search['requestedBranch']); } if($search['MobileNumber']!=''){ $this->db->where('ST.MobileNumber',$search['MobileNumber']); } if($search['Firstname']!=''){ $this->db->like('ST.Firstname',$search['Firstname'],'after'); } if($search['UniversityID']!=''){ $this->db->where('STC.UniversityID',$search['UniversityID']); } if($search['CourseID']!=''){ $this->db->where('STC.CourseID',$search['CourseID']); } /* if($search['MobileNumber']!='' AND $search['Firstname']==''){ $this->db->where('ST.MobileNumber',$search['MobileNumber']); } else if($search['MobileNumber']=='' AND $search['Firstname']!=''){ $this->db->where('ST.Firstname',$search['Firstname']); } else if($search['MobileNumber']!='' AND $search['Firstname']!=''){ $this->db->where('ST.MobileNumber',$search['MobileNumber']); $this->db->where('ST.Firstname',$search['Firstname']); }*/ $searchDetails = $this->db->get(); if($searchDetails->result()) { $result_array['studentStatus'] = true; $result_array['details'] = $searchDetails->result(); } else{ $result_array['studentStatus'] = false; $result_array['details'] = "No records found!"; } } else{ $result_array['studentStatus'] = false; $result_array['details'] = "No records found!"; } return $result_array; } /* * get student fees structure for fees update * @params student ID * created by kms * */ public function getStudentFeesStructure($student=null){ $this->db->select('CF.ID,CF.Sem_Year,CF.ProgramType,SFS.FeesID,SFS.CourseID,SFS.CourseFees,SFS.STFOrWR,SFS.Waiver,SFS.Others,SFS.RollNo,CU.PC,CU.TC,CU.DC,CU.MC,CU.OtherFees,SM.SessionName as SessionName,SM1.SessionName as ToSessionName,BA.BatchCode,BA.BatchName'); $this->db->from(STUDENTS_FEES_STATUS.' as SFS'); $this->db->join(SESSIONMASTER.' as SM', 'SM.SessionID = SFS.SessionName'); $this->db->join(SESSIONMASTER.' as SM1', 'SM1.SessionID = SFS.ToSessionName','left'); $this->db->join(BATCH.' as BA', 'BA.BatchCode = SFS.BatchCode'); $this->db->join(COURSE_FEES.' as CF', 'CF.ID = SFS.FeesType'); $this->db->join(COURSE.' as CU', 'CU.CourseID = CF.CourseID'); $this->db->where('SFS.CourseID',$student['CourseID']); $this->db->where('SFS.StudentID',$student['StudentID']); $enrolledFeesDetails = $this->db->get(); if($enrolledFeesDetails->result()){ $result_array['feesStatus']=true; foreach ($enrolledFeesDetails->result() as $row) { $fetchData['ID'] = $row->ID; $fetchData['FeesID'] = $row->FeesID; $fetchData['CourseID'] = $row->CourseID; $fetchData['Sem_Year'] = $row->Sem_Year; $fetchData['ProgramType'] = $row->ProgramType; $fetchData['ActualFees'] = $row->CourseFees; $fetchData['STFOrWR'] = $row->STFOrWR; $fetchData['Waiver'] = $row->Waiver; $fetchData['Others'] = $row->Others; $fetchData['SessionName'] = $row->SessionName; $fetchData['BatchName'] = $row->BatchName; if($row->ToSessionName=='' OR $row->ToSessionName==null){ $fetchData['ToSessionName'] = "Not Applicable"; } else{ $fetchData['ToSessionName'] = $row->ToSessionName; } $fetchData['RollNo'] = $row->RollNo; $fetchData['PayableFees']=$row->CourseFees+$row->STFOrWR+$row->Others-$row->Waiver; $this->db->select('ifnull(SUM((BillAmount)),0) as PaidBillAmount'); $this->db->where('FeesId',$row->FeesID); $this->db->where('IsActive','1'); $paidBillAmount = $this->db->get(STUDENTS_FEES_PAID)->result(); if($paidBillAmount[0]->PaidBillAmount > $fetchData['PayableFees']){ $fetchData['BalanceAmount']=0; } else{ $fetchData['BalanceAmount']=$fetchData['PayableFees'] - $paidBillAmount[0]->PaidBillAmount; } $fetchData['PC'] = $row->PC; $fetchData['TC'] = $row->TC; $fetchData['DC'] = $row->DC; $fetchData['MC'] = $row->MC; $fetchData['OtherFees'] = $row->OtherFees; $CourseFeesArray[]=$fetchData; } $getDefaultCourseFees = $this->getDefaultCourseFees($student); if($getDefaultCourseFees!=false){ $result_array['feesDetails']=array_merge($CourseFeesArray,$getDefaultCourseFees); } else{ $result_array['feesDetails']=$CourseFeesArray; } // $result_array['getFeesUpdateStatus']=$this->getFeesUpdateStatus(FEESUPDATE); $result_array['getExistStudentFeesDetails']=$this->existStudentFeesDetails($student); } else{ $result_array['feesStatus']=false; $result_array['message']="This student don't have fees details"; } return $result_array; } /* * get fees update status * created by kms * */ public function getFeesUpdateStatus($feesID=null) { $this->db->select('PLD.ListCode,PLD.ListName'); $this->db->from(DEFAULTACTIVITY.' as DA'); $this->db->join(PICK_LIST_DETAILS.' as PLD', 'PLD.ListCode = DA.StatusCode'); $this->db->where('StudentActivityCode',$feesID); $this->db->where('DA.IsActive','1'); $this->db->where('PLD.IsActive','1'); $this->db->order_by('ListCode','ASC'); $status = $this->db->get(); return $status->result(); } /* * get default course fees for bill * creted by kms * */ public function getDefaultCourseFees($student=null) { $serachArray = ["PC","TC","DC","MC","OTHER"]; $this->db->select('SFS.FeesID,SFS.FeesType,SFS.CourseID,SFS.CourseFees,SFS.STFOrWR,SFS.Waiver,SFS.Others,SFS.SessionName,SFS.RollNo,CU.PC,CU.TC,CU.DC,CU.MC,CU.OtherFees'); $this->db->from(STUDENTS_FEES_STATUS . ' as SFS'); //$this->db->join(COURSE_FEES.' as CF', 'CF.ID = SFS.FeesType'); $this->db->join(COURSE . ' as CU', 'CU.CourseID = SFS.CourseID'); $this->db->where('SFS.CourseID', $student['CourseID']); $this->db->where('SFS.StudentID', $student['StudentID']); $this->db->where_in('SFS.FeesType', $serachArray); $enrolledFeesDetails = $this->db->get(); if ($enrolledFeesDetails->result()) { $result_array['feesStatus'] = true; foreach ($enrolledFeesDetails->result() as $row) { $fetchData['ID'] = $row->FeesType; $fetchData['FeesID'] = $row->FeesID; $fetchData['CourseID'] = $row->CourseID; $fetchData['Sem_Year'] = $row->FeesType; $fetchData['ProgramType'] = $row->FeesType; $fetchData['ActualFees'] = $row->CourseFees; $fetchData['STFOrWR'] = $row->STFOrWR; $fetchData['Waiver'] = $row->Waiver; $fetchData['Others'] = $row->Others; $fetchData['SessionName'] = "Not Applicable"; $fetchData['ToSessionName'] = "Not Applicable"; $fetchData['BatchName'] = "Not Applicable"; $fetchData['RollNo'] = $row->RollNo; $fetchData['PayableFees'] = $row->CourseFees + $row->STFOrWR + $row->Others - $row->Waiver; $this->db->select('ifnull(SUM((BillAmount)),0) as PaidBillAmount'); $this->db->where('FeesId', $row->FeesID); $this->db->where('IsActive','1'); $paidBillAmount = $this->db->get(STUDENTS_FEES_PAID)->result(); if ($paidBillAmount[0]->PaidBillAmount > $fetchData['PayableFees']) { $fetchData['BalanceAmount'] = 0; } else { $fetchData['BalanceAmount'] = $fetchData['PayableFees'] - $paidBillAmount[0]->PaidBillAmount; } $fetchData['PC'] = $row->PC; $fetchData['TC'] = $row->TC; $fetchData['DC'] = $row->DC; $fetchData['MC'] = $row->MC; $fetchData['OtherFees'] = $row->OtherFees; $CourseFeesArray[] = $fetchData; } return $CourseFeesArray; } else{ return false; } } /* * get exist student fees details * created by kms * */ public function existStudentFeesDetails($student=null){ $serachArray=[WAIVER,REFERRAL]; $this->db->distinct(); $this->db->select('SFS.FeesID,SFS.FeesType,SFS.RollNo,ifnull(SFS.CourseFees,0) as CourseFees,ifnull(SFS.STFOrWR,0) as STFOrWR,ifnull(SFS.Waiver,0) as Waiver,ifnull(SFS.Others,0) as Others,ST.Firstname,ST.MobileNumber,ST.Fathername,CU.CourseName,CU.CourseID,CF.Sem_Year,STC.EnrollmentID,US.UniversityName,US.UniversityShortName,SM.SessionName,SM1.SessionName as ToSessionName,CF.ProgramType,BA.BatchCode,BA.BatchName'); $this->db->from(STUDENTS_FEES_PAID.' as SFP'); $this->db->join(STUDENTS_FEES_STATUS.' as SFS','SFP.FeesId = SFS.FeesID'); $this->db->join(SESSIONMASTER.' as SM', 'SM.SessionID = SFS.SessionName'); $this->db->join(SESSIONMASTER.' as SM1', 'SM1.SessionID = SFS.ToSessionName','left'); $this->db->join(BATCH.' as BA', 'BA.BatchCode = SFS.BatchCode'); $this->db->join(STUDENTS.' as ST', 'ST.StudentID = SFS.StudentID'); $this->db->join(COURSE.' as CU', 'CU.CourseID = SFS.CourseID'); $this->db->join(COURSE_FEES.' as CF', 'CF.ID = SFS.FeesType'); $this->db->join(STUDENTCOURSE.' as STC', 'STC.CourseID = SFS.CourseID'); $this->db->join(UNIVERSITY.' as US', 'US.UniversityID = STC.UniversityID'); $this->db->where('SFS.CourseID', $student['CourseID']); $this->db->where('SFS.StudentID', $student['StudentID']); $this->db->where('STC.StudentID', $student['StudentID']); $this->db->where('SFP.StudentID', $student['StudentID']); $this->db->where('SFP.IsActive','1'); $this->db->order_by('SFP.ID', 'DESC'); $getFeeDetails = $this->db->get(); if($getFeeDetails->result()){ foreach ($getFeeDetails->result() as $feeRow){ $storePaidDetails['FeesID'] = $feeRow->FeesID; $storePaidDetails['FeesName'] = $feeRow->Sem_Year; $storePaidDetails['CourseFees'] = $feeRow->CourseFees; $storePaidDetails['ProgramType'] = $feeRow->ProgramType; $storePaidDetails['SessionName'] = $feeRow->SessionName; if($feeRow->ToSessionName=='' OR $feeRow->ToSessionName==null){ $storePaidDetails['ToSessionName'] = "Not Applicable"; } else{ $storePaidDetails['ToSessionName'] = $feeRow->ToSessionName; } $storePaidDetails['BatchName'] = $feeRow->BatchName; $storePaidDetails['RollNo'] = $feeRow->RollNo; $storePaidDetails['STFOrWR'] = $feeRow->STFOrWR; $storePaidDetails['Waiver'] = $feeRow->Waiver; $storePaidDetails['Others'] = $feeRow->Others; $storePaidDetails['PayableAmount'] = $feeRow->CourseFees+$feeRow->STFOrWR+$feeRow->Others-$feeRow->Waiver; $storePaidDetails['Firstname'] = $feeRow->Firstname; $storePaidDetails['MobileNumber'] = $feeRow->MobileNumber; $storePaidDetails['Fathername'] = $feeRow->Fathername; $storePaidDetails['EnrollmentID'] = $feeRow->EnrollmentID; $storePaidDetails['CourseName'] = $feeRow->CourseName; $storePaidDetails['UniversityName'] = $feeRow->UniversityName; $storePaidDetails['UniveShortName'] = $feeRow->UniversityShortName; $this->db->select('ifnull(SUM((BillAmount)),0) as PaidBillAmount'); $this->db->where('FeesId',$feeRow->FeesID); $this->db->where('IsActive','1'); $paidBillAmount = $this->db->get(STUDENTS_FEES_PAID)->result(); $storePaidDetails['PaidBillAmount']=$paidBillAmount[0]->PaidBillAmount; if($paidBillAmount[0]->PaidBillAmount > $storePaidDetails['PayableAmount']){ $storePaidDetails['BalanceAmount']=0; } else{ $storePaidDetails['BalanceAmount']=$storePaidDetails['PayableAmount'] - $paidBillAmount[0]->PaidBillAmount; } // sepearte for student waiver and referral bill list $this->db->select('ifnull(SUM((BillAmount)),0) as StudentWaiverRefAmount'); $this->db->where('FeesId',$feeRow->FeesID); $this->db->where('IsActive','1'); $this->db->where_in('ModeOfPayment',$serachArray); $studentWaiverRefAmount = $this->db->get(STUDENTS_FEES_PAID)->result(); $storePaidDetails['StudentWaiverRefAmount']=$studentWaiverRefAmount[0]->StudentWaiverRefAmount; $this->db->select('ifnull(SUM((BillAmount)),0) as StudentPaidAmount'); $this->db->where('FeesId',$feeRow->FeesID); $this->db->where('IsActive','1'); $this->db->where('ModeOfPayment !=',WAIVER); $this->db->where('ModeOfPayment !=',REFERRAL); $studentPaidAmount = $this->db->get(STUDENTS_FEES_PAID)->result(); $storePaidDetails['StudentPaidAmount']=$studentPaidAmount[0]->StudentPaidAmount; // for get paid bill details $this->db->select('ifnull(SUM((BillAmount)),0) as BillAmount,BillNO,BillDate,ModeOfPayment,ReceiptNo,BR.BranchName,BR.Address,BR.LogoPath,STF.Firstname as ReceivedBy'); $this->db->from(STUDENTS_FEES_PAID.' as SFP'); $this->db->join(BRANCH.' as BR','BR.BranchCode = SFP.UpdatedBy','left'); $this->db->join(LOGIN.' as LO','LO.ID = SFP.CreatedBy'); $this->db->join(STAFF.' as STF','STF.StaffID = LO.StaffID'); $this->db->where('SFP.FeesId',$feeRow->FeesID); $this->db->where('SFP.IsActive','1'); $this->db->order_by('SFP.ID',"ASC"); $this->db->group_by('SFP.BillNO'); $storePaidDetails['paidDetails']=$this->db->get()->result(); $mergeResult[]=$storePaidDetails; } $existDefaultFees = $this->existStudentCourseDefaultFees($student); if($existDefaultFees != false){ return array_merge($mergeResult,$existDefaultFees); } else{ return $mergeResult; } } else { return false; } } /* * get exist student default fees details * created by kms * */ public function existStudentCourseDefaultFees($student=null){ $serachArray = ["PC","TC","DC","MC","OTHER"]; $this->db->distinct(); $this->db->select('SFS.FeesID,SFS.FeesType,SFS.SessionName,SFS.ToSessionName,SFS.RollNo,ifnull(SFS.CourseFees,0) as CourseFees,ifnull(SFS.STFOrWR,0) as STFOrWR,ifnull(SFS.Waiver,0) as Waiver,ifnull(SFS.Others,0) as Others,ST.Firstname,ST.MobileNumber,ST.Fathername,CU.CourseName,CU.CourseID,STC.EnrollmentID,US.UniversityName,US.UniversityShortName'); $this->db->from(STUDENTS_FEES_PAID.' as SFP'); $this->db->join(STUDENTS_FEES_STATUS.' as SFS','SFP.FeesId = SFS.FeesID'); $this->db->join(STUDENTS.' as ST', 'ST.StudentID = SFS.StudentID'); $this->db->join(COURSE.' as CU', 'CU.CourseID = SFS.CourseID'); //$this->db->join(COURSE_FEES.' as CF', 'CF.ID = SFS.FeesType'); $this->db->join(STUDENTCOURSE.' as STC', 'STC.CourseID = SFS.CourseID'); $this->db->join(UNIVERSITY.' as US', 'US.UniversityID = STC.UniversityID'); $this->db->where('SFS.CourseID', $student['CourseID']); $this->db->where('SFS.StudentID', $student['StudentID']); $this->db->where('STC.StudentID', $student['StudentID']); $this->db->where('SFP.StudentID', $student['StudentID']); $this->db->where('SFP.IsActive','1'); $this->db->where_in('SFS.FeesType', $serachArray); $this->db->order_by('SFP.ID', 'DESC'); $getFeeDetails = $this->db->get(); if($getFeeDetails->result()){ foreach ($getFeeDetails->result() as $feeRow){ $storePaidDetails['FeesID'] = $feeRow->FeesID; $storePaidDetails['FeesName'] = $feeRow->FeesType; $storePaidDetails['ProgramType'] = $feeRow->FeesType; $storePaidDetails['CourseFees'] = $feeRow->CourseFees; $storePaidDetails['SessionName'] = "Not Applicable"; $storePaidDetails['ToSessionName'] = "Not Applicable"; $storePaidDetails['BatchName'] = "Not Applicable"; $storePaidDetails['RollNo'] = $feeRow->RollNo; $storePaidDetails['STFOrWR'] = $feeRow->STFOrWR; $storePaidDetails['Waiver'] = $feeRow->Waiver; $storePaidDetails['Others'] = $feeRow->Others; $storePaidDetails['PayableAmount'] = $feeRow->CourseFees+$feeRow->STFOrWR+$feeRow->Others-$feeRow->Waiver; $storePaidDetails['Firstname'] = $feeRow->Firstname; $storePaidDetails['MobileNumber'] = $feeRow->MobileNumber; $storePaidDetails['Fathername'] = $feeRow->Fathername; $storePaidDetails['EnrollmentID'] = $feeRow->EnrollmentID; $storePaidDetails['CourseName'] = $feeRow->CourseName; $storePaidDetails['UniversityName'] = $feeRow->UniversityName; $storePaidDetails['UniveShortName'] = $feeRow->UniversityShortName; $this->db->select('ifnull(SUM((BillAmount)),0) as PaidBillAmount'); $this->db->where('FeesId',$feeRow->FeesID); $this->db->where('IsActive','1'); $paidBillAmount = $this->db->get(STUDENTS_FEES_PAID)->result(); $storePaidDetails['PaidBillAmount']=$paidBillAmount[0]->PaidBillAmount; if($paidBillAmount[0]->PaidBillAmount > $storePaidDetails['PayableAmount']){ $storePaidDetails['BalanceAmount']=0; } else{ $storePaidDetails['BalanceAmount']=$storePaidDetails['PayableAmount'] - $paidBillAmount[0]->PaidBillAmount; } // for get paid bill details $this->db->select('ifnull(SUM((BillAmount)),0) as BillAmount,BillNO,BillDate,ModeOfPayment,ReceiptNo,BR.BranchName,BR.Address,BR.LogoPath,STF.Firstname as ReceivedBy'); $this->db->from(STUDENTS_FEES_PAID.' as SFP'); $this->db->join(BRANCH.' as BR','BR.BranchCode = SFP.UpdatedBy','left'); $this->db->join(LOGIN.' as LO','LO.ID = SFP.CreatedBy'); $this->db->join(STAFF.' as STF','STF.StaffID = LO.StaffID'); $this->db->where('SFP.FeesId',$feeRow->FeesID); $this->db->where('SFP.IsActive','1'); $this->db->order_by('SFP.ID',"ASC"); $this->db->group_by('SFP.BillNO'); $storePaidDetails['paidDetails']=$this->db->get()->result(); $mergeResult[]=$storePaidDetails; } return $mergeResult; } else { return false; } } /* * update fees details * created by kms * */ public function updateFees($feesPaidDetails=null,$courseID=null,$feesName=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()){ $result['paidStatus'] = false; $result['message'] = "This bill number is already exist!"; } else { $this->db->select('ReceiptNo'); $this->db->where('ReceiptNo', $feesPaidDetails['ReceiptNo']); if($this->db->get(STUDENTS_FEES_PAID)->first_row() AND $feesPaidDetails['ReceiptNo']!=''){ $result['paidStatus'] = false; $result['message'] = "This receipt number is already exist!"; } else{ $this->db->insert(STUDENTS_FEES_PAID, $feesPaidDetails); if ($this->db->affected_rows() == '1') { $result['paidStatus'] = true; $result['message'] = "Successfully fees details added"; $feesPayedID = $this->db->insert_id(); // $entryOfCallTrack = $this->updateInCallTrack($trackDetails); // day book entry if($feesPaidDetails['BillAmount']!='0'){ $dayBookEntry = $this->insertDayBookMaster($feesPaidDetails,$feesPayedID,$courseID,$feesName); } // Entry for all status screen except fees $this->entryForAllStatus($feesPaidDetails,$courseID); } else{ $result['paidStatus'] = false; $result['message'] = "Something went wrong.please try again"; } } } return $result; } /* * update followup details * created by kms * */ public function updateInCallTrack($arrayDetails=null){ // create activity in call tracking $this->db->select('ActivityID,ActivityName'); $this->db->like('ActivityName', 'Fees', 'after'); $this->db->where('IsActive', '1'); $activityDetails=$this->db->get(ACTIVITY)->last_row(); if($activityDetails){ $newLeadDetails['MobileNumber'] = $arrayDetails['MobileNumber']; $newLeadDetails['LeadName'] = $arrayDetails['LeadName']; $newLeadDetails['CreatedBy'] = $arrayDetails['CreatedBy']; $newLeadDetails['CreatedOn'] = $arrayDetails['CreatedOn']; $this->db->insert(LEAD_DETAILS, $newLeadDetails); // this if for insert lead details if($this->db->affected_rows() == '1'){ // get and store insert id from db $track_Details['LeadID']=$this->db->insert_id(); $track_Details['ActivityStatus'] = $activityDetails->ActivityID; $track_Details['University'] = $arrayDetails['University']; $track_Details['Course'] = $arrayDetails['Course']; $track_Details['AssignedTo'] = $arrayDetails['CreatedBy']; $track_Details['StatusCode'] = $arrayDetails['StatusCode']; $track_Details['CreatedBy'] = $arrayDetails['CreatedBy']; $track_Details['CreatedOn'] = $arrayDetails['CreatedOn']; $this->db->insert(LEAD_TRACKING, $track_Details); // this if for insert tracking details if($this->db->affected_rows() == '1'){ $insertfollowup_Details['TrackingID']=$this->db->insert_id(); $insertfollowup_Details['FollowupOn']=$arrayDetails['FollowupOn']; $insertfollowup_Details['FollowupComments']=$arrayDetails['FollowupComments']; $insertfollowup_Details['CreatedBy'] = $arrayDetails['CreatedBy']; $insertfollowup_Details['CreatedOn'] = $arrayDetails['CreatedOn']; $this->db->insert(LEAD_TRACKING_FOLLOWUP, $insertfollowup_Details); // this if for insert follow up details } } // hide tracking updated sepaerate code /* $this->db->select('LD.LeadID,LT.TrackingID'); $this->db->from(LEAD_DETAILS.' as LD'); $this->db->join(LEAD_TRACKING.' as LT', 'LT.LeadID = LD.LeadID'); $this->db->where('LD.MobileNumber',$arrayDetails['MobileNumber']); $this->db->where('LT.ActivityStatus',$activityDetails->ActivityID); $this->db->like('LT.University',$arrayDetails['University'],'after'); $this->db->like('LT.Course',$arrayDetails['Course'],'after'); $leadDet=$this->db->get()->last_row(); if($leadDet){ $this->db->select('FollowupOn'); $this->db->where('TrackingID',$leadDet->TrackingID); $this->db->order_by('InteractionId','DESC'); $existFollowupOn = $this->db->get(LEAD_TRACKING_FOLLOWUP)->last_row(); // upate tracking status $changeStatusCode['StatusCode'] = $arrayDetails['StatusCode']; $changeStatusCode['UpdatedBy'] = $arrayDetails['CreatedBy']; $changeStatusCode['UpdatedOn'] = $arrayDetails['CreatedOn']; $this->db->where('TrackingID',$leadDet->TrackingID); $this->db->update(LEAD_TRACKING, $changeStatusCode); // end update status $updateTrackDetails['TrackingID'] = $leadDet->TrackingID; $updateTrackDetails['FollowupOn'] = $existFollowupOn->FollowupOn; $updateTrackDetails['FollowupComments'] = $arrayDetails['FollowupComments']; $updateTrackDetails['CreatedBy'] = $arrayDetails['CreatedBy']; $updateTrackDetails['CreatedOn'] = $arrayDetails['CreatedOn']; $this->db->insert(LEAD_TRACKING_FOLLOWUP, $updateTrackDetails); } else{ $this->db->select('LeadID'); $this->db->where('MobileNumber',$arrayDetails['MobileNumber']); $checkLeadDet=$this->db->get(LEAD_DETAILS)->last_row(); if($checkLeadDet){ $updateLeadDetails['LeadID'] = $checkLeadDet->LeadID; $updateLeadDetails['ActivityStatus'] = $activityDetails->ActivityID; $updateLeadDetails['University'] = $arrayDetails['University']; $updateLeadDetails['Course'] = $arrayDetails['Course']; $updateLeadDetails['AssignedTo'] = $arrayDetails['CreatedBy']; $updateLeadDetails['StatusCode'] = $arrayDetails['StatusCode']; $updateLeadDetails['CreatedBy'] = $arrayDetails['CreatedBy']; $updateLeadDetails['CreatedOn'] = $arrayDetails['CreatedOn']; $this->db->insert(LEAD_TRACKING, $updateLeadDetails); // this if for insert tracking details if($this->db->affected_rows() == '1'){ $followup_Details['TrackingID']=$this->db->insert_id(); $followup_Details['FollowupOn']=$arrayDetails['FollowupOn']; $followup_Details['FollowupComments']=$arrayDetails['FollowupComments']; $followup_Details['CreatedBy'] = $arrayDetails['CreatedBy']; $followup_Details['CreatedOn'] = $arrayDetails['CreatedOn']; $this->db->insert(LEAD_TRACKING_FOLLOWUP, $followup_Details); // this if for insert follow up details } } else{ $newLeadDetails['MobileNumber'] = $arrayDetails['MobileNumber']; $newLeadDetails['LeadName'] = $arrayDetails['LeadName']; $newLeadDetails['CreatedBy'] = $arrayDetails['CreatedBy']; $newLeadDetails['CreatedOn'] = $arrayDetails['CreatedOn']; $this->db->insert(LEAD_DETAILS, $newLeadDetails); // this if for insert lead details if($this->db->affected_rows() == '1'){ // get and store insert id from db $track_Details['LeadID']=$this->db->insert_id(); $track_Details['ActivityStatus'] = $activityDetails->ActivityID; $track_Details['University'] = $arrayDetails['University']; $track_Details['Course'] = $arrayDetails['Course']; $track_Details['AssignedTo'] = $arrayDetails['CreatedBy']; $track_Details['StatusCode'] = $arrayDetails['StatusCode']; $track_Details['CreatedBy'] = $arrayDetails['CreatedBy']; $track_Details['CreatedOn'] = $arrayDetails['CreatedOn']; $this->db->insert(LEAD_TRACKING, $track_Details); // this if for insert tracking details if($this->db->affected_rows() == '1'){ $insertfollowup_Details['TrackingID']=$this->db->insert_id(); $insertfollowup_Details['FollowupOn']=$arrayDetails['FollowupOn']; $insertfollowup_Details['FollowupComments']=$arrayDetails['FollowupComments']; $insertfollowup_Details['CreatedBy'] = $arrayDetails['CreatedBy']; $insertfollowup_Details['CreatedOn'] = $arrayDetails['CreatedOn']; $this->db->insert(LEAD_TRACKING_FOLLOWUP, $insertfollowup_Details); // this if for insert follow up details } } } }*/ } return true; } /* * get university details * created by kms * */ public function getUniversityDetails() { $this->db->select('UniversityID,UniversityName'); $this->db->where('IsActive','1'); $this->db->order_by('UniversityID','ASC'); $unviversityDetails = $this->db->get(UNIVERSITY); if($unviversityDetails->result()){ $result_university = array(); $result_university['universityStatus'] = true; foreach ($unviversityDetails->result() as $row) { $university_array['universityID'] = $row->UniversityID; $university_array['universityName'] = $row->UniversityName; $university_array['courseDetails']= $this->getCourseDetails($row->UniversityID); $result_array[]=$university_array; } $result_university['univerSityDetails']= $result_array; } else { $result_university['universityStatus'] = false; $result_university['message'] = "No records found!"; $result_university['universityID'] = ""; $result_university['universityName'] = ""; $result_university['courseDetails']= ""; } return $result_university; } /* * get course details * @params university id * created by kms * */ public function getCourseDetails($universityID=null) { $this->db->select('CourseID,CONCAT(CourseName, "(",CourseCode,")") AS CourseName'); $this->db->where('UniversityID',$universityID); $this->db->where('IsActive','1'); $this->db->order_by('CourseID','ASC'); $courseDetails = $this->db->get(COURSE); return $courseDetails->result(); } /* * get fees details assign for student * created by kms * */ 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); $SNoValue=0; if($feesDetails->result()){ $result_array['feesStatus']=true; foreach ($feesDetails->result() as $row){ $SNoValue=$SNoValue+1; $this->db->select('SFS.FeesID,SFS.CourseFees,SFS.STFOrWR,SFS.Waiver,SFS.Others,SFS.SessionName,SFS.ToSessionName,SFS.RollNo,SFS.BatchCode,SM.SessionName as MasterSessionName,SM1.SessionName as MasterToSessionName'); $this->db->from(STUDENTS_FEES_STATUS.' as SFS'); $this->db->join(SESSIONMASTER.' as SM', 'SM.SessionID = SFS.SessionName'); $this->db->join(SESSIONMASTER.' as SM1', 'SM1.SessionID = SFS.ToSessionName','left'); $this->db->where('StudentID',$student['StudentID']); $this->db->where('CourseID',$student['CourseID']); $this->db->where('FeesType',$row->ID); $existFeesDetails = $this->db->get(); if($existData=$existFeesDetails->result()){ $fetchData['SNo']=$SNoValue; $fetchData['ExistValue']=1; $fetchData['ID']=$row->ID; $fetchData['CourseID']=$row->CourseID; $fetchData['ProgramType']=$row->ProgramType; $fetchData['Sem_Year']=$row->Sem_Year; $fetchData['ActualFees']=$existData[0]->CourseFees; $fetchData['BatchCode']=$existData[0]->BatchCode; $fetchData['STFOrWR']=$existData[0]->STFOrWR; $fetchData['Waiver']=$existData[0]->Waiver; $fetchData['Others']=$existData[0]->Others; $fetchData['SessionName']=$existData[0]->SessionName; $fetchData['ToSessionName']=$existData[0]->ToSessionName; $fetchData['MasterSessionName']=$existData[0]->MasterSessionName; if($existData[0]->MasterToSessionName=='' OR $existData[0]->MasterToSessionName==null){ $fetchData['MasterToSessionName']="Not Applicable"; } else{ $fetchData['MasterToSessionName']=$existData[0]->MasterToSessionName; } $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']=""; } $batchDetails = $this->getBatchDetails($existData[0]->BatchCode,$student['CourseID'],$student['StudentID'],$row->ID); if($batchDetails!=false){ $fetchData['batchDetails']=$batchDetails; } else{ $fetchData['batchDetails']=""; } $CourseFeesArray[]=$fetchData; } else{ $fetchData['SNo']=$SNoValue; $fetchData['ExistValue']=0; $fetchData['ID']=$row->ID; $fetchData['CourseID']=$row->CourseID; $fetchData['ProgramType']=$row->ProgramType; $fetchData['Sem_Year']=$row->Sem_Year; $fetchData['ActualFees']=$row->FeesAmount; $fetchData['BatchCode']=""; $fetchData['STFOrWR']=""; $fetchData['Waiver']=""; $fetchData['Others']=""; $fetchData['SessionName']=""; $fetchData['ToSessionName']=""; $fetchData['MasterSessionName']="Not Applicable"; $fetchData['MasterToSessionName']="Not Applicable"; $fetchData['RollNo']=""; $fetchData['PayableFees']=$row->FeesAmount; // for installment details $fetchData['InstallmentDetails']=""; $batchDetails = $this->getBatchDetails('',$student['CourseID'],$student['StudentID'],''); if($batchDetails!=false){ $fetchData['batchDetails']=$batchDetails; } else{ $fetchData['batchDetails']=""; } $CourseFeesArray[]=$fetchData; } } $defaultCourseDetails = $this->defaultCourseFeesDetails($student); if($defaultCourseDetails!=false){ $result_array['feesDetails']=array_merge($CourseFeesArray,$defaultCourseDetails); } else{ $result_array['feesDetails']=$CourseFeesArray; } } else{ $result_array['feesStatus']=false; } $result_array['sessionDetails'] = $this->getSession($student); 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; } } /* * get batch details * created by kms * */ public function getBatchDetails($batchCode=null,$courseID=null,$studentID=null,$feesType=null){ if($batchCode=='' OR $batchCode==null){ $this->db->select('BA.BatchCode,BA.BatchName,BA.BatchDate,BA.IsDefault,US.UniversityID,US.UniversityName,BA.IsActive'); $this->db->from(COURSE.' as CU'); $this->db->join(UNIVERSITY.' as US', 'US.UniversityID = CU.UniversityID'); $this->db->join(BATCH.' as BA', 'BA.UniversityID = US.UniversityID'); $this->db->order_by('BA.CreatedOn','DESC'); $this->db->where('CU.CourseID',$courseID); $this->db->where('BA.IsActive','1'); $batchDetails = $this->db->get(); if($batchDetails->result()){ return $batchDetails->result(); } else { return false; } } else{ $this->db->distinct(); $this->db->select('BA.BatchCode,BA.BatchName,BA.BatchDate,BA.IsDefault,US.UniversityID,US.UniversityName,BA.IsActive'); $this->db->from(COURSE.' as CU'); $this->db->join(STUDENTS_FEES_STATUS.' as STF', 'STF.CourseID = CU.CourseID'); $this->db->join(UNIVERSITY.' as US', 'US.UniversityID = CU.UniversityID'); $this->db->join(BATCH.' as BA', 'BA.UniversityID = US.UniversityID'); $this->db->order_by('BA.CreatedOn','DESC'); $this->db->where('CU.CourseID',$courseID); $this->db->where('STF.StudentID',$studentID); $this->db->where('STF.FeesType',$feesType); $batchDetails = array(); /* $this->db->or_where('BA.IsActive','1'); $this->db->or_where('STF.BatchCode =',$batchCode);*/ $existDetails = $this->db->get(); if($existDetails->result()){ foreach ($existDetails->result() as $row){ if($row->IsActive=='1' || $row->BatchCode==$batchCode){ array_push($batchDetails,$row); } } } if($batchDetails){ return $batchDetails; } else { return false; } } } /* * get default pc,tc,dc,mc,other fees * created by kms * */ public function defaultCourseFeesDetails($student=null){ // check student fees paid details for get default course fees $this->db->select('ifnull(SUM((SFS.CourseFees)),0) as CourseFees,ifnull(SUM((SFS.STFOrWR)),0) as STFOrWR,ifnull(SUM((SFS.Others)),0) as Others,ifnull(SUM((SFS.Waiver)),0) as Waiver'); $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(); $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']); $this->db->where('SFP.IsActive','1'); $paidAmount = $this->db->get()->result(); if($feesAmount[0]->CourseFees+$feesAmount[0]->STFOrWR+$feesAmount[0]->Others-$feesAmount[0]->Waiver <= $paidAmount[0]->PaidAmount AND $feesAmount[0]->CourseFees !='0'){ $valid=1; } else{ $valid=0; } // get default course fees with paid $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); } // default course fees details in student status foreach ($myArray as $row1){ $this->db->select('FeesID,CourseFees,STFOrWR,Waiver,Others,SessionName,ToSessionName,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); if($existData=$existFeesDetails->result()){ $fetchData['Valid']=$valid; $fetchData['ExistValue']=1; $fetchData['ID']=$row1['Sem_Year']; $fetchData['CourseID']=$row1['CourseID']; $fetchData['ProgramType']=$row1['Sem_Year']; $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['ToSessionName']=$existData[0]->ToSessionName; $fetchData['MasterSessionName']="Not applicable"; $fetchData['MasterToSessionName']="Not applicable"; $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']=""; } $CourseFeesArray1[]=$fetchData; } else{ $fetchData['Valid']=$valid; $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']="Not applicable"; $fetchData['ToSessionName']="Not applicable"; $fetchData['MasterSessionName']="Not applicable"; $fetchData['MasterToSessionName']="Not applicable"; $fetchData['RollNo']=""; $fetchData['PayableFees']=$row1['ActualFees']; $fetchData['InstallmentDetails']=""; $CourseFeesArray1[]=$fetchData; } } return $CourseFeesArray1; } else { return false; } /* } else{ return false; }*/ } /* * set fees for student * created by kms * */ public function setFees($details=null,$jsonData=null){ $this->db->select('FeesID'); $this->db->where('CourseID', $details['CourseID']); $this->db->where('StudentID', $details['StudentID']); $this->db->where('FeesType', $details['FeesType']); $checkExist=$this->db->get(STUDENTS_FEES_STATUS); if($checkExist->result()){ $feesId = $checkExist->result(); $updateDetails['SessionName'] = $details['SessionName']; $updateDetails['ToSessionName'] = $details['ToSessionName']; $updateDetails['BatchCode'] = $details['BatchCode']; $updateDetails['RollNo'] = $details['RollNo']; $updateDetails['STFOrWR'] = $details['STFOrWR']; $updateDetails['Waiver'] = $details['Waiver']; $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; $result['message'] = "Successfully fees details is updated."; } 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."; } return $result; } /* * insert day book master while fees update * created by kms * */ public function insertDayBookMaster($data=null,$paymentID,$courseID,$feesName){ $this->db->select('Firstname'); $this->db->where('StudentID', $data['StudentID']); $getStudentName=$this->db->get(STUDENTS)->result(); if($getStudentName){ // this is for income entry $insertArray['Date'] = $data['BillDate']; $insertArray['CreatedBy'] = $data['CreatedBy']; $insertArray['CreatedOn'] = $data['CreatedOn']; $insertArray['Description'] = $data['InternalComments']; $insertArray['PaidDescription'] = ""; $insertArray['Amount'] = $data['BillAmount']; $insertArray['Status'] = 'Approved'; $insertArray['PaymentStatus'] = false; $insertArray['FeesPaymentID'] = $paymentID; $insertArray['VoucherNumber'] = $data['BillNO']; $insertArray['PaidTo'] = $getStudentName[0]->Firstname; $insertArray['BranchCode'] = $data['UpdatedBy']; $insertArray['ModeOfPayment'] = $data['ModeOfPayment']; $insertArray['StudentID'] = $data['StudentID']; $insertArray['CourseID'] = $courseID; $insertArray['FeePaymentDetails'] = $feesName; $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; $checkInsertIn=$this->add_dayBook($insertArray); if($checkInsertIn['addDayBookStatus']==true AND $data['ModeOfPayment']!='CASH'){ // this is for expense come entry $now1 = new DateTime(); $now1->setTimezone(new DateTimezone('Asia/Kolkata')); $expenseArray['Date'] = $data['BillDate']; $expenseArray['CreatedBy'] = $data['CreatedBy']; $expenseArray['CreatedOn'] = $now1->format('Y-m-d H:i:s');; $expenseArray['Description'] = $data['InternalComments']; $expenseArray['PaidDescription'] = ""; $expenseArray['Amount'] = $data['BillAmount']; $expenseArray['Status'] = 'Pending'; $expenseArray['PaymentStatus'] = false; $expenseArray['FeesPaymentID'] = $paymentID; $expenseArray['VoucherNumber'] = $data['BillNO']; $expenseArray['PaidTo'] = $getStudentName[0]->Firstname; $expenseArray['BranchCode'] = $data['UpdatedBy']; $expenseArray['ModeOfPayment'] = $data['ModeOfPayment']; $expenseArray['StudentID'] = $data['StudentID']; $expenseArray['CourseID'] = $courseID; $expenseArray['FeePaymentDetails'] = $feesName; $this->db->select('ID,TypeID'); $this->db->where('TypeID', 'I001'); $this->db->where('TypeName', 'FEES'); $getOutcome=$this->db->get(INCOMEOUTCOMEMASTER)->last_row(); if($getOutcome){ $expenseArray['Name'] = $getOutcome->TypeID; $expenseArray['Type'] = $getOutcome->ID; /* $this->db->insert(DAYBOOKMASTER, $expenseArray);*/ $checkInsertOut=$this->add_dayBook($expenseArray); } } } return true; } else{ return false; } } /* * send notification for student * created by kms * */ public function studentNotification(){ $date = new DateTime(date("d-m-Y")); $date->modify('+2 day'); $tomorrowDATE = $date->format('d-m-Y'); $this->db->select('FIN.ID,FIN.Name,FIN.FeesID,FIN.Amount,FIN.DueDate,SFS.StudentID,SFS.CourseID'); $this->db->from(FEES_INSTALLMENT.' as FIN'); $this->db->join(STUDENTS_FEES_STATUS.' as SFS', 'FIN.FeesID = SFS.FeesID'); $this->db->join(STUDENTS_FEES_PAID.' as SFP', 'SFP.FeesId = FIN.FeesID','left'); $this->db->where('FIN.DueDate',$tomorrowDATE); $this->db->where('SFP.IsActive','1'); $getStudentDetails = $this->db->get(); if ($getStudentDetails->result()){ foreach ($getStudentDetails->result() as $row){ $this->db->select('ifnull(SUM((SFP.BillAmount)),0) as BillAmount'); $this->db->from(STUDENTS_FEES_PAID.' as SFP'); $this->db->join(STUDENTS_FEES_STATUS.' as SFS', 'SFP.FeesId = SFS.FeesID'); $this->db->where('SFS.CourseID',$row->CourseID); $this->db->where('SFS.StudentID',$row->StudentID); $this->db->where('SFP.IsActive','1'); $getStudentPaiDetails = $this->db->get()->result(); if($row->Amount > $getStudentPaiDetails[0]->BillAmount){ $this->smssend($row->StudentID,$row->DueDate); } } } $date1 = new DateTime(date("d-m-Y")); $date1->modify('+7 day'); $afterFiveDays = $date1->format('d-m-Y'); $this->db->select('FIN.ID,FIN.Name,FIN.FeesID,FIN.Amount,FIN.DueDate,SFS.StudentID,SFS.CourseID'); $this->db->from(FEES_INSTALLMENT.' as FIN'); $this->db->join(STUDENTS_FEES_STATUS.' as SFS', 'FIN.FeesID = SFS.FeesID'); $this->db->join(STUDENTS_FEES_PAID.' as SFP', 'SFP.FeesId = FIN.FeesID','left'); $this->db->where('FIN.DueDate',$afterFiveDays); $this->db->where('SFP.IsActive','1'); $getStudentDetails1 = $this->db->get(); if ($getStudentDetails1->result()){ foreach ($getStudentDetails1->result() as $row1){ $this->db->select('ifnull(SUM((SFP.BillAmount)),0) as BillAmount'); $this->db->from(STUDENTS_FEES_PAID.' as SFP'); $this->db->join(STUDENTS_FEES_STATUS.' as SFS', 'SFP.FeesId = SFS.FeesID'); $this->db->where('SFS.CourseID',$row1->CourseID); $this->db->where('SFS.StudentID',$row1->StudentID); $this->db->where('SFP.IsActive','1'); $getStudentPaiDetails1 = $this->db->get()->result(); if($row1->Amount < $getStudentPaiDetails1[0]->BillAmount){ $this->smssend($row1->StudentID,$row1->DueDate); } } } // this is for update details in call track after due date $yesterdayDate = new DateTime(date("d-m-Y")); $yesterdayDate->modify('-1 day'); $preDATE = $yesterdayDate->format('d-m-Y'); $this->db->distinct(); $this->db->select('FIN.ID,FIN.Name,FIN.FeesID,FIN.Amount,FIN.DueDate,SFS.StudentID,SFS.CourseID'); $this->db->from(FEES_INSTALLMENT.' as FIN'); $this->db->join(STUDENTS_FEES_STATUS.' as SFS', 'FIN.FeesID = SFS.FeesID'); $this->db->join(STUDENTS_FEES_PAID.' as SFP', 'SFP.FeesId = FIN.FeesID','left'); $this->db->where('FIN.DueDate',$preDATE); $this->db->where('SFP.IsActive','1'); $getStudentDetails2 = $this->db->get(); if ($getStudentDetails2->result()){ foreach ($getStudentDetails2->result() as $row2){ $this->db->select('ifnull(SUM((SFP.BillAmount)),0) as BillAmount'); $this->db->from(STUDENTS_FEES_PAID.' as SFP'); $this->db->join(STUDENTS_FEES_STATUS.' as SFS', 'SFP.FeesId = SFS.FeesID'); $this->db->where('SFS.CourseID',$row2->CourseID); $this->db->where('SFS.StudentID',$row2->StudentID); $this->db->where('SFP.IsActive','1'); $getStudentPaiDetails2 = $this->db->get()->result(); if($row2->Amount > $getStudentPaiDetails2[0]->BillAmount){ $this->updateFeesStatusInCallTrack($row2->StudentID,$row2->CourseID); } } } return true; } /* * this is for sms send * created by kms * */ public function smssend($studentID=null,$date=null) { $studentDetails = $this->get_registered_mobile($studentID); $msg ="Dear $studentDetails->Firstname, Fees Payment for your course is falling due on $date. Please ignore if already paid."; $mobile = "91$studentDetails->MobileNumber"; // $message ="Your new password for logging into Apollo student portal is SAMPLE. Please change the password as soon as you login."; // $mobile = "91$mobile"; $message = urlencode($msg); $ch=curl_init(); curl_setopt($ch,CURLOPT_URL,"https://smsapi.24x7sms.com/api_2.0/SendSMS.aspx?APIKEY=xegCdYUIMf3&MobileNo=".$mobile."&SenderID=APOLLO&Message=".$message."&ServiceName=TEMPLATE_BASED"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE); $output =curl_exec($ch); // print_r($output);exit(); curl_close($ch); return $output; } // self function for getting registered mobile for sms public function get_registered_mobile($num) { $this->db->select('MobileNumber,Firstname'); $this->db->from(STUDENTS); $this->db->where('StudentID', $num); $roleDetails = $this->db->get()->first_row(); return $roleDetails; } /* * update followup details for fees pending in call tracking * created by kms * */ public function updateFeesStatusInCallTrack($studentID=null,$courseID=null){ $now = new DateTime(); $now->setTimezone(new DateTimezone('Asia/Kolkata')); $currentDate = new DateTime(date("d-m-Y")); $afterFormatedDate = $currentDate->format('d-m-Y'); // get student details $this->db->select('PLD.ListCode'); $this->db->from(PICK_LIST_DETAILS.' as PLD'); $this->db->where('PLD.ListName','PENDING'); $this->db->where('PLD.IsActive','1'); $checkStatus=$this->db->get()->last_row(); if($checkStatus){ $studentDetails = $this->studentInfoForFeesStatus($studentID,$courseID); if($studentDetails){ $arrayDetails['MobileNumber']=$studentDetails->MobileNumber; $arrayDetails['LeadName']=$studentDetails->Firstname; $arrayDetails['University']=$studentDetails->UniversityName; $arrayDetails['Course']=$studentDetails->CourseName; $arrayDetails['StatusCode']=$checkStatus->ListCode; $arrayDetails['CreatedBranch']=$studentDetails->BranchID; $arrayDetails['CreatedOn']=$now->format('Y-m-d H:i:s'); $arrayDetails['FollowupOn']=$afterFormatedDate; $arrayDetails['FollowupComments']="Fees payment for your course is falling."; // get created by with branch id $this->db->select('LO.ID'); $this->db->from(STAFF_BRANCH.' as STB'); $this->db->join(LOGIN.' as LO', 'LO.StaffID = STB.StaffID'); $this->db->where('STB.BranchCode',$studentDetails->BranchID); $this->db->where('LO.ListCode',ADMIN); $this->db->where('STB.IsActive','1'); $this->db->where('LO.IsActive','1'); $assignDet=$this->db->get()->last_row(); if($assignDet){ $arrayDetails['CreatedBy']=$assignDet->ID; } else{ $arrayDetails['CreatedBy']=''; } // create activity in call tracking $this->db->select('ActivityID,ActivityName'); $this->db->like('ActivityName', 'Fees', 'after'); $this->db->where('IsActive', '1'); $activityDetails=$this->db->get(ACTIVITY)->last_row(); if($activityDetails){ $newLeadDetails['MobileNumber'] = $arrayDetails['MobileNumber']; $newLeadDetails['LeadName'] = $arrayDetails['LeadName']; $newLeadDetails['CreatedBy'] = $arrayDetails['CreatedBy']; $newLeadDetails['CreatedOn'] = $arrayDetails['CreatedOn']; $this->db->insert(LEAD_DETAILS, $newLeadDetails); // this if for insert lead details if($this->db->affected_rows() == '1'){ // get and store insert id from db $track_Details['LeadID']=$this->db->insert_id(); $track_Details['ActivityStatus'] = $activityDetails->ActivityID; $track_Details['University'] = $arrayDetails['University']; $track_Details['Course'] = $arrayDetails['Course']; $track_Details['AssignedTo'] = $arrayDetails['CreatedBy']; $track_Details['StatusCode'] = $arrayDetails['StatusCode']; $track_Details['CreatedBy'] = $arrayDetails['CreatedBy']; $track_Details['CreatedOn'] = $arrayDetails['CreatedOn']; $track_Details['CreatedBranch']=$arrayDetails['CreatedBranch']; $this->db->insert(LEAD_TRACKING, $track_Details); // this if for insert tracking details if($this->db->affected_rows() == '1'){ $insertfollowup_Details['TrackingID']=$this->db->insert_id(); $insertfollowup_Details['FollowupOn']=$arrayDetails['FollowupOn']; $insertfollowup_Details['FollowupComments']=$arrayDetails['FollowupComments']; $insertfollowup_Details['CreatedBy'] = $arrayDetails['CreatedBy']; $insertfollowup_Details['CreatedOn'] = $arrayDetails['CreatedOn']; $this->db->insert(LEAD_TRACKING_FOLLOWUP, $insertfollowup_Details); // this if for insert follow up details } } // hide call track update code /*$this->db->select('LD.LeadID,LT.TrackingID'); $this->db->from(LEAD_DETAILS.' as LD'); $this->db->join(LEAD_TRACKING.' as LT', 'LT.LeadID = LD.LeadID'); $this->db->where('LD.MobileNumber',$arrayDetails['MobileNumber']); $this->db->where('LT.ActivityStatus',$activityDetails->ActivityID); $this->db->like('LT.University',$arrayDetails['University'],'after'); $this->db->like('LT.Course',$arrayDetails['Course'],'after'); $leadDet=$this->db->get()->last_row(); if($leadDet){ $this->db->select('FollowupOn'); $this->db->where('TrackingID',$leadDet->TrackingID); $existFollowupOn = $this->db->get(LEAD_TRACKING_FOLLOWUP)->last_row(); // upate tracking status $changeStatusCode['StatusCode'] = $arrayDetails['StatusCode']; $changeStatusCode['UpdatedBy'] = $arrayDetails['CreatedBy']; $changeStatusCode['UpdatedOn'] = $arrayDetails['CreatedOn']; $changeStatusCode['CreatedBranch']=$arrayDetails['CreatedBranch']; $this->db->where('TrackingID',$leadDet->TrackingID); $this->db->update(LEAD_TRACKING, $changeStatusCode); // end update status $updateTrackDetails['TrackingID'] = $leadDet->TrackingID; $updateTrackDetails['FollowupOn'] = $arrayDetails['FollowupOn']; $updateTrackDetails['FollowupComments'] = $arrayDetails['FollowupComments']; $updateTrackDetails['CreatedBy'] = $arrayDetails['CreatedBy']; $updateTrackDetails['CreatedOn'] = $arrayDetails['CreatedOn']; $this->db->insert(LEAD_TRACKING_FOLLOWUP, $updateTrackDetails); } else{ $this->db->select('LeadID'); $this->db->where('MobileNumber',$arrayDetails['MobileNumber']); $checkLeadDet=$this->db->get(LEAD_DETAILS)->last_row(); if($checkLeadDet){ $updateLeadDetails['LeadID'] = $checkLeadDet->LeadID; $updateLeadDetails['ActivityStatus'] = $activityDetails->ActivityID; $updateLeadDetails['University'] = $arrayDetails['University']; $updateLeadDetails['Course'] = $arrayDetails['Course']; $updateLeadDetails['AssignedTo'] = $arrayDetails['CreatedBy']; $updateLeadDetails['StatusCode'] = $arrayDetails['StatusCode']; $updateLeadDetails['CreatedBy'] = $arrayDetails['CreatedBy']; $updateLeadDetails['CreatedOn'] = $arrayDetails['CreatedOn']; $updateLeadDetails['CreatedBranch']=$arrayDetails['CreatedBranch']; $this->db->insert(LEAD_TRACKING, $updateLeadDetails); // this if for insert tracking details if($this->db->affected_rows() == '1'){ $followup_Details['TrackingID']=$this->db->insert_id(); $followup_Details['FollowupOn']=$arrayDetails['FollowupOn']; $followup_Details['FollowupComments']=$arrayDetails['FollowupComments']; $followup_Details['CreatedBy'] = $arrayDetails['CreatedBy']; $followup_Details['CreatedOn'] = $arrayDetails['CreatedOn']; $this->db->insert(LEAD_TRACKING_FOLLOWUP, $followup_Details); // this if for insert follow up details } } else{ $newLeadDetails['MobileNumber'] = $arrayDetails['MobileNumber']; $newLeadDetails['LeadName'] = $arrayDetails['LeadName']; $newLeadDetails['CreatedBy'] = $arrayDetails['CreatedBy']; $newLeadDetails['CreatedOn'] = $arrayDetails['CreatedOn']; $this->db->insert(LEAD_DETAILS, $newLeadDetails); // this if for insert lead details if($this->db->affected_rows() == '1'){ // get and store insert id from db $track_Details['LeadID']=$this->db->insert_id(); $track_Details['ActivityStatus'] = $activityDetails->ActivityID; $track_Details['University'] = $arrayDetails['University']; $track_Details['Course'] = $arrayDetails['Course']; $track_Details['AssignedTo'] = $arrayDetails['CreatedBy']; $track_Details['StatusCode'] = $arrayDetails['StatusCode']; $track_Details['CreatedBy'] = $arrayDetails['CreatedBy']; $track_Details['CreatedOn'] = $arrayDetails['CreatedOn']; $track_Details['CreatedBranch']=$arrayDetails['CreatedBranch']; $this->db->insert(LEAD_TRACKING, $track_Details); // this if for insert tracking details if($this->db->affected_rows() == '1'){ $insertfollowup_Details['TrackingID']=$this->db->insert_id(); $insertfollowup_Details['FollowupOn']=$arrayDetails['FollowupOn']; $insertfollowup_Details['FollowupComments']=$arrayDetails['FollowupComments']; $insertfollowup_Details['CreatedBy'] = $arrayDetails['CreatedBy']; $insertfollowup_Details['CreatedOn'] = $arrayDetails['CreatedOn']; $this->db->insert(LEAD_TRACKING_FOLLOWUP, $insertfollowup_Details); // this if for insert follow up details } } } }*/ } } return true; } else{ return false; } } /* * get student info for fees due updates * created by kms * */ public function studentInfoForFeesStatus($studentID=null,$courseID=null){ $this->db->select('ST.Firstname,ST.MobileNumber,US.UniversityName,CU.CourseName,STC.BranchID'); $this->db->from(STUDENTCOURSE.' as STC'); $this->db->join(STUDENTS.' as ST', 'ST.StudentID = STC.StudentID'); $this->db->join(COURSE.' as CU', 'CU.CourseID = STC.CourseID'); $this->db->join(UNIVERSITY.' as US', 'US.UniversityID = STC.UniversityID'); $this->db->where('ST.StudentID',$studentID); $this->db->where('STC.CourseID',$courseID); $leadDet=$this->db->get()->last_row(); if($leadDet){ return $leadDet; } else{ return false; } } /* * Get session master details * created by kms * */ public function getSession($details=null) { $this->db->select('SM.SessionID,SM.SessionDate,SM.SessionName,SM.IsActive'); $this->db->from(SESSIONMASTER.' as SM'); $this->db->join(SESSIONDETAILS.' as SD', 'SM.SessionID = SD.SessionID'); $this->db->join(UNIVERSITY.' as US', 'US.UniversityID = SD.UniversityID'); $this->db->join(COURSE.' as CU', 'CU.UniversityID = US.UniversityID'); // $this->db->where('SD.IsActive','1'); $this->db->order_by('CU.CreatedOn','DESC'); $this->db->where('CU.CourseID',$details['CourseID']); // $this->db->group_by('SM.SessionName','DESC'); $sessionDetails = $this->db->get(); if($sessionDetails->result()){ return $sessionDetails->result(); } else { return false; } } /* * Entry for all status update * created by kms * */ public function entryForAllStatus($feesDetails=null,$courseID=null){ $singleFeesDetails=["SEM 1","SEM 2","SEM 3","SEM 4","SEM 5","SEM 6","SEM 7","SEM 8"]; // get pick list expected status $this->db->select('ListCode,ListName'); $this->db->where('ListName','EXPECTED'); $this->db->where('IsActive','1'); $existStatusDetails = $this->db->get(PICK_LIST_DETAILS)->last_row(); if($existStatusDetails){ //check if exist $this->db->select('SFS.FeesID,SFS.FeesType'); $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',$courseID); $this->db->where('SFS.StudentID',$feesDetails['StudentID']); $this->db->where('SFP.FeesId',$feesDetails['FeesId']); $existDetails = $this->db->get(); if($existDetails->num_rows()>1){ return true; } else{ $fetchData = $existDetails->result(); if($fetchData[0]->FeesType!=PC AND $fetchData[0]->FeesType!=DC AND $fetchData[0]->FeesType!=TC AND $fetchData[0]->FeesType!=MC AND $fetchData[0]->FeesType!=OTHER) { $this->db->select('SFS.FeesType,CF.Sem_Year,CF.ProgramType'); $this->db->from(STUDENTS_FEES_STATUS.' as SFS'); $this->db->join(COURSE_FEES.' as CF', 'CF.ID = SFS.FeesType'); $this->db->where('SFS.CourseID',$courseID); $this->db->where('SFS.StudentID',$feesDetails['StudentID']); $this->db->where('SFS.FeesID',$feesDetails['FeesId']); $getFeesTypeDetails = $this->db->get(); if($getFeesTypeDetails->result()){ $insertDetails=array(); foreach ($getFeesTypeDetails->result() as $row){ // this array for study material and answer booklet update $insertStudyBook['StudentID']=$feesDetails['StudentID']; $insertStudyBook['CourseID']=$row->FeesType; $insertStudyBook['BranchCode']=$feesDetails['UpdatedBy']; $insertStudyBook['ListCode']=$existStatusDetails->ListCode; $insertStudyBook['Comments']=$feesDetails['CommentsForStudent']; $insertStudyBook['Coursedetail']=$feesDetails['StudentID']; $insertStudyBook['CreatedBy']=$feesDetails['CreatedBy']; $insertStudyBook['CreatedOn']=$feesDetails['CreatedOn']; // this array for mark card updates $insertMark['StudentID']=$feesDetails['StudentID']; $insertMark['CourseID']=$row->FeesType; $insertMark['BranchCode']=$feesDetails['UpdatedBy']; $insertMark['ListCode']=$existStatusDetails->ListCode; $insertMark['Comments']=$feesDetails['CommentsForStudent']; $insertMark['Coursedetail']=$feesDetails['StudentID']; $insertMark['CreatedBy']=$feesDetails['CreatedBy']; $insertMark['CreatedOn']=$feesDetails['CreatedOn']; $insertMark['CertificationType']="MARK CARD"; if($row->ProgramType==REGULARFEES OR $row->ProgramType==LATERALFEES){ foreach ($singleFeesDetails as $Fees){ $insertStudyBook['Sem']=$Fees; // insert study material details $this->db->insert(STUDY_MATERIAL_STATUS, $insertStudyBook); // insert answer booklet details $this->db->insert(ANSWER_BOOKLET, $insertStudyBook); // insert mark card details $insertMark['Sem']=$Fees; $this->db->insert(CERTIFICATION_STATUS, $insertMark); } } else{ $insertStudyBook['Sem']=$row->Sem_Year; // insert study material details $this->db->insert(STUDY_MATERIAL_STATUS, $insertStudyBook); // insert answer booklet details $this->db->insert(ANSWER_BOOKLET, $insertStudyBook); // insert mark card details $insertMark['Sem']=$row->Sem_Year; $this->db->insert(CERTIFICATION_STATUS, $insertMark); } } } } else{ $this->db->select('CertificationID'); $this->db->where('CertificateName',$fetchData[0]->FeesType); $this->db->where('IsActive','1'); $getEndFeesDetails = $this->db->get(CERTIFICATION_MASTER)->last_row(); if($getEndFeesDetails){ // this array for document update $insertDocs['StudentID']=$feesDetails['StudentID']; $insertDocs['CourseID']=$courseID; $insertDocs['BranchCode']=$feesDetails['UpdatedBy']; $insertDocs['ListCode']=$existStatusDetails->ListCode; $insertDocs['Comments']=$feesDetails['CommentsForStudent']; $insertDocs['CreatedBy']=$feesDetails['CreatedBy']; $insertDocs['CreatedOn']=$feesDetails['CreatedOn']; $insertDocs['CertificationType']=$getEndFeesDetails->CertificationID; // insert application details $this->db->insert(APPLICATION_STATUS,$insertDocs); } } } return true; } else{ return false; } } // add dayBook public function add_dayBook($Arr) { $branch = $Arr['BranchCode']; $sql = "SELECT * FROM ".DAYBOOKMASTER." WHERE BranchCode = '$branch' ORDER BY ID DESC LIMIT 1"; $prevBalance = 0; $latestUpdate = $this->db->query($sql); $latestUpdateDetails = $latestUpdate->result(); If(is_array($latestUpdateDetails) && count($latestUpdateDetails)>0) { $prevBalance = $latestUpdateDetails[0]->Balance; }else{ } if($Arr['Name'] == 'I002') { //Income $Arr['Balance'] = $prevBalance + $Arr['Amount']; }else if ($Arr['Name'] == 'I001') { //Expense $Arr['Balance'] = $prevBalance - $Arr['Amount']; } else { $Arr['Balance'] = 0; } $this->db->insert(DAYBOOKMASTER, $Arr); if ($this->db->affected_rows() == '1') { $result['addDayBookStatus'] = true; $result['message'] = "Successfully DayBook Details Added"; } else { $result['addDayBookStatus'] = false; $result['message'] = "Something went wrong.please try again"; } return $result; } }