// ওয়ার্ড এক্সপোর্ট (সব এন্ট্রি + ডুপ্লিকেট একসাথে, সিরিয়াল অনুযায়ী) - A4 পেজ ফরম্যাটে if(isset($_GET['export_word'])) { $filter = isset($_GET['filter']) ? $conn->real_escape_string($_GET['filter']) : ''; // মূল এন্ট্রি কোয়েরি - সব কলাম স্পষ্ট করে উল্লেখ করা হয়েছে $main_query = "SELECT e.id, e.name, e.father, e.mother, e.ward, e.village, e.nid, e.list_type, e.created_at, e.updated_at, 'মূল' as entry_type, e.list_type as ref_person, NULL as original_name, NULL as original_entry_id, NULL as reference_person, NULL as duplicate_id FROM entries e"; if($filter) { $main_query .= " WHERE e.list_type = '$filter'"; } // ডুপ্লিকেট এন্ট্রি কোয়েরি - সব কলাম স্পষ্ট করে উল্লেখ করা হয়েছে $dup_query = "SELECT d.id, d.name, d.father, d.mother, d.ward, d.village, d.nid, d.list_type, d.created_at, NULL as updated_at, 'ডুপ্লিকেট' as entry_type, d.reference_person as ref_person, e.name as original_name, d.original_entry_id, d.reference_person, d.id as duplicate_id FROM duplicate_entries d LEFT JOIN entries e ON d.original_entry_id = e.id"; if($filter) { $dup_query .= " WHERE d.reference_person = '$filter'"; } // ইউনিয়ন করে সব এন্ট্রি (মূল + ডুপ্লিকেট) সিরিয়াল অনুযায়ী সাজানো $query = "SELECT * FROM (($main_query) UNION ALL ($dup_query)) as combined ORDER BY ward, village, name, created_at"; $result = $conn->query($query); if (!$result) { die("কোয়েরি ত্রুটি: " . $conn->error); } // ডুপ্লিকেট কাউন্টের জন্য আলাদা কোয়েরি $dup_count_query = "SELECT COUNT(*) as count FROM duplicate_entries"; if($filter) { $dup_count_query .= " WHERE reference_person = '$filter'"; } $dup_count_result = $conn->query($dup_count_query); $duplicate_count = $dup_count_result ? $dup_count_result->fetch_assoc()['count'] : 0; header("Content-Type: application/msword"); header("Content-Disposition: attachment; filename=master_roll_" . date('Y-m-d') . ".doc"); echo ""; echo "ভিজিএফ মাস্টার রোল"; echo ""; echo ""; echo "
"; echo "

১নং আলমপুর ইউনিয়ন পরিষদ

"; echo "

তারাগঞ্জ, রংপুর

"; echo "

ভিজিএফ মাস্টার রোল (মূল ও ডুপ্লিকেট এন্ট্রি সহ)

"; echo "
"; echo "
"; echo "" . ($filter ? "ফিল্টার: $filter" : "সমস্ত তালিকা") . " | "; echo "তারিখ: " . date('d-m-Y') . " | "; echo "প্রিন্ট সময়: " . date('h:i A'); echo "
"; echo "
"; echo "📌 দ্রষ্টব্য: হলুদ রঙের সারিগুলি ডুপ্লিকেট এন্ট্রি নির্দেশ করে। "; echo "প্রতিটি এন্ট্রি ওয়ার্ড, গ্রাম এবং নাম অনুযায়ী সাজানো হয়েছে।"; echo "
"; echo ""; echo ""; $sl = 1; $current_ward = null; $ward_total = 0; if($result && $result->num_rows > 0) { while($row = $result->fetch_assoc()) { $is_duplicate = ($row['entry_type'] == 'ডুপ্লিকেট'); $row_class = $is_duplicate ? 'duplicate-row' : ''; // ওয়ার্ড পরিবর্তন হলে ছোট হেডার if ($current_ward != $row['ward']) { if ($current_ward !== null) { echo ""; } $current_ward = $row['ward']; $ward_total = 0; echo ""; } $ward_total++; echo ""; echo ""; echo ""; echo ""; echo ""; echo ""; echo ""; echo ""; echo ""; echo ""; echo ""; echo ""; $sl++; } // শেষ ওয়ার্ডের মোট if ($current_ward !== null) { echo ""; } } else { echo ""; } echo "
ক্রমিক ধরণ নাম পিতা/স্বামী মাতা ওয়ার্ড গ্রাম এনআইডি রেফারেন্স স্বাক্ষর
ওয়ার্ড {$current_ward} মোট: {$ward_total} জন
ওয়ার্ড নং - {$row['ward']}
$sl"; if($is_duplicate) { echo "ডুপ্লিকেট"; } else { echo "মূল"; } echo "" . htmlspecialchars($row['name']) . "" . htmlspecialchars($row['father']) . "" . htmlspecialchars($row['mother']) . "" . $row['ward'] . "" . htmlspecialchars($row['village']) . "" . htmlspecialchars($row['nid']) . ""; if($is_duplicate) { echo "" . htmlspecialchars($row['ref_person']) . ""; if(!empty($row['original_name'])) { echo "
মূল: " . htmlspecialchars($row['original_name']) . ""; } } else { echo "" . htmlspecialchars($row['ref_person']) . ""; } echo "
ওয়ার্ড {$current_ward} মোট: {$ward_total} জন
কোন তথ্য পাওয়া যায়নি
"; echo "
"; echo "
"; echo "
চেয়ারম্যানের স্বাক্ষর
"; echo "
"; echo "
"; echo "
সচিবের স্বাক্ষর
"; echo "
"; echo "
"; echo "
সদস্যের স্বাক্ষর
"; echo "
"; echo "
"; $total_rows = $sl - 1; $main_count = $total_rows - $duplicate_count; echo ""; echo ""; exit; }