39728-vm/api/sales_payment.php
2026-04-21 02:42:34 +00:00

47 lines
1.8 KiB
PHP

<?php
require_once __DIR__ . '/../includes/app.php';
require_auth();
header('Content-Type: application/json');
if ($_SERVER['REQUEST_METHOD'] !== 'POST') {
http_response_code(405);
echo json_encode(['success' => false, 'error' => tr('طريقة الطلب غير مدعومة.', 'Method not allowed.')]);
exit;
}
$saleId = (int) ($_POST['sale_id'] ?? 0);
$paymentAmount = (string) ($_POST['payment_amount'] ?? '');
$completeOrder = !empty($_POST['complete_order']);
if ($saleId <= 0) {
echo json_encode(['success' => false, 'error' => tr('الفاتورة غير صالحة.', 'Invalid invoice.')]);
exit;
}
if ($paymentAmount === '' || !is_numeric($paymentAmount) || (float) $paymentAmount <= 0) {
echo json_encode(['success' => false, 'error' => tr('أدخل مبلغ دفعة صحيحاً.', 'Enter a valid payment amount.')]);
exit;
}
try {
$sale = fetch_sale($saleId);
if (!$sale) {
echo json_encode(['success' => false, 'error' => tr('الفاتورة غير موجودة أو غير مصرح بها.', 'Invoice not found or not allowed.')]);
exit;
}
$result = apply_sale_payment($saleId, (float) $paymentAmount, $completeOrder);
echo json_encode([
'success' => true,
'message' => $result['due_amount'] <= 0.0005
? tr('تم سداد الفاتورة بالكامل.', 'Invoice paid in full.')
: tr('تم تسجيل الدفعة الجزئية بنجاح.', 'Partial payment recorded successfully.'),
'payment_status' => $result['payment_status'],
'paid_amount' => $result['paid_amount'],
'due_amount' => $result['due_amount'],
'applied_amount' => $result['applied_amount'],
]);
} catch (Throwable $e) {
echo json_encode(['success' => false, 'error' => tr('تعذر تسجيل الدفعة.', 'Could not record the payment.')]);
}