
function sync_bdcs() { try { $year = get_option('snowflake_sync_year'); $quarter = get_option('snowflake_sync_quarter'); add_snowflake_log('bdcs', "Debug: Fetched year={$year}, quarter={$quarter}"); if (!$year || !$quarter) { add_snowflake_log('bdcs', 'Year or Quarter not set in settings.', true); return; } $calendar_filter = $year . '-Q' . $quarter; add_snowflake_log('bdcs', "Debug: Generated calendar_filter = {$calendar_filter}"); $rows = fetch_from_snowflake("SELECT * FROM BLUE_VAULT.BDC.BDC_MASTER WHERE YEAR_AND_QUARTER = '{$calendar_filter}'"); if (!is_array($rows)) { add_snowflake_log('bdcs', "Returned result is not an array", true); return; } $count = 0; $sponsors_synced = false; foreach ($rows as $row) { $title = $row['BDC_NAME'] ?? ''; if (!$title) { add_snowflake_log('bdcs', "Missing BDC_NAME in row, skipped", true); continue; } $existing = get_page_by_title($title, OBJECT, 'bdcs'); $post_id = $existing ? $existing->ID : wp_insert_post([ 'post_type' => 'bdcs', 'post_status' => 'publish', 'post_title' => $title, 'post_name' => sanitize_title($title), 'post_date' => current_time('mysql'), ]); if (!$post_id || is_wp_error($post_id)) { add_snowflake_log('bdcs', "Failed to insert post for {$title}", true); continue; } update_post_meta($post_id, 'year', $row['YEAR'] ?? ''); update_post_meta($post_id, 'quarter', $row['QUARTER'] ?? ''); update_post_meta($post_id, 'year_and_quarter', $row['YEAR_AND_QUARTER'] ?? ''); update_post_meta($post_id, 'short_name__c', $row['BDC'] ?? ''); update_post_meta($post_id, 'cik_number__c', $row['CIK_NUMBER'] ?? ''); update_post_meta($post_id, 'fund_id__c', $row['FUND_ID'] ?? ''); update_post_meta($post_id, 'program_type__c', $row['PROGRAM_TYPE'] ?? ''); update_post_meta($post_id, 'offering_status__c', $row['OFFERING_STATUS'] ?? ''); $sponsor_name = $row['SPONSOR_NAME'] ?? ''; if ($sponsor_name) { $sponsor_post = get_page_by_title($sponsor_name, OBJECT, 'sponsor'); if (!$sponsor_post && !$sponsors_synced) { sync_sponsors(); $sponsors_synced = true; $sponsor_post = get_page_by_title($sponsor_name, OBJECT, 'sponsor'); } if ($sponsor_post) { update_post_meta($post_id, 'sponsor_id__c', $sponsor_post->ID); } else { add_snowflake_log('bdcs', "Sponsor '{$sponsor_name}' not found for {$title}", true); } } $count++; } add_snowflake_log('bdcs', "Successfully synced {$count} BDC records for {$calendar_filter}."); } catch (Exception $e) { add_snowflake_log('bdcs', 'Exception: ' . $e->getMessage(), true); } }