<?php
   include('session.php');
   include('connect.php');
   include('logging.php');
   $companyID = $_SESSION['companyselect'];


if ($_SERVER["REQUEST_METHOD"] == "GET") {

  $payrollid = $_GET['payrollID'];

  $sqlViewPayroll = "SELECT *
  FROM periods
  WHERE periodid = $payrollid;";

  $yearOfPeriod = "0000";
  $monthOfPeriod = "00";
  $periodDateData = "";

  $resultPayroll = mysqli_query($db,$sqlViewPayroll);

  $countPayroll = mysqli_num_rows($resultPayroll);

  if ($countPayroll != 0) {

      while ($rowPayrollData = mysqli_fetch_array($resultPayroll)) {

        $dateextract = strtotime($rowPayrollData['endDate']);
        $yearOfPeriod = date("Y",$dateextract);
        $monthOfPeriod = date("m",$dateextract);
        $periodDateData = $yearOfPeriod . $monthOfPeriod;

      }

  }

  if(isset($_GET['updated'])) {

    $updated = $_GET['updated'];

  }

    $sqlView = "SELECT 
          employees.employeename AS employeename,
          employees.employeesurname AS employeesurname,
          employees.employeenic AS employeenic,
          employees.employee_join_date AS joindate,
          employees.employee_fulltime_boolean AS employeefulltime,
          employees.employee_pension_boolean AS employeepension,
          employees.employee_citizen_boolean AS employeecitizen,
          employees.employee_contribution_code AS employeeccode,
          employees.employee_join_date AS joinDate,
          employees.employee_termination_date AS terminationDate,
          payrollbasicdetails.basicSal AS basicSal,
          payrollbasicdetails.employerPRGF AS employerPRGF,
          payrollbasicdetails.commission AS commission,
          payrollbasicdetails.allowances AS allowances,
          payrollbasicdetails.remuneration AS remuneration,
          periods.startDate AS startDate,
          periods.endDate AS endDate
          FROM payrollbasicdetails
          LEFT JOIN employees
          ON payrollbasicdetails.employeeid = employees.employeeid
          LEFT JOIN periods
          ON payrollbasicdetails.payrollid = periods.periodid
          WHERE payrollbasicdetails.payrollid = $payrollid";

  
    $result = mysqli_query($db,$sqlView);

    $count = mysqli_num_rows($result);

    if ($count != 0) {

    	//The name of the CSV file that will be downloaded by the user.
		$fileName = 'prgf' . '-' . $periodDateData . '.csv';
		 
		//Set the Content-Type and Content-Disposition headers.
		header('Content-Type: application/excel');
		header('Content-Disposition: attachment; filename="' . $fileName . '"');

		$data = array();
        array_push($data, array("MRA","PRGF","V1.0"));
        array_push($data, array("Employer Registration Number","Employer Business Registration Number","Employer Name","Tax Period","Telephone Number","Mobile Number","Name of Declarant","Email Address"));
	    

		$sqlViewCompanyFile = "SELECT *
			FROM companyfile
      WHERE companyid = $companyID";
  
	    $resultCompanyFile = mysqli_query($db,$sqlViewCompanyFile);

	    while ($rowCompanyFile = mysqli_fetch_array($resultCompanyFile)) {

	    	array_push($data, array($rowCompanyFile['companyERN'],$rowCompanyFile['companyBRN'],$rowCompanyFile['companyName'],$periodDateData,$rowCompanyFile['accountantPNumber'],$rowCompanyFile['accountantMNumber'],$rowCompanyFile['accountantName'],$rowCompanyFile['accountantEmail']));
	     }

         array_push($data, array("Employee ID","Surname of Employee","Other Names of Employee","Pension Scheme","Full Time Employment","Start Date of Employment","Monthly basic wage or salary (MUR)","Commission (MUR)","Allowances (MUR)","Total Remuneration on which PRGF contribution amount is calculated (MUR)","PRGF Contribution Amount (MUR)","Reason for no Remuneration"));

    	 while ($rowpayroll = mysqli_fetch_array($result)) { 

        $startDateForPeriod = $rowpayroll['startDate'];
        $endDateForPeriod = $rowpayroll['endDate'];

        $employeeJoin = $rowpayroll['joinDate'];
      $employeeTermination = $rowpayroll['terminationDate'];

      if (($employeeTermination == NULL || $employeeTermination == "0000-00-00")) {
        if ($employeeJoin > $endDateForPeriod) {
          continue;
        } 
      } else {
        if ($employeeTermination < $startDateForPeriod) {
          continue;
        } 
      }


        $reasonForNoPRGF = "";
        if ($rowpayroll['employeepension'] == 'Y') {
          $reasonForNoPRGF = "Employee has pension plan";
        } else {
          $reasonForNoPRGF = "";
        }

        if ($rowpayroll['employeecitizen'] == 'N') {
          continue;
        }


            

    	 	array_push($data, 
          array(
            $rowpayroll['employeenic'], 
            $rowpayroll['employeesurname'],
            $rowpayroll['employeename'], 
            $rowpayroll['employeepension'],
            $rowpayroll['employeefulltime'], 
            $rowpayroll['joindate'], 
            number_format($rowpayroll['basicSal'], 0, '.', ','),
            number_format($rowpayroll['commission'], 0, '.', ','),
            number_format($rowpayroll['allowances'], 0, '.', ','),
            number_format($rowpayroll['remuneration'], 0, '.', ','),
            number_format($rowpayroll['employerPRGF'], 0, '.', ','),
            $reasonForNoPRGF));
    	 }

    	 
		//Open up a PHP output stream using the function fopen.
		$fp = fopen('php://output', 'w');
		 
		//Loop through the array containing our CSV data.
		foreach ($data as $row) {
		    //fputcsv formats the array into a CSV format.
		    //It then writes the result to our output stream.
		    fputcsv($fp, $row);
		}
		 
		//Close the file handle.
		fclose($fp);
    }


 




} else {
	echo "Payroll not specified..";
}

?>