| Current Path : /var/www/html/tax/api/controller/ |
| Current File : /var/www/html/tax/api/controller/payment.php |
<?php
require_once('book.php');
class payment extends pdocrudhandler{
private $startUpConfig;
private $baseUrl;
public function __construct(){
$this->_pdo = $this->connect();
if (session_status() == PHP_SESSION_NONE) {
session_start();
}
}
public function getPaymentMethods($data){
$response = [];
$companyId = (isset($_SESSION['companyid'])) ? $_SESSION['companyid'] : $data['pay_company_id'];
$userId = (isset($_SESSION['userid'])) ? $_SESSION['userid'] : $data['pay_user_id'];
$response = $this->select($this->getTable('paymentmethod'),["*"], "WHERE idCompany = ? and isActive = ?", [$companyId, 1]);
return $response;
}
public function getBanks($data){
$response = [];
$companyId = (isset($_SESSION['companyid'])) ? $_SESSION['companyid'] : $data['pay_company_id'];
$userId = (isset($_SESSION['userid'])) ? $_SESSION['userid'] : $data['pay_user_id'];
$response = $this->select($this->getTable('bank'),["*"], "WHERE idCompany = ? and isActive = ?", [$companyId, 1]);
return $response;
}
public function createPayment($data){
$response = [];
$companyId = (isset($_SESSION['companyid'])) ? $_SESSION['companyid'] : $data['pay_company_id'];
$userId = (isset($_SESSION['userid'])) ? $_SESSION['userid'] : $data['pay_user_id'];
// echo "<pre>"; print_r($data); exit;
$payment = [
"idBook" => $data['pay_book_id'],
"idBusiness" => $data['pay_business_id'],
"idPaymentMethod" => $data['pay_method_id'],
"paymentRef" => $data['pay_ref_no'],
"payeeIdBank" => $data['pay_bank_id'],
"billRef" => $data['bill_ref_no'],
"town" => $data['pay_town'],
"date" => $data['pay_date'],
"status" => $data['pay_status'],
"amount" => $data['pay_amount'],
"balance" => $data['pay_bal'],
"remarks" => $data['pay_remarks'],
"idCompany" => $companyId,
"idUser" => $userId
];
$book = new book();
$params = [];
$params['book_id'] = $data['pay_book_id'];
$resBook = $book->addBookTransaction($params);
if($resBook['status'] == "Active" && isset($resBook['serialActive'])){
$payment['serial'] = $resBook['serialActive'];
$response = $this->insert($this->getTable('payment'), $payment);
}else{
$response = $resBook;
}
return $response;
}
public function getPayments($data){
$response = [];
$companyId = (isset($_SESSION['companyid'])) ? $_SESSION['companyid'] : $data['pay_company_id'];
$userId = (isset($_SESSION['userid'])) ? $_SESSION['userid'] : $data['pay_user_id'];
$qry = "Select
p.idPayment,
p.serial,
p.paymentRef,
p.billRef,
p.town,
p.date,
DATE_FORMAT(p.date,'%d-%m-%Y') as date,
p.status,
p.amount,
p.balance,
p.remarks,
b.name as bookName,
u.userName as receiverName,
ba.name as payeeBankName,
pm.name as paymentMethod,
bs.name as businessName
from payment p
left join book b on b.idBook = p.idBook
left join user u on u.idUser = b.issuedTo
left join bank ba on ba.idBank = p.payeeIdBank
left join paymentmethod pm on pm.idPaymentMethod = p.idPaymentMethod
left join business bs on bs.idBusiness = p.idBusiness
where p.idCompany = ";
if(isset($data['source']) && $data['source'] == 'dt'){
// echo "<pre>"; print_r($data);exit;
$columns = [
"idPayment", "serial", "businessName", "town", "billRef", "bookName", "amount", "totalAmount",
"receiverName", "payeeBankName", "paymentMethod", "paymentRef", "balance", "status", "date", "remarks"
];
$columnsDbMapping = [
"idPayment" => "p.idPayment", "serial" => "p.serial", "businessName" => "bs.name", "town" => "p.town",
"billRef" => "p.billRef", "bookName" => "b.name", "amount" => "p.amount",
"receiverName" => "u.userName", "payeeBankName" => "ba.name", "paymentMethod" => "pm.name",
"paymentRef" => "p.paymentRef", "balance" => "p.balance", "status" => "p.status",
"date" => "p.date", "remarks" => "p.remarks"
];
$orderBy = ""; $where = "";
if($data['order'][0]['column'] != 6){
$orderBy = " order by ".$columns[$data['order'][0]['column']]. " ".$data['order'][0]['dir'];
}
foreach ($data['columns'] as $key => $value) {
if($value['search']['value'] != "" && $key == 0){
$where .= " And ".$columnsDbMapping[$value['data']]." like '%". $value['search']['value'] . "%'";
}else if($value['search']['value'] != ""){
$where .= " And ".$columnsDbMapping[$value['data']]." like '%". $value['search']['value'] . "%' ";
}
}
$qry.=$companyId.$where.$orderBy." limit ".$data['length']." offset ".$data['start'];
$response = $this->customSelect($qry);
$countQry = $this->select($this->getTable('payment'),["idPayment"], "where idCompany = ?", [$companyId]);
$totalCount = $countQry['rowsAffected'];
$updatedRes = [];
$totalAmount = 0;
// echo "<pre>"; print_r($qry);exit;
foreach ($response['result'] as $key => $value) {
$value->DT_RowId = $value->idPayment;
$totalAmount += intval($value->amount);
$value->totalAmount = $totalAmount;
$updatedRes['data'][] = $value;
}
$updatedRes['draw'] = $data['draw'];
$updatedRes['recordsTotal'] = $data['start'] + $data['length'];
$updatedRes['recordsFiltered'] = $totalCount;
$updatedRes['start'] = $data['start'];
$response = $updatedRes;
}else{
$qry .= "?";
$response = $this->customSelect($qry, [$companyId]);
}
return $response;
}
public function validateRequestsParams(){
$this->mendetoryParamsAgainstEachMethod = [
'getPaymentMethods' => [],
'getBanks' => [],
'getPayments' => [],
'createPayment' => [
'pay_book_id',
'pay_date',
'pay_business_id',
'pay_method_id',
'pay_ref_no',
'pay_bank_id',
'bill_ref_no',
'pay_town',
'pay_amount',
'pay_status',
'pay_bal',
'pay_remarks'
]
];
return $this->mendetoryParamsAgainstEachMethod;
}
}
?>