94 lines
2.5 KiB
PHP
94 lines
2.5 KiB
PHP
<?php
|
|
|
|
/**
|
|
* Informatica Eindproject D4p
|
|
* 6in3, Stedelijk Gymnasium Nijmegen
|
|
* Docent: Hans de Wolf
|
|
*
|
|
* ==================
|
|
*
|
|
* Daniel Boutros,
|
|
* Christiaan Goossens,
|
|
* Jelmer Hinssen
|
|
*/
|
|
|
|
namespace Inforbank\Application\Helper\Idob;
|
|
|
|
use Inforbank\Application;
|
|
|
|
class Transactie
|
|
{
|
|
/**
|
|
* Create IDOB transaction
|
|
* @param string $reference Reference passed by the client (webshop)
|
|
* @param string $clientId Client identifier
|
|
* @param double $amount Transaction amount
|
|
* @param string $description Description for the user
|
|
* @return int Transaction identifier
|
|
*/
|
|
public static function createTransactie($reference, $clientId, $amount, $description)
|
|
{
|
|
$container = Application::getContainer();
|
|
$db = $container->db;
|
|
|
|
$trans = $db->idobt->insert([
|
|
"reference" => $reference,
|
|
"clientId" => $clientId,
|
|
"amount" => $amount,
|
|
"description" => $description,
|
|
"status" => 1
|
|
]);
|
|
return $trans['id'];
|
|
}
|
|
|
|
/**
|
|
* Get IDOB transaction data
|
|
* @param int $id Transaction identifier
|
|
* @return array
|
|
*/
|
|
public static function getTransactie($id)
|
|
{
|
|
$container = Application::getContainer();
|
|
$db = $container->db;
|
|
|
|
$transactie = $db->idobt->where("transactieId", $id)->limit(1)->fetch();
|
|
|
|
if (!$transactie) {
|
|
throw new \Exception("Transaction not found");
|
|
}
|
|
|
|
return array(
|
|
"transactieId" => $transactie['transactieId'],
|
|
"reference" => $transactie['reference'],
|
|
"clientId" => $transactie['clientId'],
|
|
"amount" => (double) $transactie['amount'],
|
|
"description" => $transactie['description'],
|
|
"status" => (int) $transactie['status']
|
|
);
|
|
}
|
|
|
|
/**
|
|
* Set the IDOB transaction status
|
|
* @param int $id Transaction identifier
|
|
* @param int $status Status: 1 for pending, 2 for paid, 3 for unknown
|
|
*/
|
|
public static function setTransactionStatus($id, $status)
|
|
{
|
|
$container = Application::getContainer();
|
|
$db = $container->db;
|
|
|
|
$transactie = $db->idobt->where("transactieId", $id)->limit(1);
|
|
if (!$transactie) {
|
|
throw new \Exception("Transaction not found");
|
|
}
|
|
|
|
$transactie->update(array(
|
|
"status" => $status
|
|
));
|
|
|
|
if (!$transactie) {
|
|
throw new \Exception("Failed to update status");
|
|
}
|
|
}
|
|
}
|