allow and disallow multiple payment

main
Subhodip Ghosh 2025-09-28 07:24:36 +00:00
parent 0a68a91b0e
commit e9f9f2b037
4 changed files with 101 additions and 17 deletions

View File

@ -199,7 +199,7 @@ function calculateAmount() {
<small>Total:</small>
<input type="text" class="total_amount" value="' . $total_amount . '" disabled style="width:50px;border:1px solid red">
<input type="hidden" name="allowMultiple" value="'.($row['allowMultiple'] == 0 ? 0 : 1).'">
<input type="submit" class="btn-info" value="Receive" onclick="sendData(event)">
</td>
</tr>
@ -215,6 +215,7 @@ function calculateAmount() {
<small>Total:</small>
<input type="text" id="total_amount" value="'.$row['AA_INSTALLMENT'].'" disabled style="width:50px;">
<input type="hidden" id="hidden_total_amount" name="add_i" value="'.$row['AA_INSTALLMENT'].'">
<input type="hidden" name="allowMultiple" value="'.($row['allowMultiple'] == 0 ? 0 : 1).'">
<input type="submit" class="btn-info" value="Receive" onclick="sendData(event)">';
echo '</form></td></tr>';
}

View File

@ -26,6 +26,7 @@ if (!isset($_SESSION['user_id']) || empty($_SESSION['user_id'])) {
<label for="INSTALLMENT_AMOUNT">Amount: </label>
<input id="INSTALLMENT_AMOUNT" name="add_i" class="form-control" type="text" placeholder="" />
</div>
<input id="ALLOW_MULTIPLE_FLAG" type="text" name="allowMultiple" value="">
<input class="btn btn-primary" type="submit" value="Receive Now" style="margin-top: 20px;" />
</form>
</div>
@ -67,6 +68,7 @@ if (!isset($_SESSION['user_id']) || empty($_SESSION['user_id'])) {
document.getElementById("PAYMENT_RECEIVE_FORM").style.display = "block";
document.getElementById("ACCOUNT_NUMBER").value = data.data[0].AA_ACNO;
document.getElementById("ACCOUNT_HOLDER_NAME").value = data.data[0].AA_NAME;
document.getElementById("ALLOW_MULTIPLE_FLAG").value = data.data[0].allowMultiple;
const input = document.getElementById("INSTALLMENT_AMOUNT");

View File

@ -0,0 +1,35 @@
<?php
$response = new stdClass();
$total = array();
if (isset($_POST["add_i"]) && isset($_POST["AA_ACNO"]) && is_numeric($_POST["add_i"]) && $_POST["add_i"] > 0) {
if(isset($_POST["ins_no"])) $ins_no = $_POST["ins_no"]; else $ins_no = 1;
if(isset($_POST["fine_amount"])) $fine_amt = $_POST["fine_amount"]; else $fine_amt = 0;
$conn = new mysqli($GLOBALS['host'], $GLOBALS['user'], $GLOBALS['pass'], $GLOBALS['db']);
if ($conn->connect_error) die("Connection failed: " . $conn->connect_error);
if ($conn->query("UPDATE `" . $GLOBALS['arif_ac'] . "` SET `AA_FINE` = `AA_FINE` + 5, `AA_BAL` = `AA_BAL`+".$_POST["add_i"]." , `AA_NO_OF_PAYPAID` = `AA_NO_OF_PAYPAID`+".$ins_no." WHERE `AA_ACNO` = '" . $_POST["AA_ACNO"] . "'"));
//Add entry to Transaction
{
$AT_USER = $_SESSION['user_id'];
if ($conn->query("INSERT INTO `" . $GLOBALS['arif_tran'] . "` (`AT_ID`, `AT_TIMESTAMP`, `AT_ADMIN`, `AT_ACID`, `AT_AMOUNT`) VALUES (NULL, CURRENT_TIMESTAMP, '" . $AT_USER . "', '" . $_POST["AA_ACNO"] . "', '" . $_POST["add_i"] . "')")){
$total['status'] = 'Success';
$total['statusmsg'] = 'Transaction Successful! Rs. '.$_POST["add_i"];
}
else {
$total['status'] = 'Error';
$total['statusmsg'] = 'Error in Config';
// $total['statusmsg'] = mysqli_error($conn);
}
}
$conn->close();
} else {
$total['status'] = 'Error';
$total['statusmsg'] = 'Error!! Check Input Details'.$_POST["add_i"].$_POST["AA_ACNO"];
}
$response = $total;
echo json_encode($response);
?>

View File

@ -1,35 +1,81 @@
<?php
$response = new stdClass();
$total = array();
if (isset($_POST["add_i"]) && isset($_POST["AA_ACNO"]) && is_numeric($_POST["add_i"]) && $_POST["add_i"] > 0) {
if(isset($_POST["ins_no"])) $ins_no = $_POST["ins_no"]; else $ins_no = 1;
if(isset($_POST["fine_amount"])) $fine_amt = $_POST["fine_amount"]; else $fine_amt = 0;
$conn = new mysqli($GLOBALS['host'], $GLOBALS['user'], $GLOBALS['pass'], $GLOBALS['db']);
if ($conn->connect_error) die("Connection failed: " . $conn->connect_error);
if ($conn->query("UPDATE `" . $GLOBALS['arif_ac'] . "` SET `AA_FINE` = `AA_FINE` + 5, `AA_BAL` = `AA_BAL`+".$_POST["add_i"]." , `AA_NO_OF_PAYPAID` = `AA_NO_OF_PAYPAID`+".$ins_no." WHERE `AA_ACNO` = '" . $_POST["AA_ACNO"] . "'"));
//Add entry to Transaction
{
$AT_USER = $_SESSION['user_id'];
if ($conn->query("INSERT INTO `" . $GLOBALS['arif_tran'] . "` (`AT_ID`, `AT_TIMESTAMP`, `AT_ADMIN`, `AT_ACID`, `AT_AMOUNT`) VALUES (NULL, CURRENT_TIMESTAMP, '" . $AT_USER . "', '" . $_POST["AA_ACNO"] . "', '" . $_POST["add_i"] . "')")){
$total['status'] = 'Success';
$total['statusmsg'] = 'Transaction Successful! Rs. '.$_POST["add_i"];
}
else {
$AA_ACNO = $conn->real_escape_string($_POST["AA_ACNO"]);
$add_i = $conn->real_escape_string($_POST["add_i"]);
$AT_USER = $_SESSION['user_id'];
$USER_TYPE = $_SESSION['type'] ?? 'agent'; // default = user
$allowMultiple = isset($_POST['allowMultiple']) ? intval($_POST['allowMultiple']) : 0;
// 1. Check account type & owner
$sql_ac = "SELECT AA_TYPE, AA_AGENT FROM `".$GLOBALS['arif_ac']."` WHERE `AA_ACNO`='$AA_ACNO' LIMIT 1";
$res_ac = $conn->query($sql_ac);
if($res_ac && $res_ac->num_rows > 0){
$acc = $res_ac->fetch_assoc();
// --- যদি admin না হয় তাহলে শুধু নিজের account-এ কাজ করতে পারবে ---
if($USER_TYPE != 'admin' && $acc['AA_AGENT'] != $AT_USER){
$total['status'] = 'Error';
$total['statusmsg'] = 'Error in Config';
// $total['statusmsg'] = mysqli_error($conn);
$total['statusmsg'] = 'Unauthorized Access!';
echo json_encode($total); exit;
}
// 2. যদি account Recurring হয়, allowMultiple না থাকে, এবং user admin না হয় → দিনে একবারের বেশি হবে না
// যদি account Recurring হয়, আর multiple allow না থাকে, আর user admin না হয় → দিনে একবারের বেশি হবে না
if($acc['AA_TYPE'] == "Recurring" && $allowMultiple == 0 && $USER_TYPE != 'admin'){
$today = date("Y-m-d");
$sql_chk = "SELECT COUNT(*) as cnt FROM `".$GLOBALS['arif_tran']."` WHERE `AT_ACID`='$AA_ACNO' AND `AT_ADMIN`='$AT_USER' AND DATE(`AT_TIMESTAMP`)='$today'";
$res_chk = $conn->query($sql_chk);
$row_chk = $res_chk->fetch_assoc();
if($row_chk['cnt'] > 0){
$total['status'] = 'Error';
$total['statusmsg'] = 'You can do only one transaction per day for Recurring Account!';
echo json_encode($total); exit;
}
}
// 3. Update Account
$sql_upd = "UPDATE `".$GLOBALS['arif_ac']."` SET `AA_FINE` = `AA_FINE` + 5, `AA_BAL` = `AA_BAL` + $add_i, `AA_NO_OF_PAYPAID` = `AA_NO_OF_PAYPAID` + $ins_no WHERE `AA_ACNO` = '$AA_ACNO'";
if ($conn->query($sql_upd)){
// Insert Transaction
$sql_ins = "INSERT INTO `".$GLOBALS['arif_tran']."` (`AT_ID`, `AT_TIMESTAMP`, `AT_ADMIN`, `AT_ACID`, `AT_AMOUNT`) VALUES (NULL, CURRENT_TIMESTAMP, '$AT_USER', '$AA_ACNO', '$add_i')";
if ($conn->query($sql_ins)){
$total['status'] = 'Success';
$total['statusmsg'] = 'Transaction Successful! Rs. '.$add_i;
} else {
$total['status'] = 'Error';
$total['statusmsg'] = 'Error in Transaction Insert!';
}
} else {
$total['status'] = 'Error';
$total['statusmsg'] = 'Error in Account Update!';
}
} else {
$total['status'] = 'Error';
$total['statusmsg'] = 'Account Not Found!';
}
$conn->close();
} else {
} else {
$total['status'] = 'Error';
$total['statusmsg'] = 'Error!! Check Input Details'.$_POST["add_i"].$_POST["AA_ACNO"];
$total['statusmsg'] = 'Error!! Check Input Details '.($_POST["add_i"] ?? '').($_POST["AA_ACNO"] ?? '');
}
$response = $total;
echo json_encode($response);
?>
?>