<?php
   require("../../../../config/site.php");
   include_once(ROOT."/../webadmin/_framework/_nemo.email.cls.php");
   // ini_set('display_errors', '1');
   // error_reporting(E_ALL & ~E_STRICT & ~E_NOTICE & ~E_WARNING);
	$type = $_REQUEST['type'];
  $strFileCategory = $_REQUEST["strFileCategory"];

	switch($type)
	{
      case "jsUploadFile":
         $strOutput = jsUploadFile($_FILES, $strFileCategory);
         echo $strOutput;
         die;
      break;

   	// case "jsUploadBankDetailFile":
    //   	$strOutput = jsUploadFile("tblDocumentBank", $_FILES, $_REQUEST);
    //   	echo $strOutput;
    //   	die;
   	// break;

    //   case "jsUploadCopyPassportFile":
    //      $strOutput = jsUploadFile("tblDocumentPassport", $_FILES, $_REQUEST);
    //      echo $strOutput;
    //      die;
    //   break;

    //   case "jsResidentialAddressFile":
    //      $strOutput = jsUploadFile("tblDocumentResidentialAddress", $_FILES, $_REQUEST);
    //      echo $strOutput;
    //      die;
    //   break;
	}
  // 2020/04/14
  // Notify business@sabullion.co.za when user uploads a document
  function notifyBusinessUpload($DocumentID){

      global  $DBH;
      require $_SERVER["DOCUMENT_ROOT"]."/dashboard/config/mailer.php";

      $pdo = $DBH->query("SELECT tblDocuments.strFileCategory,
        tblDocuments.refRegistrationID,
        sb_facility_application.ID
       FROM tblDocuments
       INNER JOIN sb_facility_application
       On sb_facility_application.RegistrationID=tblDocuments.refRegistrationID
       WHERE tblDocuments.DocumentID = ".$DocumentID);
      $pdo->execute();
      $rst = $pdo->fetch(PDO::FETCH_ASSOC);

      //
      $nemoEmail = new NemoEmail($_SESSION["USER"]->EMAIL , "" , 0);

      $applicationReference = "SABFA".substr($rst["ID"], 5);
      $documentType = $nemoEmail->mapFileCategories($rst["strFileCategory"], true)[0];
      //retrie email template from DB
      $nemoEmail->EmailTemplate = "Registration Document Upload";
      $pdo = $DBH->query("SELECT * FROM tblEmailTemplate WHERE strEmailTemplate = '$nemoEmail->EmailTemplate'");
      $pdo->execute();
      $template = $pdo->fetch(PDO::FETCH_ASSOC);
      //Populate email variables to save to DB
      foreach(explode(",", $template["arrSubstitutions"]) as $i => $key){
        $nemoEmail->arrSubstitution[$key] = "";
      }
      $nemoEmail->EmailTemplateID = $template["EmailTemplateID"];

      $nemoEmail->Subject = $template["strSubject"];
      $nemoEmail->arrBody[0] = strip_tags($template["txtBody"]);
      $nemoEmail->arrBody[1] = $template["txtBody"];
    //
      $nemoEmail->Subject = str_replace("[ReferenceNumber]", $applicationReference, $nemoEmail->Subject);
      $nemoEmail->Subject = str_replace("[DocumentType]", $documentType, $nemoEmail->Subject);
      $nemoEmail->Subject = str_replace("[DisplayName]", $_SESSION["USER"]->DISPLAY_NAME, $nemoEmail->Subject);

      $arrValues[DisplayName] = $_SESSION["USER"]->DISPLAY_NAME;

      $strFileRef = $nemoEmail->mapFileCategories($rst["strFileCategory"]);
      $strFileRef = '<b><ul>'.implode("\r\n", $strFileRef).'</ul></b>';
      $arrValues[MissingDocuments] = $strFileRef;
    //
      $nemoEmail->Substitute($arrValues);
    //
      $nemoEmail->addHeader("from", "business@sabullion.co.za");
      $nemoEmail->addHeader("cc", "");
      $nemoEmail->From = "business@sabullion.co.za";

      //Use PHP mailer to send email, other variables in mailer.php
      // $mail->addAddress('business@sabullion.co.za');
      $mail->addAddress('mmasakarachel@gmail.com');
      //subject line
      $mail->Subject = $nemoEmail->Subject;
      $mail->isHTML();
      //HTML message
      $mail->msgHTML('<div>'.$nemoEmail->arrBody[1].'</div>');
      //send the message
      if (!$mail->send()) {
          echo $mail->ErrorInfo;
      } else {
          $nemoEmail->Save(0,1);
      }

    }

   function jsUploadFile($file, $strFileCategory)
   {
      global $DBH;
      $DocumentID = 0;

      $name = $file["file"]["name"];
      //20191112 - use file type instead of getting mime_content_type, causes issues on LIVE - Rachel
      // $mimetype = mime_content_type($file["file"]['tmp_name']);
      $mimetype = $file["file"]['type'];   
      $strLastUser = $_SESSION["CLIENT"]->FIRST_NAME." ".$_SESSION["CLIENT"]->SURNAME;
      $image = $file["file"]["tmp_name"];
      $image = base64_encode(file_get_contents(addslashes($image)));
      //20191022 - Add file type validation - Rachel
      $arrType = array("application/pdf","image/jpeg", "image/png", "image/tiff");

      if(!in_array($mimetype, $arrType)){
        return " Please upload pdf/tiffs/jpeg or png files";
      }


      $pdo = $DBH->query("SELECT * FROM tblDocuments WHERE strFileCategory LIKE '$strFileCategory' AND refRegistrationID = ".$_SESSION["CLIENT"]->USER_ID);
      $pdo->execute();
      $rst = $pdo->fetch();

      if($rst == null)
      {
         $pdo = $DBH->prepare("INSERT INTO tblDocuments
            (
                  refRegistrationID
               ,  strMimeType
               ,  strFileName
               ,  strFileCategory
               ,  binFile
               ,  strLastUser
            ) VALUES
            (
                  :refRegistrationID
               ,  :strMimeType
               ,  :strFileName
               ,  :strFileCategory
               ,  :binFile
               ,  :strLastUser
            )
         ");
         $pdo->execute(array(
               ":refRegistrationID" => $_SESSION["CLIENT"]->USER_ID
            ,  ":strMimeType" => $mimetype
            ,  ":strFileName" => $name
            ,  ":strFileCategory" => $strFileCategory
            ,  ":binFile" => $image
            ,  ":strLastUser" => $strLastUser
         ));
         $DocumentID = $DBH->lastInsertId();

      }else{
         $DocumentID = $rst["DocumentID"];
         $pdo = $DBH->prepare("UPDATE tblDocuments SET blnApproved=?, blnRejected=?, strMimeType=? ,  strFileName=? ,  binFile=? ,  strLastUser=? WHERE DocumentID=? ");
         $pdo->execute([0, 0, $mimetype, $name, $image, $strLastUser , $DocumentID]);

      }

      if (!empty($DocumentID)) {
        notifyBusinessUpload($DocumentID);
      }
      return "Document uploaded";
   }

   // function jsUploadFile($table, $file, $request)
   // {
   //    global $DBH;

   //    $name = $file["file"]["name"];
   //    $mimetype = mime_content_type($file["file"]['tmp_name']);
   //    $strLastUser = $_SESSION["CLIENT"]->FIRST_NAME." ".$_SESSION["CLIENT"]->SURNAME;
   //    $image = $file["file"]["tmp_name"];
   //    $image = base64_encode(file_get_contents(addslashes($image)));

   //    $pdo = $DBH->query("SELECT * FROM $table WHERE refRegistrationID = ".$_SESSION["CLIENT"]->USER_ID);
   //    $pdo->execute();
   //    $rst = $pdo->fetch();

   //    if($rst == null)
   //    {
   //       $pdo = $DBH->prepare("INSERT INTO $table
   //          (
   //                refRegistrationID
   //             ,  strMimeType
   //             ,  strFileName
   //             ,  binFile
   //             ,  strLastUser
   //          ) VALUES
   //          (
   //                :refRegistrationID
   //             ,  :strMimeType
   //             ,  :strFileName
   //             ,  :binFile
   //             ,  :strLastUser
   //          )
   //       ");
   //       $pdo->execute(array(
   //             ":refRegistrationID" => $_SESSION["CLIENT"]->USER_ID
   //          ,  ":strMimeType" => $mimetype
   //          ,  ":strFileName" => $name
   //          ,  ":binFile" => $image
   //          ,  ":strLastUser" => $strLastUser
   //       ));

   //    }else{
   //       $DocumentID = $rst["DocumentID"];
   //       $pdo = $DBH->prepare("UPDATE $table SET strMimeType=? ,  strFileName=? ,  binFile=? ,  strLastUser=? WHERE DocumentID=? ");
   //       $pdo->execute([$mimetype, $name, $image, $strLastUser , $DocumentID]);
   //    }
   // }
?>
