HEX
Server: Apache/2.4.59 (Debian)
System: Linux keymana 4.19.0-21-cloud-amd64 #1 SMP Debian 4.19.249-2 (2022-06-30) x86_64
User: lijunjie (1003)
PHP: 7.4.33
Disabled: pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,
Upload Files
File: /var/www/html/wp-content/themes/ormedia/keylabData/insurance_claims/u_insurance_claims.php
<?php
if (isset($_REQUEST['checking_api_file'])) {
    exit();
}
$a_delete = [];

//��ȡ������ͼƬid
$sql_statment = "select quotation_file,adjuster_file,insurance_file from keylab_property_insurance_claims where insurance_claims_id = ".$_POST['insurance_claims_id'];
$result = $wpdb->get_results($sql_statment);
if(!empty($result)){
	$a_quotation_file = unserialize($result[0]->quotation_file);
	$a_new_quotation_file = $_REQUEST['quotation_file'];

	foreach($a_new_quotation_file as $key=>$value){
		update_post_meta($value['uid'], 'in_use', 1);
	}
	foreach($a_quotation_file as $key1=>$value1){
		array_push($a_delete,$value1['uid']);
		foreach($a_new_quotation_file as $key2=>$value2){
			if($value1['uid'] == $value2['uid']){
				array_pop($a_delete);			}
		}
	}

	$a_adjuster_file = unserialize($result[0]->adjuster_file);
	$a_new_adjuster_file = $_REQUEST['adjuster_file'];

	foreach($a_new_adjuster_file as $key=>$value){
		update_post_meta($value['uid'], 'in_use', 1);
	}
	foreach($a_adjuster_file as $key1=>$value1){
		array_push($a_delete,$value1['uid']);
		foreach($a_new_adjuster_file as $key2=>$value2){
			if($value1['uid'] == $value2['uid']){
				array_pop($a_delete);			}
		}
	}

	$a_insurance_file = unserialize($result[0]->insurance_file);
	$a_new_insurance_file = $_REQUEST['insurance_file'];

	foreach($a_new_insurance_file as $key=>$value){
		update_post_meta($value['uid'], 'in_use', 1);
	}
	foreach($a_insurance_file as $key1=>$value1){
		array_push($a_delete,$value1['uid']);
		foreach($a_new_insurance_file as $key2=>$value2){
			if($value1['uid'] == $value2['uid']){
				array_pop($a_delete);			}
		}
	}
}

$status = false;
$old_data = $wpdb->get_results("select * from keylab_property_insurance_claims where insurance_claims_id = ".$_POST['insurance_claims_id']);
$new_data = array(
    'property_id' => $_REQUEST['property_id'],
    'status' => $_REQUEST['status'],
    'event_date' => $_REQUEST['event_date'],
    'unit' => $_REQUEST['unit'],
    'type' => $_REQUEST['type'],
    'amount' => $_REQUEST['amount'],
    'quotation_file' => serialize($_REQUEST['quotation_file']),
    'adjuster_file' => serialize($_REQUEST['adjuster_file']),
    'insurance_file' => serialize($_REQUEST['insurance_file']),
	'remarks' => $_REQUEST['remarks'],
	'ref'   => $_REQUEST['ref'],
	'wr2'   => $_REQUEST['wr2'],
    'event_end_date' => $_REQUEST['event_end_date']
);

$status = $wpdb->update("keylab_property_insurance_claims", $new_data, array('insurance_claims_id' => $_POST['insurance_claims_id']));
$sql = $wpdb->last_query;

//修改ref
$statement = "SELECT insurance_claims_id, ref FROM keylab_property_insurance_claims WHERE ref = ''";
$results = $wpdb->get_results($statement);

foreach($results as $value){
    $wpdb->update("keylab_property_insurance_claims",[
        'ref' => '#'.$value->insurance_claims_id
    ], [
        'insurance_claims_id' => $value->insurance_claims_id
    ]);
}

if ($status === false) {
    $rv->status = false;
    $rv->error = $wpdb->last_error;
} else {
        //ɾ��������ͼƬ�����ݿ�λ��
if(count($a_delete) !== 0){
	foreach($a_delete as $key=>$value){
		if(!empty(wp_delete_attachment($value))){
			delete_post_meta( $value, 'in_use' );
			$rv->status = true;
    			$rv->wpdb = $wpdb;
		}else{
			$rv->status = false;
    			$rv->error = "update_error";
		}
		
	}
}else{
	$rv->status = true;
    	$rv->wpdb = $wpdb;
}
}
	$rv->wpdb = $wpdb;

//log
keylab_data_log_by_user2($status, $old_data[0], $new_data, $sql, "keylab_property_insurance_claims", $_POST['insurance_claims_id']);


exit(json_encode($rv));
?>