add_action('rest_api_init', function () { register_rest_route('accountant/v1', '/add_row_sanad_copy', array( 'methods' => 'POST', 'callback' => 'actnt_copy_sanad_row', 'permission_callback' => '__return_true' )); }); function actnt_copy_sanad_row($request) { global $wpdb; $table = $wpdb->prefix . 'accountant_transactions'; $data = json_decode($request->get_body(), true); // التحقق من الحقول الأساسية if ( empty($data['sanad_type']) || empty($data['sanad_number']) || empty($data['sanad_date']) || empty($data['sanad_year']) || empty($data['copy_from_serial_number']) ) { return new WP_REST_Response([ 'success' => false, 'message' => 'Missing required fields.' ], 400); } $sanad_type = sanitize_text_field($data['sanad_type']); $sanad_number = sanitize_text_field($data['sanad_number']); $sanad_date = sanitize_text_field($data['sanad_date']); $sanad_year = sanitize_text_field($data['sanad_year']); $copy_serial = intval($data['copy_from_serial_number']); // البحث عن الصف المراد نسخه $original_row = $wpdb->get_row($wpdb->prepare(" SELECT * FROM $table WHERE sanad_type = %s AND sanad_number = %s AND sanad_date = %s AND serial_number = %d LIMIT 1 ", $sanad_type, $sanad_number, $sanad_date, $copy_serial), ARRAY_A); if (!$original_row) { return new WP_REST_Response([ 'success' => false, 'message' => 'Original row not found.' ], 404); } // إزالة الـ ID من الصف الأصلي لأنه مفتاح تلقائي unset($original_row['id']); // تعديل التاريخ والرقم ونوع السند (تأكيد فقط) $original_row['sanad_type'] = $sanad_type; $original_row['sanad_number'] = $sanad_number; $original_row['sanad_date'] = $sanad_date; $original_row['sanad_year'] = $sanad_year; // احتساب رقم serial الجديد $max_serial = $wpdb->get_var($wpdb->prepare(" SELECT MAX(serial_number) FROM $table WHERE sanad_type = %s AND sanad_number = %s AND sanad_date = %s ", $sanad_type, $sanad_number, $sanad_date)); $original_row['serial_number'] = intval($max_serial) + 1; // إضافة تاريخ التحميل الحالي $original_row['uploaded_at'] = current_time('mysql'); // تنفيذ الإدخال الجديد $result = $wpdb->insert($table, $original_row); if ($result === false) { return new WP_REST_Response([ 'success' => false, 'message' => 'Database insert failed.', 'error' => $wpdb->last_error ], 500); } return new WP_REST_Response([ 'success' => true, 'message' => "تم نسخ السطر رقم $copy_serial إلى سجل جديد بالسند.", 'new_serial_number' => $original_row['serial_number'] ], 200); } مزلق احساس - مؤسسة العبقري الصغير
القائمة الرئيسية المعرض الرئيسي قسم العروض الاكثر مبيعا التطبيقات التقيمات شركائنا فريق العمل الفئات

مزلق احساس

Ad Image
Communication Icon هل تحتاج للمساعدة؟؟

اختار الطريقة المناسبة للتواصل

4
Scroll to Top