MMCT TEAM
Server IP : 103.191.208.50  /  Your IP : 216.73.216.53
Web Server : LiteSpeed
System : Linux orion.herosite.pro 4.18.0-553.53.1.lve.el8.x86_64 #1 SMP Wed May 28 17:01:02 UTC 2025 x86_64
User : celkcksm ( 1031)
PHP Version : 7.4.33
Disable Function : show_source, system, shell_exec, passthru, popen, exec
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : ON
Directory (0755) :  /home/celkcksm/ecampus.ncriptech.com/application/controllers/cron/

[  Home  ][  C0mmand  ][  Upload File  ]

Current File : /home/celkcksm/ecampus.ncriptech.com/application/controllers/cron/Lms.php
<?php
defined('BASEPATH') OR exit('No direct script access allowed');

class Lms extends CI_Controller {

	public function __construct(){
		parent::__construct();
		$this->load->model(array('lms/book_model'=>'lmsbm','lms/rack_model'=>'rcm','lms/publisher_model'=>'pbm','lms/category_model'=>'cam','lms/author_model'=>'aum','lms/language_model'=>'lsmlm','lms/issues_model'=>'lsmism'));
	}

	public function update_penalty_applied()
	{
		// Get the list of institutes
		$institutes = $this->um->get_institute(null, FALSE);
		$current_date = date('Y-m-d');

		// Check if institutes data is not empty
		if (!empty($institutes)) {
			foreach ($institutes as $key => $value) {
				$db_group = $value->user_code;

				//echo $db_group;die;

				$issues_data = $this->lsmism->__get_book_issue_data(array('issue_penalty_applied'=>'yes'),array('issue_status'=>'issued','issue_status'=>'renewed'),FALSE,$db_group);

				if(!empty($issues_data)){
					foreach ($issues_data as $k => $v) {
						$return_date=$v->issue_return_last_date;
						// Calculate the difference in days and months
						$date_diff = date_diff(date_create($return_date), date_create($current_date));
						$days_late = $date_diff->days; // Total days late
                        $months_late = $date_diff->m + ($date_diff->y * 12); // Total months late

						if ($v->issue_penalty_type == 'one_time') {
							// One-time penalty
							$total_payable_amount = $v->issue_penalty;
							$late_fee_time='0';
						} else if ($v->issue_penalty_type == 'per_day') {
							// Per-day penalty
							$total_payable_amount = $v->issue_penalty * $days_late;
							$late_fee_time=$days_late;
						} else if ($v->issue_penalty_type == 'per_month') {
							// Per-month penalty
							$total_payable_amount = $v->issue_penalty * $months_late;
							$late_fee_time=$months_late;
						}

						if($total_payable_amount>0){
							$late_fee_found=$this->lsmism->get_book_issue_late_fees_data(array('book_issue_id'=>$v->issue_id,'late_fee_inst_id'=>$v->issue_inst_id,'late_fee_user_id'=>$v->issue_user_id,'late_fee_user_type'=>$v->issue_user_type),TRUE,$db_group);
							if(empty($late_fee_found)){
								$late_fee_data=array(
									'book_issue_id'=>$v->issue_id,
									'late_fee_inst_id'=>$v->issue_inst_id,
									'late_fee_inst_parent_id'=>'0',
									'late_fee_user_id'=>$v->issue_user_id,
									'late_fee_user_type'=>$v->issue_user_type,
									'late_fee_type'=>$v->issue_penalty_type,
									'late_fee_type_value'=>$late_fee_time,
									'late_fee'=>$total_payable_amount,
									'created_at'=>$current_date
								);
	
								$this->lsmism->store_book_issue_late_fees_data($late_fee_data,$db_group);
							}							
						}

						if($days_late>0){
							$this->lsmism->update_book_issue_data(array('issue_status'=>'not_returned','issue_updated_at'=>date('Y-m-d H:i:s')),array('issue_id'=>$v->issue_id),FALSE,$db_group);
						}

						echo '<br>User ID: ' . $v->issue_user_id.'<br>User Type: ' . $v->issue_user_type.'<br>Total Time:'.$late_fee_time.'<br>Penaty Amount:'.$v->issue_penalty.'<br> Penalty:'.$total_payable_amount;
					}
				}

			}
		}
	}
}

MMCT - 2023