connect_error) { die("Connection failed: " . $conn->connect_error); } // ✅ Check recurring balance first $sql = "SELECT AA_BAL FROM `" . $GLOBALS['arif_ac'] . "` WHERE `AA_ACNO` = ?"; $stmt = $conn->prepare($sql); $stmt->bind_param("s", $accountId); $stmt->execute(); $stmt->bind_result($CURRENT_RECURRING_BALANCE); $stmt->fetch(); $stmt->close(); if ($loanEMIAmount > $CURRENT_RECURRING_BALANCE) { echo "
Error! Insufficient balance in Recurring account. ×
"; exit; } // ✅ Begin transaction for atomicity $conn->begin_transaction(); try { $table = $GLOBALS['arif_tran'] ?? 'arif_tran'; $userType = 'admin'; // Entry 1: Deduction from recurring $remarksText1 = "₹$loanEMIAmount deducted from Recurring for Loan A/c $paidToLoanAccountNumber EMI"; $stmt = $conn->prepare("INSERT INTO `$table` (AT_ADMIN, AT_ACID, AT_AMOUNT, REMARKS) VALUES (?, ?, ?, ?)"); $stmt->bind_param("ssds", $userType, $accountId, $deductAmount, $remarksText1); $stmt->execute(); $stmt->close(); // Entry 2: Credit to loan account $remarksText2 = "₹$loanEMIAmount credited to Loan A/c $paidToLoanAccountNumber EMI (from Recurring $accountId)"; $stmt = $conn->prepare("INSERT INTO `$table` (AT_ADMIN, AT_ACID, AT_AMOUNT, REMARKS) VALUES (?, ?, ?, ?)"); $stmt->bind_param("ssds", $userType, $paidToLoanAccountNumber, $loanEMIAmount, $remarksText2); $stmt->execute(); $stmt->close(); // Update Loan Account $ins_no = 1; $sql = "UPDATE `" . $GLOBALS['arif_ac'] . "` SET `AA_BAL` = `AA_BAL` + ?, `AA_NO_OF_PAYPAID` = `AA_NO_OF_PAYPAID` + ? WHERE `AA_ACNO` = ?"; $stmt = $conn->prepare($sql); $stmt->bind_param("dis", $loanEMIAmount, $ins_no, $paidToLoanAccountNumber); $stmt->execute(); $stmt->close(); // Update Recurring Account $sql = "UPDATE `" . $GLOBALS['arif_ac'] . "` SET `AA_BAL` = `AA_BAL` - ? WHERE `AA_ACNO` = ?"; $stmt = $conn->prepare($sql); $stmt->bind_param("ds", $loanEMIAmount, $accountId); $stmt->execute(); $stmt->close(); // ✅ Commit if everything ok $conn->commit(); echo "
Success! Loan EMI paid successfully! ×
"; } catch (Exception $e) { $conn->rollback(); echo "Error processing EMI payment: " . $e->getMessage(); } $conn->close(); } } ?>