# Query to retrieve expired SM certs
$query = "
SELECT certifications.id_record AS record, 
CONCAT(members.name_first,' ',members.name_last) AS full_name,
members.id_record AS m_record,
teams.team_name,
UNIX_TIMESTAMP(certifications.date_test) AS d_test,
UNIX_TIMESTAMP(certifications.date_certified) AS d_certified,
UNIX_TIMESTAMP(certifications.date_expires) AS d_expired,
certifications.id_instructor,
UNIX_TIMESTAMP(certifications.date_search1) AS d_search1,
certifications.flag_search1,
UNIX_TIMESTAMP(certifications.date_search2) AS d_search2,
certifications.flag_search2,
certifications.id_types_certifications,
certifications.id_certifying_agency,
users.full_name AS user,
DATE_FORMAT(certifications.when_entered,'%W %M %D, %Y %H:%i:%s') AS edit_time,
types_certifications.type1 AS type,
types_certifications.id_record AS cert_record,
types_certifications.expires AS expires,
types_cert_agencies.agency_desc1 AS agency,
types_certifications.flag_cuser AS flag_cuser,
members.team_province AS province
FROM certifications
LEFT JOIN users ON users.id_record=certifications.id_users
LEFT JOIN members ON certifications.id_members=members.id_record
LEFT JOIN teams_members ON members.id_record=teams_members.id_members
LEFT JOIN teams ON teams_members.id_teams=teams.id_record
LEFT JOIN types_certifications ON certifications.id_types_certifications=types_certifications.id_record
LEFT JOIN types_cert_agencies ON types_cert_agencies.id_record=certifications.id_certifying_agency
WHERE UNIX_TIMESTAMP(certifications.date_expires) < UNIX_TIMESTAMP(CONCAT(CURDATE(),' 00:00')) AND certifications.id_types_certifications = 5 AND certifications.date_test != 0
";


EXPIRED
certifications.date_expires < CURDATE()
certifications.id_types_certifications = 5
certifications.date_test != NULL

RECERTIFY
date_sub(certifications.date_certified,CURDATE()) < 12
date_sub(certifications.date_test,CURDATE()) < 12
date_sub(certifications.date_search1,CURDATE()) < 12 AND certifications.flag_search1 = 0
(date_sub(certifications.date_search1,CURDATE()) < 12 AND certifications.flag_search1 = 1) AND
(date_sub(certifications.date_search2,CURDATE()) < 12 AND certifications.flag_search2 = 1)



UNIX_TIMESTAMP(date_start) < UNIX_TIMESTAMP(CONCAT(DATE_SUB(CURDATE(), INTERVAL 12 MONTH),' 00:00'))

SELECT date_certified FROM certifications WHERE id_record=1
SELECT DATE_SUB(CURDATE(), INTERVAL 12 MONTH)

621 2006-01-04 
823 2005-11-05
714 2005-03-19

$period = date('Y-m-d',mktime(0, 0, 0, date("m")-12, date("d"),  date("Y")));
$yearago = strftime ("%Y-%m-%d", strtotime("-12 month"));


PrevPeriod is May 1 Y1 to April 30 Y2
CurPeriod is May 1 Y2 to April 30 Y3
Check is OK during CurPeriod for data in PrevPeriod, Certexp = April 30 Y3

Only for certs with Expiry PrevPeriod End date, PrevPeriod End Date > Dates > PrevPeriod start date

In Feb Y3, CurPeriodAprilYear = Y2, PrevPeriodAprilYear = Y1
In May Y3, CurPeriodAprilYear = Y3, PrevPeriodAprilYear = Y2

1. Expires in PrevPeriod AND cert = SM AND Test is not null
2. (Certified = Last Period OR test = last period) AND ((Search1 = Last Period AND Mock1 = No) OR (Search 1, search2 = Last Period AND Mock1, Mock2 = Yes))

SELECT

WHERE certifications.date_expires < CURDATE() AND certifications.id_types_certifications = 5 AND certifications.date_test != NULL


<?php

#$CurYearApril30 = date('Y-m-d',mktime(0, 0, 0, 4, 30,  date("Y")));
#$CurDate = date('Y-m-d');
$CurYearApril30 = mktime(0, 0, 0, 4, 30,  date("Y"));
$CurDate = mktime(0, 0, 0, date("m"), date("d"),  date("Y"));
If ($CurDate  <= $CurYearApril30){
	$CurPeriodAprilYear = date("Y")-1;
	$PrevPeriodAprilYear = date("Y")-2;
	$CurStart = date('Y-m-d',mktime(0, 0, 0, 5, 1,  date("Y")-1));
	$CurEnd = date('Y-m-d',mktime(0, 0, 0, 4, 30,  date("Y")));
	$PrevStart = date('Y-m-d',mktime(0, 0, 0, 5, 1,  date("Y")-2));
	$PrevEnd =date('Y-m-d',mktime(0, 0, 0, 4, 30,  date("Y")-1));
}else{
	# $CurDate > $CurYearApril30
	$CurPeriodAprilYear = date("Y");
	$PrevPeriodAprilYear = date("Y")-1;
	$CurStart = date('Y-m-d',mktime(0, 0, 0, 5, 1,  date("Y")));
	$CurEnd = date('Y-m-d',mktime(0, 0, 0, 4, 30,  date("Y")+1));
	$PrevStart = date('Y-m-d',mktime(0, 0, 0, 5, 1,  date("Y")-1));
	$PrevEnd =date('Y-m-d',mktime(0, 0, 0, 4, 30,  date("Y")));
}

Print "CurYearApril30 = ".date('Y-m-d',$CurYearApril30)."<br>";
Print "CurDate = ".date('Y-m-d',$CurDate)."<br>";
Print "<br>CurPeriodAprilYear = $CurPeriodAprilYear<br>";
Print "CurStart = $CurStart<br>";
Print "CurEnd = $CurEnd<br>";
Print "<br>PrevPeriodAprilYear = $PrevPeriodAprilYear<br>";
Print "PrevStart = $PrevStart<br>";
Print "PrevEnd = $PrevEnd<br>";

?>