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.')]); }