<?php 
// Checked for PHP5.6 / 8.x compatibility
include ("../../operainfo/getq.php");
$filter=safetext2(isset($_GET['filter']) ? $_GET['filter'] : '');
$admin=safetext2(isset($_GET['admin']) ? $_GET['admin'] : '');
$familyid=safetext2(isset($_GET['familyid']) ? $_GET['familyid'] : '');
$showextra=safetext2(isset($_GET['showextra']) ? $_GET['showextra'] : '');

?>
<html>
<head><title><?php print "$filter";?> Quality Manual</title></head>
<body>


<div id='test1'></div>
<?php



if ($filter=='')
	{
	$filter=isset($_POST['filter']) ? $_POST['filter'] : '';
	}
$s="SELECT docid, addedon FROM ISO_quality_manual_files ORDER BY id DESC LIMIT 0,1";
$stmt=pdoquery($s);
$rows=$stmt->fetchAll(PDO::FETCH_ASSOC);
foreach ($rows as $row)
			{
			$lastdocid=$row['docid'];
			//$isorevision=date("Y").":".$lastdocid;
			
			}
			
	
			
$s="SELECT id FROM ISO_quality_manual_filter_groups WHERE filter=?";
$stmt=pdoquery($s, array($filter));
$rows=$stmt->fetchAll(PDO::FETCH_ASSOC);
foreach ($rows as $row)
			{

			//print "$qmid2<br>";
			}			
$s="SELECT id FROM ISO_quality_manual WHERE filter=?";
$stmt=pdoquery($s, array($filter));
$rows=$stmt->fetchAll(PDO::FETCH_ASSOC);
$isvalidqmid=array();
foreach ($rows as $row)
{
				$qmid2=$row['id'];
			$isvalidqmid[$qmid2]=1;
}

$s="SELECT docid, description, archived FROM ISO_quality_manual_files WHERE type='Audit' AND archived='' ORDER BY description";	
$stmt=pdoquery($s);
$rows=$stmt->fetchAll(PDO::FETCH_ASSOC);
$num=count($rows);
$isaudit=array();
foreach ($rows as $row)
	{
	$docid=$row['docid'];	
	$isaudit[$docid]=$row['description'];
	}
			
$s="SELECT version, signedoffon FROM ISO_quality_manual_filter_groups_signedoff WHERE qm=?";
//print "$s";
$stmt=pdoquery($s, array($qmid2));
$rows=$stmt->fetchAll(PDO::FETCH_ASSOC);
foreach ($rows as $row)
			{
			$isorevision="Manual Revision Code<br><b>".strtoupper($row['version'])."</b>" ."<br>".date("d M Y",$row['signedoffon']);
			}
			

			
$r= "SELECT description, docid, hostcompanyid FROM ISO_quality_manual_filter_groups WHERE filter=? ";
//print "$r";
$stmt = pdoquery($r, array($filter));
$rows = $stmt->fetchAll(PDO::FETCH_ASSOC);
$manualdescription='';
$usedocidx=0;
$hostcompanyid=0;
foreach ($rows as $row)
	{ 
	$manualdescription=$row['description'];
	$usedocidx=$row['docid'];
	$hostcompanyid=isset($row['hostcompanyid']) ? (int)$row['hostcompanyid'] : 0;
	}

$s="SELECT docid, description, addedon, archived, primarycop FROM ISO_quality_manual_files WHERE archived=''";
$stmt=pdoquery($s);
$rows=$stmt->fetchAll(PDO::FETCH_ASSOC);
$docdesc=array();
$docdateupload=array();
$islivedoc=array();
$isprimary=array();
foreach ($rows as $row)
		{
		$usefileid=$row['docid'];
		$docdesc[$usefileid]=$row['description'];
		$docdateupload[$usefileid]=$row['addedon']+0;
		if ($row['archived']=='')
				{
				$islivedoc[$usefileid]=1;
				if ($row['primarycop']==1)
					{
					$isprimary[$usefileid]=1;
					}
				}
		}
		


	
// Workout Last Update to Generate a version number
$r= "SELECT ISO_quality_manual_filelinks.date AS lastdone, ISO_quality_manual_filelinks.id AS id  
FROM ISO_quality_manual, ISO_quality_manual_filelinks  WHERE 
ISO_quality_manual.filter=?  AND ISO_quality_manual.id=ISO_quality_manual_filelinks.qmid ORDER BY ISO_quality_manual_filelinks.date
 ";
//print "$r";
$stmt = pdoquery($r, array($filter));
$rows = $stmt->fetchAll(PDO::FETCH_ASSOC);
$lastdate=0;
$lastrec=0;
foreach ($rows as $row)
	{ 
	$lastdate=$row['lastdone'];
	$lastrec=$row['id'];
	 //print "$row[lastdone] $row[id]<br>";
	}

$r= "SELECT ISO_quality_manual_files.addedon AS lastdone, ISO_quality_manual_filelinks.id AS id  
FROM ISO_quality_manual_files, ISO_quality_manual, ISO_quality_manual_filelinks  WHERE 
ISO_quality_manual.filter=?  
AND ISO_quality_manual.id=ISO_quality_manual_filelinks.qmid AND ISO_quality_manual_files.docid=ISO_quality_manual_filelinks.fileid  ORDER BY ISO_quality_manual_files.addedon
 ";
//print "$r";
$stmt = pdoquery($r, array($filter));
$rows = $stmt->fetchAll(PDO::FETCH_ASSOC);
foreach ($rows as $row)
	{ 
	
	
	if ($row['lastdone']>$lastdate)
		{
		$lastdate=$row['lastdone'];
		}
	}	
	

		
$s="SELECT qmid, fileid, date FROM ISO_quality_manual_filelinks ORDER BY date";
$stmt=pdoquery($s);
$rows=$stmt->fetchAll(PDO::FETCH_ASSOC);
$lastupdatedon=0;
foreach ($rows as $row)
{
	$qmid2=$row['qmid'];
	$usefileid=$row['fileid'];

	//print "$qmid $usefilterid $docdateupload[$usefileid]<br>";
	if (isset($isvalidqmid[$qmid2]) && $isvalidqmid[$qmid2]==1)
	{
		if (isset($docdateupload[$usefileid]) && $docdateupload[$usefileid] > $lastupdatedon ){
		$lastupdatedon=$docdateupload[$usefileid];
		//print "$qmid2 $usefileid $lastupdatedon <br>";
		}
				if ($row['date']+0 > $lastupdatedon ){
		$lastupdatedon=$row['date']+0;
		//print "$qmid2 $usefileid $lastupdatedon <br>";
		}
	}
	
}

$s="SELECT qmid, processid, addedon FROM ISO_quality_manual_processes";
$stmt=pdoquery($s);
$rows=$stmt->fetchAll(PDO::FETCH_ASSOC);
$lastprocesson=0;
$lastprocesswas=array();
$isvalidprocess=array();
foreach ($rows as $row)
{
	$qmid2=$row['qmid'];
	if (isset($isvalidqmid[$qmid2]) && $isvalidqmid[$qmid2]==1)
	{
	$lastprocesson=$row['addedon'];
	$lastprocesswas[$lastprocesson]=$row['processid'];

	$processid=$row['processid'];
	$isvalidprocess[$processid]=1;
						if ($processid==7723)
			{
				//print "7723<br>";
			}
		}

}

$s="SELECT jobid, updatedon FROM ISO_job_titles_risks ORDER BY updatedon";
$stmt=pdoquery($s);
$rows=$stmt->fetchAll(PDO::FETCH_ASSOC);
$subprocessupdate=array();
$lastprocessupdate=0;
foreach ($rows as $row)
{
	$processid=$row['jobid'];
	$subprocessupdate[$processid]=$row['updatedon'];
			if ($subprocessupdate[$processid] > $lastprocessupdate)
		{
			$lastprocessupdate=$subprocessupdate[$processid];
		}
								if ($processid==7723)
			{
				//print "$subprocessupdate[$processid] 7723 $row[updatedon]<br>";
			}
}



// find the audit rolling tasks / audits
$s="SELECT id, live_date, subject FROM viamedagendafuture WHERE primaryaudit<>'0'";
$stmt=pdoquery($s);
$rows=$stmt->fetchAll(PDO::FETCH_ASSOC);
$duetime=array();
$dueprntime=array();
$moncon=array();
$monthlist=array();
$subject=array();
foreach ($rows as $row)
	{
	
	$futid=$row['id'];
	$duetime[$futid]=date("m",$row['live_date']);
	$dueprntime[$futid]=date("M",$row['live_date']);
	$month=date("m",$row['live_date']);
	$moncon[$duetime[$futid]]=$dueprntime[$futid];
	$monthlist[$month]=$month;
	$subject[$futid]=$row['subject'];
	}
	// Find the Process linked to the docs

	


	
	
	

$lastprocessupdate=0;
$s="SELECT id, auditid FROM ISO_job_base_process ";
$stmt=pdoquery($s);
$rows=$stmt->fetchAll(PDO::FETCH_ASSOC);
$myauditprocess=array();
$processisaudit=array();
foreach ($rows as $row)
{
	$processid=$row['id'];
	$auditid=$row['auditid'];
	if (isset($duetime[$auditid]) && $duetime[$auditid]<>'')
		{
		$myauditprocess[$auditid]=$row['id'];
		$processisaudit[$processid]=$auditid;
		}
		

}


$s="SELECT docid, processid FROM ISO_job_base_process_files";
$stmt=pdoquery($s);
$rows=$stmt->fetchAll(PDO::FETCH_ASSOC);
$num=count($rows);
$tproccount=array();
foreach ($rows as $row)
	{
	$tdocid=$row['docid'];
	$processid=$row['processid'];
	if (isset($processisaudit[$processid]) && $processisaudit[$processid]>0)
		{
		$auditid=$processisaudit[$processid];
		$tproccount[$tdocid] = isset ( $tproccount[$tdocid] ) ? $tproccount[$tdocid] : '';
		$tproccount[$tdocid] .= "$processid $dueprntime[$auditid] ";
		}
	
	}

	
	

//print "$lastupdatedon";
	//
$s="SELECT oldid, addedon, docid FROM ISO_quality_manual_files WHERE docid=? ORDER BY id";
//print "$s<br>";
$stmt=pdoquery($s, array($usedocidx));
$rows=$stmt->fetchAll(PDO::FETCH_ASSOC);
$olddocidx=0;
$rev='';
foreach ($rows as $row)
{
	
	$olddocidx=$row['oldid'];
	$rev=date("d M Y",$row['addedon'])." Revision:".$row['addedon']."  ID".$row['docid'];
}
$s="SELECT docid FROM ISO_quality_manual_files WHERE docid=? ORDER BY id";
//print "$s";
$stmt=pdoquery($s, array($olddocidx));
$rows=$stmt->fetchAll(PDO::FETCH_ASSOC);
foreach ($rows as $row)
{
	
	//$rev=date("Y",$row['addedon'])." Revision:".$row['addedon']."  ID".$row['docid'];
}
$prndate=date("d M Y",isset($docdateupload[$usedocidx]) ? $docdateupload[$usedocidx] : 0);

print "<center><h1>$manualdescription</h1><br>$rev <br> <br>";
?>

<form method="get" action="quality_man_audits_export_preview.php<?php print $x; ?>" style="margin-bottom: 20px;">
    <input type="hidden" name="filter" value="<?php print htmlspecialchars($filter); ?>">
    <input type="hidden" name="hostcompanyid" value="<?php print htmlspecialchars($hostcompanyid); ?>">
    <input type="submit" value="Export Document Review Reports (ZIP)" style="font-size: 14px; padding: 8px 16px;">
</form>

<?php

	
	
$r= "SELECT iso_section_header, ord, iso_section FROM ISO_quality_manual WHERE filter=? ORDER BY ord DESC LIMIT 0,1";
$stmt = pdoquery($r, array($filter));
$rows = $stmt->fetchAll(PDO::FETCH_ASSOC);
$lasthead='';
$lastord=0;
$lastsect='';
foreach ($rows as $row)
	{ 
	$lasthead=$row['iso_section_header'];
	$lastord=($row['ord']+5);
	$lastsect=$row['iso_section'];
	}

$r1= "SELECT id, document_format, document_type, document_path, document_filename ,document_description FROM ISO_document_path";
$stmt1 = pdoquery($r1);
$rows1 = $stmt1->fetchAll(PDO::FETCH_ASSOC);
$usetype=array();
$usedocdesc=array();
$uselinkid=array();
foreach ($rows1 as $row1)
	{ 
	$usedocid=$row1['id'];
	$usetype[$usedocid]=$row1['document_format'];$usedocdesc[$usedocid]="<tr><td>".$row1['document_type']."</tD><Td>".$row1['document_format']."</td><td>".$row1['document_description']."</td></tr>";

	

	if ( $row1['document_format']=='Intrastat')
		{
		$uselinkid[$usedocid]="$homeloc".$row1['document_path'];
		}
		else
		{
		$uselinkid[$usedocid]="$row1[document_path]$row1[document_filename]";
		}


	}

$s="SELECT qmid FROM ISO_quality_manual_processes";
$stmt=pdoquery($s);
$rows=$stmt->fetchAll(PDO::FETCH_ASSOC);
$numberprocesses=array();
foreach ($rows as $row)
	{
	$qqqid=$row['qmid'];
	$numberprocesses[$qqqid]=isset($numberprocesses[$qqqid]) ? $numberprocesses[$qqqid]+1 : 1;
	}


?>


<h3> Audit Links / Schedule</h3>

<?php

			?>



<table border=1 class=n3>
<tr><td></td><td>Section</td><td>VOPS / VM3COPS</td><td>Audits Attached (Process IDs) </td></tr>
<?php 

?>


<?php 

print "</tr>";

$lastheader='';
$firstletter='';
$lastfirstletter='';
$r= "SELECT id, signedoffon, bsisignedoff, iso_section, iso_section_header, long_text FROM ISO_quality_manual WHERE filter=? ORDER BY ord";
//print "$r";
$stmt = pdoquery($r, array($filter));
$rows = $stmt->fetchAll(PDO::FETCH_ASSOC);
foreach ($rows as $row)
	{ 
	
	$qmid=$row['id'];
	if ($row['signedoffon']>0)
		{
		$issigned[$qmid]="CHECKED";
		//print "$row[id]";
		} else
		{
		$issigned[$qmid]='';
		}
        if ($row['bsisignedoff']>0)
                {
                $isbsisigned[$qmid]="CHECKED";
                } else
                {
                $isbsisigned[$qmid]='';
                }

	
	//find first Letter of Section
	$firstletter=substr($row['iso_section'],0,1);
	if  ($firstletter<>$lastfirstletter)
		{
		print "<tr bgcolor=#888888> <td>";

print "	</td> <td colspan=3><h1><b>$firstletter $row[iso_section_header]</b></h1></td></tr>";
		$lastfirstletter=$firstletter;
		}
	//

	print "<tr  bgcolor=#bbbbbb>";
	
	print "<td>";
	$lngtxt=nl2br ($row['long_text']);

$lngtxt=str_replace ( "<br />" , "",$lngtxt);
	print "</td><td valign=top><a title=\"$lngtxt\">$row[iso_section]</a>";
	

	
	
	if ($lastheader==$row['iso_section_header'])
	{
	

		
		
		
	
	print "</td>";
	}
	else
	{
	print "</td>";
	}
	$lastheader=$row['iso_section_header'];


	//print "<td valign=top>$lngtxt</td>";



$extrasearch="( qmid='asd' ";
$s2="SELECT linkto_qmid FROM ISO_quality_manual_links_tech_iso WHERE qmid=? AND linkto_qmid<>''";
$stmt2=pdoquery($s2, array($row['id']));
$rows2=$stmt2->fetchAll(PDO::FETCH_ASSOC);
foreach ($rows2 as $row2)
				{
				$extrasearch="$extrasearch OR qmid='".$row2['linkto_qmid']."' ";
				}


$headersearch="( headerid='x' ";
$s2="SELECT linkto_CEid FROM ISO_quality_manual_links_tech_iso WHERE qmid=? AND linkto_CEid<>''";
$stmt2=pdoquery($s2, array($row['id']));
$rows2=$stmt2->fetchAll(PDO::FETCH_ASSOC);
foreach ($rows2 as $row2)
				{
				$headersearch="$headersearch OR headerid='".$row2['linkto_CEid']."' ";
				}
$headersearch="$headersearch )";
$count=0;
$s2="SELECT id FROM ISO_ce_index WHERE $headersearch AND familyid=?";
$stmt2=pdoquery($s2, array($familyid));
$rows2=$stmt2->fetchAll(PDO::FETCH_ASSOC);
foreach ($rows2 as $row2)
				{
				//$count=$count+1;
				}				
				
				
$extrasearch="$extrasearch )";


//print "$extrasearch";



$r1= "SELECT fileid FROM ISO_quality_manual_filelinks WHERE (qmid=? OR $extrasearch ) AND archived='' GROUP BY fileid";
$stmt1 = pdoquery($r1, array($row['id']));
$rows1 = $stmt1->fetchAll(PDO::FETCH_ASSOC);
$unumrow=count($rows1)+$count;


?>


<?php //print "$extrasearch $s2";?>


<?php 
if ($unumrow>0)
	{
	
	$c1=0;
	$primarydocs=0;
	$primaryaudits="";
	$auditcount=0;
	$totalfloat="";
	$primaryfloat="";
	
	//print "ee$row[id] : ";
	
	foreach ($rows1 as $rr)
			{
			$usefileid=$rr['fileid'];
			if (isset($islivedoc[$usefileid]) && $islivedoc[$usefileid]==1)
				{
				$c1=$c1+1;
				
				$totalfloat .= "
$docdesc[$usefileid]
";
				
				if (isset($isprimary[$usefileid]) && $isprimary[$usefileid]==1)
					{
						$primaryfloat .= "$docdesc[$usefileid]<br>
";
					$primarydocs++;
					}
				if (isset($isaudit[$usefileid]) && $isaudit[$usefileid]<>'')
					{
					$auditcount++;
					$primaryaudits = isset ( $primaryaudits ) ? $primaryaudits : '';
					$tproccount[$usefileid] = isset ( $tproccount[$usefileid] ) ? $tproccount[$usefileid] : '';
					$primaryaudits .= "$isaudit[$usefileid] ($tproccount[$usefileid]) <br>
";
					}
				}
			
			}
			if ($c1==0)
				{
				$c1="";
				}
			
?>


<?php
			

	print "<td valign=top>";
	if ($primarydocs>0)
		{


		 print "$primaryfloat";

		}
	print "</td><td valign=top>";
				 if ($auditcount>0){

		 ?>


<?php		 
		 print "$primaryaudits ";	
		 }
	}
	else
	{
	print "";
	}

	print "</td>";

	

	





$qmid1=$row['id'];
$numberprocesses[$qmid1]=isset($numberprocesses[$qmid1]) ? $numberprocesses[$qmid1]+0 : 0;




print "</tr>";

	}

print "</table>";

	
ksort($monthlist);
print "<table width=75%><tr><Td>Month</td><td>Description</td><td>TaskID</td><td>ProcessID</td><td>Date</td></tr>";
foreach ($monthlist as $month)
	{
	$dmon=isset($moncon[$month]) ? $moncon[$month] : '';
	print "<tr><Td valign=top><h3><br>$dmon</h3></td></tr>";
	foreach ($duetime as $futid => $umonth)
		{
		if ($umonth==$month)
			{
			print "<tr><Td valign=top>$dmon</td><td><a href=\"../audits/Generate_Audit.php$x&auditid=$futid&filter=$filter\">ID$futid</a> : $subject[$futid]</td><td>TaskID $futid</td><td> ProcessID ";
			print "<a href=\"../employee_roles/processrisk.php$x&jobid=$myauditprocess[$futid]\" target='_viewprocess'>";
			print "$myauditprocess[$futid]</td><td></td></tr>";
			}
		}
	//print "</td></tr>";
	}
print "</table>";

?>
<br><br><br><br><br><br><br><br><br><br><br>

</body>
</html>

