public function getTransactionList($merchantList = null, \DateTime $dStartDate = null, \DateTime $dEndDate = null)
{
$totalTransactions = array();
$transactionNumber = \rand(1, 200);
$twoMonthsAgoDate = new \DateTime();
$interval = new \DateInterval('P2M');
$twoMonthsAgoDate->sub($interval);
for ($i = 0; $i < $transactionNumber; $i++) {
$transactionDate = self::randomDate($dStartDate->format("Y-m-d H:i:s"), $dEndDate->format("Y-m-d H:i:s"));
$merchantIndex = \rand(0, \count($merchantList) - 1);
$transaction = array();
$transaction['unique_id'] = \md5(\mt_rand() . $transactionDate);
$transaction['custom_id'] = "my_custom_id";
$transaction['merchantId'] = $merchantList[$merchantIndex]["cid"];
$transaction['date'] = $transactionDate;
$transactionAmount = \rand(1, 1000);
$transaction['amount'] = $transactionAmount;
$transaction['commission'] = $transactionAmount / 10;
$transactionStatusChances = \rand(1, 100);
if ($transaction['date'] >= $twoMonthsAgoDate->format("Y-m-d H:i:s")) {
if ($transactionStatusChances < 60) {
$transaction['status'] = \Oara\Utilities::STATUS_CONFIRMED;
} else {
if ($transactionStatusChances < 70) {
$transaction['status'] = \Oara\Utilities::STATUS_DECLINED;
} else {
$transaction['status'] = \Oara\Utilities::STATUS_PENDING;
}
}
} else {
if ($transactionStatusChances < 80) {
$transaction['status'] = \Oara\Utilities::STATUS_CONFIRMED;
} else {
$transaction['status'] = \Oara\Utilities::STATUS_DECLINED;
}
}
$totalTransactions[] = $transaction;
}
return $totalTransactions;
}