<?php
ob_start('ob_gzhandler');
include('config.php');
$Data = json_decode(file_get_contents('php://input'));

$Name = trim($Data->Name);
$Phone = trim($Data->Phone);
$Email = trim($Data->Email);
$VAT = trim($Data->VAT);
$NID  = trim($Data->NID);
$Pmethod = trim($Data->Pmethod);
$Token = trim($Data->Token);

if (!empty($Token)) {

  $res1 = $mysqli->query("SELECT * FROM `checkout` WHERE `Token` = '$Token' and `Delated` = '0'");
  $Row = mysqli_num_rows($res1);

  if ($Row > 0) {
    $row1 = mysqli_fetch_array($res1);

    if ($row1['Status'] == 1) {
      $return["error"] = true;
      $resx14 = $mysqli->query("SELECT ReferenceNo,PolicyNo,RequestID FROM `projects` where `ProjectID` = '" . $row1['ProjectID'] . "'");
      $row15 = mysqli_fetch_array($resx14);
      
if (!empty($row15['ReferenceNo'])) {
    $ProjectRef = $row15['ReferenceNo'];
} elseif (!empty($row15['PolicyNo'])) {
    $ProjectRef = $row15['PolicyNo'];
} elseif (!empty($row15['RequestID'])) {
    $ProjectRef = $row15['RequestID'];
} 
      $Type = $row1['Type'];
      $return["message"] = $Type . "- Quotation for Reference No. '.$ProjectRef.' is Already Paid!";
    } else {
      $resx14 = $mysqli->query("SELECT ReferenceNo,PolicyNo,RequestID, Co FROM `projects` where `ProjectID` = '" . $row1['ProjectID'] . "'");
      $row15 = mysqli_fetch_array($resx14);

      $return["error"] = false;
      $Co = $row15['Co'];
      $BAmount =  $row1['Amount'];
      $merchant_reference =  $row1['merchant_reference'];
      $Amount = $BAmount * 100;
      $Type = $row1['Type'];
      
if (!empty($row15['ReferenceNo'])) {
    $ProjectRef = $row15['ReferenceNo'];
} elseif (!empty($row15['PolicyNo'])) {
    $ProjectRef = $row15['PolicyNo'];
} elseif (!empty($row15['RequestID'])) {
    $ProjectRef = $row15['RequestID'];
} 
      if (empty($Phone)) {
        $Phones = ' ';
      } else {
        $Phones = " ,`phone_number`='$Phone' ";
      }
      if (empty($VAT)) {
        $VATs = ' ';
      } else {
        $VATs = " ,`VAT`='$VAT' ";
      }
      if (empty($NID)) {
        $NIDs = ' ';
      } else {
        $NIDs = " ,`NID`='$NID' ";
      }
      if ($Type == 'AV') {
        $description = 'Additional Visit Fees for Proposal No: ' . $ProjectRef . ' رسوم الفحص الفني للزيارة الاضافيه للمشروع رقم';
      } else if ($Type == 'RD7') {
        $description = 'RD7 Fees for Proposal No: ' . $ProjectRef . ' رسوم الفحص الفني للمشروع رقم';
      } else if ($Type == 'RD0' or $Type == 'TIS'or $Type == 'TIS2') {
        $description = 'TIS Fees for Proposal No: ' . $ProjectRef . ' رسوم الفحص الفني للمشروع رقم';
      }

//     if($Co == '1'){
          if ($Pmethod == 'SADAD' and isset($merchant_reference) and is_numeric($merchant_reference)) {
        $return["error"] = false;
        $return["payment_Data"] = $merchant_reference;
      } else {
        if ($Pmethod == 'CC') {
          require_once(dirname(__FILE__) . '/Payment/PayfortARPaymentGenerator.php');

          $paymentGenerator = new PayfortPaymentGenerator();

          $GenerateCCPayment = $paymentGenerator->GenerateCCPayment($Email, $Amount, $description, $Type, $Token);

          header('Content-Type: application/json');
          $return["payment_Data"] = json_encode($GenerateCCPayment);
        } else if ($Pmethod == 'SADAD') {
          require_once(dirname(__FILE__) . '/Payment/SadadARPaymentGenerator.php');

          $paymentGenerator = new SadadPaymentGenerator();

          $GenerateSadadPayment = $paymentGenerator->GenerateSadadPayment($NID, $Phone, $Name, $BAmount, $description, $Type, $Token);
        } else if ($Pmethod == 'STC') {
          require_once(dirname(__FILE__) . '/Payment/PayfortARPaymentGenerator.php');

          $paymentGenerator = new PayfortPaymentGenerator();

          $GenerateSTCPayment = $paymentGenerator->GenerateSTCPayment($Email, $Amount, $description, $Type, $Token);

          header('Content-Type: application/json');
          $return["payment_Data"] = json_encode($GenerateSTCPayment);
        }
        if (isset($GenerateSadadPayment) and is_numeric($GenerateSadadPayment)) {
          $res = $mysqli->query("UPDATE `checkout` SET `Name`='$Name',`email`='$Email',`Pmethod`='$Pmethod', `merchant_reference` = '$GenerateSadadPayment' $Phones $VATs $NIDs WHERE `Token` = '$Token'");
          if ($res) {
            $return["error"] = false;
            $return["payment_Data"] = $GenerateSadadPayment;
          } else {
            $return["error"] = true;
            $return["message"] = "Error!";
          }
        } else if (isset($GenerateSadadPayment) and !is_numeric($GenerateSadadPayment)) {
          $return["error"] = true;
          $return["message"] = "$GenerateSadadPayment";
        } else {
          $merchant_reference = " , `merchant_reference`'. = '$Type'.'-'.'$Token'";
          $res = $mysqli->query("UPDATE `checkout` SET `Name`='$Name',`email`='$Email',`Pmethod`='$Pmethod' $Phones $VATs $NIDs WHERE `Token` = '$Token'");
          if ($res) {
            $return["error"] = false;
          } else {
            $return["error"] = true;
            $return["message"] = "Error!";
          }
        }
      }
  /*   }else{
          if ($Pmethod == 'SADAD' and isset($merchant_reference) and is_numeric($merchant_reference)) {
        $return["error"] = false;
        $return["payment_Data"] = $merchant_reference;
      } else {
        if ($Pmethod == 'CC') {
          require_once(dirname(__FILE__) . '/Payment/PayfortPaymentGenerator.php');

          $paymentGenerator = new PayfortPaymentGenerator();

          $GenerateCCPayment = $paymentGenerator->GenerateCCPayment($Email, $Amount, $description, $Type, $Token);

          header('Content-Type: application/json');
          $return["payment_Data"] = json_encode($GenerateCCPayment);
        } else if ($Pmethod == 'SADAD') {
          require_once(dirname(__FILE__) . '/Payment/SadadPaymentGenerator.php');

          $paymentGenerator = new SadadPaymentGenerator();

          $GenerateSadadPayment = $paymentGenerator->GenerateSadadPayment($NID, $Phone, $Name, $BAmount, $description, $Type, $Token);
        } else if ($Pmethod == 'STC') {
          require_once(dirname(__FILE__) . '/Payment/PayfortPaymentGenerator.php');

          $paymentGenerator = new PayfortPaymentGenerator();

          $GenerateSTCPayment = $paymentGenerator->GenerateSTCPayment($Email, $Amount, $description, $Type, $Token);

          header('Content-Type: application/json');
          $return["payment_Data"] = json_encode($GenerateSTCPayment);
        }
        if (isset($GenerateSadadPayment) and is_numeric($GenerateSadadPayment)) {
          $res = $mysqli->query("UPDATE `checkout` SET `Name`='$Name',`email`='$Email',`Pmethod`='$Pmethod', `merchant_reference` = '$GenerateSadadPayment' $Phones $VATs $NIDs WHERE `Token` = '$Token'");
          if ($res) {
            $return["error"] = false;
            $return["payment_Data"] = $GenerateSadadPayment;
          } else {
            $return["error"] = true;
            $return["message"] = "Error!";
          }
        } else if (isset($GenerateSadadPayment) and !is_numeric($GenerateSadadPayment)) {
          $return["error"] = true;
          $return["message"] = "$GenerateSadadPayment";
        } else {
          $merchant_reference = " , `merchant_reference`'. = '$Type'.'-'.'$Token'";
          $res = $mysqli->query("UPDATE `checkout` SET `Name`='$Name',`email`='$Email',`Pmethod`='$Pmethod' $Phones $VATs $NIDs WHERE `Token` = '$Token'");
          if ($res) {
            $return["error"] = false;
          } else {
            $return["error"] = true;
            $return["message"] = "Error!";
          }
        }
      }
     }*/
    
    }
  } else {
    $return["error"] = true;
    $return["message"] = "Not Found!";
  }
} else {
  $return["error"] = true;
  $return["message"] = "Access denied!";
}

header('Content-Type: application/json');
echo json_encode($return);
