account_transactions.php 6.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159
  1. <?php
  2. header("Access-Control-Allow-Origin: *");
  3. header("Content-Type: application/json; charset=UTF-8");
  4. header("Access-Control-Allow-Methods: GET, POST, PUT, DELETE, OPTIONS");
  5. header("Access-Control-Allow-Headers: Content-Type, Access-Control-Allow-Headers, Authorization, X-Requested-With");
  6. if ($_SERVER['REQUEST_METHOD'] == 'OPTIONS') {
  7. exit(0);
  8. }
  9. require_once __DIR__ . '/../config/database.php';
  10. require_once __DIR__ . '/../models/AccountTransaction.php';
  11. $database = new Database();
  12. $db = $database->getConnection();
  13. $accountTransaction = new AccountTransaction($db);
  14. $request_method = $_SERVER['REQUEST_METHOD'];
  15. switch($request_method) {
  16. case 'GET':
  17. if(isset($_GET['id'])) {
  18. $accountTransaction->id = $_GET['id'];
  19. $accountTransaction->readOne();
  20. if($accountTransaction->journal_entry_id != null) {
  21. $transaction_arr = array(
  22. "id" => $accountTransaction->id,
  23. "journal_entry_id" => $accountTransaction->journal_entry_id,
  24. "account_id" => $accountTransaction->account_id,
  25. "debit_amount" => $accountTransaction->debit_amount,
  26. "credit_amount" => $accountTransaction->credit_amount,
  27. "description" => $accountTransaction->description,
  28. "created_at" => $accountTransaction->created_at,
  29. "updated_at" => $accountTransaction->updated_at,
  30. "transaction_type" => $accountTransaction->getTransactionType(),
  31. "amount" => $accountTransaction->getAmount()
  32. );
  33. http_response_code(200);
  34. echo json_encode($transaction_arr);
  35. } else {
  36. http_response_code(404);
  37. echo json_encode(array("message" => "Account transaction not found."));
  38. }
  39. } elseif(isset($_GET['journal_entry_id'])) {
  40. $stmt = $accountTransaction->read();
  41. $num = $stmt->rowCount();
  42. if($num > 0) {
  43. $transactions_arr = array();
  44. $transactions_arr["records"] = array();
  45. while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
  46. extract($row);
  47. $transaction_item = array(
  48. "id" => $id,
  49. "journal_entry_id" => $journal_entry_id,
  50. "account_id" => $account_id,
  51. "debit_amount" => $debit_amount,
  52. "credit_amount" => $credit_amount,
  53. "description" => $description,
  54. "created_at" => $created_at,
  55. "updated_at" => $updated_at,
  56. "transaction_type" => $accountTransaction->getTransactionType(),
  57. "amount" => $accountTransaction->getAmount(),
  58. "account_name" => $account_name,
  59. "account_type" => $account_type,
  60. "entry_number" => $entry_number,
  61. "entry_date" => $entry_date
  62. );
  63. array_push($transactions_arr["records"], $transaction_item);
  64. }
  65. http_response_code(200);
  66. echo json_encode($transactions_arr);
  67. } else {
  68. http_response_code(200);
  69. echo json_encode(array("records" => array()));
  70. }
  71. } else {
  72. http_response_code(400);
  73. echo json_encode(array("message" => "Missing journal_entry_id parameter."));
  74. }
  75. break;
  76. case 'POST':
  77. $data = json_decode(file_get_contents("php://input"));
  78. if(!empty($data->journal_entry_id) && !empty($data->account_id)) {
  79. $accountTransaction->journal_entry_id = $data->journal_entry_id;
  80. $accountTransaction->account_id = $data->account_id;
  81. $accountTransaction->debit_amount = $data->debit_amount ?? 0;
  82. $accountTransaction->credit_amount = $data->credit_amount ?? 0;
  83. $accountTransaction->description = $data->description ?? '';
  84. if($accountTransaction->create()) {
  85. http_response_code(201);
  86. echo json_encode(array("message" => "Account transaction was created."));
  87. } else {
  88. http_response_code(503);
  89. echo json_encode(array("message" => "Unable to create account transaction."));
  90. }
  91. } else {
  92. http_response_code(400);
  93. echo json_encode(array("message" => "Unable to create account transaction. Data is incomplete."));
  94. }
  95. break;
  96. case 'PUT':
  97. $data = json_decode(file_get_contents("php://input"));
  98. if(!empty($data->id) && !empty($data->journal_entry_id) && !empty($data->account_id)) {
  99. $accountTransaction->id = $data->id;
  100. $accountTransaction->journal_entry_id = $data->journal_entry_id;
  101. $accountTransaction->account_id = $data->account_id;
  102. $accountTransaction->debit_amount = $data->debit_amount ?? 0;
  103. $accountTransaction->credit_amount = $data->credit_amount ?? 0;
  104. $accountTransaction->description = $data->description ?? '';
  105. if($accountTransaction->update()) {
  106. http_response_code(200);
  107. echo json_encode(array("message" => "Account transaction was updated."));
  108. } else {
  109. http_response_code(503);
  110. echo json_encode(array("message" => "Unable to update account transaction."));
  111. }
  112. } else {
  113. http_response_code(400);
  114. echo json_encode(array("message" => "Unable to update account transaction. Data is incomplete."));
  115. }
  116. break;
  117. case 'DELETE':
  118. if(isset($_GET['id'])) {
  119. $accountTransaction->id = $_GET['id'];
  120. if($accountTransaction->delete()) {
  121. http_response_code(200);
  122. echo json_encode(array("message" => "Account transaction was deleted."));
  123. } else {
  124. http_response_code(503);
  125. echo json_encode(array("message" => "Unable to delete account transaction."));
  126. }
  127. } else {
  128. http_response_code(400);
  129. echo json_encode(array("message" => "Unable to delete account transaction. ID is missing."));
  130. }
  131. break;
  132. default:
  133. http_response_code(405);
  134. echo json_encode(array("message" => "Method not allowed."));
  135. break;
  136. }
  137. ?>