Fixed some bugs
This commit is contained in:
@@ -174,28 +174,34 @@ if ($_SERVER['REQUEST_METHOD'] === 'POST') {
|
||||
|
||||
if ($stmt->execute()) {
|
||||
// Insert into the membership fees table
|
||||
$payment_amount = calculateProrata(210); // Assuming a fixed membership fee, adjust as needed
|
||||
$payment_date = date('Y-m-d');
|
||||
$membership_start_date = $payment_date;
|
||||
// $membership_end_date = date('Y-12-31');
|
||||
|
||||
// Get today's date
|
||||
$today = new DateTime();
|
||||
$month = (int)$today->format('n');
|
||||
$year = (int)$today->format('Y');
|
||||
$payment_date = $today->format('Y-m-d');
|
||||
$membership_start_date = $payment_date;
|
||||
|
||||
// Determine the target February
|
||||
if ($today->format('n') > 2) {
|
||||
// If we're past February, target is next year's Feb 28/29
|
||||
$year = $today->format('Y') + 1;
|
||||
if ($month == 12 || $month == 1 || $month == 2) {
|
||||
// December, January, February: charge full fee, valid till end of next Feb
|
||||
$payment_amount = getPriceByDescription('membership_fees');
|
||||
// If Dec, Jan, Feb, set end to next year's Feb
|
||||
$end_year = ($month == 12) ? $year + 2 : $year + 1;
|
||||
$membership_end_date = (new DateTime("$end_year-02-01"))
|
||||
->modify('last day of this month')
|
||||
->format('Y-m-d');
|
||||
} else {
|
||||
// Otherwise, this year's February
|
||||
$year = $today->format('Y');
|
||||
// Prorata for Mar-Nov
|
||||
$payment_amount = calculateProrata(getPriceByDescription('pro_rata'));
|
||||
// End of next Feb if after Feb, else this Feb
|
||||
if ($month > 2) {
|
||||
$end_year = $year + 1;
|
||||
} else {
|
||||
$end_year = $year;
|
||||
}
|
||||
$membership_end_date = (new DateTime("$end_year-02-01"))
|
||||
->modify('last day of this month')
|
||||
->format('Y-m-d');
|
||||
}
|
||||
|
||||
// Handle leap year (Feb 29) automatically
|
||||
$membership_end_date = (new DateTime("$year-02-01"))
|
||||
->modify('last day of this month')
|
||||
->format('Y-m-d');
|
||||
|
||||
$stmt = $conn->prepare("INSERT INTO membership_fees (user_id, payment_amount, payment_date, membership_start_date, membership_end_date, payment_status, payment_id)
|
||||
VALUES (?, ?, ?, ?, ?, 'PENDING', ?)");
|
||||
$stmt->bind_param("idssss", $user_id, $payment_amount, $payment_date, $membership_start_date, $membership_end_date, $eft_id);
|
||||
|
||||
Reference in New Issue
Block a user